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)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)'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)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)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)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)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)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