📄 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; //找产品
PROCEDURE CHECK_PRICE; //检查价钱
PROCEDURE GRID_ADD;
FUNCTION RE_INPUT(T_BGENO:STRING):BOOLEAN; //重复刷
PROCEDURE FINISHI; //完成结帐
PROCEDURE FINISHI_SAVE_POSA; //完成结帐_ POSA 主表
PROCEDURE FINISHI_SAVE_POSB; //完成结帐_ POSB 明细
PROCEDURE FINISHI_SAVE_POSG; //完成结帐_ POSG 礼券
PROCEDURE FINISHI_PRN_IVOICE_TITLE; //完成结帐_ 打印发票 开头
PROCEDURE FINISHI_PRN_IVOICE_CONTENT(T_BGENO,T_BGNAM,T_BGCNT,T_BGCOS,T_BGCOT:STRING); //完成结帐_ 打印发票 项目
PROCEDURE FINISHI_PRN_IVOICE_END; //完成结帐_ 打印发票 结尾
PROCEDURE FINISHI_DSP_TOTAL; //完成结帐_ 价格显示
PROCEDURE FINISHI_OPEN_CASHBOX;//开钱柜
PROCEDURE INCREASE_INV_NO;//累加发票号码
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 := ''; //此次结帐编号
_TB_PACIV := ''; //统一编号
_TB_FORCUS_ROW := 0 ; //所在列数
_TB_RUNLG_TMECNT := 0 ; //跑马灯计数器
_TB_RUNLG_PICCNT := 0 ; //按 跑马灯 PIC计数
_TB_BACK_MODE := FALSE; //退货模式
IF _TB_DISC_ALL=FALSE THEN _TB_DISC_PERCENT := 1 ; //打折比例
_TB_DISC_PRICE := 0 ; //折扣金额
_TB_LAST_PRICE := 0 ; //去尾数另外打印
//信用卡资料======================================
_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 ; //总卖出笔数
_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 ; //找到会员
//产品资料======================================
_TB_BG_BGENO := '';
_TB_BG_BGNAM := '';
_TB_BG_BGKIN := ''; //产品分类
_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;//找到产品
_TB_BG_CNT := 0; //此笔数量
_TB_BG_SPRICE := 0; //此笔单价
_TB_BG_TPRICE := 0; //此笔单价
_TB_BG_BGQTS := 0; //安存数量
_TB_BG_BGQTN := 0; //库存数量
_TB_BG_BGCOS := 0; //成本价
//其它功能
_TB_INV_PAGE := 0; //发票页
//显示器资料======================================
_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 := ''; //发卡日
_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; //找产品
VAR QCHECK : TQUERY;
begin
GetLocalTime(SystemDate); //取系统日期
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; //产品分类
_TB_BG_BGQTS := QCHECK.FieldByName('BGQTS').AsInteger;//安存数量
_TB_BG_BGQTN := QCHECK.FieldByName('BGQTN').AsInteger;//库存数量
_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; //找到产品
GetLocalTime(SystemDate); //取系统日期
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 + -