?? unposau.pas
字號(hào):
T_BGNAM := OUT_GRID.Cells[2,I];//產(chǎn)品名稱
T_BGCNT := OUT_GRID.Cells[3,I];//產(chǎn)品數(shù)量
T_BGCOS := OUT_GRID.Cells[4,I];//產(chǎn)品單價(jià)
T_BGCOT := OUT_GRID.Cells[5,I];//產(chǎn)品總價(jià)
T_BGQTN := OUT_GRID.Cells[6,I];//倉(cāng)庫(kù)數(shù)量
T_BGKIN := OUT_GRID.Cells[7,I];//產(chǎn)品分類
QCHECK.ParamByName('PAENO').AsString := _TB_PAENO; //銷售編號(hào)
QCHECK.ParamByName('PBENO').AsString := T_PBENO; //銷售項(xiàng)次
QCHECK.ParamByName('BGQTN').AsFloat := STRTOFLOATDEF(T_BGQTN,-999);//倉(cāng)庫(kù)數(shù)量
QCHECK.ParamByName('BGENO').AsString := T_BGENO; //產(chǎn)品編號(hào)
QCHECK.ParamByName('BGCNT').AsInteger := STRTOINTDEF (T_BGCNT,1); //產(chǎn)品數(shù)量
QCHECK.ParamByName('BGCOS').AsFloat := STRTOFLOATDEF(T_BGCOS,0); //產(chǎn)品單價(jià)
QCHECK.ParamByName('BGCOT').AsFloat := STRTOFLOATDEF(T_BGCOT,0); //產(chǎn)品小計(jì)
TRY QCHECK.ExecSQL; except SHOWMESSAGE('POSB 無(wú)法新增!'); end;
//更新庫(kù)存資料 -分類999不更新庫(kù)存
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 無(wú)法更新!'); 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; //完成結(jié)帳_ 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; //銷售編號(hào)
QCHECK.ParamByName('PGITM').AsString := T_PGENO; //銷售項(xiàng)次
QCHECK.ParamByName('PGENO').AsString := FMPOSAGIFT.GIFT_GRID.Cells[0,I]; //禮券編號(hào)
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 禮券 無(wú)法新增!!'); end;
END;
FINALLY
QCHECK.Free;
END;
END;
PROCEDURE FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
VAR I, J : INTEGER;
BEGIN
//發(fā)票排版資料 抬頭 ==================================
IF INVOICE_COUNTER = 0 THEN
BEGIN
INCREASE_INV_NO;//累加發(fā)票號(hào)碼
IF INVOICE_PRINTER = 4 THEN // EPSON RP-U420-110
BEGIN
INVOICE_IV_TEXT('');
INVOICE_IV_TEXT('');
INVOICE_IV_TEXT('');
INVOICE_IV_TEXT('');
END;
// 發(fā)票 TITLE 設(shè)置
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+'機(jī)'+_TB_NUMBER+'序'+_TB_PAENO);
INVOICE_IV_INV_TEXT('員'+_TB_USER_NUMBER +' -'+ _TB_INV_NO +'- 頁(yè)'+INTTOSTR(_TB_INV_PAGE ));
IF TRIM(_TB_PACIV) <> '' THEN INVOICE_IV_INV_TEXT('統(tǒng)一編號(hào): '+_TB_PACIV);
END;
// 打印開頭 ================================================================
END;
PROCEDURE FINISHI_PRN_IVOICE_CONTENT(T_BGENO,T_BGNAM,T_BGCNT,T_BGCOS,T_BGCOT:STRING); //完成結(jié)帳_ 打印發(fā)票 項(xiàng)目
VAR T_INV_C1, T_INV_C2, T_INV_C3, T_INV_C4, T_INV_C5, T_INV_C6, T_INV_C7 : STRING;
BEGIN
//發(fā)票排版資料 內(nèi)容 ==================================
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; //完成結(jié)帳_ 打印發(fā)票 結(jié)尾
VAR T_INV_LASTLINE : INTEGER;
BEGIN
//發(fā)票排版資料 結(jié)尾 ==================================
T_INV_LASTLINE := 2;
IF TRIM(_TB_INV_SET_IV_EC1) <> '' THEN INC(T_INV_LASTLINE); // 結(jié)尾加行 1
IF TRIM(_TB_INV_SET_IV_EC2) <> '' THEN INC(T_INV_LASTLINE); // 結(jié)尾加行 2
IF (_TB_LAST_SUB = TRUE) AND (_TB_LAST_PRICE > 0) THEN INC(T_INV_LASTLINE); //打印去尾數(shù)
IF _TB_CARD_PACNA > 0 THEN INC(T_INV_LASTLINE); //信用卡號(hào) //要印兩行, 所以加兩次
IF _TB_GIFT_PGCNA > 0 THEN INC(T_INV_LASTLINE); //禮券 號(hào) //要印兩行, 所以加兩次
// 開始打印結(jié)尾
WHILE INVOICE_COUNTER < STRTOINTDEF(INVOICE_MAXROW,0) - T_INV_LASTLINE DO //加入空白, 使得總計(jì)在發(fā)票下方
INVOICE_IV_INV_LINEFEED;
IF (_TB_INV_SET_IV_RP2=TRUE) AND (_TB_CARD_PACNO<>'') THEN
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT('信用卡號(hào)碼: '+_TB_CARD_PACNO); //打印信用卡號(hào)
END;
IF (_TB_INV_SET_IV_RP3=TRUE) AND (_TB_GIFT_PGCNO<>'') THEN
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT('禮券號(hào)碼: ' +_TB_GIFT_PGCNO); //打印禮券明細(xì)
END;
IF (_TB_INV_SET_IV_RP1=TRUE) AND (_TB_TOTAL_PAY> 0) THEN //打印應(yīng)找
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT('收現(xiàn) '+ FLOATTOSTR(_TB_TOTAL_PAY) + ' 找 '+FLOATTOSTR(_TB_TOTAL_EXCHANGE)+'元');
END;
IF TRIM(_TB_INV_SET_IV_EC1) <> '' THEN
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_EC1); // 結(jié)尾加行 1
END;
IF TRIM(_TB_INV_SET_IV_EC2) <> '' THEN
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT(_TB_INV_SET_IV_EC2); // 結(jié)尾加行 2
END;
IF (_TB_LAST_SUB = TRUE) AND (_TB_LAST_PRICE > 0) THEN
BEGIN
FINISHI_PRN_IVOICE_TITLE; //完成結(jié)帳_ 打印發(fā)票 開頭
INVOICE_IV_INV_TEXT('去尾數(shù):'+FLOATTOSTR(_TB_LAST_PRICE)+'元'); //打印去尾數(shù)
END;
//=====================================================
INVOICE_IV_INV_TEXT(' 共: '+INTTOSTR( _TB_TOTAL_REC )+' 項(xiàng) '+INTTOSTR( _TB_TOTAL_QTY )+' 個(gè)');
INVOICE_IV_INV_TEXT('總計(jì): '+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; //完成結(jié)帳_ 價(jià)格顯示
BEGIN
END;
PROCEDURE FINISHI_OPEN_CASHBOX;//開錢柜
BEGIN
IF ( _TB_PRN_CASHBOX = TRUE) THEN //是否自動(dòng)開錢柜
begin
try INVOICE_OPEN_CASHBOX; except SHOWMESSAGE('錢柜無(wú)法開啟!'); end;
SYSLOG_INSERT('CBX',_TB_NUMBER,'結(jié)帳開錢柜'); //新增開錢柜記錄
end;
END;
PROCEDURE INCREASE_INV_NO;//累加發(fā)票號(hào)碼
BEGIN
_TB_INV_PAGE := _TB_INV_PAGE + 1; //發(fā)票頁(yè)
DEC(_TB_INV_CNT); //自動(dòng)累減 發(fā)票張數(shù)
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.
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -