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

📄 unposau.pas

📁 超市管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
      T_BGNAM := OUT_GRID.Cells[2,I];//产品名称
      T_BGCNT := OUT_GRID.Cells[3,I];//产品数量
      T_BGCOS := OUT_GRID.Cells[4,I];//产品单价
      T_BGCOT := OUT_GRID.Cells[5,I];//产品总价
      T_BGQTN := OUT_GRID.Cells[6,I];//仓库数量
      T_BGKIN := OUT_GRID.Cells[7,I];//产品分类
      QCHECK.ParamByName('PAENO').AsString  := _TB_PAENO;                  //销售编号
      QCHECK.ParamByName('PBENO').AsString  := T_PBENO;                    //销售项次
      QCHECK.ParamByName('BGQTN').AsFloat   := STRTOFLOATDEF(T_BGQTN,-999);//仓库数量
      QCHECK.ParamByName('BGENO').AsString  := T_BGENO;                    //产品编号
      QCHECK.ParamByName('BGCNT').AsInteger := STRTOINTDEF  (T_BGCNT,1);       //产品数量
      QCHECK.ParamByName('BGCOS').AsFloat   := STRTOFLOATDEF(T_BGCOS,0);       //产品单价
      QCHECK.ParamByName('BGCOT').AsFloat   := STRTOFLOATDEF(T_BGCOT,0);       //产品小计
      TRY QCHECK.ExecSQL; except SHOWMESSAGE('POSB 无法新增!');   end;

      //更新库存资料 -分类999不更新库存
      IF T_BGKIN <> '999' THEN
         BEGIN
         QUPD.SQL.Clear;
         QUPD.SQL.ADD('UPDATE BGDS SET');
         QUPD.SQL.ADD(' BGQTN = BGQTN - '+T_BGCNT+' ,');
         QUPD.SQL.ADD(' BGDTC = '+_DT+ DATETOSTR(_TB_INSERT_DATE)  +_DT+' ');
         QUPD.SQL.ADD(' WHERE BGENO = '''+T_BGENO+'''');
         try QUPD.ExecSQL;  except SHOWMESSAGE('BGDS_BGQTN 无法更新!');   end;
         END;

      IF TRIM(OUT_GRID.Cells[1,I+1]) =  '' THEN BREAK;
      END;
    END;
  FINALLY
    QCHECK.Free;
    QUPD  .Free;
  END;
  
END;

PROCEDURE FINISHI_SAVE_POSG;   //完成结帐_ POSG 礼券
VAR QCHECK  : TQUERY;
    I : INTEGER;
    T_PGENO : STRING;
BEGIN
  IF FormExists('FMPOSAGIFT')=FALSE THEN EXIT;

  TRY
   QCHECK := TQUERY.Create(APPLICATION.Owner);
   QCHECK.DatabaseName := 'MAIN';
   QCHECK.SQL.CLEAR;
   QCHECK.SQL.Add('INSERT INTO POSG');
   QCHECK.SQL.Add(' ( PAENO, PGITM, PGENO, PGDAT, PGCOS, PGKND ) ');
   QCHECK.SQL.Add('   VALUES ');
   QCHECK.SQL.Add(' (:PAENO,:PGITM,:PGENO,:PGDAT,:PGCOS,:PGKND ) ');

   // 礼券的资料
   FOR I := 1 TO FMPOSAGIFT.GIFT_GRID.RowCount-1 DO
     BEGIN
     IF TRIM( FMPOSAGIFT.GIFT_GRID.Cells[3,I] ) = '' THEN BREAK;
     T_PGENO := TABLEFINDMAXITM('POSG','PAENO',_TB_PAENO,'PGITM',3,1);  //销售ITEM
     QCHECK.ParamByName('PAENO').AsString   := _TB_PAENO;                 //销售编号
     QCHECK.ParamByName('PGITM').AsString   := T_PGENO;                   //销售项次
     QCHECK.ParamByName('PGENO').AsString   := FMPOSAGIFT.GIFT_GRID.Cells[0,I];   //礼券编号
     IF FMPOSAGIFT.GIFT_GRID.Cells[1,I] <> '' THEN
          QCHECK.ParamByName('PGDAT').AsDATETIME := STRTODATE( CDATE_TO_EDATE(FMPOSAGIFT.GIFT_GRID.Cells[1,I]) )       //礼券到期日
     ELSE QCHECK.ParamByName('PGDAT').AsDATETIME := STRTODATE( '1900/1/1');
     QCHECK.ParamByName('PGCOS').AsFloat    := STRTOFLOATDEF(      FMPOSAGIFT.GIFT_GRID.Cells[3,I], 0);   //礼券金额
     QCHECK.ParamByName('PGKND').AsString   := FMPOSAGIFT.GIFT_GRID.Cells[2,I];   //礼券类别
     TRY QCHECK.ExecSQL; except SHOWMESSAGE('POSG 礼券 无法新增!!');   end;
     END;

  FINALLY
   QCHECK.Free;
  END;
END;

PROCEDURE FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
VAR I, J : INTEGER;
BEGIN
  //发票排版资料 抬头 ==================================
  IF INVOICE_COUNTER = 0 THEN
     BEGIN
     INCREASE_INV_NO;//累加发票号码

     IF INVOICE_PRINTER = 4 THEN    // EPSON RP-U420-110
        BEGIN
        INVOICE_IV_TEXT('');
        INVOICE_IV_TEXT('');
        INVOICE_IV_TEXT('');
        INVOICE_IV_TEXT('');
        END;

     // 发票 TITLE 设置
     FOR I := 1 TO _TB_INV_SET_IV_TS1 DO INVOICE_IV_INV_LINEFEED;
     IF TRIM(_TB_INV_SET_IV_TC1) <> '' THEN INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_TC1);
     FOR I := 1 TO _TB_INV_SET_IV_TS2 DO INVOICE_IV_INV_LINEFEED;
     IF TRIM(_TB_INV_SET_IV_TC2) <> '' THEN INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_TC2);

     // 必定打印部份
     INVOICE_IV_INV_TEXT(DATETOSTR(_TB_INSERT_DATE) +' '+ TIMETOSTR(TIME));
     INVOICE_IV_INV_TEXT('店'+ _SYS_RBPST+'机'+_TB_NUMBER+'序'+_TB_PAENO);
     INVOICE_IV_INV_TEXT('员'+_TB_USER_NUMBER +' -'+ _TB_INV_NO  +'- 页'+INTTOSTR(_TB_INV_PAGE ));
     IF TRIM(_TB_PACIV) <> '' THEN INVOICE_IV_INV_TEXT('统一编号: '+_TB_PACIV);

     END;
  // 打印开头 ================================================================
END;


PROCEDURE FINISHI_PRN_IVOICE_CONTENT(T_BGENO,T_BGNAM,T_BGCNT,T_BGCOS,T_BGCOT:STRING);  //完成结帐_ 打印发票 项目
VAR T_INV_C1, T_INV_C2, T_INV_C3, T_INV_C4, T_INV_C5, T_INV_C6, T_INV_C7 : STRING;
BEGIN
  //发票排版资料 内容 ==================================
  T_INV_C1 := '';
  IF _TB_INV_SET_IV_CC1 = 1 THEN T_INV_C1 := T_BGENO ;
  IF _TB_INV_SET_IV_CC1 = 2 THEN T_INV_C1 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGID1');
  IF _TB_INV_SET_IV_CC1 = 3 THEN T_INV_C1 := T_BGNAM ;
  IF _TB_INV_SET_IV_CC1 = 4 THEN T_INV_C1 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGKIN');
  IF _TB_INV_SET_IV_CC1 = 5 THEN T_INV_C1 := T_BGCNT ;
  IF _TB_INV_SET_IV_CC1 = 6 THEN T_INV_C1 := T_BGCOS ;
  IF _TB_INV_SET_IV_CC1 = 7 THEN T_INV_C1 := T_BGCOT ;
  T_INV_C2 := '';
  IF _TB_INV_SET_IV_CC2 = 1 THEN T_INV_C2 := T_BGENO ;
  IF _TB_INV_SET_IV_CC2 = 2 THEN T_INV_C2 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGID1');
  IF _TB_INV_SET_IV_CC2 = 3 THEN T_INV_C2 := T_BGNAM ;
  IF _TB_INV_SET_IV_CC2 = 4 THEN T_INV_C2 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGKIN');
  IF _TB_INV_SET_IV_CC2 = 5 THEN T_INV_C2 := T_BGCNT ;
  IF _TB_INV_SET_IV_CC2 = 6 THEN T_INV_C2 := T_BGCOS ;
  IF _TB_INV_SET_IV_CC2 = 7 THEN T_INV_C2 := T_BGCOT ;
  T_INV_C3 := '';
  IF _TB_INV_SET_IV_CC3 = 1 THEN T_INV_C3 := T_BGENO ;
  IF _TB_INV_SET_IV_CC3 = 2 THEN T_INV_C3 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGID1');
  IF _TB_INV_SET_IV_CC3 = 3 THEN T_INV_C3 := T_BGNAM ;
  IF _TB_INV_SET_IV_CC3 = 4 THEN T_INV_C3 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGKIN');
  IF _TB_INV_SET_IV_CC3 = 5 THEN T_INV_C3 := T_BGCNT ;
  IF _TB_INV_SET_IV_CC3 = 6 THEN T_INV_C3 := T_BGCOS ;
  IF _TB_INV_SET_IV_CC3 = 7 THEN T_INV_C3 := T_BGCOT ;
  T_INV_C4 := '';
  IF _TB_INV_SET_IV_CC4 = 1 THEN T_INV_C4 := T_BGENO ;
  IF _TB_INV_SET_IV_CC4 = 2 THEN T_INV_C4 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGID1');
  IF _TB_INV_SET_IV_CC4 = 3 THEN T_INV_C4 := T_BGNAM ;
  IF _TB_INV_SET_IV_CC4 = 4 THEN T_INV_C4 := DB_QUERY_FIND_VALUE('BGDS','BGENO',T_BGENO,'BGKIN');
  IF _TB_INV_SET_IV_CC4 = 5 THEN T_INV_C4 := T_BGCNT ;
  IF _TB_INV_SET_IV_CC4 = 6 THEN T_INV_C4 := T_BGCOS ;
  IF _TB_INV_SET_IV_CC4 = 7 THEN T_INV_C4 := T_BGCOT ;


  INVOICE_IV_INV_TEXT(
   COPY(T_INV_C1,1,_TB_INV_SET_IV_CP1)+ REPLICATE(' ',_TB_INV_SET_IV_CP1-LENGTH(T_INV_C1))
       +REPLICATE(' ',_TB_INV_SET_IV_CS1)+
   COPY(T_INV_C2,1,_TB_INV_SET_IV_CP2)+ REPLICATE(' ',_TB_INV_SET_IV_CP2-LENGTH(T_INV_C2))
       +REPLICATE(' ',_TB_INV_SET_IV_CS2)+
   COPY(T_INV_C3,1,_TB_INV_SET_IV_CP3)+ REPLICATE(' ',_TB_INV_SET_IV_CP3-LENGTH(T_INV_C3))
       +REPLICATE(' ',_TB_INV_SET_IV_CS3)+
        REPLICATE(' ',_TB_INV_SET_IV_CP4-LENGTH(T_INV_C4)) +COPY(T_INV_C4,1,_TB_INV_SET_IV_CP4)  );

END;

PROCEDURE FINISHI_PRN_IVOICE_END;      //完成结帐_ 打印发票 结尾
VAR T_INV_LASTLINE : INTEGER;
BEGIN
  //发票排版资料 结尾 ==================================
  T_INV_LASTLINE := 2;

  IF TRIM(_TB_INV_SET_IV_EC1) <> '' THEN INC(T_INV_LASTLINE);  // 结尾加行 1
  IF TRIM(_TB_INV_SET_IV_EC2) <> '' THEN INC(T_INV_LASTLINE);  // 结尾加行 2
  IF (_TB_LAST_SUB = TRUE) AND (_TB_LAST_PRICE > 0) THEN INC(T_INV_LASTLINE); //打印去尾数

  IF _TB_CARD_PACNA > 0 THEN INC(T_INV_LASTLINE); //信用卡号  //要印两行, 所以加两次
  IF _TB_GIFT_PGCNA > 0 THEN INC(T_INV_LASTLINE); //礼券  号  //要印两行, 所以加两次

  // 开始打印结尾
  WHILE INVOICE_COUNTER < STRTOINTDEF(INVOICE_MAXROW,0) - T_INV_LASTLINE DO  //加入空白, 使得总计在发票下方
        INVOICE_IV_INV_LINEFEED;

  IF (_TB_INV_SET_IV_RP2=TRUE) AND (_TB_CARD_PACNO<>'') THEN
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT('信用卡号码: '+_TB_CARD_PACNO); //打印信用卡号
     END;
  IF (_TB_INV_SET_IV_RP3=TRUE) AND (_TB_GIFT_PGCNO<>'') THEN
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT('礼券号码: '  +_TB_GIFT_PGCNO); //打印礼券明细
     END;

  IF (_TB_INV_SET_IV_RP1=TRUE) AND (_TB_TOTAL_PAY> 0) THEN //打印应找
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT('收现 '+ FLOATTOSTR(_TB_TOTAL_PAY) + ' 找 '+FLOATTOSTR(_TB_TOTAL_EXCHANGE)+'元');
     END;
  IF TRIM(_TB_INV_SET_IV_EC1) <> '' THEN
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_EC1);  // 结尾加行 1
     END;
  IF TRIM(_TB_INV_SET_IV_EC2) <> '' THEN
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_EC2);  // 结尾加行 2
     END;
  IF (_TB_LAST_SUB = TRUE) AND (_TB_LAST_PRICE > 0) THEN
     BEGIN
     FINISHI_PRN_IVOICE_TITLE;    //完成结帐_ 打印发票 开头
     INVOICE_IV_INV_TEXT('去尾数:'+FLOATTOSTR(_TB_LAST_PRICE)+'元'); //打印去尾数
     END;
  //=====================================================

  INVOICE_IV_INV_TEXT('  共: '+INTTOSTR( _TB_TOTAL_REC )+' 项  '+INTTOSTR( _TB_TOTAL_QTY )+' 个');
  INVOICE_IV_INV_TEXT('总计: '+REPLICATE(' ',10-LENGTH(FLOATTOSTR(_TB_TOTAL_PRICE)))+FLOATTOSTR(_TB_TOTAL_PRICE) +' 元' );

  IF (INVOICE_COUNTER < STRTOINTDEF(INVOICE_MAXROW,0)) AND (INVOICE_COUNTER >1) THEN INVOICE_IV_PAGEFEED;

END;

PROCEDURE FINISHI_DSP_TOTAL;   //完成结帐_ 价格显示
BEGIN
END;

PROCEDURE FINISHI_OPEN_CASHBOX;//开钱柜
BEGIN
IF ( _TB_PRN_CASHBOX  = TRUE) THEN //是否自动开钱柜
   begin
   try INVOICE_OPEN_CASHBOX;  except SHOWMESSAGE('钱柜无法开启!');   end;
   SYSLOG_INSERT('CBX',_TB_NUMBER,'结帐开钱柜'); //新增开钱柜记录
   end;
END;




















PROCEDURE INCREASE_INV_NO;//累加发票号码
BEGIN
  _TB_INV_PAGE := _TB_INV_PAGE + 1; //发票页

  DEC(_TB_INV_CNT); //自动累减 发票张数
  IF LENGTH(_TB_INV_NO)= 8 THEN _TB_INV_NO := STR_INC('0',_TB_INV_NO ,1, 8  ,1);
  IF LENGTH(_TB_INV_NO)=10 THEN _TB_INV_NO := STR_INC('0',_TB_INV_NO ,3,10  ,1);
END;


end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -