Files
vfp_roaauto/COMUN/programe/oschimbare_pret.prg

1194 lines
46 KiB
Plaintext

*!* 11.01.2012
*!* marius.mutu
*!* salvare proces verbal temporar in caz ca se da renunt sau programul iese cu eroare
*!* schimba_pret - proces verbal simplu (se repeta lans(52) + se face backup doar la cursorul crsschimb final)
*!* schimba_pret_grupa_gestiuni - proces verbal grupa de gestiuni cu/fara stoc actualizat (nu se repeta lans. se face backup la actactan, schimbpretstoc, crsschimb)
*!* 12.01.2012
*!* marius.mutu
*!* schimba_pret_grupa_gestiuni - proces verbal grupa de gestiuni cu/fara stoc actualizat
*!* pretvtva_orig = pretvtva din stoc
*!* pretvtva = pretul precedent introdus in formularul precedent schimbpret_grupa
*!* se facea comparatie intre pretvtva si pretvtva_orig pentru a se recalcula pretv si tvav
*!* 12.07.2013
*!* marius.mutu
*!* arata_stoc_schimbare - am repus selectia cumulata pentru gestiuni cu stoc neactualizat
*!* 17.07.2013
*!* marius.mutu
*!* relisteaza_schimbare_pret
*!* adaugat id_set 269 (pv schimbare pret pe baza de lista preturi)
*!* schimba_pret_grupa_gestiuni
*!* adaugat TIP = 4 instiintare de schimbare de pret * ( gestiuni cu stoc neactualizat )
*!* 10.06.2015
*!* marius mutu
*!* relisteaza_schimbare_pret
*!* adaugat id_set 999 pv schimbare pret cu schimbare cota tva
*!* am grupat liniile sa nu mai apara separat iesirea si intrarea
*!* am pus listare cu plaja de numere in loc de un singur numar
*!* 26.08.2015
*!* marius.mutu
*!* listeaza_schimbare_pret
*!* corectie eroare - nu exista nract in unele cursoare
*!* #4201
*!* 04.08.2025
*!* marius.mutu
*!* schimbare pret vanzare pe baza de lista de preturi
*!* arata_stoc_schimbare = se ia contul din stoc in loc de nom_articole
PROCEDURE schimba_pret
lans(52)
*** sterg salvarea backupset-ului daca operatia se incheie cu Terminat
LOCAL loBackupXML
loBackupXML = CREATEOBJECT("BackupXML", "schimba_pret") && oproceduri_comune.prg
IF gnButon = 1
loBackupXML.DeleteBackupSet()
ENDIF
ENDPROC && schimba_pret
Procedure schimba_pret_grupa_gestiuni
Lparameters tnTip
*!* 1 - lista de preturi
*!* 2 - lista de preturi * ( gestiuni cu stoc neactualizat )
*!* 3 - instiintare de schimbare de pret
*!* 4 - instiintare de schimbare de pret * ( gestiuni cu stoc neactualizat )
Local loIm, llPoliticaPreturi
LOCAL loBackupXML, lnReturn
Private poGeneratorNumere
poGeneratorNumere = Createobject('oGeneratorNumere')
llPoliticaPreturi = inlist(m.tnTip, 1, 2)
*** REINCARCARE STARE PROCES VERBAL SCHIMBARE PRET SALVAT ANTERIOR IN FORMAT XML SI NETERMINAT (FATAL ERROR)
loBackupXML = CREATEOBJECT("BackupXML", "schimba_pret_grupa_gestiuni" + ALLTRIM(STR(tnTip))) && oproceduri_comune.prg
*** daca exista deja un backupset
IF loBackupXML.ExistsBackupSet() AND AMESSAGEBOX('Exista un proces verbal de schimbare de pret nesalvat. Doriti sa il continuati?', 4+32, _screen.Caption) = 6
lnReturn = arata_stoc_schimbare(m.tnTip,.T.)
If m.lnReturn = 2
poGeneratorNumere.dezaloca_numere()
Endif
ELSE
lnIdSet = iif(m.llPoliticaPreturi, 245, 269) && 245 = lista de preturi; 269 = instiintare schimbare pret
If lans(m.lnIdSet) = 1
if m.llPoliticaPreturi
*** Politica de preturi
Select actactan
Go Top
lnIdPol = id_pol
*!* modificare ROAGEST v 2.0.105 : am adaugat 9999999 as ordine
text to lcSql textmerge noshow
select row_number() over(order by a.nume_articol) as nrcrt,
a.id_articol,
a.nume_articol,
a.codmat,
a.pret,
a.proc_tvav,
a.pret as pretnou,
0 as schimb,
a.preturi_cu_tva,
a.id_pol,
a.id_pol_art,
a.id_venchelt,
9999999 as ordine
from vcrm_politici_pret_art a
where a.id_pol = <<m.lnIdPol>>
endtext
else
*** Instiintare schimbare pret
Select actactan
Go Top
lnIdInstiintare = id_instiintare
text to lcSql textmerge noshow
select row_number() over(order by a.denumire) as nrcrt,
id.id_articol,
a.denumire as nume_articol,
a.codmat,
id.pret_vechi as pret,
id.proc_tvav,
id.pret_nou as pretnou,
1 as schimb,
ppa.preturi_cu_tva,
ppa.id_pol,
ppa.id_pol_art,
ppa.id_venchelt,
9999999 as ordine
from instiintaripret_detalii id
join instiintaripret i on id.id_instiintare = i.id
join nom_articole a on id.id_articol = a.id_articol
join vcrm_politici_pret_art ppa on id.ID_ARTICOL = ppa.id_articol and i.id_pold = ppa.id_pol
where id.id_instiintare = <<m.lnIdInstiintare>>
endtext
endif
Use In (Select("schimbPret"))
lcCursor = [schimbpret]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
endif
loIm = Createobject('schimbpret_grupa',tnTip)
loIm.Show(1)
If gnButon = 2
poGeneratorNumere.dezaloca_numere()
Endif
ENDIF
ENDIF
Use In (Select("rul_temp"))
Use In (Select("actactan"))
Use In (Select("schimbpret"))
Release loIm
Release poGeneratorNumere
Endproc
*****************************************************************************************************************************************************
Function arata_stoc_schimbare
Lparameters tnTip, tlLoadBackup
PRIVATE pnIdGrupa
Local lnReturn, lcSirIdArticol, loFrm
LOCAL loBackupXML
Local lcCursor, lcSql, lnIdGestiune, lnIdTipDoc, lnNnir, lnSucces, loCauta, llStocActualizat, llPoliticaPreturi, llInstiintare
lcSirIdArticol = []
Use In (Select("crsschimb"))
Use In (Select("schimbpretstoc"))
Use In (Select("schimbpretstoctemp"))
llStocActualizat = INLIST(m.tnTip, 1, 3) && 1,3 stoc actualizat; 2,4 stoc neactualizat
llPoliticaPreturi = INLIST(m.tnTip, 1, 2) && 1,2 politica preturi
llInstiintare = INLIST(m.tnTip, 3, 4) && 3,4 instiintare schimbare pret
loBackupXML = CREATEOBJECT("BackupXML", "schimba_pret_grupa_gestiuni" + ALLTRIM(STR(tnTip))) && oproceduri_comune.prg
IF m.tlLoadBackup
IF loBackupXML.ExistsBackupSet()
loBackupXML.RestoreBackupSet()
*** aloc un numar nou de bon
lnIdGestiune = actactan.id_gestin
lnIdTipDoc = 2 && bon consum
poGeneratorNumere.creeaza_cursor_serii(m.lnIdTipDoc)
lnNnir = poGeneratorNumere.aloca_numar(m.lnIdTipDoc, m.lnIdGestiune)
Select actactan
Replace All nnir With lnNnir, nract WITH lnNnir
Select schimbpretstoc
Go Top
loFrm = Createobject('schimbpret_stoc_gest', tnTip)
loFrm.oBackupXML = m.loBackupXML
loFrm.Show(1)
lnReturn = gnButon
IF lnReturn = 1
loBackupXML.DeleteBackupSet()
ELSE
loBackupXML.SaveBackupSet()
ENDIF
lnReturn = gnButon
ELSE
MESSAGEBOX('Nu exista nici un proces verbal de schimbare de pret nesalvat',0+48, _screen.Caption)
lnReturn = 2
ENDIF
ELSE
*!* modificare ROAGEST v 2.0.105 : ordine
Select id_pol,id_pol_art,id_articol,pret,pretnou,preturi_cu_tva,proc_tvav,id_venchelt,ordine From schimbpret With (Buffering = .T.) Where schimb = 1 Into Cursor crsschimb
Select crsschimb
Scan
lcSirIdArticol = lcSirIdArticol + [,] + Alltrim(Str(id_articol,14,0))
Endscan
lcSirIdArticol = Substr(lcSirIdArticol,2)
loCauta = caut_grupa_gestiune()
If gnButon = 1
pnIdGrupa = loCauta.id_grupe
*!* modificare v 2.0.99
If m.llStocActualizat && stoc actualizat
TEXT TO lcSql TEXTMERGE NOSHOW
select row_number() over(order by s.nume_gestiune, s.serie, nvl(s.pretv, 0)) as nrcrt,
s.*,
NVL(s.pretv + s.tvav, 0) as pretvtva,
cast(0 as number(20, 4)) AS stoc,
s.cants + s.cant - s.cante AS stoc_original,
0 as schimb
FROM (select c.id_stoc,
a.id_articol,
?gnAn as an,
?gnLuna as luna,
nvl(c.pret, 0.0000) AS pret,
nvl(c.pretv, 0.0000) AS pretv,
a.denumire,
a.codmat,
a.um,
a.dnf,
a.um2,
a.cant_bax,
b.id_gestiune,
b.nume_gestiune,
b.cgest,
b.nr_pag,
NVL(c.tva, 0.0000) as tva,
NVL(c.tvav, 0.0000) as tvav,
NVL(c.cants, 0.0000) AS cants,
NVL(c.cant, 0.0000) AS cant,
NVL(c.cante, 0.0000) AS cante,
c.cont,
c.acont,
nvl(c.pretd, 0.0000) as pretd,
NVL(c.dataora, SYSDATE) AS dataora,
c.datain,
c.dataout,
nvl(c.proc_tvav, 0.0000) AS proc_tvav,
c.serie,
c.id_rul_aux,
c.id_valuta,
c.lot,
c.adata_expirare,
?gnIdSucursala as id_sucursala,
c.id_lucrare_rez,
c.id_part_rez
FROM (SELECT id_articol,
denumire,
codmat,
um,
dnf,
um2,
cant_bax,
cont
FROM nom_articole
WHERE id_articol in (<<m.lcSirIdArticol>>)) a
JOIN (SELECT id_gestiune, nume_gestiune, cgest, nr_pag, acont
FROM nom_gestiuni
WHERE sters = 0
AND inactiv = 0
AND id_gestiune in
(SELECT A1.ID_GESTIUNE
FROM GEST_CORESP_GRUPE_GESTIUNI A1
WHERE A1.STERS = 0
AND A1.ID_GRUPE IN
(SELECT ID_GRUPE
FROM GEST_NOM_GRUPE
WHERE STERS = 0
START WITH ID_GRUPE = ?pnIdGrupa
CONNECT BY PRIOR ID_GRUPE = PARENT_ID))) b
ON 1 = 1
LEFT JOIN (SELECT id_articol,
id_gestiune,
id_stoc,
cont,
acont,
pret,
pretv,
tva,
tvav,
cants,
cant,
cante,
pretd,
dataora,
datain,
dataout,
proc_tvav,
serie,
id_rul_aux,
id_valuta,
lot,
adata_expirare,
id_lucrare_rez,
id_part_rez
FROM stoc
WHERE an = ?gnAn
AND luna = ?gnLuna
AND cants + cant - cante <> 0
and id_gestiune in
(SELECT A1.ID_GESTIUNE
FROM GEST_CORESP_GRUPE_GESTIUNI A1
WHERE A1.STERS = 0
AND A1.ID_GRUPE IN
(SELECT ID_GRUPE
FROM GEST_NOM_GRUPE
WHERE STERS = 0
START WITH ID_GRUPE = ?pnIdGrupa
CONNECT BY PRIOR ID_GRUPE = PARENT_ID))
<<m.gcCondSucursala>>) c
ON a.id_articol = c.id_articol
AND b.id_gestiune = c.id_gestiune
where a.id_articol in (<<m.lcSirIdArticol>>)) s
ENDTEXT
ELSE && stoc neactualizat
lcSql=[select row_number() over(order by s.nume_gestiune,s.serie,nvl(s.pretv,0)) as nrcrt,] +;
[ s.*, NVL(s.pretv + s.tvav,0) as pretvtva, cast(0 as number(20,4)) AS stoc, s.cants + s.cant - s.cante AS stoc_original, 0 as schimb] +;
[ FROM (select c.id_stoc, a.id_articol, ?gnAn as an, ?gnLuna as luna, nvl(c.pret,0) AS pret, nvl(c.pretv,0) AS pretv,] +;
[ a.denumire, a.codmat, a.um, a.dnf, a.um2, a.cant_bax, b.id_gestiune, b.nume_gestiune, b.cgest, b.nr_pag, NVL(c.tva,0) as tva, NVL(c.tvav,0) as tvav,] +;
[ NVL(c.cants, 0) AS cants, NVL(c.cant, 0) AS cant, NVL(c.cante, 0) AS cante, a.cont, nvl(c.pretd,0) as pretd,] +;
[ NVL(c.dataora, SYSDATE) AS dataora, b.acont, c.datain, c.dataout, nvl(c.proc_tvav,0) AS proc_tvav, c.serie,] +;
[ c.id_rul_aux, c.id_valuta, c.lot, c.adata_expirare, ?gnIdSucursala as id_sucursala, c.id_lucrare_rez, c.id_part_rez] +;
[ FROM (SELECT id_articol, denumire, codmat, um, dnf, um2, cant_bax, cont FROM ] + gcS + [.nom_articole WHERE id_articol in (] + lcSirIdArticol + [)) a] +;
[ JOIN (SELECT id_gestiune, nume_gestiune, cgest, nr_pag, acont FROM ] + gcS + [.nom_gestiuni WHERE sters = 0 AND inactiv = 0 AND id_gestiune in (SELECT A1.ID_GESTIUNE ] + ;
[FROM ] +gcS + [.GEST_CORESP_GRUPE_GESTIUNI A1 WHERE A1.STERS = 0 AND A1.ID_GRUPE IN (SELECT ID_GRUPE FROM ] + gcS + [.GEST_NOM_GRUPE WHERE STERS = 0 ] + ;
[START WITH ID_GRUPE = ] + Alltrim(Str(pnIdGrupa,14,0)) + [ CONNECT BY PRIOR ID_GRUPE = PARENT_ID))) b ON 1 = 1] +;
[ LEFT JOIN (select id_stoc,id_articol,id_gestiune,pret,pretv,tva,tvav,cants,cant,cante,pretd,dataora,datain,dataout,proc_tvav,] + ;
[serie,id_rul_aux,id_valuta,lot,adata_expirare,id_lucrare_rez,id_part_rez from (SELECT id_stoc,id_articol,id_gestiune,pretv,tvav,] + ;
[sum(cants) over(partition by id_gestiune, id_articol) as cants,sum(cant) over(partition by id_gestiune, id_articol) as cant,] + ;
[sum(cante) over(partition by id_gestiune, id_articol) as cante,row_number() over(partition by id_gestiune, id_articol order by pretv desc) as ales,] + ;
[pret,tva,pretd,dataora,datain,dataout,proc_tvav,serie,id_rul_aux,id_valuta,lot,adata_expirare,id_lucrare_rez,id_part_rez from ] + gcS + [.stoc ] + ;
[where an =] + Alltrim(Str(gnAn)) + [ AND luna =] + Alltrim(Str(gnLuna)) + [ AND cants + cant - cante > 0] + gcCondSucursala + [ and id_gestiune in (SELECT A1.ID_GESTIUNE ] + ;
[FROM ] +gcS + [.GEST_CORESP_GRUPE_GESTIUNI A1 WHERE A1.STERS = 0 AND A1.ID_GRUPE IN (SELECT ID_GRUPE FROM ] + gcS + [.GEST_NOM_GRUPE WHERE STERS = 0 ] + ;
[START WITH ID_GRUPE = ] + Alltrim(Str(pnIdGrupa,14,0)) + [ CONNECT BY PRIOR ID_GRUPE = PARENT_ID))) where ales = 1) c] +;
[ ON a.id_articol =c.id_articol AND b.id_gestiune =c.id_gestiune where a.id_articol in (] + lcSirIdArticol + [)) s]
ENDIF
*!* modificare ROAGEST v 2.0.105 ^
lcCursor = [schimbpretstoctemp]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
lnReturn = 2
Else
*!* modificare ROAGEST v 2.0.105 : am modificat ordinea si am adaugat pretvtva_orig
*!* Select a.*,Iif(b.preturi_cu_tva=0,b.pretnou+Round(b.pretnou*(b.proc_tvav-1),gnPc),b.pretnou) As pretvtvanou,b.proc_tvav As proc_tva From schimbpretstoctemp a Left Join crsschimb b On a.id_articol = b.id_articol ;
*!* WHERE a.pretvtva<>Iif(b.preturi_cu_tva=0,b.pretnou+Round(b.pretnou*(b.proc_tvav-1),gnPc),b.pretnou) ;
*!* Order By a.nrcrt ;
*!* Into Cursor schimbpretstoc Readwrite
*!* modificare v 2.0.111
If !m.llStocActualizat
Select a.*,b.ordine,Iif(b.preturi_cu_tva=0,b.pretnou+Round(b.pretnou*(b.proc_tvav-1),gnPPretV),b.pretnou) As pretvtvanou,b.proc_tvav As proc_tva,;
a.pretvtva As pretvtva_orig, ;
Iif(b.preturi_cu_tva=0,b.pret+Round(b.pret*(b.proc_tvav-1),gnPPretV),b.pret) As pretvtva_prec From schimbpretstoctemp a ;
Left Join crsschimb b On a.id_articol = b.id_articol ;
Order By b.ordine,a.nrcrt ;
Into Cursor schimbpretstoc Readwrite
*** completez pretvtva precedent cu cel completat in formularul precedent
*!* 12.01.2012
*!* pretvtva = pretul de vanzare precedent se completeaza cu pretul precedent introdus in formularul schimbpret_grupa (crsschimb.pret)
UPDATE schimbpretstoc SET pretvtva = pretvtva_prec
*!* 12.01.2012 ^
ELSE && stoc actualizat
*!* modificare v 2.0.111 ^
Select a.*,b.ordine,Iif(b.preturi_cu_tva=0,b.pretnou+Round(b.pretnou*(b.proc_tvav-1),gnPPretV),b.pretnou) As pretvtvanou,b.proc_tvav As proc_tva,;
a.pretvtva As pretvtva_orig From schimbpretstoctemp a ;
Left Join crsschimb b On a.id_articol = b.id_articol ;
WHERE a.pretvtva<>Iif(b.preturi_cu_tva=0,b.pretnou+Round(b.pretnou*(b.proc_tvav-1),gnPPretV),b.pretnou) ;
Order By b.ordine,a.nrcrt ;
Into Cursor schimbpretstoc Readwrite
Select schimbpretstoc
Replace nrcrt With Recno() All
if m.llInstiintare && instiintare schimbare pret : stoc = stoc_original
delete from schimbpretstoc where stoc_original = 0
update schimbpretstoc set stoc = stoc_original
endif
*!* modificare v 2.0.111
Endif
*!* modificare v 2.0.111 ^
*!* modificare ROAGEST v 2.0.105 ^
*!* modificare v 2.0.99 ^
loBackupXML.SaveBackupSet("crsschimb")
loBackupXML.SaveBackupSet("schimbpretstoc")
loBackupXML.SaveBackupSet("actactan")
Select schimbpretstoc
Go Top
loFrm = Createobject('schimbpret_stoc_gest', tnTip)
loFrm.oBackupXML = m.loBackupXML
loFrm.Show(1)
lnReturn = gnButon
IF lnReturn = 1
loBackupXML.DeleteBackupSet()
ELSE
loBackupXML.SaveBackupSet()
ENDIF
Endif
Else
lnReturn = 2
ENDIF
ENDIF && m.tlLoadBackup
Use In (Select("crsschimb"))
Use In (Select("schimbpretstoc"))
Use In (Select("schimbpretstoctemp"))
Release lcSirIdArticol, loFrm, pnIdGrupa
Return lnReturn
Endfunc && arata_stoc_schimbare
*****************************************************************************************************************************************************
Function creeaza_note_schimbare_pret
Local lnReturn,lcCursorSchimb,lnNrDoc,lnIdTipDoc,lnTipBuffer
*!* modificare ROAGEST v 2.0.105
lnIdTipDoc = 2 && bon de consum
lnTipBuffer = 2 && se dezaloca toate numerele in afara de primul
Select * From actactan Into Cursor crsaatemp
*!* modificare ROAGEST v 2.0.105 ^
lnReturn = 2
lcCursorSchimb = [schimbpretstoc]
If Used('rul_temp')
Use In rul_temp
Endif
lcSql = [select v.*, v.id_gestiune as id_gestin, v.nume_gestiune as gestin, v.id_gestiune as id_gestout, v.nume_gestiune as gestout,] + ;
[0 as nuInConturiX from ] + gcS + [.vrul v where 1=2]
lcCursor = [rul_temp]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
lnReturn = 2
Else
Select actactan
Locate For Alltrim(Upper(SCD))='X' And Alltrim(SCC)='378'
If Found()
Scatter Name loAct
Delete
Endif
Select actactan
Locate For Alltrim(Upper(SCD))='X' And Alltrim(SCC)='4428'
If Found()
Scatter Name loActTva
Delete
Endif
lnIdSet = loAct.id_set
Select (lcCursorSchimb)
*!* Scan For stoc <> 0 && modificare v 2.0.99 : stoc <> 0
Scan For stoc <> 0 AND pretvtva <> pretvtvanou && modificare v 2.0.111 : pretvtva <> pretvtvanou
*!* modificare ROAGEST v 2.0.105
If pretvtva_orig <> pretvtva
Replace pretv With Round(pretvtva/Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1)),gnPPretV),;
tvav With pretvtva - Round(pretvtva/Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1)),gnPPretV),;
proc_tvav With Iif(Nvl(proc_tvav,1) = 0,Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1)),Nvl(proc_tvav,1))
*!* completez proc_tvav ( daca pretvtva_original este 0, atunci proc_tvav este 0 si trebuie sa-l completez )
Endif
*!* modificare ROAGEST v 2.0.105 ^
Scatter Name poSchimb
lnPretvtva = pretvtva
lnStocOriginal=stoc_original
lnPretvtvanou = Round(pretvtvanou, gnPPretV)
lnCant = stoc
*!* modificare v 2.0.99
lnProcTvav = Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1))
*!* modificare v 2.0.99 ^
If Type(lcCursorSchimb+'.pretvnou') = 'N'
lnPretvNou = pretvnou
ELSE
lnPretvNou = Round(lnPretvtvanou / lnProcTvav, gnPPretV)
Endif
If Type(lcCursorSchimb+'.tvavnou') = 'N'
lntvav = tvavnou
Else
lntvav = lnPretvtvanou - lnPretvNou
Endif
Select rul_temp
&& iesiri
*!* modificare v 2.0.105
*!* modificare v 2.0.99
*!* If lnStocOriginal>0
*!* modificare v 2.0.99 ^
If lnStocOriginal > 0 Or poSchimb.pretvtva <> 0
*!* modificare v 2.0.105 ^
Append Blank
Gather Name poSchimb
Replace cant With 0, cante With lnCant, id_tip_rulaj With 3,id_set With lnIdSet
*!* modificare v 2.0.99
Endif
*!* modificare v 2.0.99 ^
&& intrari
Append Blank
Gather Name poSchimb
Replace pretv With lnPretvNou, pretvtva With lnPretvtvanou, tvav With lntvav, proc_tvav With lnProcTvav,;
cant With lnCant, cante With 0, id_tip_rulaj With 3,id_set With lnIdSet
Select (lcCursorSchimb)
Endscan
Update (lcCursorSchimb) Set proc_tvav = 1 Where Empty(Nvl(proc_tvav,0))
&& modificare v 2.0.111 : pretvtva <> pretvtvanou
Select Distinct Cont, acont, proc_tvav, id_gestiune,nume_gestiune From (lcCursorSchimb) With (Buffering = .T.) ;
Where stoc <> 0 AND pretvtva <> pretvtvanou Into Cursor SCDURI ;
Order By nume_gestiune, id_gestiune, Cont, acont NOFILTER
lnNrDoc = loAct.nract
lnNnir = loAct.nnir
*!* modificare ROAGEST v 2.0.105
Select Count(Distinct id_gestiune) As nrgestiuni From SCDURI Into Cursor crsgstscd
Select crsgstscd
If nrgestiuni > 1
poGeneratorNumere.activeazaBuffer(lnIdTipDoc,lnTipBuffer)
Endif
If Used('crsgstscd')
Use In crsgstscd
Endif
*!* modificare ROAGEST v 2.0.105 ^
Select SCDURI
Go Top
lnIdGestPrec = id_gestiune
Scan
lnValdif = 0
lnValdiftva = 0
lcCont = Cont
lcAcont = Nvl(acont,'')
lnProc_tvav = proc_tvav
lnIdGestIn = id_gestiune
lcGestiune = nume_gestiune
If lnIdGestPrec <> lnIdGestIn
*!* modificare ROAGEST v 2.0.105
*!* lnNrDoc = lnNrDoc + 1
*!* lnNnir = 0
lnNnir = poGeneratorNumere.aloca_numar(lnIdTipDoc,lnIdGestIn)
lnNrDoc = lnNnir
*!* modificare ROAGEST v 2.0.105 ^
Endif
Select (lcCursorSchimb)
Sum Round((pretvtvanou-pretvtva)/proc_tvav*stoc,gnPc) To lnValdif For Cont = lcCont And Nvl(acont,'') = lcAcont And proc_tvav = lnProc_tvav And id_gestiune = lnIdGestIn
Sum Round((pretvtvanou-pretvtva)*(proc_tvav-1)/proc_tvav*stoc,gnPc) To lnValdiftva For Cont = lcCont And Nvl(acont,'') = lcAcont And proc_tvav = lnProc_tvav And id_gestiune = lnIdGestIn
loAct.suma = lnValdif
loAct.SCD = lcCont
loAct.ascd = lcAcont
loAct.proc_tva = lnProc_tvav
loAct.id_gestin = lnIdGestIn
loAct.gestin = lcGestiune
loAct.nract = lnNrDoc
loAct.nnir = lnNnir
loActTva.suma = lnValdiftva
loActTva.SCD = lcCont
loActTva.ascd = lcAcont
loActTva.proc_tva = lnProc_tvav
loActTva.id_gestin = lnIdGestIn
loActTva.gestin = lcGestiune
loActTva.nract = lnNrDoc
loActTva.nnir = lnNnir
Select actactan
Append Blank
Gather Name loAct
Append Blank
Gather Name loActTva
Select rul_temp
Replace dataact With loAct.dataact, nnir With loAct.nnir, proc_tva With loAct.proc_tva,nract With loAct.nract For id_gestiune = lnIdGestIn
lnIdGestPrec = lnIdGestIn
Select SCDURI
Endscan
Delete From actactan Where suma = 0
Do completare_parteneri_gestiune In ointroduceri.prg
Do completare_gruputil_analitice In oproceduri_comune.prg
Do completare_tva_analitice In oproceduri_comune.prg
Use In (Select("crsDocumente"))
*!* Select Distinct a.nract,a.nnir,a.dataact,b.id_gestiune,b.nume_gestiune From actactan a Left Join rul_temp b On a.nract = b.nract Order By a.nract Into Cursor crsDocumente
Select Distinct a.nract,a.nnir,a.dataact,a.id_gestin As id_gestiune,a.gestin From actactan a Where Alltrim(a.SCC) <> '4428' Order By a.nract Into Cursor crsDocumente
Select actactan
Go Top
Do Form verificare With .T.,.T.,3 && cu buton de precedent
lnReturn = gnButon
If lnReturn = 1
lnReturn = scrie_note_schimbare_pret()
If lnReturn = 1
*!* modificare ROAGEST v 2.0.105
poGeneratorNumere.dezactiveazaBuffer(lnIdTipDoc)
*!* modificare ROAGEST v 2.0.105 ^
listeaza_schimbare_pret()
*!* modificare ROAGEST v 2.0.105
Else
poGeneratorNumere.dezaloca_buffer(lnIdTipDoc,.T.)
Select actactan
Delete All
Insert Into actactan Select * From crsaatemp
*!* modificare ROAGEST v 2.0.105 ^
Endif
*!* modificare ROAGEST v 2.0.105
Else
poGeneratorNumere.dezaloca_buffer(lnIdTipDoc,.T.)
Select actactan
Delete All
Insert Into actactan Select * From crsaatemp
*!* modificare ROAGEST v 2.0.105 ^
Endif
Use In (Select("crsDocumente"))
Endif
Use In (Select("crsaatemp"))
Return lnReturn
Endfunc && creeaza_note_schimbare_pret
*****************************************************************************************************************************************************
Function scrie_note_schimbare_pret
Local lcSql, lcSelect,lnReturn
lcSelect = Select()
lnSucces = SQLSetprop(gnHandle,"Transactions",2)
If lnSucces < 0
AMESSAGEBOX("Programul nu a trecut pe tranzactie manuala",4+48,'Lista preturi')
lnReturn = 2
Else
lcSqlTranzactie = [COMMIT]
Use In (Select("crsActIntermediar"))
Use In (Select("crsRulIntermediar"))
Select * From actactan Into Cursor crsActIntermediar
Select * From rul_temp Into Cursor crsRulIntermediar
Select actactan
Delete All
Select rul_temp
Delete All
Select crsDocumente
Scan
lnNrAct = nract
lnNnir = nnir
Select actactan
Append From Dbf('crsActIntermediar') For (nract = lnNrAct)
Select rul_temp
Append From Dbf('crsRulIntermediar') For (nract = lnNrAct)
If lnNnir = 0
Select rul_temp
lnIdGestiune = id_gestiune
*!* modificare ROAGEST v 2.0.105
*!* poGeneratorNumere.resetNumere()
*!* modificare ROAGEST v 2.0.105 ^
lnNnir = poGeneratorNumere.aloca_numar(2,lnIdGestiune)
Select actactan
Replace All nnir With lnNnir
Select rul_temp
Replace All nnir With lnNnir
Endif
Select actactan
lnSuccesScriere = oscrie_in_fisiere(0,.F.,.T.)
If lnSuccesScriere < 0
lcSqlTranzactie = [ROLLBACK]
*!* modificare ROAGEST v 2.0.105
*!* poGeneratorNumere.dezaloca_numar(2)
*!* modificare ROAGEST v 2.0.105 ^
Exit
Else
lcSqlS = [begin delete from act_temp; delete from rul_temp; end;]
lnSuccesScriere = goExecutor.oExecute(lcSqlS)
If lnSuccesScriere < 0
AMESSAGEBOX(goExecutor.cEroare,64,"Eroare")
lcSqlTranzactie = [ROLLBACK]
*!* modificare ROAGEST v 2.0.105
*!* poGeneratorNumere.dezaloca_numar(2)
*!* modificare ROAGEST v 2.0.105 ^
Exit
Endif
Endif
Select actactan
Delete All
Select rul_temp
Delete All
Select crsDocumente
Endscan
Use In (Select("crsActIntermediar"))
Use In (Select("crsRulIntermediar"))
*!* modifica preturi politica
Select crsschimb
lnIdPol = id_pol
Scan
lnIdPolArt = id_pol_art
lnIdVenchelt = id_venchelt
lnProc_tvav = proc_tvav
lnPret = pretnou
lnPretftva = Iif(preturi_cu_tva=0,lnPret,Iif(!Isnull(lnProc_tvav),Round(Round(lnPret,gnPPretV)/lnProc_tvav,gnPPretV),lnPret))
lnPretctva = Iif(preturi_cu_tva=0,Iif(!Isnull(lnProc_tvav),Round(Round(lnPret,gnPPretV) + Round(lnPret,gnPPretV) *(lnProc_tvav -1),gnPPretV),lnPretftva),lnPret)
lcSql = [begin ] + gcS + [.pack_preturi.modifica_pret_pol_pret_art(] + ;
ALLTRIM(Str(lnIdPolArt)) + [,] + ; && id_pol_art
Alltrim(Str(lnPret,20,4)) + [,] + ; && pret
Alltrim(Str(lnPretftva,20,4)) + [,] + ; && pretftva
Alltrim(Str(lnPretctva ,20,4)) + [,] + ; && pretctva
Iif(Isnull(lnIdVenchelt), 'NULL',Alltrim(Str(lnIdVenchelt))) + [,] + ; && id_venchelt
Iif(Isnull(lnProc_tvav), 'NULL', Alltrim(Str(lnProc_tvav,20,4))) + ; && proc_tvav
[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
Exit
Endif
Endscan
If lnSucces > 0
*!* MODIFICARE DATAORA, UTIL in CRM_POLITICI_PRETURI
lcSql = [begin pack_preturi.modifica_politica_dataora(] + ;
ALLTRIM(Str(lnIdPol)) + [,] + ; && id_pol
Alltrim(Str(gnIdUtil)) + ; && id_util
[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
lcSqlTranzactie = [ROLLBACK]
Else
lcSqlTranzactie = [COMMIT]
Endif
Else
lcSqlTranzactie = [ROLLBACK]
Endif
*!* COMMIT / ROLLBACK
If lcSqlTranzactie = [ROLLBACK]
lnReturn = 2
Else
lnReturn = 1
Endif
lnSucces2 = goExecutor.oExecute(lcSqlTranzactie)
If lnSucces2 < 0
AMESSAGEBOX(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
Endif
lnSucces2 = SQLSetprop(gnHandle,"Transactions",1)
If lnSucces2 < 0
AMESSAGEBOX('Programul nu a reusit sa treaca pe tranzactie automata. Iesiti din program si intrati din nou!',0+48,'Atentie!')
Endif
Endif
Select (lcSelect)
Return lnReturn
Endfunc && scrie_note_schimbare_pret
*****************************************************************************************************************************************************
Procedure listeaza_schimbare_pret
Private pcDataOra, poAct
Local lnNrInreg,lnTotalDocumente,lcCursorListareTemp,lcCursorListare
pcDataOra = get_ora(2)
poAct = Createobject('Custom')
AddProperty(poAct,'id_gestiune',0)
AddProperty(poAct,'nract',0)
AddProperty(poAct,'dataact',{})
AddProperty(poAct,'gestin',[])
lcCursorSchimb = [schimbpretstoc]
lcCursorListare = [cList]
Use In (Select(lcCursorListare))
*!* modificare v 2.0.110
Local ox As ReportListener
ox = Createobject('ReportListener')
ox.DynamicLineHeight = .F.
ox.ListenerType = 1
lnTotalDocumente = Reccount('crsDocumente')
*!* lcCursorTemp = lcCursorSchimb
*!* IF TYPE(lcCursorSchimb + '.tvavnou') <> 'N'
*!* lcCursorTemp = SYS(2015)
*!* Select *, CAST(0 as N(16,4)) as tvavnou From (lcCursorSchimb) Into Cursor (lcCursorTemp)
*!* ENDIF
*!* lnPretvtvanou - lnPretvNou
*!* pretvtvanou - pretvnou
lcCursorListareTemp = m.lcCursorSchimb
* La operatiile de schimbare de pret la care nu se schimba procentul de TVA, ca nu exista coloana TVAVNOU. O adaug
IF TYPE(lcCursorSchimb + '.tvavnou') <> 'N'
lcCursorListareTemp = SYS(2015)
Select *, ;
ROUND(pretvtvanou * (Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1)) - 1) / Iif(Nvl(proc_tva,1) = 0, 1, Nvl(proc_tva,1)), m.gnPPretV) as tvavnou ;
From (lcCursorSchimb) ;
Into Cursor (lcCursorListareTemp)
ENDIF
IF TYPE(lcCursorListareTemp + '.partener_rezervare') = 'U'
lcCursorListareTempX = SYS(2015)
Select *, '' as partener_rezervare ;
From (m.lcCursorListareTemp) ;
Into Cursor (lcCursorListareTempX)
IF m.lcCursorListareTemp <> m.lcCursorSchimb
USE IN (SELECT(m.lcCursorSchimb))
ENDIF
lcCursorListareTemp = m.lcCursorListareTempX
ENDIF
SET STEP ON
*!* modificare v 2.0.110 ^
Select crsDocumente
Scan
*!* modificare v 2.0.110
lnNrInreg = Recno()
*!* modificare v 2.0.110 ^
poAct.id_gestiune = id_gestiune
poAct.nract = nract
poAct.dataact = dataact
poAct.gestin = gestin
WAIT WINDOW 'Pregatire raport - proces verbal ' + ALLTRIM(STR(poAct.nract)) + ' - ' + ALLTRIM(STR(lnNrInreg)) + '/' + ALLTRIM(STR(lnTotalDocumente)) NOWAIT
*!* modificare v 2.0.99: and stoc<>0
IF TYPE(lcCursorSchimb + '.nract') = 'N'
Select * From (lcCursorListareTemp) Where id_gestiune = poAct.id_gestiune AND nract = poAct.nract And stoc<>0 order by partener_rezervare, DENUMIRE Into Cursor (lcCursorListare)
ELSE
Select * From (lcCursorListareTemp) Where id_gestiune = poAct.id_gestiune And stoc<>0 order by partener_rezervare, DENUMIRE Into Cursor (lcCursorListare)
ENDIF
*!* modificare v 2.0.99 ^
Select (lcCursorListare)
*!* modificare v 2.0.110
*!* Keyboard "{ctrl+f10}"
*!* Report Form rap_schimbPret To Printer Prompt Preview
If lnNrInreg <> lnTotalDocumente
goExport.export2frx(lcCursorListare,[rap_schimbPret],.F.,2,[],[NOPAGEEJECT],ox)
Else
goExport.export2frx(lcCursorListare,[rap_schimbPret],.F.,1,[],[],ox)
Endif
*!* modificare v 2.0.110 ^
Use In (Select(lcCursorListare))
Select crsDocumente
Endscan
*!* modificare v 2.0.110
Release ox
*!* modificare v 2.0.110 ^
IF m.lcCursorListareTemp <> m.lcCursorSchimb
USE IN (SELECT(lcCursorListareTemp))
ENDIF
Release poAct
Endproc && listeaza_schimbare_pret
*****************************************************************************************************************************************************
Procedure relisteaza_schimbare_pret
Private pnNrAct1, pnNrAct2
Local lcCursorSchimb, lnNr
lcCursorSchimb = [schimbpretstoc]
Store 0 To pnNrAct1, pnNrAct2
Do Form frm_cere_text With 'Numar','pnNrAct1','Numarul procesului verbal - inceput' To lnNr
pnNrAct2 = m.pnNrAct1
Do Form frm_cere_text With 'Numar','pnNrAct2','Numarul procesului verbal - sfarsit' To lnNr
If pnNrAct1 <> 0 AND pnNrAct2 <> 0
*!* TEXT TO lcSql TEXTMERGE NOSHOW
*!* select a.id_set,
*!* a.id_rul,
*!* a.dataact,
*!* a.nract,
*!* a.id_gestiune,
*!* c.nume_gestiune,
*!* b.denumire,
*!* b.codmat,
*!* a.serie,
*!* a.stoc,
*!* a.pretvtva,
*!* a.pretvtvanou,
*!* a.pretv,
*!* a.pretvnou,
*!* a.tvav,
*!* a.tvavnou,
*!* a.proc_tvav,
*!* a.proc_tvavnou,
*!* round(a.stoc*(a.pretvnou - a.pretv), 2) as difvalv,
*!* round(a.stoc*(a.tvavnou - a.tvav), 2) as difvaltva,
*!* round(a.stoc*(a.pretvtvanou - a.pretvtva), 2) as difvalvvtva
*!* from (select MIN(id_set) as id_set,
*!* 0 as id_rul,
*!* dataact,
*!* nract,
*!* id_gestiune,
*!* id_articol,
*!* serie,
*!* sum(decode(cant, 0, cante, 0)) as stoc,
*!* max(decode(cant, 0, proc_tvav, 0)) as proc_tvav,
*!* max(decode(cante, 0, proc_tvav, 0)) as proc_tvavnou,
*!* max(decode(cant, 0, pretv, 0)) as pretv,
*!* max(decode(cante, 0, pretv, 0)) as pretvnou,
*!* max(decode(cant, 0, tvav, 0)) as tvav,
*!* max(decode(cante, 0, tvav, 0)) as tvavnou,
*!* max(decode(cant, 0, pretv + tvav, 0)) as pretvtva,
*!* max(decode(cante, 0, pretv + tvav, 0)) as pretvtvanou
*!* from rul
*!* where nract between ?pnNrAct1 and ?pnNrAct2
*!* and sters = 0
*!* and luna = ?gnLuna
*!* and an = ?gnAn
*!* and id_set in (245, 52, 269)
*!* group by dataact,
*!* nract,
*!* id_gestiune,
*!* id_articol,
*!* serie) a
*!* left join nom_articole b
*!* on a.id_articol = b.id_articol
*!* left join nom_gestiuni c
*!* on a.id_gestiune = c.id_gestiune
*!* union all
*!* select 999 as id_set,
*!* 0 as id_rul,
*!* a.dataact,
*!* a.nract,
*!* a.id_gestiune,
*!* c.nume_gestiune,
*!* b.denumire,
*!* b.codmat,
*!* a.serie,
*!* a.stoc,
*!* a.pretvtva,
*!* a.pretvtvanou,
*!* a.pretv,
*!* a.pretvnou,
*!* a.tvav,
*!* a.tvavnou,
*!* a.proc_tvav,
*!* a.proc_tvavnou,
*!* round(a.stoc*(a.pretvnou - a.pretv), 2) as difvalv,
*!* round(a.stoc*(a.tvavnou - a.tvav), 2) as difvaltva,
*!* round(a.stoc*(a.pretvtvanou - a.pretvtva), 2) as difvalvvtva
*!* from (select dataact,
*!* nract,
*!* id_gestiune,
*!* id_articol,
*!* serie,
*!* sum(decode(cant, 0, cante, 0)) as stoc,
*!* max(decode(cant, 0, proc_tvav, 0)) as proc_tvav,
*!* max(decode(cante, 0, proc_tvav, 0)) as proc_tvavnou,
*!* max(decode(cant, 0, pretv, 0)) as pretv,
*!* max(decode(cante, 0, pretv, 0)) as pretvnou,
*!* max(decode(cant, 0, tvav, 0)) as tvav,
*!* max(decode(cante, 0, tvav, 0)) as tvavnou,
*!* max(decode(cant, 0, pretv + tvav, 0)) as pretvtva,
*!* max(decode(cante, 0, pretv + tvav, 0)) as pretvtvanou
*!* from rul
*!* where nract between ?pnNrAct1 and ?pnNrAct2
*!* and sters = 0
*!* and luna = ?gnLuna
*!* and an = ?gnAn
*!* and id_set = 999
*!* group by dataact, nract, id_gestiune, id_articol, serie) a
*!* left join nom_articole b
*!* on a.id_articol = b.id_articol
*!* left join nom_gestiuni c
*!* on a.id_gestiune = c.id_gestiune
*!* ENDTEXT
SET STEP ON
TEXT TO lcSql TEXTMERGE NOSHOW
select a.id_set,
a.id_rul,
a.id_part_rez,
p.denumire as partener_rezervare,
a.dataact,
a.nract,
a.id_gestiune,
c.nume_gestiune,
b.denumire,
b.codmat,
a.serie,
a.stoc,
a.pretvtva,
a.pretvtvanou,
a.pretv,
a.pretvnou,
a.tvav,
a.tvavnou,
a.proc_tvav,
a.proc_tvavnou,
round(a.stoc*(a.pretvnou - a.pretv), 2) as difvalv,
round(a.stoc*(a.tvavnou - a.tvav), 2) as difvaltva,
round(a.stoc*(a.pretvtvanou - a.pretvtva), 2) as difvalvvtva
from (select MIN(id_set) as id_set,
id_part_rez,
0 as id_rul,
dataact,
nract,
id_gestiune,
id_articol,
serie,
sum(decode(cant, 0, cante, 0)) as stoc,
max(decode(cant, 0, proc_tvav, 0)) as proc_tvav,
max(decode(cante, 0, proc_tvav, 0)) as proc_tvavnou,
max(decode(cant, 0, pretv, 0)) as pretv,
max(decode(cante, 0, pretv, 0)) as pretvnou,
max(decode(cant, 0, tvav, 0)) as tvav,
max(decode(cante, 0, tvav, 0)) as tvavnou,
max(decode(cant, 0, pretv + tvav, 0)) as pretvtva,
max(decode(cante, 0, pretv + tvav, 0)) as pretvtvanou
from rul
where nract between ?pnNrAct1 and ?pnNrAct2
and sters = 0
and luna = ?gnLuna
and an = ?gnAn
and id_set in (245, 52, 269, 999)
group by id_part_rez,
dataact,
nract,
id_gestiune,
id_articol,
serie) a
left join nom_articole b
on a.id_articol = b.id_articol
left join nom_gestiuni c
on a.id_gestiune = c.id_gestiune
left join nom_parteneri p
ON a.id_part_rez = p.id_part
ENDTEXT
WAIT WINDOW 'Selectie date din rulaje...' NOWAIT
lnSucces = goExecutor.oExecute(lcSql,lcCursorSchimb)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,16,"Eroare")
Else
If Reccount(lcCursorSchimb) > 0
Use In (Select("crsDocumente"))
Select Distinct nract,id_gestiune,dataact,nume_gestiune As gestin From (lcCursorSchimb) ORDER BY nract, dataact, nume_gestiune Into Cursor crsDocumente
listeaza_schimbare_pret()
IF AMESSAGEBOX('Doriti export in format XLS?',4+32,_Screen.Caption) = 6
Select * From (lcCursorSchimb) order by partener_rezervare, nract, dataact, nume_gestiune, denumire Into Cursor crsCentralizatorSchimbPretTemp
goExport.export2xls('crsCentralizatorSchimbPretTemp', [centralizator_schimbpret])
USE IN (SELECT('crsCentralizatorSchimbPretTemp'))
ENDIF
Use In (Select("crsDocumente"))
Else
AMESSAGEBOX("Nu exista procese verbale din aceasta plaja de numere in luna curenta!",48,"Atentie")
Endif
Endif
Use In (Select(lcCursorSchimb))
Else
AMESSAGEBOX("Numarul procesului verbal trebuie sa fie diferit de 0!",48,"Atentie")
Endif
Endproc && listeaza_schimbare_pret
*****************************************************************************************************************************************************
Procedure listeaza_centralizator_schimbpret
Lparameters tnTipGest
Private pcTitlu,pdDataI,pdDataF,plGrupe,pnOptiune
Store {} To pdDataI,pdDataF
Local lofrmperioada,loCauta,lcSql,lnSucces,lcCursor,lcExplicatie,lcTitlu,lcIntrebare,lnNrOptiuni
lofrmperioada = Createobject('frm_perioada_zzllaaaa')
lofrmperioada.Show(1)
If !Empty(Nvl(pdDataI,{})) And !Empty(Nvl(pdDataF,{}))
Local loCauta
loCauta = caut_grupa_articole(.T.)
If gnButon = 1
lcCursor = [crscentrschpret]
If loCauta.id_grupa = 0 And Alltrim(loCauta.grupa) = [<TOATE INREGISTRARILE>]
lcExplicatie = []
pnOptiune = 1
lcTitlu = [P.V.SCHIMBARE PRET]
lcIntrebare="Doriti ca centralizatorul sa fie grupat dupa :"
lnNrOptiuni=2
Local loFrmOpt
loFrmOpt=Createobject("frm_optiune",lcTitlu,lcIntrebare,lnNrOptiuni,[grupele de articole;numarul de document (nedefalcate dupa gestiune);],.T.)
loFrmOpt.Show(1)
Release loFrmOpt
If pnOptiune = 1
plGrupe = .T.
Else
plGrupe = .F.
Endif
Else
lcExplicatie = [ - GRUPA ] + Alltrim(loCauta.grupa)
plGrupe = .F.
Endif
*!* modificare 07.11.2012 : la total, am pus gnPc in loc de gnPa
lcSql = [select a.nract,a.dataact,NVL(d.denumire,c.nume_gestiune) as denumire,] + ;
IIF(plGrupe,[NVL(g.grupa,'')],['']) + [ as grupa, ] + ;
[MAX(d.id_part) as id_part, MAX(c.id_gestiune) as id_gestiune, ] + ;
[sum(round(a.pretvtva*decode(a.cant,0,(-1)*a.cante,a.cant),] + Alltrim(Str(gnPc)) + [)) as total,] + ;
[sum(round(a.pretvtva*a.cante,] + Alltrim(Str(gnPc)) + [)) as valoare_ctva_vechi,] + ;
[sum(round(a.pretvtva*a.cant,] + Alltrim(Str(gnPc)) + [)) as valoare_ctva_nou,] + ;
[sum(round(a.pretv*a.cante,] + Alltrim(Str(gnPc)) + [)) as valoare_ftva_vechi,] + ;
[sum(round(a.pretv*a.cant,] + Alltrim(Str(gnPc)) + [)) as valoare_ftva_nou,] + ;
[sum(round(a.tva*a.cante,] + Alltrim(Str(gnPc)) + [)) as valoare_tva_vechi,] + ;
[sum(round(a.tva*a.cant,] + Alltrim(Str(gnPc)) + [)) as valoare_tva_nou ] + ;
[from rul a ] + ;
[left join asociere_parteneri_gestiuni b on a.id_gestiune = b.id_gestiune ] + ;
[left join nom_gestiuni c on b.id_gestiune = c.id_gestiune ] + ;
[left join nom_parteneri d on b.id_part = d.id_part ] + ;
[left join nom_articole e on a.id_articol = e.id_articol ] + ;
[left join gest_art_sbgr f on e.id_subgrupa = f.id_subgrupa and f.sters = 0 ] + ;
[left join gest_art_gr g on f.id_grupa = g.id_grupa and g.sters = 0 ] + ;
[where a.dataact between to_date('] + Dtoc(pdDataI,1) + [', 'YYYYMMDD') and to_date('] + Dtoc(pdDataF,1) + [', 'YYYYMMDD') ] + ;
[and a.id_set in (52, 245, 269, 999) and a.sters = 0] + Strtran(gcCondSucursala,[id_sucursala],[a.id_sucursala]) + [ ] + ;
IIF(loCauta.id_grupa = 0 And Alltrim(loCauta.grupa) = [<TOATE INREGISTRARILE>],[],[and NVL(g.id_grupa,0) = ] + Alltrim(Str(loCauta.id_grupa)) + [ ]) + ;
[group by a.nract,a.dataact,NVL(d.denumire,c.nume_gestiune)] + ;
IIF(plGrupe,[,NVL(g.grupa,'')],[]) + [ ] + ;
[order by ] + Iif(plGrupe,[4,],[]) + [2, 1, 3 ]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,16,"Eroare")
Else
pcTitlu = [CENTRALIZATOR PROCESE VERBALE DE SCHIMBARE PRET DE VANZARE ( ] + Dtoc(pdDataI) + [ - ] + Dtoc(pdDataF) + [ )] + lcExplicatie
goExport.export2frx(lcCursor,[centralizator_schimbpret])
IF AMESSAGEBOX('Doriti export in format XLS?',4+32,_Screen.Caption) = 6
goExport.export2xls(lcCursor, [centralizator_schimbpret])
ENDIF
Endif
If Used(lcCursor)
Use In (lcCursor)
Endif
Endif
Endif
Release lofrmperioada,loCauta,lcSql,lnSucces,lcCursor,pcTitlu,pdDataI,pdDataF,plGrupe,pnOptiune
Endproc && listeaza_centralizator_schimbpret
*****************************************************************************************************************************************************
Procedure centralizator_articole_schimbpret
Local loFrmPret
loFrmPret=Createobject('frm_centralizator_schimbare_pret')
loFrmPret.Show(1)
Release loFrmPret
Endproc && centralizator_articole_schimbpret
*****************************************************************************************************************************************************
PROCEDURE instiintaripret
PRIVATE poInstiintarepret, poInstiintarepret_det
LOCAL lcSchema,lcSelect,lcOrder,lcGroup,lcFiltru,lcFiltruOriginal,llModParam,llAfiseaza,lcSelect1,lcOrder1,lcFiltru1,;
lcFiltruOriginal1
STORE NULL TO poInstiintaripret, poInstiintaripret_det
lcSchema = []
lcSelect = [select * from vinstiintaripret ]
lcOrder = [ dataora desc ]
lcgroup = []
lcFiltru = []
lcFiltruOriginal = [ sters=0 ]
llModParam = .T.
llAfiseaza = .F.
gencursor('poInstiintaripret','cInstiintaripret', lcSelect, lcFiltru, lcSchema, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poInstiintaripret.ca_baza1.afisare()
lcSelect1 = [select * from instiintaripret_vdetalii ]
lcOrder1 = [ denumire ]
lcFiltru1 = []
lcFiltruOriginal1 = [ 1=2 ]
gencursor('poInstiintaripret_det ','cInstiintaripret_det', lcSelect1,lcFiltru1,lcSchema,lcOrder1,llAfiseaza,lcgroup, llModParam,lcFiltruOriginal1)
poInstiintaripret_det.ca_baza1.afisare()
SELECT cInstiintaripret
GO TOP
loFrm = CREATEOBJECT("instiintaripret")
loFrm.show(1)
ENDPROC && instiintaripret
*******************************************************************
*** Modificare preturi la schimbarea de TVA
*** Actualizare liste de preturi
*** Procese verbale schimbare de pret pe baza de lista de preturi (optional), pentru anumite gestiuni/toate, pentru anumite subgrupe articole/toate
*** 01.07.2010 19%-24%
*** 01.06.2010 24%-9% alimente
*******************************************************************
PROCEDURE schimba_pret_tva
LOCAL loFrmSchimbarePret
* createobject da eroare (check1???)
DO FORM frm_schimbare_pret_tva
*!* loFrmSchimbarePret = CREATEOBJECT("schimbpret_masa_tva")
*!* loFrmSchimbarePret.show(1)
ENDPROC && schimba_pret