*!* 23.07.2010 *!* marius.mutu *!* declaratia394 - este optional daca se aduna si achizitiile din tara scutite sau neimpozabile (ROSCN) *!* 09.08.2010 *!* marius.mutu *!* viz_decontTVA_0710 && 07/2010 TVA 24% *!* 12.04.2011 *!* marius.mutu *!* viz_decl390 - tratare coduri fiscale nule *!* 08.02.2012 *!* marius.mutu *!* viz_decontTVA_0112 && 01/2012 CORELARE D394, CEREALE *!* RANDURI NOI 17, 17.1., 27.1 *!* 09.02.2012 *!* D394 *!* nu se lua in considerare TAXARE INVERSA IN cursorul final D394 *!* 10.02.2012 *!* D390 *!* nu trebuie incluse in declaratie livrari scutite cu drept de deducere cf. art. 143 b,c (coduri nevalide) *!* 21.02.2012 *!* D394 - nu se mai sterg fisierele PDF, XDP daca se apeleaza din D300 silentios *!* daca se genera D394 si apoi D300, se stergeau fisierele D394 fara sa stie utilizatorul *!* XDP D394,D300 - nu se mai pune tag-ul universalcode in XDP - suprascria versiunea PDF-ului *!* 23.02.2012 *!* marius.mutu *!* D394.do_executa - cursorul cu codurifiscale pentru verificare are si coloana "atribut_fiscal" *!* necesara pentru formularul de verificare coduri fiscale *!* 07.03.2012 *!* marius.mutu *!* calculeaza_decl101 *!* rd 28 6582 (in cod) *!* rd 40.1 = 16% rd. 39 (in formula total tabel) *!* rd 43 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod si in formula total tabel) (rd. 1 din Contul de Profit si Pierdere) (in cod *!* rd 27 protocol peste limita legala 2% (rd. 10 + rd. 24 + 623.protocol) *!* 26.03.2012 *!* marius.mutu *!* D394.do_executa *!* TVA LIVRARI TAXARE INVERSA = 0 IN LOC DE 0.24 * BAZA *!* 18.05.2012 *!* marius.mutu *!* D390.do_executa *!* nu se includeau achizitiile de bunuri (era de 2 ori cesb <> 0 in loc de cebb <> 0) *!* 20.07.2012 *!* marius.mutu *!* D300 viz_decontTVA0112 *!* randul 20 si randul 7 nu se mai aduna TAXARE INVERSA DIN TARA *!* la livrari, taxarea inversa era si pe randul 7 si pe randul 12, care faceau parte din randul 17 total si se aduna de doua ori *!* in plus, la livrari, rd 1 - 17 sunt doar COMERT INTRACOMUNITAR SI IN AFARA UE; TX INV este interna si nu avea ce cauta in sectiunea aceasta. *!* D100 *!* corectat randul 02 - impozit pe profit persoane juridice *!* nu se mai completeaza randul 07 cu impozitul din salarii *!* 09.11.2012 *!* marius.mutu *!* D300 - nu mai completez id_jtva 1001 si 1002 pe randurile 30 si 16 (regularizare taxa dedusa/colectata) *** id_jtva = 1001 s-a redenumit in limitare deducere TVA 4426 ROTN si se scade din rd 28 = rd 27 - ROTN *!* 16.11.2012 *!* marius.mutu *!* s-a introdus ID_JTVA 1003 regularizare taxa dedusa, ID_JTVA 1001 s-a schimbat in limitare deducere TVA 4426 *!* D300 - completez din nou ID_JTVA 1002 (regularizare taxa colectata) pe rd. 30 si ID_JTVA 1003 (regularizare taxa dedusa) pe rd. 16 *!* 25.01.2013 *!* marius.mutu *!* D394 - se afiseaza tipurile de documente si pentru partenerii fara RO in cod fiscal *!* 22.03.2013 *!* marius.mutu *!* viz_regvanz, viz_regcump - adaugare coloana diferenta_tva_incasare (plata - (baza+tva exigibil)) la cautare *!* 16.04.2013 *!* marius.mutu *!* viz_decontTVA_0113 - sold neexigibil din ultima luna, in loc de toate lunile din perioada *!* 18.07.2013 *!* marius.mutu *!* viz_decontTVA_0113 randul 35 ia platile 4423 = X, din toata perioada *!* 08.01.2014 *!* marius.mutu *!* Declaratia 394 valabila din 12/2013 *!* D394.do_executa, + do_genereaza_xdp_201312 *!* 15.01.2014 *!* marius.mutu *!* D394.do_executa - defalcare nrfact, nrfact taxare inversa (nu calcula corect pentru un partener care avea si facturi normale si facturi taxare inversa, punea toate facturile pe ambele randuri) *!* 23.01.2014 *!* marius.mutu *!* D394 *!* do_genereaza_xdp_201312 se iau in considerare clientii / furnizorii cu nrfact <> 0, in loc de baza <> 0 (este posibil sa am un furnizori cu factura + si factura -, pe total 0, dar are 2 facturi) *!* 04.03.2014 *!* marius.mutu *!* D101 - recalculare sold 711 la fel ca la SITFIN.F20 (venituri exploatare) *!* 12.03.2014 *!* marius.mutu *!* D101 - se poate calcula pe perioade 02-12,04-12,07-12,10-13 *!* 13.03.2014 *!* marius.mutu *!* D101 *!* la randul 02 ch. din exploatare se aduna si ch. impozit profit/venit 691/698 (care apoi se scade ca cheltuiala nedeductibila) *!* la randul 24 ch. cu impozitul pe profit se include si impozitul pe venit *!* Se completeaza randul 49 Impozit pe venit declarat in D100 la 30.09 *!* 13.03.2014 *!* marius.mutu *!* D097.do_executa - reparat eroare instantiere clasa frm_aleg_tipdoc *!* 27.01.2015 *!* marius.mutu *!* viz_decontTVA_0113 - Rd. 35 doar 4423 = 5311/5121 in locd e 4423 = x *!* D101 valabil 2014 *!* viz_decl100_102: impozit pe profit se ia rulaj debitor 691 in loc de rulaj creditor 441/4411 *!* 20.03.2015 *!* marius.mutu *!* viz_decl101. Rd. 16 Rezerva legala deductibila = 0 daca profitul brut < 0 *!* 10.12.2015 *!* marius.mutu *!* D392 - cifra de afaceri este suma livrarilor - 7583 (vanzari de active) CF art 152 a 2 *!* #4252 *!* D097 - se calculeaza cifra de afaceri pentru perioda ianuarie - (luna curenta-1) in loc de un an in urma *!* #4247 *!* 02.02.2016 *!* marius.mutu *!* D392, D101 - declaratii pdf 2015 *!* 02.02.2016 *!* marius.mutu *!* d394.do_executa - cota TVA 20% 2016 *!* 24.08.2016 *!* marius.mutu *!* d394_2016.do_genereaza_xdp - nu se declara decat tipul document F si M. Nu mai declar si achizitii bonurile fiscale cu CUI (ex: ROMPETROL) *!* NU STIU SIGUR!!! in instructiuni se spune facturi si/sau alte documente. Ce sunt alte documente? *!* 26.09.2016 *!* marius.mutu *!* D394_2016.LIST crsFacturiEmiseTip seria NULL - dadea eroare la insert de facturi stornate fara serie *!* 26.09.2016 *!* marius.mutu *!* d394_2016.configureaza_date_jtva, do_genereaza_xdp: se rapoarteaza facturile tip LS, AS (livrari, achizitii regim special - servicii turism, second hand fara TVA pe factura (tva la marja de profit) *!* do_genereaza_xdp - cota 0 pentru LS, AS, N, V *!* 14.10.2016 *!* d394_2016.pregateste_sectiunea_1_2 *!* IdTipDoc = 24 sau 5 plaja de facturi special creata pentru declararea in D394. Nu se foloseste la generarea de numere de facturi *!* 26.10.2016 *!* marius.mutu *!* d394_2016.pregateste_sectiunea_facturi_pers_fizice_10000 - se iau doar tip_persoana = 2 (pers fizica) *!* d394_2016 * emisa_in_perioada = dataireg in perioada, in loc de dataact in perioada *!* d394_2016 * se ia si tip_persoana fizica/juridica din vjv2013, vjc2013 *!* d394_2016.citeste_date_jtva - se iau dor facturile din jurnalele de tva care au tva <> 0 sau TOTAL = 0, nu mai iau si pe cele cu tva = 0 (ex: neimpozabile) *!* d394_2016.pregateste_sectiunea_1_2 cursorul cu serii/plaje facturi emise nu lua prima factura daca erau doar o singura factura *!* 09.11.2016 *!* marius.mutu *!* d394_2016.do_genereaza_xdp - corectie , facturi pers fizice valoare absoluta > 10000 *!* d394_2016.pregateste_sectiunea_facturi_pers_fizice_10000 facturi pers fizice valoare absoluta > 10000, doar documentele tip factura F,M,U,H *!* 21.11.2016 *!* marius.mutu *!* citeste_date_jtva - corectie numar bonuri fiscale B,C, exceptate de la AMEF E *!* 25.11.2016 *!* d394_2016.genereaza_xdp - se sterg facturile catre pers fizice < 10.000 lei. apareau daca totalul facturilor pe o persoana fizica > 10.000 lei *!* s-au inclus si achizitiile ROSCN (pers neinregistrate - pers juridice fara RO sau pers fizice). nu mai erau incluse pentru ca pusesem conditie TVA <> 0, la fel ca la livrari *!* citeste_date_jtva sterg facturile de achizitie de la platitorii de TVA (RO) care au doar baza00 <> 0 (ROSCN). nu trebuie sa apara in declaratie. doar la tipul 2 (neinregistrati in scopuri TVA) *!* 19.12.2016 *!* d394_2016.citeste_date_jtva - nu se sterg facturile de achizitie de la platitorii de TVA (RO), cu TVA 0, de tip AS (turism, second hand) *!* 19.01.2017 *!* marius.mutu *!* D097.do_executa - includere RO20B in calculul cifrei de afaceri *!* 11.02.2017 *!* marius.mutu *!* D300 viz_decontTVA_0117 *!* 15.02.2017 *!* marius.mtuut *!* D394_2016 *!* + TVA 19% neexigibil, facturile persoane fizice <10000 doar in perioada 07/2016-12/2016 *!* 25.04.2017 *!* marius.mutu *!* D394_2016.citeste_date_jtva - facturile anulate din act chiar si fara serie (exproton nu are serii) *!* viz_decontTVA_0117 - se calculeaza Regularizare taxa colectata (rd 16) si regularizare taxa dedusa (rd 32) din facturile cu data act din alta luna decat data inregistrarii, in perioada declaratiei *!* 19.06.2017 *!* marius.mutu *!* viz_decontTVA_0117. nu se pune pe Rd. 26 regularizari taxa dedusa taxare inversa 9% si 19% *!* 26.07.2017 *!* marius.mutu *!* d394_2016.do_genereaza_xdp - tratare caz fara facturi *!* 19.12.2017 *!* marius.mutu *!* viz_decontTVA_0117 - corectare suma rand 3 din decontul de TVA D300 *!* 27.03.2018 *!* D394_2016 *!* corectie autofacturi *!* 27.09.2018 *!* d394.2016.do_genereaza_xdp - eliminare xmlcharacters si diacritice din strada, bloc, numar *!* 24.01.2019 *!* d394_2016.do_genereaza_xdp - tratare tip_document = 4 ('R' - contract) *!* 11.03.2019 *!* d101.calculare_2018 se foloseste setul cont profit si pierdere sem. II 2018 in loc de II 2015. au fost adaugate conturi *!* 19.08.2019 *!* viz_decontTVA_0719 *!* 23.08.2019 *!* d394_2016.do_genereaza_xdp - se exclud facturile simplificate (M) din sectiunea de facturi. Se declara in sectiunea I1.3 *!* 27.01.2020 *!* viz_decl392 12/2019 *!* 25.02.2020 *!* d394_2016.pregateste_sectiunea_1_2: plaje numere tin cont de prefix si an2caractere *!* 24.03.2020 *!* Actualizare D390 02/2020 *!* 23.04.2020 *!* Actualizare D100 03/2020 *!* 22.09.2020 *!* D394_2016 + bifa persoane afiliate *!* 09.12.2020 *!* D097 - nu se afiseaza tipuri documente cu id_fdoc NULL *!* 26.01.2021 *!* d394_2016.pregateste_sectiunea_1_2 *!* plaje numere alocate facturi nu tinea cont de facturi alocate d394 sterse *!* 25.01.2022 *!* viz_decontTVA_0719, viz_regcump + XX19TIB, XX19TIT, ROTN50, ROTN100 *!* 25.03.2022 *!* D101 12/2021 *!* D394 tippart=4 dupa codtara <> RO sau UE *!* 03.08.2022 *!* D394_2016. tippart=2 persoane neinregistrate si din afara RO (fara atribut fiscal sau persoane fizice) *!* 23.02.2023 *!* D394_2016 - facturi anulate doar din documentele anulate cu tip_doc = M,F *!* 21.06.2024 *!* D394_2016 - se completeaza xml sectiunile 2.3, 2.4 facturi emise de beneficiari, terti in numele persoanei impozabile *!* 17.10.2024 *!* D394 - CORECTARE calcul numar bonuri fiscale daca sunt introduse cu acelasi cod *!* 20.02.2025 *!* ACTUALIZARE D300, D394 - CAEN REV3 *!* ACTUALIZAER D205 12/2024 *!* 12.05.2025 *!* viz_decontTVA_0719, d394 + ACH. TAXARE INVERSA NON-CE XX9TIB, XX19TIT *!* 21.08.2025 *!* viz_regcump 07/2025 corectie afisare limitare deducere 50% *!* 08.01.2026 *!* d394_2025.citeste_date_jtva - am inclus si XX21TI, XX11TI - ACH. TX. INV. NON-CE 21%/11% *!* am corectat tipul 4 de persoane - in afara RO, NON-CE, pers. juridice, fara cod fiscal *!* do_genereaza_xdp - corectat crsamef 21% *!* 04.02.2026 *!* calculeaza_2024 *!* modificat din scrierea pe randul 50, in loc randul 49 *!* pn49 a devenit pn50 *!* 25.02.2026 *!* D394 bonuri fiscale 11% le pune pe 19% *!* do_genereaza_xdp - corectat crsamef 11% #Include COMUN\Include\COMUN.H *=========================================== Procedure viz_decontTVA Parameters tlTrim LOCAL lcPerioadaTVA IF PCOUNT() = 0 tlTrim = 1 lcPerioadaTVA = UPPER(ALLTRIM(NVL(m.gcPERIOADA_TVA, 'LUNAR'))) DO CASE CASE m.lcPerioadaTVA = 'LUNAR' tlTrim = 1 CASE m.lcPerioadaTVA = 'TRIMESTRIAL' tlTrim = 3 CASE m.lcPerioadaTVA = 'SEMESTRIAL' tlTrim = 6 CASE m.lcPerioadaTVA = 'ANUAL' tlTrim = 12 ENDCASE ENDIF Private pnNr_facturi, pnBaza, pnTVA, pnNr_facturi2, pnBaza2, pnTVA2, pnNr_facturi3, pnBaza3, pnTVA3, pnBaza41, pnBaza42 Store 0 To pnNr_facturi, pnBaza, pnTVA, pnNr_facturi2, pnBaza2, pnTVA2, pnNr_facturi3, pnBaza3, pnTVA3, pnBaza41, pnBaza42 Do Case Case gnAn * 12 + gnLuna >= 2026 * 12 + 1 Do viz_decontTVA_2601 With tlTrim && s-au scos cotele 19,9,5 Case gnAn * 12 + gnLuna >= 2025 * 12 + 8 Do viz_decontTVA_2508 With tlTrim Case gnAn * 12 + gnLuna <= 2007 * 12 + 4 Do viz_decontTVA_0107 Case Between(gnAn * 12 + gnLuna, 2007 * 12 + 5, 2008 * 12 + 11) && 05/2007 - 11/2008 ORDIN 273 din 28/05/2007 (MO 392 11/06/2007) Do viz_decontTVA_0507 With tlTrim Case Between(gnAn * 12 + gnLuna, 2008 * 12 + 12, 2010 * 12 + 6) && 12/2008 - 06/2010 Do viz_decontTVA_0110 With tlTrim Case Between(gnAn * 12 + gnLuna, 2010 * 12 + 7, 2011 * 12 + 12) && 07/2010 - 12/2011 TVA 24% Do viz_decontTVA_0710 With tlTrim Case Between(gnAn * 12 + gnLuna, 2012 * 12 + 1, 2012 * 12 + 12) && 01/2012 - 12/2012 Do viz_decontTVA_0112 With tlTrim Case Between(gnAn * 12 + gnLuna, 2013 * 12 + 1, 2015 * 12 + 12) && 01/2013 - 12/2015 Do viz_decontTVA_0113 With tlTrim Case gnAn * 12 + gnLuna = 2016 * 12 + 1 && 01/2016 Do viz_decontTVA_0116 With tlTrim Case gnAn * 12 + gnLuna <= 2018 * 12 + 12 && 01/2017 - 12/2018 Do viz_decontTVA_0117 With tlTrim Otherwise Do viz_decontTVA_0719 With tlTrim && 01/2019 - Endcase Endproc && viz_decontTVA *=========================================== Procedure viz_decontTVA_2601 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN Local lcRand, llSucces, lnSuma PRIVATE pn10B, pn10T, pn11B, pn11T, pn121B, pn121T, pn122B, pn122T, pn12B, pn12T, pn13B, pn14B PRIVATE pn15B, pn1B, pn201B, pn201T, pn20B, pn20T, pn21B, pn21T, pn221B, pn221T, pn22B, pn22T PRIVATE pn23B, pn23T, pn24B, pn24T, pn25B, pn25T, pn261B, pn261T, pn262B, pn262T, pn26B, pn26T PRIVATE pn291B, pn29B, pn31B, pn33B, pn33T, pn3B, pn51B, pn51T, pn5B, pn5T, pn6B, pn6T, pn71B PRIVATE pn71T, pn7B, pn7T, pn8B, pn8T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && --- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN, pnAchizitieBaza6N, pnAchizitieTVA6N, pnLivrareBaza6N, pnLivrareTVA6N pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 pnAchizitieBaza6N = 0 pnAchizitieTVA6N = 0 pnLivrareBaza6N = 0 pnLivrareTVA6N = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] && schimbare cota TVA standard de la 19% la 21% + s-au scos cotele 19,9,5. a ramas o situatie doar cu 9% lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '2601' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Text To lcSql Noshow Textmerge SELECT ROUND(SUM(RO21B),0) AS RO21B, ROUND(SUM(RO21T),0) AS RO21T, ROUND(SUM(RO11B),0) AS RO11B, ROUND(SUM(RO11T),0) AS RO11T, ROUND(SUM(RO19B),0) AS RO19B, ROUND(SUM(RO19T),0) AS RO19T, ROUND(SUM(RO9B),0) AS RO9B, ROUND(SUM(RO9T),0) AS RO9T, ROUND(SUM(RO5B),0) AS RO5B, ROUND(SUM(RO5T),0) AS RO5T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO24B),0) AS RO24B, ROUND(SUM(RO24T),0) AS RO24T, ROUND(SUM(ROTI),0) AS ROTI, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21B ELSE 0 END),0) AS RO21Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21T ELSE 0 END),0) AS RO21Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11B ELSE 0 END),0) AS RO11Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11T ELSE 0 END),0) AS RO11Tr, ROUND(SUM(CESCDD1),0) AS CESCDD1, ROUND(SUM(CESCDD2),0) AS CESCDD2, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCDD),0) AS WRSCDD, ROUND(SUM(WRSCDDAB),0) AS WRSCDDAB, ROUND(SUM(WRSCDDCD),0) AS WRSCDDCD, ROUND(SUM(FODD),0) AS FODD, ROUND(SUM(FOFDD),0) AS FOFDD, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCFDD),0) AS WRSCFDD, ROUND(SUM(WRN),0) AS WRN, ROUND(SUM(rortc21),0) AS rortc21, ROUND(SUM(rortc11),0) AS rortc11, ROUND(SUM(rortc24),0) AS rortc24, ROUND(SUM(rortc20),0) AS rortc20, ROUND(SUM(rortc19),0) AS rortc19, ROUND(SUM(rortc9),0) AS rortc9, ROUND(SUM(rortc5),0) AS rortc5 FROM JV2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) && scad tva exigibil cu data act in afara perioadei de declarare. il pun pe regularizare rd. 16 pn9B = Nvl(ro21b, 0) - Nvl(ro21br, 0) pn9T = Nvl(ro21t, 0) - Nvl(ro21tr, 0) pn10B = Nvl(ro11b, 0) - Nvl(ro11br, 0) pn10T = Nvl(ro11t, 0) - Nvl(ro11tr, 0) pn11B = 0 && 9% achizitii apartamente cu cota 9% pn11T = 0 pnRegularizareB = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(ro21br, 0) + Nvl(ro11br, 0)+ Nvl(ro19b, 0) + Nvl(ro9b, 0) + Nvl(ro5b, 0) pnRegularizareT = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(ro21tr, 0) + Nvl(ro11tr, 0)+ Nvl(ro19t, 0) + Nvl(ro9t, 0) + Nvl(ro5t, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) + Nvl(wrscddab, 0) + Nvl(wrscddcd, 0) *!* pn141B = Nvl(wrscddab, 0) *!* pn142B = Nvl(wrscddcd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif Text To lcSql Noshow Textmerge SELECT Round(Sum(RO21B),0) As RO21B, Round(Sum(RO21T),0) As RO21T, ROUND(SUM(RO11B),0) AS RO11B, ROUND(SUM(RO11T),0) AS RO11T, Round(Sum(RO24B),0) As RO24B, Round(Sum(RO24T),0) As RO24T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO19BCB),0) AS RO19BCB, ROUND(SUM(RO19BCT),0) AS RO19BCT, ROUND(SUM(RO19BVB),0) AS RO19BVB, ROUND(SUM(RO19BVT),0) AS RO19BVT, ROUND(SUM(RO19BFB),0) AS RO19BFB, ROUND(SUM(RO19BFT),0) AS RO19BFT, ROUND(SUM(RO09BCB),0) AS RO09BCB, ROUND(SUM(RO09BCT),0) AS RO09BCT, ROUND(SUM(RO09BVB),0) AS RO09BVB, ROUND(SUM(RO09BVT),0) AS RO09BVT, ROUND(SUM(RO09BFB),0) AS RO09BFB, ROUND(SUM(RO09BFT),0) AS RO09BFT, ROUND(SUM(RO05B),0) AS RO05B, ROUND(SUM(RO05T),0) AS RO05T, ROUND(SUM(ROSCN),0) AS ROSCN, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21B ELSE 0 END),0) AS RO21Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21T ELSE 0 END),0) AS RO21Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11B ELSE 0 END),0) AS RO11Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11T ELSE 0 END),0) AS RO11Tr, Round(Sum(FO21B),0) As FO21B, Round(Sum(FO21T),0) As FO21T, Round(Sum(FO11B),0) As FO11B, Round(Sum(FO11T),0) As FO11T, Round(Sum(FO24B),0) As FO24B, Round(Sum(FO24T),0) As FO24T, Round(Sum(FO20B),0) As FO20B, Round(Sum(FO20T),0) As FO20T, ROUND(SUM(FO19BCB),0) AS FO19BCB, ROUND(SUM(FO19BCT),0) AS FO19BCT, ROUND(SUM(FO19BVB),0) AS FO19BVB, ROUND(SUM(FO19BVT),0) AS FO19BVT, ROUND(SUM(FO19BFB),0) AS FO19BFB, ROUND(SUM(FO19BFT),0) AS FO19BFT, ROUND(SUM(FO09BCB),0) AS FO09BCB, ROUND(SUM(FO09BCT),0) AS FO09BCT, ROUND(SUM(FO09BVB),0) AS FO09BVB, ROUND(SUM(FO09BVT),0) AS FO09BVT, ROUND(SUM(FO09BFB),0) AS FO09BFB, ROUND(SUM(FO09BFT),0) AS FO09BFT, ROUND(SUM(FOSCN),0) AS FOSCN, ROUND(SUM(XX21TIB),0) AS XX21TIB, ROUND(SUM(XX21TIT),0) AS XX21TIT, ROUND(SUM(XX11TIB),0) AS XX11TIB, ROUND(SUM(XX11TIT),0) AS XX11TIT, ROUND(SUM(XX19TIB),0) AS XX19TIB, ROUND(SUM(XX19TIT),0) AS XX19TIT, ROUND(SUM(XX9TIB),0) AS XX9TIB, ROUND(SUM(XX9TIT),0) AS XX9TIT, Round(Sum(CE24B),0) As CE24B, Round(Sum(CE24T),0) As CE24T, Round(Sum(CE20B),0) As CE20B, Round(Sum(CE20T),0) As CE20T, ROUND(SUM(ce21ctb),0) AS ce21ctb, ROUND(SUM(ce21ctt),0) AS ce21ctt, ROUND(SUM(ce11ctb),0) AS ce11ctb, ROUND(SUM(ce11ctt),0) AS ce11ctt, ROUND(SUM(ce19ctb),0) AS ce19ctb, ROUND(SUM(ce19ctt),0) AS ce19ctt, ROUND(SUM(ce9ctb),0) AS ce9ctb, ROUND(SUM(ce9ctt),0) AS ce9ctt, ROUND(SUM(ce5ctb),0) AS ce5ctb, ROUND(SUM(ce5ctt),0) AS ce5ctt, ROUND(SUM(ce21ftb),0) AS ce21ftb, ROUND(SUM(ce21ftt),0) AS ce21ftt, ROUND(SUM(ce11ftb),0) AS ce11ftb, ROUND(SUM(ce11ftt),0) AS ce11ftt, ROUND(SUM(ce19ftb),0) AS ce19ftb, ROUND(SUM(ce19ftt),0) AS ce19ftt, ROUND(SUM(ce9ftb),0) AS ce9ftb, ROUND(SUM(ce9ftt),0) AS ce9ftt, ROUND(SUM(ce5ftb),0) AS ce5ftb, ROUND(SUM(ce5ftt),0) AS ce5ftt, Round(Sum(CE21SB),0) As CE21SB, Round(Sum(CE21ST),0) As CE21ST, Round(Sum(CE11SB),0) As CE11SB, Round(Sum(CE11ST),0) As CE11ST, Round(Sum(CE24SB),0) As CE24SB, Round(Sum(CE24ST),0) As CE24ST, Round(Sum(CE20SB),0) As CE20SB, Round(Sum(CE20ST),0) As CE20ST, Round(Sum(CE5SB),0) As CE5SB, Round(Sum(CE5ST),0) As CE5ST, Round(Sum(CE9SB),0) As CE9SB, Round(Sum(CE9ST),0) As CE9ST, Round(Sum(CE19SB),0) As CE19SB, Round(Sum(CE19ST),0) As CE19ST, ROUND(SUM(CEBCB),0) AS CEBCB, ROUND(SUM(CEBCT),0) AS CEBCT, ROUND(SUM(CEBVB),0) AS CEBVB, ROUND(SUM(CEBVT),0) AS CEBVT, ROUND(SUM(CEBVSC),0) AS CEBVSC, ROUND(SUM(CEBVN),0) AS CEBVN, ROUND(SUM(CEBFB),0) AS CEBFB, ROUND(SUM(CEBFT),0) AS CEBFT, ROUND(SUM(CEBFSC),0) AS CEBFSC, ROUND(SUM(CEBFN),0) AS CEBFN, Round(Sum(TI21B), 0) As TI21B, Round(Sum(TI21T), 0) As TI21T, Round(Sum(TI11B), 0) As TI11B, Round(Sum(TI11T), 0) As TI11T, Round(Sum(TI24B), 0) As TI24B, Round(Sum(TI24T), 0) As TI24T, Round(Sum(TI20B), 0) As TI20B, Round(Sum(TI20T), 0) As TI20T, ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ROUND(SUM(ROTN+ROTN50+ROTN100),0) AS ROTN, ROUND(SUM(rortd21),0) AS rortd21, ROUND(SUM(rortd11),0) AS rortd11, ROUND(SUM(rortd24),0) AS rortd24, ROUND(SUM(rortd20),0) AS rortd20, ROUND(SUM(rortd19),0) AS rortd19, ROUND(SUM(rortd9),0) AS rortd9, ROUND(SUM(rortd5),0) AS rortd5 FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn20B = NVL(CE21CTB,0) + NVL(CE11CTB,0) + NVL(CE21FTB,0) + NVL(CE11FTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati/neinregistrati TVA pn20T = NVL(CE21CTT,0) + NVL(CE11CTT,0) + NVL(CE21FTT,0) + NVL(CE11FTT,0) pn201B = NVL(CE21CTB,0) + NVL(CE11CTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati TVA pn201T = NVL(CE21CTT,0) + NVL(CE11CTT,0) pn5B = pn20B pn5T = pn20T pn51B = pn201B pn51T = pn201T *** rd.21 = rd.6 *** Regularizari privind achizitiile intracomunitare de bunuri pentru care cumparatorul este obligat la plata TVA (taxare inversa) (rd.19=rd.6) pn21B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + NVL(CE19CTB,0) + NVL(CE9CTB,0) + NVL(CE5CTB,0) + NVL(CE19FTB,0) + NVL(CE9FTB,0) + NVL(CE5FTB,0) + Nvl(ce20b, 0) + Nvl(ce24b, 0) pn21T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + NVL(CE19CTT,0) + NVL(CE9CTT,0) + NVL(CE5CTT,0) + NVL(CE19FTT,0) + NVL(CE9FTT,0) + NVL(CE5FTT,0) + Nvl(ce20t, 0) + Nvl(ce24t, 0) pn6B = pn21B pn6T = pn21T *** Achizitii de bunuri, altele decat cele de la rd. 18 si 19, si achizitii de servicii pentru care beneficiarul din Romania este obligat la plata TVA (taxare *** inversa) (rd.22=rd.7), din care pn22B = Nvl(CE21SB, 0) + Nvl(XX21TIB, 0) + Nvl(XX11TIB, 0) pn22T = Nvl(CE21ST, 0) + Nvl(XX21TIT, 0) + Nvl(XX11TIT, 0) pn7B = pn22B pn7T = pn22T *** Achizitii de servicii intracomunitare pentru care beneficiarul este obligat la plata TVA (taxare inversa) (rd.22.1=rd.7.1) pn221B = Nvl(CE21SB, 0) pn221T = Nvl(CE21ST, 0) pn71B = pn221B pn71T = pn221T *** Regularizari privind achizitii de servicii intracomunitare pentru care beneficiarul din Romania este obligat la plata TVA (taxare inversa)(rd.23=rd.8) pn23B = Nvl(CE19SB, 0) + Nvl(XX19TIB, 0) + Nvl(XX9TIB, 0) + Nvl(CE24SB, 0) + Nvl(CE20SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn23T = Nvl(CE19ST, 0) + Nvl(XX19TIT, 0) + Nvl(XX9TIT, 0) + Nvl(CE24ST, 0) + Nvl(CE20ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn8B = pn23B pn8T = pn23T *** Achizitii de bunuri si servicii taxabile cu cota de 21%, altele decat cele de la rd.27 && scad tva exigibil din operatiile cu data act in afara perioadei de declarare. le pun pe regularizari, rd. 34 pn24B = Nvl(ro21b, 0) + Nvl(fo21b, 0) - Nvl(ro21br, 0) pn24T = Nvl(ro21t, 0) + Nvl(fo21t, 0) - Nvl(ro21tr, 0) *** Achizitii de bunuri si servicii taxabile cu cota de 11%, altele decat cele de la rd.27 pn25B = Nvl(ro11b, 0) + Nvl(fo11b, 0) - Nvl(ro11br, 0) pn25T = Nvl(ro11t, 0) + Nvl(fo11t, 0) - Nvl(ro11tr, 0) *** Achizitii de bunuri si servicii supuse masurilor de simplificare pentru care beneficiarul este obligat la plata TVA (taxare inversa),din care (rd.26=rd.12) pn26B = Nvl(ti21b, 0) + Nvl(ti11b, 0) && ACH. TI pn26T = Nvl(ti21t, 0) + Nvl(ti11t, 0) pn12B = pn26B pn12T = pn26T pn261B = Nvl(ti21b, 0) && ACH. TI 21% pn261T = Nvl(ti21t, 0) pn121B = pn261B pn121T = pn261T pn262B = Nvl(ti11b, 0) && && ACH. TI 11% pn262T = Nvl(ti11t, 0) pn122B = pn262B pn122T = pn262T *** Achizitii de bunuri si servicii scutite de taxa sau neimpozabile, din care pn29B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) && Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile pn291B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) && Achizitii de servicii intracomunitare scutite de taxa *** Regularizari taxa dedusa pn33B = Nvl(ro21br, 0) + Nvl(ro11br, 0) + ; Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(fo20b, 0) + Nvl(fo24b, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + ; Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) + ; Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) + ; Nvl(ro05b, 0) + ; Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn33T = Nvl(ro21tr, 0) + Nvl(ro11tr, 0) + ; Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(fo20t, 0) + Nvl(fo24t, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + ; Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) + ; Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) + ; Nvl(ro05t, 0) + ; Nvl(ti24t, 0) + Nvl(ti20t, 0) + Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) lnROTN = Int(Round(Nvl(ROTN, 0), 0)) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 Select cDecont Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '22.1' If Found() Replace valoare With pn221B, TVA With pn221T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B, TVA With pn26T Endif Locate For Alltrim(Rand) = '26.1' If Found() Replace valoare With pn261B, TVA With pn261T Endif Locate For Alltrim(Rand) = '26.2' If Found() Replace valoare With pn262B, TVA With pn262T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '12.1' If Found() Replace valoare With pn121B, TVA With pn121T Endif Locate For Alltrim(Rand) = '12.2' If Found() Replace valoare With pn122B, TVA With pn122T Endif Locate For Alltrim(Rand) = '29' If Found() Replace valoare With pn29B Endif Locate For Alltrim(Rand) = '29.1' If Found() Replace valoare With pn291B Endif *!* REGULARIZARE Locate For Alltrim(Rand) = '33' If Found() Replace valoare With pn33B, TVA With pn33T Endif *** Rd. 41 Soldul sumei negative a TVA reportate din perioada precedenta pentru care nu s-a solicitat rambursare (rd.44 din decontul perioadei fiscale precedente) lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lnTR = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnTR) IF m.llSucces lnTR = Int(Round(lnTR, 0)) ENDIF Select cDecont Locate For Alltrim(Rand) = '41' If Found() Replace TVA With lnTR Endif *** Rd. 38 Soldul TVA de plata din decontul perioadei fiscale precedente (rd.45 din decontul perioadei fiscale precedente) neachitate pana la data depunerii decontului de TVA Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lnTP = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnTP) IF m.llSucces lnTP = Int(Round(lnTP, 0)) ENDIF * cat TVA am achitat in perioada curenta pentru TVA de plata 4423 Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lnPlati = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnPlati) IF m.llSucces lnPlati = Int(Round(lnPlati, 0)) ENDIF lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '38' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif *** Regularizari lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002,1003,1006,1007,1008,1009,1010,1011,1012,1013,1014,1015,1016,1017,1018,1019) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + m.gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = Int(Round(suma, 0)) IF INLIST(id_jtva_coloana, 1003,1011,1012,1013,1014,1015,1018,1019) && regularizare taxa dedusa lcRand = '33' && regularizare taxa dedusa ELSE lcRand = '16' && regularizare taxa colectata ENDIF Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Int(Round(bazan, 0)) pnAchizitieTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBaza6N = Int(Round(bazan, 0)) pnAchizitieTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Int(Round(bazan, 0)) pnLivrareTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBaza6N = Int(Round(bazan, 0)) pnLivrareTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Select cDecont lodt = Createobject('frm_decontTVA_202601', m.tnNumarLuni) lodt.nROTN = Nvl(m.lnROTN, 0) && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRandAtentie.Caption = lodt.lblRandAtentie.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_2601 *=========================================== Procedure viz_decontTVA_2508 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && --- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN, pnAchizitieBaza6N, pnAchizitieTVA6N, pnLivrareBaza6N, pnLivrareTVA6N pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 pnAchizitieBaza6N = 0 pnAchizitieTVA6N = 0 pnLivrareBaza6N = 0 pnLivrareTVA6N = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] && schimbare cota TVA standard de la 19% la 21% Do Case CASE m.gnAn*12+m.gnLuna >= 2025*12+8 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '2508' order by id_decont] Endcase lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Text To lcSql Noshow Textmerge SELECT ROUND(SUM(RO21B),0) AS RO21B, ROUND(SUM(RO21T),0) AS RO21T, ROUND(SUM(RO11B),0) AS RO11B, ROUND(SUM(RO11T),0) AS RO11T, ROUND(SUM(RO19B),0) AS RO19B, ROUND(SUM(RO19T),0) AS RO19T, ROUND(SUM(RO9B),0) AS RO9B, ROUND(SUM(RO9T),0) AS RO9T, ROUND(SUM(RO5B),0) AS RO5B, ROUND(SUM(RO5T),0) AS RO5T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO24B),0) AS RO24B, ROUND(SUM(RO24T),0) AS RO24T, ROUND(SUM(ROTI),0) AS ROTI, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21B ELSE 0 END),0) AS RO21Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21T ELSE 0 END),0) AS RO21Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11B ELSE 0 END),0) AS RO11Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11T ELSE 0 END),0) AS RO11Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19B ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19T ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9B ELSE 0 END),0) AS RO9Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9T ELSE 0 END),0) AS RO9Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5B ELSE 0 END),0) AS RO5Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5T ELSE 0 END),0) AS RO5Tr, ROUND(SUM(CESCDD1),0) AS CESCDD1, ROUND(SUM(CESCDD2),0) AS CESCDD2, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCDD),0) AS WRSCDD, ROUND(SUM(WRSCDDAB),0) AS WRSCDDAB, ROUND(SUM(WRSCDDCD),0) AS WRSCDDCD, ROUND(SUM(FODD),0) AS FODD, ROUND(SUM(FOFDD),0) AS FOFDD, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCFDD),0) AS WRSCFDD, ROUND(SUM(WRN),0) AS WRN, ROUND(SUM(rortc21),0) AS rortc21, ROUND(SUM(rortc11),0) AS rortc11, ROUND(SUM(rortc24),0) AS rortc24, ROUND(SUM(rortc20),0) AS rortc20, ROUND(SUM(rortc19),0) AS rortc19, ROUND(SUM(rortc9),0) AS rortc9, ROUND(SUM(rortc5),0) AS rortc5 FROM JV2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) && scad tva exigibil cu data act in afara perioadei de declarare. il pun pe regularizare rd. 16 pn9B = Nvl(ro21b, 0) - Nvl(ro21br, 0) pn9T = Nvl(ro21t, 0) - Nvl(ro21tr, 0) pn9_1B = Nvl(ro19b, 0) - Nvl(ro19br, 0) pn9_1T = Nvl(ro19t, 0) - Nvl(ro19tr, 0) pn10B = Nvl(ro11b, 0) - Nvl(ro11br, 0) pn10T = Nvl(ro11t, 0) - Nvl(ro11tr, 0) pn10_1B = Nvl(ro9b, 0) - Nvl(ro9br, 0) pn10_1T = Nvl(ro9t, 0) - Nvl(ro9tr, 0) pn11B = Nvl(ro5b, 0) - Nvl(ro5br, 0) pn11T = Nvl(ro5t, 0) - Nvl(ro5tr, 0) pnRegularizareB = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(ro21br, 0) + Nvl(ro11br, 0)+ Nvl(ro19br, 0) + Nvl(ro9br, 0) + Nvl(ro5br, 0) pnRegularizareT = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(ro21tr, 0) + Nvl(ro11tr, 0)+ Nvl(ro19tr, 0) + Nvl(ro9tr, 0) + Nvl(ro5tr, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) + Nvl(wrscddab, 0) + Nvl(wrscddcd, 0) *!* pn141B = Nvl(wrscddab, 0) *!* pn142B = Nvl(wrscddcd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '9.1' If Found() Replace valoare With pn9_1B, TVA With pn9_1T ENDIF Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '10.1' If Found() Replace valoare With pn10_1B, TVA With pn10_1T ENDIF Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif *!* Locate For Alltrim(Rand) = '14.1' *!* If Found() *!* Replace valoare With pn141B *!* Endif *!* Locate For Alltrim(Rand) = '14.2' *!* If Found() *!* Replace valoare With pn142B *!* Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) *!* Locate For Alltrim(Rand) = '17.1' *!* If Found() *!* Replace valoare With pn171B, TVA With pn171T *!* Endif Text To lcSql Noshow Textmerge SELECT Round(Sum(RO21B),0) As RO21B, Round(Sum(RO21T),0) As RO21T, ROUND(SUM(RO11B),0) AS RO11B, ROUND(SUM(RO11T),0) AS RO11T, Round(Sum(RO24B),0) As RO24B, Round(Sum(RO24T),0) As RO24T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO19BCB),0) AS RO19BCB, ROUND(SUM(RO19BCT),0) AS RO19BCT, ROUND(SUM(RO19BVB),0) AS RO19BVB, ROUND(SUM(RO19BVT),0) AS RO19BVT, ROUND(SUM(RO19BFB),0) AS RO19BFB, ROUND(SUM(RO19BFT),0) AS RO19BFT, ROUND(SUM(RO09BCB),0) AS RO09BCB, ROUND(SUM(RO09BCT),0) AS RO09BCT, ROUND(SUM(RO09BVB),0) AS RO09BVB, ROUND(SUM(RO09BVT),0) AS RO09BVT, ROUND(SUM(RO09BFB),0) AS RO09BFB, ROUND(SUM(RO09BFT),0) AS RO09BFT, ROUND(SUM(RO05B),0) AS RO05B, ROUND(SUM(RO05T),0) AS RO05T, ROUND(SUM(ROSCN),0) AS ROSCN, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21B ELSE 0 END),0) AS RO21Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO21T ELSE 0 END),0) AS RO21Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11B ELSE 0 END),0) AS RO11Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO11T ELSE 0 END),0) AS RO11Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCB + RO19BVB + RO19BFB ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCT + RO19BVT + RO19BFT ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCB + RO09BVB + RO09BFB ELSE 0 END),0) AS RO09Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCT + RO09BVT + RO09BFT ELSE 0 END),0) AS RO09Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05B ELSE 0 END),0) AS RO05Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05T ELSE 0 END),0) AS RO05Tr, Round(Sum(FO21B),0) As FO21B, Round(Sum(FO21T),0) As FO21T, Round(Sum(FO11B),0) As FO11B, Round(Sum(FO11T),0) As FO11T, Round(Sum(FO24B),0) As FO24B, Round(Sum(FO24T),0) As FO24T, Round(Sum(FO20B),0) As FO20B, Round(Sum(FO20T),0) As FO20T, ROUND(SUM(FO19BCB),0) AS FO19BCB, ROUND(SUM(FO19BCT),0) AS FO19BCT, ROUND(SUM(FO19BVB),0) AS FO19BVB, ROUND(SUM(FO19BVT),0) AS FO19BVT, ROUND(SUM(FO19BFB),0) AS FO19BFB, ROUND(SUM(FO19BFT),0) AS FO19BFT, ROUND(SUM(FO09BCB),0) AS FO09BCB, ROUND(SUM(FO09BCT),0) AS FO09BCT, ROUND(SUM(FO09BVB),0) AS FO09BVB, ROUND(SUM(FO09BVT),0) AS FO09BVT, ROUND(SUM(FO09BFB),0) AS FO09BFB, ROUND(SUM(FO09BFT),0) AS FO09BFT, ROUND(SUM(FOSCN),0) AS FOSCN, ROUND(SUM(XX21TIB),0) AS XX21TIB, ROUND(SUM(XX21TIT),0) AS XX21TIT, ROUND(SUM(XX11TIB),0) AS XX11TIB, ROUND(SUM(XX11TIT),0) AS XX11TIT, ROUND(SUM(XX19TIB),0) AS XX19TIB, ROUND(SUM(XX19TIT),0) AS XX19TIT, ROUND(SUM(XX9TIB),0) AS XX9TIB, ROUND(SUM(XX9TIT),0) AS XX9TIT, Round(Sum(CE24B),0) As CE24B, Round(Sum(CE24T),0) As CE24T, Round(Sum(CE20B),0) As CE20B, Round(Sum(CE20T),0) As CE20T, ROUND(SUM(ce21ctb),0) AS ce21ctb, ROUND(SUM(ce21ctt),0) AS ce21ctt, ROUND(SUM(ce11ctb),0) AS ce11ctb, ROUND(SUM(ce11ctt),0) AS ce11ctt, ROUND(SUM(ce19ctb),0) AS ce19ctb, ROUND(SUM(ce19ctt),0) AS ce19ctt, ROUND(SUM(ce9ctb),0) AS ce9ctb, ROUND(SUM(ce9ctt),0) AS ce9ctt, ROUND(SUM(ce5ctb),0) AS ce5ctb, ROUND(SUM(ce5ctt),0) AS ce5ctt, ROUND(SUM(ce21ftb),0) AS ce21ftb, ROUND(SUM(ce21ftt),0) AS ce21ftt, ROUND(SUM(ce11ftb),0) AS ce11ftb, ROUND(SUM(ce11ftt),0) AS ce11ftt, ROUND(SUM(ce19ftb),0) AS ce19ftb, ROUND(SUM(ce19ftt),0) AS ce19ftt, ROUND(SUM(ce9ftb),0) AS ce9ftb, ROUND(SUM(ce9ftt),0) AS ce9ftt, ROUND(SUM(ce5ftb),0) AS ce5ftb, ROUND(SUM(ce5ftt),0) AS ce5ftt, Round(Sum(CE21SB),0) As CE21SB, Round(Sum(CE21ST),0) As CE21ST, Round(Sum(CE11SB),0) As CE11SB, Round(Sum(CE11ST),0) As CE11ST, Round(Sum(CE24SB),0) As CE24SB, Round(Sum(CE24ST),0) As CE24ST, Round(Sum(CE20SB),0) As CE20SB, Round(Sum(CE20ST),0) As CE20ST, Round(Sum(CE5SB),0) As CE5SB, Round(Sum(CE5ST),0) As CE5ST, Round(Sum(CE9SB),0) As CE9SB, Round(Sum(CE9ST),0) As CE9ST, Round(Sum(CE19SB),0) As CE19SB, Round(Sum(CE19ST),0) As CE19ST, ROUND(SUM(CEBCB),0) AS CEBCB, ROUND(SUM(CEBCT),0) AS CEBCT, ROUND(SUM(CEBVB),0) AS CEBVB, ROUND(SUM(CEBVT),0) AS CEBVT, ROUND(SUM(CEBVSC),0) AS CEBVSC, ROUND(SUM(CEBVN),0) AS CEBVN, ROUND(SUM(CEBFB),0) AS CEBFB, ROUND(SUM(CEBFT),0) AS CEBFT, ROUND(SUM(CEBFSC),0) AS CEBFSC, ROUND(SUM(CEBFN),0) AS CEBFN, Round(Sum(TI21B), 0) As TI21B, Round(Sum(TI21T), 0) As TI21T, Round(Sum(TI11B), 0) As TI11B, Round(Sum(TI11T), 0) As TI11T, Round(Sum(TI24B), 0) As TI24B, Round(Sum(TI24T), 0) As TI24T, Round(Sum(TI20B), 0) As TI20B, Round(Sum(TI20T), 0) As TI20T, ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ROUND(SUM(ROTN+ROTN50+ROTN100),0) AS ROTN, ROUND(SUM(rortd21),0) AS rortd21, ROUND(SUM(rortd11),0) AS rortd11, ROUND(SUM(rortd24),0) AS rortd24, ROUND(SUM(rortd20),0) AS rortd20, ROUND(SUM(rortd19),0) AS rortd19, ROUND(SUM(rortd9),0) AS rortd9, ROUND(SUM(rortd5),0) AS rortd5 FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn20B = NVL(CE21CTB,0) + NVL(CE11CTB,0) + NVL(CE21FTB,0) + NVL(CE11FTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati/neinregistrati TVA pn20T = NVL(CE21CTT,0) + NVL(CE11CTT,0) + NVL(CE21FTT,0) + NVL(CE11FTT,0) pn201B = NVL(CE21CTB,0) + NVL(CE11CTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati TVA pn201T = NVL(CE21CTT,0) + NVL(CE11CTT,0) pn5B = pn20B pn5T = pn20T pn51B = pn201B pn51T = pn201T *** rd.21 = rd.6 *** Regularizari privind achizi_iile intracomunitare de bunuri pentru care cumparatorul este obligat la plata TVA (taxare inversa) (rd.19=rd.6) pn21B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + NVL(CE19CTB,0) + NVL(CE9CTB,0) + NVL(CE5CTB,0) + NVL(CE19FTB,0) + NVL(CE9FTB,0) + NVL(CE5FTB,0) + Nvl(ce20b, 0) + Nvl(ce24b, 0) pn21T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + NVL(CE19CTT,0) + NVL(CE9CTT,0) + NVL(CE5CTT,0) + NVL(CE19FTT,0) + NVL(CE9FTT,0) + NVL(CE5FTT,0) + Nvl(ce20t, 0) + Nvl(ce24t, 0) pn6B = pn21B pn6T = pn21T *** Achizi_ii de bunuri, altele decat cele de la rd. 18 și 19, si achizitii de servicii pentru care beneficiarul din Romania este obligat la plata TVA (taxare *** inversa) (rd.22=rd.7), din care pn22B = Nvl(CE21SB, 0) + Nvl(XX21TIB, 0) + Nvl(XX11TIB, 0) pn22T = Nvl(CE21ST, 0) + Nvl(XX21TIT, 0) + Nvl(XX11TIT, 0) pn7B = pn22B pn7T = pn22T *** Achizitii de servicii intracomunitare pentru care beneficiarul este obligat la plata TVA (taxare inversa) (rd.22.1=rd.7.1) pn221B = Nvl(CE21SB, 0) pn221T = Nvl(CE21ST, 0) pn71B = pn221B pn71T = pn221T *** Regularizari privind achizitii de servicii intracomunitare pentru care beneficiarul din Romania este obligat la plata TVA (taxare inversa)(rd.23=rd.8) pn23B = Nvl(CE19SB, 0) + Nvl(XX19TIB, 0) + Nvl(XX9TIB, 0) + Nvl(CE24SB, 0) + Nvl(CE20SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn23T = Nvl(CE19ST, 0) + Nvl(XX19TIT, 0) + Nvl(XX9TIT, 0) + Nvl(CE24ST, 0) + Nvl(CE20ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn8B = pn23B pn8T = pn23T *** Achizitii de bunuri si servicii taxabile cu cota de 21%, altele decat cele de la rd.27 && scad tva exigibil din operatiile cu data act in afara perioadei de declarare. le pun pe regularizari, rd. 34 pn24B = Nvl(ro21b, 0) + Nvl(fo21b, 0) - Nvl(ro21br, 0) pn24T = Nvl(ro21t, 0) + Nvl(fo21t, 0) - Nvl(ro21tr, 0) *** Achizitii de bunuri si servicii taxabile cu cota de 19%, altele decat cele de la rd.27 pn241B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) - Nvl(ro19br, 0) pn241T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) - Nvl(ro19tr, 0) *** Achizitii de bunuri si servicii taxabile cu cota de 11%, altele decat cele de la rd.27 pn25B = Nvl(ro11b, 0) + Nvl(fo11b, 0) - Nvl(ro11br, 0) pn25T = Nvl(ro11t, 0) + Nvl(fo11t, 0) - Nvl(ro11tr, 0) *** Achizitii de bunuri si servicii taxabile cu cota de 9% pn251B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) - Nvl(ro09br, 0) pn251T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) - Nvl(ro09tr, 0) *** Achizitii de bunuri taxabile cu cota de 5% pn26B = Nvl(ro05b, 0) - Nvl(ro05br, 0) pn26T = Nvl(ro05t, 0) - Nvl(ro05tr, 0) *** Achizitii de bunuri si servicii supuse masurilor de simplificare pentru care beneficiarul este obligat la plata TVA (taxare inversa),din care (rd.27=rd.12) pn27B = Nvl(ti21b, 0) + Nvl(ti11b, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && ACH. TI pn27T = Nvl(ti21t, 0) + Nvl(ti11t, 0) + Nvl(ti24t, 0) + Nvl(ti20t, 0) + Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn27B pn12T = pn27T pn271B = Nvl(ti21b, 0) && ACH. TI 21% pn271T = Nvl(ti21t, 0) pn121B = pn271B pn121T = pn271T pn272B = Nvl(ti11b, 0) && && ACH. TI 11% pn272T = Nvl(ti11t, 0) pn122B = pn272B pn122T = pn272T pn273B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) && ACH. TI 19% pn273T = Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) pn123B = pn273B pn123T = pn273T pn274B = Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && && ACH. TI 9% pn274T = Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn124B = pn274B pn124T = pn274T pn275B = 0 && ACH. TI 5% - NU AM EXPLICATIE TVA PENTRU TI 5%. AR TREBUI ADAUGATA pn275T = 0 pn125B = pn275B pn125T = pn275T *** Achizitii de bunuri si servicii scutite de taxa sau neimpozabile, din care pn30B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) && Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile pn301B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) && Achizitii de servicii intracomunitare scutite de taxa *** Regularizari taxa dedusa pn34B = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(fo20b, 0) + Nvl(fo24b, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro21br, 0) + Nvl(ro11br, 0)+ Nvl(ro19br, 0) + Nvl(ro09br, 0) + Nvl(ro05br, 0) pn34T = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(fo20t, 0) + Nvl(fo24t, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro21tr, 0) + Nvl(ro11tr, 0)+ Nvl(ro19tr, 0) + Nvl(ro09tr, 0) + Nvl(ro05tr, 0) lnROTN = Int(Round(Nvl(ROTN, 0), 0)) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 Select cDecont Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '22.1' If Found() Replace valoare With pn221B, TVA With pn221T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '24.1' If Found() Replace valoare With pn241B, TVA With pn241T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '25.1' If Found() Replace valoare With pn251B, TVA With pn251T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B, TVA With pn26T Endif Locate For Alltrim(Rand) = '27' If Found() Replace valoare With pn27B, TVA With pn27T Endif Locate For Alltrim(Rand) = '27.1' If Found() Replace valoare With pn271B, TVA With pn271T Endif Locate For Alltrim(Rand) = '27.2' If Found() Replace valoare With pn272B, TVA With pn272T Endif Locate For Alltrim(Rand) = '27.3' If Found() Replace valoare With pn273B, TVA With pn273T Endif Locate For Alltrim(Rand) = '27.4' If Found() Replace valoare With pn274B, TVA With pn274T ENDIF Locate For Alltrim(Rand) = '27.5' If Found() Replace valoare With pn275B, TVA With pn275T ENDIF Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '12.1' If Found() Replace valoare With pn121B, TVA With pn121T Endif Locate For Alltrim(Rand) = '12.2' If Found() Replace valoare With pn122B, TVA With pn122T Endif Locate For Alltrim(Rand) = '12.3' If Found() Replace valoare With pn123B, TVA With pn123T Endif Locate For Alltrim(Rand) = '12.4' If Found() Replace valoare With pn124B, TVA With pn124T ENDIF Locate For Alltrim(Rand) = '12.5' If Found() Replace valoare With pn125B, TVA With pn125T ENDIF Locate For Alltrim(Rand) = '30' If Found() Replace valoare With pn30B Endif Locate For Alltrim(Rand) = '30.1' If Found() Replace valoare With pn301B Endif *!* REGULARIZARE Locate For Alltrim(Rand) = '34' If Found() Replace valoare With pn34B, TVA With pn34T Endif *** Rd. 42 Soldul sumei negative a TVA reportate din perioada precedenta pentru care nu s-a solicitat rambursare (rd.44 din decontul perioadei fiscale precedente) lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lnTR = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnTR) IF m.llSucces lnTR = Int(Round(lnTR, 0)) ENDIF Select cDecont Locate For Alltrim(Rand) = '42' If Found() Replace TVA With lnTR Endif *** Rd. 37 Soldul TVA de plata din decontul perioadei fiscale precedente (rd.43 din decontul perioadei fiscale precedente) neachitate pana la data depunerii decontului de TVA Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lnTP = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnTP) IF m.llSucces lnTP = Int(Round(lnTP, 0)) ENDIF * cat TVA am achitat in perioada curenta pentru TVA de plata 4423 Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lnPlati = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSql, @lnPlati) IF m.llSucces lnPlati = Int(Round(lnPlati, 0)) ENDIF lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '39' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif *** Regularizari lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + m.gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = Int(Round(suma, 0)) lcRand = Iif(id_jtva_coloana = 1003, '34', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Int(Round(bazan, 0)) pnAchizitieTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBaza6N = Int(Round(bazan, 0)) pnAchizitieTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Int(Round(bazan, 0)) pnLivrareTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO21NB+RO11NB+RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO21NT+RO11NT+RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBaza6N = Int(Round(bazan, 0)) pnLivrareTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Select cDecont lodt = Createobject('frm_decontTVA_201701', m.tnNumarLuni) lodt.nROTN = Nvl(m.lnROTN, 0) && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRandAtentie.Caption = lodt.lblRandAtentie.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_2508 *=========================================== Procedure viz_decontTVA_0719 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && --- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN, pnAchizitieBaza6N, pnAchizitieTVA6N, pnLivrareBaza6N, pnLivrareTVA6N pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 pnAchizitieBaza6N = 0 pnAchizitieTVA6N = 0 pnLivrareBaza6N = 0 pnLivrareTVA6N = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] && schimbare cota TVA standard de la 24% la 20% Do Case CASE m.gnAn*12+m.gnLuna >= 2024*12+5 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0524' order by id_decont] CASE m.gnAn*12+m.gnLuna >= 2023*12+8 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0823' order by id_decont] Case m.gnAn * 12 + m.gnLuna >= 2019*12+7 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0719' order by id_decont] Case m.gnAn * 12 + m.gnLuna >= 2017*12+1 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0117' order by id_decont] Case m.gnAn * 12 + m.gnLuna >= 2013*12+1 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0113' order by id_decont] OTHERWISE && Case m.gnAn * 12 + m.gnLuna >= 2016*12+1 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0116' order by id_decont] Endcase lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Text To lcSql Noshow Textmerge SELECT ROUND(SUM(RO19B),0) AS RO19B, ROUND(SUM(RO19T),0) AS RO19T, ROUND(SUM(RO9B),0) AS RO9B, ROUND(SUM(RO9T),0) AS RO9T, ROUND(SUM(RO5B),0) AS RO5B, ROUND(SUM(RO5T),0) AS RO5T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO24B),0) AS RO24B, ROUND(SUM(RO24T),0) AS RO24T, ROUND(SUM(ROTI),0) AS ROTI, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19B ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19T ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9B ELSE 0 END),0) AS RO9Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9T ELSE 0 END),0) AS RO9Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5B ELSE 0 END),0) AS RO5Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5T ELSE 0 END),0) AS RO5Tr, ROUND(SUM(CESCDD1),0) AS CESCDD1, ROUND(SUM(CESCDD2),0) AS CESCDD2, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCDD),0) AS WRSCDD, ROUND(SUM(WRSCDDAB),0) AS WRSCDDAB, ROUND(SUM(WRSCDDCD),0) AS WRSCDDCD, ROUND(SUM(FODD),0) AS FODD, ROUND(SUM(FOFDD),0) AS FOFDD, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCFDD),0) AS WRSCFDD, ROUND(SUM(WRN),0) AS WRN, ROUND(SUM(rortc24),0) AS rortc24, ROUND(SUM(rortc20),0) AS rortc20, ROUND(SUM(rortc19),0) AS rortc19, ROUND(SUM(rortc9),0) AS rortc9, ROUND(SUM(rortc5),0) AS rortc5 FROM JV2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) && scad tva exigibil cu data act in afara perioadei de declarare. il pun pe regularizare rd. 16 pn9B = Nvl(ro19b, 0) - Nvl(ro19br, 0) pn9T = Nvl(ro19t, 0) - Nvl(ro19tr, 0) pn10B = Nvl(ro9b, 0) - Nvl(ro9br, 0) pn10T = Nvl(ro9t, 0) - Nvl(ro9tr, 0) pn11B = Nvl(ro5b, 0) - Nvl(ro5br, 0) pn11T = Nvl(ro5t, 0) - Nvl(ro5tr, 0) pnRegularizareB = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(ro19br, 0) + Nvl(ro9br, 0) + Nvl(ro5br, 0) pnRegularizareT = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(ro19tr, 0) + Nvl(ro9tr, 0) + Nvl(ro5tr, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) + Nvl(wrscddab, 0) + Nvl(wrscddcd, 0) pn141B = Nvl(wrscddab, 0) pn142B = Nvl(wrscddcd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '14.1' If Found() Replace valoare With pn141B Endif Locate For Alltrim(Rand) = '14.2' If Found() Replace valoare With pn142B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) *!* Locate For Alltrim(Rand) = '17.1' *!* If Found() *!* Replace valoare With pn171B, TVA With pn171T *!* Endif Text To lcSql Noshow Textmerge SELECT Round(Sum(RO24B),0) As RO24B, Round(Sum(RO24T),0) As RO24T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO19BCB),0) AS RO19BCB, ROUND(SUM(RO19BCT),0) AS RO19BCT, ROUND(SUM(RO19BVB),0) AS RO19BVB, ROUND(SUM(RO19BVT),0) AS RO19BVT, ROUND(SUM(RO19BFB),0) AS RO19BFB, ROUND(SUM(RO19BFT),0) AS RO19BFT, ROUND(SUM(RO09BCB),0) AS RO09BCB, ROUND(SUM(RO09BCT),0) AS RO09BCT, ROUND(SUM(RO09BVB),0) AS RO09BVB, ROUND(SUM(RO09BVT),0) AS RO09BVT, ROUND(SUM(RO09BFB),0) AS RO09BFB, ROUND(SUM(RO09BFT),0) AS RO09BFT, ROUND(SUM(RO05B),0) AS RO05B, ROUND(SUM(RO05T),0) AS RO05T, ROUND(SUM(ROSCN),0) AS ROSCN, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCB + RO19BVB + RO19BFB ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCT + RO19BVT + RO19BFT ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCB + RO09BVB + RO09BFB ELSE 0 END),0) AS RO09Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCT + RO09BVT + RO09BFT ELSE 0 END),0) AS RO09Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05B ELSE 0 END),0) AS RO05Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05T ELSE 0 END),0) AS RO05Tr, Round(Sum(FO24B),0) As FO24B, Round(Sum(FO24T),0) As FO24T, Round(Sum(FO20B),0) As FO20B, Round(Sum(FO20T),0) As FO20T, ROUND(SUM(FO19BCB),0) AS FO19BCB, ROUND(SUM(FO19BCT),0) AS FO19BCT, ROUND(SUM(FO19BVB),0) AS FO19BVB, ROUND(SUM(FO19BVT),0) AS FO19BVT, ROUND(SUM(FO19BFB),0) AS FO19BFB, ROUND(SUM(FO19BFT),0) AS FO19BFT, ROUND(SUM(XX19TIB),0) AS XX19TIB, ROUND(SUM(XX19TIT),0) AS XX19TIT, ROUND(SUM(XX9TIB),0) AS XX9TIB, ROUND(SUM(XX9TIT),0) AS XX9TIT, ROUND(SUM(FO09BCB),0) AS FO09BCB, ROUND(SUM(FO09BCT),0) AS FO09BCT, ROUND(SUM(FO09BVB),0) AS FO09BVB, ROUND(SUM(FO09BVT),0) AS FO09BVT, ROUND(SUM(FO09BFB),0) AS FO09BFB, ROUND(SUM(FO09BFT),0) AS FO09BFT, ROUND(SUM(FOSCN),0) AS FOSCN, Round(Sum(CE24B),0) As CE24B, Round(Sum(CE24T),0) As CE24T, Round(Sum(CE20B),0) As CE20B, Round(Sum(CE20T),0) As CE20T, Round(Sum(CE24SB),0) As CE24SB, Round(Sum(CE24ST),0) As CE24ST, Round(Sum(CE20SB),0) As CE20SB, Round(Sum(CE20ST),0) As CE20ST, Round(Sum(CE5SB),0) As CE5SB, Round(Sum(CE5ST),0) As CE5ST, Round(Sum(CE9SB),0) As CE9SB, Round(Sum(CE9ST),0) As CE9ST, Round(Sum(CE19SB),0) As CE19SB, Round(Sum(CE19ST),0) As CE19ST, ROUND(SUM(CEBCB),0) AS CEBCB, ROUND(SUM(CEBCT),0) AS CEBCT, ROUND(SUM(CEBVB),0) AS CEBVB, ROUND(SUM(CEBVT),0) AS CEBVT, ROUND(SUM(CEBVSC),0) AS CEBVSC, ROUND(SUM(CEBVN),0) AS CEBVN, ROUND(SUM(CEBFB),0) AS CEBFB, ROUND(SUM(CEBFT),0) AS CEBFT, ROUND(SUM(CEBFSC),0) AS CEBFSC, ROUND(SUM(CEBFN),0) AS CEBFN, ROUND(SUM(ce19ctb),0) AS ce19ctb, ROUND(SUM(ce19ctt),0) AS ce19ctt, ROUND(SUM(ce9ctb),0) AS ce9ctb, ROUND(SUM(ce9ctt),0) AS ce9ctt, ROUND(SUM(ce5ctb),0) AS ce5ctb, ROUND(SUM(ce5ctt),0) AS ce5ctt, ROUND(SUM(ce19ftb),0) AS ce19ftb, ROUND(SUM(ce19ftt),0) AS ce19ftt, ROUND(SUM(ce9ftb),0) AS ce9ftb, ROUND(SUM(ce9ftt),0) AS ce9ftt, ROUND(SUM(ce5ftb),0) AS ce5ftb, ROUND(SUM(ce5ftt),0) AS ce5ftt, Round(Sum(TI24B), 0) As TI24B, Round(Sum(TI24T), 0) As TI24T, Round(Sum(TI20B), 0) As TI20B, Round(Sum(TI20T), 0) As TI20T, ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ROUND(SUM(ROTN+ROTN50+ROTN100),0) AS ROTN, ROUND(SUM(rortd24),0) AS rortd24, ROUND(SUM(rortd20),0) AS rortd20, ROUND(SUM(rortd19),0) AS rortd19, ROUND(SUM(rortd9),0) AS rortd9, ROUND(SUM(rortd5),0) AS rortd5 FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn20B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + NVL(CE19CTB,0) + NVL(CE9CTB,0) + NVL(CE5CTB,0) + NVL(CE19FTB,0) + NVL(CE9FTB,0) + NVL(CE5FTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati/neinregistrati TVA pn20T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + NVL(CE19CTT,0) + NVL(CE9CTT,0) + NVL(CE5CTT,0) + NVL(CE19FTT,0) + NVL(CE9FTT,0) + NVL(CE5FTT,0) pn201B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + NVL(CE19CTB,0) + NVL(CE9CTB,0) + NVL(CE5CTB,0) && ach. intracomunitare pre SAFT + ach. intracomunitare furnizori inregistrati TVA pn201T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + NVL(CE19CTT,0) + NVL(CE9CTT,0) + NVL(CE5CTT,0) pn5B = pn20B pn5T = pn20T pn51B = pn201B pn51T = pn201T *** rd.21 = rd.6 *** Regularizari privind achizi_iile intracomunitare de bunuri pentru care cumparatorul este obligat la plata TVA (taxare inversa) (rd.19=rd.6) pn21B = Nvl(ce20b, 0) + Nvl(ce24b, 0) pn21T = Nvl(ce20t, 0) + Nvl(ce24t, 0) pn6B = pn21B pn6T = pn21T *** Achizi_ii de bunuri, altele decat cele de la rd. 18 și 19, si achizitii de servicii pentru care beneficiarul din Romania este obligat la plata TVA (taxare *** inversa) (rd.22=rd.7), din care pn22B = Nvl(CE19SB, 0) + Nvl(XX19TIB, 0) + Nvl(XX9TIB, 0) pn22T = Nvl(CE19ST, 0) + Nvl(XX19TIT, 0) + Nvl(XX9TIT, 0) pn7B = pn22B pn7T = pn22T *** Achizitii de servicii intracomunitare pentru care beneficiarul este obligat la plata TVA (taxare inversa) (rd.22.1=rd.7.1) pn221B = Nvl(CE19SB, 0) pn221T = Nvl(CE19ST, 0) pn71B = pn221B pn71T = pn221T *** Regularizari privind achizitii de servicii intracomunitare pentru care beneficiarul din Romania este obligat la plata TVA (taxare inversa)(rd.23=rd.8) pn23B = Nvl(CE24SB, 0) + Nvl(CE20SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn23T = Nvl(CE24ST, 0) + Nvl(CE20ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn8B = pn23B pn8T = pn23T *** Achizi_ii de bunuri și servicii taxabile cu cota de 19%, altele decat cele de la rd.27 && scad tva exigibil din operatiile cu data act in afara perioadei de declarare. le pun pe regularizari, rd. 34 pn24B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) - Nvl(ro19br, 0) pn24T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) - Nvl(ro19tr, 0) *** Achizi_ii de bunuri și servicii taxabile cu cota de 9% pn25B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) - Nvl(ro09br, 0) pn25T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) - Nvl(ro09tr, 0) *** Achizi_ii de bunuri taxabile cu cota de 5% pn26B = Nvl(ro05b, 0) - Nvl(ro05br, 0) pn26T = Nvl(ro05t, 0) - Nvl(ro05tr, 0) *** Achizi_ii de bunuri și servicii supuse masurilor de simplificare pentru care beneficiarul este obligat la plata TVA (taxare inversa),din care (rd.27=rd.12) pn27B = Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && ACH. TI pn27T = Nvl(ti24t, 0) + Nvl(ti20t, 0) + Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn27B pn12T = pn27T pn271B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) && ACH. TI 19% pn271T = Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) pn121B = pn271B pn121T = pn271T pn272B = Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && && ACH. TI 9% pn272T = Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn122B = pn272B pn122T = pn272T pn273B = 0 && ACH. TI 5% - NU AM EXPLICATIE TVA PENTRU TI 5%. AR TREBUI ADAUGATA pn273T = 0 pn123B = pn273B pn123T = pn273T *** Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile, din care pn30B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) && Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile pn301B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) && Achizitii de servicii intracomunitare scutite de taxa *** Regularizari taxa dedusa pn34B = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(fo20b, 0) + Nvl(fo24b, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro19br, 0) + Nvl(ro09br, 0) + Nvl(ro05br, 0) pn34T = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(fo20t, 0) + Nvl(fo24t, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro19tr, 0) + Nvl(ro09tr, 0) + Nvl(ro05tr, 0) lnROTN = Int(Round(Nvl(ROTN, 0), 0)) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 Select cDecont Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '22.1' If Found() Replace valoare With pn221B, TVA With pn221T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B, TVA With pn26T Endif Locate For Alltrim(Rand) = '27' If Found() Replace valoare With pn27B, TVA With pn27T Endif Locate For Alltrim(Rand) = '27.1' If Found() Replace valoare With pn271B, TVA With pn271T Endif Locate For Alltrim(Rand) = '27.2' If Found() Replace valoare With pn272B, TVA With pn272T Endif Locate For Alltrim(Rand) = '27.3' If Found() Replace valoare With pn273B, TVA With pn273T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '12.1' If Found() Replace valoare With pn121B, TVA With pn121T Endif Locate For Alltrim(Rand) = '12.2' If Found() Replace valoare With pn122B, TVA With pn122T Endif Locate For Alltrim(Rand) = '12.3' If Found() Replace valoare With pn123B, TVA With pn123T Endif Locate For Alltrim(Rand) = '30' If Found() Replace valoare With pn30B Endif Locate For Alltrim(Rand) = '30.1' If Found() Replace valoare With pn301B Endif *!* REGULARIZARE Locate For Alltrim(Rand) = '34' If Found() Replace valoare With pn34B, TVA With pn34T Endif *** Rd. 42 Soldul sumei negative a TVA reportate din perioada precedenta pentru care nu s-a solicitat rambursare (rd.44 din decontul perioadei fiscale precedente) lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = Int(Round(solddeb, 0)) Select cDecont Locate For Alltrim(Rand) = '42' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif *** Rd. 37 Soldul TVA de plata din decontul perioadei fiscale precedente (rd.43 din decontul perioadei fiscale precedente) neachitate pana la data depunerii decontului de TVA Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = Int(Round(soldcred, 0)) Use In (Select('crsTP')) Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = Int(Round(suma, 0)) Use In (Select('crsPlati')) lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '39' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif *** Regularizari lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + m.gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = Int(Round(suma, 0)) lcRand = Iif(id_jtva_coloana = 1003, '34', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Int(Round(bazan, 0)) pnAchizitieTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBaza6N = Int(Round(bazan, 0)) pnAchizitieTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Int(Round(bazan, 0)) pnLivrareTVAN = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBaza6N = Int(Round(bazan, 0)) pnLivrareTVA6N = Int(Round(tvan, 0)) Endif Use In (Select('cNeexTemp')) Select cDecont Do Case CASE m.gnAn >= 2017 lodt = Createobject('frm_decontTVA_201701', m.tnNumarLuni) && la fel ca 2016, lblRandAtentie Case m.gnAn = 2016 lodt = Createobject('frm_decontTVA_201601', m.tnNumarLuni) && s-au mai adaugat 2 campuri la sfarsit - sold livrari/ach. neex pt livrari in ultimele 6 luni OTHERWISE lodt = Createobject('frm_decontTVA', m.tnNumarLuni) Endcase lodt.nROTN = Nvl(m.lnROTN, 0) && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRandAtentie.Caption = lodt.lblRandAtentie.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_0719 *=========================================== *!* 01.01.2017 TVA 19% Procedure viz_decontTVA_0117 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && ---- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN, pnAchizitieBaza6N, pnAchizitieTVA6N, pnLivrareBaza6N, pnLivrareTVA6N pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 pnAchizitieBaza6N = 0 pnAchizitieTVA6N = 0 pnLivrareBaza6N = 0 pnLivrareTVA6N = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] && schimbare cota TVA standard de la 24% la 20% Do Case Case m.gnAn < 2016 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0113' order by id_decont] Case m.gnAn = 2016 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0116' order by id_decont] Otherwise lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0117' order by id_decont] Endcase lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Text To lcSql Noshow Textmerge SELECT ROUND(SUM(RO19B),0) AS RO19B, ROUND(SUM(RO19T),0) AS RO19T, ROUND(SUM(RO9B),0) AS RO9B, ROUND(SUM(RO9T),0) AS RO9T, ROUND(SUM(RO5B),0) AS RO5B, ROUND(SUM(RO5T),0) AS RO5T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO24B),0) AS RO24B, ROUND(SUM(RO24T),0) AS RO24T, ROUND(SUM(ROTI),0) AS ROTI, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19B ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19T ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9B ELSE 0 END),0) AS RO9Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO9T ELSE 0 END),0) AS RO9Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5B ELSE 0 END),0) AS RO5Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO5T ELSE 0 END),0) AS RO5Tr, ROUND(SUM(CESCDD1),0) AS CESCDD1, ROUND(SUM(CESCDD2),0) AS CESCDD2, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCDD),0) AS WRSCDD, ROUND(SUM(FODD),0) AS FODD, ROUND(SUM(FOFDD),0) AS FOFDD, ROUND(SUM(CEOPTR),0) AS CEOPTR, ROUND(SUM(CESVDD),0) AS CESVDD, ROUND(SUM(CESVFDD),0) AS CESVFDD, ROUND(SUM(CESVFS),0) AS CESVFS, ROUND(SUM(WRSCFDD),0) AS WRSCFDD, ROUND(SUM(WRN),0) AS WRN FROM JV2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) && scad tva exigibil cu data act in afara perioadei de declarare. il pun pe regularizare rd. 16 pn9B = Nvl(ro19b, 0) - Nvl(ro19br, 0) pn9T = Nvl(ro19t, 0) - Nvl(ro19tr, 0) pn10B = Nvl(ro9b, 0) - Nvl(ro9br, 0) pn10T = Nvl(ro9t, 0) - Nvl(ro9tr, 0) pn11B = Nvl(ro5b, 0) - Nvl(ro5br, 0) pn11T = Nvl(ro5t, 0) - Nvl(ro5tr, 0) pnRegularizareB = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(ro19br, 0) + Nvl(ro9br, 0) + Nvl(ro5br, 0) pnRegularizareT = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(ro19tr, 0) + Nvl(ro9tr, 0) + Nvl(ro5tr, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) *!* Locate For Alltrim(Rand) = '17.1' *!* If Found() *!* Replace valoare With pn171B, TVA With pn171T *!* Endif Text To lcSql Noshow Textmerge SELECT Round(Sum(RO24B),0) As RO24B, Round(Sum(RO24T),0) As RO24T, ROUND(SUM(RO20B),0) AS RO20B, ROUND(SUM(RO20T),0) AS RO20T, ROUND(SUM(RO19BCB),0) AS RO19BCB, ROUND(SUM(RO19BCT),0) AS RO19BCT, ROUND(SUM(RO19BVB),0) AS RO19BVB, ROUND(SUM(RO19BVT),0) AS RO19BVT, ROUND(SUM(RO19BFB),0) AS RO19BFB, ROUND(SUM(RO19BFT),0) AS RO19BFT, ROUND(SUM(RO09BCB),0) AS RO09BCB, ROUND(SUM(RO09BCT),0) AS RO09BCT, ROUND(SUM(RO09BVB),0) AS RO09BVB, ROUND(SUM(RO09BVT),0) AS RO09BVT, ROUND(SUM(RO09BFB),0) AS RO09BFB, ROUND(SUM(RO09BFT),0) AS RO09BFT, ROUND(SUM(RO05B),0) AS RO05B, ROUND(SUM(RO05T),0) AS RO05T, ROUND(SUM(ROSCN),0) AS ROSCN, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCB + RO19BVB + RO19BFB ELSE 0 END),0) AS RO19Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO19BCT + RO19BVT + RO19BFT ELSE 0 END),0) AS RO19Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCB + RO09BVB + RO09BFB ELSE 0 END),0) AS RO09Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO09BCT + RO09BVT + RO09BFT ELSE 0 END),0) AS RO09Tr, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05B ELSE 0 END),0) AS RO05Br, ROUND(SUM(CASE WHEN EXTRACT(YEAR FROM DATAIREG)*12+EXTRACT(MONTH FROM DATAIREG) between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF AND EXTRACT(YEAR FROM DATAACT)*12+EXTRACT(MONTH FROM DATAACT) not between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF THEN RO05T ELSE 0 END),0) AS RO05Tr, Round(Sum(FO24B),0) As FO24B, Round(Sum(FO24T),0) As FO24T, Round(Sum(FO20B),0) As FO20B, Round(Sum(FO20T),0) As FO20T, ROUND(SUM(FO19BCB),0) AS FO19BCB, ROUND(SUM(FO19BCT),0) AS FO19BCT, ROUND(SUM(FO19BVB),0) AS FO19BVB, ROUND(SUM(FO19BVT),0) AS FO19BVT, ROUND(SUM(FO19BFB),0) AS FO19BFB, ROUND(SUM(FO19BFT),0) AS FO19BFT, ROUND(SUM(FO09BCB),0) AS FO09BCB, ROUND(SUM(FO09BCT),0) AS FO09BCT, ROUND(SUM(FO09BVB),0) AS FO09BVB, ROUND(SUM(FO09BVT),0) AS FO09BVT, ROUND(SUM(FO09BFB),0) AS FO09BFB, ROUND(SUM(FO09BFT),0) AS FO09BFT, ROUND(SUM(FOSCN),0) AS FOSCN, Round(Sum(CE24B),0) As CE24B, Round(Sum(CE24T),0) As CE24T, Round(Sum(CE20B),0) As CE20B, Round(Sum(CE20T),0) As CE20T, Round(Sum(CE24SB),0) As CE24SB, Round(Sum(CE24ST),0) As CE24ST, Round(Sum(CE20SB),0) As CE20SB, Round(Sum(CE20ST),0) As CE20ST, Round(Sum(CE5SB),0) As CE5SB, Round(Sum(CE5ST),0) As CE5ST, Round(Sum(CE9SB),0) As CE9SB, Round(Sum(CE9ST),0) As CE9ST, Round(Sum(CE19SB),0) As CE19SB, Round(Sum(CE19ST),0) As CE19ST, ROUND(SUM(CEBCB),0) AS CEBCB, ROUND(SUM(CEBCT),0) AS CEBCT, ROUND(SUM(CEBVB),0) AS CEBVB, ROUND(SUM(CEBVT),0) AS CEBVT, ROUND(SUM(CEBVSC),0) AS CEBVSC, ROUND(SUM(CEBVN),0) AS CEBVN, ROUND(SUM(CEBFB),0) AS CEBFB, ROUND(SUM(CEBFT),0) AS CEBFT, ROUND(SUM(CEBFSC),0) AS CEBFSC, ROUND(SUM(CEBFN),0) AS CEBFN, Round(Sum(TI24B), 0) As TI24B, Round(Sum(TI24T), 0) As TI24T, Round(Sum(TI20B), 0) As TI20B, Round(Sum(TI20T), 0) As TI20T, ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ROUND(SUM(ROTN),0) AS ROTN FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF <> Endtext ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn18B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) && 19% pn18T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) pn181B = pn18B pn181T = pn18T pn5B = pn18B pn5T = pn18T pn51B = pn181B pn51T = pn181T *** rd.19 = rd.6 *** Regularizari privind achizi_iile intracomunitare de bunuri pentru care cumparatorul este obligat la plata TVA (taxare inversa) (rd.19=rd.6) pn19B = Nvl(ce20b, 0) + Nvl(ce24b, 0) pn19T = Nvl(ce20t, 0) + Nvl(ce24t, 0) pn6B = pn19B pn6T = pn19T *** Achizi_ii de bunuri, altele decat cele de la rd. 18 și 19, si achizitii de servicii pentru care beneficiarul din Romania este obligat la plata TVA (taxare *** inversa) (rd.20=rd.7), din care pn20B = Nvl(CE19SB, 0) pn20T = Nvl(CE19ST, 0) pn7B = pn20B pn7T = pn20T *** Achizitii de servicii intracomunitare pentru care beneficiarul este obligat la plata TVA (taxare inversa) (rd.20.1=rd.7.1) pn201B = Nvl(CE19SB, 0) pn201T = Nvl(CE19ST, 0) pn71B = pn201B pn71T = pn201T *** Regularizari privind achizitii de servicii intracomunitare pentru care beneficiarul din Romania este obligat la plata TVA (taxare inversa)(rd.21=rd.8) pn21B = Nvl(CE24SB, 0) + Nvl(CE20SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn21T = Nvl(CE24ST, 0) + Nvl(CE20ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn8B = pn21B pn8T = pn21T *** Achizi_ii de bunuri și servicii taxabile cu cota de 19%, altele decat cele de la rd.25 && scad tva exigibil din operatiile cu data act in afara perioadei de declarare. le pun pe regularizari, rd. 32 pn22B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) - Nvl(ro19br, 0) pn22T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) - Nvl(ro19tr, 0) *** Achizi_ii de bunuri și servicii taxabile cu cota de 9% pn23B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) - Nvl(ro09br, 0) pn23T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) - Nvl(ro09tr, 0) *** Achizi_ii de bunuri taxabile cu cota de 5% pn24B = Nvl(ro05b, 0) - Nvl(ro05br, 0) pn24T = Nvl(ro05t, 0) - Nvl(ro05tr, 0) *** Achizi_ii de bunuri și servicii supuse masurilor de simplificare pentru care beneficiarul este obligat la plata TVA (taxare inversa),din care (rd.25=rd.12) pn25B = Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && ACH. TI pn25T = Nvl(ti24t, 0) + Nvl(ti20t, 0) + Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn25B pn12T = pn25T pn251B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) && ACH. TI 19% pn251T = Nvl(ti19bctro, 0) + Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) pn121B = pn251B pn121T = pn251T pn252B = Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && && ACH. TI 9% pn252T = Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn122B = pn252B pn122T = pn252T pn253B = 0 && ACH. TI 5% - NU AM EXPLICATIE TVA PENTRU TI 5%. AR TREBUI ADAUGATA pn253T = 0 pn123B = pn253B pn123T = pn253T *** Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile, din care pn28B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) && Achizi_ii de bunuri și servicii scutite de taxa sau neimpozabile pn281B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) && Achizitii de servicii intracomunitare scutite de taxa *** Regularizari taxa dedusa pn32B = Nvl(ro20b, 0) + Nvl(ro24b, 0) + Nvl(fo20b, 0) + Nvl(fo24b, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro19br, 0) + Nvl(ro09br, 0) + Nvl(ro05br, 0) pn32T = Nvl(ro20t, 0) + Nvl(ro24t, 0) + Nvl(fo20t, 0) + Nvl(fo24t, 0) + Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ro19tr, 0) + Nvl(ro09tr, 0) + Nvl(ro05tr, 0) lnROTN = Nvl(ROTN, 0) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 Select cDecont Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '18.1' If Found() Replace valoare With pn181B, TVA With pn181T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '19' If Found() Replace valoare With pn19B, TVA With pn19T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '25.1' If Found() Replace valoare With pn251B, TVA With pn251T Endif Locate For Alltrim(Rand) = '25.2' If Found() Replace valoare With pn252B, TVA With pn252T Endif Locate For Alltrim(Rand) = '25.3' If Found() Replace valoare With pn253B, TVA With pn253T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '12.1' If Found() Replace valoare With pn121B, TVA With pn121T Endif Locate For Alltrim(Rand) = '12.2' If Found() Replace valoare With pn122B, TVA With pn122T Endif Locate For Alltrim(Rand) = '12.3' If Found() Replace valoare With pn123B, TVA With pn123T Endif Locate For Alltrim(Rand) = '28' If Found() Replace valoare With pn28B Endif Locate For Alltrim(Rand) = '28.1' If Found() Replace valoare With pn281B Endif *!* REGULARIZARE Locate For Alltrim(Rand) = '32' If Found() Replace valoare With pn32B, TVA With pn32T Endif *** Rd. 40 Soldul sumei negative a TVA reportate din perioada precedenta pentru care nu s-a solicitat rambursare (rd.44 din decontul perioadei fiscale precedente) lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '40' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif *** Rd. 37 Soldul TVA de plata din decontul perioadei fiscale precedente (rd.43 din decontul perioadei fiscale precedente) neachitate pana la data depunerii decontului de TVA Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred Use In (Select('crsTP')) Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma Use In (Select('crsPlati')) lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '37' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif *** Regularizari lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + m.gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = suma lcRand = Iif(id_jtva_coloana = 1003, '32', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Round(bazan, 0) pnAchizitieTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBaza6N = Round(bazan, 0) pnAchizitieTVA6N = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Round(bazan, 0) pnLivrareTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO19NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO19NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBaza6N = Round(bazan, 0) pnLivrareTVA6N = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Select cDecont Do Case Case m.gnAn < 2016 lodt = Createobject('frm_decontTVA', m.tnNumarLuni) Case m.gnAn = 2016 lodt = Createobject('frm_decontTVA_201601', m.tnNumarLuni) && s-au mai adaugat 2 campuri la sfarsit - sold livrari/ach. neex pt livrari in ultimele 6 luni Otherwise && 2017 lodt = Createobject('frm_decontTVA_201701', m.tnNumarLuni) && la fel ca 2016, lblRandAtentie Endcase lodt.nROTN = m.lnROTN && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRandAtentie.Caption = lodt.lblRandAtentie.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_0117 *=========================================== *!* 01.01.2016 TVA 20% Procedure viz_decontTVA_0116 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && ---- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN, pnAchizitieBaza6N, pnAchizitieTVA6N, pnLivrareBaza6N, pnLivrareTVA6N pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 pnAchizitieBaza6N = 0 pnAchizitieTVA6N = 0 pnLivrareBaza6N = 0 pnLivrareTVA6N = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] && schimbare cota TVA standard de la 24% la 20% If gnAn < 2016 lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0113' order by id_decont] Else lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0116' order by id_decont] Endif lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(RO20B),0) AS RO20B, ] + ; [ ROUND(SUM(RO20T),0) AS RO20T,] + ; [ ROUND(SUM(RO24B),0) AS RO24B, ] + ; [ ROUND(SUM(RO24T),0) AS RO24T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR,] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD,] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD,] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR, ] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD, ] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD, ] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) pn9B = Nvl(ro20b, 0) pn9T = Nvl(ro20t, 0) pn10B = Nvl(ro9b, 0) pn10T = Nvl(ro9t, 0) pn11B = Nvl(ro5b, 0) pn11T = Nvl(ro5t, 0) pnRegularizareB = Nvl(ro19b, 0) + Nvl(ro24b, 0) pnRegularizareT = Nvl(ro19t, 0) + Nvl(ro24t, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) *!* Locate For Alltrim(Rand) = '17.1' *!* If Found() *!* Replace valoare With pn171B, TVA With pn171T *!* Endif lcSql = [SELECT Round(Sum(RO24B),0) As RO24B, ] + ; [ Round(Sum(RO24T),0) As RO24T, ] + ; [ ROUND(SUM(RO20B),0) AS RO20B, ] + ; [ ROUND(SUM(RO20T),0) AS RO20T, ] + ; [ ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ Round(Sum(FO24B),0) As FO24B, ] + ; [ Round(Sum(FO24T),0) As FO24T, ] + ; [ Round(Sum(FO20B),0) As FO20B, ] + ; [ Round(Sum(FO20T),0) As FO20T, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ Round(Sum(CE24B),0) As CE24B, ] + ; [ Round(Sum(CE24T),0) As CE24T, ] + ; [ Round(Sum(CE20B),0) As CE20B, ] + ; [ Round(Sum(CE20T),0) As CE20T, ] + ; [ Round(Sum(CE24SB),0) As CE24SB, ] + ; [ Round(Sum(CE24ST),0) As CE24ST, ] + ; [ Round(Sum(CE20SB),0) As CE20SB, ] + ; [ Round(Sum(CE20ST),0) As CE20ST, ] + ; [ Round(Sum(CE5SB),0) As CE5SB, ] + ; [ Round(Sum(CE5ST),0) As CE5ST, ] + ; [ Round(Sum(CE9SB),0) As CE9SB, ] + ; [ Round(Sum(CE9ST),0) As CE9ST, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ Round(Sum(TI24B), 0) As TI24B, ] + ; [ Round(Sum(TI24T), 0) As TI24T, ] + ; [ Round(Sum(TI20B), 0) As TI20B, ] + ; [ Round(Sum(TI20T), 0) As TI20T, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ] + ; [ ROUND(SUM(ROTN),0) AS ROTN ] + ; [ FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn18B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + Nvl(ce20b, 0) + Nvl(ce24b, 0) pn18T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + Nvl(ce20t, 0) + Nvl(ce24t, 0) pn181B = pn18B pn181T = pn18T pn5B = pn18B pn5T = pn18T pn51B = pn181B pn51T = pn181T pn22B = Nvl(ro20b, 0) + Nvl(fo20b, 0) && Nvl(ro24b, 0) + Nvl(fo24b, 0) pn22T = Nvl(ro20t, 0) + Nvl(fo20t, 0) && Nvl(ro24t, 0) + Nvl(fo24t, 0) pn23B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) pn23T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) pn24B = Nvl(ro05b, 0) pn24T = Nvl(ro05t, 0) pn25B = Nvl(ti24b, 0) + Nvl(ti20b, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && ACH. TI pn25T = Nvl(ti24t, 0) + Nvl(ti20t, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn25B pn12T = pn25T pn251B = Nvl(ti20b, 0) && ACH. TI 20% pn251T = Nvl(ti20t, 0) pn121B = pn251B pn121T = pn251T pn252B = Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) && && ACH. TI 9% pn252T = Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn122B = pn252B pn122T = pn252T pn253B = 0 && ACH. TI 5% - NU AM EXPLICATIE TVA PENTRU TI 5%. AR TREBUI ADAUGATA pn253T = 0 pn123B = pn253B pn123T = pn253T pn26B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn261B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) *** rd.19=rd.6 ??? pnRegularizareB = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(ro24b, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) + Nvl(fo24b, 0) pnRegularizareT = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(ro24t, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) + Nvl(fo24t, 0) pn20B = Nvl(CE20SB, 0) + Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn20T = Nvl(CE20ST, 0) + Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn201B = Nvl(CE20SB, 0) + Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn201T = Nvl(CE20ST, 0) + Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn7B = pn20B pn7T = pn20T pn71B = pn201B pn71T = pn201T *!* *** ACHIZITII D394 *!* pn271B = Nvl(loD394.achb + loD394.achtib,0) *!* pn271T = Nvl(loD394.acht + loD394.achtit,0) lnROTN = Nvl(ROTN, 0) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 pnRegularizareB = pnRegularizareB + Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pnRegularizareT = pnRegularizareT + Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) Select cDecont Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '18.1' If Found() Replace valoare With pn181B, TVA With pn181T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '25.1' If Found() Replace valoare With pn251B, TVA With pn251T Endif Locate For Alltrim(Rand) = '25.2' If Found() Replace valoare With pn252B, TVA With pn252T Endif Locate For Alltrim(Rand) = '25.3' If Found() Replace valoare With pn253B, TVA With pn253T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '12.1' If Found() Replace valoare With pn121B, TVA With pn121T Endif Locate For Alltrim(Rand) = '12.2' If Found() Replace valoare With pn122B, TVA With pn122T Endif Locate For Alltrim(Rand) = '12.3' If Found() Replace valoare With pn123B, TVA With pn123T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B Endif Locate For Alltrim(Rand) = '26.1' If Found() Replace valoare With pn261B Endif *!* Locate For Alltrim(Rand) = '27.1' *!* If Found() *!* Replace valoare With pn271B, TVA WITH pn271T *!* Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '30' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '38' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred Use In (Select('crsTP')) Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma Use In (Select('crsPlati')) lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '35' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = suma lcRand = Iif(id_jtva_coloana = 1003, '30', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Round(bazan, 0) pnAchizitieTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBaza6N = Round(bazan, 0) pnAchizitieTVA6N = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Round(bazan, 0) pnLivrareTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) * sold neexigibil doar de la facturile din ultimele 6 luni, inclusiv luna de raportare Text To lcSql Noshow Textmerge select sum(RO24NB+RO20NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO20NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF and (extract(year from dataact) * 12 + extract(month from dataact) > ?gnan*12+?pnLunaF-6) <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBaza6N = Round(bazan, 0) pnLivrareTVA6N = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Select cDecont If gnAn < 2016 lodt = Createobject('frm_decontTVA', m.tnNumarLuni) Else lodt = Createobject('frm_decontTVA_201601', m.tnNumarLuni) && s-au mai adaugat 2 campuri la sfarsit - sold livrari/ach. neex pt livrari in ultimele 6 luni Endif lodt.nROTN = m.lnROTN && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRand28.Caption = lodt.lblRand28.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_0116 *=========================================== *!* 19.02.2013 *!* TVA INCASARE Procedure viz_decontTVA_0113 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && ---- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata, pnAchizitieBazaN, pnAchizitieTVAN, pnLivrareBazaN, pnLivrareTVAN pnProRata = 100 pnAchizitieBazaN = 0 pnAchizitieTVAN = 0 pnLivrareBazaN = 0 pnLivrareTVAN = 0 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0113' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(RO24B),0) AS RO24B, ] + ; [ ROUND(SUM(RO24T),0) AS RO24T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR,] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD,] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD,] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR, ] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD, ] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD, ] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) pn9B = Nvl(ro24b, 0) pn9T = Nvl(ro24t, 0) pn10B = Nvl(ro9b, 0) pn10T = Nvl(ro9t, 0) pn11B = Nvl(ro5b, 0) pn11T = Nvl(ro5t, 0) pnRegularizareB = Nvl(ro19b, 0) pnRegularizareT = Nvl(ro19t, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) pn15B = Nvl(wrscfdd, 0) *!* *** LIVRARI D394 *!* pn171B = Nvl(loD394.livb + loD394.livtib,0) *!* pn171T = Nvl(loD394.livt + loD394.livtit,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) *!* Locate For Alltrim(Rand) = '17.1' *!* If Found() *!* Replace valoare With pn171B, TVA With pn171T *!* Endif lcSql = [SELECT Round(Sum(RO24B),0) As RO24B, ] + ; [ Round(Sum(RO24T),0) As RO24T, ] + ; [ ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ Round(Sum(FO24B),0) As FO24B, ] + ; [ Round(Sum(FO24T),0) As FO24T, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ Round(Sum(CE24B),0) As CE24B, ] + ; [ Round(Sum(CE24T),0) As CE24T, ] + ; [ Round(Sum(CE24SB),0) As CE24SB, ] + ; [ Round(Sum(CE24ST),0) As CE24ST, ] + ; [ Round(Sum(CE5SB),0) As CE5SB, ] + ; [ Round(Sum(CE5ST),0) As CE5ST, ] + ; [ Round(Sum(CE9SB),0) As CE9SB, ] + ; [ Round(Sum(CE9ST),0) As CE9ST, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ Round(Sum(TI24B), 0) As TI24B, ] + ; [ Round(Sum(TI24T), 0) As TI24T, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ] + ; [ ROUND(SUM(ROTN),0) AS ROTN ] + ; [ FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn18B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + Nvl(ce24b, 0) pn18T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + Nvl(ce24t, 0) pn181B = pn18B pn181T = pn18T pn5B = pn18B pn5T = pn18T pn51B = pn181B pn51T = pn181T pn22B = Nvl(ro24b, 0) + Nvl(fo24b, 0) pn22T = Nvl(ro24t, 0) + Nvl(fo24t, 0) pn23B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) pn23T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) pn24B = Nvl(ro05b, 0) pn24T = Nvl(ro05t, 0) pn25B = Nvl(ti24b, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn25T = Nvl(ti24t, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn25B pn12T = pn25T pn26B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn261B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) *** rd.19=rd.6 ??? pnRegularizareB = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pnRegularizareT = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn20B = Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn20T = Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn201B = Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn201T = Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn7B = pn20B pn7T = pn20T pn71B = pn201B pn71T = pn201T *!* *** ACHIZITII D394 *!* pn271B = Nvl(loD394.achb + loD394.achtib,0) *!* pn271T = Nvl(loD394.acht + loD394.achtit,0) lnROTN = Nvl(ROTN, 0) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 pnRegularizareB = pnRegularizareB + Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pnRegularizareT = pnRegularizareT + Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) Select cDecont Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '18.1' If Found() Replace valoare With pn181B, TVA With pn181T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B Endif Locate For Alltrim(Rand) = '26.1' If Found() Replace valoare With pn261B Endif *!* Locate For Alltrim(Rand) = '27.1' *!* If Found() *!* Replace valoare With pn271B, TVA WITH pn271T *!* Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '30' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '38' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- Text To lcSql Textmerge Noshow SELECT NVL(soldcred,0) as soldcred from vbal where cont = '4423' and AN = ?pnAnPrec AND LUNA = ?pnLunaPrec <> Endtext lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred Use In (Select('crsTP')) Text To lcSql Textmerge Noshow select nvl(sum(suma),0) as suma from act where an = ?gnAn and luna between ?pnLunaI and ?pnLunaF and sters = 0 and scd = '4423' and scc In ('5121', '5311') <> Endtext lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma Use In (Select('crsPlati')) lnTP = Max(m.lnTP - m.lnPlati, 0) Select cDecont Locate For Alltrim(Rand) = '35' If Found() Replace TVA With Nvl(m.lnTP, 0) Endif lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = suma lcRand = Iif(id_jtva_coloana = 1003, '30', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) *** SOLD NEEXIGIBIL Text To lcSql Noshow Textmerge select sum(RO24NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO9NT+RO5NT) as tvan from vjc2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnAchizitieBazaN = Round(bazan, 0) pnAchizitieTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Text To lcSql Noshow Textmerge select sum(RO24NB+RO9NB+RO5NB) as bazan, sum(RO24NT+RO9NT+RO5NT) as tvan from vjv2010 where an = ?gnAn and luna = ?pnLunaF <> Endtext llSucces = goExecutor.oExecuta(m.lcSql, "cNeexTemp") If m.llSucces pnLivrareBazaN = Round(bazan, 0) pnLivrareTVAN = Round(tvan, 0) Endif Use In (Select('cNeexTemp')) Select cDecont lodt = Createobject('frm_decontTVA', m.tnNumarLuni) lodt.nROTN = m.lnROTN && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRand28.Caption = lodt.lblRand28.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_0113 *=========================================== *!* 08.02.2012 *!* CORELARE D394, CEREALE Procedure viz_decontTVA_0112 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local lodt As 'frm_decontTVA' Local lcCursor, lcSql, ldDataCurenta, ldDataPrecedenta, lnAnCurent, lnAnPrecedent, lnLunaCurenta Local lnLunaMin, lnLunaPrecedenta, lnPerioada, lnPlati, lnSucces, lnTP, lnTR, loEx As Exception, lnROTN *:Global pn10B, pn10T, pn11B, pn11T, pn13B, pn14B, pn15B, pn171B, pn171T, pn17B, pn17T, pn1911B *:Global pn1911T, pn191B, pn191T, pn19B, pn19T, pn1B, pn21B, pn21T, pn22B, pn22T, pn23B, pn23T *:Global pn241B, pn24B, pn31B, pn3B, pn51B, pn51T, pn5B, pn5T, pn711B, pn711T, pn71B, pn71T, pn7B *:Global pn7T, pn9B, pn9T, pnRegularizareB, pnRegularizareT lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) lnROTN = 0 * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && ---- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0112' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif *** D394 *** randurile 17.1 si 27.1 (facturi livrari si achizitii din RO catre persoane juridice platitoare de TVA) Local loD394 As "D394" Try loD394 = Createobject("D394") && ovanzcump.vcx loD394.do_executa(.T., m.tnNumarLuni) Catch To loEx loD394 = Createobject("custom") loD394.AddProperty("livb", 0) loD394.AddProperty("livt", 0) loD394.AddProperty("livtib", 0) loD394.AddProperty("livtit", 0) loD394.AddProperty("achb", 0) loD394.AddProperty("acht", 0) loD394.AddProperty("achtib", 0) loD394.AddProperty("achtit", 0) loD394.AddProperty("Total", 0) loD394.AddProperty("rectificativa", 0) loD394.AddProperty("TIP", 'L') loD394.AddProperty("Perioada", 1) loD394.AddProperty("NumarCoduriFiscale", 0) amessagebox('Eroare calcul D394 pentru randurile 17.1 si 27.1' + CRLF + loEx.Message + ' ' + Transform(loEx.ErrorNo), 0 + 48, _Screen.Caption) Endtry lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(RO24B),0) AS RO24B, ] + ; [ ROUND(SUM(RO24T),0) AS RO24T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR,] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD,] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD,] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR, ] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD, ] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD, ] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV Go Top pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) pn9B = Nvl(ro24b, 0) pn9T = Nvl(ro24t, 0) pn10B = Nvl(ro9b, 0) pn10T = Nvl(ro9t, 0) pn11B = Nvl(ro5b, 0) pn11T = Nvl(ro5t, 0) pnRegularizareB = Nvl(ro19b, 0) pnRegularizareT = Nvl(ro19t, 0) pn13B = Nvl(roti, 0) pn14B = Nvl(wrscdd, 0) pn15B = Nvl(wrscfdd, 0) *** LIVRARI D394 pn171B = Nvl(loD394.livb + loD394.livtib, 0) pn171T = Nvl(loD394.livt + loD394.livtit, 0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif *!* LIVRARI INTERNE CATRE CLIENTI PLATITORI TVA IN ROMANIA (LIVRARI D394) Locate For Alltrim(Rand) = '17.1' If Found() Replace valoare With pn171B, TVA With pn171T Endif lcSql = [SELECT Round(Sum(RO24B),0) As RO24B, ] + ; [ Round(Sum(RO24T),0) As RO24T, ] + ; [ ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ Round(Sum(FO24B),0) As FO24B, ] + ; [ Round(Sum(FO24T),0) As FO24T, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ Round(Sum(CE24B),0) As CE24B, ] + ; [ Round(Sum(CE24T),0) As CE24T, ] + ; [ Round(Sum(CE24SB),0) As CE24SB, ] + ; [ Round(Sum(CE24ST),0) As CE24ST, ] + ; [ Round(Sum(CE5SB),0) As CE5SB, ] + ; [ Round(Sum(CE5ST),0) As CE5ST, ] + ; [ Round(Sum(CE9SB),0) As CE9SB, ] + ; [ Round(Sum(CE9ST),0) As CE9ST, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ Round(Sum(TI24B), 0) As TI24B, ] + ; [ Round(Sum(TI24T), 0) As TI24T, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO, ] + ; [ ROUND(SUM(ROTN),0) AS ROTN ] + ; [ FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC Go Top pn18B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + Nvl(ce24b, 0) pn18T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + Nvl(ce24t, 0) pn181B = pn18B pn181T = pn18T pn5B = pn18B pn5T = pn18T pn51B = pn181B pn51T = pn181T pn22B = Nvl(ro24b, 0) + Nvl(fo24b, 0) pn22T = Nvl(ro24t, 0) + Nvl(fo24t, 0) pn23B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) pn23T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) pn24B = Nvl(ro05b, 0) pn24T = Nvl(ro05t, 0) pn25B = Nvl(ti24b, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn25T = Nvl(ti24t, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn12B = pn25B pn12T = pn25T pn26B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn261B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) *** rd.19=rd.6 ??? pnRegularizareB = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pnRegularizareT = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn20B = Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn20T = Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn201B = Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn201T = Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn7B = pn20B pn7T = pn20T pn71B = pn201B pn71T = pn201T *** ACHIZITII D394 pn271B = Nvl(loD394.achb + loD394.achtib, 0) pn271T = Nvl(loD394.acht + loD394.achtit, 0) lnROTN = Nvl(ROTN, 0) && && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 pnRegularizareB = pnRegularizareB + Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pnRegularizareT = pnRegularizareT + Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) Select cDecont Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '18.1' If Found() Replace valoare With pn181B, TVA With pn181T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '20.1' If Found() Replace valoare With pn201B, TVA With pn201T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B, TVA With pn24T Endif Locate For Alltrim(Rand) = '25' If Found() Replace valoare With pn25B, TVA With pn25T Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B, TVA With pn12T Endif Locate For Alltrim(Rand) = '26' If Found() Replace valoare With pn26B Endif Locate For Alltrim(Rand) = '26.1' If Found() Replace valoare With pn261B Endif Locate For Alltrim(Rand) = '27.1' If Found() Replace valoare With pn271B, TVA With pn271T Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '30' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '38' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- lcSql = [SELECT NVL(soldcred,0) as soldcred ] + ; [ from vbal ] + ; [ where cont = '4423' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec ] + gcCondSucursala lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred If Used('crsTP') Use In crsTP Endif lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4423' and scc in ('5121','5311')] + gcCondSucursala lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma If Used('crsPlati') Use In crsPlati Endif lnTP = lnTP - lnPlati Select cDecont Locate For Alltrim(Rand) = '35' If Found() Replace TVA With Nvl(lnTP, 0) Endif lcSql = [select sum(suma) as suma, id_jtva_coloana from act ] + ; [where sters = 0 and id_jtva_coloana in (1002, 1003) and ] + ; [an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala + ; [ group by id_jtva_coloana order by id_jtva_coloana] lcCursor = [crsRegTaxe] If goExecutor.oExecuta(lcSql, lcCursor) Select (lcCursor) Scan lnSuma = suma lcRand = Iif(id_jtva_coloana = 1003, '30', '16') Select cDecont Replace TVA With TVA - lnSuma For Rand = lcRand Select (lcCursor) Endscan Endif Use In (Select(lcCursor)) ***---- Select cDecont lodt = Createobject('frm_decontTVA', m.tnNumarLuni) lodt.nROTN = m.lnROTN && LIMITARE DEDUCERE TVA 4426 ID_JTVA = 1001 lodt.lblRand28.Caption = lodt.lblRand28.Caption + ' (' + Alltrim(Str(m.lnROTN)) + ' lei)' lodt.Show(1) Endproc && viz_decontTVA_0112 *=========================================== *!* 09.08.2010 *!* TVA 24% Procedure viz_decontTVA_0710 Lparameters tnNumarLuni *Parameters tlTrim *** tnNumarLuni: 1 = o luna, 3 = 3 luni trimestrial, 6 = 6 luni semestrial, 12 = 12 luni anual Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec *** JC, JV lunile precedente lnAnCurent = m.gnAn lnLunaCurenta = m.gnLuna ldDataCurenta = Date(m.lnAnCurent, m.lnLunaCurenta, 1) * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.lnLunaCurenta / tnNumarLuni) lnLunaMin = (lnPerioada - 1) * tnNumarLuni + 1 *** luna pentru balanta precedenta ldDataPrecedenta = Gomonth(Date(m.lnAnCurent, m.lnLunaMin, 1), -1) lnLunaPrecedenta = Month(m.ldDataPrecedenta) lnAnPrecedent = Year(m.ldDataPrecedenta) && ---- pnLunaI = lnLunaMin pnLunaF = m.lnLunaCurenta pnLunaPrec = m.lnLunaPrecedenta pnAnPrec = m.lnAnPrecedent Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0111' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(RO24B),0) AS RO24B, ] + ; [ ROUND(SUM(RO24T),0) AS RO24T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR,] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD,] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD,] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(CEOPTR),0) AS CEOPTR, ] + ; [ ROUND(SUM(CESVDD),0) AS CESVDD, ] + ; [ ROUND(SUM(CESVFDD),0) AS CESVFDD, ] + ; [ ROUND(SUM(CESVFS),0) AS CESVFS, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV *!* modificare v 2.0.126 *!* pn1B = Nvl(cescdd1,0) *!* pn3B = Nvl(cescdd2,0) + Nvl(fodd,0) + Nvl(fofdd,0) pn1B = Nvl(cescdd1, 0) + Nvl(ceoptr, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) + Nvl(cesvdd, 0) + Nvl(cesvfdd, 0) + Nvl(cesvfs, 0) + Nvl(cesvfs, 0) pn31B = Nvl(cesvfs, 0) *!* modificare v 2.0.126 ^ pn9B = Nvl(ro24b, 0) pn9T = Nvl(ro24t, 0) pn10B = Nvl(ro9b, 0) pn10T = Nvl(ro9t, 0) pn11B = Nvl(ro5b, 0) pn11T = Nvl(ro5t, 0) pnRegularizareB = Nvl(ro19b, 0) pnRegularizareT = Nvl(ro19t, 0) pn13B = Nvl(roti, 0) + Nvl(wrscdd, 0) pn14B = Nvl(wrscfdd, 0) &&+ NVL(wrscfdd,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif *!* modificare v 2.0.126 Locate For Alltrim(Rand) = '3.1' If Found() Replace valoare With pn31B Endif *!* modificare v 2.0.126 ^ Locate For Alltrim(Rand) = '9' && '7' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '10' && '8' If Found() Replace valoare With pn10B, TVA With pn10T Endif Locate For Alltrim(Rand) = '11' && '9' If Found() Replace valoare With pn11B, TVA With pn11T Endif Locate For Alltrim(Rand) = '13' && '11' If Found() Replace valoare With pn13B Endif Locate For Alltrim(Rand) = '14' && '12' If Found() Replace valoare With pn14B Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif lcSql = [SELECT Round(Sum(RO24B),0) As RO24B, ] + ; [ Round(Sum(RO24T),0) As RO24T, ] + ; [ ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ Round(Sum(FO24B),0) As FO24B, ] + ; [ Round(Sum(FO24T),0) As FO24T, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ Round(Sum(CE24B),0) As CE24B, ] + ; [ Round(Sum(CE24T),0) As CE24T, ] + ; [ Round(Sum(CE24SB),0) As CE24SB, ] + ; [ Round(Sum(CE24ST),0) As CE24ST, ] + ; [ Round(Sum(CE5SB),0) As CE5SB, ] + ; [ Round(Sum(CE5ST),0) As CE5ST, ] + ; [ Round(Sum(CE9SB),0) As CE9SB, ] + ; [ Round(Sum(CE9ST),0) As CE9ST, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ Round(Sum(TI24B), 0) As TI24B, ] + ; [ Round(Sum(TI24T), 0) As TI24T, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO ] + ; [ FROM JC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC pn21B = Nvl(ro24b, 0) + Nvl(fo24b, 0) pn21T = Nvl(ro24t, 0) + Nvl(fo24t, 0) pn22B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) pn22T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) pn23B = Nvl(ro05b, 0) pn23T = Nvl(ro05t, 0) pn24B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn241B = Nvl(cebvsc, 0) + Nvl(cebfsc, 0) pnRegularizareB = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pnRegularizareT = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn17B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) + Nvl(ce24b, 0) pn17T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) + Nvl(ce24t, 0) pn171B = pn17B pn171T = pn17T pn19B = Nvl(ti24b, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) + Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn19T = Nvl(ti24t, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) + Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn191B = Nvl(CE24SB, 0) + Nvl(CE9SB, 0) + Nvl(CE5SB, 0) pn191T = Nvl(CE24ST, 0) + Nvl(CE9ST, 0) + Nvl(CE5ST, 0) pn1911B = pn191B pn1911T = pn191T pn5B = pn17B pn5T = pn17T pn51B = pn171B pn51T = pn171T pn7B = pn19B pn7T = pn19T pn71B = pn191B pn71T = pn191T pn711B = pn1911B pn711T = pn1911T pnRegularizareB = pnRegularizareB + Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pnRegularizareT = pnRegularizareT + Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) Select cDecont Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Locate For Alltrim(Rand) = '24' If Found() Replace valoare With pn24B Endif Locate For Alltrim(Rand) = '24.1' If Found() Replace valoare With pn241B Endif Locate For Alltrim(Rand) = '17' If Found() Replace valoare With pn17B, TVA With pn17T Endif Locate For Alltrim(Rand) = '17.1' If Found() Replace valoare With pn171B, TVA With pn171T Endif Locate For Alltrim(Rand) = '5' If Found() Replace valoare With pn5B, TVA With pn5T Endif Locate For Alltrim(Rand) = '5.1' If Found() Replace valoare With pn51B, TVA With pn51T Endif Locate For Alltrim(Rand) = '19' If Found() Replace valoare With pn19B, TVA With pn19T Endif Locate For Alltrim(Rand) = '19.1' If Found() Replace valoare With pn191B, TVA With pn191T Endif Locate For Alltrim(Rand) = '19.1.1' If Found() Replace valoare With pn1911B, TVA With pn1911T Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '7.1' If Found() Replace valoare With pn71B, TVA With pn71T Endif Locate For Alltrim(Rand) = '7.1.1' If Found() Replace valoare With pn711B, TVA With pn711T Endif *!* REGULARIZARE 19% Locate For Alltrim(Rand) = '28' If Found() Replace valoare With pnRegularizareB, TVA With pnRegularizareT Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '35' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- lcSql = [SELECT NVL(soldcred,0) as soldcred ] + ; [ from vbal ] + ; [ where cont = '4423' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec ] + gcCondSucursala lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred If Used('crsTP') Use In crsTP Endif lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4423' and scc in ('5121','5311')] + gcCondSucursala lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma If Used('crsPlati') Use In crsPlati Endif lnTP = lnTP - lnPlati Select cDecont Locate For Alltrim(Rand) = '33' If Found() Replace TVA With Nvl(lnTP, 0) Endif ***---- Select cDecont lodt = Createobject('frm_decontTVA', m.tnNumarLuni) lodt.Show(1) Endproc && viz_decontTVA_0710 *=========================================== Procedure viz_decontTVA_0110 Parameters tlTrim Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local llTrim llTrim = tlTrim If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 pnLunaF = 3 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 pnLunaF = 6 pnLunaPrec = 3 pnAnPrec = gnAn Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 pnLunaF = 9 pnLunaPrec = 6 pnAnPrec = gnAn Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 pnLunaF = 12 pnLunaPrec = 9 pnAnPrec = gnAn Endcase Else pnLunaI = gnLuna pnLunaF = gnLuna If gnLuna = 1 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Else pnLunaPrec = gnLuna - 1 pnAnPrec = gnAn Endif Endif Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '0110' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV pn1B = Nvl(cescdd1, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) pn7B = Nvl(ro19b, 0) pn7T = Nvl(ro19t, 0) pn8B = Nvl(ro9b, 0) pn8T = Nvl(ro9t, 0) pn9B = Nvl(ro5b, 0) pn9T = Nvl(ro5t, 0) pn11B = Nvl(roti, 0) + Nvl(wrscdd, 0) pn12B = Nvl(wrscfdd, 0) &&+ NVL(wrscfdd,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '9' && '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '10' && '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '11' && '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '13' && '11' If Found() Replace valoare With pn11B Endif Locate For Alltrim(Rand) = '14' && '12' If Found() Replace valoare With pn12B Endif lcSql = [SELECT ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO ] + ; [ FROM VJC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC pn18B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pn18T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn19B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) + ; Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn19T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) + ; Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn20B = Nvl(ro05b, 0) pn20T = Nvl(ro05t, 0) pn21B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn15B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) pn15T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) pn4B = pn15B pn4T = pn15T pn10B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) &&pn17B + pn18B pn10T = Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) && pn17T + pn18T pn17B = Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pn17T = Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) pn6B = pn17B pn6T = pn17T Select cDecont Locate For Alltrim(Rand) = '21' && '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '22' && '19' If Found() Replace valoare With pn19B, TVA With pn19T Endif Locate For Alltrim(Rand) = '23' && '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '24' && '21' If Found() Replace valoare With pn21B Endif Locate For Alltrim(Rand) = '17' && '15' If Found() Replace valoare With pn15B, TVA With pn15T Endif Locate For Alltrim(Rand) = '17.1' && '15.1' If Found() Replace valoare With pn15B, TVA With pn15T Endif Locate For Alltrim(Rand) = '5' && '4' If Found() Replace valoare With pn4B, TVA With pn4T Endif Locate For Alltrim(Rand) = '5.1' && '4.1' If Found() Replace valoare With pn4B, TVA With pn4T Endif *!* Locate For Alltrim(Rand) = '9' *!* If Found() *!* Replace valoare With pn9B, tva With pn9T *!* Endif Locate For Alltrim(Rand) = '19' && '17' If Found() Replace valoare With pn17B, TVA With pn17T Endif Locate For Alltrim(Rand) = '7' && '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '35' && '32' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- lcSql = [SELECT NVL(soldcred,0) as soldcred ] + ; [ from vbal ] + ; [ where cont = '4423' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec ] + gcCondSucursala lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred If Used('crsTP') Use In crsTP Endif lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4423' and scc in ('5121','5311')] + gcCondSucursala lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma If Used('crsPlati') Use In crsPlati Endif lnTP = lnTP - lnPlati Select cDecont &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Locate For Alltrim(Rand) = '33' && '30' If Found() Replace TVA With Nvl(lnTP, 0) Endif ***---- Select cDecont lodt = Createobject('frm_decontTVA') lodt.Show(1) Endproc && viz_decontTVA_0110 ****************************************** sfarsit viz_decontTVA_0110 ******************************************* *=========================================== Procedure viz_decontTVA_1208 Parameters tlTrim Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local llTrim llTrim = tlTrim If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 pnLunaF = 3 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 pnLunaF = 6 pnLunaPrec = 3 pnAnPrec = gnAn Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 pnLunaF = 9 pnLunaPrec = 6 pnAnPrec = gnAn Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 pnLunaF = 12 pnLunaPrec = 9 pnAnPrec = gnAn Endcase Else pnLunaI = gnLuna pnLunaF = gnLuna If gnLuna = 1 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Else pnLunaPrec = gnLuna - 1 pnAnPrec = gnAn Endif Endif Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d ] + ; [where valabil = '1208' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(RO5B),0) AS RO5B, ] + ; [ ROUND(SUM(RO5T),0) AS RO5T, ] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV pn1B = Nvl(cescdd1, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) pn7B = Nvl(ro19b, 0) pn7T = Nvl(ro19t, 0) pn8B = Nvl(ro9b, 0) pn8T = Nvl(ro9t, 0) pn9B = Nvl(ro5b, 0) pn9T = Nvl(ro5t, 0) pn11B = Nvl(roti, 0) + Nvl(wrscdd, 0) pn12B = Nvl(wrscfdd, 0) &&+ NVL(wrscfdd,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '9' If Found() Replace valoare With pn9B, TVA With pn9T Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B Endif Locate For Alltrim(Rand) = '12' If Found() Replace valoare With pn12B Endif lcSql = [SELECT ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(RO05B),0) AS RO05B, ] + ; [ ROUND(SUM(RO05T),0) AS RO05T, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO ] + ; [ FROM VJC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC pn18B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pn18T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn19B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) + ; Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn19T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) + ; Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn20B = Nvl(ro05b, 0) pn20T = Nvl(ro05t, 0) pn21B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn15B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) pn15T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) pn4B = pn15B pn4T = pn15T pn10B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) &&pn17B + pn18B pn10T = Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) && pn17T + pn18T pn17B = Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pn17T = Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) pn6B = pn17B pn6T = pn17T Select cDecont Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '19' If Found() Replace valoare With pn19B, TVA With pn19T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B, TVA With pn20T Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B, TVA With pn15T Endif Locate For Alltrim(Rand) = '15.1' If Found() Replace valoare With pn15B, TVA With pn15T Endif Locate For Alltrim(Rand) = '4' If Found() Replace valoare With pn4B, TVA With pn4T Endif Locate For Alltrim(Rand) = '4.1' If Found() Replace valoare With pn4B, TVA With pn4T Endif *!* Locate For Alltrim(Rand) = '9' *!* If Found() *!* Replace valoare With pn9B, tva With pn9T *!* Endif Locate For Alltrim(Rand) = '17' If Found() Replace valoare With pn17B, TVA With pn17T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '32' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- lcSql = [SELECT NVL(soldcred,0) as soldcred ] + ; [ from vbal ] + ; [ where cont = '4423' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec ] + gcCondSucursala lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred If Used('crsTP') Use In crsTP Endif lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4423' and scc in ('5121','5311')] + gcCondSucursala lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma If Used('crsPlati') Use In crsPlati Endif lnTP = lnTP - lnPlati Select cDecont &&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Locate For Alltrim(Rand) = '30' If Found() Replace TVA With Nvl(lnTP, 0) Endif ***---- Select cDecont lodt = Createobject('frm_decontTVA') lodt.Show(1) Endproc && viz_decontTVA_1208 ****************************************** inceput viz_decontTVA_0507 ******************************************* Procedure viz_decontTVA_0507 Parameters tlTrim Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local llTrim *!* If Mod(gnLuna,3)=0 *!* llTrim = .T. *!* Else *!* llTrim=.F. *!* ENDIF llTrim = tlTrim If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 pnLunaF = 3 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 pnLunaF = 6 pnLunaPrec = 3 pnAnPrec = gnAn Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 pnLunaF = 9 pnLunaPrec = 6 pnAnPrec = gnAn Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 pnLunaF = 12 pnLunaPrec = 9 pnAnPrec = gnAn Endcase Else pnLunaI = gnLuna pnLunaF = gnLuna If gnLuna = 1 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Else pnLunaPrec = gnLuna - 1 pnAnPrec = gnAn Endif Endif Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d where valabil = '0507' order by id_decont] lcCursor = [cDecont] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 ] + ; [ WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV pn1B = Nvl(cescdd1, 0) pn3B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) pn7B = Nvl(ro19b, 0) pn7T = Nvl(ro19t, 0) pn8B = Nvl(ro9b, 0) pn8T = Nvl(ro9t, 0) pn10B = Nvl(roti, 0) + Nvl(wrscdd, 0) pn11B = Nvl(wrscfdd, 0) &&+ NVL(wrscfdd,0) Select cDecont Locate For Alltrim(Rand) = '1' If Found() Replace valoare With pn1B Endif Locate For Alltrim(Rand) = '3' If Found() Replace valoare With pn3B Endif Locate For Alltrim(Rand) = '7' If Found() Replace valoare With pn7B, TVA With pn7T Endif Locate For Alltrim(Rand) = '8' If Found() Replace valoare With pn8B, TVA With pn8T Endif Locate For Alltrim(Rand) = '10' If Found() Replace valoare With pn10B Endif Locate For Alltrim(Rand) = '11' If Found() Replace valoare With pn11B Endif *!* lcSql = [SELECT ROUND(SUM(RO19BCB),0) AS RO19BCB, ]+; *!* [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ]+; *!* [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ]+; *!* [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ]+; *!* [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ]+; *!* [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ]+; *!* [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ]+; *!* [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ]+; *!* [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ]+; *!* [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ]+; *!* [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ]+; *!* [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ]+; *!* [ ROUND(SUM(ROSCN),0) AS ROSCN, ]+; *!* [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ]+; *!* [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ]+; *!* [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ]+; *!* [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ]+; *!* [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ]+; *!* [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ]+; *!* [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ]+; *!* [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ]+; *!* [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ]+; *!* [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ]+; *!* [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ]+; *!* [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ]+; *!* [ ROUND(SUM(FOSCN),0) AS FOSCN, ]+; *!* [ ROUND(SUM(CEBCB),0) AS CEBCB, ]+; *!* [ ROUND(SUM(CEBCT),0) AS CEBCT, ]+; *!* [ ROUND(SUM(CEBVB),0) AS CEBVB, ]+; *!* [ ROUND(SUM(CEBVT),0) AS CEBVT, ]+; *!* [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ]+; *!* [ ROUND(SUM(CEBVN),0) AS CEBVN, ]+; *!* [ ROUND(SUM(CEBFB),0) AS CEBFB, ]+; *!* [ ROUND(SUM(CEBFT),0) AS CEBFT, ]+; *!* [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ]+; *!* [ ROUND(SUM(CEBFN),0) AS CEBFN, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BCB ELSE 0 END),0) AS TI19BCBWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BCT ELSE 0 END),0) AS TI19BCTWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BVB ELSE 0 END),0) AS TI19BVBWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BVT ELSE 0 END),0) AS TI19BVTWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BFB ELSE 0 END),0) AS TI19BFBWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI19BFT ELSE 0 END),0) AS TI19BFTWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI09BVB ELSE 0 END),0) AS TI09BVBWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI09BVT ELSE 0 END),0) AS TI09BVTWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI09BFB ELSE 0 END),0) AS TI09BFBWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) <> 'RO' THEN TI09BFT ELSE 0 END),0) AS TI09BFTWR, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BCB ELSE 0 END),0) AS TI19BCBRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BCT ELSE 0 END),0) AS TI19BCTRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BVB ELSE 0 END),0) AS TI19BVBRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BVT ELSE 0 END),0) AS TI19BVTRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BFB ELSE 0 END),0) AS TI19BFBRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI19BFT ELSE 0 END),0) AS TI19BFTRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI09BVB ELSE 0 END),0) AS TI09BVBRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI09BVT ELSE 0 END),0) AS TI09BVTRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI09BFB ELSE 0 END),0) AS TI09BFBRO, ]+; *!* [ ROUND(SUM(CASE WHEN SUBSTR(UPPER(TRIM(COD_FISCAL)),1,2) = 'RO' THEN TI09BFT ELSE 0 END),0) AS TI09BFTRO ]+; *!* [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcSql = [SELECT ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBWR, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTWR, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBWR, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTWR, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBWR, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTWR, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBWR, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTWR, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBWR, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTWR, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCBRO, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCTRO, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVBRO, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVTRO, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFBRO, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFTRO, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVBRO, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVTRO, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFBRO, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFTRO ] + ; [ FROM VJC2007 WHERE an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala ** [ FROM VJC2007 WHERE AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC *!* pn17B = Nvl(ro19bcb,0) + Nvl(ro19bvb,0) + Nvl(ro19bfb,0) + Nvl(fo19bcb,0) + Nvl(fo19bvb,0) + Nvl(fo19bfb,0) + ; *!* NVL(ti19bcbro,0) + Nvl(ti19bvbro,0) + Nvl(ti19bfbro,0) *!* pn17T = Nvl(ro19bct,0) + Nvl(ro19bvt,0) + Nvl(ro19bft,0) + Nvl(fo19bct,0) + Nvl(fo19bvt,0) + Nvl(fo19bft,0) + ; *!* NVL(ti19bctro,0) + Nvl(ti19bvtro,0) + Nvl(ti19bftro,0) pn17B = Nvl(ro19bcb, 0) + Nvl(ro19bvb, 0) + Nvl(ro19bfb, 0) + Nvl(fo19bcb, 0) + Nvl(fo19bvb, 0) + Nvl(fo19bfb, 0) pn17T = Nvl(ro19bct, 0) + Nvl(ro19bvt, 0) + Nvl(ro19bft, 0) + Nvl(fo19bct, 0) + Nvl(fo19bvt, 0) + Nvl(fo19bft, 0) pn18B = Nvl(ro09bcb, 0) + Nvl(ro09bvb, 0) + Nvl(ro09bfb, 0) + Nvl(fo09bcb, 0) + Nvl(fo09bvb, 0) + Nvl(fo09bfb, 0) + ; Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) pn18T = Nvl(ro09bct, 0) + Nvl(ro09bvt, 0) + Nvl(ro09bft, 0) + Nvl(fo09bct, 0) + Nvl(fo09bvt, 0) + Nvl(fo09bft, 0) + ; Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) pn19B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn14B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) pn14T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) pn4B = pn14B pn4T = pn14T pn9B = Nvl(ti19bcbro, 0) + Nvl(ti19bvbro, 0) + Nvl(ti19bfbro, 0) + Nvl(ti09bvbro, 0) + Nvl(ti09bfbro, 0) &&pn17B + pn18B pn9T = Nvl(ti19bctro, 0) + Nvl(ti19bvtro, 0) + Nvl(ti19bftro, 0) + Nvl(ti09bvtro, 0) + Nvl(ti09bftro, 0) && pn17T + pn18T pn16B = Nvl(ti19bcbwr, 0) + Nvl(ti19bvbwr, 0) + Nvl(ti19bfbwr, 0) + Nvl(ti09bvbwr, 0) + Nvl(ti09bfbwr, 0) pn16T = Nvl(ti19bctwr, 0) + Nvl(ti19bvtwr, 0) + Nvl(ti19bftwr, 0) + Nvl(ti09bvtwr, 0) + Nvl(ti09bftwr, 0) pn6B = pn16B pn6T = pn16T Select cDecont Locate For Alltrim(Rand) = '17' If Found() Replace valoare With pn17B, TVA With pn17T Endif Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '19' If Found() Replace valoare With pn19B Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B, TVA With pn14T Endif Locate For Alltrim(Rand) = '14.1' If Found() Replace valoare With pn14B, TVA With pn14T Endif Locate For Alltrim(Rand) = '4' If Found() Replace valoare With pn4B, TVA With pn4T Endif Locate For Alltrim(Rand) = '4.1' If Found() Replace valoare With pn4B, TVA With pn4T Endif *!* Locate For Alltrim(Rand) = '9' *!* If Found() *!* Replace valoare With pn9B, tva With pn9T *!* Endif Locate For Alltrim(Rand) = '16' If Found() Replace valoare With pn16B, TVA With pn16T Endif Locate For Alltrim(Rand) = '6' If Found() Replace valoare With pn6B, TVA With pn6T Endif lcSql = [SELECT solddeb ] + ; [ from vbal ] + ; [ where cont = 4424 ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsTR] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTR lnTR = solddeb Select cDecont Locate For Alltrim(Rand) = '30' If Found() Replace TVA With lnTR Endif If Used('crsTR') Use In crsTR Endif ***---- lcSql = [SELECT NVL(soldcred,0) as soldcred ] + ; [ from vbal ] + ; [ where cont = '4423' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec ] + gcCondSucursala lcCursor = [crsTP] && nu si-au platit tva din luna precedenta lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsTP lnTP = soldcred If Used('crsTP') Use In crsTP Endif lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4423' and scc in ('5121','5311')] + gcCondSucursala lcCursor = [crsPlati] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsPlati lnPlati = suma If Used('crsPlati') Use In crsPlati Endif lnTP = lnTP - lnPlati Select cDecont Locate For Alltrim(Rand) = '28' If Found() Replace TVA With Nvl(lnTP, 0) Endif ***---- Select cDecont lodt = Createobject('frm_decontTVA') lodt.Show(1) Endproc && viz_decontTVA_0507 *=========================================== Procedure viz_decontTVA_0107 Private poDecont Store '' To poDecont Private pnProRata pnProRata = 100 Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as valoare, 00000000000 as tva from decontTVA d where valabil = '0107' order by id_decont] lcCursor = "cDecont" lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif lcSql = [SELECT ROUND(SUM(RO19B),0) AS RO19B, ] + ; [ ROUND(SUM(RO19T),0) AS RO19T, ] + ; [ ROUND(SUM(RO9B),0) AS RO9B, ] + ; [ ROUND(SUM(RO9T),0) AS RO9T,] + ; [ ROUND(SUM(ROTI),0) AS ROTI, ] + ; [ ROUND(SUM(CESCDD1),0) AS CESCDD1,] + ; [ ROUND(SUM(CESCDD2),0) AS CESCDD2,] + ; [ ROUND(SUM(WRSCDD),0) AS WRSCDD, ] + ; [ ROUND(SUM(FODD),0) AS FODD, ] + ; [ ROUND(SUM(FOFDD),0) AS FOFDD, ] + ; [ ROUND(SUM(WRSCFDD),0) AS WRSCFDD,] + ; [ ROUND(SUM(WRN),0) AS WRN FROM JV2007 WHERE AN=?gnAn AND LUNA=?gnLuna] + gcCondSucursala lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJV pn06B = Nvl(ro19b, 0) pn06T = Nvl(ro19t, 0) pn07B = Nvl(ro9b, 0) pn07T = Nvl(ro9t, 0) pn08B = Nvl(roti, 0) + Nvl(wrscdd, 0) pn09B = Nvl(wrscfdd, 0) &&+ NVL(wrscfdd,0) pn01B = Nvl(cescdd1, 0) pn02B = Nvl(cescdd2, 0) + Nvl(fodd, 0) + Nvl(fofdd, 0) Select cDecont Locate For Alltrim(Rand) = '01' If Found() Replace valoare With pn01B Endif Locate For Alltrim(Rand) = '02' If Found() Replace valoare With pn02B Endif Locate For Alltrim(Rand) = '06' If Found() Replace valoare With pn06B, TVA With pn06T Endif Locate For Alltrim(Rand) = '07' If Found() Replace valoare With pn07B, TVA With pn07T Endif Locate For Alltrim(Rand) = '08' If Found() Replace valoare With pn08B Endif Locate For Alltrim(Rand) = '09' If Found() Replace valoare With pn09B Endif lcSql = [SELECT ROUND(SUM(RO19BCB),0) AS RO19BCB, ] + ; [ ROUND(SUM(RO19BCT),0) AS RO19BCT, ] + ; [ ROUND(SUM(RO19BVB),0) AS RO19BVB, ] + ; [ ROUND(SUM(RO19BVT),0) AS RO19BVT, ] + ; [ ROUND(SUM(RO19BFB),0) AS RO19BFB, ] + ; [ ROUND(SUM(RO19BFT),0) AS RO19BFT, ] + ; [ ROUND(SUM(RO09BCB),0) AS RO09BCB, ] + ; [ ROUND(SUM(RO09BCT),0) AS RO09BCT, ] + ; [ ROUND(SUM(RO09BVB),0) AS RO09BVB, ] + ; [ ROUND(SUM(RO09BVT),0) AS RO09BVT, ] + ; [ ROUND(SUM(RO09BFB),0) AS RO09BFB, ] + ; [ ROUND(SUM(RO09BFT),0) AS RO09BFT, ] + ; [ ROUND(SUM(ROSCN),0) AS ROSCN, ] + ; [ ROUND(SUM(FO19BCB),0) AS FO19BCB, ] + ; [ ROUND(SUM(FO19BCT),0) AS FO19BCT, ] + ; [ ROUND(SUM(FO19BVB),0) AS FO19BVB, ] + ; [ ROUND(SUM(FO19BVT),0) AS FO19BVT, ] + ; [ ROUND(SUM(FO19BFB),0) AS FO19BFB, ] + ; [ ROUND(SUM(FO19BFT),0) AS FO19BFT, ] + ; [ ROUND(SUM(FO09BCB),0) AS FO09BCB, ] + ; [ ROUND(SUM(FO09BCT),0) AS FO09BCT, ] + ; [ ROUND(SUM(FO09BVB),0) AS FO09BVB, ] + ; [ ROUND(SUM(FO09BVT),0) AS FO09BVT, ] + ; [ ROUND(SUM(FO09BFB),0) AS FO09BFB, ] + ; [ ROUND(SUM(FO09BFT),0) AS FO09BFT, ] + ; [ ROUND(SUM(FOSCN),0) AS FOSCN, ] + ; [ ROUND(SUM(CEBCB),0) AS CEBCB, ] + ; [ ROUND(SUM(CEBCT),0) AS CEBCT, ] + ; [ ROUND(SUM(CEBVB),0) AS CEBVB, ] + ; [ ROUND(SUM(CEBVT),0) AS CEBVT, ] + ; [ ROUND(SUM(CEBVSC),0) AS CEBVSC, ] + ; [ ROUND(SUM(CEBVN),0) AS CEBVN, ] + ; [ ROUND(SUM(CEBFB),0) AS CEBFB, ] + ; [ ROUND(SUM(CEBFT),0) AS CEBFT, ] + ; [ ROUND(SUM(CEBFSC),0) AS CEBFSC, ] + ; [ ROUND(SUM(CEBFN),0) AS CEBFN, ] + ; [ ROUND(SUM(TI19BCB),0) AS TI19BCB, ] + ; [ ROUND(SUM(TI19BCT),0) AS TI19BCT, ] + ; [ ROUND(SUM(TI19BVB),0) AS TI19BVB, ] + ; [ ROUND(SUM(TI19BVT),0) AS TI19BVT, ] + ; [ ROUND(SUM(TI19BFB),0) AS TI19BFB, ] + ; [ ROUND(SUM(TI19BFT),0) AS TI19BFT, ] + ; [ ROUND(SUM(TI09BVB),0) AS TI09BVB, ] + ; [ ROUND(SUM(TI09BVT),0) AS TI09BVT, ] + ; [ ROUND(SUM(TI09BFB),0) AS TI09BFB, ] + ; [ ROUND(SUM(TI09BFT),0) AS TI09BFT ] + ; [ FROM JC2007 WHERE AN=?gnAn AND LUNA=?gnLuna] + gcCondSucursala lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsJC pn03B = Nvl(cebcb, 0) + Nvl(cebvb, 0) + Nvl(cebfb, 0) pn03T = Nvl(cebct, 0) + Nvl(cebvt, 0) + Nvl(cebft, 0) pn04B = Nvl(ti19bcb, 0) + Nvl(ti19bvb, 0) + Nvl(ti19bfb, 0) + Nvl(ti09bvb, 0) + Nvl(ti09bfb, 0) pn04T = Nvl(ti19bct, 0) + Nvl(ti19bvt, 0) + Nvl(ti19bft, 0) + Nvl(ti09bvt, 0) + Nvl(ti09bft, 0) pn13B = Nvl(cebvb, 0) pn13T = Nvl(cebvt, 0) pn14B = Nvl(cebcb, 0) + Nvl(cebfb, 0) pn14T = Nvl(cebct, 0) + Nvl(cebft, 0) pn15B = Nvl(ti19bcb, 0) + Nvl(ti19bvb, 0) + Nvl(ti19bfb, 0) + Nvl(ti09bvb, 0) + Nvl(ti09bfb, 0) pn15T = Nvl(ti19bct, 0) + Nvl(ti19bvt, 0) + Nvl(ti19bft, 0) + Nvl(ti09bvt, 0) + Nvl(ti09bft, 0) pn18B = Nvl(ro19bvb, 0) + Nvl(fo19bvb, 0) pn18T = Nvl(ro19bvt, 0) + Nvl(fo19bvt, 0) pn19B = Nvl(ro09bvb, 0) + Nvl(fo09bvb, 0) pn19T = Nvl(ro09bvt, 0) + Nvl(fo09bvt, 0) pn20B = Nvl(roscn, 0) + Nvl(cebvsc, 0) + Nvl(cebvn, 0) + Nvl(cebfsc, 0) + Nvl(cebfn, 0) + Nvl(foscn, 0) pn21B = Nvl(ro19bcb, 0) + Nvl(fo19bcb, 0) pn21T = Nvl(ro19bct, 0) + Nvl(fo19bct, 0) pn22B = Nvl(ro19bfb, 0) + Nvl(fo19bfb, 0) pn22T = Nvl(ro19bft, 0) + Nvl(fo19bft, 0) pn23B = Nvl(ro09bfb, 0) + Nvl(fo09bfb, 0) pn23T = Nvl(ro09bft, 0) + Nvl(fo09bft, 0) Select cDecont Locate For Alltrim(Rand) = '03' If Found() Replace valoare With pn03B, TVA With pn03T Endif Locate For Alltrim(Rand) = '04' If Found() Replace valoare With pn04B, TVA With pn04T Endif Locate For Alltrim(Rand) = '13' If Found() Replace valoare With pn13B, TVA With pn13T Endif Locate For Alltrim(Rand) = '14' If Found() Replace valoare With pn14B, TVA With pn14T Endif Locate For Alltrim(Rand) = '15' If Found() Replace valoare With pn15B, TVA With pn15T Endif Locate For Alltrim(Rand) = '18' If Found() Replace valoare With pn18B, TVA With pn18T Endif Locate For Alltrim(Rand) = '19' If Found() Replace valoare With pn19B, TVA With pn19T Endif Locate For Alltrim(Rand) = '20' If Found() Replace valoare With pn20B Endif Locate For Alltrim(Rand) = '21' If Found() Replace valoare With pn21B, TVA With pn21T Endif Locate For Alltrim(Rand) = '22' If Found() Replace valoare With pn22B, TVA With pn22T Endif Locate For Alltrim(Rand) = '23' If Found() Replace valoare With pn23B, TVA With pn23T Endif Select cDecont lodt = Createobject('frm_decontTVA') lodt.Show(1) Endproc && viz_decontTVA_0107_0407 ***-------------------------------------- inceput date_identif ------------------------ Procedure date_identif Lparameters tcCale Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal If !Empty(tcCale) gcDecont_caleExport = tcCale Else gcDecont_caleExport = "C:\Program Files\Declaratii fiscale " + Alltrim(Str(gnAn)) Endif If !Directory(gcDecont_caleExport) gcDecont_caleExport = Getdir("C:", "Directorul Declaratii fiscale", "Declaratii fiscale") Endif If Empty(gcDecont_caleExport) Return Endif lcDir = Addbs(Alltrim(gcDecont_caleExport)) + Addbs(Alltrim(gofirma.firma)) If !Directory(lcDir) Md (lcDir) Endif lcFisUnitate = lcDir + "unitate.dbf" If !File(lcFisUnitate) Create Table (lcFisUnitate) (caen N(4), codi N(10), deni c(50), adr c(150), telf c(10), banca c(100), Cont c(100), intocmitf c(30), calIntoc c(30)) Else Use (lcFisUnitate) In 0 Alias unitate Endif Select unitate If Eof() Append Blank Else Go Top Endif Select unitate Scatter Name pounitate If Empty(codi) lccf = Nvl(Alltrim(gofirma.cod_fiscal), '') lccf_tot = '' For i = 1 To Len(lccf) If Type(Substr(lccf, i, 1)) = "N" lcnc = Substr(lccf, i, 1) lccf_tot = lccf_tot + lcnc Endif Endfor pounitate.codi = Val(lccf_tot) Endif If Empty(deni) pounitate.deni = Alltrim(gofirma.firma) Endif *** lcCaen = "" lcCalIntoc = "" *!* ** caen *!* Private poCaen *!* Store '' To poCaen *!* lcSchema1 = [ID N(4), CODCAEN C(100), COD N(4)] *!* lcSelect1 = ['select id, codcaen, cod from sitfin_codCaen where 1=2'] *!* lcOrder1 = [] *!* lcFiltru1 = [2=2] *!* llAfiseaza = .F. *!* gencursor('poCaen','crsCodCaen', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza) *!* poCaen.ca_baza1.afisare() ** caen Private poCaen Store '' To poCaen lcSchema = [] lcSelect = [select clasa as cod, trim(clasa)||'--'||substr(trim(caen),1,100) As codcaen from caen] lcOrder = [clasa] lcFiltru = [clasa is not null] llAfisare = .F. llModParam = .T. lcFiltruOriginal = [] gencursor('poCaen', 'crsCodCaen', lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcGroup, llModParam, lcFiltruOriginal ) poCaen.ca_baza1.afisare() If Empty(pounitate.caen) Select crsCodCaen Locate For Alltrim(cod) = Alltrim(gofirma.caen) If Found() pounitate.caen = cod lcCaen = codCaen Endif Else Select crsCodCaen Locate For Alltrim(cod) = Alltrim(Str(pounitate.caen)) If Found() lcCaen = codCaen Endif Endif Select unitate If Empty(adr) pounitate.adr = Nvl(Alltrim(gofirma.adresa), '') Endif If Empty(telf) pounitate.telf = Nvl(Alltrim(gofirma.telefon), '') + ' ' + Nvl(Alltrim(gofirma.fax), '') + ' ' + Nvl(Alltrim(gofirma.email), '') Endif If Empty(banca) pounitate.banca = Nvl(Alltrim(gofirma.banca1), '') Endif If Empty(Cont) pounitate.Cont = Nvl(Alltrim(gofirma.cont_banca1), '') Endif If Empty(intocmitf) pounitate.intocmitf = Nvl(Alltrim(gofirma.declarant), '') Endif If Empty(calIntoc) pounitate.calIntoc = Nvl(Alltrim(gofirma.functie), '') Endif Select unitate lodi = Createobject("frm_dateIdentificare") lodi.cCaen = lcCaen lodi.Show(1) Release poCaen If buton = 2 Use In unitate Return Endif Select unitate Gather Name pounitate Use In unitate Endproc && date_identif ***------------------------------------------------------------------------------------------------------------------------- Procedure export_decont Parameters tcAlias Local lcSir, lcDirTabele, lcFisUnitate, lcCodFiscal, lcDirDecont, lcFile, lcFisAdresa, lcfisDec300T, lcfisDec300T9 lcSir = '' lcFisAdresa = [] lcfisDec300T = [] lcfisDec300T9 = [] If gnAn > 2007 gcDecont_caleExport = "C:\Program Files\Declaratii fiscale " + Alltrim(Str(gnAn)) Else gcDecont_caleExport = "C:\Program Files\Declaratii fiscale 2007" Endif If !Directory(gcDecont_caleExport) gcDecont_caleExport = Getdir("C:", "Directorul Declaratii fiscale", "Declaratii fiscale") Endif If Empty(gcDecont_caleExport) Return Endif lcDirTabele = Addbs(Alltrim(gcDecont_caleExport)) + Alltrim(gofirma.firma) + "\" lcFisUnitate = lcDirTabele + "Unitate.dbf" If !File(lcFisUnitate) amessage("Nu ati salvat Date de identificare unitate!", 0 + 48, _Screen.Caption) Return Endif Use (lcFisUnitate) In 0 Alias unitate Select unitate lcCodFiscal = Alltrim(Str(codi)) Use In unitate lcDirDecont = Addbs(Alltrim(gcDecont_caleExport)) + lcCodFiscal *** creez unitate.txt Set Textmerge To lcFile = lcDirTabele + "adresa.txt" Set Textmerge On To (lcFile) Noshow Use (lcFisUnitate) In 0 Alias unitate Select unitate Go Top lcSir = "##,#" + Alltrim(Str(codi)) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(adr) + "#,#" + ; Alltrim(telf) + "#,#" + ; Alltrim(banca) + "#,#" + ; Alltrim(Cont) + "#,#" + ; "#,##,##,#" + ; Alltrim(intocmitf) + "#,#" + ; Alltrim(calIntoc) + "#," + ; Alltrim(Str(caen)) *USE IN unitate \\<> Set Textmerge To Wait Window "S-a exportat adresa.txt..." Timeout 1 **** *** *** creez Dec300T.txt Set Textmerge To lcFile = lcDirTabele + "\Dec300T.txt" Set Textmerge On To (lcFile) Noshow lcSir = '' lcTest = '' *lcSir = lcSir + '300,,' + PADL(gnLuna,2,'0') + ',' + ALLTRIM(STR(gnAn,4,0)) + ',,,' lcSir = lcCodFiscal + ',' + Padl(gnLuna, 2, '0') + ',' + Alltrim(Str(gnAn, 4, 0)) + ',,' + Alltrim(Transform(pnProRata)) + ',' Select (tcAlias) Scan For !Empty(Nvl(Rand, 0)) lcSir = lcSir + ; Iif(Nvl(inactivB, 0) <> 1, Iif(valoare <> 0, Alltrim(Str(valoare, 15, 0)), []) + [,], []) + ; Iif(Nvl(inactivT, 0) <> 1, Iif(TVA <> 0, Alltrim(Str(TVA, 15, 0)), []) + [,], []) Endscan lcSir = lcSir + Alltrim(Str(pnNr_facturi, 15, 0)) + ',' + Alltrim(Str(pnBaza, 15, 0)) + ',' + Alltrim(Str(pnTVA, 15, 0)) + ',' Select unitate * lcSir = lcSir + ALLTRIM(STR(caen))+',#N#,#'+ALLTRIM(banca)+'#,#'+ALLTRIM(cont) + '#' lcSir = lcSir + Alltrim(Str(caen)) + ',#N#' Use In unitate *!* IF !EMPTY(lcSir) *!* lcSir = LEFT(lcSir,LEN(lcSir)-1) *!* ENDIF lcSir = lcSir + Chr(13) + Chr(10) \\<> Set Textmerge To Wait Window "S-a exportat Dec300T.txt..." Timeout 1 lcA = lcDirTabele + "\" + "adresa.txt" lcD = lcDirTabele + "\" + "dec300T.txt" If !Directory(lcDirDecont) Md (lcDirDecont) Endif lcFisAdresa = lcDirDecont + "\adresa.txt" lcfisDec300T = lcDirDecont + "\dec300T.txt" lcfisDec300T9 = lcDirDecont + "\dec300T9.txt" Copy File (lcA) To (lcFisAdresa) Copy File (lcD) To (lcfisDec300T) Copy File (lcD) To (lcfisDec300T9) amessagebox([Fisierele au fost exportate in directorul ] + Alltrim(Addbs(Justpath(lcfisDec300T))) + Chr(13) + Chr(10) + ; [Intrati in programul de Declaratii Fiscale si selectati Declaratia 300], 0 + 64, 'Decont TVA') Endproc && export_decont ***-------------------------------------------------------------- ********************************************************* *** DECLARATIA 392 ********************************************************* Procedure viz_decl392 Lparameters tcTip Local lcTip lcTip = Iif(Type('tcTip') = 'C', m.tcTip, Iif(Substr(Alltrim(gofirma.cod_fiscal), 1, 2) = 'RO', 'A', 'B')) If m.gnLuna = 12 Local loD392 As "D392" loD392 = Createobject("D392", m.lcTip) && ovanzcump.vcx loD392.do_executa() Else amessagebox("Pentru a putea genera declaratia 392 " + Alltrim(tcTip) + " trebuie sa intrati in luna decembrie!", 48, "Atentie") Endif Endproc Define Class D392 As Custom cTip = [] && A sau B nAn = 0 nLuna = 0 cCodFiscal = 0 cCodCaen = [] lPlatitorTVA = .F. cDenumireFirma = [] cAdresa = [] cTelefon = [] cFax = [] cEmail = [] cDeclarant = [] cNumeDeclarant = [] cPrenumeDeclarant = [] cFunctieDeclarant = [] nCifraDeAfaceri = 0 nBazaLivrPlTVA = 0 nTVALivrPlTVA = 0 nBazaLivrNeplTVA = 0 nTVALivrNeplTVA = 0 nBazaAchPlTVA = 0 nTVAAchPlTVA = 0 nBazaAchNeplTVA = 0 nProcTVATI = 0.24 Procedure Init Lparameters tcTip With This .cTip = tcTip .nAn = gnAn .nLuna = m.gnLuna .cCodFiscal = Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', '') .cCodCaen = Alltrim(gofirma.caen) .lPlatitorTVA = (Substr(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 1, 2) == 'RO') .cDenumireFirma = Nvl(Alltrim(gofirma.firma), '') .cAdresa = Nvl(Alltrim(gofirma.adresa), '') .cTelefon = Nvl(Alltrim(gofirma.telefon), '') .cFax = Nvl(Alltrim(gofirma.fax), '') .cEmail = Nvl(Alltrim(gofirma.email), '') .cDeclarant = Alltrim(gofirma.declarant) .cNumeDeclarant = Alltrim(gofirma.nume_declarant) .cPrenumeDeclarant = Alltrim(gofirma.prenume_declarant) .cFunctieDeclarant = Alltrim(gofirma.functie) .nCifraDeAfaceri = 0 .nBazaLivrPlTVA = 0 .nTVALivrPlTVA = 0 .nBazaLivrNeplTVA = 0 .nTVALivrNeplTVA = 0 .nBazaAchPlTVA = 0 .nTVAAchPlTVA = 0 .nBazaAchNeplTVA = 0 Endwith Endproc Procedure do_executa Local loFrmDoc As "frm_decl_tipdoc" Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcCaleTemp, lcComunPath, lcConditieAct, lcCursor Local lcFileName, lcFileNamePDF, lcFirma, lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT Local lcFisierXDP, lcFisierXLS, lcMesaj, lcNumeFisier, lcRun, lcSelect, lcSirId, lcSql, llSucces Local lnPos, loEx lcSelect = Select() *** Initializare cai export lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export : caletemp\D392\aaaa\firma\ llSucces = .F. Try lcCaleTemp = m.gcBasePath lcCaleFisier = m.lcCaleTemp + "D392\" If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcFirma = Iif(gcAppName = "CONCONT", Alltrim(gofirma.fscurt), m.gcFirma) lcCaleFisier = m.lcCaleFisier + Strtran(lcFirma, [ ], [_]) + "\" lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D392\2014\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcFirma = Iif(gcAppName = "CONCONT", Alltrim(gofirma.fscurt), m.gcFirma) lcCaleFisier = m.lcCaleFisier + Strtran(lcFirma, [ ], [_]) + "\" If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif lcNumeFisier = "d392_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) Do Case Case gnAn >= 2019 lcFisierPDFOriginal = lcComunPath + "d392_2019.pdf" && d:\contafin\comuncontafin\d392.pdf Case gnAn >= 2015 lcFisierPDFOriginal = lcComunPath + "d392_2015.pdf" && d:\contafin\comuncontafin\d392.pdf Otherwise lcFisierPDFOriginal = lcComunPath + "d392_2014.pdf" && d:\contafin\comuncontafin\d392.pdf Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcCaleFisier + lcNumeFisier + [.txt] lcFisierXLS = m.lcCaleFisier + lcNumeFisier + [.xls] If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierXLS) Delete File (lcFisierXLS) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif *** ALEGERE DOCUMENTE FACTURI lcConditieAct = [ and (extract(year from dataact)*12+extract(month from dataact) = an*12+luna)] Text To lcSql Textmerge Noshow SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC FROM vjv2010 WHERE an = <> <> <> UNION SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC FROM vjc2010 WHERE an = <> <> <> Endtext goLog.Log(lcSql) If !goExecutor.oExecuta(lcSql, "crsFdoc") Return Endif Update crsFDoc Set ales = 1 Where Inlist(Alltrim(fdoc), 'FACTURA', 'BON FISCAL') Go Top In crsFDoc loFrmDoc = Createobject("frm_decl_tipdoc", "392") loFrmDoc.label1.Caption = 'Alegeti tipurile de documente care vor intra' loFrmDoc.label2.Caption = 'in declaratie' loFrmDoc.Show(1) *!* sir tipuri document alese lcSirId = "" Select id_fdoc From crsFDoc With (Buffering = .T.) Where ales = 1 Into Cursor crsFdocTemp Use In (Select("crsFDoc")) If _Tally = 0 amessagebox('Trebuie sa alegeti un tip de document!', 0 + 48, 'Atentie') Use In (Select("crsFdocTemp")) Return Endif Select crsFdocTemp Scan lcSirId = lcSirId + [, ] + Alltrim(Str(id_fdoc)) Endscan If !Empty(lcSirId) lcSirId = Substr(lcSirId, 2) Endif Use In (Select("crsFdocTemp")) *** citesc JV Text To lcSql Textmerge Noshow SELECT ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, ROUND(SUM(RO24B + RO19B + RO9B + RO5B + RO24NB + RO9NB + RO5NB + WRN + WRSCDD + WRSCFDD), 0) AS BAZA, ROUND(SUM(RO24T + RO19T + RO9T + Ro5T + RO24NT + RO9NT + RO5NT), 0) AS TVA, ROUND(SUM(ROTI), 0) AS TIBAZA, 0 AS TITVA, SUM(case when ROTI = 0 then 1 else 0 end ) as NRFACT, SUM(case when ROTI <> 0 then 1 else 0 end ) as NRFACTTI FROM VJV2013 WHERE AN = <> <> AND ID_FDOC IN (<>) <> GROUP BY ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', ''), SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2), DENUMIRE Endtext goLog.Log(lcSql) lcCursor = [crsJV] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Update crsJV Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) *!* citesc JC Text To lcSql Textmerge Noshow SELECT ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, ROUND(SUM(RO24B + RO19B + RO09B + RO05B + RO24NB + RO9NB + RO5NB + ROSCN), 0) AS BAZA, ROUND(SUM(RO24T + RO19T + RO09T + RO05T + RO24NT + RO9NT + RO5NT), 0) AS TVA, ROUND(SUM(TI19B + TI09B + TI24B), 0) as TIBAZA, ROUND(SUM(TI19T + TI09T + TI24T), 0) as TITVA, SUM(case when TI19B = 0 and TI09B = 0 and TI24B = 0 then 1 else 0 end ) as NRFACT, SUM(case when TI19B <> 0 or TI09B <> 0 or TI24B <> 0 then 1 else 0 end ) as NRFACTTI FROM VJC2013 WHERE AN = <> <> AND ID_FDOC IN (<>) <> GROUP BY ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', ''), SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2), DENUMIRE Endtext goLog.Log(lcSql) lcCursor = [crsJC] If !goExecutor.oExecuta(lcSql, lcCursor) Use In (Select("crsJV")) Return Endif Update crsJC Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) *!* D392 Create Cursor crsTipA (TIP c(1)) Insert Into crsTipA (TIP) Values ('A') Insert Into crsTipA (TIP) Values ('C') && ACHIZITII TAXARE INVERSA Create Cursor crsTipL (TIP c(1)) Insert Into crsTipL (TIP) Values ('L') Insert Into crsTipL (TIP) Values ('V') && LIVRARI TAXARE INVERSA Select b.TIP, Iif(Substr(Alltrim(cod_fiscal), 1, 2) = [RO], 1, 0) As plTVA, ; Left(cod_fiscal, 30) As cod_fiscal, Left(cod_fiscalfro, 30) As cod_fiscalfro, Padr(Nvl(atribut_fiscal, ''), 2, ' ') As atribut_fiscal, denumire, ; Cast(Iif(b.TIP = 'A', baza, tibaza) As N(20)) As baza, ; Cast(Iif(b.TIP = 'A', TVA, titva) As N(20)) As TVA, ; Cast(Iif(b.TIP = 'A', NRFACT, NRFACTTI) As N(20)) As NRFACT ; From crsJC a, crsTipA b ; Where a.baza <> 0 Or a.TVA <> 0 Or a.tibaza <> 0 Or a.titva <> 0 ; && modificare v 2.5.26 Union ; Select b.TIP, Iif(Substr(Alltrim(cod_fiscal), 1, 2) = [RO], 1, 0) As plTVA, ; Left(cod_fiscal, 30) As cod_fiscal, Left(cod_fiscalfro, 30) As cod_fiscalfro, Padr(Nvl(atribut_fiscal, ''), 2, ' ') As atribut_fiscal, denumire, ; Cast(Iif(b.TIP = 'L', baza, tibaza) As N(20)) As baza, ; Cast(Iif(b.TIP = 'L', TVA, titva) As N(20)) As TVA, ; Cast(Iif(b.TIP = 'L', NRFACT, NRFACTTI) As N(20)) As NRFACT ; From crsJV a, crsTipL b ; Where a.baza <> 0 Or a.TVA <> 0 Or a.tibaza <> 0 Or a.titva <> 0 ; && modificare v 2.5.26 : HAVING baza <> 0 Or tva <> 0 Or tibaza <> 0 Or titva <> 0 Order By 1, 3 ; Into Cursor crsD392 Readwrite Use In (Select('crsTipA')) Use In (Select('crsTipL')) Use In (Select('crsJV')) Use In (Select('crsJC')) *!* cifra de afaceri *!* Text To lcSql Textmerge Noshow *!* SELECT SUM(totcred) as totalcredit FROM vbal *!* WHERE (SUBSTR(cont,1,2) = '70' OR cont = '7583') AND AN = <> AND LUNA = 12 *!* ENDTEXT Text To lcSql Textmerge Noshow SELECT SUM(totcred) as totalcredit FROM vbal WHERE (cont = '7583') AND AN = <> AND LUNA = 12 Endtext goLog.Log(lcSql) lcCursor = [crsTotalCifraAfaceri] If !goExecutor.oExecuta(lcSql, lcCursor) Use In (Select('crsD392')) Return Endif llSucces = .T. If m.llSucces Select crsTotalCifraAfaceri This.nCifraDeAfaceri = - Nvl(totalcredit, 0) && -7583 (vanzarile de active nu se iau in considerare) && CF art 152 alin 2 Calculate Sum(Iif(TIP = 'L' And plTVA = 1, baza, 0)), Sum(Iif(TIP = 'L' And plTVA = 1, TVA, 0)), ; Sum(Iif(TIP = 'L' And plTVA = 0, baza, 0)), Sum(Iif(TIP = 'L' And plTVA = 0, TVA, 0)), ; Sum(Iif(TIP = 'A' And plTVA = 1, baza, 0)), Sum(Iif(TIP = 'A' And plTVA = 1, TVA, 0)), ; Sum(Iif(TIP = 'A' And plTVA = 0, baza, 0)) ; To This.nBazaLivrPlTVA, This.nTVALivrPlTVA, ; This.nBazaLivrNeplTVA, This.nTVALivrNeplTVA, ; This.nBazaAchPlTVA, This.nTVAAchPlTVA, ; This.nBazaAchNeplTVA In crsD392 This.nCifraDeAfaceri = This.nCifraDeAfaceri + This.nBazaLivrPlTVA + This.nBazaLivrNeplTVA && cifra de afaceri sunt livrarile fara 7583. S-ar putea sa intre si livrarile intracomunitare??? *!* am nume diferite cu acelasi cod fiscal in JV, JC sau in amandoua *!* exista nume fara cod fiscal??? (nu stiu de ce am pus conditia asta - le-am luat pe cele cu RO - au cod fiscal) This.do_genereaza_xls(m.lcFisierXLS) Do Case Case This.nAn >= 2019 This.do_genereaza_xdp_2014(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Case This.nAn >= 2015 This.do_genereaza_xdp_2014(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Case This.nAn >= 2014 This.do_genereaza_xdp_2014(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Otherwise This.do_genereaza_txt(lcFisierTXT) Endcase *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endif && llSucces Use In (Select('crsTotalCifraAfaceri')) Use In (Select('crsD392')) Select (m.lcSelect) Endproc && do_executa *=========================================== Procedure do_genereaza_xls Lparameters tcFisierXLS Local lcSelect lcSelect = Select() If Type('crsD392.nrfact') <> 'U' Select TIP, Left(Alltrim(cod_fiscal), 10) As cod_fiscal, Left(denumire, 100) As denumire, baza + TVA As Total, baza, TVA, NRFACT ; From crsD392 ; Where NRFACT <> 0 ; Order By 1 Desc, 3 ; Into Cursor cExportXLS Else Select TIP, Left(Alltrim(cod_fiscal), 10) As cod_fiscal, Left(denumire, 100) As denumire, baza + TVA As Total, baza, TVA ; From crsD392 ; Where baza <> 0 Or TVA <> 0; Order By 1 Desc, 3 ; Into Cursor cExportXLS Endif Select cExportXLS Copy To (m.tcFisierXLS) Type Xl5 *OPEN_DEFAULT_APP(m.tcFisierXLS) Use In (Select('cExportXLS')) Select (m.lcSelect) Endproc && do_genereaza_xls *=========================================== Procedure do_genereaza_txt Lparameters tcFisierTXT *!* Cale fisier : *!* Windows 7 : C:\Users\\AppData\Local\VirtualStore\Program Files\D392 (an = 2013)\ *!* Windows XP : C:\Program Files\D392 (an = 2013)\ *!* Nume fisier : *!* D392.txt *!* Structura fisier : ( 2 linii ) *!* linia 1 : 392,,,,##,##,, *!* ,,,, *!* ,, *!* linia 2 : ##,##,##,##,##,##, *!* ##,## Local lcOS, lcCaleFisierD392 lcOS = Os(1) lcCaleFisierD392 = [\Program Files\D392 (an = 2013)\] Do Case Case ("6.02" $ lcOS And Os(11) = "1") ; && WIN 8 Or ("6.01" $ lcOS And Os(11) = "1") ; && WIN 7 Or ("6.01" $ lcOS) ; && WIN 2008 R2 Or ("6.00" $ lcOS And Os(11) = "1") ; && VISTA Or ("6.00" $ lcOS) && WIN 2008 lcCaleFisierD392 = Alltrim(Getenv("LOCALAPPDATA")) + [\VirtualStore] + lcCaleFisierD392 Case ("5.02" $ lcOS) ; && WIN 2003 Or ("5.01" $ lcOS) ; && WIN XP Or ("5.0" $ lcOS) ; && WIN 2000 Or ("NT" $ lcOS) && WIN NT lcCaleFisierD392 = Alltrim(Getenv("SystemDrive")) + lcCaleFisierD392 Otherwise && WIN 98, WIN 95, WIN ME, WIN 31, necunoscut amessagebox("Nu se poate copia automat fisierul pentru D392!", 16, "Eroare") Return Endcase If !Directory(lcCaleFisierD392) lcCaleFisierD392 = Getdir("c:\", "D392", "Alegeti directorul D392\") If Empty(lcCaleFisierD392) amessagebox("Nu ati ales directorul!", 16, "Eroare") Return Endif Endif Local lcDecl392, lcPoint lcPoint = Set("Point") Set Point To '.' Set Textmerge On To Memv lcDecl392 Noshow *!* linia 1 : 392,,,,##,##,, *!* ,,,, *!* ,, *!* linia 2 : ##,##,##,##,##,##, *!* ##,## With This \392,<>,<>,<>,#<>#,#<>#,<>, \\<>,<>, \\<>,<>, \\<>,<>, \\<> \#<>#,#<>#,#<>#,#<>#, \\#<>#,#<>#,#<>#,#<># Endwith Set Textmerge To Set Point To &lcPoint Strtofile(lcDecl392, lcCaleFisierD392 + [D392.txt]) Strtofile(lcDecl392, tcFisierTXT) amessagebox([Fisierul a fost exportat!] + Chr(13) + Chr(10) + [Intrati in aplicatia D392 si apasati pe butonul ] + ; ["START"], 0 + 64, 'Declaratia 392') Endproc && do_genereaza_txt *========================================== Procedure do_genereaza_xdp_2014 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcSelect, lcXDP lcSelect = Select() lcXDP = "" With This Text To lcXDP Additive Textmerge Noshow Pretext 1 <><><>0<> <><> <><><> <><> <> <><> <> <> <> <> <> <><><> Endtext Endwith Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else amessagebox('Nu exista fisierul ' + m.tcFisierPDFOriginal, 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_2014 Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d392.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Enddefine && D392 *======================================================================= ********************************************************* *** DECLARATIA 205 IMPOZIT DIVIDENDE ********************************************************* Procedure viz_decl205 If m.gnLuna = 12 Local loD205 As "D205" loD205 = Createobject("D205") && ovanzcump.vcx loD205.do_executa() Else amessagebox("Pentru a putea genera declaratia 205 trebuie sa intrati in luna decembrie!", 48, "Atentie") Endif Endproc Define Class D205 As Custom nAn = 0 nLuna = 0 cCodFiscal = 0 cCodCaen = [] lPlatitorTVA = .F. cDenumireFirma = [] cAdresa = [] cTelefon = [] cFax = [] cEmail = [] cDeclarant = [] cNumeDeclarant = [] cPrenumeDeclarant = [] cFunctieDeclarant = [] nBeneficiari = 0 nDividende = 0 Procedure Init With This .nAn = gnAn .nLuna = m.gnLuna .cCodFiscal = Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', '') .cCodCaen = Alltrim(gofirma.caen) .lPlatitorTVA = (Substr(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 1, 2) == 'RO') .cDenumireFirma = Nvl(Alltrim(gofirma.firma), '') .cAdresa = Nvl(Alltrim(gofirma.adresa), '') .cTelefon = Nvl(Alltrim(gofirma.telefon), '') .cFax = Nvl(Alltrim(gofirma.fax), '') .cEmail = Nvl(Alltrim(gofirma.email), '') .cDeclarant = Alltrim(gofirma.declarant) .cNumeDeclarant = Alltrim(gofirma.nume_declarant) .cPrenumeDeclarant = Alltrim(gofirma.prenume_declarant) .cFunctieDeclarant = Alltrim(gofirma.functie) Endwith Endproc Procedure do_executa Local loFrmDoc As "frm_decl_tipdoc" Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcCaleTemp, lcComunPath, lcConditieAct, lcCursor Local lcFileName, lcFileNamePDF, lcFirma, lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT Local lcFisierXDP, lcFisierXLS, lcMesaj, lcNumeFisier, lcRun, lcSelect, lcSirId, lcSql, llSucces Local lnPos, loEx, lndividende, lnImpozit lcSelect = Select() *** Initializare cai export lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D394\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = m.gcBasePath lcCaleFisier = m.lcTempPath + "D205\" && d:\roa\D205\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& d:\roa\D205\2023_12\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Strtran(gcFirma, [ ], [_]) + "\" && d:\roa\D205\2023_12\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierPDF = m.lcCaleFisier && d:\roa\D205\2023_12\firma\ If !Directory(m.lcCaleFisierPDF) Md (m.lcCaleFisierPDF) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', ALLTRIM(Strtran(Alltrim(gofirma.cod_fiscal), 'RO', ''))) Endif lcNumeFisier = "d205_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) Do Case Case gnAn >= 2024 lcFisierPDFOriginal = lcComunPath + "d205_2024.pdf" Case gnAn >= 2023 lcFisierPDFOriginal = lcComunPath + "d205_2023.pdf" Case gnAn >= 2022 lcFisierPDFOriginal = lcComunPath + "d205_2022.pdf" Otherwise lcFisierPDFOriginal = lcComunPath + "d205_" + ALLTRIM(STR(INT(m.gnAn))) + ".pdf" Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcCaleFisier + lcNumeFisier + [.txt] lcFisierXLS = m.lcCaleFisier + lcNumeFisier + [.xls] If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierXLS) Delete File (lcFisierXLS) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif *** citesc notele x = 457 din Reg. Jurnal (inregistrare dividende) Text To lcSql Textmerge Noshow SELECT UPPER(PARTC) AS BENEFICIAR, COD_FISCALC AS CNP, ROUND(SUM(SUMA),0) AS DIVIDENDE, CAST(0 as Number(20)) as DIVIDENDEP, CAST(0 as Number(20)) as IMPOZIT FROM VACT WHERE AN = <> AND SCC LIKE '457%' GROUP BY PARTC, COD_FISCALC Endtext lcCursor = [crs205] llSucces = goExecutor.oExecuta(lcSql, lcCursor) IF m.llSucces *** citesc notele 457 = 5xx din Reg. Jurnal (plata dividende) *** citesc notele 457 = 446 din Reg. Jurnal (impozit retinut) Text To lcSql Textmerge Noshow SELECT UPPER(PARTD) AS BENEFICIAR, COD_FISCALD AS CNP, ROUND(SUM(CASE WHEN SCC LIKE '5%' THEN SUMA ELSE 0 END),0) AS DIVIDENDE, ROUND(SUM(CASE WHEN SCC LIKE '446%' THEN SUMA ELSE 0 END),0) AS IMPOZIT FROM VACT WHERE AN = <> AND SCD LIKE '457%' and (SCC LIKE '5%' or SCC LIKE '446%') GROUP BY PARTD, COD_FISCALD Endtext lcCursor = [crs205p] llSucces = goExecutor.oExecuta(lcSql, lcCursor) IF m.llSucces SELECT crs205p SCAN lcBeneficiar = ALLTRIM(NVL(beneficiar, 'x')) lcCNP = ALLTRIM(NVL(cnp, 'x')) lnDividende = NVL(dividende, 0) lnImpozit = NVL(impozit, 0) SELECT crs205 LOCATE FOR NVL(beneficiar, 'x') = m.lcBeneficiar AND NVL(cnp, 'x') = m.lcCNP IF FOUND() REPLACE dividendep WITH m.lnDividende, impozit WITH m.lnImpozit ENDIF ENDSCAN ENDIF USE IN (SELECT('crs205p')) ENDIF If m.llSucces Do Case Case This.nAn >= 2024 This.do_genereaza_xdp_2024(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) ENDIF Case This.nAn >= 2023 This.do_genereaza_xdp_2023(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) ENDIF Case This.nAn >= 2022 This.do_genereaza_xdp_2022(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Endcase *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endif && llSucces Use In (Select('crs205')) Select (m.lcSelect) Endproc && do_executa *========================================== Procedure do_genereaza_xdp_2024 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcSelect, lcXDP lcSelect = Select() This.nBeneficiari = RECCOUNT('crs205') CALCULATE SUM(dividende) TO lnDividende IN crs205 This.nDividende = INT(m.lnDividende) lnTotalPlata = this.nBeneficiari + this.nDividende lcXDP = "" With This Text To lcXDP Additive Textmerge Noshow Pretext 1 0 <> <> 0 <> RO <> <> <> <> <> <> <> <> <> 1 08. Venituri din dividende (col.7,8,9,10) ENDTEXT SELECT crs205 SCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> 1 <> <> <> <> <> 2 ENDTEXT ENDSCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 Endtext Endwith Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else amessagebox('Nu exista fisierul ' + m.tcFisierPDFOriginal, 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_2024 *========================================== Procedure do_genereaza_xdp_2023 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcSelect, lcXDP lcSelect = Select() This.nBeneficiari = RECCOUNT('crs205') CALCULATE SUM(dividende) TO lnDividende IN crs205 This.nDividende = INT(m.lnDividende) lnTotalPlata = this.nBeneficiari + this.nDividende lcXDP = "" With This Text To lcXDP Additive Textmerge Noshow Pretext 1 0 <> <> 0 <> RO <> <> <> <> <> <> <> <> <> 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 08. Venituri din dividende (col.7,8) ENDTEXT SELECT crs205 SCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> 1 <> <> 0 0 2 ENDTEXT ENDSCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 Endtext Endwith Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else amessagebox('Nu exista fisierul ' + m.tcFisierPDFOriginal, 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_2023 *========================================== Procedure do_genereaza_xdp_2022 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcSelect, lcXDP lcSelect = Select() This.nBeneficiari = RECCOUNT('crs205') CALCULATE SUM(dividende) TO lnDividende IN crs205 This.nDividende = INT(m.lnDividende) lnTotalPlata = this.nBeneficiari + this.nDividende lcXDP = "" With This Text To lcXDP Additive Textmerge Noshow Pretext 1 0 <> <> 0 <> RO <> <> <> <> <> <> <> <> <> 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 08. Venituri din dividende ENDTEXT SELECT crs205 SCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> 1 <> <> 0 0 2 ENDTEXT ENDSCAN Text To lcXDP Additive Textmerge Noshow Pretext 1 Endtext Endwith Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else amessagebox('Nu exista fisierul ' + m.tcFisierPDFOriginal, 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_2022 Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d392.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Enddefine && D205 *======================================================================= ********************************************************* *** DECLARATIA 394 ACHIZITII/LIVRARI INTERNE ********************************************************* Procedure viz_decl394 Local loD394 As "D394" Do Case Case m.gnAn * 12 + m.gnLuna >= 2025 * 12 + 8 && TVA 21%, 11% de la 01.08.2025 * 08/2025 loD394 = Createobject("D394_2025") && ovanzcump.vcx loD394.List() Case m.gnAn * 12 + m.gnLuna >= 2016 * 12 + 7 && 'AMDX4'$UPPER(SYS(0)) AND MESSAGEBOX('D394 2016?',4+32,_screen.Caption) = 6 * 07/2016 loD394 = Createobject("D394_2016") && ovanzcump.vcx loD394.List() Otherwise loD394 = Createobject("D394") && ovanzcump.vcx loD394.do_executa() Endcase Endproc Define Class D394_2025 As Custom Total = 0 rectificativa = 0 TIP = 'L' Perioada = 1 NumarCoduriFiscale = 0 oForm = Null && formular D384 oUnitate = Null CaleFisierPDF = '' && director fisier pdf cFisierPDF = '' && fisier pdf * Afiseaza formularul 394 fara facturi, pentru alegerea tipurilor de documente, optiuni etc. * Din formular se vor selecta facturile in functie de optiuni Procedure List Local loDecl As "frm_decl394_2025" Local lcSelect, lcTip, llSilent, llSucces, lnNumarLuni, lcValoare llSilent = .F. && m.tlSilent lcTip = Upper(Nvl(citeste_optiune('D394_TIP'), 'LUNAR')) lcTip = Iif(!Inlist(m.lcTip, 'LUNAR', 'TRIMESTRIAL', 'SEMESTRIAL', 'ANUAL'), 'LUNAR', m.lcTip) lcSelect = Select() If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif Private pounitate pounitate = Createobject("empty") AddProperty(pounitate, "tva_incasare", goCalendar.tva_incasare) AddProperty(pounitate, "an", m.gnAn) AddProperty(pounitate, "luna1", m.gnLuna) AddProperty(pounitate, "luna2", m.gnLuna) AddProperty(pounitate, "tip", m.lcTip) AddProperty(pounitate, "luniextra", 0) AddProperty(pounitate, "tvanedeductibil", 0) AddProperty(pounitate, "codi", Strtran(Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', ''), 'R', '')) AddProperty(pounitate, "deni", Nvl(Alltrim(gofirma.firma), '')) AddProperty(pounitate, "adr", Nvl(Alltrim(gofirma.adresa), '')) poUnitate.adr = PADR(poUnitate.adr, 150, ' ') AddProperty(pounitate, "tel", Nvl(Alltrim(gofirma.telefon), '')) AddProperty(pounitate, "fax", Nvl(Alltrim(gofirma.fax), '')) AddProperty(pounitate, "email", Nvl(Alltrim(gofirma.email), '')) AddProperty(pounitate, "taraR", "") AddProperty(pounitate, "codiR", "") AddProperty(pounitate, "deniR", "") AddProperty(pounitate, "adrR", "") AddProperty(pounitate, "telR", "") AddProperty(pounitate, "faxR", "") AddProperty(pounitate, "emailR", "") AddProperty(pounitate, "numeD", "") AddProperty(pounitate, "functieD", "") AddProperty(pounitate, "operatiuni", 1) AddProperty(pounitate, "tvaincasare", goCalendar.tva_incasare) AddProperty(pounitate, "nr_facturi_emise", 0) AddProperty(pounitate, "nr_facturi_beneficiari", 0) AddProperty(pounitate, "nr_facturi_terti", 0) AddProperty(pounitate, "lPerioadaDoarRO", Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9)) && intre 07/2016 si 09/2016 se declara doar partenerii cu RO AddProperty(pounitate, "ExportSectiuneaI", 1) && intre 07/2016 si 09/2016 nu se completeaza sectiunea I AddProperty(pounitate, "PersoaneAfiliate", 0) && 0 = fara persoane afiliate, 1 = cu persoane afiliate AddProperty(pounitate, "DenRepr", Alltrim(citeste_optiune('D394_DEN_REPREZ'))) AddProperty(pounitate, "AdrRepr", Alltrim(citeste_optiune('D394_ADR_REPREZ'))) poUnitate.AdrRepr = PADR(poUnitate.AdrRepr, 150, ' ') AddProperty(pounitate, "CuiRepr", Alltrim(citeste_optiune('D394_CUI_REPREZ'))) AddProperty(pounitate, "TipRepr", Alltrim(citeste_optiune('D394_TIP_REPREZ'))) AddProperty(pounitate, "TelRepr", Alltrim(citeste_optiune('D394_TEL_REPREZ'))) AddProperty(pounitate, "FaxRepr", Alltrim(citeste_optiune('D394_FAX_REPREZ'))) AddProperty(pounitate, "EmailRepr", Alltrim(citeste_optiune('D394_EMAIL_REPREZ'))) AddProperty(pounitate, "DenIntocmit", Alltrim(citeste_optiune('D394_DEN_INTOCMIT'))) AddProperty(pounitate, "CuiIntocmit", Alltrim(citeste_optiune('D394_CUI_INTOCMIT'))) AddProperty(pounitate, "PJIntocmit", Int(Val(Nvl(citeste_optiune('D394_PJ_INTOCMIT'), '1'))) ) AddProperty(pounitate, "CalitateIntocmit", Alltrim(citeste_optiune('D394_CALITATE_INTOCMIT'))) poUnitate.CalitateIntocmit = PADR(poUnitate.CalitateIntocmit, 100, ' ') AddProperty(pounitate, "Calitate2Intocmit", Alltrim(citeste_optiune('D394_CALITATE2_INTOCMIT'))) poUnitate.Calitate2Intocmit = PADR(poUnitate.Calitate2Intocmit, 100, ' ') AddProperty(pounitate, "FunctieIntocmit", Alltrim(citeste_optiune('D394_FUNCTIE_INTOCMIT'))) poUnitate.FunctieIntocmit= PADR(poUnitate.FunctieIntocmit, 100, ' ') AddProperty(pounitate, "NrAMEF", Int(Val(Nvl(citeste_optiune('D394_NR_AMEF'), '1')))) AddProperty(pounitate, "OptiuneANAF", Int(Val(Nvl(citeste_optiune('D394_OPTIUNE_ANAF'), '0')))) && 1 = Se da acordul pentru consultarea D394 de catre furnizori/clienti AddProperty(pounitate, "cTextFacturiEmiseAlocate", "") && facturi emise care nu sunt in plaja de facturi alocate This.oUnitate = pounitate Create Cursor crsFdocTip (id_fdoc N(10) null, fel_document c(100) null, tip_doc c(10) Null, bifa N(1)) *!* llSucces = update_fdoc([NVL(tip_doc,'!') <> '!'], 'crsFdocTipTemp') && doar fel document cu tip *!* AddProperty(pounitate, "tipdoc_factura", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'F'])) && lista tip documente = factura *!* AddProperty(pounitate, "tipdoc_bonfiscal_cu_cui", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'C'])) && lista tip documente = bon fiscal cu factura *!* AddProperty(pounitate, "tipdoc_bonfiscal_fara_cui", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'B'])) && lista tip documente = bon fiscal fara factura *!* AddProperty(pounitate, "tipdoc_factura_simplificata", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'M'])) && lista tip documente = factura simplificata *!* AddProperty(pounitate, "tipdoc_exceptate_amef", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'E'])) && lista tip documente = exceptate de la AMEF (bilete) *!* AddProperty(pounitate, "tipdoc_borderou_achizitii", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'O'])) && lista tip documente = borderou achizitii *!* AddProperty(pounitate, "tipdoc_carnet_comercializare", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'Z'])) && lista tip documente = carnet comercialziare *!* AddProperty(pounitate, "tipdoc_achizitii_second_hand", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'H'])) && lista tip documente = achizitii second hand *!* AddProperty(pounitate, "tipdoc_servicii_turism", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'U'])) && lista tip documente = servicii turism llSucces = update_serii(.F., [isautofactura = 1 or isbeneficiari = 1 or isterti = 1 or isfurnizori = 1]) && crsSerii - seriile marcate autofactura/emise de beneficiari/emise de terti/emise in numele furnizorilor! If !m.llSucces Create Cursor crsSerii (seria c(20), isautofactura N(1), isbeneficiari N(1), isterti N(1), isfurnizori N(1)) Endif Create Cursor crsSectiuneaI (punct c(4) Null, baza N(20) Null, TVA N(20) Null, proctva N(2) Null) Create Cursor crsSectiuneaI4 (punct c(4) Null, TVA21 N(20) Null, TVA11 N(20) Null, TVA19 N(20) Null, TVA09 N(20) Null, TVA05 N(20) Null, TVA24 N(20) Null, TVA20 N(20) Null) Create Cursor crsSectiuneaI6 (punct c(4) Null, incasari N(20) Null, costuri N(20) Null, marja N(20) Null, TVA N(20) Null) && agentii turism si second hand Create Cursor crsSectiuneaI7 (caen c(4) Null, TIP c(10), baza N(20), TVA21 N(20) Null, TVA11 N(20) Null, TVA19 N(20) Null, TVA09 N(20) Null, TVA05 N(20) Null, TVA24 N(20) Null, TVA20 N(20) Null) Create Cursor crsFacturiAlocate (seria c(20) Null, nr1 N(20), nr2 N(20)) Create Cursor crsFacturiEmise (seria c(20) Null, nr1 N(20), nr2 N(20)) Create Cursor crsFacturiEmiseTip (TIP c(20), ntip N(1), seria c(20) Null, nr N(20)) Create Cursor crsAutoFacturi (seria c(20) Null, nr N(20), baza21 N(16, 4) Null, baza11 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, baza24 N(16, 4) Null, baza20 N(16, 4) Null, ; TVA21 N(16, 4) Null, TVA11 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null, TVA24 N(16, 4) Null, TVA20 N(16, 4) Null) Create Cursor crsFacturiTerti (punct c(4) Null, seria c(20) Null, nr1 N(20), nr2 N(20), denumire c(100) Null, cod_fiscal c(20) Null) Create Cursor crsSeriiFacturi (TIP c(20), seria c(20), descriere c(100)) Insert Into crsSeriiFacturi (TIP, seria, descriere) ; Select 'AUTOFACTURA' As TIP, serie As seria, 'serie autofacturi' As descriere ; From crsSerii Where isautofactura = 1 ; Union ; Select 'BENEFICIARI' As TIP, serie As seria, 'serie facturi emise de beneficiari in numele persoanei impozabile' As descriere ; From crsSerii Where isbeneficiari = 1 ; Union ; Select 'TERTI' As TIP, serie As seria, 'serie facturi emise de terti in numele persoanei impozabile' As descriere ; From crsSerii Where isterti = 1 ; Union ; Select 'FURNIZORI' As TIP, serie As seria, 'serie facturi emise de pers impozabila in calitate de beneficiar, in numele furnizorilor' As descriere ; From crsSerii Where isfurnizori = 1 Go Top In crsSeriiFacturi AddProperty(pounitate, "serie_autofacturare", cursor2lista("crsSerii", "serie", ",", [isautofactura=1])) AddProperty(pounitate, "serie_facturi_beneficiari", cursor2lista("crsSerii", "serie", ",", [isbeneficiari=1])) AddProperty(pounitate, "serie_facturi_terti", cursor2lista("crsSerii", "serie", ",", [isterti=1])) AddProperty(pounitate, "serie_facturi_furnizori", cursor2lista("crsSerii", "serie", ",", [isfurnizori=1])) close_serii() Create Cursor crsAMEF (TIP N(1), luna N(2), nramef N(10), nrbonuri N(10), incasari N(16, 4), ; baza21 N(16, 4) Null, baza11 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, baza20 N(16, 4) Null, ; TVA21 N(16, 4) Null, TVA11 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null, TVA20 N(16, 4) Null) Create Cursor crsJTVA(seq N(20), tipj c(2), tippart N(1), tipdoc c(2) Null, TIP c(2), dataact D Null, dataireg D Null, serie_act c(10) Null, nract N(20) Null, id_fdoc N(12) Null, fel_document c(30) Null, id_sucursala N(7) Null, sucursala c(100) Null, ; iscif N(1) Null, cifvalid N(1) Null, id_part N(20) Null, cod_fiscal c(30) Null, cod_fiscalfro c(30) Null, atribut_fiscal c(2) Null, denumire c(100) Null, TIP_PERSOANA N(1) Null, AFILIAT N(5) Null, CODTARA V(5) NULL, ; TARA c(100) Null, COD_TARA c(10) Null, JUDET c(100) Null, COD_JUDET c(10) Null, LOCALITATE c(100) Null, STRADA c(100) Null, NUMAR c(20) Null, Bloc c(20) Null, SCARA c(50) Null, APART c(100) Null, ; baza N(16, 4) Null, TVA N(16, 4) Null, tibaza N(16, 4) Null, titva N(16, 4) Null, ; baza21 N(16, 4) Null, baza11 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, baza24 N(16, 4) Null, baza20 N(16, 4) Null, baza00 N(16, 4) Null, ; TVA21 N(16, 4) Null, TVA11 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null, TVA24 N(16, 4) Null, TVA20 N(16, 4) Null, ; tibaza21 N(16, 4) Null, tibaza11 N(16, 4) Null, tibaza19 N(16, 4) Null, tibaza09 N(16, 4) Null, tibaza05 N(16, 4) Null, tibaza24 N(16, 4) Null, tibaza20 N(16, 4) Null, ; titva21 N(16, 4) Null, titva11 N(16, 4) Null, titva19 N(16, 4) Null, titva09 N(16, 4) Null, titva05 N(16, 4) Null, titva24 N(16, 4) Null, titva20 N(16, 4) Null, ; tva_incasare N(1), FACT_TVA_INCASARE N(1), NRFACT N(1), EMISA_PERIOADA N(1), ; ro21t N(16, 4) Null, ro11t N(16, 4) Null, ro19t N(16, 4) Null, RO09T N(16, 4) Null, ro05t N(16, 4) Null, ro24t N(16, 4) Null, ro20t N(16, 4) Null) loDecl = Createobject("frm_decl394_2025") *DO FORM frm_decl394_2016 NAME loDecl NOSHOW loDecl.oParent = This This.oForm = loDecl loDecl.Show(1) scrie_optiune('D394_DEN_REPREZ', pounitate.DenRepr, 'D394 denumire reprezentant') scrie_optiune('D394_ADR_REPREZ', pounitate.AdrRepr, 'D394 adresa reprezentant') scrie_optiune('D394_CUI_REPREZ', pounitate.CUIRepr, 'D394 CUI reprezentant') scrie_optiune('D394_TIP_REPREZ', pounitate.TipRepr, 'D394 tip reprezentant') scrie_optiune('D394_TEL_REPREZ', pounitate.TelRepr, 'D394 telefon reprezentant') scrie_optiune('D394_FAX_REPREZ', pounitate.FaxRepr, 'D394 fax reprezentant') scrie_optiune('D394_EMAIL_REPREZ', pounitate.EmailRepr, 'D394 email reprezentant') scrie_optiune('D394_DEN_INTOCMIT', pounitate.DenIntocmit, 'D394 denumire intocmit') scrie_optiune('D394_CUI_INTOCMIT', pounitate.CUIIntocmit, 'D394 CUI intocmit') scrie_optiune('D394_PJ_INTOCMIT', Alltrim(Str(pounitate.PJIntocmit)), 'D394 persoana juridica intocmit') scrie_optiune('D394_CALITATE_INTOCMIT', pounitate.CalitateIntocmit, 'D394 calitate intocmit') scrie_optiune('D394_CALITATE2_INTOCMIT', pounitate.Calitate2Intocmit, 'D394 alta calitate intocmit') scrie_optiune('D394_FUNCTIE_INTOCMIT', pounitate.FunctieIntocmit, 'D394 functie intocmit') scrie_optiune('D394_TIP', pounitate.TIP, 'Tip declaratie 394: LUNAR/TRIMESTRIAL/SEMESTRIAL/ANUAL') scrie_optiune('D394_NR_AMEF', Alltrim(Str(pounitate.nramef)), 'D394 nr AMEF') scrie_optiune('D394_OPTIUNE_ANAF', Alltrim(Str(pounitate.OptiuneANAF)), 'D394 optiunea ANAF; 1=DA/0=NU') close_fdoc() Endproc && List *************************************************** * Citeste JV/JC * Configureaza tipurile de documente (facturi, facturi simplificate, bonuri fiscale etc.) *************************************************** Procedure do_citeste_date Local llSucces, lcSelect, loUnitate Local lcTip, lnAn, lnLuna1, lnLuna2, lnNumarLuni, lnPerioada lcSelect = Select() loUnitate = This.oUnitate * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnAn = loUnitate.an lcTip = loUnitate.TIP This.TIP = Left(m.lcTip, 1) lnNumarLuni = Iif(m.lcTip = "TRIMESTRIAL", 3, Iif(m.lcTip = "SEMESTRIAL", 6, Iif(m.lcTip = "ANUAL", 12, 1))) lnPerioada = Ceil(m.gnLuna / m.lnNumarLuni) lnLuna1 = (lnPerioada - 1) * lnNumarLuni + 1 lnLuna2 = lnPerioada * lnNumarLuni loUnitate.luna1 = m.lnLuna1 loUnitate.luna2 = m.lnLuna2 llPerioadaDoarRO = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9) && intre 07/2016 si 09/2016 se iau doar partenerii cu RO * Citeste JV/JC Wait Window 'Se citesc date din Registrele TVA...' Nowait llSucces = This.citeste_date_jtva() If m.llSucces And Used('crsJtva') Wait Window 'Se proceseaza datele din Registrele TVA...' Nowait llSucces = This.configureaza_date_jtva() Else llSucces = .F. Endif If m.llSucces Wait Window 'Se pregatesc sectiunile 1 si 2...' Nowait llSucces = This.pregateste_sectiunea_1_2() Endif If m.llSucces Wait Window 'Se pregatesc sectiunile 4 si 5...' Nowait llSucces = This.pregateste_sectiunea_4_5() Endif If m.llSucces Wait Window 'Se pregateste sectiunea 6...' Nowait llSucces = This.pregateste_sectiunea_6() Endif If m.llSucces Wait Window 'Se pregateste sectiunea 7...' Nowait llSucces = This.pregateste_sectiunea_7() Endif If m.llSucces Wait Window 'Se pregateste sectiunea AMEF...' Nowait llSucces = This.pregateste_sectiunea_amef() If loUnitate.lPerioadaDoarRO Delete From crsAMEF && nu se declara bonurile fiscale in perioada 07-09/2016 Endif Endif *!* If m.llSucces *!* Wait Window 'Se pregateste sectiunea persoane fizice...' Nowait *!* llSucces = This.pregateste_sectiunea_facturi_pers_fizice_10000() *!* If loUnitate.lPerioadaDoarRO *!* Delete From crsPersFizice && nu se declara bonurile fiscale in perioada 07-09/2016 *!* Endif *!* Endif Go Top In crsJTVA Select (m.lcSelect) Return m.llSucces Endproc * Citeste JV/JC Procedure citeste_date_jtva Private pnIdSetAnulat && set facturi anulate pnIdSetAnulat = Iif(Type('gnIdSetAnulat') = 'N', m.gnIdSetAnulat, 99996) Local lcConditieAct, lcConditieLuna, lcCursor, lcSql, lnAn, lnLuna1, lnLuna2, lnSucces, loUnitate, llPerioadaDoarRO loUnitate = This.oUnitate lnAn = loUnitate.an lnLuna1 = loUnitate.luna1 lnLuna2 = loUnitate.luna2 llPerioadaDoarRO = loUnitate.lPerioadaDoarRO lcConditieLuna = [ (AN = ] + Alltrim(Str(m.lnAn)) + [ and (luna BETWEEN ] + Alltrim(Str(m.lnLuna1)) + [ and ] + Alltrim(Str(m.lnLuna2)) + [ ))] *** iau doar facturile din luna emiterii lcConditieAct = [ and (extract(year from dataact)*12+extract(month from dataact) = an*12+luna)] * Iau toate inregistrarile din Registrele de TVA, INCLUSIV FATURILE EMISE ANTERIOR PERIOADEI DE DECLARARE, pentru calcul sectiune 4 si 5 (TVA EXIGIBIL) Text To lcSql Textmerge Noshow SELECT 'JV' AS TIPJ, 0 AS TIPPART, TIP_DOC as tipdoc, 'L ' as tip, dataact, dataireg, serie_act, nract, id_fdoc, fel_document, id_sucursala, sucursala, 0 as ISCIF, 0 AS CIFVALID, J.ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, TIP_PERSOANA, AFILIAT, CODTARA, A.TARA, A.COD_TARA, A.JUDET, A.COD_JUDET, A.LOCALITATE, A.STRADA, A.BLOC, A.SCARA, A.NUMAR, A.APART, RO21B + RO11B + RO19B + RO9B + RO5B + RO21NB + RO11NB + RO19NB + RO9NB + RO5NB AS BAZA, RO21T + RO11T + RO19T + RO9T + RO5T + RO21NT + RO11NT + RO19NT + RO9NT + RO5NT AS TVA, ROTI AS TIBAZA, 0 AS TITVA, RO21B + RO21NB as BAZA21, RO11B + RO11NB AS BAZA11, RO19B + RO19NB AS BAZA19, RO9B + RO9NB AS BAZA09, RO5B + RO5NB AS BAZA05, RO24B + RO24NB as BAZA24, RO20B + RO20NB AS BAZA20, 0.00 AS BAZA00, RO21T + RO21NT as TVA21, RO11T + RO11NT AS TVA11, RO19T + RO19NT AS TVA19, RO9T + RO9NT AS TVA09, RO5T + RO5NT AS TVA05, RO24T + RO24NT AS TVA24, RO20T + RO20NT AS TVA20, ROTI AS TIBAZA21, 0.00 AS TIBAZA11, 0.00 AS TIBAZA19, 0.00 AS TIBAZA09, 0.00 AS TIBAZA05, 0.00 AS TIBAZA24, 0 AS TIBAZA20, 0.00 as TITVA21, 0.00 AS TITVA11, 0.00 AS TITVA19, 0.00 AS TITVA09, 0.00 AS TITVA05, 0.00 as TITVA24, 0.00 AS TITVA20, TVA_INCASARE, 0 as FACT_TVA_INCASARE, 1 as NRFACT, decode(extract(year from dataireg)*12+extract(month from dataireg), an*12+luna, 1, 0) as EMISA_PERIOADA, RO21T, RO11T, RO19T, RO9T AS RO09T, RO5T AS RO05T, RO24T, RO20T FROM VJV2025 J LEFT JOIN (SELECT ID_PART,TARA,PRESCURTARE AS COD_TARA,JUDET,COD_JUDET,LOCALITATE,STRADA,NUMAR,APART,SCARA,BLOC FROM VADRESE_PARTENERI WHERE PRINCIPALA = 1) A ON J.ID_PART = A.ID_PART WHERE (TOTCTVA = 0 OR RO21T <> 0 OR RO11T <> 0 OR RO19T <> 0 OR RO9T <> 0 OR RO5T <> 0 OR RO24T <> 0 OR RO20T <> 0 OR RO21NT <> 0 OR RO11NT <> 0 OR RO19NT <> 0 OR RO9NT <> 0 OR RO5NT <> 0 OR RO24NT <> 0 OR RO20NT <> 0 OR ROTI <> 0) AND <> UNION SELECT 'JC' AS TIPJ, 0 AS TIPPART, TIP_DOC as tipdoc, 'A ' as tip, dataact, dataireg, serie_act, nract, id_fdoc, fel_document, id_sucursala, sucursala, 0 as ISCIF, 0 AS CIFVALID, J.ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, TIP_PERSOANA, AFILIAT, CODTARA, A.TARA, A.COD_TARA, A.JUDET, A.COD_JUDET, A.LOCALITATE, A.STRADA, A.BLOC, A.SCARA, A.NUMAR, A.APART, RO21B + RO11B + RO19B + RO09B + RO05B + RO24B + RO20B + RO21NB + RO11NB + RO19NB + RO9NB + RO5NB + RO24NB + RO20NB + ROSCN AS BAZA, RO21T + RO11T + RO19T + RO09T + RO05T + RO21NT + RO11NT + RO19NT + RO9NT + RO5NT AS TVA, TI21B + TI11B + TI19B + TI09B + TI24B + TI20B + XX21TIB + XX11TIB + XX19TIB + XX9TIB as TIBAZA, TI21T + TI11T + TI19T + TI09T + TI24T + TI20T + XX21TIT + XX11TIT + XX19TIT + XX9TIT as TITVA, RO21B + RO21NB AS BAZA21, RO11B + RO11NB AS BAZA11, RO19B + RO19NB AS BAZA19, RO09B + RO9NB AS BAZA09, RO05B + RO5NB AS BAZA05, RO24B + RO24NB AS BAZA24, RO20B + RO20NB AS BAZA20, ROSCN AS BAZA00, RO21T + RO21NT AS TVA21, RO11T + RO11NT AS TVA11, RO19T + RO19NT AS TVA19, RO09T + RO9NT AS TVA09, RO05T + RO5NT AS TVA05, RO24T + RO24NT AS TVA24, RO20T + RO20NT AS TVA20, TI21B + XX21TIB AS TIBAZA21, TI11B + XX11TIB AS TIBAZA11, TI19B + XX19TIB AS TIBAZA19, TI09B + XX9TIB AS TIBAZA09, 0.00 AS TIBAZA05, TI24B AS TIBAZA24, TI20B AS TIBAZA20, TI21T + XX21TIT as TITVA21, TI11T + XX11TIT AS TITVA11, TI19T + XX19TIT AS TITVA19, TI09T + XX9TIT AS TITVA09, 0.00 AS TITVA05, TI24T as TITVA24, TI20T AS TITVA20, TVA_INCASARE, 0 as FACT_TVA_INCASARE, 1 as NRFACT, decode(extract(year from dataireg)*12+extract(month from dataireg), an*12+luna, 1, 0) as EMISA_PERIOADA, RO21T, RO11T, RO19T, RO09T, RO05T, RO24T, RO20T FROM VJC2025 J LEFT JOIN (SELECT ID_PART,TARA,PRESCURTARE AS COD_TARA,JUDET,COD_JUDET,LOCALITATE,STRADA,NUMAR,APART,SCARA,BLOC FROM VADRESE_PARTENERI WHERE PRINCIPALA = 1) A ON J.ID_PART = A.ID_PART WHERE (TOTCTVA = 0 OR RO21T <> 0 OR RO11T <> 0 OR RO19T <> 0 OR RO09T <> 0 OR RO05T <> 0 OR RO24T <> 0 OR RO20T <> 0 OR RO21NT <> 0 OR RO11NT <> 0 OR RO19NT <> 0 OR RO9NT <> 0 OR RO5NT <> 0 OR RO24NT <> 0 OR RO20NT <> 0 OR TI21T <> 0 OR TI11T <> 0 OR TI19T <> 0 OR TI09T <> 0 OR TI24T <> 0 OR TI24T <> 0 OR XX21TIB<>0 OR XX21TIT <> 0 OR XX11TIB<>0 OR XX11TIT <> 0 OR XX19TIB<>0 OR XX19TIT <> 0 OR XX9TIB<>0 OR XX9TIT <> 0 OR ROSCN <> 0) AND <> Endtext goLog.Log(lcSql) lcCursor = [crsJTVATemp] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crsJTVA Append From Dbf('crsJTVATemp') Use In (Select('crsJTVATemp')) * sterg facturile de achizitie de la platitorii de TVA (RO) care au doar baza00 <> 0 (ROSCN). nu trebuie sa apara in declaratie. doar la tipul 2 (neinregistrati in scopuri TVA) * sunt permise facturile cu TVA 0 tip AS - achizitii regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Delete From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And TVA21 = 0 And TVA11 = 0 And TVA19 = 0 And TVA09 = 0 And TVA05 = 0 And TVA24 = 0 And TVA20 = 0 And baza00 <> 0 And !Inlist(Alltrim(tipdoc), 'U', 'H') Update crsJTVA Set seq = Recno() * Bifa Persoane Afiliate Select crsJTVA Locate For Nvl(AFILIAT, 0) <> 0 If Found() pounitate.PersoaneAfiliate = 1 Endif Endif && llSucces * Facturi Anulate din Reg. Jurnal cu gnIdSetAnulate If m.llSucces Text To lcSql Textmerge Noshow SELECT distinct a.serie_act as seria, a.nract as nr FROM act a left join nom_fdoc f on a.id_fdoc = f.id_fdoc WHERE a.sters = 0 and a.id_set = <> and f.tip_doc in ('F', 'M') and <> <> <> Endtext lcCursor = [crsFacturiAnulate] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && llSucces * Numar bonuri fiscale cu si fara CUI, B si C (AMEF) If m.llSucces * 07-09/2016 se declara doar operatiile cu persoane impozabile, deci nu bonuri AMEF If m.llPerioadaDoarRO Create Cursor crsBonuriAMEF (luna N(2), nr N(10)) llSucces = .T. Else *BON=10* * se numara toate bonurile fiscale emise, indiferent ca au cod fiscal sau nu. Doar bonurile fiscale pentru care s-au emis facturi nu se iau in considerare! * dar acelea trebuie sa fie marcate ca FACTURA Text To lcSql Textmerge Noshow SELECT extract(month FROM dataact) as luna, SUM(case when nr is null then 1 else to_number(nr) end) as nr FROM (SELECT a.id_fact, a.cod, MAX(a.dataact) as dataact, MAX(replace(replace(upper(regexp_substr(a.explicatia,'\*BON=(\d)*\*',1,1,'i')),'*BON=',''),'*','')) as nr FROM act a WHERE a.sters = 0 and <> <> and id_fact in (SELECT j.id_fact from jv2007 j where <> <> and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc in ('B','C'))) and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc in ('B','C')) group by a.id_fact, a.cod) group by extract(month from dataact) Endtext Wait Window 'Calculare numar bonuri AMEF...' Nowait lcCursor = [crsBonuriAMEF] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && m.llPerioadaDoarRO Endif && llSucces * Numar bilete E(xceptate) AMEF If m.llSucces * 07-09/2016 se declara doar operatiile cu persoane impozabile, deci nu bonuri AMEF If m.llPerioadaDoarRO Create Cursor crsBonuriEAMEF(luna N(2), nr N(10)) llSucces = .T. Else Text To lcSql Textmerge Noshow SELECT extract(month FROM dataact) as luna, SUM(case when nr is null then 1 else to_number(nr) end) as nr FROM (SELECT a.id_fact, a.cod, MAX(a.dataact) as dataact, MAX(replace(replace(upper(regexp_substr(a.explicatia,'\*BON=(\d)*\*',1,1,'i')),'*BON=',''),'*','')) as nr FROM act a WHERE a.sters = 0 and <> <> and id_fact in (SELECT j.id_fact from jv2007 j where <> <> and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc = 'E')) and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc = 'E') group by a.id_fact, a.cod) group by extract(month from dataact) Endtext Wait Window 'Calculare numar bonuri exceptate AMEF...' Nowait lcCursor = [crsBonuriEAMEF] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && m.llPerioadaDoarRO Endif && llSucces Return m.llSucces Endproc && citeste_date_jtva * Configureaza tipurile de documente (facturi, facturi simplificate, bonuri fiscale etc.) Procedure configureaza_date_jtva Local loVerificare As "verificarecod" Local loRec Update crsJTVA Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) Or Empty(Nvl(cod_fiscal, '')) Update crsJTVA Set codtara = 'RO' WHERE EMPTY(NVL(codtara,'')) * Completez Tip partener: 1/2/3/4 Update crsJTVA Set tippart = 1 Where tippart = 0 And atribut_fiscal = 'RO' && persoane impozabile inregistrate in scopuri de TVA in Romania Update crsJTVA Set tippart = 2 Where tippart = 0 And (codtara = 'RO' AND Empty(atribut_fiscal)) OR Nvl(TIP_PERSOANA,0) <> 1 && persoane din RO neinregistrate in scopuri de TVA /fara atribut fiscal sau persoane fizice Update crsJTVA Set tippart = 3 Where tippart = 0 And ; (INLIST(atribut_fiscal,'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'EL', 'ES', 'FI', 'FR') OR INLIST(atribut_fiscal, 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'SE', 'SI', 'SK') OR ; INLIST(codtara, 'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'GR', 'ES', 'FI', 'FR') OR INLIST(codtara, 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'SE', 'SI', 'SK')) && persoane impozabile nestabilite in RO, in UE Update crsJTVA Set tippart = 4 Where tippart = 0 And Nvl(TIP_PERSOANA,0) = 1 AND codtara <> 'RO'&& persoane impozabile nestabilite in RO, in afara UE si tip persoana = persoana juridica * Completez tip document: FACTURA/BON FISCAL FARA FACTURA/BON FISCAL CU FACTURA/FACTURA SIMPLIFICATA/AUTOFACTURA *!* Update crsJTVA Set tipdoc = '' *!* Update crsJTVA Set tipdoc = 'B' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_bonfiscal_fara_cui + ',' *!* Update crsJTVA Set tipdoc = 'C' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_bonfiscal_cu_cui + ',' *!* Update crsJTVA Set tipdoc = 'M' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_factura_simplificata + ',' *!* Update crsJTVA Set tipdoc = 'E' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_exceptate_amef + ',' *!* Update crsJTVA Set tipdoc = 'O' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_borderou_achizitii + ',' *!* Update crsJTVA Set tipdoc = 'Z' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_carnet_comercializare + ',' *!* Update crsJTVA Set tipdoc = 'H' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_achizitii_second_hand + ',' *!* Update crsJTVA Set tipdoc = 'U' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_servicii_turism + ',' *!* Update crsJTVA Set tipdoc = 'AF' Where Empty(tipdoc) And ',' + Alltrim(serie_act) + ',' $ ',' + This.oUnitate.serie_autofacturare + ',' *!* Update crsJTVA Set tipdoc = 'F' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_factura + ',' * Update crsJTVA Set tipdoc = 'F' Where Empty(tipdoc) && completez restul documentelor cu tip = F(actura) Insert Into crsFdocTip (id_fdoc, fel_document, tip_doc, bifa) ; Select Distinct id_fdoc, fel_document, tipdoc As tip_doc, Iif(Empty(Nvl(tipdoc, '')), 1, 0) As bifa ; From crsJTVA ; Where EMISA_PERIOADA = 1 Go Top In crsFdocTip * Determin CUI/CNP si verific validitate Select Distinct cod_fiscal, .F. As iscif, .F. As cifvalid ; From crsJTVA ; Where !Empty(Nvl(cod_fiscal, '')) ; Into Cursor cCUITemp Readwrite loVerificare = Createobject("verificarecod") && validare.prg Update cCUITemp Set iscif = loVerificare.iscif(cCUITemp.cod_fiscal) Update cCUITemp Set cifvalid = loVerificare.Validare(Iif(cCUITemp.iscif, 'CIF', 'CNP'), cCUITemp.cod_fiscal) Select cCUITemp Scan Update crsJTVA Set iscif = Iif(cCUITemp.iscif, 1, 0), cifvalid = Iif(cCUITemp.cifvalid, 1, 0) Where cod_fiscal = cCUITemp.cod_fiscal Endscan Update crsJTVA Set iscif = 0, cifvalid = 0 Where Empty(Nvl(cod_fiscal, '')) Use In (Select('cCUITemp')) *!* L - livrari *!* V - livrari cu taxare inversa *!* LS - livrari regim special *!* A - achizitii *!* C - achizitii cu taxare inversa *!* AS - achizitii regim special *!* N - achizitii de bunuri/servicii pt care au fost primite facturi/borderouri de achizitii/ file din carnete de comercializare de la persoane neinregistrate *!* AI - achizitii de la persoane impozabile care aplica TVA la incasare * V/C - taxare inversa Select * From crsJTVA Where .F. Into Cursor crsJTVATemp Readwrite Select crsJTVA Scan For EMISA_PERIOADA = 1 And titva <> 0 Or tibaza <> 0 And Inlist(TIP, 'L', 'A') If TVA = 0 And baza = 0 * daca are doar taxare inversa, marchez factura tip V/C Replace TIP With Iif(TIP = 'L', 'V', 'C'), ; baza With tibaza, TVA With titva, ; baza21 With tibaza21, baza11 With tibaza11, baza19 With tibaza19, baza09 With tibaza09, baza05 With tibaza05, ; TVA21 With titva21, TVA11 With titva11, TVA19 With titva19, TVA09 With titva09, TVA05 With titva05 In crsJTVA If TIP = 'V' && livrare taxare inversa nu are cota de TVA Replace baza00 With 0, titva21 WITH 0, baza11 With 0, tibaza11 With 0 In crsJTVA Endif Else * daca are taxare inversa si tva normal, marchez factura tip V/C si adaug o linie noua cu tva normal Select crsJTVA Scatter Name loRec Replace TIP With Iif(TIP = 'L', 'V', 'C'), ; baza With tibaza, TVA With titva, ; baza21 With tibaza21, baza11 With tibaza11, baza19 With tibaza19, baza09 With tibaza09, baza05 With tibaza05, baza24 With tibaza24, baza20 With tibaza20, ; TVA21 With titva21, TVA11 With titva11, TVA19 With titva19, TVA09 With titva09, TVA05 With titva05, TVA24 With titva24, TVA20 With titva20, ; ro21t With 0, ro11t With 0, ro19t With 0, RO09T With 0, ro05t With 0, ro24t With 0, ro20t With 0 In crsJTVA With loRec .NRFACT = 0 && am deja nrfact = 1 pe linia cu taxare inversa, sa nu duplic numarul de facturi .tibaza = 0 .titva = 0 .tibaza21 = 0 .tibaza11 = 0 .tibaza19 = 0 .tibaza09 = 0 .tibaza05 = 0 .tibaza24 = 0 .tibaza20 = 0 .titva21 = 0 .titva11 = 0 .titva19 = 0 .titva09 = 0 .titva05 = 0 .titva24 = 0 .titva20 = 0 Endwith Insert Into crsJTVATemp From Name loRec Select crsJTVA Endif Endscan Select crsJTVA Append From Dbf('crsJTVATemp') Use In (Select('crsJTVATemp')) * LS - livrari regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Update crsJTVA Set TIP = 'LS' Where TIP = 'L' And Inlist(Alltrim(tipdoc), 'U', 'H') * AS - achizitii regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Update crsJTVA Set TIP = 'AS' Where TIP = 'A' And Inlist(Alltrim(tipdoc), 'U', 'H') * N - achizitii de bunuri/servicii pt care au fost primite facturi/borderouri de achizitii/ file din carnete de comercializare de la persoane neinregistrate * Achizitii de la persoane fizice sau persoane juridice neplatitoare de TVA Update crsJTVA Set TIP = 'N' Where TIP = 'A' And (iscif = 0 Or (iscif = 1 And !'RO' $ cod_fiscal)) * Facturi de achizitie provenite de la persoane care aplica sistemul TVA la Incasare, pentru sectiunea I5.2 Update crsJTVA Set FACT_TVA_INCASARE = 1 Where tipj = 'JC' And iscif = 1 And 'RO' $ (Upper(cod_fiscal)) And VERIFICA_RTVAI_DATA(crsJTVA.cod_fiscal, crsJTVA.dataact) * AI - achizitii de la persoane impozabile care aplica TVA la incasare Update crsJTVA Set TIP = 'AI' Where TIP = 'A' And FACT_TVA_INCASARE = 1 * Documentele fara tipdoc asociat nu se iau in considerare la generarea D394 Update crsJTVA Set TIP = '' Where Empty(Nvl(tipdoc, '')) Return .T. Endproc && configureaza_date_jtva *=========================================== * Creeaza cursoare pentru sectiunile declaratiei din crsJTVA Procedure pregateste_sectiunea_1_2 Private pnPlaje24 Local lnAn, lnLuna1, lnLuna2, llSucces Local lcSeria, lcSql, lnNr1, lnNr2, loUnitate pnPlaje24 = 0 loUnitate = This.oUnitate lnAn = Int(loUnitate.an) lnLuna1 = Int(loUnitate.luna1) lnLuna2 = Int(loUnitate.luna2) * I. ALTE INFORMATII: * I 1.1 Livrari de bunuri/prestari de servicii pentru care s-au emis facturi simplificate care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.1' As punct, Sum(baza21) As baza, Sum(TVA21) As TVA, 21 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza11) As baza, Sum(TVA11) As TVA, 11 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza20) As baza, Sum(TVA05) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) * I 1.2 Livrari de bunuri/prestari de servicii pentru care s-au emis facturi simplificate fara a avea inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.2' As punct, Sum(baza21) As baza, Sum(TVA21) As TVA, 21 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza11) As baza, Sum(TVA11) As TVA, 11 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) * I 1.3 Achizitii de bunuri si servicii pentru care s-au primit facturi simplificate de la persoane impozabile care aplica sistemul normal de TVA si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.3' As punct, Sum(baza21) As baza, Sum(TVA21) As TVA, 21 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza11) As baza, Sum(TVA11) As TVA, 11 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 * I 1.4 Achizitii de bunuri si servicii pentru care s-au primit facturi simplificate de la persoane impozabile care aplica sistemul de TVA la incasare si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.4' As punct, Sum(baza21) As baza, Sum(TVA21) As TVA, 21 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza11) As baza, Sum(TVA11) As TVA, 11 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 * I 1.5 Achizitii de bunuri si servicii pentru care s-au primit bonuri fiscale care indeplinesc conditiile unei facturi simplificate si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.5' As punct, Sum(baza21) As baza, Sum(TVA21) As TVA, 21 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza11) As baza, Sum(TVA11) As TVA, 11 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' Delete From crsSectiuneaI Where Nvl(baza, 0) = 0 And Nvl(TVA, 0) = 0 * 2.1 Plaja de facturi alocate in perioada de facturare pnPlaje24 = 0 && plaja de facturi special creata pentru declararea in D394. Nu se foloseste la generarea de numere de facturi lnSucces = goExecutor.oSelect2Value("SELECT COUNT(*) as nr FROM plaje_numere WHERE id_tipdoc = 24 and sters = 0", @pnPlaje24) If m.lnSucces = CT_INSUCCES amessagebox(goExecutor.cEroare, 0 + 16, "Eroare") pnPlaje24 = 0 Endif lnIdTipDocFact = Iif(m.pnPlaje24 > 0, 24, 5) Text To lcSql Textmerge Noshow select s.serie as seria, s.prefix || SUBSTR(decode(nvl(s.an, 0), 1, decode(NVL(s.an2caractere,0), 1, '<>', '<>') || decode(s.luna, 1, lpad('<>', 2, '0'), ''), '') || lpad(p.pl_inf, nvl(s.lungime, 14), '0'), 1, 30) as nr1, s.prefix || SUBSTR(decode(nvl(s.an, 0), 1, decode(NVL(s.an2caractere,0), 1, '<>', '<>') || decode(s.luna, 1, lpad('<>', 2, '0'), ''),'') || lpad(p.pl_sup, nvl(s.lungime, 14), '0'), 1, 30) as nr2 from plaje_numere p join serii s on p.id_serie = s.id_serie where p.sters = 0 and p.inactiv = 0 and p.id_tipdoc = <> and ((<> between extract(year from p.datai) * 12 + extract(month from p.datai) and extract(year from p.datas) * 12 + extract(month from p.datas)) or (<> between extract(year from p.datai) * 12 + extract(month from p.datai) and extract(year from p.datas) * 12 + extract(month from p.datas))) Endtext llSucces = goExecutor.oExecuta(m.lcSql, [crsFacturiAlocateTemp]) If m.llSucces Insert Into crsFacturiAlocate (seria, nr1, nr2) ; Select seria, Int(Val(nr1)) As nr1, Int(Val(nr2)) As nr2 ; From crsFacturiAlocateTemp Endif * Nu pot sa configurez plaje de numar fara serie. Conventional seria xxx este NULL Update crsFacturiAlocate Set seria = '' Where seria = 'XXX' * In facturi alocate nu intra seriile de facturi emise de beneficiari/terti IF !EMPTY(NVL(loUnitate.serie_facturi_beneficiari,'')) DELETE FROM crsFacturiAlocate WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ENDIF IF !EMPTY(NVL(loUnitate.serie_facturi_terti,'')) DELETE FROM crsFacturiAlocate WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ENDIF Use In (Select('crsFacturiAlocateTemp')) * 2.2 Numarul total de facturi emise, in perioada de raportare, din plaja de facturi alocate: If m.llSucces * selectez seriile si numerele de facturi (sectiunea 2.1), in afara de facturi emise de beneficiari/terti in numele persoanei impozabile (sectiunile 2.3, 2.4) Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') ; Union ; Select Distinct seria, nr ; From crsFacturiAnulate ; Into Cursor crsNract READWRITE IF !EMPTY(NVL(loUnitate.serie_facturi_beneficiari,'')) DELETE FROM crsNrAct WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ENDIF IF !EMPTY(NVL(loUnitate.serie_facturi_terti,'')) DELETE FROM crsNrAct WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ENDIF CALCULATE CNT() TO loUnitate.nr_facturi_emise IN crsNrAct *!* loUnitate.nr_facturi_emise = _Tally Select Distinct seria From crsNract Into Cursor crsSeriiAct Select crsSeriiAct Scan lcSeria = seria Select Cast(0 As N(20)) As rec, nr From crsNract Where Nvl(seria, 'XXX') = Nvl(m.lcSeria, 'XXX') Order By nr Into Cursor crsSeriaAct1 Readwrite Replace All rec With Recno() In crsSeriaAct1 Select rec, nr From crsSeriaAct1 Into Cursor crsSeriaAct2 Select c1.nr As nr1, c2.nr As nr2, c2.nr - Nvl(c1.nr, c2.nr) As Dif ; From crsSeriaAct1 c1 Left Join crsSeriaAct2 c2 On c1.rec = c2.rec - 1 ; Into Cursor crsSeriaActDif Use In (Select('crsSeriaAct1')) Use In (Select('crsSeriaAct2')) Select crsSeriaActDif Go Top lnNr1 = nr1 lnNr2 = nr1 Scan If Dif = 1 lnNr2 = nr2 Else Insert Into crsFacturiEmise (seria, nr1, nr2) Values (m.lcSeria, m.lnNr1, m.lnNr2) lnNr1 = nr2 lnNr2 = nr2 Endif Endscan If m.lnNr1 <> m.lnNr2 Insert Into crsFacturiEmise (seria, nr1, nr2) Values (m.lcSeria, m.lnNr1, m.lnNr2) Endif Use In (Select('crsSeriaActDif')) Endscan && crsSeriiAct * Verificare facturi emise in plajele de facturi alocate!!! * Asociez facturile emise cu plajele de facturi alocate Select a.seria, a.nr, b.seria As aseria, b.nr1, b.nr2 ; From crsNract a Left Join crsFacturiAlocate b On Padr(Nvl(a.seria, ''), 20, ' ') = Padr(Nvl(b.seria, ''), 20, ' ') And Between(a.nr, b.nr1, b.nr2) ; Into Cursor cFacturiEmiseAlocateTemp * Selectez facturile care nu s-au incadrat in nici o plaja de facturi alocate Select seria, nr ; From cFacturiEmiseAlocateTemp ; Where Isnull(nr1) ; Order By seria, nr ; Into Cursor cFacturiEmiseAlocate Use In (Select('cFacturiEmiseAlocateTemp')) This.oUnitate.cTextFacturiEmiseAlocate = "" If _Tally > 0 This.oUnitate.cTextFacturiEmiseAlocate = 'Facturi emise care nu sunt in plajele de facturi alocate:' + Chr(13) + Chr(10) Select cFacturiEmiseAlocate Scan This.oUnitate.cTextFacturiEmiseAlocate = This.oUnitate.cTextFacturiEmiseAlocate + Transform(seria) + ' ' + Transform(nr) + Chr(13) + Chr(10) Endscan Else This.oUnitate.cTextFacturiEmiseAlocate = 'Toate facturile emise sunt in plajele de facturi alocate.' Endif Use In (Select('cFacturiEmiseAlocate')) Use In (Select('crsSeriiAct')) Use In (Select('crsNrAct')) * 2.2 din care (Tip: stornate/anulate/autofacturare/emisa in numele furnizorilor) * Facturi stornate Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'STORNAT' As TIP, 1 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And baza + TVA < 0 * Facturi anulate Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'ANULAT' As TIP, 2 As ntip, seria, nr ; From crsFacturiAnulate * Autofacturi Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'AUTOFACTURA' As TIP, 3 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_autofacturare) + ',' * Facturi emise in numele furnizorilor Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'FURNIZOR' As TIP, 4 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_furnizori) + ',' * 2.2 Autofacturare Insert Into crsAutoFacturi (seria, nr, baza21, TVA21, baza11, TVA11, baza19, TVA19, baza09, TVA09, baza05, TVA05, baza24, TVA24, baza20, TVA20) ; Select serie_act As seria, nract As nr, ; Sum(baza21) As baza21, Sum(TVA21) As TVA21, ; Sum(baza11) As baza11, Sum(TVA11) As TVA11, ; Sum(baza19) As baza19, Sum(TVA19) As TVA19, ; Sum(baza09) As baza09, Sum(TVA09) As TVA09, ; Sum(baza05) As baza05, Sum(TVA05) As TVA05, ; Sum(baza24) As baza24, Sum(TVA24) As TVA24, ; Sum(baza20) As baza20, Sum(TVA20) As TVA20 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_autofacturare) + ',' ; Group By serie_act, nract * 2.3 Numarul total de facturi emise, in perioada de raportare, de beneficiari in numele persoanei impozabile: Insert Into crsFacturiTerti (punct, denumire, cod_fiscal, seria, nr1, nr2) ; Select '2.3' As punct, denumire, cod_fiscal, serie_act As seria, Min(nract) As nr1, Max(nract) As nr2 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ; Group By denumire, cod_fiscal, serie_act ; Union ; Select '2.4' As punct, denumire, cod_fiscal, serie_act As seria, Min(nract) As nr1, Max(nract) As nr2 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ; Group By denumire, cod_fiscal, serie_act ; Order By punct, denumire, cod_fiscal, serie_act Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ; Into Cursor crsNract loUnitate.nr_facturi_beneficiari = _Tally USE IN (SELECT('crsNract')) Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ; Into Cursor crsNract loUnitate.nr_facturi_terti = _Tally USE IN (SELECT('crsNract')) Endif && m.llSucces Return m.llSucces Endproc && pregateste_sectiunea_1_2 * TVA Exigibil Procedure pregateste_sectiunea_4_5 If This.oUnitate.tva_incasare = 0 * 4. Date aferente operatiunilor desfasurate de catre persoana impozabila care aplica sistemul normal de TVA * 4.1 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA21, TVA11, TVA19, TVA09, TVA05, TVA24, TVA20) ; Select '4.1' As punct, Sum(ro21t) As TVA21, Sum(ro11t) As TVA11, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05, Sum(RO24T) As TVA24, Sum(ro20t) As TVA20 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And tva_incasare = 1 And Inlist(tipdoc, 'F', 'M') Else * 5. Date aferente operatiunilor desfasurate de catre persoana impozabila care aplica sistemul de TVA la incasare * 5.1 TVA colectata aferenta facturilor incasate in perioada de raportare indiferent de data in care acestea au fost emise de catre * persoana impozabila care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA21, TVA11, TVA19, TVA09, TVA05, TVA24, TVA20) ; Select '5.1' As punct, Sum(ro21t) As TVA21, Sum(ro11t) As TVA11, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20 ; From crsJTVA Where tipj = 'JV' And tva_incasare = 1 And Inlist(tipdoc, 'F', 'M') * 5.2 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul normal de TVA, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA21, TVA11, TVA19, TVA09, TVA05, TVA24, TVA20) ; Select '5.2' As punct, Sum(ro21t) As TVA21, Sum(ro11t) As TVA11, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 And Inlist(tipdoc, 'F', 'M') * 5.3 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA21, TVA11, TVA19, TVA09, TVA05, TVA24, TVA20) ; Select '5.3' As punct, Sum(ro21t) As TVA21, Sum(ro11t) As TVA11, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 And Inlist(tipdoc, 'F', 'M') Endif Endproc && pregateste_sectiunea_4_5 * 6. TVA colectata aferenta marjei de profit din perioada de raportare indiferent de data la care au fost efectuate operatiunile de catre * persoanele impozabile care aplica regimul special pt agentiile de turism, pt bunurile second-hand, opere de arta, obiecte de colectie si antichitati Procedure pregateste_sectiunea_6 Return .T. Endproc && pregateste_sectiunea_6 * 7. In situatia in care ati desfasurat, in perioada de raportare, activitati dintre cele inscrise in lista veti selecta activitatea corespunzatoare * si veti inscrie valoarea livrarilor/prestarilor, precum si TVA aferenta Procedure pregateste_sectiunea_7 Local lcCodCaen, lcCodCaen1, lcCodCaen2, lcCodCaenTemp, lcListaCAEN, llSucces lcCodCaen1 = Alltrim(Nvl(gofirma.caen, '')) lcCodCaen2 = Alltrim(Nvl(gofirma.caen394, '')) lcCodCaen = Iif(!Empty(m.lcCodCaen2), m.lcCodCaen2, m.lcCodCaen1) lcCodCaenTemp = ',' + m.lcCodCaen + ',' lcListaCAEN = ',1071,4520,4730,47761,47762,4932,55101,55102,56103,5630,812,9313,9602,9603,' llSucces = .T. If !m.lcCodCaenTemp $ m.lcListaCAEN Return m.llSucces Endif ccsectii() && vnom_sectii Select id_sectie, sectie, caen From vnom_sectii Where ',' + Alltrim(Nvl(caen, '')) + ',' $ m.lcListaCAEN Into Cursor cSectii394 Readwrite If _Tally = 0 Select cSectii394 Append Blank Replace caen With m.lcCodCaen Endif Use In (Select('vnom_sectii')) * Insert Into crsSectiuneaI7 (caen, TIP) Values (m.lcCodCaen, 'LIVRARI') * Insert Into crsSectiuneaI7 (caen, TIP) Values (m.lcCodCaen, 'PRESTARI') Use In (Select('cSectii394')) Return .T. Endproc && pregateste_sectiunea_7 Procedure pregateste_sectiunea_amef Insert Into crsAMEF (TIP, luna, nramef, nrbonuri, incasari, baza05, TVA05, baza09, TVA09, baza19, TVA19, baza11, TVA11, baza21, TVA21, baza20, TVA20) ; Select 1 As TIP, Month(dataact) As luna, Cast(pounitate.nramef As N(10)) As nramef, Cast(Nvl(b.nr, 0) As N(10)) As nrbonuri, ; Round(Sum(baza + TVA), 0) As incasari, Round(Sum(baza05), 0) As baza05, Round(Sum(TVA05), 0) As TVA05, Round(Sum(baza09), 0) As baza09, Round(Sum(TVA09), 0) As TVA09, ; Round(Sum(baza19), 0) As baza19, Round(Sum(TVA19), 0) As TVA19, Round(Sum(baza11), 0) As baza11, Round(Sum(TVA11), 0) As TVA11, Round(Sum(baza21), 0) As baza21, Round(Sum(TVA21), 0) As TVA21, ; Round(Sum(baza20), 0) As baza20, Round(Sum(TVA20), 0) As TVA20 ; From crsJTVA j Left Join crsBonuriAMEF b On Month(j.dataact) = b.luna ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(Alltrim(tipdoc), 'B', 'C') ; Group By 1, 2, 3, 4 ; Union ; Select 2 As TIP, Month(dataact) As luna, Cast(0 As N(10)) As nramef, Cast(Nvl(b.nr, 0) As N(10)) As nrbonuri, ; Round(Sum(baza + TVA), 0) As incasari, Round(Sum(baza05), 0) As baza05, Round(Sum(TVA05), 0) As TVA05, Round(Sum(baza09), 0) As baza09, Round(Sum(TVA09), 0) As TVA09, ; Round(Sum(baza19), 0) As baza19, Round(Sum(TVA19), 0) As TVA19, Round(Sum(baza11), 0) As baza11, Round(Sum(TVA11), 0) As TVA11, Round(Sum(baza21), 0) As baza21, Round(Sum(TVA21), 0) As TVA21, ; Round(Sum(baza20), 0) As baza20, Round(Sum(TVA20), 0) As TVA20 ; From crsJTVA j Left Join crsBonuriEAMEF b On Month(j.dataact) = b.luna ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'E' ; Group By 1, 2, 3, 4 ; Order By 1, 2 Return .T. Endproc && pregateste_sectiunea_amef *!* Procedure pregateste_sectiunea_facturi_pers_fizice_10000 *!* Local llPerioada122016 *!* llPerioada122016 = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 12) && intre 07/2016 si 12/2016 nu se declara individual facturile < 10.000 lei catre persoanele fizice *!* Insert Into crsPersFizice (TIP, NRFACT, baza, baza05, TVA05, baza09, TVA09, baza19, TVA19, baza11, TVA11, baza21, TVA21) ; *!* Select TIP, Sum(NRFACT) As NRFACT, ; *!* Sum(baza) As baza, Sum(baza05) As baza05, Sum(TVA05) As TVA05, Sum(baza09) As baza09, Sum(TVA09) As TVA09, ; *!* Sum(baza19) As baza19, Sum(TVA19) As TVA19, Sum(baza11) As baza11, Sum(TVA11) As TVA11, Sum(baza21) As baza21, Sum(TVA21) As TVA21 ; *!* From crsJTVA j ; *!* Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(Alltrim(TIP), 'L', 'LS') And Inlist(tipdoc, 'F', 'M', 'U', 'H') And tippart = 2 And Nvl(TIP_PERSOANA, 0) = 2 And (Abs(baza + TVA) <= 10000) And m.llPerioada122016; *!* Group By 1 ; *!* Order By 1 *!* Return .T. *!* Endproc && pregateste_sectiunea_facturi_pers_fizice_10000 *=========================================== Procedure do_genereaza_xdp Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcAdresa, lcAn, lcCodFiscalF, lcDen, lcLuna, lcSelect, lcTag, lcXDP, llPerioadaDoarRO, lnSeq, llExportSectiuneaI, lnCotaTVAStandard Local lnTipPart, llTvaNedeductibil lcSelect = Select() lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lnCotaTVAStandard = Iif(m.gnAn*12+m.gnLuna <= 2025*12+7, 19, 21) llTvaNedeductibil = (This.oUnitate.tvanedeductibil = 1) llPerioadaDoarRO = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9) && intre 07/2016 si 09/2016 se iau doar partenerii cu RO lcDen = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.antet), .T.)) lcAdresa = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.adresa), .T.)) This.TIP = Left(This.oUnitate.TIP, 1) llExportSectiuneaI = (This.oUnitate.ExportSectiuneaI = 1) lcXDP = "" Create Cursor cCote (cota N(3)) Insert Into cCote (cota) Values (21) Insert Into cCote (cota) Values (11) Insert Into cCote (cota) Values (19) Insert Into cCote (cota) Values (9) Insert Into cCote (cota) Values (5) Insert Into cCote (cota) Values (24) Insert Into cCote (cota) Values (20) Insert Into cCote (cota) Values (0) *) Tip Cod de inregistrare fiscala *L/A/V/C/AI/N/LS/AS * Centralizator achizitii/livrari defalcat pe tip parteneri 1/2/3/4, parteneri, cote, tip livrare/achizitie, tip document * Ordonez facturile dupa cota de TVA, sa las nrfact = 1 pe linia cu cota cea mai mare * In perioada 07/2016-09/2016 se raporteaza doar facturile cu RO If m.llPerioadaDoarRO lcWhere = [j.atribut_fiscal = 'RO'] Else lcWhere = [.T.] Endif Select Cast(0 As N(20)) As rn, j.seq As id_fact, j.tippart, c.cota, j.denumire As denp, j.cod_fiscalfro As cuip, j.TIP, j.TIP_PERSOANA, ; j.TARA, j.COD_TARA, j.JUDET, j.COD_JUDET, j.LOCALITATE, j.STRADA, j.Bloc, j.SCARA, j.NUMAR, j.APART, ; Iif(j.tipdoc = 'F', 1, Iif(j.tipdoc = 'O', 2, Iif(j.tipdoc = 'Z', 3, Iif(j.tipdoc = 'R', 4, 5)))) As tip_document, ; NRFACT, ; Iif(c.cota = 21, baza21, Iif(c.cota = 11, baza11, Iif(c.cota = 19, baza19, Iif(c.cota = 9, baza09, Iif(c.cota = 5, baza05, Iif(c.cota = 24, baza24, Iif(c.cota = 20, baza20, ; Iif(c.cota = 0, Iif(m.llTvaNedeductibil Or Inlist(j.tipdoc, 'U', 'H') Or Inlist(j.TIP, 'V', 'C') Or tippart = 2, baza00, 0.00), baza11)))))))) As baza, ; Iif(c.cota = 21, TVA21, Iif(c.cota = 11, TVA11, Iif(c.cota = 19, TVA19, Iif(c.cota = 9, TVA09, Iif(c.cota = 5, TVA05, Iif(c.cota = 24, TVA24, Iif(c.cota = 20, TVA20, Iif(c.cota = 0, 0, TVA11)))))))) As TVA ; From crsJTVA j, cCote c ; Where j.EMISA_PERIOADA = 1 And Alltrim(j.TIP) In ('L', 'A', 'V', 'C', 'AI', 'N', 'LS', 'AS') And Inlist(tipdoc, 'F', 'U', 'H', 'O', 'Z', 'R') And &lcWhere ; Order By 1, 10 Desc ; Into Cursor cFacturiTemp Readwrite Select cFacturiTemp Replace All rn With Recno() * Sterg toate liniile cu baza = 0 si tva = 0 in afara de prima linie pentru facturile cu valoare totala = 0 * Facturile care au valoare 0 Select id_fact, Min(rn) As rn, Sum(baza) As baza, Sum(TVA) As TVA ; From cFacturiTemp ; Group By id_fact ; Having Sum(baza) = 0 And Sum(TVA) = 0 ; Into Cursor cFacturi0 Select F.*, f0.rn As rn0 ; From cFacturiTemp F Left Join cFacturi0 f0 On F.id_fact = f0.id_fact ; Into Cursor cFacturitemp2 Readwrite Use In (Select('cFacturiTemp')) Use In (Select('cFacturi0')) Delete From cFacturitemp2 Where baza = 0 And TVA = 0 And (rn <> rn0 Or Isnull(rn0)) * Pun cota 11 pe facturile cu valoare 0, altfel apar cu 21% sau alta cota Update cFacturitemp2 Set cota = m.lnCotaTVAStandard Where baza = 0 And TVA = 0 Update cFacturitemp2 Set cota = 0 Where Inlist(TIP, 'LS', 'AS', 'ASI', 'N', 'V') * DELETE FROM cFacturiTemp WHERE baza = 0 AND tva = 0 AND RECNO() NOT in (Select rn FROM cFacturi0) && EROARE * Actualizez nrfact cu 0 in afara de prima aparitie a fiecarei facturi. S-au multiplicat din cauza join-ului cu cotele de TVA Select id_fact, Min(rn) As rn ; From cFacturitemp2 ; Group By id_fact ; Into Cursor cFacturi2 Update cFacturitemp2 Set NRFACT = 0 Where rn Not In (Select rn From cFacturi2) Use In (Select('cFacturi2')) Update cFacturitemp2 Set LOCALITATE = '' Where LOCALITATE = '' Select tippart, Cast(0 As i) As seq, cota, denp, cuip, TIP, tip_document, TIP_PERSOANA, ; TARA, COD_TARA, JUDET, COD_JUDET, LOCALITATE, STRADA, Bloc, SCARA, NUMAR, APART, ; Sum(NRFACT) As NRFACT, ; Round(Sum(baza), 0) As baza, ; Round(Sum(TVA), 0) As TVA ; From cFacturitemp2 ; Group By 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ; Order By tippart, denp, cota, TIP ; Into Cursor cFacturi Readwrite Use In (Select('cFacturiTemp2')) *!* Select j.tippart, Cast(0 As i) As seq, c.cota, j.denumire As denp, j.cod_fiscalfro As cuip, j.TIP, ; *!* IIF(j.tipdoc = 'F', 1, Iif(j.tipdoc = 'O', 2, Iif(j.tipdoc = 'Z', 3, 1))) As tip_document, ; *!* SUM(NRFACT) As NRFACT, ; *!* SUM(Iif(c.cota = 21, baza21, Iif(c.cota = 20, baza20, Iif(c.cota = 19, baza19, Iif(c.cota = 9, baza09, Iif(c.cota = 5, baza05, Iif(c.cota = 0, baza00, baza20))))))) As baza, ; *!* SUM(Iif(c.cota = 21, TVA21, Iif(c.cota = 20, TVA20, Iif(c.cota = 19, TVA19, Iif(c.cota = 9, TVA09, Iif(c.cota = 5, TVA05, Iif(c.cota = 0, 0, TVA20))))))) As TVA ; *!* FROM crsJTVA j, cCote c ; *!* WHERE Alltrim(j.TIP) In ('L','A','V','C','AI','N','LS','AS') ; *!* GROUP By 1,2,3,4,5,6,7 ; *!* ORDER By j.tippart, j.denumire, c.cota, j.TIP ; *!* INTO Cursor cFacturi Readwrite lnSeq = 1 lnTipPart = 0 Select cFacturi Scan If lnTipPart <> tippart lnSeq = 1 Else lnSeq = lnSeq + 1 Endif lnTipPart = cFacturi.tippart Replace seq With m.lnSeq In cFacturi Endscan lcCaenRevizie = NVL(goFirma.caen_revizie, '2') lnCaenRevizie = INT(VAL(m.lcCaenRevizie)) lcCaenRev2 = IIF(m.lnCaenRevizie = 2, ALLTRIM(LOWER(goFirma.caen)), '') lcCaenRev3 = IIF(m.lnCaenRevizie > 2, ALLTRIM(LOWER(goFirma.caen)), '') Text To lcXDP Additive Textmerge Noshow Pretext 1
<><><><><> <> <><><><><> <>0<><> Endtext * Sectiunea Facturi Set Textmerge On To Memvar lcXDP Additive Noshow \ lnTipPart = 0 lnNrFacturi = 0 Select cFacturi Scan * Exceptie : Pentru perioada 01.07.2016 - 31.12.2016 in cazul selectarii tip L pentru facturi emise catre persoane fizice, * cu valoare individuala/persoana mai mica sau egala cu 10.000 lei * Le-am sters la inceput *!* If cFacturi.tippart = 2 AND cFacturi.tip_persoana = 2 and cFacturi.TIP = 'L' And ABS(cFacturi.baza + cFacturi.TVA) <= 10000 AND m.llPerioada122016 && persoane fizice *!* Loop *!* Endif lnNrFacturi = lnNrFacturi + 1 If m.lnTipPart <> cFacturi.tippart If m.lnTipPart <> 0 \ Endif Do Case Case tippart = 1 \ Case tippart = 2 \ Case tippart = 3 \ Case tippart = 4 \ Endcase \ \<> Endif \ \ \ <> \ <> \ <> \ <> \ <> \ <> \ <> \ <> If cFacturi.tippart = 2 && persoane neinregistrate in scopuri TVA If ALLTRIM(cFacturi.TIP) = 'N' && persoane neinregistrate in scopuri TVA \ <> ENDIF \ \ <> \ <> \ <> \ <> \ <> \ <> \ <> \ Endif \ If cFacturi.tippart = 2 OR INLIST(ALLTRIM(cFacturi.tip), 'V', 'C') && persoane neinregistrate in scopuri TVA sau taxare inversa, completez produsele - nu am produse :(, doar nrfacturi, baza si tva \ \ \ 1 \ \ <> \ <> \ <> \ ENDIF && tippart = 2 OR INLIST(ALLTRIM(tip), 'V', 'C') \ lnTipPart = cFacturi.tippart ENDSCAN && cFacturi IF m.lnNrFacturi > 0 \ ENDIF * Sectiunea AMEF \ \ Select crsAMEF Scan \ \ <> \ <> IF tip <> 2 \ <> \ <> ENDIF \ <> \ 5<><> \ 9<><> \ 11<><> \ 19<><> \ 20<><> \ 21<><> \ Endscan && crsAMEF \ IF m.llExportSectiuneaI * Sectiunea I1 facturi simplificate si bonuri fiscale cu CUI \ \ \ Select crsSectiuneaI Scan lcTag = Iif(punct = '1.1', 'L', Iif(punct = '1.2', 'LI', Iif(punct = '1.3', 'A', Iif(punct = '1.4', 'AI', Iif(punct = '1.5', 'AB', 'L'))))) + Alltrim(Str(proctva)) && L21 \<<'<' + m.lcTag + '>'>><><>'>> Endscan \ \ * Sectiunea I2 Alte informatii \ \ Select crsFacturiAlocate Scan \ <><><><> Endscan \ \ \ <> Select crsFacturiEmise Scan \ <><><><> Endscan \ \ \ \ Sele crsFacturiEmiseTip Scan \ \ <> \ <> \ <> If ntip = 3 && autofacturare Select crsAutoFacturi Locate For Alltrim(crsAutoFacturi.seria) = Alltrim(crsFacturiEmiseTip.seria) And crsAutoFacturi.nr = crsFacturiEmiseTip.nr If Found() \ \ <><> \ <><> \ <><> \ <><> \ <><> \ <><> \ <><> \ Endif && FOUND Endif \ Endscan && crsFacturiEmiseTip \ \ \ \ <> Select crsFacturiTerti SCAN FOR punct = '2.3' \ <><><><><><> ENDSCAN \ \ \ \ <> Select crsFacturiTerti SCAN FOR punct = '2.4' \ <><><><><><> ENDSCAN \ \ * Sectiunea 4 Select crsSectiuneaI4 Locate For punct = '4.1' If Found() \ <><><><><><><> Endif && FOUND * Sectiunea 5 \ Select crsSectiuneaI4 Locate For punct = '5.1' If Found() \ <><><><><><><> Endif Locate For punct = '5.2' If Found() \ <><><><><><><> Endif Locate For punct = '5.3' If Found() \ <><><><><><><> Endif * Nu am adunat date despre sectiunea 6 si 7 If .F. \ \ \ \ \ 1 \ 4520 \ 1001 \ \ \ 201 \ \ \ \ 2 \ 4520 \ 1000 \ \ 90 \ \ \ \ Endif && .F. \ ENDIF && llExportSectiuneaI * Reprezentant fiscal \ \ \ <> \ <> \ <> \ <> \ <> \ <> \ \ \ \<> \<> \<> \<> \<> \<> \<> \<> \0 \<> \ \ \ \ \ \ \ Set Textmerge To Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/394.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D394 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp *========================================== Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d390.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Procedure do_executa *** EXPORT D394 Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcComunPath, lcFileName, lcFileNamePDF Local lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT, lcFisierXDP, lcFisierXLS, lcMesaj Local lcNumeFisier, lcRun, lcTempPath, llSucces, lnPos, loEx, lcCaenRevizie, lnCaenRevizie lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D394\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = m.gcBasePath lcCaleFisier = m.lcTempPath + "D394\" && c:\temp\D394\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& c:\temp\D394\2011_01\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Strtran(gcFirma, [ ], [_]) + "\" && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D394\2011_01\firma\ If !Directory(m.lcCaleFisierPDF) Md (m.lcCaleFisierPDF) Endif This.CaleFisierPDF = m.lcCaleFisierPDF llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !m.llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(Nvl(gofirma.cod_fiscal, '')), 'RO', '')) Endif lcCaenRevizie = NVL(goFirma.caen_revizie, '2') lnCaenRevizie = INT(VAL(m.lcCaenRevizie)) lcNumeFisier = "d394_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) + "_" + Padl(gnLuna, 2, "0") Do Case Case m.gnAn * 12 + m.gnLuna >= 2025 * 12 + 8 lcFisierPDFOriginal = lcComunPath + "d394_202508.pdf" Otherwise lcFisierPDFOriginal = lcComunPath + "d394_202508.pdf" Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcFileName + [.txt] lcFisierXLS = m.lcFileName + [.xls] If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif This.do_genereaza_xdp(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) This.cFisierPDF = '' If File(lcFisierXDP) And File(m.lcFisierPDFNou) This.cFisierPDF = m.lcFisierPDFNou open_default_app(lcFisierXDP) Endif *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endproc && do_executa Procedure do_verifica_pdf Local loProcess As "api_apprun" Of "process.vcx" Local lcAppPath, lcValidatorFile, lcComunPath, lcFisierPDF, lnPos lcAppPath = Addbs(gcAppPath) lcComunPath = m.lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If m.lnPos > 0 lcComunPath = Left(m.lcAppPath, m.lnPos) Endif lcComunPath = m.lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ lcValidatorFile = m.lcComunPath + [dist\DUKIntegrator.jar] amessagebox('Validati PDF si salvati-l. Apoi inchideti acest mesaj. Dupa ce porneste DukIntegrator, apasati validare in validator pentru a verifica fisierul PDF', 0 + 48, _Screen.Caption) lcFisierPDF = This.cFisierPDF If !File(m.lcFisierPDF) amessagebox('Nu exista fisierul ' + m.lcFisierPDF , 0 + 48, _Screen.Caption) Endif loProcess = Newobject("api_apprun", "process.vcx") loProcess.icLaunchDir = Justpath(m.lcValidatorFile) loProcess.iccommandline = [java -jar "DUKIntegrator.jar" "] + m.lcFisierPDF + ["] *!* loProcess.launchappandwait() m.loProcess.launchapp() Endproc && do_verifica_pdf Enddefine && D394_2025 ************************************************************************* Define Class D394_2016 As Custom Total = 0 rectificativa = 0 TIP = 'L' Perioada = 1 NumarCoduriFiscale = 0 oForm = Null && formular D384 oUnitate = Null CaleFisierPDF = '' && director fisier pdf * Afiseaza formularul 394 fara facturi, pentru alegerea tipurilor de documente, optiuni etc. * Din formular se vor selecta facturile in functie de optiuni Procedure List Local loDecl As "frm_decl394_2016" Local lcSelect, lcTip, llSilent, llSucces, lnNumarLuni, lcValoare llSilent = .F. && m.tlSilent lcTip = Upper(Nvl(citeste_optiune('D394_TIP'), 'LUNAR')) lcTip = Iif(!Inlist(m.lcTip, 'LUNAR', 'TRIMESTRIAL', 'SEMESTRIAL', 'ANUAL'), 'LUNAR', m.lcTip) lcSelect = Select() If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif Private pounitate pounitate = Createobject("empty") AddProperty(pounitate, "tva_incasare", goCalendar.tva_incasare) AddProperty(pounitate, "an", m.gnAn) AddProperty(pounitate, "luna1", m.gnLuna) AddProperty(pounitate, "luna2", m.gnLuna) AddProperty(pounitate, "tip", m.lcTip) AddProperty(pounitate, "luniextra", 0) AddProperty(pounitate, "tvanedeductibil", 0) AddProperty(pounitate, "codi", Strtran(Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', ''), 'R', '')) AddProperty(pounitate, "deni", Nvl(Alltrim(gofirma.firma), '')) AddProperty(pounitate, "adr", Nvl(Alltrim(gofirma.adresa), '')) poUnitate.adr = PADR(poUnitate.adr, 150, ' ') AddProperty(pounitate, "tel", Nvl(Alltrim(gofirma.telefon), '')) AddProperty(pounitate, "fax", Nvl(Alltrim(gofirma.fax), '')) AddProperty(pounitate, "email", Nvl(Alltrim(gofirma.email), '')) AddProperty(pounitate, "taraR", "") AddProperty(pounitate, "codiR", "") AddProperty(pounitate, "deniR", "") AddProperty(pounitate, "adrR", "") AddProperty(pounitate, "telR", "") AddProperty(pounitate, "faxR", "") AddProperty(pounitate, "emailR", "") AddProperty(pounitate, "numeD", "") AddProperty(pounitate, "functieD", "") AddProperty(pounitate, "operatiuni", 1) AddProperty(pounitate, "tvaincasare", goCalendar.tva_incasare) AddProperty(pounitate, "nr_facturi_emise", 0) AddProperty(pounitate, "nr_facturi_beneficiari", 0) AddProperty(pounitate, "nr_facturi_terti", 0) AddProperty(pounitate, "lPerioadaDoarRO", Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9)) && intre 07/2016 si 09/2016 se declara doar partenerii cu RO AddProperty(pounitate, "ExportSectiuneaI", 1) && intre 07/2016 si 09/2016 nu se completeaza sectiunea I AddProperty(pounitate, "PersoaneAfiliate", 0) && 0 = fara persoane afiliate, 1 = cu persoane afiliate AddProperty(pounitate, "DenRepr", Alltrim(citeste_optiune('D394_DEN_REPREZ'))) AddProperty(pounitate, "AdrRepr", Alltrim(citeste_optiune('D394_ADR_REPREZ'))) poUnitate.AdrRepr = PADR(poUnitate.AdrRepr, 150, ' ') AddProperty(pounitate, "CuiRepr", Alltrim(citeste_optiune('D394_CUI_REPREZ'))) AddProperty(pounitate, "TipRepr", Alltrim(citeste_optiune('D394_TIP_REPREZ'))) AddProperty(pounitate, "TelRepr", Alltrim(citeste_optiune('D394_TEL_REPREZ'))) AddProperty(pounitate, "FaxRepr", Alltrim(citeste_optiune('D394_FAX_REPREZ'))) AddProperty(pounitate, "EmailRepr", Alltrim(citeste_optiune('D394_EMAIL_REPREZ'))) AddProperty(pounitate, "DenIntocmit", Alltrim(citeste_optiune('D394_DEN_INTOCMIT'))) AddProperty(pounitate, "CuiIntocmit", Alltrim(citeste_optiune('D394_CUI_INTOCMIT'))) AddProperty(pounitate, "PJIntocmit", Int(Val(Nvl(citeste_optiune('D394_PJ_INTOCMIT'), '1'))) ) AddProperty(pounitate, "CalitateIntocmit", Alltrim(citeste_optiune('D394_CALITATE_INTOCMIT'))) poUnitate.CalitateIntocmit = PADR(poUnitate.CalitateIntocmit, 100, ' ') AddProperty(pounitate, "Calitate2Intocmit", Alltrim(citeste_optiune('D394_CALITATE2_INTOCMIT'))) poUnitate.Calitate2Intocmit = PADR(poUnitate.Calitate2Intocmit, 100, ' ') AddProperty(pounitate, "FunctieIntocmit", Alltrim(citeste_optiune('D394_FUNCTIE_INTOCMIT'))) poUnitate.FunctieIntocmit= PADR(poUnitate.FunctieIntocmit, 100, ' ') AddProperty(pounitate, "NrAMEF", Int(Val(Nvl(citeste_optiune('D394_NR_AMEF'), '1')))) AddProperty(pounitate, "OptiuneANAF", Int(Val(Nvl(citeste_optiune('D394_OPTIUNE_ANAF'), '0')))) && 1 = Se da acordul pentru consultarea D394 de catre furnizori/clienti AddProperty(pounitate, "cTextFacturiEmiseAlocate", "") && facturi emise care nu sunt in plaja de facturi alocate This.oUnitate = pounitate Create Cursor crsFdocTip (id_fdoc N(10) null, fel_document c(100) null, tip_doc c(10) Null, bifa N(1)) *!* llSucces = update_fdoc([NVL(tip_doc,'!') <> '!'], 'crsFdocTipTemp') && doar fel document cu tip *!* AddProperty(pounitate, "tipdoc_factura", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'F'])) && lista tip documente = factura *!* AddProperty(pounitate, "tipdoc_bonfiscal_cu_cui", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'C'])) && lista tip documente = bon fiscal cu factura *!* AddProperty(pounitate, "tipdoc_bonfiscal_fara_cui", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'B'])) && lista tip documente = bon fiscal fara factura *!* AddProperty(pounitate, "tipdoc_factura_simplificata", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'M'])) && lista tip documente = factura simplificata *!* AddProperty(pounitate, "tipdoc_exceptate_amef", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'E'])) && lista tip documente = exceptate de la AMEF (bilete) *!* AddProperty(pounitate, "tipdoc_borderou_achizitii", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'O'])) && lista tip documente = borderou achizitii *!* AddProperty(pounitate, "tipdoc_carnet_comercializare", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'Z'])) && lista tip documente = carnet comercialziare *!* AddProperty(pounitate, "tipdoc_achizitii_second_hand", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'H'])) && lista tip documente = achizitii second hand *!* AddProperty(pounitate, "tipdoc_servicii_turism", cursor2lista("crsFDocTipTemp", "id_fdoc", ",", [tip_doc = 'U'])) && lista tip documente = servicii turism llSucces = update_serii(.F., [isautofactura = 1 or isbeneficiari = 1 or isterti = 1 or isfurnizori = 1]) && crsSerii - seriile marcate autofactura/emise de beneficiari/emise de terti/emise in numele furnizorilor! If !m.llSucces Create Cursor crsSerii (seria c(20), isautofactura N(1), isbeneficiari N(1), isterti N(1), isfurnizori N(1)) Endif Create Cursor crsSectiuneaI (punct c(4) Null, baza N(20) Null, TVA N(20) Null, proctva N(2) Null) Create Cursor crsSectiuneaI4 (punct c(4) Null, TVA24 N(20) Null, TVA20 N(20) Null, TVA19 N(20) Null, TVA09 N(20) Null, TVA05 N(20) Null) Create Cursor crsSectiuneaI6 (punct c(4) Null, incasari N(20) Null, costuri N(20) Null, marja N(20) Null, TVA N(20) Null) && agentii turism si second hand Create Cursor crsSectiuneaI7 (caen c(4) Null, TIP c(10), baza N(20), TVA24 N(20) Null, TVA20 N(20) Null, TVA19 N(20) Null, TVA09 N(20) Null, TVA05 N(20) Null) Create Cursor crsFacturiAlocate (seria c(20) Null, nr1 N(20), nr2 N(20)) Create Cursor crsFacturiEmise (seria c(20) Null, nr1 N(20), nr2 N(20)) Create Cursor crsFacturiEmiseTip (TIP c(20), ntip N(1), seria c(20) Null, nr N(20)) Create Cursor crsAutoFacturi (seria c(20) Null, nr N(20), baza24 N(16, 4) Null, baza20 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, ; TVA24 N(16, 4) Null, TVA20 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null) Create Cursor crsFacturiTerti (punct c(4) Null, seria c(20) Null, nr1 N(20), nr2 N(20), denumire c(100) Null, cod_fiscal c(20) Null) Create Cursor crsSeriiFacturi (TIP c(20), seria c(20), descriere c(100)) Insert Into crsSeriiFacturi (TIP, seria, descriere) ; Select 'AUTOFACTURA' As TIP, serie As seria, 'serie autofacturi' As descriere ; From crsSerii Where isautofactura = 1 ; Union ; Select 'BENEFICIARI' As TIP, serie As seria, 'serie facturi emise de beneficiari in numele persoanei impozabile' As descriere ; From crsSerii Where isbeneficiari = 1 ; Union ; Select 'TERTI' As TIP, serie As seria, 'serie facturi emise de terti in numele persoanei impozabile' As descriere ; From crsSerii Where isterti = 1 ; Union ; Select 'FURNIZORI' As TIP, serie As seria, 'serie facturi emise de pers impozabila in calitate de beneficiar, in numele furnizorilor' As descriere ; From crsSerii Where isfurnizori = 1 Go Top In crsSeriiFacturi AddProperty(pounitate, "serie_autofacturare", cursor2lista("crsSerii", "serie", ",", [isautofactura=1])) AddProperty(pounitate, "serie_facturi_beneficiari", cursor2lista("crsSerii", "serie", ",", [isbeneficiari=1])) AddProperty(pounitate, "serie_facturi_terti", cursor2lista("crsSerii", "serie", ",", [isterti=1])) AddProperty(pounitate, "serie_facturi_furnizori", cursor2lista("crsSerii", "serie", ",", [isfurnizori=1])) close_serii() Create Cursor crsAMEF (TIP N(1), luna N(2), nramef N(10), nrbonuri N(10), incasari N(16, 4), ; baza24 N(16, 4) Null, baza20 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, ; TVA24 N(16, 4) Null, TVA20 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null) Create Cursor crsPersFizice (TIP c(2), NRFACT N(10), baza N(16, 4) Null, ; baza24 N(16, 4) Null, baza20 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, ; TVA24 N(16, 4) Null, TVA20 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null) Create Cursor crsJTVA(seq N(20), tipj c(2), tippart N(1), tipdoc c(2) Null, TIP c(2), dataact D Null, dataireg D Null, serie_act c(10) Null, nract N(20) Null, id_fdoc N(12) Null, fel_document c(30) Null, id_sucursala N(7) Null, sucursala c(100) Null, ; iscif N(1) Null, cifvalid N(1) Null, id_part N(20) Null, cod_fiscal c(30) Null, cod_fiscalfro c(30) Null, atribut_fiscal c(2) Null, denumire c(100) Null, TIP_PERSOANA N(1) Null, AFILIAT N(5) Null, CODTARA V(5) NULL, ; TARA c(100) Null, COD_TARA c(10) Null, JUDET c(100) Null, COD_JUDET c(10) Null, LOCALITATE c(100) Null, STRADA c(100) Null, NUMAR c(20) Null, Bloc c(20) Null, SCARA c(50) Null, APART c(100) Null, ; baza N(16, 4) Null, TVA N(16, 4) Null, tibaza N(16, 4) Null, titva N(16, 4) Null, ; baza24 N(16, 4) Null, baza20 N(16, 4) Null, baza19 N(16, 4) Null, baza09 N(16, 4) Null, baza05 N(16, 4) Null, baza00 N(16, 4) Null, ; TVA24 N(16, 4) Null, TVA20 N(16, 4) Null, TVA19 N(16, 4) Null, TVA09 N(16, 4) Null, TVA05 N(16, 4) Null, ; tibaza24 N(16, 4) Null, tibaza20 N(16, 4) Null, tibaza19 N(16, 4) Null, tibaza09 N(16, 4) Null, tibaza05 N(16, 4) Null, ; titva24 N(16, 4) Null, titva20 N(16, 4) Null, titva19 N(16, 4) Null, titva09 N(16, 4) Null, titva05 N(16, 4) Null, ; tva_incasare N(1), FACT_TVA_INCASARE N(1), NRFACT N(1), EMISA_PERIOADA N(1), ; ro24t N(16, 4) Null, ro20t N(16, 4) Null, ro19t N(16, 4) Null, RO09T N(16, 4) Null, ro05t N(16, 4) Null) loDecl = Createobject("frm_decl394_2016") *DO FORM frm_decl394_2016 NAME loDecl NOSHOW loDecl.oParent = This This.oForm = loDecl loDecl.Show(1) scrie_optiune('D394_DEN_REPREZ', pounitate.DenRepr, 'D394 denumire reprezentant') scrie_optiune('D394_ADR_REPREZ', pounitate.AdrRepr, 'D394 adresa reprezentant') scrie_optiune('D394_CUI_REPREZ', pounitate.CUIRepr, 'D394 CUI reprezentant') scrie_optiune('D394_TIP_REPREZ', pounitate.TipRepr, 'D394 tip reprezentant') scrie_optiune('D394_TEL_REPREZ', pounitate.TelRepr, 'D394 telefon reprezentant') scrie_optiune('D394_FAX_REPREZ', pounitate.FaxRepr, 'D394 fax reprezentant') scrie_optiune('D394_EMAIL_REPREZ', pounitate.EmailRepr, 'D394 email reprezentant') scrie_optiune('D394_DEN_INTOCMIT', pounitate.DenIntocmit, 'D394 denumire intocmit') scrie_optiune('D394_CUI_INTOCMIT', pounitate.CUIIntocmit, 'D394 CUI intocmit') scrie_optiune('D394_PJ_INTOCMIT', Alltrim(Str(pounitate.PJIntocmit)), 'D394 persoana juridica intocmit') scrie_optiune('D394_CALITATE_INTOCMIT', pounitate.CalitateIntocmit, 'D394 calitate intocmit') scrie_optiune('D394_CALITATE2_INTOCMIT', pounitate.Calitate2Intocmit, 'D394 alta calitate intocmit') scrie_optiune('D394_FUNCTIE_INTOCMIT', pounitate.FunctieIntocmit, 'D394 functie intocmit') scrie_optiune('D394_TIP', pounitate.TIP, 'Tip declaratie 394: LUNAR/TRIMESTRIAL/SEMESTRIAL/ANUAL') scrie_optiune('D394_NR_AMEF', Alltrim(Str(pounitate.nramef)), 'D394 nr AMEF') scrie_optiune('D394_OPTIUNE_ANAF', Alltrim(Str(pounitate.OptiuneANAF)), 'D394 optiunea ANAF; 1=DA/0=NU') close_fdoc() Endproc && List *************************************************** * Citeste JV/JC * Configureaza tipurile de documente (facturi, facturi simplificate, bonuri fiscale etc.) *************************************************** Procedure do_citeste_date Local llSucces, lcSelect, loUnitate Local lcTip, lnAn, lnLuna1, lnLuna2, lnNumarLuni, lnPerioada lcSelect = Select() loUnitate = This.oUnitate * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnAn = loUnitate.an lcTip = loUnitate.TIP This.TIP = Left(m.lcTip, 1) lnNumarLuni = Iif(m.lcTip = "TRIMESTRIAL", 3, Iif(m.lcTip = "SEMESTRIAL", 6, Iif(m.lcTip = "ANUAL", 12, 1))) lnPerioada = Ceil(m.gnLuna / m.lnNumarLuni) lnLuna1 = (lnPerioada - 1) * lnNumarLuni + 1 lnLuna2 = lnPerioada * lnNumarLuni loUnitate.luna1 = m.lnLuna1 loUnitate.luna2 = m.lnLuna2 llPerioadaDoarRO = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9) && intre 07/2016 si 09/2016 se iau doar partenerii cu RO * Citeste JV/JC Wait Window 'Se citesc date din Registrele TVA...' Nowait llSucces = This.citeste_date_jtva() If m.llSucces And Used('crsJtva') Wait Window 'Se proceseaza datele din Registrele TVA...' Nowait llSucces = This.configureaza_date_jtva() Else llSucces = .F. Endif If m.llSucces Wait Window 'Se pregatesc sectiunile 1 si 2...' Nowait llSucces = This.pregateste_sectiunea_1_2() Endif If m.llSucces Wait Window 'Se pregatesc sectiunile 4 si 5...' Nowait llSucces = This.pregateste_sectiunea_4_5() Endif If m.llSucces Wait Window 'Se pregateste sectiunea 6...' Nowait llSucces = This.pregateste_sectiunea_6() Endif If m.llSucces Wait Window 'Se pregateste sectiunea 7...' Nowait llSucces = This.pregateste_sectiunea_7() Endif If m.llSucces Wait Window 'Se pregateste sectiunea AMEF...' Nowait llSucces = This.pregateste_sectiunea_amef() If loUnitate.lPerioadaDoarRO Delete From crsAMEF && nu se declara bonurile fiscale in perioada 07-09/2016 Endif Endif If m.llSucces Wait Window 'Se pregateste sectiunea persoane fizice...' Nowait llSucces = This.pregateste_sectiunea_facturi_pers_fizice_10000() If loUnitate.lPerioadaDoarRO Delete From crsPersFizice && nu se declara bonurile fiscale in perioada 07-09/2016 Endif Endif Go Top In crsJTVA Select (m.lcSelect) Return m.llSucces Endproc * Citeste JV/JC Procedure citeste_date_jtva Private pnIdSetAnulat && set facturi anulate pnIdSetAnulat = Iif(Type('gnIdSetAnulat') = 'N', m.gnIdSetAnulat, 99996) Local lcConditieAct, lcConditieLuna, lcCursor, lcSql, lnAn, lnLuna1, lnLuna2, lnSucces, loUnitate, llPerioadaDoarRO loUnitate = This.oUnitate lnAn = loUnitate.an lnLuna1 = loUnitate.luna1 lnLuna2 = loUnitate.luna2 llPerioadaDoarRO = loUnitate.lPerioadaDoarRO lcConditieLuna = [ (AN = ] + Alltrim(Str(m.lnAn)) + [ and (luna BETWEEN ] + Alltrim(Str(m.lnLuna1)) + [ and ] + Alltrim(Str(m.lnLuna2)) + [ ))] *** iau doar facturile din luna emiterii lcConditieAct = [ and (extract(year from dataact)*12+extract(month from dataact) = an*12+luna)] * Iau toate inregistrarile din Registrele de TVA, INCLUSIV FATURILE EMISE ANTERIOR PERIOADEI DE DECLARARE, pentru calcul sectiune 4 si 5 (TVA EXIGIBIL) Text To lcSql Textmerge Noshow SELECT 'JV' AS TIPJ, 0 AS TIPPART, TIP_DOC as tipdoc, 'L ' as tip, dataact, dataireg, serie_act, nract, id_fdoc, fel_document, id_sucursala, sucursala, 0 as ISCIF, 0 AS CIFVALID, J.ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, TIP_PERSOANA, AFILIAT, CODTARA, A.TARA, A.COD_TARA, A.JUDET, A.COD_JUDET, A.LOCALITATE, A.STRADA, A.BLOC, A.SCARA, A.NUMAR, A.APART, RO24B + RO20B + RO19B + RO9B + RO5B + RO24NB + RO20NB + RO19NB + RO9NB + RO5NB AS BAZA, RO24T + RO20T + RO19T + RO9T + RO5T + RO24NT + RO20NT + RO19NT + RO9NT + RO5NT AS TVA, ROTI AS TIBAZA, 0 AS TITVA, RO24B + RO24NB as BAZA24, RO20B + RO20NB AS BAZA20, RO19B + RO19NB AS BAZA19, RO9B + RO9NB AS BAZA09, RO5B + RO5NB AS BAZA05, 0.00 AS BAZA00, RO24T + RO24NT as TVA24, RO20T + RO20NT AS TVA20, RO19T + RO19NT AS TVA19, RO9T + RO9NT AS TVA09, RO5T + RO5NT AS TVA05, 0.00 AS TIBAZA24, ROTI AS TIBAZA20, 0.00 AS TIBAZA19, 0.00 AS TIBAZA09, 0.00 AS TIBAZA05, 0.00 as TITVA24, 0.00 AS TITVA20, 0.00 AS TITVA19, 0.00 AS TITVA09, 0.00 AS TITVA05, TVA_INCASARE, 0 as FACT_TVA_INCASARE, 1 as NRFACT, decode(extract(year from dataireg)*12+extract(month from dataireg), an*12+luna, 1, 0) as EMISA_PERIOADA, RO24T, RO20T, RO19T, RO9T AS RO09T, RO5T AS RO05T FROM VJV2013 J LEFT JOIN (SELECT ID_PART,TARA,PRESCURTARE AS COD_TARA,JUDET,COD_JUDET,LOCALITATE,STRADA,NUMAR,APART,SCARA,BLOC FROM VADRESE_PARTENERI WHERE PRINCIPALA = 1) A ON J.ID_PART = A.ID_PART WHERE (TOTCTVA = 0 OR RO24T <> 0 OR RO20T <> 0 OR RO19T <> 0 OR RO9T <> 0 OR RO5T <> 0 OR RO24NT <> 0 OR RO20NT <> 0 OR RO19NT <> 0 OR RO9NT <> 0 OR RO5NT <> 0 OR ROTI <> 0) AND <> UNION SELECT 'JC' AS TIPJ, 0 AS TIPPART, TIP_DOC as tipdoc, 'A ' as tip, dataact, dataireg, serie_act, nract, id_fdoc, fel_document, id_sucursala, sucursala, 0 as ISCIF, 0 AS CIFVALID, J.ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, TIP_PERSOANA, AFILIAT, CODTARA, A.TARA, A.COD_TARA, A.JUDET, A.COD_JUDET, A.LOCALITATE, A.STRADA, A.BLOC, A.SCARA, A.NUMAR, A.APART, RO24B + RO20B + RO19B + RO09B + RO05B + RO24NB + RO20NB + RO19NB + RO9NB + RO5NB + ROSCN AS BAZA, RO24T + RO20T + RO19T + RO09T + RO05T + RO24NT + RO20NT + RO19NT + RO9NT + RO5NT AS TVA, TI19B + TI09B + TI20B + TI24B + XX19TIB + XX9TIB as TIBAZA, TI19T + TI09T + TI20T + TI24T + XX19TIT + XX9TIT as TITVA, RO24B + RO24NB AS BAZA24, RO20B + RO20NB AS BAZA20, RO19B + RO19NB AS BAZA19, RO09B + RO9NB AS BAZA09, RO05B + RO5NB AS BAZA05, ROSCN AS BAZA00, RO24T + RO24NT AS TVA24, RO20T + RO20NT AS TVA20, RO19T + RO19NT AS TVA19, RO09T + RO9NT AS TVA09, RO05T + RO5NT AS TVA05, TI24B AS TIBAZA24, TI20B AS TIBAZA20, TI19B + XX19TIB AS TIBAZA19, TI09B + XX9TIB AS TIBAZA09, 0.00 AS TIBAZA05, TI24T as TITVA24, TI20T AS TITVA20, TI19T + XX19TIT AS TITVA19, TI09T + XX9TIT AS TITVA09, 0.00 AS TITVA05, TVA_INCASARE, 0 as FACT_TVA_INCASARE, 1 as NRFACT, decode(extract(year from dataireg)*12+extract(month from dataireg), an*12+luna, 1, 0) as EMISA_PERIOADA, RO24T, RO20T, RO19T, RO09T, RO05T FROM VJC2013 J LEFT JOIN (SELECT ID_PART,TARA,PRESCURTARE AS COD_TARA,JUDET,COD_JUDET,LOCALITATE,STRADA,NUMAR,APART,SCARA,BLOC FROM VADRESE_PARTENERI WHERE PRINCIPALA = 1) A ON J.ID_PART = A.ID_PART WHERE (TOTCTVA = 0 OR RO24T <> 0 OR RO20T <> 0 OR RO19T <> 0 OR RO09T <> 0 OR RO05T <> 0 OR RO24NT <> 0 OR RO20NT <> 0 OR RO19NT <> 0 OR RO9NT <> 0 OR RO5NT <> 0 OR TI19T <> 0 OR TI09T <> 0 OR TI20T <> 0 OR TI24T <> 0 OR XX19TIB<>0 OR XX19TIT <> 0 OR XX9TIB<>0 OR XX9TIT <> 0 OR ROSCN <> 0) AND <> Endtext goLog.Log(lcSql) lcCursor = [crsJTVATemp] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crsJTVA Append From Dbf('crsJTVATemp') Use In (Select('crsJTVATemp')) * sterg facturile de achizitie de la platitorii de TVA (RO) care au doar baza00 <> 0 (ROSCN). nu trebuie sa apara in declaratie. doar la tipul 2 (neinregistrati in scopuri TVA) * sunt permise facturile cu TVA 0 tip AS - achizitii regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Delete From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And TVA24 = 0 And TVA20 = 0 And TVA19 = 0 And TVA09 = 0 And TVA05 = 0 And baza00 <> 0 And !Inlist(Alltrim(tipdoc), 'U', 'H') Update crsJTVA Set seq = Recno() * Bifa Persoane Afiliate Select crsJTVA Locate For Nvl(AFILIAT, 0) <> 0 If Found() pounitate.PersoaneAfiliate = 1 Endif Endif && llSucces * Facturi Anulate din Reg. Jurnal cu gnIdSetAnulate If m.llSucces Text To lcSql Textmerge Noshow SELECT distinct a.serie_act as seria, a.nract as nr FROM act a left join nom_fdoc f on a.id_fdoc = f.id_fdoc WHERE a.sters = 0 and a.id_set = <> and f.tip_doc in ('F', 'M') and <> <> <> Endtext lcCursor = [crsFacturiAnulate] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && llSucces * Numar bonuri fiscale cu si fara CUI, B si C (AMEF) If m.llSucces * 07-09/2016 se declara doar operatiile cu persoane impozabile, deci nu bonuri AMEF If m.llPerioadaDoarRO Create Cursor crsBonuriAMEF (luna N(2), nr N(10)) llSucces = .T. Else *BON=10* * se numara toate bonurile fiscale emise, indiferent ca au cod fiscal sau nu. Doar bonurile fiscale pentru care s-au emis facturi nu se iau in considerare! * dar acelea trebuie sa fie marcate ca FACTURA Text To lcSql Textmerge Noshow SELECT extract(month FROM dataact) as luna, SUM(case when nr is null then 1 else to_number(nr) end) as nr FROM (SELECT a.id_fact, a.cod, MAX(a.dataact) as dataact, MAX(replace(replace(upper(regexp_substr(a.explicatia,'\*BON=(\d)*\*',1,1,'i')),'*BON=',''),'*','')) as nr FROM act a WHERE a.sters = 0 and <> <> and id_fact in (SELECT j.id_fact from jv2007 j where <> <> and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc in ('B','C'))) and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc in ('B','C')) group by a.id_fact, a.cod) group by extract(month from dataact) Endtext Wait Window 'Calculare numar bonuri AMEF...' Nowait lcCursor = [crsBonuriAMEF] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && m.llPerioadaDoarRO Endif && llSucces * Numar bilete E(xceptate) AMEF If m.llSucces * 07-09/2016 se declara doar operatiile cu persoane impozabile, deci nu bonuri AMEF If m.llPerioadaDoarRO Create Cursor crsBonuriEAMEF(luna N(2), nr N(10)) llSucces = .T. Else Text To lcSql Textmerge Noshow SELECT extract(month FROM dataact) as luna, SUM(case when nr is null then 1 else to_number(nr) end) as nr FROM (SELECT a.id_fact, a.cod, MAX(a.dataact) as dataact, MAX(replace(replace(upper(regexp_substr(a.explicatia,'\*BON=(\d)*\*',1,1,'i')),'*BON=',''),'*','')) as nr FROM act a WHERE a.sters = 0 and <> <> and id_fact in (SELECT j.id_fact from jv2007 j where <> <> and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc = 'E')) and id_fdoc in (select id_fdoc from NOM_FDOC t where sters = 0 and tip_doc = 'E') group by a.id_fact, a.cod) group by extract(month from dataact) Endtext Wait Window 'Calculare numar bonuri exceptate AMEF...' Nowait lcCursor = [crsBonuriEAMEF] llSucces = goExecutor.oExecuta(lcSql, lcCursor) Endif && m.llPerioadaDoarRO Endif && llSucces Return m.llSucces Endproc && citeste_date_jtva * Configureaza tipurile de documente (facturi, facturi simplificate, bonuri fiscale etc.) Procedure configureaza_date_jtva Local loVerificare As "verificarecod" Local loRec Update crsJTVA Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) Or Empty(Nvl(cod_fiscal, '')) Update crsJTVA Set codtara = 'RO' WHERE EMPTY(NVL(codtara,'')) SET STEP ON * Completez Tip partener: 1/2/3/4 Update crsJTVA Set tippart = 1 Where tippart = 0 And atribut_fiscal = 'RO' && persoane impozabile inregistrate in scopuri de TVA in Romania Update crsJTVA Set tippart = 2 Where tippart = 0 And (Empty(atribut_fiscal) OR Nvl(TIP_PERSOANA,0) <> 1) && persoane neinregistrate in scopuri de TVA (fara atribut fiscal sau persoane fizice) Update crsJTVA Set tippart = 3 Where tippart = 0 And ; (INLIST(atribut_fiscal,'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'EL', 'ES', 'FI', 'FR') OR INLIST(atribut_fiscal, 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'SE', 'SI', 'SK') OR ; INLIST(codtara, 'AT', 'BE', 'BG', 'CY', 'CZ', 'DE', 'DK', 'EE', 'GR', 'ES', 'FI', 'FR') OR INLIST(codtara, 'HR', 'HU', 'IE', 'IT', 'LT', 'LU', 'LV', 'MT', 'NL', 'PL', 'PT', 'SE', 'SI', 'SK')) && persoane impozabile nestabilite in RO, in UE Update crsJTVA Set tippart = 4 Where tippart = 0 And Nvl(TIP_PERSOANA,0) = 1 AND codtara <> 'RO'&& persoane impozabile nestabilite in RO, in afara UE si tip persoana = persoana juridica * Completez tip document: FACTURA/BON FISCAL FARA FACTURA/BON FISCAL CU FACTURA/FACTURA SIMPLIFICATA/AUTOFACTURA *!* Update crsJTVA Set tipdoc = '' *!* Update crsJTVA Set tipdoc = 'B' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_bonfiscal_fara_cui + ',' *!* Update crsJTVA Set tipdoc = 'C' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_bonfiscal_cu_cui + ',' *!* Update crsJTVA Set tipdoc = 'M' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_factura_simplificata + ',' *!* Update crsJTVA Set tipdoc = 'E' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_exceptate_amef + ',' *!* Update crsJTVA Set tipdoc = 'O' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_borderou_achizitii + ',' *!* Update crsJTVA Set tipdoc = 'Z' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_carnet_comercializare + ',' *!* Update crsJTVA Set tipdoc = 'H' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_achizitii_second_hand + ',' *!* Update crsJTVA Set tipdoc = 'U' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_servicii_turism + ',' *!* Update crsJTVA Set tipdoc = 'AF' Where Empty(tipdoc) And ',' + Alltrim(serie_act) + ',' $ ',' + This.oUnitate.serie_autofacturare + ',' *!* Update crsJTVA Set tipdoc = 'F' Where Empty(tipdoc) And ',' + Alltrim(Str(id_fdoc)) + ',' $ ',' + This.oUnitate.tipdoc_factura + ',' * Update crsJTVA Set tipdoc = 'F' Where Empty(tipdoc) && completez restul documentelor cu tip = F(actura) Insert Into crsFdocTip (id_fdoc, fel_document, tip_doc, bifa) ; Select Distinct id_fdoc, fel_document, tipdoc As tip_doc, Iif(Empty(Nvl(tipdoc, '')), 1, 0) As bifa ; From crsJTVA ; Where EMISA_PERIOADA = 1 Go Top In crsFdocTip * Determin CUI/CNP si verific validitate Select Distinct cod_fiscal, .F. As iscif, .F. As cifvalid ; From crsJTVA ; Where !Empty(Nvl(cod_fiscal, '')) ; Into Cursor cCUITemp Readwrite loVerificare = Createobject("verificarecod") && validare.prg Update cCUITemp Set iscif = loVerificare.iscif(cCUITemp.cod_fiscal) Update cCUITemp Set cifvalid = loVerificare.Validare(Iif(cCUITemp.iscif, 'CIF', 'CNP'), cCUITemp.cod_fiscal) Select cCUITemp Scan Update crsJTVA Set iscif = Iif(cCUITemp.iscif, 1, 0), cifvalid = Iif(cCUITemp.cifvalid, 1, 0) Where cod_fiscal = cCUITemp.cod_fiscal Endscan Update crsJTVA Set iscif = 0, cifvalid = 0 Where Empty(Nvl(cod_fiscal, '')) Use In (Select('cCUITemp')) *!* L - livrari *!* V - livrari cu taxare inversa *!* LS - livrari regim special *!* A - achizitii *!* C - achizitii cu taxare inversa *!* AS - achizitii regim special *!* N - achizitii de bunuri/servicii pt care au fost primite facturi/borderouri de achizitii/ file din carnete de comercializare de la persoane neinregistrate *!* AI - achizitii de la persoane impozabile care aplica TVA la incasare * V/C - taxare inversa Select * From crsJTVA Where .F. Into Cursor crsJTVATemp Readwrite Select crsJTVA Scan For EMISA_PERIOADA = 1 And titva <> 0 Or tibaza <> 0 And Inlist(TIP, 'L', 'A') If TVA = 0 And baza = 0 * daca are doar taxare inversa, marchez factura tip V/C Replace TIP With Iif(TIP = 'L', 'V', 'C'), ; baza With tibaza, TVA With titva, baza24 With tibaza24, baza20 With tibaza20, baza19 With tibaza19, baza09 With tibaza09, baza05 With tibaza05, ; TVA With titva, TVA With titva, TVA24 With titva24, TVA20 With titva20, TVA19 With titva19, TVA09 With titva09, TVA05 With titva05 In crsJTVA If TIP = 'V' && livrare taxare inversa nu are cota de TVA Replace baza00 With tibaza, baza20 With 0, tibaza20 With 0 In crsJTVA Endif Else * daca are taxare inversa si tva normal, marchez factura tip V/C si adaug o linie noua cu tva normal Select crsJTVA Scatter Name loRec Replace TIP With Iif(TIP = 'L', 'V', 'C'), ; baza With tibaza, TVA With titva, baza24 With tibaza24, baza20 With tibaza20, baza19 With tibaza19, baza09 With tibaza09, baza05 With tibaza05, ; TVA24 With titva24, TVA20 With titva20, TVA19 With titva19, TVA09 With titva09, TVA05 With titva05, ; ro24t With 0, ro20t With 0, ro19t With 0, RO09T With 0, ro05t With 0 In crsJTVA With loRec .NRFACT = 0 && am deja nrfact = 1 pe linia cu taxare inversa, sa nu duplic numarul de facturi .tibaza = 0 .titva = 0 .tibaza24 = 0 .tibaza20 = 0 .tibaza19 = 0 .tibaza09 = 0 .tibaza05 = 0 .titva24 = 0 .titva20 = 0 .titva19 = 0 .titva09 = 0 .titva05 = 0 Endwith Insert Into crsJTVATemp From Name loRec Select crsJTVA Endif Endscan Select crsJTVA Append From Dbf('crsJTVATemp') Use In (Select('crsJTVATemp')) * LS - livrari regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Update crsJTVA Set TIP = 'LS' Where TIP = 'L' And Inlist(Alltrim(tipdoc), 'U', 'H') * AS - achizitii regim special (servicii turism, second hand, obiecte arta care aplica TVA la marja de profit) Update crsJTVA Set TIP = 'AS' Where TIP = 'A' And Inlist(Alltrim(tipdoc), 'U', 'H') * N - achizitii de bunuri/servicii pt care au fost primite facturi/borderouri de achizitii/ file din carnete de comercializare de la persoane neinregistrate * Achizitii de la persoane fizice sau persoane juridice neplatitoare de TVA Update crsJTVA Set TIP = 'N' Where TIP = 'A' And (iscif = 0 Or (iscif = 1 And !'RO' $ cod_fiscal)) * Facturi de achizitie provenite de la persoane care aplica sistemul TVA la Incasare, pentru sectiunea I5.2 Update crsJTVA Set FACT_TVA_INCASARE = 1 Where tipj = 'JC' And iscif = 1 And 'RO' $ (Upper(cod_fiscal)) And VERIFICA_RTVAI_DATA(crsJTVA.cod_fiscal, crsJTVA.dataact) * AI - achizitii de la persoane impozabile care aplica TVA la incasare Update crsJTVA Set TIP = 'AI' Where TIP = 'A' And FACT_TVA_INCASARE = 1 * Documentele fara tipdoc asociat nu se iau in considerare la generarea D394 Update crsJTVA Set TIP = '' Where Empty(Nvl(tipdoc, '')) Return .T. Endproc && configureaza_date_jtva *=========================================== * Creeaza cursoare pentru sectiunile declaratiei din crsJTVA Procedure pregateste_sectiunea_1_2 Private pnPlaje24 Local lnAn, lnLuna1, lnLuna2, llSucces Local lcSeria, lcSql, lnNr1, lnNr2, loUnitate pnPlaje24 = 0 loUnitate = This.oUnitate lnAn = Int(loUnitate.an) lnLuna1 = Int(loUnitate.luna1) lnLuna2 = Int(loUnitate.luna2) * I. ALTE INFORMATII: * I 1.1 Livrari de bunuri/prestari de servicii pentru care s-au emis facturi simplificate care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.1' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.1' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And !Empty(Nvl(cod_fiscal, '')) * I 1.2 Livrari de bunuri/prestari de servicii pentru care s-au emis facturi simplificate fara a avea inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.2' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) ; Union ; Select '1.2' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'M' And Empty(Nvl(cod_fiscal, '')) * I 1.3 Achizitii de bunuri si servicii pentru care s-au primit facturi simplificate de la persoane impozabile care aplica sistemul normal de TVA si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.3' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 ; Union ; Select '1.3' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 * I 1.4 Achizitii de bunuri si servicii pentru care s-au primit facturi simplificate de la persoane impozabile care aplica sistemul de TVA la incasare si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.4' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 ; Union ; Select '1.4' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'M' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 * I 1.5 Achizitii de bunuri si servicii pentru care s-au primit bonuri fiscale care indeplinesc conditiile unei facturi simplificate si care au inscris codul de inregistrare in scopuri de TVA al beneficiarului Insert Into crsSectiuneaI (punct, baza, TVA, proctva) ; Select '1.5' As punct, Sum(baza24) As baza, Sum(TVA24) As TVA, 24 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza20) As baza, Sum(TVA20) As TVA, 20 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza19) As baza, Sum(TVA19) As TVA, 19 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza09) As baza, Sum(TVA09) As TVA, 9 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' ; Union ; Select '1.5' As punct, Sum(baza05) As baza, Sum(TVA05) As TVA, 5 As proctva ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And tipdoc = 'C' Delete From crsSectiuneaI Where Nvl(baza, 0) = 0 And Nvl(TVA, 0) = 0 * 2.1 Plaja de facturi alocate in perioada de facturare pnPlaje24 = 0 && plaja de facturi special creata pentru declararea in D394. Nu se foloseste la generarea de numere de facturi lnSucces = goExecutor.oSelect2Value("SELECT COUNT(*) as nr FROM plaje_numere WHERE id_tipdoc = 24 and sters = 0", @pnPlaje24) If m.lnSucces = CT_INSUCCES amessagebox(goExecutor.cEroare, 0 + 16, "Eroare") pnPlaje24 = 0 Endif lnIdTipDocFact = Iif(m.pnPlaje24 > 0, 24, 5) Text To lcSql Textmerge Noshow select s.serie as seria, s.prefix || SUBSTR(decode(nvl(s.an, 0), 1, decode(NVL(s.an2caractere,0), 1, '<>', '<>') || decode(s.luna, 1, lpad('<>', 2, '0'), ''), '') || lpad(p.pl_inf, nvl(s.lungime, 14), '0'), 1, 30) as nr1, s.prefix || SUBSTR(decode(nvl(s.an, 0), 1, decode(NVL(s.an2caractere,0), 1, '<>', '<>') || decode(s.luna, 1, lpad('<>', 2, '0'), ''),'') || lpad(p.pl_sup, nvl(s.lungime, 14), '0'), 1, 30) as nr2 from plaje_numere p join serii s on p.id_serie = s.id_serie where p.sters = 0 and p.inactiv = 0 and p.id_tipdoc = <> and ((<> between extract(year from p.datai) * 12 + extract(month from p.datai) and extract(year from p.datas) * 12 + extract(month from p.datas)) or (<> between extract(year from p.datai) * 12 + extract(month from p.datai) and extract(year from p.datas) * 12 + extract(month from p.datas))) Endtext llSucces = goExecutor.oExecuta(m.lcSql, [crsFacturiAlocateTemp]) If m.llSucces Insert Into crsFacturiAlocate (seria, nr1, nr2) ; Select seria, Int(Val(nr1)) As nr1, Int(Val(nr2)) As nr2 ; From crsFacturiAlocateTemp Endif * Nu pot sa configurez plaje de numar fara serie. Conventional seria xxx este NULL Update crsFacturiAlocate Set seria = '' Where seria = 'XXX' * In facturi alocate nu intra seriile de facturi emise de beneficiari/terti IF !EMPTY(NVL(loUnitate.serie_facturi_beneficiari,'')) DELETE FROM crsFacturiAlocate WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ENDIF IF !EMPTY(NVL(loUnitate.serie_facturi_terti,'')) DELETE FROM crsFacturiAlocate WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ENDIF Use In (Select('crsFacturiAlocateTemp')) * 2.2 Numarul total de facturi emise, in perioada de raportare, din plaja de facturi alocate: If m.llSucces * selectez seriile si numerele de facturi (sectiunea 2.1), in afara de facturi emise de beneficiari/terti in numele persoanei impozabile (sectiunile 2.3, 2.4) Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') ; Union ; Select Distinct seria, nr ; From crsFacturiAnulate ; Into Cursor crsNract READWRITE IF !EMPTY(NVL(loUnitate.serie_facturi_beneficiari,'')) DELETE FROM crsNrAct WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ENDIF IF !EMPTY(NVL(loUnitate.serie_facturi_terti,'')) DELETE FROM crsNrAct WHERE !EMPTY(seria) AND ',' + Alltrim(seria) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ENDIF CALCULATE CNT() TO loUnitate.nr_facturi_emise IN crsNrAct *!* loUnitate.nr_facturi_emise = _Tally Select Distinct seria From crsNract Into Cursor crsSeriiAct Select crsSeriiAct Scan lcSeria = seria Select Cast(0 As N(20)) As rec, nr From crsNract Where Nvl(seria, 'XXX') = Nvl(m.lcSeria, 'XXX') Order By nr Into Cursor crsSeriaAct1 Readwrite Replace All rec With Recno() In crsSeriaAct1 Select rec, nr From crsSeriaAct1 Into Cursor crsSeriaAct2 Select c1.nr As nr1, c2.nr As nr2, c2.nr - Nvl(c1.nr, c2.nr) As Dif ; From crsSeriaAct1 c1 Left Join crsSeriaAct2 c2 On c1.rec = c2.rec - 1 ; Into Cursor crsSeriaActDif Use In (Select('crsSeriaAct1')) Use In (Select('crsSeriaAct2')) Select crsSeriaActDif Go Top lnNr1 = nr1 lnNr2 = nr1 Scan If Dif = 1 lnNr2 = nr2 Else Insert Into crsFacturiEmise (seria, nr1, nr2) Values (m.lcSeria, m.lnNr1, m.lnNr2) lnNr1 = nr2 lnNr2 = nr2 Endif Endscan If m.lnNr1 <> m.lnNr2 Insert Into crsFacturiEmise (seria, nr1, nr2) Values (m.lcSeria, m.lnNr1, m.lnNr2) Endif Use In (Select('crsSeriaActDif')) Endscan && crsSeriiAct * Verificare facturi emise in plajele de facturi alocate!!! * Asociez facturile emise cu plajele de facturi alocate Select a.seria, a.nr, b.seria As aseria, b.nr1, b.nr2 ; From crsNract a Left Join crsFacturiAlocate b On Padr(Nvl(a.seria, ''), 20, ' ') = Padr(Nvl(b.seria, ''), 20, ' ') And Between(a.nr, b.nr1, b.nr2) ; Into Cursor cFacturiEmiseAlocateTemp * Selectez facturile care nu s-au incadrat in nici o plaja de facturi alocate Select seria, nr ; From cFacturiEmiseAlocateTemp ; Where Isnull(nr1) ; Order By seria, nr ; Into Cursor cFacturiEmiseAlocate Use In (Select('cFacturiEmiseAlocateTemp')) This.oUnitate.cTextFacturiEmiseAlocate = "" If _Tally > 0 This.oUnitate.cTextFacturiEmiseAlocate = 'Facturi emise care nu sunt in plajele de facturi alocate:' + Chr(13) + Chr(10) Select cFacturiEmiseAlocate Scan This.oUnitate.cTextFacturiEmiseAlocate = This.oUnitate.cTextFacturiEmiseAlocate + Transform(seria) + ' ' + Transform(nr) + Chr(13) + Chr(10) Endscan Else This.oUnitate.cTextFacturiEmiseAlocate = 'Toate facturile emise sunt in plajele de facturi alocate.' Endif Use In (Select('cFacturiEmiseAlocate')) Use In (Select('crsSeriiAct')) Use In (Select('crsNrAct')) * 2.2 din care (Tip: stornate/anulate/autofacturare/emisa in numele furnizorilor) * Facturi stornate Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'STORNAT' As TIP, 1 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And baza + TVA < 0 * Facturi anulate Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'ANULAT' As TIP, 2 As ntip, seria, nr ; From crsFacturiAnulate * Autofacturi Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'AUTOFACTURA' As TIP, 3 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_autofacturare) + ',' * Facturi emise in numele furnizorilor Insert Into crsFacturiEmiseTip (TIP, ntip, seria, nr) ; Select Distinct 'FURNIZOR' As TIP, 4 As ntip, serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JC' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_furnizori) + ',' * 2.2 Autofacturare Insert Into crsAutoFacturi (seria, nr, baza24, TVA24, baza20, TVA20, baza19, TVA19, baza09, TVA09, baza05, TVA05) ; Select serie_act As seria, nract As nr, ; Sum(baza24) As baza24, Sum(TVA24) As TVA24, ; Sum(baza20) As baza20, Sum(TVA20) As TVA20, ; Sum(baza19) As baza19, Sum(TVA19) As TVA19, ; Sum(baza09) As baza09, Sum(TVA09) As TVA09, ; Sum(baza05) As baza05, Sum(TVA05) As TVA05 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_autofacturare) + ',' ; Group By serie_act, nract * 2.3 Numarul total de facturi emise, in perioada de raportare, de beneficiari in numele persoanei impozabile: Insert Into crsFacturiTerti (punct, denumire, cod_fiscal, seria, nr1, nr2) ; Select '2.3' As punct, denumire, cod_fiscal, serie_act As seria, Min(nract) As nr1, Max(nract) As nr2 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ; Group By denumire, cod_fiscal, serie_act ; Union ; Select '2.4' As punct, denumire, cod_fiscal, serie_act As seria, Min(nract) As nr1, Max(nract) As nr2 ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ; Group By denumire, cod_fiscal, serie_act ; Order By punct, denumire, cod_fiscal, serie_act Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_beneficiari) + ',' ; Into Cursor crsNract loUnitate.nr_facturi_beneficiari = _Tally USE IN (SELECT('crsNract')) Select Distinct serie_act As seria, nract As nr ; From crsJTVA ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(tipdoc, 'F', 'M') And ',' + Alltrim(serie_act) + ',' $ ',' + Alltrim(loUnitate.serie_facturi_terti) + ',' ; Into Cursor crsNract loUnitate.nr_facturi_terti = _Tally USE IN (SELECT('crsNract')) Endif && m.llSucces Return m.llSucces Endproc && pregateste_sectiunea_1_2 * TVA Exigibil Procedure pregateste_sectiunea_4_5 If This.oUnitate.tva_incasare = 0 * 4. Date aferente operatiunilor desfasurate de catre persoana impozabila care aplica sistemul normal de TVA * 4.1 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA24, TVA20, TVA19, TVA09, TVA05) ; Select '4.1' As punct, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And tva_incasare = 1 And Inlist(tipdoc, 'F', 'M') Else * 5. Date aferente operatiunilor desfasurate de catre persoana impozabila care aplica sistemul de TVA la incasare * 5.1 TVA colectata aferenta facturilor incasate in perioada de raportare indiferent de data in care acestea au fost emise de catre * persoana impozabila care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA24, TVA20, TVA19, TVA09, TVA05) ; Select '5.1' As punct, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05 ; From crsJTVA Where tipj = 'JV' And tva_incasare = 1 And Inlist(tipdoc, 'F', 'M') * 5.2 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul normal de TVA, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA24, TVA20, TVA19, TVA09, TVA05) ; Select '5.2' As punct, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 0 And Inlist(tipdoc, 'F', 'M') * 5.3 TVA deductibila aferenta facturilor achitate in perioada de raportare indiferent de data in care acestea au fost primite de la * persoane impozabile care aplica sistemul de TVA la incasare, defalcata pe fiecare cota de TVA Insert Into crsSectiuneaI4 (punct, TVA24, TVA20, TVA19, TVA09, TVA05) ; Select '5.3' As punct, Sum(ro24t) As TVA24, Sum(ro20t) As TVA20, Sum(ro19t) As TVA19, Sum(RO09T) As TVA09, Sum(ro05t) As TVA05 ; From crsJTVA Where tipj = 'JC' And atribut_fiscal = 'RO' And FACT_TVA_INCASARE = 1 And Inlist(tipdoc, 'F', 'M') Endif Endproc && pregateste_sectiunea_4_5 * 6. TVA colectata aferenta marjei de profit din perioada de raportare indiferent de data la care au fost efectuate operatiunile de catre * persoanele impozabile care aplica regimul special pt agentiile de turism, pt bunurile second-hand, opere de arta, obiecte de colectie si antichitati Procedure pregateste_sectiunea_6 Return .T. Endproc && pregateste_sectiunea_6 * 7. In situatia in care ati desfasurat, in perioada de raportare, activitati dintre cele inscrise in lista veti selecta activitatea corespunzatoare * si veti inscrie valoarea livrarilor/prestarilor, precum si TVA aferenta Procedure pregateste_sectiunea_7 Local lcCodCaen, lcCodCaen1, lcCodCaen2, lcCodCaenTemp, lcListaCAEN, llSucces lcCodCaen1 = Alltrim(Nvl(gofirma.caen, '')) lcCodCaen2 = Alltrim(Nvl(gofirma.caen394, '')) lcCodCaen = Iif(!Empty(m.lcCodCaen2), m.lcCodCaen2, m.lcCodCaen1) lcCodCaenTemp = ',' + m.lcCodCaen + ',' lcListaCAEN = ',1071,4520,4730,47761,47762,4932,55101,55102,56103,5630,812,9313,9602,9603,' llSucces = .T. If !m.lcCodCaenTemp $ m.lcListaCAEN Return m.llSucces Endif ccsectii() && vnom_sectii Select id_sectie, sectie, caen From vnom_sectii Where ',' + Alltrim(Nvl(caen, '')) + ',' $ m.lcListaCAEN Into Cursor cSectii394 Readwrite If _Tally = 0 Select cSectii394 Append Blank Replace caen With m.lcCodCaen Endif Use In (Select('vnom_sectii')) * Insert Into crsSectiuneaI7 (caen, TIP) Values (m.lcCodCaen, 'LIVRARI') * Insert Into crsSectiuneaI7 (caen, TIP) Values (m.lcCodCaen, 'PRESTARI') Use In (Select('cSectii394')) Return .T. Endproc && pregateste_sectiunea_7 Procedure pregateste_sectiunea_amef Insert Into crsAMEF (TIP, luna, nramef, nrbonuri, incasari, baza05, TVA05, baza09, TVA09, baza19, TVA19, baza20, TVA20, baza24, TVA24) ; Select 1 As TIP, Month(dataact) As luna, Cast(pounitate.nramef As N(10)) As nramef, Cast(Nvl(b.nr, 0) As N(10)) As nrbonuri, ; Round(Sum(baza + TVA), 0) As incasari, Round(Sum(baza05), 0) As baza05, Round(Sum(TVA05), 0) As TVA05, Round(Sum(baza09), 0) As baza09, Round(Sum(TVA09), 0) As TVA09, ; Round(Sum(baza19), 0) As baza19, Round(Sum(TVA19), 0) As TVA19, Round(Sum(baza20), 0) As baza20, Round(Sum(TVA20), 0) As TVA20, Round(Sum(baza24), 0) As baza24, Round(Sum(TVA24), 0) As TVA24 ; From crsJTVA j Left Join crsBonuriAMEF b On Month(j.dataact) = b.luna ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(Alltrim(tipdoc), 'B', 'C') ; Group By 1, 2, 3, 4 ; Union ; Select 2 As TIP, Month(dataact) As luna, Cast(0 As N(10)) As nramef, Cast(Nvl(b.nr, 0) As N(10)) As nrbonuri, ; Round(Sum(baza + TVA), 0) As incasari, Round(Sum(baza05), 0) As baza05, Round(Sum(TVA05), 0) As TVA05, Round(Sum(baza09), 0) As baza09, Round(Sum(TVA09), 0) As TVA09, ; Round(Sum(baza19), 0) As baza19, Round(Sum(TVA19), 0) As TVA19, Round(Sum(baza20), 0) As baza20, Round(Sum(TVA20), 0) As TVA20, Round(Sum(baza24), 0) As baza24, Round(Sum(TVA24), 0) As TVA24 ; From crsJTVA j Left Join crsBonuriEAMEF b On Month(j.dataact) = b.luna ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And tipdoc = 'E' ; Group By 1, 2, 3, 4 ; Order By 1, 2 Return .T. Endproc && pregateste_sectiunea_amef Procedure pregateste_sectiunea_facturi_pers_fizice_10000 Local llPerioada122016 llPerioada122016 = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 12) && intre 07/2016 si 12/2016 nu se declara individual facturile < 10.000 lei catre persoanele fizice Insert Into crsPersFizice (TIP, NRFACT, baza, baza05, TVA05, baza09, TVA09, baza19, TVA19, baza20, TVA20, baza24, TVA24) ; Select TIP, Sum(NRFACT) As NRFACT, ; Sum(baza) As baza, Sum(baza05) As baza05, Sum(TVA05) As TVA05, Sum(baza09) As baza09, Sum(TVA09) As TVA09, ; Sum(baza19) As baza19, Sum(TVA19) As TVA19, Sum(baza20) As baza20, Sum(TVA20) As TVA20, Sum(baza24) As baza24, Sum(TVA24) As TVA24 ; From crsJTVA j ; Where EMISA_PERIOADA = 1 And tipj = 'JV' And Inlist(Alltrim(TIP), 'L', 'LS') And Inlist(tipdoc, 'F', 'M', 'U', 'H') And tippart = 2 And Nvl(TIP_PERSOANA, 0) = 2 And (Abs(baza + TVA) <= 10000) And m.llPerioada122016; Group By 1 ; Order By 1 Return .T. Endproc && pregateste_sectiunea_facturi_pers_fizice_10000 *=========================================== Procedure do_genereaza_xdp Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcAdresa, lcAn, lcCodFiscalF, lcDen, lcLuna, lcSelect, lcTag, lcXDP, llPerioadaDoarRO, lnSeq, llExportSectiuneaI, lnCotaTVAStandard Local lnTipPart, llTvaNedeductibil lcSelect = Select() lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lnCotaTVAStandard = Iif(m.gnAn = 2016, 20, 19) llTvaNedeductibil = (This.oUnitate.tvanedeductibil = 1) llPerioadaDoarRO = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 9) && intre 07/2016 si 09/2016 se iau doar partenerii cu RO llPerioada122016 = Between(m.gnAn * 12 + m.gnLuna, 2016 * 12 + 7, 2016 * 12 + 12) && intre 07/2016 si 12/2016 nu se declara individual facturile < 10.000 lei catre persoanele fizice lcDen = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.antet), .T.)) lcAdresa = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.adresa), .T.)) This.TIP = Left(This.oUnitate.TIP, 1) llExportSectiuneaI = (This.oUnitate.ExportSectiuneaI = 1) lcXDP = "" Create Cursor cCote (cota N(3)) Insert Into cCote (cota) Values (24) Insert Into cCote (cota) Values (20) Insert Into cCote (cota) Values (19) Insert Into cCote (cota) Values (9) Insert Into cCote (cota) Values (5) Insert Into cCote (cota) Values (0) *) Tip Cod de inregistrare fiscala *L/A/V/C/AI/N/LS/AS * Centralizator achizitii/livrari defalcat pe tip parteneri 1/2/3/4, parteneri, cote, tip livrare/achizitie, tip document * Ordonez facturile dupa cota de TVA, sa las nrfact = 1 pe linia cu cota cea mai mare * In perioada 07/2016-09/2016 se raporteaza doar facturile cu RO If m.llPerioadaDoarRO lcWhere = [j.atribut_fiscal = 'RO'] Else lcWhere = [.T.] Endif Select Cast(0 As N(20)) As rn, j.seq As id_fact, j.tippart, c.cota, j.denumire As denp, j.cod_fiscalfro As cuip, j.TIP, j.TIP_PERSOANA, ; j.TARA, j.COD_TARA, j.JUDET, j.COD_JUDET, j.LOCALITATE, j.STRADA, j.Bloc, j.SCARA, j.NUMAR, j.APART, ; Iif(j.tipdoc = 'F', 1, Iif(j.tipdoc = 'O', 2, Iif(j.tipdoc = 'Z', 3, Iif(j.tipdoc = 'R', 4, 5)))) As tip_document, ; NRFACT, ; Iif(c.cota = 24, baza24, Iif(c.cota = 20, baza20, Iif(c.cota = 19, baza19, Iif(c.cota = 9, baza09, Iif(c.cota = 5, baza05, ; Iif(c.cota = 0, Iif(m.llTvaNedeductibil Or Inlist(j.tipdoc, 'U', 'H') Or Inlist(j.TIP, 'V', 'C') Or tippart = 2, baza00, 0.00), baza20)))))) As baza, ; Iif(c.cota = 24, TVA24, Iif(c.cota = 20, TVA20, Iif(c.cota = 19, TVA19, Iif(c.cota = 9, TVA09, Iif(c.cota = 5, TVA05, Iif(c.cota = 0, 0, TVA20)))))) As TVA ; From crsJTVA j, cCote c ; Where j.EMISA_PERIOADA = 1 And Alltrim(j.TIP) In ('L', 'A', 'V', 'C', 'AI', 'N', 'LS', 'AS') And Inlist(tipdoc, 'F', 'U', 'H', 'O', 'Z', 'R') And &lcWhere ; Order By 1, 10 Desc ; Into Cursor cFacturiTemp Readwrite * STERG FACTURILE PERSOANE FIZICE < 10.0000 LEI If m.llPerioada122016 Delete From cFacturiTemp Where Inlist(Alltrim(TIP), 'L', 'LS') And tippart = 2 And Nvl(TIP_PERSOANA, 0) = 2 And (Abs(baza + TVA) <= 10000) Endif Select cFacturiTemp Replace All rn With Recno() * Sterg toate liniile cu baza = 0 si tva = 0 in afara de prima linie pentru facturile cu valoare totala = 0 * Facturile care au valoare 0 Select id_fact, Min(rn) As rn, Sum(baza) As baza, Sum(TVA) As TVA ; From cFacturiTemp ; Group By id_fact ; Having Sum(baza) = 0 And Sum(TVA) = 0 ; Into Cursor cFacturi0 Select F.*, f0.rn As rn0 ; From cFacturiTemp F Left Join cFacturi0 f0 On F.id_fact = f0.id_fact ; Into Cursor cFacturitemp2 Readwrite Use In (Select('cFacturiTemp')) Use In (Select('cFacturi0')) Delete From cFacturitemp2 Where baza = 0 And TVA = 0 And (rn <> rn0 Or Isnull(rn0)) * Pun cota 20 pe facturile cu valoare 0, altfel apar cu 24% sau alta cota Update cFacturitemp2 Set cota = m.lnCotaTVAStandard Where baza = 0 And TVA = 0 Update cFacturitemp2 Set cota = 0 Where Inlist(TIP, 'LS', 'AS', 'ASI', 'N', 'V') * DELETE FROM cFacturiTemp WHERE baza = 0 AND tva = 0 AND RECNO() NOT in (Select rn FROM cFacturi0) && EROARE * Actualizez nrfact cu 0 in afara de prima aparitie a fiecarei facturi. S-au multiplicat din cauza join-ului cu cotele de TVA Select id_fact, Min(rn) As rn ; From cFacturitemp2 ; Group By id_fact ; Into Cursor cFacturi2 Update cFacturitemp2 Set NRFACT = 0 Where rn Not In (Select rn From cFacturi2) Use In (Select('cFacturi2')) Update cFacturitemp2 Set LOCALITATE = '' Where LOCALITATE = '' Select tippart, Cast(0 As i) As seq, cota, denp, cuip, TIP, tip_document, TIP_PERSOANA, ; TARA, COD_TARA, JUDET, COD_JUDET, LOCALITATE, STRADA, Bloc, SCARA, NUMAR, APART, ; Sum(NRFACT) As NRFACT, ; Round(Sum(baza), 0) As baza, ; Round(Sum(TVA), 0) As TVA ; From cFacturitemp2 ; Group By 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18 ; Order By tippart, denp, cota, TIP ; Into Cursor cFacturi Readwrite Use In (Select('cFacturiTemp2')) *!* Select j.tippart, Cast(0 As i) As seq, c.cota, j.denumire As denp, j.cod_fiscalfro As cuip, j.TIP, ; *!* IIF(j.tipdoc = 'F', 1, Iif(j.tipdoc = 'O', 2, Iif(j.tipdoc = 'Z', 3, 1))) As tip_document, ; *!* SUM(NRFACT) As NRFACT, ; *!* SUM(Iif(c.cota = 24, baza24, Iif(c.cota = 20, baza20, Iif(c.cota = 19, baza19, Iif(c.cota = 9, baza09, Iif(c.cota = 5, baza05, Iif(c.cota = 0, baza00, baza20))))))) As baza, ; *!* SUM(Iif(c.cota = 24, TVA24, Iif(c.cota = 20, TVA20, Iif(c.cota = 19, TVA19, Iif(c.cota = 9, TVA09, Iif(c.cota = 5, TVA05, Iif(c.cota = 0, 0, TVA20))))))) As TVA ; *!* FROM crsJTVA j, cCote c ; *!* WHERE Alltrim(j.TIP) In ('L','A','V','C','AI','N','LS','AS') ; *!* GROUP By 1,2,3,4,5,6,7 ; *!* ORDER By j.tippart, j.denumire, c.cota, j.TIP ; *!* INTO Cursor cFacturi Readwrite lnSeq = 1 lnTipPart = 0 Select cFacturi Scan If lnTipPart <> tippart lnSeq = 1 Else lnSeq = lnSeq + 1 Endif lnTipPart = cFacturi.tippart Replace seq With m.lnSeq In cFacturi Endscan Text To lcXDP Additive Textmerge Noshow Pretext 1
<><><><><> <> <><><><><> <>0<> Endtext * Sectiunea Facturi Set Textmerge On To Memvar lcXDP Additive Noshow \ lnTipPart = 0 lnNrFacturi = 0 Select cFacturi Scan * Exceptie : Pentru perioada 01.07.2016 - 31.12.2016 in cazul selectarii tip L pentru facturi emise catre persoane fizice, * cu valoare individuala/persoana mai mica sau egala cu 10.000 lei * Le-am sters la inceput *!* If cFacturi.tippart = 2 AND cFacturi.tip_persoana = 2 and cFacturi.TIP = 'L' And ABS(cFacturi.baza + cFacturi.TVA) <= 10000 AND m.llPerioada122016 && persoane fizice *!* Loop *!* Endif lnNrFacturi = lnNrFacturi + 1 If m.lnTipPart <> cFacturi.tippart If m.lnTipPart <> 0 \ Endif Do Case Case tippart = 1 \ Case tippart = 2 \ Case tippart = 3 \ Case tippart = 4 \ Endcase \ \<> Endif \ \ \ <> \ <> \ <> \ <> \ <> \ <> \ <> \ <> If cFacturi.tippart = 2 && persoane neinregistrate in scopuri TVA If ALLTRIM(cFacturi.TIP) = 'N' && persoane neinregistrate in scopuri TVA \ <> ENDIF \ \ <> \ <> \ <> \ <> \ <> \ <> \ <> \ Endif \ If cFacturi.tippart = 2 OR INLIST(ALLTRIM(cFacturi.tip), 'V', 'C') && persoane neinregistrate in scopuri TVA sau taxare inversa, completez produsele - nu am produse :(, doar nrfacturi, baza si tva \ \ \ 1 \ \ <> \ <> \ <> \ ENDIF && tippart = 2 OR INLIST(ALLTRIM(tip), 'V', 'C') \ lnTipPart = cFacturi.tippart ENDSCAN && cFacturi IF m.lnNrFacturi > 0 \ ENDIF * Sectiunea AMEF \ \ Select crsAMEF Scan \ \ <> \ <> IF tip <> 2 \ <> \ <> ENDIF \ <> \ 5<><> \ 9<><> \ 19<><> \ 20<><> \ Endscan && crsAMEF \ Select crsPersFizice Scan If Alltrim(TIP) == 'L' \ \ <> \ <><> \ <><> \ <><> \ <><> \ <><> Else \ \ <> \ <> Endif Endscan \ \ IF m.llExportSectiuneaI * Sectiunea I1 facturi simplificate si bonuri fiscale cu CUI \ \ \ Select crsSectiuneaI Scan lcTag = Iif(punct = '1.1', 'L', Iif(punct = '1.2', 'LI', Iif(punct = '1.3', 'A', Iif(punct = '1.4', 'AI', Iif(punct = '1.5', 'AB', 'L'))))) + Alltrim(Str(proctva)) && L24 \<<'<' + m.lcTag + '>'>><><>'>> Endscan \ \ * Sectiunea I2 Alte informatii \ \ Select crsFacturiAlocate Scan \ <><><><> Endscan \ \ \ <> Select crsFacturiEmise Scan \ <><><><> Endscan \ \ \ \ Sele crsFacturiEmiseTip Scan \ \ <> \ <> \ <> If ntip = 3 && autofacturare Select crsAutoFacturi Locate For Alltrim(crsAutoFacturi.seria) = Alltrim(crsFacturiEmiseTip.seria) And crsAutoFacturi.nr = crsFacturiEmiseTip.nr If Found() \ \ <><> \ <><> \ <><> \ <><> \ <><> \ Endif && FOUND Endif \ Endscan && crsFacturiEmiseTip \ \ \ \ <> Select crsFacturiTerti SCAN FOR punct = '2.3' \ <><><><><><> ENDSCAN \ \ \ \ <> Select crsFacturiTerti SCAN FOR punct = '2.4' \ <><><><><><> ENDSCAN \ \ * Sectiunea 4 Select crsSectiuneaI4 Locate For punct = '4.1' If Found() \ <><><><><> Endif && FOUND * Sectiunea 5 \ Select crsSectiuneaI4 Locate For punct = '5.1' If Found() \ <><><><><> Endif Locate For punct = '5.2' If Found() \ <><><><><> Endif Locate For punct = '5.3' If Found() \ <><><><><> Endif * Nu am adunat date despre sectiunea 6 si 7 If .F. \ \ \ \ \ 1 \ 4520 \ 1001 \ \ \ 201 \ \ \ \ 2 \ 4520 \ 1000 \ \ 90 \ \ \ \ Endif && .F. \ ENDIF && llExportSectiuneaI * Reprezentant fiscal \ \ \ <> \ <> \ <> \ <> \ <> \ <> \ \ \ \<> \<> \<> \<> \<> \<> \<> \<> \0 \<> \ \ \ \ \ \ \ Set Textmerge To Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/394.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D394 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp *========================================== Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d390.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Procedure do_executa *** EXPORT D394 Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcComunPath, lcFileName, lcFileNamePDF Local lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT, lcFisierXDP, lcFisierXLS, lcMesaj Local lcNumeFisier, lcRun, lcTempPath, llSucces, lnPos, loEx, lcCaenRevizie, lnCaenRevizie lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D394\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = m.gcBasePath lcCaleFisier = m.lcTempPath + "D394\" && c:\temp\D394\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& c:\temp\D394\2011_01\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Strtran(gcFirma, [ ], [_]) + "\" && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D394\2011_01\firma\ If !Directory(m.lcCaleFisierPDF) Md (m.lcCaleFisierPDF) Endif This.CaleFisierPDF = m.lcCaleFisierPDF llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !m.llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(Nvl(gofirma.cod_fiscal, '')), 'RO', '')) Endif lcCaenRevizie = NVL(goFirma.caen_revizie, '2') lnCaenRevizie = INT(VAL(m.lcCaenRevizie)) lcNumeFisier = "d394_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) + "_" + Padl(gnLuna, 2, "0") Do Case Case m.gnAn * 12 + m.gnLuna >= 2025 * 12 + 1 AND m.lnCaenRevizie >= 3 * Cod CAEN rev. 3 lcFisierPDFOriginal = lcComunPath + "d394_202501_v3.pdf" Case m.gnAn * 12 + m.gnLuna >= 2022 * 12 + 4 lcFisierPDFOriginal = lcComunPath + "d394_202204.pdf" Case m.gnAn * 12 + m.gnLuna >= 2020 * 12 + 9 lcFisierPDFOriginal = lcComunPath + "d394_202009.pdf" Case m.gnAn * 12 + m.gnLuna >= 2018 * 12 + 1 lcFisierPDFOriginal = lcComunPath + "d394_201801.pdf" Case m.gnAn * 12 + m.gnLuna >= 2017 * 12 + 1 lcFisierPDFOriginal = lcComunPath + "d394_201701.pdf" Case m.gnAn * 12 + m.gnLuna >= 2016 * 12 + 7 lcFisierPDFOriginal = lcComunPath + "d394_201607.pdf" Otherwise lcFisierPDFOriginal = lcComunPath + "d394_201607.pdf" Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcFileName + [.txt] lcFisierXLS = m.lcFileName + [.xls] If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif This.do_genereaza_xdp(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) Endif *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endproc && do_executa Procedure do_verifica_xml Local loProcess As "api_apprun" Of "process.vcx" Local lcAppPath, lcBilantValidatorFile, lcComunPath, lcFisierXML, lnPos lcAppPath = Addbs(gcAppPath) lcComunPath = m.lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If m.lnPos > 0 lcComunPath = Left(m.lcAppPath, m.lnPos) Endif lcComunPath = m.lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ lcBilantValidatorFile = m.lcComunPath + [dist\DUKIntegrator.jar] amessagebox('Validati fisierul PDF si salvati fisierul D394.xml in directorul ' + This.CaleFisierPDF + Chr(13) + Chr(10) + ; 'Dupa ce porneste validatorul ANAF, apasati validare in validator pentru a verifica fisierul XML.', 0 + 48, _Screen.Caption) lcFisierXML = Addbs(This.CaleFisierPDF) + 'D394.xml' If !File(m.lcFisierXML) amessagebox('Nu exista fisierul ' + m.lcFisierXML + Chr(13) + Chr(10) + 'Alegeti fisierul D394.xml!', 0 + 48, _Screen.Caption) lcFisierXML = Getfile('xml', 'D394.xml', 'Deschide', 0, 'Alegeti fisierul D394.xml') Endif loProcess = Newobject("api_apprun", "process.vcx") loProcess.icLaunchDir = Justpath(m.lcBilantValidatorFile) loProcess.iccommandline = [java -jar "DUKIntegrator.jar" ] + m.lcFisierXML *!* loProcess.launchappandwait() m.loProcess.launchapp() Endproc && do_verifica_xml Enddefine && D394_2016 ************************************************************************* Define Class D394 As Custom livb = 0 && baza livrari livt = 0 && tva livrari livnrf = 0 && numar facturi pentru livrari livtib = 0 && baza livrari taxare inversa livtit = 0 && tva livrari taxare inversa livtinrf = 0 && numar facturi pentru livrari taxare inversa achb = 0 && baza achizitii acht = 0 && tva achizitii achnrf = 0 && numar facturi pentru achizitii achtib = 0 && baza achizitii taxare inversa achtit = 0 && tva achizitii taxare inversa achtinrf = 0 && numar facturi pentru achizitii taxare inversa Total = 0 rectificativa = 0 TIP = 'L' Perioada = 1 NumarCoduriFiscale = 0 Procedure do_executa Lparameters tlSilent, tnNumarLuni *** tlSilent: .T. (DEFAULT .F.) Doar calculeaza D394, nu exporta XDP. pentru apelarea din D300 randurile 17.1 si 27.1 (nu vreau sa vad si pdf-ul inteligent D394) *** tnNumarLuni: 1,3,6,9,12 - pentru apelare din D300 Local loDecl As "frm_decl394" Local loFrmDoc As "frm_decl_tipdoc" Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcComunPath, lcConditieAct, lcConditieLuna, lcCursor Local lcFileName, lcFileNamePDF, lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT, lcFisierXDP Local lcFisierXLS, lcMesaj, lcNumeFisier, lcRun, lcSelect, lcSirId, lcSql, lcTempPath, lcTip Local llSucces, lnAn, lnLuna1, lnLuna2, lnLunaF, lnLunaI, lnNrLuni1, lnNrLuni2, lnNumarLuni Local lnPerioada, lnPos, lnSucces, loEx Local llSilent, llSucces llSilent = m.tlSilent lnNumarLuni = Iif(!Empty(m.tnNumarLuni), m.tnNumarLuni, 1) lcTip = Iif(m.lnNumarLuni = 1, "LUNAR", Iif(m.lnNumarLuni = 3, "TRIMESTRIAL", Iif(m.lnNumarLuni = 6, "SEMESTRIAL", "ANUAL"))) lcSelect = Select() *** EXPORT D394 lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D394\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = m.gcBasePath lcCaleFisier = m.lcTempPath + "D394\" && c:\temp\D394\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& c:\temp\D394\2011_01\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Strtran(gcFirma, [ ], [_]) + "\" && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D394\2011_01\firma\ If !Directory(m.lcCaleFisierPDF) Md (m.lcCaleFisierPDF) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif lcNumeFisier = "d394_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) + "_" + Padl(gnLuna, 2, "0") Do Case Case m.gnAn * 12 + m.gnLuna <= 2013 * 12 + 11 lcFisierPDFOriginal = lcComunPath + "d394.pdf" && d:\contafin\comuncontafin\d394.pdf Otherwise lcFisierPDFOriginal = lcComunPath + "d394_201312.pdf" && d:\contafin\comuncontafin\d394_201312.pdf Endcase If !m.llSilent This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast Endif lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcFileName + [.txt] lcFisierXLS = m.lcFileName + [.xls] *!* 21.02.2012 If !m.llSilent If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif Endif *!* 21.02.2012 ^ Private pounitate pounitate = Createobject("empty") AddProperty(pounitate, "an", gnAn) AddProperty(pounitate, "tip", m.lcTip) AddProperty(pounitate, "luniextra", 0) *!* 23.07.2010 AddProperty(pounitate, "tvanedeductibil", .F.) *!* 23.07.2010 ^ AddProperty(pounitate, "codi", Strtran(Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', ''), 'R', '')) AddProperty(pounitate, "deni", Nvl(Alltrim(gofirma.firma), '')) AddProperty(pounitate, "adr", Nvl(Alltrim(gofirma.adresa), '')) AddProperty(pounitate, "tel", Nvl(Alltrim(gofirma.telefon), '')) AddProperty(pounitate, "fax", Nvl(Alltrim(gofirma.fax), '')) AddProperty(pounitate, "email", Nvl(Alltrim(gofirma.email), '')) AddProperty(pounitate, "taraR", "") AddProperty(pounitate, "codiR", "") AddProperty(pounitate, "deniR", "") AddProperty(pounitate, "adrR", "") AddProperty(pounitate, "telR", "") AddProperty(pounitate, "faxR", "") AddProperty(pounitate, "emailR", "") AddProperty(pounitate, "numeD", "") AddProperty(pounitate, "functieD", "") AddProperty(pounitate, "rectificativa", 0) loDecl = Createobject("frm_decl394") loDecl.Show(1) If gnButon = 2 Return Endif *!* 05.11.2009 lnAn = pounitate.an lcTip = pounitate.TIP lnNumarLuni = Iif(m.lcTip = "TRIMESTRIAL", 3, Iif(m.lcTip = "SEMESTRIAL", 6, Iif(m.lcTip = "ANUAL", 12, 1))) This.TIP = Left(m.lcTip, 1) * Luna de inceput a perioadei * 1 = gnLuna * 3 = 1,4,7,10 * 6 = 1,7 * 12 = 1 lnPerioada = Ceil(m.gnLuna / m.lnNumarLuni) This.Perioada = m.lnPerioada lnLuna1 = (lnPerioada - 1) * lnNumarLuni + 1 lnLuna2 = lnPerioada * lnNumarLuni *** dataact lnLunaI = lnAn * 12 + lnLuna1 lnLunaF = lnAn * 12 + lnLuna2 *** dataact ^ *** luna/an contabil lnNrLuni1 = lnAn * 12 + lnLuna1 lnNrLuni2 = lnAn * 12 + lnLuna2 + pounitate.luniExtra *** luna/an contabil ^ *!* ID-URI DE TIPURI DOCUMENTE CARE REPREZINTA FACTURI If pounitate.luniExtra = 0 lcConditieLuna = [ (AN = ] + Alltrim(Str(m.lnAn)) + [ and (luna BETWEEN ] + Alltrim(Str(m.lnLuna1)) + [ and ] + Alltrim(Str(m.lnLuna2)) + [ ))] Else lcConditieLuna = [ (AN * 12 + LUNA BETWEEN ] + Alltrim(Str(m.lnNrLuni1)) + [ and ] + Alltrim(Str(m.lnNrLuni2)) + [)] Endif *** iau doar facturile din luna emiterii *!* lcConditieAct = [ and (extract(year from dataact)*12+extract(month from dataact) between ] + Alltrim(Str(m.lnLunaI)) + [ and ] + Alltrim(Str(m.lnLunaF)) + [)] lcConditieAct = [ and (extract(year from dataact)*12+extract(month from dataact) = an*12+luna)] Text To lcSql Textmerge Noshow SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC FROM vjv2010 WHERE <> <> <> UNION SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC FROM vjc2010 WHERE <> <> <> Endtext goLog.Log(lcSql) *!* AND SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) = 'RO' *!* 05.11.2009 ^ lnSucces = goExecutor.oExecute(lcSql, "crsFdoc") If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Update crsFDoc Set ales = 1 Where Alltrim(fdoc) = 'FACTURA' Go Top In crsFDoc loFrmDoc = Createobject("frm_decl_tipdoc", "394") loFrmDoc.Show(1) lcSirId = "" Select id_fdoc From crsFDoc With (Buffering = .T.) Where ales = 1 Into Cursor crsFdocTemp If _Tally = 0 amessagebox('Trebuie sa alegeti un tip de document!', 0 + 48, 'Atentie') Use In crsFDoc Use In crsFdocTemp Return Endif Use In crsFDoc Select crsFdocTemp Scan lcSirId = lcSirId + [, ] + Alltrim(Str(id_fdoc)) Endscan If !Empty(lcSirId) lcSirId = Substr(lcSirId, 2) Endif Use In crsFdocTemp *!* 05.11.2009 Text To lcSql Textmerge Noshow SELECT ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, ROUND(SUM(RO24B + RO20B + RO19B + RO9B + RO5B + RO24NB + RO20NB + RO9NB + RO5NB), 0) AS BAZA, ROUND(SUM(RO24T + RO20T + RO19T + RO9T + Ro5T + RO24NT + RO20NT + RO9NT + RO5NT), 0) AS TVA, ROUND(SUM(ROTI), 0) AS TIBAZA, 0 AS TITVA, SUM(case when ROTI = 0 then 1 else 0 end ) as NRFACT, SUM(case when ROTI <> 0 then 1 else 0 end ) as NRFACTTI FROM VJV2013 WHERE <> <> AND ID_FDOC IN (<>) <> GROUP BY ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', ''), SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2), DENUMIRE Endtext *!* AND SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) = 'RO' goLog.Log(lcSql) *!* 05.11.2009 ^ lcCursor = [crsJV] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Update crsJV Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) *!* 23.07.20010 RO24, ROSCN OPTIONAL *!* 05.11.2009 *!* [ SUM(RO19BCB + RO19BVB + RO19BFB + RO09BCB + RO09BVB + RO09BFB + RO05B) AS BAZA, ] Text To lcSql Textmerge Noshow SELECT ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', '') AS COD_FISCALFRO, SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) AS ATRIBUT_FISCAL, DENUMIRE, ROUND(SUM(RO24B + RO20B + RO19B + RO09B + RO05B + RO24NB + RO20NB + RO9NB + RO5NB <>), 0) AS BAZA, ROUND(SUM(RO24T + RO20T + RO19T + RO09T + RO05T + RO24NT + RO20NT + RO9NT + RO5NT), 0) AS TVA, ROUND(SUM(TI19B + TI09B + TI20B + TI24B), 0) as TIBAZA, ROUND(SUM(TI19T + TI09T + TI20T + TI24T), 0) as TITVA, SUM(case when TI19B = 0 and TI09B = 0 and TI20B = 0 and TI24B = 0 then 1 else 0 end ) as NRFACT, SUM(case when TI19B <> 0 or TI09B <> 0 or TI20B <> 0 or TI24B <> 0 then 1 else 0 end ) as NRFACTTI FROM VJC2013 WHERE <> <> AND ID_FDOC IN (<>) <> GROUP BY ID_PART, COD_FISCAL, REGEXP_REPLACE(COD_FISCAL, '[^[:digit:]]', ''), SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2), DENUMIRE Endtext *!* AND SUBSTR(TRIM(UPPER(COD_FISCAL)),1,2) = 'RO' goLog.Log(lcSql) *!* 05.11.2009 ^ *!* 23.07.20010 ^ lcCursor = [crsJC] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Update crsJC Set atribut_fiscal = '' Where Isdigit(atribut_fiscal) Create Cursor crsTipA (TIP c(1)) Insert Into crsTipA (TIP) Values ('A') If m.gnAn > 2011 Insert Into crsTipA (TIP) Values ('C') && ACHIZITII TAXARE INVERSA Endif Create Cursor crsTipL (TIP c(1)) Insert Into crsTipL (TIP) Values ('L') If m.gnAn > 2011 Insert Into crsTipL (TIP) Values ('V') && LIVRARI TAXARE INVERSA Endif Select b.TIP, id_part, Left(cod_fiscal, 30) As cod_fiscal, Left(cod_fiscalfro, 30) As cod_fiscalfro, Padr(Nvl(atribut_fiscal, ''), 2, ' ') As atribut_fiscal, denumire, ; Cast(Iif(b.TIP = 'A', baza, tibaza) As N(20)) As baza, ; Cast(Iif(b.TIP = 'A', TVA, titva) As N(20)) As TVA, ; Cast(Iif(b.TIP = 'A', NRFACT, NRFACTTI) As N(20)) As NRFACT ; From crsJC a, crsTipA b ; Where a.baza <> 0 Or a.TVA <> 0 Or NRFACT <> 0 Or a.tibaza <> 0 Or a.titva <> 0 Or NRFACTTI <> 0 ; && modificare v 2.5.26 Union ; Select b.TIP, id_part, Left(cod_fiscal, 30) As cod_fiscal, Left(cod_fiscalfro, 30) As cod_fiscalfro, Padr(Nvl(atribut_fiscal, ''), 2, ' ') As atribut_fiscal, denumire, ; Cast(Iif(b.TIP = 'L', baza, tibaza) As N(20)) As baza, ; Cast(Iif(b.TIP = 'L', TVA, titva) As N(20)) As TVA, ; Cast(Iif(b.TIP = 'L', NRFACT, NRFACTTI) As N(20)) As NRFACT ; From crsJV a, crsTipL b ; Where a.baza <> 0 Or a.TVA <> 0 Or NRFACT <> 0 Or a.tibaza <> 0 Or a.titva <> 0 Or NRFACTTI <> 0 ; && modificare v 2.5.26 : HAVING BAZA <> 0 Or TVA <> 0 OR TIBAZA <> 0 OR TITVA <> 0 Order By 1 Desc, 4 ; Into Cursor crsD394Temp Readwrite Use In (Select('crsTipA')) Use In (Select('crsTipL')) Use In (Select('crsJV')) Use In (Select('crsJC')) *** verificare coduri fiscale parteneri si alegere care dintre ei sa intre in D394 (coloana ales) *!* Create Cursor crsVerificareParteneri (ales L, denumire c(100) Null, cod_fiscal c(30) Null, Valid L Null, firma c(100) Null, cod c(100) Null, adresa c(250) Null, ; *!* judet c(100) Null, regcom c(30) Null, codpostal c(20) Null, telefon c(30) Null, fax c(30) Null, ; *!* datatvamfin c(30) Null, platitortvamfin L Null, VIES L Null, PlatitorTVA L Null, eroare c(250) Null, iscif L Null, duplicat L, atribut_fiscal c(2), stare c(100), atentie c(100), ; *!* cod_fiscalfro c(30) Null, id_part N(16)) Create Cursor crsVerificareParteneri (ales L, denumire c(100) Null, cod_fiscal c(30) Null, Valid L Null, firma c(100) Null, cod c(100) Null, adresa c(250) Null, ; JUDET c(100) Null, regcom c(30) Null, codpostal c(20) Null, telefon c(30) Null, fax c(30) Null, ; datatvamfin c(30) Null, platitortvamfin L Null, VIES L Null, PlatitorTVA L Null, eroare c(250) Null, iscif L Null, duplicat L, atribut_fiscal c(2), stare c(100), atentie c(100), cod_fiscalfro c(30) Null, id_part N(16), ; tvaincasare L, splittva L, inactiv L, Data D) Select Distinct id_part, cod_fiscal, cod_fiscalfro, atribut_fiscal, denumire ; From crsD394Temp Order By denumire ; Into Cursor crsCoduriFiscale Select crsVerificareParteneri Append From Dbf('crsCoduriFiscale') loVerificare = Createobject("verificarecod") && validare.prg Select crsVerificareParteneri Replace All ales With (atribut_fiscal = 'RO') *!* loVerificare = Createobject("verificarecod") && validare.prg *!* Select crsVerificareParteneri *!* Replace All IsCIF With loVerificare.IsCIF(COD_FISCAL) *!* Replace All Valid With Iif(IsCIF, loVerificare.validare('CIF', COD_FISCAL), loVerificare.validare('CNP', COD_FISCAL)) *!* Replace all ales with (IsCIF and valid and atribut_fiscal = 'RO') llSucces = .T. If !m.llSilent Local llValidare, llMFIN, llVIES, llAutoVerificare llValidare = .T. llMFIN = .T. llVIES = .F. llAutoVerificare = .F. loVerificareParteneri = Createobject("frm_verificare_parteneri", m.llValidare, m.llMFIN, m.llVIES, m.llAutoVerificare, .T., .T.) && parteneri.vcx loVerificareParteneri.lb_titlu_alb_b121.Caption = "D394 - Doar partenerii marcati ALES intra in declaratie! Verificati codurile fiscale!!" loVerificareParteneri.chkExperimental.Value = .T. loVerificareParteneri.do_verifica(.T., .F., .F.) loVerificareParteneri.Show(1) llSucces = (m.gnButon = 1) Endif If m.llSucces Select D.TIP, D.cod_fiscalfro As cod_fiscal, Max(D.denumire) As denumire, Sum(D.baza) As baza, Sum(D.TVA) As TVA, Sum(D.NRFACT) As NRFACT ; From crsD394Temp D Join crsVerificareParteneri V On D.id_part = V.id_part ; Where V.ales ; Group By D.TIP, D.cod_fiscalfro ; Order By 1 Desc, 3 ; Into Cursor crsD394 Use In (Select('crsVerificareParteneri')) Select crsD394 Calculate Sum(Iif(TIP = 'A', baza, 0)), Sum(Iif(TIP = 'A', TVA, 0)), Sum(Iif(TIP = 'A', NRFACT, 0)), ; Sum(Iif(TIP = 'C', baza, 0)), Sum(Iif(TIP = 'C', TVA, 0)), Sum(Iif(TIP = 'C', NRFACT, 0)), ; Sum(Iif(TIP = 'L', baza, 0)), Sum(Iif(TIP = 'L', TVA, 0)), Sum(Iif(TIP = 'L', NRFACT, 0)), ; Sum(Iif(TIP = 'V', baza, 0)), Sum(Iif(TIP = 'V', TVA, 0)), Sum(Iif(TIP = 'V', NRFACT, 0)) ; To This.achb, This.acht, This.achnrf, This.achtib, This.achtit, This.achtinrf, This.livb, This.livt, This.livnrf, This.livtib, This.livtit, This.livtinrf In crsD394 This.Total = This.achb + This.acht + This.achtib + This.achtit + This.livb + This.livt + This.livtib + This.livtit If !m.llSilent Select Distinct cod_fiscal From crsD394 Into Cursor crsCoduriFiscaleCnt This.NumarCoduriFiscale = _Tally Use In Select('crsCoduriFiscaleCnt') This.NumarCoduriFiscale = _Tally Use In Select('crsCoduriFiscale1') *!* am nume diferite cu acelasi cod fiscal in JV, JC sau in amandoua *!* exista nume fara cod fiscal??? (nu stiu de ce am pus conditia asta - le-am luat pe cele cu RO - au cod fiscal) *!* Select DISTINCT COD_FISCAL, Padr(Alltrim(Upper(denumire)),30,' ') As denumire, "RO" as atribut_fiscal ; *!* FROM crsD394 ; *!* ORDER By 1,2 ; *!* INTO Cursor crsCoduriFiscale *** This.do_verifica() Do Case Case m.gnAn <= 2011 This.do_genereaza_txt(lcFisierTXT) Case m.gnAn * 12 + m.gnLuna <= 2012 * 12 + 11 && 01.2012 - 11.2013 This.do_genereaza_xdp_201201(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) Endif Otherwise && 12.2013 - This.do_genereaza_xdp_201312(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) Endif Endcase This.do_genereaza_xls(m.lcFisierXLS) *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endif && m.llSilent Endif && llSucces Use In (Select('crsVerificareParteneri')) Use In Select('crsCoduriFiscale') Use In (Select('crsJV')) Use In (Select('crsJC')) Select (m.lcSelect) Endproc && do_executa *=========================================== Procedure do_verifica Local lcSelect lcSelect = Select() If Reccount('crsCoduriFiscale') > 0 Cursortoxml("crsCoduriFiscale", "lcXMLParteneri", 1, 0, 0, "1") Do verificare_parteneri With m.lcXMLParteneri, .T., .T. Endif Select (m.lcSelect) Endproc && do_verifica *=========================================== Procedure do_genereaza_xls Lparameters tcFisierXLS Local lcSelect lcSelect = Select() If Type('crsD394.nrfact') <> 'U' Select TIP, Left(Alltrim(cod_fiscal), 10) As cod_fiscal, Left(denumire, 100) As denumire, baza + TVA As Total, baza, TVA, NRFACT ; From crsD394 ; Where NRFACT <> 0 ; Order By 1 Desc, 3 ; Into Cursor cExportXLS Else Select TIP, Left(Alltrim(cod_fiscal), 10) As cod_fiscal, Left(denumire, 100) As denumire, baza + TVA As Total, baza, TVA ; From crsD394 ; Where baza <> 0 Or TVA <> 0; Order By 1 Desc, 3 ; Into Cursor cExportXLS Endif Select cExportXLS Copy To (m.tcFisierXLS) Type Xl5 *open_default_app(m.tcFisierXLS) Use In (Select('cExportXLS')) Select (m.lcSelect) Endproc && do_genereaza_xls *=========================================== Procedure do_genereaza_txt Lparameters tcFisierTXT Local lcDecla, lcDeclb, lcDir, lcDirA, lcDirB, lcFileA, lcFileB, lcFileNameA, lcFileNameB, lcPoint, lnPerioada lcPoint = Set("Point") Set Point To '.' lnPerioada = This.Perioada *!* fisierul in format din alte aplicatii Set Textmerge On To Memvar lcDecla1 Noshow With pounitate \394,<>,#<<'S' + Left(Alltrim(Str(m.lnPerioada)),1)>>#,<>,#<>#, \\#<>#,#<>#,#<>#,#<>#, \\<>,#<>#,#<>#,#<>#,#<>#,#<>#, \\<>,<>,<>,<>,<> Endwith Set Textmerge To *!* fisierul in format propriu D394 Set Textmerge On To Memvar lcDeclb1 Noshow With pounitate \ 2 \<>,#<<'S' + Left(Alltrim(Str(m.lnPerioada)),1)>>#,##,##,<>,#<>#, \\#<>#,#<>#,#<>#,#<>#, \\#<>#,#<>#, \\#<>#,<>,#<>#,#<>#,#<>#,#<>#,#<># Endwith Set Textmerge To *!* 2 *!* 2007,#S1#,##,##,1879855,#XACN GREU#,#JUD. CONSTANTA SECT. 1 LOC. AGIGEA STR. AGIGEA NR. 1 SC. B AP. 21#,#telefon#,#fax#,#email#,#nume declarant#,#functie declarant#,#RO#,1879855,#REPREZENTANT FISCAL#,#DOMICILIU REPREZENTANT FISCAL#,#TELEFON REPR#,#FAX REPR#,#EMAIL REPR# *!* 10117033,#MEDIA PRESS# *!* 13714478,#S.P.G.C. CERNAVODA# *!* STOP1 *!* 10117033,,174294.07,15690.45 *!* STOP2 *!* 13714478,,109.34,20.78 *!* fisierul in format din alte aplicatii Set Textmerge On To Memv lcDecla2 Noshow Select crsD394 Scan For baza <> 0 Or TVA <> 0 \#<>#,<>,#<>#,<>,<> Endscan Set Textmerge To *!* fisierul in format propriu D394 Select Distinct cod_fiscal, denumire From crsD394 Into Cursor crsCoduriFiscaleB Set Textmerge On To Memv lcDeclb2 Noshow Select crsCoduriFiscaleB Scan \<>,#<># Endscan Use In (Select('crsCoduriFiscaleB')) \STOP1 Select crsD394 Scan For TIP = 'A' And (baza <> 0 Or TVA <> 0) \<>,<>,<>,<> Endscan \STOP2 Select crsD394 Scan For TIP = 'L' And (baza <> 0 Or TVA <> 0) \<>,<>,<>,<> Endscan Set Textmerge To *!* fisierul in format din alte aplicatii lcDecla = m.lcDecla1 + Chr(13) + Chr(10) + m.lcDecla2 + Chr(13) + Chr(10) *!* fisierul in format propriu D394 lcDeclb = m.lcDeclb1 + Chr(13) + Chr(10) + m.lcDeclb2 + Chr(13) + Chr(10) Set Point To &lcPoint *!* 394_S107_J1879855.txt lcFileNameA = "394_S" + Alltrim(Str(m.lnPerioada)) + Right(Str(pounitate.an, 4), 2) + "_J" + Alltrim(pounitate.codi) + ".txt" *!* D394_2007S1_1879855.txt lcFileNameB = "D394_" + Alltrim(Str(pounitate.an, 4)) + "S" + Alltrim(Str(m.lnPerioada)) + "_" + Alltrim(pounitate.codi) + ".txt" lcDir = "C:\Program Files\D394\" If !Directory(lcDir) lcDir = Getdir("c:\", "D394", "Alegeti directorul D394\") Endif If !Empty(lcDir) lcDir = Addbs(lcDir) lcDirA = lcDir + "394_UF\" lcDirB = lcDir + "394\" If !Directory(lcDirA) Md (lcDirA) Endif If !Directory(lcDirB) Md (lcDirB) Endif lcFileA = Addbs(lcDirA) + lcFileNameA Strtofile(lcDecla, lcFileA) lcFileB = Addbs(lcDirB) + lcFileNameB Strtofile(lcDeclb, lcFileB) amessagebox('Fisierul a fost exportat in ' + lcFileB + Chr(13) + Chr(10) + [Intrati in aplicatia D394 si apasati pe butonul ] + ; ["Restaurare fisier"], 0 + 64, 'Declaratia 394') Endif Endproc && do_genereaza_txt *=========================================== Procedure do_genereaza_xdp_201312 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou lcSelect = Select() lcTip = This.TIP && L/T/S/A (Lunara/Trimestriala/Semestriala/Anuala) lnRectificativa = This.rectificativa && 0/1 lnLIVB = This.livb lnLIVT = This.livt lnLIVNRF = This.livnrf lnACHB = This.achb lnACHT = This.acht lnACHNRF = This.achnrf lnLIVTIB = This.livtib lnLIVTIT = This.livtit lnLIVTINRF = This.livtinrf lnACHTIB = This.achtib lnACHTIT = This.achtit lnACHTINRF = This.achtinrf lnTotal = This.Total lnNrOperatori = This.NumarCoduriFiscale lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcXDP = "" Text To lcXDP Additive Textmerge Noshow Pretext 1
<> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> 0 0 <> <> 0 0 <> <> <> <> <> <> <> Endtext lnSecventa = 0 Select crsD394 Scan For NRFACT <> 0 lcCodFiscal = Alltrim(cod_fiscal) lcDenumire = Alltrim(Substr(XmlSpecialCharacters(RemoveCharacters(denumire, .T.)), 1, 180)) lcTip = Alltrim(Upper(TIP)) lnSecventa = lnSecventa + 1 lcBaza = Alltrim(Str(baza, 20, 0)) lcTVA = Alltrim(Str(TVA, 20, 0)) lcAjutor = Alltrim(Str(baza + TVA, 20, 0)) lcNrFact = Alltrim(Str(NRFACT, 20, 0)) Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> <> <> <> <> 0 <> 1 Endtext If lnSecventa = 1 Text To lcXDP Additive Textmerge Noshow Pretext 1 <>--<> Endtext Endif Endscan Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> Endtext Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/394.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D390 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_201312 *=========================================== Procedure do_genereaza_xdp_201201 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou lcSelect = Select() lcTip = This.TIP && L/T/S/A (Lunara/Trimestriala/Semestriala/Anuala) lnRectificativa = This.rectificativa && 0/1 lnLIVB = This.livb lnLIVT = This.livt lnLIVNRF = This.livnrf lnACHB = This.achb lnACHT = This.acht lnACHNRF = This.achnrf lnLIVTIB = This.livtib lnLIVTIT = This.livtit lnLIVTINRF = This.livtinrf lnACHTIB = This.achtib lnACHTIT = This.achtit lnACHTINRF = This.achtinrf lnTotal = This.Total lnNrOperatori = This.NumarCoduriFiscale lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcXDP = "" Text To lcXDP Additive Textmerge Noshow Pretext 1
<> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> 0 0 <> <> 0 0 <> <> <> Endtext lnSecventa = 0 Select crsD394 Scan For baza <> 0 Or TVA <> 0 lcCodFiscal = Alltrim(cod_fiscal) lcDenumire = Alltrim(Substr(XmlSpecialCharacters(denumire), 1, 180)) lcTip = Alltrim(Upper(TIP)) lnSecventa = lnSecventa + 1 lcBaza = Alltrim(Str(baza, 20, 0)) lcTVA = Alltrim(Str(TVA, 20, 0)) lcAjutor = Alltrim(Str(baza + TVA, 20, 0)) Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> <> <> <> 0 <> 1 Endtext If lnSecventa = 1 Text To lcXDP Additive Textmerge Noshow Pretext 1 <>--<> Endtext Endif Endscan Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> Endtext Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/394.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D390 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_201201 *========================================== Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d390.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Enddefine && D394 *************************************************************************8 *=========================================== Procedure viz_decl100 Parameters nDecl, tlTrim && 100/102 sau ambele (0); trimestriala *!* Codurile randurilor cu sume: decl. 100: *!* rd. 2 (106) *!* rd. 6 (121) *!* rd. 7 (602) *!* rd. 12 (604) *!* rd. 22 (612) *!* rd. 24 (810) Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local llTrim, lcValabil, loLogCursoare, ldDataScadenta loLogCursoare = Createobject("oLogCursoare") *!* If Mod(gnLuna,3)=0 *!* llTrim = .T. *!* Else *!* llTrim=.F. *!* Endif ***---- folosesc nomenclatorul pt semestrul in care am deschis luna contabila, sau daca nu exista, caut ultimul nomenclator valabil If gnLuna <= 6 lcValabil = '01' + Substr(Str(gnAn, 4, 0), 3, 2) Else lcValabil = '02' + Substr(Str(gnAn, 4, 0), 3, 2) Endif lcCursor = [crsTest] lcSql = [select count(*) as nr_rand from decl_100_102 where valabil = ] + lcValabil If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) lnNr_rand = nr_rand loLogCursoare.inchideCursor(lcCursor) If lnNr_rand = 0 && daca nu s-a gasit nomenclatorul pt semestrul in curs, se ia ultimul nomenclator lcCursor = [crsMax] lcSql = [ select substr(valabil,1,2)+substr(valabil,3,2)*12 as nr_luni, valabil from (select distinct valabil from decl_100_102)] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select Max(nr_luni) As nrLuni_max From (lcCursor) Into Cursor crsMax2 Select crsMax2 lnNrLuni_max = nrLuni_max Select valabil From (lcCursor) Where nr_luni = lnNrLuni_max Into Cursor crsValabil Select crsValabil lcValabil = valabil loLogCursoare.inchideCursor(lcCursor) loLogCursoare.inchideCursor([crsMax2]) loLogCursoare.inchideCursor([crsValabil]) Endif ***---- llTrim = tlTrim If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 pnLunaF = 3 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 pnLunaF = 6 pnLunaPrec = 3 pnAnPrec = gnAn Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 pnLunaF = 9 pnLunaPrec = 6 pnAnPrec = gnAn Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 pnLunaF = 12 pnLunaPrec = 9 pnAnPrec = gnAn Endcase Else pnLunaI = gnLuna pnLunaF = gnLuna If gnLuna = 1 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Else pnLunaPrec = gnLuna - 1 pnAnPrec = gnAn Endif Endif ldDataScadenta = Gomonth(Date(m.gnAn, m.pnLunaF, 25), 1) Private poDecl Store '' To poDecl Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] lcSql = [select d.*, 00000000000 as datorat, 00000000000 as recuperat, 00000000000 as deductibil, 00000000000 as bonificatie, ] + ; [00000000000 as sponsorizari, 00000000000 as costamef, 00000000000 as reducere ] + ; [ from decl_100_102 d where valabil = '] + lcValabil + [' order by id_decl] lcCursor = [cDeclTemp] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select *, m.ldDataScadenta As datascad From cDeclTemp Into Cursor cDecl Readwrite Update cDecl Set nr_evidenta = '' Use In (Select('cDeclTemp')) ***--------------------------------- If !m.llTrim * Setare analitice rd. 14, 23, 25 - decl. 100 Create Cursor crs446_447_604(Cont c(20)) Insert Into crs446_447_604(Cont) Values ("") Insert Into crs446_447_604(Cont) Values ("446") Insert Into crs446_447_604(Cont) Values ("447") Select crs446_447_604 Locate For Cont = gcContD100_604 lcCursorAcont = update_plAcont(m.gcContD100_604, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_604 Readwrite Update crsAcont_604 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_604 Locate For acont = m.gcAcontD100_604 *- Create Cursor crs446_447_612 (Cont c(20)) Insert Into crs446_447_612(Cont) Values ("") Insert Into crs446_447_612(Cont) Values ("446") Insert Into crs446_447_612(Cont) Values ("447") Select crs446_447_612 Locate For Cont = m.gcContD100_612 lcCursorAcont = update_plAcont(gcContD100_612, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_612 Readwrite Update crsAcont_612 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_612 Locate For acont = gcAcontD100_612 *- Create Cursor crs446_447_628 (Cont c(20)) Insert Into crs446_447_628(Cont) Values ("") Insert Into crs446_447_628(Cont) Values ("446") Insert Into crs446_447_628(Cont) Values ("447") Select crs446_447_628 Locate For Cont = gcContD100_628 lcCursorAcont = update_plAcont(gcContD100_628, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_628 Readwrite Update crsAcont_628 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_628 Locate For acont = gcAcontD100_628 *- Create Cursor crs446_447_810 (Cont c(20)) Insert Into crs446_447_810(Cont) Values ("") Insert Into crs446_447_810(Cont) Values ("446") Insert Into crs446_447_810(Cont) Values ("447") Select crs446_447_810 Locate For Cont = gcContD100_810 lcCursorAcont = update_plAcont(gcContD100_810, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_810 Readwrite Update crsAcont_810 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_810 Locate For acont = gcAcontD100_810 losc = Createobject("frm_decl100_102_setacont") losc.Show(1) Endif && !llTrim *!* IF buton = 2 *!* RETURN *!* ENDIF ***--------------------------------- If !llTrim *** Rand 12 (604)Imp.pe ven.-dividende distribuite la PF lcSql = [SELECT NVL(rulcred,0) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD14 ] + ; [ and acont = ?gcACONTDECL100_RD14 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsDiv] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln12 = rulcred Select cDecl Locate For Alltrim(cod_imp) = '604' && '14' - (604)Imp.pe ven.-dividende distribuite la PF If Found() Replace datorat With m.ln12 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *** Rand 20 (612)Imp.pe ven.obt.din Romania de nerezidenti - PF lcSql = [SELECT NVL(rulcred,0) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD23 ] + ; [ and acont = ?gcACONTDECL100_RD23 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsRed] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln20 = rulcred Select cDecl Locate For Alltrim(cod_imp) = '612' && '23' - (612)Imp.pe ven.obt.din Romania de nerezidenti - PF If Found() Replace datorat With m.ln20 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *** Rand 22 (810)Varsam.de la PJ pt.pers.cu handicap neincadrate lcSql = [SELECT cont, acont, rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD25 ] + ; [ and acont = ?gcACONTDECL100_RD25 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsHand] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln22 = rulcred Select cDecl Locate For Alltrim(cod_imp) = '810' && '25' - (810)Varsam.de la PJ pt.pers.cu handicap neincadrate If Found() Replace datorat With m.ln22 Endif loLogCursoare.inchideCursor(lcCursor) Endif && nDecl = 100 ***----------------------------- If m.llTrim *** Rand 02 (103)Imp.pe profit datorat de PJ romane lcSql = [SELECT sum(ruldeb) as ruldeb ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '691' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs691] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln2 = ruldeb Use In (Select(lcCursor)) Select cDecl Locate For Alltrim(cod_imp) = '103' If Found() Replace datorat With ln2 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *!* modificare v 2.5.32 *** Rand 06 (121)Imp.pe ven. microintreprinderilor lcSql = [SELECT sum(ruldeb) as ruldeb ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '698' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs698] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln2 = ruldeb Use In (Select(lcCursor)) Select cDecl Locate For Alltrim(cod_imp) = '121' If Found() Replace datorat With ln2 Endif loLogCursoare.inchideCursor(lcCursor) *!* modificare v 2.5.32 ^ Endif && nDecl = 100 trim Select cDecl Do Case Case m.gnAn * 12 + m.gnLuna >= 2024 * 12 + 1 lodt = Createobject('frm_decl100_2024', nDecl, llTrim) Case m.gnAn * 12 + m.gnLuna >= 2020 * 12 + 3 lodt = Createobject('frm_decl100_2020', nDecl, llTrim) Otherwise lodt = Createobject('frm_decl100_2016', nDecl, llTrim) Endcase lodt.Show(1) Endproc && viz_decl100 *=========================================== Procedure viz_decl100_102 Parameters nDecl, tlTrim && 100/102 sau ambele (0); trimestriala *!* Codurile randurilor cu sume: decl. 100: *!* rd. 2 (106) *!* rd. 6 (121) *!* rd. 7 (602) *!* rd. 12 (604) *!* rd. 22 (612) *!* rd. 24 (810) *!* Decl. 102: 1 (412), 4(411), 5(416), 6(432), 13(431), 17(439), 18(422), 19(421), 20(423) Private pnLunaI, pnLunaF, pnLunaPrec, pnAnPrec Local llTrim, lcValabil, loLogCursoare, ldDataScadenta loLogCursoare = Createobject("oLogCursoare") *!* If Mod(gnLuna,3)=0 *!* llTrim = .T. *!* Else *!* llTrim=.F. *!* Endif ***---- folosesc nomenclatorul pt semestrul in care am deschis luna contabila, sau daca nu exista, caut ultimul nomenclator valabil If gnLuna <= 6 lcValabil = '01' + Substr(Str(gnAn, 4, 0), 3, 2) Else lcValabil = '02' + Substr(Str(gnAn, 4, 0), 3, 2) Endif lcCursor = [crsTest] lcSql = [select count(*) as nr_rand from decl_100_102 where valabil = ] + lcValabil If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) lnNr_rand = nr_rand loLogCursoare.inchideCursor(lcCursor) If lnNr_rand = 0 && daca nu s-a gasit nomenclatorul pt semestrul in curs, se ia ultimul nomenclator lcCursor = [crsMax] lcSql = [ select substr(valabil,1,2)+substr(valabil,3,2)*12 as nr_luni, valabil from (select distinct valabil from decl_100_102)] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select Max(nr_luni) As nrLuni_max From (lcCursor) Into Cursor crsMax2 Select crsMax2 lnNrLuni_max = nrLuni_max Select valabil From (lcCursor) Where nr_luni = lnNrLuni_max Into Cursor crsValabil Select crsValabil lcValabil = valabil loLogCursoare.inchideCursor(lcCursor) loLogCursoare.inchideCursor([crsMax2]) loLogCursoare.inchideCursor([crsValabil]) Endif ***---- llTrim = tlTrim If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 pnLunaF = 3 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 pnLunaF = 6 pnLunaPrec = 3 pnAnPrec = gnAn Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 pnLunaF = 9 pnLunaPrec = 6 pnAnPrec = gnAn Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 pnLunaF = 12 pnLunaPrec = 9 pnAnPrec = gnAn Endcase Else pnLunaI = gnLuna pnLunaF = gnLuna If gnLuna = 1 pnLunaPrec = 12 pnAnPrec = gnAn - 1 Else pnLunaPrec = gnLuna - 1 pnAnPrec = gnAn Endif Endif ldDataScadenta = Gomonth(Date(m.gnAn, m.pnLunaF, 25), 1) Private poDecl Store '' To poDecl Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, lcFiltruOriginal, llAfiseaza lcSchema1 = [] Do Case Case nDecl = 100 lcSql = [select d.*, 00000000000 as datorat, 00000000000 as recuperat ] + ; [ from decl_100_102 d where id_decl <= 32 and valabil = '] + lcValabil + [' order by id_decl] Case nDecl = 102 lcSql = [select d.*, 00000000000 as datorat, 00000000000 as recuperat ] + ; [ from decl_100_102 d where id_decl > 32 and valabil = '] + lcValabil + [' order by id_decl] Otherwise lcSql = [select d.*, 00000000000 as datorat, 00000000000 as recuperat ] + ; [ from decl_100_102 d where valabil = '] + lcValabil + [' order by id_decl] Endcase lcCursor = [cDeclTemp] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select *, m.ldDataScadenta As datascad From cDeclTemp Into Cursor cDecl Readwrite Update cDecl Set nr_evidenta = '' Use In (Select('cDeclTemp')) ***--------------------------------- If (m.nDecl = 100 Or Empty(m.nDecl)) And !m.llTrim * Setare analitice rd. 14, 23, 25 - decl. 100 Create Cursor crs446_447 (Cont c(20)) Insert Into crs446_447 (Cont) Values ("") Insert Into crs446_447 (Cont) Values ("446") Insert Into crs446_447 (Cont) Values ("447") Select crs446_447 Locate For Cont = gcContDecl100_rd14 lcCursorAcont = update_plAcont(gcContDecl100_rd14, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont Readwrite Update crsAcont Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont Locate For acont = gcAcontDecl100_rd14 *- Create Cursor crs446_447_2 (Cont c(20)) Insert Into crs446_447_2 (Cont) Values ("") Insert Into crs446_447_2 (Cont) Values ("446") Insert Into crs446_447_2 (Cont) Values ("447") Select crs446_447_2 Locate For Cont = gcContDecl100_rd23 lcCursorAcont = update_plAcont(gcContDecl100_rd23, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_2 Readwrite Update crsAcont_2 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_2 Locate For acont = gcAcontDecl100_rd23 *- Create Cursor crs446_447_3 (Cont c(20)) Insert Into crs446_447_3 (Cont) Values ("") Insert Into crs446_447_3 (Cont) Values ("446") Insert Into crs446_447_3 (Cont) Values ("447") Select crs446_447_3 Locate For Cont = gcContDecl100_rd25 lcCursorAcont = update_plAcont(gcContDecl100_rd25, gnAn) && updateserver.prg Select * From (lcCursorAcont) Into Cursor crsAcont_3 Readwrite Update crsAcont_3 Set denumire = "" Where Alltrim(acont) = "-1" Select crsAcont_3 Locate For acont = gcAcontDecl100_rd25 losc = Createobject("frm_decl100_102_setacont") losc.Show(1) Endif && !llTrim *!* IF buton = 2 *!* RETURN *!* ENDIF ***--------------------------------- If (nDecl = 100 Or Empty(nDecl)) And !llTrim *!* IF .F. *!* *** ct.444 IMPOZIT PE VENIT DE NATURA SALARIILOR *!* lcSql = [SELECT rulcred ] +; *!* [ from ]+Iif(glEMama,[vbalmama],[vbal]) +; *!* [ where cont = '444' ]+; *!* [ and AN = ?gnAn AND LUNA= ?gnLuna] + gcCondSucursala *!* lcCursor = [crs444] && TVA de recuperat *!* If !goExecutor.oExecuta(lcSql,lcCursor) *!* Return *!* Endif *!* Select (lcCursor) *!* ln9 = rulcred *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' And id_decl <=32 && '09' (602) - Imp.pe ven.-salarii - rulcred 444 *!* If Found() *!* Replace datorat With ln9 *!* Endif *!* loLogCursoare.inchideCursor(lcCursor) *!* ENDIF && .F. ***----------------------------- *** Rand 12 (604)Imp.pe ven.-dividende distribuite la PF lcSql = [SELECT NVL(rulcred,0) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD14 ] + ; [ and acont = ?gcACONTDECL100_RD14 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsDiv] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln12 = rulcred Select cDecl Locate For Alltrim(Rand) = '12' And id_decl <= 32 && '14' - (604)Imp.pe ven.-dividende distribuite la PF If Found() Replace datorat With m.ln12 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *** Rand 20 (612)Imp.pe ven.obt.din Romania de nerezidenti - PF lcSql = [SELECT NVL(rulcred,0) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD23 ] + ; [ and acont = ?gcACONTDECL100_RD23 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsRed] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln20 = rulcred Select cDecl Locate For Alltrim(Rand) = '20' And id_decl <= 32 && '23' - (612)Imp.pe ven.obt.din Romania de nerezidenti - PF If Found() Replace datorat With m.ln20 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *** Rand 22 (810)Varsam.de la PJ pt.pers.cu handicap neincadrate lcSql = [SELECT cont, acont, rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = ?gcCONTDECL100_RD25 ] + ; [ and acont = ?gcACONTDECL100_RD25 ] + ; [ and AN = ?gnAn AND LUNA= ?gnLuna ] + gcCondSucursala lcCursor = [crsHand] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln22 = rulcred Select cDecl Locate For Alltrim(Rand) = '22' And id_decl <= 32 && '25' - (810)Varsam.de la PJ pt.pers.cu handicap neincadrate If Found() Replace datorat With m.ln22 Endif loLogCursoare.inchideCursor(lcCursor) Endif && nDecl = 100 ***----------------------------- If (nDecl = 100 Or Empty(nDecl)) And llTrim *** Rand 02 (103)Imp.pe profit datorat de PJ romane lcSql = [SELECT sum(ruldeb) as ruldeb ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '691' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs691] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln2 = ruldeb Use In (Select(lcCursor)) Select cDecl Locate For Alltrim(Rand) = '02' And id_decl <= 32 If Found() Replace datorat With ln2 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- *!* modificare v 2.5.32 *** Rand 06 (121)Imp.pe ven. microintreprinderilor lcSql = [SELECT sum(ruldeb) as ruldeb ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '698' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs698] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln2 = ruldeb Use In (Select(lcCursor)) Select cDecl Locate For Alltrim(Rand) = '06' And id_decl <= 32 If Found() Replace datorat With ln2 Endif loLogCursoare.inchideCursor(lcCursor) *!* modificare v 2.5.32 ^ ***----------------------------- *!* IF .F. *!* *** ct.444 IMPOZIT PE VENIT DE NATURA SALARIILOR *!* lcSql = [SELECT sum(rulcred) as rulcred ] +; *!* [ from ]+Iif(glEMama,[vbalmama],[vbal]) +; *!* [ where cont = '444' ]+; *!* [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala *!* lcCursor = [crs444] && TVA de recuperat *!* If !goExecutor.oExecuta(lcSql,lcCursor) *!* Return *!* Endif *!* SELECT (lcCursor) *!* ln9 = rulcred *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' And id_decl <=33 && '09' (602) *!* If Found() *!* Replace datorat With ln9 *!* Endif *!* loLogCursoare.inchideCursor(lcCursor) *!* ENDIF && .F. ***----------------------------- Endif && nDecl = 100 trim If (nDecl = 102 Or Empty(nDecl)) && 01 CAS PERSONAL - rulaj creditor cont 4312 pe perioada celor 3 luni ale trimestrulu la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '4312' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala && [ and AN = ?gnAn AND (LUNA=?pnLuna1 or LUNA=?pnLuna2 or LUNA=?pnLuna3)] + gcCondSucursala lcCursor = [crs4312] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln1 = rulcred Select cDecl Locate For Alltrim(Rand) = '01' And id_decl >= 33 && (412) If Found() Replace datorat With ln1 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 04 - rulaj creditor cont 4311 analitic 1 pe perioada celor 3 luni ale trimestrului la suma datorata lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4311' and acont = '1' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs4] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln04 = rulcred Select cDecl Locate For Alltrim(Rand) = '04' And id_decl >= 33 && If Found() Replace datorat With ln04 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 05 - rulaj creditor cont 4311 analitic 2 pe perioada celor 3 luni ale trimestrulu la suma datorata && si la suma deductibila se trece suma inregistrarilor din luna de la inregistrarile 4311.2=423/4312/444/4372/4314 && adunata cu soldul debitor al contului 4311.2 al lunii precedente trimestrului. lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4311' and acont = '2' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs5] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln05 = rulcred Select cDecl Locate For Alltrim(Rand) = '05' And id_decl >= 33 If Found() Replace datorat With ln05 Endif loLogCursoare.inchideCursor(lcCursor) ***--- lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4311' and ascd='2' and scc in ('423','4312','444','4372','4314')] + gcCondSucursala lcCursor = [crs5_r] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln05_r = suma loLogCursoare.inchideCursor(lcCursor) lcSql = [SELECT solddeb ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4311' and acont='2' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsB] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln05_b = solddeb ln05_r = ln05_r + ln05_b If ln05_r > ln05 ln05_r = ln05 Endif Select cDecl Locate For Alltrim(Rand) = '05' And id_decl >= 33 If Found() Replace recuperat With ln05_r Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 06 -rulaj creditor cont 4314 pe perioada celor 3 luni ale trimestrului la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '4314' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF] + gcCondSucursala lcCursor = [crs4314] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln6 = rulcred Select cDecl Locate For Alltrim(Rand) = '06' And id_decl >= 33 If Found() Replace datorat With ln6 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 13 - rulaj creditor cont 4313 analitic1 pe perioada celor 3 luni ale trimestrului la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4313' and acont = '1' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs13] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln13 = rulcred Select cDecl Locate For Alltrim(Rand) = '13' And id_decl >= 33 If Found() Replace datorat With ln13 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 17 - rulaj creditor cont 4313 analitic 2 pe perioada celor 3 luni ale trimestrului la suma datorata && si la suma deductibila se trece suma inregistrarilor din luna de la inregistrarile 4313.2=423/4312/444/4372/4314 && adunata cu soldul debitor al contului 4313.2 al lunii precedente trimestrului lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4313' and acont = '2' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs17] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln17 = rulcred Select cDecl Locate For Alltrim(Rand) = '17' And id_decl >= 33 If Found() Replace datorat With ln17 Endif loLogCursoare.inchideCursor(lcCursor) ***--- lcSql = [ select nvl(sum(suma),0) as suma ] + ; [from act ] + ; [where an=?gnAn ] + ; [and luna=?gnLuna ] + ; [and sters=0 ] + ; [and scd='4313' and ascd='2' and scc in ('423','4312','444','4372','4314')] + gcCondSucursala lcCursor = [crs17_r] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln17_r = suma loLogCursoare.inchideCursor(lcCursor) lcSql = [SELECT solddeb ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4313' and acont='2' ] + ; [ and AN = ?pnAnPrec AND LUNA= ?pnLunaPrec] + gcCondSucursala lcCursor = [crsB] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln17_b = solddeb ln17_r = ln17_r + ln17_b If ln17_r > ln17 ln17_r = ln17 Endif Select cDecl Locate For Alltrim(Rand) = '17' And id_decl >= 33 If Found() Replace recuperat With ln17_r Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 18 - rulaj creditor cont 4372 pe perioada celor 3 luni ale trimestrului la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where cont = '4372' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF] + gcCondSucursala lcCursor = [crs4372] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln18 = rulcred Select cDecl Locate For Alltrim(Rand) = '18' And id_decl >= 33 If Found() Replace datorat With ln18 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 19 - rulaj creditor cont 4371 analitic 1 pe perioada celor 3 luni ale trimestrului la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4371' and acont = '1' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF ] + gcCondSucursala lcCursor = [crs19] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln19 = rulcred Select cDecl Locate For Alltrim(Rand) = '19' And id_decl >= 33 If Found() Replace datorat With ln19 Endif loLogCursoare.inchideCursor(lcCursor) ***----------------------------- && 20 - rulaj creditor cont 4371 analitic 2 pe perioada celor 3 luni ale trimestrului la suma datorada lcSql = [SELECT sum(rulcred) as rulcred ] + ; [ from ] + Iif(glEMama, [vbalanamama], [vbalana]) + ; [ where cont = '4371' and acont = '2' ] + ; [ and an*12+luna between ?gnAn*12+?pnLunaI and ?gnAn*12+?pnLunaF] + gcCondSucursala lcCursor = [crs20] If !goExecutor.oExecuta(lcSql, lcCursor) Return Endif Select (lcCursor) ln20 = rulcred Select cDecl Locate For Alltrim(Rand) = '20' And id_decl >= 33 If Found() Replace datorat With ln20 Endif loLogCursoare.inchideCursor(lcCursor) Endif && nDecl = 102 trim Select cDecl If m.gnAn >= 2016 lodt = Createobject('frm_decl100_2016', nDecl, llTrim) Else lodt = Createobject('frm_decl100_102', nDecl, llTrim) Endif If nDecl = 100 lodt.lb_titlu_alb_b121.Caption = "100 DECLARATIE PRIVIND OBLIGATIILE DE PLATA LA BS" Endif If nDecl = 102 lodt.lb_titlu_alb_b121.Caption = "102 DECLARATIE PRIVIND OBLIGATIILE DE PLATA LA BASFS" Endif lodt.Show(1) Endproc && viz_decl100_102 *========================================== Procedure export_decl Parameters tcTabel, tnDecl, tlTrim Local lcSir, lcDirTabele, lcFisUnitate, lcCodFiscal, lcDirDecl, lcFile, llTrim, llAreAngajati lcSir = '' llTrim = tlTrim llAreAngajati = .F. gcDecl_caleExport = "C:\Program Files\Declaratii fiscale " + Alltrim(Str(gnAn)) If !Directory(gcDecl_caleExport) gcDecl_caleExport = Getdir("C:", "Directorul Declaratii fiscale", "Declaratii fiscale") Endif If Empty(gcDecl_caleExport) Return Endif lcDirTabele = Addbs(Alltrim(gcDecl_caleExport)) + Alltrim(gofirma.firma) + "\" lcFisUnitate = lcDirTabele + "Unitate.dbf" If !File(lcFisUnitate) amessage("Nu ati salvat Date de identificare unitate!", 0 + 48, _Screen.Caption) Return Endif Use (lcFisUnitate) In 0 Alias unitate Select unitate lcCodFiscal = Alltrim(Str(codi)) Use In unitate lcDirDecl = Addbs(Alltrim(gcDecl_caleExport)) + lcCodFiscal ***--- && Nr sal Private pnLunaI, pnNrMedSal Store 0 To pnLunaI, pnNrMedSal If llTrim Do Case Case Inlist(gnLuna, 1, 2, 3) pnLunaI = 1 Case Inlist(gnLuna, 4, 5, 6) pnLunaI = 4 Case Inlist(gnLuna, 7, 8, 9) pnLunaI = 7 Case Inlist(gnLuna, 10, 11, 12) pnLunaI = 10 Endcase lcSql = [begin PACK_MG_EVOLUTIE.nr_med_salariati_per(?pnLunaI, ?gnAn, ?gnLuna, ?gnAn, ?@pnNrMedSal); end;] Else lcSql = [begin PACK_MG_EVOLUTIE.nr_med_salariati_per(?gnLuna, ?gnAn, ?gnLuna, ?gnAn, ?@pnNrMedSal); end;] Endif lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, "Eroare") Return Endif If pnNrMedSal > 0 llAreAngajati = .T. Endif ***--- *** creez unitate.txt Set Textmerge To lcFile = lcDirTabele + "adresa.txt" Set Textmerge On To (lcFile) Noshow Use (lcFisUnitate) In 0 Alias unitate Select unitate Go Top lcSir = "##,#" + Alltrim(Str(codi)) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(adr) + "#,#" + ; Alltrim(telf) + "#,#" + ; Alltrim(banca) + "#,#" + ; Alltrim(Cont) + "#,#" + ; "#,##,##,#" + ; Alltrim(intocmitf) + "#,#" + ; Alltrim(calIntoc) + "#," + ; Alltrim(Str(caen)) \\<> Set Textmerge To Wait Window "S-a exportat adresa.txt..." Timeout 1 *** creez Dec100T.txt Set Textmerge To lcFile = lcDirTabele + "\Dec100T.txt" Set Textmerge On To (lcFile) Noshow lcSir = '' * lcSir = lcSir + '300,,' + PADL(gnLuna,2,'0') + ',' + ALLTRIM(STR(gnAn,4,0)) + ',,,' lcSir = lcCodFiscal + ',' + Padl(gnLuna, 2, '0') + ',' + Alltrim(Str(gnAn, 4, 0)) + ',' Select (tcTabel) Scan For(!Empty(Nvl(datorat, 0)) Or !Empty(Nvl(recuperat, 0))) Or (llAreAngajati And id_decl <= 32 And Alltrim(Rand) = '06') Or (llAreAngajati And id_decl > 33 And Inlist(Alltrim(Rand), '18', '19', '20')) If id_decl <= 32 && decl. 100 lcSir = lcSir + ; Iif(Nvl(inactivD, 0) <> 1, 'BS,' + Substr(denumire, 2, 3) + ',' + Alltrim(Str(datorat, 15, 0)) + [,,,,250908,], []) Endif If id_decl > 33 && decl. 102 lcSir = lcSir + ; Iif(Nvl(inactivD, 0) <> 1, 'CO,' + Substr(denumire, 2, 3) + ',' + Alltrim(Str(datorat, 15, 0)) + [,] + ; Iif(!Empty(Nvl(recuperat, 0)), Iif(Nvl(inactivR, 0) <> 1, Alltrim(Str(recuperat, 15, 0)), []), []) + ; [,,,250908,], []) Endif Endscan Select unitate * lcSir = lcSir + ALLTRIM(STR(caen))+',#N#,#'+ALLTRIM(banca)+'#,#'+ALLTRIM(cont) + '#' * lcSir = lcSir + Alltrim(Str(caen))+',#N#' Use In unitate *!* IF !EMPTY(lcSir) *!* lcSir = LEFT(lcSir,LEN(lcSir)-1) *!* ENDIF lcSir = lcSir + Chr(13) + Chr(10) \\<> Set Textmerge To Wait Window "S-a exportat Dec100T.txt..." Timeout 1 lcA = lcDirTabele + "\" + "adresa.txt" lcD = lcDirTabele + "\" + "dec100T.txt" If !Directory(lcDirDecl) Md (lcDirDecl) Endif lcFisAdresa = lcDirDecl + "\adresa.txt" lcfisDec100T = lcDirDecl + "\dec100T.txt" Copy File (lcA) To (lcFisAdresa) Copy File (lcD) To (lcfisDec100T) amessagebox([Fisierele au fost exportate in directorul ] + Alltrim(Addbs(Justpath(lcfisDec100T))) + Chr(13) + Chr(10) + ; [Intrati in programul de Declaratii Fiscale si selectati Declaratia 100], 0 + 64, 'Decl. 100') Endproc && export_decl ********************************************************* *** DECLARATIA 390 RECAPITULATIVA PRIVIND LIVRARILE / ACHIZITIILE / PRESTARILE INTRACOMUNITARE ********************************************************* Procedure viz_decl390 loD390 = Createobject("D390") loD390.do_executa() Endproc Define Class D390 As Custom nTotalAB = 0 nTotalAS = 0 nTotalLB = 0 nTotalLS = 0 nTotalLT = 0 nTotal = 0 nNrOperatori = 0 nNrPagini = 0 *========================================== Procedure do_genereaza_txt_201902 Lparameters tcFisierTXT Local lcAn, lcCodFiscal, lcCodFiscalF, lcDenumire, lcFisier, lcLuna, lcSelect, lcSuma, lcTara, lcTip Local lnNrOperatori, lnNrPagini, lnTotal, lnTotalAB, lnTotalAS, lnTotalLB, lnTotalLS, lnTotalLT Local lcDenumire, lcAdresa, lcTelefon, lcEmail lcSelect = Select() lnTotalAB = This.nTotalAB lnTotalAS = This.nTotalAS lnTotalLB = This.nTotalLB lnTotalLS = This.nTotalLS lnTotalLT = This.nTotalLT lnTotal = This.nTotal lnNrPagini = This.nNrPagini lnNrOperatori = This.nNrOperatori lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcFisier = "" lcDenumire = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.antet), .T.)) lcAdresa = XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.adresa), .T.)) lcTelefon = Alltrim(gofirma.telefon) lcEmail = Alltrim(Lower(gofirma.email)) Set Textmerge On To Memvar lcFisier Noshow \390,<>,<>,<>,#<>#,#<>#,#<>#,#<># Select crsD390 Scan lcTara = Substr(cod_fiscal, 1, 2) If Isalpha(Left(lcTara, 1)) If !Isalpha(Substr(lcTara, 2, 1)) lcTara = Left(lcTara, 1) Endif Else lcTara = "" Endif lcCodFiscal = Alltrim(Substr(cod_fiscal, Len(lcTara) + 1)) lcDenumire = Alltrim(Substr(denumire, 1, 180)) lcTip = Alltrim(Upper(TIP)) lcSuma = Alltrim(Str(suma)) \#<>#,#<>#,#<>#,#<>#,<> Endscan Set Textmerge To Wait Window "Se exporta datele in format TXT" Nowait Strtofile(lcFisier, tcFisierTXT) Endproc && do_genereaza_txt_201902 *========================================== Procedure do_genereaza_txt Lparameters tcFisierTXT Local lcAn, lcCodFiscal, lcCodFiscalF, lcDenumire, lcFisier, lcLuna, lcSelect, lcSuma, lcTara, lcTip Local lnNrOperatori, lnNrPagini, lnTotal, lnTotalAB, lnTotalAS, lnTotalLB, lnTotalLS, lnTotalLT lcSelect = Select() lnTotalAB = This.nTotalAB lnTotalAS = This.nTotalAS lnTotalLB = This.nTotalLB lnTotalLS = This.nTotalLS lnTotalLT = This.nTotalLT lnTotal = This.nTotal lnNrPagini = This.nNrPagini lnNrOperatori = This.nNrOperatori lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcFisier = "" Set Textmerge On To Memvar lcFisier Noshow \390,<>,<>,<>,##,<>,<>,<>,<>,<>,<>,<>,<> Select crsD390 Scan lcTara = Substr(cod_fiscal, 1, 2) If Isalpha(Left(lcTara, 1)) If !Isalpha(Substr(lcTara, 2, 1)) lcTara = Left(lcTara, 1) Endif Else lcTara = "" Endif lcCodFiscal = Alltrim(Substr(cod_fiscal, Len(lcTara) + 1)) lcDenumire = Alltrim(Substr(denumire, 1, 180)) lcTip = Alltrim(Upper(TIP)) lcSuma = Alltrim(Str(suma)) \#<>#,#<>#,#<>#,#<>#,<> Endscan Set Textmerge To Wait Window "Se exporta datele in format TXT" Nowait Strtofile(lcFisier, tcFisierTXT) Endproc && do_genereaza_txt *========================================== Procedure do_genereaza_xdp_201902 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcAn, lcCodFiscal, lcCodFiscalF, lcDenumire, lcLuna, lcSelect, lcSuma, lcTara, lcTip, lcXDP Local lnNrOperatori, lnNrPagini, lnSecventa, lnTotal, lnTotalAB, lnTotalAS, lnTotalLB, lnTotalLS, lnTotalLT lcSelect = Select() lnTotalAB = This.nTotalAB lnTotalAS = This.nTotalAS lnTotalLB = This.nTotalLB lnTotalLS = This.nTotalLS lnTotalLT = This.nTotalLT lnTotal = This.nTotal lnNrPagini = This.nNrPagini lnNrOperatori = This.nNrOperatori lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcXDP = "" Text To lcXDP Additive Textmerge Noshow Pretext 1
0 <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> Endtext lnSecventa = 0 Select crsD390 Scan lcTara = Substr(cod_fiscal, 1, 2) If Isalpha(Left(lcTara, 1)) If !Isalpha(Substr(lcTara, 2, 1)) lcTara = Left(lcTara, 1) Endif Else lcTara = "" Endif lcCodFiscal = Alltrim(Substr(cod_fiscal, Len(lcTara) + 1)) lcDenumire = Alltrim(Substr(XmlSpecialCharacters(RemoveCharacters(denumire, .T.)), 1, 180)) lcTip = Alltrim(Upper(TIP)) lnSecventa = lnSecventa + 1 lcSuma = Alltrim(Str(suma)) Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> <> <> <> Endtext Endscan Text To lcXDP Additive Textmerge Noshow Pretext 1 <> 1 <> <> <> Endtext Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/390.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D390 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_201902 Procedure do_genereaza_xdp Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcAn, lcCodFiscal, lcCodFiscalF, lcDenumire, lcLuna, lcSelect, lcSuma, lcTara, lcTip, lcXDP Local lnNrOperatori, lnNrPagini, lnSecventa, lnTotal, lnTotalAB, lnTotalAS, lnTotalLB, lnTotalLS, lnTotalLT lcSelect = Select() lnTotalAB = This.nTotalAB lnTotalAS = This.nTotalAS lnTotalLB = This.nTotalLB lnTotalLS = This.nTotalLS lnTotalLT = This.nTotalLT lnTotal = This.nTotal lnNrPagini = This.nNrPagini lnNrOperatori = This.nNrOperatori lcCodFiscalF = Alltrim(gofirma.codfiscalfro) lcLuna = Padl(Alltrim(Str(gnLuna)), 2, [0]) lcAn = Alltrim(Str(gnAn)) lcXDP = "" Text To lcXDP Additive Textmerge Noshow Pretext 1
0 <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> <> Endtext lnSecventa = 0 Select crsD390 Scan lcTara = Substr(cod_fiscal, 1, 2) If Isalpha(Left(lcTara, 1)) If !Isalpha(Substr(lcTara, 2, 1)) lcTara = Left(lcTara, 1) Endif Else lcTara = "" Endif lcCodFiscal = Alltrim(Substr(cod_fiscal, Len(lcTara) + 1)) lcDenumire = Alltrim(Substr(XmlSpecialCharacters(RemoveCharacters(denumire, .T.)), 1, 180)) lcTip = Alltrim(Upper(TIP)) lnSecventa = lnSecventa + 1 lcSuma = Alltrim(Str(suma)) Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> <> <> <> <> Endtext Endscan Text To lcXDP Additive Textmerge Noshow Pretext 1 <> 1 <> <> <> Endtext Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else open_default_app("http://static.anaf.ro/static/10/Anaf/Declaratii_R/390.html") amessagebox('Nu exista fisierul ' + m.lcFisierPDFOriginal + CRLF + ; 'Copiati pdf-ul inteligent D390 de pe website-ul ANAF in directorul ' + Justpath(m.lcFisierPDFOriginal) + CRLF + ; 'cu numele ' + Justfname(m.lcFisierPDFOriginal) + '.', 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp *========================================== Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d390.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF *========================================== Procedure do_executa Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcCodFiscal, lcComunPath, lcCursor, lcCursorA Local lcCursorL, lcDenumire, lcFileName, lcFileNamePDF, lcFisier, lcFisierPDFNou Local lcFisierPDFOriginal, lcFisierTXT, lcFisierXDP, lcMesaj, lcNumeFisier, lcRun, lcSelect, lcSqlA Local lcSqlL, lcSuma, lcTara, lcTempPath, lcTip, lcXDP, llSucces, lnNrOperatori, lnNrPagini Local lnPos, lnSecventa, lnSucces, lnTotal, lnTotalAB, lnTotalAS, lnTotalLB, lnTotalLS, lnTotalLT Local loEx lcSelect = Select() *** EXPORT D390 lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D390\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = Addbs(m.gcBasePath) lcCaleFisier = m.lcTempPath + "D390\" && c:\temp\D390\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& c:\temp\D390\2011_01\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Strtran(gcFirma, [ ], [_]) + "\" && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisierPDF) Md (m.lcCaleFisierPDF) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif lcNumeFisier = "d390_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) + "_" + Padl(gnLuna, 2, "0") lcFisierPDFOriginal = lcComunPath + "d390.pdf" && d:\contafin\comuncontafin\d390.pdf Do Case Case m.gnAn * 12 + m.gnLuna >= 2020 * 12 + 2 lcFisierPDFOriginal = lcComunPath + "d390_201902.pdf" Case m.gnAn * 12 + m.gnLuna >= 2017 * 12 + 1 lcFisierPDFOriginal = lcComunPath + "d390_2017.pdf" && d:\contafin\comuncontafin\d390_2017.pdf Otherwise lcFisierPDFOriginal = lcComunPath + "d390.pdf" && d:\contafin\comuncontafin\d390.pdf Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] lcFisierTXT = m.lcFileName + [.txt] If File(lcFisierTXT) Delete File (lcFisierTXT) Endif If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif lcCursorA = [crsd390A] lcCursorL = [crsd390L] lcSqlA = [select id_part, replace(cod_fiscal,CHR(32),'') as cod_fiscal, denumire, ] + ; [ ROUND(sum(cebb)) as ceb, ROUND(sum(cesb)) as ces ] + ; [ from vjc2010 ] + ; [ where an = ?gnAn and luna = ?gnLuna and (cebb <> 0 or cesb <> 0) ] + ; [ group by id_part, replace(cod_fiscal,CHR(32),''), denumire, (case when cebb <> 0 then 'A' else 'S' end) ] + ; [ order by cod_fiscal] llSucces = goExecutor.oExecuta(lcSqlA, lcCursorA) If llSucces lcSqlL = [select id_part, replace(cod_fiscal,CHR(32),'') as cod_fiscal, denumire, ] + ; [ ROUND(sum(ceoptr)) as cet, ] + ; [ ROUND(sum(CESCDD1)) as ceb, ROUND(sum(CESVDD+CESVFDD+CESVFS)) as ces from vjv2010 ] + ; [where an = ?gnAn and luna = ?gnLuna and (ceoptr <> 0 or CESCDD1 <> 0 or CESVDD <> 0 or CESVFDD <> 0 or CESVFS <> 0) ] + ; [group by id_part, cod_fiscal, denumire ] + ; [order by cod_fiscal] llSucces = goExecutor.oExecuta(lcSqlL, lcCursorL) Endif If !llSucces Return Endif Create Cursor crsTipA (TIP c(1), ORDINE N(1)) Insert Into crsTipA (TIP, ORDINE) Values ('A', 1) Insert Into crsTipA (TIP, ORDINE) Values ('S', 2) Create Cursor crsTipL (TIP c(1), ORDINE N(1)) Insert Into crsTipL (TIP, ORDINE) Values ('L', 3) Insert Into crsTipL (TIP, ORDINE) Values ('P', 4) Insert Into crsTipL (TIP, ORDINE) Values ('T', 5) Select b.ORDINE, b.TIP, id_part, cod_fiscal, denumire, Cast(Iif(b.TIP = 'A', ceb, ces) As N(20)) As suma ; From crsd390A a, crsTipA b ; Union ; Select b.ORDINE, b.TIP, id_part, cod_fiscal, denumire, Cast(Iif(b.TIP = 'L', ceb, Iif(b.TIP = 'P', ces, cet)) As N(20)) As suma ; From crsd390L a, crsTipL b ; Order By 1, 2, 5 ; Into Cursor crsD390 Readwrite Use In (Select('crsTipA')) Use In (Select('crsTipL')) Use In (Select('crsd390A')) Use In (Select('crsd390L')) Update crsD390 Set cod_fiscal = Nvl(cod_fiscal, ''), denumire = Nvl(denumire, ''), suma = Nvl(suma, 0) Delete From crsD390 Where suma = 0 *** TOTALURI Select Sum(Cast(Iif(TIP = 'A', suma, 0) As N(20))) As TotalAB, ; Sum(Cast(Iif(TIP = 'S', suma, 0) As N(20))) As TotalAS, ; Sum(Cast(Iif(TIP = 'L', suma, 0) As N(20))) As TotalLB, ; Sum(Cast(Iif(TIP = 'P', suma, 0) As N(20))) As TotalLS, ; Sum(Cast(Iif(TIP = 'T', suma, 0) As N(20))) As TotalLT ; From crsD390 ; Into Cursor crsTotal Go Top In crsTotal This.nTotalAB = crsTotal.TotalAB This.nTotalAS = crsTotal.TotalAS This.nTotalLB = crsTotal.TotalLB This.nTotalLS = crsTotal.TotalLS This.nTotalLT = crsTotal.TotalLT Use In (Select('crsTotal')) This.nTotal = This.nTotalAB + This.nTotalAS + This.nTotalLB + This.nTotalLS + This.nTotalLT Select Distinct id_part From crsD390 Into Cursor crsTotalOperatori This.nNrOperatori = _Tally This.nNrPagini = 1 + Ceiling((This.nNrOperatori - 22) / 26) Use In (Select('crsTotalOperatori')) *** TOTALURI ^ Do Case Case m.gnAn * 12 + m.gnLuna >= 2020 * 12 + 2 This.do_genereaza_xdp_201902(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) This.do_genereaza_txt_201902(lcFisierTXT) Otherwise This.do_genereaza_xdp(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) This.do_genereaza_txt(lcFisierTXT) Endcase Use In (Select('crsd390')) If File(m.lcFisierXDP) And File(m.lcFisierPDFNou) open_default_app(lcFisierXDP) Endif *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Select (m.lcSelect) Endproc Enddefine && D390 ********************************************************* *** DECLARATIA 101 Declaratie privind impozitul pe profit ********************************************************* Procedure viz_decl101 Local loD101 loD101 = Createobject("D101") loD101.do_executa() Endproc && vizualizare Define Class D101 As Custom Procedure do_executa Private pnCA, pcPerioada, pnAnul, pnLuna1, pnLuna2 Local loBackupXML As "backupxml" Local loil As "frm_decl101_perioada" Local losc As "frm_decl101" Local lcCursor, lcPerioade, lcSql, lcXMLFileName, llRestoredBackupSet Local lnSucces pcPerioada = "" pnCA = 0 && (cifra de afaceri folosita in formula 3/1000 CA la rd. 43 Sume reprezentând sponsorizare si/sau mecenat, burse private, în limita prevazuta de lege) pnAnul = gnAn pnLuna1 = 1 pnLuna2 = 12 ******************************************************************************** llRestoredBackupSet = .F. lcXMLFileName = "d101_" + Padl(m.gnAn, 4, '0') + "_" + Padl(m.gnLuna, 2, '0') loBackupXML = Createobject("backupxml", m.lcXMLFileName) && proceduri_comune.prg If loBackupXML.ExistsBackupSet() If amessagebox('Exista D101 salvata anterior.' + Chr(13) + Chr(10) + 'Doriti sa o reincarcati?', 4 + 32, _Screen.Caption) = 6 llRestoredBackupSet = loBackupXML.RestoreBackupSet() Endif Endif ******************************************************************************** If !m.llRestoredBackupSet pcPerioada = '' lcPerioade = '01-' + Padl(gnLuna, 2, '0') + ',' + ; Iif(m.gnLuna = 12, '02-12,04-12,07-12,10-12', '') loil = Createobject("frm_decl101_perioada") loil.cb_perioada.RowSource = m.lcPerioade loil.cb_perioada.Value = Getwordnum(m.lcPerioade, 1, ',') && 01-LL loil.Show(1) Do Case Case gnAn >= 2024 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1224' order by ordine] lcProceduraCalculare = 'calculare_2024' Case gnAn >= 2021 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1221' order by ordine] lcProceduraCalculare = 'calculare_2021' Case gnAn >= 2020 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1220' order by ordine] lcProceduraCalculare = 'calculare_2020' Case gnAn >= 2018 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1218' order by ordine] lcProceduraCalculare = 'calculare_2018' Case gnAn >= 2017 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1217' order by ordine] lcProceduraCalculare = 'calculare_2017' Case gnAn >= 2016 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1216' order by ordine] lcProceduraCalculare = 'calculare_2016' Case gnAn >= 2014 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1214' order by ordine] lcProceduraCalculare = 'calculare_2014' Case gnAn >= 2012 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1212' order by ordine] lcProceduraCalculare = 'calculare_2012' Case gnAn >= 2011 lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1211' order by ordine] lcProceduraCalculare = 'calculare_2012' Otherwise lcSql = [select d.*, 0000000000.00 as l1, 0000000000.00 as l2 ] + ; [ from decl_101 d where valabil = '1210' order by ordine] lcProceduraCalculare = 'calculare_2012' Endcase lcCursor = [cDecl] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif pnAnul = m.gnAn pnLuna1 = Int(Val(Left(m.pcPerioada, 2))) pnLuna2 = Int(Val(Substr(m.pcPerioada, 4))) This.&lcProceduraCalculare(m.pnAnul, m.pnLuna2) Select cDecl Replace All l2 With suma If m.pnLuna1 <> 1 && 10-12 This.&lcProceduraCalculare(m.pnAnul, m.pnLuna1 - 1) Select cDecl Replace All l1 With suma Replace All suma With l2 - l1 Endif Endif && llRestoredBackupSet Select cDecl losc = Createobject("frm_decl101") If m.pnLuna1 = 1 losc._grdrow1.cl1.Visible = .F. losc._grdrow1.cl2.Visible = .F. Endif losc.Show(1) If m.gnButon = 1 loBackupXML.SaveBackupSet("cDecl") loBackupXML.SavePrivateVariables("pcPerioada,pnCA,pnAnul,pnLuna1,pnLuna2") Endif && BUTON = 1 Endproc && do_executa ********************************************** Procedure calculare_2024 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2024_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2018, entitati mici/medii/mari pnId_setCur = 0 && -218 la 12/2024 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 50 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn50 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn50) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '50' If Found() Replace suma With Round(Nvl(m.pn50, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2024 ********************************************** Procedure calculare_2021 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2018_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2018, entitati mici/medii/mari pnId_setCur = 0 && -165 la 12/2018 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 49 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn49 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn49) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '49' If Found() Replace suma With Round(Nvl(m.pn49, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2021 ********************************************** Procedure calculare_2020 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2018_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2018, entitati mici/medii/mari pnId_setCur = 0 && -165 la 12/2018 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 52 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn52 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn52) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '52' If Found() Replace suma With Round(Nvl(m.pn52, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2020 ********************************************** Procedure calculare_2018 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2018_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2018, entitati mici/medii/mari pnId_setCur = 0 && -165 la 12/2018 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 47 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn47 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn47) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '47' If Found() Replace suma With Round(Nvl(m.pn47, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2018 ********************************************** Procedure calculare_2017 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2015_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2015, entitati mici/medii/mari pnId_setCur = 0 && -142 la 12/2015 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 47 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn47 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn47) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '47' If Found() Replace suma With Round(Nvl(m.pn47, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2017 ********************************************** Procedure calculare_2016 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2015_2_R_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2015, entitati mici/medii/mari pnId_setCur = 0 && -142 la 12/2015 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '16' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '42' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '52' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '59' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif *!* Case m.lcRand = '57' && venituri extraordinare *!* ln7 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '07' *!* If Found() *!* Replace suma With m.ln7 *!* Endif *!* Case m.lcRand = '58' && cheltuieli extraordinare *!* ln8 = valoare *!* Select cDecl *!* Locate For Alltrim(Rand) = '08' *!* If Found() *!* Replace suma With m.ln8 *!* Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) && Veniturile si cheltuielile extraordinare nu mai apar in Contul de Profit si Pierdere 12/2015 ln7 = 0 ln8 = 0 * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 23 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln23 = 0 If m.llSucces Select crs691 ln23 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '23' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln23 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 23 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln23 Endif * Rd 25 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln25 = 0 If m.llSucces Select crs6581 ln25 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '25' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln25, 0) Endif *--- * RD 26 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln26 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln23 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln26 = m.lnProtocol - m.lnProtocolLimita ln26 = Max(m.ln26, 0) Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln26, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 27 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln27 = 0 If m.llSucces Select crs6582 ln27 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '27' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln27, 0) Endif * Rd 47 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn47 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn47) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '47' If Found() Replace suma With Round(Nvl(m.pn47, 0), 0) Endif Endif *!* * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 *!* * TSD 698 30 sept *!* lcSql = [select sum(totdeb) as suma ] + ; *!* [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; *!* [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; *!* [ and cont = '698'] *!* pn51 = 0 *!* lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) *!* If m.lnSucces < 0 *!* amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) *!* Else *!* Select cDecl *!* Locate For Alltrim(Rand) = '51' *!* If Found() *!* Replace suma With Round(Nvl(m.pn51, 0), 0) *!* Endif *!* Endif * Rd 13 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln13 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln13 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '13' If Found() Replace suma With Round(Nvl(m.ln13, 0), 0) Endif Endif Endproc && calculare_2016 ********************************************** Procedure calculare_2014 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln16, ln2, ln26, ln28, ln29 Local ln30, ln4, ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita, lnRezInPlus Local lnRezMaxAn, lnRezMaxTotal, lnSucces Private pn1061c, pn1061t, pn50, pn51, pnCA, pnCapSoc, pnProfitBrut pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2013_2_0_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2013 pnId_setCur = 0 && -121 la 12/2013 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '12' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '35' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '45' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '52' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif Case m.lcRand = '57' && venituri extraordinare ln7 = valoare Select cDecl Locate For Alltrim(Rand) = '07' If Found() Replace suma With m.ln7 Endif Case m.lcRand = '58' && cheltuieli extraordinare ln8 = valoare Select cDecl Locate For Alltrim(Rand) = '08' If Found() Replace suma With m.ln8 Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 24 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln26 = 0 If m.llSucces Select crs691 ln26 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '26' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln26 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 24 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln26 Endif * Rd 28 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln28 = 0 If m.llSucces Select crs6581 ln28 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '28' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln28, 0) Endif *--- * RD 27 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln29 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln26 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln29 = m.lnProtocol - m.lnProtocolLimita ln29 = Max(m.ln28, 0) Endif Select cDecl Locate For Alltrim(Rand) = '29' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln29, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 30 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln30 = 0 If m.llSucces Select crs6582 ln30 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '30' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln30, 0) Endif * Rd 50 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn50 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn50) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '50' If Found() Replace suma With Round(Nvl(m.pn50, 0), 0) Endif Endif * Rd 51 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 * TSD 698 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '698'] pn51 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn51) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '51' If Found() Replace suma With Round(Nvl(m.pn51, 0), 0) Endif Endif * Rd 16 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else ln16 = 0 If m.pnProfitBrut > 0 lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln16 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Endif Select cDecl Locate For Alltrim(Rand) = '16' If Found() Replace suma With Round(Nvl(m.ln16, 0), 0) Endif Endif Endproc && calculare_2014 ********************************************** Procedure calculare_2012 Parameters tnAnul, tnLuna * Generez Contul de Profit si Pierdere pentru venituri, cheltuieli exploatare, financiare, extraordinare Local lcCursor, lcField, lcRand, lcSel, lcSql, llSucces, ln1, ln10, ln2, ln24, ln26, ln27, ln28, ln4 Local ln5, ln7, ln8, lnBazaProtocol, lnProtocol, lnProtocolLimita Private pcId_butonCur, pnCount, pnCumul, pnId_sectie, pnId_setCur, pnId_venchelt pnCumul = 1 pnId_sectie = 0 pnId_venchelt = 0 pnCount = 0 pcId_butonCur = [2013_2_0_20_0] && ultimul formular 20, a fost generat pentru semestrul II 2013 pnId_setCur = 0 && -121 la 12/2013 lcSql = [begin pack_sitfin.get_id_set(?pcId_butonCur, ?@pnId_setCur); end;] llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif lcSql = [begin PACK_MG_EVOLUTIE.GET_SET(?pnId_setCur, ?@pnCount); end;] && copii din mg_indicatori in temporarul mg_tmp_indicatori llSucces = goExecutor.oExecuta(lcSql) If !m.llSucces Return Endif If m.pnCount = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine indicatori!', 0 + 48, "Atentie") Return Endif lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(m.tnLuna)) + [,] + Alltrim(Str(m.tnAnul)) + [,] + Alltrim(Str(pnCumul)) + [,] + Alltrim(Str(pnId_sectie)) + [,] + Alltrim(Str(pnId_venchelt)) + [)}] * lcSel = [{call PACK_MG_EVOLUTIE.GEN_MG_INDICATORI(?gnLuna, ?gnAn, ?gnLuna,?gnAn, ?pnCumul, ?pnId_sectie, ?pnId_venchelt}] && ODBC error: sintax error or access violation lcCursor = 'crsContProfit' llSucces = goExecutor.oExecuta(lcSel, lcCursor) If !m.llSucces Return Endif Select crsContProfit If Reccount() = 0 amessagebox('Setul Cont Profit si Pierdere ' + pcId_butonCur + ' nu contine informatii!', 0 + 48, "Atentie") Return Endif lcField = Field(7, 'crsContProfit') Select Rand, nume_ind, Round(&lcField, 0) As valoare ; From crsContProfit ; Order By Rand ; Into Cursor cContProfit Readwrite && denominare If 12 * gnAn + gnLuna <= 12 * 2005 + 6 Select cContProfit Replace All valoare With Round(valoare / 1000, 0) Endif Use In (Select('crsContProfit')) Select cContProfit Scan lcRand = Alltrim(Rand) Do Case Case m.lcRand = '01' && cifra de afaceri * CIFRA DE AFACERI pentru formula rd. 45 (sponsorizari in limita 3/1000 din CA) * rd 45 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) pnCA = valoare Case m.lcRand = '12' && venituri din exploatare ln1 = valoare Select cDecl Locate For Alltrim(Rand) = '01' If Found() Replace suma With m.ln1 Endif Case m.lcRand = '35' && cheltuieli din exploatare ln2 = valoare Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With m.ln2 Endif Case m.lcRand = '45' && venituri financiare ln4 = valoare Select cDecl Locate For Alltrim(Rand) = '04' If Found() Replace suma With m.ln4 Endif Case m.lcRand = '52' && cheltuieli financiare ln5 = valoare Select cDecl Locate For Alltrim(Rand) = '05' If Found() Replace suma With m.ln5 Endif Case m.lcRand = '57' && venituri extraordinare ln7 = valoare Select cDecl Locate For Alltrim(Rand) = '07' If Found() Replace suma With m.ln7 Endif Case m.lcRand = '58' && cheltuieli extraordinare ln8 = valoare Select cDecl Locate For Alltrim(Rand) = '08' If Found() Replace suma With m.ln8 Endif Endcase Endscan && cContProfit Use In (Select('cContProfit')) * Profit brut (Rd 16 - cheltuieli cu rezerva deductibila) pnProfitBrut = ln1 - ln2 + ln4 - ln5 + ln7 - ln8 * Capital social (Rd 16 - cheltuieli cu rezerva deductibila) Text To lcSql Textmerge Noshow select sum(soldcred) as suma from <> where cont = '1012' and an = <> and luna = <> <> Endtext pnCapSoc = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCapSoc) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pnCapSoc = Nvl(m.pnCapSoc, 0) * Rd 24 Cheltuieli impozit profit 691 (sau 698 daca nu s-a stornat cand a trecut de la micro) Text To lcSql Textmerge Noshow select sum(totcred) as suma from <> where cont in ('691', '698') and an = <> and luna = <> <> Endtext lcCursor = [crs691] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln24 = 0 If m.llSucces Select crs691 ln24 = Round(Nvl(suma, 0), 0) Use In crs691 Endif Select cDecl Locate For Alltrim(Rand) = '24' && Cheltuieli cu impozitul pe profit/venit If Found() Replace suma With m.ln24 Endif * La randul 2 cheltuieli din exploatare se aduna si Cheltuiala cu impozitul pe profit (apoi se scade din randul 24 ca cheltuiala nedeductibila) Select cDecl Locate For Alltrim(Rand) = '02' If Found() Replace suma With suma + m.ln24 Endif * Rd 26 Amenzi, confiscari, dobanzi 6581 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln26 = 0 If m.llSucces Select crs6581 ln26 = Nvl(suma, 0) Use In crs6581 Endif Select cDecl Locate For Alltrim(Rand) = '26' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln26, 0) Endif *--- * RD 27 Cheltuieli de protocol care depașesc limita prevazuta de lege 27 *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) lnProtocol = 0 If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln27 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln24 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln27 = m.lnProtocol - m.lnProtocolLimita ln27 = Max(m.ln27, 0) Endif Select cDecl Locate For Alltrim(Rand) = '27' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln27, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 * Rd 28 Cheltuieli de sponsorizare lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] llSucces = goExecutor.oExecuta(lcSql, lcCursor) ln28 = 0 If m.llSucces Select crs6582 ln28 = Nvl(suma, 0) Use In (Select('crs6582')) Endif Select cDecl Locate For Alltrim(Rand) = '28' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln28, 0) Endif * Rd 48 Impozit pe profit declarat pentru anul de raportare prin formularul 100 * TSD 691 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '691'] pn48 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn48) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '48' If Found() Replace suma With Round(Nvl(m.pn48, 0), 0) Endif Endif * Rd 49 Impozit pe veniturile microintreprinderilor declarat pentru anul de raportare prin formularul 100 * TSD 698 30 sept lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = 9 ] + gcCondSucursala + ; [ and cont = '698'] pn49 = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn49) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else Select cDecl Locate For Alltrim(Rand) = '49' If Found() Replace suma With Round(Nvl(m.pn49, 0), 0) Endif Endif * Rd 16 Rezerva legala deductibila * <= 5% din profitul contabil inainte de impozitare - venituri neimpozabile + cheltuieli nedeductibile * maxim total rezerva <= 20% capital social Text To lcSql Noshow Textmerge select sum(soldcred) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061t = 0 && sold 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061t) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Endif pn1061t = Nvl(m.pn1061t, 0) Text To lcSql Noshow Textmerge select sum(totcred-preccred1) as suma from <> where cont = '1061' and an = <> and luna = <> <> Endtext pn1061c = 0 && rulaj anual 1061 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pn1061c) If m.lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, _Screen.Caption) Else lnRezMaxAn = m.pnProfitBrut * 0.05 lnRezMaxTotal = m.pnCapSoc * 0.20 lnRezInPlus = Iif(m.lnRezMaxTotal < m.pn1061t, m.lnRezMaxTotal - m.pn1061t, 0) ln16 = Min(m.lnRezMaxAn, m.pn1061c) + m.lnRezInPlus Select cDecl Locate For Alltrim(Rand) = '16' If Found() Replace suma With Round(Nvl(m.ln16, 0), 0) Endif Endif Endproc && calculare_2012 Procedure calculare_old Parameters tnAnul, tnLuna *** adun preccred + RULCRED 7xx din bal mai putin 709 (reduceri comerciale acordate) 711 lcSql = [select sum(preccred+rulcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and (( to_number(SUBSTR(cont,1,3)) between 700 and 759) or to_number(cont) = 781) and to_number(cont) NOT IN(709, 711)] lcCursor = [crsVen] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsVen Go Top lnVen = Nvl(suma, 0) lcSql = [select sum(precdeb+ruldeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 709] lcCursor = [crsVen709] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsVen709 Go Top ln709 = Nvl(suma, 0) lcSql = [select sum(preccred+rulcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,2) = '70' and to_number(cont) <> 709] lcCursor = [crsVen70] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crsVen70 Go Top ln70 = Nvl(suma, 0) pnCA = m.ln70 - m.ln709 && CIFRA DE AFACERI pentru formula rd. 43 (sponsorizari in limita 3/1000 din CA) *!* rd 43 6582 maxim 20% rd.40.1 si maxim 3/1000 CA (in cod) (rd. 1 din Contul de Profit si Pierdere) (in cod *!* 01. Cifra de afaceri neta (rd. 02+03-04+05+06) *!* 02. Produc_ia vânduta (ct.701+702+703+704+705+706+708) *!* 03. Venituri din vânzarea marfurilor (ct. 707) *!* 04. Reduceri comerciale acordate (ct. 709) *!* 05. Venituri din dobânzi înregistrate de entita_ile radiate din Registrul general si care *!* mai au in derulare contracte de leasing (ct.766* ) *!* 06. Venituri din subven_ii de exploatare aferente cifrei de afaceri nete (ct.7411) *** 711 If .F. lcSql = [ select t.suma from vact t ] + ; [where an = ] + Str(tnAnul) + [ and luna = ] + Str(tnLuna) + m.gcCondSucursala + ; [ and id_set = 90005 ] + ; [and to_number(scd) = 711 and to_number(scc) = 121] lcCursor = [crs711] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs711 Select Count(suma) As nr_inreg From crs711 Into Cursor crsNrInreg711 Select crsNrInreg711 lnInreg = nr_inreg Use In crsNrInreg711 If lnInreg > 0 Select crs711 lnSold711 = Nvl(suma, 0) Use In crs711 Else Use In crs711 && adun soldul creditor 711 sau scad soldul debitor 711 lcSql = [select sum(soldcred-solddeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 711] lcCursor = [crs711] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs711 lnSold711 = Nvl(suma, 0) Use In crs711 Endif Else pnSold711 = 0 goExecutor.oFunction2Value([pack_mg_evolutie.variatia_stocurilor(?gnLuna, ?gnAn)], @pnSold711) lnSold711 = m.pnSold711 Endif ln1 = m.lnVen - m.ln709 + m.lnSold711 Use In (Select('crsVen')) Use In (Select('crsVen709')) Use In (Select('crsVen70')) Use In (Select('crs711')) Select cDecl Locate For Alltrim(Rand) = '01' && venituri din exploatare If Found() Replace suma With Round(m.ln1, 0) Endif *---- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and ( SUBSTR(cont,1,2)= '76' or substr(cont,1,3) = '786') ] lcCursor = [crs76] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs76 ln4 = Nvl(suma, 0) Use In crs76 Select cDecl Locate For Alltrim(Rand) = '04' && venituri financiare If Found() Replace suma With Round(m.ln4, 0) Endif *--- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and ( to_number(cont) between 660 and 669 or to_number(cont) = 686) ] lcCursor = [crs66] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs66 ln5 = Nvl(suma, 0) Use In crs66 Select cDecl Locate For Alltrim(Rand) = '05' && cheltuieli financiare If Found() Replace suma With Round(m.ln5, 0) Endif *--- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and ( to_number(cont) between 770 and 779 or to_number(cont) = 787) ] lcCursor = [crs77] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs77 ln7 = Nvl(suma, 0) Use In crs77 Select cDecl Locate For Alltrim(Rand) = '07' && Venituri extraordinare If Found() Replace suma With Round(m.ln7, 0) Endif *--- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and ( to_number(cont) between 670 and 679 or to_number(cont) = 687) ] lcCursor = [crs67] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs67 ln8 = Nvl(suma, 0) Use In crs67 Select cDecl Locate For Alltrim(Rand) = '08' && Cheltuieli extraordinare If Found() Replace suma With Round(m.ln8, 0) Endif *--- lcSql = [select sum(totdeb) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and substr(cont,1,1)='6' ] lcCursor = [crs60] && TVA de recuperat lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs60 ln2 = Nvl(suma, 0) Use In crs60 ln2 = m.ln2 - (m.ln5 + m.ln8) && se mai scade de la randul 2 si soldul lui 6811 (randul 14) Select cDecl Locate For Alltrim(Rand) = '02' && cheltuieli de exploatare If Found() Replace suma With Round(m.ln2, 0) Endif *--- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 691 ] lcCursor = [crs691] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs691 ln24 = Nvl(suma, 0) Use In crs691 Select cDecl Locate For Alltrim(Rand) = '24' && Cheltuieli cu impozitul pe profit If Found() Replace suma With Round(m.ln24, 0) Endif *--- lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and to_number(cont) = 6581] lcCursor = [crs6581] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs6581 ln26 = Nvl(suma, 0) Use In crs6581 Select cDecl Locate For Alltrim(Rand) = '26' && Amenzi, confiscari, dobanzi If Found() Replace suma With Round(m.ln26, 0) Endif *--- *** cheltuieli de protocol sub limita 623.protocol.limita = 2% * (121 + 691 + 623.protocol) = 2% (rd. 10 + rd.24 + 623.protocol ) *** cheltuieli de protocol care depasesc limita prevazuta de lege = 623.protocol - 623.protocol.limita lcSql = [select sum(b.totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalanamama b], [vbalana b]) + ; [ join plcont p on b.cont = p.cont and b.acont = p.acont and b.an = p.an ] + ; [ where b.an = ] + Alltrim(Str(tnAnul)) + [ and b.luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(b.cont,1,3) = '623' and UPPER(p.explicatie) like '%PROTOCOL%' and p.acont is not null] lcCursor = [crs623] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) If m.lnProtocol = 0 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and SUBSTR(cont,1,3) = '623'] lcCursor = [crs623] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs623 lnProtocol = Nvl(suma, 0) Use In (Select('crs623')) Endif ln10 = (m.ln1 - m.ln2) + (m.ln4 - m.ln5) + (m.ln7 - m.ln8) If m.ln10 <= 0 && profitul negativ, cheltuielile de protocol depasesc in intregime limita ln27 = m.lnProtocol Else lnBazaProtocol = m.ln10 + m.ln24 + m.lnProtocol lnProtocolLimita = m.lnBazaProtocol * 0.02 ln27 = m.lnProtocol - m.lnProtocolLimita ln27 = Max(m.ln27, 0) Endif Select cDecl Locate For Alltrim(Rand) = '27' && Cheltuieli de protocol care depasesc limita prevazuta de lege If Found() Replace suma With Round(m.ln27, 0) Endif *--- *!* Select cDecl *!* Locate For Alltrim(Rand) = '401' *!* Replace suma With ln24 * 0.16 lcSql = [select sum(totcred) as suma ] + ; [ from ] + Iif(glEMama, [vbalmama], [vbal]) + ; [ where an = ] + Alltrim(Str(tnAnul)) + [ and luna = ] + Alltrim(Str(tnLuna)) + gcCondSucursala + ; [ and cont = '6582'] lcCursor = [crs6582] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Select crs6582 ln28 = Nvl(suma, 0) Use In (Select('crs6582')) Select cDecl Locate For Alltrim(Rand) = '28' && DONATII SI SUBVENTII ACORDATE If Found() Replace suma With Round(m.ln28, 0) Endif Endproc && calculare_2012 Procedure do_genereaza_txt Parameters tcTabel, tcPerioada Local lcSir, lcDirTabele, lcFisUnitate, lcCodFiscal, lcDirDecl *!* gcDecl_caleExport = "C:\Program Files\Declaratii fiscale " + Alltrim(Str(gnAn)) gcDecl_caleExport = "C:\Program Files\Declaratia 101 impozit pe profit\" If !Directory(gcDecl_caleExport) gcDecl_caleExport = Getdir("C:", "Directorul Declaratia 101", "Declaratia 101") Endif If Empty(gcDecl_caleExport) Return Endif lcDirTabele = Addbs(Alltrim(gcDecl_caleExport)) + Alltrim(gofirma.firma) + "\" lcFisUnitate = lcDirTabele + "Unitate.dbf" If !File(lcFisUnitate) amessage("Nu ati salvat Date de identificare unitate!", 0 + 48, _Screen.Caption) Return Endif Use (lcFisUnitate) In 0 Again Alias unitate Select unitate lcCodFiscal = Alltrim(Str(codi)) lcDirDecl = Addbs(Alltrim(gcDecl_caleExport)) + lcCodFiscal *** creez unitate.txt Set Textmerge To lcFile = lcDirTabele + "adresa.txt" Set Textmerge On To (lcFile) Noshow Select unitate lcCodFiscal = Alltrim(Str(codi)) Select unitate Go Top lcSir = "##,#" + Alltrim(Str(codi)) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(deni) + "#,#" + ; Alltrim(adr) + "#,#" + ; Alltrim(telf) + "#,#" + ; Alltrim(banca) + "#,#" + ; Alltrim(Cont) + "#,#" + ; "#,##,##,#" + ; Alltrim(intocmitf) + "#,#" + ; Alltrim(calIntoc) + "#," + ; Alltrim(Str(caen)) If Used('unitate') Use In unitate Endif \\<> Set Textmerge To Wait Window "S-a exportat adresa.txt..." Timeout 1 If !Directory(lcDirDecl) Md (lcDirDecl) Endif *** creez Dec100T.txt *lcFile = lcDirTabele + "\Dec101T.txt" lcFile = lcDirDecl + "\Dec101T.txt" lcSir = '' lcTrim = '' Do Case Case tcPerioada = '01/10 - 09/10' lnLuna = 9 lnAnul = 2010 lcTrim = 'T3' Case tcPerioada = '10/10 - 12/10' lnLuna = 12 lnAnul = 2010 lcTrim = 'T4' Case tcPerioada = '01/10 - 12/10' lnLuna = 12 lnAnul = 2010 lcTrim = 'AN' Case Lower(Alltrim(tcPerioada)) = 'luna contabila curenta' lnLuna = gnLuna lnAnul = gnAn lcTrim = '' Endcase lcSir = lcCodFiscal + ',' + Padl(lnLuna, 2, '0') + ',' + Alltrim(Str(lnAnul, 4, 0)) + ',#' + lcTrim + '#,,#' + gofirma.caen + '#,' lnvirgule = 0 Select (tcTabel) Scan For !(Empty(Rand) Or Isnull(Rand)) If suma = 0 Or Isnull(suma) lcSir = lcSir + ',' Else lcSir = lcSir + Alltrim(Str(suma, 15, 0)) + ',' Endif Endscan lcSir = lcSir + '##' && lcSir = lcSir + Chr(13) + Chr(10) ***--- If File(lcFile) lcStr = Filetostr(lcFile) Set Textmerge On To (lcFile) Noshow Alines(sir, lcStr) lcInceput = lcCodFiscal + ',' + Padl(lnLuna, 2, '0') + ',' + Alltrim(Str(lnAnul, 4, 0)) + ',#' + lcTrim + '#' lnInceput = Len(lcInceput) llGasit = .F. For i = 1 To Alen(sir) If Substr(sir[i], 1, lnInceput) = lcInceput sir[i] = lcSir lcSirul = lcSir llGasit = .T. Endif Endfor If !llGasit && appe - scrie la sfarsit For i = 1 To Alen(sir) lcLinia = sir[i] + Chr(13) + Chr(10) \\<> Endfor \\<> Else && se scriu liniile inapoi in fisier; linia care se modifica este modificata deja in array lcLinia = '' For i = 1 To Alen(sir) lcLinia = sir[i] + Chr(13) + Chr(10) \\<> Endfor Endif Else Set Textmerge On To (lcFile) Noshow \\<> Endif Set Textmerge To Wait Window "S-a exportat Dec101T.txt..." Timeout 1 lcA = lcDirTabele + "\" + "adresa.txt" lcD = lcDirTabele + "\" + "dec101T.txt" lcFisAdresa = lcDirDecl + "\adresa.txt" lcfisDec101T = lcDirDecl + "\dec101T.txt" Copy File (lcA) To (lcFisAdresa) *Copy File (lcD) To (lcfisDec101T) amessagebox([Fisierele au fost exportate in directorul ] + Alltrim(Addbs(Justpath(lcfisDec101T))) + Chr(13) + Chr(10) + ; [Intrati in programul Declaratia 101], 0 + 64, 'Decl. 101') Endproc && do_genereaza_txt *========================================== Enddefine && D101 ********************************************************* *** Cifra de afaceri pentru TVA trimestrial/lunar *** DECLARATIA 094 * Cifra de afaceri dpdv perioada fiscala TVA conform art. 322, alin. (2) * Operatiuni taxabile si/sau scutite cu drept de deducere si/sau neimpozabile în România * cuprinde: toate operatiunile taxabile, scutite cu drept de deducere, cu taxare inversa si cele neimpozabile * nu cuprinde: operatiuni scutite fara drept de deducere ********************************************************* Procedure viz_decl094 Local loD094 As "D094" loD094 = Createobject("D094") && ovanzcump.vcx loD094.do_executa() Endproc Define Class D094 As Custom nAn = 0 nLuna = 0 cCodFiscal = 0 cCodCaen = [] lPlatitorTVA = .F. cDenumireFirma = [] cAdresa = [] cTelefon = [] cFax = [] cEmail = [] cDeclarant = [] cNumeDeclarant = [] cPrenumeDeclarant = [] cFunctieDeclarant = [] nCifraDeAfaceri = 0 Procedure Init With This .nAn = gnAn .nLuna = m.gnLuna .cCodFiscal = Strtran(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 'RO', '') .cCodCaen = Alltrim(gofirma.caen) .lPlatitorTVA = (Substr(Alltrim(Upper(Nvl(gofirma.cod_fiscal, ''))), 1, 2) == 'RO') .cDenumireFirma = Nvl(Alltrim(gofirma.firma), '') .cAdresa = Nvl(Alltrim(gofirma.adresa), '') .cTelefon = Nvl(Alltrim(gofirma.telefon), '') .cFax = Nvl(Alltrim(gofirma.fax), '') .cEmail = Nvl(Alltrim(gofirma.email), '') .cDeclarant = Alltrim(gofirma.declarant) .cNumeDeclarant = Alltrim(gofirma.nume_declarant) .cPrenumeDeclarant = Alltrim(gofirma.prenume_declarant) .cFunctieDeclarant = Alltrim(gofirma.functie) .nCifraDeAfaceri = 0 Endwith Endproc Procedure do_executa Local loFrmDoc As "frm_decl_tipdoc" Local lcAppPath, lcCaleFisier, lcCaleFisierPDF, lcCaleTemp, lcComunPath, lcConditieAct, lcCursor Local lcFileName, lcFileNamePDF, lcFirma, lcFisierPDFNou, lcFisierPDFOriginal, lcFisierTXT Local lcFisierXDP, lcFisierXLS, lcMesaj, lcNumeFisier, lcRun, lcSelect, lcSirId, lcSql, llSucces Local lnPos, loEx Local lcTextAchIntracomunitar lcSelect = Select() *** Initializare cai export lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export : caletemp\D392\aaaa\firma\ llSucces = .F. Try lcCaleTemp = m.gcBasePath lcCaleFisier = m.lcCaleTemp + "D094\" If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcFirma = Iif(gcAppName = "CONCONT", Alltrim(gofirma.fscurt), m.gcFirma) lcCaleFisier = m.lcCaleFisier + Strtran(lcFirma, [ ], [_]) + "\" lcCaleFisierPDF = m.lcCaleFisier && c:\temp\D392\2014\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif lcNumeFisier = "d094_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) Do Case Case gnAn >= 2020 lcFisierPDFOriginal = lcComunPath + "d094_2020.pdf" Otherwise lcFisierPDFOriginal = lcComunPath + "d094_2020.pdf" Endcase This.UpdatePDF(m.lcFisierPDFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNamePDF = m.lcCaleFisierPDF + lcNumeFisier lcFisierPDFNou = m.lcFileNamePDF + [.pdf] lcFisierXDP = m.lcFileNamePDF + [.xdp] If File(lcFisierPDFNou) Delete File (lcFisierPDFNou) Endif If File(lcFisierXDP) Delete File (lcFisierXDP) Endif *** citesc JV Text To lcSql Textmerge Noshow SELECT ROUND(SUM(RO24B + RO20B + RO19B + RO9B + RO5B + ROTI + WRN + WRSCDD), 0) AS BAZA FROM vjv2013 WHERE AN = <> <> Endtext lcCursor = [crsJV] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces Text To lcSql Textmerge Noshow select luna, valoare from (select luna, sum(cebcb + cebvb + cebvsc + cebvn + cebfb + cebfsc + cebfn + ce24sb + ce20sb + ce19sb + ce9sb + ce5sb + ce24b + ce20b) as valoare from jc2007 WHERE AN = <> group by luna) where valoare <> 0 Endtext lcCursor = [crsJCCE] llSucces = goExecutor.oExecuta(lcSql, lcCursor) If m.llSucces If Reccount('crsJCCE') > 0 lcTextAchIntracomunitar = 'Atentie! Exista achizitii intracomunitare in lunile urmatoare:' + Chr(13) + Chr(10) Select crsJCCE Scan lcTextAchIntracomunitar = lcTextAchIntracomunitar + 'Luna ' + Padl(luna, 2, '0') + ' : ' + Alltrim(Str(valoare, 20, 2)) + Chr(13) + Chr(10) Endscan amessagebox(m.lcTextAchIntracomunitar, 0 + 48, _Screen.Caption) Endif Endif Endif && llSucces If m.llSucces *!* D094 Select crsJV This.nCifraDeAfaceri = Nvl(crsJV.baza, 0) && cifra de afaceri in scopuri TVA Do Case Case This.nAn >= 2020 This.do_genereaza_xdp_2020(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Otherwise Case This.nAn >= 2020 This.do_genereaza_xdp_2020(lcFisierPDFOriginal, lcFisierXDP, lcFisierPDFNou) If File(m.lcFisierXDP) open_default_app(m.lcFisierXDP) Endif Endcase *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Endif && llSucces Use In (Select('crsJV')) Select (m.lcSelect) Endproc && do_executa *========================================== Procedure do_genereaza_xdp_2020 Lparameters tcFisierPDFOriginal, tcFisierXDP, tcFisierPDFNou Local lcSelect, lcXDP lcSelect = Select() lcXDP = "" With This Text To lcXDP Additive Textmerge Noshow Pretext 1 <> <> 0 RO <> <> <> <> <> <> <> <> <> Endtext Endwith Wait Window "Se exporta datele in format PDF" Nowait Strtofile(lcXDP, tcFisierXDP) If File(tcFisierXDP) *** copiez fisierul pdf inteligent original in directorul de export If File(m.tcFisierPDFOriginal) Copy File (tcFisierPDFOriginal) To (tcFisierPDFNou) Else amessagebox('Nu exista fisierul ' + m.tcFisierPDFOriginal, 0 + 48, _Screen.Caption) Endif Endif Select (lcSelect) Endproc && do_genereaza_xdp_2014 Procedure UpdatePDF Lparameters tcPDFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d392.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcPDFFile) lcPath = Addbs(Justpath(m.tcPDFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdatePDF Enddefine && D094 *=======================================================================* *** notificare aplicare TVA la incasare Procedure viz_decl097 Local loD097 As "D097" loD097 = Createobject("D097") loD097.do_executa() Endproc && viz_decl097 Define Class D097 As Custom nCifraAfaceri = 0 &&& Cifra de afaceri nPlafonCifraAfaceri = 2250000 &&& sub acest plafon se aplica TVA la incasare dData = {} &&& data de la care se face declaratia cPerioada = '' &&& perioada cifrei de afaceri Procedure do_executa *** EXPORT D097 Local lcAppPath, lcCaleFisier, lcCaleFisierRTF, lcComunPath, lcFileName, lcFileNameRTF, lcFirma Local lcFisierRTFNou, lcFisierRTFOriginal, lcJV, lcLunaBetween, lcMesaj, lcNumeFisier, lcRun Local lcTempPath, ldData1, ldData2, llSucces, lnAn, lnAn1, lnAn2, lnLuna, lnLuna1, lnLuna2 Local lnNrLuni1, lnNrLuni2, lnPos, loEx Local lcSelect, lcSql, lnSucces Private pnCifraAfaceri pnCifraAfaceri = 0 lcSelect = Select() lcAppPath = Addbs(gcAppPath) lcComunPath = lcAppPath lnPos = Rat("\", Addbs(m.lcAppPath), 2) If lnPos > 0 lcComunPath = Left(m.lcAppPath, lnPos) Endif lcComunPath = lcComunPath + Iif(gcAppName = "CONCONT", "COMUNCONTAFIN\", "COMUNROA\") && d:\contafin\comuncontafin\ *** Creez structura director export (caletemp\D394\aaaa_ll\firma\ llSucces = .F. Try lcTempPath = m.gcBasePath lcCaleFisier = m.lcTempPath + "D097\" && c:\temp\D394\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisier = m.lcCaleFisier + Alltrim(Str(gnAn)) + "_" + Padl(Alltrim(Str(gnLuna)), 2, "0") + "\"&& c:\temp\D097\2011_01\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcFirma = Iif(gcAppName = "CONCONT", Alltrim(gofirma.fscurt), m.gcFirma) lcCaleFisier = m.lcCaleFisier + Strtran(lcFirma, [ ], [_]) + "\" && c:\temp\D390\2011_01\firma\ If !Directory(m.lcCaleFisier) Md (m.lcCaleFisier) Endif lcCaleFisierRTF = m.lcCaleFisier && c:\temp\D097\2011_01\firma\ If !Directory(m.lcCaleFisierRTF) Md (m.lcCaleFisierRTF) Endif llSucces = .T. Catch To loEx lcMesaj = "Creare director " + lcCaleFisier + " " + loEx.Message amessagebox(lcMesaj, 0 + 48) Endtry If !llSucces Return Endif If Type('gofirma.codfiscalfro') = 'U' AddProperty(gofirma, 'codfiscalfro', Strtran(Alltrim(gofirma.cod_fiscal), 'RO', '')) Endif lcNumeFisier = "d097_" + gofirma.codfiscalfro + "_" + Alltrim(Str(gnAn)) + "_" + Padl(gnLuna, 2, "0") lcFisierRTFOriginal = lcComunPath + "d097.rtf" && d:\contafin\comuncontafin\d097.rtf This.UpdateRTF(m.lcFisierRTFOriginal) && actualizez pdf de la romfast lcFileName = m.lcCaleFisier + lcNumeFisier lcFileNameRTF = m.lcCaleFisierRTF + lcNumeFisier lcFisierRTFNou = m.lcFileNameRTF + [.rtf] lnAn2 = m.gnAn lnLuna2 = m.gnLuna ldData2 = Date(m.lnAn2, m.lnLuna2, 1) ldData1 = Date(lnAn2, 1, 1) && Gomonth(m.ldData2, -11) lnAn1 = Year(m.ldData1) lnLuna1 = Month(m.ldData1) ldData2 = Gomonth(m.ldData2, 1) - 1 lnNrLuni1 = lnAn1 * 12 + lnLuna1 lnNrLuni2 = lnAn2 * 12 + lnLuna2 This.dData = Iif(m.gnAn = 2012, Date(2013, 1, 1), Gomonth(Date(m.lnAn2, m.lnLuna2, 1), 1)) This.cPerioada = Dtoc(m.ldData1) + ' - ' + Dtoc(m.ldData2) *** TIPURI DOCUMENTE Text To lcSql Textmerge Noshow SELECT distinct 1 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC FROM vjv2010 WHERE an*12+luna between <> and <> and NVL(id_fdoc,0) <> 0 Endtext *!* 05.11.2009 ^ lnSucces = goExecutor.oExecute(lcSql, "crsFdoc") If lnSucces < 0 amessagebox(goExecutor.cEroare, 0 + 16, 'Eroare') Return Endif Go Top In crsFDoc loFrmDoc = Createobject("frm_decl_tipdoc", "097") loFrmDoc.label1.Caption = "Debifati tipurile de documente care nu doriti" loFrmDoc.label2.Caption = "sa participe la calculul Cifrei de Afaceri" loFrmDoc.Show(1) lcSirId = "" Select id_fdoc From crsFDoc With (Buffering = .T.) Where ales = 1 Into Cursor crsFdocTemp If _Tally = 0 amessagebox('Trebuie sa alegeti un tip de document!', 0 + 48, 'Atentie') Use In crsFDoc Use In crsFdocTemp Return Endif Use In crsFDoc Select crsFdocTemp Scan lcSirId = lcSirId + [, ] + Alltrim(Str(id_fdoc)) Endscan If !Empty(lcSirId) lcSirId = Substr(lcSirId, 2) Endif Use In crsFdocTemp *!* Mentionam ca potrivit art .134^2 lit. a din Codul fiscal: *!* "Cifra de afaceri pentru calculul plafonului de 2.250.000 lei este constituita din valoarea totala *!* a livrarilor de bunuri si a prestarilor de servicii taxabile si/sau scutite cu drept de deducere, *!* precum si a operatiunilor rezultate din activitati economice pentru care locul livrarii/prestarii *!* se considera ca fiind in strainatate, conform art. 132 si 133, realizate in cursul unui an calendaristic." Text To lcSql Textmerge Noshow select sum(ro24b + ro24nb + ro20b + ro20nb + ro19b + ro19nb + ro9b + ro9nb + ro5b + ro5nb + roti + cescdd1 + cescdd2 + wrscdd + fodd + fofdd + wrscfdd + wrn + ceoptr + cesvdd + cesvfdd + cesvfs) from vjv2010 where an*12+luna between <> and <> AND EXTRACT(YEAR FROM dataireg) = an and EXTRACT(MONTH FROM dataireg) = luna AND ID_FDOC IN (<>) Endtext pnCifraAfaceri = 0 lnSucces = goExecutor.oSelect2Value(m.lcSql, @pnCifraAfaceri) This.nCifraAfaceri = Int(Round(m.pnCifraAfaceri, 0)) This.do_genereaza_rtf(m.lcFisierRTFOriginal, m.lcFisierRTFNou) If File(m.lcFisierRTFNou) open_default_app(m.lcFisierRTFNou) Endif *** deschid explorer in directorul de export lcRun = [RUN /N7 explorer.exe "] + m.lcCaleFisier + ["] &lcRun Select (m.lcSelect) Endproc && do_executa *=========================================== Procedure do_genereaza_rtf Lparameters tcFisierRTFOriginal, tcFisierRTFNou Local lcCADepasit, lcCANeDepasit, lcDataDepasit, lcDataNeDepasit, lcPerioadaDepasit, lcIntrare, lcIesire Local lcPerioadaNeDepasit, lcSelect, lcText, lnCifraAfaceri, lnPlafonCifraAfaceri lcSelect = Select() lnCifraAfaceri = This.nCifraAfaceri lnPlafonCifraAfaceri = This.nPlafonCifraAfaceri lcCADepasit = '.......' lcCANeDepasit = '.......' lcDataDepasit = '.......' lcPerioadaDepasit = '.......' lcDataNeDepasit = '.......' lcPerioadaNeDepasit = '.......' lcIntrare = '' lcIesire = '' If lnCifraAfaceri > m.lnPlafonCifraAfaceri lcCADepasit = formateaza(m.lnCifraAfaceri, 16, m.gnPA) lcDataDepasit = Dtoc(This.dData) lcPerioadaDepasit = This.cPerioada lcIesire = 'X' Else lcCANeDepasit = formateaza(m.lnCifraAfaceri, 16, m.gnPA) lcDataNeDepasit = Dtoc(This.dData) lcPerioadaNeDepasit = This.cPerioada lcIntrare = 'X' Endif If !File(m.tcFisierRTFOriginal) amessagebox('Nu exista fisierul ' + m.tcFisierRTFOriginal, 0 + 48, _Screen.Caption) Return Endif lcText = Filetostr(m.tcFisierRTFOriginal) *** completare RTF lcText = Strtran(m.lcText, '', m.lcIntrare) lcText = Strtran(m.lcText, '', m.lcIesire) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.antet, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.codfiscalfro, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.JUDET, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.sector, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.LOCALITATE, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.STRADA, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.NUMAR, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.Bloc, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.SCARA, ''))) lcText = Strtran(m.lcText, '', '') lcText = Strtran(m.lcText, '', Iif(!Empty(Nvl(gofirma.APART, 0)), Alltrim(Str(gofirma.APART)), '')) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.cod_postal, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.telefon, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.fax, ''))) lcText = Strtran(m.lcText, '', Lower(Alltrim(Nvl(gofirma.email, '')))) lcText = Strtran(m.lcText, '', m.lcCADepasit) lcText = Strtran(m.lcText, '', m.lcDataDepasit) lcText = Strtran(m.lcText, '', m.lcPerioadaDepasit) lcText = Strtran(m.lcText, '', m.lcCANeDepasit) lcText = Strtran(m.lcText, '', m.lcDataNeDepasit) lcText = Strtran(m.lcText, '', m.lcPerioadaNeDepasit) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.declarant, ''))) lcText = Strtran(m.lcText, '', Alltrim(Nvl(gofirma.functie, ''))) Strtofile(m.lcText, m.tcFisierRTFNou) Select (m.lcSelect) Endproc && do_genereaza_rtf *========================================== Procedure UpdateRTF Lparameters tcRTFFile *** tcPDFFile: calea completa a fisierului pdf D:\CONTAFIN\COMUNCONTAFIN\d097.pdf Local lcFile, lcPath, llOpen lcFile = Justfname(m.tcRTFFile) lcPath = Addbs(Justpath(m.tcRTFFile)) llOpen = .F. Return DownloadSupportFile(m.lcFile, m.lcPath, m.llOpen) && proceduri_comune.prg Endproc && UpdateRTF Enddefine && d097 ******************************************* INCEPUT: viz_regvanz ******************************************* Procedure viz_regvanz *** verificare INAINTE_DE *:Global nuexista, pnRecCnt Local oreg As "frm_regvanz2025" Local lcCoresp, lcExceptii, lcFiltruOriginal, lcGroup, lcSqlCount, llAfisare, llAfisareTot Local llModParam, llSucces, lnInregistrariAfisare, lnProcTvaRed, lnProcTvaSt lcCoresp = ['4111'] lcExceptii = ['667,622'] Use In (Select('actcv')) Private lcschema, lcselect, lcfiltru, lcorder, povanz Store "" To povanz * Calculez numarul de inregistrari. Daca numarul este mai mic de min(300, gnInregistrariAfisare) afisez toate inregistrarile in loc sa intru cu 1=2 lnInregistrariAfisare = Iif(Type('gnInregistrariAfisare') = 'N', m.gnInregistrariAfisare, 300) lcSqlCount = [SELECT COUNT(*) as nr FROM jv2007 where an=?gnAn and luna=?gnLuna] pnRecCnt = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSqlCount, @pnRecCnt) llAfisareTot = (Nvl(m.pnRecCnt, 0) <= m.lnInregistrariAfisare) Do Case Case m.gnAn * 12 + m.gnLuna >= 2025 * 12 + 8 *** 01/08/2025 21%, 11% Do inainte With "VANZ2007" In oinainte_de.prg TEXT TO lcSchema NOSHOW ID_JV I, ID_FACT I, COD I, AN I, LUNA I, DATAACT D, DATAIREG D, SERIE_ACT C(10), NRACT I, ID_PART I, ID_FDOC I, FDOC C(30), FEL_DOCUMENT C(30), TIP_DOC C(10), DENUMIRE C(100), COD_FISCAL C(30), TIP_PERSOANA I, AFILIAT I, CODTARA C(5), ID_SUCURSALA I, SUCURSALA C(250), TOTCTVA N(20,4), RO11B N(20,4), RO11T N(20,4), RO21B N(20,4), RO21T N(20,4), RO19B N(20,4), RO19T N(20,4), RO9B N(20,4), RO9T N(20,4), RO5B N(20,4), RO5T N(20,4), RO24B N(20,4), RO24T N(20,4), RO20B N(20,4), RO20T N(20,4), ROTI N(20,4), CESCDD1 N(20,4), CESCDD2 N(20,4), CEOPTR N(20,4), CESVDD N(20,4), CESVFDD N(20,4), CESVFS N(20,4), WRSCDD N(20,4), FODD N(20,4), FOFDD N(20,4), WRSCFDD N(20,4), WRN N(20,4), RORTC11 N(20,4), RORTC21 N(20,4), RORTC19 N(20,4), RORTC9 N(20,4), RORTC5 N(20,4), RO11NB N(20,4), RO11NT N(20,4), RO21NB N(20,4), RO21NT N(20,4), RO19NB N(20,4), RO19NT N(20,4), RO9NB N(20,4), RO9NT N(20,4), RO5NB N(20,4), RO5NT N(20,4), RO24NB N(20,4), RO24NT N(20,4), RO20NB N(20,4), RO20NT N(20,4), TOTFTVATAX N(20,4), TOTTVATAX N(20,4), TVA_INCASARE I,CONT C(4), ales N(1), diferenta_incasare_tva n(20,4), incasat_exigibil N(20,4), incasat_tot N(20,4), solddif N(20,4), soldf N(20,4) ENDTEXT TEXT TO lcSelect noshow select ID_JV, ID_FACT, COD, AN, LUNA, DATAACT, DATAIREG, SERIE_ACT, NRACT, ID_PART, ID_FDOC, FEL_DOCUMENT as FDOC, FEL_DOCUMENT, TIP_DOC, DENUMIRE, COD_FISCAL, TIP_PERSOANA, AFILIAT, CODTARA, ID_SUCURSALA, SUCURSALA, TOTCTVA, RO11B, RO11T, RO21B, RO21T, RO19B, RO19T, RO9B, RO9T, RO5B, RO5T, RO24B, RO24T, RO20B, RO20T, ROTI, CESCDD1, CESCDD2, CEOPTR, CESVDD, CESVFDD, CESVFS, WRSCDD, FODD, FOFDD, WRSCFDD, WRN, RORTC11, RORTC21, RORTC19, RORTC9, RORTC5, RO11NB, RO11NT, RO21NB, RO21NT, RO19NB, RO19NT, RO9NB, RO9NT, RO5NB, RO5NT, RO24NB, RO24NT, RO20NB, RO20NT, TOTFTVATAX, TOTTVATAX, TVA_INCASARE, '' AS CONT, 0 as ales, cast(0 as NUMBER(20,4)) as diferenta_incasare_tva, 0.0000 as incasat_exigibil, 0.0000 as incasat_tot, 0.0000 as solddif, 0.0000 as soldf from vjv2025 ENDTEXT lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. llAfisare = .F. lcGroup = "" llModParam = .T. lcFiltruOriginal = "" gencursor('povanz', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare, m.lcGroup, m.llModParam, m.lcFiltruOriginal) povanz.ca_baza1.afisare() nuexista = .F. Clear Class "frm_regvanz2025" Select actcv oreg = Createobject("frm_regvanz2025", m.llAfisareTot) oreg.Show(1) Case m.gnAn * 12 + m.gnLuna >= 2010 * 12 + 7 *** 01/07/2010 24% Do inainte With "VANZ2007" In oinainte_de.prg *!* modificare v 2.0.126 : am adaugat ceoptr,cesvdd,cesvfdd,cesvfs lcschema = [id_jv n(20), id_fact n(20), an n(4),luna n(2),cod n(20),dataact d,dataireg d,cod_fiscal c(30),nract N(20),serie_act c(10),] + ; [id_part n(20),id_fdoc n(20),totctva n(20,4),ro24b n(20,4),ro24t n(20,4),ro19b n(20,4),ro19t n(20,4),ro9b n(20,4),] + ; [ro9t n(20,4),] + ; [ro5b n(20,4), ro5t n(20,4),] + ; [roti n(20,4),cescdd1 n(20,4),cescdd2 n(20,4),wrscdd n(20,4),fodd n(20,4),] + ; [ceoptr n(20,4),cesvdd n(20,4),cesvfdd n(20,4),cesvfs n(20,4),] + ; [fofdd n(20,4),wrscfdd n(20,4),wrn n(20,4),fdoc c(30),fel_document c(30),denumire c(70),id_sucursala n(5),sucursala c(100), ] + ; [ro24nb n(20,4),ro24nt n(20,4),ro19nb n(20,4),ro19nt n(20,4),ro9nb n(20,4),ro9nt n(20,4),ro5nb n(20,4), ro5nt n(20,4), totftvatax n(20,4), tottvatax n(20,4), tva_incasare n(1), ] + ; [diferenta_incasare_tva n(20,4), ales n(1), cont c(4), soldf n(20,4), solddif n(20,4), incasat_tot n(20,4), incasat_exigibil n(20,4), ] + ; [ro20b n(20,4),ro20t n(20,4),ro20nb n(20,4),ro20nt n(20,4)] lcselect = [select id_jv, id_fact, an,luna,cod,dataact,dataireg,cod_fiscal,nract,serie_act,] + ; [id_part,id_fdoc,totctva,ro24b,ro24t,ro19b,ro19t,ro9b,] + ; [ro9t,ro5b,ro5t,roti,cescdd1,cescdd2,wrscdd,fodd,] + ; [ceoptr,cesvdd,cesvfdd,cesvfs,] + ; [fofdd,wrscfdd,wrn,fel_document,fel_document,denumire,id_sucursala,sucursala, ] + ; [ro24nb, ro24nt, ro19nb, ro19nt, ro9nb, ro9nt, ro5nb, ro5nt, totftvatax, tottvatax, tva_incasare, ] + ; [cast(0 as NUMBER(20,4)) as diferenta_incasare_tva, 0 as ales, '' as cont, 0.0000 as soldf, 0.0000 as solddif, 0.0000 as incasat_tot, 0.0000 as incasat_exigibil, ] + ; [ro20b, ro20t, ro20nb, ro20nt ] + ; [from ] + Iif(m.gnAn < 2013, [vjv2010], [vjv2013]) lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. llAfisare = .F. lcGroup = "" llModParam = .T. lcFiltruOriginal = "" gencursor('povanz', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare, m.lcGroup, m.llModParam, m.lcFiltruOriginal) povanz.ca_baza1.afisare() nuexista = .F. Clear Class "frm_regvanz2010" Select actcv oreg = Createobject("frm_regvanz2010", m.llAfisareTot) oreg.Show(1) Case gnAn >= 2007 And m.gnAn * 12 + m.gnLuna < 2010 * 12 + 7 *** 01/01/2007 19% Do inainte With "VANZ2007" In oinainte_de.prg lcschema = [id_jv n(4),an n(4),luna n(2),cod n(20),dataact d,cod_fiscal c(30),nract N(20),serie_act c(10),] + ; [id_part n(20),id_fdoc n(20),totctva n(20,4),ro19b n(20,4),ro19t n(20,4),ro9b n(20,4),] + ; [ro9t n(20,4),] + ; [ro5b n(20,4), ro5t n(20,4),] + ; [roti n(20,4),cescdd1 n(20,4),cescdd2 n(20,4),wrscdd n(20,4),fodd n(20,4),] + ; [fofdd n(20,4),wrscfdd n(20,4),wrn n(20,4),fel_document c(30),denumire c(70),sucursala c(100)] lcselect = [select id_jv,an,luna,cod,dataact,cod_fiscal,nract,serie_act,] + ; [id_part,id_fdoc,totctva,ro19b,ro19t,ro9b,] + ; [ro9t,ro5b,ro5t,roti,cescdd1,cescdd2,wrscdd,fodd,] + ; [fofdd,wrscfdd,wrn,fel_document,denumire,sucursala from vjv2010] lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. llAfisare = .F. lcGroup = "" llModParam = .T. lcFiltruOriginal = "" gencursor('povanz', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare, m.lcGroup, m.llModParam, m.lcFiltruOriginal) povanz.ca_baza1.afisare() nuexista = .F. Clear Class "frm_regvanz2007" oreg = Createobject("frm_regvanz2007") oreg.Show(1) Otherwise Do inainte With "VANZ", , , , lcExceptii, lcCoresp In oinainte_de.prg lcschema = ['id_vanz n(20),an n(5),luna n(2),cod n(20),dataireg d,cod_fiscal c(13),'+] + ; ['totctva n(19,gnPA),neimpozab n(19,gnPA),totftvai n(19,gnPA),tvai n(19,gnPA),totftvam n(19,gnPA),'+] + ; ['tvam n(19,gnPA),id_part n(20),nume c(50),id_fdoc n(5),fdoc c(30),dataact d,nract N(20),'+] + ; ['scd c(4),scutit n(1),ext n(1)'] lcselect = ['select * from ] + gcs + [.vvanz where 1=2'] lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. gencursor('povanz', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare) povanz.ca_baza1.afisare() nuexista = .F. llSucces = update_cote_TVA() lnProcTvaSt = 1.19 lnProcTvaRed = 1.09 If llSucces > 0 Select cote_tva Locate For Upper(Alltrim(descriere)) = 'STANDARD' If Found() lnProcTvaSt = proc_tva Endif Locate For Upper(Alltrim(descriere)) = 'REDUS' If Found() lnProcTvaRed = proc_tva Endif Clear Class "frm_regvanz" oreg = Createobject("frm_regvanz") oreg.lb_titlu_alb_b121.Caption = "REGISTRUL VANZARI" oreg.nProcTvaSt = lnProcTvaSt oreg.nProcTvaRed = lnProcTvaRed oreg.Show(1) Endif Endcase If Used('ACTCV') Use In actcv Endif Release oreg, povanz Endproc && viz_regvanz ******************************************* SFARSIT: viz_regvanz ******************************************* ******************************************* INCEPUT: viz_regcump ******************************************* Procedure viz_regcump Local oreg As "frm_regcump2010" Local lcFiltruOriginal, lcGroup, lcSqlCount, llAfisare, llAfisareTot, llModParam, llSucces Local lnInregistrariAfisare, lnProcTvaRed, lnProcTvaSt *:Global pnRecCnt If Used('ACTCV') Use In actcv Endif Private lcschema, lcselect, lcfiltru, lcorder, pocump Store "" To pocump * Calculez numarul de inregistrari. Daca numarul este mai mic de min(300, gnInregistrariAfisare) afisez toate inregistrarile in loc sa intru cu 1=2 lnInregistrariAfisare = Iif(Type('gnInregistrariAfisare') = 'N', m.gnInregistrariAfisare, 300) lcSqlCount = [SELECT COUNT(*) as nr FROM jc2007 where an=?gnAn and luna=?gnLuna] pnRecCnt = 0 llSucces = goExecutor.oSelecteaza2Value(m.lcSqlCount, @pnRecCnt) llAfisareTot = (Nvl(m.pnRecCnt, 0) <= m.lnInregistrariAfisare) Do Case Case m.gnAn * 12 + m.gnLuna >= 2025 * 12 + 8 *** 01/08/2025 TVA 21% si 11% Do inainte With "CUMP2007" In oinainte_de.prg TEXT TO lcSchema NOSHOW id_fact n(20), id_fdoc n(20), id_jc n(20), id_part n(20), id_sucursala n(5),an n(4), luna n(2), dataact d, dataireg d,cod n(20), cod_fiscal c(30), cont c(4), denumire c(70), fdoc c(30), nract n(20), serie_act c(10), sucursala c(100),ales n(1), diferenta_incasare_tva n(20,4), incasat_exigibil n(20,4), incasat_tot n(20,4), solddif n(20,4), soldf n(20,4), totctva n(20,4), totftvatax n(20,4), tottvatax n(20,4), tva_incasare n(1),ceb n(20,4), cebb n(20,4), cebt n(20,4), cen n(20,4), cesc n(20,4), cesb n(20,4), cest n(20,4), cet n(20,4),fo09b n(20,4), fo09t n(20,4), fo11b n(20,4), fo11t n(20,4), fo19b n(20,4), fo19t n(20,4), fo20b n(20,4), fo20t n(20,4), fo21b n(20,4), fo21t n(20,4), fo24b n(20,4), fo24t n(20,4), foscn n(20,4),ro05b n(20,4), ro05nb n(20,4), ro05nt n(20,4), ro05t n(20,4), ro09b n(20,4), ro09nb n(20,4), ro09nt n(20,4), ro09t n(20,4), ro11b n(20,4), ro11nb n(20,4), ro11nt n(20,4), ro11t n(20,4), ro19b n(20,4), ro19nb n(20,4), ro19nt n(20,4), ro19t n(20,4), ro20b n(20,4), ro20nb n(20,4), ro20nt n(20,4), ro20t n(20,4), ro21b n(20,4), ro21nb n(20,4), ro21nt n(20,4), ro21t n(20,4), ro24b n(20,4), ro24nb n(20,4), ro24nt n(20,4), ro24t n(20,4), roscn n(20,4), rotn n(20,4), rotn50 n(20,4), rotn100 n(20,4), rortd5 n(20,4), rortd9 n(20,4), rortd11 n(20,4), rortd19 n(20,4), rortd20 n(20,4), rortd21 n(20,4), rortd24 n(20,4),ti09b n(20,4), ti09t n(20,4), ti11b n(20,4), ti11t n(20,4), ti19b n(20,4), ti19t n(20,4), ti20b n(20,4), ti20t n(20,4), ti21b n(20,4), ti21t n(20,4), ti24b n(20,4), ti24t n(20,4),xx11tib n(20,4), xx11tit n(20,4), xx19tib n(20,4), xx19tit n(20,4), xx21tib n(20,4), xx21tit n(20,4), xx9tib n(20,4), xx9tit n(20,4) ENDTEXT TEXT TO lcSelect NOSHOW select id_fact, id_fdoc, id_jc, id_part, id_sucursala, an, luna, dataact, dataireg, cod, cod_fiscal, '' as cont, denumire, fel_document, nract, serie_act, sucursala, 0 as ales, cast(0 as NUMBER(20,4)) as diferenta_incasare_tva, 0.0000 as incasat_exigibil, 0.0000 as incasat_tot, 0 as solddif, 0 as soldf, totctva, totftvatax, tottvatax, tva_incasare, ceb, cebb, cebt, cen, cesc, cesb, cest, cet, fo09b, fo09t, fo11b, fo11t, fo19b, fo19t, fo20b, fo20t, fo21b, fo21t, fo24b, fo24t, foscn, ro05b, ro5nb, ro5nt, ro05t, ro09b, ro9nb, ro9nt, ro09t, ro11b, ro11nb, ro11nt, ro11t, ro19b, ro19nb, ro19nt, ro19t, ro20b, ro20nb, ro20nt, ro20t, ro21b, ro21nb, ro21nt, ro21t, ro24b, ro24nb, ro24nt, ro24t, roscn, rotn, rotn50, rotn100, rortd5, rortd9, rortd11, rortd19, rortd20, rortd21, rortd24, ti09b, ti09t, ti11b, ti11t, ti19b, ti19t, ti20b, ti20t, ti21b, ti21t, ti24b, ti24t, xx11tib, xx11tit, xx19tib, xx19tit, xx21tib, xx21tit, xx9tib, xx9tit from vjc2025 ENDTEXT lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. lcGroup = "" llModParam = .T. lcFiltruOriginal = "" gencursor('pocump', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare, m.lcGroup, m.llModParam, m.lcFiltruOriginal) pocump.ca_baza1.afisare() Select actcv oreg = Createobject("frm_regcump2025", m.llAfisareTot) oreg.lb_titlu_alb_b121.Caption = "REGISTRUL CUMPARARI" oreg.Show(1) Case m.gnAn * 12 + m.gnLuna >= 2010 * 12 + 7 *** 01/07/2010 Do inainte With "CUMP2007" In oinainte_de.prg lcschema = [id_fact n(20), id_fdoc n(20), id_jc n(20), id_part n(20), id_sucursala n(5),] + ; [an n(4), dataact d, dataireg d,] + ; [cod n(20), cod_fiscal c(30), cont c(4), denumire c(70), fdoc c(30), luna n(2), nract n(20), serie_act c(10), sucursala c(100),] + ; [ales n(1), diferenta_incasare_tva n(20,4), incasat_exigibil n(20,4), incasat_tot n(20,4), solddif n(20,4), soldf n(20,4), totctva n(20,4), totftvatax n(20,4), tottvatax n(20,4), tva_incasare n(1),] + ; [ceb n(20,4), cebb n(20,4), cebt n(20,4), cen n(20,4), cesc n(20,4), cesb n(20,4), cest n(20,4), cet n(20,4),] + ; [fo09b n(20,4), fo09t n(20,4), fo19b n(20,4), fo19t n(20,4), fo20b n(20,4), fo20t n(20,4), fo24b n(20,4), fo24t n(20,4), foscn n(20,4),] + ; [ro05b n(20,4), ro05nb n(20,4), ro05nt n(20,4), ro05t n(20,4), ro09b n(20,4), ro09nb n(20,4), ro09nt n(20,4), ro09t n(20,4), ro19b n(20,4), ro19nb n(20,4), ro19nt n(20,4), ro19t n(20,4), ] + ; [ro20b n(20,4), ro20nb n(20,4), ro20nt n(20,4), ro20t n(20,4), ro24b n(20,4), ro24nb n(20,4), ro24nt n(20,4), ro24t n(20,4), roscn n(20,4), rotn n(20,4), rotn50 n(20,4), rotn100 n(20,4),] + ; [ti09b n(20,4), ti09t n(20,4), ti19b n(20,4), ti19t n(20,4), ti20b n(20,4), ti20t n(20,4), ti24b n(20,4), ti24t n(20,4),] + ; [xx19tib n(20,4), xx19tit n(20,4), xx9tib n(20,4), xx9tit n(20,4)] lcselect = [select id_fact, id_fdoc, id_jc, id_part, id_sucursala,] + ; [an, dataact, dataireg,] + ; [cod, cod_fiscal, '' as cont, denumire, fel_document, luna, nract, serie_act, sucursala,] + ; [0 as ales, cast(0 as NUMBER(20,4)) as diferenta_incasare_tva, 0.0000 as incasat_exigibil, 0.0000 as incasat_tot, 0 as solddif, 0 as soldf, totctva, totftvatax, tottvatax, tva_incasare,] + ; [ceb, cebb, cebt, cen, cesc, cesb, cest, cet,] + ; [fo09b, fo09t, fo19b, fo19t, fo20b, fo20t, fo24b, fo24t, foscn,] + ; [ro05b, ro5nb, ro5nt, ro05t, ro09b, ro9nb, ro9nt, ro09t, ro19b, ro19nb, ro19nt, ro19t, ro20b, ro20nb, ro20nt, ro20t, ro24b, ro24nb, ro24nt, ro24t, roscn, rotn, rotn50, rotn100,] + ; [ti09b, ti09t, ti19b, ti19t, ti20b, ti20t, ti24b, ti24t,] + ; [xx19tib, xx19tit, xx9tib, xx9tit ] + ; [from ] + Iif(m.gnAn < 2013, [vjc2010], [vjc2013]) lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. lcGroup = "" llModParam = .T. lcFiltruOriginal = "" gencursor('pocump', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare, m.lcGroup, m.llModParam, m.lcFiltruOriginal) pocump.ca_baza1.afisare() Select actcv oreg = Createobject("frm_regcump2010", m.llAfisareTot) oreg.lb_titlu_alb_b121.Caption = "REGISTRUL CUMPARARI" oreg.Show(1) Case gnAn >= 2007 And m.gnAn * 12 + m.gnLuna < 2010 * 12 + 7 *** 01/01/2007 Do inainte With "CUMP2007" In oinainte_de.prg lcschema = ['id_jc n(4),an n(4),luna n(2),totctva n(20,4),id_part n(20),id_fdoc n(20),dataact d,'+] + ; ['nract N(20),serie_act c(10),ro19bcb n(20,4),ro19bct n(20,4),ro19bvb n(20,4),ro19bvt n(20,4),ro19bfb n(20,4),'+] + ; ['ro19bft n(20,4),ro09bcb n(20,4),ro09bct n(20,4),ro09bvb n(20,4),ro09bvt n(20,4),ro09bfb n(20,4),'+] + ; ['ro05b n(20,4), ro05t n(20,4),'+] + ; ['ro09bft n(20,4),roscn n(20,4),fo19bcb n(20,4),fo19bct n(20,4),fo19bvb n(20,4),fo19bvt n(20,4),'+] + ; ['fo19bfb n(20,4),fo19bft n(20,4),fo09bcb n(20,4),fo09bct n(20,4),fo09bvb n(20,4),fo09bvt n(20,4),'+] + ; ['fo09bfb n(20,4),fo09bft n(20,4),foscn n(20,4),cebcb n(20,4),cebct n(20,4),cebvb n(20,4),cebvt n(20,4),'+] + ; ['cebvsc n(20,4),cebvn n(20,4),cebfb n(20,4),cebft n(20,4),cebfsc n(20,4),cebfn n(20,4),ti19bcb n(20,4),'+] + ; ['ti19bct n(20,4),ti19bvb n(20,4),ti19bvt n(20,4),ti19bfb n(20,4),ti19bft n(20,4),ti09bvb n(20,4),'+] + ; ['ti09bvt n(20,4),ti09bfb n(20,4),ti09bft n(20,4),cod n(20),fel_document c(30),denumire c(70),cod_fiscal c(30),sucursala c(100)'] lcselect = ['select id_jc, an, luna, totctva, id_part, id_fdoc, dataact, nract, serie_act, ro19bcb, ro19bct, ro19bvb,'+] + ; ['ro19bvt, ro19bfb, ro19bft, ro09bcb, ro09bct, ro09bvb, ro09bvt, ro09bfb,ro05b, ro05t,'+] + ; ['ro09bft, roscn, fo19bcb, fo19bct,'+] + ; ['fo19bvb, fo19bvt, fo19bfb, fo19bft, fo09bcb, fo09bct, fo09bvb, fo09bvt, fo09bfb, fo09bft, foscn, cebcb,'+] + ; ['cebct, cebvb, cebvt, cebvsc, cebvn, cebfb, cebft, cebfsc, cebfn, ti19bcb, ti19bct, ti19bvb, ti19bvt,'+] + ; ['ti19bfb, ti19bft, ti09bvb, ti09bvt, ti09bfb, ti09bft, cod, fel_document, denumire, cod_fiscal, sucursala '+] + ; ['from ] + gcs + [.vjc2007 where 1=2'] lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. gencursor('pocump', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare) pocump.ca_baza1.afisare() Clear Class "frm_regcump2007" oreg = Createobject("frm_regcump2007") oreg.lb_titlu_alb_b121.Caption = "REGISTRUL CUMPARARI" oreg.Show(1) Otherwise *** INAINTE DE 2007 Do inainte With "CUMP" In oinainte_de.prg lcschema = ['id_cump n(20), an n(5), luna n(2), cod n(20), dataireg d, cod_fiscal c(13),'+] + ; ['totctva n(19,gnPA), neimpozab n(19,gnPA), totftvai n(19,gnPA), tvai n(19,gnPA), totftvam n(19,gnPA),'+] + ; ['tvam n(19,gnPA), id_part n(20), nume c(50), id_fdoc n(5), fdoc c(30), dataact d, nract N(20),'+] + ; ['scd c(4),scutit n(1),ext n(1),scc c(4)'] lcselect = ['select * from ] + gcs + [.vcump where 1=2'] lcfiltru = [1=2] lcorder = [dataact,nract] llAfisare = .F. gencursor('pocump', 'actcv', lcselect, lcfiltru, lcschema, lcorder, llAfisare) pocump.ca_baza1.afisare() llSucces = update_cote_TVA() lnProcTvaSt = 1.19 lnProcTvaRed = 1.09 If llSucces > 0 Select cote_tva Locate For Upper(Alltrim(descriere)) = 'STANDARD' If Found() lnProcTvaSt = proc_tva Endif Locate For Upper(Alltrim(descriere)) = 'REDUS' If Found() lnProcTvaRed = proc_tva Endif Endif Clear Class "frm_regcump" oreg = Createobject("frm_regcump") oreg.lb_titlu_alb_b121.Caption = "REGISTRUL CUMPARARI" oreg.nProcTvaSt = lnProcTvaSt oreg.nProcTvaRed = lnProcTvaRed oreg.Show(1) Endcase If Used('ACTCV') Use In actcv Endif Release oreg, pocump Endproc && viz_regcump ******************************************* SFARSIT: viz_regcump *******************************************