impressora fiscal mp-4000 th fi
Enviado: 26 Out 2015 05:05
alguem pode me ajudar, preciso colocar a identicacao do aplicativo no rodape do cupom fiscal na bematech mp-4000 th fi
Em homenagem a Paulo Cesar Toledo
https://pctoledo.org/
Código: Selecionar todos
Bematech_FI_TerminaFechamentoCupomCV0909 - Esta função encerra o cupom fiscal imprimindo a mensagem promocional na impressora fiscal.
Código: Selecionar todos
/*
* MODULE TICKT.PRG
*/
FUNCTION TICKT()
LOCAL DIN_CHEQ
LOCAL QDE_ETIQ
LOCAL SIM
FIELD END
FIELD LOCALIZA
FIELD QUADRANTE
FIELD ESP_MASSA
FIELD MATRICULA
FIELD MESANO
FIELD CODIGO
FIELD TELEFONE
FIELD NUM_TICKET
FIELD NOME_CLI
FIELD DESCRICAO
FIELD DESCRICAO2
FIELD QTD_VENDEU
FIELD VALOR
FIELD DINCHEQ
FIELD PORCENTO
FIELD CREDIT
FIELD DEBIT
FIELD TRO_CLI
FIELD MESSAGE
LOCAL BEEP
LOCAL TOT_DESC
LOCAL TOT_PROV
LOCAL TOT_D_NOTA
LOCAL TOT_A_PAGAR
LOCAL IMP_LIN
LOCAL LINHA
LOCAL CONTA
LOCAL N_TICKET
LOCAL TOT_COMPRA
LOCAL DC
LOCAL FPP_VALOR
LOCAL PORC_APLIC
LOCAL DESC_NOTA
LOCAL TOTAPAGAR
LOCAL TOTADESC
LOCAL DESCSIM
LOCAL X
MEMVAR GETLIST
MEMVAR LCOD
MEMVAR LCOD2
MEMVAR LCOD3
SET KEY -1
SET KEY -2
SET KEY -3
SET KEY -4
SET KEY -5
CLEAR TYPEAHEAD
@ 19,69 SAY MEMORY(0)
LCOD3:=LCOD3
DO WHILE INKEY() # 27
SET PROCEDURE TO EDITOR
SET KEY -5 TO EDITOR && F6
SET PROCEDURE TO TROCO
SET KEY -6 TO TROCO && F7
SET DEVICE TO SCREEN
RODAPE2()
QDE_ETIQ:=1
FOR BEEP = 1 TO 2
TONE(1100,3) && SINAL SONORO DE ADVERTENCIA
NEXT
SET COLOR TO W+/B+
@ 22,21 SAY " F6 - Mensagens no Rodap‚ "
@ 22,48 SAY " F7 - Troco "
SET COLOR TO
SET CURSOR OFF
SET COLOR TO W+/R+*
@ 23,28 SAY "ESPERA: FUN€ŽO OU <ENTER>"
WAIT ""
SET COLOR TO
IF (LASTKEY() == 27)
FOR BEEP = 1 TO 4
TONE(1100,3) && SINAL SONORO DE ADVERTENCIA
NEXT
SET COLOR TO W+/R+*
@ 16,10 SAY "ATEN€ŽO: USE TECLA DE FUN€ŽO OU <ENTER>"
WAIT ""
SET COLOR TO
IF (LASTKEY() == 27)
FOR BEEP = 1 TO 5
TONE(1100,3) && SINAL SONORO DE ADVERTENCIA
NEXT
SET COLOR TO W+/R+*
@ 16,10 SAY "ATEN€ŽO: USE TECLA DE FUN€ŽO OU <ENTER>"
WAIT ""
SET COLOR TO
ENDIF
ENDIF
RODAPE2()
EXIT
ENDDO
DO WHILE INKEY() # 27
SET KEY -5
SET KEY -6
SET CURSOR ON
SET ESCAPE OFF
@ 12,02 CLEAR TO 19,78
FOR BEEP = 1 TO 2
TONE(1100,3) && SINAL SONORO DE ADVERTENCIA
NEXT
DIN_CHEQ:=" "
SET COLOR TO W+/R
@ 13,14 SAY "[D]INHEIRO/[C]HEQUE/[T]ICKT:" +CHR(26) GET DIN_CHEQ PICT "@!A";
VALID ((DIN_CHEQ)) $ [C,D,T," "].OR.LASTKEY()=5
SET COLOR TO
READ
IF (LASTKEY() == 27)
LOOP
ENDIF
IF ( LASTKEY() # 27 )
SELECT 4 // CHAMA BANCO DE DADOS PROVIS=PROVISORIO
DBGOTOP()
SEEK STRZERO(VAL(LCOD3),5,0)
IF (UPPER(DIN_CHEQ)) = " "
REPLACE ALL DINCHEQ WITH "N" && REPASSA DINHEIRO OU CHEQUE
COMMIT
ELSE
REPLACE ALL DINCHEQ WITH DIN_CHEQ && REPASSA DINHEIRO OU CHEQUE OU TICKT
COMMIT
ENDIF
ENDIF
@ 19,69 SAY MEMORY(0)
SET CURSOR ON
SET ESCAPE OFF
@ 16,09 SAY " "
SIM:=[S]
BEEP()
SET COLOR TO W+/R+*
@ 23,27 SAY "POSSO COME€AR A IMPRIMIR ? " GET SIM PICT "@!A" VALID (UPPER(SIM)) $ [SN]
SET COLOR TO
READ
IF (LASTKEY() == 27)
SET CURSOR ON
LOOP
ENDIF
IF (UPPER(SIM)) # "S"
SET PRINTER OFF
SET DEVICE TO SCREEN
SET CURSOR ON
SET ESCAPE ON
DBCLOSEALL()
USE FP_PROV INDEX FP_PROV ALIAS PIZZAS
APPEND FROM PROVIS
DBCLOSEALL()
USE ORDEM2 INDEX ORDEM2 ALIAS AORDEM2
APPEND FROM PROVIS
DBCLOSEALL()
RODAPE2()
RELEASE ALL
RETURN NIL
ENDIF
EXTERNAL ISPRINTER
IF ISPRINTER()
RODAPE2()
SET COLOR TO W+/R+*
@ 23,27 SAY "AGUARDE, ESTOU IMPRIMINDO !!!"
SET COLOR TO
EXIT
ELSE
BEEP()
SET COLOR TO W+/R+*
@ 16,25 SAY "SUA IMPRESSORA NŽO ESTA ATIVA!"
SET COLOR TO
SET COLOR TO W+/R+*
@ 17,25 SAY "VERIFIQUE E PRESSIONE ALGO!!! "
SET COLOR TO
INKEY(0)
@ 16,25 SAY " "
@ 17,25 SAY " "
LOOP
ENDIF
ENDDO
LCOD :=LCOD
LCOD2:=LCOD
TOT_DESC:=0.00
TOT_PROV:=0.00
TOT_D_NOTA:=0.00
TOT_A_PAGAR:=0.00
IMP_LIN:=0.00
LINHA:=PROW()
SELECT 4 // CHAMA BANCO DE DADOS PROVIS=PROVISORIO
DBGOTOP()
DO WHILE INKEY() # 27 .AND. !EOF()
IF !EOF()
FOR CONTA=1 TO QDE_ETIQ
SET DEVICE TO PRINTER
SET PRINTER ON
@ LINHA,00 SAY ""+CHR(14)+CHR(15)
@ LINHA,03 SAY "PIZZARIA VIA APPIA"
LINHA:=LINHA+1
@ LINHA,00 SAY ""+CHR(15)
@ LINHA,03 SAY REPLICATE("-",50)
LINHA:=LINHA+1
@ LINHA,03 SAY "DATA..: " + MESANO
@ LINHA,29 SAY "HORA DO PEDIDO: " + TIME()
LINHA:=LINHA+1
@ LINHA,03 SAY "FONE..: " + TELEFONE
SELECT 9 // CHAMA O NTICKET
@ LINHA,29 SAY "CONTROLE N§: "
@ LINHA,41 SAY NUM_TICKET
LINHA:=LINHA+2
SELECT 4 && ARQUIVO PROVISORIO
@ LINHA,03 SAY "CLI: " +MATRICULA+"-"+" "+NOME_CLI
LINHA:=LINHA+1
@ LINHA,03 SAY "ENDEREC,O: " +END
LINHA:=LINHA+1
@LINHA,03 SAY "PAG: "+LOCALIZA+"- "+"QUAD: "+QUADRANTE
LINHA:=LINHA+1
@ LINHA,03 SAY REPLICATE("-",50)
LINHA:=LINHA+1
@ LINHA,03 SAY "CO'D.: QTDE: DESCRIC,A~O ESP: TOTAL:"
LINHA:=LINHA+1
@ LINHA,03 SAY REPLICATE("-",50)
LINHA:=LINHA+1
TOT_DESC:=0.00
TOT_PROV:=0.00
TOT_D_NOTA:=0.00
TOT_A_PAGAR:=0.00
DO WHILE INKEY()#27 .AND. !EOF()
IF EOF()
EXIT
ENDIF
@ LINHA,03 SAY CODIGO
@ LINHA,03 SAY (ROUND(QTD_VENDEU,2))
@ LINHA,18 SAY DESCRICAO+" "+ESP_MASSA
IF (UPPER(DESCRICAO2)) # " "
LINHA:=LINHA+1
@ LINHA,18 SAY (LTRIM(DESCRICAO2))
ENDIF
TOT_COMPRA:=(ROUND(VALOR,2))*(ROUND(QTD_VENDEU,2))
@ LINHA,40 SAY TOT_COMPRA PICT "@E 99,999,999.99"
IMP_LIN:=(ROUND(IMP_LIN,2))+(ROUND(QTD_VENDEU,2))
LINHA:=LINHA+1
IF (ROUND(IMP_LIN,2)) >=1.00
@ LINHA,03 SAY REPLICATE("-",50)
LINHA:=LINHA+1
IMP_LIN:=0.00
ENDIF
IF SUBS(CODIGO,1,1)="P"
DC:=DINCHEQ && DINHEIRO OU CHEQUES
FPP_VALOR:=(ROUND(VALOR,2))
PORC_APLIC:=(ROUND(PORCENTO,2))/100 && PORCENTAGEM A APLICAR SOBRE O PRODUTO OU DESCONTO
TOT_PROV := (ROUND(TOT_PROV,2))+(ROUND(VALOR,2))*;
(ROUND(QTD_VENDEU,2))
IF (ROUND(PORC_APLIC,2)) # 0.00
DESC_NOTA := (ROUND(FPP_VALOR,2))*(ROUND(QTD_VENDEU,2))*;
(ROUND(PORC_APLIC,2))
TOT_D_NOTA := (ROUND(TOT_D_NOTA,2))+(ROUND(DESC_NOTA,2))
ENDIF
TOTAPAGAR := (ROUND(TOT_PROV,2))
TOTADESC := (ROUND(TOT_D_NOTA,2))
TOT_A_PAGAR:=(ROUND(TOTAPAGAR,2)) - (ROUND(TOTADESC,2))
ENDIF
IF SUBS(CODIGO,1,1)="D"
TOT_DESC := (ROUND(TOT_DESC,2))+(ROUND(VALOR,2))
ENDIF
DBSKIP()
ENDDO
IF (ROUND(TOT_D_NOTA,2)) # 0.00
DESCSIM:="S"
ELSE
DESCSIM:="N"
ENDIF
LINHA:=LINHA+1
@ LINHA,03 SAY "TOTAL...: "
@ LINHA,39 SAY (ROUND(TOT_PROV,2)) PICT "@E 999,999,999.99"
LINHA:=LINHA+1
IF (UPPER(DESCSIM)) = "S"
@ LINHA,03 SAY "DESCONTO: "
@ LINHA,39 SAY (ROUND(TOT_D_NOTA,2)) PICT "@E 999,999,999.99"
LINHA:=LINHA+1
ENDIF
IF (UPPER(DESCSIM)) = "S"
@ LINHA,03 SAY "A PAGAR.: "
@ LINHA,39 SAY (ROUND(TOT_A_PAGAR,2)) PICT "@E 999,999,999.99"
LINHA:=LINHA+1
ENDIF
IF (UPPER(DESCSIM)) = "N"
@ LINHA,03 SAY "A PAGAR.: "
@ LINHA,39 SAY (ROUND(TOT_PROV,2)) PICT "@E 999,999,999.99"
LINHA:=LINHA+1
ENDIF
IF SUBS(DC,1,1) = "C"
@ LINHA,03 SAY "PAGO EM CHEQUE "
LINHA:=LINHA+1
ENDIF
IF SUBS(DC,1,1) = "D"
SELECT 7 // ARQUIVO DE TROCO
@ LINHA,03 SAY "PAGO EM DINHEIRO: "
IF (ROUND(CREDIT,2)) # 0.00
@ LINHA,22 SAY CREDIT PICT "@E 9,999,999.99"
ELSE
@ LINHA,22 SAY (ROUND(TOT_PROV,2)) PICT "@E 9,999,999.99"
ENDIF
LINHA:=LINHA+1
@ LINHA,03 SAY "VALOR DO DE'BITO=> "
IF (ROUND(CREDIT,2)) # 0.00
@ LINHA,22 SAY DEBIT PICT "@E 9,999,999.99"
ELSE
@ LINHA,22 SAY (ROUND(TOT_PROV,2)) PICT "@E 9,999,999.99"
ENDIF
LINHA:=LINHA+1
@ LINHA,00 SAY ""+CHR(14)+CHR(15)
@ LINHA,03 SAY "TROCO:"
@ LINHA,00 SAY ""+CHR(15)
@ LINHA,06 SAY TRO_CLI PICT "@E 9,999,999.99"
LINHA:=LINHA+1
IF !EOF()
ZAP
ENDIF
ENDIF
IF SUBS(DC,1,1) = "T"
@ LINHA,03 SAY "PAGO COM TICKET(S)"
LINHA:=LINHA+1
ENDIF
NEXT
ENDIF
LINHA:=LINHA+1
@ LINHA,03 SAY REPLICATE("-",50)
LINHA:=LINHA+1
SELECT 8 // ARQUIVO DE MENSAGENS
DBGOTOP()
DO WHILE !EOF()
IF EOF()
EXIT
ENDIF
IF !EOF()
@ LINHA,08 SAY MESSAGE
@ LINHA,08 SAY MESSAGE
@ LINHA,08 SAY MESSAGE
LINHA:=LINHA+1
ENDIF
DBSKIP()
ENDDO
SELECT 8 // ARQUIVO DE MENSAGENS
ZAP
@ LINHA,03 SAY REPLICATE("-",50)
FOR X=1 TO 11
LINHA:=LINHA+1
@ LINHA,00 SAY " "
NEXT
SET PRINTER OFF
SET DEVICE TO SCREEN
SELECT 9 && ARQUIVO NTICKET
N_TICKET:=NUM_TICKET
N_TICKET:=N_TICKET+1
REPLACE NUM_TICKET WITH N_TICKET
DBCLOSEALL()
USE FP_PROV INDEX FP_PROV ALIAS APIZZAS
APPEND FROM PROVIS
DBCLOSEALL()
USE ORDEM2 INDEX ORDEM2 ALIAS AORDEM2
APPEND FROM PROVIS
DBCLOSEALL()
RODAPE2()
EXIT
ENDDO
RELEASE ALL
SET CURSOR ON
SET ESCAPE ON
RETURN NIL
// END OF PROGRAM