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

TSEXEC("T","SELECT * FROM Tsl ","TSL")

SELECT TSM002A
GO TOP IN TSM002A
cCodCxImpre = TSM002A.SEQCX
TSEXEC("T","SELECT Tsm005.*,Tslc004.NOME FROM Tsm005 INNER JOIN Tslc004 ON Tsm005.USU = Tslc004.CODIGO WHERE ?cCodCxImpre = Tsm005.SEQCX ","TMP_TSM005")

cDataCancelado = TMP_TSM005.DATA
       
cQesp = 0
       
nImpc = 1
       
DO WHILE nImpc = 1

*   SYS(1037) && INDICAR IMPRESSORA
        
*   cArqImp = cArqImp +  CHR(18)
   
   IF ! USED("PARAMETRO")
      USE PARAMETRO SHARED IN 33
   ENDIF 
   cImpreSat = "'" + ALLTRIM(PARAMETRO.MODIMP) + "'"
         
   SET PRINTER TO NAME "TSTISAT3"

   ??? REPLICATE(" ",cQEsp) + REPLICATE("=",40) + CHR(10) + CHR(13)
   ??? REPLICATE(" ",cQEsp) + padr(DTOC(DATE()) + REPLICATE(" ",14) + TIME(),40," ")
   ??? REPLICATE(" ",cQEsp) + space(int((40 - len(AllTrim(AllTrim(SUBSTR(TSL.NOME,1,40))))) / 2))+AllTrim(AllTrim(SUBSTR(TSL.NOME,1,40))) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((40 - len(AllTrim(AllTrim(SUBSTR(TSL.ENDERECO,1,40))))) / 2))+AllTrim(AllTrim(SUBSTR(TSL.ENDERECO,1,40))) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + space(int((40 - len(AllTrim("Fone: " + AllTrim(TSL.FONE)))) / 2))+AllTrim("Fone: " + AllTrim(TSL.FONE)) + CHR(10)+CHR(13)
   ??? REPLICATE(" ",cQEsp) + " " + padr(space(int((40 - len(AllTrim("< FECHAMENTO DE CAIXA - DIA " + DTOC(TSM002A.EMISSAO) + " >"))) / 2))+AllTrim("< FECHAMENTO DE CAIXA - DIA " + DTOC(TSM002A.EMISSAO) + " >"),40," ")+ CHR(10) + CHR(13)
   ??? SUBSTR(REPLICATE(" ",cQEsp) + " " + padr(space(int((40 - len(AllTrim("Caixa " + PARAMETRO.CAIXA))) / 2))+AllTrim("Caixa " + PARAMETRO.CAIXA),40," "),1,40)+ CHR(10) + CHR(13)
   ??? SUBSTR(REPLICATE(" ",cQEsp) + " " + padr(space(int((40 - len(AllTrim("USUARIO: " + ALLTRIM(TMP_TSM005.NOME)))) / 2))+AllTrim("USUARIO: " + ALLTRIM(TMP_TSM005.NOME)),40," "),1,40)+ CHR(10) + CHR(13)
   ??? SUBSTR(REPLICATE(" ",cQEsp) + " " + padr(space(int((40 - len(AllTrim("DATA: " + DTOC(TMP_TSM005.DATAF) + " - HORA " + ALLTRIM(TMP_TSM005.HORAF) ))) / 2))+AllTrim("DATA: " + DTOC(TMP_TSM005.DATAF) + " - HORA " + ALLTRIM(TMP_TSM005.HORAF)),40," "),1,40)+ CHR(10) + CHR(13)

   ??? REPLICATE(" ",cQEsp) + REPLICATE("-",40)+ CHR(10) + CHR(13)

   * SELECIONA OS TOTAIS BRUTOS

   nSelect = "Select Sum(bruto) AS BRUTO From Tslv010 Where SeqCx = ?cAbert[3]  "
   TSEXEC("T",nSelect,"TMP_BRUTOC")

   nSelect = "Select Sum(bruto) AS BRUTO From Tslv020 Where SeqCx = ?cAbert[3]  "
   TSEXEC("T",nSelect,"TMP_BRUTOO")

   cValorBruto = IIF(!ISNULL(TMP_BRUTOC.BRUTO),TMP_BRUTOC.BRUTO,0) + IIF(!ISNULL(TMP_BRUTOO.BRUTO),TMP_BRUTOO.BRUTO,0)   

   * SELECIONA OS CANCELAMENTOS

   nSelect = "Select Sum(LIQUIDO) AS CANC From Tslv010 Where SeqCx = ?cAbert[3]  AND EXCLUI = 'S' "
   TSEXEC("T",nSelect,"TMP_CANCC")

   nSelect = "Select Sum(LIQUIDO) AS CANC From Tslv020 Where SeqCx = ?cAbert[3]  AND EXCLUI = 'S' "
   TSEXEC("T",nSelect,"TMP_CANCO")
   
   cValorCanc = IIF(!ISNULL(TMP_CANCC.CANC),TMP_CANCC.CANC,0) + IIF(!ISNULL(TMP_CANCO.CANC),TMP_CANCO.CANC,0)   

   * SELECIONA OS DESCONTOS

   nSelect = "Select Sum(DESCONTO) AS DESCONTO From Tslv010 Where SeqCx = ?cAbert[3]  AND EXCLUI <> 'S' "
   TSEXEC("T",nSelect,"TMP_DESCC")

   nSelect = "Select Sum(DESCONTO) AS DESCONTO From Tslv020 Where SeqCx = ?cAbert[3]  AND EXCLUI <> 'S' "
   TSEXEC("T",nSelect,"TMP_DESCO")
   
   cValorDesc = IIF(!ISNULL(TMP_DESCC.DESCONTO),TMP_DESCC.DESCONTO,0) + IIF(!ISNULL(TMP_DESCO.DESCONTO),TMP_DESCO.DESCONTO,0)   


   ??? SPACE(4) + PADR("VENDA BRUTA",16," ") + TRANSFORM(cValorBruto,"9,999,999.99") + CHR(10) + CHR(13)
   ??? "(-) "   + PADR("Cancelamentos",16," ") + TRANSFORM(cValorCanc,"9,999,999.99") + CHR(10) + CHR(13)
   ??? "(-) "   + PADR("Descontos",16," ") + TRANSFORM(cValorDesc,"9,999,999.99") + CHR(10) + CHR(13)
   ??? "(=) "   + PADR("Venda Liquida",16," ") + TRANSFORM(cValorBruto - (cValorDesc + cValorCanc),"9,999,999.99") + CHR(10) + CHR(13)

   ??? CHR(10) + CHR(13) + CHR(10) + CHR(13)

   * INICIO FORMAS DE PAGAMENTO
   ??? "FINALIZADORAS" + CHR(10) + CHR(13)

   nSelect = "SELECT SUM(VALOR) AS VALOR,DESCRICAO,CODIGO FROM Tslv020b WHERE ?cAbert[3] = SEQCX GROUP BY DESCRICAO,CODIGO "
   TSEXEC("T",nSelect,"TMP_TTO1")

   nSelect = "SELECT SUM(VALOR) AS VALOR,DESCRICAO,CODIGO FROM Tslv010b WHERE ?cAbert[3] = SEQCX GROUP BY DESCRICAO,CODIGO "
   TSEXEC("T",nSelect,"TMP_TTC1")
   
   CREATE CURSOR TMP_CONTASR;
   (VALOR N(12,2),;
    DESCRICAO C(30),;
    CODIGO N(11))

   SELECT TMP_TTO1
   GO TOP IN TMP_TTO1
   DO WHILE ! EOF("TMP_TTO1")
      
      SELECT TMP_CONTASR
      APPEND BLANK IN TMP_CONTASR

      REPLACE TMP_CONTASR.CODIGO    WITH TMP_TTO1.CODIGO
      REPLACE TMP_CONTASR.DESCRICAO WITH TMP_TTO1.DESCRICAO
      REPLACE TMP_CONTASR.VALOR     WITH TMP_TTO1.VALOR


      SKIP IN TMP_TTO1
      LOOP

   ENDDO

   SELECT TMP_TTC1
   GO TOP IN TMP_TTC1
   DO WHILE ! EOF("TMP_TTC1")
      
      cCodc1 = TMP_TTC1.CODIGO
      
      SELECT TMP_CONTASR
      GO TOP IN TMP_CONTASR
      LOCATE FOR cCodc1 = TMP_CONTASR.CODIGO
      IF FOUND("TMP_CONTASR")
         SELECT TMP_CONTASR
         REPLACE TMP_CONTASR.VALOR WITH TMP_CONTASR.VALOR + TMP_TTC1.VALOR
      ELSE
         SELECT TMP_CONTASR
         APPEND BLANK IN TMP_CONTASR
   
         REPLACE TMP_CONTASR.CODIGO    WITH TMP_TTC1.CODIGO
         REPLACE TMP_CONTASR.DESCRICAO WITH TMP_TTC1.DESCRICAO
         REPLACE TMP_CONTASR.VALOR     WITH TMP_TTC1.VALOR
      ENDIF

      SKIP IN TMP_TTC1
      LOOP
    
   ENDDO
   
   select sum(troco) as troco from tsm002a into cursor tmp_trocos
   SELECT TMP_CONTASR
   GO TOP IN TMP_CONTASR
   LOCATE FOR 1 = TMP_CONTASR.CODIGO
   IF FOUND("TMP_CONTASR")
      REPLACE TMP_CONTASR.VALOR WITH TMP_CONTASR.VALOR + TMP_TROCOS.TROCO
   ENDIF
   cTotalContas = 0
   SELECT TMP_CONTASR
   GO TOP IN TMP_CONTASR
   DO WHILE ! EOF("TMP_CONTASR")
   
      ??? REPLICATE(" ",cQEsp) + padr(SUBSTR(TMP_CONTASR.DESCRICAO,1,20) + TRANSFORM(TMP_CONTASR.VALOR,"9,999,999.99"),40," ")+ CHR(10) + CHR(13)
      cTotalContas = cTotalContas + tmp_contasr.valor
      SKIP IN TMP_CONTASR
      LOOP

   ENDDO
   ??? REPLICATE("-",40) + CHR(10) + CHR(13)
   ??? SPACE(6) + "SUB-TOTAL ==> " + TRANSFORM(cTotalContas,"9,999,999.99") + chr(10) + chr(13)



   * FIM FORMAS DE PAGAMENTO


   *cArqImp = ""

   SELECT * FROM TSM002A WHERE CODMOV = 2 INTO CURSOR TMP_ABE1
   SELECT TMP_ABE1
   GO TOP IN TMP_ABE1
   cCodCxab = TMP_ABE1.SEQCX

   ??? REPLICATE(" ",cQEsp) + PADR("(+) Abetura ",20," ") + TRANSFORM(TMP_ABE1.VLR,"9,999,999.99") + 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'
         nTotale = nTotale + TSM002A.VLR
      ELSE
         nTotals = nTotals + TSM002A.VLR
      ENDIF
      
      SKIP IN TSM002A
      LOOP
      
   ENDDO

   SELECT TSM002A
   SET FILTER TO 

   ??? REPLICATE(" ",cQEsp) + PADR("(+) Suplementos ",20 ," ") + TRANSFORM(nTotale,"9,999,999.99") + CHR(10) + CHR(13)
   ??? REPLICATE(" ",cQEsp) + PADR("(-) Sangrias ",20 ," ") + TRANSFORM(nTotals,"9,999,999.99") + CHR(10) + CHR(13)

   ??? REPLICATE("-",40) + CHR(10) + CHR(13)
   ??? SPACE(10) + "TOTAL ==> " + TRANSFORM((cTotalContas + TMP_ABE1.VLR +nTotale) - nTotals ,"9,999,999.99")+ chr(10) + chr(13)

   ??? CHR(10) + CHR(13)

   * INICIO SELECIONAR VALORES QUE ESTO NO CAIXA NA HORA DO FECHAMENTO

   cCodCxEs = cCodCxImpre

   nSelect = "SELECT Tsm002a.CONTSEQ,Tsm002a.TROCO,Tslv020b.* FROM Tsm002a INNER JOIN Tslv020b ON Tsm002a.SEQLANC = Tslv020b.SEQ020B "
   nSelect = nSelect + "WHERE ?cCodCxEs = Tsm002a.SEQCX AND Tsm002a.TPLAN = 'O' "
   TSEXEC("T",nSelect,"TMP_002A020B")

   nSelect = "SELECT Tsm002a.CONTSEQ,Tsm002a.TROCO,Tslv010b.* FROM Tsm002a INNER JOIN Tslv010b ON Tsm002a.SEQLANC = Tslv010b.SEQ010B "
   nSelect = nSelect + "WHERE ?cCodCxEs = Tsm002a.SEQCX AND Tsm002a.TPLAN = 'C' "
   TSEXEC("T",nSelect,"TMP_002A010B")

   nSelect = "SELECT Tsm002a.CONTSEQ,Tsm002a.TROCO,Tsm003b.* FROM Tsm002a INNER JOIN Tsm003b ON Tsm002a.CONTSEQ = Tsm003b.SEQ002A "
   nSelect = nSelect + "WHERE ?cCodCxEs = Tsm002a.SEQCX AND Tsm002a.TPLAN = 'F' "
   TSEXEC("T",nSelect,"TMP_002A003B")

   nSelect = "SELECT Tsm002a.CONTSEQ,Tsm002a.TROCO,Tsm002d.* FROM Tsm002a INNER JOIN Tsm002d ON Tsm002a.CONTSEQ = Tsm002d.SEQLANC "
   nSelect = nSelect + "WHERE ?cCodCxEs = Tsm002a.SEQCX AND Tsm002a.TPLAN = 'S' "
   TSEXEC("T",nSelect,"TMP_002A002D")

   nSelect = "SELECT Tslv020b.* FROM Tslv020b WHERE ?cCodCxEs = SEQCX AND PRAZO = 1 "
   TSEXEC("T",nSelect,"TMP_002DA")

   nSelect = "SELECT Tslv010b.* FROM Tslv010b WHERE ?cCodCxEs = SEQCX AND PRAZO = 1 "
   TSEXEC("T",nSelect,"TMP_002DB")

   nselect = "SELECT * FROM Tsm002a WHERE ?cCodCxEs = Tsm002a.SEQCX AND CODMOV = 2 "
   TSEXEC("T",nSelect,"TMP_ABER")

   CREATE CURSOR TMP_FORMASFEC;
   (CODIGO N(11),;
    DESCRICAO C(40),;
    VALOR N(12,2),;
    VALORC N(12,2),;
    PRAZO N(1))

   nSelect = "SELECT * FROM Tslc005 WHERE RAPIDA = 1 ORDER BY CODIGO "
   TSEXEC("T",nSelect,"TMP_FORMAP11")
   GERACURSOR("TMP_FORMAP11","TMP_FORMAP1")

   SELECT TMP_FORMAP1
   GO TOP IN TMP_FORMAP1
   DO WHILE ! EOF("TMP_FORMAP1")
   
      SELECT TMP_FORMASFEC
      APPEND BLANK IN TMP_FORMASFEC
      REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_FORMAP1.CODIGO
      REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_FORMAP1.DESCRICAO
      REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_FORMAP1.PRAZO
   
      SKIP IN TMP_FORMAP1
      LOOP
   
   ENDDO

   SELECT TMP_FORMASFEC
   GO TOP IN TMP_FORMASFEC
   REPLACE TMP_FORMASFEC.VALOR WITH TMP_ABER.VLR

   SELECT TMP_002A020B
   GO TOP IN TMP_002A020B
   DO WHILE ! EOF("TMP_002A020B")
   
      cCodAc = TMP_002A020B.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         SELECT TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002A020B.VALOR + TMP_002A020B.TROCO
      
      ELSE
      
         SELECT TMP_FORMASFEC
         APPEND BLANK IN TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002A020B.CODIGO
         REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002A020B.DESCRICAO
         REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002A020B.VALOR + TMP_002A020B.TROCO
         REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002A020B.PRAZO
      
      ENDIF
   
      SKIP IN TMP_002A020B
      LOOP
   
   ENDDO

   SELECT TMP_002A010B
   GO TOP IN TMP_002A010B
   DO WHILE ! EOF("TMP_002A010B")
   
      cCodAc = TMP_002A010B.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         SELECT TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002A010B.VALOR + TMP_002A010B.TROCO
      
      ELSE
      
         SELECT TMP_FORMASFEC
         APPEND BLANK IN TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002A010B.CODIGO
         REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002A010B.DESCRICAO
         REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002A010B.VALOR + TMP_002A010B.TROCO
         REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002A010B.PRAZO
      
      ENDIF
   
      SKIP IN TMP_002A010B
      LOOP
   
   ENDDO



   SELECT TMP_002A003B
   GO TOP IN TMP_002A003B
   DO WHILE ! EOF("TMP_002A003B")
   
      cCodAc = TMP_002A003B.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         SELECT TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002A003B.VALOR + TMP_002A003B.TROCO
      
      ELSE
      
         SELECT TMP_FORMASFEC
         APPEND BLANK IN TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002A003B.CODIGO
         REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002A003B.DESCRICAO
         REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002A003B.VALOR + TMP_002A003B.TROCO
         REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002A003B.PRAZO
      
      ENDIF
   
      SKIP IN TMP_002A003B
      LOOP
   
   ENDDO




   SELECT TMP_002A002D
   GO TOP IN TMP_002A002D
   DO WHILE ! EOF("TMP_002A002D")
   
      cCodAc = TMP_002A002D.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         IF TMP_002A002D.TIPO = 1
      
            SELECT TMP_FORMASFEC
            REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002A002D.VALOR + TMP_002A002D.TROCO
         
         ELSE
      
            SELECT TMP_FORMASFEC
            REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + ((TMP_002A002D.VALOR + TMP_002A002D.TROCO) * -1)
         
         ENDIF
      
      ELSE
      
         IF TMP_002A002D.TIPO = 1
      
            SELECT TMP_FORMASFEC
            APPEND BLANK IN TMP_FORMASFEC
            REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002A002D.CODIGO
            REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002A002D.DESCRICAO
            REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002A002D.VALOR + TMP_002A002D.TROCO
            REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002A002D.PRAZO
         
         ELSE
      
            SELECT TMP_FORMASFEC
            APPEND BLANK IN TMP_FORMASFEC
            REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002A002D.CODIGO
            REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002A002D.DESCRICAO
            REPLACE TMP_FORMASFEC.VALOR     WITH ((TMP_002A002D.VALOR + TMP_002A002D.TROCO) * -1)
            REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002A002D.PRAZO
         
         ENDIF
      
      ENDIF
   
      SKIP IN TMP_002A002D
      LOOP
   
   ENDDO

   SELECT TMP_002DA
   GO TOP IN TMP_002DA
   DO WHILE ! EOF("TMP_002DA")
   
      cCodAc = TMP_002DA.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         SELECT TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002DA.VALOR
      
      ELSE
      
         SELECT TMP_FORMASFEC
         APPEND BLANK IN TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002DA.CODIGO
         REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002DA.DESCRICAO
         REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002DA.VALOR
         REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002DA.PRAZO
      
      ENDIF
   
      SKIP IN TMP_002DA
      LOOP
   
   ENDDO

   SELECT TMP_002DB
   GO TOP IN TMP_002DB
   DO WHILE ! EOF("TMP_002DB")
   
      cCodAc = TMP_002DB.CODIGO
   
      SELECT TMP_FORMASFEC
      GO TOP IN TMP_FORMASFEC
      LOCATE FOR cCodAc = TMP_FORMASFEC.CODIGO
      IF FOUND("TMP_FORMASFEC")
      
         SELECT TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.VALOR WITH TMP_FORMASFEC.VALOR + TMP_002DB.VALOR
      
      ELSE
      
         SELECT TMP_FORMASFEC
         APPEND BLANK IN TMP_FORMASFEC
         REPLACE TMP_FORMASFEC.CODIGO    WITH TMP_002DB.CODIGO
         REPLACE TMP_FORMASFEC.DESCRICAO WITH TMP_002DB.DESCRICAO
         REPLACE TMP_FORMASFEC.VALOR     WITH TMP_002DB.VALOR
         REPLACE TMP_FORMASFEC.PRAZO     WITH TMP_002DB.PRAZO
      
      ENDIF
   
      SKIP IN TMP_002DB
      LOOP
   
   ENDDO

   cSaldoCaixa = 0
   ??? REPLICATE(" ",cQEsp) + "SALDO EM CAIXA " + CHR(10) + CHR(13)

   SELECT TMP_FORMASFEC
   GO TOP IN TMP_FORMASFEC
   DO WHILE ! EOF("TMP_FORMASFEC")

     ??? REPLICATE(" ",cQEsp) + padr(SUBSTR(TMP_FORMASFEC.DESCRICAO,1,20) + TRANSFORM(TMP_FORMASFEC.VALOR,"9,999,999.99"),40," ")+ CHR(10) + CHR(13)

      cSaldoCaixa = cSaldoCaixa + TMP_FORMASFEC.valor
      SKIP IN TMP_FORMASFEC
      LOOP

   ENDDO
   
   ??? REPLICATE("-",40) + CHR(10) + CHR(13)
   ??? SPACE(10) + "TOTAL ==> " + TRANSFORM(cSaldoCaixa ,"9,999,999.99") + CHR(10) + CHR(13)

   * FIM SELECIONAR VALORES DO CAIXA
  
   ??? CHR(10) + CHR(13)
   
   * INICIO SELECIONAR VALORES CONFERIDOS

   SELECT TSM002A
   SET FILTER TO CODMOV = 5
   GO TOP IN TSM002A
   
   cSeqFechCx = TSM002A.CONTSEQ

   nSelect = "Select * From Tsm002e Where Seqcx = ?cSeqFechCx "
   TSEXEC("T",nSelect,"TMP_VALORESFECH")

   
   ??? REPLICATE(" ",cQEsp) + "VALORES CONFERIDOS " + CHR(10) + CHR(13)
   cSaldoConf = 0

   SELECT TMP_VALORESFECH
   GO TOP IN TMP_VALORESFECH
   DO WHILE ! EOF("TMP_VALORESFECH")

     ??? REPLICATE(" ",cQEsp) + padr(SUBSTR(TMP_VALORESFECH.DESCRICAO,1,20) + TRANSFORM(TMP_VALORESFECH.VALOR,"9,999,999.99"),40," ")+ CHR(10) + CHR(13)

      cSaldoConf = cSaldoConf + TMP_VALORESFECH.valor

      SKIP IN TMP_VALORESFECH
      LOOP

   ENDDO
   
   SELECT TSM002A
   SET FILTER TO

   * FIM SELECIONAR VALORES CONFERIDOS
   ??? REPLICATE("-",40) + CHR(10) + CHR(13)
   ??? SPACE(10) + "TOTAL ==> " + TRANSFORM(cSaldoConf ,"9,999,999.99")


   ??? CHR(10) + CHR(13)
   ??? CHR(10) + CHR(13)

   ??? REPLICATE(" ",cQEsp) + "DETALHES" + CHR(10) + CHR(13)
   cTotalcx1 = (cTotalContas + TMP_ABE1.VLR +nTotale) - nTotals
   ??? REPLICATE(" ",cQEsp) + padr("Total Caixa.......: " + TRANSFORM(cTotalCx1,"9,999,999.99"),40," ")+ CHR(10) + CHR(13)

   SELECT * FROM TSM002A WHERE CODMOV = 5 INTO CURSOR TMP_FEC1
   SELECT TMP_FEC1
   GO TOP IN TMP_FEC1
   ??? REPLICATE(" ",cQEsp) + padr("Valor Fechamento..: " + TRANSFORM(TMP_FEC1.VLR,"9,999,999.99"),40," ")+ CHR(10) + CHR(13)
   ??? REPLICATE(" ",cQEsp) + padr("Diferenca Caixa...: " + TRANSFORM((TMP_FEC1.VLR - cTotalCx1),"9,999,999.99"),40," ")+ CHR(10) + CHR(13)
   
   ??? CHR(10) + CHR(13)
   
   * SELECIONANDO TOTAL DE PESSOAS

   TSEXEC("T","Select Count(*) as Qtd From Tslv020 Where SeqCx = ?cAbert[3] AND EXCLUI <> 'S' ","TMP_TOTPO")
   TSEXEC("T","Select Count(*) as Qtd From Tslv010 Where SeqCx = ?cAbert[3] AND EXCLUI <> 'S' ","TMP_TOTPC")

   cTotalPessoas = IIF (! ISNULL(TMP_TOTPO.QTD),Val(TMP_TOTPO.QTD),0) + IIF (! ISNULL(TMP_TOTPC.QTD),Val(TMP_TOTPC.QTD),0)

   * SELECIONANDO TOTAL DE PRODUTOS
  
   TSEXEC("T","Select Count(*) as Qtd From Tslv021 Left Join Tslv020 On Tslv021.Cupom = Tslv020.Seq Where Tslv020.SeqCx = ?cAbert[3] AND Tslv020.EXCLUI <> 'S' And Tslv021.Exclui <> 'S' ","TMP_TOTIO")
   TSEXEC("T","Select Count(*) as Qtd From Tslv011 Left Join Tslv010 On Tslv011.Cupom = Tslv010.Seq Where Tslv010.SeqCx = ?cAbert[3] AND Tslv010.EXCLUI <> 'S' And Tslv011.Exclui <> 'S' ","TMP_TOTIC")   

   cTotalProdutos = IIF (! ISNULL(TMP_TOTIO.QTD),VAL(TMP_TOTIO.QTD),0) + IIF (! ISNULL(TMP_TOTIC.QTD),VAL(TMP_TOTIC.QTD),0)

   ??? "CLIENTES " + CHR(10) + CHR(13)
   ??? REPLICATE(" ",cQEsp) + PADR("No de Clientes",23 ," ") + TRANSFORM(cTotalPessoas,"9,999,999") + CHR(10) + CHR(13)
   IF cTotalPessoas > 0
      ??? REPLICATE(" ",cQEsp) + PADR("Compra Media",20 ," ") + TRANSFORM(cTotalCx1/cTotalPessoas,"9,999,999.99") + CHR(10) + CHR(13)
   ENDIF 

   ??? CHR(10) + CHR(13)

   ??? "ITENS VENDIDOS " + CHR(10) + CHR(13)
   ??? REPLICATE(" ",cQEsp) + PADR("No de Itens",23 ," ") + TRANSFORM(cTotalProdutos,"9,999,999") + CHR(10) + CHR(13)
   IF cTotalProdutos > 0
      ??? REPLICATE(" ",cQEsp) + PADR("Valor Medio",20 ," ") + TRANSFORM(cTotalCx1/cTotalProdutos,"9,999,999.99") + CHR(10) + CHR(13)
   ENDIF 
 
   ???  chr(13) + chr(10)
   ???  chr(13) + chr(10)
   ???  chr(13) + chr(10)
   ???  chr(13) + chr(10)
   ???  chr(13) + chr(10)
   ???  chr(13) + chr(10)
   ???  chr(27) + chr(109)

   *iRetorno = Bematech_FI_RelatorioGerencial(cArqImp)
   *iRetorno = Bematech_FI_FechaRelatorioGerencial()
   *iRetorno = ECF_RelatorioGerencial(cArqImp)
   *iRetorno = ECF_FechaRelatorioGerencial()

   *iRetorno = iImprimirTexto_DUAL_DarumaFramework(cArqImp, 0)

   SET PRINTER TO NAME "TSTISAT3"

   EXIT

ENDDO

*MESSAGEBOX(cArquivoi)

*DO FORM &cForm WITH cArquivoi,6