Files
comun/programe/oproceduri_listari.prg

2792 lines
101 KiB
Plaintext

*!* 27.08.2009
*!* marius.mutu
*!* listare_transfer : taxa_reconditionare - rap_nirtransfer_achi2 (landscape + coloane durata ramasa, taxa reconditionare)
*!* taxa reconditionare apare doar daca se transfera de la un responsabil la magazie
*!* 01.07.2010
*!* marius.mutu
*!* listare_nir - id_jtva_coloana achizitie taxare inversa, nu stiu de ce era 1
*!* 13.08.2014
*!* marius.mutu
*!* list_total_NIR - s-a eliminat join cu act dupa cont - puteau aparea duplicate, in act existau mai multe inregistrari cu acelasi cont
*!* 05.02.2015
*!* marius.mutu
*!* LISTARE_BON_TOT - se listeaza bonurile cu foxypreviewer
*!* 13.06.2017
*!* marius.mutu
*!* list_raport_gestiuni - export xls
*!* 09.07.2018
*!* marius.mutu
*!* listare_protocol - id_set 243
*!* 02.07.2020
*!* marius.mutu
*!* LISTARE_TRANSFER
*!* 229 transfer rezervare - se listeaza si clientii/lucrarile corespondente
*!* LISTARE_BON_TOT
*!* tratare id_Set = 274 iesire din ob inv in fol si inregistrare cheltuiala
*!* 20.02.2024
*!* LISTARE_BON_TOT
*!* adaugare sal_stat.formatia
Procedure listare_protocol
Lparameters tnNract, tnTip
*!* tnTip: 1 (default) = protocol (pret cu tva); 2 = sponsorizare (pret fara tva)
Private pnNrAct,pnCod
Local lcCursor,lcCursor2, lnTip
lcCursor=[crsdateact]
lcCursor2 = [crsprotocol]
If Type('tnTip') <> 'N'
lnTip = 1
Else
lnTip = tnTip
Endif
pnNrAct = tnNract
*!* v 2.0.18 roagest (denumire partener, id_set 232, 233, 235)
lcSql = [Select distinct a.cod, a.dataact, p.id_part as id_client, p.denumire, b.nume_gestiune as gestiune from act a ] + ;
[ left join nom_gestiuni b on a.id_gestout = b.id_gestiune ] + ;
[ left join nom_parteneri p on a.id_partc = p.id_part ] + ;
[where a.an = ?gnAn and a.luna = ?gnLuna and a.nract = ?pnNrAct and a.scc = '401' and a.sters = 0 and a.id_set in (230,232,233,235,261,270,243) ] + ;
Strtran(gcCondSucursala,[id_sucursala],[a.id_sucursala])
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount(lcCursor) > 0
Select (lcCursor)
Scatter Name poClient
*!* v 2.0.18 roagest (iau partenerul din jurnal)
*!* AddProperty(poClient,[id_client],[0])
*!* AddProperty(poClient,[denumire],[])
pnCod = cod
poDate=Createobject("oDateFactura",0,0)
poDate.nract = pnNrAct
poDate.dataact = Iif(Type('dataact')='T',Ttod(dataact),dataact)
poDate.dataora_exp = get_ora() && modificare ROAGEST v 2.0.150
*!* loCauta = caut_partener()
*!* If gnButon <> 2
*!* poClient.id_client = loCauta.id_part
*!* poClient.denumire = loCauta.denumire
*!* Else
poDate.tip = 23 && artificiu ca sa nu mai caute doar in delegatii pentru partenerul respectiv
*!* EndIf
*!* v 2.0.18 roagest ^
Use In (lcCursor)
Private ofrmdatesupl
ofrmdatesupl = Createobject("frm_alte_date")
ofrmdatesupl.Show(1)
Release ofrmdatesupl
*!* modificare ROAGEST v 2.0.150
If gnButon = 1
*!* modificare ROAGEST v 2.0.150 ^
lcSql = [select denumire as nume_responsabil,cod_fiscal as CNPresp,reg_comert as BIresp from nom_parteneri ] + ;
[where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?gnIdUtil)]
lnSucces = goExecutor.oexecute(lcSql,lcCursor2)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
Select (lcCursor2)
poDate.nume_responsabil = nume_responsabil
poDate.BIresp = BIresp
poDate.CNPresp = CNPresp
Use In (lcCursor2)
lcSql = [select a.cante as cantitate,] + ;
Iif(lnTip = 1, [a.pretv+a.tvav], [a.pretv]) + [ as pretctva, ] + ;
Iif(lnTip = 1, [Round(a.cante*(a.pretv+a.tvav),?gnPc)], [Round(a.cante*a.pretv,?gnPc)]) + [ as valctva,] + ;
[a.serie,a.lot,b.codmat,b.denumire,b.um ] + ;
[from rul a left join nom_articole b on a.id_articol = b.id_articol ] + ;
[where a.sters = 0 and a.cod = ] + ALLTRIM(STR(m.pnCod))
lnSucces = goExecutor.oexecute(lcSql,lcCursor2)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
goExport.export2frx(lcCursor2,[protocol], , , , , , .T.)
If Used(lcCursor2)
Use In (lcCursor2)
Endif
*!* modificare ROAGEST v 2.0.150
Endif
*!* modificare ROAGEST v 2.0.150 ^
Else
amessagebox("Nu exista avizul cu acest numar in luna curenta!",48,"Atentie")
Endif
Release lcCursor,lcCursor2,pnNrAct,pnCod
Endproc && listare_protocol
*****************************************************************************************************************
Procedure listare_nir
Parameters tnNir, tnTip, tlProductie, tlBon_livrare,tnTipRulaj
DO listare_nir_TOT WITH tnNir,tnNir, tnTip, tlProductie, tlBon_livrare,tnTipRulaj
ENDPROC &&listare_nir
*****************************************************************************************************************
Procedure listare_nir_TOT
Parameters tnNir1,tnNir2, tnTip, tlProductie, tlBon_livrare,tnTipRulaj
&& nu merge pt baza de date din preluare (cauza id_fact);
&& solutie : in loc de id_fact , cod - nu am pus cod pt ca nu e terminata modificarea din contabilitate
&& tlProductie - pt. programul RoaProductie am raportul pv_prod.frx
&& tnTipRulaj: NIR = 0 INTRARE REALA, 1 TRANSFER (DE LA O GESTIUNE VALORICA)
&&13.01.2015 - a fost adaugat pnNir1, pnNir2
LOCAL lnTipRulaj
STORE 0 TO lnTipRulaj
Private lnCod,pnNir1,pnNir2,lnSuma1,lnSuma2,loact,pnTip,pnBazaDiscount,pnTvaDiscount,lcListaID,lcExceptii,lcContFact
Store "" To loact,lcListaID,lcExceptii,lcContFact
Store 0 To lnSuma1,lnSuma2,pnNir1,pnNir2,pnBazaDiscount,pnTvaDiscount
pnNir1=tnNir1
pnNir2=tnNir2
Private poact
Store Null To poact
lcContFact = ['401','404','408']
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
*!* v 2.0.28
*!* LA NIR BILETE RATC - CALCULUL, NOTELE CONTABILE, LISTAREA SE FAC:
*!* VALOAREA CU TVA
*!* VALOAREA TVA = VALOAREA CU TVA * (PROC_TVA - 1)/ PROC_TVA
*!* VALOAREA FARA TVA = VALOAREA CU TVA - VALOAREA TVA
Private plNIRBONPretCuTVA
plNIRBONPretCuTVA = Iif(Inlist(tnTip,17,27),.T.,.F.) && NIR BILETE RATC
pnTip = Iif(pnTip = 17, 6,Iif(pnTip = 27,7,pnTip))
*!* v 2.0.28 ^
lnTipRulaj=IIF(EMPTY(tnTipRulaj),0,1)
If Used('crsrul')
Use In crsrul
Endif
*!* lcSql=[select cod,nnir,dataact,codmat,denumire,um,pret,tva,cant,pretv,tvav,cante,cgest,proc_tva,proc_tvav,id_fact,id_gestiune,procent, reteta ]+;
*!* [ from vrul ]+;
*!* [ where luna=?gnLuna and an=?gnAn and nnir=]+ALLTRIM(STR(pnNir))+[ and cant<>0 and cante=0 ] + ;
*!* [ and id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag = ?pnTip)]
&& 09.11.2006 - factura Metro - toate tipurile de gestiune, exc. M pret vanzare
If tlBon_livrare
lcSql=[select cod,nnir,dataact,codmat,denumire,serie,lot,um,cont,acont,pret,tva,cant,pretv,tvav,cante,cgest, nume_gestiune, gestionar, comisie_receptie1, comisie_receptie2, comisie_receptie3,] + ;
[proc_tva,proc_tvav,id_fact,id_gestiune,procent, reteta, pretd, curs, nume_val, id_rul ] + ;
[ from vrul ]+;
[ where an=] + ALLTRIM(STR(gnAn)) + [ and luna=] + ALLTRIM(STR(gnLuna)) + [ and nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + [ and cant=0 and cante<>0 and id_tip_rulaj = 0 ] + gcCondSucursala
Else
lcSql=[select cod,nnir,dataact,codmat,denumire,serie,lot,um,cont,acont,pret,tva,cant,pretv,tvav,cante,cgest, nume_gestiune, gestionar, comisie_receptie1, comisie_receptie2, comisie_receptie3,] + ;
[proc_tva,proc_tvav,id_fact,id_gestiune,procent, reteta,pretd, curs, nume_val, id_rul ] + ;
[from vrul ]+;
[ where an=] + ALLTRIM(STR(gnAn)) + [ and luna=] + ALLTRIM(STR(gnLuna)) + [ and nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + [ and cant<>0 and cante=0 and id_tip_rulaj =]+ALLTRIM(STR(lnTipRulaj)) + gcCondSucursala
Endif
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
If lnSucces > 0
If Reccount('crsrul')=0
amessagebox("Nu a fost inregistrat nici un NIR in luna curenta cu numarul intre "+Alltrim(Str(pnNir1))+" si "+ALLTRIM(STR(pnNir2))+" !",0+48,"Atentie")
lnSucces = -1
Else
lcSql=[select cont_c from exceptii_ireg where cont in ('401','404','408') and invers = 1 and debit = 0 ]
lcCursor=[crsExceptii]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0 && dc eroare nu ies, iau exceptie default
amessagebox(goExecutor.cEroare,0+16,"Eroare")
lcExceptii = ['767']
Endif
If Used('crsExceptii')
Select crsExceptii
Scan
lcExceptii = lcExceptii + [,'] + Alltrim(cont_c) + [']
Endscan
lcExceptii = Substr(lcExceptii ,2)
Use In crsExceptii
Endif
If Empty(lcExceptii)
lcExceptii = ['767']
Endif
*** la emiterea de factura din ROAAUTO se completeaza ID_FACT-ul facturii de vanzare pe toate rulajele care au lucrarea din factura ???
*** asa ca id_fact din rul nu mai corespunde cu cel din act
*** folosesc cod in schimb
*!* Select Distinct id_fact From crsrul Into Cursor tfacturi
Select Distinct cod as id_fact From crsrul Into Cursor tfacturi
Select tfacturi
Scan
lcListaID = lcListaID + [,] + Alltrim(Str(id_fact))
Endscan
lcListaID = Substr(lcListaID,2)
If tlProductie
If tlBon_livrare
lcSql=[SELECT nract, serie_act, dataact, dataireg, fdoc, nnir, nrord, sectie, ]+;
[ partd as nume, 0 as factura, 0 as discount, 0 as tvaDiscount ]+;
[from vact ]+;
[ where an=] + ALLTRIM(STR(gnAn)) + [ and luna=] + ALLTRIM(STR(gnLuna)) + [ and nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + [ and substr(scd,1,3) = '428' and substr(scc,1,3) = '758']
Else
lcSql=[SELECT nract, serie_act, dataact, dataireg, fdoc, nnir, nrord, sectie, max(case when scc in (]+lcContFact+[) then partc else partd end) as nume,] +;
[sum(case when SUBSTR(scd,1,2) = '40' and scc in (]+lcExceptii+[) then suma else 0.0000 end) as discount,]+;
[sum(case when SUBSTR(scd,1,2) = '40' and scc in (]+lcExceptii+[) then ROUND(suma*(proc_tva-1),?gnPc) else 0.0000 end) as tvaDiscount,]+;
[sum(case when SUBSTR(scc,1,2) = '40' then suma else 0.0000 end) as factura ]+;
[from vact ] +;
[ where an=] + ALLTRIM(STR(gnAn)) + [ and luna=] + ALLTRIM(STR(gnLuna)) + [ and nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + ;
[ group by serie_act, nract, dataact, dataireg, fdoc, nnir, nrord, sectie]
Endif
Else
&& v 2.0.17 - nu prelua corect numele furnizorului la listarea nirului - facea max intre partc si partd, in loc de partd am pus null
*!* lcSql=[SELECT nract, serie_act, dataact, dataireg, fdoc, nnir, max(case when scc in (]+lcContFact+[) then partc else partd end) as nume,] +
&& v 2.0.17 ^
*!* modificare v 2.1.17 : am adaugat 170,171,172,173,174,175
*!* modificare v 2.2.4 : am scos 170,171,172,173,174,175
lcSql=[SELECT nract, serie_act, dataact, dataireg, fdoc, nnir, max(case when scc in (]+lcContFact+[) then partc else null end) as nume,] +;
[sum(case when SUBSTR(scd,1,2) = '40' and scc in (]+lcExceptii+[) then suma else 0.0000 end) as discount,]+;
[sum(case when SUBSTR(scd,1,2) = '40' and scc in (]+lcExceptii+[) then ROUND(suma*(proc_tva-1),?gnPc) else 0.0000 end) as tvaDiscount,]+;
[sum(case when SUBSTR(scc,1,2) = '40' then suma else 0.0000 end) as factura, ]+;
[MAX(case when id_jtva_coloana in (137,138,139,140,141,142,143,144,145,146,162,163) then 1 else 0 end) as id_jtva_coloana ]+;
[from vact ] +;
[ where an=] + ALLTRIM(STR(gnAn)) + [ and luna=] + ALLTRIM(STR(gnLuna)) + [ and nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + [ and scc in (]+lcContFact+[,]+lcExceptii+[) ]+ ;
[ and cod in (] + lcListaID + [)] + ;
[ group by serie_act, nract, dataact,dataireg, fdoc, nnir]
Endif
lcCursor=[crsdiscount]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
Endif
Endif
If lnSucces > 0
pcDataOra = get_ora(2)
If Used('crslistare')
Use In crslistare
Endif
*!* 19.06.2006
*!* marius.mutu
*!* nir import - exista > 1 factura pe acelasi nnir si se dubleaza reperele
Select * From crsdiscount Into Cursor crsDiscountTemp1 Order By nnir,factura Desc
Select * From crsDiscountTemp1 Where 1 = 2 Into Cursor crsDiscountTemp Readwrite
Select crsDiscountTemp1
lnNnir = 0
Scan
Scatter Name loDisc
If lnNnir <> loDisc.nnir
lnNnir = loDisc.nnir
Insert Into crsDiscountTemp From Name loDisc
Endif
Endscan
Use In crsDiscountTemp1
If tlProductie
Select Alltrim(Str(a.nnir))+a.cgest As cnir_gest,a.*, ;
b.fdoc,b.nract,b.serie_act,b.dataireg,b.nume,b.nrord,b.factura - b.discount As total_factura, b.discount, b.tvaDiscount;
FROM crsrul a With (Buffering=.T.);
LEFT Join crsDiscountTemp b On a.nnir = b.nnir ;
INTO Cursor crslistare Order By 1, id_rul
Else
Select Alltrim(Str(a.nnir))+a.cgest As cnir_gest,a.*, ;
b.fdoc,b.nract,b.serie_act,b.dataireg,b.nume,b.factura - b.discount As total_factura, b.discount, b.tvaDiscount, b.id_jtva_coloana;
FROM crsrul a With (Buffering=.T.) ;
LEFT Join crsDiscountTemp b On a.nnir = b.nnir ;
INTO Cursor crslistare Order By 1, id_rul
Endif
Use In crsDiscountTemp
*!* 30.08.2007
*!* marius.mutu
*!* variabile pentru curs, numevaluta
*!* rap_nir_materiale.frx : sume in valuta
Select crslistare
Locate For Curs <> 0 Or pretd<>0
If Found()
pnCursNir = Curs
pcNumeValuta = Alltrim(nume_val)
Else
pnCursNir = 0
pcNumeValuta = ""
Endif
If tlProductie
If tlBon_livrare
lcRaport = 'bon_livrare'
Else
lcRaport = 'pv_prod'
Endif
*!* modificare ROAPRODUCTIE v 2.0.2
*!* Report Form &lcRaport To Printer Prompt Preview
goExport.export2frx([crslistare],lcRaport, , , , , , .T.)
*!* modificare ROAPRODUCTIE v 2.0.2 ^
*REPORT FORM pv_prod.frx TO PRINTER PROMPT PREVIEW
Else
*!* modificare v 2.1.17
*!* *!* 01.07.2010
*!* *!* lnIdJtvaTI = 1 &&TAXARE INVERSA
*!* lnIdJtvaTI = GetIdJtvaStandard('ACHIZITIE_TI') && TAXARE INVERSA
lnIdJtvaTI = 1
*!* *!* 01.07.2010 ^
*!* modificare v 2.1.17 ^
Private pcEtichetaTI &&TAXARE INVERSA
pcEtichetaTI = ''
Select crslistare
*!* BROWSE
Locate For id_jtva_coloana=lnIdJtvaTI
If Found()
pcEtichetaTI='TAXARE INVERSA'
Endif
If gnNir_standard = 1 && este NIR standard
*!* Report Form rap_nir_standard.frx To Printer Prompt Preview
goExport.export2frx([crslistare],[rap_nir_standard], , , , , , .T.)
Else
If Inlist(pnTip, 6, 7) && NIR MF PRET VZ, NIR RATC
*!* Report Form rap_nir_marfuri.frx To Printer Prompt Preview
goExport.export2frx([crslistare],[rap_nir_marfuri], , , , , , .T.)
Else
Private pcSemnaturi
Store '' To pcSemnaturi
param_listari('nir_rap_materiale',,@pcSemnaturi,.T.)
Select crslistare
*!* Report Form rap_nir_materiale.frx To Printer Prompt Preview
goExport.export2frx([crslistare],[rap_nir_materiale], , , , , , .T.)
Endif
Endif
Endif
Endif
If Used('tfacturi')
Use In tfacturi
Endif
If Used('crsrul')
Use In crsrul
Endif
If Used('crslistare')
Use In crslistare
Endif
If Used('crsdiscount')
Use In crsdiscount
Endif
Endproc && listare_nir_TOT
*--------------------------------------------------------------------
*!* Procedure listare_nir_MODEL1 && NU FACE BINE IN SITUATIA : MAI MULTE NIRURI PE ACELASI NR. FACTURA(ID_FACT#)
*!* Parameters tnNir,tnTip
*!* Private lnCod,pnNir,lnSuma1,lnSuma2,loact,pnTip,pnBazaDiscount,pnTvaDiscount,lcListaID
*!* Store "" To loact,lcListaID
*!* Store 0 To lnSuma1,lnSuma2,pnNir,pnBazaDiscount,pnTvaDiscount
*!* pnNir=tnNir
*!* If Empty(tnTip)
*!* pnTip = 0
*!* Else
*!* pnTip = tnTip
*!* Endif
*!* If Used('crsrul')
*!* Use In crsrul
*!* Endif
*!* lcSql=[select cod,nnir,dataact,codmat,denumire,um,pret,tva,cant,pretv,tvav,cante,cgest,proc_tva,proc_tvav,id_fact,id_gestiune,procent from ] + gcS + [.vrul where luna=?gnLuna and an=?gnAn and nnir=]+Alltrim(Str(pnNir))+[ and cant<>0 and cante=0 ] + ;
*!* [and id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag = ?pnTip)]
*!* lcCursor=[crsrul]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* If lnSucces > 0
*!* If Reccount('crsrul')=0
*!* aMESSAGEBOX("Nu a fost inregistrat nici un NIR in luna curenta cu numarul "+Alltrim(Str(pnNir))+" !",0+48,"Atentie")
*!* lnSucces = -1
*!* Else
*!* Select Distinct id_fact From crsrul Into Cursor tfacturi
*!* Select tfacturi
*!* Scan
*!* lcListaID = lcListaID + [,] + Alltrim(Str(id_fact))
*!* Endscan
*!* lcListaID = Substr(lcListaID,2)
*!* If Used('crsireg')
*!* Use In crsireg
*!* Endif
*!* lcSql=[select fdoc,nract,dataireg,cont,nume,id_fact,sum(credit) as total_factura from ] + gcS + [.vireg_parteneri where SUBSTR(cont,1,2) = '40' and id_fact in (] + lcListaID + [) ] + ;
*!* [group by fdoc,nract,dataireg,cont,nume,id_fact]
*!* lcCursor=[crsireg]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* Endif
*!* Endif
*!* If lnSucces > 0 And gnNir_standard = 0
*!* lcSql=[select sum(suma) as discount,sum(ROUND(suma*(proc_tva-1),?gnPc)) as tvaDiscount,id_fact from ] + gcS + [.vact where luna=?gnLuna and an=?gnAn and SUBSTR(scd,1,2) = '40' and SUBSTR(scc,1,3) = '767' and id_fact in (] + lcListaID + [) ] +;
*!* [ group by id_fact]
*!* lcCursor=[crsdiscount]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* Endif
*!* If lnSucces > 0
*!* *!* Select crsireg
*!* *!* If Reccount("crsireg")>0
*!* pcDataOra = get_ora(2)
*!* If Used('crslistare')
*!* Use In crslistare
*!* Endif
*!* If Used('crsdiscount') && dc gnNir_standard = 0
*!* Select Alltrim(Str(a.nnir))+a.cgest As cnir_gest,a.*,b.fdoc,b.nract,b.dataireg,b.Cont,b.nume,b.total_factura, ;
*!* NVL(c.discount,000000000.0000) As discount, Nvl(c.tvaDiscount,000000000.0000) As tvaDiscount;
*!* FROM crsrul a ;
*!* LEFT Join crsireg b On b.id_fact=a.id_fact ;
*!* LEFT Join crsdiscount c On c.id_fact=a.id_fact ;
*!* INTO Cursor crslistare Order By 1
*!* Else
*!* Select Alltrim(Str(a.nnir))+a.cgest As cnir_gest,a.*,b.fdoc,b.nract,b.dataireg,b.Cont,b.nume,b.total_factura ;
*!* FROM crsrul a ;
*!* LEFT Join crsireg b On b.id_fact=a.id_fact ;
*!* INTO Cursor crslistare Order By 1
*!* Endif
*!* Select crslistare
*!* If gnNir_standard = 1 && este NIR standard
*!* Report Form rap_nir_standard.frx To Printer Prompt Preview
*!* Else
*!* If pnTip = 6
*!* Report Form rap_nir_marfuri.frx To Printer Prompt Preview
*!* Else
*!* Report Form rap_nir_materiale.frx To Printer Prompt Preview
*!* Endif
*!* Endif
*!* *!* Endif
*!* Endif
*!* If Used('crsireg')
*!* Use In crsireg
*!* Endif
*!* If Used('crsrul')
*!* Use In crsrul
*!* Endif
*!* If Used('crslistare')
*!* Use In crslistare
*!* Endif
*!* If Used('crsdiscount')
*!* Use In crsdiscount
*!* Endif
*!* Endproc && listare_nir
*!* *--------------------------------------------------------------------
*!* Procedure listare_nir_model2 && NU FACE BINE IN SITUATIA : MAI MULTE FACTURI PE ACEEASI NR NIR
*!* Parameters tnNir,tnTip
*!* Private lnCod,pnNir,lnSuma1,lnSuma2,loact,pnTip,pnBazaDiscount,pnTvaDiscount
*!* Store "" To loact
*!* Store 0 To lnSuma1,lnSuma2,pnNir,pnBazaDiscount,pnTvaDiscount
*!* pnNir=tnNir
*!* If Empty(tnTip)
*!* pnTip = 0
*!* Else
*!* pnTip = tnTip
*!* Endif
*!* If Used('crsrul')
*!* Use In crsrul
*!* Endif
*!* lcSql=[select cod,nnir,dataact,codmat,denumire,um,pret,tva,cant,pretv,tvav,cante,cgest,proc_tva,proc_tvav,id_fact,id_gestiune,procent from ] + gcS + [.vrul where luna=?gnLuna and an=?gnAn and nnir=]+Alltrim(Str(pnNir))+[ and cant<>0 and cante=0]
*!* lcCursor=[crsrul]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* If lnSucces > 0
*!* If Reccount('crsrul')=0
*!* aMESSAGEBOX("Nu a fost inregistrat nici un NIR in luna curenta cu numarul "+Alltrim(Str(pnNir))+" !",0+48,"Atentie")
*!* lnSucces = -1
*!* Else
*!* Select crsrul
*!* lnCod=cod
*!* lnIdfact = id_fact
*!* If Used('crsireg')
*!* Use In crsireg
*!* Endif
*!* lcSql=[select fdoc,nract,dataireg,cont,acont,nume,id_fact from ] + gcS + [.vireg_parteneri where luna=?gnLuna and an=?gnAn and SUBSTR(cont,1,2) = '40' and id_fact=?lnIdFact ]
*!* lcCursor=[crsireg]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* Endif
*!* Endif
*!* If lnSucces > 0 And gnNir_standard = 0
*!* lcSql=[select sum(suma) as discount, proc_tva from ] + gcS + [.vact where luna=?gnLuna and an=?gnAn and SUBSTR(scd,1,2) = '40' and SUBSTR(scc,1,3) = '767' and id_fact=?lnIdFact ] +;
*!* [ group by proc_tva]
*!* lcCursor=[crsdiscount]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Endif
*!* Endif
*!* If lnSucces > 0
*!* Select crsireg
*!* If Reccount("crsireg")>0
*!* *ptDataOra=get_ora()
*!* pcDataOra = get_ora(2)
*!* If Used('crsdiscount') && dc gnNir_standard = 0
*!* Select crsdiscount
*!* Sum discount To pnBazaDiscount
*!* Sum Round((discount*(proc_tva-1)),gnPc) To pnTvaDiscount
*!* Endif
*!* If Used('crslistare')
*!* Use In crslistare
*!* Endif
*!* Select Alltrim(Str(a.nnir))+a.cgest As cnir_gest,a.*,b.* From crsrul a Left Join crsireg b On b.id_fact=a.id_fact Where ;
*!* a.nnir = pnNir And a.cante=0 And a.cant!=0 Into Cursor crslistare Order By 1
*!* Select crslistare
*!* If gnNir_standard = 1 && este NIR standard
*!* Report Form rap_nir_standard.frx To Printer Prompt Preview
*!* Else
*!* If pnTip = 6
*!* Report Form rap_nir_marfuri.frx To Printer Prompt Preview
*!* Else
*!* Report Form rap_nir_materiale.frx To Printer Prompt Preview
*!* Endif
*!* Endif
*!* Endif
*!* Endif
*!* If Used('crsireg')
*!* Use In crsireg
*!* Endif
*!* If Used('crsrul')
*!* Use In crsrul
*!* Endif
*!* If Used('crslistare')
*!* Use In crslistare
*!* Endif
*!* If Used('crsdiscount')
*!* Use In crsdiscount
*!* Endif
*!* Endproc
*--------------------------
Procedure listare_descarcare_productie
Parameters tnNir, tnTip
Private pnNir, pnNr_pag, pcFelDoc
pnNir = tnNir
pnNr_pag = tnTip
pcFelDoc = 'Pv productie'
If Used('crsrul')
Use In crsrul
Endif
*!* lcSql=[select id_articol, pret, denumire, codmat, um, cont, SUM(cant) as cant, SUM(cante) as cante from vrul where luna=?gnLuna and an=?gnAn and nnir = ?pnNir and (SUBSTR(cont,1,3) = '301' or (SUBSTR(cont,1,3) = '371'))]+;
*!* [and id_gestiune in (select distinct id_gestiune from vnom_gestiuni where nr_pag = ?pnNr_pag) ] + ;
*!* [group by id_articol, pret, denumire, codmat, um, cont ]+;
*!* [ order by cont, denumire]
If !Empty(pnNr_pag)
&& or id_set = 268) -- adaugat pe 29mar2013 v2.2.7 - sa apara la descarcarea_productie si intrarea si iesirea mixului care e pe contul 345, nu numai a ingredientelor
lcCond = [ and ((SUBSTR(cont,1,3) = '301' or (SUBSTR(cont,1,3) = '371')) or id_set = 268)]
Else
lcCond = []
Endif
*!* lcSql=[select a.id_gestiune,a.nume_gestiune,a.id_articol,a.pret,a.denumire, a.codmat,a.um,a.cont,a.nnir, a.dataact,]+;
*!* [(case when b.lvl = 1 then a.cant else 0 end) as cant, (case when b.lvl = 1 then 0 else a.cante end) as cante,]+;
*!* [(case when b.lvl is null then 1 when b.lvl = 1 then 2 else 3 end) as ie ]+;
*!* [ from (select id_gestiune,id_articol,pret,cont,nnir,dataact, SUM(cant) as cant,SUM(cante) as cante,um,denumire,codmat,nume_gestiune from vrul where luna=?gnLuna and an=?gnAn and nnir = ?pnNir ]+;
*!* lcCond + gcCondSucursala + [ ] + ;
*!* [group by id_gestiune, id_articol, pret, cont, nnir, dataact,um,denumire,codmat,nume_gestiune) a left join (select level as lvl from dual connect by level < 3) b on a.cant <> 0 and a.cante <> 0 order by nume_gestiune, ie, denumire]
* Am luat in considerare si cazul in care productia aparea doar ca intrare, nu si ca iesire ca la productia de mix vopsea auto
TEXT TO lcSql NOSHOW
select id_gestiune,
nume_Gestiune,
id_articol,
pret,
denumire,
codmat,
um,
lot,
serie,
cont,
nnir,
dataact,
cant,
cante,
ie
from (select a.id_gestiune,
a.nume_gestiune,
a.id_articol,
a.pret,
a.denumire,
a.codmat,
a.um,
a.lot,
a.serie,
a.cont,
a.nnir,
a.dataact,
(case
when b.lvl = 1 then
a.cant
else
0
end) as cant,
(case
when b.lvl = 1 then
0
else
a.cante
end) as cante,
(case
when b.lvl is null then
1
when b.lvl = 1 then
2
else
3
end) as ie
from (select id_gestiune,
id_articol,
pret,
cont,
nnir,
dataact,
SUM(cant) as cant,
SUM(cante) as cante,
um,
lot,
serie,
denumire,
codmat,
nume_gestiune
from vrul
where luna= ?gnLuna and an= ?gnAn and nnir = ?pnNir
group by id_gestiune,
id_articol,
pret,
cont,
nnir,
dataact,
um,
lot,
serie,
denumire,
codmat,
nume_gestiune) a
left join (select level as lvl from dual connect by level < 3) b
on a.cant <> 0
order by nume_gestiune, ie, denumire)
where cant <> 0 or cante <> 0
ENDTEXT
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount('crsrul')=0
amessagebox("Nu a fost inregistrat nici un BON in luna curenta cu numarul "+Alltrim(Str(pnNir))+" !",0+48,"Atentie")
If Used('crsrul')
Use In crsrul
Endif
Return
Endif
goExport.export2frx([crsrul],[rap_descarcare_productie], , , , , , .T.)
Use In (SELECT('crsrul'))
Endproc && listare_descarcare_productie
*--------------------------
Procedure LISTARE_BON
Parameters tnNir, tnTip, tcListaIdSet
DO LISTARE_BON_TOT WITH tnNir, tnNir, tnTip, tcListaIdSet
ENDPROC
* FOMULAR CERERE DATE LISTARE BONURI IN LUCRU
* Trebuie facut un formular pentru completarea PERIOADA, NNIR1, NNIR2, GESTIUNE, LUCRARE
* Se apeleaza apoi LISTARE_BON_TOT
PROCEDURE LISTARE_INFO
pcNumeGestiune = Alltrim(Upper(locauta.nume_gestiune))
pnIdGest = Iif(pcNumeGestiune # "<TOATE INREGISTRARILE>", locauta.id_gestiune, -1)
Release locauta
If pnIdGest = -1
lcCond = [ and r.id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag = ?pnTip) and id_gestiune in ] + ;
[(select g.id_gestiune from ] + gcS + [.vgest_coresp_grupe_gestiuni g join ] + ;
gcS + [.vgest_coresp_util_grupe u on g.id_grupe = u.id_grupe and u.id_util = ?gnIdUtil) ]
Else
lcCond = [ and r.id_gestiune = ?pnIdGest ]
ENDIF
oper = Createobject('frm_perioada_luni')
oper._optiongrup1.Value=1
oper.Show(1)
Release oper
If Occurs('_',pcondper)>0
lpos = At('_',pcondper)
ldata1 = Substr(pcondper,1,lpos-1)
ldata2 = Substr(pcondper,lpos+1)
lcd1 = Substr(ldata1,1,2)+'.'+Substr(ldata1,3,4)
lcd2 = Substr(ldata2,1,2)+'.'+Substr(ldata2,3,4)
pcperioada='De la: '+lcd1+' pana la '+lcd2
Else
ldata1 = pcondper
pcperioada='LUNA: '+Substr(ldata1,1,2)+'.'+Substr(ldata1,3,4)
ldata2 = ldata1
Endif
lnLuna1 = Val(Substr(ldata1,1,2))
lnAn1 = Val(Substr(ldata1,3,4))
lnLuna2 = Val(Substr(ldata2,1,2))
lnAn2 = Val(Substr(ldata2,3,4))
*pcselect = ['select * from ] + gcS + [.vLucrari_validat where 2=2']
pcselect = [select * from vnom_Lucrari]
pcfiltru = [1=2]
pcschema = []
pcorder = [nrord]
pccoloane = [nrord]
pcTitlu = [Lucrare/Comanda]
*pcFiltruOriginal = [validat = 0 and inactiv = 0]
pcFiltruOriginal = []
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitlu,'',.T.,pcFiltruOriginal) && 11.07.2007
If Empty(locauta.id_lucrare) And Empty(locauta.nrord)
Return
Endif
lnIdLucrare = locauta.id_lucrare
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
If Used('crsrul')
Use In crsrul
Endif
lnInf = lnLuna1+ 12*lnAn1
lnSup = lnLuna2+ 12*lnAn2
ENDPROC
Procedure LISTARE_BON_TOT
*!* modificare ROADEVIZE 24.10.2013 : tcListaIdSet
Parameters tnNir1, tnNir2, tnTip, tcListaIdSet, tnIdGestiune, tnIdLucrare
LOCAL llCasareObiecteNoi
Private lnCod,pnNir1,pnNir2,lnSuma1,lnSuma2,loact,pnTip
Store "" To loact
Store 0 To lnSuma1,lnSuma2,pnNir1, pnNir2
pnNir1 = tnNir1
pnNir2 = tnNir2
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
If Used('crsrul')
Use In crsrul
Endif
* Listare BON CASARE obiecte inventar noi, din RUL in loc de RUL_OBINV
llCasareObiecteNoi = !EMPTY(m.tcListaIdSet) and TYPE('tcListaIdSet') = 'C' and m.tcListaIdSet = '72'
*!* modificare 03.10.2007
Do Case
Case Empty(tnTip)
lcCondTipGest = " " && bon de consum cu inventar
Case tnTip = 6
lcCondTipGest = " where nr_pag = ?pnTip "
Otherwise
lcCondTipGest = " where nr_pag <> 6 "
ENDCASE
*!* modificare 29.03.2013 v 2.2.7: id_set <> 268 in lcCondTipGest - sa nu se listeze bonurile importate din xml cu productia de vopsea pentru ca n-ar fi corect sa apara produsul final pe bon
lcCondIdSet = " and r.id_set <> 268 "
*!* modificare ROADEVIZE 24.10.2013
If !Empty(tcListaIdSet)
lcCondIdSet = lcCondIdSet + " and r.id_set in (" + tcListaIdSet + ")"
Endif
*!* modificare ROADEVIZE 24.10.2013 ^
*!* If !Empty(tnTip)
*!* lcCondTipGest = " where nr_pag = ?pnTip "
*!* Else
*!* lcCondTipGest = "" && bon de consum cu inventar
*!* Endif
*!* modificare 03.10.2007 ^
*!* 27.08.2009
IF tnTip = 3 AND !m.llCasareObiecteNoi && obiecte de inventar in folosinta
*!* modificare v 2.2.4 : am pus select max(marca)... in loc de sal_personal.marca pentru ca s-ar putea sa am un salariat de mai multe ori in sal_personal
* id_set = 274 = iesire din folosinta si inregistrare cheltuiala, apare o iesire in rul_obinv.cante <> 0
* id_set = 55 = bon consum si dare in folosinta, apare o iesire in rul si o intrare in rul_obinv.cant <> 0
*!* lcSql=[select r.*,(select max(marca) from sal_personal where id_part = r.id_responsabil and id_salariat in ] + ;
*!* [(select id_persoana from sal_stat where an =?gnAn and luna = ?gnLuna and sters = 0)) as marca from vrul_obinv r ]+;
*!* [ where r.an=] + ALLTRIM(STR(gnAn)) + [ and r.luna=] + ALLTRIM(STR(gnLuna)) + [ and r.nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + ;
*!* [ and r.cant <> 0 and r.cante = 0 and r.id_tip_rulaj <> 3]+;
*!* STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
*!* [and r.id_gestiune in (select distinct id_gestiune from vnom_gestiuni ]+ lcCondTipGest + [)] + lcCondIdSet +;
*!* [order by r.nnir, r.cgest, r.nrord, r.nresp, r.sectie, r.id_rul_obinv]
*!* modificare 21.06 : am adaugat id_rul la order by
TEXT TO lcSql TEXTMERGE NOSHOW
select r.*,
(select max(p.marca)
from sal_personal p join sal_stat s on (p.id_salariat = s.id_persoana)
where p.id_part = r.id_responsabil
and s.an= <<m.gnAn>> and s.luna = <<m.gnLuna>> and s.sters = 0) as marca,
(select max(f.denumire)
from sal_personal p join sal_stat s on (p.id_salariat = s.id_persoana)
left join sal_nom_formatii f on s.id_formatie = f.id_formatia
where p.id_part = r.id_responsabil
and s.an= <<m.gnAn>> and s.luna = <<m.gnLuna>> and s.sters = 0) as formatie
from vrul_obinv r
where r.an = <<m.gnAn>>
and r.luna = <<m.gnLuna>>
and r.nnir between <<m.pnNir1>> and <<m.pnNir2>>
and r.cant <> 0 and r.cante = 0 and r.id_tip_rulaj <> 3
<<STRTRAN(m.gcCondSucursala,[id_sucursala],[r.id_sucursala])>>
and r.id_gestiune in (select distinct id_gestiune from vnom_gestiuni <<m.lcCondTipGest>>)
<<m.lcCondIdSet>>
order by r.nnir, r.cgest, r.nrord, r.nresp, r.sectie, r.id_rul_obinv
ENDTEXT
ELSE
*!* modificare v 2.2.4 : am pus select max(marca)... in loc de sal_personal.marca pentru ca s-ar putea sa am un salariat de mai multe ori in sal_personal
*!* lcSql=[select r.*,(select max(marca) from sal_personal where id_part = r.id_responsabil and id_salariat in ] + ;
*!* [(select id_persoana from sal_stat where an =?gnAn and luna = ?gnLuna and sters = 0)) as marca from vrul r ]+;
*!* [ where r.an=] + ALLTRIM(STR(gnAn)) + [ and r.luna=] + ALLTRIM(STR(gnLuna)) + [ and r.nnir between ] + ALLTRIM(STR(pnNir1)) + [ and ] + ALLTRIM(STR(pnNir2)) + ;
*!* [ and r.cant=0 and r.cante<>0 and r.id_tip_rulaj <> 3]+;
*!* STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
*!* [and r.id_gestiune in (select distinct id_gestiune from vnom_gestiuni ]+ lcCondTipGest + [)] + lcCondIdSet +;
*!* [order by r.nnir, r.cgest, r.nrord, r.nresp, r.sectie, r.id_rul]
*!* modificare 21.06 : am adaugat id_rul la order by
TEXT TO lcSql TEXTMERGE NOSHOW
select r.*,
(select max(p.marca)
from sal_personal p join sal_stat s on (p.id_salariat = s.id_persoana)
where p.id_part = r.id_responsabil
and s.an= <<m.gnAn>> and s.luna = <<m.gnLuna>> and s.sters = 0) as marca,
(select max(f.denumire)
from sal_personal p join sal_stat s on (p.id_salariat = s.id_persoana)
left join sal_nom_formatii f on s.id_formatie = f.id_formatia
where p.id_part = r.id_responsabil
and s.an= <<m.gnAn>> and s.luna = <<m.gnLuna>> and s.sters = 0) as formatie
from vrul r
where r.an = <<m.gnAn>>
and r.luna = <<m.gnLuna>>
and r.nnir between <<m.pnNir1>> and <<m.pnNir2>>
and r.cant = 0 and r.cante <> 0 and r.id_tip_rulaj <> 3
<<STRTRAN(m.gcCondSucursala,[id_sucursala],[r.id_sucursala])>>
and r.id_gestiune in (select distinct id_gestiune from vnom_gestiuni <<m.lcCondTipGest>>)
<<m.lcCondIdSet>>
order by r.nnir, r.cgest, r.nrord, r.nresp, r.sectie, r.id_rul
ENDTEXT
ENDIF && tnTip = 3
*!* 27.08.2009 ^
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount('crsrul')=0
amessagebox("Nu a fost inregistrat nici un BON in luna curenta cu numere intre " +Alltrim(Str(m.pnNir1))+ " si " + +Alltrim(Str(m.pnNir2))+ " !",0+48,"Atentie")
Use In crsrul
Return
Endif
*ptDataOra=get_ora()
*!* pcDataOra = get_ora(2)
Private pcSemnaturi
Store '' To pcSemnaturi
param_listari('rap_bon_achi',,@pcSemnaturi,.T.)
Select crsrul
*!* modificare ROAPRODUCTIE v 2.0.2 : goExport
If pnTip = 5 && marfa la pret de achizitie
If Type("gnList_bon_marfa") = "U"
*!* Report Form rap_bon_vanz To Printer Prompt Preview
lcRaport = [rap_bon_vanz]
Else
Do Case
Case gnList_bon_marfa = 0
*!* Report Form rap_bon_achi To Printer Prompt Preview
lcRaport = [rap_bon_achi]
Case gnList_bon_marfa = 1
*!* Report Form rap_bon_vanz To Printer Prompt Preview
lcRaport = [rap_bon_vanz]
Case gnList_bon_marfa = 2
*!* Report Form rap_bon_achi_vanz To Printer Prompt Preview
lcRaport = [rap_bon_achi_vanz]
Otherwise
*!* Report Form rap_bon_vanz To Printer Prompt Preview
lcRaport = [rap_bon_vanz]
Endcase
Endif
Else
*!* Report Form rap_bon_achi To Printer Prompt Preview
*!* 27.08.2009
IF tnTip = 3 AND !m.llCasareObiecteNoi && obiecte de inventar
lcRaport = [rap_bon_achi_inv]
ELSE
lcRaport = [rap_bon_achi]
ENDIF
*!* 27.08.2009 ^
Endif
IF TYPE('goExport') = 'O'
*goExport.export2frx([crsrul],lcRaport)
goExport.export2frx([crsrul],lcRaport, , , , , , .T.)
ELSE
Report Form (lcRaport) To Printer Prompt Preview
ENDIF
*!* modificare ROAPRODUCTIE v 2.0.2 ^
If Used('crsrul')
Use In crsrul
Endif
Endproc && LISTARE_BON
*------------------------------------------------------------------
*!* Procedure LIST_BON
*!* Parameters M.NNIR
*!* Sele act
*!* Loca For Val(nnir)==VAL(m.NNIR) AND INLIST(ID_SET,0,56,61,78,80,88,90) &&NUMAI BONURI (NOI SAU VECHI)
*!* If !Found()
*!* Do mesaj With 'Nu a fost inregistrat nici un bon','cu numarul '+M.NNIR
*!* Return
*!* ENDIF
*!* M.COD=COD
*!* m.T='BONURI'
*!* SELECT DISTINCT NUME_2 As RESPONS,COD;
*!* WHERE COD=M.COD;
*!* FROM ACT INTO CURSOR FF
*!* Select Distinct rull.*,FF.*;
*!* from FF,rull;
*!* where FF.cod=rull.cod And Val(rull.nnir)=VAL(m.NNIR) And rull.cante # 0 And rull.cant=0;
*!* into Table &loc\&nfscurt\tempo\ra
*!* Sele ra
*!* Index On Str(gest,2)+nnir To &loc\&nfscurt\tempo\ra
*!* If !BON_ACHI
*!* Report Format BONLI.FRX To Printer Prompt Preview
*!* Else
*!* Report Format BONCONS.FRX To Printer Prompt Preview
*!* Endif
*!* Use In ra
*!* USE IN FF
*!* DO STERGE
*!* RETURN
*!* *-------------------------------------------------------------
Procedure LISTARE_TRANSFER
Parameters tnNir,tnTip, tcRul
Private lnCod,pnNir,lnSuma1,lnSuma2,pnTip,pcGestout
Store "" To pcGestout
Store 0 To lnSuma1,lnSuma2,pnNir
pnNir = tnNir
Local lcRul
If Empty(tcRul) Or Type('tcRul') # 'C' Or Pcount() < 3
lcRul = 'vrul'
Else
lcRul = Alltrim(tcRul)
Endif
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
If Used('crsrul')
Use In crsrul
Endif
*!* lcSql=[select distinct r.*, a.nract, a.gestin, a.id_gestin from ] + gcS + [.] + lcRul + [ r left join ] + gcS +[.vact a on r.cod=a.cod and a.luna=r.luna and a.an=r.an and a.id_gestin is not null ] + ;
*!* [where r.luna=?gnLuna and r.an=?gnAn and r.nnir = ?pnNir and r.cant=0 and r.cante<>0 order by r.nnir, r.cgest, r.sectie, r.nrord, r.nresp, r.cgestc, r.nrespc]
Do Case
Case pnTip = 7
*!* lcSql = [select cod,nnir,dataact,cgest,nume_gestiune,cgestc,nume_gestiunec,nresp,nrespc,denumire,codmat,um,max(decode(cante, 0, 0, cante)) as cante,] + ;
*!* [max(decode(cante, 0, 0, pret)) as pret,max(decode(cant, 0, 0, pret)) as pret_nou,id_articol,id_gestiune,] + ;
*!* [id_responsabil, cont from ] + gcS + [.vrul where luna = ?gnLuna and an = ?gnAn and nnir = ?pnNir ] + ;
*!* [group by id_articol, id_gestiune, id_responsabil, cont, cod, nnir, dataact, cgest, nume_gestiune,] + ;
*!* [cgestc,nume_gestiunec, nresp, nrespc,] + ;
*!* [denumire, codmat, um order by nnir,cgest,nresp]
lcSql = [select a.cod, a.nnir, a.dataact, a.cgest, a.serie, a.lot, a.nume_gestiune, a.cgestc, a.nume_gestiunec, a.nresp, a.resp_marca, ] + ;
[a.nrespc, a.respc_marca, a.denumire, a.codmat, a.um, a.cante, a.pret, b.pret as pret_nou, a.id_articol, a.id_Gestiune, ] + ;
[a.id_responsabil, a.cont, a.id_rul from ] + gcS + [.vrul a ] + ;
[left join rul b on a.cod = b.cod and a.id_articol = b.id_articol ] + ;
[and a.id_gestiune = b.id_gestiunec and a.id_gestiunec = b.id_gestiune and a.cante = b.cant ] + ;
[and Nvl(a.id_rul_aux,-99) = Nvl(b.id_rul_aux,-99) ] + ;
[and NVL(a.id_sucursala,-99) = NVL(b.id_sucursala,-99) ] + ;
[where a.luna = ] + ALLTRIM(STR(gnLuna)) + [ and a.an = ] + ALLTRIM(STR(gnAn)) + [ and a.nnir = ] + ALLTRIM(STR(pnNir)) + [ and a.cante <> 0 ] + ;
STRTRAN(gcCondSucursala,[id_sucursala],[a.id_sucursala]) + [ ] + ;
[order by a.nnir, a.cgest, a.nresp, a.id_rul]
*!* modificare migrare v 1.0 > v 2.0
Case pnTip = 8
lcSql=[select distinct r.*, a.nract, p.cod_fiscal, p.reg_comert, p.adresa from ] + ;
lcRul + [ r left join act a on r.cod=a.cod and a.luna=r.luna and a.an=r.an ] + ;
[ left join vnom_parteneri p on p.id_part = r.id_part_rez ] + ;
[where r.luna=?gnLuna and r.an=?gnAn and r.nnir = ?pnNir and r.cant<>0 and r.cante=0 ] + ;
[and r.id_set = 229 ] + ;
STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
[order by r.nnir, r.cgest, r.sectie, r.nrord, r.nresp, r.cgestc, r.nrespc, r.id_rul]+;
IIF('obinv'$Lower(lcRul), '_obinv', '')
*!* modificare migrare v 1.0 > v 2.0 ^
*!* 27.08.2009
CASE pnTip = 10 && transfer ob inv in folosinta - durata
*!* as fi vrut doar transferurile de ob inv in folosinta cu durata ramasa
**! trebuie sa iau de pe linia cu intrarile noua durata ramasa, nu de pe iesiri
lcSql=[select distinct r.*, a.nract from ] + lcRul + [ r left join ] + gcS +[.act a on r.cod=a.cod ] + ;
[and a.luna=r.luna and a.an=r.an and NVL(r.id_sucursala,-99) = NVL(a.id_sucursala,-99) ] + ;
[where r.luna=] + ALLTRIM(STR(gnLuna)) + [ and r.an=] + ALLTRIM(STR(gnAn)) + [ and r.nnir = ] + ALLTRIM(STR(pnNir)) + [ and r.cante=0 and r.cant<>0 and r.id_set<>229 ] + ;
STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
[order by r.nnir, r.cgest, r.sectie, r.nrord, r.nresp, r.cgestc, r.nrespc, r.id_rul]+;
IIF('obinv'$Lower(lcRul), '_obinv', '')
*!* 27.08.2009 ^
OTHERWISE
lcSql=[select distinct r.*, a.nract from ] + lcRul + [ r left join ] + gcS +[.act a on r.cod=a.cod ] + ;
[and a.luna=r.luna and a.an=r.an and NVL(r.id_sucursala,-99) = NVL(a.id_sucursala,-99) ] + ;
[where r.luna=] + ALLTRIM(STR(gnLuna)) + [ and r.an=] + ALLTRIM(STR(gnAn)) + [ and r.nnir = ] + ALLTRIM(STR(pnNir)) + [ and r.cant=0 and r.cante<>0 and r.id_set<>229 ] + ;
STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
[order by r.nnir, r.cgest, r.sectie, r.nrord, r.nresp, r.cgestc, r.nrespc, r.id_rul]+;
IIF('obinv'$Lower(lcRul), '_obinv', '')
ENDCASE
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount('crsrul')=0
amessagebox("Nu a fost inregistrata nici o nota de transfer in luna curenta cu numarul "+Alltrim(Str(pnNir))+" !",0+48,"Atentie")
Use In crsrul
Return
Endif
*!* SELECT DISTINCT id_gestiune, nume_gestiune FROM crsrul INTO CURSOR crs_gest_out
*!* SELECT crs_gest_out
*!* SCAN
*!* pcGestout = pcGestout + ',' + ALLTRIM(nume_gestiune)
*!* ENDSCAN
*!* USE IN crs_gest_out
*!* pcGestout = SUBSTR(pcGestout,2)
*ptDataOra=get_ora()
*!* modificare ROAPRODUCTIE v 2.0.2 : goExport
*!* pcDataOra = get_ora(2)
Select crsrul
Do Case
Case pnTip = 7
Private pcgestc, pcnume_gestiunec
Select crsrul
pcgestc = cgestc
pcnume_gestiunec = nume_gestiunec
*!* Report Form rap_dif_pret To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_dif_pret])
Release pcgestc, pcnume_gestiunec
*!* *!* modificare migrare v 1.0 > v 2.0
Case pnTip = 8
* partener/lucrare rezervare
Private pcPartRez, pcNrOrdRez, pcPartNrordRez, pcPartNrordRezC
Select crsrul
pcPartRez = Alltrim(Nvl(part_rez,[]))
pcNrOrdRez = Alltrim(Nvl(nrord_rez,[]))
pcPartNrordRez = ALLTRIM(nvl(part_rez,'')) + ;
iif(!empty(alltrim(nvl(nrord_rez,''))), iif(!empty(nvl(part_rez,'')), ' / ', '') + ALLTRIM(nrord_rez), '') + ;
IIF(!EMPTY(NVL(cod_fiscal, '')), ', CUI: ' + ALLTRIM(cod_fiscal) + IIF(!EMPTY(NVL(reg_comert, '')), ', Reg. Com.: ' + ALLTRIM(reg_comert), ''), '') + ;
iif(!empty(nvl(adresa,'')), CHR(13) + CHR(10) + 'Adresa: ' + alltrim(adresa), '')
pcPartNrordRezC = ''
SET STEP ON
* articolele se transfera la un singur partener/lucrare, dar pot proveni de la mai multi parteneri/lucrari rezervate
* fac o lista partener/lucrare rezervare corespondenti
IF !EMPTY(NVL(crsRul.cod,0))
lcSql=[select distinct part_rez, nrord_rez from ] + lcRul + ;
[ where luna=?gnLuna and an=?gnAn and cod = ] + ALLTRIM(STR(crsrul.cod)) + [ and nnir = ?pnNir and cant=0 and cante<>0 ] + ;
[ and id_set = 229 ] + m.gcCondSucursala
llSucces = goExecutor.oexecuta(lcSql,"crsRulC")
If m.llSucces
SELECT crsRulC
SCAN
lcPartRezC = ALLTRIM(NVL(part_rez, ''))
lcNrordRezC = ALLTRIM(NVL(nrord_rez, ''))
pcPartNrordRezC = m.pcPartNrordRezC + IIF(RECNO() > 1, ', ', '') + m.lcPartRezC + ;
IIF(!EMPTY(m.lcNrordRezC), IIF(!EMPTY(m.lcPartRezC), '/', '') + m.lcNrordRezC, '')
ENDSCAN
USE IN (SELECT('crsRulC'))
ENDIF
ENDIF
Select crsrul
*!* Report Form rap_nirrezervare To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_nirrezervare], , , , , , .T.)
Release pcPartRez,pcNrOrdRez,pcPartNrordRez,pcPartNrordRezC, pnIdSet
*!* *!* modificare migrare v 1.0 > v 2.0 ^
*!* 27.08.2009
Case pnTip = 10 && obiecte de inventar in folosinta - durata
goExport.export2frx([crsrul],[rap_nirtransfer_achi2_durata], , , , , , .T.)
*!* 27.08.2009 ^
Case pnTip # 6
*!* Report Form rap_nirtransfer_achi2 To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_nirtransfer_achi2], , , , , , .T.)
Otherwise
*!* Report Form rap_nirtransfer_vanz To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_nirtransfer_vanz], , , , , , .T.)
Endcase
If Used('crsrul')
Use In crsrul
Endif
Endproc
*-------------------------------------------------------
Procedure LISTARE_RETUR
Parameters tnNir,tnTip
Private lnCod,pnNir,lnSuma1,lnSuma2,pnTip,pcGestout,pcNrord
Store "" To pcGestout,pcNrord
Store 0 To lnSuma1,lnSuma2,pnNir
pnNir = tnNir
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
If Used('crsrul')
Use In crsrul
Endif
*!* modificare v 2.4.4 : am pus select max(marca) ... in loc de sal_personal.marca
lcSql=[select distinct r.cod,r.id_articol,r.denumire,r.codmat,r.um,r.dataact,r.pret,r.pretv,-r.cante as cante,]+;
[r.id_lucrare,r.nrord,r.id_gestiune,r.nume_gestiune,r.serie,r.lot,r.cgest,r.nnir,a.nract,r.serie_act,r.nresp,] + ;
[(select max(marca) from sal_personal where id_part = r.id_responsabil and id_salariat in ] + ;
[(select id_persoana from sal_stat where an =?gnAn and luna = ?gnLuna and sters = 0)) as marca, r.id_rul from vrul r ]+;
[ left join act a on a.sters=0 and r.cod=a.cod and a.luna=r.luna and a.an=r.an ] + ;
[where r.luna=?gnLuna and r.an=?gnAn and r.nnir = ?pnNir and r.cant=0 and r.cante<>0] + ;
STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] + ;
[order by r.nnir,r.cgest,r.nrord,r.id_rul]
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
If Reccount('crsrul')=0
amessagebox("Nu a fost emisa nota cu numarul "+Alltrim(Str(pnNir))+" in luna curenta!",0+48,"Atentie")
Use In crsrul
Return
Endif
Select Distinct id_gestiune, nume_gestiune, nrord From crsrul Into Cursor crs_gest_out
Select crs_gest_out
Scan
pcGestout = pcGestout + ',' + Alltrim(nume_gestiune)
pcNrord = pcNrord + ',' + Alltrim(nrord)
Endscan
Use In crs_gest_out
pcGestout = Substr(pcGestout,2)
pcNrord = Substr(pcNrord,2)
*ptDataOra=get_ora()
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcDataOra = get_ora(2)
Private pcSemnaturi
Store '' To pcSemnaturi
Select crsrul
If pnTip # 6
param_listari('rap_retur_achi',,@pcSemnaturi,.T.)
Select crsrul
*!* Report Form rap_retur_achi To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_retur_achi], , , , , , .T.)
Else
*!* Report Form rap_retur_vanz To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_retur_vanz], , , , , , .T.)
Endif
If Used('crsrul')
Use In crsrul
Endif
Return
ENDPROC && listare_retur
*-------------------------------------------------------
*!* Procedure listare_facturi
*!* Parameters tcSerieAct,tnNract
*!* *!* && object goFirma
*!* lcSql = [Select distinct cod, serie_act, nract,id_fact,id_partd,dataact from ] + gcS + [.vact ] + ;
*!* [where an = ?gnAn and luna = ?gnLuna and nract = ?tnNract and NVL(serie_act,'+_') = NVL(?tcSerieAct,'+_') ] + ;
*!* [and scd = '4111']
*!* lcCursor=[crsact]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Return
*!* Endif
*!* Select crsact
*!* Scatter Name oAct
*!* lnIdPart = oAct.id_partd
*!* lnIdfact = oAct.id_fact
*!* lnCod = oAct.cod
*!* pdDataact = Ttod(oAct.dataact)
*!* lcSql = [Select * from ] + gcS + [.vnom_parteneri where id_part = ?lnIdPart ]
*!* lcCursor=[crspart]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Return
*!* Endif
*!* Select crspart
*!* Scatter Name opart
*!* lcSql = [Select * from ] + gcS + [.vrul where an = ?gnAn and luna = ?gnLuna and id_fact=?lnIdFact and cod=?lnCod and cante<>0]
*!* lcCursor=[crsrul]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* Return
*!* Endif
*!* Store [] To pcdelegat, pcbi, pceliberatde, pcnrinmat
*!* Do Form DATEFACT
*!* *!* sele optiuni
*!* *!* loca for optiune='FORMAT A4'
*!* llA4 = .T.
*!* *ptDataOra=get_ora()
*!* pcDataOra = get_ora(2)
*!* Select crsrul
*!* If llA4
*!* Report Form rap_FACTURI_vanzari_A4 To Printer Prompt Preview
*!* Else
*!* Report Form rap_FACTURI_vanzari_A5 To Printer Prompt Preview
*!* Endif
*!* If Used('crsact')
*!* Use In crsact
*!* Endif
*!* If Used('crsrul')
*!* Use In crsrul
*!* Endif
*!* If Used('crspart')
*!* Use In crspart
*!* Endif
*!* Endproc && listare_facuri
*****************************************************************************************
Procedure fisa_magazie_FIFO_vechi
Parameters tcod,tfis1,tfis2,tdata1,tdata2
lcod=Alltrim(tcod)
ldata1 = Alltrim(tdata1)
If !Empty(tdata2)
ldata2 = Alltrim(tdata2)
Else
ldata2 = ldata1
Endif
If Used('fisa_stoc')
Use In fisa_stoc
Endif
Create Cursor fisa_stoc (ldata d,nrdoc c(15),cantin N(12,3),pretin N(12,3),valin N(14,2),;
cantout N(12,3),pretout N(12,3),valout N(14,2),cantf N(12,3),pretf N(12,3),valf N(14,2),idf N(3))
&& -----------------------&tfis1 = stocul
lcSql = [select cants as cantf,pret as pretf,cants*.pret as valf,datain from ] + gcS + [.]+tfis1+[ where id_articol=]+lcod+[ order by datain]
lcCursor = [cstoc]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
goExecutor.oReset()
If lnSucces > 0
Select cstoc
Delete All For cantf=0
Select fisa_stoc
Append From Dbf('CSTOC') For !Deleted()
Select fisa_stoc
Go Top
If Eof()
Append Blank
Endif
Sum cantf To lnCantf
Sum valf To lnValf
Go Top
Replace cantin With lnCantf, valin With lnValf,nrdoc With 'Stoc initial'
Replace All idf With 1
If lnCantf#0
Replace pretin With lnValf/lnCantf
Endif
&&----------------------&tfis2 = rulajele
lcSql = [select * from ] + gcS + [.] + tfis2 + [ where id_articol=]+lcod+;
[ and trunc(dataact) between to_date(']+ldata1+[','YYYY-MM-DD') AND TO_DATE(']+ldata2+[','YYYY-MM-DD')]+;
[ order by dataact]
lcCursor = [trulaj]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
goExecutor.oReset()
Endif
If lnSucces > 0
Select trulaj
Scan
Scatter Name xrul
Select fisa_stoc
Calculate Max(idf) To lnMax
lnMax=lnMax+1
Append From Dbf('cstoc') For !Deleted()
Replace All idf With lnMax For Empty(idf)
Do Case
Case xrul.cant#0 &&AND !INLIST(xrul.pret,&lista)
Locate For pretf=xrul.Pret And idf=lnMax
If !Found()
Select fisa_stoc
Append Blank
Replace cantin With xrul.cant,pretin With xrul.Pret,valin With xrul.cant*xrul.Pret
Replace cantf With xrul.cant,pretf With xrul.Pret,valf With xrul.cant*xrul.Pret
Replace idf With lnMax,ldata With xrul.datain,nrdoc With xrul.nnir
Select cstoc
Append Blank
Replace cantf With xrul.cant,pretf With xrul.Pret,valf With xrul.cant*xrul.Pret
Else
Replace cantin With xrul.cant,pretin With xrul.Pret,valin With xrul.cant*xrul.Pret
Replace cantf With cantf+cantin,valf With valf+valin
Replace ldata With xrul.datain,nrdoc With xrul.nnir
Select cstoc
Locate For pretf=xrul.Pret
Replace cantf With cantf+xrul.cant,valf With valf+xrul.cant*xrul.Pret
Endif
Case xrul.cante#0
Select fisa_stoc
Locate For pretf=xrul.Pret And idf=lnMax
If !Found()
*DO mesaj WITH 'Stoc negativ',''
Append Blank
Replace idf With lnMax
Endif
Replace cantout With xrul.cante,pretout With xrul.Pret,valout With xrul.cante*xrul.Pret
Replace cantf With cantf-cantout,pretf With xrul.Pret,valf With valf-valout
Replace ldata With xrul.dataout,nrdoc With xrul.nnir
Select cstoc
Locate For pretf=xrul.Pret
If !Found()
*DO mesaj WITH 'Stoc negativ',''
Append Blank
Endif
Replace cantf With cantf-xrul.cante,pretf With xrul.Pret,valf With valf-xrul.cante*xrul.Pret
Endcase
Select cstoc
Delete All For cantf=0
Release xrul
Select trulaj
Endscan
Endif
If Used('trulaj')
Use In trulaj
Endif
If Used('cstoc')
Use In cstoc
Endif
Endproc &&fisa_magazie_FIFO
*-----------------------------------------------------------------
Procedure list_bon_pe_lucrare
Parameters tnTip
Private lnCod,lnIdLucrare,lnSuma1,lnSuma2,loact,pnTip,lnLuna1,lnLuna2,lnAn1,lnAn2,pcondper,lnInf ,lnSup,lcCondIdSet
Store "" To loact,pcondper
Store 0 To lnSuma1,lnSuma2,lnIdLucrare,lnInf,lnSup
oper = Createobject('frm_perioada_luni')
oper._optiongrup1.Value=1
oper.Show(1)
Release oper
If Occurs('_',pcondper)>0
lpos = At('_',pcondper)
ldata1 = Substr(pcondper,1,lpos-1)
ldata2 = Substr(pcondper,lpos+1)
lcd1 = Substr(ldata1,1,2)+'.'+Substr(ldata1,3,4)
lcd2 = Substr(ldata2,1,2)+'.'+Substr(ldata2,3,4)
pcperioada='De la: '+lcd1+' pana la '+lcd2
Else
ldata1 = pcondper
pcperioada='LUNA: '+Substr(ldata1,1,2)+'.'+Substr(ldata1,3,4)
ldata2 = ldata1
Endif
lnLuna1 = Val(Substr(ldata1,1,2))
lnAn1 = Val(Substr(ldata1,3,4))
lnLuna2 = Val(Substr(ldata2,1,2))
lnAn2 = Val(Substr(ldata2,3,4))
*pcselect = ['select * from ] + gcS + [.vLucrari_validat where 2=2']
pcselect = [select * from vnom_Lucrari]
pcfiltru = [1=2]
pcschema = []
pcorder = [nrord]
pccoloane = [nrord]
pcTitlu = [Lucrare/Comanda]
*pcFiltruOriginal = [validat = 0 and inactiv = 0]
pcFiltruOriginal = []
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitlu,'',.T.,pcFiltruOriginal) && 11.07.2007
If Empty(locauta.id_lucrare) And Empty(locauta.nrord)
Return
Endif
lnIdLucrare = locauta.id_lucrare
If Empty(tnTip)
pnTip = 0
Else
pnTip = tnTip
Endif
If Used('crsrul')
Use In crsrul
Endif
lnInf = lnLuna1+ 12*lnAn1
lnSup = lnLuna2+ 12*lnAn2
*!* modificare 29.03.2013 v 2.2.7: id_set <> 268 in lcCondTipGest - sa nu se listeze bonurile importate din xml cu productia de vopsea pentru ca n-ar fi corect sa apara produsul final pe bon
lcCondIdSet = " and id_set <> 268 "
lcSql=[select * from ] + gcS + [.vrul where (luna+12*an between ?lnInf and ?lnSup) and cant=0 and cante<>0 ] +;
IIF(Alltrim(locauta.nrord)="<TOATE INREGISTRARILE>",[],[and id_lucrare=?lnIdLucrare ]) +;
[and id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag ] + ;
IIF(pnTip=6,[=],[<>])+[ 6) ] + gcCondSucursala + lcCondIdSet +;
[order by nrord,nnir,cgest,nresp,sectie,id_rul]
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
If Reccount('crsrul')=0
amessagebox("Nu exista bonuri pe aceasta lucrare !",0+48,"Atentie")
lnSucces = -1
Endif
If lnSucces > 0
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcDataOra = get_ora(2)
*!* Select crsrul
If pnTip # 6
*!* Report Form rap_bon_lucrare To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_bon_lucrare], , , , , , .T.)
*!* modificare ROAPRODUCTIE v 2.0.2 ^
Endif
Endif
Release locauta
If Used('crsrul')
Use In crsrul
Endif
Endproc && list_bon_pe_lucrare
*-------------------------------------------------------------
Procedure list_total_NIR
Parameters tnTip
pnTip = tnTip
*!* modificare ROAGEST v 2.0.6
*!* Do Case
*!* Case "-1" $ gcGestPermis
*!* pcselect = [select * from vnom_GESTIUNI]
*!* pcFiltruOrig = [inactiv = 0 and nr_pag = ?pnTip]
*!* pcfiltru = [1=2]
*!* pcschema = ['']
*!* pcorder = [nume_gestiune]
*!* pccoloane = [nume_gestiune,cgest]
*!* pcTitlu = [Alegeti gestiunea]
*!* pcTitluColoane = [Gestiune,Indicativ]
*!* locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"",.T.,pcFiltruOrig) && 11.07.2007
*!* Otherwise
pcselect = [select * from vnom_GESTIUNI]
pcFiltruOrig = [inactiv = 0 and nr_pag = ?pnTip and id_gestiune in ] + ;
[(select g.id_gestiune from vgest_coresp_grupe_gestiuni g join ] + ;
[vgest_coresp_util_grupe u on g.id_grupe = u.id_grupe and u.id_util = ?gnIdUtil)]
pcfiltru = [1=2]
pcschema = ['']
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune,cgest]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune,Indicativ]
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"",.T.,pcFiltruOrig ) && 11.07.2007
*!* Endcase
*!* modificare ROAGEST v 2.0.6 ^
If locauta.id_gestiune = 0 And Alltrim(Upper(locauta.nume_gestiune)) # "<TOATE INREGISTRARILE>"
Release locauta
Return
Endif
pcNumeGestiune = Alltrim(Upper(locauta.nume_gestiune))
pnIdGest = Iif(pcNumeGestiune # "<TOATE INREGISTRARILE>", locauta.id_gestiune, -1)
Release locauta
If pnIdGest = -1
lcCond = [ and r.id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag = ?pnTip) and id_gestiune in ] + ;
[(select g.id_gestiune from ] + gcS + [.vgest_coresp_grupe_gestiuni g join ] + ;
gcS + [.vgest_coresp_util_grupe u on g.id_grupe = u.id_grupe and u.id_util = ?gnIdUtil) ]
Else
lcCond = [ and r.id_gestiune = ?pnIdGest ]
Endif
lcSql = [SELECT r.serie,r.lot,r.codmat,r.denumire,r.um,r.cant,r.pret,r.pretd,r.tva,r.id_gestiune,r.cgest,r.nume_gestiune,r.nnir,r.proc_tva, ]+;
[r.gestionar,r.comisie_receptie1,r.comisie_receptie2,r.comisie_receptie3, ] + ;
[(select NVL(min(a.id_act), -1) from act a where r.cod = a.cod AND r.cont = a.scd and r.an = a.an and r.luna = a.luna and a.sters = 0 ]+;
[and NVL(r.id_sucursala, -99) = NVL(a.id_sucursala, -99)) as id_act, r.nume_val, r.curs ]+ ;
[FROM vrul r ] +;
[WHERE r.cant<>0 AND r.cante=0 and r.an = ?gnAn and r.luna = ?gnLuna ] + lcCond
*STRTOFILE(lcSql, 'c:\Sql.txt')
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
If lnSucces > 0
If Reccount('crsrul') > 0
lcListaID = [-1]
Select Distinct id_act From crsrul Into Cursor tActuri
Select tActuri
Scan
lcListaID = lcListaID + [,] + Alltrim(Str(id_act))
Endscan
*lcListaID = SUBSTR(lcListaID,2)
lcSql = [SELECT id_act, partc as nume, serie_act, nract, dataact, dataireg, fdoc from vact where id_act in (] + lcListaID +[)]
lcCursor=[crsAct]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
Select r.*, a.*, 0 As discount, 0 As tvaDiscount From crsrul r ;
LEFT Join crsact a On r.id_act = a.id_act ;
INTO Cursor crslistare ;
ORDER By r.nnir
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcDataOra = get_ora(2)
*!* Select crslistare
*!* modificare 08.11.2007
*!* Report Form rap_nir_toate.frx To Printer Prompt Preview
goExport.export2frx([crslistare],[rap_nir_toate], , , , , , .T.)
*!* modificare ROAPRODUCTIE v 2.0.2 ^
*!* If pnTip = 6
*!* Report Form rap_nir_toate.frx To Printer Prompt Preview
*!* Else
*!* Report Form rap_nir_toate.frx To Printer Prompt Preview
*!* Endif
*!* modificare 08.11.2007 ^
Else
amessagebox('Nu a fost inregistrat nici un NIR in luna curenta' + Chr(13) + 'care sa indeplineasca conditiile!',0+48,'Atentie')
Endif
Endif
If Used('crsListare')
Use In crslistare
Endif
If Used('crsAct')
Use In crsact
Endif
If Used('crsRul')
Use In crsrul
Endif
Endproc && list_total_NIR
*-------------------------------------------------------------
Procedure list_total_BON
Parameters tnTip
pnTip = tnTip
*!* modificare ROAGEST v 2.0.6
*!* Do Case
*!* Case "-1" $ gcGestPermis
*!* pcselect = [select * from vnom_GESTIUNI]
*!* pcFiltruOrig = [inactiv = 0 and nr_pag = ?pnTip]
*!* pcfiltru = [1=2]
*!* pcschema = ['']
*!* pcorder = [nume_gestiune]
*!* pccoloane = [nume_gestiune,cgest]
*!* pcTitlu = [Alegeti gestiunea]
*!* pcTitluColoane = [Gestiune,Indicativ]
*!* locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"",.T.,pcFiltruOrig) && 11.07.2007
*!* Otherwise
pcselect = [select * from vnom_GESTIUNI]
pcFiltruOrig = [inactiv = 0 and nr_pag = ?pnTip and id_gestiune in ] + ;
[(select g.id_gestiune from vgest_coresp_grupe_gestiuni g join ] + ;
[vgest_coresp_util_grupe u on g.id_grupe = u.id_grupe and u.id_util = ?gnIdUtil)]
pcfiltru = [1=2]
pcschema = []
pcorder = [nume_gestiune]
pccoloane = [nume_gestiune,cgest]
pcTitlu = [Alegeti gestiunea]
pcTitluColoane = [Gestiune,Indicativ]
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"",.T.,pcFiltruOrig ) && 11.07.2007
*!* Endcase
*!* modificare ROAGEST v 2.0.6 ^
If locauta.id_gestiune = 0 And Alltrim(Upper(locauta.nume_gestiune)) # "<TOATE INREGISTRARILE>"
Release locauta
Return
Endif
pcNumeGestiune = Alltrim(Upper(locauta.nume_gestiune))
pnIdGest = Iif(pcNumeGestiune # "<TOATE INREGISTRARILE>", locauta.id_gestiune, -1)
Release locauta
If pnIdGest = -1
lcCond = [ and r.id_gestiune in (select distinct id_gestiune from ] + gcS + [.vnom_gestiuni where nr_pag = ?pnTip) and id_gestiune in ] + ;
[(select g.id_gestiune from ] + gcS + [.vgest_coresp_grupe_gestiuni g join ] + ;
gcS + [.vgest_coresp_util_grupe u on g.id_grupe = u.id_grupe and u.id_util = ?gnIdUtil) ]
Else
lcCond = [ and r.id_gestiune = ?pnIdGest ]
Endif
*!* modificare 29.03.2013 v 2.2.7: id_set <> 268 in lcCondTipGest - sa nu se listeze bonurile importate din xml cu productia de vopsea pentru ca n-ar fi corect sa apara produsul final pe bon
lcCondIdSet = " and r.id_set <> 268 "
lcSql = [SELECT r.serie,r.lot,r.codmat,r.denumire,r.um,r.cantE,r.pret,r.id_gestiune,r.cgest,r.nume_gestiune,r.nnir,r.dataact, ]+ ;
[r.gestionar,r.comisie_receptie1,r.comisie_receptie2,r.comisie_receptie3 ] + ;
[FROM vrul r ] +;
[WHERE r.cantE<>0 AND r.cant=0 and r.an = ?gnAn and r.luna = ?gnLuna ] + lcCond + ;
STRTRAN(gcCondSucursala,[id_sucursala],[r.id_sucursala]) + [ ] +lcCondIdSet + ;
[ORDER BY r.nume_gestiune, r.nnir]
* [group by r.codmat,r.denumire,r.um,r.cant,r.pret,r.id_gestiune,r.cgest,r.nume_gestiune,r.nnir,r.proc_tva ]+
*STRTOFILE(lcSql, 'c:\Sql.txt')
If Used('crsRul')
Use In crsrul
Endif
lcCursor=[crsrul]
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Endif
If lnSucces > 0
If Reccount('crsrul') > 0
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcDataOra = get_ora(2)
*!* Select crsrul
*!* Report Form rap_BONURI.frx To Printer Prompt Preview
goExport.export2frx([crsrul],[rap_bonuri], , , , , , .T.)
*!* modificare ROAPRODUCTIE v 2.0.2 ^
Else
amessagebox('Nu a fost inregistrat nici un NIR in luna curenta' + Chr(13) + 'care sa indeplineasca conditiile!',0+48,'Atentie')
Endif
Endif
If Used('crsRul')
Use In crsrul
Endif
Endproc && list_total_BON
*-----------------------------------------------------
Procedure ver_nir_facturi
Parameters tnFelFact, tlProductie
Local lcSchema, lcSelect, lcOrder, lcFiltru, lcFiltruOriginal, llAfiseaza
Local lcCondProductie, lcCondConturi
lcCondProductie = ""
lcCondConturi = ""
Private pnCod, pcCont, pcAcont, pnFel
Store '' To pcCont, pcAcont
pnCod = 0
Local llProductie
llProductie = tlProductie
Private poNirBon
Store '' To poNirBon
If Empty(tnFelFact)
pnFel = 1 && de achizitie
Else
pnFel = tnFelFact
Endif
*!* VERIFICARE FACTURI - NIR-URI
&& SELECTEZ DIN ACT FACTURILE DE ACHIZITIE/VANZARE (BAZA, TVA, SUMA - INCLUSIV DISCOUNTUL 667, 767)
lcSchema = []
*!* modificare ROAPRODUCTIE v 2.0.2
If tlProductie
lcCondProductie = [a.id_set in (26000,26001)]
ELSE
*!* modificare ROAGEST v 2.0.120 : am adaugat conditia "not like '5%'"
lcCondProductie = [2=2]
lcCondConturi = Iif(pnFel = 1, [ and ((a.scc in ('401', '404', '408', '462') and a.scd not like '5%') OR (a.scd in ('401', '404', '408', '462') and a.scc not like '5%'))], ;
[ and ((a.scc in ('4111','4118','461') and a.scd not like '5%') OR (a.scd in ('4111','4118','461') and a.scc not like '5%'))])
Endif
*!* lcCondProductie = Iif(tlProductie, [a.id_set in (26000, 26001) ], [2=2 ])
*!* lcCondConturi = Iif(pnFel = 1, [ and (a.scc in ('401', '404', '408', '462') OR a.scd in ('401', '404', '408', '462'))], ;
*!* [ and (a.scc in ('4111','4118','461') OR a.scd in ('4111','4118','461'))])
*!* modificare ROAPRODUCTIE v 2.0.2 ^
TEXT to lcSelect textmerge noshow
select a1.cod,
a1.nract,
a1.serie_act,
a1.dataact,
b.denumire as part,
a1.nnir,
a1.id_sectie,
s.sectie,
a1.suma - a1.tva as baza,
a1.tva,
a1.suma,
a1.disc_baza,
a1.disc_tva,
a1.an,
a1.luna
from (select cod,
nract,
serie_act,
dataact,
an,
luna,
decode(exceptie, 1, id_partd, id_partc) as id_partc,
nnir,
id_sectie,
sum(DECODE(EXCEPTIE, 1, -suma, suma)) as suma,
sum(CASE
WHEN SCD IN ('4426', '4427', '4428') OR
SCC IN ('4426', '4427', '4428') then
DECODE(EXCEPTIE, 1, -suma, suma)
ELSE
0
END) as tva,
SUM(case when SCC = '767' THEN SUMA ELSE 0 END) AS disc_baza,
SUM(case when SCC = '767' THEN ROUND(SUMA*(proc_tva-1),<<gnPc>>) ELSE 0 END) AS disc_tva
from act a
LEFT JOIN (SELECT DISTINCT 1 AS EXCEPTIE,
DECODE(DEBIT, 1, CONT_C, CONT) AS ESCD,
DECODE(DEBIT, 1, CONT, CONT_C) AS ESCC
FROM EXCEPTII_IREG
WHERE INVERS = 1) E ON A.SCD = E.ESCD
AND A.SCC = E.ESCC
WHERE <<lcCondProductie>> <<gcCondSucursala>> <<lcCondConturi>>
and sters = 0
and cod in (select distinct cod
from vrul
where <<Iif(pnFel = 1, [cant <> 0], [cante <> 0])>>
<<gcCondSucursala>>)
GROUP BY COD,
SERIE_ACT,
NRACT,
DATAACT,
AN,
LUNA,
NNIR,
ID_SECTIE,
decode(exceptie, 1, id_partd, id_partc)) a1
left join nom_parteneri b on a1.id_partc = b.id_part
left join nom_sectii s on a1.id_sectie = s.id_sectie
ENDTEXT
*!* WHERE NVL(A1.DATAACT,to_date('1900-01-01','YYYY-MM-DD'))
*!* between to_date('20080101 00:00:00','YYYY-MM-DD HH24:MI:SS') AND
*!* to_date('20080930 23:59:59','YYYY-MM-DD HH24:MI:SS')
lcgroup = []
lcFiltruOriginal = []
lcOrder = [A1.DATAACT,A1.SERIE_ACT,A1.NRACT]
lcFiltru = [a1.an=?gnAn and a1.luna=?gnLuna]
llModParam = .T.
llAfiseaza = .F.
gencursor('poNirBon','crsAct', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poNirBon.ca_baza1.afisare()
&& SELECTEZ DIN RUL ARTICOLELE DE PE FACTURA CURENTA DUPA COD
Private poRul
poRul = ''
lcSqlRul = [select cod, nnir, id_articol, codmat, denumire, serie, lot, um, pret, tva, proc_tva, pretv, tvav, proc_tvav, ] + ;
IIF(pnFel = 1, [cant], [cante]) + [ as cantitate,] + ;
[(case id_set when 234 then Round((PRET+TVA)*CANT, ?gnPC)- Round(Round((PRET+TVA)*CANT, ?gnPC)*(proc_tva-1)/proc_tva, ?gnPC) ] + ;
[ else ROUND(pret*] + Iif(pnFel = 1, [cant], [cante]) + [,?gnPc) end) as valoare,] + ;
[(case when nr_pag = 6 and proc_tvav <> 0 then + Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) - ] + ;
[ Round(Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv+tvav), ?gnPC)*(PROC_TVAV-1)/PROC_TVAV, ?gnPC) else ] + ;
[ Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC) end) as valoarev, ] + ;
[(case when nr_pag = 6 and proc_tvav <> 0 then Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) else ] + ;
[ Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC) + Round(Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC)*(PROC_TVAV-1), ?gnPC) end) as valoarevtva, ] + ;
[cont, acont from vrul]
*!* pcfiltru = [ an = ?gnAn and luna = ?gnLuna and cod = ?pnCod ]
pcfiltru = [ 1=2 ]
pcschema = []
pcorder = [dataora]
lcFiltruOriginal = Iif(tlProductie,[id_set in (26000,26001) and ],[]) + [id_tip_rulaj = 0] + gcCondSucursala + [ and cod = ?pnCod]
llAfiseaza = .F.
llModParam = .T.
lcGrup = []
gencursor('poRul','crsRul',lcSqlRul,pcfiltru,pcschema,pcorder,llAfiseaza,lcGrup,llModParam,lcFiltruOriginal)
poRul.ca_baza1.afisare()
*!* VERIFICARE NIR-URI - FACTURI
&& SELECTEZ DIN RUL NIR-URILE GRUPATE DUPA COD, NNIR, SECTIE, NRORD, DATAACT
lcSqlRulCont = [select cod, nnir, sectie, nrord, dataact, ] + ;
[SUM(case id_set when 234 then Round((PRET+TVA)*CANT, ?gnPC)- Round(Round((PRET+TVA)*CANT, ?gnPC)*(proc_tva-1)/proc_tva, ?gnPC) ] + ;
[ else ROUND(pret*] + Iif(pnFel = 1, [cant], [cante]) + [,?gnPc) end) as valoare,] + ;
[SUM(case id_set when 234 then Round(Round((PRET+TVA)*CANT, ?gnPC)*(proc_tva-1)/proc_tva, ?gnPC) ] + ;
[ else Round(ROUND(pret*] + Iif(pnFel = 1, [cant], [cante]) + [,?gnPc)*(proc_tva-1), ?gnPC) end) as valtva,] + ;
[SUM(case id_set when 234 then Round((PRET+TVA)*CANT, ?gnPC) ] + ;
[ else ROUND(pret*] + Iif(pnFel = 1, [cant], [cante]) + [,?gnPc) + Round(Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pret, ?gnPC)*(PROC_TVA-1), ?gnPC) end) as valctva,] + ;
[SUM(case when nr_pag in (6,7) and proc_tvav <> 0 then + Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) - ] + ;
[ Round(Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv+tvav), ?gnPC)*(PROC_TVAV-1)/PROC_TVAV, ?gnPC) else ] + ;
[ Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC) end) as valoarev, ] + ;
[SUM(case when nr_pag in (6,7) and proc_tvav <> 0 then Round(] + Iif(pnFel = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) else ] + ;
[ Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC) + Round(Round(] + Iif(pnFel = 1, [cant], [cante]) + [*pretv, ?gnPC)*(PROC_TVAV-1), ?gnPC) end) as valoarevtva ] + ;
[from vrul where an = ?gnAn and luna = ?gnLuna and ]+;
IIF(tlProductie, [(id_set=26000 or id_set=26001) and ],[]) + ;
[id_tip_rulaj = 0 ] + gcCondSucursala + [ and ] + ;
IIF(pnFel = 1, [cant], [cante]) + [ <> 0 ] + ;
[group by cod, nnir, dataact, nrord, sectie ORDER BY DATAACT, NNIR]
lcCursor = [crsRulCont]
lnSucces = goExecutor.oexecute(lcSqlRulCont,lcCursor)
If lnSucces < 0
lcmesaj = goExecutor.cEroare
ofrm_er = Createobject('frm_mesaj','Eroare','exclam.ico','Avertizare',lcmesaj)
ofrm_er.Show(1)
Release ofrm_er
Endif
Private poact
poact = ''
&& selectez din act factura corespunzatoare codului NIR-ului pe care sunt pozitionat
lcFiltru = []
lcSchema = []
lcOrder = []
lcgroup = []
llModParam = .T.
lcFiltruOriginal = []
TEXT to lcSelect textmerge noshow
select a1.cod,
a1.nract,
a1.serie_act,
a1.dataact,
b.denumire as part,
a1.nnir,
a1.id_sectie,
s.sectie,
a1.suma - a1.tva as baza,
a1.tva,
a1.suma,
a1.an,
a1.luna
from (select cod,
nract,
serie_act,
dataact,
an,
luna,
decode(exceptie, 1, id_partd, id_partc) as id_partc,
nnir,
id_sectie,
sum(DECODE(EXCEPTIE, 1, -suma, suma)) as suma,
sum(CASE
WHEN SCD IN ('4426', '4427', '4428') OR
SCC IN ('4426', '4427', '4428') then
DECODE(EXCEPTIE, 1, -suma, suma)
ELSE
0
END) as tva
from act a
LEFT JOIN (SELECT DISTINCT 1 AS EXCEPTIE,
DECODE(DEBIT, 1, CONT_C, CONT) AS ESCD,
DECODE(DEBIT, 1, CONT, CONT_C) AS ESCC
FROM EXCEPTII_IREG
WHERE INVERS = 1) E ON A.SCD = E.ESCD
AND A.SCC = E.ESCC
WHERE <<lcCondProductie>> <<gcCondSucursala>> <<lcCondConturi>>
and sters = 0
and cod=?pnCod
GROUP BY COD,
SERIE_ACT,
NRACT,
DATAACT,
AN,
LUNA,
NNIR,
ID_SECTIE,
decode(exceptie, 1, id_partd, id_partc)) a1
left join nom_parteneri b on a1.id_partc = b.id_part
left join nom_sectii s on a1.id_sectie = s.id_sectie
ENDTEXT
gencursor('poAct','crsActCont', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poact.ca_baza1.afisare()
*** vizualizare
Select crsact
Do Form frm_verificare_rulaje With pnFel, llProductie
If Used('crsAct')
Use In crsact
Endif
If Used('crsRul')
Use In crsrul
Endif
If Used('crsActCont')
Use In crsActCont
Endif
If Used('crsRulCont')
Use In crsRulCont
Endif
Endproc && ver_nir_facturi
***----------------------------------------------------------------------------------------------------------------------------------
PROCEDURE listare_centralizator_nir_bon
LPARAMETERS tnTip, tlProductie, tcFiltruData
* tnTip: 1 = NIR (cant <> 0); 2 = BON CONSUM (cante <> 0)
* tlProductie: ROAPRODUCTIE
* tcFiltruData: dataact >= ... and dataact <=...., apelat din ver_nir_facturi > frm_verificare_rulaje.scx
Private poNirBon
Store '' To poNirBon
Local lcFiltruData, lnTip
lcFiltruData=[]
lnTip = IIF(TYPE('tnTip') = 'N', m.tnTip, 1)
If !EMPTY(m.tcFiltruData)
lcFiltruData = lcFiltruData + m.tcFiltruData
ENDIF
****************************
llUsedAct = USED('crsAct')
IF !m.llUsedAct
&& SELECTEZ DIN ACT FACTURILE DE ACHIZITIE/VANZARE (BAZA, TVA, SUMA - INCLUSIV DISCOUNTUL 667, 767)
lcSchema = []
If tlProductie
lcCondProductie = [a.id_set in (26000,26001)]
ELSE
lcCondProductie = [2=2]
lcCondConturi = Iif(lnTip = 1, [ and ((a.scc in ('401', '404', '408', '462') and a.scd not like '5%') OR (a.scd in ('401', '404', '408', '462') and a.scc not like '5%'))], ;
[ and ((a.scc in ('4111','4118','461') and a.scd not like '5%') OR (a.scd in ('4111','4118','461') and a.scc not like '5%'))])
Endif
TEXT to lcSelect textmerge noshow
select a1.cod,
a1.nract,
a1.serie_act,
a1.dataact,
b.denumire as part,
a1.nnir,
a1.id_sectie,
s.sectie,
a1.suma - a1.tva as baza,
a1.tva,
a1.suma,
a1.disc_baza,
a1.disc_tva,
a1.an,
a1.luna
from (select cod,
nract,
serie_act,
dataact,
an,
luna,
decode(exceptie, 1, id_partd, id_partc) as id_partc,
nnir,
id_sectie,
sum(DECODE(EXCEPTIE, 1, -suma, suma)) as suma,
sum(CASE
WHEN SCD IN ('4426', '4427', '4428') OR
SCC IN ('4426', '4427', '4428') then
DECODE(EXCEPTIE, 1, -suma, suma)
ELSE
0
END) as tva,
SUM(case when SCC = '767' THEN SUMA ELSE 0 END) AS disc_baza,
SUM(case when SCC = '767' THEN ROUND(SUMA*(proc_tva-1),<<gnPc>>) ELSE 0 END) AS disc_tva
from act a
LEFT JOIN (SELECT DISTINCT 1 AS EXCEPTIE,
DECODE(DEBIT, 1, CONT_C, CONT) AS ESCD,
DECODE(DEBIT, 1, CONT, CONT_C) AS ESCC
FROM EXCEPTII_IREG
WHERE INVERS = 1) E ON A.SCD = E.ESCD
AND A.SCC = E.ESCC
WHERE <<lcCondProductie>> <<gcCondSucursala>> <<lcCondConturi>>
and sters = 0
and cod in (select distinct cod
from vrul
where <<Iif(lnTip = 1, [cant <> 0], [cante <> 0])>>
<<gcCondSucursala>>)
GROUP BY COD,
SERIE_ACT,
NRACT,
DATAACT,
AN,
LUNA,
NNIR,
ID_SECTIE,
decode(exceptie, 1, id_partd, id_partc)) a1
left join nom_parteneri b on a1.id_partc = b.id_part
left join nom_sectii s on a1.id_sectie = s.id_sectie
ENDTEXT
*!* WHERE NVL(A1.DATAACT,to_date('1900-01-01','YYYY-MM-DD'))
*!* between to_date('20080101 00:00:00','YYYY-MM-DD HH24:MI:SS') AND
*!* to_date('20080930 23:59:59','YYYY-MM-DD HH24:MI:SS')
lcgroup = []
lcFiltruOriginal = []
lcOrder = [A1.DATAACT,A1.SERIE_ACT,A1.NRACT]
lcFiltru = [a1.an=?gnAn and a1.luna=?gnLuna]
llModParam = .T.
llAfiseaza = .F.
gencursor('poNirBon','crsAct', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poNirBon.ca_baza1.afisare()
ENDIF && llUsedAct
****************************
*!* 11.06.2015
*!* MARIUS.MUTU
*!* ID_SET = 268: bon consum pe lucrari in curs de executie cu import din fisier (pentru import consum vopsea 301 si creare si consum mix vopsea 345)
*!* nu am nevoie de iesirea de mix 345 pentru ca se dubleaza iesirea de pe bon. Iese deja 301
*!* 04.02.2009
&& SELECTEZ DIN RUL NIR-URILE GRUPATE DUPA COD, NNIR, SECTIE, NRORD, DATAACT
lcSqlRulListare = [select cod, nnir, sectie, nrord, dataact, ] + ;
[SUM(case id_set when 234 then Round((PRET+TVA)*CANT, ?gnPC)- Round(Round((PRET+TVA)*CANT, ?gnPC)*(proc_tva-1)/proc_tva, ?gnPC) ] + ;
[ else ROUND(pret*] + Iif(lnTip = 1, [cant], [cante]) + [,?gnPc) end) as valoare,] + ;
[SUM(case id_set when 234 then Round(Round((PRET+TVA)*CANT, ?gnPC)*(proc_tva-1)/proc_tva, ?gnPC) ] + ;
[ else Round(ROUND(pret*] + Iif(lnTip = 1, [cant], [cante]) + [,?gnPc)*(proc_tva-1), ?gnPC) end) as valtva,] + ;
[SUM(case id_set when 234 then Round((PRET+TVA)*CANT, ?gnPC) ] + ;
[ else ROUND(pret*] + Iif(lnTip = 1, [cant], [cante]) + [,?gnPc) + Round(Round(] + Iif(lnTip = 1, [cant], [cante]) + [*pret, ?gnPC)*(PROC_TVA-1), ?gnPC) end) as valctva,] + ;
[SUM(case when nr_pag in (6,7) and proc_tvav <> 0 then + Round(] + Iif(lnTip = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) - ] + ;
[ Round(Round(] + Iif(lnTip = 1, [cant], [cante]) + [*(pretv+tvav), ?gnPC)*(PROC_TVAV-1)/PROC_TVAV, ?gnPC) else ] + ;
[ Round(] + Iif(lnTip = 1, [cant], [cante]) + [*pretv, ?gnPC) end) as valoarev, ] + ;
[SUM(case when nr_pag in (6,7) and proc_tvav <> 0 then Round(] + Iif(lnTip = 1, [cant], [cante]) + [*(pretv + tvav), ?gnPC) else ] + ;
[ Round(] + Iif(lnTip = 1, [cant], [cante]) + [*pretv, ?gnPC) + Round(Round(] + Iif(lnTip = 1, [cant], [cante]) + [*pretv, ?gnPC)*(PROC_TVAV-1), ?gnPC) end) as valoarevtva ] + ;
[from vrul where ] + Iif(!EMPTY(lcFiltruData),;
[(]+lcFiltruData+[ and ],;
[an = ?gnAn and luna = ?gnLuna and ]) +;
IIF(tlProductie, [(id_set=26000 or id_set=26001) and ],[]) + ;
[id_tip_rulaj = 0 ] + gcCondSucursala + [ and ] + ;
IIF(m.lnTip = 1, [cant], [cante]) + [ <> 0 ] + ;
IIF(m.lnTip = 2, [ and ((id_set = 268 and cont <> '345') or id_set <> 268)], []) + ;
[group by cod, nnir, dataact, nrord, sectie ORDER BY DATAACT, NNIR]
* ID_SET = 268: bon consum pe lucrari in curs de executie cu import din fisier (pentru import consum vopsea 301 si creare si consum mix vopsea 345)
* nu am nevoie de iesirea de mix 345 pentru ca se dubleaza iesirea de pe bon. Iese deja 301
lcCursor = [crsRulListare]
lnSucces = goExecutor.oexecute(lcSqlRulListare,lcCursor)
If lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,'Eroare')
Return
Endif
*!* 04.02.2009 ^
Use In (SELECT('crsraport'))
If m.lnTip = 2 && Bonuri
lcRaport=[centralizator_bon.frx]
Select nnir,dataact,nrord,sectie,Sum(valoare) As valoare,Sum(valoarev) As valoarev ;
FROM crsrullistare Group By nnir,dataact,nrord,sectie ;
ORDER By dataact,nnir Into Cursor crsraport
Else
lcRaport=[centralizator_nir.frx]
Use In (SELECT('crstoate'))
If Type('crsact.part') <> 'U'
Select a.Part As nume,a.serie_act,a.nract,a.dataact,a.baza As valftvacont, a.suma As valctvacont, b.nnir,b.valoare As valftva,b.valtva As valtva,b.valctva As valctva, ;
a.disc_baza as valdiscb, a.disc_tva as valdisct, b.valoarev - b.valoare as valadaos ;
FROM crsact a Left Join crsrullistare b On a.cod=b.cod ;
ORDER By a.dataact,b.nnir Into Cursor crstoate
Else
Select '' As nume,a.serie_act,a.nract,a.dataact,a.baza As valftvacont, a.suma As valctvacont, b.nnir,b.valoare As valftva,b.valtva,b.valctva ;
FROM crsact a Left Join crsrullistare b On a.cod=b.cod ;
ORDER By a.dataact,b.nnir Into Cursor crstoate
Endif
Select nume,nract,serie_act,dataact,nnir,valftvacont, valctvacont, Sum(valftva) As valftva,Sum(valtva) As valtva,Sum(valctva) As valctva ,SUM(valdiscb) as valdiscb,SUM(valdisct) as valdisct,SUM(valadaos) as valadaos;
FROM crstoate Group By nume,serie_act,nract,dataact,nnir,valftvacont, valctvacont ;
ORDER By dataact,nnir Into Cursor crsraport
Use In (SELECT('crstoate'))
Endif
If Reccount('crsraport')>0
pcDataora=get_ora(2)
Select crsraport
Report Form (lcRaport) To Printer Prompt Preview
Else
AMESSAGEBOX("Nu exista inregistrari pentru listare!",0+48,"Atentie")
Endif
Use In (SELECT('crsraport'))
IF m.llUsedAct
USE IN (SELECT('crsAct'))
ENDIF
ENDPROC && listare_centralizator_nir_bon
***----------------------------------------------------------------------------------------------------------------------------------
Procedure list_raport_gestiuni
Lparameters tnNr_pag
LOCAL lcFile
Private pdData1,pdData2,pnId_gestiune, pnNr_pag, pnSoldPrec, pcNumeGest, pcDataOra,pnId_gestiunec,pcNumeGestc,pnGrupezGestc,pcGrupare,pcTitlu,pcSubtitlu,pcSirIdSubgrupArt,pcSirNumeSubgrupArt,pcSirIdArticole,pcSirNumeArticole
Store 0 To pnId_gestiune, pnNr_pag, pnSoldPrec,pnId_gestiunec,pnGrupezGestc
Store '' To pcGrupare,pcSirIdSubgrupArt,pcSirNumeSubgrupArt,pcSirIdArticole,pcSirNumeArticole,pcSubtitlu
lcFile = ''
*!* locauta = caut_gestiune(tnNr_pag, gnIdUtil,.t.)
*!* pnId_gestiune = locauta.id_gestiune
*!* pcNumeGest = locauta.nume_gestiune
*!* IF gnbuton = 2
*!* RETURN
*!* ENDIF
pdData1 = Date(gnAn, gnLuna, 1)
pdData2 = Gomonth(pdData1,1) - 1
*!* loid = Createobject("frm_interval_date")
*!* loid.Show(1)
*!* IF gnbuton = 2
*!* RETURN
*!* ENDIF
pnNr_pag = tnNr_pag
loid = Createobject("frm_raport_gestiuni")
loid.Show(1)
If gnbuton = 2
Return
Endif
*!* pnNr_pag = locauta.nr_pag
If Empty(pdData1) Or Empty(pdData2) Or Empty(pnNr_pag)
Return
Endif
If Empty(Nvl(pcSirIdSubgrupArt,[]))
pcSirIdSubgrupArt = [Null]
Else
pcSubtitlu = [Subgrupe : ] + pcSirNumeSubgrupArt + CHR(13) + CHR(10)
Endif
If Empty(Nvl(pcSirIdArticole,[]))
pcSirIdArticole = [Null]
Else
pcSubtitlu = pcSubtitlu + [Articole : ] + pcSirNumeArticole
Endif
If pnId_gestiunec = 0
pnId_gestiunec = Null
Endif
If pnGrupezGestc = 0
pcGrupare = [EOF()]
Else
pcGrupare = [nume_gestiunec]
Endif
If pnId_gestiune = 0
pnId_gestiune = Null
Endif
pcTitlu = [RAPORT GESTIUNE]
lcSql = [{call pack_gest_rapoarte.raport_gestiune(?pnId_gestiune, ?pdData1, ?pdData2, ?pnNr_pag, ?gnIdSucursala,] + ;
[?pnGrupezGestc,?pnId_gestiunec,] + pcSirIdArticole + [,] + pcSirIdSubgrupArt + [,?@pnSoldPrec)}]
lcCursor = 'cRulaje'
If goExecutor.oExecuta(m.lcSql,m.lcCursor)
Select (lcCursor)
goExport.export2frx(lcCursor,[rap_gestiune], , , , , , .T.)
IF AMESSAGEBOX('Doriti sa salvati raportul in format xls?',4+32,_screen.Caption) = 6
lcFile = PUTFILE('Raport gestiune','raport_gestiune','xls')
IF !EMPTY(m.lcFile)
SELECT *, CAST(0 as N(18,4)) as sold FROM cRulaje ;
WHERE .F. ;
INTO CURSOR cRaportXls READWRITE
INSERT INTO cRaportXls (fdoc, sold) VALUES ('SOLD INITIAL', m.pnSoldPrec)
SELECT cRaportXLS
APPEND from DBF('cRulaje')
SELECT cRaportXls
GO TOP
lnSold = sold
SCAN
lnSold = NVL(m.lnSold, 0) + NVL(deb, 0) - NVL(cred, 0)
REPLACE sold WITH m.lnSold
ENDSCAN
SELECT cRaportXls
COPY TO (m.lcFile) TYPE XL5
USE IN (SELECT('cRaportXls'))
open_default_app(m.lcFile)
ENDIF
ENDIF
Use In (SELECT(m.lcCursor))
Endif
*!* modificare 18.02.2008
*!* If Reccount('cRulaje')>0
*!* pcDataOra = get_ora(2)
*!* Select cRulaje
*!* Report Form rap_gestiune To Printer Prompt Preview
*!* Else
*!* amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
*!* Endif
*!* modificare 18.02.2008 ^
Endproc && list_raport_gestiuni
***----------------------------------------------------------------------------------------------------------------------------------
Procedure list_raport_gestiuni_centralizator
*!* modificare v 2.0.81
Lparameters tnNr_pag
Private pdDataI,pdDataF,pnNr_pag,pnSoldPrec
Store {} To pdDataI,pdDataF
Store 0 To pnSoldPrec
ofrmperioada = Createobject('frm_perioada_zzllaaaa')
ofrmperioada.Show(1)
If gnbuton = 1
pnNr_pag = tnNr_pag
If !Empty(pdDataI) And !Empty(pdDataF) And !Empty(pnNr_pag)
lcSel = [{call pack_gest_rapoarte.raport_gestiune_centralizator(?pdDataI, ?pdDataF, ?pnNr_pag, ?gnIdSucursala,?@pnSoldPrec)}]
lcCursor = 'cRulaje'
lnSucces = goExecutor.oexecute(lcSel, lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Else
goExport.export2frx([cRulaje],[rap_gestiune_toate], , , , , , .T.)
Use In cRulaje
Endif
Endif
Endif
*!* modificare v 2.0.81 ^
Endproc && list_raport_gestiuni_centralizator
***----------------------------------------------------------------------------------------------------------------------------------
Procedure list_schimbPret
Parameters tnNir, tnTip
*!* modificare ROAPRODUCTIE v 2.0.2
*!* Private pcDataOra
*!* pcDataOra = get_ora(2)
IF TYPE('schimbPret.partener_rezervare') = 'U'
Select *, '' as partener_rezervare ;
From schimbPret ;
Where schimb = 1 ;
Into Cursor cList
ELSE
Select * From schimbPret Where schimb = 1 Into Cursor cList
ENDIF
*!* Select cList
*!* Keyboard "{ctrl+f10}"
*!* Report Form rap_schimbPret To Printer Prompt Preview
goExport.export2frx([clist],[rap_schimbPret], , , , , , .T.)
*!* modificare ROAPRODUCTIE v 2.0.2 ^
If Used("cList")
Use In cList
Endif
Use In (Select("schimbPret"))
Endproc && list_schimbPret
***----------------------------------------------------------------------------------------------------------------------------------
***----------------------------------------------------------------------------------------------------------------------------------
Procedure raport_vanzari
Private poVanzari, poDetalii
Local llAfiseaza
Store .F. To llAfiseaza
Store '' To poVanzari, poDetalii
If Used('crsVanzari')
Use In crsVanzari
Endif
If Used('crsDetalii')
Use In crsDetalii
Endif
* pcschema1=['id_pol n(10), nume_lista_preturi c(100), datai d, datas d, id_valuta n(10), nume_val c(10), id_nota N(5), notaContab C(30), utilizator c(100),dataora t']
pcschema1=['']
pcselect1=['select * from vvanzari_tot where 2=2']
pcorder1=[dataora]
pcfiltru1 = [1 = 2]
llAfiseaza = .F.
gencursor('poVanzari','crsVanzari',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
poVanzari.ca_baza1.afisare()
pcschema1=['']
pcselect1=['select * from vvanzari_detalii_tot where 2=2']
pcorder1=[nume_lista_preturi, denumire]
pcfiltru1 = [1 = 2]
llAfiseaza = .F.
gencursor('poDetalii','crsDetalii',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza)
poDetalii.ca_baza1.afisare()
lov = Createobject("frm_vanzari")
lov.Show(1)
Release lov, poVanzari, poDetalii
Endproc && raport_vanzari
***----------------------------------------------------------------------------------------------------------------------------------
***-----------------------------------------------------------------------------------------------------------
Procedure listare_imputare
Parameters tnNir
Private pnOperatie
pnOperatie = 3
Private pcTitlu, pcperioada, pcDataOra, pdDataI, pdDataF, pnId_responsabil && pt. raport
Store "" To pcTitlu, pcperioada
pcDataOra = get_ora(2)
Store {//} To pdDataI, pdDataF
pnId_responsabil = 0
pcTitlu = "IMPUTARE"
***-------------------------------
lcSel = [{call pack_gest_rapoarte.fisa_echip_uzat_pred_imputat(?gnAn, ?gnLuna, ?tnNir, ?pdDataI, ?pdDataF, ?pnId_responsabil, ?pnOperatie, ?gnIdSucursala)}]
lcCursor = 'cFisa'
lnSucces = goExecutor.oexecute(lcSel,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
***-------------------------------
Private pcSemnaturi
Store '' To pcSemnaturi
Local lcRaport
lcRaport = "RAP_ECHIP_IMPUTAT"
param_listari(lcRaport,,@pcSemnaturi, .T.)
*!* modificare ROAPRODUCTIE v 2.0.2
IF TYPE('goExport') = 'O'
goExport.export2frx([cFisa],lcRaport, , , , , , .T.)
ELSE
Select cFisa
Report Form &lcRaport To Printer Prompt Preview
ENDIF
*!* modificare ROAPRODUCTIE v 2.0.2 ^
If Used("cFisa")
Use In cFisa
Endif
Endproc && listare_imputare
***-----------------------------------------------------------------------------------------------------------
***-----------------------------------------------------------------------------------------------------------
Procedure listare_casare
Parameters tnNir, tnIdSet
* tnIdSet default 70
SET STEP ON
Private pnOperatie
pnOperatie = 1
IF !EMPTY(m.tnIdSet) AND m.tnIdset = 274
pnOperatie = 4 && iesire din gestiune ob. inv. in folosinta
ENDIF
*!* 26.01.2011
PRIVATE pnNnir
pnNnir = tnNir
*!* 26.01.2011 ^
Private pcTitlu, pcperioada, pcDataOra, pdDataI, pdDataF, pnId_responsabil && pt. raport
Store "" To pcTitlu, pcperioada
pcDataOra = get_ora(2)
Store {//} To pdDataI, pdDataF
pnId_responsabil = 0
pcTitlu = "CASARE (din folosinta)"
***-------------------------------
lcSel = [{call pack_gest_rapoarte.fisa_echip_uzat_pred_imputat(?gnAn, ?gnLuna, ?tnNir, ?pdDataI, ?pdDataF, ?pnId_responsabil, ?pnOperatie, ?gnIdSucursala)}]
lcCursor = 'cFisa'
lnSucces = goExecutor.oexecute(lcSel,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return
Endif
***-------------------------------
Private pcSemnaturi
Store '' To pcSemnaturi
Local lcRaport
lcRaport = 'rap_echip_uzat'
param_listari(lcRaport,,@pcSemnaturi, .T.)
*!* modificare ROAPRODUCTIE v 2.0.2
IF TYPE('goExport') = 'O'
goExport.export2frx([cFisa],lcRaport, , , , , , .T.)
ELSE
Select cFisa
Report Form &lcRaport To Printer Prompt Preview
ENDIF
*!* modificare ROAPRODUCTIE v 2.0.2 ^
If Used("cFisa")
Use In cFisa
Endif
Endproc && listare_casare
***------------------------------------- inceput list_centr_valoric_subgr ---------------------------------
Procedure list_centr_valoric_subgr
Lparameters tnTip
Local lnTip, lcRaport
If Type("tnTip")="N"
lnTip=tnTip
Else
lnTip = 1
Endif
Local lcSql,lnSucces,lcCursor
Private pcperioada,pdDataI,pdDataF,pcTitlu,pnIdGrupa,pcNumeGrupa,pcListaIdGestiuni,pcSeparator
Store '' To pcNumeGrupa,pcListaIdGestiuni
Store {} To pdDataI,pdDataF
lcCursor = [crscentrsubgr]
pcSeparator = [,]
ofrmperioada=Createobject('frm_perioada_zzllaaaa')
ofrmperioada.Show(1)
If gnbuton=1
pcperioada = [Perioada ] + Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)
Else
Return
Endif
lcXMLGestiune = caut_gestiune_xml(2)
If !Empty(lcXMLGestiune) And gnbuton = 1
Xmltocursor(lcXMLGestiune, "crsGestTemp")
If Reccount('crsGestTemp') = 0
amessagebox('Nu ati selectat nici o gestiune!',0+48,'Inventar')
Return
Endif
pcListaIdGestiuni = cursor2lista("crsGestTemp", "id_gestiune", pcSeparator)
Use In crsGestTemp
Else
Return
Endif
locauta = caut_grupa_gestiune()
If !Empty(locauta.id_grupe) And gnbuton = 1
pnIdGrupa = locauta.id_grupe
pcNumeGrupa = locauta.nume_grupa
Else
Return
Endif
pcTitlu = [CENTRALIZATOR VALORI PE SUBGRUPE DE ARTICOLE]
If Used(lcCursor)
Use In (lcCursor)
Endif
If lnTip = 1
lcSql = [{call pack_gest_rapoarte.centr_valoric_subgr (?pcNumeGrupa,?pnIdGrupa,] + ;
[?pcListaIdGestiuni,?pcSeparator,?pdDataI,?pdDataF,?gnIdSucursala)}]
lcRaport = [rap_gest_val_subgrupe]
Else
lcSql = [{call pack_gest_rapoarte.centr_valoric_subgr_gestc (?pcNumeGrupa,?pnIdGrupa,] + ;
[?pcListaIdGestiuni,?pcSeparator,?pdDataI,?pdDataF,?gnIdSucursala)}]
lcRaport = [rap_gest_val_subgrupe_gestc]
Endif
lnSucces = goExecutor.oexecute(lcSql,lcCursor)
If lnSucces < 0
amessagebox(goExecutor.cEroare,16,"Eroare")
Else
goExport.export2frx(lcCursor,lcRaport, , , , , , .T. )
Endif
If Used(lcCursor)
Use In (lcCursor)
Endif
Release lcSql,lnSucces,pcperioada,pdDataI,pdDataF,pcTitlu,pnIdGrupa,pcNumeGrupa,pcListaIdGestiuni,pcSeparator
Endproc && list_centr_valoric_subgr
**************************************************************************************************************
Procedure list_centr_intrari
Lparameters tnTipGest
Private pnIdGestiune,pcNumeGestiune,pcDataOra,pnNrRapoarte
Local loCauta,loCauta2
loCauta = caut_gestiune(tnTipGest,gnIdUtil)
If gnButon = 1
pnIdGestiune = loCauta.id_gestiune
pcNumeGestiune = loCauta.nume_gestiune
lcSql = [select distinct a.id_subgrupa, b.subgrupa from ] + gcS + [.nom_articole a ] + ;
[left join ] + gcS + [.gest_art_sbgr b on a.id_subgrupa = b.id_subgrupa ] + ;
[where a.id_articol in (select distinct id_articol from ] + gcS + [.rul where sters = 0 ] + ;
[and an = ?gnAn and luna = ?gnLuna ] + gcCondSucursala + [ and cant <> 0 ] + ;
[and id_tip_rulaj = 0 and id_gestiune = ?pnIdGestiune) order by subgrupa]
lnSucces = goExecutor.oExecute(lcSql,[crssubgrupe])
If lnSucces < 0
amessagebox(goExecutor.cEroare,64,"Eroare")
Else
lcSql = [{call pack_gest_rapoarte.centr_intrari(?pnIdGestiune,?gnIdSucursala,?gnLuna,?gnAn)}]
lnSucces = goExecutor.oExecute(lcSql,[crsraport])
If lnSucces < 0
amessagebox(goExecutor.cEroare,64,"Eroare")
Else
If Reccount('crsraport') > 0
pcDataOra = get_ora(2)
Select subgrupa From crssubgrupe Into Array laNumeColoane
If Alen(laNumeColoane) >= 10
pnNrRapoarte = 2
Local ox As ReportListener
ox = Createobject('ReportListener')
ox.DynamicLineHeight = .F.
ox.ListenerType = 1
goExport.export2frx([crsraport],[rap_centralizator_intrari],.F.,2,[],[NOPAGEEJECT],ox)
goExport.export2frx([crsraport],[rap_centralizator_intrari2],.F.,2,[],[],ox)
Release ox
Else
pnNrRapoarte = 1
goExport.export2frx([crsraport],[rap_centralizator_intrari], , , , , , .T.)
Endif
Release laNumeColoane
Else
amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
Endif
Endif
If Used('crsraport')
Use In crsraport
Endif
Endif
If Used('crssubgrupe')
Use In crssubgrupe
Endif
Endif
Release pnIdGestiune,pcNumeGestiune,pcDataOra,pnNrRapoarte,loCauta,loCauta2
Endproc && list_centr_intrari
**************************************************************************************************************
Procedure list_centr_iesiri
Lparameters tnTipGest,tnTipCentralizator
*!* tnTipCentralizator
*!* = 1 - transferuri
*!* = 2 - facturi clienti
*!* = 3 - protocol si sponsorizari
Private pnIdGestiune,pcNumeGestiune,pcDataOra,pnNrRapoarte,pnTipCentralizator,pcTitlu,pnIdGrupaGest,pcNumeGrupaGest,pnIdGestiune,pcNumeGestiune,pdDataI,pdDataF
Store {} To pdDataI,pdDataF
Local lofrmperioada,loCauta,lcSql,lnSucces
lofrmperioada = Createobject('frm_perioada_zzllaaaa')
lofrmperioada.Show(1)
If !Empty(Nvl(pdDataI,{})) And !Empty(Nvl(pdDataF,{}))
pnTipCentralizator = tnTipCentralizator
pnIdGrupaGest = Null
pcNumeGrupaGest = []
Local loCauta,loCauta2,lcSql
loCauta = caut_gestiune(tnTipGest,gnIdUtil)
If gnButon = 1
pnIdGestiune = loCauta.id_gestiune
pcNumeGestiune = loCauta.nume_gestiune
Do Case
Case pnTipCentralizator = 1
loCauta = caut_grupa_gestiune()
If gnButon = 1
pnIdGrupaGest = loCauta.id_grupe
pcNumeGrupaGest = loCauta.nume_grupa
Endif
pcTitlu = [CENTRALIZATOR IESIRI (TRANSFERURI CATRE ] + Iif(!Empty(pcNumeGrupaGest),[GRUPA ] + Alltrim(pcNumeGrupaGest),[GESTIUNI LA P.V.]) + [) ] + ;
[DIN GESTIUNEA ] + Alltrim(pcNumeGestiune) + [ ( ] + Alltrim(Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)) + [ )]
Case pnTipCentralizator = 2
pcTitlu = [CENTRALIZATOR IESIRI (FACTURI) DIN GESTIUNEA ] + Alltrim(pcNumeGestiune) + [ ( ] + Alltrim(Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)) + [ )]
Case pnTipCentralizator = 3
pcTitlu = [CENTRALIZATOR IESIRI (PROTOCOL, SPONSORIZARI) DIN GESTIUNEA ] + Alltrim(pcNumeGestiune) + [ ( ] + Alltrim(Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF)) + [ )]
Endcase
If aMessagebox("Doriti ca raportul sa cuprinda si statistica privind stocul ( initial, total intrari , total iesiri, final ) ?",4+32,"Statistici stoc")=6
_Screen.MousePointer = 11
lcSql = [{call pack_gest_rapoarte.centralizator_stoc(?pnIdGestiune,?pdDataI,?pdDataF,?gnIdSucursala)}]
lnSucces = goExecutor.oExecute(lcSql,[crsStatisticiStoc])
_Screen.MousePointer = 0
If lnSucces < 0
amessagebox(goExecutor.cEroare,64,"Eroare")
Endif
Endif
_Screen.MousePointer = 11
lcSql = [{call pack_gest_rapoarte.cursor_subgrupe(?pnIdGestiune,?gnIdSucursala,?pdDataI,?pdDataF,?pnTipCentralizator,?pnIdGrupaGest)}]
lnSucces = goExecutor.oExecute(lcSql,[crssubgrupe])
_Screen.MousePointer = 0
If lnSucces < 0
amessagebox(goExecutor.cEroare,64,"Eroare")
Else
_Screen.MousePointer = 11
lcSql = [{call pack_gest_rapoarte.centr_iesiri(?pnIdGestiune,?gnIdSucursala,?pdDataI,?pdDataF,?pnTipCentralizator,?pnIdGrupaGest)}]
lnSucces = goExecutor.oExecute(lcSql,[crsraport])
_Screen.MousePointer = 0
If lnSucces < 0
amessagebox(goExecutor.cEroare,64,"Eroare")
Else
If Reccount('crsraport') > 0
pcDataOra = get_ora(2)
Select subgrupa From crssubgrupe Into Array laNumeColoane
If Alen(laNumeColoane) >= 11
pnNrRapoarte = 2
Local ox As ReportListener
ox = Createobject('ReportListener')
ox.DynamicLineHeight = .F.
ox.ListenerType = 1
goExport.export2frx([crsraport],[rap_centralizator_iesiri],.F.,2,[],[NOPAGEEJECT],ox)
goExport.export2frx([crsraport],[rap_centralizator_iesiri2],.F.,2,[],[],ox)
Release ox
Else
pnNrRapoarte = 1
goExport.export2frx([crsraport],[rap_centralizator_iesiri], , , , , , .T.)
Endif
Release laNumeColoane
Else
amessagebox("Nu exista inregistrari pentru listare!",48,"Atentie")
Endif
Endif
If Used('crsraport')
Use In crsraport
Endif
Endif
If Used('crssubgrupe')
Use In crssubgrupe
EndIf
If Used('crsStatisticiStoc')
Use in crsStatisticiStoc
EndIf
Endif
Endif
Release pnIdGestiune,pcNumeGestiune,pcDataOra,pnNrRapoarte,loCauta,lcSql,pcTitlu,pnIdGrupaGest,pcNumeGrupaGest,pdDataI,pdDataF,lofrmperioada
Endproc && list_centr_iesiri
**************************************************************************************************************