Установка бонусов кассирам — различия между версиями
Материал из wiki.standart-n.ru
Agk (обсуждение | вклад) (→Установить ТМС) |
Agk (обсуждение | вклад) (→Отображение кол-ва бонус в окне информации о чеке) |
||
| Строка 95: | Строка 95: | ||
==Отображение кол-ва бонус в окне информации о чеке== | ==Отображение кол-ва бонус в окне информации о чеке== | ||
| − | В кассире в правом окне сумм итогов чека | + | В кассире в правом окне сумм итогов чека заменить код на: |
* Добавить .size1 {font-size:12px;} к строке: | * Добавить .size1 {font-size:12px;} к строке: | ||
<nowiki> | <nowiki> | ||
| − | + | <html> | |
| − | + | <head> | |
| − | : | + | <meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /> |
| − | < | + | <meta charset="utf-8"> |
| − | + | <script type="text/javascript" language="JavaScript"> | |
| − | + | function _show(id) {var el=document.getElementById(id); if (el!=undefined) {el.className=el.className.replace(/(?:^|\b)hide(?!\S)/g, "");}} | |
| − | + | function _hide(id) {var el=document.getElementById(id); _show(id); if (el!=undefined) {el.className+=" hide";}} | |
| − | + | function _setContent(id, content) { | |
| − | + | var el=document.getElementById(id); if (el!=undefined) {el.innerHTML=content;} | |
| − | + | if (id=='t_bonus_all') { | |
| − | + | drawChart(); | |
| − | + | } | |
| − | + | } | |
| − | + | </script> | |
| − | + | ||
| − | + | <script src="https://www.google.com/jsapi"></script> | |
| − | + | <script type="text/javascript" language="JavaScript"> | |
| − | + | google.load("visualization", "1", {packages:["corechart"]}); | |
| + | google.setOnLoadCallback(function(){ | ||
| + | setTimeout(function() { drawChart(); }, 100); | ||
| + | //drawChart(); | ||
| + | }); | ||
| + | function drawChart() { | ||
| + | //var t_kc1=document.getElementById("t_kassir_caption1").innerHTML; var t_kb1=document.getElementById("t_kassir_bonus1").innerHTML; | ||
| + | var t_kassir_caption1=document.getElementById("t_kassir_caption1").innerHTML; var t_kassir_bonus1=document.getElementById("t_kassir_bonus1").innerHTML; | ||
| + | var t_kassir_caption2=document.getElementById("t_kassir_caption2").innerHTML; var t_kassir_bonus2=document.getElementById("t_kassir_bonus2").innerHTML; | ||
| + | var t_kassir_caption3=document.getElementById("t_kassir_caption3").innerHTML; var t_kassir_bonus3=document.getElementById("t_kassir_bonus3").innerHTML; | ||
| + | var t_kassir_caption4=document.getElementById("t_kassir_caption4").innerHTML; var t_kassir_bonus4=document.getElementById("t_kassir_bonus4").innerHTML; | ||
| + | var t_kassir_caption5=document.getElementById("t_kassir_caption5").innerHTML; var t_kassir_bonus5=document.getElementById("t_kassir_bonus5").innerHTML; | ||
| + | var data = google.visualization.arrayToDataTable([ | ||
| + | ['ФИО', 'руб.'], | ||
| + | [t_kassir_caption1, parseFloat(t_kassir_bonus1)], | ||
| + | [t_kassir_caption2, parseFloat(t_kassir_bonus2)], | ||
| + | [t_kassir_caption3, parseFloat(t_kassir_bonus3)], | ||
| + | [t_kassir_caption4, parseFloat(t_kassir_bonus4)], | ||
| + | [t_kassir_caption5, parseFloat(t_kassir_bonus5)] | ||
| + | ]); | ||
| + | var options = { | ||
| + | //title: 'Премии кассиров', | ||
| + | is3D: true, | ||
| + | pieResidueSliceLabel: 'Остальное' | ||
| + | }; | ||
| + | var chart = new google.visualization.PieChart(document.getElementById('bonus')); | ||
| + | chart.draw(data, options); | ||
| + | } | ||
| + | </script> | ||
| + | |||
| + | </head> | ||
| + | <style type="text/css"> | ||
| + | * {margin:0; padding:0; border:0; color:#626262; text-decoration:none; font-family:Arial, Helvetica, sans-serif; font-style:normal; font-weight:bold; font-size:12px; border-collapse:collapse; overflow:hidden;} | ||
| + | html {overflow:hidden;} | ||
| + | .size2 {font-size:14px;} .size3 {font-size:20px;} .size4 {font-size:50px;} | ||
| + | .ac {text-align:center;} .ar {text-align:right;} | ||
| + | .pa {position:absolute; left:0; width:100%;} .pr {position:relative; left:0; width:100%;} | ||
| + | .hide {display:none;} .mark {color:#CC4139;} | ||
| + | .total1 {font-family:"Courier New", Courier, monospace; color:#FFF;} .total2 {font-family:Impact;} | ||
| + | .red1 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FEEDCD", endColorstr="#FED78D");} | ||
| + | .red2 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FDC966", endColorstr="#FCA80C");} | ||
| + | .gray1 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#c8c8c8", endColorstr="#b0b0b0");} | ||
| + | .gray2 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFF", endColorstr="#EAEAEA");} | ||
| + | .gray3 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#E4E4E4", endColorstr="#B8B8B8");} | ||
| + | .dlm {width:4px;} | ||
| + | </style> | ||
| + | <body> | ||
| + | <div id="fr_content" class="pr" style="height:54px;"> | ||
| + | <div class="pa red1" style="top:0; height:50%;"></div> | ||
| + | <div class="pa red2" style="top:50%; height:50%;"></div> | ||
| + | <div class="pa ac" style="top:0; height:54px;"> | ||
| + | <div id="fr_model" class="pr" style="height:33%; font-weight:normal;">ККМ не инициализирована</div> | ||
| + | <div id="fr_sess" class="pr" style="height:33%; font-weight:normal;">Смена: 0 (0/0), до конца 24 часа</div> | ||
| + | <div id="fr_total" class="pr mark" style="height:33%;">Чеков: 0, сумма д/я = 0.00</div> | ||
| + | </div> | ||
| + | </div> | ||
| + | <div class="pr" style="height:6px;"></div> | ||
| + | <table id="tbl_info" style="width:100%;"> | ||
| + | <tr id="tr_pos"><td class="dlm" /><td id="t_pos_cap" class="size2">Позиций</td><td id="t_pos" class="ar size3">0</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_sum"><td class="dlm" /><td id="t_sum_cap" class="size2">Сумма</td><td id="t_sum" class="ar size3">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_dsc"><td class="dlm" /><td id="t_dsc_cap" class="size2">Скидка</td><td id="t_dsc" class="ar size3">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_cash"><td class="dlm" /><td id="t_cash_cap" class="mark size2">Наличные</td><td id="t_cash" class="ar mark size3">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_del"><td class="dlm" /><td id="t_del_cap" class="mark size2">Сдача</td><td id="t_del" class="ar mark size3">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_bonus"><td class="dlm" /><td id="t_bonus_cap" class="size1">Премия за посл. чек</td><td id="t_bonus" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_bonus"><td class="dlm" /><td id="t_bonus_cap" class="size1">Премия за день</td><td id="t_bonus_smena" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr id="tr_bonus_all"><td class="dlm" /><td id="t_bonus_all_cap" class="size1">Премия за мес.</td><td id="t_bonus_all" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr style = "display:none" id="tr_kassir_bonus1"><td class="dlm" /><td id="t_kassir_caption1" class="size1">????</td><td id="t_kassir_bonus1" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr style = "display:none" id="tr_kassir_bonus2"><td class="dlm" /><td id="t_kassir_caption2" class="size1">????</td><td id="t_kassir_bonus2" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr style = "display:none" id="tr_kassir_bonus3"><td class="dlm" /><td id="t_kassir_caption3" class="size1">????</td><td id="t_kassir_bonus3" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr style = "display:none" id="tr_kassir_bonus4"><td class="dlm" /><td id="t_kassir_caption4" class="size1">????</td><td id="t_kassir_bonus4" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | <tr style = "display:none" id="tr_kassir_bonus5"><td class="dlm" /><td id="t_kassir_caption5" class="size1">????</td><td id="t_kassir_bonus5" class="ar size1">0.00</td><td class="dlm" /></tr> | ||
| + | </table> | ||
| + | <div id="bonus" style="bottom:0; width: 300px; height: 100px;"></div> | ||
| + | <div id="ftr_gray1" class="pa ac gray1 total1 size3" style="bottom:60px; height:22px;">ИТОГО</div> | ||
| + | <div id="ftr_gray2" class="pa gray2" style="bottom:30px; height:30px;"></div><div id="ftr_gray3" class="pa gray3" style="bottom:0; height:30px;"></div> | ||
| + | <div id="ftr_total" class="pa ac total2 mark size4" style="bottom:0; height:60px;">0.00</div> | ||
| + | </body> | ||
| + | </html> | ||
</nowiki> | </nowiki> | ||
Версия 11:18, 4 февраля 2015
Содержание
Заменить версию Кассира
Заменить zkassa.exe на версию 2.17.9 от 25.09.2014 или выше.
Установить ТМС
- Создать новую ТМС в Кассире и назвать ее "Бонусы кассирам"
- Исходный код данной ТМС:
uses
Graphics, Controls, Forms, Dialogs, StdCtrls,
ComCtrls, ExtCtrls, ibquery, DB, ChequeList, FR,
ScriptRes, Barcode,ZKassa, StrUtils, Windows, Classes,
IBDataBase, SysUtils;
Procedure BonusRecalc;
var
iq: tibquery;
BONUS_CALCULATE_DAY: string;
i: integer;
begin
//Создаем соединение с базой
iq := tibquery.create(nil);
iq.transaction := CreateRT(CurrDB);
iq.transaction.starttransaction;
iq.active := False;
//Определяем день, с которого считать бонусы
iq.sql.text := 'select param_value from params where param_id=''BONUS_CALCULATE_DAY''';
iq.active := True;
//забираем данные
if iq.Eof then exit;
BONUS_CALCULATE_DAY:= Trim(iq.FieldByName('param_value').AsString);
//Определяем бонус за последний чек
iq.active := False;
iq.sql.text := 'select Round(coalesce(sum(bonus),0),2) as sum_bonus from DOCS d where d.id = '+
'(select max(id) from DOCS d2 where status = 1 and ( (doc_type = 3 and owner = ' + inttostr(userid) + ') or (doc_type = 9 and (select owner from docs d3 where d3.id = d2.parent_id) = ' + inttostr(userid) + ') ))'
iq.active := True;
TagSetContent(fmMain.ewbInfo, 't_bonus', StringReplace(iq.FieldByName('sum_bonus').AsString, '.', ',', 1) );
//Определяем суммарный бонус за смену
iq.active := False;
iq.sql.text := 'select Round(coalesce(sum(bonus),0),2) as sum_bonus from DOCS d where status = 1 and' +
'((doc_type = 3 and d.owner = ' + inttostr(userid) + ') or (doc_type = 9 and (select owner from docs d2 where d2.id = d.parent_id) = ' + inttostr(userid) + ')) and ' +
'd.commitdate between CURRENT_DATE || '' 00:00'' and CURRENT_DATE || '' 23:59''';
iq.active := True;
TagSetContent(fmMain.ewbInfo, 't_bonus_smena', StringReplace(iq.FieldByName('sum_bonus').AsString, '.', ',', 1) );
//Определяем суммарный бонус за месяц
iq.active := False;
iq.sql.text := 'select Round(coalesce(sum(bonus),0),2) as sum_bonus from DOCS d where status = 1 and' +
'((doc_type = 3 and d.owner = ' + inttostr(userid) + ') or (doc_type = 9 and (select owner from docs d2 where d2.id = d.parent_id) = ' + inttostr(userid) + ')) and ' +
'd.commitdate between '''+BONUS_CALCULATE_DAY+''' || ''.'' || iif('+BONUS_CALCULATE_DAY+' > EXTRACT(DAY from CURRENT_DATE), EXTRACT(MONTH from DATEADD(month, -1, CURRENT_DATE)),EXTRACT(MONTH from CURRENT_DATE)) || ''.'' || iif(1 = EXTRACT(MONTH from CURRENT_DATE), EXTRACT(YEAR from DATEADD(YEAR, -1, CURRENT_DATE)),EXTRACT(YEAR from CURRENT_DATE)) || '' 00:00''' +
' and CURRENT_DATE || '' 23:59''';
iq.active := True;
TagSetContent(fmMain.ewbInfo, 't_bonus_all', StringReplace(iq.FieldByName('sum_bonus').AsString, '.', ',', 1) );
//Определяем суммарную выручку за месяц по всем кассирам
iq.active := False;
iq.sql.text := 'select * from '+
'(select u.username, '+
' (select coalesce(-1*sum(summa),0) as summa_all from DOCS d Where d.status = 1 and d.commitdate between '''+BONUS_CALCULATE_DAY+''' || ''.'' || iif('+BONUS_CALCULATE_DAY+' > EXTRACT(DAY from CURRENT_DATE), EXTRACT(MONTH from DATEADD(month, -1, CURRENT_DATE)),EXTRACT(MONTH from CURRENT_DATE)) || ''.'' || iif(1 = EXTRACT(MONTH from CURRENT_DATE), EXTRACT(YEAR from DATEADD(YEAR, -1, CURRENT_DATE)),EXTRACT(YEAR from CURRENT_DATE)) || '' 00:00'' and CURRENT_DATE || '' 23:59'' and ' +
' ((doc_type = 3 and d.owner = u.id) or (doc_type = 9 and (select d2.owner from docs d2 where d2.id = d.parent_id)=u.id))) as summa_all '+
' from users u '+
' where u.status = 0 and exists(select * from GROUP_DETAIL where GROUPTABLE_ID = u.id and GROUPTABLE = ''USERS'' and GROUP_ID = -1) ) as data '+
' order by summa_all desc';
iq.active := True;
i:=0;
While not(iq.Eof) do
begin
i:=i+1;
TagSetContent(fmMain.ewbInfo, 't_kassir_caption'+IntToStr(i), iq.FieldByName('username').AsString);
TagSetContent(fmMain.ewbInfo, 't_kassir_bonus'+IntToStr(i), StringReplace(iq.FieldByName('summa_all').AsString, '.', ',', 1) );
// showmessage(iq.FieldByName('username').AsString + ':' +iq.FieldByName('sum_bonus').AsString);
iq.Next;
end
iq.active := False;
iq.transaction.free;
iq.free;
end;
Включить вызов ТМС
- Включить вызов ТМС из п.1 в "После печати очереди чеков" и "После смены позиции", p84u1 заменить на соответствующий из п.1.
- Затем Перекомпилировать скрипты.
uses Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, ibquery, DB, ChequeList, FR, ScriptRes, Barcode,ZKassa, StrUtils, Windows, Classes, IBDataBase, SysUtils, p84u1; begin BonusRecalc; end;
Отображение кол-ва бонус в окне информации о чеке
В кассире в правом окне сумм итогов чека заменить код на:
- Добавить .size1 {font-size:12px;} к строке:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
<meta charset="utf-8">
<script type="text/javascript" language="JavaScript">
function _show(id) {var el=document.getElementById(id); if (el!=undefined) {el.className=el.className.replace(/(?:^|\b)hide(?!\S)/g, "");}}
function _hide(id) {var el=document.getElementById(id); _show(id); if (el!=undefined) {el.className+=" hide";}}
function _setContent(id, content) {
var el=document.getElementById(id); if (el!=undefined) {el.innerHTML=content;}
if (id=='t_bonus_all') {
drawChart();
}
}
</script>
<script src="https://www.google.com/jsapi"></script>
<script type="text/javascript" language="JavaScript">
google.load("visualization", "1", {packages:["corechart"]});
google.setOnLoadCallback(function(){
setTimeout(function() { drawChart(); }, 100);
//drawChart();
});
function drawChart() {
//var t_kc1=document.getElementById("t_kassir_caption1").innerHTML; var t_kb1=document.getElementById("t_kassir_bonus1").innerHTML;
var t_kassir_caption1=document.getElementById("t_kassir_caption1").innerHTML; var t_kassir_bonus1=document.getElementById("t_kassir_bonus1").innerHTML;
var t_kassir_caption2=document.getElementById("t_kassir_caption2").innerHTML; var t_kassir_bonus2=document.getElementById("t_kassir_bonus2").innerHTML;
var t_kassir_caption3=document.getElementById("t_kassir_caption3").innerHTML; var t_kassir_bonus3=document.getElementById("t_kassir_bonus3").innerHTML;
var t_kassir_caption4=document.getElementById("t_kassir_caption4").innerHTML; var t_kassir_bonus4=document.getElementById("t_kassir_bonus4").innerHTML;
var t_kassir_caption5=document.getElementById("t_kassir_caption5").innerHTML; var t_kassir_bonus5=document.getElementById("t_kassir_bonus5").innerHTML;
var data = google.visualization.arrayToDataTable([
['ФИО', 'руб.'],
[t_kassir_caption1, parseFloat(t_kassir_bonus1)],
[t_kassir_caption2, parseFloat(t_kassir_bonus2)],
[t_kassir_caption3, parseFloat(t_kassir_bonus3)],
[t_kassir_caption4, parseFloat(t_kassir_bonus4)],
[t_kassir_caption5, parseFloat(t_kassir_bonus5)]
]);
var options = {
//title: 'Премии кассиров',
is3D: true,
pieResidueSliceLabel: 'Остальное'
};
var chart = new google.visualization.PieChart(document.getElementById('bonus'));
chart.draw(data, options);
}
</script>
</head>
<style type="text/css">
* {margin:0; padding:0; border:0; color:#626262; text-decoration:none; font-family:Arial, Helvetica, sans-serif; font-style:normal; font-weight:bold; font-size:12px; border-collapse:collapse; overflow:hidden;}
html {overflow:hidden;}
.size2 {font-size:14px;} .size3 {font-size:20px;} .size4 {font-size:50px;}
.ac {text-align:center;} .ar {text-align:right;}
.pa {position:absolute; left:0; width:100%;} .pr {position:relative; left:0; width:100%;}
.hide {display:none;} .mark {color:#CC4139;}
.total1 {font-family:"Courier New", Courier, monospace; color:#FFF;} .total2 {font-family:Impact;}
.red1 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FEEDCD", endColorstr="#FED78D");}
.red2 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FDC966", endColorstr="#FCA80C");}
.gray1 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#c8c8c8", endColorstr="#b0b0b0");}
.gray2 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#FFFFFF", endColorstr="#EAEAEA");}
.gray3 {filter:progid:DXImageTransform.Microsoft.gradient(startColorstr="#E4E4E4", endColorstr="#B8B8B8");}
.dlm {width:4px;}
</style>
<body>
<div id="fr_content" class="pr" style="height:54px;">
<div class="pa red1" style="top:0; height:50%;"></div>
<div class="pa red2" style="top:50%; height:50%;"></div>
<div class="pa ac" style="top:0; height:54px;">
<div id="fr_model" class="pr" style="height:33%; font-weight:normal;">ККМ не инициализирована</div>
<div id="fr_sess" class="pr" style="height:33%; font-weight:normal;">Смена: 0 (0/0), до конца 24 часа</div>
<div id="fr_total" class="pr mark" style="height:33%;">Чеков: 0, сумма д/я = 0.00</div>
</div>
</div>
<div class="pr" style="height:6px;"></div>
<table id="tbl_info" style="width:100%;">
<tr id="tr_pos"><td class="dlm" /><td id="t_pos_cap" class="size2">Позиций</td><td id="t_pos" class="ar size3">0</td><td class="dlm" /></tr>
<tr id="tr_sum"><td class="dlm" /><td id="t_sum_cap" class="size2">Сумма</td><td id="t_sum" class="ar size3">0.00</td><td class="dlm" /></tr>
<tr id="tr_dsc"><td class="dlm" /><td id="t_dsc_cap" class="size2">Скидка</td><td id="t_dsc" class="ar size3">0.00</td><td class="dlm" /></tr>
<tr id="tr_cash"><td class="dlm" /><td id="t_cash_cap" class="mark size2">Наличные</td><td id="t_cash" class="ar mark size3">0.00</td><td class="dlm" /></tr>
<tr id="tr_del"><td class="dlm" /><td id="t_del_cap" class="mark size2">Сдача</td><td id="t_del" class="ar mark size3">0.00</td><td class="dlm" /></tr>
<tr id="tr_bonus"><td class="dlm" /><td id="t_bonus_cap" class="size1">Премия за посл. чек</td><td id="t_bonus" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr id="tr_bonus"><td class="dlm" /><td id="t_bonus_cap" class="size1">Премия за день</td><td id="t_bonus_smena" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr id="tr_bonus_all"><td class="dlm" /><td id="t_bonus_all_cap" class="size1">Премия за мес.</td><td id="t_bonus_all" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr style = "display:none" id="tr_kassir_bonus1"><td class="dlm" /><td id="t_kassir_caption1" class="size1">????</td><td id="t_kassir_bonus1" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr style = "display:none" id="tr_kassir_bonus2"><td class="dlm" /><td id="t_kassir_caption2" class="size1">????</td><td id="t_kassir_bonus2" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr style = "display:none" id="tr_kassir_bonus3"><td class="dlm" /><td id="t_kassir_caption3" class="size1">????</td><td id="t_kassir_bonus3" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr style = "display:none" id="tr_kassir_bonus4"><td class="dlm" /><td id="t_kassir_caption4" class="size1">????</td><td id="t_kassir_bonus4" class="ar size1">0.00</td><td class="dlm" /></tr>
<tr style = "display:none" id="tr_kassir_bonus5"><td class="dlm" /><td id="t_kassir_caption5" class="size1">????</td><td id="t_kassir_bonus5" class="ar size1">0.00</td><td class="dlm" /></tr>
</table>
<div id="bonus" style="bottom:0; width: 300px; height: 100px;"></div>
<div id="ftr_gray1" class="pa ac gray1 total1 size3" style="bottom:60px; height:22px;">ИТОГО</div>
<div id="ftr_gray2" class="pa gray2" style="bottom:30px; height:30px;"></div><div id="ftr_gray3" class="pa gray3" style="bottom:0; height:30px;"></div>
<div id="ftr_total" class="pa ac total2 mark size4" style="bottom:0; height:60px;">0.00</div>
</body>
</html>
- Скопировать настройки для всех пользователей
Расчет премии
Кассир -> настройки -> администратор -> бонусы -> добавить "Премия" с текстом:
result:= ::summa*-0.04; //Премия 4% от суммы чека
или
result:= (::summa - ::summa_o)*-0.2; //Премия 20% от прибыли
Настройка с какого дня расчитывать премию
- Выполнить запрос, который добавляет новый параметр в менеджер "С какого дня месяца рассчитывать премию кассирам?"
INSERT INTO PARAMS (PARENT_ID, PARAM_ID, PARAM_CAPTION, PARAM_TYPE, PARAM_VALUE, AUDIT_ID, IMAGEINDEX, STATUS, INSERTDT, SORTING, PARAM_TYPE_DATA, PACKET) VALUES (-30, 'BONUS_CALCULATE_DAY', 'С какого дня месяца рассчитывать премию кассирам? (от 1 до 28)', 2, '20', 5082, 0, 0, '30-JUL-2014 08:34:35.812', 4, NULL, 16685);
Добавить отчет по премиям
- В папку с формами скопировать bonus.cffr3 и добавить его спомощью sql-запроса:
INSERT INTO REPORTS (PARENT_ID, STATUS, REPORTTYPE, SORTING, CAPTION, PARAMS, DATA, WDICT_ID) VALUES (0, 0, 0, 12, 'Премии кассирам', '[freereport] tmplpath=bonus.cffr3', NULL, NULL);
Как себя проверить
Проверить все можно отбив любой чек на кассе, при этом должен расчитаться бонус в АРМ Кассира и в отчете "Премии кассирам" в АРМ Менеджера.
Теги: премии, бонусы кассирам, кассиры, продавцы, з/п, зарплата, заработная плата, материальное стимулирование