// Arquivo: Est142.prg --> Relatorio do movimento de contas geral ( Periodo ) // Ultima Alteracao Em: 11/02/99 Ok #include "Inkey.ch" FUNCTION Est142() LOCAL GETLIST:={} atual := "Est142 " PUBLIC pCONTADOR := "S" ARQDBF("SALDO") ARQDBF("CADSAI") ARQDBF("CADCANC") ARQDBF("CADMAT") SETCOLOR(cor08) DirEsq(13,15,18,51,.T.) DO WHILE .T. SETCOLOR(cor07) SETCURSOR(3) SET KEY K_CTRL_W TO AlteraPerc() SCROLL(14,16,17,51) pCONTADOR := pDEVOL := "S" pDATA1 := pDATA2 := CTOD(SPACE(10)) pCOPIAS := 1 @ 15,17 SAY "Per¡odo..:" GET pDATA1 VALID VlrData(pDATA1) @ 15,39 SAY "a" GET pDATA2 @ 16,17 SAY "Filtrar Devolucao......:" GET pDEVOL PICT "!" VALID pDEVOL$ "SN" @ 17,17 SAY "N"+CHR(167)+" C"+CHR(162)+"pias:" GET pCOPIAS PICT "999" READ SET KEY K_CTRL_W TO IF LASTKEY() = 27 EXIT ELSEIF pCOPIAS = 0 LOOP ENDIF IF Box("Imprimir ?") pSAIDA := Saida( 1 ) FOR nCOPIAS := 1 TO pCOPIAS l := soma := pSUBTRIB := 0 pagina := 1 SELE CADSAI SET ORDER TO 11 GO TOP SEEK SUBSTR(DTOC(pDATA1),7,4)+SUBSTR(DTOC(pDATA1),4,2)+SUBSTR(DTOC(pDATA1),1,2) DO WHILE CTOD(CADSAI->DATA) <= pDATA2 .AND. !EOF() IF CTOD(CADSAI->DATA) >= pDATA1 pDATA := CADSAI->DATA DO WHILE CADSAI->DATA = pDATA .AND. !EOF() pDIA := SUBSTR(CADSAI->DATA,1,2) pTOTDIA := 0 DO WHILE CADSAI->DATA = pDATA .AND. SUBSTR(CADSAI->DATA,1,2) = pDIA .AND. !EOF() IF AutoBusc("CADCANC",2,STR(CADSAI->PEDIDO,6)) SELE CADSAI // Ignora Pedidos Cancelados SKIP ; LOOP ENDIF SELE CADSAI IF pDEVOL="S" // Filtra Devolucoes IF CADSAI->VENDA="D" SKIP;LOOP ENDIF ENDIF pPEDIDO = CADSAI->PEDIDO pDESC_DIN := CADSAI->DESC_DIN pVTROCA := CADSAI->VTROCA DO WHILE CADSAI->PEDIDO = pPEDIDO .AND. !EOF() IF pCONTADOR = "S" pCUPOM := (CADSAI->BASE*CADSAI->QUANT) ELSE pCUPOM := (CADSAI->PRECO*CADSAI->QUANT) ENDIF * IF CADSAI->DESCONTO # 0 * DESATIVADO PAREI pCUPOM -= (pCUPOM*(CADSAI->DESCONTO/100)) * ENDIF SELE CADMAT SEEK CADSAI->CODIGO IF FOUND() IF CADMAT->SITUACAO # " " // PRODUTOS COM pSUBTRIB += pCUPOM // SITUACAO TRIBUTARIA ENDIF ENDIF pTOTDIA += pCUPOM SELE CADSAI SKIP ENDDO IF pDESC_DIN # 0 // PAREI pTOTDIA -= pDESC_DIN ENDIF IF pVTROCA # 0 pTOTDIA -= pVTROCA ENDIF ENDDO IF l = 0 nTEXTO := "Movimento de Caixa" nTEXTO1 := "Periodo: "+DTOC(pDATA1)+" a "+DTOC(pDATA2)+" "+"Operador(a) "+usua l := Cabeca(l,nTEXTO,pagina,nTEXTO1,pSAIDA) l++ @ l, 00 SAY lx l++ @ l,02 SAY "Dia" @ l,08 SAY " Valor" l++ @ l,00 SAY lx l++ ENDIF @ l,02 SAY pDIA IF pCONTADOR = "S" SELE SALDO SET ORDER TO 1 SEEK SUBSTR(pDATA,7,4)+SUBSTR(pDATA,4,2)+SUBSTR(pDATA,1,2) IF FOUND() IF SALDO->TOTAL#0 pTOTDIA:= SALDO->TOTAL ENDIF ELSE pTOTDIA := 0 ENDIF ENDIF SELE CADSAI @ l,07 SAY TRAN(pTOTDIA,"@e 999,999.99") l++ soma += pTOTDIA * SKIP IF l >= 58 .AND. CTOD(CADSAI->DATA) = CTOD(pDATA) .AND. !EOF() @ l,00 SAY lx l++ @ l,07 SAY TRAN(soma,"@e 999,999.99") l++ @ l,00 SAY lx l := 0 ; pagina++ ENDIF ENDDO ELSE SKIP ENDIF ENDDO @ l,00 SAY lx l++ @ l,07 SAY TRAN(soma,"@e 999,999.99") @ l,20 SAY "Subs Trib "+TRAN(pSUBTRIB,"@e 999,999.99") @ l,43 SAY "Total Geral "+TRAN(soma - pSUBTRIB,"@e 999,999.99") l++ @ l,00 SAY lx EJECT NEXT Saida( 2, pSAIDA ) ENDIF ENDDO atual := "Est051 " SELE SALDO USE SELE CADSAI USE SELE CADCANC USE SELE CADMAT USE RETURN NIL static FUNCTION AlteraPerc() LOCAL GETLIST := {} DO WHILE .T. SETCOLOR(cor07) SETCURSOR(3) @ 14,17 SAY "Contador (S/N) ?" GET pCONTADOR PICT "!" VALID(pCONTADOR$"SN") READ EXIT ENDDO SCROLL(14,16,14,38) RETURN .T.