Inrolare ROACONTRACTE conform COMUN\docs\inrolare-proiect-git-text.md: - .gitignore/.gitattributes dupa modelul ROACONT (COMUN/ exclus, are repo propriu) - 439 texte FoxBin2Prg generate in arbore (vc2/sc2/fr2/mn2/pj2/db2) - Clase\registry.vcx ramane binar: memo .vct corupt (Error 41), nu se poate converti - Clase\ferestre_contracte.vcx: text generat, roundtrip scutit (fara write-back) - CLAUDE.md, docs/README.md, roa_sync.bat Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYbiinqXxdEqXi53x4Ro7K
7490 lines
174 KiB
Plaintext
7490 lines
174 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
|