មូលដ្ឋាន និងបច្ចេកវិទ្យា R-Keeper
បណ្តា SCRIPT សំរាប់ជួយ ដោះស្រាយបញ្ហា មួយចំនួន និង តំរូវការភ្លាមៗ របស់អតិថជន ទំព័រទាំងមូល
លិបិក្រមអត្ថបទ
បណ្តា script សំរាប់ជួយដោះស្រាយបញ្ហាមួយចំនួននិងតំរូវការភ្លាមៗរបស់អតិថជន
ទំព័រទាំងមូល
ឧទាហរណ៍ពីតំរូវការមួយចំនួនរបស់អតិថជន R-Keeper
Script សំរាប់ត្រួតពិនិត្យម្ហូបទាំងឡាយនៅក្នុងការកុម្មង់, ប្រសិនបើមុខម្ហូបណាមាន “តំលៃបើក” និងនៅពេលបញ្ចូល បុគ្គលិកភ្លេចដាក់តំលៃ (តំលៃធម្មតា = 0) នោះកម្មវិធីនឹងលេចចេញនូវសារប្រកាសប្រាប់ដល់បុគ្គលិកអោយបានដឹងថាត្រូវតែដាក់តំលៃចូលទើបអាចគិតលុយបាន។ បើមិនដូច្នេះទេនោះប្រព័ន្ធនឹងមិនអនុញ្ញាត្តអោយអ្នកគិតលុយទូទាត់បានឡើយ។ ដូចគ្នាដែរយើងអាចបន្ថែមscript នេះនៅពេលព្រីន Bill។ ក្នុងករណីទូទាត់ត្រូវតែដាក់លក្ខខ័ណ្ឌទើបទទួនបាន Operation = rkoCalcOrder និងនៅក្នុងករណីទូទាត់Billត្រូវតែដាក់លក្ខខ័ណ្ឌ rkoPrintBill.
ឧទាហរណ៍ពីតំរូវការមួយចំនួនរបស់អតិថជន R-Keeper
Script សំរាប់ត្រួតពិនិត្យម្ហូបទាំងឡាយនៅក្នុងការកុម្មង់, ប្រសិនបើមុខម្ហូបណាមាន “តំលៃបើក” និងនៅពេលបញ្ចូល បុគ្គលិកភ្លេចដាក់តំលៃ (តំលៃធម្មតា = 0) នោះកម្មវិធីនឹងលេចចេញនូវសារប្រកាសប្រាប់ដល់បុគ្គលិកអោយបានដឹងថាត្រូវតែដាក់តំលៃចូលទើបអាចគិតលុយបាន។ បើមិនដូច្នេះទេនោះប្រព័ន្ធនឹងមិនអនុញ្ញាត្តអោយអ្នកគិតលុយទូទាត់បានឡើយ។ ដូចគ្នាដែរយើងអាចបន្ថែមscript នេះនៅពេលព្រីន Bill។ ក្នុងករណីទូទាត់ត្រូវតែដាក់លក្ខខ័ណ្ឌទើបទទួនបាន Operation = rkoCalcOrder និងនៅក្នុងករណីទូទាត់Billត្រូវតែដាក់លក្ខខ័ណ្ឌ rkoPrintBill.
procedure CheckOperation1001433(Operation, Parameter: integer; var ValidResult, CallNextTime: boolean);
var
i: integer;
it: TCheckItem;
begin
// usual important check
if not RkCheck.Valid then Exit;
if Operation=rkoCalcOrder then //script is performed
begin
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do //cycle for all lines in order
begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(TObject(it), 'TDish') then //element of current line is dish (not discount, markup, etc)
begin
//check if dish has property 'open price' and price=0
if (TRK7MenuItem(it.RefItem).OpenPrice = true) and (TDish(it).PaySum = 0) then
begin
gui.ShowMessage('Vui lòng nhập giá trước khi thanh toán!')
ValidResult := false; //forbids to calculate order
end;
end;
end;
end;
end;
Script នេះសំរាប់ច្រោះយកបញ្ជីវិក្កយបត្របណ្តោះអាសន្ន ដើម្បីត្រួតពិនិត្យបញ្ជីឈ្មោះនៅក្នុងម៉ាស៊ីន POSនោះប្រព័ន្ធនឹងបង្ហាញពីការកុម្មង់ទាំងឡាយ ដែលដាក់នៅតាមស្ថានីយ៍។
នៅក្នង MainPanel (TButtonPanel) phần Events->OnSuitableObject trên form “វិក្កយបត្រត្រូបានបិទ”.
procedure MainPanelOnSuitableObject(Sender: TBasePanel; Obj: TObject; var Suitable: boolean);
begin
if Sys.ObjectInheritsFrom(Obj, 'TCheckBtnLine') then
Suitable := TCheckBtnLine(Obj).CloseStation = ThisStation;
end;
តំរូវការមួយចំនួនរបស់អតិថជន R-Keeper
ប្រសិនបើនៅក្នុងការកុម្មង់មាន Combo ម្ហូប នោះវាមិនអនុញ្ញាតអោយប្រើប្រាស់នូវការបញ្ចុះតំលៃ (Discounts)នៅតទៅទៀតទេ។ ហេតុផលមកពី: Combo ម្ហូបគឺជារូបមន្តមួយជាស្រេចទៅហើយ។
var i: integer;
it: TCheckItem;
//----
begin
if (AEditType = etInsert) and SYS.ObjectInheritsFrom(AObjectAft, 'TDiscountItem') then begin
if TDiscountItem(AObjectAft).Localization = chlDish then begin
// không cho phép áp dụng giảm giá trên combo
if SYS.ObjectInheritsFrom(TObject(RKCheck.CurrentCheckItem), 'TDish') then
if TDish(RKCheck.CurrentCheckItem).IsComboComp then begin
AAllow := False;
AMessage := 'It is impossible to add discount for combo component';
end else if TDish(RKCheck.CurrentCheckItem).IsCombo then begin
AAllow := False;
AMessage := 'It is impossible to add discount for combo dish';
end;
end else begin
// không cho phép áp dụng giảm giá trên order nếu có combo trong order đó
for i := 0 to RKCheck.CurrentOrder.Sessions.LinesCount - 1 do begin
it := RKCheck.CurrentOrder.Sessions.Lines[i];
if SYS.ObjectInheritsFrom(TObject(it), 'TDish') then begin
if TDish(it).IsCombo then begin
AAllow := False;
AMessage := 'It is impossible to add discount since there is combo in order';
Exit;
end;
end;
end;
end;
end;
end;
SCRIPT IN R-KEEPER 7
អត្ថបទពិពណ៌នាអំពីបណ្តាមុខសញ្ញា និង Rank ក៏ដូចជាការឧទាហរណ៍គំរូជាដើម ដើមី្ប Programmer និងបុគ្គលិក IT អាចស្រាវជ្រាវអភិវឌ្ឍន៍ / Profiles / អាចផ្លាស់ប្តូរប្រព័ន្ធ POS អោយសមស្របជាមួយរូបសំណាក់ពាណិជ្ជកម្ម ក៏ដូចជាការដោះស្រាយរាល់ករណីដែលកើតឡើងរបស់ម្ចាស់វិនិយោគដែលមិនចាំបាច់ដឹងនឹងកូដរបស់ផ្នែកទន់ ។
បច្ចេកវិទ្យា ចំបង R-KEEPER
- ប្រព័ន្ធ R-Keeper 7 រួមានបណ្តាញគ្រប់គ្រងទិន្នន័យ UDB (គឺជា database ពិសេស ដែលបង្កើតឡើងដោយក្រុមហ៊ុន R-Keeper) មានលក្ខណៈការពារសុវត្ថភាពនិងស្ថេរភាពខ្ពស់។
- បណ្តាផ្នែកបង្កើត interface របស់អ្នកប្រើប្រាស់
- ផ្នែកគ្រប់គ្រង business process ដើម្បីបង្កើតបណ្តា work-flow សមស្របជាមួយទំរង់ទាំងឡាយ។
- ផ្នែកគ្រប់គ្រង និងបង្កើត Trade Group សំរាប់បង្កើតនូវកម្មវត្ថុពាណិជ្ជកម្មរបស់ភោជនីយដ្ឋានមួយ។
- ផ្នែកគ្រប់គ្រង និងបង្កើត interface (R-Keeper Form)។
- ផ្នែកគ្រប់គ្រង និងបង្កើតបណ្តាតំបន់ដែលផ្ទុកនូវការជ្រើសរើស(R-Keeper Selector)
- ផ្នែក R-Keeper Functional key