IF MESSAGEBOX("Confirma Impresso   ",292,"Impresso") = 7
   RETURN .F.
ENDIF

cForm = FULLPATH(CURDIR()) + "\IMPRESS\TECPRIMA"

TSEXEC("T","SELECT * FROM Tsl ","TSL")
       
cQesp = PARAMETRO.ESPCUP
       
nImpc = 1
       
DO WHILE nImpc = 1
        
*   SYS(1037) && INDICAR IMPRESSORA
        
   ??? CHR(15)
    
   ??? REPLICATE(" ",cQEsp) + REPLICATE("=",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + DTOC(DATE()) + REPLICATE(" ",14) + TIME() + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((32 - len(AllTrim(AllTrim(TSL.NOME)))) / 2))+AllTrim(AllTrim(TSL.NOME)) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((32 - len(AllTrim(AllTrim(TSL.ENDERECO)))) / 2))+AllTrim(AllTrim(TSL.ENDERECO)) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((32 - len(AllTrim("Fone: " + AllTrim(TSL.FONE)))) / 2))+AllTrim("Fone: " + AllTrim(TSL.FONE)) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((32 - len(AllTrim("< FECHAMENTO DE CAIXA >"))) / 2))+AllTrim("< FECHAMENTO DE CAIXA >") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   SELECT * FROM TSM002A WHERE CODMOV = 2 INTO CURSOR TMP_ABE1
   SELECT TMP_ABE1
   GO TOP IN TMP_ABE1
   ??? REPLICATE(" ",cQEsp) + "Abertura: " + TRANSFORM(TMP_ABE1.VLR,"9,999,999.99") + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Movimentacao Detalhada do Caixa"+CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   nTotale = 0
   nTotals = 0
   SELECT TSM002A
   SET FILTER TO CODMOV = 1 .Or. CODMOV = 6
   GO TOP IN TSM002A
   IF MESSAGEBOX("Deseja Imprimir Detalhes de Movimentao   ",292,"Aviso") = 6
      cImpDet = 1
   ELSE
      cImpDet = 0
   ENDIF
   DO WHILE ! EOF("TSM002A")
           
      ??? REPLICATE(" ",cQEsp) + DTOC(TSM002A.EMISSAO) + " " + TSM002A.HORA + " " + TSM002A.COMPLEMENT + CHR(13)+CHR(10)
      cCodSeq = TSM002A.CONTSEQ
      nSelect = "SELECT * FROM Tsm002b WHERE ?cCodSeq = SEQBX "
      TSEXEC("T",nSelect,"TSM002B")
      SELECT TSM002B
      IF RECCOUNT() = 0
         cNom1 = SUBSTR(TSM002A.COMPLEMENT+SPACE(40),1,17)
      ELSE
         cNom1 = SUBSTR(TSM002B.NOME+SPACE(40),1,17)
      ENDIF
      IF cImpDet = 1
         ??? REPLICATE(" ",cQEsp) + cNom1 + " " + TRANSFORM(TSM002A.VLR,"999,999.99") + " " + TSM002A.TIPO + CHR(13)+CHR(10)
      ENDIF
      
      IF TSM002A.TIPO = 'C'
         nTotale = nTotale + TSM002A.VLR
      ELSE
         nTotals = nTotals + TSM002A.VLR
      ENDIF
      
      SKIP IN TSM002A
      LOOP
      
   ENDDO
   
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(11) + "Creditos: " + TRANSFORM(nTotale,"999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(11) + "Debitos.: " + TRANSFORM(nTotals,"999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(11) + "Total...: " + TRANSFORM((nTotale - nTotals),"999,999.99") + CHR(10)+CHR(13)
   cTotalMov = (nTotale - nTotals)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + " " + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Tipos de Recebimento" + CHR(10)+CHR(13)
   SELECT TSM002A
   SET FILTER TO
   SELECT SUM(DIN) AS DIN,SUM(CHE) AS CHE,SUM(CARC) AS CARC,SUM(CARD) AS CARD,SUM(CARF) AS CARF,SUM(TIC) AS TIC,SUM(TROCO) AS TROCO FROM TSM002A;
   WHERE CODMOV = 1 .and. TIPO = 'C' .Or. CODMOV = 6 .And. TIPO = 'C' INTO CURSOR TMP_111
   GERACURSOR("TMP_111","TMP_11")
   SELECT SUM(DIN) AS DIN,SUM(CHE) AS CHE,SUM(CARC) AS CARC,SUM(CARD) AS CARD,SUM(CARF) AS CARF,SUM(TIC) AS TIC,SUM(TROCO) AS TROCO FROM TSM002A;
   WHERE CODMOV = 1 .and. TIPO = 'D' .Or. CODMOV = 6 .And. TIPO = 'D' INTO CURSOR TMP_112
   GERACURSOR("TMP_112","TMP_12")
   GERACURSOR("TMP_11","TMP_1")
   GO TOP IN TMP_11
   GO TOP IN TMP_12
   SELECT TMP_1
   GO TOP IN TMP_1
   REPLACE TMP_1.DIN   WITH (TMP_11.DIN - TMP_12.DIN)
   REPLACE TMP_1.CHE   WITH (TMP_11.CHE - TMP_12.CHE)
   REPLACE TMP_1.CARC  WITH (TMP_11.CARC - TMP_12.CARC)
   REPLACE TMP_1.CARD  WITH (TMP_11.CARD - TMP_12.CARD)
   REPLACE TMP_1.CARF  WITH (TMP_11.CARF - TMP_12.CARF)
   REPLACE TMP_1.TIC   WITH (TMP_11.TIC - TMP_12.TIC)
   REPLACE TMP_1.TROCO WITH (TMP_11.TROCO - TMP_12.TROCO)
   
   SELECT TMP_1
*!*        IF TMP_1.DIN > 0
      ??? REPLICATE(" ",cQEsp) + "Dinheiro......: " + TRANSFORM((TMP_1.DIN + TMP_1.TROCO),"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CHE > 0
      ??? REPLICATE(" ",cQEsp) + "Cheque........: " + TRANSFORM(TMP_1.CHE,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARC > 0
      ??? REPLICATE(" ",cQEsp) + "Cartao Credito: " + TRANSFORM(TMP_1.CARC,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARD > 0
      ??? REPLICATE(" ",cQEsp) + "Cartao Debito.: " + TRANSFORM(TMP_1.CARD,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARF > 0
      ??? REPLICATE(" ",cQEsp) + "Carta Frete...: " + TRANSFORM(TMP_1.CARF,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.TIC > 0
      ??? REPLICATE(" ",cQEsp) + "Ticket........: " + TRANSFORM(TMP_1.TIC,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
   
   && suplemento e sangria
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Suplemento/Sangria do Caixa"+CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   nTotale = 0
   nTotals = 0
   SELECT TSM002A
   SET FILTER TO CODMOV = 3 .Or. CODMOV = 4
   GO TOP IN TSM002A
   DO WHILE ! EOF("TSM002A")
      
      IF TSM002A.TIPO = 'C'
         cNom2 = 'Suplemento'
      ELSE
         cnom2 = 'Sangria'
      ENDIF
      
      ??? REPLICATE(" ",cQEsp) + DTOC(TSM002A.EMISSAO) + " " + TSM002A.HORA + " " + cNom2 + CHR(13)+CHR(10)
      cCodSeq = TSM002A.CONTSEQ
      nSelect = "SELECT * FROM Tsm002b WHERE ?cCodSeq = SEQBX "
      TSEXEC("T",nSelect,"TSM002B")
      SELECT TSM002B
      IF RECCOUNT() = 0
         cNom1 = SUBSTR(TSM002A.COMPLEMENT+SPACE(40),1,17)
      ELSE
         cNom1 = SUBSTR(TSM002B.NOME+SPACE(40),1,17)
      ENDIF
      ??? REPLICATE(" ",cQEsp) + cNom1 + " " + TRANSFORM(TSM002A.VLR,"999,999.99") + " " + TSM002A.TIPO + CHR(13)+CHR(10)
      
      IF TSM002A.TIPO = 'C'
         nTotale = nTotale + TSM002A.VLR
      ELSE
         nTotals = nTotals + TSM002A.VLR
      ENDIF
      
      SKIP IN TSM002A
      LOOP
      
   ENDDO
   
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(9) + "Suplemento: " + TRANSFORM(nTotale,"999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(9) + "Sangria...: " + TRANSFORM(nTotals,"999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + SPACE(9) + "Total.....: " + TRANSFORM((nTotale - nTotals),"999,999.99") + CHR(10)+CHR(13)
   cTotalSan = (nTotale - nTotals)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + " " + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Tipos de Saida" + CHR(10)+CHR(13)
   SELECT TSM002A
   SET FILTER TO
   SELECT SUM(DIN) AS DIN,SUM(CHE) AS CHE,SUM(CARC) AS CARC,SUM(CARD) AS CARD,SUM(CARF) AS CARF,SUM(TIC) AS TIC,SUM(TROCO) AS TROCO FROM TSM002A;
   WHERE CODMOV = 3 .and. TIPO = 'C' .Or. CODMOV = 4 .and. TIPO = 'C' INTO CURSOR TMP_111
   GERACURSOR("TMP_111","TMP_11")
   SELECT SUM(DIN) AS DIN,SUM(CHE) AS CHE,SUM(CARC) AS CARC,SUM(CARD) AS CARD,SUM(CARF) AS CARF,SUM(TIC) AS TIC,SUM(TROCO) AS TROCO FROM TSM002A;
   WHERE CODMOV = 3 .and. TIPO = 'D' .Or. CODMOV = 4 .And. TIPO = 'D' INTO CURSOR TMP_112
   GERACURSOR("TMP_112","TMP_12")
   GERACURSOR("TMP_11","TMP_1")
   GO TOP IN TMP_11
   GO TOP IN TMP_12
   SELECT TMP_1
   GO TOP IN TMP_1
   REPLACE TMP_1.DIN   WITH (TMP_11.DIN - TMP_12.DIN)
   REPLACE TMP_1.CHE   WITH (TMP_11.CHE - TMP_12.CHE)
   REPLACE TMP_1.CARC  WITH (TMP_11.CARC - TMP_12.CARC)
   REPLACE TMP_1.CARD  WITH (TMP_11.CARD - TMP_12.CARD)
   REPLACE TMP_1.CARF  WITH (TMP_11.CARF - TMP_12.CARF)
   REPLACE TMP_1.TIC   WITH (TMP_11.TIC - TMP_12.TIC)
   REPLACE TMP_1.TROCO WITH (TMP_11.TROCO - TMP_12.TROCO)
   
   SELECT TMP_1
*!*       IF TMP_1.DIN > 0
      ??? REPLICATE(" ",cQEsp) + "Dinheiro......: " + TRANSFORM(TMP_1.DIN + TMP_1.TROCO,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CHE > 0
      ??? REPLICATE(" ",cQEsp) + "Cheque........: " + TRANSFORM(TMP_1.CHE,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARC > 0
      ??? REPLICATE(" ",cQEsp) + "Cartao Credito: " + TRANSFORM(TMP_1.CARC,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARD > 0
      ??? REPLICATE(" ",cQEsp) + "Cartao Debito.: " + TRANSFORM(TMP_1.CARD,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.CARF > 0
      ??? REPLICATE(" ",cQEsp) + "Carta Frete...: " + TRANSFORM(TMP_1.CARF,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
*!*	        IF TMP_1.TIC > 0
      ??? REPLICATE(" ",cQEsp) + "Ticket........: " + TRANSFORM(TMP_1.TIC,"9,999,999.99") + CHR(10)+CHR(13)
*!*	        ENDIF
        
   nSelect = "SELECT Tslv020.*,Tslc001.CLINOM,Tslc005.DESCRICAO FROM Tslv020 LEFT JOIN Tslc001 ON Tslv020.CODCLI = Tslc001.CLICOD "
   nSelect = nselect + "LEFT JOIN Tslc005 ON Tslv020.CODFORM = Tslc005.CODIGO WHERE Tslv020.FECH = ?cAbert[3] "
   TSEXEC("T",nSelect,"TMP_020")
        
   nSelect = "SELECT Tslv010.*,Tslc001.CLINOM,Tslc005.DESCRICAO FROM Tslv010 LEFT JOIN Tslc001 ON Tslv010.CODCLI = Tslc001.CLICOD "
   nSelect = nSelect + "LEFT JOIN Tslc005 ON Tslv010.CODFORM = Tslc005.CODIGO WHERE Tslv010.FECH = ?cAbert[3] "
   TSEXEC("T",nSelect,"TMP_010")
        
   SELECT TMP_020.DESCRICAO,TMP_020.LIQUIDO FROM TMP_020 UNION SELECT TMP_010.DESCRICAO,TMP_010.LIQUIDO FROM TMP_010 INTO CURSOR TMP_FORMA1
   SELECT DESCRICAO,SUM(LIQUIDO) AS LIQUIDO FROM TMP_FORMA1 GROUP BY DESCRICAO INTO CURSOR TMP_FORMA
   SELECT TMP_FORMA
   GO TOP IN TMP_FORMA
        
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + "Vendas por Forma de Pagamento" + CHR(13)+CHR(10)
   cTotalv = 0
        
   DO WHILE ! EOF("TMP_FORMA")
           
      ??? REPLICATE(" ",cQEsp) + TMP_FORMA.DESCRICAO + " " + TRANSFORM(TMP_FORMA.LIQUIDO,"9,999,999.99") + CHR(13) + CHR(10)
      cTotalv = cTotalv + TMP_FORMA.LIQUIDO
      
      SKIP IN TMP_FORMA
      LOOP
      
   ENDDO
   
   ??? REPLICATE(" ",cQEsp) + " " + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + "Total Vendas: " + TRANSFORM(cTotalv,"9,999,999.99") + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + " " + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + "R E S U M O  D O  C A I X A" + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",32) + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + "Abertura de Caixa.: " + TRANSFORM(TMP_ABE1.VLR,"9,999,999.99") + CHR(13)+CHR(10)
   ??? REPLICATE(" ",cQEsp) + "Total Movimentacao: " + TRANSFORM(cTotalMov,"9,999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Suplemento/Sangria: " + TRANSFORM(cTotalSan,"9,999,999.99") + CHR(10)+CHR(13)
   cTotalcx1 = (TMP_ABE1.VLR + cTotalMov + cTotalSan)
   ??? REPLICATE(" ",cQEsp) + "Total Caixa.......: " + TRANSFORM(cTotalCx1,"9,999,999.99") + CHR(10)+CHR(13)
   SELECT * FROM TSM002A WHERE CODMOV = 5 INTO CURSOR TMP_FEC1
   SELECT TMP_FEC1
   GO TOP IN TMP_FEC1
   ??? REPLICATE(" ",cQEsp) + "Valor Fechamento..: " + TRANSFORM(TMP_FEC1.VLR,"9,999,999.99") + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + "Diferenca Caixa...: " + TRANSFORM((TMP_FEC1.VLR - cTotalCx1),"9,999,999.99") + CHR(10)+CHR(13)
        
   cCodProc = VAL(ThisForm.conta.Value)
   cData    = DATE()
   nSelect = "SELECT SEQ FROM Tslv020 WHERE ?cCodProc = CODIMP AND ?cData = DATA AND EXCLUI <> 'S' "
   TSEXEC("T",nSelect,"TMP_CC1")
   
   nSelect = "SELECT SEQ FROM Tslv010 WHERE ?cCodProc = CODIMP AND ?cData = DATA AND EXCLUI <> 'S' "
   TSEXEC("T",nSelect,"TMP_CC2")
   
   SELECT TMP_CC1
   cCc1 = RECCOUNT()
   SELECT TMP_CC2
   cCc2 = RECCOUNT()
   cCc3 = cCc1 + cCc2
   ??? REPLICATE(" ",cQEsp) + "Total de Pessoas..: " + TRANSFORM(cCc3,"999999999") + CHR(10)+CHR(13)
   
   SET PRINTER TO
   
   IF MESSAGEBOX("A Impresso Saiu Corretamente   ",36,"Impresso Caixa") = 6
      nImpc = 2
      EXIT
   ENDIF
ENDDO

*MESSAGEBOX(cArquivoi)

*DO FORM &cForm WITH cArquivoi,6