18904 lines
667 KiB
Plaintext
18904 lines
667 KiB
Plaintext
*!* 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 <tip1>, 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 <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <20>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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <20>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 <20>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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <20>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 <20>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 <20>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 <20>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 <20>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 <20>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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <20>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 <20>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 <20>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 <20>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 <20>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 <20>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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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) <<m.gcCondSucursala>>
|
||
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
|
||
<<m.gcCondSucursala>>
|
||
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')
|
||
<<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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 <<m.gcCondSucursala>>
|
||
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
|
||
|
||
\\<<lcSir>>
|
||
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)
|
||
|
||
|
||
\\<<lcSir>>
|
||
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 = <<ALLTRIM(STR(This.nAn))>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
UNION
|
||
SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC
|
||
FROM vjc2010
|
||
WHERE an = <<ALLTRIM(STR(This.nAn))>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
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 = <<ALLTRIM(STR(This.nAn))>>
|
||
<<lcConditieAct>>
|
||
AND ID_FDOC IN (<<m.lcSirId>>)
|
||
<<gcCondSucursala>>
|
||
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 = <<ALLTRIM(STR(This.nAn))>>
|
||
<<lcConditieAct>>
|
||
AND ID_FDOC IN (<<m.lcSirId>>)
|
||
<<gcCondSucursala>>
|
||
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 = <<ALLTRIM(STR(This.nAn))>> AND LUNA = 12
|
||
*!* ENDTEXT
|
||
|
||
Text To lcSql Textmerge Noshow
|
||
SELECT SUM(totcred) as totalcredit FROM vbal
|
||
WHERE (cont = '7583') AND AN = <<ALLTRIM(STR(This.nAn))>> 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\<user>\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,<an>,<cod fiscal(fara RO)>,<cod caen>,#<X daca este A>#,#<X daca este B>#,<cifra de afaceri>,
|
||
*!* <baza livrari catre plat.TVA>,<TVA livrari catre plat.TVA>,<baza livrari catre neplat.TVA>,<TVA livrari catre neplat.TVA>,
|
||
*!* <baza achizitii de la plat.TVA>,<TVA achizitii de la plat.TVA>,<baza achizitii de la neplat.TVA>
|
||
*!* linia 2 : #<RO daca este plat.TVA>#,#<denumire firma>#,#<adresa>#,#<telefon>#,#<fax>#,#<email>#,
|
||
*!* #<nume si prenume declarant>#,#<functia>#
|
||
|
||
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,<an>,<cod fiscal(fara RO)>,<cod caen>,#<X daca este A>#,#<X daca este B>#,<cifra de afaceri>,
|
||
*!* <baza livrari catre plat.TVA>,<TVA livrari catre plat.TVA>,<baza livrari catre neplat.TVA>,<TVA livrari catre neplat.TVA>,
|
||
*!* <baza achizitii de la plat.TVA>,<TVA achizitii de la plat.TVA>,<baza achizitii de la neplat.TVA>
|
||
*!* linia 2 : #<RO daca este plat.TVA>#,#<denumire firma>#,#<adresa>#,#<telefon>#,#<fax>#,#<email>#,
|
||
*!* #<nume si prenume declarant>#,#<functia>#
|
||
With This
|
||
\392,<<Alltrim(Str(.nAn))>>,<<Alltrim(.cCodFiscal)>>,<<Alltrim(.cCodCaen)>>,#<<Iif(.cTip=[A],[X],[])>>#,#<<Iif(.cTip=[B],[X],[])>>#,<<Alltrim(Str(.nCifraDeAfaceri))>>,
|
||
\\<<Alltrim(Str(.nBazaLivrPlTVA))>>,<<Iif(.cTip=[B],[],Alltrim(Str(.nTVALivrPlTVA)))>>,
|
||
\\<<Alltrim(Str(.nBazaLivrNeplTVA))>>,<<Iif(.cTip=[B],[],Alltrim(Str(.nTVALivrNeplTVA)))>>,
|
||
\\<<Iif(.cTip=[A],[],Alltrim(Str(.nBazaAchPlTVA)))>>,<<Iif(.cTip=[A],[],Alltrim(Str(.nTVAAchPlTVA)))>>,
|
||
\\<<Iif(.cTip=[A],[],Alltrim(Str(.nBazaAchNeplTVA)))>>
|
||
\#<<Iif(.lPlatitorTVA,[RO],[])>>#,#<<Alltrim(.cDenumireFirma)>>#,#<<Alltrim(.cAdresa)>>#,#<<Alltrim(.cTelefon)>>#,
|
||
\\#<<Alltrim(.cFax)>>#,#<<Alltrim(.cEmail)>>#,#<<Alltrim(.cDeclarant)>>#,#<<Alltrim(.cFunctieDeclarant)>>#
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<form1>
|
||
<titlu>
|
||
<tip392><<IIF(this.cTip = 'A', '1' , '2')>></tip392><an_r><<Alltrim(Str(.nAn))>></an_r><luna_r><<Alltrim(Str(.nLuna))>></luna_r><d_rec>0</d_rec><totalPlata_A><<Alltrim(Str(.nCifraDeAfaceri))>></totalPlata_A>
|
||
</titlu>
|
||
<cap1>
|
||
<nume1><<Alltrim(.cDenumireFirma)>></nume1><adresa1><<Alltrim(.cAdresa)>></adresa1>
|
||
<adresa><tel1><<Alltrim(.cTelefon)>></tel1><fax1><<Alltrim(.cFax)>></fax1><email1><<Alltrim(.cEmail)>></email1></adresa>
|
||
<cif><<Alltrim(.cCodFiscal)>></cif><CAEN><<Alltrim(.cCodCaen)>></CAEN>
|
||
</cap1>
|
||
<cap2>
|
||
<nume2></nume2><adresa2></adresa2>
|
||
<adresa><tel2></tel2><fax2></fax2><email2></email2></adresa>
|
||
<nr_act></nr_act><data_act></data_act><cif2></cif2>
|
||
</cap2>
|
||
<cap3><cifra_afaceri><<Alltrim(Str(.nCifraDeAfaceri))>></cifra_afaceri></cap3>
|
||
<D392A>
|
||
<val1_L><<Alltrim(Str(.nBazaLivrPlTVA))>></val1_L><val2_L><<Alltrim(Str(.nBazaLivrNeplTVA))>></val2_L>
|
||
<coloana2>
|
||
<tva1_L><<Iif(.cTip=[B],[],Alltrim(Str(.nTVALivrPlTVA)))>></tva1_L>
|
||
<tva2_L><<Iif(.cTip=[B],[],Alltrim(Str(.nTVALivrNeplTVA)))>></tva2_L>
|
||
</coloana2>
|
||
</D392A>
|
||
<D392B>
|
||
<val1_A><<Iif(.cTip=[A],[],Alltrim(Str(.nBazaAchPlTVA)))>></val1_A>
|
||
<val2_A><<Iif(.cTip=[A],[],Alltrim(Str(.nBazaAchNeplTVA)))>></val2_A>
|
||
<tva1_A><<Iif(.cTip=[A],[],Alltrim(Str(.nTVAAchPlTVA)))>></tva1_A>
|
||
</D392B>
|
||
<final>
|
||
<nume_declarant><<Alltrim(.cNumeDeclarant)>></nume_declarant><prenume_declarant><<Alltrim(.cPrenumeDeclarant)>></prenume_declarant><functia_declarant><<Alltrim(.cFunctieDeclarant)>></functia_declarant>
|
||
</final>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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 = <<ALLTRIM(STR(This.nAn))>> 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 = <<ALLTRIM(STR(This.nAn))>> 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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<form1>
|
||
<ID0>
|
||
<d_rec>0</d_rec>
|
||
<an_r><<Alltrim(Str(.nAn))>></an_r>
|
||
<luna_r><<Alltrim(Str(.nLuna))>></luna_r>
|
||
<cifS />
|
||
<d_succ>0</d_succ>
|
||
</ID0>
|
||
<ID1>
|
||
<cif><<Alltrim(.cCodFiscal)>></cif>
|
||
<RO>RO</RO>
|
||
<den><<Alltrim(.cDenumireFirma)>></den>
|
||
<adresa><<Alltrim(.cAdresa)>></adresa>
|
||
<telefon><<Alltrim(.cTelefon)>></telefon>
|
||
<fax><<Alltrim(.cFax)>></fax>
|
||
<mail><<Alltrim(.cEmail)>></mail>
|
||
</ID1>
|
||
<ID4>
|
||
<FUNCTIA><<Alltrim(.cFunctieDeclarant)>></FUNCTIA>
|
||
<PRENUME><<Alltrim(.cPrenumeDeclarant)>></PRENUME>
|
||
<NUME><<Alltrim(.cNumeDeclarant)>></NUME>
|
||
<totalPlata_A><<m.lnTotalPlata>></totalPlata_A>
|
||
</ID4>
|
||
<T2>
|
||
<calc_aut>1</calc_aut>
|
||
</T2>
|
||
<T3>
|
||
<repet>
|
||
<CATEG>08. Venituri din dividende (col.7,8,9,10)</CATEG>
|
||
</repet>
|
||
ENDTEXT
|
||
|
||
SELECT crs205
|
||
SCAN
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
<repet1>
|
||
<Tara_V />
|
||
<seq1><<RECNO()>></seq1>
|
||
<NUME_BENEF><<ALLTRIM(beneficiar)>></NUME_BENEF>
|
||
<Rezid>1</Rezid>
|
||
<Stat_R />
|
||
<CNP_BENEF><<ALLTRIM(cnp)>></CNP_BENEF>
|
||
<CNP_BENEF_S />
|
||
<CASTIG><<INT(dividende)>></CASTIG>
|
||
<PIERDERE><<INT(dividendep)>></PIERDERE>
|
||
<BAZA><<INT(dividende)>></BAZA>
|
||
<IMPOZIT><<INT(impozit)>></IMPOZIT>
|
||
<NATURA>2</NATURA>
|
||
</repet1>
|
||
ENDTEXT
|
||
ENDSCAN
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</T3>
|
||
|
||
</form1>
|
||
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<form1>
|
||
<ID0>
|
||
<d_rec>0</d_rec>
|
||
<an_r><<Alltrim(Str(.nAn))>></an_r>
|
||
<luna_r><<Alltrim(Str(.nLuna))>></luna_r>
|
||
<cifS />
|
||
<d_succ>0</d_succ>
|
||
</ID0>
|
||
<ID1>
|
||
<cif><<Alltrim(.cCodFiscal)>></cif>
|
||
<RO>RO</RO>
|
||
<den><<Alltrim(.cDenumireFirma)>></den>
|
||
<adresa><<Alltrim(.cAdresa)>></adresa>
|
||
<telefon><<Alltrim(.cTelefon)>></telefon>
|
||
<fax><<Alltrim(.cFax)>></fax>
|
||
<mail><<Alltrim(.cEmail)>></mail>
|
||
</ID1>
|
||
<ID4>
|
||
<FUNCTIA><<Alltrim(.cFunctieDeclarant)>></FUNCTIA>
|
||
<PRENUME><<Alltrim(.cPrenumeDeclarant)>></PRENUME>
|
||
<NUME><<Alltrim(.cNumeDeclarant)>></NUME>
|
||
<totalPlata_A><<m.lnTotalPlata>></totalPlata_A>
|
||
</ID4>
|
||
<CATEGORII>
|
||
<V04>0</V04>
|
||
<V13>0</V13>
|
||
<V01>0</V01>
|
||
<V24>0</V24>
|
||
<V08>1</V08>
|
||
<V09>0</V09>
|
||
<V11>0</V11>
|
||
<V12>0</V12>
|
||
<V18>0</V18>
|
||
<V15>0</V15>
|
||
<V16>0</V16>
|
||
<V22>0</V22>
|
||
<V02>0</V02>
|
||
<V03>0</V03>
|
||
<V05>0</V05>
|
||
<V06>0</V06>
|
||
<V07>0</V07>
|
||
<V10>0</V10>
|
||
<V14>0</V14>
|
||
<V17>0</V17>
|
||
<V19>0</V19>
|
||
<V20>0</V20>
|
||
<V21>0</V21>
|
||
<V23>0</V23>
|
||
</CATEGORII>
|
||
<T2>
|
||
<calc_aut>1</calc_aut>
|
||
</T2>
|
||
<T3>
|
||
<repet>
|
||
<CATEG>08. Venituri din dividende (col.7,8)</CATEG>
|
||
</repet>
|
||
ENDTEXT
|
||
|
||
SELECT crs205
|
||
SCAN
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
<repet1>
|
||
<Tara_V />
|
||
<seq1><<RECNO()>></seq1>
|
||
<NUME_BENEF><<ALLTRIM(beneficiar)>></NUME_BENEF>
|
||
<Rezid>1</Rezid>
|
||
<Stat_R />
|
||
<CNP_BENEF><<ALLTRIM(cnp)>></CNP_BENEF>
|
||
<CNP_BENEF_S />
|
||
<CASTIG><<INT(dividende)>></CASTIG>
|
||
<PIERDERE />
|
||
<BAZA>0</BAZA>
|
||
<IMPOZIT>0</IMPOZIT>
|
||
<NATURA>2</NATURA>
|
||
</repet1>
|
||
ENDTEXT
|
||
ENDSCAN
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</T3>
|
||
|
||
</form1>
|
||
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<form1>
|
||
<ID0>
|
||
<d_rec>0</d_rec>
|
||
<an_r><<Alltrim(Str(.nAn))>></an_r>
|
||
<luna_r><<Alltrim(Str(.nLuna))>></luna_r>
|
||
<cifS />
|
||
<d_succ>0</d_succ>
|
||
</ID0>
|
||
<ID1>
|
||
<cif><<Alltrim(.cCodFiscal)>></cif>
|
||
<RO>RO</RO>
|
||
<den><<Alltrim(.cDenumireFirma)>></den>
|
||
<adresa><<Alltrim(.cAdresa)>></adresa>
|
||
<telefon><<Alltrim(.cTelefon)>></telefon>
|
||
<fax><<Alltrim(.cFax)>></fax>
|
||
<mail><<Alltrim(.cEmail)>></mail>
|
||
</ID1>
|
||
<ID4>
|
||
<FUNCTIA><<Alltrim(.cFunctieDeclarant)>></FUNCTIA>
|
||
<PRENUME><<Alltrim(.cPrenumeDeclarant)>></PRENUME>
|
||
<NUME><<Alltrim(.cNumeDeclarant)>></NUME>
|
||
<totalPlata_A><<m.lnTotalPlata>></totalPlata_A>
|
||
</ID4>
|
||
<CATEGORII>
|
||
<V04>0</V04>
|
||
<V13>0</V13>
|
||
<V01>0</V01>
|
||
<V24>0</V24>
|
||
<V08>1</V08>
|
||
<V09>0</V09>
|
||
<V11>0</V11>
|
||
<V12>0</V12>
|
||
<V18>0</V18>
|
||
<V15>0</V15>
|
||
<V16>0</V16>
|
||
<V22>0</V22>
|
||
<V02>0</V02>
|
||
<V03>0</V03>
|
||
<V05>0</V05>
|
||
<V06>0</V06>
|
||
<V07>0</V07>
|
||
<V10>0</V10>
|
||
<V14>0</V14>
|
||
<V17>0</V17>
|
||
<V19>0</V19>
|
||
<V20>0</V20>
|
||
<V21>0</V21>
|
||
<V23>0</V23>
|
||
</CATEGORII>
|
||
<T2>
|
||
<calc_aut>1</calc_aut>
|
||
</T2>
|
||
<T3>
|
||
<repet>
|
||
<CATEG>08. Venituri din dividende</CATEG>
|
||
</repet>
|
||
ENDTEXT
|
||
|
||
SELECT crs205
|
||
SCAN
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
<repet1>
|
||
<Tara_V />
|
||
<seq1><<RECNO()>></seq1>
|
||
<NUME_BENEF><<ALLTRIM(beneficiar)>></NUME_BENEF>
|
||
<Rezid>1</Rezid>
|
||
<Stat_R />
|
||
<CNP_BENEF><<ALLTRIM(cnp)>></CNP_BENEF>
|
||
<CNP_BENEF_S />
|
||
<CASTIG><<INT(dividende)>></CASTIG>
|
||
<PIERDERE />
|
||
<BAZA>0</BAZA>
|
||
<IMPOZIT>0</IMPOZIT>
|
||
<NATURA>2</NATURA>
|
||
</repet1>
|
||
ENDTEXT
|
||
ENDSCAN
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</T3>
|
||
|
||
</form1>
|
||
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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
|
||
<<lcConditieLuna>>
|
||
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
|
||
<<lcConditieLuna>>
|
||
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 = <<m.pnIdSetAnulat>> and f.tip_doc in ('F', 'M') and
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
and id_fact in (SELECT j.id_fact
|
||
from jv2007 j
|
||
where <<lcConditieLuna>> <<lcConditieAct>> 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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
and id_fact in (SELECT j.id_fact
|
||
from jv2007 j
|
||
where <<lcConditieLuna>> <<lcConditieAct>> 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,
|
||
'<<SUBSTR(ALLTRIM(STR(m.lnAn)),3,2)>>', '<<m.lnAn>>') || decode(s.luna, 1, lpad('<<m.lnLuna1>>', 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,
|
||
'<<SUBSTR(ALLTRIM(STR(m.lnAn)),3,2)>>', '<<m.lnAn>>') || decode(s.luna, 1, lpad('<<m.lnLuna1>>', 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 = <<m.lnIdTipDocFact>>
|
||
and ((<<lnAn*12+lnLuna1>> 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
|
||
(<<lnAn*12+lnLuna2>> 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 = '<ALEGETI LOCALITATEA>'
|
||
|
||
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
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.0.11263.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<!-- textul de sus este textul de inceput iar jos urmeaza fisierul xml data -->
|
||
<form1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<sub_per>
|
||
<an_r><<m.lcAn>></an_r><TIP_D394><<This.tip>></TIP_D394><luna_r><<m.lcLuna>></luna_r><sistem><<INT(this.oUnitate.tvaincasare)>></sistem><operatiuni><<INT(this.oUnitate.operatiuni)>></operatiuni>
|
||
<prsAfiliat><<INT(this.oUnitate.PersoaneAfiliate)>></prsAfiliat>
|
||
</sub_per>
|
||
<sub_dateDeIdentificare>
|
||
<cif><<m.lcCodFiscalF>></cif><den><<m.lcDen>></den><adresa><<m.lcAdresa>></adresa><telefon><<ALLTRIM(goFirma.telefon)>></telefon><fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<mail><<ALLTRIM(LOWER(goFirma.email))>></mail><d_rec>0</d_rec><caen1><<m.lcCaenRev3>></caen1><caen><<m.lcCaenRev2>></caen>
|
||
</sub_dateDeIdentificare>
|
||
</body1>
|
||
<body10><totalPlata_A/></body10>
|
||
Endtext
|
||
|
||
|
||
* Sectiunea Facturi
|
||
Set Textmerge On To Memvar lcXDP Additive Noshow
|
||
\<!-- Facturi -->
|
||
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
|
||
\</tip1>
|
||
Endif
|
||
|
||
Do Case
|
||
Case tippart = 1
|
||
\<!-- Persoane inregistrate in scopuri de TVA -->
|
||
Case tippart = 2
|
||
\<!-- Persoane neinregistrate in scopuri de TVA -->
|
||
Case tippart = 3
|
||
\<!-- Persoane intracomunitare -->
|
||
Case tippart = 4
|
||
\<!-- Persoane extracomunitare -->
|
||
Endcase
|
||
|
||
\<tip1>
|
||
\<tip_partener><<cFacturi.tippart>></tip_partener>
|
||
Endif
|
||
\ <sub1>
|
||
\ <sub2>
|
||
\ <seq2><<cFacturi.seq>></seq2>
|
||
\ <denP><<XmlSpecialCharacters(RemoveCharacters(Alltrim(cFacturi.denp), .T.))>></denP>
|
||
\ <Tip><<ALLTRIM(cFacturi.tip)>></Tip>
|
||
\ <cota><<cFacturi.cota>></cota>
|
||
\ <cuiP><<ALLTRIM(cFacturi.cuip)>></cuiP>
|
||
\ <nrfact><<cFacturi.nrfact>></nrfact>
|
||
\ <baza><<cFacturi.baza>></baza>
|
||
\ <tva><<IIF(INLIST(ALLTRIM(cFacturi.TIP), 'N', 'V', 'AS', 'LS'), '', ALLTRIM(STR(cFacturi.tva)))>></tva>
|
||
If cFacturi.tippart = 2 && persoane neinregistrate in scopuri TVA
|
||
If ALLTRIM(cFacturi.TIP) = 'N' && persoane neinregistrate in scopuri TVA
|
||
\ <tip_document><<cFacturi.tip_document>></tip_document>
|
||
ENDIF
|
||
\ <adresa>
|
||
\ <tara><<ALLTRIM(NVL(cFacturi.COD_TARA, "RO"))+ '--' + PROPER(ALLTRIM(NVL(cFacturi.TARA, 'ROMANIA')))>></tara>
|
||
\ <judet><<ALLTRIM(NVL(cFacturi.cod_judet, ""))>></judet>
|
||
\ <localitate><<ALLTRIM(NVL(cFacturi.localitate, ""))>></localitate>
|
||
\ <strada><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.strada, "")), .T.))>></strada>
|
||
\ <nr><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.numar,"")), .T.))>></nr>
|
||
\ <bloc><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.bloc, "")), .T.))>></bloc>
|
||
\ <apart><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.apart,"")), .T.))>></apart>
|
||
\ </adresa>
|
||
Endif
|
||
\ </sub2>
|
||
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
|
||
\ <!-- Produse -->
|
||
\ <sub3>
|
||
\ <seq3>1</seq3>
|
||
\ <codPR></codPR>
|
||
\ <nrFacturi><<cFacturi.nrfact>></nrFacturi>
|
||
\ <baza><<cFacturi.baza>></baza>
|
||
\ <tva><<IIF(INLIST(cFacturi.TIP, 'N', 'V', 'AS', 'LS'), '', ALLTRIM(STR(cFacturi.tva)))>></tva>
|
||
\ </sub3>
|
||
ENDIF && tippart = 2 OR INLIST(ALLTRIM(tip), 'V', 'C')
|
||
\ </sub1>
|
||
|
||
lnTipPart = cFacturi.tippart
|
||
ENDSCAN && cFacturi
|
||
IF m.lnNrFacturi > 0
|
||
\</tip1>
|
||
ENDIF
|
||
* Sectiunea AMEF
|
||
\ <!-- Case marcat -->
|
||
\ <tip2>
|
||
|
||
Select crsAMEF
|
||
Scan
|
||
\ <amef>
|
||
\ <tip><<tip>></tip>
|
||
\ <luna><<luna>></luna>
|
||
IF tip <> 2
|
||
\ <nrAMEF><<nramef>></nrAMEF>
|
||
\ <nrbonuri><<nrbonuri>></nrbonuri>
|
||
ENDIF
|
||
\ <incasari><<incasari>></incasari>
|
||
\ <detaliu_amef><cota>5</cota><baza><<baza05>></baza><tva><<tva05>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>9</cota><baza><<baza09>></baza><tva><<tva09>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>11</cota><baza><<baza11>></baza><tva><<tva11>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>19</cota><baza><<baza19>></baza><tva><<tva19>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>20</cota><baza><<baza20>></baza><tva><<tva20>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>21</cota><baza><<baza21>></baza><tva><<tva21>></tva></detaliu_amef>
|
||
\ </amef>
|
||
Endscan && crsAMEF
|
||
|
||
\ </tip2>
|
||
|
||
IF m.llExportSectiuneaI
|
||
* Sectiunea I1 facturi simplificate si bonuri fiscale cu CUI
|
||
\<I1>
|
||
\<info1>
|
||
\<HeaderRow xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
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 + '>'>><baza><<baza>></baza><tva><<tva>></tva></<<m.lcTag + '>'>>
|
||
Endscan
|
||
\</info1>
|
||
\</I1>
|
||
|
||
* Sectiunea I2 Alte informatii
|
||
\ <i2>
|
||
\ <!-- 2.1 Plaja de facturi alocate In Perioada de raportare -->
|
||
Select crsFacturiAlocate
|
||
Scan
|
||
\ <plaja1><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f></plaja1>
|
||
Endscan
|
||
\ <!-- 2.2 Numarul Total de facturi emise, In Perioada de raportare, din Plaja de facturi alocate: -->
|
||
\ <facturi2>
|
||
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_emise>></fact_emise>
|
||
Select crsFacturiEmise
|
||
Scan
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f></plaja>
|
||
Endscan
|
||
|
||
\ <!-- 1 facturi stornate -->
|
||
\ <!-- 2 facturi anulate -->
|
||
\ <!-- 3 Facturi autofacturare -->
|
||
\ <!-- 4 Facturi furnizor -->
|
||
Sele crsFacturiEmiseTip
|
||
Scan
|
||
\ <detaliu_fact>
|
||
\ <tip_fact><<ntip>></tip_fact>
|
||
\ <serie><<ALLTRIM(seria)>></serie>
|
||
\ <nr><<nr>></nr>
|
||
If ntip = 3 && autofacturare
|
||
Select crsAutoFacturi
|
||
Locate For Alltrim(crsAutoFacturi.seria) = Alltrim(crsFacturiEmiseTip.seria) And crsAutoFacturi.nr = crsFacturiEmiseTip.nr
|
||
If Found()
|
||
\ <autofacturare>
|
||
\ <baza21><<baza21>></baza21><tva21><<tva21>></tva21>
|
||
\ <baza11><<baza11>></baza11><tva11><<tva11>></tva11>
|
||
\ <baza19><<baza19>></baza19><tva19><<tva19>></tva19>
|
||
\ <baza9><<baza09>></baza9><tva9><<tva09>></tva9>
|
||
\ <baza5><<baza05>></baza5><tva5><<tva05>></tva5>
|
||
\ <baza24><<baza24>></baza24><tva24><<tva24>></tva24>
|
||
\ <baza20><<baza20>></baza20><tva20><<tva20>></tva20>
|
||
\ </autofacturare>
|
||
Endif && FOUND
|
||
Endif
|
||
\ </detaliu_fact>
|
||
Endscan && crsFacturiEmiseTip
|
||
|
||
\ </facturi2>
|
||
|
||
\ <!-- 2.3 Numarul total de facturi emise, in perioada de raportare, de beneficiari in numele persoanei impozabile: -->
|
||
\ <facturi3>
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_beneficiari>></fact_emise>
|
||
|
||
Select crsFacturiTerti
|
||
SCAN FOR punct = '2.3'
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f><den><<ALLTRIM(NVL(denumire,''))>></den><cui><<ALLTRIM(NVL(cod_fiscal, ''))>></cui></plaja>
|
||
ENDSCAN
|
||
\ </facturi3>
|
||
|
||
\ <!-- 2.4 Numarul total de facturi emise, in perioada de raportare, de terti in numele persoanei impozabile: -->
|
||
\ <facturi4>
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_terti>></fact_emise>
|
||
Select crsFacturiTerti
|
||
SCAN FOR punct = '2.4'
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f><den><<ALLTRIM(NVL(denumire,''))>></den><cui><<ALLTRIM(NVL(cod_fiscal, ''))>></cui></plaja>
|
||
ENDSCAN
|
||
\ </facturi4>
|
||
|
||
\ </i2>
|
||
|
||
* Sectiunea 4
|
||
Select crsSectiuneaI4
|
||
Locate For punct = '4.1'
|
||
If Found()
|
||
\ <date_deduc><deduc21><<tva21>></deduc21><deduc11><<tva11>></deduc11><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20></date_deduc>
|
||
Endif && FOUND
|
||
|
||
* Sectiunea 5
|
||
\ <date_deduc_TVAi>
|
||
Select crsSectiuneaI4
|
||
Locate For punct = '5.1'
|
||
If Found()
|
||
\ <date51><deduc21><<tva21>></deduc21><deduc11><<tva11>></deduc11><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20></date51>
|
||
Endif
|
||
Locate For punct = '5.2'
|
||
If Found()
|
||
\ <date52><deduc21><<tva21>></deduc21><deduc11><<tva11>></deduc11><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20></date52>
|
||
Endif
|
||
Locate For punct = '5.3'
|
||
If Found()
|
||
\ <date53><deduc21><<tva21>></deduc21><deduc11><<tva11>></deduc11><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20></date53>
|
||
Endif
|
||
|
||
* Nu am adunat date despre sectiunea 6 si 7
|
||
If .F.
|
||
\ <date_marja><incasari1/><costuri1/><marja1/><tva1/><tva2/><marja2/><costuri2/><incasari2/></date_marja>
|
||
\ <!-- 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 -->
|
||
\ <lista>
|
||
\ <detaliu_lista>
|
||
\ <tip_operatiune>1</tip_operatiune>
|
||
\ <activitate>4520</activitate>
|
||
\ <livrari>1001</livrari>
|
||
\ <deduc5/>
|
||
\ <deduc9/>
|
||
\ <deduc20>201</deduc20>
|
||
\ <deduc21/>
|
||
\ </detaliu_lista>
|
||
\ <detaliu_lista>
|
||
\ <tip_operatiune>2</tip_operatiune>
|
||
\ <activitate>4520</activitate>
|
||
\ <livrari>1000</livrari>
|
||
\ <deduc5/>
|
||
\ <deduc9>90</deduc9>
|
||
\ <deduc20/>
|
||
\ <deduc21/>
|
||
\ </detaliu_lista>
|
||
\ </lista>
|
||
Endif && .F.
|
||
|
||
\ </date_deduc_TVAi>
|
||
|
||
ENDIF && llExportSectiuneaI
|
||
|
||
* Reprezentant fiscal
|
||
\<body11>
|
||
\ <sub_dateDeIdentificare>
|
||
\ <cifR><<ALLTRIM(this.oUnitate.CUIRepr)>></cifR>
|
||
\ <denR><<ALLTRIM(this.oUnitate.DenRepr)>></denR>
|
||
\ <adresaR><<ALLTRIM(this.oUnitate.AdrRepr)>></adresaR>
|
||
\ <telefonR><<ALLTRIM(this.oUnitate.TelRepr)>></telefonR>
|
||
\ <faxR><<ALLTRIM(this.oUnitate.FaxRepr)>></faxR>
|
||
\ <mailR><<ALLTRIM(this.oUnitate.EmailRepr)>></mailR>
|
||
\ </sub_dateDeIdentificare>
|
||
\</body11>
|
||
\<intocmit>
|
||
\<tip_reprez><<ALLTRIM(This.oUnitate.TipRepr)>></tip_reprez>
|
||
\<reprezentant><<ALLTRIM(this.oUnitate.DenRepr)>></reprezentant>
|
||
\<den_intocmit><<ALLTRIM(this.oUnitate.DenIntocmit)>></den_intocmit>
|
||
\<functie><<ALLTRIM(this.oUnitate.FunctieIntocmit)>></functie>
|
||
\<calitate_alta><<ALLTRIM(this.oUnitate.Calitate2Intocmit)>></calitate_alta>
|
||
\<calitate><<ALLTRIM(this.oUnitate.CalitateIntocmit)>></calitate>
|
||
\<cui_intocmit><<ALLTRIM(this.oUnitate.CUIIntocmit)>></cui_intocmit>
|
||
\<tip_intocmit><<IIF(this.oUnitate.PJIntocmit = 2, 0, 1)>></tip_intocmit>
|
||
\<schim_opt>0</schim_opt>
|
||
\<optiune><<INT(this.oUnitate.optiuneANAF)>></optiune>
|
||
\</intocmit>
|
||
|
||
\ </form1>
|
||
|
||
\ <!-- aici se Termina XML-Data iar jos urmeaza textul de sfarsit care face referire la documentul PDF Prin href="D394_XML_2016.PDF" -->
|
||
|
||
\</xfa:data>
|
||
\</xfa:datasets>
|
||
\<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
\</xdp:xdp>
|
||
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
|
||
<<lcConditieLuna>>
|
||
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
|
||
<<lcConditieLuna>>
|
||
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 = <<m.pnIdSetAnulat>> and f.tip_doc in ('F', 'M') and
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
and id_fact in (SELECT j.id_fact
|
||
from jv2007 j
|
||
where <<lcConditieLuna>> <<lcConditieAct>> 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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
and id_fact in (SELECT j.id_fact
|
||
from jv2007 j
|
||
where <<lcConditieLuna>> <<lcConditieAct>> 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,
|
||
'<<SUBSTR(ALLTRIM(STR(m.lnAn)),3,2)>>', '<<m.lnAn>>') || decode(s.luna, 1, lpad('<<m.lnLuna1>>', 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,
|
||
'<<SUBSTR(ALLTRIM(STR(m.lnAn)),3,2)>>', '<<m.lnAn>>') || decode(s.luna, 1, lpad('<<m.lnLuna1>>', 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 = <<m.lnIdTipDocFact>>
|
||
and ((<<lnAn*12+lnLuna1>> 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
|
||
(<<lnAn*12+lnLuna2>> 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 = '<ALEGETI LOCALITATEA>'
|
||
|
||
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
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.0.11263.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<!-- textul de sus este textul de inceput iar jos urmeaza fisierul xml data -->
|
||
<form1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<sub_per>
|
||
<an_r><<m.lcAn>></an_r><TIP_D394><<This.tip>></TIP_D394><luna_r><<m.lcLuna>></luna_r><sistem><<INT(this.oUnitate.tvaincasare)>></sistem><operatiuni><<INT(this.oUnitate.operatiuni)>></operatiuni>
|
||
<prsAfiliat><<INT(this.oUnitate.PersoaneAfiliate)>></prsAfiliat>
|
||
</sub_per>
|
||
<sub_dateDeIdentificare>
|
||
<cif><<m.lcCodFiscalF>></cif><den><<m.lcDen>></den><adresa><<m.lcAdresa>></adresa><telefon><<ALLTRIM(goFirma.telefon)>></telefon><fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<mail><<ALLTRIM(LOWER(goFirma.email))>></mail><d_rec>0</d_rec><caen><<ALLTRIM(LOWER(goFirma.caen))>></caen>
|
||
</sub_dateDeIdentificare>
|
||
</body1>
|
||
<body10><totalPlata_A/></body10>
|
||
Endtext
|
||
|
||
|
||
* Sectiunea Facturi
|
||
Set Textmerge On To Memvar lcXDP Additive Noshow
|
||
\<!-- Facturi -->
|
||
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
|
||
\</tip1>
|
||
Endif
|
||
|
||
Do Case
|
||
Case tippart = 1
|
||
\<!-- Persoane inregistrate in scopuri de TVA -->
|
||
Case tippart = 2
|
||
\<!-- Persoane neinregistrate in scopuri de TVA -->
|
||
Case tippart = 3
|
||
\<!-- Persoane intracomunitare -->
|
||
Case tippart = 4
|
||
\<!-- Persoane extracomunitare -->
|
||
Endcase
|
||
|
||
\<tip1>
|
||
\<tip_partener><<cFacturi.tippart>></tip_partener>
|
||
Endif
|
||
\ <sub1>
|
||
\ <sub2>
|
||
\ <seq2><<cFacturi.seq>></seq2>
|
||
\ <denP><<XmlSpecialCharacters(RemoveCharacters(Alltrim(cFacturi.denp), .T.))>></denP>
|
||
\ <Tip><<ALLTRIM(cFacturi.tip)>></Tip>
|
||
\ <cota><<cFacturi.cota>></cota>
|
||
\ <cuiP><<ALLTRIM(cFacturi.cuip)>></cuiP>
|
||
\ <nrfact><<cFacturi.nrfact>></nrfact>
|
||
\ <baza><<cFacturi.baza>></baza>
|
||
\ <tva><<IIF(INLIST(ALLTRIM(cFacturi.TIP), 'N', 'V', 'AS', 'LS'), '', ALLTRIM(STR(cFacturi.tva)))>></tva>
|
||
If cFacturi.tippart = 2 && persoane neinregistrate in scopuri TVA
|
||
If ALLTRIM(cFacturi.TIP) = 'N' && persoane neinregistrate in scopuri TVA
|
||
\ <tip_document><<cFacturi.tip_document>></tip_document>
|
||
ENDIF
|
||
\ <adresa>
|
||
\ <tara><<ALLTRIM(NVL(cFacturi.COD_TARA, "RO"))+ '--' + PROPER(ALLTRIM(NVL(cFacturi.TARA, 'ROMANIA')))>></tara>
|
||
\ <judet><<ALLTRIM(NVL(cFacturi.cod_judet, ""))>></judet>
|
||
\ <localitate><<ALLTRIM(NVL(cFacturi.localitate, ""))>></localitate>
|
||
\ <strada><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.strada, "")), .T.))>></strada>
|
||
\ <nr><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.numar,"")), .T.))>></nr>
|
||
\ <bloc><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.bloc, "")), .T.))>></bloc>
|
||
\ <apart><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(NVL(cFacturi.apart,"")), .T.))>></apart>
|
||
\ </adresa>
|
||
Endif
|
||
\ </sub2>
|
||
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
|
||
\ <!-- Produse -->
|
||
\ <sub3>
|
||
\ <seq3>1</seq3>
|
||
\ <codPR></codPR>
|
||
\ <nrFacturi><<cFacturi.nrfact>></nrFacturi>
|
||
\ <baza><<cFacturi.baza>></baza>
|
||
\ <tva><<IIF(INLIST(cFacturi.TIP, 'N', 'V', 'AS', 'LS'), '', ALLTRIM(STR(cFacturi.tva)))>></tva>
|
||
\ </sub3>
|
||
ENDIF && tippart = 2 OR INLIST(ALLTRIM(tip), 'V', 'C')
|
||
\ </sub1>
|
||
|
||
lnTipPart = cFacturi.tippart
|
||
ENDSCAN && cFacturi
|
||
IF m.lnNrFacturi > 0
|
||
\</tip1>
|
||
ENDIF
|
||
* Sectiunea AMEF
|
||
\ <!-- Case marcat -->
|
||
\ <tip2>
|
||
|
||
Select crsAMEF
|
||
Scan
|
||
\ <amef>
|
||
\ <tip><<tip>></tip>
|
||
\ <luna><<luna>></luna>
|
||
IF tip <> 2
|
||
\ <nrAMEF><<nramef>></nrAMEF>
|
||
\ <nrbonuri><<nrbonuri>></nrbonuri>
|
||
ENDIF
|
||
\ <incasari><<incasari>></incasari>
|
||
\ <detaliu_amef><cota>5</cota><baza><<baza05>></baza><tva><<tva05>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>9</cota><baza><<baza09>></baza><tva><<tva09>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>19</cota><baza><<baza19>></baza><tva><<tva19>></tva></detaliu_amef>
|
||
\ <detaliu_amef><cota>20</cota><baza><<baza20>></baza><tva><<tva20>></tva></detaliu_amef>
|
||
\ </amef>
|
||
Endscan && crsAMEF
|
||
|
||
\ <ianuarie>
|
||
Select crsPersFizice
|
||
Scan
|
||
If Alltrim(TIP) == 'L'
|
||
\ <!-- Exceptie: Pentru Perioada 01.07.2016 - 31.12.2016 In cazul selectarii livrari catre PERS. fizice < 10000 lei L -->
|
||
\ <nrfactL><<nrfact>></nrfactL>
|
||
\ <bazaL5><<baza05>></bazaL5><tvaL5><<tva05>></tvaL5>
|
||
\ <bazaL9><<baza09>></bazaL9><tvaL9><<tva09>></tvaL9>
|
||
\ <bazaL19><<baza19>></bazaL19><tvaL19><<tva19>></tvaL19>
|
||
\ <bazaL20><<baza20>></bazaL20><tvaL20><<tva20>></tvaL20>
|
||
\ <bazaL24><<baza24>></bazaL24><tvaL24><<tva24>></tvaL24>
|
||
Else
|
||
\ <!-- Exceptie: Pentru Perioada 01.07.2016 - 31.12.2016 In cazul selectarii livrari catre PERS. fizice < 10000 lei LS -->
|
||
\ <nrLS><<nrfact>></nrLS>
|
||
\ <bazaLS><<baza>></bazaLS>
|
||
Endif
|
||
Endscan
|
||
\ </ianuarie>
|
||
\ </tip2>
|
||
|
||
IF m.llExportSectiuneaI
|
||
* Sectiunea I1 facturi simplificate si bonuri fiscale cu CUI
|
||
\<I1>
|
||
\<info1>
|
||
\<HeaderRow xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
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 + '>'>><baza><<baza>></baza><tva><<tva>></tva></<<m.lcTag + '>'>>
|
||
Endscan
|
||
\</info1>
|
||
\</I1>
|
||
|
||
* Sectiunea I2 Alte informatii
|
||
\ <i2>
|
||
\ <!-- 2.1 Plaja de facturi alocate In Perioada de raportare -->
|
||
Select crsFacturiAlocate
|
||
Scan
|
||
\ <plaja1><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f></plaja1>
|
||
Endscan
|
||
\ <!-- 2.2 Numarul Total de facturi emise, In Perioada de raportare, din Plaja de facturi alocate: -->
|
||
\ <facturi2>
|
||
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_emise>></fact_emise>
|
||
Select crsFacturiEmise
|
||
Scan
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f></plaja>
|
||
Endscan
|
||
|
||
\ <!-- 1 facturi stornate -->
|
||
\ <!-- 2 facturi anulate -->
|
||
\ <!-- 3 Facturi autofacturare -->
|
||
\ <!-- 4 Facturi furnizor -->
|
||
Sele crsFacturiEmiseTip
|
||
Scan
|
||
\ <detaliu_fact>
|
||
\ <tip_fact><<ntip>></tip_fact>
|
||
\ <serie><<ALLTRIM(seria)>></serie>
|
||
\ <nr><<nr>></nr>
|
||
If ntip = 3 && autofacturare
|
||
Select crsAutoFacturi
|
||
Locate For Alltrim(crsAutoFacturi.seria) = Alltrim(crsFacturiEmiseTip.seria) And crsAutoFacturi.nr = crsFacturiEmiseTip.nr
|
||
If Found()
|
||
\ <autofacturare>
|
||
\ <baza24><<baza24>></baza24><tva24><<tva24>></tva24>
|
||
\ <baza20><<baza20>></baza20><tva20><<tva20>></tva20>
|
||
\ <baza19><<baza19>></baza19><tva19><<tva19>></tva19>
|
||
\ <baza9><<baza09>></baza9><tva9><<tva09>></tva9>
|
||
\ <baza5><<baza05>></baza5><tva5><<tva05>></tva5>
|
||
\ </autofacturare>
|
||
Endif && FOUND
|
||
Endif
|
||
\ </detaliu_fact>
|
||
Endscan && crsFacturiEmiseTip
|
||
|
||
\ </facturi2>
|
||
|
||
\ <!-- 2.3 Numarul total de facturi emise, in perioada de raportare, de beneficiari in numele persoanei impozabile: -->
|
||
\ <facturi3>
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_beneficiari>></fact_emise>
|
||
|
||
Select crsFacturiTerti
|
||
SCAN FOR punct = '2.3'
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f><den><<ALLTRIM(NVL(denumire,''))>></den><cui><<ALLTRIM(NVL(cod_fiscal, ''))>></cui></plaja>
|
||
ENDSCAN
|
||
\ </facturi3>
|
||
|
||
\ <!-- 2.4 Numarul total de facturi emise, in perioada de raportare, de terti in numele persoanei impozabile: -->
|
||
\ <facturi4>
|
||
\ <fact_emise><<This.oUnitate.nr_facturi_terti>></fact_emise>
|
||
Select crsFacturiTerti
|
||
SCAN FOR punct = '2.4'
|
||
\ <plaja><serie_i><<ALLTRIM(seria)>></serie_i><nr_i><<nr1>></nr_i><serie_f><<ALLTRIM(seria)>></serie_f><nr_f><<nr2>></nr_f><den><<ALLTRIM(NVL(denumire,''))>></den><cui><<ALLTRIM(NVL(cod_fiscal, ''))>></cui></plaja>
|
||
ENDSCAN
|
||
\ </facturi4>
|
||
|
||
\ </i2>
|
||
|
||
* Sectiunea 4
|
||
Select crsSectiuneaI4
|
||
Locate For punct = '4.1'
|
||
If Found()
|
||
\ <date_deduc><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5></date_deduc>
|
||
Endif && FOUND
|
||
|
||
* Sectiunea 5
|
||
\ <date_deduc_TVAi>
|
||
Select crsSectiuneaI4
|
||
Locate For punct = '5.1'
|
||
If Found()
|
||
\ <date51><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5></date51>
|
||
Endif
|
||
Locate For punct = '5.2'
|
||
If Found()
|
||
\ <date52><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5></date52>
|
||
Endif
|
||
Locate For punct = '5.3'
|
||
If Found()
|
||
\ <date53><deduc24><<tva24>></deduc24><deduc20><<tva20>></deduc20><deduc19><<tva19>></deduc19><deduc9><<tva09>></deduc9><deduc5><<tva05>></deduc5></date53>
|
||
Endif
|
||
|
||
* Nu am adunat date despre sectiunea 6 si 7
|
||
If .F.
|
||
\ <date_marja><incasari1/><costuri1/><marja1/><tva1/><tva2/><marja2/><costuri2/><incasari2/></date_marja>
|
||
\ <!-- 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 -->
|
||
\ <lista>
|
||
\ <detaliu_lista>
|
||
\ <tip_operatiune>1</tip_operatiune>
|
||
\ <activitate>4520</activitate>
|
||
\ <livrari>1001</livrari>
|
||
\ <deduc5/>
|
||
\ <deduc9/>
|
||
\ <deduc20>201</deduc20>
|
||
\ <deduc24/>
|
||
\ </detaliu_lista>
|
||
\ <detaliu_lista>
|
||
\ <tip_operatiune>2</tip_operatiune>
|
||
\ <activitate>4520</activitate>
|
||
\ <livrari>1000</livrari>
|
||
\ <deduc5/>
|
||
\ <deduc9>90</deduc9>
|
||
\ <deduc20/>
|
||
\ <deduc24/>
|
||
\ </detaliu_lista>
|
||
\ </lista>
|
||
Endif && .F.
|
||
|
||
\ </date_deduc_TVAi>
|
||
|
||
ENDIF && llExportSectiuneaI
|
||
|
||
* Reprezentant fiscal
|
||
\<body11>
|
||
\ <sub_dateDeIdentificare>
|
||
\ <cifR><<ALLTRIM(this.oUnitate.CUIRepr)>></cifR>
|
||
\ <denR><<ALLTRIM(this.oUnitate.DenRepr)>></denR>
|
||
\ <adresaR><<ALLTRIM(this.oUnitate.AdrRepr)>></adresaR>
|
||
\ <telefonR><<ALLTRIM(this.oUnitate.TelRepr)>></telefonR>
|
||
\ <faxR><<ALLTRIM(this.oUnitate.FaxRepr)>></faxR>
|
||
\ <mailR><<ALLTRIM(this.oUnitate.EmailRepr)>></mailR>
|
||
\ </sub_dateDeIdentificare>
|
||
\</body11>
|
||
\<intocmit>
|
||
\<tip_reprez><<ALLTRIM(This.oUnitate.TipRepr)>></tip_reprez>
|
||
\<reprezentant><<ALLTRIM(this.oUnitate.DenRepr)>></reprezentant>
|
||
\<den_intocmit><<ALLTRIM(this.oUnitate.DenIntocmit)>></den_intocmit>
|
||
\<functie><<ALLTRIM(this.oUnitate.FunctieIntocmit)>></functie>
|
||
\<calitate_alta><<ALLTRIM(this.oUnitate.Calitate2Intocmit)>></calitate_alta>
|
||
\<calitate><<ALLTRIM(this.oUnitate.CalitateIntocmit)>></calitate>
|
||
\<cui_intocmit><<ALLTRIM(this.oUnitate.CUIIntocmit)>></cui_intocmit>
|
||
\<tip_intocmit><<IIF(this.oUnitate.PJIntocmit = 2, 0, 1)>></tip_intocmit>
|
||
\<schim_opt>0</schim_opt>
|
||
\<optiune><<INT(this.oUnitate.optiuneANAF)>></optiune>
|
||
\</intocmit>
|
||
|
||
\ </form1>
|
||
|
||
\ <!-- aici se Termina XML-Data iar jos urmeaza textul de sfarsit care face referire la documentul PDF Prin href="D394_XML_2016.PDF" -->
|
||
|
||
\</xfa:data>
|
||
\</xfa:datasets>
|
||
\<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
\</xdp:xdp>
|
||
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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
UNION
|
||
SELECT 0 AS ALES, FEL_DOCUMENT AS FDOC, ID_FDOC
|
||
FROM vjc2010
|
||
WHERE
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
<<gcCondSucursala>>
|
||
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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
AND ID_FDOC IN (<<m.lcSirId>>)
|
||
<<gcCondSucursala>>
|
||
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 <<IIF(pounitate.tvanedeductibil, '+ ROSCN', '')>>), 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
|
||
<<lcConditieLuna>>
|
||
<<lcConditieAct>>
|
||
AND ID_FDOC IN (<<m.lcSirId>>)
|
||
<<gcCondSucursala>>
|
||
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,<<Left(Alltrim(.codi),10)>>,#<<'S' + Left(Alltrim(Str(m.lnPerioada)),1)>>#,<<Left(Alltrim(Str(.an)),4)>>,#<<Left(Alltrim(.deni),100)>>#,
|
||
\\#<<Left(Alltrim(.adr),160)>>#,#<<Left(Alltrim(.tel),30)>>#,#<<Left(Alltrim(.fax),30)>>#,#<<Left(Alltrim(.email),80)>>#,
|
||
\\<<Left(Alltrim(.codiR),10)>>,#<<Left(Alltrim(.deniR),100)>>#,#<<Left(Alltrim(.adrR),160)>>#,#<<Left(Alltrim(.telR),30)>>#,#<<Left(Alltrim(.faxR),30)>>#,#<<Left(Alltrim(.emailR),80)>>#,
|
||
\\<<Alltrim(Str(This.NumarCoduriFiscale,15))>>,<<Alltrim(Str(This.livb,15,2))>>,<<Alltrim(Str(This.livt,15,2))>>,<<Alltrim(Str(This.achb,15,2))>>,<<Alltrim(Str(This.acht,15,2))>>
|
||
Endwith
|
||
Set Textmerge To
|
||
|
||
*!* fisierul in format propriu D394
|
||
Set Textmerge On To Memvar lcDeclb1 Noshow
|
||
With pounitate
|
||
\ 2
|
||
\<<Left(Alltrim(Str(.an)),4)>>,#<<'S' + Left(Alltrim(Str(m.lnPerioada)),1)>>#,##,##,<<Left(Alltrim(.codi),10)>>,#<<Left(Alltrim(.deni),100)>>#,
|
||
\\#<<Left(Alltrim(.adr),160)>>#,#<<Left(Alltrim(.tel),30)>>#,#<<Left(Alltrim(.fax),30)>>#,#<<Left(Alltrim(.email),80)>>#,
|
||
\\#<<Alltrim(.numeD)>>#,#<<Alltrim(.functieD)>>#,
|
||
\\#<<Left(Upper(Alltrim(.taraR)),2)>>#,<<Left(Alltrim(.codiR),10)>>,#<<Left(Alltrim(.deniR),100)>>#,#<<Left(Alltrim(.adrR),160)>>#,#<<Left(Alltrim(.telR),30)>>#,#<<Left(Alltrim(.faxR),30)>>#,#<<Left(Alltrim(.emailR),80)>>#
|
||
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
|
||
\#<<TIP>>#,<<Left(Alltrim(cod_fiscal),10)>>,#<<Left(Alltrim(denumire),100)>>#,<<Alltrim(Str(baza,15,2))>>,<<Alltrim(Str(TVA,15,2))>>
|
||
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
|
||
\<<Left(Alltrim(cod_fiscal),10)>>,#<<Alltrim(denumire)>>#
|
||
Endscan
|
||
Use In (Select('crsCoduriFiscaleB'))
|
||
\STOP1
|
||
|
||
Select crsD394
|
||
Scan For TIP = 'A' And (baza <> 0 Or TVA <> 0)
|
||
\<<Left(Alltrim(cod_fiscal),10)>>,<<Alltrim(Str(baza+TVA,15,2))>>,<<Alltrim(Str(baza,15,2))>>,<<Alltrim(Str(TVA,15,2))>>
|
||
Endscan
|
||
\STOP2
|
||
Select crsD394
|
||
Scan For TIP = 'L' And (baza <> 0 Or TVA <> 0)
|
||
\<<Left(Alltrim(cod_fiscal),10)>>,<<Alltrim(Str(baza+TVA,15,2))>>,<<Alltrim(Str(baza,15,2))>>,<<Alltrim(Str(TVA,15,2))>>
|
||
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
|
||
<?xml version="1.0" encoding="UTF-8"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.0.11263.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
<form1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<sub_per>
|
||
<an_r><<m.lcAn>></an_r>
|
||
<luna_r><<m.lcLuna>></luna_r>
|
||
<TIP_D394><<m.lcTip>></TIP_D394>
|
||
</sub_per>
|
||
<sub_dateDeIdentificare>
|
||
<cif><<m.lcCodFiscalF>></cif>
|
||
<den><<XmlSpecialCharacters(RemoveCharacters(Alltrim(gofirma.antet), .T.))>></den>
|
||
<adresa><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.adresa), .T.))>></adresa>
|
||
<telefon><<ALLTRIM(goFirma.telefon)>></telefon>
|
||
<fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<mail><<ALLTRIM(LOWER(goFirma.email))>></mail>
|
||
<d_rec><<m.lnRectificativa>></d_rec>
|
||
</sub_dateDeIdentificare>
|
||
</body1>
|
||
<body11>
|
||
<sub_dateDeIdentificare>
|
||
<cifR/>
|
||
<denR/>
|
||
<adresaR/>
|
||
<telefonR/>
|
||
<faxR/>
|
||
<mailR/>
|
||
</sub_dateDeIdentificare>
|
||
</body11>
|
||
<body10>
|
||
<totalPlata_A></totalPlata_A>
|
||
<nrCui><<m.lnNrOperatori>></nrCui>
|
||
<bazaL><<m.lnLIVB>></bazaL>
|
||
<tvaL><<m.lnLIVT>></tvaL>
|
||
<bazaA><<m.lnACHB>></bazaA>
|
||
<tvaA><<m.lnACHT>></tvaA>
|
||
<bazaV><<m.lnLIVTIB>></bazaV>
|
||
<tvaV><<m.lnLIVTIT>></tvaV>
|
||
<bazaVc>0</bazaVc>
|
||
<tvaVc>0</tvaVc>
|
||
<bazaC><<m.lnACHTIB>></bazaC>
|
||
<tvaC><<m.lnACHTIT>></tvaC>
|
||
<bazaCc>0</bazaCc>
|
||
<tvaCc>0</tvaCc>
|
||
<NrL><<m.lnLIVNRF>></NrL>
|
||
<NrA><<m.lnACHNRF>></NrA>
|
||
<NrV><<m.lnLIVTINRF>></NrV>
|
||
<NrC><<m.lnACHTINRF>></NrC>
|
||
</body10>
|
||
<body12>
|
||
<sub_semnatura>
|
||
<nume_declar><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.nume_declarant), .T.))>></nume_declar>
|
||
<prenume_declar><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.prenume_declarant), .T.))>></prenume_declar>
|
||
<functie_declar><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.functie), .T.))>></functie_declar>
|
||
</sub_semnatura>
|
||
<sub_organFiscal>
|
||
<numeFisier/>
|
||
</sub_organFiscal>
|
||
</body12>
|
||
<body3>
|
||
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
|
||
<sub1>
|
||
<sub2>
|
||
<seq2><<m.lnSecventa>></seq2>
|
||
<Tip><<m.lcTip>></Tip>
|
||
<cuiP><<m.lcCodFiscal>></cuiP>
|
||
<denP><<m.lcDenumire>></denP>
|
||
<baza><<m.lcBaza>></baza>
|
||
<tva><<m.lcTVA>></tva>
|
||
<nrfact><<m.lcNrFact>></nrfact>
|
||
<ascunde_produs>0</ascunde_produs>
|
||
<ajutor><vtva><<m.lcAjutor>></vtva></ajutor>
|
||
</sub2>
|
||
<sub3>
|
||
<seq3>1</seq3>
|
||
<codPR/>
|
||
<baza/>
|
||
<tva/>
|
||
</sub3>
|
||
</sub1>
|
||
Endtext
|
||
If lnSecventa = 1
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
<box_submit>
|
||
<verif_unicit_L2/>
|
||
<verif_unicit_L3/>
|
||
</box_submit>
|
||
<box_sortare>
|
||
<ddl><<m.lcCodFiscal>>--<<m.lcDenumire>></ddl>
|
||
</box_sortare>
|
||
Endtext
|
||
Endif
|
||
Endscan
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</body3>
|
||
<butoane xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<calculatedCui><<goFirma.codfiscalfro>></calculatedCui>
|
||
<calculatedAnul><<Alltrim(Str(gnAn))>></calculatedAnul>
|
||
<calculatedlLuna><<Alltrim(Str(gnLuna)),2,[0])>></calculatedlLuna>
|
||
<nr_pagina></nr_pagina>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
<form1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<sub_per>
|
||
<an_r><<m.lcAn>></an_r>
|
||
<luna_r><<m.lcLuna>></luna_r>
|
||
<TIP_D394><<m.lcTip>></TIP_D394>
|
||
</sub_per>
|
||
<sub_dateDeIdentificare>
|
||
<cif><<m.lcCodFiscalF>></cif>
|
||
<den><<XmlSpecialCharacters(Alltrim(gofirma.antet))>></den>
|
||
<adresa><<ALLTRIM(goFirma.adresa)>></adresa>
|
||
<telefon><<ALLTRIM(goFirma.telefon)>></telefon>
|
||
<fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<mail><<ALLTRIM(LOWER(goFirma.email))>></mail>
|
||
<d_rec><<m.lnRectificativa>></d_rec>
|
||
</sub_dateDeIdentificare>
|
||
</body1>
|
||
<body11>
|
||
<sub_dateDeIdentificare>
|
||
<cifR/>
|
||
<denR/>
|
||
<adresaR/>
|
||
<telefonR/>
|
||
<faxR/>
|
||
<mailR/>
|
||
</sub_dateDeIdentificare>
|
||
</body11>
|
||
<body10>
|
||
<totalPlata_A></totalPlata_A>
|
||
<nrCui><<m.lnNrOperatori>></nrCui>
|
||
<bazaL><<m.lnLIVB>></bazaL>
|
||
<tvaL><<m.lnLIVT>></tvaL>
|
||
<bazaA><<m.lnACHB>></bazaA>
|
||
<tvaA><<m.lnACHT>></tvaA>
|
||
<bazaV><<m.lnLIVTIB>></bazaV>
|
||
<tvaV><<m.lnLIVTIT>></tvaV>
|
||
<bazaVc>0</bazaVc>
|
||
<tvaVc>0</tvaVc>
|
||
<bazaC><<m.lnACHTIB>></bazaC>
|
||
<tvaC><<m.lnACHTIT>></tvaC>
|
||
<bazaCc>0</bazaCc>
|
||
<tvaCc>0</tvaCc>
|
||
</body10>
|
||
<body12>
|
||
<sub_semnatura>
|
||
<nume_declar><<ALLTRIM(goFirma.nume_declarant)>></nume_declar>
|
||
<prenume_declar><<ALLTRIM(goFirma.prenume_declarant)>></prenume_declar>
|
||
<functie_declar><<ALLTRIM(goFirma.functie)>></functie_declar>
|
||
</sub_semnatura>
|
||
<sub_organFiscal>
|
||
<numeFisier/>
|
||
</sub_organFiscal>
|
||
</body12>
|
||
<body3>
|
||
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
|
||
<sub1>
|
||
<sub2>
|
||
<seq2><<m.lnSecventa>></seq2>
|
||
<Tip><<m.lcTip>></Tip>
|
||
<cuiP><<m.lcCodFiscal>></cuiP>
|
||
<denP><<m.lcDenumire>></denP>
|
||
<baza><<m.lcBaza>></baza>
|
||
<tva><<m.lcTVA>></tva>
|
||
<ascunde_produs>0</ascunde_produs>
|
||
<ajutor><vtva><<m.lcAjutor>></vtva></ajutor>
|
||
</sub2>
|
||
<sub3>
|
||
<seq3>1</seq3>
|
||
<codPR/>
|
||
<baza/>
|
||
<tva/>
|
||
</sub3>
|
||
</sub1>
|
||
Endtext
|
||
If lnSecventa = 1
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
<box_submit>
|
||
<verif_unicit_L2/>
|
||
<verif_unicit_L3/>
|
||
</box_submit>
|
||
<box_sortare>
|
||
<ddl><<m.lcCodFiscal>>--<<m.lcDenumire>></ddl>
|
||
</box_sortare>
|
||
Endtext
|
||
Endif
|
||
Endscan
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</body3>
|
||
<butoane xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<calculatedCui><<goFirma.codfiscalfro>></calculatedCui>
|
||
<calculatedAnul><<Alltrim(Str(gnAn))>></calculatedAnul>
|
||
<calculatedlLuna><<Alltrim(Str(gnLuna)),2,[0])>></calculatedlLuna>
|
||
<nr_pagina></nr_pagina>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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 ("<ALEGETI CONTUL>")
|
||
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 = "<ALEGETI ANALITICUL>" 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))
|
||
|
||
\\<<lcSir>>
|
||
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)
|
||
|
||
|
||
\\<<lcSir>>
|
||
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,<<m.lcLuna>>,<<m.lcAn>>,<<m.lcCodFiscalF>>,#<<m.lcDenumire>>#,#<<m.lcAdresa>>#,#<<m.lcTelefon>>#,#<<m.lcEmail>>#
|
||
|
||
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))
|
||
|
||
\#<<m.lcTip>>#,#<<m.lcTara>>#,#<<m.lcCodFiscal>>#,#<<m.lcDenumire>>#,<<m.lcSuma>>
|
||
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,<<m.lcCodFiscalF>>,<<m.lcLuna>>,<<m.lcAn>>,##,<<lnNrPagini>>,<<lnNrOperatori>>,<<lnTotalLB>>,<<lnTotalAB>>,<<lnTotalLT>>,<<lnTotalLS>>,<<lnTotalAS>>,<<lnTotal>>
|
||
|
||
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))
|
||
|
||
\#<<m.lcTara>>#,#<<m.lcCodFiscal>>#,#<<m.lcDenumire>>#,#<<m.lcTip>>#,<<m.lcSuma>>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
<form1>
|
||
<codF1>
|
||
</codF1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<dd1>
|
||
<d_rec>0</d_rec>
|
||
</dd1>
|
||
<dd2>
|
||
<luna_r><<m.lcLuna>></luna_r>
|
||
<an_r><<m.lcAn>></an_r>
|
||
</dd2>
|
||
<dd3>
|
||
<cif><<m.lcCodFiscalF>></cif>
|
||
<denumire><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(gofirma.antet), .T.))>></denumire>
|
||
<adresa><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.adresa), .T.))>></adresa>
|
||
<telefon><<ALLTRIM(goFirma.telefon)>></telefon>
|
||
<fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<eMail><<ALLTRIM(LOWER(goFirma.email))>></eMail>
|
||
</dd3>
|
||
<dd4>
|
||
<totalPlata_A></totalPlata_A>
|
||
<TOTAL_PAGINI><<m.lnNrPagini>></TOTAL_PAGINI>
|
||
<TOTAL_OPERATORI><<m.lnNrOperatori>></TOTAL_OPERATORI>
|
||
<SUMA_L><<lnTotalLB>></SUMA_L>
|
||
<SUMA_T><<lnTotalLT>></SUMA_T>
|
||
<SUMA_A><<lnTotalAB>></SUMA_A>
|
||
<SUMA_P><<lnTotalLS>></SUMA_P>
|
||
<SUMA_S><<lnTotalAS>></SUMA_S>
|
||
</dd4>
|
||
<dd5>
|
||
<numeP><<Alltrim(gofirma.nume_declarant)>></numeP>
|
||
<prenP><<Alltrim(gofirma.prenume_declarant)>></prenP>
|
||
<functiaP><<ALLTRIM(goFirma.functie)>></functiaP>
|
||
|
||
</dd5>
|
||
<dd6>
|
||
<numeFisier></numeFisier>
|
||
</dd6>
|
||
</body1>
|
||
<body2>
|
||
<dd1>
|
||
<OP1>
|
||
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
|
||
<OP2>
|
||
<seq><<m.lnSecventa>></seq>
|
||
<TIP_OP><<m.lcTip>></TIP_OP>
|
||
<TARA><<m.lcTara>></TARA>
|
||
<COD_OP><<m.lcCodFiscal>></COD_OP>
|
||
<DEN_OP><<m.lcDenumire>></DEN_OP>
|
||
<BAZA><<m.lcSuma>></BAZA>
|
||
</OP2>
|
||
Endtext
|
||
|
||
Endscan
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</OP1>
|
||
<TG>
|
||
<TOTAL_BAZA><<m.lnTotal>></TOTAL_BAZA>
|
||
</TG>
|
||
<BUTOANE>
|
||
<unicitate>1</unicitate>
|
||
</BUTOANE>
|
||
</dd1>
|
||
</body2>
|
||
|
||
<body3>
|
||
<dd1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<dd2><seq></seq><TARA1></TARA1><COD_OP1></COD_OP1></dd2>
|
||
<dd4 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
</body3>
|
||
<body4><dd1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<dd2><seq></seq><TARA1></TARA1><COD_OP1></COD_OP1><TARA2></TARA2><COD_OP2></COD_OP2><motiv></motiv></dd2>
|
||
</body4>
|
||
|
||
<pp xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<calculatedCui><<goFirma.codfiscalfro>></calculatedCui>
|
||
<calculatedAnul><<Alltrim(Str(gnAn))>></calculatedAnul>
|
||
<calculatedlLuna><<Alltrim(Str(gnLuna)),2,[0])>></calculatedlLuna>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
<form1>
|
||
<codF1>
|
||
</codF1>
|
||
<body1>
|
||
<HEADER xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<dd1>
|
||
<d_rec>0</d_rec>
|
||
</dd1>
|
||
<dd2>
|
||
<luna_r><<m.lcLuna>></luna_r>
|
||
<an_r><<m.lcAn>></an_r>
|
||
</dd2>
|
||
<dd3>
|
||
<cif><<m.lcCodFiscalF>></cif>
|
||
<denumire><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(gofirma.antet), .T.))>></denumire>
|
||
<adresa><<XmlSpecialCharacters(RemoveCharacters(ALLTRIM(goFirma.adresa), .T.))>></adresa>
|
||
<telefon><<ALLTRIM(goFirma.telefon)>></telefon>
|
||
<fax><<ALLTRIM(goFirma.fax)>></fax>
|
||
<eMail><<ALLTRIM(LOWER(goFirma.email))>></eMail>
|
||
</dd3>
|
||
<dd4>
|
||
<totalPlata_A></totalPlata_A>
|
||
<TOTAL_PAGINI><<m.lnNrPagini>></TOTAL_PAGINI>
|
||
<TOTAL_OPERATORI><<m.lnNrOperatori>></TOTAL_OPERATORI>
|
||
<SUMA_L><<lnTotalLB>></SUMA_L>
|
||
<SUMA_T><<lnTotalLT>></SUMA_T>
|
||
<SUMA_A><<lnTotalAB>></SUMA_A>
|
||
<SUMA_P><<lnTotalLS>></SUMA_P>
|
||
<SUMA_S><<lnTotalAS>></SUMA_S>
|
||
</dd4>
|
||
<dd5>
|
||
<numeP><<Alltrim(gofirma.nume_declarant)>></numeP>
|
||
<prenP><<Alltrim(gofirma.prenume_declarant)>></prenP>
|
||
<functiaP><<ALLTRIM(goFirma.functie)>></functiaP>
|
||
|
||
</dd5>
|
||
<dd6>
|
||
<numeFisier></numeFisier>
|
||
</dd6>
|
||
</body1>
|
||
<body2>
|
||
<dd1>
|
||
<OP1>
|
||
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
|
||
<OP2>
|
||
<seq><<m.lnSecventa>></seq>
|
||
<TIP_OP><<m.lcTip>></TIP_OP>
|
||
<TARA><<m.lcTara>></TARA>
|
||
<COD_OP><<m.lcCodFiscal>></COD_OP>
|
||
<DEN_OP><<m.lcDenumire>></DEN_OP>
|
||
<BAZA><<m.lcSuma>></BAZA>
|
||
</OP2>
|
||
Endtext
|
||
|
||
Endscan
|
||
|
||
Text To lcXDP Additive Textmerge Noshow Pretext 1
|
||
</OP1>
|
||
<TG>
|
||
<TOTAL_BAZA><<m.lnTotal>></TOTAL_BAZA>
|
||
</TG>
|
||
<BUTOANE>
|
||
<unicitate>1</unicitate>
|
||
</BUTOANE>
|
||
</dd1>
|
||
</body2>
|
||
<pp xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<calculatedCui><<goFirma.codfiscalfro>></calculatedCui>
|
||
<calculatedAnul><<Alltrim(Str(gnAn))>></calculatedAnul>
|
||
<calculatedlLuna><<Alltrim(Str(gnLuna)),2,[0])>></calculatedlLuna>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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<6E>nd sponsorizare si/sau mecenat, burse private, <20>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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont = '1012' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(glEMama, [vbalmama], [vbal])>>
|
||
where cont in ('691', '698') and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<70>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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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 <<Iif(m.glEMama, 'vbalmama', 'vbal')>>
|
||
where cont = '1061' and an = <<m.tnAnul>> and luna = <<m.tnLuna>> <<m.gcCondSucursala>>
|
||
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<6F>nzi <20>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
|
||
|
||
\\<<lcSir>>
|
||
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)
|
||
\\<<lcLinia>>
|
||
Endfor
|
||
\\<<lcSir>>
|
||
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)
|
||
\\<<lcLinia>>
|
||
|
||
Endfor
|
||
Endif
|
||
Else
|
||
Set Textmerge On To (lcFile) Noshow
|
||
\\<<lcSir>>
|
||
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 <20>n Rom<6F>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 = <<ALLTRIM(STR(This.nAn))>>
|
||
<<gcCondSucursala>>
|
||
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 = <<ALLTRIM(STR(This.nAn))>>
|
||
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
|
||
<?xml version="1.0"?>
|
||
<?xfa generator="XFA2_4" APIVersion="3.3.10270.0"?>
|
||
<xdp:xdp xmlns:xdp="http://ns.adobe.com/xdp/">
|
||
<xfa:datasets xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/">
|
||
<xfa:data>
|
||
|
||
<form1>
|
||
<sub1>
|
||
<luna_r><<Alltrim(Str(.nLuna))>></luna_r>
|
||
<an_r><<Alltrim(Str(.nAn))>></an_r>
|
||
<d_rec>0</d_rec>
|
||
</sub1>
|
||
<bord1 xmlns:xfa="http://www.xfa.org/schema/xfa-data/1.0/" xfa:dataNode="dataGroup"/>
|
||
<subA>
|
||
<RO1>RO</RO1>
|
||
<cif><<Alltrim(.cCodFiscal)>></cif>
|
||
<DENUMIRE><<Alltrim(.cDenumireFirma)>></DENUMIRE>
|
||
<ADRESA><<Alltrim(.cAdresa)>></ADRESA>
|
||
<text_telefon><<Alltrim(.cTelefon)>></text_telefon>
|
||
<text_email><<Alltrim(.cEmail)>></text_email>
|
||
<denR/>
|
||
<totalPlata_A><<Alltrim(Str(.nCifraDeAfaceri))>></totalPlata_A>
|
||
<cifR/>
|
||
<text_fax><<Alltrim(.cFax)>></text_fax>
|
||
</subA>
|
||
<sub2>
|
||
<Functia><<Alltrim(.cFunctieDeclarant)>></Functia>
|
||
<Nume><<Alltrim(.cDeclarant)>></Nume>
|
||
</sub2>
|
||
</form1>
|
||
</xfa:data>
|
||
</xfa:datasets>
|
||
<pdf href="<<JUSTFNAME(tcFisierPDFNou)>>" xmlns="http://ns.adobe.com/xdp/pdf/"/>
|
||
</xdp:xdp>
|
||
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 <<m.lnNrLuni1>> and <<m.lnNrLuni2>> 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 <<m.lnNrLuni1>> and <<m.lnNrLuni2>>
|
||
AND EXTRACT(YEAR FROM dataireg) = an and EXTRACT(MONTH FROM dataireg) = luna
|
||
AND ID_FDOC IN (<<m.lcSirId>>)
|
||
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, '<I>', m.lcIntrare)
|
||
lcText = Strtran(m.lcText, '<O>', m.lcIesire)
|
||
lcText = Strtran(m.lcText, '<DENUMIRE>', Alltrim(Nvl(gofirma.antet, '')))
|
||
lcText = Strtran(m.lcText, '<CF>', Alltrim(Nvl(gofirma.codfiscalfro, '')))
|
||
lcText = Strtran(m.lcText, '<JUDET>', Alltrim(Nvl(gofirma.JUDET, '')))
|
||
lcText = Strtran(m.lcText, '<SCT>', Alltrim(Nvl(gofirma.sector, '')))
|
||
lcText = Strtran(m.lcText, '<LOCALITATE>', Alltrim(Nvl(gofirma.LOCALITATE, '')))
|
||
lcText = Strtran(m.lcText, '<STRADA>', Alltrim(Nvl(gofirma.STRADA, '')))
|
||
lcText = Strtran(m.lcText, '<NR>', Alltrim(Nvl(gofirma.NUMAR, '')))
|
||
lcText = Strtran(m.lcText, '<BL>', Alltrim(Nvl(gofirma.Bloc, '')))
|
||
lcText = Strtran(m.lcText, '<SC>', Alltrim(Nvl(gofirma.SCARA, '')))
|
||
lcText = Strtran(m.lcText, '<ET>', '')
|
||
lcText = Strtran(m.lcText, '<AP>', Iif(!Empty(Nvl(gofirma.APART, 0)), Alltrim(Str(gofirma.APART)), ''))
|
||
lcText = Strtran(m.lcText, '<CP>', Alltrim(Nvl(gofirma.cod_postal, '')))
|
||
lcText = Strtran(m.lcText, '<TELEFON>', Alltrim(Nvl(gofirma.telefon, '')))
|
||
lcText = Strtran(m.lcText, '<FAX>', Alltrim(Nvl(gofirma.fax, '')))
|
||
lcText = Strtran(m.lcText, '<EMAIL>', Lower(Alltrim(Nvl(gofirma.email, ''))))
|
||
lcText = Strtran(m.lcText, '<CA_DEPASIT>', m.lcCADepasit)
|
||
lcText = Strtran(m.lcText, '<DATA_DEPASIT>', m.lcDataDepasit)
|
||
lcText = Strtran(m.lcText, '<PERIOADA_DEPASIT>', m.lcPerioadaDepasit)
|
||
lcText = Strtran(m.lcText, '<CA_NEDEPASIT>', m.lcCANeDepasit)
|
||
lcText = Strtran(m.lcText, '<DATA_NEDEPASIT>', m.lcDataNeDepasit)
|
||
lcText = Strtran(m.lcText, '<PERIOADA_NEDEPASIT>', m.lcPerioadaNeDepasit)
|
||
lcText = Strtran(m.lcText, '<DECLARANT>', Alltrim(Nvl(gofirma.declarant, '')))
|
||
lcText = Strtran(m.lcText, '<FUNCTIA>', 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 *******************************************
|
||
|