Você está na página 1de 8

#include "TopConn.

ch"
#include "rwmake.ch"
/*
ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±±
±±ºPrograma ³BV020 ºAutor ³ Milton º Data ³ 11/05/10 º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºDesc. ³ Emissao de Pagamentos de BV º±±
±±º ³ º±±
±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±±
±±ºUso ³ AP º±±
±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±±
±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±
ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß
*/
User Function BV020()
Private _cEmisDe,_cEmisAt
IF ALLTRIM(LEFT(SUPERGETMV("BD_BVPROC"),1)) == "S"
ALERT("BV em processamento!!! - Iniciado por: " + ALLTRIM(SUBS(SX6-
>X6_CONTEUD,3,30)) )
RETURN
ENDIF
nLin := 100
cString := "SZD"
cDesc1 := "Pagamentos de BV"
cDesc2 := ""
cDesc3 := ""
tamanho := "M"
limite := 132
aReturn := { "Zebrado", 1, "Administracao", 1, 2, 1, "", 1 }
aLinha := { }
nLastKey := 1
nPag := 1
m_pag := 1
lEnd := .f.
titulo := "Pagamentos de BV"
nomeprog := "BV020"
wnRel := "BV020"
cCancel := "***** CANCELADO PELO OPERADOR *****"
lParametro := .f.
lPerg := .f.
cPerg := "BV020"
cArqTMP := ""

Cabec1 := " Data Valor


Valor Valor Cliente Agencia Dupl"
Cabec2 := "Dupl. Prc Prf VE Emissao Vencto Baixa Duplicata
Base do BV BV Pago % Codigo Nome Original"
// 999999999 999 999 12 99/99/99 99/99/99 99/99/99 99,999,999.99
99,999,999.99 99,999,999.99 99.99 999999 XXXXXXXXXXXXXXXXXXXX
// 1 2 3 4 5 6
7 8 9 10 11 12 13
//
01234567890123456789012345678901234567890123456789012345678901234567890123456789012
3456789012345678901234567890123456789012345678901
// VERIFICA PERGUNTAS NO SX1
//CriaPerg ()
Pergunte(cPerg, .t.)
_cEmisDe := mv_par07 // Wederson 06/05/2004
_cEmisAt := mv_par08 // Wederson 06/05/2004
_cVEICDe := mv_par09 // Sonia - 25/07/05
_cVEICAt := mv_par10 // Sonia - 25/07/05
SetPrint (cString, wnrel, cPerg, titulo, cDesc1, cDesc2, cDesc3, .f.,
"", .F., tamanho)
If nLastKey == 27
Set Filter To
Return ()
EndIf
SetDefault (aReturn, cString)
If nLastKey == 27
Set Filter To
Return ()
EndIf
RptStatus ({|| OkProc () }, "Emissão de Pagamentos de BV")
If aReturn [5] == 1
Set Printer To
Commit
OurSpool (wnRel)
EndIf
Ms_Flush ()
If Select ("SQL") > 0
SQL -> (dbCloseArea ())
EndIf
U_DEL_TRB_SC( CARQTMP ) // 08/11/05 - ELIMINAR O ARQUIVO DE TRABALHO -
FUNCAO NO FIN.PRW
Return (nil)
/*/
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------//
// Funcao | OkProc |Autor | Wederson L. Santana| Data | 03/06/2003 //
//-------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////
/*/
Static Function OkProc ()

Private _dEmissao , _dVencto , _dBaixa, _veiculo


Private _nVlrDupl , _nBaseBV , _nPercBV

_IndArq ()
_cNf2 := Space (06)
xREt4 := aReturn [4]
wTot_Geral := 0

dbSelectArea ("SQL")
dbGoTop ()
SetRegua (LastRec ())

If RecCount () > 0
While ! Eof ()

_cEmiCod := SQL -> ZD_EMICOD //


Quebra - -> Wederson 06/05/2004
_nSubEmi := 0
If nLin > 60
nLin := Cabec (titulo, cabec1, cabec2, nomeprog, tamanho, iIf
(xRet4 == 1, getmv ("MV_COMP"), getmv ("MV_NORM"))) + 1
Else
nLin ++
EndIf

wEmissora := "Emissora - " + Alltrim (SQL -> ZD_EMICOD)


@ nLin, 000 PSay wEmissora

nLin ++
@ nLin, 000 PSay Replicate ("-", limite)

nLin ++
wCont_Emi := 0 // CONTADOR DE NUMERO DE DUPLICATAS PARA EMISSORA

While ! eof () .and. SQL -> ZD_EMICOD == _cEmiCod

WAGECODLOJA := ZD_AGECOD + ZD_AGELOJA


While ! Eof () .and. SQL -> ZD_EMICOD == _cEmiCod .And. ;
SQL -> ZD_AGECOD + SQL -> ZD_AGELOJA = WAGECODLOJA

WAGENF := ZD_AGENF
WAGENFSE := ZD_AGENFSE // 06/10/05 - INCLUIR A SERIE NA
QUEBRA DO RELATÓRIO
wTot_Nota := 0
wPrim_nf := .t.

While ! eof () .and. SQL -> ZD_EMICOD == _cEmiCod .And. ;


SQL -> ZD_AGECOD + SQL -> ZD_AGELOJA =
WAGECODLOJA .AND. SQL -> ZD_AGENF == WAGENF .AND. ;
SQL -> ZD_AGENFSE == WAGENFSE

If nLin > 60
nLin := Cabec
(titulo,cabec1,cabec2,nomeprog,tamanho,iIf (xRet4==1,getmv ("MV_COMP"),getmv
("MV_NORM"))) + 1
wPrim_nf := .t.
EndIf

If wPrim_NF
WTOT_AGENFTT := 0
If SQL -> ZD_AGENFTT # 0
WTOT_AGENFTT := SQL -> ZD_AGENFTT
Else // PROVAVELMENTE FOI POR CONVERSAO E NAO
TEM TOTAL NO CABECALHO
WREG_SZD := RecNo ()
While ! eof () .and. SQL -> ZD_AGECOD +
SQL -> ZD_AGELOJA = WAGECODLOJA .AND. SQL -> ZD_AGENF == WAGENF
WTOT_AGENFTT := WTOT_AGENFTT + SQL
-> ZD_DUPLVLR
dbSkip ()
EndDo
dbGoTo (WREG_SZD)
EndIf

nLin := nLin + 1
@ nLin, 000 PSay "Nota : " + SQL -> ZD_AGENF
+ " Série : " + SQL -> ZD_AGENFSE
@ nLin, 045 PSay "Dt Pgto : " + DTOC (SQL
-> ZD_AGENFPG)
@ nLin, 085 PSay "TT digitado : " + TRANSFORM
(WTOT_AGENFTT, "@E 9,999,999.99") + ;
SPACE(6) + ;
IIF(.NOT.EMPTY(SQL ->ZD_ANTCLI), "Rd: " + SQL -
>ZD_ANTCLI, "")

nLin ++
@ nLin, 000 PSay "Agência : " + SQL ->
ZD_AGECOD + "-" + SQL -> ZD_AGELOJA + " - " + SQL -> ZD_AGENOM
@ nLin, 045 PSay "Emissora : " + SQL ->
ZD_EMICOD + " - " + LEFT ( SQL -> ZD_EMINOME,20)
@ nLin, 085 PSay "Filial origem: " + SQL ->
ZD_FILIAL + IIf ( SQL -> ZD_STATUS == "RR", " - Retroativo", " ")

wPrim_nf := .F.

nLin := nLin + 2
EndIf

//
----------------------------------------------------------------
// | Verifica a duplicata no SZF e alimenta as
variaveis:
// | ---> _dEmissao, _dVencto, _dBaixa, _veiculo
// | ---> _nVlrDupl, _nBVPago e _nPercBV
//
----------------------------------------------------------------
VerifSZF ()

@ nLin, 000 PSay SQL -> ZD_DUPLNUM


@ nLin, 011 PSay SQL -> ZD_DUPLPAR
@ nLin, 015 PSay SQL -> ZD_DUPLPRE
IF EMPTY(SQL -> ZD_CARTANO)
@ nLin, 019 PSay LEFT( _VEICULO,2) // SONIA -
28/06/05
ELSE
@ nLin, 019 PSay LEFT( SQL -> ZD_CARTANO,2) //
SONIA - 23/07/05
ENDIF

@ nLin, 022 PSay _dEmissao // ***


@ nLin, 031 PSay _dVencto // ***
@ nLin, 040 PSay _dBaixa // ***

@ nLin, 049 PSay _nVlrDupl Picture "@E 99,999,999.99"


IF _nVlrDupl == _nBaseBV
@ nLin, 074 PSay "===" // valor da duplicata =
base
ELSE
@ nLin, 063 PSay _nBaseBV Picture "@E
99,999,999.99" // imprime a base do bv
ENDIF
@ nLin, 077 PSay SQL -> ZD_DUPLVLR Picture "@E
99,999,999.99" // Valor do BV Pago
@ nLin, 091 PSay _nPercBV Picture "@E 99.99"
// ***

@ nLin, 097 PSay SQL -> ZD_CLICOD


@ nLin, 104 PSay LEFT( SQL -> ZD_CLINOM, 15)

IF .NOT. EMPTY( SQL->ZD_ANTAGE ) // AGENCIA ORIGINAL


DA DUPLICATA
SA1->( DBSEEK( XFILIAL("SA1") + SQL->ZD_ANTAGE
+ "01" ) )
@ nLin, 121 psay SQL->ZD_ANTAGE + "-" +
LEFT(SA1->A1_NREDUZ,7) // 21/06/05
ENDIF

wTot_Geral += SQL -> ZD_DUPLVLR


wTot_Nota += SQL -> ZD_DUPLVLR
_nSubEmi += SQL -> ZD_DUPLVLR
nLin += 1
wCont_Emi += 1

dbSkip ()
IncRegua (ZD_AGENF + " - " + DTOC (ZD_AGENFPG) )

EndDo // NOTA
If wTot_Nota <> WTOT_AGENFTT
@ nLin, 077 PSay wTot_Nota Picture "@E 99,999,999.99"
@ nLin, 104 PSay ">>> Tt digitado difere da nota <<<
"
nLin += 1
EndIf
nLin += 1
EndDo // AGENCIA
EndDo // Por Emissora - ->
Wederson 06/05/2004
nLin += 1

If wCont_Emi > 1
@ nLin, 001 PSay "Total Emissora - " + _cEmiCod
@ nLin, 077 PSay _nSubEmi Picture "@E 99,999,999.99"
nLin +=2 // Quebra Fim -
-> Wederson 06/05/2004
EndIf
EndDo
If nLin > 60
nLin := Cabec (titulo,cabec1,cabec2,nomeprog,tamanho,iIf
(xRet4==1,getmv ("MV_COMP"),getmv ("MV_NORM"))) + 1
EndIf

nLin := nLin + 1
@ nLin, 000 PSay "TOTAL GERAL"
@ nLin, 077 PSay wTot_Geral Picture "@E 99,999,999.99"
EndIf

Return (nil)

/*/
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------//
// Funcao | CriaPerg |Autor | Wederson L. Santana| Data | 03/06/2003 //
//-------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////
/*/

Static Function CriaPerg ()


Local j := 0
Local i := 0

aSvAlias := {Alias (), IndexOrd (), RecNo ()}


aRegistros := {}
// 1 2 3 4 5 6 7 8 9
10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
29 30 31 32 33 34 35 36 37 38 39 40 41
aAdd (aRegistros, {cPerg, "01", "Nota de ?", "", "", "mv_ch1", "C", 09, 00,
00, "G", "", "mv_par01", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""})
aAdd (aRegistros, {cPerg, "02", "Nota ate ?", "", "", "mv_ch2", "C", 09, 00,
00, "G", "", "mv_par02", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""})
aAdd (aRegistros, {cPerg, "03", "Dt Pagto de ?", "", "", "mv_ch3", "D", 08, 00,
00, "G", "", "mv_par03", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""})
aAdd (aRegistros, {cPerg, "04", "Dt Pagto ate ?", "", "", "mv_ch4", "D", 08, 00,
00, "G", "", "mv_par04", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""})
aAdd (aRegistros, {cPerg, "05", "Agencia de ?", "", "", "mv_ch5", "C", 06, 00,
00, "G", "", "mv_par05", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "BVA", "", "", ""})
aAdd (aRegistros, {cPerg, "06", "Agencia ate ?", "", "", "mv_ch6", "C", 06, 00,
00, "G", "", "mv_par06", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "BVA", "", "", ""})
aAdd (aRegistros, {cPerg, "07", "Emissora de ?", "", "", "mv_ch7", "C", 06, 00,
00, "G", "", "mv_par07", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "EMI", "", "", ""}) // Wederson 06/05/2004
aAdd (aRegistros, {cPerg, "08", "Emissora ate ?", "", "", "mv_ch8", "C", 06, 00,
00, "G", "", "mv_par08", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "EMI", "", "", ""}) // Wederson 06/05/2004
aAdd (aRegistros, {cPerg, "09", "Veiculo de ?", "", "", "mv_ch9", "C", 02, 00,
00, "G", "", "mv_par09", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""}) // Sonia - 25/07/05
aAdd (aRegistros, {cPerg, "10", "Veiculo ate ?", "", "", "mv_cha", "C", 02, 00,
00, "G", "", "mv_par10", "", "", "", "", "", "", "", "", "", "", "", "", "", "",
"", "", "", "", "", "", "", "", "", "", "", "", "", ""}) // Sonia - 25/07/05

dbSelectArea ("SX1")
For i := 1 to Len (aRegistros)
dbSeek (aRegistros [i, 1] + aRegistros [i, 2])
If ! Found ()
While !RecLock ("SX1", .T.)
End
For j:=1 to 41 // FXCount () // 01/10/07
FieldPut (j, aRegistros [i, j])
Next
MsUnlock ()
EndIf
Next i

dbSelectArea (aSvAlias [1])


dbSetOrder (aSvAlias [2])
dbGoTo (aSvAlias [3])

Return (nil)
/*/
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------//
// Funcao | _IndArq |Autor | Wederson L. Santana| Data | 03/06/2003 //
//-------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////
/*/

Static Function _IndArq ()

Local nX := 0

If Select ("SQL") > 0


SQL -> (dbCloseArea ())
EndIf

aStruSZD := SZD -> (dbStruct ())

cQuery := " SELECT * "


cQuery += " FROM " + RetSqlName ("SZD")
cQuery += " WHERE "
cQuery += " ZD_EMICOD BETWEEN '" + _cEmisDe + "' AND '" + _cEmisAt
+ "' AND "
cQuery += " ZD_AGENF BETWEEN '" + mv_par01 + "' AND '" + mv_par02
+ "' AND "
cQuery += " ZD_AGENFPG BETWEEN '" + Dtos (mv_par03) + "' AND '"+Dtos
(mv_par04)+"' AND "
cQuery += " ZD_AGECOD BETWEEN '" + mv_par05 + "' AND '" + mv_par06
+ "' AND "
cQuery += " LEFT(ZD_CARTANO,2) BETWEEN '" + _cVEICDe + "' AND '" + _cVEICAt
+ "' AND "

cQuery += " D_E_L_E_T_ <> '*' "


cQuery += " ORDER BY "
cQuery += " ZD_EMICOD,ZD_AGECOD + ZD_AGENF +ZD_AGENFSE + ZD_DUPLNUM "

TcQuery cQuery ALIAS "SQL" NEW

For nX := 1 To Len (aStruSZD)


If aStruSZD [nX,2] <> "C"
TcSetField ("SQL", aStruSZD [nX, 1], aStruSZD [nX, 2], aStruSZD [nX,
3], aStruSZD [nX, 4])
EndIf
Next nX

cArqTMP := CriaTrab (nil, .f.)


Copy To &cArqTMP

dbCloseArea ()
dbUseArea (.t., , cArqTMP, "SQL", .t.)

Return ()

/*/
/////////////////////////////////////////////////////////////////////////////
//-------------------------------------------------------------------------//
// Funcao | VerifSZF |Autor | Douglas Cezar | Data | 29/03/2005 //
//-------------------------------------------------------------------------//
/////////////////////////////////////////////////////////////////////////////
/*/

Static Function VerifSZF ()

Local _cQuery
Local aStruSZF := SZF -> (dbStruct ())
Local _aArea := GetArea ()
Local nX := 0

// Esta funcao atualiza as variáveis


// -> _dEmissao , _dVencto , _dBaixa
// -> _nBaseBV , _nBVPago , _nPercBV

_cQuery := " SELECT "


_cQuery += " * "
_cQuery += " FROM "
_cQuery += RetSQLName ("SZF") + " ZF "
_cQuery += " WHERE "
_cQuery += " ZF.D_E_L_E_T_ = '' AND ZF_FILIAL = '" + xFilial ("SZF") + "' AND
"

_cQuery += " ZF.ZF_FILORIG = '" + SQL -> ZD_FILIAL + "' AND "
_cQuery += " ZF.ZF_DUPLNUM = '" + SQL -> ZD_DUPLNUM + "' AND "
_cQuery += " ZF.ZF_DUPLPRE = '" + SQL -> ZD_DUPLPRE + "' AND "
_cQuery += " ZF.ZF_DUPLPAR = '" + SQL -> ZD_DUPLPAR + "' AND "
_cQuery += " ZF.ZF_TIPO = '" + SQL -> ZD_DUPLTIP + "' AND "
_cQuery += " ZF.ZF_CLICODI = '" + SQL -> ZD_CLICOD + "' AND "
_cQuery += " ZF.ZF_EMICODI = '" + SQL -> ZD_EMICOD + "' "

TcQuery _cQuery ALIAS "TRB" NEW

For nX := 1 To Len (aStruSZF)


If aStruSZF [nX,2] <> "C"
TcSetField ("TRB", aStruSZF [nX, 1], aStruSZF [nX, 2], aStruSZF [nX,
3], aStruSZF [nX, 4])
EndIf
Next

_dEmissao := TRB -> ZF_DUPLEMI


_dVencto := TRB -> ZF_DUPVENC
_dBaixa := TRB -> ZF_DTBAIXA
_veiculo := TRB -> ZF_VEICULO // SONIA - 28/06/05

_nVlrDupl := TRB -> ZF_DUPLVLR


//_nBaseBV := TRB -> ZF_VRBASBV
//_nPercBV := (SQL -> ZD_DUPLVLR / TRB -> ZF_VRBASBV) * 100
_nBaseBV := TRB -> ZF_VRBASBV + TRB->ZF_VRBASES // 09/01/06 - VR BASE BV + BASE
ESPECIAL
_nPercBV := ( (SQL -> ZD_DUPLVLR + TRB->ZF_VRBASES ) / TRB -> ZF_VRBASBV) * 100 //
09/01/06 - VR BASE BV + ESPECIAL

TRB -> (dbCloseArea ())

RestArea (_aArea)

Return ()

Você também pode gostar