⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unposau.pas

📁 超市管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
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 + -