?? unposau.pas
字號:
unit UNPOSAU;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ToolWin, ComCtrls, ExtCtrls, StdCtrls, DBCtrls, DB, DBTables;
PROCEDURE ED_INPUT_SETFOCUS; // SET FOCUSE
PROCEDURE VAR_INI;
FUNCTION FIND_BMEM(STR:STRING; KIND:INTEGER) :STRING; //找會員
FUNCTION FIND_BGDS(STR:STRING; KIND:INTEGER) :STRING; //找產(chǎn)品
PROCEDURE CHECK_PRICE; //檢查價錢
PROCEDURE GRID_ADD;
FUNCTION RE_INPUT(T_BGENO:STRING):BOOLEAN; //重復刷
PROCEDURE FINISHI; //完成結(jié)帳
PROCEDURE FINISHI_SAVE_POSA; //完成結(jié)帳_ POSA 主表
PROCEDURE FINISHI_SAVE_POSB; //完成結(jié)帳_ POSB 明細
PROCEDURE FINISHI_SAVE_POSG; //完成結(jié)帳_ POSG 禮券
PROCEDURE FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
PROCEDURE FINISHI_PRN_IVOICE_CONTENT(T_BGENO,T_BGNAM,T_BGCNT,T_BGCOS,T_BGCOT:STRING); //完成結(jié)帳_ 打印發(fā)票 項目
PROCEDURE FINISHI_PRN_IVOICE_END; //完成結(jié)帳_ 打印發(fā)票 結(jié)尾
PROCEDURE FINISHI_DSP_TOTAL; //完成結(jié)帳_ 價格顯示
PROCEDURE FINISHI_OPEN_CASHBOX;//開錢柜
PROCEDURE INCREASE_INV_NO;//累加發(fā)票號碼
implementation
uses INIFILES, FILECTRL, SYSINI, MAINU,
UNPOSA,
UNPOSAF1,
UNPOSAGIFT,
URINVOICE,
URDSP, // 客顯
UN_UTL, DB_UTL, FM_UTL;
PROCEDURE ED_INPUT_SETFOCUS; // SET FOCUSE
BEGIN
WITH FMPOSA DO
BEGIN
IF _TB_CLEAR_INPUT = TRUE THEN ED_INPUT.TEXT := '';
ED_INPUT.SetFocus;
ED_INPUT.SelectAll;
END;
END;
PROCEDURE VAR_INI;
VAR I : INTEGER;
BEGIN
WITH FMPOSA DO
BEGIN
// 前臺變量 ==================================================================
_TB_PAENO := ''; //此次結(jié)帳編號
_TB_PACIV := ''; //統(tǒng)一編號
_TB_FORCUS_ROW := 0 ; //所在列數(shù)
_TB_RUNLG_TMECNT := 0 ; //跑馬燈計數(shù)器
_TB_RUNLG_PICCNT := 0 ; //按 跑馬燈 PIC計數(shù)
_TB_BACK_MODE := FALSE; //退貨模式
IF _TB_DISC_ALL=FALSE THEN _TB_DISC_PERCENT := 1 ; //打折比例
_TB_DISC_PRICE := 0 ; //折扣金額
_TB_LAST_PRICE := 0 ; //去尾數(shù)另外打印
//信用卡資料======================================
_TB_CARD_PACNO := ''; //信用卡號
_TB_CARD_PACDT := ''; //信用卡到期日
_TB_CARD_PACNA := 0 ; //信用卡人姓名
_TB_CARD_PACKD := ''; //信用卡類別
//禮券資料======================================
_TB_GIFT_PGCNO := ''; //禮券號
_TB_GIFT_PGCDT := ''; //禮券到期日
_TB_GIFT_PGCNA := 0 ; //禮券人姓名
_TB_GIFT_PGCKD := ''; //禮券類別
_TB_GIFT_PRICE := 0 ; //禮券總金額
_TB_TOTAL_REC := 0 ; //總賣出筆數(shù)
_TB_TOTAL_PRICE := 0 ; //總賣出金額
_TB_TOTAL_NOPAY := 0 ; //不用總賣出金額 (信用卡+禮券+折扣)
//會員資料======================================
_TB_BMEM_BMENO := ''; //會員姓名
_TB_BMEM_BMNAM := ''; //會員姓名
_TB_BMEM_BMLVE := 0 ; //會員等級
_TB_BMEM_BMBYR := 0 ; //年消費等級
_TB_BMEM_BMBTO := 0 ; //總消費等級
_TB_BMEM_FOUND := FALSE ; //找到會員
//產(chǎn)品資料======================================
_TB_BG_BGENO := '';
_TB_BG_BGNAM := '';
_TB_BG_BGKIN := ''; //產(chǎn)品分類
_TB_BG_BGPST := 0 ; //標準價格
_TB_BG_BGPVP := 0 ; //貴賓價格
_TB_BG_BGPMM := 0 ; //會員價格
_TB_BG_BGCST := 0 ; //特惠價格1
_TB_BG_BGOTH := 0 ; //特惠價格2
_TB_BG_FOUND := FALSE;//找到產(chǎn)品
_TB_BG_CNT := 0; //此筆數(shù)量
_TB_BG_SPRICE := 0; //此筆單價
_TB_BG_TPRICE := 0; //此筆單價
_TB_BG_BGQTS := 0; //安存數(shù)量
_TB_BG_BGQTN := 0; //庫存數(shù)量
_TB_BG_BGCOS := 0; //成本價
//其它功能
_TB_INV_PAGE := 0; //發(fā)票頁
//顯示器資料======================================
_TB_DSP_CHANGED := FALSE;
// 清除 POSA OUT GRID ==================================================================
FOR I := 1 TO 200 DO OUT_GRID.Rows[I].Text := '';
// 清除 GIFT GRID ==================================================================
IF FormExists('FMPOSAGIFT')=TRUE THEN FMPOSAGIFT.Release;
ED_INPUT_SETFOCUS;
// 清除 客顯 ==================================================================
DSP_TITLE;
DSP_TEXT1('','R');
DSP_TEXT2('','R');
// 清除 客顯 ==================================================================
END;
END;
//讀取會員資料=============================================
FUNCTION FIND_BMEM(STR:STRING; KIND:INTEGER) :STRING; //找會員
VAR QCHECK : TQUERY;
begin
TRY
QCHECK := TQUERY.Create(APPLICATION.Owner);
QCHECK.DatabaseName := 'MAIN';
QCHECK.SQL.Clear;
QCHECK.SQL.Add('SELECT * FROM BMEM ');
QCHECK.SQL.Add('WHERE BMENO IS NOT NULL');
IF KIND = 1 THEN QCHECK.SQL.Add(' AND BMENO = '''+ STR +''' ');
IF KIND = 2 THEN QCHECK.SQL.Add(' AND BMNAM LIKE ''%'+ STR +'%'' ');
IF KIND = 3 THEN QCHECK.SQL.Add(' AND (BMTL1 LIKE ''%'+ STR +'%'' OR BMTL2 LIKE ''%'+ STR +'%'' OR BMTL3 LIKE ''%'+ STR +'%'' ) ');
QCHECK.SQL.Add(' ORDER BY BMENO, BMNAM ');
QCHECK.CLOSE; QCHECK.OPEN;
IF QCHECK.Eof = FALSE THEN
BEGIN
_TB_BMEM_FOUND := TRUE;
_TB_BMEM_BMENO := QCHECK.FieldByName('BMENO').AsString; //會員姓名
_TB_BMEM_BMNAM := QCHECK.FieldByName('BMNAM').AsString; //會員姓名
_TB_BMEM_BMLVE := QCHECK.FieldByName('BMLVE').AsINTEGER; //會員等級
_TB_BMEM_BMBYR := QCHECK.FieldByName('BMBYR').AsINTEGER; //年消費等級
_TB_BMEM_BMBTO := QCHECK.FieldByName('BMBTO').AsINTEGER; //總消費等級
_TB_BMEM_BMCRD := EDATE_TO_CDATE(QCHECK.FieldByName('BMCRD').AsString);
_TB_BMEM_BMDAT := EDATE_TO_CDATE(QCHECK.FieldByName('BMDAT').AsString);
// 客顯 ===============================================================
DSP_TITLE;
DSP_TEXT1('Member NO:' +FILL_STR(' ', _TB_BMEM_BMENO, 'L', 10 ) ,'R');
DSP_TEXT2('LVE:' +FILL_STR(' ', INTTOSTR(_TB_BMEM_BMLVE), 'L', 2 )+' TOTAL: '+FILL_STR(' ', INTTOSTR(_TB_BMEM_BMBTO), 'L', 6 ) ,'R');
// 客顯 ===============================================================
END ELSE BEGIN
_TB_BMEM_FOUND := FALSE; //找到會員
_TB_BMEM_BMENO := '' ;
_TB_BMEM_BMNAM := '' ;
_TB_BMEM_BMLVE := 0;
_TB_BMEM_BMBYR := 0;
_TB_BMEM_BMBTO := 0;
_TB_BMEM_BMCRD := ''; //發(fā)卡日
_TB_BMEM_BMDAT := ''; //入會日
// 客顯 ===============================================================
DSP_TITLE;
DSP_TEXT1('Can''t find this NO! ' ,'R');
DSP_TEXT2('Please try again! ' ,'R');
// 客顯 ===============================================================
END;
RESULT := QCHECK.FieldByName('BMENO').AsString;
FINALLY
QCHECK.Free;
END;
end;
FUNCTION FIND_BGDS(STR:STRING; KIND:INTEGER) :STRING; //找產(chǎn)品
VAR QCHECK : TQUERY;
begin
GetLocalTime(SystemDate); //取系統(tǒng)日期
FMPOSA.ED_START.Caption := INTTOSTR(SystemDate.wMinute)+'分'+INTTOSTR(SystemDate.wSecond)+'秒'+INTTOSTR(SystemDate.wMilliseconds);
TRY
QCHECK := TQUERY.Create(APPLICATION.Owner);
QCHECK.DatabaseName := 'MAIN';
QCHECK.SQL.Clear;
QCHECK.SQL.Add('SELECT * FROM BGDS ');
QCHECK.SQL.Add('WHERE BGENO IS NOT NULL');
IF (COPY(STR,1,1)='@') THEN //單品鍵
BEGIN
QCHECK.SQL.Add(' AND BGSIN = '''+ STR +''' ');
END ELSE BEGIN
IF KIND <= 0 THEN KIND := 1;
IF KIND >= 3 THEN KIND := 1;
IF KIND = 1 THEN QCHECK.SQL.Add(' AND BGENO = '''+ STR +''' '); //查編號
IF KIND = 2 THEN QCHECK.SQL.Add(' AND BGNAM LIKE ''%'+ STR +'%'' '); //查名稱
END;
QCHECK.CLOSE;
QCHECK.OPEN;
_TB_BG_BGENO := QCHECK.FieldByName('BGENO').AsString;
_TB_BG_BGNAM := QCHECK.FieldByName('BGNAM').AsString;
_TB_BG_BGKIN := QCHECK.FieldByName('BGKIN').AsString; //產(chǎn)品分類
_TB_BG_BGQTS := QCHECK.FieldByName('BGQTS').AsInteger;//安存數(shù)量
_TB_BG_BGQTN := QCHECK.FieldByName('BGQTN').AsInteger;//庫存數(shù)量
_TB_BG_BGCOS := QCHECK.FieldByName('BGCOS').AsFloat; //成本價
_TB_BG_BGPST := QCHECK.FieldByName('BGPST').AsFloat; //標準價格
_TB_BG_BGPVP := QCHECK.FieldByName('BGPVP').AsFloat; //貴賓價格
_TB_BG_BGPMM := QCHECK.FieldByName('BGPMM').AsFloat; //會員價格
_TB_BG_BGCST := QCHECK.FieldByName('BGCST').AsFloat; //特惠價格1
_TB_BG_BGOTH := QCHECK.FieldByName('BGOTH').AsFloat; //特惠價格2
IF QCHECK.Eof = FALSE THEN _TB_BG_FOUND := TRUE ELSE _TB_BG_FOUND := FALSE; //找到產(chǎn)品
GetLocalTime(SystemDate); //取系統(tǒng)日期
FMPOSA.ED_END.Caption := INTTOSTR(SystemDate.wMinute)+'分'+INTTOSTR(SystemDate.wSecond)+'秒'+INTTOSTR(SystemDate.wMilliseconds);
// 客顯 ==================================================================
DSP_TITLE;
DSP_TEXT1(_TB_BG_BGENO,'R');
DSP_TEXT2(FLOATTOSTR(_TB_BG_BGPST),'R');
// 客顯 ==================================================================
RESULT := QCHECK.FieldByName('BGENO').AsString;
FINALLY
QCHECK.Free;
END;
END;
PROCEDURE CHECK_PRICE; //檢查價錢
BEGIN
_TB_BG_CNT := 1;
_TB_BG_SPRICE := _TB_BG_BGPST;
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -