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