Import initial din SVN ROAAUTO/Trunk @HEAD
This commit is contained in:
310
COMUN/programe/onom_comenzi.prg
Normal file
310
COMUN/programe/onom_comenzi.prg
Normal file
@@ -0,0 +1,310 @@
|
||||
***************************************************************************************************************
|
||||
**** Proceduri:
|
||||
**** vizualizare_lucrari
|
||||
**** vizualizare_comenzi
|
||||
**** vizualizare_optiuni
|
||||
**** extrage_optiuni - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** recompune_optiuni - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** make_sectii_utilizator - mutata in proceduri_comune.prg ( v 2.0.11 )
|
||||
**** verifica_lucrare
|
||||
***************************************************************************************************************
|
||||
******************************************* INCEPUT: vizualizare_lucrari *******************************************
|
||||
Procedure vizualizare_lucrari
|
||||
gcAcces=[1;2;3;4;]
|
||||
Private polucrari,pocomenzi,polucrarielemente
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,lcFiltruOriginal,llAfiseaza
|
||||
Store '' To polucrari,pocomenzi,polucrarielemente
|
||||
lcSchema=[id_lucrare n(20),nrord c(30),termen_executie t,id_lucrari_detalii n(20),explicatie c(100),data_lucrare t,]+;
|
||||
[dataora t,utilizator c(30),inchisa n(1)]
|
||||
lcSelect=[select id_lucrare,nrord,termen_executie,id_lucrari_detalii,explicatie,data_lucrare,]+;
|
||||
[dataora,utilizator,inchisa from vlucrari_detalii]
|
||||
lcOrder=[data_lucrare]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('polucrari','crslucrari',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('polucrari','crslucrari', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
polucrari.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_comanda n(20),COMANDA_EXTERNA c(20),id_codclient c(20),id_lucrare n(20),id_part n(20),id_gestiune n(20),]+;
|
||||
[nr_comanda c(100),data_comanda t,nume c(70),data_livrare t,interna n(1),id_sectie n(5),id_sectie2 n(5),id_facturare n(5),id_livrare n(5),adresa_facturare c(50),adresa_livrare c(50)]
|
||||
lcSelect=[select id_comanda,COMANDA_EXTERNA,id_codclient,id_lucrare,id_part,id_gestiune]+;
|
||||
[nr_comanda,data_comanda,nume,data_livrare,interna,id_sectie,id_sectie2,id_facturare,id_livrare,b.denumire_adresa as adresa_facturare,c.denumire_adresa as adresa_livrare]+;
|
||||
[from vcomenzi a left join adrese_parteneri b on b.id_adresa=a.id_facturare left join adrese_parteneri c on c.id_adresa=a.id_livrare]
|
||||
lcOrder=[data_comanda]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzi','crscomenzi',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzi','crscomenzi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzi.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_lucrare n(20),denumire c(100),cantitate n(16,3),um c(10),cantitate2 n(16,3),um2 c(10)]
|
||||
lcSelect=[select id_lucrare,denumire,cantitate,um,cantitate2,um2 from vlucrari_elemente]
|
||||
lcOrder=[denumire]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
lcgroup = []
|
||||
llModParam = .T.
|
||||
llAfiseaza = .F.
|
||||
*gencursor('polucrarielemente','crslucrarielemente',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('polucrarielemente','crslucrarielemente', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
polucrarielemente.ca_baza1.afisare()
|
||||
|
||||
ofrmlucrari=Createobject('frm_lucrari_detalii')
|
||||
ofrmlucrari.Show(1)
|
||||
Release polucrari,pocomenzi,polucrarielemente,ofrmlucrari
|
||||
|
||||
Endproc && vizualizare_lucrari
|
||||
******************************************* SFARSIT: vizualizare_lucrari *******************************************
|
||||
******************************************* INCEPUT: vizualizare_comenzi *******************************************
|
||||
Procedure vizualizare_comenzi
|
||||
gcAcces=[1;2;3;4;]
|
||||
Private pocomenzi,pocomenzielemente
|
||||
Local lcSchema,lcSelect,lcOrder,lcFiltru,llAfiseaza
|
||||
Store '' To pocomenzi,pocomenzielemente
|
||||
lcSchema=[selectat n(1),id_comanda n(20),COMANDA_EXTERNA c(20),id_codclient c(20),id_lucrare n(20),id_part n(20),id_agent n(20),id_delegat n(20),id_masina n(20),]+;
|
||||
[nr_comanda c(100),data_comanda t,nume c(70),tip_comanda c(20),data_livrare t,nume_agent c(70),nume_delegat c(70),]+;
|
||||
[nrinmat c(10),nrord c(30),facturat n(1),dataora t,utilizator c(40),data_livrat t,interna n(1),]+;
|
||||
[nr_livrare c(50),inchisa n(1), id_sectie n(5),id_sectie2 n(5),id_facturare n(5),id_livrare n(5),adresa_facturare c(50),adresa_livrare c(50), cod_client c(50), id_ctr n(10),numar_contract c(100)]
|
||||
lcSelect=[select 0 as selectat,a.id_comanda,a.COMANDA_EXTERNA,a.id_codclient,a.id_lucrare,a.id_part,a.id_agent,a.id_delegat,a.id_masina,]+;
|
||||
[a.nr_comanda,a.data_comanda,a.nume,a.tip_comanda,a.data_livrare,a.nume_agent,a.nume_delegat,]+;
|
||||
[a.nrinmat,a.nrord,a.facturat,a.dataora,a.utilizator,a.data_livrat,a.interna,a.nr_livrare,a.inchisa,a.id_sectie,a.id_sectie2,a.id_facturare,a.id_livrare,] + ;
|
||||
[b.denumire_adresa as adresa_facturare,c.denumire_adresa as adresa_livrare, d.COD as cod_client,d.id_ctr,d.numar_contract ]+;
|
||||
[from vcomenzi a left join adrese_parteneri b on b.id_adresa=a.id_facturare left join adrese_parteneri c on c.id_adresa=a.id_livrare left join parteneri_coduri d on d.id=a.id_codclient]
|
||||
lcOrder=[data_comanda]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzi','crscomenzi',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzi','crscomenzi', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzi.ca_baza1.afisare()
|
||||
|
||||
lcSchema=[id_comanda n(20),id_articol n(20),id_pol n(20),denumire c(100),pret n(16,] + alltrim(str(gnPPretV)) + [),cantitate n(16,] + alltrim(str(gnPCant)) + [),um c(10)]
|
||||
lcSelect=[select id_comanda,id_articol,id_pol,denumire,pret,cantitate,um from vcomenzi_elemente]
|
||||
lcOrder=[denumire]
|
||||
lcFiltru = [1=2]
|
||||
lcFiltruOriginal = [] && [id_sectie=]+ALLTRIM(STR(gnId_sectie))
|
||||
llAfiseaza = .F.
|
||||
*gencursor('pocomenzielemente','crscomenzielemente',lcSelect,lcFiltru,lcSchema,lcOrder,llAfiseaza)
|
||||
gencursor('pocomenzielemente','crscomenzielemente', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
|
||||
pocomenzielemente.ca_baza1.afisare()
|
||||
|
||||
ofrmcomenzi=Createobject('frm_comenzi')
|
||||
ofrmcomenzi.Show(1)
|
||||
Release pocomenzi,pocomenzielemente,ofrmcomenzi
|
||||
|
||||
Endproc && vizualizare_comenzi
|
||||
******************************************* SFARSIT: vizualizare_comenzi *******************************************
|
||||
******************************************* INCEPUT: vizualizare_optiuni *******************************************
|
||||
Procedure vizualizare_optiuni
|
||||
If Used('crsoptiuni')
|
||||
Use In crsoptiuni
|
||||
Endif
|
||||
lcSql=[SELECT VARTYPE,VARNAME,VARVALUE FROM ] + gcS + [.OPTIUNI WHERE PROGRAM='] + Upper(Alltrim(gcNumeProgram)) + [']
|
||||
lcCursor=[crsoptiuni]
|
||||
lnSucces=goExecutor.oExecute(lcSql,lcCursor)
|
||||
If lnSucces<0
|
||||
amessagebox(goExecutor.cEroare,0+48,"Eroare")
|
||||
Else
|
||||
Select crsoptiuni
|
||||
Scan
|
||||
lcvartype=Alltrim(Upper(Vartype))
|
||||
lcvarname=Alltrim(Upper(varname))
|
||||
Do Case
|
||||
Case lcvartype = "CHARACTER"
|
||||
luvarvalue = Alltrim(varvalue)
|
||||
gc&lcvarname. = luvarvalue
|
||||
Case lcvartype = "NUMERIC"
|
||||
luvarvalue = Val(varvalue)
|
||||
gn&lcvarname. = luvarvalue
|
||||
Endcase
|
||||
Endscan
|
||||
Use In crsoptiuni
|
||||
ofrmoptiune=Createobject('frm_optiuni_comenzi')
|
||||
ofrmoptiune.Show(1)
|
||||
Release ofrmoptiune
|
||||
Endif
|
||||
Endproc && vizualizare_optiuni
|
||||
******************************************* SFARSIT: vizualizare_optiuni *******************************************
|
||||
********************************************************************************************************************
|
||||
*!* modificare v 2.0.11
|
||||
*!* Procedure extrage_optiuni
|
||||
*!* Parameters tcLista, tnId
|
||||
|
||||
*!* Local lcLista, lcReturn
|
||||
*!* Store '' To lcReturn
|
||||
*!* lcLista = Nvl(Alltrim(tcLista),'')
|
||||
*!* lnNrOptiuni = Getwordcount(lcLista,";")
|
||||
*!* For i=1 To lnNrOptiuni
|
||||
*!* lcExtragOptId = Getwordnum(lcLista,i,";")
|
||||
*!* lcId_extras = Getwordnum(lcExtragOptId,1,"::")
|
||||
*!* If lcId_extras = Alltrim(Str(tnId))
|
||||
*!* lcReturn = Getwordnum(lcExtragOptId,2,"::")
|
||||
*!* Endif
|
||||
*!* Endfor
|
||||
|
||||
*!* Return lcReturn
|
||||
|
||||
*!* Endproc && extrage_optiune
|
||||
********************************************************************************************************************
|
||||
********************************************************************************************************************
|
||||
*!* *!* lcLista = '1001::3;2::777;21001::5;'
|
||||
*!* *!* lcId = 2
|
||||
*!* *!* lcValoareNoua = '9'
|
||||
*!* *!* lcListaNoua = recompune_optiuni(lcLista,lcId,lcValoareNoua)
|
||||
|
||||
*!* Procedure recompune_optiuni
|
||||
*!* Parameters tcLista, tnId, tcValoareNoua
|
||||
|
||||
*!* Local lcLista, lcListaNoua, lcId, lcValoareNoua, lnGrupuri, lcGrup, lcIdCautat, lnPoz, lnPozGrup, lcValoare
|
||||
*!* lcLista = Nvl(Alltrim(tcLista),'')
|
||||
*!* lcId = Alltrim(Str(tnId))
|
||||
*!* lcValoareNoua = Alltrim(tcValoareNoua)
|
||||
|
||||
*!* llGasit = .F.
|
||||
*!* lcListaNoua = ''
|
||||
*!* lnGrupuri = Getwordcount(lcLista,';')
|
||||
*!* For i = 1 To lnGrupuri
|
||||
*!* lcGrup = Getwordnum(lcLista,i,";")
|
||||
*!* If i=1
|
||||
*!* lcIdCautat = lcId + '::'
|
||||
*!* Else
|
||||
*!* lcIdCautat = ';'+ lcId + '::'
|
||||
*!* lcGrup = ';' + lcGrup && ';id_sectie::optiune_veche'
|
||||
*!* Endif
|
||||
*!* lnPozGrup = At(lcIdCautat,lcGrup)
|
||||
*!* If lnPozGrup > 0
|
||||
*!* llGasit = .T.
|
||||
*!* lnPoz = At('::', lcGrup)
|
||||
*!* If lnPoz > 0
|
||||
*!* lcValoare = Substr(lcGrup,lnPoz) && '::optiune_veche'
|
||||
*!* lcGrup= Strtran(lcGrup,lcValoare,'::'+lcValoareNoua)
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
*!* lcListaNoua = lcListaNoua + lcGrup
|
||||
*!* Endfor
|
||||
|
||||
*!* If lnGrupuri = 0
|
||||
*!* lcListaNoua = lcId + '::' + lcValoareNoua
|
||||
*!* Else
|
||||
*!* If !llGasit
|
||||
*!* lcListaNoua = lcListaNoua + ';' + lcId + '::' + lcValoareNoua
|
||||
*!* Endif
|
||||
*!* Endif
|
||||
|
||||
*!* Return lcListaNoua
|
||||
|
||||
*!* Endproc && recompune_optiuni
|
||||
********************************************************************************************************************
|
||||
*!* Procedure make_sectii_utilizator
|
||||
*!* lcSel = [{call PACK_COMENZI.sectii_utilizator(?gnIdUtil,?gnIdSucursala)}]
|
||||
*!* lcCursor = 'crsSectii'
|
||||
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
||||
*!* If lnSucces < 0
|
||||
*!* amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
||||
*!* Return
|
||||
*!* Endif
|
||||
*!* Select crsSectii
|
||||
*!* Go Top
|
||||
*!* Endproc && make_sectii_utilizator
|
||||
*!* modificare v 2.0.11 ^
|
||||
********************************************************************************************************************
|
||||
Function verifica_lucrare
|
||||
Lparameters tnIdLucrare,tcNumeCursorVFP
|
||||
Local llReturn,lcSql,lcNumeCursorOra,lcCursorV,lcMesaj
|
||||
&&& (loCauta.id_lucrare,[crstempcomlucrare])
|
||||
llReturn = .T.
|
||||
lcNumeCursorTempV = [crstempvluc]
|
||||
lcCursorVerificare = [crsverificareluc]
|
||||
lcMesaj = []
|
||||
If Used(lcCursorVerificare)
|
||||
Use In (lcCursorVerificare)
|
||||
Endif
|
||||
If Used(lcNumeCursorTempV)
|
||||
Use In (lcNumeCursorTempV)
|
||||
Endif
|
||||
Create Cursor (lcCursorVerificare) (Id N(14),nume c(100),nr_comanda M)
|
||||
Create Cursor (lcNumeCursorTempV) (interna N(1),Id N(14),nume c(200),nr_comanda M,nr N(14))
|
||||
If !Empty(Nvl(tnIdLucrare,0))
|
||||
lcNumeCursorOra = [crstemporalucrare]
|
||||
If Used(lcNumeCursorOra)
|
||||
Use In (lcNumeCursorOra)
|
||||
Endif
|
||||
lcSql = [select a.interna,a.id,(case when a.interna in (2,5) then b.denumire ] + ;
|
||||
[when interna = 3 then c.nume_gestiune ] + ;
|
||||
[when interna = 4 then d.sectie ] + ;
|
||||
[else null end) as nume,] + ;
|
||||
[stringagg(a.nr_comanda) as nr_comanda,a.nr from ] + ;
|
||||
[(select id_lucrare, interna,] + ;
|
||||
[(case when interna in (2,5) then id_part ] + ;
|
||||
[when interna = 3 then id_gestiune ] + ;
|
||||
[when interna = 4 then id_sectie2 ] + ;
|
||||
[else null end) as id,] + ;
|
||||
[nr_comanda,] + ;
|
||||
[count(*) over(partition by id_lucrare, interna,(case when interna = 2 then id_part when interna = 3 then id_gestiune ] + ;
|
||||
[when interna = 4 then id_sectie2 else null end)) as nr ] + ;
|
||||
[from ] + gcS + [.comenzi where sters = 0 and id_sectie = ?gnId_sectie and interna <> 1 and id_lucrare = ] + Alltrim(Str(tnIdLucrare)) + [) a ] + ;
|
||||
[left join ] + gcS + [.nom_parteneri b on a.id = b.id_part and a.interna = 2 ] + ;
|
||||
[left join ] + gcS + [.nom_gestiuni c on a.id = c.id_gestiune and a.interna = 3 ] + ;
|
||||
[left join ] + gcS + [.nom_sectii d on a.id = d.id_sectie and a.interna = 4 ] + ;
|
||||
[group by a.interna,a.id,(case when a.interna in (2,5) then b.denumire when a.interna = 3 then c.nume_gestiune when a.interna = 4 then d.sectie else null end),a.nr ] + ;
|
||||
[order by 3,2]
|
||||
lnSucces = goExecutor.oExecute(lcSql,lcNumeCursorOra)
|
||||
If lnSucces < 0
|
||||
amessagebox(goExecutor.cEroare,16,"Eroare")
|
||||
Return .F.
|
||||
Else
|
||||
Insert Into (lcNumeCursorTempV) Select interna,id,nume,Chr(44)+Alltrim(nr_comanda)+Chr(44) as nr_comanda,nr From (lcNumeCursorOra)
|
||||
Use In (lcNumeCursorOra)
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If !Empty(tcNumeCursorVFP)
|
||||
Local loDublura
|
||||
Select (tcNumeCursorVFP)
|
||||
Scan For interna <> 1
|
||||
Scatter Name loDublura
|
||||
Select (lcNumeCursorTempV)
|
||||
Locate For interna = loDublura.interna And Id = Iif(INLIST(loDublura.interna,2,5),loDublura.id_part,Iif(loDublura.interna=3,loDublura.id_gestiune,loDublura.id_sectie2)) && modificare v 2.0.20
|
||||
If Found()
|
||||
If At([,] + Alltrim(loDublura.nr_comanda) + [,],Alltrim(nr_comanda)) = 0
|
||||
&& s-ar putea sa am comanda deja pe lucrare si sa o am si selectata in cursorul din VFP
|
||||
Replace nr_comanda With Alltrim(nr_comanda) + Alltrim(loDublura.nr_comanda) + [,],nr With nr + 1
|
||||
Endif
|
||||
Else
|
||||
Append Blank
|
||||
Replace interna With loDublura.interna,Id With Iif(INLIST(loDublura.interna,2,5),loDublura.id_part,Iif(loDublura.interna=3,loDublura.id_gestiune,loDublura.id_sectie2)),; && modificare v 2.0.20
|
||||
nume With loDublura.nume,nr_comanda With [,] + Alltrim(loDublura.nr_comanda) + [,],nr With 1
|
||||
Endif
|
||||
Select (tcNumeCursorVFP)
|
||||
Endscan
|
||||
Release loDublura
|
||||
Endif
|
||||
|
||||
Insert Into (lcCursorVerificare) Select Id,nume,nr_comanda From (lcNumeCursorTempV) Where nr > 1 Order By nume,Id
|
||||
If Reccount(lcCursorVerificare)>0
|
||||
lcMesaj = [Urmatorii beneficiari vor avea mai mult de o comanda pe lucrare : ] + Chr(13) + Chr(10)
|
||||
Select (lcCursorVerificare)
|
||||
Scan
|
||||
lcMesaj = lcMesaj + Padr(Alltrim(nume),50,[ ]) + [ - ] + Substr(Alltrim(nr_comanda),2,Len(Alltrim(nr_comanda))-2) + Chr(13) + Chr(10)
|
||||
Endscan
|
||||
lcMesaj = lcMesaj + Chr(13) + Chr(10) + [Doriti sa continuati?]
|
||||
If amessagebox(lcMesaj,4+32,"Comenzi multiple") = 7
|
||||
llReturn = .F.
|
||||
Endif
|
||||
Endif
|
||||
|
||||
If Used(lcCursorVerificare)
|
||||
Use In (lcCursorVerificare)
|
||||
Endif
|
||||
Return llReturn
|
||||
Endfunc && verifica_lucrare
|
||||
********************************************************************************************************************
|
||||
Reference in New Issue
Block a user