Jump to content
Fivewin Brasil

Ajuda - Fivewin


rclipper

Recommended Posts

Caros amigos

Estou montando um Contas Receber/Pagar, após efetuar as vendas a prazo, quando o sistema grava no CONTAS.PRG dá o seguinte erro que não entendo.

Como posso resolver este erro?

Application

===========

Path and name: C:\LOJA\SISLOJA.EXE

Size: 1,577,024 bytes

Max files handles permited: ( SetHandleCount() ) 150

Error ocurred at: 29/05/2007, 00:07:47

Error description: Error BASE/1002 Alias does not exist

Stack Calls

===========

Called from CONTAS(39)

Called from (b)BUILDMENU(149)

Called from MAIN(93)

O código fonte abaixo postado:


#Include "FiveWin.ch"

#xcommand @ , SAY OF => :Say(, , )

STATIC nTatApg, lCaptal, cNotJur, nTipBol, CntFnt, CntSiz, CntSty, nCopBol, cTkPort

//----------------------------------------------------------------------------//

function Contas(nTip)

local oMeter, oText, lEnd, oCntLis, lExit

PUBLIC mDupNum, mDupVen, mDupVlr, mDupQui, mDupPgo, mDupAre, mDupRnu,;

mDupRdt, mDupDsc, mDupRef, mDupJur, aArray

PUBLIC Rc_18:=0, Rc_12:=0, oDbf, nDias := 30, nTotal, oDlg

Publ cfNom, cfVdr, wdte1, wdte2, wdtv1, wdtv2, wvlbr:=0, wvlpg:=0,;

wvltt:=0, wfil:="", wvend:="", wvlds:=0, wDtp1, wDtp2,;

mycli, lSoMens, cPess, cDesc, cMaos,;

cCodi := SPACE(10)

PUBLIC vIt01, vIt02, vIt03, vIt04, vIt05, vIt06, vIt07, vIt08, vIt09,;

vIt48, cEntr, lPcnt

cPess :=SPACE(10)

mTp := nTip

cDesc := SPACE(40)

cMaos := " "

lCaptal:=.f.

nTipBol:=3

nCopBol:=2

cNotJur:="5.0"

cTkPort:="LPT1"

IF mTp = 1

SELECT 10

ELSEIF mTp = 2

SELECT 11

ELSEIF mTp = 3

SELECT 12

ELSEIF mTp = 4

SELECT 13

ENDIF

oDbf := SELECT()

oDbf := (oDbf)->(ALIAS())

&(oDbf)->(DBCLEARFIL(Nil)) // alinha 39 é esta.

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOTOP())

RECEVarl()

DEFINE FONT mBrwFnt NAME "Courier New" SIZE 0,-12

DEFINE DIALOG oDlg FROM 0, 0 TO 35,100 TITLE "Controle de contas"+CntTip(mTp)

//Procurar campo 1

@05,45 SAY IIF(mTp=1 .OR. mTp=2,"&Cliente:","&Fornecedor:") RIGHT OF oDlg PIXEL SIZE 30,10

@03,78 GET oGet VAR cDesc PICTURE "@!" PIXEL OF oDlg ;

ON CHANGE ( ::Assign(), DBSETORDER(2),;

If( DbSeek( SubStr( cDesc, 1, ::nPos - 1 ) + Chr( nKey ) ),;

( oCntLis:UpStable(), oCntLis:Refresh(), .t. ),;

( oCntLis:UpStable(), oCntLis:Refresh(), .t. ) ) ) ;

SIZE 100,10 UPDATE

oGet:bGotFocus := {||( cDesc:=SPACE(40), oGet:Refresh() )}

//Procurar campo 2

@05,180 SAY OemToAnsi("C¢d. Cliente:") RIGHT OF oDlg PIXEL SIZE 35,10

@03,218 GET oGet1 VAR cCodi PICTURE "@!" PIXEL OF oDlg ;

VALID EVAL({||(IIF(!EMPTY(cCodi),(cCodi:=ALLTRIM(cCodi),;

DBSETORDER(1),;

DBSEEK(ALLTRIM(cCodi)),;

oCntLis:UpStable(),oCntLis:Refresh()),NIL),;

oDlg:UpDate()),.T.});

SIZE 35,10 UPDATE

oGet1:bGotFocus := {||( cCodi:=SPACE(10), oGet1:Refresh() )}

@05, 4 SAY "&Lista:"+CntTip(mTp) OF oDlg PIXEL SIZE 40,10

@ 1, 1 LISTBOX oCntLis ;

FIELDS &(oDbf)->CODIGO,; //C¢d.cli

STRZERO(&(oDbf)->NUMPAR)+"/"+STRZERO(&(oDbf)->QTDPAR),;//Parcela/Qtd.Par

&(oDbf)->ITEM03,; //Nome

DTOC(&(oDbf)->ITEM04),; //Emiss

DTOC(&(oDbf)->ITEM06),; //Vencimento

TRANS(&(oDbf)->ITEM05,"@E 999,999.99"),; //Valor

TRANS(&(oDbf)->ITEM12,"@E 999,999.99"),; //Quitado

TRANS(&(oDbf)->ITEM16,"@E 999,999.99"),; //Pendente

TRANS(&(oDbf)->ITEM13,"@E 999.99"),; //Juros

&(oDbf)->ITEM10,; //N§ banco

DTOC(&(oDbf)->ITEM11),; //Pagamento

CalcAtraso(&(oDbf)->item06) ; //Atraso

HEADERS OemToAnsi("C¢digo"),;

OemToAnsi("Parcela"),;

IIF(mTp=1 .OR. mTp=2,"Cliente","Fornecedor"),;

"Emissão",;

"Vancimento",;

"Valor",;

"Vlr.quitado",;

"Vlr.pendente",;

"Juros",;

OemToAnsi("N§ Banco"),;

"Dt.Pagam",;

"Atraso" ;

FIELDSIZES 70,50,280,80,80,80,80,80,80,250,80,80 ;

ALIAS oDbf ;

COLORS BrwText, BrwBack ;

SIZE 284, 115 OF oDlg

oCntLis:bLDblClick := { | nRow, nCol | AlteConta(oCntLis, .f., mTp, nRow, nCol) }

oCntLis:SetFont(mBrwFnt)

nLin := 18.5*12

nCol := 55

@ nLin,(8+(nCol*2)-55) SAY "Total bruto" PIXEL SIZE 45, 12 OF oDlg

@ nLin,(8+(nCol*4)-55) SAY "Quitado" PIXEL SIZE 45, 12 OF oDlg

@ nLin,(8+(nCol*6)-55) SAY "Saldo" PIXEL SIZE 45, 12 OF oDlg

nLin += 08

@ nLin,(8+(nCol*2)-55) GET wvlbr PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

@ nLin,(8+(nCol*4)-55) GET wvlpg PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

@ nLin,(8+(nCol*6)-55) GET wvltt PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

nLin := 20.5*12

@ nLin, (8+(nCol*1)-55) BUTTON "&Novo" OF oDlg ACTION (EditConta( oCntLis, .t.,mTp, NIL, NIL ),CntTotais(oDlg),oCntLis:Refresh()) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*2)-55) BUTTON "&Alterar" OF oDlg ACTION (AlteConta( oCntLis, .f.,mTp, NIL, NIL ),CntTotais(oDlg),oCntLis:Refresh()) PIXEL SIZE 45, 12

IF mTp = 1

@ nLin, (8+(nCol*3)-55) BUTTON "&Quitar" OF oDlg ACTION PagConta(mTp, oCntLis, oDlg, .F.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*4)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ELSEIF mTp = 2

@ nLin, (8+(nCol*3)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

* @ nLin, (8+(nCol*4)-55) BUTTON OemToAnsi("Canc&elar pgt§") OF oDlg ACTION CntCancel() PIXEL SIZE 45, 12

ELSEIF mTp = 3

@ nLin, (8+(nCol*3)-55) BUTTON "&Quitar" OF oDlg ACTION PagConta(mTp, oCntLis, oDlg, .F.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*4)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ELSEIF mTp = 4

@ nLin, (8+(nCol*3)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ENDIF

@ nLin, (8+(nCol*5)-55) BUTTON "&Filtrar" OF oDlg ACTION CntFilter(oCntLis, oDlg, .t.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*6)-55) BUTTON "&Imprimir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||PrnFilter(oCntLis,mTp)}),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*7)-55) BUTTON "&Retornar" OF oDlg ACTION oDlg:End() PIXEL SIZE 45, 12

ACTIVATE DIALOG oDlg ;

ON INIT ( oCntLis:Move(30, 4, oDlg:GetCliRect():nRight - oDlg:GetCliRect():nLeft - 8,;

oDlg:GetCliRect():nBottom - oDlg:GetCliRect():nTop -120, .t.), CntFilter(oCntLis, oDlg, .f.))

mBrwFnt:End()

&(oDbf)->(DBCLEARFIL(NIL))

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOTOP())

SELECT 0

SysRefresh()

return nil

//--------------------------------------------------------------------------//

FUNCTION EditConta( oCntLis, lAppend, mTp, nRow, nCol )

local oBtn, oSay, MyDb, oCbx

local lSave := .f.

local nOldRec := RecNo()

local nParc2, dEmi2, dVen2, nVlr2,;

nParc3, dEmi3, dVen3, nVlr3,;

nParc4, dEmi4, dVen4, nVlr4,;

nParc5, dEmi5, dVen5, nVlr5, nParc1

STORE CTOD(" ") TO dEmi2, dEmi3, dEmi4, dEmi5, dVen2, dVen3, dVen4, dVen5

STORE 0 TO nVlr2, nVlr3, nVlr4, nVlr5, nParc1, nParc2, nParc3, nParc4, nParc5

aArray := {}

PUBLIC oDlg2

nDias := 30

DEFAULT lAppend := .f.

CursorWait()

IF lAppend

Rc_it24 := "GERAL "

Rc_it07 := DATE()

Rc_it08 := IIF(mTp=1 .OR. mTp=2, VAL(cNotJur)*30, 0)

RcQtPar := 1

RcNmPar := 1

GO BOTT

SKIP

AADD(aArray,{STRZERO(&(oDbf)->NUMPAR,2),&(oDbf)->ITEM06,&(oDbf)->ITEM05})

ELSE

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

ENDIF

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

DEFINE DIALOG oDlg2 RESOURCE "CAD_CNT" TITLE "Cadastro de Contas"+CntTip(mTp)

mF6fun1 := "CntSeekF6(@Rc_it02, @Rc_it03, @Rc_it09, mTp)"

mF6fun2 := "SetParcel(Rc_it02, @aArray, oBr2, mTp)"

SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())})

IF mTp=1 .OR. mTp=2

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Cliente [F6=Pesquisar] -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Vendedor") ID -3 OF oDlg2

ELSE

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Fornecedor -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Contato") ID -3 OF oDlg2

ENDIF

REDEFINE GET oGet02 VAR Rc_it02 PICTURE "9999999999" ID 36 OF oDlg2 ;

VALID CntSeekCod(@Rc_it02, @Rc_it03, oDlg2, mTp) .AND. ;

SetParcel(Rc_it02, @aArray, oBr2, mTp) .AND. ;

EVAL({||SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())}),.T.}) ;

WHEN EVAL({||SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())}),.T.}) .AND. lAppend ;

UPDATE

REDEFINE GET oGet03 VAR Rc_it03 ID 37 OF oDlg2 UPDATE

REDEFINE BTNBMP oBtb ID 54 OF oDlg2 FILE ".\BITMAPS\NOVO.BMP" ACTION CntNewCli(mTp,oDlg2)

REDEFINE GET oGet04 VAR Rc_it09 ID 39 OF oDlg2 UPDATE // VALID CntSeekVnd(@Rc_it09, oDlg2, mTp)

// 1¦ parcela

REDEFINE GET oGet01 VAR nParc1 PICTURE "99" ID 35 OF oDlg2 // VALID CnkChkNum(nParc1)

REDEFINE GET oGet05 VAR Rc_it04 ID 40 OF oDlg2 VALID CalcVenc(Rc_it04, @Rc_it06, nDias, 1, oDlg2) WHEN nParc1 <> 0

REDEFINE GET oGet07 VAR Rc_it06 ID 41 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(Rc_it06)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it06)))}) WHEN nParc1 <> 0 UPDATE

REDEFINE GET oGet09 VAR Rc_it05 PICTURE "@E 999,999.99" ID 43 OF oDlg2 UPDATE WHEN nParc1 <> 0

// 2¦ parcela

REDEFINE GET oCt55 VAR nParc2 PICTURE "99" ID 55 OF oDlg2 WHEN nParc1 <> 0 // VALID CnkChkNum(nParc2)

REDEFINE GET oCt59 VAR dEmi2 ID 59 OF oDlg2 VALID CalcVenc(dEmi2, @dVen2, nDias, 2, oDlg2) WHEN nParc2 <> 0

REDEFINE GET oCt63 VAR dVen2 ID 63 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen2)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen2)))}) WHEN nParc2 <> 0 UPDATE

REDEFINE GET oCt67 VAR nVlr2 PICTURE "@E 999,999.99" ID 67 OF oDlg2 UPDATE WHEN nParc2 <> 0

// 3¦ parcela

REDEFINE GET oCt56 VAR nParc3 PICTURE "99" ID 56 OF oDlg2 WHEN nParc2 <> 0 // VALID CnkChkNum(nParc3)

REDEFINE GET oCt60 VAR dEmi3 ID 60 OF oDlg2 VALID CalcVenc(dEmi3, @dVen3, nDias, 3, oDlg2) WHEN nParc3 <> 0

REDEFINE GET oCt64 VAR dVen3 ID 64 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen3)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen3)))}) WHEN nParc3 <> 0 UPDATE

REDEFINE GET oCt68 VAR nVlr3 PICTURE "@E 999,999.99" ID 68 OF oDlg2 UPDATE WHEN nParc3 <> 0

// 4¦ parcela

REDEFINE GET oCt57 VAR nParc4 PICTURE "99" ID 57 OF oDlg2 WHEN nParc3 <> 0 // VALID CnkChkNum(nParc4)

REDEFINE GET oCt61 VAR dEmi4 ID 61 OF oDlg2 VALID CalcVenc(dEmi4, @dVen4, nDias, 4, oDlg2) WHEN nParc4 <> 0

REDEFINE GET oCt65 VAR dVen4 ID 65 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen4)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen4)))}) WHEN nParc4 <> 0 UPDATE

REDEFINE GET oCt69 VAR nVlr4 PICTURE "@E 999,999.99" ID 69 OF oDlg2 UPDATE WHEN nParc4 <> 0

// 5¦ parcela

REDEFINE GET oCt58 VAR nParc5 PICTURE "99" ID 58 OF oDlg2 WHEN nParc4 <> 0 // VALID CnkChkNum(nParc5)

REDEFINE GET oCt62 VAR dEmi5 ID 62 OF oDlg2 VALID CalcVenc(dEmi5, @dVen5, nDias, 5, oDlg2) WHEN nParc5 <> 0

REDEFINE GET oCt66 VAR dVen5 ID 66 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen5)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen5)))}) WHEN nParc5 <> 0 UPDATE

REDEFINE GET oCt70 VAR nVlr5 PICTURE "@E 999,999.99" ID 70 OF oDlg2 UPDATE WHEN nParc5 <> 0

REDEFINE GET oGet06 VAR Rc_it07 ID 38 OF oDlg2 UPDATE

REDEFINE GET oGet08 VAR Rc_it10 ID 42 OF oDlg2

REDEFINE GET oGet10 VAR Rc_it08 PICTURE "@E 999.99" ID 44 OF oDlg2

REDEFINE GET oGet16 VAR Rc_it14 ID 50 OF oDlg2

REDEFINE GET oGet17 VAR Rc_it15 ID 51 OF oDlg2

REDEFINE CHECKBOX oChec1 VAR Rc_it23 ID 52 OF oDlg2

nRec := 1

REDEFINE LISTBOX oBr2 ;

FIELDS aArray[nRec,1],;

DTOC(aArray[nRec,2]),;

TRANS(aArray[nRec,3],"@E 999,999.99") ;

ID 46 OF oDlg2 ;

ALIAS NIL ;

COLORS CLR_BLACK, 14483196

oBr2:aHeaders := {OemToAnsi("Parcela"),;

OemToAnsi("Vencimento"),;

OemToAnsi("Valor")}

oBr2:aColSizes := {50,90,90}

oBr2:bLogicLen := {|| len(aArray)}

oBr2:bGoTop := {|| nRec := 1 }

oBr2:bGoBottom := {|| nRec := len(aArray) }

oBr2:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - nRec ), ;

Len( aArray ) - nRec ), ;

nRec += nDo, nDo }

REDEFINE BUTTON oBt1 ID 33 OF oDlg2 ACTION (lSave := .T. , oDlg2:End()) WHEN nParc1 <> 0 .AND. !EMPTY(Rc_it03)

REDEFINE BUTTON oBt2 ID 34 OF oDlg2 ACTION (lSave := .F. , oDlg2:End())

ACTIVATE DIALOG oDlg2 CENTERED

if lSave

nTotPar := 0

IF nParc1 <> 0 ; nTotPar ++ ; ENDIF

IF nParc2 <> 0 ; nTotPar ++ ; ENDIF

IF nParc3 <> 0 ; nTotPar ++ ; ENDIF

IF nParc4 <> 0 ; nTotPar ++ ; ENDIF

IF nParc5 <> 0 ; nTotPar ++ ; ENDIF

aCodigs := {}

aParc := {}

nUlt := 0

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(1+nUlt,3))

FOR X := 1 TO nTotPar

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(X+nUlt,3))

WHILE &(oDbf)->(DBSEEK(cUlt))

nUlt ++

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(X+nUlt,3))

END

AADD(aCodigs,cUlt)

AADD(aParc,cUlt)

NEXT

IF nParc1 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[1]

Rc_it16 := Rc_it05

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH Rc_it04

REPL &(oDbf)->ITEM05 WITH Rc_it05

REPL &(oDbf)->ITEM06 WITH Rc_it06

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH Rc_it16

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc1

ENDIF

IF nParc2 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[2]

Rc_it16 := nVlr2

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi2

REPL &(oDbf)->ITEM05 WITH nVlr2

REPL &(oDbf)->ITEM06 WITH dVen2

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr2

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc2

ENDIF

IF nParc3 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[3]

Rc_it16 := nVlr3

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi3

REPL &(oDbf)->ITEM05 WITH nVlr3

REPL &(oDbf)->ITEM06 WITH dVen3

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr3

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc3

ENDIF

IF nParc4 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[4]

Rc_it16 := nVlr4

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi4

REPL &(oDbf)->ITEM05 WITH nVlr4

REPL &(oDbf)->ITEM06 WITH dVen4

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr4

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc4

ENDIF

IF nParc5 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[5]

Rc_it16 := nVlr5

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi5

REPL &(oDbf)->ITEM05 WITH nVlr5

REPL &(oDbf)->ITEM06 WITH dVen5

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr5

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc5

ENDIF

&(oDbf)->(DBCOMMITALL())

&(oDbf)->(DbUnlockALL())

nOldRec := &(oDbf)->(RECNO())

IF mTp = 1

IF MsgYesNo("Gostaria de imprimir a NOTA PROMISSÓRIA?", OemToAnsi("Imprimir"))

ImpNotPro()

ENDIF

ENDIF

ENDIF

SETKEY( VK_F6, {} )

&(oDbf)->(DBGOTO(nOldRec))

IF oCntLis <> NIL

oCntLis:UpStable()

oCntLis:Refresh()

ENDIF

return nil

//-------------------------------------------------------------------------//

static function AlteConta( oCntLis, lAppend, mTp, nRow, nCol )

local oBtn, oSay, MyDb, oCbx

local lSave := .f.

local nOldRec := RecNo()

PUBLIC oDlg2

nDias := 0

CursorWait()

IF lAppend

Rc_it24 := "GERAL "

RcQtPar := 1

RcNmPar := 1

GO BOTT

SKIP

ELSE

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

ENDIF

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

DEFINE DIALOG oDlg2 RESOURCE "CAD_CNT" TITLE If( lAppend, "Cadastro de Contas"+CntTip(mTp), "Alteração de Contas"+CntTip(mTp) )

REDEFINE GET oGet01 VAR Rc_it01 ID 35 OF oDlg2 READONLY

IF mTp=1 .OR. mTp=2

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Cliente -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Vendedor") ID -3 OF oDlg2

ELSE

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Fornecedor -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Contato") ID -3 OF oDlg2

ENDIF

REDEFINE GET oGet02 VAR Rc_it02 PICTURE "99999999" ID 36 OF oDlg2 READONLY

REDEFINE GET oGet03 VAR Rc_it03 ID 37 OF oDlg2 UPDATE

REDEFINE BTNBMP oBtb ID 55 OF oDlg2 FILE ".\BITMAPS\NOVO.BMP" WHEN .F.

REDEFINE GET oGet04 VAR Rc_it09 ID 39 OF oDlg2 UPDATE

REDEFINE GET oGet05 VAR Rc_it04 ID 40 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(Rc_it04)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it04)))})

REDEFINE GET oGet06 VAR Rc_it07 ID 38 OF oDlg2 UPDATE

REDEFINE GET oGet07 VAR Rc_it06 ID 41 OF oDlg2 UPDATE VALID EVAL({||IIF(EMPTY(DTOS(Rc_it06)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it06)))})

REDEFINE GET oGet08 VAR Rc_it10 ID 42 OF oDlg2

REDEFINE GET oGet09 VAR Rc_it05 PICTURE "@E 999,999.99" ID 43 OF oDlg2 Valid RcPriCal(oDlg2) UPDATE

REDEFINE GET oGet10 VAR Rc_it08 PICTURE "@E 999.99" ID 44 OF oDlg2

REDEFINE GET oGet11 VAR Rc_it11 ID 45 OF oDlg2

REDEFINE GET oGet12 VAR Rc_it12 PICTURE "@E 999,999.99" ID 46 OF oDlg2 VALID RcPriCal(oDlg2)

REDEFINE GET oGet13 VAR Rc_it18 PICTURE "@E 999,999.99" ID 47 OF oDlg2 VALID RcPriCal(oDlg2)

REDEFINE GET oGet14 VAR Rc_it16 PICTURE "@E 999,999.99" ID 48 OF oDlg2 VALID RcPriCal(oDlg2) UPDATE

REDEFINE GET oGet15 VAR Rc_it19 ID 49 OF oDlg2

REDEFINE GET oGet16 VAR Rc_it14 ID 50 OF oDlg2

REDEFINE GET oGet17 VAR Rc_it15 ID 51 OF oDlg2

REDEFINE CHECKBOX oChec1 VAR Rc_it23 ID 52 OF oDlg2

REDEFINE BUTTON oBt1 ID 33 OF oDlg2 ACTION (lSave := .T. , oDlg2:End()) WHEN !EMPTY(Rc_it01) .AND. !EMPTY(Rc_it03)

REDEFINE BUTTON oBt2 ID 34 OF oDlg2 ACTION (lSave := .F. , oDlg2:End())

ACTIVATE DIALOG oDlg2 CENTERED

if lSave

while ! &(oDbf)->(Rlock()) ; End

if lAppend

&(oDbf)->(DBAPPEND())

endif

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH Rc_it04

REPL &(oDbf)->ITEM05 WITH Rc_it05

REPL &(oDbf)->ITEM06 WITH Rc_it06

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH Rc_it16

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

&(oDbf)->(DBCOMMITALL())

&(oDbf)->(DbUnlockALL())

nOldRec := &(oDbf)->(RECNO())

endif

&(oDbf)->(DBGOTO(nOldRec))

oCntLis:UpStable()

oCntLis:Refresh()

return nil

//---------------------------------------------------------------------------//

STATIC FUNCTION CnkChkNum(cCodigo)

LOCAL lOk := .T.

SET ORDER TO 1

SEEK cCodigo

IF FOUND()

MsgStop(OemToAnsi("Este n£mero j  existe."),OemToAnsi("Aten‡Æo!"))

lOk := .F.

ENDIF

RETURN(lOk)

//---------------------------------------------------------------------------//

STATIC FUNCTION DelConta(oCntLis,mTp)

LOCAL MyDb := SELECT()

LOCAL nNdoc1 := SPACE(10), nVpar1 := 0, dVenc1 := CTOD(" "),;

nNdoc2 := SPACE(10), nVpar2 := 0, dVenc2 := CTOD(" "),;

nNdoc3 := SPACE(10), nVpar3 := 0, dVenc3 := CTOD(" "),;

nNdoc4 := SPACE(10), nVpar4 := 0, dVenc4 := CTOD(" "),;

nNdoc5 := SPACE(10), nVpar5 := 0, dVenc5 := CTOD(" "),;

nNdoc6 := SPACE(10), nVpar6 := 0, dVenc6 := CTOD(" ")

PUBLIC nDoc := &(oDbf)->CODIGO

lConf := .F.

nNdoc1 := &(oDbf)->CODIGO

nVpar1 := &(oDbf)->ITEM05

dVenc1 := &(oDbf)->ITEM06

vIt01 := &(oDbf)->ITEM02 // Cod.Cliente

DEFINE DIALOG oIPAR RESOURCE "IMPRPARC" TITLE OemToAnsi("ExclusÆo de parcelas")

REDEFINE GET oNdoc1 VAR nNdoc1 ID 101 OF oIPAR VALID ChkParOk(nNdoc1, @nVpar1, @dVenc1, vIt01, @oIPAR)

REDEFINE GET oVpar1 VAR nVpar1 PICTURE "@E 999,999.99" ID 102 OF oIPAR UPDATE

REDEFINE GET oVenc1 VAR dVenc1 ID 103 OF oIPAR UPDATE

REDEFINE GET oNdoc2 VAR nNdoc2 ID 104 OF oIPAR VALID ChkParOk(nNdoc2, @nVpar2, @dVenc2, vIt01, @oIPAR)

REDEFINE GET oVpar2 VAR nVpar2 PICTURE "@E 999,999.99" ID 105 OF oIPAR UPDATE

REDEFINE GET oVenc2 VAR dVenc2 ID 106 OF oIPAR UPDATE

REDEFINE GET oNdoc3 VAR nNdoc3 ID 107 OF oIPAR VALID ChkParOk(nNdoc3, @nVpar3, @dVenc3, vIt01, @oIPAR)

REDEFINE GET oVpar3 VAR nVpar3 PICTURE "@E 999,999.99" ID 108 OF oIPAR UPDATE

REDEFINE GET oVenc3 VAR dVenc3 ID 109 OF oIPAR UPDATE

REDEFINE GET oNdoc4 VAR nNdoc4 ID 110 OF oIPAR VALID ChkParOk(nNdoc4, @nVpar4, @dVenc4, vIt01, @oIPAR)

REDEFINE GET oVpar4 VAR nVpar4 PICTURE "@E 999,999.99" ID 111 OF oIPAR UPDATE

REDEFINE GET oVenc4 VAR dVenc4 ID 112 OF oIPAR UPDATE

REDEFINE GET oNdoc5 VAR nNdoc5 ID 113 OF oIPAR VALID ChkParOk(nNdoc5, @nVpar5, @dVenc5, vIt01, @oIPAR)

REDEFINE GET oVpar5 VAR nVpar5 PICTURE "@E 999,999.99" ID 114 OF oIPAR UPDATE

REDEFINE GET oVenc5 VAR dVenc5 ID 115 OF oIPAR UPDATE

REDEFINE GET oNdoc6 VAR nNdoc6 ID 116 OF oIPAR VALID ChkParOk(nNdoc6, @nVpar6, @dVenc6, vIt01, @oIPAR)

REDEFINE GET oVpar6 VAR nVpar6 PICTURE "@E 999,999.99" ID 117 OF oIPAR UPDATE

REDEFINE GET oVenc6 VAR dVenc6 ID 118 OF oIPAR UPDATE

REDEFINE BUTTON oBtn ID 119 OF oIPAR ACTION (lConf := .T., oIPAR:End())

ACTIVATE DIALOG oIPAR CENTERED

IF ! lConf

SELECT(MyDb)

RETURN NIL

ENDIF

aParc := {}

IF ! EMPTY(nNdoc1) ; AADD(aParc, nNdoc1) ; ENDIF

IF ! EMPTY(nNdoc2) ; AADD(aParc, nNdoc2) ; ENDIF

IF ! EMPTY(nNdoc3) ; AADD(aParc, nNdoc3) ; ENDIF

IF ! EMPTY(nNdoc4) ; AADD(aParc, nNdoc4) ; ENDIF

IF ! EMPTY(nNdoc5) ; AADD(aParc, nNdoc5) ; ENDIF

IF ! EMPTY(nNdoc6) ; AADD(aParc, nNdoc6) ; ENDIF

IF LEN(aParc) > 0

FOR Y := 1 TO LEN(aParc)

IF &(oDbf)->(DBSEEK(aParc[Y]))

WHILE ! &(oDbf)->(RLOCK()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(dbCommitAll())

&(oDbf)->(dbUnlockAll())

SysRefresh()

IF mTp = 2

MyDb := SELECT()

SELECT 5

CAIXA->(DBSETORDER(3))

WHILE CAIXA->(DBSEEK("RECEB. DUPLICATA "+aParc[Y]))

WHILE ! CAIXA->(RLOCK()) ; END

CAIXA->(DBDELETE())

END

CAIXA->(dbCommitAll())

CAIXA->(dbUnlockAll())

USE RELATDIA SHARED NEW

ordListClear()

OrdListAdd("RELATDIA","RDIACODI", "RDIACLIE", "RDIAVENC", "RDIAEMIS")

WHILE CAIXA->(DBSEEK(aParc[Y]))

WHILE ! RELATDIA->(RLOCK()) ; END

RELATDIA->(DBDELETE())

END

CLOSE RELATDIA

ENDIF

ENDIF

NEXT

SysRefresh()

SELECT(MyDb)

ENDIF

oCntLis:Refresh() // Repaint the ListBox

RETURN NIL

//----------------------------------------------------------------------------//

static function CntFilter(oCntLis, oDlg, lGet)

LOCAL oDlg4

PUBLIC wCred

store space(30) to cfNom, cfVdr, wCred

store ctod(" ") to wdte1, wdte2, wdtV1, wdtV2, wDtp1, wDtp2

wfil := ""

IF lGet

DEFINE DIALOG oDlg4 RESOURCE "FILT_CNT"

REDEFINE GET oG01 VAR cfNom ID 35 OF oDlg4

REDEFINE GET oG02 VAR cfVdr ID 36 OF oDlg4

REDEFINE GET oG03 VAR wdte1 ID 37 OF oDlg4

REDEFINE GET oG04 VAR wdte2 ID 39 OF oDlg4 when dtoc(wdte1)#" / / " VALID P_needed(wdte2)

REDEFINE GET oG05 VAR wdtv1 ID 40 OF oDlg4

REDEFINE GET oG06 VAR wdtv2 ID 38 OF oDlg4 when dtoc(wdtv1)#" / / " VALID P_needed(wdtv2)

REDEFINE GET oG07 VAR wDtp1 ID 41 OF oDlg4

REDEFINE GET oG08 VAR wDtp2 ID 42 OF oDlg4 when dtoc(wdtp1)#" / / " VALID P_needed(wdtp2)

REDEFINE BUTTON oBt1 ID 33 OF oDlg4 ACTION oDlg4:End()

ACTIVATE DIALOG oDlg4 CENTER

IF ! EMPTY(cfNom)

wfil:="ITEM03=ALLTRIM(cfNom)"

ENDI

IF ! EMPTY(cfVdr)

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="UPPER(ITEM09)=ALLTRIM(cfVdr)"

ENDI

IF dtoc(wdtv2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM06>=wdtv1 .AND. ITEM06 <= wdtv2"

ENDI

IF dtoc(wdte2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM04 >= wdte1 .AND. ITEM04 <= wdte2"

ENDI

IF dtoc(wdtp2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM11 >= wdtp1 .AND. ITEM11 <= wdtp2"

ENDI

SET FILTER TO

IF ! EMPTY(wfil)

SET FILTER TO &wfil

ENDI

ENDIF

&(oDbf)->(DBGOTOP())

wvlbr := 0

wvlpg := 0

wvlju := 0

wvlds := 0

MsgRun( "Processando valores...", "Aguarde...",;

{|| DBEVAL({|| (wvlbr := wvlbr + &(oDbf)->ITEM05,;

wvlpg := wvlpg + &(oDbf)->ITEM12,;

wvlju := wvlju + &(oDbf)->ITEM13,;

wvlds := wvlds + &(oDbf)->ITEM18 ;

)}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

&(oDbf)->(DBGOTOP())

wvltt:=wvlbr-(wvlpg+wvlds)

wvlpg:=wvlpg+wvlds

if wvltt < 0 ; wvltt := 0 ; endif

oCntLis:Upstable()

oCntLis:Refresh()

oDlg:UpDate()

return nil

******************************************************************************

FUNCTION CntTip(mTp)

LOCAL mTit := ""

IF mTp = 1 ; mTit := " a Receber"

ELSEIF mTp = 2 ; mTit := " Recebidas"

ELSEIF mTp = 3 ; mTit := " a Pagar"

ELSEIF mTp = 4 ; mTit := " Pagas"

ENDIF

RETURN mTit

******************************* Vari veis ************************************

FUNCTION RECEVarl()

// LOCAL nRecNr := &(oDbf)->(RecNo())

PUBLIC Rc_it01,Rc_it02,Rc_it03,Rc_it04,Rc_it05,Rc_it06,Rc_it07,Rc_it08, Rc_it09,Rc_it10,Rc_it11,;

Rc_it12,Rc_it13,Rc_it14,Rc_it15,Rc_it16,Rc_it18,Rc_it19,Rc_it20,;

Rc_it21,Rc_it22,Rc_it23,Rc_it24,Rc_it26,Rc_it27,Rc_it28,;

Rc_it29,Rc_it30,Rc_it31,Rc_it32,RcQtPar,RcNmPar

Publ wdte1, wdte2, wdtv1, wdtv2, wvlbr:=0, wvlpg:=0,;

wvltt:=0, wfil:="", wvend:="", wvlds:=0, wDtRc

store space(30) to cfNom, cfVdr

store ctod(" ") to wdte1, wdte2, wdtV1, wdtV2, wDtRc

&(oDbf)->(dbGoBottom())

&(oDbf)->(dbSkip(1))

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it21 := &(oDbf)->ITEM21

Rc_it22 := &(oDbf)->ITEM22

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

//&(oDbf)->(dbGoTo(nRecNr))

RETU NIL

******************************* Calculo do Cadastro/altera‡Æo ****************

FUNCTION RcPriCal(oDlg2)

Rc_it16 := (Rc_it05+Rc_it13)-(Rc_it12+Rc_it18)

oDlg2:Update()

RETU .T.

///////////////////////////////////

STATIC FUNCTION CntTotais(oDlg)

wvlbr := 0

wvlpg := 0

wvlju := 0

wvlds := 0

* nOldRec := &(oDbf)->(RECNO())

* MsgRun( "Processando valores...", "Aguarde...",;

* {|| DBEVAL({|| (wvlbr := wvlbr + &(oDbf)->ITEM05,;

* wvlpg := wvlpg + &(oDbf)->ITEM12,;

* wvlju := wvlju + &(oDbf)->ITEM13,;

* wvlds := wvlds + &(oDbf)->ITEM18 ;

* )}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

wvltt:=wvlbr-(wvlpg+wvlds)

if wvltt < 0 ; wvltt := 0 ; endif

wvlpg:=wvlpg+wvlds

* &(oDbf)->(DBGOTO(nOldRec))

IF oDlg <> NIL

oDlg:Update()

ENDIF

RETURN .T.

******************************* Calculo do recebido **************************

FUNCTION ArcClc(Rc_12,Rc_18,oDlg3)

LOCAL nIt16, nJuro

Rc_it12 := (Rc_12+&(oDbf)->ITEM12)

Rc_it18 := (Rc_18+&(oDbf)->ITEM18)

nIt16 := &(oDbf)->ITEM16

nJuro := 0

// Calcular juros

mTotDia := (Date() - &(oDbf)->item06)

IF mTotDia > 5

IF ! lCaptal

Rc_it13 := ((&(oDbf)->ITEM16/100) * (Rc_it08/30)) * mTotDia

nIt16 := (&(oDbf)->ITEM16+Rc_it13) // Valor a receber

nJuro += Rc_it13

ELSE

nMes := INT(mTotDia/30)

nDia := MOD(mTotDia,30)

IF nMes > 0

FOR NZ := 1 TO nMes

Rc_it13 := ((nIt16/100) * Rc_it08)

nIt16 := nIt16 + Rc_it13

nJuro += Rc_it13

NEXT

ENDIF

Rc_it13 := ((nIt16/100) * (Rc_it08/30)) * nDia

nIt16 := nIt16 + Rc_it13

nJuro += Rc_it13

ENDIF

ENDIF

Rc_it13 := nJuro

nTatApg := nIt16

Rc_it16 := (nTatApg - (Rc_12+Rc_18))

IF Rc_it16 < 0

Rc_it16:=0

ENDI

oDlg3:Update()

RETU .T.

//////////////////////////////

STATIC FUNCTION recedados()

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it21 := &(oDbf)->ITEM21

Rc_it22 := &(oDbf)->ITEM22

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

RETURN NIL

//////////////////////////////

STATIC FUNCTION CntSeekCod(Rc_it02, Rc_it03, oDlg2, mTp)

local oDbf2, bFields, aHeaders

LOCAL cTitle := "Pesquisa de "+IIF( mTp=1 .or. mTp=2,"Clientes","Fornecedores")

IF Rc_it02 = 0

Rc_it03 := SPACE(40)

oDlg2:UpDate()

RETURN .T.

ENDIF

oDbf2 := Select()

IF mTp=1 .or. mTp=2

aHeaders := { 'Código','Nome','Fantasia' }

SELECT 6

bFields := {|| { STRZERO(CLIENTE->CODIGO,5),;

CLIENTE->ITEM02,;

CLIENTE->ITEM03 }}

ELSE

aHeaders := { 'Código','Nome','Contato' }

USE FORNECED SHARED NEW

ordListClear()

OrdListAdd("FORNECED","FORNCODI", "FORNNOME", "FORNFANT")

bFields := {|| { STRZERO(FORNECED->CODIGO,4),;

FORNECED->ITEM02,;

FORNECED->ITEM03 }}

ENDIF

lOk := .T.

if ! DbSeek( Rc_it02 )

IF mTp=1 .or. mTp=2

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "CLIENTE",;

"CLIENTE->ITEM02", "CLIENTE->CODIGO", "CLIENTE->ITEM03",;

"Nome:", "Codigo:", "Fantasia")

ELSE

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "FORNECED",;

"FORNECED->ITEM02", "FORNECED->CODIGO",NIL,;

"Nome:", "Codigo:", NIL )

ENDIF

endif

IF mTp=1 .or. mTp=2

Rc_it02 := CLIENTE->CODIGO

Rc_it03 := CLIENTE->ITEM02

Rc_it09 := cOper // Vendedor

nDias := 30

vIt01 := CLIENTE->CODIGO

vIt02 := CLIENTE->ITEM02

vIt03 := CLIENTE->ITEM03

vIt04 := CLIENTE->ITEM04

vIt05 := CLIENTE->ITEM08

vIt06 := ALLTRIM(CLIENTE->ITEM05)+"-"+CLIENTE->ITEM06

vIt07 := CLIENTE->ITEM09

vIt08 := CLIENTE->ITEM11

vIt09 := CLIENTE->ITEM10

Rc_it26 := CLIENTE->ITEM03

Rc_it27 := CLIENTE->ITEM04

Rc_it28 := CLIENTE->ITEM08

Rc_it29 := ALLTRIM(CLIENTE->ITEM05)+"-"+CLIENTE->ITEM06

Rc_it30 := CLIENTE->ITEM09

Rc_it31 := CLIENTE->ITEM11

Rc_it32 := CLIENTE->ITEM10

CLIENTE->(DBCLEARFIL(NIL))

CLIENTE->(DBGOTOP())

ELSE

Rc_it02 := FORNECED->CODIGO

Rc_it03 := FORNECED->ITEM02

Rc_it09 := FORNECED->ITEM03 // Contato

nDias := 0

CLOSE FORNECED

ENDIF

Select(oDbf2)

oDlg2:UpDate()

RETURN .T.

**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**

FUNCTION SetParcel(Rc_it02, aArray, oBr2, mTp)

aArray := {}

IF mTp=1 .OR. mTp=3

&(oDbf)->(DBSETORDER(4))

IF &(oDbf)->(DBSEEK(Rc_it02))

WHILE ! &(oDbf)->(EOF())

IF &(oDbf)->ITEM02 = Rc_it02

AADD(aArray,{STRZERO(&(oDbf)->NUMPAR,2),&(oDbf)->ITEM06,&(oDbf)->ITEM05})

ENDIF

&(oDbf)->(DBSKIP(1))

END

ENDIF

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOBOTTOM())

&(oDbf)->(DBSKIP(1))

ENDIF

oBr2:cAlias := NIL

oBr2:SetArray(aArray)

oBr2:bLogicLen := {|| len(aArray)}

oBr2:bGoTop := {|| nRec := 1 }

oBr2:bGoBottom := {|| nRec := len(aArray) }

oBr2:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - nRec ), ;

Len( aArray ) - nRec ), ;

nRec += nDo, nDo }

oBr2:Refresh()

RETURN .T.

//////////////////////////////

FUNCTION CntSeekF6(Rc_it02, Rc_it03, Rc_it09, mTp)

LOCAL oDbf2, bFields

LOCAL cTitle := "Pesquisa de "+IIF( mTp=1 .or. mTp=2,"Clientes","Fornecedores")

LOCAL aHeaders := { 'Código','Nome','Fone' }

oDbf2 := Select()

IF mTp=1 .or. mTp=2

aHeaders := { 'Código','Nome','Fantasia' }

SELECT 6

bFields := {|| { STRZERO(CLIENTE->CODIGO,5),;

CLIENTE->ITEM02,;

CLIENTE->ITEM03 }}

ENDIF

Rc_it02 := 0

IF mTp=1 .or. mTp=2

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "CLIENTE",;

"CLIENTE->ITEM02", "CLIENTE->CODIGO", "CLIENTE->ITEM03",;

"Nome:", "Codigo:", "Fantasia")

ELSE

aHeaders := { 'Código','Nome','Contato' }

USE FORNECED SHARED NEW

ordListClear()

OrdListAdd("FORNECED","FORNCODI", "FORNNOME")

bFields := {|| { STRZERO(FORNECED->CODIGO,4),;

FORNECED->ITEM02,;

FORNECED->ITEM03 }}

ENDIF

IF mTp=1 .or. mTp=2

Rc_it02 := CLIENTE->CODIGO

Rc_it03 := CLIENTE->ITEM02

Rc_it09 := cOper // Vendedor

nDias := 30

CLIENTE->(DBCLEARFIL(NIL))

CLIENTE->(DBGOTOP())

ELSE

Rc_it02 := FORNECED->CODIGO

Rc_it03 := FORNECED->ITEM02

Rc_it09 := FORNECED->ITEM03 // Contato

CLOSE FORNECED

ENDIF

Select(oDbf2)

RETURN .T.

///////////////////////////////////

FUNCTION PagConta( mTp, oCntLis, oDlg, lConta )

local oDlg3, Conf:=.F., mTotDia, mJuro, nFormPg, aFormPg, nRcNo

local Cms01,Cms02,Cms03,Cms04,Cms05,Cms06,Cms07,Cms08,Rc_14,;

oCt01,oCt02,oCt03,oCt04,oCt05,oCt06,oCt07,oCt08,oCt09,oCt10,oCt11,oCt12

if mTp = NIL

return .f.

endif

/* IF mTp = 1 .OR. mTp = 2

IF ! UsrFree(CntZera)

RETURN NIL

ENDIF

ELSE

IF ! UsrFree(CntZera)

RETURN NIL

ENDIF

ENDIF */

mDupNum:={} // Numeros das duplicatas

mDupVen:={} // Vencimentos

mDupVlr:={} // Valores dos t¡tulos

mDupQui:={} // Total quitado

mDupPgo:={} // Valor atribuido neste recibo

mDupAre:={} // Valores a receber

mDupRnu:={} // Numero do recibo

mDupRdt:={} // Data do recebimento

mDupDsc:={} // Desconto concedido

mDupRef:={} // Desconto referente a...

mDupJur:={} // Juros pagos

mInfo:=SPACE(1)

nFormPg := 1

aFormPg := {"EM DINHEIRO","EM CHEQUES",OemToAnsi("EM CREDCARD"),;

OemToAnsi("EM VISA"),OemToAnsi("EM AMERICAN"),;

OemToAnsi("EM MASTER"),OemToAnsi("EM DEPàSITO"),;

"INDEFINIDO"}

nRcNo := &(oDbf)->(RECNO())

ReceDados()

Rc_it08 := VAL(cNotJur)*30 // Juros ao mˆs

Rc_it13 := 0 // Juros

Rc_it16 := (&(oDbf)->ITEM16+Rc_it13) // Valor a receber

rc_12 := 0 // Valor quitado

rc_18 := 0 // Valor do desconto

mCodCli:= Rc_it02 // Codigo do cliente

mNomCli:= Space(40) // Nome do cliente

Rc_14 := Space(40) // Obs 1

Rc_it19:= Rc_it01 // Numero do recibo

Rc_it11:= DATE() // Data do recebimento

nTotPar := &(oDbf)->ITEM16

nTatApg := 0

Rc_it20 := Space(45)

DEFINE FONT mInfFnt NAME "Courier New" SIZE 0,-10

IF ! lConta

DEFINE DIALOG oDlg3 RESOURCE "CNTQUIT" TITLE "Quitacao da Duplicata "+CntTip(mTp)

REDEFINE GET oCt01 VAR Rc_it01 PICTURE "@!" ID 101 OF oDlg3 READONLY // VALID CntNota(@Rc_it01,@Rc_it02,@Rc_it03,@mCodCli,oDlg3)

REDEFINE GET oCt02 VAR mCodCli PICTURE "9999999999" ID 102 OF oDlg3 VALID AcheiCli(@mCodCli,@mNomCli,@Rc_it03,oDlg3,mTp,lConta) UPDATE WHEN EMPTY(Rc_it01)

REDEFINE GET oCt03 VAR Rc_it03 PICTURE "@!" ID 103 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt04 VAR Rc_it19 PICTURE "@!" ID 104 OF oDlg3

REDEFINE GET oCt05 VAR Rc_it11 ID 105 OF oDlg3

REDEFINE GET oC109 VAR nTotPar PICTURE "@E 999,999.99" ID 109 OF oDlg3 UPDATE

REDEFINE SAY oCt_2 PROMPT ALLTRIM(STR(Rc_it08))+"% ao mˆs" ID -2 OF oDlg3

REDEFINE GET oC111 VAR Rc_it13 PICTURE "@E 999,999.99" ID 111 OF oDlg3 UPDATE

REDEFINE GET oC114 VAR nTatApg PICTURE "@E 999,999.99" ID 114 OF oDlg3 UPDATE

REDEFINE GET oCt06 VAR Rc_12 PICTURE "@E 999,999.99" ID 106 OF oDlg3 ;

Valid EVAL({||IIF(!EMPTY(Rc_it01),Arcclc(rc_12,Rc_18,oDlg3),;

EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.})),EVAL({||IIF(Rc_12=0,MSGSTOP(OEMTOANSI("Queira informar o valor que foi quitado, ou pressione Esc caso queira cancelar."),OEMTOANSI("ATENۂO!")),""),(Rc_12 != 0)})}) UPDATE

REDEFINE GET oCt08 VAR Rc_18 PICTURE "@e 999,999.99" ID 108 OF oDlg3 ;

Valid EVAL({||IIF(!EMPTY(Rc_it01),Arcclc(rc_12,Rc_18,oDlg3),;

EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.})),.T.}) UPDATE

REDEFINE GET oCt07 VAR Rc_it16 PICTURE "@E 999,999.99" ID 107 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt10 VAR mInfo MEMO ID 110 OF oDlg3 UPDATE FONT mInfFnt WHEN (0=1)

REDEFINE GET oC113 VAR Rc_14 ID 113 OF oDlg3

REDEFINE BUTTON oCt11 ID 115 OF oDlg3 ACTION (Conf:=.T., oDlg3:End())

REDEFINE BUTTON oCt12 ID 116 OF oDlg3 ACTION (Conf:=.F., oDlg3:End())

ACTIVATE DIALOG oDlg3 CENTERED //ON INIT ArcClc(Rc_12,Rc_18,oDlg3)

ELSE

Rc_it01 := "" // Deve estar vazio neste tipo de quita‡Æo

Rc_12 := 0

Rc_it03 := SPACE(40)

Rc_it19 := SPACE(10) // N§ do recibo

DEFINE DIALOG oDlg3 RESOURCE "CNTHAVER"

REDEFINE GET oCt02 VAR mCodCli PICTURE "9999999999" ID 102 OF oDlg3 VALID AcheiCli(@mCodCli,@mNomCli,@Rc_it03,oDlg3,mTp,lConta) UPDATE

REDEFINE GET oCt03 VAR Rc_it03 PICTURE "@!" ID 103 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt04 VAR Rc_it19 PICTURE "@!" ID 104 OF oDlg3

REDEFINE GET oCt05 VAR Rc_it11 ID 105 OF oDlg3

REDEFINE GET oCt06 VAR Rc_12 PICTURE "@E 999,999.99" ID 106 OF oDlg3 ;

Valid EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.}) UPDATE

REDEFINE RADIO oRadio VAR nFormPg ID 109,110,111,112,113,114,117,118 OF oDlg3

REDEFINE BUTTON oCt11 ID 115 OF oDlg3 ;

ACTION ( IIF( MsgYesNo("Confirma a quitacao","Confirmar"),;

( Conf:=.T. , oDlg3:End() ), oDlg3:End() ))

REDEFINE BUTTON oCt12 ID 116 OF oDlg3 ACTION oDlg3:End()

ACTIVATE DIALOG oDlg3 CENTERED

ENDIF

mInfFnt:End()

oFile := SELECT()

If Conf

IF EMPTY(Rc_it01)

AFILL(mDupRnu, Rc_it19 )

AFILL(mDupRdt, Rc_it11 )

cPagame := "PAGAMENTO "+aFormPg[nFormPg]

IF ! lConta

CntQuitar(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,mTp,cPagame)

CliSaldo(mCodCli,mNomCli)

ELSE

MyDbFile := SELECT()

USE HAVER SHARED NEW

ordListClear()

OrdListAdd("HAVER","HAVERCOD", "HAVERNOM", "HAVERDAT")

WHILE ! HAVER->(RLOCK()) ; END

HAVER->(DBAPPEND())

REPLACE HAVER->CODCLI WITH mCodCli

REPLACE HAVER->NOME WITH Rc_it03

REPLACE HAVER->RECIBO WITH Rc_it19

REPLACE HAVER->DATA WITH Rc_it11

REPLACE HAVER->VALOR WITH Rc_12

REPLACE HAVER->FORMAPG WITH aFormPg[nFormPg]

CLOSE HAVER

// --- Lan‡amento no caixa -------------

SELECT 5

CAIXA->( DbSetOrder(2) )

CAIXA->( DbGobottom() )

mCod := CODIGO+1

CAIXA->( DbSetOrder(1) )

whil ! CAIXA->(rlock()) ; end

CAIXA->( DbAppend() )

REPL CAIXA->CODIGO WITH mCod

REPL CAIXA->DATA WITH Rc_it11

REPL CAIXA->HISTOR1 WITH "HAVER CLI: "+ALLTRIM(STR(mCodCli))

REPL CAIXA->HISTOR2 WITH cPagame

REPL CAIXA->ENTRADA WITH Rc_12

REPL CAIXA->CD_DESP WITH 1

REPL CAIXA->TIPO WITH "C"

CAIXA->(dbCommitAll())

CAIXA->(dbUnlockAll())

CAIXA->( DbSetOrder(1) )

CAIXA->( DbGoTop() )

SELECT(MyDbFile)

SysRefresh()

ENDIF

ELSE

If (rc_it16 <= 0)

IF &(oDbf)->ITEM23 = .F.

WHIL ! &(oDbf)->(rlock()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(DBCOMMITALL())

IF &(oDbf)->ITEM12 >= &(oDbf)->ITEM05

IF &(oDbf)->(RLOCK())

&(oDbf)->(DBDELETE())

ENDIF

ENDIF

ELSE

MsgAlert(OemToAnsi("Esta ‚ uma conta mensal. Queira alterar a data do vencimento!"),"Alerta do sistema")

ENDIF

Else

WHIL ! &(oDbf)->(rlock()) ; END

Replace &(oDbf)->item12 With Rc_it12

Replace &(oDbf)->item13 With rc_it13

Replace &(oDbf)->item16 With rc_it16

Replace &(oDbf)->item18 With Rc_it18

Replace &(oDbf)->item20 With rc_it20

&(oDbf)->(DBCOMMITALL())

EndIf

IF &(oDbf)->item16 <= 0

WHIL ! &(oDbf)->(rlock()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(DBCOMMITALL())

ENDIF

IF mTp = 1

SELECT 11 // Lan‡ar em contas recebidas

ELSEIF mTp = 3

SELECT 13 // Lan‡ar em contas pagas

ENDIF

oDb2 := SELECT()

oDb2 := (oDb2)->(ALIAS())

IF ! &(oDb2)->(DBSEEK(rc_it01))

WHIL ! &(oDb2)->(Rlock()) ; END

&(oDb2)->(DBAPPEND())

EndIf

WHIL ! &(oDb2)->(Rlock()) ; END

REPL &(oDb2)->CODIGO WITH Rc_it01

REPL &(oDb2)->ITEM02 WITH Rc_it02

REPL &(oDb2)->ITEM03 WITH Rc_it03

REPL &(oDb2)->ITEM04 WITH Rc_it04

REPL &(oDb2)->ITEM05 WITH Rc_it05

REPL &(oDb2)->ITEM06 WITH Rc_it06

REPL &(oDb2)->ITEM07 WITH Rc_it07

REPL &(oDb2)->ITEM08 WITH Rc_it08

REPL &(oDb2)->ITEM09 WITH Rc_it09

REPL &(oDb2)->ITEM10 WITH Rc_it10

REPL &(oDb2)->ITEM11 WITH Rc_it11

REPL &(oDb2)->ITEM12 WITH Rc_it12

REPL &(oDb2)->ITEM13 WITH Rc_it13

REPL &(oDb2)->ITEM14 WITH Rc_14

REPL &(oDb2)->ITEM15 WITH Rc_it15

REPL &(oDb2)->ITEM16 WITH Rc_it16

REPL &(oDb2)->ITEM18 WITH Rc_it18

REPL &(oDb2)->ITEM19 WITH Rc_it19

REPL &(oDb2)->ITEM20 WITH Rc_it20

IF mTp = 1

USE RELATDIA SHARED NEW

ordListClear()

OrdListAdd("RELATDIA","RDIACODI", "RDIACLIE", "RDIAVENC", "RDIAEMIS")

WHIL ! RELATDIA->(Rlock()) ; END

RELATDIA->(DBAPPEND())

REPL RELATDIA->CODIGO WITH Rc_it01

REPL RELATDIA->ITEM02 WITH Rc_it02

REPL RELATDIA->ITEM03 WITH Rc_it03

REPL RELATDIA->ITEM04 WITH Rc_it04

REPL RELATDIA->ITEM05 WITH Rc_it05

REPL RELATDIA->ITEM06 WITH Rc_it06

REPL RELATDIA->ITEM07 WITH Rc_it07

REPL RELATDIA->ITEM08 WITH Rc_it08

REPL RELATDIA->ITEM09 WITH Rc_it09

REPL RELATDIA->ITEM10 WITH Rc_it10

REPL RELATDIA->ITEM11 WITH Rc_it11

REPL RELATDIA->ITEM12 WITH Rc_12

REPL RELATDIA->ITEM13 WITH Rc_it13

REPL RELATDIA->ITEM14 WITH Rc_14

REPL RELATDIA->ITEM15 WITH Rc_it15

REPL RELATDIA->ITEM16 WITH Rc_it16

REPL RELATDIA->ITEM18 WITH Rc_18

REPL RELATDIA->ITEM19 WITH Rc_it19

REPL RELATDIA->ITEM20 WITH Rc_it20

RELATDIA->(dbCloseArea())

// --- Lan‡amento no caixa -------------

SELECT 5

CAIXA->( DbSetOrder(2) )

CAIXA->( DbGobottom() )

mCod := CODIGO+1

CAIXA->( DbSetOrder(1) )

CAIXA->( DbAppend() )

whil ! CAIXA->(rlock()) ; end

REPL CAIXA->CODIGO WITH mCod

REPL CAIXA->DATA WITH Rc_it11

REPL CAIXA->HISTOR1 WITH "RECEB. DUPLICATA "+Rc_it01

REPL CAIXA->HISTOR2 WITH "PAGAMENTO "+aFormPg[1]

REPL CAIXA->ENTRADA WITH Rc_12

REPL CAIXA->TIPO WITH "C"

CAIXA->( DbSetOrder(1) )

CAIXA->( DbGoTop() )

IF MsgYesNo("Gostaria de imprimir o recibo?","Imprimir recibo")

mL := 1

oPrn:= TDosPrn():New("\TICKET.PRN")

oPrn:StartPage()

oPrn:lZeraBuffer:=.F. // For‡a o Pulo da P gina

@ mL, 01 SAY "" OF oPrn

mL ++

@ mL, 01 SAY "+---------------------------------------------------------------------------+" OF oPrn ; mL ++

@ mL, 01 SAY "! R E C I B O !" OF oPrn ; mL ++

@ mL, 01 SAY "+---------------------------------------------------------------------------+" OF oPrn ; mL ++

mL ++

@ mL, 78-LEN("R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99"))) SAY "R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99")) OF oPrn ; mL ++

mL ++

cTxt := " RECEBI DE "+ALLTRIM(Rc_it03)+" A IMPORTANCIA DE R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99"))+" ("+Vlr_Ext(Rc_12,80)+") REFERENTE AO PAGAMENTO DA NOTA PROMISSORIA DISCRIMINADA ABAIXO."

mTtL1:= MLCOUNT(cTxt,77)

IF mTtL1 > 1

FOR Y := 1 TO mTtL1-1

@ mL, 01 SAY JUSTIFICA(cTxt,77,Y) OF oPrn

mL ++

NEXT

@ mL, 01 SAY MEMOLINE(cTxt,77,mTtL1) OF oPrn

mL ++

ELSE

@ mL, 01 SAY MEMOLINE(cTxt,77,mTtL1) OF oPrn

mL ++

ENDIF

mL ++

@ mL, 01 SAY "NUMERO: "+ALLTRIM(Rc_it01)+" - EMISSAO: "+DTOC(Rc_it04)+" - VENCIMENTO: "+DTOC(Rc_it06) OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO TITULO .................................................: "+TRANS(Rc_it05,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO JURO....................................................: "+TRANS(Rc_it13,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO DESCONTO................................................: "+TRANS(Rc_it18,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR PAGO.......................................................: "+TRANS(Rc_12, "@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "SALDO A PAGAR....................................................: "+TRANS(Rc_it16,"@E 999,999.99") OF oPrn ; mL ++

mL ++

@ mL, 01 SAY "POR SER VERDADE, FIRMAMOS O PRESENTE RECIBO, QUE SUBSTITUI A NOTA PROMISSORIA" OF oPrn ; mL ++

mL ++

mL ++

lShowCid := .t.

lShowDia := .f.

cData := UPPER(ALLTRIM(DATAH(Rc_it11, lShowCid, lShowDia)))

@ mL, 78-LEN(cData) SAY cData OF oPrn ; mL ++

mL ++

mL ++

mL ++

@ mL, 01 SAY PrnCentra("...................................",SPACE(77)) OF oPrn ; mL ++

mL ++

@ mL, 01 SAY PrnCentra(ALLTRIM(mEmp),SPACE(77)) OF oPrn ; mL ++

@ mL, 01 SAY REPLICATE(CRLF, 2) OF oPrn

oPrn:EndPage() // Obrigat¢rio

oPrn:End() // Idem

SysRefresh()

ENDIF

ENDIF

ENDIF

ENDIF

SELECT(oFile)

&(oDbf)->(DBUNLOCKALL())

IF ! lConta

oCntLis:UpStable()

oCntLis:Refresh()

ENDIF

RETURN .T.

///////////////////////////////////

STATIC FUNCTION CliSaldo(mCodCli,mNomCli)

LOCAL VlrB, VlrQ, VlrP

STORE 0 TO VlrB, VlrQ, VlrP

SET FILTER TO ITEM02 == mCodCli

GO TOP

IF EOF()

MsgInfo(OemToAnsi("Este cliente zerou seu d‚bito."),"Saldo do cliente")

SET FILTER TO

RETURN NIL

ENDIF

GO TOP

VlrB := 0

VlrQ := 0

VlrD := 0

MsgRun( "Processando valores...", "Aguarde...",;

{|| DBEVAL({|| (VlrB := VlrB + &(oDbf)->ITEM05,;

VlrD := VlrD + &(oDbf)->ITEM18,;

VlrQ := VlrQ + &(oDbf)->ITEM12 ;

)}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

SET FILTER TO

VlrP := (VlrB - (VlrQ+VlrD))

MsgInfo( "SALDO DO CLIENTE: "+CRLF+;

""+CRLF+;

"Debito bruto remanesce

Link to comment
Share on other sites

Caros amigos

Estou montando um Contas Receber/Pagar, após efetuar as vendas a prazo, quando o sistema grava no CONTAS.PRG dá o seguinte erro que não entendo.

Como posso resolver este erro?

Application

===========

Path and name: C:\LOJA\SISLOJA.EXE

Size: 1,577,024 bytes

Max files handles permited: ( SetHandleCount() ) 150

Error ocurred at: 29/05/2007, 00:07:47

Error description: Error BASE/1002 Alias does not exist

Stack Calls

===========

Called from CONTAS(39)

Called from (b)BUILDMENU(149)

Called from MAIN(93)

O código fonte abaixo postado:


#Include "FiveWin.ch"

#xcommand @ , SAY OF => :Say(, , )

STATIC nTatApg, lCaptal, cNotJur, nTipBol, CntFnt, CntSiz, CntSty, nCopBol, cTkPort

//----------------------------------------------------------------------------//

function Contas(nTip)

local oMeter, oText, lEnd, oCntLis, lExit

PUBLIC mDupNum, mDupVen, mDupVlr, mDupQui, mDupPgo, mDupAre, mDupRnu,;

mDupRdt, mDupDsc, mDupRef, mDupJur, aArray

PUBLIC Rc_18:=0, Rc_12:=0, oDbf, nDias := 30, nTotal, oDlg

Publ cfNom, cfVdr, wdte1, wdte2, wdtv1, wdtv2, wvlbr:=0, wvlpg:=0,;

wvltt:=0, wfil:="", wvend:="", wvlds:=0, wDtp1, wDtp2,;

mycli, lSoMens, cPess, cDesc, cMaos,;

cCodi := SPACE(10)

PUBLIC vIt01, vIt02, vIt03, vIt04, vIt05, vIt06, vIt07, vIt08, vIt09,;

vIt48, cEntr, lPcnt

cPess :=SPACE(10)

mTp := nTip

cDesc := SPACE(40)

cMaos := " "

lCaptal:=.f.

nTipBol:=3

nCopBol:=2

cNotJur:="5.0"

cTkPort:="LPT1"

IF mTp = 1

SELECT 10

ELSEIF mTp = 2

SELECT 11

ELSEIF mTp = 3

SELECT 12

ELSEIF mTp = 4

SELECT 13

ENDIF

oDbf := SELECT()

oDbf := (oDbf)->(ALIAS())

&(oDbf)->(DBCLEARFIL(Nil)) // alinha 39 é esta.

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOTOP())

RECEVarl()

DEFINE FONT mBrwFnt NAME "Courier New" SIZE 0,-12

DEFINE DIALOG oDlg FROM 0, 0 TO 35,100 TITLE "Controle de contas"+CntTip(mTp)

//Procurar campo 1

@05,45 SAY IIF(mTp=1 .OR. mTp=2,"&Cliente:","&Fornecedor:") RIGHT OF oDlg PIXEL SIZE 30,10

@03,78 GET oGet VAR cDesc PICTURE "@!" PIXEL OF oDlg ;

ON CHANGE ( ::Assign(), DBSETORDER(2),;

If( DbSeek( SubStr( cDesc, 1, ::nPos - 1 ) + Chr( nKey ) ),;

( oCntLis:UpStable(), oCntLis:Refresh(), .t. ),;

( oCntLis:UpStable(), oCntLis:Refresh(), .t. ) ) ) ;

SIZE 100,10 UPDATE

oGet:bGotFocus := {||( cDesc:=SPACE(40), oGet:Refresh() )}

//Procurar campo 2

@05,180 SAY OemToAnsi("C¢d. Cliente:") RIGHT OF oDlg PIXEL SIZE 35,10

@03,218 GET oGet1 VAR cCodi PICTURE "@!" PIXEL OF oDlg ;

VALID EVAL({||(IIF(!EMPTY(cCodi),(cCodi:=ALLTRIM(cCodi),;

DBSETORDER(1),;

DBSEEK(ALLTRIM(cCodi)),;

oCntLis:UpStable(),oCntLis:Refresh()),NIL),;

oDlg:UpDate()),.T.});

SIZE 35,10 UPDATE

oGet1:bGotFocus := {||( cCodi:=SPACE(10), oGet1:Refresh() )}

@05, 4 SAY "&Lista:"+CntTip(mTp) OF oDlg PIXEL SIZE 40,10

@ 1, 1 LISTBOX oCntLis ;

FIELDS &(oDbf)->CODIGO,; //C¢d.cli

STRZERO(&(oDbf)->NUMPAR)+"/"+STRZERO(&(oDbf)->QTDPAR),;//Parcela/Qtd.Par

&(oDbf)->ITEM03,; //Nome

DTOC(&(oDbf)->ITEM04),; //Emiss

DTOC(&(oDbf)->ITEM06),; //Vencimento

TRANS(&(oDbf)->ITEM05,"@E 999,999.99"),; //Valor

TRANS(&(oDbf)->ITEM12,"@E 999,999.99"),; //Quitado

TRANS(&(oDbf)->ITEM16,"@E 999,999.99"),; //Pendente

TRANS(&(oDbf)->ITEM13,"@E 999.99"),; //Juros

&(oDbf)->ITEM10,; //N§ banco

DTOC(&(oDbf)->ITEM11),; //Pagamento

CalcAtraso(&(oDbf)->item06) ; //Atraso

HEADERS OemToAnsi("C¢digo"),;

OemToAnsi("Parcela"),;

IIF(mTp=1 .OR. mTp=2,"Cliente","Fornecedor"),;

"Emissão",;

"Vancimento",;

"Valor",;

"Vlr.quitado",;

"Vlr.pendente",;

"Juros",;

OemToAnsi("N§ Banco"),;

"Dt.Pagam",;

"Atraso" ;

FIELDSIZES 70,50,280,80,80,80,80,80,80,250,80,80 ;

ALIAS oDbf ;

COLORS BrwText, BrwBack ;

SIZE 284, 115 OF oDlg

oCntLis:bLDblClick := { | nRow, nCol | AlteConta(oCntLis, .f., mTp, nRow, nCol) }

oCntLis:SetFont(mBrwFnt)

nLin := 18.5*12

nCol := 55

@ nLin,(8+(nCol*2)-55) SAY "Total bruto" PIXEL SIZE 45, 12 OF oDlg

@ nLin,(8+(nCol*4)-55) SAY "Quitado" PIXEL SIZE 45, 12 OF oDlg

@ nLin,(8+(nCol*6)-55) SAY "Saldo" PIXEL SIZE 45, 12 OF oDlg

nLin += 08

@ nLin,(8+(nCol*2)-55) GET wvlbr PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

@ nLin,(8+(nCol*4)-55) GET wvlpg PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

@ nLin,(8+(nCol*6)-55) GET wvltt PICTURE "@E 999,999,999.99" RIGHT PIXEL SIZE 45, 12 OF oDlg WHEN (1 = 2) UPDATE

nLin := 20.5*12

@ nLin, (8+(nCol*1)-55) BUTTON "&Novo" OF oDlg ACTION (EditConta( oCntLis, .t.,mTp, NIL, NIL ),CntTotais(oDlg),oCntLis:Refresh()) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*2)-55) BUTTON "&Alterar" OF oDlg ACTION (AlteConta( oCntLis, .f.,mTp, NIL, NIL ),CntTotais(oDlg),oCntLis:Refresh()) PIXEL SIZE 45, 12

IF mTp = 1

@ nLin, (8+(nCol*3)-55) BUTTON "&Quitar" OF oDlg ACTION PagConta(mTp, oCntLis, oDlg, .F.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*4)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ELSEIF mTp = 2

@ nLin, (8+(nCol*3)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

* @ nLin, (8+(nCol*4)-55) BUTTON OemToAnsi("Canc&elar pgt§") OF oDlg ACTION CntCancel() PIXEL SIZE 45, 12

ELSEIF mTp = 3

@ nLin, (8+(nCol*3)-55) BUTTON "&Quitar" OF oDlg ACTION PagConta(mTp, oCntLis, oDlg, .F.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*4)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ELSEIF mTp = 4

@ nLin, (8+(nCol*3)-55) BUTTON "E&xcluir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||DelConta(oCntLis,mTp)}),CntTotais(oDlg),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

ENDIF

@ nLin, (8+(nCol*5)-55) BUTTON "&Filtrar" OF oDlg ACTION CntFilter(oCntLis, oDlg, .t.) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*6)-55) BUTTON "&Imprimir" OF oDlg ACTION (MsgRun("Processando registros...","Aguarde...",{||PrnFilter(oCntLis,mTp)}),oCntLis:UpStable(),oCntLis:Refresh()) PIXEL SIZE 45, 12

@ nLin, (8+(nCol*7)-55) BUTTON "&Retornar" OF oDlg ACTION oDlg:End() PIXEL SIZE 45, 12

ACTIVATE DIALOG oDlg ;

ON INIT ( oCntLis:Move(30, 4, oDlg:GetCliRect():nRight - oDlg:GetCliRect():nLeft - 8,;

oDlg:GetCliRect():nBottom - oDlg:GetCliRect():nTop -120, .t.), CntFilter(oCntLis, oDlg, .f.))

mBrwFnt:End()

&(oDbf)->(DBCLEARFIL(NIL))

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOTOP())

SELECT 0

SysRefresh()

return nil

//--------------------------------------------------------------------------//

FUNCTION EditConta( oCntLis, lAppend, mTp, nRow, nCol )

local oBtn, oSay, MyDb, oCbx

local lSave := .f.

local nOldRec := RecNo()

local nParc2, dEmi2, dVen2, nVlr2,;

nParc3, dEmi3, dVen3, nVlr3,;

nParc4, dEmi4, dVen4, nVlr4,;

nParc5, dEmi5, dVen5, nVlr5, nParc1

STORE CTOD(" ") TO dEmi2, dEmi3, dEmi4, dEmi5, dVen2, dVen3, dVen4, dVen5

STORE 0 TO nVlr2, nVlr3, nVlr4, nVlr5, nParc1, nParc2, nParc3, nParc4, nParc5

aArray := {}

PUBLIC oDlg2

nDias := 30

DEFAULT lAppend := .f.

CursorWait()

IF lAppend

Rc_it24 := "GERAL "

Rc_it07 := DATE()

Rc_it08 := IIF(mTp=1 .OR. mTp=2, VAL(cNotJur)*30, 0)

RcQtPar := 1

RcNmPar := 1

GO BOTT

SKIP

AADD(aArray,{STRZERO(&(oDbf)->NUMPAR,2),&(oDbf)->ITEM06,&(oDbf)->ITEM05})

ELSE

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

ENDIF

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

DEFINE DIALOG oDlg2 RESOURCE "CAD_CNT" TITLE "Cadastro de Contas"+CntTip(mTp)

mF6fun1 := "CntSeekF6(@Rc_it02, @Rc_it03, @Rc_it09, mTp)"

mF6fun2 := "SetParcel(Rc_it02, @aArray, oBr2, mTp)"

SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())})

IF mTp=1 .OR. mTp=2

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Cliente [F6=Pesquisar] -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Vendedor") ID -3 OF oDlg2

ELSE

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Fornecedor -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Contato") ID -3 OF oDlg2

ENDIF

REDEFINE GET oGet02 VAR Rc_it02 PICTURE "9999999999" ID 36 OF oDlg2 ;

VALID CntSeekCod(@Rc_it02, @Rc_it03, oDlg2, mTp) .AND. ;

SetParcel(Rc_it02, @aArray, oBr2, mTp) .AND. ;

EVAL({||SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())}),.T.}) ;

WHEN EVAL({||SETKEY( VK_F6, {||( &(mF6fun1), &(mF6fun2), oDlg2:UpDate())}),.T.}) .AND. lAppend ;

UPDATE

REDEFINE GET oGet03 VAR Rc_it03 ID 37 OF oDlg2 UPDATE

REDEFINE BTNBMP oBtb ID 54 OF oDlg2 FILE ".\BITMAPS\NOVO.BMP" ACTION CntNewCli(mTp,oDlg2)

REDEFINE GET oGet04 VAR Rc_it09 ID 39 OF oDlg2 UPDATE // VALID CntSeekVnd(@Rc_it09, oDlg2, mTp)

// 1¦ parcela

REDEFINE GET oGet01 VAR nParc1 PICTURE "99" ID 35 OF oDlg2 // VALID CnkChkNum(nParc1)

REDEFINE GET oGet05 VAR Rc_it04 ID 40 OF oDlg2 VALID CalcVenc(Rc_it04, @Rc_it06, nDias, 1, oDlg2) WHEN nParc1 <> 0

REDEFINE GET oGet07 VAR Rc_it06 ID 41 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(Rc_it06)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it06)))}) WHEN nParc1 <> 0 UPDATE

REDEFINE GET oGet09 VAR Rc_it05 PICTURE "@E 999,999.99" ID 43 OF oDlg2 UPDATE WHEN nParc1 <> 0

// 2¦ parcela

REDEFINE GET oCt55 VAR nParc2 PICTURE "99" ID 55 OF oDlg2 WHEN nParc1 <> 0 // VALID CnkChkNum(nParc2)

REDEFINE GET oCt59 VAR dEmi2 ID 59 OF oDlg2 VALID CalcVenc(dEmi2, @dVen2, nDias, 2, oDlg2) WHEN nParc2 <> 0

REDEFINE GET oCt63 VAR dVen2 ID 63 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen2)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen2)))}) WHEN nParc2 <> 0 UPDATE

REDEFINE GET oCt67 VAR nVlr2 PICTURE "@E 999,999.99" ID 67 OF oDlg2 UPDATE WHEN nParc2 <> 0

// 3¦ parcela

REDEFINE GET oCt56 VAR nParc3 PICTURE "99" ID 56 OF oDlg2 WHEN nParc2 <> 0 // VALID CnkChkNum(nParc3)

REDEFINE GET oCt60 VAR dEmi3 ID 60 OF oDlg2 VALID CalcVenc(dEmi3, @dVen3, nDias, 3, oDlg2) WHEN nParc3 <> 0

REDEFINE GET oCt64 VAR dVen3 ID 64 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen3)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen3)))}) WHEN nParc3 <> 0 UPDATE

REDEFINE GET oCt68 VAR nVlr3 PICTURE "@E 999,999.99" ID 68 OF oDlg2 UPDATE WHEN nParc3 <> 0

// 4¦ parcela

REDEFINE GET oCt57 VAR nParc4 PICTURE "99" ID 57 OF oDlg2 WHEN nParc3 <> 0 // VALID CnkChkNum(nParc4)

REDEFINE GET oCt61 VAR dEmi4 ID 61 OF oDlg2 VALID CalcVenc(dEmi4, @dVen4, nDias, 4, oDlg2) WHEN nParc4 <> 0

REDEFINE GET oCt65 VAR dVen4 ID 65 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen4)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen4)))}) WHEN nParc4 <> 0 UPDATE

REDEFINE GET oCt69 VAR nVlr4 PICTURE "@E 999,999.99" ID 69 OF oDlg2 UPDATE WHEN nParc4 <> 0

// 5¦ parcela

REDEFINE GET oCt58 VAR nParc5 PICTURE "99" ID 58 OF oDlg2 WHEN nParc4 <> 0 // VALID CnkChkNum(nParc5)

REDEFINE GET oCt62 VAR dEmi5 ID 62 OF oDlg2 VALID CalcVenc(dEmi5, @dVen5, nDias, 5, oDlg2) WHEN nParc5 <> 0

REDEFINE GET oCt66 VAR dVen5 ID 66 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(dVen5)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(dVen5)))}) WHEN nParc5 <> 0 UPDATE

REDEFINE GET oCt70 VAR nVlr5 PICTURE "@E 999,999.99" ID 70 OF oDlg2 UPDATE WHEN nParc5 <> 0

REDEFINE GET oGet06 VAR Rc_it07 ID 38 OF oDlg2 UPDATE

REDEFINE GET oGet08 VAR Rc_it10 ID 42 OF oDlg2

REDEFINE GET oGet10 VAR Rc_it08 PICTURE "@E 999.99" ID 44 OF oDlg2

REDEFINE GET oGet16 VAR Rc_it14 ID 50 OF oDlg2

REDEFINE GET oGet17 VAR Rc_it15 ID 51 OF oDlg2

REDEFINE CHECKBOX oChec1 VAR Rc_it23 ID 52 OF oDlg2

nRec := 1

REDEFINE LISTBOX oBr2 ;

FIELDS aArray[nRec,1],;

DTOC(aArray[nRec,2]),;

TRANS(aArray[nRec,3],"@E 999,999.99") ;

ID 46 OF oDlg2 ;

ALIAS NIL ;

COLORS CLR_BLACK, 14483196

oBr2:aHeaders := {OemToAnsi("Parcela"),;

OemToAnsi("Vencimento"),;

OemToAnsi("Valor")}

oBr2:aColSizes := {50,90,90}

oBr2:bLogicLen := {|| len(aArray)}

oBr2:bGoTop := {|| nRec := 1 }

oBr2:bGoBottom := {|| nRec := len(aArray) }

oBr2:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - nRec ), ;

Len( aArray ) - nRec ), ;

nRec += nDo, nDo }

REDEFINE BUTTON oBt1 ID 33 OF oDlg2 ACTION (lSave := .T. , oDlg2:End()) WHEN nParc1 <> 0 .AND. !EMPTY(Rc_it03)

REDEFINE BUTTON oBt2 ID 34 OF oDlg2 ACTION (lSave := .F. , oDlg2:End())

ACTIVATE DIALOG oDlg2 CENTERED

if lSave

nTotPar := 0

IF nParc1 <> 0 ; nTotPar ++ ; ENDIF

IF nParc2 <> 0 ; nTotPar ++ ; ENDIF

IF nParc3 <> 0 ; nTotPar ++ ; ENDIF

IF nParc4 <> 0 ; nTotPar ++ ; ENDIF

IF nParc5 <> 0 ; nTotPar ++ ; ENDIF

aCodigs := {}

aParc := {}

nUlt := 0

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(1+nUlt,3))

FOR X := 1 TO nTotPar

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(X+nUlt,3))

WHILE &(oDbf)->(DBSEEK(cUlt))

nUlt ++

cUlt := ALLTRIM(STR(Rc_it02,6))+"/"+ALLTRIM(STR(X+nUlt,3))

END

AADD(aCodigs,cUlt)

AADD(aParc,cUlt)

NEXT

IF nParc1 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[1]

Rc_it16 := Rc_it05

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH Rc_it04

REPL &(oDbf)->ITEM05 WITH Rc_it05

REPL &(oDbf)->ITEM06 WITH Rc_it06

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH Rc_it16

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc1

ENDIF

IF nParc2 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[2]

Rc_it16 := nVlr2

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi2

REPL &(oDbf)->ITEM05 WITH nVlr2

REPL &(oDbf)->ITEM06 WITH dVen2

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr2

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc2

ENDIF

IF nParc3 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[3]

Rc_it16 := nVlr3

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi3

REPL &(oDbf)->ITEM05 WITH nVlr3

REPL &(oDbf)->ITEM06 WITH dVen3

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr3

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc3

ENDIF

IF nParc4 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[4]

Rc_it16 := nVlr4

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi4

REPL &(oDbf)->ITEM05 WITH nVlr4

REPL &(oDbf)->ITEM06 WITH dVen4

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr4

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc4

ENDIF

IF nParc5 <> 0

while ! &(oDbf)->(Rlock()) ; End

&(oDbf)->(DBAPPEND())

Rc_it01 := aCodigs[5]

Rc_it16 := nVlr5

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH dEmi5

REPL &(oDbf)->ITEM05 WITH nVlr5

REPL &(oDbf)->ITEM06 WITH dVen5

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH nVlr5

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM21 WITH Rc_it21

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

REPL &(oDbf)->QTDPAR WITH nTotPar

REPL &(oDbf)->NUMPAR WITH nParc5

ENDIF

&(oDbf)->(DBCOMMITALL())

&(oDbf)->(DbUnlockALL())

nOldRec := &(oDbf)->(RECNO())

IF mTp = 1

IF MsgYesNo("Gostaria de imprimir a NOTA PROMISSÓRIA?", OemToAnsi("Imprimir"))

ImpNotPro()

ENDIF

ENDIF

ENDIF

SETKEY( VK_F6, {} )

&(oDbf)->(DBGOTO(nOldRec))

IF oCntLis <> NIL

oCntLis:UpStable()

oCntLis:Refresh()

ENDIF

return nil

//-------------------------------------------------------------------------//

static function AlteConta( oCntLis, lAppend, mTp, nRow, nCol )

local oBtn, oSay, MyDb, oCbx

local lSave := .f.

local nOldRec := RecNo()

PUBLIC oDlg2

nDias := 0

CursorWait()

IF lAppend

Rc_it24 := "GERAL "

RcQtPar := 1

RcNmPar := 1

GO BOTT

SKIP

ELSE

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

ENDIF

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

DEFINE DIALOG oDlg2 RESOURCE "CAD_CNT" TITLE If( lAppend, "Cadastro de Contas"+CntTip(mTp), "Alteração de Contas"+CntTip(mTp) )

REDEFINE GET oGet01 VAR Rc_it01 ID 35 OF oDlg2 READONLY

IF mTp=1 .OR. mTp=2

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Cliente -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Vendedor") ID -3 OF oDlg2

ELSE

REDEFINE SAY oSay1 PROMPT OemToAnsi("C¢d. Fornecedor -> Nome") ID -2 OF oDlg2

REDEFINE SAY oSay2 PROMPT OemToAnsi("Contato") ID -3 OF oDlg2

ENDIF

REDEFINE GET oGet02 VAR Rc_it02 PICTURE "99999999" ID 36 OF oDlg2 READONLY

REDEFINE GET oGet03 VAR Rc_it03 ID 37 OF oDlg2 UPDATE

REDEFINE BTNBMP oBtb ID 55 OF oDlg2 FILE ".\BITMAPS\NOVO.BMP" WHEN .F.

REDEFINE GET oGet04 VAR Rc_it09 ID 39 OF oDlg2 UPDATE

REDEFINE GET oGet05 VAR Rc_it04 ID 40 OF oDlg2 VALID EVAL({||IIF(EMPTY(DTOS(Rc_it04)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it04)))})

REDEFINE GET oGet06 VAR Rc_it07 ID 38 OF oDlg2 UPDATE

REDEFINE GET oGet07 VAR Rc_it06 ID 41 OF oDlg2 UPDATE VALID EVAL({||IIF(EMPTY(DTOS(Rc_it06)),MsgStop(OemToAnsi("Queira informar uma data para o vencimento."),OemToAnsi("Aten‡Æo!")),NIL),(!EMPTY(DTOS(Rc_it06)))})

REDEFINE GET oGet08 VAR Rc_it10 ID 42 OF oDlg2

REDEFINE GET oGet09 VAR Rc_it05 PICTURE "@E 999,999.99" ID 43 OF oDlg2 Valid RcPriCal(oDlg2) UPDATE

REDEFINE GET oGet10 VAR Rc_it08 PICTURE "@E 999.99" ID 44 OF oDlg2

REDEFINE GET oGet11 VAR Rc_it11 ID 45 OF oDlg2

REDEFINE GET oGet12 VAR Rc_it12 PICTURE "@E 999,999.99" ID 46 OF oDlg2 VALID RcPriCal(oDlg2)

REDEFINE GET oGet13 VAR Rc_it18 PICTURE "@E 999,999.99" ID 47 OF oDlg2 VALID RcPriCal(oDlg2)

REDEFINE GET oGet14 VAR Rc_it16 PICTURE "@E 999,999.99" ID 48 OF oDlg2 VALID RcPriCal(oDlg2) UPDATE

REDEFINE GET oGet15 VAR Rc_it19 ID 49 OF oDlg2

REDEFINE GET oGet16 VAR Rc_it14 ID 50 OF oDlg2

REDEFINE GET oGet17 VAR Rc_it15 ID 51 OF oDlg2

REDEFINE CHECKBOX oChec1 VAR Rc_it23 ID 52 OF oDlg2

REDEFINE BUTTON oBt1 ID 33 OF oDlg2 ACTION (lSave := .T. , oDlg2:End()) WHEN !EMPTY(Rc_it01) .AND. !EMPTY(Rc_it03)

REDEFINE BUTTON oBt2 ID 34 OF oDlg2 ACTION (lSave := .F. , oDlg2:End())

ACTIVATE DIALOG oDlg2 CENTERED

if lSave

while ! &(oDbf)->(Rlock()) ; End

if lAppend

&(oDbf)->(DBAPPEND())

endif

REPL &(oDbf)->CODIGO WITH Rc_it01

REPL &(oDbf)->ITEM02 WITH Rc_it02

REPL &(oDbf)->ITEM03 WITH Rc_it03

REPL &(oDbf)->ITEM04 WITH Rc_it04

REPL &(oDbf)->ITEM05 WITH Rc_it05

REPL &(oDbf)->ITEM06 WITH Rc_it06

REPL &(oDbf)->ITEM07 WITH Rc_it07

REPL &(oDbf)->ITEM08 WITH Rc_it08

REPL &(oDbf)->ITEM09 WITH Rc_it09

REPL &(oDbf)->ITEM10 WITH Rc_it10

REPL &(oDbf)->ITEM11 WITH Rc_it11

REPL &(oDbf)->ITEM12 WITH Rc_it12

REPL &(oDbf)->ITEM13 WITH Rc_it13

REPL &(oDbf)->ITEM14 WITH Rc_it14

REPL &(oDbf)->ITEM15 WITH Rc_it15

REPL &(oDbf)->ITEM16 WITH Rc_it16

REPL &(oDbf)->ITEM18 WITH Rc_it18

REPL &(oDbf)->ITEM19 WITH Rc_it19

REPL &(oDbf)->ITEM20 WITH Rc_it20

REPL &(oDbf)->ITEM23 WITH Rc_it23

REPL &(oDbf)->ITEM24 WITH Rc_it24

REPL &(oDbf)->ITEM26 WITH Rc_it26

REPL &(oDbf)->ITEM27 WITH Rc_it27

REPL &(oDbf)->ITEM28 WITH Rc_it28

REPL &(oDbf)->ITEM29 WITH Rc_it29

REPL &(oDbf)->ITEM30 WITH Rc_it30

REPL &(oDbf)->ITEM31 WITH Rc_it31

REPL &(oDbf)->ITEM32 WITH Rc_it32

&(oDbf)->(DBCOMMITALL())

&(oDbf)->(DbUnlockALL())

nOldRec := &(oDbf)->(RECNO())

endif

&(oDbf)->(DBGOTO(nOldRec))

oCntLis:UpStable()

oCntLis:Refresh()

return nil

//---------------------------------------------------------------------------//

STATIC FUNCTION CnkChkNum(cCodigo)

LOCAL lOk := .T.

SET ORDER TO 1

SEEK cCodigo

IF FOUND()

MsgStop(OemToAnsi("Este n£mero j  existe."),OemToAnsi("Aten‡Æo!"))

lOk := .F.

ENDIF

RETURN(lOk)

//---------------------------------------------------------------------------//

STATIC FUNCTION DelConta(oCntLis,mTp)

LOCAL MyDb := SELECT()

LOCAL nNdoc1 := SPACE(10), nVpar1 := 0, dVenc1 := CTOD(" "),;

nNdoc2 := SPACE(10), nVpar2 := 0, dVenc2 := CTOD(" "),;

nNdoc3 := SPACE(10), nVpar3 := 0, dVenc3 := CTOD(" "),;

nNdoc4 := SPACE(10), nVpar4 := 0, dVenc4 := CTOD(" "),;

nNdoc5 := SPACE(10), nVpar5 := 0, dVenc5 := CTOD(" "),;

nNdoc6 := SPACE(10), nVpar6 := 0, dVenc6 := CTOD(" ")

PUBLIC nDoc := &(oDbf)->CODIGO

lConf := .F.

nNdoc1 := &(oDbf)->CODIGO

nVpar1 := &(oDbf)->ITEM05

dVenc1 := &(oDbf)->ITEM06

vIt01 := &(oDbf)->ITEM02 // Cod.Cliente

DEFINE DIALOG oIPAR RESOURCE "IMPRPARC" TITLE OemToAnsi("ExclusÆo de parcelas")

REDEFINE GET oNdoc1 VAR nNdoc1 ID 101 OF oIPAR VALID ChkParOk(nNdoc1, @nVpar1, @dVenc1, vIt01, @oIPAR)

REDEFINE GET oVpar1 VAR nVpar1 PICTURE "@E 999,999.99" ID 102 OF oIPAR UPDATE

REDEFINE GET oVenc1 VAR dVenc1 ID 103 OF oIPAR UPDATE

REDEFINE GET oNdoc2 VAR nNdoc2 ID 104 OF oIPAR VALID ChkParOk(nNdoc2, @nVpar2, @dVenc2, vIt01, @oIPAR)

REDEFINE GET oVpar2 VAR nVpar2 PICTURE "@E 999,999.99" ID 105 OF oIPAR UPDATE

REDEFINE GET oVenc2 VAR dVenc2 ID 106 OF oIPAR UPDATE

REDEFINE GET oNdoc3 VAR nNdoc3 ID 107 OF oIPAR VALID ChkParOk(nNdoc3, @nVpar3, @dVenc3, vIt01, @oIPAR)

REDEFINE GET oVpar3 VAR nVpar3 PICTURE "@E 999,999.99" ID 108 OF oIPAR UPDATE

REDEFINE GET oVenc3 VAR dVenc3 ID 109 OF oIPAR UPDATE

REDEFINE GET oNdoc4 VAR nNdoc4 ID 110 OF oIPAR VALID ChkParOk(nNdoc4, @nVpar4, @dVenc4, vIt01, @oIPAR)

REDEFINE GET oVpar4 VAR nVpar4 PICTURE "@E 999,999.99" ID 111 OF oIPAR UPDATE

REDEFINE GET oVenc4 VAR dVenc4 ID 112 OF oIPAR UPDATE

REDEFINE GET oNdoc5 VAR nNdoc5 ID 113 OF oIPAR VALID ChkParOk(nNdoc5, @nVpar5, @dVenc5, vIt01, @oIPAR)

REDEFINE GET oVpar5 VAR nVpar5 PICTURE "@E 999,999.99" ID 114 OF oIPAR UPDATE

REDEFINE GET oVenc5 VAR dVenc5 ID 115 OF oIPAR UPDATE

REDEFINE GET oNdoc6 VAR nNdoc6 ID 116 OF oIPAR VALID ChkParOk(nNdoc6, @nVpar6, @dVenc6, vIt01, @oIPAR)

REDEFINE GET oVpar6 VAR nVpar6 PICTURE "@E 999,999.99" ID 117 OF oIPAR UPDATE

REDEFINE GET oVenc6 VAR dVenc6 ID 118 OF oIPAR UPDATE

REDEFINE BUTTON oBtn ID 119 OF oIPAR ACTION (lConf := .T., oIPAR:End())

ACTIVATE DIALOG oIPAR CENTERED

IF ! lConf

SELECT(MyDb)

RETURN NIL

ENDIF

aParc := {}

IF ! EMPTY(nNdoc1) ; AADD(aParc, nNdoc1) ; ENDIF

IF ! EMPTY(nNdoc2) ; AADD(aParc, nNdoc2) ; ENDIF

IF ! EMPTY(nNdoc3) ; AADD(aParc, nNdoc3) ; ENDIF

IF ! EMPTY(nNdoc4) ; AADD(aParc, nNdoc4) ; ENDIF

IF ! EMPTY(nNdoc5) ; AADD(aParc, nNdoc5) ; ENDIF

IF ! EMPTY(nNdoc6) ; AADD(aParc, nNdoc6) ; ENDIF

IF LEN(aParc) > 0

FOR Y := 1 TO LEN(aParc)

IF &(oDbf)->(DBSEEK(aParc[Y]))

WHILE ! &(oDbf)->(RLOCK()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(dbCommitAll())

&(oDbf)->(dbUnlockAll())

SysRefresh()

IF mTp = 2

MyDb := SELECT()

SELECT 5

CAIXA->(DBSETORDER(3))

WHILE CAIXA->(DBSEEK("RECEB. DUPLICATA "+aParc[Y]))

WHILE ! CAIXA->(RLOCK()) ; END

CAIXA->(DBDELETE())

END

CAIXA->(dbCommitAll())

CAIXA->(dbUnlockAll())

USE RELATDIA SHARED NEW

ordListClear()

OrdListAdd("RELATDIA","RDIACODI", "RDIACLIE", "RDIAVENC", "RDIAEMIS")

WHILE CAIXA->(DBSEEK(aParc[Y]))

WHILE ! RELATDIA->(RLOCK()) ; END

RELATDIA->(DBDELETE())

END

CLOSE RELATDIA

ENDIF

ENDIF

NEXT

SysRefresh()

SELECT(MyDb)

ENDIF

oCntLis:Refresh() // Repaint the ListBox

RETURN NIL

//----------------------------------------------------------------------------//

static function CntFilter(oCntLis, oDlg, lGet)

LOCAL oDlg4

PUBLIC wCred

store space(30) to cfNom, cfVdr, wCred

store ctod(" ") to wdte1, wdte2, wdtV1, wdtV2, wDtp1, wDtp2

wfil := ""

IF lGet

DEFINE DIALOG oDlg4 RESOURCE "FILT_CNT"

REDEFINE GET oG01 VAR cfNom ID 35 OF oDlg4

REDEFINE GET oG02 VAR cfVdr ID 36 OF oDlg4

REDEFINE GET oG03 VAR wdte1 ID 37 OF oDlg4

REDEFINE GET oG04 VAR wdte2 ID 39 OF oDlg4 when dtoc(wdte1)#" / / " VALID P_needed(wdte2)

REDEFINE GET oG05 VAR wdtv1 ID 40 OF oDlg4

REDEFINE GET oG06 VAR wdtv2 ID 38 OF oDlg4 when dtoc(wdtv1)#" / / " VALID P_needed(wdtv2)

REDEFINE GET oG07 VAR wDtp1 ID 41 OF oDlg4

REDEFINE GET oG08 VAR wDtp2 ID 42 OF oDlg4 when dtoc(wdtp1)#" / / " VALID P_needed(wdtp2)

REDEFINE BUTTON oBt1 ID 33 OF oDlg4 ACTION oDlg4:End()

ACTIVATE DIALOG oDlg4 CENTER

IF ! EMPTY(cfNom)

wfil:="ITEM03=ALLTRIM(cfNom)"

ENDI

IF ! EMPTY(cfVdr)

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="UPPER(ITEM09)=ALLTRIM(cfVdr)"

ENDI

IF dtoc(wdtv2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM06>=wdtv1 .AND. ITEM06 <= wdtv2"

ENDI

IF dtoc(wdte2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM04 >= wdte1 .AND. ITEM04 <= wdte2"

ENDI

IF dtoc(wdtp2)#" / / "

IF ! EMPTY(wfil) ; wfil+=" .AND. " ; ENDI

wfil+="ITEM11 >= wdtp1 .AND. ITEM11 <= wdtp2"

ENDI

SET FILTER TO

IF ! EMPTY(wfil)

SET FILTER TO &wfil

ENDI

ENDIF

&(oDbf)->(DBGOTOP())

wvlbr := 0

wvlpg := 0

wvlju := 0

wvlds := 0

MsgRun( "Processando valores...", "Aguarde...",;

{|| DBEVAL({|| (wvlbr := wvlbr + &(oDbf)->ITEM05,;

wvlpg := wvlpg + &(oDbf)->ITEM12,;

wvlju := wvlju + &(oDbf)->ITEM13,;

wvlds := wvlds + &(oDbf)->ITEM18 ;

)}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

&(oDbf)->(DBGOTOP())

wvltt:=wvlbr-(wvlpg+wvlds)

wvlpg:=wvlpg+wvlds

if wvltt < 0 ; wvltt := 0 ; endif

oCntLis:Upstable()

oCntLis:Refresh()

oDlg:UpDate()

return nil

******************************************************************************

FUNCTION CntTip(mTp)

LOCAL mTit := ""

IF mTp = 1 ; mTit := " a Receber"

ELSEIF mTp = 2 ; mTit := " Recebidas"

ELSEIF mTp = 3 ; mTit := " a Pagar"

ELSEIF mTp = 4 ; mTit := " Pagas"

ENDIF

RETURN mTit

******************************* Vari veis ************************************

FUNCTION RECEVarl()

// LOCAL nRecNr := &(oDbf)->(RecNo())

PUBLIC Rc_it01,Rc_it02,Rc_it03,Rc_it04,Rc_it05,Rc_it06,Rc_it07,Rc_it08, Rc_it09,Rc_it10,Rc_it11,;

Rc_it12,Rc_it13,Rc_it14,Rc_it15,Rc_it16,Rc_it18,Rc_it19,Rc_it20,;

Rc_it21,Rc_it22,Rc_it23,Rc_it24,Rc_it26,Rc_it27,Rc_it28,;

Rc_it29,Rc_it30,Rc_it31,Rc_it32,RcQtPar,RcNmPar

Publ wdte1, wdte2, wdtv1, wdtv2, wvlbr:=0, wvlpg:=0,;

wvltt:=0, wfil:="", wvend:="", wvlds:=0, wDtRc

store space(30) to cfNom, cfVdr

store ctod(" ") to wdte1, wdte2, wdtV1, wdtV2, wDtRc

&(oDbf)->(dbGoBottom())

&(oDbf)->(dbSkip(1))

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it21 := &(oDbf)->ITEM21

Rc_it22 := &(oDbf)->ITEM22

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

//&(oDbf)->(dbGoTo(nRecNr))

RETU NIL

******************************* Calculo do Cadastro/altera‡Æo ****************

FUNCTION RcPriCal(oDlg2)

Rc_it16 := (Rc_it05+Rc_it13)-(Rc_it12+Rc_it18)

oDlg2:Update()

RETU .T.

///////////////////////////////////

STATIC FUNCTION CntTotais(oDlg)

wvlbr := 0

wvlpg := 0

wvlju := 0

wvlds := 0

* nOldRec := &(oDbf)->(RECNO())

* MsgRun( "Processando valores...", "Aguarde...",;

* {|| DBEVAL({|| (wvlbr := wvlbr + &(oDbf)->ITEM05,;

* wvlpg := wvlpg + &(oDbf)->ITEM12,;

* wvlju := wvlju + &(oDbf)->ITEM13,;

* wvlds := wvlds + &(oDbf)->ITEM18 ;

* )}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

wvltt:=wvlbr-(wvlpg+wvlds)

if wvltt < 0 ; wvltt := 0 ; endif

wvlpg:=wvlpg+wvlds

* &(oDbf)->(DBGOTO(nOldRec))

IF oDlg <> NIL

oDlg:Update()

ENDIF

RETURN .T.

******************************* Calculo do recebido **************************

FUNCTION ArcClc(Rc_12,Rc_18,oDlg3)

LOCAL nIt16, nJuro

Rc_it12 := (Rc_12+&(oDbf)->ITEM12)

Rc_it18 := (Rc_18+&(oDbf)->ITEM18)

nIt16 := &(oDbf)->ITEM16

nJuro := 0

// Calcular juros

mTotDia := (Date() - &(oDbf)->item06)

IF mTotDia > 5

IF ! lCaptal

Rc_it13 := ((&(oDbf)->ITEM16/100) * (Rc_it08/30)) * mTotDia

nIt16 := (&(oDbf)->ITEM16+Rc_it13) // Valor a receber

nJuro += Rc_it13

ELSE

nMes := INT(mTotDia/30)

nDia := MOD(mTotDia,30)

IF nMes > 0

FOR NZ := 1 TO nMes

Rc_it13 := ((nIt16/100) * Rc_it08)

nIt16 := nIt16 + Rc_it13

nJuro += Rc_it13

NEXT

ENDIF

Rc_it13 := ((nIt16/100) * (Rc_it08/30)) * nDia

nIt16 := nIt16 + Rc_it13

nJuro += Rc_it13

ENDIF

ENDIF

Rc_it13 := nJuro

nTatApg := nIt16

Rc_it16 := (nTatApg - (Rc_12+Rc_18))

IF Rc_it16 < 0

Rc_it16:=0

ENDI

oDlg3:Update()

RETU .T.

//////////////////////////////

STATIC FUNCTION recedados()

Rc_it01 := &(oDbf)->CODIGO

Rc_it02 := &(oDbf)->ITEM02

Rc_it03 := &(oDbf)->ITEM03

Rc_it04 := &(oDbf)->ITEM04

Rc_it05 := &(oDbf)->ITEM05

Rc_it06 := &(oDbf)->ITEM06

Rc_it07 := &(oDbf)->ITEM07

Rc_it08 := &(oDbf)->ITEM08

Rc_it09 := &(oDbf)->ITEM09

Rc_it10 := &(oDbf)->ITEM10

Rc_it11 := &(oDbf)->ITEM11

Rc_it12 := &(oDbf)->ITEM12

Rc_it13 := &(oDbf)->ITEM13

Rc_it14 := &(oDbf)->ITEM14

Rc_it15 := &(oDbf)->ITEM15

Rc_it16 := &(oDbf)->ITEM16

Rc_it18 := &(oDbf)->ITEM18

Rc_it19 := &(oDbf)->ITEM19

Rc_it20 := &(oDbf)->ITEM20

Rc_it21 := &(oDbf)->ITEM21

Rc_it22 := &(oDbf)->ITEM22

Rc_it23 := &(oDbf)->ITEM23

Rc_it24 := &(oDbf)->ITEM24

Rc_it26 := &(oDbf)->ITEM26

Rc_it27 := &(oDbf)->ITEM27

Rc_it28 := &(oDbf)->ITEM28

Rc_it29 := &(oDbf)->ITEM29

Rc_it30 := &(oDbf)->ITEM30

Rc_it31 := &(oDbf)->ITEM31

Rc_it32 := &(oDbf)->ITEM32

RcQtPar := &(oDbf)->QTDPAR

RcNmPar := &(oDbf)->NUMPAR

RETURN NIL

//////////////////////////////

STATIC FUNCTION CntSeekCod(Rc_it02, Rc_it03, oDlg2, mTp)

local oDbf2, bFields, aHeaders

LOCAL cTitle := "Pesquisa de "+IIF( mTp=1 .or. mTp=2,"Clientes","Fornecedores")

IF Rc_it02 = 0

Rc_it03 := SPACE(40)

oDlg2:UpDate()

RETURN .T.

ENDIF

oDbf2 := Select()

IF mTp=1 .or. mTp=2

aHeaders := { 'Código','Nome','Fantasia' }

SELECT 6

bFields := {|| { STRZERO(CLIENTE->CODIGO,5),;

CLIENTE->ITEM02,;

CLIENTE->ITEM03 }}

ELSE

aHeaders := { 'Código','Nome','Contato' }

USE FORNECED SHARED NEW

ordListClear()

OrdListAdd("FORNECED","FORNCODI", "FORNNOME", "FORNFANT")

bFields := {|| { STRZERO(FORNECED->CODIGO,4),;

FORNECED->ITEM02,;

FORNECED->ITEM03 }}

ENDIF

lOk := .T.

if ! DbSeek( Rc_it02 )

IF mTp=1 .or. mTp=2

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "CLIENTE",;

"CLIENTE->ITEM02", "CLIENTE->CODIGO", "CLIENTE->ITEM03",;

"Nome:", "Codigo:", "Fantasia")

ELSE

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "FORNECED",;

"FORNECED->ITEM02", "FORNECED->CODIGO",NIL,;

"Nome:", "Codigo:", NIL )

ENDIF

endif

IF mTp=1 .or. mTp=2

Rc_it02 := CLIENTE->CODIGO

Rc_it03 := CLIENTE->ITEM02

Rc_it09 := cOper // Vendedor

nDias := 30

vIt01 := CLIENTE->CODIGO

vIt02 := CLIENTE->ITEM02

vIt03 := CLIENTE->ITEM03

vIt04 := CLIENTE->ITEM04

vIt05 := CLIENTE->ITEM08

vIt06 := ALLTRIM(CLIENTE->ITEM05)+"-"+CLIENTE->ITEM06

vIt07 := CLIENTE->ITEM09

vIt08 := CLIENTE->ITEM11

vIt09 := CLIENTE->ITEM10

Rc_it26 := CLIENTE->ITEM03

Rc_it27 := CLIENTE->ITEM04

Rc_it28 := CLIENTE->ITEM08

Rc_it29 := ALLTRIM(CLIENTE->ITEM05)+"-"+CLIENTE->ITEM06

Rc_it30 := CLIENTE->ITEM09

Rc_it31 := CLIENTE->ITEM11

Rc_it32 := CLIENTE->ITEM10

CLIENTE->(DBCLEARFIL(NIL))

CLIENTE->(DBGOTOP())

ELSE

Rc_it02 := FORNECED->CODIGO

Rc_it03 := FORNECED->ITEM02

Rc_it09 := FORNECED->ITEM03 // Contato

nDias := 0

CLOSE FORNECED

ENDIF

Select(oDbf2)

oDlg2:UpDate()

RETURN .T.

**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**+-+**

FUNCTION SetParcel(Rc_it02, aArray, oBr2, mTp)

aArray := {}

IF mTp=1 .OR. mTp=3

&(oDbf)->(DBSETORDER(4))

IF &(oDbf)->(DBSEEK(Rc_it02))

WHILE ! &(oDbf)->(EOF())

IF &(oDbf)->ITEM02 = Rc_it02

AADD(aArray,{STRZERO(&(oDbf)->NUMPAR,2),&(oDbf)->ITEM06,&(oDbf)->ITEM05})

ENDIF

&(oDbf)->(DBSKIP(1))

END

ENDIF

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOBOTTOM())

&(oDbf)->(DBSKIP(1))

ENDIF

oBr2:cAlias := NIL

oBr2:SetArray(aArray)

oBr2:bLogicLen := {|| len(aArray)}

oBr2:bGoTop := {|| nRec := 1 }

oBr2:bGoBottom := {|| nRec := len(aArray) }

oBr2:bSkip := { | nWant, nDo | ;

nDo := Min( Max( nWant, 1 - nRec ), ;

Len( aArray ) - nRec ), ;

nRec += nDo, nDo }

oBr2:Refresh()

RETURN .T.

//////////////////////////////

FUNCTION CntSeekF6(Rc_it02, Rc_it03, Rc_it09, mTp)

LOCAL oDbf2, bFields

LOCAL cTitle := "Pesquisa de "+IIF( mTp=1 .or. mTp=2,"Clientes","Fornecedores")

LOCAL aHeaders := { 'Código','Nome','Fone' }

oDbf2 := Select()

IF mTp=1 .or. mTp=2

aHeaders := { 'Código','Nome','Fantasia' }

SELECT 6

bFields := {|| { STRZERO(CLIENTE->CODIGO,5),;

CLIENTE->ITEM02,;

CLIENTE->ITEM03 }}

ENDIF

Rc_it02 := 0

IF mTp=1 .or. mTp=2

lOk := Search( cTitle, bFields, aHeaders, oDlg2, "CLIENTE",;

"CLIENTE->ITEM02", "CLIENTE->CODIGO", "CLIENTE->ITEM03",;

"Nome:", "Codigo:", "Fantasia")

ELSE

aHeaders := { 'Código','Nome','Contato' }

USE FORNECED SHARED NEW

ordListClear()

OrdListAdd("FORNECED","FORNCODI", "FORNNOME")

bFields := {|| { STRZERO(FORNECED->CODIGO,4),;

FORNECED->ITEM02,;

FORNECED->ITEM03 }}

ENDIF

IF mTp=1 .or. mTp=2

Rc_it02 := CLIENTE->CODIGO

Rc_it03 := CLIENTE->ITEM02

Rc_it09 := cOper // Vendedor

nDias := 30

CLIENTE->(DBCLEARFIL(NIL))

CLIENTE->(DBGOTOP())

ELSE

Rc_it02 := FORNECED->CODIGO

Rc_it03 := FORNECED->ITEM02

Rc_it09 := FORNECED->ITEM03 // Contato

CLOSE FORNECED

ENDIF

Select(oDbf2)

RETURN .T.

///////////////////////////////////

FUNCTION PagConta( mTp, oCntLis, oDlg, lConta )

local oDlg3, Conf:=.F., mTotDia, mJuro, nFormPg, aFormPg, nRcNo

local Cms01,Cms02,Cms03,Cms04,Cms05,Cms06,Cms07,Cms08,Rc_14,;

oCt01,oCt02,oCt03,oCt04,oCt05,oCt06,oCt07,oCt08,oCt09,oCt10,oCt11,oCt12

if mTp = NIL

return .f.

endif

/* IF mTp = 1 .OR. mTp = 2

IF ! UsrFree(CntZera)

RETURN NIL

ENDIF

ELSE

IF ! UsrFree(CntZera)

RETURN NIL

ENDIF

ENDIF */

mDupNum:={} // Numeros das duplicatas

mDupVen:={} // Vencimentos

mDupVlr:={} // Valores dos t¡tulos

mDupQui:={} // Total quitado

mDupPgo:={} // Valor atribuido neste recibo

mDupAre:={} // Valores a receber

mDupRnu:={} // Numero do recibo

mDupRdt:={} // Data do recebimento

mDupDsc:={} // Desconto concedido

mDupRef:={} // Desconto referente a...

mDupJur:={} // Juros pagos

mInfo:=SPACE(1)

nFormPg := 1

aFormPg := {"EM DINHEIRO","EM CHEQUES",OemToAnsi("EM CREDCARD"),;

OemToAnsi("EM VISA"),OemToAnsi("EM AMERICAN"),;

OemToAnsi("EM MASTER"),OemToAnsi("EM DEPàSITO"),;

"INDEFINIDO"}

nRcNo := &(oDbf)->(RECNO())

ReceDados()

Rc_it08 := VAL(cNotJur)*30 // Juros ao mˆs

Rc_it13 := 0 // Juros

Rc_it16 := (&(oDbf)->ITEM16+Rc_it13) // Valor a receber

rc_12 := 0 // Valor quitado

rc_18 := 0 // Valor do desconto

mCodCli:= Rc_it02 // Codigo do cliente

mNomCli:= Space(40) // Nome do cliente

Rc_14 := Space(40) // Obs 1

Rc_it19:= Rc_it01 // Numero do recibo

Rc_it11:= DATE() // Data do recebimento

nTotPar := &(oDbf)->ITEM16

nTatApg := 0

Rc_it20 := Space(45)

DEFINE FONT mInfFnt NAME "Courier New" SIZE 0,-10

IF ! lConta

DEFINE DIALOG oDlg3 RESOURCE "CNTQUIT" TITLE "Quitacao da Duplicata "+CntTip(mTp)

REDEFINE GET oCt01 VAR Rc_it01 PICTURE "@!" ID 101 OF oDlg3 READONLY // VALID CntNota(@Rc_it01,@Rc_it02,@Rc_it03,@mCodCli,oDlg3)

REDEFINE GET oCt02 VAR mCodCli PICTURE "9999999999" ID 102 OF oDlg3 VALID AcheiCli(@mCodCli,@mNomCli,@Rc_it03,oDlg3,mTp,lConta) UPDATE WHEN EMPTY(Rc_it01)

REDEFINE GET oCt03 VAR Rc_it03 PICTURE "@!" ID 103 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt04 VAR Rc_it19 PICTURE "@!" ID 104 OF oDlg3

REDEFINE GET oCt05 VAR Rc_it11 ID 105 OF oDlg3

REDEFINE GET oC109 VAR nTotPar PICTURE "@E 999,999.99" ID 109 OF oDlg3 UPDATE

REDEFINE SAY oCt_2 PROMPT ALLTRIM(STR(Rc_it08))+"% ao mˆs" ID -2 OF oDlg3

REDEFINE GET oC111 VAR Rc_it13 PICTURE "@E 999,999.99" ID 111 OF oDlg3 UPDATE

REDEFINE GET oC114 VAR nTatApg PICTURE "@E 999,999.99" ID 114 OF oDlg3 UPDATE

REDEFINE GET oCt06 VAR Rc_12 PICTURE "@E 999,999.99" ID 106 OF oDlg3 ;

Valid EVAL({||IIF(!EMPTY(Rc_it01),Arcclc(rc_12,Rc_18,oDlg3),;

EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.})),EVAL({||IIF(Rc_12=0,MSGSTOP(OEMTOANSI("Queira informar o valor que foi quitado, ou pressione Esc caso queira cancelar."),OEMTOANSI("ATENۂO!")),""),(Rc_12 != 0)})}) UPDATE

REDEFINE GET oCt08 VAR Rc_18 PICTURE "@e 999,999.99" ID 108 OF oDlg3 ;

Valid EVAL({||IIF(!EMPTY(Rc_it01),Arcclc(rc_12,Rc_18,oDlg3),;

EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.})),.T.}) UPDATE

REDEFINE GET oCt07 VAR Rc_it16 PICTURE "@E 999,999.99" ID 107 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt10 VAR mInfo MEMO ID 110 OF oDlg3 UPDATE FONT mInfFnt WHEN (0=1)

REDEFINE GET oC113 VAR Rc_14 ID 113 OF oDlg3

REDEFINE BUTTON oCt11 ID 115 OF oDlg3 ACTION (Conf:=.T., oDlg3:End())

REDEFINE BUTTON oCt12 ID 116 OF oDlg3 ACTION (Conf:=.F., oDlg3:End())

ACTIVATE DIALOG oDlg3 CENTERED //ON INIT ArcClc(Rc_12,Rc_18,oDlg3)

ELSE

Rc_it01 := "" // Deve estar vazio neste tipo de quita‡Æo

Rc_12 := 0

Rc_it03 := SPACE(40)

Rc_it19 := SPACE(10) // N§ do recibo

DEFINE DIALOG oDlg3 RESOURCE "CNTHAVER"

REDEFINE GET oCt02 VAR mCodCli PICTURE "9999999999" ID 102 OF oDlg3 VALID AcheiCli(@mCodCli,@mNomCli,@Rc_it03,oDlg3,mTp,lConta) UPDATE

REDEFINE GET oCt03 VAR Rc_it03 PICTURE "@!" ID 103 OF oDlg3 READONLY UPDATE

REDEFINE GET oCt04 VAR Rc_it19 PICTURE "@!" ID 104 OF oDlg3

REDEFINE GET oCt05 VAR Rc_it11 ID 105 OF oDlg3

REDEFINE GET oCt06 VAR Rc_12 PICTURE "@E 999,999.99" ID 106 OF oDlg3 ;

Valid EVAL({||(mDupNum:={},;

mDupVen:={},;

mDupVlr:={},;

mDupQui:={},;

mDupPgo:={},;

mDupAre:={},;

mDupRnu:={},;

mDupRdt:={},;

mDupDsc:={},;

mDupRef:={},;

mDupJur:={},;

Calcula(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,rc_12,@mInfo,oDlg3) ),;

.T.}) UPDATE

REDEFINE RADIO oRadio VAR nFormPg ID 109,110,111,112,113,114,117,118 OF oDlg3

REDEFINE BUTTON oCt11 ID 115 OF oDlg3 ;

ACTION ( IIF( MsgYesNo("Confirma a quitacao","Confirmar"),;

( Conf:=.T. , oDlg3:End() ), oDlg3:End() ))

REDEFINE BUTTON oCt12 ID 116 OF oDlg3 ACTION oDlg3:End()

ACTIVATE DIALOG oDlg3 CENTERED

ENDIF

mInfFnt:End()

oFile := SELECT()

If Conf

IF EMPTY(Rc_it01)

AFILL(mDupRnu, Rc_it19 )

AFILL(mDupRdt, Rc_it11 )

cPagame := "PAGAMENTO "+aFormPg[nFormPg]

IF ! lConta

CntQuitar(mCodCli,mDupNum,mDupVen,mDupVlr,mDupQui,mDupAre,mDupPgo,mDupRnu,mDupRdt,mDupDsc,mDupRef,mDupJur,mTp,cPagame)

CliSaldo(mCodCli,mNomCli)

ELSE

MyDbFile := SELECT()

USE HAVER SHARED NEW

ordListClear()

OrdListAdd("HAVER","HAVERCOD", "HAVERNOM", "HAVERDAT")

WHILE ! HAVER->(RLOCK()) ; END

HAVER->(DBAPPEND())

REPLACE HAVER->CODCLI WITH mCodCli

REPLACE HAVER->NOME WITH Rc_it03

REPLACE HAVER->RECIBO WITH Rc_it19

REPLACE HAVER->DATA WITH Rc_it11

REPLACE HAVER->VALOR WITH Rc_12

REPLACE HAVER->FORMAPG WITH aFormPg[nFormPg]

CLOSE HAVER

// --- Lan‡amento no caixa -------------

SELECT 5

CAIXA->( DbSetOrder(2) )

CAIXA->( DbGobottom() )

mCod := CODIGO+1

CAIXA->( DbSetOrder(1) )

whil ! CAIXA->(rlock()) ; end

CAIXA->( DbAppend() )

REPL CAIXA->CODIGO WITH mCod

REPL CAIXA->DATA WITH Rc_it11

REPL CAIXA->HISTOR1 WITH "HAVER CLI: "+ALLTRIM(STR(mCodCli))

REPL CAIXA->HISTOR2 WITH cPagame

REPL CAIXA->ENTRADA WITH Rc_12

REPL CAIXA->CD_DESP WITH 1

REPL CAIXA->TIPO WITH "C"

CAIXA->(dbCommitAll())

CAIXA->(dbUnlockAll())

CAIXA->( DbSetOrder(1) )

CAIXA->( DbGoTop() )

SELECT(MyDbFile)

SysRefresh()

ENDIF

ELSE

If (rc_it16 <= 0)

IF &(oDbf)->ITEM23 = .F.

WHIL ! &(oDbf)->(rlock()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(DBCOMMITALL())

IF &(oDbf)->ITEM12 >= &(oDbf)->ITEM05

IF &(oDbf)->(RLOCK())

&(oDbf)->(DBDELETE())

ENDIF

ENDIF

ELSE

MsgAlert(OemToAnsi("Esta ‚ uma conta mensal. Queira alterar a data do vencimento!"),"Alerta do sistema")

ENDIF

Else

WHIL ! &(oDbf)->(rlock()) ; END

Replace &(oDbf)->item12 With Rc_it12

Replace &(oDbf)->item13 With rc_it13

Replace &(oDbf)->item16 With rc_it16

Replace &(oDbf)->item18 With Rc_it18

Replace &(oDbf)->item20 With rc_it20

&(oDbf)->(DBCOMMITALL())

EndIf

IF &(oDbf)->item16 <= 0

WHIL ! &(oDbf)->(rlock()) ; END

&(oDbf)->(DBDELETE())

&(oDbf)->(DBCOMMITALL())

ENDIF

IF mTp = 1

SELECT 11 // Lan‡ar em contas recebidas

ELSEIF mTp = 3

SELECT 13 // Lan‡ar em contas pagas

ENDIF

oDb2 := SELECT()

oDb2 := (oDb2)->(ALIAS())

IF ! &(oDb2)->(DBSEEK(rc_it01))

WHIL ! &(oDb2)->(Rlock()) ; END

&(oDb2)->(DBAPPEND())

EndIf

WHIL ! &(oDb2)->(Rlock()) ; END

REPL &(oDb2)->CODIGO WITH Rc_it01

REPL &(oDb2)->ITEM02 WITH Rc_it02

REPL &(oDb2)->ITEM03 WITH Rc_it03

REPL &(oDb2)->ITEM04 WITH Rc_it04

REPL &(oDb2)->ITEM05 WITH Rc_it05

REPL &(oDb2)->ITEM06 WITH Rc_it06

REPL &(oDb2)->ITEM07 WITH Rc_it07

REPL &(oDb2)->ITEM08 WITH Rc_it08

REPL &(oDb2)->ITEM09 WITH Rc_it09

REPL &(oDb2)->ITEM10 WITH Rc_it10

REPL &(oDb2)->ITEM11 WITH Rc_it11

REPL &(oDb2)->ITEM12 WITH Rc_it12

REPL &(oDb2)->ITEM13 WITH Rc_it13

REPL &(oDb2)->ITEM14 WITH Rc_14

REPL &(oDb2)->ITEM15 WITH Rc_it15

REPL &(oDb2)->ITEM16 WITH Rc_it16

REPL &(oDb2)->ITEM18 WITH Rc_it18

REPL &(oDb2)->ITEM19 WITH Rc_it19

REPL &(oDb2)->ITEM20 WITH Rc_it20

IF mTp = 1

USE RELATDIA SHARED NEW

ordListClear()

OrdListAdd("RELATDIA","RDIACODI", "RDIACLIE", "RDIAVENC", "RDIAEMIS")

WHIL ! RELATDIA->(Rlock()) ; END

RELATDIA->(DBAPPEND())

REPL RELATDIA->CODIGO WITH Rc_it01

REPL RELATDIA->ITEM02 WITH Rc_it02

REPL RELATDIA->ITEM03 WITH Rc_it03

REPL RELATDIA->ITEM04 WITH Rc_it04

REPL RELATDIA->ITEM05 WITH Rc_it05

REPL RELATDIA->ITEM06 WITH Rc_it06

REPL RELATDIA->ITEM07 WITH Rc_it07

REPL RELATDIA->ITEM08 WITH Rc_it08

REPL RELATDIA->ITEM09 WITH Rc_it09

REPL RELATDIA->ITEM10 WITH Rc_it10

REPL RELATDIA->ITEM11 WITH Rc_it11

REPL RELATDIA->ITEM12 WITH Rc_12

REPL RELATDIA->ITEM13 WITH Rc_it13

REPL RELATDIA->ITEM14 WITH Rc_14

REPL RELATDIA->ITEM15 WITH Rc_it15

REPL RELATDIA->ITEM16 WITH Rc_it16

REPL RELATDIA->ITEM18 WITH Rc_18

REPL RELATDIA->ITEM19 WITH Rc_it19

REPL RELATDIA->ITEM20 WITH Rc_it20

RELATDIA->(dbCloseArea())

// --- Lan‡amento no caixa -------------

SELECT 5

CAIXA->( DbSetOrder(2) )

CAIXA->( DbGobottom() )

mCod := CODIGO+1

CAIXA->( DbSetOrder(1) )

CAIXA->( DbAppend() )

whil ! CAIXA->(rlock()) ; end

REPL CAIXA->CODIGO WITH mCod

REPL CAIXA->DATA WITH Rc_it11

REPL CAIXA->HISTOR1 WITH "RECEB. DUPLICATA "+Rc_it01

REPL CAIXA->HISTOR2 WITH "PAGAMENTO "+aFormPg[1]

REPL CAIXA->ENTRADA WITH Rc_12

REPL CAIXA->TIPO WITH "C"

CAIXA->( DbSetOrder(1) )

CAIXA->( DbGoTop() )

IF MsgYesNo("Gostaria de imprimir o recibo?","Imprimir recibo")

mL := 1

oPrn:= TDosPrn():New("\TICKET.PRN")

oPrn:StartPage()

oPrn:lZeraBuffer:=.F. // For‡a o Pulo da P gina

@ mL, 01 SAY "" OF oPrn

mL ++

@ mL, 01 SAY "+---------------------------------------------------------------------------+" OF oPrn ; mL ++

@ mL, 01 SAY "! R E C I B O !" OF oPrn ; mL ++

@ mL, 01 SAY "+---------------------------------------------------------------------------+" OF oPrn ; mL ++

mL ++

@ mL, 78-LEN("R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99"))) SAY "R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99")) OF oPrn ; mL ++

mL ++

cTxt := " RECEBI DE "+ALLTRIM(Rc_it03)+" A IMPORTANCIA DE R$ "+ALLTRIM(TRANS(Rc_12,"@E 999,999.99"))+" ("+Vlr_Ext(Rc_12,80)+") REFERENTE AO PAGAMENTO DA NOTA PROMISSORIA DISCRIMINADA ABAIXO."

mTtL1:= MLCOUNT(cTxt,77)

IF mTtL1 > 1

FOR Y := 1 TO mTtL1-1

@ mL, 01 SAY JUSTIFICA(cTxt,77,Y) OF oPrn

mL ++

NEXT

@ mL, 01 SAY MEMOLINE(cTxt,77,mTtL1) OF oPrn

mL ++

ELSE

@ mL, 01 SAY MEMOLINE(cTxt,77,mTtL1) OF oPrn

mL ++

ENDIF

mL ++

@ mL, 01 SAY "NUMERO: "+ALLTRIM(Rc_it01)+" - EMISSAO: "+DTOC(Rc_it04)+" - VENCIMENTO: "+DTOC(Rc_it06) OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO TITULO .................................................: "+TRANS(Rc_it05,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO JURO....................................................: "+TRANS(Rc_it13,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR DO DESCONTO................................................: "+TRANS(Rc_it18,"@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "VALOR PAGO.......................................................: "+TRANS(Rc_12, "@E 999,999.99") OF oPrn ; mL ++

@ mL, 01 SAY "SALDO A PAGAR....................................................: "+TRANS(Rc_it16,"@E 999,999.99") OF oPrn ; mL ++

mL ++

@ mL, 01 SAY "POR SER VERDADE, FIRMAMOS O PRESENTE RECIBO, QUE SUBSTITUI A NOTA PROMISSORIA" OF oPrn ; mL ++

mL ++

mL ++

lShowCid := .t.

lShowDia := .f.

cData := UPPER(ALLTRIM(DATAH(Rc_it11, lShowCid, lShowDia)))

@ mL, 78-LEN(cData) SAY cData OF oPrn ; mL ++

mL ++

mL ++

mL ++

@ mL, 01 SAY PrnCentra("...................................",SPACE(77)) OF oPrn ; mL ++

mL ++

@ mL, 01 SAY PrnCentra(ALLTRIM(mEmp),SPACE(77)) OF oPrn ; mL ++

@ mL, 01 SAY REPLICATE(CRLF, 2) OF oPrn

oPrn:EndPage() // Obrigat¢rio

oPrn:End() // Idem

SysRefresh()

ENDIF

ENDIF

ENDIF

ENDIF

SELECT(oFile)

&(oDbf)->(DBUNLOCKALL())

IF ! lConta

oCntLis:UpStable()

oCntLis:Refresh()

ENDIF

RETURN .T.

///////////////////////////////////

STATIC FUNCTION CliSaldo(mCodCli,mNomCli)

LOCAL VlrB, VlrQ, VlrP

STORE 0 TO VlrB, VlrQ, VlrP

SET FILTER TO ITEM02 == mCodCli

GO TOP

IF EOF()

MsgInfo(OemToAnsi("Este cliente zerou seu d‚bito."),"Saldo do cliente")

SET FILTER TO

RETURN NIL

ENDIF

GO TOP

VlrB := 0

VlrQ := 0

VlrD := 0

MsgRun( "Processando valores...", "Aguarde...",;

{|| DBEVAL({|| (VlrB := VlrB + &(oDbf)->ITEM05,;

VlrD := VlrD + &(oDbf)->ITEM18,;

VlrQ := VlrQ + &(oDbf)->ITEM12 ;

)}, NIL, NIL, NIL, NIL, NIL, NIL, .F.) })

SET FILTER TO

VlrP := (VlrB - (VlrQ+VlrD))

MsgInfo( "SALDO DO CLIENTE: "+CRLF+;

""+CRLF+;

"Debito bruto remanesce

Link to comment
Share on other sites

Bom dia,

Concordo com o Supi, retire a & que deve funcionar.

Voce esta FAZENDO assim:


oDbf := SELECT()

oDbf := (oDbf)->(ALIAS())

&(oDbf)->(DBCLEARFIL(Nil)) // alinha 39 é esta.

&(oDbf)->(DBSETORDER(1))

&(oDbf)->(DBGOTOP())

id=code>id=code>

E FAÇA assim:


IF mTp = 1

SELECT 10

oDbf := ALIAS()

ELSEIF mTp = 2

SELECT 11

oDbf := ALIAS()

ELSEIF mTp = 3

SELECT 12

oDbf := ALIAS()

ELSEIF mTp = 4

SELECT 13

oDbf := ALIAS()

ENDIF

(oDbf)->( DBCLEARFILTER( ) ) // alinha 39 é esta.

(oDbf)->( DBSETORDER(1) )

(oDbf)->( DBGOTOP() )

id=code>id=code>

Espero que resolva,

[]´s

Luiz Augusto

São José dos Pinhais - PR

Harbour43 + Five2.4 + Verce

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...