Files
roaregistratura/Programe/Vechi/refverif.prg

7490 lines
166 KiB
Plaintext

PROCEDURE REFClienti && REFCLI
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\clienti.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'clienti.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\clienti.DBF IN 0 ALIAS clientiU
SELECT clientiU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('clientiu.totdeb') = 'U'
SELECT NUME,COD_FISCAL,avans AS precavans,productie AS precdeb,incasat AS preccred FROM clientiU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + productie, totcred WITH preccred + incasat, totvaldeb WITH precvaldeb + prodval, totvalcre WITH precvalcre + incasval
REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('clientiu.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precavans + avans) AS precavans, SUM(precavansv + avansval) AS precavansv, ;
SUM(precdeb + productie) AS precdeb, SUM(preccred+incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM clientiU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precavans + avans) AS precavans, SUM(precavansv + avansval) AS precavansv, ;
SUM(precdeb + productie) AS precdeb, SUM(preccred+incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM clientiU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN clientiU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '411', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '411' AND scc # '4118', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '411' AND scd # '4118', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '411' AND scc # '4118', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '411' AND scd # '4118', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE (LEFT(scd, 3)='411' AND scd # '4118') OR (LEFT(scc, 3)='411' AND scc # '4118');
INTO CURSOR t411 GROUP BY 1, 2, 3
SELECT t411
SCAN
SCATTER NAME o411
SELECT rcli
SEEK LEFT(o411.NUME,30) + o411.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o411.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o411.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o411.acont
ELSE
APPEND BLANK
GATHER NAME o411
ENDIF
ENDIF
REPLACE productie WITH productie + o411.debit, incasat WITH incasat + o411.credit, prodval WITH prodval + o411.valdebit, incasval WITH incasval + o411.valcredit
SELECT t411
ENDSCAN
RELEASE o411
USE IN t411
SELECT NUME, ;
IIF(LEFT(scd,3) = '419', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '419', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '419', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '419', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '419', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('419',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t419 GROUP BY 1, 2
SELECT t419
SCAN
SCATTER NAME o419
SELECT rcli
SEEK LEFT(o419.NUME,30) + o419.acont
IF !FOUND()
LOCATE FOR ALLTRIM(nume) = ALLTRIM(o419.NUME)
IF !FOUND()
APPEND BLANK
GATHER NAME o419
ENDIF
ENDIF
REPLACE avans WITH avans - o419.debit + o419.credit
REPLACE avansval WITH avansval - o419.valdebit + o419.valcredit
SELECT t419
ENDSCAN
RELEASE o419
USE IN t419
SELECT rcli
REPLACE ALL totdeb WITH precdeb+productie,totcred WITH preccred+incasat,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb+prodval,totvalcre WITH precvalcre+incasval,totavansv WITH precavansv+avansval
SELECT clienti
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
*USE IN clientiU
SELECT clienti
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE REFFurnizor && REFFUR
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\FURNIZOR.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'FURNIZOR.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\FURNIZOR.DBF IN 0 ALIAS FURNIZORU
SELECT FURNIZORU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('FURNIZORu.totdeb') = 'U'
SELECT NUME, COD_FISCAL, avans AS precavans, platit AS precdeb, achizit AS preccred FROM FURNIZORU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit , totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval
REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('FURNIZORu.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precavans + avans) AS precavans, SUM(precavansv + avansval) AS precavansv, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM FURNIZORU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precavans + avans) AS precavans, SUM(precavansv + avansval) AS precavansv, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM FURNIZORU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN FURNIZORU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '401', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '401', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '401', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '401', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '401', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('401',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t401 GROUP BY 1, 2, 3
SELECT t401
SCAN
SCATTER NAME o401
SELECT rcli
SEEK LEFT(o401.NUME,30) + o401.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o401.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o401.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o401.acont
ELSE
APPEND BLANK
GATHER NAME o401
ENDIF
ENDIF
REPLACE platit WITH platit + o401.debit, achizit WITH achizit + o401.credit, platival WITH platival + o401.valdebit, achizitval WITH achizitval + o401.valcredit
SELECT t401
ENDSCAN
RELEASE o401
USE IN t401
SELECT NUME, ;
IIF(LEFT(scd,3) = '409', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '409', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '409', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '409', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '409', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('409',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t409 GROUP BY 1, 2
SELECT t409
SCAN
SCATTER NAME o409
SELECT rcli
SEEK LEFT(o409.NUME,30) + o409.acont
IF !FOUND()
LOCATE FOR ALLTRIM(nume) = ALLTRIM(o409.NUME)
IF !FOUND()
APPEND BLANK
GATHER NAME o409
ENDIF
ENDIF
REPLACE avans WITH avans + o409.debit - o409.credit
REPLACE avansval WITH avansval + o409.valdebit - o409.valcredit
SELECT t409
ENDSCAN
RELEASE o409
USE IN t409
SELECT rcli
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit, totavans WITH precavans + avans
REPLACE ALL totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval, totavansv WITH precavansv + avansval
SELECT FURNIZOR
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
*USE IN FURNIZORU
SELECT FURNIZOR
SET ORDER TO TAG NANA
RETURN
*!* LOCAL nla,nlb,ana,anb
*!* IF !se_reface()
*!* RETURN
*!* ENDIF
*!* nlb=m.nl
*!* anb=m.an
*!* dateb=calefirma+'\an'+anb+'\'+'date'+nlb
*!* SELE calendar
*!* LOCATE FOR nl=m.nl AND an=m.an
*!* SKIP -1
*!* IF !BOF()
*!* nla=nl
*!* ana=an
*!* dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
*!* ELSE
*!* dateA=dirgen+'\_alfa\an0000\date00\'
*!* ENDIF
*!* SET SAFETY OFF
*!* COPY FILE &dirgen\_alfa\an0000\date00\FURNIZOR.* TO &loc\&nfscurt\tempo\rcli.*
*!* USE &dateA\FURNIZOR.DBF IN 0 ALIAS FURNIZORU
*!* SELECT FURNIZORU
*!* SET ORDER TO 1 && NUME
*!* TOTAL TO &loc\&nfscurt\tempo\FURNIZORA ON NUME
*!* USE &loc\&nfscurt\tempo\FURNIZORA IN 0 ALIAS FURNIZORA
*!* SELECT FURNIZORA
*!* IF TYPE('FURNIZORa.totdeb') # 'U'
*!* * SUM TOTcred, achizit TO M.TOTcred, M.achizit
*!* REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit
*!* ELSE
*!* SUM platit TO M.platit
*!* m.totdeb=0
*!* ENDIF
*!* USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
*!* &&precedente---------
*!* IF TYPE('FURNIZORa.totdeb') = "U"
*!* SELECT NUME,COD_FISCAL,avans AS precavans,platit AS precdeb,achizit AS preccred FROM FURNIZORA INTO CURSOR rrr
*!* ELSE
*!* * Select NUME,COD_FISCAL,totavans As precavans,totdeb As precdeb,totcred As preccred From FURNIZORa Into Cursor rrr
*!* SELECT NUME,COD_FISCAL,NUMEVAL,;
*!* totavans AS precavans,totdeb AS precdeb,totcred AS preccred,;
*!* totavansV AS precavansV,totVALdeb AS precVALdeb,totVALcre AS precVALcre;
*!* FROM FURNIZORA INTO CURSOR rrr
*!* ENDIF
*!* USE IN FURNIZORA
*!* SELECT rcli
*!* APPEND FROM DBF('rrr')
*!* USE IN rrr
*!* &&rulaje------------
*!* SELE rcli
*!* SET ORDER TO TAG NUME
*!* DO REDAU WITH 'SCC="401 " ','RCLI','M.NUME','ACHIZIT'
*!* DO REDAU WITH 'SCD="401 " ','RCLI','M.NUME','PLATIT'
*!* DO REDAU WITH 'SCD="409 " ','RCLI','M.NUME','AVANS'
*!* DO REDAUsc WITH 'SCc="409 " ','RCLI','M.NUME','AVANS'
*!* DO REDAUVAL WITH 'SCC="401 " ','RCLI','M.NUME','ACHIZITVAL'
*!* DO REDAUVAL WITH 'SCD="401 " ','RCLI','M.NUME','PLATIVAL'
*!* DO REDAUVAL WITH 'SCD="409 " ','RCLI','M.NUME','AVANSVAL'
*!* DO REDAUscVAL WITH 'SCc="409 " ','RCLI','M.NUME','AVANSVAL'
*!* SELECT rcli
*!* REPLACE ALL totdeb WITH precdeb+platit,;
*!* totcred WITH preccred+achizit,;
*!* totavans WITH precavans+avans
*!* REPLACE ALL totVALdeb WITH precVALdeb+PLATIVAL,;
*!* totVALcre WITH precVALcre+ACHIZITVAL,;
*!* totavansV WITH precavansV+AVANSVAL
*!* *Do suprapune WITH 'FURNIZOR','rcli'
*!* SELECT FURNIZOR
*!* IF FLOCK()
*!* DELETE ALL
*!* APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
*!* ENDIF
*!* UNLOCK
*!* USE IN rcli
*!* USE IN FURNIZORU
*!* SELECT FURNIZOR
*!* SET ORDER TO TAG NUME
*!* RETURN
*_________________________________________
PROCEDURE VERBAL
LOCAL btotdeb,btotcred,bpreccred,bprecdeb,dateA,dateb,tsuma,ttotdeb,ttotcred
*i=1
*STARE=1
*orm=createobj('textmult')
OTEXT=CREATE('text_TREE')
STARE=1
CLOSE DATABASE
SELECT 0
USE datEAN\calendar.DBF;
AGAIN ALIAS calendar ;
ORDER 0
btotdeb=0
btotcred=0
bprecdeb=0
bpreccred=0
SELE calendar
SCAN
SCATTER MEMVAR
dateA=calefirma+'\an'+m.an+'\'+'date'+M.nl
SELE 0
USE &dateA\BAL.DBF SHARED
SELE 0
USE &dateA\act.DBF SHARED
SELE BAL
SUM precdeb,preccred,RULDEB,RULCRED TO bprecdeb,bpreccred,ttotdeb,ttotcred
SELE act
SUM suma TO tsuma
IF ttotdeb# tsuma
m.DENUMIRE='Diferente pe debit in luna '+M.nl+' '+M.an
DO mesajt WITH M.DENUMIRE
* WAIT WIND 'Diferente pe debit in luna '+M.NL+' '+M.AN
ENDIF
IF ttotcred# tsuma
m.DENUMIRE='Diferente pe credit'
DO mesajt WITH M.DENUMIRE
* WAIT WIND 'Diferente pe credit'
ENDIF
SELE BAL
IF btotdeb# bprecdeb OR btotcred # bpreccred
m.DENUMIRE='Eroare de preluare in luna '+M.nl+' '+M.an
DO mesajt WITH M.DENUMIRE
* WAIT WIND 'Eroare de preluare in luna '+M.NL+' '+M.AN
ELSE
m.DENUMIRE='Preluare corecta in luna '+M.nl+' '+M.an
DO mesajt WITH M.DENUMIRE
* WAIT WIND 'Preluare corecta in luna '+M.NL+' '+M.AN
ENDIF
IF M.nl='12'
SUM SOLDDEB,SOLDCRED TO btotdeb,btotcred
ELSE
SUM totdeb,totcred TO btotdeb,btotcred
ENDIF
SELE BAL
USE
SELE act
USE
ENDSCAN
IF STARE!=1
OTEXT.DEUNDE='C'
OTEXT.label10.CAPTION='RAPORT VERIFICARE BALANTA'
OTEXT.CMDLIST1.VISIBLE=.F.
OTEXT.CMDLIST2.VISIBLE=.F.
OTEXT.CMDRENUNT1.VISIBLE=.F.
OTEXT.SHOW(1)
ENDIF
DO TOTV.PRG
RETURN
*_________________________________________
PROCEDURE vercasa
LOCAL m.ban
STORE 0 TO TINCASARI,TPLATI
m.ban=''
SELECT BAL
SEEK ('5311 ')
SCATTER MEMVAR
SELE CASA
SUM INCASARI,PLATI TO m.TINCASARI,M.TPLATI
IF M.TINCASARI-M.TPLATI# M.SOLDDEB
***WAIT WINDOWS 'DIFERENTA LA CASA '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10)
DO mesaj WITH 'Diferenta la casa: '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10),''
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA CASA IN LUNA '+NL+' ANUL '+M.AN
DO mesaj WITH 'Nu sunt deferente la casa in luna: '+nl+' '+M.an,''
***
ENDIF
RETURN
*_________________________________________
PROCEDURE verBANCA
LOCAL m.ban
STORE 0 TO TINCASARI,TPLATI
m.ban=''
SELECT BAL
SEEK ('5121 ')
SCATTER MEMVAR
SELE BANCA
SUM INCASARI,PLATI TO m.TINCASARI,M.TPLATI
IF M.TINCASARI-M.TPLATI# M.SOLDDEB
***WAIT WINDOWS 'DIFERENTA LA BANCA IN VALUTA '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10)
DO mesaj WITH 'Diferenta la banca in valuta: '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10),''
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA BANCA IN VALUTA IN LUNA '+NL+' ANUL '+M.AN
DO mesaj WITH 'Nu sunt deferente la banca in valuta in luna: '+nl+'$'+M.an,''
ENDIF
RETURN
*_________________________________________
PROCEDURE verVALBANCA
LOCAL m.ban
STORE 0 TO TINCASARI,TPLATI
m.ban=''
SELECT BAL
SEEK ('5124 ')
SCATTER MEMVAR
SELE BANCAVAL
SUM INCASARI,PLATI TO m.TINCASARI,M.TPLATI
IF M.TINCASARI-M.TPLATI# M.SOLDDEB
***WAIT WINDOWS 'DIFERENTA LA BANCA '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10)
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta la banca: '+STR(M.TINCASARI-M.TPLATI-M.SOLDDEB,10)
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA BANCA IN LUNA '+NL+' ANUL '+M.AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente la banca in luna: '+nl+' '+M.an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERCUMP
SELE CUMP
SUM totctva,neimpozab,totftvaI,tvaI,totftvaM,tvaM;
TO m.Stotctva,m.Sneimpozab,m.StotftvaI,m.StvaI,;
M.StotftvaM,m.StvaM
m.ADUN=m.Sneimpozab+m.StotftvaI+m.StvaI+;
M.StotftvaM+m.StvaM
SELE BAL
SEEK '401 '
SCATTER MEMVAR
m.f401=m.RULCRED
SEEK '404 '
SCATTER MEMVAR
m.f404=m.RULCRED
m.f401404=m.f401+m.f404
IF M.Stotctva-M.ADUN#0
***WAIT WINDOWS 'DIFERENTA ESTE DE '+STR(M.STOTCTVA-M.ADUN,12,0)
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta este: '+STR(M.Stotctva-M.ADUN,12,0)
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
IF M.Stotctva-M.f401404#0
***WAIT WINDOWS 'DIFERENTA FATA DE 401+404 ESTE DE '+STR(M.STOTCTVA-M.f401404,12,0)+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta fata de 401+404 este: '+STR(M.Stotctva-M.f401404,12,0)
ot.label3.CAPTION='in luna '+nl+' '+an
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE FATA DE 401+404'+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente fata de 401+404'+' in luna '+nl+' '+an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERVANZ
SELE VANZ
SUM totctva,neimpozab,totftvaI,tvaI,totftvaM,tvaM;
TO m.Stotctva,m.Sneimpozab,m.StotftvaI,m.StvaI,;
M.StotftvaM,m.StvaM
m.ADUN=m.Sneimpozab+m.StotftvaI+m.StvaI+;
M.StotftvaM+m.StvaM
SELE BAL
SEEK '411 '
SCATTER MEMVAR
m.f411=m.RULDEB
IF M.Stotctva-M.ADUN#0
***WAIT WINDOWS 'DIFERENTA ESTE DE '+STR(M.STOTCTVA-M.ADUN,12,0)
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta este de: '+STR(M.Stotctva-M.ADUN,12,0)
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
IF M.Stotctva-M.f411#0
***WAIT WINDOWS 'DIFERENTA FATA DE 411 ESTE DE '+STR(M.STOTCTVA-M.f411,12,0)+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta fata de 411 este de: '+STR(M.Stotctva-M.f411,12,0)
ot.label3.CAPTION='in luna '+nl+' '+an
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE FATA DE 411'+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente fata de 411 in luna: '+nl+' '+an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERFUR
SELE FURNIZOR
SUM achizit,platit,avans TO M.TACHIZIT,M.TPLATIT,M.TAVANS
SELE BAL
SEEK '401 '
SCATTER MEMVAR
m.SOLD=M.SOLDCRED
SEEK '404 '
SCATTER MEMVAR
m.SOLD=M.SOLDCRED+M.SOLD
IF M.SOLD # m.TACHIZIT-M.TPLATIT
***WAIT WINDOWS 'DIFERENTA LA SOLD ESTE DE '+STR(M.SOLD+M.TPLATIT-M.TACHIZIT)+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta la sold este '+STR(M.SOLD+M.TPLATIT-M.TACHIZIT)
ot.label3.CAPTION='in luna '+nl+' '+an
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA FURNIZORI'+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente la furnizori'+' in luna '+nl+' '+an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERCLI
SELECT clienti
SUM avans,incasat,productie TO m.SUM1,M.SUM2,M.SUM3
m.SUM4=m.SUM3-M.SUM2
SELE BAL
SEEK '411 '
SCATTER MEMVAR
IF M.SOLDDEB # M.SUM3-M.SUM2
***WAIT WINDOWS 'DIFERENTA IN SOLD FATA DE 411 ESTE DE '+STR(M.SOLDDEB-M.SUM3+M.SUM2)+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta in sold fata de 411 este '+STR(M.SOLDDEB-M.SUM3+M.SUM2)
ot.label3.CAPTION='in luna '+nl+' '+an
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA CLIENTI'+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente la clienti '+' in luna '+nl+' '+an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERACHI
SELECT ACHIT542
SUM LUAT,DAT TO m.SUM1,M.SUM2
m.SUM3=M.SUM1-M.SUM2
SELE BAL
SEEK '542 '
SCATTER MEMVAR
IF M.SOLDDEB # M.SUM3
***WAIT WINDOWS 'DIFERENTA SOLDULUI CONT.542 ESTE DE '+STR(M.SOLDDEB-M.SUM3)+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Diferenta soldului cont.542 este de: '+STR(M.SOLDDEB-M.SUM3)
ot.label3.CAPTION='in luna '+nl+' '+an
ot.SHOW(1)
***
ELSE
***WAIT WINDOWS 'NU SUNT DIFERENTE LA 542'+' IN LUNA '+NL+' ANUL '+AN
ot=CREATEOBJ("text")
ot.label2.CAPTION='Nu sunt diferente la 542'+' in luna: '+nl+' '+an
ot.label3.VISIBLE=.F.
ot.SHOW(1)
***
ENDIF
RETURN
*_________________________________________________________________
PROCEDURE REFCasa
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
USE &dateA\casanume IN 0 SHARED ALIAS CASANUMEP
IF TYPE('casanumep.precdeb') # 'U'
SELECT casa, precdeb + incasari as precdeb, preccred + plati as preccred FROM casanumeP ;
INTO CURSOR tprec ORDER BY casa
ELSE
SELECT casa, incasari as precdeb, plati as preccred FROM casanumeP ;
INTO CURSOR tprec ORDER BY casa
ENDIF
SELE CASA
IF FLOCK()
DELETE ALL
m.casa = 'SOLD'
m.DATAIREG = {}
m.COD = -1
m.INCASARI = 0
m.PLATI = 0
m.scd = ''
m.scc = ''
SELE tprec
SCAN
SCATTER MEMVAR
SELE CASA
GOTO BOTTOM
APPE BLANK
m.INCASARI=M.precdeb-M.preccred
m.PLATI=0
GATHER MEMVAR
SELE tprec
ENDSCAN
UNLOCK
ENDIF
SELECT cod, dataireg, nume_3 as casa, scd, scc,;
IIF(scd = '5311', suma, 00000000000000) as incasari, ;
IIF(scc = '5311', suma, 00000000000000) as plati ;
FROM act WHERE scd = '5311' OR scc = '5311' ;
INTO CURSOR tact
SELECT casa
APPEND FROM DBF('tact')
USE IN tact
SELECT CASANUME
IF FLOCK()
DELE ALL
APPEND FROM DBF('tprec')
SELECT nume_3 as casa, ;
sum(IIF(scd = '5311', suma, 00000000000000)) as incasari, ;
sum(IIF(scc = '5311', suma, 00000000000000)) as plati ;
FROM act WHERE scd = '5311' OR scc = '5311' ;
INTO CURSOR tact;
GROUP BY 1
SELECT tact
SCAN
SCATTER NAME ot
SELECT casanume
LOCATE FOR ALLTRIM(casa) = ALLTRIM(ot.casa)
IF !FOUND()
APPEND blank
REPLACE casa WITH ot.casa
ENDIF
REPLACE incasari WITH incasari + ot.incasari, plati WITH plati + ot.plati
SELECT tact
ENDSCAN
UNLOCK
ENDIF
IF USED('tact')
USE IN tact
ENDIF
USE IN tprec
USE IN CASANUMEP
*!* SELE act
*!* SCAN FOR scd='5311'
*!* SCATTER MEMVAR
*!* IF LEFT(m.nume_3,2)=' '
*!* REPL nume_3 WITH 'CENTRALA'
*!* m.nume_3='CENTRALA'
*!* ENDIF
*!* SELE CASA
*!* m.CASA=M.nume_3
*!* m.INCASARI=M.suma
*!* m.PLATI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* SCAN FOR scc='5311'
*!* SCATTER MEMVAR
*!* IF LEFT(m.nume_3,2)=' '
*!* REPL nume_3 WITH 'CENTRALA'
*!* m.nume_3='CENTRALA'
*!* ENDIF
*!* SELE CASA
*!* m.CASA=M.nume_3
*!* m.PLATI=M.suma
*!* m.INCASARI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* ENDIF
****WAIT WIND 'J'
*!* SELE 0
*!* USE &DATE\casanume
*!* IF FLOCK()
*!* SELE CASA
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE casanume
*!* LOCA FOR CASA=ALLTRIM(M.CASA)
*!* IF NOT FOUND()
*!* GOTO BOTTOM
*!* APPE BLANK
*!* REPL CASA WITH M.CASA
*!* ENDIF
*!* SELE CASA
*!* ENDSCAN
*!* SELE casanume
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE CASA
*!* SUM INCASARI,PLATI TO M.INCASARI,M.PLATI FOR ALLTRIM(CASA)=ALLTRIM(M.CASA)
*!* SELE casanume
*!* REPL INCASARI WITH M.INCASARI
*!* REPL PLATI WITH M.PLATI
*!* SELE casanume
*!* ENDSCAN
*!* ENDIF
*!* UNLOCK IN CASA
*!* UNLOCK IN casanume
SELE CASA
SET ORDER TO TAG DATAIREG
RETURN
*__________________________________________________
PROCEDURE REFBANCA
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
USE &dateA\bannume IN 0 SHARED ALIAS banNUMEP
IF TYPE('bannumep.precdeb') # 'U'
SELECT nume_2, precdeb + incasari as precdeb, preccred + plati as preccred FROM bannumeP ;
INTO CURSOR tprec ORDER BY nume_2
ELSE
SELECT nume_2, incasari as precdeb, plati as preccred FROM bannumeP ;
INTO CURSOR tprec ORDER BY nume_2
ENDIF
SELE banca
IF FLOCK()
DELETE ALL
m.DATAIREG = {}
m.COD = -1
m.INCASARI = 0
m.PLATI = 0
m.scd = ''
m.scc = ''
SELE tprec
SCAN
SCATTER MEMVAR
m.INCASARI = M.precdeb-M.preccred
m.PLATI = 0
m.banca = m.nume_2
SELE banca
GOTO BOTTOM
APPE BLANK
GATHER MEMVAR
SELE tprec
ENDSCAN
UNLOCK
ENDIF
SELECT cod, dataireg, nume_2 as banca, scd, scc,;
IIF(scd = '5121', suma, 00000000000000) as incasari, ;
IIF(scc = '5121', suma, 00000000000000) as plati ;
FROM act WHERE scd = '5121' OR scc = '5121' ;
INTO CURSOR tact
SELECT banca
APPEND FROM DBF('tact')
USE IN tact
SELECT banNUME
IF FLOCK()
DELE ALL
APPEND FROM DBF('tprec')
SELECT nume_2 as banca, ;
sum(IIF(scd = '5121', suma, 00000000000000)) as incasari, ;
sum(IIF(scc = '5121', suma, 00000000000000)) as plati ;
FROM act WHERE scd = '5121' OR scc = '5121' ;
INTO CURSOR tact;
GROUP BY 1
SELECT tact
SCAN
SCATTER NAME ot
SELECT bannume
LOCATE FOR ALLTRIM(nume_2) = ALLTRIM(ot.banca)
IF !FOUND()
APPEND blank
REPLACE nume_2 WITH ot.banca
ENDIF
REPLACE incasari WITH incasari + ot.incasari, plati WITH plati + ot.plati
SELECT tact
ENDSCAN
UNLOCK
ENDIF
IF USED('tact')
USE IN tact
ENDIF
USE IN tprec
USE IN banNUMEP
*!* SELE BANCA
*!* SET ORDER TO TAG COD
*!* IF FLOCK()
*!* DELE ALL
*!* SELE BANNUME
*!* USE
*!* SELE 0
*!* USE &dateA\BANNUME
*!* m.DATAIREG={}
*!* m.COD=-1
*!* m.INCASARI=0
*!* m.PLATI=0
*!* m.scd=''
*!* m.scc=''
*!* SELE BANNUME
*!* SCAN
*!* SCATTER MEMVAR
*!* m.BANCA=m.nume_2
*!* SELE BANCA
*!* GOTO BOTTOM
*!* APPE BLANK
*!* m.INCASARI=M.INCASARI-M.PLATI
*!* m.PLATI=0
*!* GATHER MEMVAR
*!* SELE BANNUME
*!* ENDSCAN
*!* SELE BANNUME
*!* USE
*!* SELE BANCA
*!* m.BANCA='BANCA COMPENSARI'
*!* m.INCASARI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* SCAN FOR scd='5121'
*!* SCATTER MEMVAR
*!* SELE BANCA
*!* m.BANCA=M.nume_2
*!* m.INCASARI=M.suma
*!* m.PLATI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* SCAN FOR scc='5121'
*!* SCATTER MEMVAR
*!* SELE BANCA
*!* m.BANCA=M.nume_2
*!* m.PLATI=M.suma
*!* m.INCASARI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* ENDIF
*!* SELE 0
*!* USE &DATE\BANNUME
*!* IF FLOCK()
*!* DELE ALL
*!* &&&exclusive
*!* &&&zap
*!* SELE BANCA
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE BANNUME
*!* LOCA FOR nume_2=ALLTRIM(M.BANCA)
*!* IF NOT FOUND()
*!* GOTO BOTTOM
*!* APPE BLANK
*!* REPL nume_2 WITH M.BANCA
*!* ENDIF
*!* SELE BANCA
*!* ENDSCAN
*!* SELE BANNUME
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE BANCA
*!* SUM INCASARI,PLATI TO M.INCASARI,M.PLATI FOR BANCA=M.nume_2
*!* SELE BANNUME
*!* REPL INCASARI WITH M.INCASARI
*!* REPL PLATI WITH M.PLATI
*!* SELE BANNUME
*!* ENDSCAN
*!* ENDIF
*!* UNLOCK IN BANCA
*!* UNLOCK IN BANNUME
SELE BANCA
SET ORDER TO TAG DATAIREG
RETURN
*_________________________________________
PROCEDURE REFBancaVal && REFVALBANCA
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
USE &dateA\banvnume IN 0 SHARED ALIAS banvnumeP
IF TYPE('banvnumep.precdeb') # 'U'
SELECT nume_3, numeval, ;
precdeb + incasari as precdeb, preccred + plati as preccred, ;
precvaldeb + incasval as precvaldeb, precvalcre + platival as precvalcre ;
FROM banvnumeP ;
INTO CURSOR tprec ORDER BY nume_3
ELSE
SELECT nume_3, numeval, incasari as precdeb, plati as preccred, incasval as precvaldeb, platival as precvalcre ;
FROM banvnumeP ;
INTO CURSOR tprec ORDER BY nume_3
ENDIF
SELE bancaval
IF FLOCK()
DELETE ALL
m.DATAIREG={}
m.COD=-1
m.INCASARI=0
m.PLATI=0
m.incasval=0
m.platival=0
m.scd=''
m.scc=''
m.CURSSCHIMB=0
m.CURSBNR=0
SELE tprec
SCAN
SCATTER MEMVAR
m.INCASARI = M.precdeb-M.preccred
m.PLATI = 0
m.INCASval = M.precvaldeb-M.precvalcre
m.PLATIval = 0
m.banca = m.nume_3
SELE bancaval
GOTO BOTTOM
APPE BLANK
GATHER MEMVAR
SELE tprec
ENDSCAN
UNLOCK
ENDIF
SELECT cod, dataireg, nume_3 as banca, scd, scc, suma_3 as cursschimb, nume_4 as numeval, ;
IIF(scd = '5124', suma, 00000000000000) as incasari, ;
IIF(scc = '5124', suma, 00000000000000) as plati, ;
IIF(scd = '5124', suma_2, 000000000000.00) as incasval, ;
IIF(scc = '5124', suma_2, 000000000000.00) as platival ;
FROM act WHERE scd = '5124' OR scc = '5124' ;
INTO CURSOR tact
SELECT bancaval
APPEND FROM DBF('tact')
USE IN tact
SELECT banvnume
IF FLOCK()
DELE ALL
APPEND FROM DBF('tprec')
SELECT nume_3 as bancaval, nume_4 as numeval, ;
sum(IIF(scd = '5124', suma, 00000000000000)) as incasari, ;
sum(IIF(scc = '5124', suma, 00000000000000)) as plati, ;
sum(IIF(scd = '5124', suma_2, 000000000000.00)) as incasval, ;
sum(IIF(scc = '5124', suma_2, 000000000000.00)) as platival ;
FROM act WHERE scd = '5124' OR scc = '5124' ;
INTO CURSOR tact;
GROUP BY 1
SELECT tact
SCAN
SCATTER NAME ot
SELECT banvnume
LOCATE FOR ALLTRIM(nume_3) = ALLTRIM(ot.bancaval)
IF !FOUND()
APPEND blank
REPLACE nume_3 WITH ot.bancaval
REPLACE numeval WITH ot.numeval
ENDIF
REPLACE incasari WITH incasari + ot.incasari, plati WITH plati + ot.plati
REPLACE incasval WITH incasval + ot.incasval, platival WITH platival + ot.platival
SELECT tact
ENDSCAN
UNLOCK
ENDIF
IF USED('tact')
USE IN tact
ENDIF
USE IN tprec
USE IN banvnumeP
*!* SELE BANCAVAL
*!* IF FLOCK()
*!* DELE ALL
*!* SET ORDER TO TAG COD
*!* &&&ZAP
*!* SELE BANVNUME
*!* USE
*!* SELE 0
*!* USE &dateA\BANVNUME
*!* m.DATAIREG={}
*!* m.COD=-1
*!* m.INCASARI=0
*!* m.PLATI=0
*!* m.incasval=0
*!* m.platival=0
*!* m.scd=''
*!* m.scc=''
*!* m.CURSSCHIMB=0
*!* m.CURSBNR=0
*!* SELE BANVNUME
*!* SCAN
*!* SCATTER MEMVAR
*!* m.BANCA=m.nume_3
*!* SELE BANCAVAL
*!* APPE BLANK
*!* m.INCASARI=M.INCASARI-M.PLATI
*!* m.incasval=M.incasval-M.platival
*!* m.PLATI=0
*!* m.platival=0
*!* GATHER MEMVAR
*!* SELE BANVNUME
*!* ENDSCAN
*!* SELE BANVNUME
*!* USE
*!* SELE BANCAVAL
*!* m.BANCA='BANCA COMPENSARI'
*!* m.INCASARI=0
*!* m.incasval=0
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* SCAN FOR scd='5124'
*!* SCATTER MEMVAR
*!* SELE BANCAVAL
*!* m.BANCA=M.nume_3
*!* m.INCASARI=M.suma
*!* m.incasval=M.suma_2
*!* m.CURSSCHIMB=M.SUMA_3
*!* m.SBNR=SUBSTR(M.EXPLICATIA,8,14)
*!* m.CURSBNR=VAL(M.SBNR)
*!* m.PLATI=0
*!* m.platival=0
*!* m.NUMEVAL=m.nume_4
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* SELE act
*!* SCAN FOR scc='5124'
*!* SCATTER MEMVAR
*!* SELE BANCAVAL
*!* m.BANCA=M.nume_3
*!* m.PLATI=M.suma
*!* m.platival=M.suma_2
*!* m.CURSSCHIMB=M.SUMA_3
*!* m.SBNR=SUBSTR(M.EXPLICATIA,8,14)
*!* m.CURSBNR=VAL(M.SBNR)
*!* m.INCASARI=0
*!* m.incasval=0
*!* m.NUMEVAL=m.nume_4
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* ENDIF
*!* &&REFACERE BANVNUME DUPA BANCAVAL=====================
*!* SELE 0
*!* USE &DATE\BANVNUME
*!* IF FLOCK()
*!* DELE ALL
*!* &&NUMELE BANCILOR=============
*!* SELE BANCAVAL
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE BANVNUME
*!* LOCA FOR nume_3=M.BANCA
*!* IF NOT FOUND()
*!* GOTO BOTTOM
*!* APPE BLANK
*!* REPL nume_3 WITH M.BANCA
*!* ENDIF
*!* SELE BANVNUME
*!* REPL NUMEVAL WITH m.NUMEVAL
*!* SELE BANCAVAL
*!* ENDSCAN
*!* &&VALORILE==========
*!* SELE BANVNUME
*!* SCAN
*!* SCATTER FIEL nume_3 MEMVAR
*!* SELE BANCAVAL
*!* SUM INCASARI,PLATI,incasval,platival TO M.INCASARI,M.PLATI,M.incasval,M.platival FOR ALLT(BANCA)=ALLT(M.nume_3)
*!* IF EMPTY(ALLT(M.nume_3))
*!* SUM INCASARI,PLATI,incasval,platival TO M.INCASARI,M.PLATI,M.incasval,M.platival FOR EMPTY(ALLT(BANCA))
*!* ENDIF
*!* SELE BANVNUME
*!* REPL INCASARI WITH M.INCASARI
*!* REPL PLATI WITH M.PLATI
*!* REPL incasval WITH M.incasval
*!* REPL platival WITH M.platival
*!* SELE BANVNUME
*!* ENDSCAN
*!* ENDIF
*!* UNLOCK IN BANCA
*!* UNLOCK IN BANCAVAL
SELE BANCAVAL
SET ORDER TO TAG DATAIREG
RETURN
*__________________________________________________
PROCEDURE REFCec
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
USE &dateA\CECnume IN 0 SHARED ALIAS CECNUMEP
IF TYPE('CECnumep.precdeb') # 'U'
SELECT CEC, precdeb + INCARCAT as precdeb, preccred + plati as preccred FROM CECnumeP ;
INTO CURSOR tprec ORDER BY CEC
ELSE
SELECT CEC, INCARCAT as precdeb, plati as preccred FROM CECnumeP ;
INTO CURSOR tprec ORDER BY CEC
ENDIF
SELE CEC
IF FLOCK()
DELETE ALL
m.CEC = 'SOLD'
m.DATAIREG = {}
m.COD = -1
m.INCARCAT = 0
m.PLATI = 0
m.scd = ''
m.scc = ''
SELE tprec
SCAN
SCATTER MEMVAR
SELE CEC
GOTO BOTTOM
APPE BLANK
m.INCARCAT=M.precdeb-M.preccred
m.PLATI=0
GATHER MEMVAR
SELE tprec
ENDSCAN
UNLOCK
ENDIF
SELECT cod, dataireg, CEC, scd, scc,;
IIF(scd = '5112', suma, 00000000000000) as INCARCAT, ;
IIF(scc = '5112', suma, 00000000000000) as plati ;
FROM act WHERE scd = '5112' OR scc = '5112' ;
INTO CURSOR tact
SELECT CEC
APPEND FROM DBF('tact')
USE IN tact
SELECT CECNUME
IF FLOCK()
DELE ALL
APPEND FROM DBF('tprec')
SELECT CEC, ;
sum(IIF(scd = '5112', suma, 00000000000000)) as INCARCAT, ;
sum(IIF(scc = '5112', suma, 00000000000000)) as plati ;
FROM act WHERE scd = '5112' OR scc = '5112' ;
INTO CURSOR tact;
GROUP BY 1
SELECT tact
SCAN
SCATTER NAME ot
SELECT CECnume
LOCATE FOR ALLTRIM(CEC) = ALLTRIM(ot.CEC)
IF !FOUND()
APPEND blank
REPLACE CEC WITH ot.CEC
ENDIF
REPLACE INCARCAT WITH INCARCAT + ot.INCARCAT, plati WITH plati + ot.plati
SELECT tact
ENDSCAN
UNLOCK
ENDIF
IF USED('tact')
USE IN tact
ENDIF
USE IN tprec
USE IN CECNUMEP
*!* SELE cec
*!* *set order to tag cod
*!* IF FLOCK()
*!* DELE ALL
*!* SELE cecnume
*!* USE
*!* IF !FILE('&DATEA\cecnume.dbf')
*!* COPY FILE &dirgen\_alfa\an0000\date00\cecnume.* TO &dateA\*.*
*!* ENDIF
*!* SELE 0
*!* USE &dateA\cecnume
*!* m.DATAIREG={}
*!* m.COD=-1
*!* m.INcarcat=0
*!* m.PLATI=0
*!* m.scd=''
*!* m.scc=''
*!* ********incarcare solduri precedente
*!* SELE cecnume
*!* SCAN
*!* SCATTER MEMVAR
*!* *m.cec=m.explicatia
*!* SELE cec
*!* GOTO BOTTOM
*!* APPE BLANK
*!* m.INcarcat=M.INcarcat-M.PLATI
*!* m.PLATI=0
*!* GATHER MEMVAR
*!* SELE cecnume
*!* ENDSCAN
*!* SELE cecnume
*!* USE
*!* **********************incarcare in cec lunca curenta
*!* SELE act
*!* SCAN FOR scd='5112'
*!* SCATTER MEMVAR
*!* SELE cec
*!* m.cec=m.EXPLICATIA
*!* m.INcarcat=M.suma
*!* m.PLATI=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* SCAN FOR scc='5112'
*!* SCATTER MEMVAR
*!* SELE cec
*!* m.cec=m.EXPLICATIA
*!* m.PLATI=M.suma
*!* m.INcarcat=0
*!* GOTO BOTTOM
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* ENDIF
*!* SELE 0
*!* USE &DATE\cecnume
*!* IF FLOCK()
*!* DELE ALL
*!* &&&exclusive
*!* &&&zap
*!* ********************incarcare denumiri in ccecnume
*!* SELE cec
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE cecnume
*!* LOCA FOR ALLTRIM(cec)=ALLTRIM(M.cec)
*!* IF NOT FOUND()
*!* GOTO BOTTOM
*!* APPE BLANK
*!* REPL cec WITH M.cec
*!* ENDIF
*!* SELE cec
*!* ENDSCAN
*!* *************************incarcare soduri in cecnume
*!* SELE cecnume
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE cec
*!* SUM INcarcat,PLATI TO M.INcarcat,M.PLATI FOR cec=M.cec
*!* SELE cecnume
*!* REPL INcarcat WITH M.INcarcat
*!* REPL PLATI WITH M.PLATI
*!* SELE cecnume
*!* ENDSCAN
*!* ENDIF
*!* UNLOCK IN cec
*!* UNLOCK IN cecnume
SELE cec
SET ORDER TO TAG DATAIREG
RETURN
*_________________________________________
PROCEDURE REDAU
PARAMETERS CT,ALI,ETI,CIMP
IF ETI='M.NUME_2'
CIMP1='NUME_2'
ELSE
CIMP1='NUME'
ENDIF
SELE &ALI
SELE act
SCAN FOR &CT
SCATTER MEMVAR
SELE &ALI
SEEK &ETI
IF FOUND()
REPL &CIMP WITH &CIMP +M.suma
*!* IF INLIST(UPPER(ALI),'FURNIZOR','CLIENTI',"RCLI",'ANA408','CLIENT4118')
*!* REPL COD_FISCAL WITH m.COD_FISCAL
*!* ENDIF
lcCod = m.COD_FISCAL
IF EMPTY(COD_FISCAL) AND !EMPTY(lcCod)
REPLACE COD_FISCAL WITH lcCod
ENDIF
ELSE
GOTO BOTTOM
APPE BLANK
REPL &CIMP1 WITH &ETI
REPL &CIMP WITH &CIMP +M.suma
IF INLIST(UPPER(ALI),'FURNIZOR','CLIENTI',"RCLI",'ANA408','CLIENT4118')
REPL COD_FISCAL WITH m.COD_FISCAL
ENDIF
GO TOP
ENDIF
SELE act
ENDSCAN
RETURN
*_________________________________________
PROCEDURE REDAUVAL
PARAMETERS CT,ALI,ETI,CIMP
IF ETI='M.NUME_2'
CIMP1='NUME_2'
ELSE
CIMP1='NUME'
ENDIF
SELE &ALI
SELE act
SCAN FOR &CT
SCATTER MEMVAR
IF M.SUMA_3#0
SELE &ALI
SEEK &ETI
IF FOUND()
REPL &CIMP WITH &CIMP +M.suma_2
REPLACE NUMEVAL WITH M.nume_4
*If Inlist(Upper(ALI),'FURNIZOR','CLIENTI')
* REPL COD_FISCAL WITH m.COD_FISCAL
*Endif
ELSE
GOTO BOTTOM
APPE BLANK
REPL &CIMP1 WITH &ETI
REPL &CIMP WITH &CIMP +M.suma_2
REPLACE NUMEVAL WITH M.nume_4
REPL COD_FISCAL WITH m.COD_FISCAL
GO TOP
ENDIF
ENDIF
SELE act
ENDSCAN
RETURN
************
PROCEDURE REDAUsc
PARAMETERS CT,ALI,ETI,CIMP
IF ETI='M.NUME_2'
CIMP1='NUME_2'
ELSE
CIMP1='NUME'
ENDIF
SELE &ALI
SELE act
SCAN FOR &CT
SCATTER MEMVAR
SELE &ALI
SEEK &ETI
IF FOUND()
REPL &CIMP WITH &CIMP -M.suma
ELSE
GOTO BOTTOM
APPE BLANK
REPL &CIMP1 WITH &ETI
REPL &CIMP WITH &CIMP +M.suma
GO TOP
ENDIF
SELE act
ENDSCAN
RETURN
************
PROCEDURE REDAUscVAL
PARAMETERS CT,ALI,ETI,CIMP
IF ETI='M.NUME_2'
CIMP1='NUME_2'
ELSE
CIMP1='NUME'
ENDIF
SELE &ALI
SELE act
SCAN FOR &CT
SCATTER MEMVAR
IF M.SUMA_3#0
SELE &ALI
SEEK &ETI
IF FOUND()
REPL &CIMP WITH &CIMP -M.suma_2
REPLACE NUMEVAL WITH M.nume_4
ELSE
GOTO BOTTOM
APPE BLANK
REPL &CIMP1 WITH &ETI
REPL &CIMP WITH &CIMP +M.suma_2
REPLACE NUMEVAL WITH M.nume_4
GO TOP
ENDIF
ENDIF
SELE act
ENDSCAN
RETURN
*_________________________________________
PROCEDURE REFDEBITOR
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\DEBITOR.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'DEBITOR.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\DEBITOR.DBF IN 0 ALIAS DEBITORU
SELECT DEBITORU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('DEBITORu.totdeb') = 'U'
SELECT NUME,COD_FISCAL, LUAT AS precdeb, DAT AS preccred FROM DEBITORU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit, totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('DEBITORu.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM DEBITORU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM DEBITORU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN DEBITORU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '461', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '461', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '461', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '461', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '461', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('461',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t461 GROUP BY 1, 2, 3
SELECT t461
SCAN
SCATTER NAME o461
SELECT rcli
SEEK LEFT(o461.NUME,30) + o461.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o461.COD_FISCAL
ENDIF
REPLACE debit WITH debit + o461.debit, credit WITH credit + o461.credit, valdebit WITH valdebit + o461.valdebit, valcredit WITH valcredit + o461.valcredit
ELSE
SEEK LEFT(o461.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o461.acont
REPLACE debit WITH debit + o461.debit, credit WITH credit + o461.credit, valdebit WITH valdebit + o461.valdebit, valcredit WITH valcredit + o461.valcredit
ELSE
APPEND BLANK
GATHER NAME o461
ENDIF
ENDIF
SELECT t461
ENDSCAN
RELEASE o461
USE IN t461
SELECT rcli
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT DEBITOR
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT DEBITOR
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE REFCreditor
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\creditor.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'creditor.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\creditor.DBF IN 0 ALIAS creditorU
SELECT creditorU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('creditoru.totdeb') = 'U'
SELECT NUME,COD_FISCAL, DAT AS precdeb, LUAT AS preccred FROM creditorU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit, totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('creditoru.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM creditorU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM creditorU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN creditorU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT IIF(LEFT(scc,3) = '462' AND INLIST(LEFT(scd,3),'411','451') AND !EMPTY(nume_2), nume_2, NUME) AS NUME, ;
IIF(LEFT(scd,3) = '462', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '462', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '462', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '462', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '462', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('462',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t462 GROUP BY 1, 2, 3
SELECT t462
SCAN
SCATTER NAME o462
SELECT rcli
SEEK LEFT(o462.NUME,30) + o462.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o462.COD_FISCAL
ENDIF
REPLACE debit WITH debit + o462.debit, credit WITH credit + o462.credit, valdebit WITH valdebit + o462.valdebit, valcredit WITH valcredit + o462.valcredit
ELSE
SEEK LEFT(o462.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o462.acont
REPLACE debit WITH debit + o462.debit, credit WITH credit + o462.credit, valdebit WITH valdebit + o462.valdebit, valcredit WITH valcredit + o462.valcredit
ELSE
APPEND BLANK
GATHER NAME o462
ENDIF
ENDIF
SELECT t462
ENDSCAN
RELEASE o462
USE IN t462
SELECT rcli
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT creditor
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT creditor
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE VERdebitor
SELECT DEBITOR
SUM LUAT,DAT TO m.SUM1,M.SUM2
m.SUM3=M.SUM1-M.SUM2
SELE BAL
SEEK '461 '
SCATTER MEMVAR
IF M.SOLDDEB # M.SUM3
DO mesajval WITH 'Diferenta soldului cont.461 este de: ',M.SOLDDEB-M.SUM3
***
ELSE
DO mesaj WITH 'Nu sunt diferente la 461',' in luna: '+nl+' '+an
***
ENDIF
RETURN
*_________________________________________
PROCEDURE VERcreditor
SELECT creditor
SUM LUAT,DAT TO m.SUM1,M.SUM2
m.SUM3=M.SUM1-M.SUM2
SELE BAL
SEEK '462 '
SCATTER MEMVAR
IF M.SOLDCRED # M.SUM3
DO mesajval WITH 'Diferenta soldului cont.462 este de: ',M.SOLDDEB-M.SUM3
***
ELSE
DO mesaj WITH 'Nu sunt diferente la 462',' in luna: '+nl+' '+an
***
ENDIF
RETURN
*____________________________________________________________________________________________________________
*** INCEPUT PROCEDURA REFCUMP
PROCEDURE REFCump && refcumpnou
LOCAL lnTipTVA,llProcTva
llProcTva=.F.
SELECT act
IF TYPE('act.proc_tva')!="U" && daca exista campul proc_tva
llProcTva=.T.
ENDIF
DO CASE
CASE m.ctvam = 1 AND m.ctvai = 1 OR !llProcTva && firma neplatitoare de TVA
lnTipTVA = 1
CASE (m.ctvam >1 AND m.ctvai = m.ctvam) OR !llProcTva && firma platitoare de TVA inainte de TVA REDUS
lnTipTVA = 2
CASE (m.ctvam >=1 AND m.ctvai != m.ctvam) AND llProcTva && firma platitoare de TVA cu TVA REDUS adica am coloana proc_tva
lnTipTVA = 3
OTHERWISE && consider firma platitoare de TVA inainte de TVA REDUS
lnTipTVA = 2
ENDCASE
locCond = [(SCC='401 ' OR SCC='404 ' OR (SCC='4428' AND SCD='4426'))]
IF gle4511
SELECT * FROM act WHERE (&locCond OR COD IN (SELE DISTINCT COD FROM act WHERE (scc = '4511' AND (scd = '4426' OR !EMPTY(neimpozab))))) AND scc # '767 ' ;
INTO CURSOR tact
ELSE
SELECT * FROM act WHERE &locCond INTO CURSOR tact
ENDIF
*!* IF gle4511
*!* locCond = [(SCC='401 ' OR SCC='404 ' OR (SCC='4428' AND SCD='4426') OR (scc = '4511' and (scd = '4426' or !EMPTY(neimpozab))))]
*!* ELSE
*!* locCond = [(SCC='401 ' OR SCC='404 ' OR (SCC='4428' AND SCD='4426'))]
*!* ENDIF
SELE CUMP
IF FLOCK()
DELE ALL
SELE tact
*SET FILTER TO SCC='401 ' OR SCC='404 ' OR (SCC='4428' AND SCD='4426')
*SET FILTER TO &locCond
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN FOR fdoc#'Nota modificare stoc'
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,scc,scd MEMV
SELE CUMP
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
IF !FOUND()
SELE CUMP
APPE BLAN
GATH MEMV
* REPLACE scd WITH m.scc && nu-i bine din cauza selectiei : Marfa - Alte achizitii
ENDIF
SELE tact
ENDSCAN
*******
SELECT cump
SELE CUMP
SCAN
SCAT MEMV
SELE tact
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
IF USED('tact5')
USE IN tact5
ENDIF
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
SELECT suma,neimpozab,scd,scc FROM tact ;
WHERE NUME=m.NUME AND dataact=m.dataact AND nract=m.nract ;
INTO CURSOR tact5 NOFILTER
OTHERWISE
SELECT suma,neimpozab,scd,scc,IIF(proc_tva=0 AND neimpozab=0,m.ctvam,proc_tva) AS proc_tva FROM tact ;
WHERE NUME=m.NUME AND dataact=m.dataact AND nract=m.nract ;
INTO CURSOR tact5 NOFILTER
ENDCASE
SELECT tact5
SCAN
DO CASE
CASE scd='4426'
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
m.tvaM=M.tvaM+suma
OTHERWISE && dupa tva redus
IF proc_tva=m.ctvam OR proc_tva=0
m.tvaM=M.tvaM+suma
ELSE
IF proc_tva=m.ctvai
m.tvaI=m.tvaI+suma
ENDIF
ENDIF
ENDCASE
CASE scd#'4426'
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
m.totftvaM=M.totftvaM+(suma-neimpozab)
OTHERWISE
IF proc_tva=m.ctvam OR (proc_tva=0 AND neimpozab=0)
m.totftvaM=M.totftvaM+(suma-neimpozab)
ELSE
IF proc_tva=m.ctvai
m.totftvaI=M.totftvaI+(suma-neimpozab)
ENDIF
ENDIF
ENDCASE
m.neimpozab=m.neimpozab+neimpozab
IF LEFT(scd,3)='371'
m.scd=scd
ENDIF
*!* IF SCD='635 '
*!* m.neimpozab=m.neimpozab+SUMA
*!* DO CASE
*!* CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
*!* m.totftvaM=m.totftvaM-SUMA
*!* OTHERWISE
*!* IF proc_tva=m.ctvam OR (proc_tva=0 AND neimpozab=0)
*!* m.totftvaM=m.totftvaM-SUMA
*!* ELSE
*!* IF proc_tva=m.ctvai
*!* m.totftvaI=m.totftvaI-SUMA
*!* ENDIF
*!* ENDIF
*!* ENDCASE
*!* ENDIF
ENDCASE
ENDSCAN
IF USED('tact5')
USE IN tact5
ENDIF
*!* Scan For NUME=m.NUME And dataact=m.dataact And nract=m.nract
*!* Do Case
*!* Case SCD='4426'
*!* m.tvaM=M.tvaM+SUMA
*!* Case SCD#'4426'
*!* m.totftvaM=M.totftvaM+(SUMA-neimpozab)
*!* m.neimpozab=m.neimpozab+neimpozab
*!* If Left(SCD,3)='371'
*!* m.SCD=SCD
*!* Endif
*!* If SCD='635 '
*!* m.neimpozab=m.neimpozab+SUMA
*!* m.totftvaM=m.totftvaM-SUMA
*!* Endif
*!* Endcase
*!* ENDSCAN
***********
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE CUMP
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva
OTHERWISE
m.totctva=M.tvaM+M.totftvaM+m.tvaI+m.totftvaI+M.neimpozab
SELE CUMP
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
tvaI WITH M.tvaI;
totftvaI WITH M.totftvaI;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva
ENDCASE
***************************************
SELECT FURNIZOR
LOCATE FOR NUME = m.NUME
IF FOUND()
lcCodFiscal = COD_FISCAL
SELECT CUMP
REPLACE COD_FISCAL WITH lcCodFiscal
ENDIF
****************************************
SELECT CUMP
ENDSCAN
**************
SELE act
* SCAN FOR SCD='408 '
SCAN FOR scd='4426' AND scc='4428' &&&&&&& modificare la 11 martie 2004, Georgiana
SCAT MEMV
SELE CUMP
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
IF FOUND()
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
* REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
IF totftvaM # 0 && pt 4426 = 4428 fara baza
REPL totftvaM WITH totftvaM - m.suma
ENDIF
REPL totctva WITH totftvaM+tvaM+neimpozab
OTHERWISE
IF m.proc_tva=m.ctvam OR (m.proc_tva=0 AND m.neimpozab=0)
* REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
IF totftvaM # 0 && pt 4426 = 4428 fara baza
REPLACE totftvaM WITH totftvaM - m.suma
ENDIF
ELSE
IF m.proc_tva=m.ctvai
* REPLACE totftvai WITH ROUND(tvai/(m.ctvai-1),0)
IF totftvaI # 0 && pt 4426 = 4428 fara baza
REPLACE totftvaI WITH totftvaI - m.suma
ENDIF
ENDIF
ENDIF
REPL totctva WITH totftvaM+tvaM+totftvaI+tvaI+neimpozab
ENDCASE
ENDIF
SELE act
ENDSCAN
IF gle4511
LlCondScan = [INLIST(LEFT(scd, 3), '401', '404', '451')]
ELSE
LlCondScan = [INLIST(LEFT(scd, 3), '401', '404')]
ENDIF
SELE act
SET FILTER TO
SCAN FOR scc='767 ' AND &LlCondScan &&INLIST(LEFT(scd, 3), '401', '404', '451')
SCAT MEMV
SELE CUMP
LOCA FOR nract=m.nract AND NUME=m.NUME
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
IF FOUND()
IF m.neimpozab#0
REPLACE neimpozab WITH neimpozab-M.suma
ELSE
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
REPL totftvaM WITH totftvaM-m.suma
OTHERWISE
IF M.proc_tva=m.ctvam OR (M.proc_tva=0 AND M.neimpozab=0)
REPL totftvaM WITH totftvaM - m.suma
ELSE
IF M.proc_tva=m.ctvai
REPL totftvaI WITH totftvaI-m.suma
ENDIF
ENDIF
ENDCASE
ENDIF
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
REPL totctva WITH totftvaM+tvaM+neimpozab
OTHERWISE
REPL totctva WITH totftvaM+tvaM+totftvaI+tvaI+neimpozab
ENDCASE
ENDIF
SELE act
ENDSCAN
SELE act
SET FILTER TO
IF USED('tact')
USE IN tact
ENDIF
ENDIF
UNLOCK IN CUMP
ENDPROC
*** SFARSIT PROCEDURA REFCUMP
*_________________________________________________________________________________________________
*_________________________________________________________________________________________________
*** INCEPUT PROCEDURA REFVANZ
PROCEDURE REFVanz
LOCAL lnTipTVA,llProcTva
llProcTva=.F.
SELECT act
IF TYPE('act.proc_tva')!="U" && daca exista campul proc_tva
llProcTva=.T.
ENDIF
DO CASE
CASE (m.ctvam = 1 AND m.ctvai = 1) OR !llProcTva && firma neplatitoare de TVA
lnTipTVA = 1
CASE (m.ctvam >1 AND m.ctvai = m.ctvam) OR !llProcTva && firma platitoare de TVA inainte de TVA REDUS
lnTipTVA = 2
CASE (m.ctvam >=1 AND m.ctvai != m.ctvam) AND llProcTva && firma platitoare de TVA cu TVA REDUS adica am coloana proc_tva
lnTipTVA = 3
OTHERWISE && consider firma platitoare de TVA inainte de TVA REDUS
lnTipTVA = 2
ENDCASE
COPY FILE &dirgen\_alfa\an0000\date00\VANZ.* TO &loc\&nfscurt\tempo\vanz0.*
USE &loc\&nfscurt\tempo\vanz0 IN 0 ALIAS vanz0 EXCLUSIVE
SELECT vanz0
INDEX ON NUME+DTOC(dataact)+STR(nract,14)+scd TAG ndn OF &loc\&nfscurt\tempo\vanz0
SET ORDER TO TAG ndn
*!* Sele VANZ
*!* If Flock()
*!* Dele All
SELECT vanz0
IF gle4511
locCond = [(LEFT(SCD,3)='411' AND SCD#'4118') OR (SCD='635 ' AND SCC='4427') OR (scd = '4511' AND (SCC='4427' OR neimpozab # 0))]
ELSE
locCond = [(LEFT(SCD,3)='411' AND SCD#'4118') OR (SCD='635 ' AND SCC='4427')]
ENDIF
&& adaug inregistrari pt prima oara---------------------------------------------------
SELECT act
*SET FILTER TO (LEFT(SCD,3)='411' AND SCD#'4118') OR (SCD='635 ' AND SCC='4427') && OR (LEFT(SCD,3)='428' AND SCC='4427') OR (SCD='4428' AND SCC='4427')
SET FILTER TO &locCond
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,scd MEMV
SELE vanz0
SEEK m.NUME+DTOC(m.dataact)+STR(m.nract,14)+m.scd
IF !FOUND()
SELE vanz0
APPEND BLAN
GATH MEMV
ENDIF
SELE act
ENDSCAN
SELECT act
SET FILTER TO
SELECT DISTINCT COD FROM act WHERE scd='461 ' AND (scc='4427' OR neimpozab # 0) INTO CURSOR C461
SELECT COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma,scd FROM act;
WHERE COD IN (SELECT DISTINCT COD FROM C461);
INTO CURSOR CC461 ORDER BY dataact
SELECT CC461
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,scd MEMV
SELE vanz0
SEEK m.NUME+DTOC(m.dataact)+STR(m.nract,14)+m.scd
IF !FOUND()
SELE vanz0
APPE BLAN
GATH MEMV
ENDIF
SELE CC461
ENDSCAN
USE IN CC461
*!* SELECT DISTINCT COD FROM ACT WHERE SCC='4118' AND SCD='4427' INTO CURSOR C4118
*!* SELECT COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,SUMA,SCD FROM ACT;
*!* WHERE COD IN (SELECT DISTINCT COD FROM C4118);
*!* INTO CURSOR CC4118 ORDER BY dataact
*!* SELECT CC4118
*!* STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
*!* SCAN
*!* SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,SCD MEMV
*!* SELE vanz0
*!* SEEK m.NUME+DTOC(m.dataact)+STR(m.nract,14)
*!* IF !FOUND()
*!* DO CASE
*!* IF scd#4427
*!* m.totftvam=-suma
*!* ELSE
*!* m.tvam=-suma
*!* ENDIF
*!* ENDCASE
*!*
*!* SELE vanz0
*!* APPE BLAN
*!* GATH MEMV
*!*
*!* ENDIF
*!* SELE CC4118
*!* ENDSCAN
*!* USE IN CC4118
SELECT DISTINCT COD FROM act WHERE scc='4118' AND scd='4427' INTO CURSOR C4118
SELECT COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,SUM(IIF(scd='4427',-suma,0)) AS tvaM ,SUM(IIF(scd#'4427',-suma,0)) AS totftvaM,scd ;
FROM act GROUP BY act.COD ;
WHERE COD IN (SELECT DISTINCT COD FROM C4118);
INTO CURSOR CC4118 ORDER BY dataact
SELECT CC4118
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,scd,tvaM,totftvaM MEMV
m.totctva=m.totftvaM+m.tvaM
SELE vanz0
SEEK m.NUME+DTOC(m.dataact)+STR(m.nract,14)+m.scd
IF !FOUND()
SELE vanz0
APPE BLAN
GATH MEMV
REPLACE scd WITH '4118'
ENDIF
SELE CC4118
ENDSCAN
USE IN CC4118
*******
SELE vanz0
SCAN FOR scd#'4118'
SCAT MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
SELECT suma,neimpozab,scc,scd FROM act WHERE NUME=m.NUME AND dataact=m.dataact AND nract=m.nract;
AND (scd=m.scd OR (scd='4428' AND scc='4427') OR (scd='635 ' AND scc='4427'));
INTO CURSOR act4
OTHERWISE
SELECT IIF(LEFT(scd,3) # '419', suma, -suma) AS suma, neimpozab, scc, scd,IIF(neimpozab=0 AND proc_tva=0,m.ctvam,proc_tva) AS proc_tva FROM act WHERE NUME=m.NUME AND dataact=m.dataact AND nract=m.nract;
AND (scd=m.scd OR (scd='4428' AND scc='4427') OR (scd='635 ' AND scc='4427') OR INLIST('419',LEFT(scd,3),LEFT(scc,3)));
INTO CURSOR act4
ENDCASE
SELECT act4
GO TOP
IF (LEFT(scd,3) = '419' AND LEFT(scc,3) = '411') OR (LEFT(scc,3) = '419' AND LEFT(scd,1) = '5')
lnScd = '419'
ELSE
lnScd = m.scd
ENDIF
******* de completat
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
SUM suma TO m.tvaM FOR scc='4427'
SUM suma-neimpozab,neimpozab TO m.totftvaM,m.neimpozab FOR scc#'4427'
OTHERWISE
SUM suma TO m.tvaM FOR scc='4427' AND proc_tva=m.ctvam
SUM suma TO m.tvaI FOR scc='4427' AND proc_tva=m.ctvai
SUM IIF(proc_tva=m.ctvam,suma-neimpozab,0),IIF(proc_tva=m.ctvai,suma-neimpozab,0),neimpozab TO m.totftvaM,m.totftvaI,m.neimpozab FOR scc#'4427'
ENDCASE
USE IN act4
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE vanz0
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva, scd WITH lnScd
OTHERWISE
m.totctva=M.tvaM+M.totftvaM+M.tvaI+M.totftvaI+M.neimpozab
SELE vanz0
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
tvaI WITH M.tvaI;
totftvaI WITH M.totftvaI;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva, scd WITH lnScd
ENDCASE
ENDSCAN
***********************
SELE act
SET FILTER TO
*!* SCAN FOR (SCD='667 ' AND LEFT(SCC,3)='411') OR SCC='418 '
SCAN FOR (INLIST(LEFT(scd,3),'667','622') AND INLIST(LEFT(scc,3),'411', '451')) OR (scd='4428' AND scc='4427') && modificat la 11 martie 2004, Georgiana, 622 - 27 august 2004 Marius
SCAT FIEL NUME,nract,dataact,scc,suma MEMV
IF m.scc = '4427'
m.scc = '411'
ENDIF
m.scd=m.scc
SELE vanz0
SEEK m.NUME+DTOC(m.dataact)+STR(m.nract,14)+m.scd
IF FOUND()
DO CASE
CASE INLIST(lnTipTVA,1,2) && inainte de tva redus
*!* IF m.SCC='418 '
*!* REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
*!* REPL totctva WITH totftvaM+tvaM+neimpozab
*!* ELSE
IF m.ctvam # 1
REPL totftvaM WITH totftvaM-m.suma
ELSE
REPLACE neimpozab WITH neimpozab-m.suma
ENDIF
REPL totctva WITH totftvaM+tvaM+neimpozab
*!* ENDIF
OTHERWISE
m.proc_tva=act.proc_tva
IF m.proc_tva=0 AND neimpozab=0
m.proc_tva=m.ctvam
ENDIF
*!* IF m.SCC='418 '
*!* IF m.proc_tva=m.ctvam
*!* REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
*!* ENDIF
*!* IF m.proc_tva=m.ctvai
*!* REPL totftvaI WITH ROUND(tvaI/(m.ctvaI-1),0)
*!* ENDIF
*!* REPL totctva WITH totftvaM+tvaM+totftvaI+tvaI+neimpozab
*!* ELSE
IF m.proc_tva=m.ctvam
REPL totftvaM WITH totftvaM-m.suma
ENDIF
IF m.proc_tva=m.ctvai
REPL totftvaI WITH totftvaI-m.suma
ENDIF
REPL totctva WITH totftvaM+tvaM+totftvaI+tvaI+neimpozab
*!* ENDIF
ENDCASE
ENDIF
SELE act
ENDSCAN
*****************
SELECT VANZ
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\vanz0
ENDIF
UNLOCK IN VANZ
USE IN vanz0
*** SFARSIT PROCEDURA REFVANZ************************************************************************
*____________________________________________________________________________________________________
*** REFACERE BALANTA ANALITICA FARA PRECEDENTE*******************************************************
PROCEDURE REFBALANTA_ANA &&REFBAL_ANA
IF !se_reface()
RETURN
ENDIF
SELE BALANA
IF FLOCK()
DELETE ALL FOR EMPTY(acont)
REPLACE ALL RULDEB WITH 0;
RULCRED WITH 0
SCAN
SCATTER MEMVAR
SELE act
IF m.acont#'0000'
SUM suma TO m.RULDEB FOR scd=m.cont AND ASCD=M.acont
SUM suma TO m.RULCRED FOR scc=m.cont AND ASCC=M.acont
ELSE
SUM suma TO m.RULDEB FOR scd=m.cont AND (ASCD=M.acont OR EMPTY(ASCD))
SUM suma TO m.RULCRED FOR scc=m.cont AND (ASCC=M.acont OR EMPTY(ASCC))
ENDIF
SELE BALANA
REPL RULDEB WITH M.RULDEB;
RULCRED WITH M.RULCRED
ENDSCAN
IF TYPE('PRECDEB1')!="U"
DELETE ALL FOR PRECDEB1 = 0 AND PRECCRED1 = 0 AND precdeb = 0 AND preccred = 0 AND RULDEB = 0 AND RULCRED = 0 AND totdeb = 0 AND totcred = 0 AND SOLDDEB = 0 AND SOLDCRED = 0
ELSE
DELETE ALL FOR precdeb = 0 AND preccred = 0 AND RULDEB = 0 AND RULCRED = 0 AND totdeb = 0 AND totcred = 0 AND SOLDDEB = 0 AND SOLDCRED = 0
ENDIF
ENDIF
DO CALCULEAZABALANTA_ANA
*UNLOCK
RETURN
*** REFACERE BALANTA SINTETICA FARA PRECEDENTE*******************************************************
PROCEDURE REFBalanta && REFBAL
IF !se_reface()
RETURN
ENDIF
SELE BAL
IF FLOCK()
REPLACE ALL RULDEB WITH 0;
RULCRED WITH 0
SCAN
SCATTER MEMVAR
SELE act
SUM suma TO m.RULDEB FOR scd=SUBS(m.cont,1,4)
SUM suma TO m.RULCRED FOR scc=SUBS(m.cont,1,4)
SELE BAL
REPL RULDEB WITH M.RULDEB;
RULCRED WITH M.RULCRED
ENDSCAN
IF TYPE('PRECDEB1')!="U"
DELETE ALL FOR PRECDEB1 = 0 AND PRECCRED1 = 0 AND precdeb = 0 AND preccred = 0 AND RULDEB = 0 AND RULCRED = 0 AND totdeb = 0 AND totcred = 0 AND SOLDDEB = 0 AND SOLDCRED = 0
ELSE
DELETE ALL FOR precdeb = 0 AND preccred = 0 AND RULDEB = 0 AND RULCRED = 0 AND totdeb = 0 AND totcred = 0 AND SOLDDEB = 0 AND SOLDCRED = 0
ENDIF
ENDIF
DO CALCULEAZABALANTA
*UNLOCK
RETURN
PROCEDURE VERDIFBAL
SELE BAL
IF FLOCK()
SUM RULDEB TO M.RULDEB
SUM RULCRED TO M.RULCRED
SELE act
SUM suma TO M.suma
IF M.RULDEB #M.suma
DO VERDIFDEB
DO REFBalanta
ENDIF
IF M.RULCRED #M.suma
DO VERDIFCRED
DO REFBalanta
ENDIF
ENDIF
UNLOCK IN BAL
RETURN
*************
PROCEDURE VERDIFDEB
SELE act
DEB=' '
SCAN
SCATTER MEMVAR
IF M.scd#DEB
DEB=M.scd
SELE BAL
SEEK DEB
IF ! FOUND()
*WAIT WINDOWS 'CONTUL '+DEB+' NU ESTE INTRODUS IN BALANTA'
****
WAIT WIND 'Se introduce in balanta contul '+ DEB NOWAIT
SELE PLCONT
*LOCATE FOR LEFT(CIMP1,4)=LEFT(DEB,4)
LOCATE FOR ALLTRIM(CIMP1)=ALLTRIM(DEB)
IF FOUND()
SCATTER MEMVAR
m.cont=M.CIMP1
m.DENUMIRE=m.cimp2
SELE BAL
APPEND BLANK
*GATHER MEMVAR
REPL CONT WITH M.cont
REPL DENUMIRE WITH M.DENUMIRE
ELSE
WAIT WINDOWS 'CONTUL '+DEB+' NU ESTE INTRODUS IN PLANUL DE CONTURI'
ENDIF
*****
ENDIF
SELE act
ENDIF
ENDSCAN
RETURN
PROCEDURE VERDIFCRED
SELE act
DEB=' '
SCAN
SCATTER MEMVAR
IF M.scc#DEB
DEB=M.scc
SELE BAL
SEEK DEB
IF ! FOUND()
*WAIT WINDOWS 'CONTUL '+DEB+' NU ESTE INTRODUS IN BALANTA'
WAIT WIND 'Se introduce in balanta contul'+DEB NOWAIT
SELE PLCONT
*LOCATE FOR LEFT(CIMP1,4)=LEFT(DEB,4)
LOCATE FOR ALLTRIM(CIMP1)=ALLTRIM(DEB)
IF FOUND()
SCATTER MEMVAR
m.cont=M.CIMP1
m.DENUMIRE=m.cimp2
SELE BAL
APPEND BLANK
*GATHER MEMVAR
REPL CONT WITH M.cont
REPL DENUMIRE WITH M.DENUMIRE
ELSE
WAIT WINDOWS 'CONTUL '+DEB+' NU ESTE INTRODUS IN PLANUL DE CONTURI'
ENDIF
ENDIF
SELE act
ENDIF
ENDSCAN
RETURN
*___________________________________________________________________
PROCEDURE refstocinloc &&REFSTOC
IF !se_reface()
RETURN
ENDIF
SELE rull
M=3*RECCOUNT()
OP=CREA('PROGRESBAR')
OP.titlu.CAPTION='Refacere Stocuri'
OP.SHOW()
j=0
SELE inloc
*Set Order To Tag CODMAT2
REPL ALL CANT WITH 0;
CANTE WITH 0
SELE rull
SET ORDER TO TAG COD
SCAN
SCATTER MEMVAR
SELE W50
SEEK M.COD
IF NOT FOUND()
SELE rull
IF FLOCK()
DELETE
ENDIF
UNLOCK
ENDIF
DO pr WITH j
SELE rull
ENDSCAN
SELECT rull
IF FLOCK()
REPLACE ALL pretvtva WITH ROUND(pretv+tvav,0) FOR !EMPTY(pretv) AND !EMPTY(tvav) AND EMPTY(pretvtva)
REPLACE ALL DATAIN WITH dataact FOR CANT#0 AND EMPTY(DATAIN)
REPLACE ALL DATAOUT WITH dataact FOR CANTE#0 AND EMPTY(DATAOUT)
ENDIF
UNLOCK
SELE inloc
REPL ALL CANT WITH 0;
CANTE WITH 0
***********
&&gestiuni la pret de achizitie:
SELECT rull.* FROM rull WHERE rull.scd # '8039' AND gest in (sele DISTINCT gest FROM numegest WHERE nrg<>6 ) ;
INTO CURSOR rullachi
SELECT inloc
SET ORDER TO TAG achi
SELE rullachi
SCAN
m.cants=0
m.CANT=0
m.CANTE=0
SCATTER MEMVAR
SELE inloc
SEEK STR(m.gest,3)+m.scd+STR(m.PRET,14,2)+m.CODMAT+m.DENUMIRE
IF FOUND()
REPL CANTE WITH CANTE+M.CANTE
REPL CANT WITH CANT+M.CANT
IF M.CANT#0
REPLACE DATAIN WITH M.DATAIN
ELSE
REPLACE DATAOUT WITH M.DATAOUT
ENDIF
ELSE
APPEND BLANK
GATHER MEMV
ENDIF
DO pr WITH j
SELE rullachi
ENDSCAN
USE IN rullachi
&&gestiuni la pret de vanzare:
SELECT rull.* FROM rull WHERE gest in (sele DISTINCT gest FROM numegest WHERE nrg=6 );
INTO CURSOR rullvanz
SELECT inloc
SET ORDER TO TAG VANZ
SELE rullvanz
SCAN
m.cants=0
m.CANT=0
m.CANTE=0
SCATTER MEMVAR
SELE inloc
SEEK STR(m.gest,3)+m.scd+STR(m.PRET,14,2)+STR(m.pretvtva,14,2)+ m.CODMAT+m.DENUMIRE
*!* Loca For GEST=M.GEST And SCD=M.SCD ;
*!* AND PRET=M.PRET AND PRETvtva=M.PRETvtva ;
*!* And Allt(CODMAT)=Allt(M.CODMAT) And Allt(DENUMIRE)=Allt(M.DENUMIRE)
IF FOUND()
REPL CANTE WITH CANTE+M.CANTE
REPL CANT WITH CANT+M.CANT
IF M.CANT#0
REPLACE DATAIN WITH M.DATAIN
ELSE
REPLACE DATAOUT WITH M.DATAOUT
ENDIF
ELSE
APPEND BLANK
GATHER MEMV
ENDIF
DO pr WITH j
SELE rullvanz
ENDSCAN
USE IN rullvanz
OP.RELEASE
RETURN
*________________________________________________________________
PROCEDURE refstoc &&refstint
LOCAL lp,ap
_SCREEN.MOUSEPOINTER=11
SET SAFETY OFF
SELE calendar
LOCA FOR nl=m.nl AND an=m.an
SKIP -1
IF BOF()
dateA=dirgen+'\_alfa\an0000\date00'
ELSE
lp=nl
ap=an
dateA=calefirma+'\an'+ap+'\'+'date'+lp
ENDIF
dateb=calefirma+'\an'+m.an+'\'+'date'+M.nl
SELE rull
SET FILTER TO
SELE STOC
SET FILTER TO
&&refacere fisier inlocuitor inloc
COPY FILE &dateA\STOC.* TO &loc\&nfscurt\tempo\inloc.*
USE &loc\&nfscurt\tempo\inloc IN 0 ALIAS inloc EXCL
SELECT inloc
REPL ALL cants WITH cants+CANT-CANTE
DELE ALL FOR cants=0
DELETE ALL FOR scd = '8039'
PACK
SELECT inloc
INDEX ON STR(gest,3)+scd+STR(PRET,14,2)+ CODMAT+DENUMIRE TAG achi OF &loc\&nfscurt\tempo\inloc
INDEX ON STR(gest,3)+scd+STR(PRET,14,2)+STR(pretvtva,14,2)+ CODMAT+DENUMIRE TAG VANZ OF &loc\&nfscurt\tempo\inloc
DO refstocinloc &&REFSTOC
SELECT inloc
ALTER TABLE inloc ADD COLUMN detoate c(175)
SET FILTER TO
INDEX ON detoate TAG detoate OF &loc\&nfscurt\tempo\inloc
SET ORDER TO TAG detoate
REPLACE ALL detoate WITH STR(gest,3)+scd+STR(PRET,14,2)+STR(pretvtva,14,2)+ CODMAT+DENUMIRE
SELECT inloc
SET FILTER TO
TOTAL TO &loc\&nfscurt\tempo\inloctot ON detoate FIELDS CANT,CANTE,cants
USE &loc\&nfscurt\tempo\inloctot IN 0 ALIAS inloctot
*DO suprapune WITH 'stoc','inloc'
SELECT STOC
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\inloctot
ENDIF
UNLOCK
USE IN inloc
USE IN inloctot
SELECT STOC
SET ORDER TO TAG DENUMIRE
_SCREEN.MOUSEPOINTER=0
RETURN
*________________________________________________________________
PROCEDURE REFCumpAn && refcumpnouAN
LOCAL L,A
LOCAL M.BAZA, M.NE, M.TX
L=M.nl
A=M.an
SELE actan
M=3*RECCOUNT()
OP=CREA('PROGRESBAR')
OP.titlu.CAPTION='Refacere Total Cumparari'
OP.SHOW()
j=0
SELE CUMPAN
USE
SELE CUMP
USE
SELE act
USE
SELECT 0
USE &datEAN\CUMPAN.DBF EXCLUSIVE ALIAS CUMP
ZAP
SELE actan
SET FILTER TO scc='401 ' OR scc='404 ' OR (scc='4428' AND scd='4426')
*SET FILTER TO SCC='401 ' OR SCC='404 ' OR SCC='4428'
*SET FILTER TO SCC='401 ' OR SCC='404 '
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL MEMV
SELE CUMP
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
IF !FOUND()
SELE CUMP
GO BOTTOM
APPE BLAN
GATH MEMV
ENDIF
DO pr WITH j
SELE actan
ENDSCAN
*******
SELE CUMP
SCAN
SCAT MEMV
SELE actan
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
DO CASE
CASE scd='4426'
m.tvaM=M.tvaM+suma
CASE scd#'4426'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
IF scd='635 '
*M.TX=.T.
m.neimpozab=m.neimpozab+suma
m.totftvaM=m.totftvaM-suma
ENDIF
ENDCASE
ENDSCAN
***********
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE CUMP
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva
DO pr WITH j
ENDSCAN
SELE actan
SCAN FOR scd='408 '
SCAT MEMV
SELE CUMP
LOCA FOR nract=m.nract AND NUME=m.NUME
*REPL TOTFTVAM WITH TOTFTVAM-TVAM
REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
REPL totctva WITH totftvaM+tvaM+neimpozab
DO pr WITH j
SELE actan
ENDSCAN
SELE CUMP
USE
OP.RELEASE
*SELECT 0
*USE &dateAN\cumpAN.dbf alias cumpan
************DO RC1.PRG
m.an=A
m.nl=L
CLOSE DATABASE
DO TOTV.PRG
RETURN
*___________________________________________________________________________________________
PROCEDURE refVANZAN
LOCAL L,A
LOCAL M.BAZA, M.NE, M.TX
L=M.nl
A=M.an
SELE actan
M=2*RECCOUNT()
OP=CREA('PROGRESBAR')
OP.titlu.CAPTION='Refacere Total Vanzari'
OP.SHOW()
j=0
SELE VANZAN
USE
SELE VANZ
USE
SELE CUMP
USE
SELE act
USE
SELECT 0
USE &datEAN\VANZAN.DBF EXCLUSIVE ALIAS CUMP
ZAP
SELE actan
SET FILTER TO INLIST(scd,'411 ','461 ','4118') OR (scd='4428' AND scc='4427') OR (scd='635 ' AND scc='4427')
&&SET FILTER TO SCd='411 ' or (scd='4428' and scc='4427')
*OR (SCD='635 ' AND SCC='4427')
*SET FILTER TO SCD='411 ' or (scd='4428' and !inlist(left(scc,3),'371','408'))
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL MEMV
SELE CUMP
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
IF !FOUND()
SELE CUMP
GO BOTTOM
APPE BLAN
GATH MEMV
ENDIF
DO pr WITH j
SELE actan
ENDSCAN
*******
SELE CUMP
SCAN
SCAT MEMV
SELE actan
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
DO CASE
CASE scc='4427'
m.tvaM=M.tvaM+suma
CASE scc#'4427'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
m.sumaval=m.sumaval+suma_2
m.NUMEVAL=nume_4
m.CURSSCHIMB=SUMA_3
ENDCASE
ENDSCAN
***********
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE CUMP
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva
DO pr WITH j
SELE actan
ENDSCAN
SELE CUMP
USE
SELECT 0
USE &datEAN\VANZAN.DBF ALIAS VANZAN
OP.RELEASE
*********************DO RV1.PRG
m.an=A
m.nl=L
CLOSE DATABASE
DO TOTV.PRG
RETURN
*--------------------------------------------------------------
*** REFACERE BALANTA SINTETICA CU PRECEDENTE
PROCEDURE REFBal && REFBalanta
LOCAL dateA
IF !se_reface()
RETURN
ENDIF
SET SAFETY OFF
*** adaug in balanta curenta balanta din luna precedenta
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
IF FOUND()
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla
ELSE
dateA=dirgen+'\_alfa\an0000\date00\' && 'Aceasta este prima luna deschisa!',''
ENDIF
DATE=calefirma+'\an'+m.an+'\date'+m.nl
ELSE
DO mesaj WITH 'Fisierul Calendar.dbf este defect!',''
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SELE BAL
IF FLOCK()
DELE ALL
APPE FROM &dateA\BAL.DBF FOR !DELETED()
UNLOCK
ENDIF
*** verific daca am campurile de solduri la 1 ianuarie
llNuSold=.F.
IF TYPE('precdeb1')!="U" && am campurile precdeb1, deci trebuie sa completez soldul de la 1 ianuarie
llNuSold=.T.
ENDIF
*** caut prima balanta din anul curent care are campuri cu solduri de la 1 ianuarie
llgasit=.F.
lcBal1ian=calefirma+'\an'+m.an+'\date01\bal.dbf'
IF llNuSold
lnan=VAL(m.an)
FOR i=1 TO 12
SELECT calendar
LOCATE FOR VAL(an)=lnan AND VAL(nl)=i AND VAL(nl)!=VAL(m.nl)
IF FOUND()
lcBal1ian=calefirma+'\an'+calendar.an+'\date'+calendar.nl+'\bal.dbf'
IF FILE(lcBal1ian)
USE (lcBal1ian) IN 0 AGAIN SHARED ALIAS bal1ian
SELECT bal1ian
IF TYPE("precdeb1")!="U" && exxista campul precdeb1 in balanta selectata
USE IN bal1ian
llgasit=.T.
EXIT
ENDIF
USE IN bal1ian
ENDIF
ENDIF
ENDFOR
ENDIF
*** daca am campul de sold la 1 ianuarie le preiau din prima balanta cu solduri la 1 ianuarie din anul respectiv
IF llNuSold
IF llgasit && daca am gasit prima balanta sintetica cu solduri la 1 ianuarie
USE (lcBal1ian) IN 0 AGAIN SHARED ALIAS bal1ian
SELECT CONT,PRECDEB1,PRECCRED1 FROM bal1ian INTO CURSOR t1ian ORDER BY CONT
SELECT BAL
IF FLOCK()
REPLACE ALL PRECDEB1 WITH 0,PRECCRED1 WITH 0
SCAN
lcCont=CONT
lnprecdeb1=PRECDEB1
lnpreccred1=PRECCRED1
SELECT t1ian
LOCATE FOR CONT=lcCont
IF FOUND()
lnprecdeb1=PRECDEB1
lnpreccred1=PRECCRED1
ENDIF
SELECT BAL
REPLACE PRECDEB1 WITH lnprecdeb1,PRECCRED1 WITH lnpreccred1
ENDSCAN
UNLOCK IN BAL
ENDIF
USE IN bal1ian
USE IN t1ian
ENDIF
ENDIF
SELE BAL
SET ORDER TO TAG CONT
SELE BAL
IF FLOCK()
IF m.nl='01'
REPL ALL precdeb WITH 0,preccred WITH 0
REPL ALL precdeb WITH SOLDDEB,preccred WITH SOLDCRED
IF llNuSold && AM CAMPURILE DE SOLDURI LA 1 IANUARIE
REPLACE ALL PRECDEB1 WITH SOLDDEB,PRECCRED1 WITH SOLDCRED
ENDIF
ELSE
REPL ALL precdeb WITH 0, preccred WITH 0
REPL ALL RULDEB WITH 0, RULCRED WITH 0
REPL ALL precdeb WITH totdeb, preccred WITH totcred
ENDIF
UNLOCK
ENDIF
DO REFBalanta
DO VERDIFBAL
DO CALCULEAZABALANTA
DO REFBALANA
RETURN
*_______________________________________________________________________________________
*** REFACERE BALANTA ANALITICA CU PRECEDENTE***
PROCEDURE REFBALANA && RefBalanta_ana
LOCAL dateA
IF !se_reface()
RETURN
ENDIF
SET SAFETY OFF
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla
ELSE
dateA=dirgen+'\_alfa\an0000\date00\' && 'Aceasta este prima luna deschisa!',''
ENDIF
DATE=calefirma+'\an'+m.an+'\date'+m.nl
*** caut bal si balana din prima luna din anul curent pt soldurile de la 1 ianuarie in caz ca nu gasesc in balanta precedenta
llgasit=.F.
lcBal1ian=calefirma+'\an'+m.an+'\date01\bal.dbf'
lnan=VAL(m.an)
FOR i=1 TO 12
SELECT calendar
LOCATE FOR VAL(an)=lnan AND VAL(nl)=i
IF FOUND()
lcBal1ian=calefirma+'\an'+calendar.an+'\date'+calendar.nl+'\balana.dbf'
IF FILE(lcBal1ian)
USE (lcBal1ian) IN 0 AGAIN SHARED ALIAS bal1ian
SELECT bal1ian
IF TYPE("precdeb1")!="U" && exxista campul precdeb1 in balanta selectata
USE IN bal1ian
llgasit=.T.
EXIT
ENDIF
USE IN bal1ian
ENDIF
ENDIF
ENDFOR
SELE BALANA
IF FLOCK()
DELE ALL
IF FILE('&dateA\BALANA.DBF')
APPE FROM &dateA\BALANA.DBF FOR !DELETED()
ENDIF
*** verific daca am soldurile de la 1 ianuarie
llNuSold=.F.
STORE 0 TO lnprecdeb1,lnpreccred1
IF existacamp('bal','precdeb1')
*!* CALCULATE sum(precdeb1),sum(preccred1) TO lnprecdeb1,lnpreccred1
*!*
*!* IF lnprecdeb1=0 && nu am soldurile de la 1 ianuarie
llNuSold=.T.
*!* ENDIF
ENDIF
*** Daca nu am soldurile de la 1 ianuarie dupa ce am facut append inseamna ca nu le am nici in balanta precedenta,
*** deci o sa le caut in prima balanta din anul respectiv
IF llNuSold
IF llgasit && daca am gasit prima balanta analitica
USE (lcBal1ian) IN 0 AGAIN SHARED ALIAS bal1ian
IF existacamp('bal1ian','precdeb1') AND existacamp('bal1ian','preccred1')
SELECT CONT,acont,PRECDEB1,PRECCRED1 FROM bal1ian INTO CURSOR t1ian ORDER BY CONT
SELECT BALANA
SCAN
lcCont=CONT
lcACont=acont
lnprecdeb1=PRECDEB1
lnpreccred1=PRECCRED1
SELECT t1ian
LOCATE FOR CONT=lcCont AND acont=lcACont
IF FOUND()
lnprecdeb1=PRECDEB1
lnpreccred1=PRECCRED1
ENDIF
SELECT BALANA
REPLACE PRECDEB1 WITH lnprecdeb1,PRECCRED1 WITH lnpreccred1
ENDSCAN
USE IN bal1ian
USE IN t1ian
ENDIF
ENDIF
ENDIF
SELE BALANA
SET ORDER TO TAG CONTACONT
SELECT PLCONTANA
SCAN
SCATTER MEMV
SELECT BALANA
SEEK M.cont+M.acont
IF !FOUND()
APPEND BLANK
REPLACE CONT WITH M.cont, acont WITH M.acont, DENUMIRE WITH M.DENUMIRE
ENDIF
SELECT PLCONTANA
ENDSCAN
SELECT DISTINCT scd AS CONT,ASCD AS acont ;
FROM act ;
WHERE !EMPTY(ASCD) AND LEFT(scd,4)+LEFT(ASCD,4) NOT IN ;
(SELE LEFT(CONT,4)+LEFT(acont,4) FROM BALANA) ;
INTO CURSOR tscd
SELE BALANA
APPEND FROM DBF('tscd')
USE IN tscd
SELECT DISTINCT scc AS CONT,ASCC AS acont ;
FROM act ;
WHERE !EMPTY(ASCC) AND LEFT(scc,4)+LEFT(ASCC,4) NOT IN ;
(SELE LEFT(CONT,4)+LEFT(acont,4) FROM BALANA) ;
INTO CURSOR tscc
SELE BALANA
APPEND FROM DBF('tscc')
USE IN tscc
IF m.nl='01'
REPL ALL precdeb WITH 0, preccred WITH 0
REPL ALL precdeb WITH SOLDDEB, preccred WITH SOLDCRED
IF llNuSold && AM CAMPURILE DE SOLDURI LA 1 IANUARIE
REPLACE ALL PRECDEB1 WITH SOLDDEB,PRECCRED1 WITH SOLDCRED
ENDIF
ELSE
REPL ALL precdeb WITH 0, preccred WITH 0
REPL ALL RULDEB WITH 0, RULCRED WITH 0
REPL ALL precdeb WITH totdeb, preccred WITH totcred
ENDIF
DO REFBALANTA_ANA
*DO VERDIFBAL_ANA
DO verif_balana
DO CALCULEAZABALANTA_ANA
ENDIF
UNLOCK IN BALANA
RETURN
*______________________________________________________
PROCEDURE REFCasaVal && REFVALCASA
LOCAL ap,lp,D
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
USE &dateA\casvnume IN 0 SHARED ALIAS casvnumeP
IF TYPE('casvnumep.precdeb') # 'U'
SELECT nume_5, numeval, ;
precdeb + incasari as precdeb, preccred + plati as preccred, ;
precvaldeb + incasval as precvaldeb, precvalcre + platival as precvalcre ;
FROM casvnumeP ;
INTO CURSOR tprec ORDER BY nume_5
ELSE
SELECT nume_5, numeval, incasari as precdeb, plati as preccred, incasval as precvaldeb, platival as precvalcre ;
FROM casvnumeP ;
INTO CURSOR tprec ORDER BY nume_5
ENDIF
SELE casaval
IF FLOCK()
DELETE ALL
m.DATAIREG={}
m.COD=-1
m.INCASARI=0
m.PLATI=0
m.incasval=0
m.platival=0
m.scd=''
m.scc=''
m.CURSSCHIMB=0
m.CURSBNR=0
SELE tprec
SCAN
SCATTER MEMVAR
m.INCASARI = M.precdeb-M.preccred
m.PLATI = 0
m.INCASval = M.precvaldeb-M.precvalcre
m.PLATIval = 0
m.casa = m.nume_5
SELE casaval
GOTO BOTTOM
APPE BLANK
GATHER MEMVAR
SELE tprec
ENDSCAN
UNLOCK
ENDIF
SELECT cod, dataireg, nume_5 as casa, scd, scc, suma_3 as cursschimb, nume_4 as numeval, ;
IIF(scd = '5314', suma, 00000000000000) as incasari, ;
IIF(scc = '5314', suma, 00000000000000) as plati, ;
IIF(scd = '5314', suma_2, 000000000000.00) as incasval, ;
IIF(scc = '5314', suma_2, 000000000000.00) as platival ;
FROM act WHERE scd = '5314' OR scc = '5314' ;
INTO CURSOR tact
SELECT casaval
APPEND FROM DBF('tact')
USE IN tact
SELECT casvnume
IF FLOCK()
DELE ALL
APPEND FROM DBF('tprec')
SELECT nume_5 as casaval, nume_4 as numeval, ;
sum(IIF(scd = '5314', suma, 00000000000000)) as incasari, ;
sum(IIF(scc = '5314', suma, 00000000000000)) as plati, ;
sum(IIF(scd = '5314', suma_2, 000000000000.00)) as incasval, ;
sum(IIF(scc = '5314', suma_2, 000000000000.00)) as platival ;
FROM act WHERE scd = '5314' OR scc = '5314' ;
INTO CURSOR tact;
GROUP BY 1
SELECT tact
SCAN
SCATTER NAME ot
SELECT casvnume
LOCATE FOR ALLTRIM(nume_5) = ALLTRIM(ot.casaval)
IF !FOUND()
APPEND blank
REPLACE nume_5 WITH ot.casaval
REPLACE numeval WITH ot.numeval
ENDIF
REPLACE incasari WITH incasari + ot.incasari, plati WITH plati + ot.plati
REPLACE incasval WITH incasval + ot.incasval, platival WITH platival + ot.platival
SELECT tact
ENDSCAN
UNLOCK
ENDIF
IF USED('tact')
USE IN tact
ENDIF
USE IN tprec
USE IN casvnumeP
*!* SELE CASAVAL
*!* SET ORDER TO TAG COD
*!* IF FLOCK()
*!* DELE ALL
*!* SELE CASVNUME
*!* USE
*!* IF !FILE('&DATEA\CASVNUME.DBF')
*!* COPY FILE &dirgen\_alfa\an0000\date00\CASVNUME.* TO &dateA\CASVNUME.*
*!* ENDIF
*!* SELE 0
*!* USE &dateA\CASVNUME
*!* m.DATAIREG={}
*!* m.COD=-1
*!* m.INCASARI=0
*!* m.PLATI=0
*!* m.incasval=0
*!* m.platival=0
*!* m.scd=''
*!* m.scc=''
*!* m.CURSSCHIMB=0
*!* m.CURSBNR=0
*!* &&REFACERE SOLDURI IN CASAVAL DUPA CASVNUME DIN LUNA PRECEDENTA=======================
*!* SELE CASVNUME
*!* SCAN
*!* SCATTER MEMVAR
*!* m.CASA=m.nume_5
*!* SELE CASAVAL
*!* APPE BLANK
*!* m.INCASARI=M.INCASARI-M.PLATI
*!* m.incasval=M.incasval-M.platival
*!* m.PLATI=0
*!* m.platival=0
*!* GATHER MEMVAR
*!* SELE CASVNUME
*!* ENDSCAN
*!* SELE CASVNUME
*!* USE
*!* &&REFACERE SUME IN CASAVAL DUPA ACT======================
*!* &&IN DEB======================
*!* SELE act
*!* SCAN FOR scd='5314'
*!* SCATTER MEMVAR
*!* SELE CASAVAL
*!* m.CASA=M.nume_5
*!* m.INCASARI=M.suma
*!* m.incasval=M.suma_2
*!* m.CURSSCHIMB=M.SUMA_3
*!* m.SBNR=SUBSTR(M.EXPLICATIA,8,14)
*!* m.CURSBNR=VAL(M.SBNR)
*!* m.PLATI=0
*!* m.platival=0
*!* m.NUMEVAL=m.nume_4
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN&&
*!* &&IN CRED=======================
*!* SELE act
*!* SCAN FOR scc='5314'
*!* SCATTER MEMVAR
*!* SELE CASAVAL
*!* m.CASA=M.nume_5
*!* m.PLATI=M.suma
*!* m.platival=M.suma_2
*!* m.CURSSCHIMB=M.SUMA_3
*!* m.SBNR=SUBSTR(M.EXPLICATIA,8,14)
*!* m.CURSBNR=VAL(M.SBNR)
*!* m.INCASARI=0
*!* m.incasval=0
*!* m.NUMEVAL=m.nume_4
*!* APPE BLANK
*!* GATHER MEMVAR
*!* SELE act
*!* ENDSCAN
*!* ENDIF
*!* &&REFACERE CASVNUME DUPA CASAVAL===================
*!* SELE 0
*!* USE &DATE\CASVNUME
*!* &&& exclusive
*!* &&&zap
*!* IF FLOCK()
*!* DELE ALL
*!* &&NUMELE CASELOR===========
*!* SELE CASAVAL
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE CASVNUME
*!* LOCA FOR nume_5=M.CASA
*!* IF NOT FOUND()
*!* GOTO BOTTOM
*!* APPE BLANK
*!* REPL nume_5 WITH M.CASA
*!* ENDIF
*!* REPL NUMEVAL WITH m.NUMEVAL
*!* SELE CASAVAL
*!* ENDSCAN
*!* &&VALORILE===============
*!* SELE CASVNUME
*!* SCAN
*!* SCATTER MEMVAR
*!* SELE CASAVAL
*!* SUM INCASARI,PLATI,incasval,platival TO M.INCASARI,M.PLATI,M.incasval,M.platival FOR ALLT(CASA)=ALLT(M.nume_5)
*!* IF EMPTY(ALLT(M.nume_5))
*!* SUM INCASARI,PLATI,incasval,platival TO M.INCASARI,M.PLATI,M.incasval,M.platival FOR EMPTY(ALLT(CASA))
*!* ENDIF
*!* SELE CASVNUME
*!* REPL INCASARI WITH M.INCASARI
*!* REPL PLATI WITH M.PLATI
*!* REPL incasval WITH M.incasval
*!* REPL platival WITH M.platival
*!* SELE CASVNUME
*!* ENDSCAN
*!* ENDIF
*!* UNLOCK IN CASAVAL
*!* UNLOCK IN CASVNUME
SELE CASAVAL
SET ORDER TO TAG DATAIREG
RETURN
***____________________________________________________
PROCEDURE CURATARE &&CURATARE INREGISTRARI STERSE
DO CURATARE1
ON ERROR
RETURN
*______________________
PROCEDURE CURATARE1
SELECT REFACERI
SCAN
LcFisier=ALLTRIM(tabel)
DO pack_fisier WITH LcFisier
SELECT REFACERI
ENDSCAN
DO pack_fisier WITH 'BALANA'
DO pack_fisier WITH 'BALANTA_PARTENER'
RETURN
*___________________________
*** INCEPUT PROCEDURA PACK_FISIER
PROCEDURE pack_fisier
PARAM numefis
SELE &numefis
USE
SELE 0
lcOldError=ON("error")
ON ERROR DO daca_ruleaza1
USE &DATE\&numefis EXCL ALIAS &numefis
PACK
SELE &numefis
USE
DO des WITH numefis
ON ERROR &lcOldError
ENDPROC
*** SFARSIT PROCEDURA PACK_FISIER
*_______________________
PROC daca_ruleaza1
DO daca_ruleaza
RETURN TO CURATARE
*_______________________
PROC daca_ruleaza
DO mesajmare WITH ' Inainte de a executa aceasta operatiune trebuie sa va asigurati ca programul nu mai ruleaza pe alte statii din retea.'+;
+SPACE(50)+'Inchideti programele CONTAFIN deschise pe toate celelalte statii si apoi reveniti.'
semafor1=.T.
RETURN
RETURN
*_________________________________________
PROCEDURE REFCumplun
LOCAL nla,nlb,ana,anb,cond,cond1
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
*cond1='(abs(totctva-achitat)>100)'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE cumplun
IF FLOCK()
SET FILTER TO
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\cumplun.dbf')
SELE cumplun
APPEND FROM &dateA\cumplun.DBF FOR (!DELETED() AND &cond1)
ELSE
SELE cumplun
APPEND FROM &datEAN\CUMPAN.DBF FOR (!DELETED() AND &cond1 AND &cond)
ENDIF
SELE cumplun
*!* &&curatare facturi cu acelasi furnizor si suma soldurilor nula
LOCAL rr
SELE cumplun
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract, acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refcump&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE act
SET FILTER TO scc='401 ' &&Or (SCC='4428' And SCD='4426')
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,nrord,ASCC MEMV
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE cumplun
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCC
IF !FOUND()
SELE cumplun
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE acont WITH m.ASCC
ENDIF
SELE act
ENDSCAN
*******
SELE cumplun
SET FILTER TO !&cond
SELE cumplun
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
DO CASE
CASE scd='4426' AND scc#'4428' AND ASCC= m.acont && regularizari fact 408
m.tvaM=M.tvaM+suma
m.sumaval=m.sumaval+suma_2
CASE scd#'4426' AND ASCC= m.acont
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
m.sumaval=m.sumaval+suma_2
CASE scd='635 '
*M.TX=.T.
m.neimpozab=m.neimpozab+suma
m.totftvaM=m.totftvaM-suma
m.sumaval=m.sumaval+suma_2
ENDCASE
ENDSCAN
***********
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE cumplun
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
*--------------------------------------------------
*!* SELE ACT
*!* SCAN FOR SCD='408 '
*!* SCAT MEMV
*!* SELE cumplun
*!* LOCA FOR nract=m.nract AND NUME=m.NUME
*!* *REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
*!* REPL totftvaM WITH ROUND(tvaM/(m.ctvam-1),0)
*!* REPL totctva WITH totftvaM+tvaM+neimpozab
*!* SELE ACT
*!* ENDSCAN
*---------------------------------------------------
SELE act
SET FILTER TO
SCAN FOR scc='767 '
SCAT MEMV
SELE cumplun
LOCA FOR nract=m.nract AND NUME=m.NUME AND acont=m.ASCD
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
IF FOUND()
REPL totftvaM WITH totftvaM-m.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
ENDIF
SELE act
ENDSCAN
******taxa drum******
SELE act
SCAN FOR scd='6022' AND LEFT(EXPLICATIA,4)='TAXA' AND neimpozab=0 AND suma>0
SCAT MEMV
SELE cumplun
LOCA FOR nract=m.nract AND NUME=m.NUME
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
REPL totftvaM WITH totftvaM-M.suma
REPL neimpozab WITH M.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
SELE act
ENDSCAN
*************BILETE MASA*********
SELE act
SCAN FOR scd='5328' AND LEFT(EXPLICATIA,7)='TICHETE' AND neimpozab=0
SCAT MEMV
SELE cumplun
LOCA FOR nract=m.nract AND NUME=m.NUME
* BROWSE
* SELECT cumplun
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
REPL totftvaM WITH totftvaM-M.suma
REPL neimpozab WITH M.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
* BROWSE
SELE act
ENDSCAN
*************
SELE act
SET FILTER TO
*SCAN FOR SCc='4428' and LEFT(scd,3)='371'
*SCAT MEMV
*SELE cumplun
*loca for nract=m.nract and nume=m.nume
*if found()
*m.neimpozab=totftvam*(-1)
*REPL TOTFTVAM WITH totftvam+m.neimpozab
*REPL neimpozab WITH m.neimpozab
*REPL TOTCTVA WITH TOTFTVAM+TVAM+neimpozab
*endif
*SELE act
*ENDSCAN
*endif
SELE cumplun
SET FILTER TO
GO TOP
*BROW
&&ca in rc1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE cumplun
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG PERECHE
*Set Filter To (ACT.SCD='401 ' Or ACT.SCD='404 ') And PERECHE#0
SET FILTER TO act.scd='401 ' AND PERECHE#0
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE PERECHE=M.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND ASCD=m.ASCD
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE cumplun
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND acont=m.ASCD
IF !FOUND()
LOCATE FOR nract=m.PERECHE AND ALLT(NUME)=ALLT(M.NUME)
ENDIF
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH m.achitatval+achitatval
ENDIF
*SET FILTER TO ACHITAT=0
SELE act
ENDDO
ENDIF
UNLOCK IN cumplun
SELE cumplun
SET FILTER TO
SELECT act
SET FILTER TO
RETURN
*------------------------------------------------------------------------------------
PROCEDURE REFvanzlun
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
*** actualizez act cu pereche si pereche2 daca am optiunea refac=.T.
DO refac_act WITH "411" IN actualizare_act.PRG
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE vanzlun
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\vanzlun.dbf')
SELE vanzlun
APPEND FROM &dateA\vanzlun.DBF FOR (!DELETED() AND &cond1)
ELSE
SELE vanzlun
APPEND FROM &datEAN\VANZAN.DBF FOR (!DELETED() AND &cond1 AND &cond)
ENDIF
*!* &&curatare facturi cu acelasi client si suma soldurilor nula
LOCAL rr
SELE vanzlun
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract, acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
DELETE FOR nl='*'
&& id_set = 90501 diferente de curs provenite din actualizarea facturilor la 31.12.NN
SELECT COUNT(COD) AS nr,COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,EXPLICATIA AS nume_4, ASCD AS acont,nrord,nresp, ;
COD_FISCAL,SUMA_3 AS CURSSCHIMB,nume_4 AS NUMEVAL,scd,scc ;
FROM act ;
WHERE (LEFT(scd,3)='411' AND scd<>'4118') AND !(LEFT(scd,3)='411' AND scc='4427') AND id_set != 90501 AND ;
NUME+'/'+DTOC(dataact)+'/'+STR(nract,14)+'/'+ASCD NOT IN (SELE NUME+'/'+DTOC(dataact)+'/'+STR(nract,14)+'/'+ACONT FROM vanzlun) ;
INTO CURSOR tact ;
GROUP BY NUME,dataact,nract,ASCD
lnrec = _TALLY
SELECT vanzlun
APPEND FROM DBF('tact')
USE IN tact
*************************************************************************************************
lcfis = ALLTRIM(loc) + [\] + ALLTRIM(nfscurt) + [\tempo\tact.dbf]
SELE NUME,nract,dataact,ASCD, ;
SUM(suma) AS totctva, SUM(suma_2) AS sumaval ;
FROM act ;
WHERE LEFT(scd,3)='411' AND scd<>'4118' ;
INTO TABLE (lcfis) ;
GROUP BY NUME,dataact,nract,ASCD ;
ORDER BY NUME,dataact,nract,ASCD
SELECT tact
INDEX ON NUME+[\]+DTOC(dataact)+[\]+STR(nract)+[\]+ASCD TAG ordine
SET ORDER TO ordine
SELECT vanzlun
SET FILTER TO !&cond
SCAN
lcFactura = NUME+[\]+DTOC(dataact)+[\]+STR(nract)+[\]+acont
lnSumaVal=sumaval
lnTotctva = totctva
SELECT tact
IF SEEK(lcFactura)
lnTotctva = lnTotctva + totctva
lnSumaVal = lnSumaVal + sumaval
SELECT vanzlun
REPL totctva WITH lnTotctva, sumaval WITH lnSumaVal
ENDIF
SELECT vanzlun
ENDSCAN
USE IN tact
*************************************************************************************************
SELE act
SET FILTER TO
SCAN FOR INLIST(LEFT(scd,3),'667','622') AND LEFT(scc,3)='411' && 622 la 27 august 2004 Marius (Conpress - comision agent vanzare)
SCAT MEMV
SELE vanzlun
LOCA FOR nract=m.nract AND NUME=m.NUME AND acont=m.ASCC
IF FOUND()
REPLACE totctva WITH totctva - m.suma
ENDIF
SELE act
ENDSCAN
lModifAct=.T.
********
SELE vanzlun
SET FILTER TO
REPL ALL achitat WITH 0 FOR !&cond
&& id_set = 90501 diferente de curs provenite din actualizarea facturilor la 31.12.NN
SELECT nract, NUME, ASCC AS acont, pereche2, ;
SUM(suma) AS achitat, SUM(suma_2) AS achitatval ;
FROM act WHERE LEFT(scc,3)='411' AND scc<>'4118' AND pereche2#0 AND id_set != 90501;
GROUP BY pereche2, NUME, ASCC ;
INTO CURSOR t411
SELECT t411
SCAN
SCATTER NAME o411
SELECT vanzlun
LOCATE FOR nract=o411.pereche2 AND ALLT(NUME)=ALLTRIM(o411.NUME) AND acont=o411.acont
IF !FOUND()
LOCATE FOR nract=o411.pereche2 AND ALLTRIM(NUME)=ALLTRIM(o411.NUME)
ENDIF
IF FOUND()
REPLACE achitat WITH achitat + o411.achitat
REPLACE achitatval WITH achitatval + o411.achitatval
ENDIF
SELECT t411
ENDSCAN
RELEASE o411
USE IN t411
*** actualizarea soldurilor facturilor in valuta la 31.12.NN
SELECT nract, NUME, IIF(LEFT(scd,3)='411',ASCD,ASCC) AS acont, pereche2, ;
IIF(LEFT(scd,3)='411',suma,(-1)*suma) AS diferenta, SUMA_3 AS CURSSCHIMB ;
FROM act WHERE (LEFT(scc,3)='411' OR LEFT(scd,3)='411') AND scc<>'4118' AND pereche2#0 AND id_set = 90501;
INTO CURSOR tactualizare
SELECT tactualizare
SCAN
SCATTER NAME lo501
SELECT vanzlun
LOCATE FOR nract = lo501.pereche2 AND ALLT(NUME)=ALLTRIM(lo501.NUME) AND acont=lo501.acont
IF FOUND()
REPLACE totctva WITH totctva + lo501.diferenta, CURSSCHIMB WITH lo501.CURSSCHIMB
ENDIF
SELECT tactualizare
ENDSCAN
RELEASE lo501
USE IN tactualizare
SELE act
SET FILT TO
*******
&&pt regularizare clienti creditori
&& and id_set#10421
SELE DISTINCT COD,pereche2 FROM &DATE\act WHERE scd='419 ' AND LEFT(scc,3)='411' INTO CURSOR c419 ORDER BY COD &&pt regularizare clienti creditori
SELE act
SET FILT TO
SELE c419
SCAN
SCAT FIEL COD,pereche2 MEMV
SELE act
LOCA FOR COD=m.COD AND pereche2=m.pereche2 AND LEFT(scd,3)='411' AND scd#'4118' AND scc='4427'
IF !FOUND()
LOOP
ENDIF
SCAT MEMV
SELE vanzlun
LOCA FOR NUME=m.NUME AND nract=m.pereche2 AND acont=m.ASCD
IF !FOUND()
LOCA FOR NUME=m.NUME AND nract=m.pereche2
ENDIF
IF FOUND()
REPL achitat WITH achitat+ABS(m.suma)
ENDIF
SELE c419
ENDSCAN
USE IN c419
&&pt regularizare clienti creditori
ENDIF
UNLOCK IN vanzlun
SELE vanzlun
SET FILTER TO
RETURN
*_________________________________________
PROCEDURE REFobinvent
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SELECT rull
SCAN FOR scd = '8039' AND EMPTY(nresp)
lnR = RECNO()
lnC = COD
LOCATE FOR COD = lnC AND !EMPTY(nresp)
lcResp = nresp
IF FOUND()
GOTO lnR
REPLACE nresp WITH lcResp
ELSE
GOTO lnR
ENDIF
SELECT rull
ENDSCAN
SELE obinvent
IF FLOCK()
DELE ALL
APPEND FROM &DATE\rull FOR scd = '8039'
ENDIF
UNLOCK IN obinvent
SELE rull
SET FILTER TO
SELE STOC_obinv
SET FILTER TO
&&refacere stoc obiecte de inventar aflate in folosinta
lcfis = dateA+'\stoc_obinv.Dbf'
lcStoc = dateA+'\stoc.Dbf'
IF FILE(lcfis)
COPY FILE &dateA\STOC_obinv.* TO &loc\&nfscurt\tempo\inloc.*
USE &loc\&nfscurt\tempo\inloc IN 0 ALIAS inloc EXCL
ELSE
COPY FILE &dirgen\_alfa\an0000\date00\STOC_obinv.* TO &loc\&nfscurt\tempo\inloc.*
USE &loc\&nfscurt\tempo\inloc IN 0 ALIAS inloc EXCL
SELECT inloc
APPEND FROM &lcStoc FOR scd = '8039'
ENDIF
SELECT inloc
REPL ALL cants WITH cants+CANT-CANTE
DELE ALL FOR cants=0
PACK
REPL ALL CANT WITH 0, CANTE WITH 0
SELECT inloc
INDEX ON STR(PRET,14,2)+ nresp+ CODMAT + DENUMIRE TAG achi OF &loc\&nfscurt\tempo\inloc
SELECT rull
SCAN FOR scd = '8039'
SCATTER NAME orull
SELECT inloc
SEEK STR(orull.PRET,14,2)+ orull.nresp+ orull.CODMAT+orull.DENUMIRE
*LOCATE FOR GEST = orull.gest AND PRET = orull.pret AND CODMAT = orull.codmat AND DENUMIRE = orull.denumire AND nresp = orull.nresp
IF FOUND()
IF FLOCK()
REPLACE CANT WITH CANT + orull.CANT, CANTE WITH CANTE + orull.CANTE, DATAOUT WITH orull.DATAOUT
ENDIF
UNLOCK
ELSE
APPEND BLANK
GATHER NAME orull
ENDIF
ENDSCAN
SELECT inloc
ALTER TABLE inloc ADD COLUMN detoate c(175)
SET FILTER TO
INDEX ON detoate TAG detoate OF &loc\&nfscurt\tempo\inloc
SET ORDER TO TAG detoate
REPLACE ALL detoate WITH STR(PRET,14,2)+ nresp+ CODMAT+DENUMIRE
SELECT inloc
SET FILTER TO
TOTAL TO &loc\&nfscurt\tempo\inloctot ON detoate FIELDS CANT,CANTE,cants
USE &loc\&nfscurt\tempo\inloctot IN 0 ALIAS inloctot
SELECT STOC_obinv
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\inloctot
ENDIF
UNLOCK
USE IN inloc
USE IN inloctot
SELECT STOC_obinv
SET ORDER TO TAG DENUMIRE
RETURN
*_________________________________________
PROCEDURE REFrespons
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SELE respons
IF FLOCK()
DELE ALL
APPEND FROM &dateA\respons.DBF FOR !DELETED() AND !EMPTY(nume_2)
SELE DISTINCT act.nresp FROM act INTO CURSOR ttt
SELE ttt
SCAN
SCAT MEMV
SELE respons
LOCA FOR ALLT(m.nresp)=ALLT(nume_2)
IF !FOUND()
APPE BLAN
REPL nume_2 WITH m.nresp
ENDIF
SELE ttt
ENDSCAN
ENDIF
UNLOCK IN respons
RETURN
*-----------------------------------------
PROCEDURE refavans409
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "409" IN actualizare_act.PRG
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
IF !FILE('&dateA\avans409.dbf')
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SELE avans409
IF FLOCK()
DELE ALL
APPEND FROM &dateA\avans409.DBF FOR achitat<>facturat OR achitatval<>factval
SELE nract,dataact,COD,NUME,fdoc,suma AS achitat,suma_2 AS achitatval,SUMA_3 AS CURSSCHIMB,;
nume_4 AS NUMEVAL,DATAIREG,datascad,m.nl AS nl,m.an AS an, scd as cont, ASCD AS acont ;
FROM act WHERE LEFT(scd, 3)='409' INTO CURSOR aaa ORDER BY dataact
SELE avans409
APPE FROM DBF('aaa')
SELE act
SCAN FOR LEFT(scc,3) = '409'
SCAT MEMV
SELE avans409
LOCA FOR NUME=m.NUME AND nract=m.pereche2 AND cont = m.scc and acont=m.ASCC &&And dataact=DAT
IF !FOUND()
LOCA FOR NUME=m.NUME AND nract=m.pereche2
ENDIF
IF FOUND()
REPL facturat WITH facturat+m.suma
REPL factval WITH factval+m.suma_2
ENDIF
SELE act
ENDSCAN
ENDIF
UNLOCK IN avans409
RETURN
*-----------------------------------------
PROCEDURE refavans419
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "419" IN actualizare_act.PRG
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
IF !FILE('&dateA\avans419.dbf')
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SELE avans419
IF FLOCK()
DELE ALL
APPEND FROM &dateA\avans419.DBF FOR achitat<>facturat OR achitatval<>factval
SELE nract,dataact,COD,NUME,fdoc,suma AS achitat,suma_2 AS achitatval,SUMA_3 AS CURSSCHIMB,;
nume_4 AS NUMEVAL,DATAIREG,datascad,m.nl AS nl,m.an AS an, ASCC AS acont, scc as cont ;
FROM act WHERE LEFT(scc, 3) = '419' INTO CURSOR aaa ORDER BY dataact
SELE avans419
APPE FROM DBF('aaa')
SELE act
SCAN FOR ALLTRIM(scd)='419'
SCAT MEMV
SELE avans419
LOCA FOR NUME=m.NUME AND nract=m.PERECHE AND acont=m.ASCD &&And dataact=DAT
IF !FOUND()
LOCA FOR NUME=m.NUME AND nract=m.PERECHE
ENDIF
IF FOUND()
REPL facturat WITH facturat+m.suma
REPL factval WITH factval+m.suma_2
ENDIF
SELE act
ENDSCAN
ENDIF
UNLOCK IN avans419
RETURN
*--------------------------------------------------------------------------------------
PROCEDURE completeaza_analitic
SET SAFETY OFF
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
IF !FILE('&datea\analitic.dbf')
COPY FILE _alfa\an0000\date00\analitic.* TO &dateA\analitic.*
ENDIF
WAIT WINDOW 'Se calculeaza precedentele conturilor bifate...' NOWAIT
&& precedente pentru toate conturile recalculabile-------------------
USE &dateA\analitic.DBF IN 0 ALIAS analitica
SELECT analitica
*BROW
IF existacimp('analitica','totdeb')
SELECT CONT,NUME,totdeb AS precdeb,totcred AS preccred FROM analitica ;
WHERE CONT IN (SELECT CONT FROM f_analitic WHERE f_analitic.ales);
INTO CURSOR rrr
ELSE
SELECT CONT,NUME,DEB AS precdeb,cred AS preccred FROM analitica INTO CURSOR rrr
ENDIF
USE IN analitica
SELECT rrr
*BROW
WAIT WINDOW 'Se readuc precedentele conturilor NEbifate...' NOWAIT
* conturi nerecalculabile------------------------
SELECT * FROM analitic ;
WHERE CONT NOT IN (SELECT CONT FROM f_analitic WHERE f_analitic.ales);
INTO CURSOR sss
*aduc in ana--------------------
SELE analitic
COPY STRUCTURE TO &loc\&nfscurt\tempo\ana WITH CDX
USE &loc\&nfscurt\tempo\ana IN 0 EXCL ALIAS ana ORDER TAG cn
SELE ana
APPEND FROM DBF('rrr')
APPEND FROM DBF('sss')
USE IN rrr
USE IN sss
WAIT WINDOW 'Se calculeaza rulajele...' NOWAIT
SELECT * FROM act WHERE ;
scd IN (SELECT CONT FROM f_analitic WHERE f_analitic.ales) OR ;
scc IN (SELECT CONT FROM f_analitic WHERE f_analitic.ales);
INTO CURSOR aaa
SELECT A.*,b.NUME AS numescd FROM aaa A FULL JOIN f_analitic b;
ON A.scd=b.CONT AND b.ales INTO CURSOR bbb
SELECT A.*,b.NUME AS numescc FROM bbb A FULL JOIN f_analitic b;
ON A.scc=b.CONT AND b.ales INTO CURSOR actmic ORDER BY DATAIREG
SELECT actmic
*brow
*refacere ana---
SELE actmic
*!* Set Filter To
*!* Set Order To DATAIREG
SCAN FOR !ISNULL(COD)
SCAT MEMV
IF !ISNULL(numescd)
T='m.nume='+numescd
&T
* WAIT WINDOW t
* WAIT WINDOW m.nume
WAIT WINDOW 'Data: '+DTOC(DATAIREG) NOWAIT
SELE ana
SEEK m.scd+m.NUME
IF FOUND()
REPL DEB WITH DEB+m.suma
ELSE
m.cont=m.scd
m.DEB=m.suma
m.cred=0
APPE BLAN
GATH FIEL CONT,DEB,NUME MEMV
ENDIF
ENDIF
SELE actmic
IF !ISNULL(numescc)
T='m.nume='+numescc
&T
SELE ana
SEEK m.scc+m.NUME
IF FOUND()
REPL cred WITH cred+m.suma
ELSE
m.cont=m.scc
m.cred=m.suma
m.DEB=0
APPE BLAN
GATH FIEL CONT,cred,NUME MEMV
ENDIF
ENDIF
SELE actmic
ENDSCAN
SELE ana
DELE FOR EMPTY(CONT)
IF existacimp('ana','totdeb')
REPLACE ALL totdeb WITH DEB+precdeb,totcred WITH preccred+cred
ENDIF
PACK
*din ana in analitic-----
WAIT WINDOW 'Se salveaza datele...' NOWAIT
DO suprapune WITH 'analitic','ana'
SELECT analitic
SET ORDER TO TAG NUME
USE IN ana
RETURN
*-------------------------------------------------------------------------------
PROCEDURE suprapune
PARAMETERS DEST,sursa
LOCAL R
R=0
**golire
SELECT &DEST
SCATTER MEMVAR BLANK
SCAN
GATHER MEMV
ENDSCAN
SELECT &DEST
SET ORDER TO
ON ERROR APPE BLAN
GOTO 1
*BROWSE TITLE 'DEST'
IF FLOCK()
RECALL ALL
SELECT &sursa
SET ORDER TO
*BROWSE TITLE 'SURSA'
SCAN
R=RECNO()
SCATTER MEMV
SELECT &DEST
*SKIP
*!* If Eof()
*!* Append Blank
*!* ELSE
ON ERROR APPE BLAN
GOTO R
*!* ENDIF
GATHER MEMV
SELECT &sursa
ENDSCAN
SELECT &DEST
R=RECNO()
DELETE FOR RECNO()>R
ENDIF
UNLOCK IN &DEST
RETURN
*--------------------------------------------------------------------------------------------------------------
FUNCTION se_reface
LOCAL SE,PRIMALUNA,ACTGOL
SE=.T.
STORE .F. TO PRIMALUNA,ACTGOL
&&E PRIMA LUNA?
SELECT calendar
GO TOP
IF an=M.an AND nl=M.nl
PRIMALUNA=.T.
ENDIF
SELECT * FROM act INTO CURSOR bbb
IF _TALLY<3
ACTGOL=.T.
ENDIF
buton=1
IF PRIMALUNA AND !ACTGOL
OTM=CREA('TEXTMARER')
OTM.label2.CAPTION='Aceasta este prima luna deschisa. Prin refacere se sterg toate acele date de initializare inscrise'+;
' manual direct in fisiere si carora nu le corespund inregistrari in registrul jurnal. Doriti ca totusi sa execute refacerea?'
OTM.SHOW(1)
IF buton=2
RETURN .F.
ENDIF
ENDIF
SE=!(PRIMALUNA AND ACTGOL)
IF !SE
DO mesaj WITH 'Aceasta este prima luna iar registrul jurnal este gol.','Refacerea nu se executa!'
ENDIF
RETURN SE
*_________________________________________
PROCEDURE REFcredlun
LOCAL nla,nlb,ana,anb,cond,cond1
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(pcan) or (year(dataireg)=val(pcan) and month(dataireg)<val(pcnl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE credlun
IF FLOCK()
SET FILTER TO
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\credlun.dbf')
SELE credlun
APPEND FROM &dateA\credlun.DBF FOR (!DELETED() AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul credlun.dbf in luna anterioara',''
*!* Sele cumplun
*!* Append From &datEAN\CUMPAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
SELE credlun
*BROW
*!* &&curatare facturi cu acelasi creditor si suma soldurilor nula
LOCAL rr
SELE credlun
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract, acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
*!* \\curatare facturi cu acelasi creditor si suma soldurilor nula
SELECT IIF(INLIST(LEFT(scd,3),'411', '451') AND !EMPTY(nume_2), nume_2, NUME) AS NUME, ASCC AS acont, fdoc, dataact, DATAIREG, datascad, nract, COD, nume_4 AS NUMEVAL, SUMA_3 AS CURSSCHIMB, EXPLICATIA AS nume_4, ;
SUM(suma) AS totctva, SUM(suma_2) AS sumaval ;
FROM act WHERE LEFT(scc,3) = '462' ;
GROUP BY 1, dataact, nract, 2 ;
INTO CURSOR t462
SELE credlun
SET FILTER TO !&cond
SELE t462
SCAN
SCATTER NAME ot462
STORE 0 TO lns1, lns2
SELECT credlun
LOCA FOR NUME = ot462.NUME AND dataact=ot462.dataact AND nract=ot462.nract AND acont=ot462.acont
IF FOUND()
SELECT credlun
REPLACE totctva WITH ot462.totctva ,sumaval WITH ot462.sumaval
ELSE
SELECT credlun
APPEND BLANK
GATHER NAME ot462
ENDIF
SELECT t462
ENDSCAN
USE IN t462
SELE credlun
SET FILTER TO
GO TOP
SELECT NUME, ASCD, PERECHE, SUM(suma) AS achitat, SUM(suma_2) AS achitatval, dataact, DATAIREG ;
FROM act ;
WHERE LEFT(scd, 3) = '462' ;
GROUP BY NUME, PERECHE, ASCD ;
INTO CURSOR tt462 ORDER BY NUME, ASCD
SELECT tt462
SCAN
SCATTER NAME o462
SELECT credlun
LOCA FOR nract=o462.PERECHE AND ALLTR(NUME)=ALLT(o462.NUME) AND acont=o462.ASCD
IF !FOUND()
LOCATE FOR nract=o462.PERECHE AND ALLT(NUME)=ALLT(o462.NUME)
ENDIF
IF !FOUND()
APPEND BLANK
REPLACE NUME WITH o462.NUME, acont WITH o462.ASCD, nract WITH o462.PERECHE, dataact WITH o462.dataact
ENDIF
REPL achitat WITH achitat + o462.achitat
REPL achitatval WITH achitatval + o462.achitatval
SELECT tt462
ENDSCAN
ENDIF
UNLOCK IN credlun
SELE credlun
SET FILTER TO
SELECT act
SET FILTER TO
RETURN
*----------------------------------------------------------------------------------------------
PROCEDURE refdeblun
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "461" IN actualizare_act.PRG
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE deblun
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\deblun.dbf')
SELE deblun
APPEND FROM &dateA\deblun.DBF FOR (!DELETED() AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul deblun.dbf in luna anterioara',''
*!* Sele vanzlun
*!* Append From &datEAN\VANZAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
&&curatare facturi cu acelasi client si suma soldurilor nula
*!* Sele deblun
*!* Dele For nl='*'
*!* Set Order To Tag NUME
*!* Total To &loc\&nfscurt\tempo\tttt On NUME Fields totctva,achitat
*!* Use &loc\&nfscurt\tempo\tttt In 0 Alias tttt
*!* Sele tttt
*!* Scan For totctva=achitat
*!* Scat Fiel NUME Memv
*!* Sele deblun
*!* Repl All nl With '*' For NUME=m.NUME
*!* Sele tttt
*!* Endscan
*!* Use In tttt
*!* Sele deblun
*!* Set Order To Tag DATAIREG
*!* &&curatare facturi cu acelasi debitor si suma soldurilor nula
LOCAL rr
SELE deblun
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract,acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE act
SET FILTER TO LEFT(scd,3)='461' &&Or (SCD='4428' And SCC='4427') Or (SCD='635 ' And SCC='4427')
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,scd,scc,nrord,ASCD MEMV
lc_explic=m.EXPLICATIA
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE deblun
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCD
IF !FOUND() AND !(LEFT(m.scd,3)='461' AND m.scc='4427')
SELE deblun
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE nume_4 WITH lc_explic
REPLACE acont WITH m.ASCD
ENDIF
SELE act
ENDSCAN
SELE deblun
SET FILTER TO !&cond
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND ASCD=m.acont
DO CASE
CASE scc='4427'
xx=m.tvaM
m.tvaM=M.tvaM+suma
CASE scc#'4427'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
ENDCASE
m.sumaval=m.sumaval+suma_2
ENDSCAN
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE deblun
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
*********
SELE act
SET FILTER TO
SCAN FOR scd='667 ' AND LEFT(scc,3)='461'
SCAT MEMV
SELE deblun
LOCA FOR nract=m.nract AND NUME=m.NUME AND acont=m.ASCC
IF FOUND()
REPL totftvaM WITH totftvaM-m.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
ENDIF
SELE act
ENDSCAN
SELE deblun
SET FILTER TO
&&ca in rv1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE deblun
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG pereche2
SET FILTER TO LEFT(act.scc,3)='461' AND pereche2#0
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE pereche2=M.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND ASCC=m.ASCC
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE deblun
LOCA FOR nract=m.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND acont=m.ASCC
IF !FOUND()
LOCATE FOR nract=m.pereche2 AND ALLT(NUME)=ALLT(M.NUME)
ENDIF
* IF FOUND() AND !(M.ACHITAT-TOTCTVA>10000)
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH achitatval+m.achitatval
ENDIF
SELE act
ENDDO
ENDIF
SELE act
SET FILT TO
UNLOCK IN deblun
SELE deblun
SET FILTER TO
RETURN
*----------------------------------------------------------------------------------------------
PROCEDURE refchavans
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "471" IN actualizare_act.PRG
cond='(year(dataireg)<val(pcan) or (year(dataireg)=val(pcan) and month(dataireg)<val(pcnl)))'
*cond1='(abs(totctva-achitat-repus_prec)>0)'
*!* nlb=pcnl
*!* anb=pcan
*!* dateb=calefirma+'\an'+anb+'\'+'date'+nlb
*USE &dateb\chavans.dbf IN 0 SHARED ALIAS chavans
SELE chavans
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=pcNl AND an=pcAn
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\chavans.dbf')
SELE chavans
APPEND FROM &dateA\chavans.DBF FOR !DELETED() && AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul de cheltuieli in avans','in luna anterioara !'
ENDIF
SELECT chavans
REPLACE ALL repus_prec WITH repus_prec + achitat
REPLACE ALL achitat WITH 0
DELETE ALL FOR totctva-achitat-repus_prec = 0
&& curatare facturi cu acelasi client si suma soldurilor nula
SELECT *, SUM(totctva-achitat-repus_prec) AS SOLD FROM chavans ;
INTO CURSOR tttt ;
GROUP BY NUME, dst_chlt, acont
SELECT tttt
SCAN FOR SOLD=0
SCAT FIEL NUME, dst_chlt, acont MEMV
SELECT chavans
DELETE ALL FOR NUME=m.NUME AND dst_chlt=m.dst_chlt AND acont=m.acont
SELECT tttt
ENDSCAN
USE IN tttt
&& \curatare
*!* Sele chavans
*!* Dele For nl='*'
*!* Set Order To Tag NUME
*!* Total To &loc\&nfscurt\tempo\tttt On NUME Fields totctva,achitat
*!* Use &loc\&nfscurt\tempo\tttt In 0 Alias tttt
*!* Sele tttt
*!* Scan For totctva=achitat
*!* Scat Fiel NUME, dst_chlt, acont Memv
*!* Sele chavans
*!* Repl All nl With '*' For NUME=m.NUME AND dst_chlt=m.dst_chlt AND acont=m.acont
*!* Sele tttt
*!* Endscan
*!* Use In tttt
*!* Sele chavans
* Set Order To Tag DATAIREG
*!* Local rr
*!* Sele chavans
*!* Scan For totctva-achitat<0
*!* rr=Recno()
*!* Scat Fiel NUME Memv
*!* m.SUMA=totctva-achitat
*!* Loca For totctva-achitat=-m.SUMA And NUME=m.NUME
*!* If Found()
*!* Repl nl With '*'
*!* Goto rr
*!* Repl nl With '*'
*!* Endif
*!* Goto rr
*!* Endscan
*!* Set Filter To
*!* DELETE For nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
IF USED('t471')
USE IN t471
ENDIF
SELECT COD,DATAIREG,COD_FISCAL, nract, datascad, NUME, fdoc, dataact, dst_chlt, scd, ASCD AS acont, explicatia, ;
SUM(suma) AS totctva FROM act WHERE LEFT(scd,3)='471' ;
GROUP BY NUME, dataact, nract, ASCD ;
INTO CURSOR t471
SELECT t471
SCAN
SCATTER NAME o471
SELECT chavans
LOCATE FOR NUME=o471.NUME AND dataact=o471.dataact AND nract=o471.nract AND acont=o471.acont
*!* IF !FOUND()
*!* LOCATE FOR For NUME=o471.NUME And dataact=o471.dataact And nract=o471.nract
*!* ENDIF
IF FOUND()
REPLACE totctva WITH totctva + o471.totctva
ELSE
APPEND BLANK
GATHER NAME o471
ENDIF
SELECT t471
ENDSCAN
RELEASE o471
USE IN t471
&& repunere cheltuieli in avans
SELE chavans
SET FILTER TO
* REPL ALL achitat WITH 0 FOR !&cond
SELECT COD,DATAIREG,COD_FISCAL, nract, datascad, NUME, fdoc, dataact, dst_chlt, scd, ASCC AS acont, pereche2, ;
SUM(suma) AS achitat FROM act WHERE LEFT(scc,3)='471' ;
GROUP BY pereche2, NUME, ASCC ;
INTO CURSOR t471
SELECT t471
SCAN
SCATTER NAME o471
SELECT chavans
LOCATE FOR nract=o471.pereche2 AND ALLT(NUME)=ALLTRIM(o471.NUME) AND acont=o471.acont
IF !FOUND()
LOCATE FOR nract=o471.pereche2 AND ALLTRIM(NUME)=ALLTRIM(o471.NUME)
ENDIF
IF FOUND()
REPLACE achitat WITH achitat + o471.achitat, scd WITH o471.scd
ELSE
APPEND BLANK
GATHER NAME o471
ENDIF
SELECT t471
ENDSCAN
RELEASE o471
USE IN t471
ENDIF
SELE act
SET FILT TO
UNLOCK IN chavans
SELE chavans
SET FILTER TO
m.nl=pcNl
m.an=pcAn
RETURN
*_________________________________________
PROCEDURE REFANA408
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\ana408.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'ana408.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\ana408.DBF IN 0 ALIAS ana408U
SELECT ana408U
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('ana408u.totdeb') = 'U'
SELECT NUME, COD_FISCAL, platit AS precdeb, achizit AS preccred FROM ana408U INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit , totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval
* REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('ana408u.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM ana408U INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM ana408U INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN ana408U
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '408', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '408', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '408', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '408', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '408', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('408',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t408 GROUP BY 1, 2, 3
SELECT t408
SCAN
SCATTER NAME o408
SELECT rcli
SEEK LEFT(o408.NUME,30) + o408.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o408.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o408.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o408.acont
ELSE
APPEND BLANK
GATHER NAME o408
ENDIF
ENDIF
REPLACE platit WITH platit + o408.debit, achizit WITH achizit + o408.credit, platival WITH platival + o408.valdebit, achizitval WITH achizitval + o408.valcredit
IF EMPTY(NUMEVAL)
REPLACE NUMEVAL WITH O408.NUMEVAL
ENDIF
SELECT t408
ENDSCAN
RELEASE o408
USE IN t408
SELECT rcli
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit &&, totavans WITH precavans + avans
REPLACE ALL totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval &&, TOTAVANSV WITH PRECAVANSV + AVANSVAL
SELECT ana408
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT ana408
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE REFfact408
LOCAL nla,nlb,ana,anb,cond,cond1
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE fact408
IF FLOCK()
SET FILTER TO
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\fact408.dbf')
SELE fact408
APPEND FROM &dateA\fact408.DBF FOR (!DELETED() AND &cond1)
*!* Else
*!* Sele fact408
*!* Append From &datEAN\CUMPAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
SELE fact408
&&curatare facturi cu acelasi furnizor si suma soldurilor nula
LOCAL rr
SELE fact408
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract,acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refcump&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE act
SET FILTER TO scc='408 '
*SET FILTER TO SCC='401 ' OR SCC='404 '
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,nrord,ASCC,proc_tva MEMV
* m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE fact408
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCC AND proc_tva=m.proc_tva
IF !FOUND()
SELE fact408
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE acont WITH m.ASCC
ENDIF
SELE act
ENDSCAN
*******
SELE fact408
SET FILTER TO !&cond
SELE fact408
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND ASCC=m.acont AND proc_tva=m.proc_tva
DO CASE
CASE scd='4428'
m.tvaM=M.tvaM+suma
m.sumaval=m.sumaval+suma_2
CASE scd#'4428'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
m.sumaval=m.sumaval+suma_2
*!* If SCD='635 '
*!* *M.TX=.T.
*!* m.neimpozab=m.neimpozab+SUMA &&???????????
*!* m.totftvaM=m.totftvaM-SUMA
*!* Endif
ENDCASE
ENDSCAN
***********
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE fact408
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
SELE fact408
SET FILTER TO
SELE fact408
REPL ALL achitat WITH 0 FOR !&cond
REPL ALL achitatVAL WITH 0 FOR !&cond
REPLACE ALL proc_tva WITH M.ctvam FOR EMPTY(proc_tva)
SELE act
SET ORDER TO TAG PERECHE
SET FILTER TO scd='408 ' AND PERECHE#0 &&AND SCC='4428'
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE PERECHE=M.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND ASCD=m.ASCD AND proc_tva=m.proc_tva
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE fact408
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND acont=m.ASCD AND proc_tva=m.proc_tva
IF !FOUND()
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME)
ENDIF
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH m.achitatval+achitatval
ENDIF
*SET FILTER TO ACHITAT=0
SELE act
ENDDO
ENDIF
UNLOCK IN fact408
SELE fact408
SET FILTER TO
SELECT act
SET FILTER TO
RETURN
*****************************************
PROCEDURE REFFurniz404 && REFFUR404
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\furniz404.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'furniz404.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\furniz404.DBF IN 0 ALIAS furniz404U
SELECT furniz404U
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('furniz404u.totdeb') = 'U'
SELECT NUME, COD_FISCAL, platit AS precdeb, achizit AS preccred FROM furniz404U INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit , totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval
* REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('furniz404u.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM furniz404U INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + platit) AS precdeb, SUM(preccred + achizit) AS preccred, ;
SUM(precvaldeb + platival) AS precvaldeb, SUM(precvalcre + achizitval) AS precvalcre ;
FROM furniz404U INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN furniz404U
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '404', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '404', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '404', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '404', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '404', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('404',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t404 GROUP BY 1, 2, 3
SELECT t404
SCAN
SCATTER NAME o404
SELECT rcli
SEEK LEFT(o404.NUME,30) + o404.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o404.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o404.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o404.acont
ELSE
APPEND BLANK
GATHER NAME o404
ENDIF
ENDIF
REPLACE platit WITH platit + o404.debit, achizit WITH achizit + o404.credit, platival WITH platival + o404.valdebit, achizitval WITH achizitval + o404.valcredit
SELECT t404
ENDSCAN
RELEASE o404
USE IN t404
SELECT rcli
REPLACE ALL totdeb WITH precdeb + platit, totcred WITH preccred + achizit &&, totavans WITH precavans + avans
REPLACE ALL totvaldeb WITH precvaldeb + platival, totvalcre WITH precvalcre + achizitval &&, TOTAVANSV WITH PRECAVANSV + AVANSVAL
SELECT furniz404
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
*USE IN furniz404U
SELECT furniz404
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE REFCumpLun404 && REFfact404
LOCAL nla,nlb,ana,anb,cond,cond1
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE cumplun404
IF FLOCK()
SET FILTER TO
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATEPREC
IF !BOF() AND FILE('&dateA\cumplun404.dbf')
SELE cumplun404
APPEND FROM &dateA\cumplun404.DBF FOR (!DELETED() AND &cond1)
*!* Else
*!* Sele cumplun404
*!* Append From &datEAN\CUMPAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
SELE cumplun404
*BROW
&&curatare facturi cu acelasi furnizor si suma soldurilor nula
LOCAL rr
SELE cumplun404
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract,acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refcump&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE act
SET FILTER TO scc='404 '
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,nrord,ASCC MEMV
* m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE cumplun404
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCC
IF !FOUND()
SELE cumplun404
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE acont WITH m.ASCC
ENDIF
SELE act
ENDSCAN
*******
SELE cumplun404
SET FILTER TO !&cond
SELE cumplun404
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract
DO CASE
CASE scd='4426' AND scc#'4428' AND ASCC= m.acont && regularizari fact 408
m.tvaM=M.tvaM+suma
m.sumaval=m.sumaval+suma_2
CASE scd#'4426' AND ASCC= m.acont
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
m.sumaval=m.sumaval+suma_2
CASE scd='635 '
*M.TX=.T.
m.neimpozab=m.neimpozab+suma
m.totftvaM=m.totftvaM-suma
m.sumaval=m.sumaval+suma_2
ENDCASE
ENDSCAN
***********
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE cumplun404
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
*!* Sele ACT ??????????????????????????????????????????????????
*!* Scan For SCD='404 ' &&AND SCC='4428'
*!* Scat Memv
*!* Sele cumplun404
*!* Loca For nract=m.nract And NUME=m.NUME
*!* *REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
*!* Repl totftvaM With Round(tvaM/(m.ctvam-1),0)
*!* Repl totctva With totftvaM+tvaM+neimpozab
*!* Sele ACT
*!* Endscan
SELE act
SET FILTER TO
SCAN FOR scc='767 '
SCAT MEMV
SELE cumplun404
LOCA FOR nract=m.nract AND NUME=m.NUME AND acont=m.ASCD
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
IF FOUND()
REPL totftvaM WITH totftvaM-m.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
ENDIF
SELE act
ENDSCAN
SELE act
SET FILTER TO
SELE cumplun404
SET FILTER TO
GO TOP
*BROW
&&ca in rc1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE cumplun404
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG PERECHE
SET FILTER TO scd='404 ' AND PERECHE#0 &&AND SCC='4428'
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE PERECHE=M.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND ASCD=m.ASCD
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE cumplun404
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME) AND acont=m.ASCD
IF !FOUND()
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME)
ENDIF
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH m.achitatval+achitatval
ENDIF
*SET FILTER TO ACHITAT=0
SELE act
ENDDO
ENDIF
UNLOCK IN cumplun404
SELE cumplun404
SET FILTER TO
SELECT act
SET FILTER TO
RETURN
*--------------------------------------------
PROCEDURE REFClient4118 && REFCLIncert
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\client4118.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'client4118.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\client4118.DBF IN 0 ALIAS client4118U
SELECT client4118U
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('client4118u.totdeb') = 'U'
SELECT NUME,COD_FISCAL, productie AS precdeb,incasat AS preccred FROM client4118U INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + productie, totcred WITH preccred + incasat, totvaldeb WITH precvaldeb + prodval, totvalcre WITH precvalcre + incasval
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('client4118u.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(PRECdeb + productie) AS precdeb, SUM(preccred + incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM client4118U INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(PRECdeb + productie) AS precdeb, SUM(preccred + incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM client4118U INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN client4118U
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '4118', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,4) = '4118', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,4) = '4118', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,4) = '4118', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,4) = '4118', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('4118',LEFT(scd, 4), LEFT(scc,4)) ;
INTO CURSOR t4118 GROUP BY 1, 2, 3
SELECT t4118
SCAN
SCATTER NAME o4118
SELECT rcli
SEEK LEFT(o4118.NUME,30) + o4118.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o4118.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o4118.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o4118.acont
ELSE
APPEND BLANK
GATHER NAME o4118
ENDIF
ENDIF
REPLACE productie WITH productie + o4118.debit, incasat WITH incasat + o4118.credit, prodval WITH prodval + o4118.valdebit, incasval WITH incasval + o4118.valcredit
SELECT t4118
ENDSCAN
RELEASE o4118
USE IN t4118
SELECT rcli
REPLACE ALL totdeb WITH precdeb+productie,totcred WITH preccred+incasat &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb+prodval,totvalcre WITH precvalcre+incasval &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT client4118
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT client4118
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE REFvanzlu4118
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "4118" IN actualizare_act.PRG
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE vanzlu4118
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\vanzlu4118.dbf')
SELE vanzlu4118
APPEND FROM &dateA\vanzlu4118.DBF FOR (!DELETED() AND &cond1)
*!* Else
*!* Sele vanzlu4118
*!* Append From &datEAN\VANZAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
&&curatare facturi cu acelasi client si suma soldurilor nula
*!* Sele vanzlu4118
*!* Dele For nl='*'
*!* Set Order To Tag NUME
*!* Total To &loc\&nfscurt\tempo\tttt On NUME Fields totctva,achitat
*!* Use &loc\&nfscurt\tempo\tttt In 0 Alias tttt
*!* Sele tttt
*!* Scan For totctva=achitat
*!* Scat Fiel NUME Memv
*!* Sele vanzlu4118
*!* Repl All nl With '*' For NUME=m.NUME
*!* Sele tttt
*!* Endscan
*!* Use In tttt
*!* Sele vanzlu4118
*!* Set Order To Tag DATAIREG
LOCAL rr
SELE vanzlu4118
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract,acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE act
SET FILTER TO LEFT(scd,4)='4118' &&Or (SCD='4428' And SCC='4427') Or (SCD='635 ' And SCC='4427')
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,scd,scc,nrord,ASCD MEMV
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE vanzlu4118
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCD
IF !FOUND() AND !(LEFT(m.scd,4)='4118' AND m.scc='4427') &&pt regularizare clienti creditori
SELE vanzlu4118
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE acont WITH m.ASCD
ENDIF
SELE act
ENDSCAN
SELE vanzlu4118
SET FILTER TO !&cond
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND ASCD=m.acont
DO CASE
CASE scc='4427'
xx=m.tvaM
m.tvaM=M.tvaM+suma
CASE scc#'4427'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
ENDCASE
m.sumaval=m.sumaval+suma_2
ENDSCAN
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE vanzlu4118
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
*********
SELE act
SET FILTER TO
SCAN FOR scd='665 ' AND LEFT(scc,3)='4118'
SCAT MEMV
SELE vanzlu4118
LOCA FOR nract=m.nract AND NUME=m.NUME AND acont=m.ASCC
*REPL TOTFTVAM WITH TOTFTVAM-TVAM+neimpozab
IF FOUND()
REPL totftvaM WITH totftvaM-m.suma
REPL totctva WITH totftvaM+tvaM+neimpozab
ENDIF
SELE act
ENDSCAN
*!* Sele ACT
*!* Scan For SCC='418 '
*!* Scat Memv
*!* Sele vanzlu4118
*!* Loca For nract=m.nract And NUME=m.NUME
*!* Repl totftvaM With Round(tvaM/(m.ctvam-1),0)
*!* Repl totctva With totftvaM+tvaM+neimpozab
*!* Sele ACT
*!* Endscan
********
SELE vanzlu4118
SET FILTER TO
&&ca in rv1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE vanzlu4118
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG pereche2
SET FILTER TO act.scc='4118' AND pereche2#0 && AND scd#'4427'
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE pereche2=M.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND ASCC=m.ASCC
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE vanzlu4118
LOCA FOR nract=m.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND acont=m.ASCC
IF !FOUND()
LOCA FOR nract=m.pereche2 AND ALLTR(NUME)=ALLT(M.NUME)
ENDIF
* IF FOUND() AND !(M.ACHITAT-TOTCTVA>10000)
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH achitatval+m.achitatval
ENDIF
* SET FILTER TO ACHITAT=0
SELE act
ENDDO
ENDIF
UNLOCK IN vanzlu4118
SELE vanzlu4118
SET FILTER TO
SELECT act
SET FILTER TO
RETURN
*_______________________________________
PROCEDURE CALCULEAZABALANTA
SELECT BAL
IF FLOCK()
REPLACE ALL totdeb WITH RULDEB+precdeb;
totcred WITH RULCRED+preccred
ENDIF
UNLOCK
SCAN
IF FLOCK()
IF totdeb-totcred>0
REPLACE SOLDDEB WITH totdeb-totcred;
SOLDCRED WITH 0
ELSE
REPLACE SOLDCRED WITH totcred-totdeb;
SOLDDEB WITH 0
ENDIF
ENDIF
UNLOCK
ENDSCAN
RETURN
*_________________________________________
PROCEDURE RefAna418
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\ANA418.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'ANA418.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\ANA418.DBF IN 0 ALIAS ANA418U
SELECT ANA418U
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('ANA418u.totdeb') = 'U'
SELECT NUME,COD_FISCAL, productie AS precdeb,incasat AS preccred FROM ANA418U INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + productie, totcred WITH preccred + incasat, totvaldeb WITH precvaldeb + prodval, totvalcre WITH precvalcre + incasval
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('ANA418u.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(PRECdeb + productie) AS precdeb, SUM(preccred + incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM ANA418U INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(PRECdeb + productie) AS precdeb, SUM(preccred + incasat) AS preccred, ;
SUM(precvaldeb + prodval) AS precvaldeb, SUM(precvalcre + incasval) AS precvalcre ;
FROM ANA418U INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN ANA418U
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '418', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '418', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '418', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '418', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '418', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('418',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t418 GROUP BY 1, 2, 3
SELECT t418
SCAN
SCATTER NAME o418
SELECT rcli
SEEK LEFT(o418.NUME,30) + o418.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o418.COD_FISCAL
ENDIF
ELSE
SEEK LEFT(o418.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o418.acont
ELSE
APPEND BLANK
GATHER NAME o418
ENDIF
ENDIF
REPLACE productie WITH productie + o418.debit, incasat WITH incasat + o418.credit, prodval WITH prodval + o418.valdebit, incasval WITH incasval + o418.valcredit
SELECT t418
ENDSCAN
RELEASE o418
USE IN t418
SELECT rcli
REPLACE ALL totdeb WITH precdeb+productie,totcred WITH preccred+incasat &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb+prodval,totvalcre WITH precvalcre+incasval &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT ANA418
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT ANA418
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE RefFact418
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
DO refac_act WITH "418" IN actualizare_act.PRG
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE Fact418
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\Fact418.dbf')
SELE Fact418
APPEND FROM &dateA\Fact418.DBF FOR (!DELETED() AND &cond1)
ENDIF
&&curatare facturi cu acelasi client si suma soldurilor nula
*!* Sele Fact418
*!* Dele For nl='*'
*!* Set Order To Tag NUME
*!* Total To &loc\&nfscurt\tempo\tttt On NUME Fields totctva,achitat
*!* Use &loc\&nfscurt\tempo\tttt In 0 Alias tttt
*!* Sele tttt
*!* Scan For totctva=achitat
*!* Scat Fiel NUME Memv
*!* Sele Fact418
*!* Repl All nl With '*' For NUME=m.NUME
*!* Sele tttt
*!* Endscan
*!* Use In tttt
*!* Sele Fact418
*!* Set Order To Tag DATAIREG
LOCAL rr
SELE Fact418
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME, nract,acont MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME AND nract = m.nract AND acont = m.acont
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELETE FOR nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE act
SET FILTER TO LEFT(scd,3)='418'
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,scd,scc,nrord,ASCD,proc_tva MEMV
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE Fact418
LOCA FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCD AND proc_tva=m.proc_tva
IF !FOUND() &&And !(Left(m.SCD,3)='411' And m.SCC='4427') &&pt regularizare clienti creditori
SELE Fact418
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE acont WITH m.ASCD
ENDIF
SELE act
ENDSCAN
SELE Fact418
SET FILTER TO !&cond
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND ASCD=m.acont AND proc_tva=m.proc_tva
DO CASE
CASE scc='4428'
xx=m.tvaM
m.tvaM=M.tvaM+suma
CASE scc#'4428'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
ENDCASE
m.sumaval=m.sumaval+suma_2
ENDSCAN
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE Fact418
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
SELE Fact418
SET FILTER TO
SELE Fact418
REPL ALL achitat WITH 0 FOR !&cond
REPLACE ALL proc_tva WITH M.ctvam FOR EMPTY(proc_tva)
SELE act
SET ORDER TO TAG pereche2
SET FILTER TO LEFT(act.scc,3)='418' pereche2#0
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE pereche2=M.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND ASCC=m.ASCC AND proc_tva=m.proc_tva
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
SKIP
ENDDO
SELE Fact418
LOCA FOR nract=m.pereche2 AND ALLT(NUME)=ALLT(M.NUME) AND acont=m.ASCC AND proc_tva=m.proc_tva
IF !FOUND()
LOCA FOR nract=m.pereche2 AND ALLTR(NUME)=ALLT(M.NUME)
ENDIF
* IF FOUND() AND !(M.ACHITAT-TOTCTVA>10000)
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH achitatval+m.achitatval
ENDIF
* SET FILTER TO ACHITAT=0
SELE act
ENDDO
ENDIF
UNLOCK IN Fact418
SELECT act
SET FILTER TO
SELE Fact418
SET FILTER TO
RETURN
*----------------------------------------------------------------------------------------------
PROCEDURE REFVNAvans && refVENITavans
LOCAL nla,ana,anb,cond,cond1,dateA
*Store 0 To M.SUMA_2, M.achitatval,M.SUMA,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
*cond1='(abs(totctva-achitat-repus_prec)>0)'
SELE VNavans
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=pcNl AND an=pcAn
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\vnavans.dbf')
SELE VNavans
APPEND FROM &dateA\VNavans.DBF FOR !DELETED() && AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul de venituri in avans ','in luna anterioara!'
ENDIF
SELECT vnavans
REPLACE ALL repus_prec WITH repus_prec + achitat
REPLACE ALL achitat WITH 0
DELETE ALL FOR totctva-repus_prec = 0
&& curatare facturi cu acelasi client si suma soldurilor nula
SELECT *, SUM(totctva-repus_prec) AS SOLD FROM VNavans ;
INTO CURSOR tttt ;
GROUP BY NUME, dst_chlt, acont
SELECT tttt
SCAN FOR SOLD=0
SCAT FIEL NUME, dst_chlt, acont MEMV
SELECT VNavans
DELETE ALL FOR NUME=m.NUME AND dst_chlt=m.dst_chlt AND acont=m.acont
SELECT tttt
ENDSCAN
USE IN tttt
&& \curatare
*!* Sele vnavans
*!* Dele For nl='*'
*!* Set Order To Tag NUME
*!* Total To &loc\&nfscurt\tempo\tttt On NUME Fields totctva,achitat
*!* Use &loc\&nfscurt\tempo\tttt In 0 Alias tttt
*!* Sele tttt
*!* Scan For totctva=achitat
*!* Scat Fiel NUME, dst_chlt, acont Memv
*!* Sele vnavans
*!* Repl All nl With '*' For NUME=m.NUME AND dst_chlt=m.dst_chlt AND acont=m.acont
*!* Sele tttt
*!* Endscan
*!* Use In tttt
*!* Sele vnavans
*!* Set Order To Tag DATAIREG
*!* Local rr
*!* Sele vnavans
*!* Scan For totctva-achitat<0
*!* rr=Recno()
*!* Scat Fiel NUME Memv
*!* m.SUMA=totctva-achitat
*!* Loca For totctva-achitat=-m.SUMA And NUME=m.NUME
*!* If Found()
*!* Repl nl With '*'
*!* Goto rr
*!* Repl nl With '*'
*!* Endif
*!* Goto rr
*!* Endscan
*!* Set Filter To
*!* Dele For nl='*'
IF USED('t472')
USE IN t472
ENDIF
SELECT COD,DATAIREG,COD_FISCAL, nract, datascad, NUME, fdoc, dataact, dst_chlt, scc, ASCC AS acont, explicatia, ;
SUM(suma) AS totctva FROM act WHERE LEFT(scc,3)='472' ;
GROUP BY NUME, dataact, nract, ASCC ;
INTO CURSOR t472
SELECT t472
SCAN
SCATTER NAME o472
SELECT VNavans
LOCATE FOR NUME=o472.NUME AND dataact=o472.dataact AND nract=o472.nract AND acont=o472.acont
*!* IF !FOUND()
*!* LOCATE FOR For NUME=o472.NUME And dataact=o472.dataact And nract=o472.nract
*!* ENDIF
IF FOUND()
REPLACE totctva WITH totctva + o472.totctva
ELSE
APPEND BLANK
GATHER NAME o472
ENDIF
SELECT t472
ENDSCAN
RELEASE o472
USE IN t472
&& repunere venituri in avans
SELE VNavans
SET FILTER TO
* REPL ALL achitat WITH 0 FOR !&cond
SELECT COD,DATAIREG,COD_FISCAL, nract, datascad, NUME, fdoc, dataact, dst_chlt, scc, ASCD AS acont, PERECHE, ;
SUM(suma) AS achitat FROM act WHERE LEFT(scd,3)='472' ;
GROUP BY PERECHE, NUME, ASCD ;
INTO CURSOR t472
SELECT t472
SCAN
SCATTER NAME o472
SELECT VNavans
LOCATE FOR nract=o472.PERECHE AND ALLT(NUME)=ALLTRIM(o472.NUME) AND acont=o472.acont
IF !FOUND()
LOCATE FOR nract=o472.PERECHE AND ALLTRIM(NUME)=ALLTRIM(o472.NUME)
ENDIF
IF FOUND()
REPLACE achitat WITH achitat + o472.achitat, scc WITH o472.scc
ELSE
APPEND BLANK
GATHER NAME o472
ENDIF
SELECT t472
ENDSCAN
RELEASE o472
USE IN t472
ENDIF
SELE act
SET FILT TO
UNLOCK IN VNavans
SELE VNavans
SET FILTER TO
m.an=pcAn
m.nl=pcNl
RETURN
*_________________________________________
PROCEDURE REFACHIT542
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\ACHIT542.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'ACHIT542.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\ACHIT542.DBF IN 0 ALIAS ACHIT542U
SELECT ACHIT542U
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('ACHIT542u.totdeb') = 'U'
SELECT nume_2,COD_FISCAL, LUAT AS precdeb, DAT AS preccred FROM ACHIT542U INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit, totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('ACHIT542u.acont') # 'U'
SELECT nume_2, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM ACHIT542U INTO CURSOR rrr GROUP BY nume_2, acont
ELSE
SELECT nume_2, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM ACHIT542U INTO CURSOR rrr GROUP BY nume_2
ENDIF
ENDIF
USE IN ACHIT542U
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT nume_2, ;
IIF(LEFT(scd,3) = '542', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '542', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '542', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '542', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '542', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('542',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t542 GROUP BY 1, 2
SELECT t542
SCAN
SCATTER NAME o542
SELECT rcli
SEEK LEFT(o542.nume_2,30) + o542.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o542.COD_FISCAL
ENDIF
REPLACE debit WITH debit + o542.debit, credit WITH credit + o542.credit, valdebit WITH valdebit + o542.valdebit, valcredit WITH valcredit + o542.valcredit
ELSE
SEEK LEFT(o542.nume_2,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o542.acont
REPLACE debit WITH debit + o542.debit, credit WITH credit + o542.credit, valdebit WITH valdebit + o542.valdebit, valcredit WITH valcredit + o542.valcredit
ELSE
APPEND BLANK
GATHER NAME o542
ENDIF
ENDIF
SELECT t542
ENDSCAN
RELEASE o542
USE IN t542
SELECT rcli
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT ACHIT542
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT ACHIT542
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE refACHILUN
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE ACHILUN
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\ACHILUN.dbf')
SELE ACHILUN
APPEND FROM &dateA\ACHILUN.DBF FOR (!DELETED() AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul de inregistrari achizitori in luna anterioara',''
*!* Sele vanzlun
*!* Append From &datEAN\VANZAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
&& curatare facturi cu acelasi client si suma soldurilor nula
SELE ACHILUN
SET ORDER TO TAG NUME
TOTAL TO &loc\&nfscurt\tempo\tttt ON NUME FIELDS totctva,achitat
USE &loc\&nfscurt\tempo\tttt IN 0 ALIAS tttt
SELE tttt
SCAN FOR totctva=achitat
SCAT FIEL NUME MEMV
SELE ACHILUN
REPL ALL nl WITH '*' FOR NUME=m.NUME
SELE tttt
ENDSCAN
USE IN tttt
SELE ACHILUN
DELE FOR nl='*'
SET ORDER TO TAG DATAIREG
LOCAL rr
SELE ACHILUN
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELE FOR nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE act
SET FILTER TO LEFT(scd,3)='542'
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,nume_2,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,scd,scc,nrord,ASCD MEMV
lc_explic=EXPLICATIA
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE ACHILUN
LOCA FOR ALLTRIM(NUME)=ALLTRIM(m.nume_2) AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCD
IF !FOUND()
SELE ACHILUN
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE NUME WITH M.nume_2,nume_4 WITH lc_explic
REPLACE acont WITH m.ASCD
ENDIF
SELE act
ENDSCAN
SELE ACHILUN
SET FILTER TO !&cond
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR nume_2=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCD
*!* Do Case
*!* Case SCC='4427'
*!* xx=m.tvaM
*!* m.tvaM=M.tvaM+SUMA
*!* Case SCC#'4427'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
*!* Endcase
m.sumaval=m.sumaval+suma_2
ENDSCAN
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE ACHILUN
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
SELE ACHILUN
SET FILTER TO
&&ca in rv1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE ACHILUN
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG pereche2
SET FILTER TO LEFT(act.scc,3)='542' AND pereche2#0
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE pereche2=M.pereche2 AND nume_2=M.nume_2 AND ASCC=m.ASCC
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
*m.explicatia=explicatia
SKIP
ENDDO
SELE ACHILUN
LOCA FOR nract=m.pereche2 AND ALLT(NUME)=ALLT(M.nume_2) AND acont=m.ASCC
IF !FOUND()
LOCA FOR nract=m.pereche2 AND ALLTR(NUME)=ALLT(M.nume_2)
ENDIF
* IF FOUND() AND !(M.ACHITAT-TOTCTVA>10000)
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH achitatval+m.achitatval
REPLACE nume_4 WITH m.EXPLICATIA
ENDIF
SELE act
ENDDO
ENDIF
SELE act
SET FILT TO
UNLOCK IN ACHILUN
SELE ACHILUN
SET FILTER TO
RETURN
*___________________________________________________________________________
PROCEDURE REFdividende
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\dividende.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'dividende.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\dividende.DBF IN 0 ALIAS dividendeU
SELECT dividendeU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('dividendeu.totdeb') = 'U'
SELECT NUME,COD_FISCAL, LUAT AS precdeb, DAT AS preccred FROM dividendeU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit, totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('dividendeu.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM dividendeU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM dividendeU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN dividendeU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '457', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '457', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '457', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '457', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '457', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('457',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t457 GROUP BY 1, 2, 3
SELECT t457
SCAN
SCATTER NAME o457
SELECT rcli
SEEK LEFT(o457.NUME,30) + o457.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o457.COD_FISCAL
ENDIF
REPLACE debit WITH debit + o457.debit, credit WITH credit + o457.credit, valdebit WITH valdebit + o457.valdebit, valcredit WITH valcredit + o457.valcredit
ELSE
SEEK LEFT(o457.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o457.acont
REPLACE debit WITH debit + o457.debit, credit WITH credit + o457.credit, valdebit WITH valdebit + o457.valdebit, valcredit WITH valcredit + o457.valcredit
ELSE
APPEND BLANK
GATHER NAME o457
ENDIF
ENDIF
SELECT t457
ENDSCAN
RELEASE o457
USE IN t457
SELECT rcli
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT dividende
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT dividende
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE refdivLUN
LOCAL nla,nlb,ana,anb,cond,cond1
STORE 0 TO M.suma_2, M.achitatval,M.suma,M.sumaval,M.achitat
IF !se_reface()
RETURN
ENDIF
cond='(year(dataireg)<val(m.an) or (year(dataireg)=val(m.an) and month(dataireg)<val(m.nl)))'
cond1='(abs(totctva-achitat)>0)'
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE divLUN
IF FLOCK()
DELE ALL
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
IF !BOF() AND FILE('&dateA\divLUN.dbf')
SELE divLUN
APPEND FROM &dateA\divLUN.DBF FOR (!DELETED() AND &cond1)
ELSE
DO mesaj WITH 'Nu exista fisierul inregistrari dividende in luna anterioara !',''
*!* Sele vanzlun
*!* Append From &datEAN\VANZAN.Dbf For (!Deleted() And &cond1 And &cond)
ENDIF
&& curatare facturi cu acelasi client si suma soldurilor nula
SELE divLUN
SET ORDER TO TAG NUME
TOTAL TO &loc\&nfscurt\tempo\tttt ON NUME FIELDS totctva,achitat
USE &loc\&nfscurt\tempo\tttt IN 0 ALIAS tttt
SELE tttt
SCAN FOR totctva=achitat
SCAT FIEL NUME MEMV
SELE divLUN
REPL ALL nl WITH '*' FOR NUME=m.NUME
SELE tttt
ENDSCAN
USE IN tttt
SELE divLUN
DELE FOR nl='*'
SET ORDER TO TAG DATAIREG
LOCAL rr
SELE divLUN
SCAN FOR totctva-achitat<0
rr=RECNO()
SCAT FIEL NUME MEMV
m.suma=totctva-achitat
LOCA FOR totctva-achitat=-m.suma AND NUME=m.NUME
IF FOUND()
REPL nl WITH '*'
GOTO rr
REPL nl WITH '*'
ENDIF
GOTO rr
ENDSCAN
SET FILTER TO
DELE FOR nl='*'
&&ca in refvanz&&&&&&&&&&&&&&&&&&&&&&&&&&&
SELE act
SET FILTER TO LEFT(scc,3)='457'
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA
SCAN
SCAT FIEL COD,DATAIREG,dataact,NUME,fdoc,nract,datascad,COD_FISCAL,suma_2,SUMA_3,nume_4,scd,scc,nrord,ASCC MEMV
lc_explic=EXPLICATIA
*m.sumaval=m.SUMA_2
m.NUMEVAL=m.nume_4
m.CURSSCHIMB=m.SUMA_3
SELE divLUN
LOCA FOR ALLTRIM(NUME)=ALLTRIM(m.NUME) AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCC
IF !FOUND()
SELE divLUN
GO BOTTOM
APPE BLAN
GATH MEMV
REPLACE nume_4 WITH lc_explic
REPLACE acont WITH m.ASCC
ENDIF
SELE act
ENDSCAN
SELE divLUN
SET FILTER TO !&cond
SCAN
SCAT FIEL EXCEPT nl,an MEMV
SELE act
STORE 0 TO M.totftvaI,M.totftvaM,M.neimpozab,M.tvaI,M.tvaM,M.totctva,M.BAZA,m.sumaval
SCAN FOR NUME=m.NUME AND dataact=m.dataact AND nract=m.nract AND acont=m.ASCC
*!* Do Case
*!* Case SCC='4427'
*!* xx=m.tvaM
*!* m.tvaM=M.tvaM+SUMA
*!* Case SCC#'4427'
m.totftvaM=M.totftvaM+(suma-neimpozab)
m.neimpozab=m.neimpozab+neimpozab
*!* Endcase
m.sumaval=m.sumaval+suma_2
ENDSCAN
m.totctva=M.tvaM+M.totftvaM+M.neimpozab
SELE divLUN
REPL tvaM WITH M.tvaM;
totftvaM WITH M.totftvaM;
neimpozab WITH M.neimpozab;
totctva WITH M.totctva;
sumaval WITH m.sumaval
ENDSCAN
SELE divLUN
SET FILTER TO
&&ca in rv1&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&7
SELE divLUN
REPL ALL achitat WITH 0 FOR !&cond
SELE act
SET ORDER TO TAG PERECHE
SET FILTER TO LEFT(act.scd,3)='457' AND PERECHE#0
SELE act
GO TOP
DO WHILE !EOF()
m.achitat=0
m.achitatval=0
SCAT MEMV
DO WHILE PERECHE=M.PERECHE AND NUME=M.NUME AND ASCD=m.ASCD
m.achitat=m.achitat+suma
m.achitatval=m.achitatval+suma_2
*m.explicatia=explicatia
SKIP
ENDDO
SELE divLUN
LOCA FOR nract=m.PERECHE AND ALLT(NUME)=ALLT(M.NUME) AND acont=m.ASCD
IF !FOUND()
LOCA FOR nract=m.PERECHE AND ALLTR(NUME)=ALLT(M.NUME)
ENDIF
* IF FOUND() AND !(M.ACHITAT-TOTCTVA>10000)
IF FOUND()
REPL achitat WITH m.achitat+achitat
REPL achitatval WITH achitatval+m.achitatval
REPLACE nume_4 WITH m.EXPLICATIA
ENDIF
SELE act
ENDDO
ENDIF
SELE act
SET FILT TO
UNLOCK IN divLUN
SELE divLUN
SET FILTER TO
RETURN
*________________________________________________________
PROCEDURE REFActionar
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
COPY FILE &dirgen\_alfa\an0000\date00\ACTIONAR.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'ACTIONAR.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\ACTIONAR.DBF IN 0 ALIAS ACTIONARU
SELECT ACTIONARU
USE &loc\&nfscurt\tempo\rcli IN 0 ALIAS rcli
&&precedente---------
IF TYPE('ACTIONARu.totdeb') = 'U'
SELECT NUME,COD_FISCAL, DAT AS precdeb, LUAT AS preccred FROM ACTIONARU INTO CURSOR rrr
ELSE
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit, totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit
*REPLACE ALL totavans WITH precavans + avans, totavansv WITH precavansv + avansval
IF TYPE('ACTIONARu.acont') # 'U'
SELECT NUME, acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM ACTIONARU INTO CURSOR rrr GROUP BY NUME, acont
ELSE
SELECT NUME, SPACE(4) AS acont, COD_FISCAL, NUMEVAL, ;
SUM(precdeb + debit) AS precdeb, SUM(preccred + credit) AS preccred, ;
SUM(precvaldeb + valdebit) AS precvaldeb, SUM(precvalcre + valcredit) AS precvalcre ;
FROM ACTIONARU INTO CURSOR rrr GROUP BY NUME
ENDIF
ENDIF
USE IN ACTIONARU
SELECT rcli
APPEND FROM DBF('rrr')
USE IN rrr
&&rulaje------------
SELE rcli
SET ORDER TO TAG NANA
SELECT NUME, ;
IIF(LEFT(scd,3) = '455', ASCD, ASCC) AS acont, ;
COD_FISCAL, nume_4 AS NUMEVAL, ;
SUM(IIF(LEFT(scc,3) = '455', suma, 00000000000000)) AS credit, ;
SUM(IIF(LEFT(scd,3) = '455', suma, 00000000000000)) AS debit, ;
SUM(IIF(LEFT(scc,3) = '455', suma_2, 00000000000000.00)) AS valcredit, ;
SUM(IIF(LEFT(scd,3) = '455', suma_2, 00000000000000.00)) AS valdebit ;
FROM act ;
WHERE INLIST('455',LEFT(scd, 3), LEFT(scc,3)) ;
INTO CURSOR t455 GROUP BY 1, 2, 3
SELECT t455
SCAN
SCATTER NAME o455
SELECT rcli
SEEK LEFT(o455.NUME,30) + o455.acont
IF FOUND()
IF EMPTY(COD_FISCAL)
REPLACE COD_FISCAL WITH o455.COD_FISCAL
ENDIF
REPLACE debit WITH debit + o455.debit, credit WITH credit + o455.credit, valdebit WITH valdebit + o455.valdebit, valcredit WITH valcredit + o455.valcredit
ELSE
SEEK LEFT(o455.NUME,30) + SPACE(4)
IF FOUND()
REPLACE acont WITH o455.acont
REPLACE debit WITH debit + o455.debit, credit WITH credit + o455.credit, valdebit WITH valdebit + o455.valdebit, valcredit WITH valcredit + o455.valcredit
ELSE
APPEND BLANK
GATHER NAME o455
ENDIF
ENDIF
SELECT t455
ENDSCAN
RELEASE o455
USE IN t455
SELECT rcli
REPLACE ALL totdeb WITH precdeb + debit, totcred WITH preccred + credit &&,totavans WITH precavans+avans
REPLACE ALL totvaldeb WITH precvaldeb + valdebit, totvalcre WITH precvalcre + valcredit &&,TOTAVANSV WITH PRECAVANSV+AVANSVAL
SELECT ACTIONAR
IF FLOCK()
DELETE ALL
APPEND FROM &loc\&nfscurt\tempo\rcli FOR !DELETED()
ENDIF
UNLOCK
USE IN rcli
SELECT ACTIONAR
SET ORDER TO TAG NANA
RETURN
*_________________________________________
PROCEDURE ref_balanta_partener
LOCAL nla,nlb,ana,anb
IF !se_reface()
RETURN
ENDIF
nlb=m.nl
anb=m.an
dateb=calefirma+'\an'+anb+'\'+'date'+nlb
SELE calendar
LOCATE FOR nl=m.nl AND an=m.an
SKIP -1
IF !BOF()
nla=nl
ana=an
dateA=calefirma+'\an'+ana+'\date'+nla &&DATE PREC
ELSE
dateA=dirgen+'\_alfa\an0000\date00\'
ENDIF
SET SAFETY OFF
COPY FILE &dirgen\_alfa\an0000\date00\balanta_partener.* TO &loc\&nfscurt\tempo\rcli.*
lcFile = ADDBS(dateA) + 'balanta_partener.dbf'
IF !FILE(lcFile)
dateA = dirgen+'\_alfa\an0000\date00'
ENDIF
USE &dateA\balanta_partener.DBF IN 0 ALIAS balanta_partenerU
SELECT balanta_partenerU
SELECT * FROM balanta_partenerU WHERE CONT = loCont.CONT INTO CURSOR balanta_partenerA READWRITE
USE IN balanta_partenerU
SELECT balanta_partenerA
REPLACE ALL precdeb WITH precdeb + debit, preccred WITH preccred + credit, ;
precvaldeb WITH precvaldeb + valdebit, precvalcre WITH precvalcre + valcredit
REPLACE ALL debit WITH 0, credit WITH 0, valdebit WITH 0, valcredit WITH 0
*!* SELECT SUM(IIF(SCD = loCont.CONT, SUMA, 0)) AS debit, SUM(IIF(SCC = loCont.CONT, SUMA, 0)) AS credit, ;
*!* SUM(IIF(SCD = loCont.CONT, SUMA_2, 0)) AS VALDEBIT, SUM(IIF(SCC = loCont.CONT, SUMA_2, 0)) AS VALCREDIT, ;
*!* id_partd, id_partc, IIF(SCD = loCont.CONT, ASCD, IIF(SCC = loCont.CONT, ASCC, '')) AS acont ;
*!* FROM ACT ;
*!* WHERE (!EMPTY(id_partd) OR !EMPTY(id_partc)) AND INLIST(loCont.CONT,SCD,SCC) ;
*!* INTO CURSOR tact ;
*!* GROUP BY id_part, acont
SELECT SUM(suma) AS debit, SUM(suma_2) AS valdebit, id_partd, ASCD ;
FROM act ;
WHERE !EMPTY(id_partd) AND scd = loCont.CONT ;
INTO CURSOR tactd ;
GROUP BY id_partd, ASCD
&&& debit
SELECT tactd
SCAN
SCATTER NAME oact
SELECT balanta_partenerA
LOCATE FOR IDpart = oact.id_partd AND CONT = loCont.CONT AND acont = oact.ASCD
IF FLOCK()
IF !FOUND()
APPEND BLANK
GATHER NAME oact
REPLACE IDpart WITH oact.id_partd, CONT WITH loCont.CONT, acont WITH oact.ASCD
ELSE
REPLACE debit WITH debit + oact.debit, ;
valdebit WITH valdebit + oact.valdebit
ENDIF
ENDIF
UNLOCK
SELECT tactd
ENDSCAN
RELEASE oact
USE IN tactd
&&& credit
SELECT SUM(suma) AS credit, SUM(suma_2) AS valcredit, id_partc, ASCC ;
FROM act ;
WHERE !EMPTY(id_partc) AND scc = loCont.CONT ;
INTO CURSOR tactc ;
GROUP BY id_partc, ASCC
SELECT tactc
SCAN
SCATTER NAME oact
SELECT balanta_partenerA
LOCATE FOR IDpart = oact.id_partc AND CONT = loCont.CONT AND acont = oact.ASCC
IF FLOCK()
IF !FOUND()
APPEND BLANK
GATHER NAME oact
REPLACE IDpart WITH oact.id_partc, CONT WITH loCont.CONT, acont WITH oact.ASCC
ELSE
REPLACE credit WITH credit + oact.credit, ;
valcredit WITH valcredit + oact.valcredit
ENDIF
ENDIF
UNLOCK
SELECT tactc
ENDSCAN
RELEASE oact
USE IN tactc
SELECT balanta_partenerA
REPLACE ALL totdeb WITH precdeb + debit, totvaldeb WITH precvaldeb + valdebit
REPLACE ALL totcred WITH preccred + credit, totvalcre WITH precvalcre + valcredit
SELECT balanta_partener
SET FILTER TO
IF FLOCK()
DELETE ALL FOR CONT = loCont.CONT
APPEND FROM DBF('balanta_partenerA')
ENDIF
UNLOCK
USE IN balanta_partenerA
ENDPROC && ref_balanta_partener