- Remove nfjson/nfjsonread.FXP from git tracking - Add Python cache patterns (__pycache__/, *.py[cod], *$py.class) - Add environment file patterns (.env, .env.local, .env.*.local) - Reorganize project structure with VFP files moved to vfp/ directory - Add comprehensive database scripts and documentation 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
318 lines
12 KiB
Plaintext
318 lines
12 KiB
Plaintext
Procedure completeaza_parteneri_roa
|
|
* 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
|
|
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
|
|
Local lcPrincipala, lcScara, lcSqlJudete, lcSqlLocalitati, lcSqlPart, lcStrada, lcTelefon1
|
|
Local lcTelefon2, lcWeb, lnIdJudet, lnIdJudetBucuresti, lnIdLocalitateBucuresti, lnIdTaraRO, lnPos
|
|
Local lnRecc
|
|
*:Global pcDenumire, pnIdAdresa, pnNrAdrese
|
|
|
|
*:Global pcCodFiscal, pnIdPart
|
|
Thisform.Trace('Completare Parteneri ROA')
|
|
|
|
If !Used('npart')
|
|
lnSucces = CT_INSUCCES
|
|
Return m.lnSucces
|
|
Endif
|
|
|
|
Select Distinct Cast(Null As I) As id_part, cod, denumire, cod_fiscal, reg_com, adresa, judet As indicativ_judet, tara As cod_tara, banca, cont_banca ;
|
|
From npart ;
|
|
Into Cursor cClientiFurnizori Readwrite
|
|
|
|
lnSucces = This.Connectroa()
|
|
If m.lnSucces < 0
|
|
Thisform.Trace('Completare Parteneri ROA. Eroare conectare la baza de date!')
|
|
|
|
Return m.lnSucces
|
|
Endif
|
|
|
|
Create Cursor cParteneri (id_part N(10), cod_fiscal C(30) Null, denumire C(100) Null)
|
|
lcSqlPart = [select id_part, cod_fiscal, denumire from nom_parteneri where sters = 0 and inactiv = 0]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlPart + '??cCursor=>cParteneriTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.Trace('Eroare la selectia din clienti ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
Endif
|
|
|
|
Select cParteneri
|
|
Append From Dbf('cParteneriTemp')
|
|
Index On denumire Tag denumire
|
|
Index On Padr(Strtran(cod_fiscal, ' ', ''),30, ' ') Tag cod_fiscal
|
|
Use In (Select('cParteneriTemp'))
|
|
|
|
Create Cursor cAdrese (id_adresa I, id_part I, localitate C(100) Null, id_loc I Null, judet C(20) Null, id_judet I Null, tara C(50) Null, id_tara I Null)
|
|
lcAdreseParteneri = [select id_adresa, id_part, localitate, id_loc, judet, id_judet, tara, id_tara from vadrese_parteneri]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcAdreseParteneri + '??cCursor=>cAdreseTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.Trace('Eroare la selectia din adrese parteneri ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
Endif
|
|
Select cAdrese
|
|
Append From Dbf('cAdreseTemp')
|
|
Index On Padl(id_part,10, '0') + Padr(localitate, 100, ' ') Tag adresa
|
|
Use In (Select('cAdreseTemp'))
|
|
|
|
Create Cursor cJudete (id_judet I, id_tara I Null, judet C(20) Null)
|
|
lcSqlJudete = [select j.id_judet, j.id_tara, j.judet from syn_nom_judete j]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlJudete + '??cCursor=>cJudeteTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.Trace('Eroare la selectia din judete ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
Endif
|
|
Select cJudete
|
|
Append From Dbf('cJudeteTemp')
|
|
Index On id_judet Tag id_judet
|
|
Use In (Select('cJudeteTemp'))
|
|
|
|
Create Cursor cLocalitati (id_loc I, id_judet I Null, id_tara I Null, localitate C(100) Null)
|
|
lcSqlLocalitati = [select l.id_loc, l.id_judet, j.id_tara, l.localitate from syn_nom_localitati l left join syn_nom_judete j on l.id_judet = j.id_judet where l.inactiv = 0 and l.sters = 0]
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlLocalitati + '??cCursor=>cLocalitatiTemp'))
|
|
If m.lnSucces < 0
|
|
Thisform.Trace('Eroare la selectia din localitati ROA ' + goExecutor.oPrelucrareEroare())
|
|
Return m.lnSucces
|
|
Endif
|
|
Select cLocalitati
|
|
Append From Dbf('cLocalitatiTemp')
|
|
Use In (Select('cLocalitatiTemp'))
|
|
|
|
Select cClientiFurnizori
|
|
lnRecc = Reccount()
|
|
Scan
|
|
pnIdPart = 0
|
|
pcCodFiscal = Padr(Strtran(cod_fiscal, ' ', ''),30, ' ')
|
|
pcDenumire = Padr(Alltrim(Upper(denumire)), 100, ' ')
|
|
lcAdresa = Strtran(Alltrim(Upper(Nvl(adresa, ''))), Chr(13), ' ')
|
|
If Len(Alltrim(m.pcCodFiscal)) <= 3
|
|
pcCodFiscal = Padl(Alltrim(cod), 10, '0')
|
|
Endif
|
|
|
|
lcCod = cod
|
|
If Mod(Recno(), 250) = 0
|
|
Thisform.Trace ('Import clienti... ' + Transform(Recno()) + '/' + Transform(m.lnRecc))
|
|
Endif
|
|
* Verific daca partenerul a mai fost importat
|
|
If Seek(m.lcCod, 'coresp_parteneri', 'cod')
|
|
pnIdPart = coresp_parteneri.id_part
|
|
|
|
Select cClientiFurnizori
|
|
Replace id_part With m.pnIdPart
|
|
Loop
|
|
Endif
|
|
|
|
|
|
|
|
Select cParteneri
|
|
Do Case
|
|
Case !Empty(m.pcCodFiscal)
|
|
If Seek(m.pcCodFiscal, 'cParteneri', 'cod_fiscal')
|
|
pnIdPart = cParteneri.id_part
|
|
Endif
|
|
Otherwise
|
|
If Seek(m.pcDenumire, 'cParteneri', 'denumire')
|
|
pnIdPart = cParteneri.id_part
|
|
Endif
|
|
Endcase
|
|
If !Empty(Nvl(m.pnIdPart, 0))
|
|
Replace id_part With m.pnIdPart In cClientiFurnizori
|
|
*!* lcMesaj = 'Client existent ' + Alltrim(cParteneri.denumire) + ' CUI: ' + Alltrim(cParteneri.cod_fiscal) + ' ID: ' + Alltrim(Transform(cParteneri.id_part))
|
|
*!* Thisform.trace(m.lcMesaj)
|
|
Else
|
|
* Adaugare clienti
|
|
Select cClientiFurnizori
|
|
lcDenumire = Nvl(Strtran(Alltrim(Upper(denumire)), ['], ['']), "")
|
|
lcNume = Nvl(Strtran(Alltrim(Upper(denumire)), ['], ['']), "")
|
|
lcPrenume = ''
|
|
lcCod_fiscal = Upper(Alltrim(cod_fiscal))
|
|
If Len(Alltrim(m.lcCod_fiscal)) <= 3
|
|
lcCod_fiscal = Padl(Alltrim(cod), 10, '0')
|
|
Endif
|
|
lcReg_comert = Nvl(Alltrim(Upper(reg_com)), "")
|
|
lcTip_persoana = "1" && 1=juridica, 2=fizica
|
|
If !Empty(m.lcCod_fiscal) And Len(m.lcCod_fiscal) = 13
|
|
lcTip_persoana = "2" && fizica
|
|
lnPos = At(' ', m.lcNume)
|
|
lcPrenume = Alltrim(Substr(m.lcNume, m.lnPos))
|
|
lcNume = Alltrim(Left(m.lcNume, m.lnPos))
|
|
Endif
|
|
lcId_loc_inreg = 'NULL'
|
|
lcId_categ_ent = 'NULL'
|
|
lcPrefix = ""
|
|
lcSufix = ""
|
|
|
|
lcBanca = Upper(Alltrim(Nvl(banca,'')))
|
|
lcCont_Banca = Upper(Alltrim(Nvl(cont_banca,'')))
|
|
lcinactiv = "0"
|
|
lcMotiv_inactiv = ""
|
|
lcIdString = "16;17"
|
|
lcCorespDel = ""
|
|
lcId_util = "-3"
|
|
lcSqlInsert = [begin pack_def.adauga_partener('] + lcDenumire + [','] + lcNume + [','] + lcPrenume + [','] + lcCod_fiscal + [','] + ;
|
|
lcReg_comert + [',] + lcId_loc_inreg + [,] + lcId_categ_ent + [,'] + lcPrefix + [','] + lcSufix + [',] + ;
|
|
lcTip_persoana + [,'] + lcBanca + [','] + lcCont_Banca + [',] + lcinactiv + [,'] + lcMotiv_inactiv + [',] + ;
|
|
lcId_util + [,'] + lcIdString + [','] + lcCorespDel + [',?@pnIdPart); end;]
|
|
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSqlInsert))
|
|
If !Empty(Nvl(m.pnIdPart, 0))
|
|
Replace id_part With m.pnIdPart In cClientiFurnizori
|
|
Thisform.Trace('Client nou ' + Alltrim(cClientiFurnizori.denumire) + ' CUI: ' + Alltrim(cClientiFurnizori.cod_fiscal) + ' ID: ' + Alltrim(Transform(cClientiFurnizori.id_part)))
|
|
Insert Into cParteneri (id_part, denumire, cod_fiscal) Values (m.pnIdPart, cClientiFurnizori.denumire, cClientiFurnizori.cod_fiscal)
|
|
Else
|
|
lcMesaj = 'Eroare la adaugarea in clienti ROA ' + Alltrim(cParteneri.denumire) + ' CUI: ' + Alltrim(cParteneri.cod_fiscal) + Chr(13) + Chr(10) + goExecutor.oPrelucrareEroare()
|
|
|
|
Thisform.Trace(m.lcMesaj)
|
|
aMessagebox(m.lcMesaj)
|
|
Set Step On
|
|
Exit
|
|
Endif && !Empty(Nvl(m.pnIdPart,0))
|
|
Endif && !Empty(Nvl(m.pnIdPart,0))
|
|
|
|
|
|
***********************************
|
|
* Adresa partener
|
|
***********************************
|
|
If !Empty(m.lcAdresa)
|
|
* JUD:Mun. Bucuresti;BUCURESTI;Str.SOS BUCURESTI-URZICENI;159A
|
|
Calculate Cnt(id_adresa) For id_part = m.pnIdPart To pnNrAdrese In cAdrese
|
|
|
|
lcIdPart = Alltrim(Str(m.pnIdPart))
|
|
lcDenumire_adresa = ""
|
|
lcDA_apare = "0"
|
|
lcStrada = ""
|
|
lcNumar = ""
|
|
|
|
lcBloc = ""
|
|
lcScara = ""
|
|
lcApart = ""
|
|
lcEtaj = ""
|
|
lcId_loc = "NULL"
|
|
lcLocalitate = ""
|
|
lcId_Judet = "NULL"
|
|
lcJudet = ""
|
|
lcCodpostal = "NULL"
|
|
lcId_tara = "NULL"
|
|
lcTelefon1 = ""
|
|
lcTelefon2 = ""
|
|
lcFax = ""
|
|
lcEmail = ""
|
|
lcWeb = ""
|
|
lcPrincipala = Iif(m.pnNrAdrese = 0, "1", "0")
|
|
lcinactiv = "0"
|
|
lcId_util = "-3"
|
|
|
|
lcItem1 = Alltrim(Getwordnum(m.lcAdresa, 1, ';'))
|
|
lcItem2 = Alltrim(Getwordnum(m.lcAdresa, 2, ';'))
|
|
lcItem3 = Alltrim(Getwordnum(m.lcAdresa, 3, ';'))
|
|
lcItem4 = Alltrim(Getwordnum(m.lcAdresa, 4, ';'))
|
|
If Left(m.lcItem1, 4) = 'JUD:'
|
|
lcJudet = Alltrim(Substr(m.lcItem1, 5))
|
|
Endif
|
|
If 'BUCURESTI'$m.lcJudet
|
|
lcJudet = 'BUCURESTI'
|
|
Endif
|
|
If !Empty(m.lcItem2)
|
|
lcLocalitate = Alltrim(m.lcItem2)
|
|
Else
|
|
If !Empty(m.lcItem1) And Left(m.lcItem1, 4) <> 'JUD:'
|
|
lcLocalitate = m.lcItem2
|
|
Endif
|
|
Endif
|
|
If Lower(Left(m.lcItem3,4)) = 'str.'
|
|
lcStrada = Alltrim(Substr(m.lcItem3, 5))
|
|
Else
|
|
lcStrada = Alltrim(m.lcItem3)
|
|
Endif
|
|
If !Empty(m.lcItem4)
|
|
lcNumar = Alltrim(Left(m.lcItem4, 10))
|
|
Endif
|
|
|
|
lnIdJudetBucuresti = 10
|
|
lcJudetBucuresti = "BUCURESTI"
|
|
lnIdLocalitateBucuresti = 1759
|
|
lnIdTaraRO = 1
|
|
|
|
If m.lcLocalitate = 'BUCURESTI'
|
|
m.lcLocalitate = 'BUCURESTI SECTORUL 1'
|
|
Endif
|
|
If Empty(m.lcLocalitate)
|
|
lcLocalitate = 'BUCURESTI SECTORUL 1'
|
|
Endif
|
|
If Empty(m.lcJudet)
|
|
lcJudet = m.lcJudetBucuresti
|
|
Endif
|
|
|
|
* caut adresa dupa localitate. daca nu o gasesc, o adaug
|
|
Select cAdrese
|
|
If !Seek(Padl(m.pnIdPart,10, '0') + Padr(m.lcLocalitate, 100, ' '), 'cAdrese', 'adresa')
|
|
|
|
lnIdJudet = m.lnIdJudetBucuresti
|
|
Select cJudete
|
|
If Seek(m.lcJudet, 'cJudete', 'id_judet')
|
|
lnIdJudet = cJudete.id_judet
|
|
Endif
|
|
|
|
Select * From cLocalitati Where id_judet = m.lnIdJudet And localitate = m.lcLocalitate Order By localitate Into Cursor cLocalitateTemp
|
|
If Reccount('cLocalitateTemp') > 0
|
|
Select cLocalitateTemp
|
|
Go Top
|
|
lcId_loc = Alltrim(Str(id_loc))
|
|
lcId_Judet = Alltrim(Str(id_judet))
|
|
lcId_tara = Alltrim(Str(id_tara))
|
|
Use In (Select('cLocalitateTemp'))
|
|
Else
|
|
Use In (Select('cLocalitateTemp'))
|
|
Select * From cLocalitati Where id_judet = m.lnIdJudet Order By localitate Into Cursor cLocalitateTemp
|
|
Select cLocalitateTemp
|
|
Go Top
|
|
lcId_loc = Alltrim(Str(id_loc))
|
|
lcId_Judet = Alltrim(Str(id_judet))
|
|
lcId_tara = Alltrim(Str(id_tara))
|
|
Use In (Select('cLocalitateTemp'))
|
|
Endif
|
|
|
|
If Empty(Nvl(m.lcId_loc, ''))
|
|
lcId_loc = Alltrim(Str(m.lnIdLocalitateBucuresti))
|
|
lcId_Judet = Alltrim(Str(m.lnIdJudetBucuresti))
|
|
lcId_tara = Alltrim(Str(m.lnIdTaraRO))
|
|
Endif && lnSucces
|
|
|
|
If m.lcId_loc <> 'NULL'
|
|
pnIdAdresa = 0
|
|
If Empty(Nvl(m.pnIdAdresa,0))
|
|
lcSql = [begin pack_def.adauga_adresa_partener2(] + lcIdPart + [,'] + lcDenumire_adresa + [',] + lcDA_apare + [,] + ;
|
|
['] + lcStrada + [','] + lcNumar + [','] + ;
|
|
lcBloc + [','] + lcScara + [','] + lcApart + [','] + lcEtaj + [',] + lcId_loc + [,'] + lcLocalitate + [',] + lcId_Judet + [,] + lcCodpostal + [,] + lcId_tara + [,'] + ;
|
|
lcTelefon1 + [','] + lcTelefon2 + [','] + lcFax + [','] + lcEmail + [','] + lcWeb + [',] + ;
|
|
lcPrincipala + [,] + lcinactiv + [,] + lcId_util + [,?@pnIdAdresa); end;]
|
|
|
|
lnSucces = goExecutor.oExecute(GetHash("cSql=>" + m.lcSql))
|
|
If m.lnSucces < 0
|
|
lcMesaj = goExecutor.cEroare
|
|
Thisform.Trace(m.lcMesaj)
|
|
* AMessagebox(m.lcMesaj, 0 + 48, _Screen.Caption )
|
|
* Exit
|
|
Endif
|
|
Endif && empty(m.pnIdAdresa)
|
|
|
|
Endif && m.lcId_loc <> 'NULL'
|
|
Endif && !found()
|
|
|
|
Endif && !empty(m.lcAdresa)
|
|
|
|
Insert Into coresp_parteneri (cod, id_part, cod_fiscal, denumire) Values (m.lcCod, m.pnIdPart, m.pcCodFiscal, m.pcDenumire)
|
|
Endscan && cClientiFurnizori
|
|
|
|
This.DisconnectRoa()
|
|
|
|
lcCaleImport = Addbs(Alltrim(goApp.oSettings.cale_import))
|
|
lcFile = m.lcCaleImport + 'coresp_parteneri.csv'
|
|
|
|
Select coresp_parteneri
|
|
Copy To (m.lcFile) Type Csv
|
|
|
|
Return m.lnSucces
|
|
|