Import parteneri: se curata doar CNP-urile invalide, codul persoanelor juridice ramane neatins

This commit is contained in:
2026-08-02 10:29:34 +03:00
parent 349130c369
commit da19090ed9
10 changed files with 754 additions and 139 deletions

View File

@@ -272,7 +272,7 @@ DEFINE CLASS form1 AS form
* Completez id_part
Local lcBanca, lcCod_fiscal, lcCont_Banca, lcCorespDel, lcDenumire, lcIdString, lcId_categ_ent
Local lcId_loc_inreg, lcId_util, lcMesaj, lcMotiv_inactiv, lcNume, lcPrefix, lcPrenume, lcReg_comert
Local lcSql, lcSqlInsert, lcSufix, lcTip_persoana, lcinactiv, lnSucces, lcCodValid, lnTip_persoana, lcCodTara
Local lcSql, lcSqlInsert, lcSufix, lcTip_persoana, lcinactiv, lnSucces, lnTip_persoana, lcCodTara
Local lcAdresa, lcAdreseParteneri, lcApart, lcBloc, lcCaleImport, lcCod, lcCodpostal, lcDA_apare
Local lcDenumire_adresa, lcEmail, lcEtaj, lcFax, lcFile, lcIdPart, lcId_Judet, lcId_loc, lcId_tara
Local lcItem1, lcItem2, lcItem3, lcItem4, lcJudet, lcJudetBucuresti, lcLocalitate, lcNumar
@@ -400,24 +400,26 @@ DEFINE CLASS form1 AS form
lcReg_comert = Nvl(Alltrim(Upper(reg_com)), "")
***************************
lcCod=Alltrim(Upper(Nvl(m.lcCod_fiscal,"")))
lcTip_persoana="2" && 1 = juridica, 2 = fizica
* Prefer persoanele fizice pentru ca sunt mai multe fata de persoanele juridice.
* Sunt multe persoane fizice cu CNP-uri gresite (lungime gresita sau cifra de control gresita).
* GetCodFiscalValid curata si valideaza codul; daca este invalid intoarce sir gol,
* deci partenerul se salveaza in ROA FARA cod fiscal si nu mai da erori la D394/D406.
lcTip_persoana = "2" && 1 = juridica, 2 = fizica
* GetCodFiscalValid decide tipul de persoana din denumire, nr. registrul comertului si
* forma codului, apoi curata DOAR CNP-urile invalide ale persoanelor fizice.
* Codul unei persoane juridice nu se sterge niciodata: daca e gresit, vrem sa fim
* atentionati la validarea declaratiei si sa il corectam in Fidelio, nu sa il ascundem.
If !Empty(m.lcCod)
lnTip_persoana = 0
lcCodTara = Alltrim(Upper(Nvl(cod_tara, "")))
lcCodValid = GetCodFiscalValid(m.lcCod, @lnTip_persoana, m.lcCodTara)
lcCod_fiscal = GetCodFiscalValid(m.lcCod, @lnTip_persoana, m.lcDenumire, m.lcReg_comert, m.lcCodTara)
lcTip_persoana = Iif(m.lnTip_persoana = 1, "1", "2")
Do Case
Case !Empty(m.lcCodValid)
lcCod_fiscal = m.lcCodValid
lcTip_persoana = Iif(m.lnTip_persoana = 1, "1", "2")
Otherwise
* numeric dar invalid (12/14/15 cifre, cifra de control gresita): sterg codul
Thisform.trace('Cod fiscal invalid, se salveaza gol: [' + m.lcCod + '] ' + Alltrim(m.lcDenumire))
lcCod_fiscal = ''
lcTip_persoana = "2"
Case m.lcTip_persoana = "2" And Empty(m.lcCod_fiscal)
* persoana fizica cu CNP invalid: se salveaza fara CNP (permis la D394/D406)
Thisform.trace('CNP invalid, partenerul se salveaza fara CNP: [' + m.lcCod + '] ' + Alltrim(m.lcDenumire))
Case m.lcTip_persoana = "1" And !VerifCF(m.lcCod_fiscal)
* persoana juridica cu cod fiscal care nu trece validarea romaneasca: poate fi
* partener strain (cod valid la el in tara) sau o eroare de operare. Codul ramane,
* dar il semnalam in log ca sa poata fi verificat.
Thisform.trace('ATENTIE: persoana juridica cu cod fiscal nevalidat: [' + m.lcCod_fiscal + '] ' + Alltrim(m.lcDenumire))
Endcase
ENDIF
IF m.lcTip_Persoana = "2"