Global R-Keeper:

មូលដ្ឋាន​ និងបច្ចេកវិទ្យា 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

ទីតាំងរបស់យើង