*!* 14.03.2013 *!* marius.mutu *!* corectare mai multe facturi cu acelasi cod (nota fara predefinire) - nu aparea nume, nract, dataact in listare *!* 23.09.2013 *!* marius.mutu *!* Se includ si facturile fara TVA INCASARE cu valoare 0 *!* 17.10.2013 *!* marius.mutu *!* la facturile fara TVA Incasare cu valoare 0, aparea o linie goala *!* 23.05.2014 *!* marius.mutu *!* am defalcat achizitiile din CE in achizitii bunuri CE si achizitii servicii CE (la cererea Silvia Carapetru) *!* in vizualizare sunt in continuare comasate (CEB = CEBB + CESB, CET = CEBT + CEST) *!* 23.05.2016 *!* marius.mutu *** selectez facturile tva la incasare doar pe cele din filtrul curent (interne, import, CE, taxare inversa, total) *!* 16.01.2019 *!* marius.mutu *!* corectat cod tva TI19BFB in TI19B pentru facturile cu taxare inversa de pe facturile TVA_INCASARE *!* 09.04.2019 *!* marius.mutu *!* corectat CEBFSC la recapitulatie *!* 26.05.2022 *!* marius.mutu *!* tratare bug se bloca la listare doar pe calculatorul Silviei la selectie din (cListRC, jtva_coloane) Private pcTitlu, pcSubtitlu, pcPerioada, pcSubtitlu1, pcdataora Local lcNumeAct, lcRaport, lcSelect, lcSql, lcWhere, lctext, lddata1, lddata2, llSucces, lnCod, lcSerieAct Local lnDiferenta, lnIdFact, lnIncasat3, lnMeniu, lnNrCrt, lnNrCrtF, lnNrc, lnPerioada, lnSucces Local lnTip, lnTipJurnal, lnOptiuneBug *:Global pnAn, pnLuna pcTitlu = "Registru cumparari" pcSubtitlu = "" lnTipJurnal = Thisform.nlistitemid - 1 If This.filtru_traducere() # "" lctext = " si " + This.filtru_traducere() Else lctext = "" Endif pcSubtitlu1 = This.filtru_pretty_ro + m.lctext pcPerioada = Padl(m.gnLuna,2,'0') + '/' + Alltrim(Str(m.gnAn)) **************************************************************** lnMeniu = xmenu("Registru Cumparari lunar;Registru Cumparari - recapitulatie 3 luni;Registru Cumparari - recapitulatie an curent") If !Inlist(m.lnMeniu, 1, 2, 3) Return Endif pcdataora = get_ora(2) && REGISTRU TVA LUNA CURENTA Select 0 As tip, * ; FROM actcv ; INTO Cursor cListRC ; ORDER By dataact, nract ; READWRITE If m.lnMeniu = 1 And _Tally = 0 amessagebox("Nu exista inregistrari pentru listare!", 48, "Atentie") Endif *** FILTRU PENTRU RECAPITULATIE lcWhere = pocump.ca_baza1.cfiltru *** STERG LUNA=XX AND AN=XXXX DIN FILTRU (in cazul in care vreau sa aduc si lunile din recapitulatie) If Left(Upper(lcWhere),4) = 'LUNA' lnPos = Atc('AN=', lcWhere,1) If m.lnPos > 0 lcWhere = Alltrim(Substr(m.lcWhere, m.lnPos + 11)) Endif Endif Do Case Case m.lnTipJurnal = 1 pcSubtitlu = "Achizitii de bunuri si prestari de sevicii taxabile din tara" lcRaport = [registru_cumparari_jtva2010_ro] *!* facturile RO <> 0 SAU facturile cu toate coloanele <> 0 lcWhere = m.lcWhere + [ and ((RO24B<>0 OR RO24T<>0 OR RO20B<>0 OR RO20T<>0 OR RO19B<>0 OR RO19T<>0 OR RO09B<>0 OR RO09T<>0 ] + ; [OR RO05B<>0 OR RO05T<>0 OR ROSCN<>0 OR ROTN<>0 OR ROTN50<>0 OR ROTN100<>0 ] + ; [ OR ro24nb<>0 OR ro24nt<>0 OR ro20nb<>0 OR ro20nt<>0 OR ro19nb<>0 OR ro19nt<>0 ro09nb<>0 OR ro09nt<>0 OR ro05nb<>0 OR ro05nt<>0) OR ] + ; [(TOTCTVA = 0 and RO24B = 0 and RO24T = 0 and RO20B = 0 and RO20T = 0 and RO19B = 0 and RO19T = 0 and RO09B = 0 and RO09T = 0 ] + ; [ and RO05B = 0 and RO05T = 0 and ROSCN = 0 and ROTN = 0 and ROTN50 = 0 and ROTN100 = 0 ] + ; [ and FO24B = 0 and FO24T = 0 and FO20B = 0 and FO20T = 0 and FO19B = 0 and FO19T = 0 and FO09B = 0 and FO09T = 0 and FOSCN = 0 ] + ; [ and CEB = 0 and CET = 0 and CESC = 0 and CEN = 0 ] + ; [ and XX19TIB = 0 AND XX19TIT = 0 ] + ; [ and TI24B = 0 and TI24T = 0 and TI20B = 0 and TI20T = 0 and TI19B = 0 and TI19T = 0 and TI09B = 0 and TI09T = 0 ] + ; [ and ro24nb = 0 and ro24nt = 0 and ro20nb = 0 and ro20nt = 0 and ro19nb = 0 and ro19nt = 0 and ro09nb = 0 and ro09nt = 0 and ro05nb = 0 and ro05nt = 0))] Case m.lnTipJurnal = 2 pcSubtitlu = "Achizitii de bunuri si prestari de sevicii taxabile din import" lcRaport = [registru_cumparari_jtva2010_fo] lcWhere = m.lcWhere + [ and (FO24B<>0 OR FO24T<>0 OR FO20B<>0 OR FO20T<>0 OR FO19B<>0 OR FO19T<>0 OR FO09B<>0 OR FO09T<>0 OR FOSCN<>0)] Case m.lnTipJurnal = 3 pcSubtitlu = "Achizitii intracomunitare de bunuri" lcRaport = [registru_cumparari_jtva2010_ce] lcWhere = m.lcWhere + [ and (CEB<>0 OR CET<>0 OR CESC<>0 OR CEN<>0)] Case m.lnTipJurnal = 4 pcSubtitlu = "Bunuri si Sevicii pentru care cumparatorul este obligat la plata taxei (din Tara, Import) - Taxare Inversa" lcRaport = [registru_cumparari_jtva2010_ti] lcWhere = m.lcWhere + [ and (TI24B<>0 OR TI24T<>0 OR TI20B<>0 OR TI20T<>0 OR TI19B<>0 OR TI19T<>0 OR TI09B<>0 OR TI09T<>0 OR XX19TIB <> 0 OR XX19TIT <> 0)] Endcase && REGISTRE TVA RECAPITULATIE If INLIST(m.lnMeniu, 2, 3) && recapitulatie 3 luni / an curent Private m.pnAn, m.pnLuna IF m.lnMeniu = 2 * recapitulatie 3 luni lnPerioada = Ceil(m.gnLuna / 3) pnLuna = (m.lnPerioada - 1) * 3 + 1 ELSE pnLuna = 1 ENDIF pnAn = m.gnAn lddata1 = Date(m.pnAn, m.pnLuna, 1) lddata2 = Date(m.gnAn, m.gnLuna, 1) pcPerioada = m.pcPerioada + " * Recap. " + Padl(m.pnLuna, 2, '0') + '/' + Alltrim(Str(m.pnAn)) + ' - ' + Padl(m.gnLuna, 2, '0') + '/' + Alltrim(Str(m.gnAn)) TEXT to lcSelect textmerge noshow select 1 as tip, v.an, v.luna, cast(0 as Number(20)) as cod, to_date('','ddmmyyyy') as dataact, 000000000 as nract, (select la.numeluna || ' ' || to_char(v.an) from lunilean la where la.nrluna = v.luna) as denumire, SUM(v.TOTCTVA) AS TOTCTVA, SUM(v.CEB) AS CEB, SUM(v.CET) AS CET, SUM(v.CEBB) AS CEBB, SUM(v.CEBT) AS CEBT, SUM(v.CESB) AS CESB, SUM(v.CEST) AS CEST, SUM(v.CEN) AS CEN, SUM(v.CESC) AS CESC, SUM(v.FOSCN) AS FOSCN, SUM(v.FO09B) AS FO09B, SUM(v.FO09T) AS FO09T, SUM(v.FO24B) AS FO24B, SUM(v.FO24T) AS FO24T, SUM(v.FO20B) AS FO20B, SUM(v.FO20T) AS FO20T, SUM(v.FO19B) AS FO19B, SUM(v.FO19T) AS FO19T, SUM(v.XX19TIB) AS XX19TIB, SUM(v.XX19TIT) AS XX19TIT, SUM(v.ROSCN) AS ROSCN, SUM(v.RO09B) AS RO09B, SUM(v.RO09T) AS RO09T, SUM(v.RO05B) AS RO05B, SUM(v.RO05T) AS RO05T, SUM(v.RO24B) AS RO24B, SUM(v.RO24T) AS RO24T, SUM(v.RO20B) AS RO20B, SUM(v.RO20T) AS RO20T, SUM(v.RO19B) AS RO19B, SUM(v.RO19T) AS RO19T, Sum(v.ROTN) AS ROTN, Sum(v.ROTN50) AS ROTN50, Sum(v.ROTN100) AS ROTN100, SUM(v.TI09B) AS TI09B, SUM(v.TI09T) AS TI09T, SUM(v.TI19B) AS TI19B, SUM(v.TI19T) AS TI19T, SUM(v.TI24B) AS TI24B, SUM(v.TI24T) AS TI24T, SUM(v.TI20B) AS TI20B, SUM(v.TI20T) AS TI20T FROM (select <> as an, <> + rownum - 1 as luna from dual connect by level <= <<(m.gnAn*12 + m.gnLuna) - (m.pnAn*12 + m.pnLuna ) + 1>>) l left JOIN VJC2010 V on v.an = l.an and v.luna = l.luna WHERE v.an*12+v.luna between ?pnAn*12 + ?pnLuna and ?gnAn*12 + ?gnLuna <> GROUP BY v.an, v.luna ORDER BY v.an, v.luna ENDTEXT lnSucces = goExecutor.oExecute(m.lcSelect, "crsTotal") If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, "Eroare") Else Replace All dataact With Gomonth(Date(an, luna, 1), 120) In crsTotal Replace All cod With Int(Val(Dtos(dataact))) In crsTotal Select cListRC Append From Dbf('crsTotal') Use In crsTotal Endif Endif && m.lnMeniu = 2 *** FORMAT TVA INCASARE 2013 Select cListRC Index On denumire + Str(nract, 14, 0) Tag numeact Index On cod Tag cod update_jtva_coloane('JC') *** SELECTEZ FACTURILE CU TVA_INCASARE CU TOTAL BAZA, TVA, BAZAN, TVAN *** doar pe cele din filtrul curent (interne, import, CE, taxare inversa, total) Select r.cod, r.id_fact, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, Space(10) As COD_TVA, Space(100) As EXPLICATIE_TVA, r.TOTCTVA, r.TOTFTVATAX, r.TOTTVATAX, TVA_INCASARE, ; (RO24B + RO20B + RO19B + RO09B + RO05B + ROSCN + TI09B + TI19B + TI24B + TI20B + CEB + CEN + CESC + FOSCN + FO09B + FO19B + XX19TIB + FO24B + FO20B) As BAZA, ; (RO24T + RO20T + RO19T + RO09T + RO05T + TI09T + TI19T + TI24T + TI20T + CET + FO09T + FO19T + XX19TIT + FO24T + FO20T) As TVA, ; (RO24NB + RO20NB + RO19NB + RO09NB + RO05NB) As BAZAN, ; (RO24NT + RO20NT + RO19NT + RO09NT + RO05NT) As TVAN, ; cast(0 As N(14)) As NRACTI, Cast({} As D) As DATAACTI, Space(20) As FDOCI, Cast(0 As N(16, 4)) As INCASAT ; FROM cListRC r ; where tip = 0 And TVA_INCASARE = 1 ; INTO Cursor cListRCTemp Readwrite Select cListRCTemp Index On id_fact Tag id_fact Set Order To *** SELECTEZ FACTURILE FARA TVA_INCASARE CU TOTAL, BAZA, TVA * tratare bug se bloca la listare doar pe calculatorul Silviei la selectie din (cListRC, jtva_coloane) * Pe un calculator statea 10 minute pana facea selectia * Am refacut join-ul ca doua scan-uri lnOptiuneBug = INT(VAL(NVL(citeste_optiune_utilizator('RC_REGCUMP_LISTARE_BUG'), '0'))) IF m.lnOptiuneBug = 1 SELECT r.cod, r.id_fact, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, SPACE(20) as COD_TVA, SPACE(250) as EXPLICATIE_TVA, r.TOTCTVA, r.TOTFTVATAX, r.TOTTVATAX, TVA_INCASARE, ; CAST(0 As N(16, 4)) As BAZA, ; CAST(0 As N(16, 4)) As TVA ; FROM cListRC r ; WHERE .F. ; INTO Cursor cListRCTemp1 Readwrite SELECT cListRC lcRecc = ALLTRIM(STR(RECCOUNT())) SCAN FOR tip = 0 AND tva_incasare = 0 SCATTER NAME loRC WAIT WINDOW 'Facturi fara TVA Incasare ' + ALLTRIM(STR(RECNO())) + '/'+ m.lcRecc NOWAIT ADDPROPERTY(loRC,'cod_tva', '') ADDPROPERTY(loRC,'explicatie_tva', '') ADDPROPERTY(loRC,'baza',0.00) ADDPROPERTY(loRC,'tva', 0.00) SELECT JTVA_COLOANE SCAN FOR jc = 1 And INLIST(ALLTRIM(coloana_jc), 'RO24B','RO20B', 'RO19BVB', 'RO09BVB', 'RO05B', 'ROSCN', 'TI09BFB', 'TI19BFB', 'TI24B', 'TI20B', ; 'CEB', 'CE24SB', 'CEBFN', 'CEBFSC','FO09BVB', 'FO19BVB', 'XX19TIB', 'FO24B', 'FO20B','ROTN','ROTN50','ROTN100') loRC.cod_tva = ALLTRIM(coloana_jc) loRC.explicatie_tva = ALLTRIM(denumire) loRC.baza = Iif(loRC.cod_tva = 'RO24B', loRC.RO24B, ; Iif(loRC.cod_tva = 'RO20B', loRC.RO20B, ; IIF(loRC.cod_tva = 'RO19BVB', loRC.RO19B, ; IIF(loRC.cod_tva = 'RO09BVB', loRC.RO09B, ; IIF(loRC.cod_tva = 'RO05B', loRC.RO05B, ; IIF(loRC.cod_tva = 'ROSCN', loRC.ROSCN, ; IIF(loRC.cod_tva = 'TI09BFB', loRC.TI09B, ; IIF(loRC.cod_tva = 'TI19BFB', loRC.TI19B, ; IIF(loRC.cod_tva = 'TI24B', loRC.TI24B, ; IIF(loRC.cod_tva = 'TI20B', loRC.TI20B, ; IIF(loRC.cod_tva = 'CEB', loRC.CEBB, ; IIF(loRC.cod_tva = 'CE24SB', loRC.CESB, ; IIF(loRC.cod_tva = 'CEBFN', loRC.CEN, ; IIF(loRC.cod_tva = 'CEBFSC', loRC.CESC, ; IIF(loRC.cod_tva = 'FOSCN', loRC.FOSCN, ; IIF(loRC.cod_tva = 'FO09BVB', loRC.FO09B, ; IIF(loRC.cod_tva = 'FO19BVB', loRC.FO19B, ; IIF(loRC.cod_tva = 'XX19TIB', loRC.XX19TIB, ; IIF(loRC.cod_tva = 'FO24B', loRC.FO24B, ; IIF(loRC.cod_tva = 'FO20B', loRC.FO20B, ; 0)))))))))))))))))))) loRC.tva = Iif(loRC.cod_tva = 'RO24B', loRC.RO24T, ; Iif(loRC.cod_tva = 'RO20B', loRC.RO20T, ; IIF(loRC.cod_tva = 'RO19BVB', loRC.RO19T, ; IIF(loRC.cod_tva = 'RO09BVB', loRC.RO09T, ; IIF(loRC.cod_tva = 'RO05B', loRC.RO05T, ; IIF(loRC.cod_tva = 'TI09BFB', loRC.TI09T, ; IIF(loRC.cod_tva = 'TI19BFB', loRC.TI19T, ; IIF(loRC.cod_tva = 'TI24B', loRC.TI24T, ; IIF(loRC.cod_tva = 'TI20B', loRC.TI20T, ; IIF(loRC.cod_tva = 'CEB', loRC.CEBT, ; IIF(loRC.cod_tva = 'CE24SB', loRC.CEST, ; IIF(loRC.cod_tva = 'FO09BVB', loRC.FO09T, ; IIF(loRC.cod_tva = 'FO19BVB', loRC.FO19T, ; IIF(loRC.cod_tva = 'XX19TIB', loRC.XX19TIT, ; IIF(loRC.cod_tva = 'FO24B', loRC.FO24T, ; IIF(loRC.cod_tva = 'FO20B', loRC.FO20T, ; IIF(loRC.cod_tva = 'ROTN', loRC.ROTN, ; IIF(loRC.cod_tva = 'ROTN50', loRC.ROTN50, ; IIF(loRC.cod_tva = 'ROTN100', loRC.ROTN100, ; 0))))))))))))))))))) IF !(loRC.baza = 0 AND loRC.tva = 0) SELECT cListRCTemp1 APPEND BLANK GATHER NAME loRC ENDIF ENDSCAN && JTVA_COLOANE JC = 1 And !Empty(Nvl(J.COLOANA_JC, '')) ENDSCAN && cListRC tip = 0 AND tva_incasare = 0 ELSE Select r.cod, r.id_fact, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, J.COLOANA_JC As COD_TVA, J.denumire As EXPLICATIE_TVA, r.TOTCTVA, r.TOTFTVATAX, r.TOTTVATAX, TVA_INCASARE, ; CAST(Iif(J.COLOANA_JC = 'RO24B', r.RO24B, ; Iif(J.COLOANA_JC = 'RO20B', r.RO20B, ; IIF(J.COLOANA_JC = 'RO19BVB', r.RO19B, ; IIF(J.COLOANA_JC = 'RO09BVB', r.RO09B, ; IIF(J.COLOANA_JC = 'RO05B', r.RO05B, ; IIF(J.COLOANA_JC = 'ROSCN', r.ROSCN, ; IIF(J.COLOANA_JC = 'TI09BFB', r.TI09B, ; IIF(J.COLOANA_JC = 'TI19BFB', r.TI19B, ; IIF(J.COLOANA_JC = 'TI24B', r.TI24B, ; IIF(J.COLOANA_JC = 'TI20B', r.TI20B, ; IIF(J.COLOANA_JC = 'CEB', r.CEBB, ; IIF(J.COLOANA_JC = 'CE24SB', r.CESB, ; IIF(J.COLOANA_JC = 'CEBFN', r.CEN, ; IIF(J.COLOANA_JC = 'CEBFSC', r.CESC, ; IIF(J.COLOANA_JC = 'FOSCN', r.FOSCN, ; IIF(J.COLOANA_JC = 'FO09BVB', r.FO09B, ; IIF(J.COLOANA_JC = 'FO19BVB', r.FO19B, ; IIF(J.COLOANA_JC = 'XX19TIB', r.XX19TIB, ; IIF(J.COLOANA_JC = 'FO24B', r.FO24B, ; IIF(J.COLOANA_JC = 'FO20B', r.FO20B, ; 0)))))))))))))))))))) As N(16, 4)) As BAZA, ; CAST(Iif(J.COLOANA_JC = 'RO24B', r.RO24T, ; Iif(J.COLOANA_JC = 'RO20B', r.RO20T, ; IIF(J.COLOANA_JC = 'RO19BVB', r.RO19T, ; IIF(J.COLOANA_JC = 'RO09BVB', r.RO09T, ; IIF(J.COLOANA_JC = 'RO05B', r.RO05T, ; IIF(J.COLOANA_JC = 'TI09BFB', r.TI09T, ; IIF(J.COLOANA_JC = 'TI19BFB', r.TI19T, ; IIF(J.COLOANA_JC = 'TI24B', r.TI24T, ; IIF(J.COLOANA_JC = 'TI20B', r.TI20T, ; IIF(J.COLOANA_JC = 'CEB', r.CEBT, ; IIF(J.COLOANA_JC = 'CE24SB', r.CEST, ; IIF(J.COLOANA_JC = 'FO09BVB', r.FO09T, ; IIF(J.COLOANA_JC = 'FO19BVB', r.FO19T, ; IIF(J.COLOANA_JC = 'XX19TIB', r.XX19TIT, ; IIF(J.COLOANA_JC = 'FO24B', r.FO24T, ; IIF(J.COLOANA_JC = 'FO20B', r.FO20T, ; IIF(J.COLOANA_JC = 'ROTN', r.ROTN, ; IIF(J.COLOANA_JC = 'ROTN50', r.ROTN50, ; IIF(J.COLOANA_JC = 'ROTN100', r.ROTN100, ; 0))))))))))))))))))) As N(16, 4)) As TVA ; FROM cListRC r, JTVA_COLOANE J ; where tip = 0 And r.TVA_INCASARE = 0 And J.JC = 1 And !Empty(Nvl(J.COLOANA_JC, '')) ; INTO Cursor cListRCTemp1 Readwrite ENDIF && gnRC_REGCUMP_LISTARE_BUG *** SELECTEZ FACTURILE CU VALOARE 0 pe toate randurile WAIT WINDOW 'Facturi fara TVA Incasare cu valoare 0' NOWAIT Select distinct cod, id_fact, tip, denumire, nract, SERIE_ACT, dataact, COD_FISCAL, '' as COD_TVA, '' as EXPLICATIE_TVA, TOTCTVA, TOTFTVATAX, TOTTVATAX, TVA_INCASARE, ; baza, tva ; FROM cListRCTemp1 ; WHERE BAZA = 0 And TVA = 0 ; AND id_fact NOT in (SELECT id_fact FROM cListRCTemp1 Where !(BAZA = 0 And TVA = 0)) ; INTO CURSOR cListRCTemp2 NOFILTER Delete From cListRCTemp1 Where BAZA = 0 And TVA = 0 Update cListRCTemp1 Set COD_TVA = 'RO19B', EXPLICATIE_TVA = 'ACH. INT. 19%' Where Left(COD_TVA,5) = 'RO19B' Update cListRCTemp1 Set COD_TVA = 'RO09B', EXPLICATIE_TVA = 'ACH. INT. 9%' Where Left(COD_TVA,5) = 'RO09B' Update cListRCTemp1 Set COD_TVA = 'FO19B', EXPLICATIE_TVA = 'ACH. IMP. 19%' Where Left(COD_TVA,5) = 'FO19B' Update cListRCTemp1 Set COD_TVA = 'FO09B', EXPLICATIE_TVA = 'ACH. IMP. 9%' Where Left(COD_TVA,5) = 'FO09B' Update cListRCTemp1 Set COD_TVA = 'TI19B', EXPLICATIE_TVA = 'ACH. TX. INV. 19%' Where Left(COD_TVA,5) = 'TI19B' Update cListRCTemp1 Set COD_TVA = 'TI09B', EXPLICATIE_TVA = 'ACH. TX INV. 9%' Where Left(COD_TVA,5) = 'TI09B' * TOATE ACHIZITIILE CE, FARA NEIMPOZABILE (..N) SI SCUTITE (..SC) Update cListRCTemp1 Set EXPLICATIE_TVA = 'ACH. BUNURI CE' Where Left(COD_TVA,3) = 'CEB' AND !INLIST(RIGHT(ALLTRIM(COD_TVA), 1), 'C', 'N') Update cListRCTemp1 Set EXPLICATIE_TVA = 'ACH. BUNURI CE' Where Left(COD_TVA,5) = 'CE20B' Update cListRCTemp1 Set COD_TVA = 'CES', EXPLICATIE_TVA = 'ACH. SERVICII CE' Where Left(COD_TVA,6) = 'CE24SB' Update cListRCTemp1 Set COD_TVA = 'CES', EXPLICATIE_TVA = 'ACH. SERVICII CE' Where Left(COD_TVA,6) = 'CE20SB' Select cListRCTemp Append From Dbf('cListRCTemp1') Append From Dbf('cListRCTemp2') Use In (Select('cListRCTemp1')) Use In (Select('cListRCTemp2')) *** SELECTEZ EXPLICATIILE DE TVA 0% EXIGIBILE IN PERIOADA PENTRU FACTURILE CU TVA_INCASARE *** PE FACTURILE TVA_INCASARE POATE APAREA SI TAXARE INVERSA WAIT WINDOW 'Facturi TVA 0% exigibile in perioada pentru facturile cu TVA Incasare' NOWAIT Select r.cod, r.id_fact, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, J.COLOANA_JC As COD_TVA, J.denumire As EXPLICATIE_TVA, ; CAST(Iif(J.COLOANA_JC = 'ROSCN', r.ROSCN, ; IIF(J.COLOANA_JC = 'CEBFSC', r.CESC, ; IIF(J.COLOANA_JC = 'FOSCN', r.FOSCN, ; IIF(J.COLOANA_JC = 'TI09BFB', r.TI09B, ; IIF(J.COLOANA_JC = 'TI19BFB', r.TI19B, ; IIF(J.COLOANA_JC = 'TI24B', r.TI24B, ; IIF(J.COLOANA_JC = 'TI20B', r.TI20B, ; 0))))))) As N(16, 4)) As BAZA, ; CAST(Iif(J.COLOANA_JC = 'ROTN', r.ROTN, ; Iif(J.COLOANA_JC = 'ROTN50', r.ROTN50, ; Iif(J.COLOANA_JC = 'ROTN100', r.ROTN100, ; IIF(J.COLOANA_JC = 'TI09BFB', r.TI09T, ; IIF(J.COLOANA_JC = 'TI19BFB', r.TI19T, ; IIF(J.COLOANA_JC = 'TI24B', r.TI24T, ; IIF(J.COLOANA_JC = 'TI20B', r.TI20T, ; 0))))))) As N(16, 4)) As TVA ; FROM cListRC r, JTVA_COLOANE J ; WHERE tip = 0 And r.TVA_INCASARE = 1 And J.JC = 1 And !Empty(Nvl(J.COLOANA_JC, '')) And (Nvl(J.COTA_TVA, 0) = 0 OR LEFT(J.COLOANA_JC,2) = 'TI'); INTO Cursor cListRCTemp1 Readwrite Delete From cListRCTemp1 Where BAZA = 0 And TVA = 0 Update cListRCTemp1 Set COD_TVA = 'TI19B', EXPLICATIE_TVA = 'ACH. TX. INV. 19%' Where Left(COD_TVA,5) = 'TI19B' Update cListRCTemp1 Set COD_TVA = 'TI09B', EXPLICATIE_TVA = 'ACH. TX INV. 9%' Where Left(COD_TVA,5) = 'TI09B' Select cListRCTemp Append From Dbf('cListRCTemp1') Use In (Select('cListRCTemp1')) *!* *** Daca am pus filtru in RC, sterg facturile care nu se potrivesc filtrului *!* If !Empty(m.lcWhere) *!* Delete From cListRCTemp Where Padl(nract,14,'0') + '|' + Dtos(dataact) + '|' + Padr(denumire,100,' ') Not In ; *!* (Select Padl(nract,14,'0') + '|' + Dtos(dataact) + '|' + Padr(denumire,100,' ') From cListRC WHERE !EMPTY(NVL(denumire,'')) ) *!* Endif WAIT WINDOW 'TVA exigibilizat din plati facturi cu TVA Incasare' NOWAIT *** ADAUG TVA INCASARE (DIN INCASARI/PLATI, TVA 4427 LA 90 ZILE) TEXT to m.lcSql textmerge noshow select cast(0 as Number(10)) as nrc, a.cod, 2 As tip, jc.id_fact, jc.nract As nract, jc.serie_act, jc.dataact, a.nract As NRACTI, a.dataact As DATAACTI, fdoc.fel_document as FDOCI, p.denumire As denumire, p.COD_FISCAL, J.COTA_TVA, J2.COLOANA_JC As COD_TVA, J2.denumire As EXPLICATIE_TVA, round(a.suma * 100 / J.COTA_TVA, 2) As BAZA, a.suma As TVA, round(a.suma * 100 / J.COTA_TVA, 2) + a.suma As INCASAT, (select sum(suma) from act a1 where a1.an = ?m.gnAn and a1.luna = ?m.gnLuna and a1.sters = 0 and a1.id_factd = a.id_fact and a1.cod = a.cod) as INCASAT2 from act a left join jc2007 jc on a.id_fact = jc.id_fact left join nom_parteneri p on jc.id_part = p.id_part Left Join JTVA_COLOANE J On a.id_jtva_coloana = J.id_jtva_coloana LEFT Join JTVA_COLOANE J2 On J.id_jtva_coloana = J2.id_tva left join nom_fdoc fdoc on a.id_fdoc = fdoc.id_fdoc where a.an = ?m.gnAn and a.luna = ?m.gnLuna and a.sters = 0 and a.scd = '4426' And a.scc = '4428' And Nvl(a.id_jtva_coloana, 0) <> 0 and jc.an = ?m.gnAn and jc.luna = ?m.gnLuna and (jc.ro24nt <> 0 or jc.ro20nt <> 0 or jc.ro19nt <> 0 or jc.ro9nt <> 0 or jc.ro5nt <> 0) ORDER BY a.cod, J2.COLOANA_JC ENDTEXT *!* round(a.suma * 100 / J.COTA_TVA, 2) As BAZA *!* Round(a.suma * (100 + J.COTA_TVA) / J.COTA_TVA, 2) As INCASAT llSucces = goExecutor.oExecuta(m.lcSql, "cListRcTemp1") If m.llSucces Update cListRCTemp1 Set COD_TVA = 'RO19B', EXPLICATIE_TVA = 'ACH. INT. 19%' Where Left(COD_TVA,5) = 'RO19B' Update cListRCTemp1 Set COD_TVA = 'RO09B', EXPLICATIE_TVA = 'ACH. INT. 9%' Where Left(COD_TVA,5) = 'RO09B' *** daca am pus filtru in Registru pe Nume sau altceva *** sterg incasarile/platile care nu apartin de facturile filtrate *** ca sa am doar incasarile/platile care tin de filtru If !Empty(m.lcWhere) Delete From cListRCTemp1 Where Padl(nract,14,'0') + '|' + Dtos(dataact) + '|' + Padr(denumire,100,' ') Not In ; (Select Padl(nract,14,'0') + '|' + Dtos(dataact) + '|' + Padr(denumire,100,' ') From cListRCTemp WHERE !EMPTY(NVL(denumire,'')) ) Endif *** ROTUNJIRE BAZA EXIGIBILA = BAZA INCASAT - TVA EXIGIBIL PENTRU FIECARE INCASARE *** INCASAT ESTE TOATA SUMA INCASATA, TREBUIE SA CALCULEZ BAZELE AFERENTE TVA-URILOR DIN SUMA INCASATA Select cListRCTemp1 Go Top lnCod = cod lnNrAct = nract lcSerieAct = NVL(serie_act, '') ldDataAct = dataact lcDenumire = denumire lnNrc = 0 Scan lnNrc = m.lnNrc + 1 If m.lnCod <> cod Or m.lnNrAct <> nract OR m.lcSerieAct <> NVL(serie_act, '') Or m.ldDataAct <> dataact Or m.lcDenumire <> denumire lnNrc = 1 Endif lnCod = cod Replace nrc With m.lnNrc Endscan *** adun diferenta la prima baza Select cod, nract, serie_act, dataact, denumire, INCASAT2, Sum(INCASAT) As INCASAT ; from cListRCTemp1 ; group By cod, nract, serie_act, dataact, denumire, INCASAT2 ; into Cursor cIncasariTVA Select cIncasariTVA Scan lnCod = cod lnNrAct = nract lcSerieAct = NVL(serie_act, '') ldDataAct = dataact lcDenumire = denumire lnIncasat = Nvl(INCASAT, 0) lnIncasat2 = Nvl(INCASAT2,0) lnIncasat3 = 0 && suma baza EXPLICATII DE TVA 0% EXIGIBILE *!* select cListRcTemp1 *!* locate for cod = m.lnCod and nrc = 1 *!* if found() *!* lnIdFact = id_fact *!* select cListRcTemp *!* calculate sum(baza) to lnIncasat3 for id_Fact = m.lnIdFact and tip = 0 and tva = 0 in cListRcTemp && baza TVA 0% *!* endif Calculate Sum(BAZA) To lnIncasat3 For denumire = m.lcDenumire And nract = m.lnNrAct AND NVL(serie_act, '') = m.lcSerieAct And dataact = m.ldDataAct And tip = 0 And TVA = 0 In cListRCTemp && baza TVA 0% lnDiferenta = Iif(m.lnIncasat2 <> 0, m.lnIncasat2 - m.lnIncasat - m.lnIncasat3, 0) *** exista posibilitatea ca tva-ul din suma achitata sa nu fie corespunzator intregii sume (daca am si limitare deductibilitate tva) *** daca este prea mare diferenta dintre suma incasata si baza calculata, nu mai adun diferenta If Abs(m.lnDiferenta) > 1 m.lnDiferenta = 0 Endif If m.lnDiferenta <> 0 Select cListRCTemp1 Locate For cod = m.lnCod And denumire = m.lcDenumire And nract = m.lnNrAct AND NVL(serie_act, '') = m.lcSerieAct And dataact = m.ldDataAct And nrc = 1 If Found() Replace INCASAT With INCASAT + m.lnDiferenta, BAZA With BAZA + m.lnDiferenta Endif Endif Endscan Use In (Select('cIncasariTVA')) Update cListRCTemp1 Set nract = 0 Where Isnull(nract) Update cListRCTemp1 Set denumire = '' Where Isnull(denumire) Update cListRCTemp1 Set COD_FISCAL = '' Where Isnull(COD_FISCAL) Update cListRCTemp1 Set FDOCI = '' Where Isnull(FDOCI) Select cListRCTemp Append From Dbf('cListRcTemp1') *** ROTUNJIRE BAZA FACTURA - BAZE EXIGIBILE *** bazele exigibile de pe facturile cu TVA INCASARE Select nract, serie_act, dataact, denumire, Sum(BAZA) As BAZA ; from cListRCTemp ; where TVA_INCASARE = 0 And tip = 0 And TOTCTVA <> 0 ; group By nract, serie_act, dataact, denumire ; into Cursor cFacturiTVAIncasare Select cFacturiTVAIncasare Scan lnNrAct = nract lcSerieAct = NVL(serie_act, '') ldDataAct = dataact lcDenumire = denumire lnBazaFact = BAZA *** baza exigibila din tip = 0 (tva 0%) si tip = 2 (incasari/plati) Calculate Sum(BAZA) To lnBazaExigibila In cListRCTemp For TVA_INCASARE = 0 And Inlist(tip, 0, 2) And TOTCTVA = 0 And denumire = m.lcDenumire And ; nract = m.lnNrAct AND NVL(serie_act, '') = m.lcSerieAct And dataact = m.ldDataAct lnDiferenta = Iif(m.lnBazaFact <> 0, m.lnBazaFact - m.lnBazaExigibila, 0) If m.lnDiferenta <> 0 Select cListRCTemp Locate For BAZA <> 0 And TVA_INCASARE = 0 And tip = 2 And TOTCTVA = 0 And denumire = m.lcDenumire And nract = m.lnNrAct ; AND NVL(serie_act, '') = m.lcSerieAct And dataact = m.ldDataAct If Found() Replace INCASAT With BAZA + m.lnDiferenta + TVA, BAZA With BAZA + m.lnDiferenta Endif Endif Endscan Use In (Select('cFacturiTVAIncasare')) Endif Use In (Select('cListRcTemp1')) WAIT WINDOW 'Recapitulatie' NOWAIT *** SELECTEZ INREGISTRARILE TIP = 1 RECAPITULATIE IF m.lnOptiuneBug = 1 SELECT r.cod, r.id_fact, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, SPACE(20) as COD_TVA, SPACE(250) as EXPLICATIE_TVA, r.TOTCTVA, r.TOTFTVATAX, r.TOTTVATAX, TVA_INCASARE, ; CAST(0 As N(16, 4)) As BAZA, ; CAST(0 As N(16, 4)) As TVA ; FROM cListRC r ; WHERE .F. ; INTO Cursor cListRCTemp1 Readwrite SELECT cListRC lcRecc = ALLTRIM(STR(RECCOUNT())) SCAN FOR tip = 1 SCATTER NAME loRC WAIT WINDOW 'Recapitulatie ' + ALLTRIM(STR(RECNO())) + '/'+ m.lcRecc NOWAIT ADDPROPERTY(loRC,'cod_tva', '') ADDPROPERTY(loRC,'explicatie_tva', '') ADDPROPERTY(loRC,'baza',0.00) ADDPROPERTY(loRC,'tva', 0.00) SELECT JTVA_COLOANE SCAN FOR jc = 1 And INLIST(ALLTRIM(coloana_jc), 'RO24B','RO20B', 'RO19BVB', 'RO09BVB', 'RO05B', 'ROSCN', 'TI09BFB', 'TI19BFB', 'TI24B', 'TI20B', ; 'CEB', 'CE24SB', 'CEBFN', 'CEBFSC','FO09BVB', 'FO19BVB', 'XX19TIB', 'FO24B', 'FO20B','ROTN','ROTN50','ROTN100') loRC.cod_tva = ALLTRIM(coloana_jc) loRC.explicatie_tva = ALLTRIM(denumire) loRC.baza = Iif(loRC.cod_tva = 'RO24B', loRC.RO24B, ; Iif(loRC.cod_tva = 'RO20B', loRC.RO20B, ; IIF(loRC.cod_tva = 'RO19BVB', loRC.RO19B, ; IIF(loRC.cod_tva = 'RO09BVB', loRC.RO09B, ; IIF(loRC.cod_tva = 'RO05B', loRC.RO05B, ; IIF(loRC.cod_tva = 'ROSCN', loRC.ROSCN, ; IIF(loRC.cod_tva = 'TI09BFB', loRC.TI09B, ; IIF(loRC.cod_tva = 'TI19BFB', loRC.TI19B, ; IIF(loRC.cod_tva = 'TI24B', loRC.TI24B, ; IIF(loRC.cod_tva = 'TI20B', loRC.TI20B, ; IIF(loRC.cod_tva = 'CEB', loRC.CEBB, ; IIF(loRC.cod_tva = 'CE24SB', loRC.CESB, ; IIF(loRC.cod_tva = 'CEBFN', loRC.CEN, ; IIF(loRC.cod_tva = 'CEBFSC', loRC.CESC, ; IIF(loRC.cod_tva = 'FOSCN', loRC.FOSCN, ; IIF(loRC.cod_tva = 'FO09BVB', loRC.FO09B, ; IIF(loRC.cod_tva = 'FO19BVB', loRC.FO19B, ; IIF(loRC.cod_tva = 'XX19TIB', loRC.XX19TIB, ; IIF(loRC.cod_tva = 'FO24B', loRC.FO24B, ; IIF(loRC.cod_tva = 'FO20B', loRC.FO20B, ; 0)))))))))))))))))))) loRC.tva = Iif(loRC.cod_tva = 'RO24B', loRC.RO24T, ; Iif(loRC.cod_tva = 'RO20B', loRC.RO20T, ; IIF(loRC.cod_tva = 'RO19BVB', loRC.RO19T, ; IIF(loRC.cod_tva = 'RO09BVB', loRC.RO09T, ; IIF(loRC.cod_tva = 'RO05B', loRC.RO05T, ; IIF(loRC.cod_tva = 'TI09BFB', loRC.TI09T, ; IIF(loRC.cod_tva = 'TI19BFB', loRC.TI19T, ; IIF(loRC.cod_tva = 'TI24B', loRC.TI24T, ; IIF(loRC.cod_tva = 'TI20B', loRC.TI20T, ; IIF(loRC.cod_tva = 'CEB', loRC.CEBT, ; IIF(loRC.cod_tva = 'CE24SB', loRC.CEST, ; IIF(loRC.cod_tva = 'FO09BVB', loRC.FO09T, ; IIF(loRC.cod_tva = 'FO19BVB', loRC.FO19T, ; IIF(loRC.cod_tva = 'XX19TIB', loRC.XX19TIT, ; IIF(loRC.cod_tva = 'FO24B', loRC.FO24T, ; IIF(loRC.cod_tva = 'FO20B', loRC.FO20T, ; IIF(loRC.cod_tva = 'ROTN', loRC.ROTN, ; IIF(loRC.cod_tva = 'ROTN50', loRC.ROTN50, ; IIF(loRC.cod_tva = 'ROTN100', loRC.ROTN100, ; 0))))))))))))))))))) IF !(loRC.baza = 0 AND loRC.tva = 0) SELECT cListRCTemp1 APPEND BLANK GATHER NAME loRC ENDIF ENDSCAN && JTVA_COLOANE JC = 1 And !Empty(Nvl(J.COLOANA_JC, '')) ENDSCAN && cListRC tip = 0 AND tva_incasare = 0 ELSE Select r.cod, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL, J.COLOANA_JC As COD_TVA, J.denumire As EXPLICATIE_TVA, r.TOTCTVA, r.TOTFTVATAX, r.TOTTVATAX, TVA_INCASARE, ; CAST(Iif(J.COLOANA_JC = 'RO24B', r.RO24B, ; Iif(J.COLOANA_JC = 'RO20B', r.RO20B, ; IIF(J.COLOANA_JC = 'RO19BFB', r.RO19B, ; IIF(J.COLOANA_JC = 'RO09BFB', r.RO09B, ; IIF(J.COLOANA_JC = 'RO05B', r.RO05B, ; IIF(J.COLOANA_JC = 'ROSCN', r.ROSCN, ; IIF(J.COLOANA_JC = 'TI09BFB', r.TI09B, ; IIF(J.COLOANA_JC = 'TI19BFB', r.TI19B, ; IIF(J.COLOANA_JC = 'TI24B', r.TI24B, ; IIF(J.COLOANA_JC = 'TI20B', r.TI20B, ; IIF(J.COLOANA_JC = 'CEB', r.CEBB, ; IIF(J.COLOANA_JC = 'CE24SB', r.CESB, ; IIF(J.COLOANA_JC = 'CEBFN', r.CEN, ; IIF(J.COLOANA_JC = 'CEBFSC', r.CESC, ; IIF(J.COLOANA_JC = 'FOSCN', r.FOSCN, ; IIF(J.COLOANA_JC = 'FO09B', r.FO09B, ; IIF(J.COLOANA_JC = 'FO19B', r.FO19B, ; IIF(J.COLOANA_JC = 'XX19TIB', r.XX19TIB, ; IIF(J.COLOANA_JC = 'FO24B', r.FO24B, ; IIF(J.COLOANA_JC = 'FO20B', r.FO20B, ; 0)))))))))))))))))))) As N(16, 4)) As BAZA, ; CAST(Iif(J.COLOANA_JC = 'RO24B', r.RO24T, ; Iif(J.COLOANA_JC = 'RO20B', r.RO20T, ; IIF(J.COLOANA_JC = 'RO19BFB', r.RO19T, ; IIF(J.COLOANA_JC = 'RO09BFB', r.RO09T, ; IIF(J.COLOANA_JC = 'RO05B', r.RO05T, ; IIF(J.COLOANA_JC = 'TI09BFB ', r.TI09T, ; IIF(J.COLOANA_JC = 'TI19BFB ', r.TI19T, ; IIF(J.COLOANA_JC = 'TI24B ', r.TI24T, ; IIF(J.COLOANA_JC = 'TI20B ', r.TI20T, ; IIF(J.COLOANA_JC = 'CEB', r.CEBT, ; IIF(J.COLOANA_JC = 'CE24SB', r.CEST, ; IIF(J.COLOANA_JC = 'FO09B ', r.FO09T, ; IIF(J.COLOANA_JC = 'FO19B ', r.FO19T, ; IIF(J.COLOANA_JC = 'XX19TIB ', r.XX19TIT, ; IIF(J.COLOANA_JC = 'FO24B', r.FO24T, ; IIF(J.COLOANA_JC = 'FO20B', r.FO20T, ; IIF(J.COLOANA_JC = 'ROTN', r.ROTN, ; IIF(J.COLOANA_JC = 'ROTN50', r.ROTN50, ; IIF(J.COLOANA_JC = 'ROTN100', r.ROTN100, ; 0))))))))))))))))))) As N(16, 4)) As TVA ; FROM cListRC r FULL JOIN JTVA_COLOANE J ON 1=1 ; where tip = 1 And J.JC = 1 And !Empty(Nvl(J.COLOANA_JC, '')) ; INTO Cursor cListRCTemp1 Readwrite ENDIF WAIT WINDOW 'Completare recapitulatie cu facturi neexigibile' NOWAIT *** adaug si lunile care nu au nimic exigibil Select Distinct r.cod, r.tip, r.denumire, r.nract, r.SERIE_ACT, r.dataact, r.COD_FISCAL ; from cListRCTemp1 r ; where cod Not In (Select cod From cListRCTemp1 Where !(BAZA = 0 And TVA = 0)) ; into Cursor cListRCTemp2 Delete From cListRCTemp1 Where BAZA = 0 And TVA = 0 Update cListRCTemp1 Set COD_TVA = 'RO19B', EXPLICATIE_TVA = 'ACH. INT. 19%' Where Left(COD_TVA,5) = 'RO19B' Update cListRCTemp1 Set COD_TVA = 'RO09B', EXPLICATIE_TVA = 'ACH. INT. 9%' Where Left(COD_TVA,5) = 'RO09B' Update cListRCTemp1 Set COD_TVA = 'TI19B', EXPLICATIE_TVA = 'ACH. TX. INV. 19%' Where Left(COD_TVA,5) = 'TI19B' Update cListRCTemp1 Set COD_TVA = 'TI09B', EXPLICATIE_TVA = 'ACH. TX INV. 9%' Where Left(COD_TVA,5) = 'TI09B' Update cListRCTemp1 Set EXPLICATIE_TVA = 'ACH. BUNURI CE' Where Left(COD_TVA,3) = 'CEB' AND !INLIST(RIGHT(ALLTRIM(COD_TVA), 1), 'C', 'N') Update cListRCTemp1 Set EXPLICATIE_TVA = 'ACH. BUNURI CE' Where Left(COD_TVA,5) = 'CE20B' Update cListRCTemp1 Set COD_TVA = 'CES', EXPLICATIE_TVA = 'ACH. SERVICII CE' Where Left(COD_TVA,6) = 'CE24SB' Update cListRCTemp1 Set COD_TVA = 'CES', EXPLICATIE_TVA = 'ACH. SERVICII CE' Where Left(COD_TVA,6) = 'CE20SB' Select cListRCTemp Append From Dbf('cListRCTemp1') Append From Dbf('cListRCTemp2') Use In (Select('cListRCTemp1')) Use In (Select('cListRCTemp2')) *** completez nume, nract, dataact pentru inregistrarile TVA care nu le au completate WAIT WINDOW 'Completare infomatii inregistrari TVA' NOWAIT Select cListRCTemp Scan For tip = 2 lcNumeAct = denumire + Str(nract, 14, 0) lnCod = cod If Seek(m.lnCod, 'cListRC', 'cod') Replace denumire With cListRC.denumire, nract With cListRC.nract, dataact With cListRC.dataact In cListRCTemp Else If Seek(m.lcNumeAct, 'cListRC', 'numeact') Replace cod With cListRC.cod, dataact With cListRC.dataact In cListRCTemp Endif && seek Endif && seek Endscan Use In (Select('cListRC')) Select Cast(0 As I) As nrcrt, Cast(0 As I) As nrcrtf, * From cListRCTemp Into Cursor cListRC Order By dataact, nract, denumire, tip Readwrite Update cListRC Set tip = 0 Where tip = 2 && incasarile pe acelasi nivel cu facturile Use In (Select('cListRCTemp')) *** INSUMEZ FACTURILE DUPA NRACT, DATAACT, DENUMIRE *!* SELECT Cast(0 As I) As nrcrt, Cast(0 As I) As nrcrtf, min(COD) as COD, min(ID_FACT) as ID_FACT, TIP, DENUMIRE, NRACT, SERIE_ACT, DATAACT, COD_FISCAL, COD_TVA, EXPLICATIE_TVA, TVA_INCASARE, NRACTI, DATAACTI, FDOCI, ; *!* sum(INCASAT) AS INCASAT, sum(TOTCTVA) AS TOTCTVA, sum(TOTFTVATAX) AS TOTFTVATAX, sum(TOTTVATAX) AS TOTTVATAX, sum(BAZA) AS BAZA, sum(TVA) AS TVA, sum(BAZAN) AS BAZAN, sum(TVAN) AS TVAN ; *!* from cListRCTemp ; *!* where tip = 0 ; *!* group by TIP, DENUMIRE, NRACT, SERIE_ACT, DATAACT, COD_FISCAL, COD_TVA, EXPLICATIE_TVA, TVA_INCASARE, NRACTI, DATAACTI, FDOCI ; *!* union all ; *!* SELECT Cast(0 As I) As nrcrt, Cast(0 As I) As nrcrtf, COD, ID_FACT, TIP, DENUMIRE, NRACT, SERIE_ACT, DATAACT, COD_FISCAL, COD_TVA, EXPLICATIE_TVA, TVA_INCASARE, NRACTI, DATAACTI, FDOCI, ; *!* INCASAT, TOTCTVA, TOTFTVATAX, TOTTVATAX, BAZA, TVA, BAZAN, TVAN ; *!* from cListRCTemp ; *!* where tip <> 0 ; *!* Into Cursor cListRC ; *!* Order By 9, 7, 6, 5 Readwrite *** STERG NUME, NRACT... DE PE INREGISTRARILE 2..N (EXPLICATII_TVA) PENTRU ACEEASI FACTURA Select cListRC Go Top lnCod = 0 lcSerieAct = "" lnNrAct = 0 ldDataAct = {} lcDenumire = "" lnNrCrt = 0 lnNrCrtF = 0 Scan *!* If m.lnCod <> cod && prima linie din fiecare factura If m.lcSerieAct <> serie_act OR m.lnNrAct <> nract Or m.ldDataAct <> dataact Or m.lcDenumire <> denumire && prima linie din fiecare factura lnCod = cod lcSerieAct = serie_act lnNrAct = nract ldDataAct = dataact lcDenumire = denumire lnNrCrt = m.lnNrCrt + 1 lnNrCrtF = 1 && numar curent in cadrul fiecarei facturi Replace nrcrt With m.lnNrCrt, nrcrtf With m.lnNrCrtF Else && liniile 2..n din facturi lnNrCrtF = m.lnNrCrtF + 1 Replace nrcrt With m.lnNrCrt, nrcrtf With m.lnNrCrtF, denumire With '', nract With 0, SERIE_ACT With '', dataact With {}, COD_FISCAL With "", TOTCTVA With 0, TOTFTVATAX With 0, TOTTVATAX With 0 Endif Endscan *** TOTALURI EXIGIBIL PE COTE TVA *** ADUN FIE INREGISTRARILE DIN LUNA CURENTA TIP = 0, FIE INREGISTRARILE TIP RECAPITULATIE TIP = 1 WAIT WINDOW 'Total exigibil pe cote TVA' NOWAIT lnTip = Iif(m.lnMeniu = 1, 0, 1) Insert Into cListRC (tip, COD_TVA, EXPLICATIE_TVA, INCASAT, BAZA, TVA) ; Select 2 As tip, COD_TVA, EXPLICATIE_TVA, Sum(INCASAT) As INCASAT, Sum(BAZA) As BAZA, Sum(TVA) As TVA ; from cListRC ; where tip = m.lnTip And !Empty(Nvl(COD_TVA, '')) ; ORDER By COD_TVA ; group By COD_TVA, EXPLICATIE_TVA Select cListRC Use In (Select('JTVA_COLOANE')) *** FORMAT TVA INCASARE 2013 ^ If Reccount('cListRC') > 0 Thisform.AlwaysOnTop = .F. IF AMESSAGEBOX('Doriti listare clasica?',4+32,_screen.Caption) = 6 goExport.export2frx([cListRc], [registru_jtva2013]) ELSE goExport.export2frx([cListRc], [registru_jtva2013], , , , , , .T.) ENDIF Thisform.AlwaysOnTop = .T. Endif Use In (Select('cListRC'))