1795 lines
71 KiB
Plaintext
1795 lines
71 KiB
Plaintext
*!* 12.06.2014
|
|
*!* marius.mutu
|
|
*!* listeaza_bon_fiscal, listeaza_bon_fiscal_det - adaugat suma achitata prin CARD POS. suma achitata anterior se considera numerar
|
|
|
|
*!* 24.08.2015
|
|
*!* marius.mutu
|
|
*!* normare_comanda - vizualizare doar comenzi active (nearhivate)
|
|
|
|
*!* 31.08.2015
|
|
*!* marius.mutu
|
|
*!* generare_com, factureaza_comanda - salvare id partener care a referit comanda
|
|
|
|
*!* 27.01.2016
|
|
*!* marius.mutu
|
|
*!* factureaza_deviz - stornare avans se preiau proc_tvav si id_jtva_coloana din avansurile anterioare, in loc de cele standard din luna curenta
|
|
|
|
*!* 29.01.2016
|
|
*!* marius.mutu
|
|
*!* factureaza_deviz - listare cumulata articol REPARATII AUTO in loc de MANOPERA si MATERIALE
|
|
|
|
*!* 23.11.2017
|
|
*!* marius.mutu
|
|
*!* factureaza_deviz - tratare factura cu valoare 0 materiale si 0 manopera. se inregistreaza in scopul listarii.
|
|
|
|
*!* 12.04.2021
|
|
*!* marius.mutu
|
|
*!* generare_com + numarul de zile termen de executie comanda service
|
|
|
|
*!* 08.07.2024
|
|
*!* marius.mutu
|
|
*!* actualizare listare factura + lot C(20)
|
|
|
|
*!* 18.10.2024
|
|
*!* marius.mutu
|
|
*!* factureaza_deviz > pack_facturare.initializeaza_date_Factura + poDate.tip_saft
|
|
|
|
*******************************************
|
|
* PROCEDURE generare_com( )
|
|
* Data/ora : 01/05/05, 08:58:28
|
|
* autor : liana.macinic
|
|
* descriere:
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parametri : 0
|
|
*
|
|
*******************************************
|
|
Procedure generare_com()
|
|
Parameters tnTipFactura
|
|
Private pnTipFactura, poGeneratorNumere
|
|
poGeneratorNumere = Createobject('oGeneratorNumere')
|
|
Local lcMesaj, lnTermenZile
|
|
|
|
If Empty(tnTipFactura)
|
|
pnTipFactura=0 && 0 - daca vine din meniul de generare comenzi, 1 - ITP, 2 - spalare auto, 3 - diverse
|
|
lcMesaj="Nu puteti genera comenzi,deoarece aceasta luna este inchisa!"
|
|
Else
|
|
pnTipFactura=tnTipFactura
|
|
lcMesaj="Nu puteti emite facturi,deoarece aceasta luna este inchisa!"
|
|
Endif
|
|
|
|
If glLunaInchisa
|
|
amessagebox(lcMesaj,0+48,"Luna inchisa")
|
|
Return
|
|
Endif
|
|
|
|
Private pntipcom,pnNrCom
|
|
pntipcom = 1
|
|
|
|
If pnTipFactura=0
|
|
ofrmtipcom = Createobject('frm_alegtipcom',@pntipcom)
|
|
*!* ofrmtipcom.ogtipcom.controlsource = "pntipcom"
|
|
ofrmtipcom.Show(1)
|
|
|
|
If buton = 2
|
|
Return
|
|
Endif
|
|
Endif
|
|
|
|
*!* modificare v 2.0.28
|
|
*!* lcSql = [select ] + gcS + [.getdev_comanda() as nrcom from dual]
|
|
*!* lcCursor = [crsNrCom]
|
|
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
|
|
*!* If lnSucces < 0
|
|
*!* amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
*!* Return
|
|
*!* Endif
|
|
*!* Select crsNrCom
|
|
*!* *!* modificare 31.10
|
|
*!* Scatter Name ocomlistare
|
|
*!* *!*
|
|
*!* pnNrCom = Round(crsNrCom.nrcom,0)
|
|
Private poGeneratorNumere
|
|
poGeneratorNumere = Createobject('oGeneratorNumere')
|
|
ocomlistare = Createobject("Custom")
|
|
lnRezultat = poGeneratorNumere.creeaza_cursor_serii(20)
|
|
pnNrCom = poGeneratorNumere.aloca_numar(20,Null)
|
|
*!* modificare v 2.0.28 ^
|
|
Do update_asigurator In update_devize.prg
|
|
Do update_inspector In update_devize.prg
|
|
|
|
Private ofrmGencom,pcNr,pnIdInsp,pnIdAsig,pnIdMC,pnIdClie,pnIdOrdl,pnid_masina,pnKmInt,pnOreFct,pcNrDosar,pcSirIDOperatiiClient,pcObservatii,pcDefectiuni,pnIdPartRef
|
|
Store '' To pcNr,pcNrDosar,pcSirIDOperatiiClient, pcObservatii,pcDefectiuni
|
|
Store 0 To pnIdInsp,pnIdAsig,pnIdMC,pnIdClie,pnIdOrdl,pnid_masina,pnKmInt,pnOreFct,pdTermen, pnIdPartRef
|
|
|
|
lnTermenZile = IIF(TYPE('gnTermenZileService') = 'N', m.gnTermenZileService, 10) && termenul implicit, daca nu exista optiune este de 10 zile
|
|
pdTermen = DATE() + m.lnTermenZile && termenul de pe comanda este data curenta + optiunea TermenZile
|
|
|
|
pcNr = Alltrim(Str(pnNrCom))
|
|
Do Case
|
|
Case pntipcom = 2
|
|
pcNr = 'G' + Alltrim(Str(pnNrCom))
|
|
Case pntipcom = 3
|
|
pcNr = 'R' + Alltrim(Str(pnNrCom))
|
|
Case pntipcom = 4
|
|
pcNr = 'P' + Alltrim(Str(pnNrCom))
|
|
Case pntipcom = 6
|
|
pcNr = 'PR' + Alltrim(Str(pnNrCom))
|
|
CASE pntipcom = 7
|
|
pcNr = 'C' + Alltrim(Str(pnNrCom))
|
|
Endcase
|
|
|
|
Private pniesire
|
|
pniesire=0
|
|
|
|
If pnTipFactura=0
|
|
*!* modificare 31.10
|
|
*!* modificare v 2.0.9
|
|
=update_norme([1=2]) && 1=2 > modificare v 2.0.18
|
|
*!* modificare v 2.0.9 ^
|
|
ofrmGencom = Createobject('frm_gencom',1,@pcNr,@pnIdInsp,@pnIdAsig,@pnIdMC,@pnIdClie,@pnid_masina,@pnKmInt,@pnOreFct,@pdTermen,@pcNrDosar,,,,@pcObservatii,@pcDefectiuni)
|
|
ofrmGencom.Show(1)
|
|
If pniesire!=1
|
|
*!* modificare v 2.0.28
|
|
poGeneratorNumere.dezaloca_numar(20)
|
|
Release poGeneratorNumere
|
|
*!* modificare v 2.0.28 ^
|
|
Return
|
|
Endif
|
|
*!* modificare v 2.0.28
|
|
poGeneratorNumere.verifica_numar(20,Val(Substr(pcNr,Iif(pntipcom=6,3,Iif(pntipcom=1,1,2)),At([/],pcNr,1)-Iif(pntipcom=6,3,Iif(pntipcom=1,1,2)))))
|
|
Release poGeneratorNumere
|
|
*!* modificare v 2.0.28 ^
|
|
|
|
pnIdOrdl = 0
|
|
lcTermen = Iif(Empty(pdTermen) Or Isnull(pdTermen),'NULL',[']+Dtoc(pdTermen)+['])
|
|
|
|
lcSql = [begin pack_auto.dev_adauga_lucrare(?gcS,?gnAn,?gnLuna,?gnIdUtil,?pcNr,?pnIdInsp,] + ;
|
|
[?pnIdAsig,?pcNrDosar,?pnIdMC,?pnKmInt,?pnOreFct, to_date(]+lcTermen+[,'DD/MM/YYYY'),?pntipcom,?pcSirIDOperatiiClient, ?pcObservatii, ?pcDefectiuni, ?pnIdPartRef, ?@pnIdOrdl); end;]
|
|
|
|
*!* lcSql = [begin pack_devize.dev_adauga_lucrare('] + gcS +[',] + Alltrim(Str(gnAn)) + [,] + Alltrim(Str(gnLuna))+;
|
|
*!* [, ]+ Alltrim(Str(gnIdUtil)) + [,'] + Alltrim(pcNr) + [',]+ Alltrim(Str(pnIdInsp)) + [,];
|
|
*!* +Alltrim(Str(pnIdAsig))+[,]+Alltrim(Str(pnIdMC)) + [,] + Alltrim(Str(pnKmInt)) + [,to_date(];
|
|
*!* +lcTermen+[,'DD/MM/YYYY'),?pntipcom,?@pnIdOrdl); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,'Eroare')
|
|
Return
|
|
Endif
|
|
*!*
|
|
|
|
* Do listare_comanda With pntipcom && 22.06.2021
|
|
DO listare_precomanda WITH m.pnIdOrdl
|
|
|
|
Else
|
|
*!* modificare 31.10
|
|
*!* nu se fac verificari ptr. km la bord pentru facturile de itp,de spalare si diverse
|
|
*!* modificare v 2.0.9
|
|
=update_norme([1=2])
|
|
*!* modificare v 2.0.9 ^
|
|
ofrmGencom = Createobject('frm_gencom',2,@pcNr,@pnIdInsp,@pnIdAsig,@pnIdMC,@pnIdClie,@pnid_masina,@pnKmInt,@pnOreFct,@pdTermen,@pcNrDosar,,,,@pcObservatii,@pcDefectiuni)
|
|
With ofrmGencom
|
|
.lverificari=.F.
|
|
.clb_kmint.teXT_SIMPLU1.ReadOnly=.T.
|
|
.clb_termen.teXT_SIMPLU1.ReadOnly=.T.
|
|
Endwith
|
|
ofrmGencom.Show(1)
|
|
If pniesire!=1
|
|
*!* modificare v 2.0.28
|
|
poGeneratorNumere.dezaloca_numar(20)
|
|
Release poGeneratorNumere
|
|
*!* modificare v 2.0.28 ^
|
|
Return
|
|
Endif
|
|
*!*
|
|
*!* modificare v 2.0.28
|
|
poGeneratorNumere.verifica_numar(20,Val(Substr(pcNr,Iif(pntipcom=6,3,Iif(pntipcom=1,1,2)),At([/],pcNr,1)-Iif(pntipcom=6,3,Iif(pntipcom=1,1,2)))))
|
|
Do factureaza_comanda With pnTipFactura
|
|
Release poGeneratorNumere
|
|
*!* Do factureaza_comanda With pnTipFactura
|
|
*!* modificare v 2.0.28 ^
|
|
Endif
|
|
Release poGeneratorNumere
|
|
|
|
Endproc
|
|
|
|
**********************sfarsit procedura generare_com*******************
|
|
|
|
*******************************************
|
|
* PROCEDURE normare_comanda( )
|
|
* Data/ora : 01/10/05, 11:50:13
|
|
* autor : liana.macinic
|
|
* descriere:
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parametri : 0
|
|
*
|
|
*******************************************
|
|
Procedure normare_comanda( )
|
|
If glLunaInchisa
|
|
amessagebox("Nu puteti norma comenzi,deoarece aceasta luna este inchisa!",0+48,"Luna inchisa")
|
|
Return
|
|
Endif
|
|
|
|
Private pcValoare1,pcValoare2,pcIntre,pnCriteriu, pnCriteriu2, pcFiltruOra, pcFiltruVFP
|
|
Private pcselect,pcschema,pcfiltru,pcorder,pocomenzi,llAfiseaza
|
|
Store '' To pocomenzi
|
|
pcValoare1 = ""
|
|
pcValoare2 = ""
|
|
pnCriteriu = 1
|
|
pnCriteriu2 = 1
|
|
pcIntre = ""
|
|
pcFiltruOra = ""
|
|
pcFiltruVFP = ""
|
|
Do Form frm_filtru_text With "nrord","Nr. comanda",pnCriteriu,pnCriteriu2 To pcFiltruOra
|
|
|
|
buton=2
|
|
Private poordl,pcschema1,pcselect1
|
|
Store '' To poordl
|
|
*!* pcschema1=['DATAI d,NRORD c(30),VALIDAT n(1),NUME c(50),NRINMAT c(10),ID_LUCRARE n(10),ID_ORDL n(10)']
|
|
*!* pcselect1=['select datai,nrord,validat,nume,nrinmat,id_lucrare,id_ordl from ] + gcS + [.dev_vordl where 1=2']
|
|
pcschema1=['']
|
|
pcselect1=['select * from ] + gcS + [.auto_normare_comenzi a where 1=2']
|
|
pcorder1=[datai]
|
|
If !Empty(pcFiltruOra)
|
|
pcFiltru1 = gcCondLuna + [ and a.inchis_fortat = 0 and a.validat=0 ] + pcFiltruOra
|
|
Else
|
|
pcFiltru1 = [1=2]
|
|
Endif
|
|
llAfiseaza = .F.
|
|
gencursor('poordl','cliord',pcselect1,pcFiltru1,pcschema1,pcorder1,llAfiseaza)
|
|
poordl.ca_baza1.afisare()
|
|
|
|
ovs=Createobject('FRM_NOM_COM')
|
|
If !Empty(pcFiltruOra)
|
|
ovs.gcliord.SetAll('DynamicFontItalic','IIF(validat=1,.T.,.F.)','Column')
|
|
ovs.gcliord.SetAll('DynamicForeColor','IIF(validat=1,RGB(128,128,128),RGB(0,0,0))','Column')
|
|
*!* modificare v 2.0.17
|
|
With ovs.ck_nrord
|
|
.cValoare1 = pcValoare1
|
|
.cValoare2 = pcValoare2
|
|
.criteriu = pnCriteriu
|
|
.criteriu2 = pnCriteriu2
|
|
.cIntre = pcIntre
|
|
.filtru = pcFiltruOra
|
|
.filtru_vfp = pcFiltruVFP
|
|
.Value = 1
|
|
Endwith
|
|
*!* modificare v 2.0.17 ^
|
|
Endif
|
|
ovs.Show(1)
|
|
|
|
Endproc
|
|
**********************sfarsit procedura normare_comanda*******************
|
|
*******************************************
|
|
* PROCEDURE dec2rgb( )
|
|
* Data/ora : 02/11/05, 16:29:34
|
|
* autor : liana.macinic
|
|
* descriere:
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parametri : 0
|
|
*
|
|
*******************************************
|
|
Procedure dec2rgb
|
|
Lparameters lnValue
|
|
|
|
lTalk=Iif(Set('TALK')='ON',.T.,.F.)
|
|
Set Talk Off
|
|
|
|
* Determine the hexadecimal equivalent of the decimal parameter passed
|
|
lcHex = ""
|
|
lnFactor = 24 && set up factor value one exponent greater than used
|
|
|
|
For lnPos = 6 To 1 Step -1
|
|
lnFactor = lnFactor - 4 && decrement factorial
|
|
lnExp = 2 ^ lnFactor && extrapolate next least power of two
|
|
For lnOrd = 15 To 1 Step -1
|
|
If lnValue < lnExp && no value greater than current one,
|
|
lcHex = lcHex + "0" && so store a zero in this position
|
|
Exit && go back for the next value
|
|
Endif
|
|
If lnValue >= lnExp * lnOrd && is value greater than or equal to?
|
|
* find the matching hex value from its ordinal position
|
|
lcHex = lcHex + Substr('123456789ABCDEF', lnOrd, 1)
|
|
Exit
|
|
Endif
|
|
Endfor
|
|
lnValue = lnValue % lnExp && leave remainder of exponential division
|
|
Endfor
|
|
|
|
* reverse the order of the individual color indicators
|
|
lcHex = Right(lcHex, 2) + Substr(lcHex, 3, 2) + Left(lcHex, 2)
|
|
|
|
* convert the pairs into decimal values
|
|
lnPick = 2 && offset to determine which pair to convert
|
|
lcRGB = "" && start of string delineator
|
|
|
|
* parse each color indicator and convert to decimal
|
|
For lnColor = 1 To 3
|
|
lcHue = Substr(lcHex, (lnPick * lnColor) - 1, 2) && pull out color
|
|
lnMSB = Asc(Left(lcHue, 1)) && "Most Significant Bit"
|
|
lnLSB = Asc(Right(lcHue, 1)) && "Least Significant Bit"
|
|
|
|
* subtract appropriate value from each to get decimal equivalent
|
|
lnMSB = lnMSB - Iif(lnMSB > 57, 55, 48)
|
|
lnLSB = lnLSB - Iif(lnLSB > 57, 55, 48)
|
|
|
|
* then add decimals together
|
|
lcRGB = lcRGB + Transform( lnMSB * 16 + lnLSB, '999') + ", "
|
|
Endfor
|
|
lcRGB = Left(lcRGB, Len(lcRGB) - 2)
|
|
Return Alltrim(lcRGB)
|
|
|
|
Endproc
|
|
|
|
**********************sfarsit procedura dec2rgb*******************
|
|
|
|
|
|
*------------------------------inceput procedura calc_analitic-----------------------------------------
|
|
* PROCEDURE calc_analitic( tcCont, pcAct, )
|
|
* Data : 03/15/05, 14:52:49
|
|
* autor : liana.macinic
|
|
* descriere:
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parameters : 3
|
|
* Parameter 1:
|
|
* Parameter 2: pcRul
|
|
* Parameter 3:
|
|
*
|
|
*******************************************
|
|
Procedure calc_analitic
|
|
Parameters tcCont,pcAct,pcRul
|
|
|
|
Private pcCont,pcAct,pcRul,pParamP,pParamS
|
|
Store 0 To pParamP,pParamS
|
|
|
|
lcAlias = Alias()
|
|
|
|
pcCont = Alltrim(tcCont)
|
|
|
|
lcSel = [SELECT * from ] + gcS + [.config_analitice WHERE cont = ?pcCont]
|
|
lcCursor = 'crs_cfg_ana'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_cfg_ana')=0
|
|
Use In crs_cfg_ana
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
Select crs_cfg_ana
|
|
Scatter Name ocfg
|
|
lcCampPrefix = Nvl(Alltrim(ocfg.camp_leg_prefix),'')
|
|
lcCampSufix = Nvl(Alltrim(ocfg.camp_leg_sufix),'')
|
|
|
|
|
|
If !Empty(lcCampPrefix)
|
|
If Type('&pcRul..'+lcCampPrefix) # 'U'
|
|
pParamP = &pcRul..&lcCampPrefix
|
|
Else
|
|
If Type('&pcAct..'+lcCampPrefix) # 'U'
|
|
pParamP = &pcAct..&lcCampPrefix
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
|
|
If !Empty(lcCampSufix)
|
|
If Type('&pcRul..'+lcCampSufix) # 'U'
|
|
pParamS = &pcRul..&lcCampSufix
|
|
Else
|
|
If Type('&pcAct..'+lcCampSufix) # 'U'
|
|
pParamS = &pcAct..&lcCampSufix
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
lcSel = [{call fconturi_analitice(?gcs,?pcCont,0,?pParamP,?pParamS)}]
|
|
lcCursor = 'crs_analitice'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
|
|
Endif
|
|
|
|
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
|
|
If lnSucces > 0
|
|
Select crs_analitice
|
|
Go Top
|
|
lcAnalitic = Alltrim(Left(acont,4))
|
|
Endif
|
|
|
|
&& verificare analiticului cu Planul de Conturi
|
|
If lnSucces > 0
|
|
lcSel = [SELECT cont,acont from ] + gcS + [.vplcont_analitic WHERE cont = ?pcCont and acont = ?lcAnalitic and an = ?gnAn ]
|
|
lcCursor = 'crs_verific'
|
|
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces > 0
|
|
If Reccount('crs_verific')=0
|
|
lnSucces = -1
|
|
Endif
|
|
Endif
|
|
|
|
If Used('crs_cfg_ana')
|
|
Use In crs_cfg_ana
|
|
Endif
|
|
If Used('crs_verific')
|
|
Use In crs_verific
|
|
Endif
|
|
If Used('crs_analitice')
|
|
Use In crs_analitice
|
|
Endif
|
|
If Used('crs_verific')
|
|
Use In crs_verific
|
|
Endif
|
|
|
|
If lnSucces < 0
|
|
lcAnalitic = ''
|
|
Endif
|
|
|
|
Select (lcAlias)
|
|
Return lcAnalitic
|
|
|
|
|
|
|
|
Endproc
|
|
*------------------------------sfarsit procedura calc_analitic-----------------------------------------
|
|
|
|
*------------------------------inceput procedura factureaza_deviz -----------------------------------------
|
|
* PROCEDURE factureaza_deviz( )
|
|
* Data : 03/16/05, 14:07:08
|
|
* autor : liana.macinic
|
|
* descriere: facturare
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parameters : 0
|
|
*
|
|
*******************************************
|
|
Procedure factureaza_comanda
|
|
Lparameters tnTipFactura
|
|
Local lcTip,lnIdSet,lnTipFactura,lnTipListare
|
|
Local ofrmincasare As 'frm_incasare_avans'
|
|
Local ofrmnormsect As 'frm_aleg_operatie'
|
|
Local lcSql, lcTermen, lcTipJ, llTaxareInversa, lnLungime, lnProcTVA, lnSucces, loJtva
|
|
*:Global oCautare, oactan, ocomanda, oincasare, otva, pnid_norme, pnore, pntimpn, poactan
|
|
*:Global taValori[1], x
|
|
|
|
Private pnid_norma,pnid_sectie,pcsectie,pcdenop,pnProcTva,pnTipIncasare,pnIdJtvaColoana,pnIdTva
|
|
Private pniesire,pnid_mecanic,pcnume,pocomenzi
|
|
Private pcselect,pcschema,pcfiltru,pcorder,llAfiseaza
|
|
Private pnIdOrdl
|
|
Store "" To oCautare,pocomenzi
|
|
Store 1 To pnTipIncasare
|
|
lnTipFactura=tnTipFactura
|
|
pnProcTva = 0
|
|
pnIdTva = 0
|
|
pnIdJtvaColoana = 0
|
|
optiuni_firma() && reinitializare optiuni firma
|
|
Do Case
|
|
Case lnTipFactura = 1
|
|
lcTip = 'ITP'
|
|
lnIdSet = 31003
|
|
pnid_sectie=Nvl(gnid_sectie_itp,0)
|
|
If Empty(gnid_norme_itp) Or Isnull(gnid_norme_itp)
|
|
pnid_norme=0
|
|
=ccnorme()
|
|
Else
|
|
pnid_norme=gnid_norme_itp
|
|
=ccnorme('NORMA',pnid_norme)
|
|
Endif
|
|
Case lnTipFactura = 2
|
|
lcTip = 'SPALARE AUTO'
|
|
lnIdSet = 31004
|
|
pnid_sectie=Nvl(gnid_sectie_spalare,0)
|
|
If Empty(gnid_norme_spalare) Or Isnull(gnid_norme_spalare)
|
|
pnid_norme=0
|
|
=ccnorme()
|
|
Else
|
|
pnid_norme=gnid_norme_spalare
|
|
=ccnorme('NORMA',pnid_norme)
|
|
Endif
|
|
Case lnTipFactura = 3
|
|
lcTip = 'DIVERSE'
|
|
lnIdSet = 31005
|
|
pnid_sectie=0
|
|
pnid_norme=0
|
|
=ccnorme()
|
|
Endcase
|
|
pcdenop=""
|
|
pnid_mecanic=0
|
|
pcsectie=""
|
|
pntimpn=1
|
|
pnore=1
|
|
Do ccsectii In update_devize.prg
|
|
=ccmecanici()
|
|
*!* If lnTipFactura = 1
|
|
*!* pnid_norma = gnId_itp
|
|
*!* ofrmnormsect=Createobject('frm_aleg_sectie')
|
|
*!* ofrmnormsect.Show(1)
|
|
*!* Else
|
|
******************************************
|
|
&& alegere denumire operatie + sectie + mecanic + timpn + ore
|
|
pniesire=0
|
|
ofrmnormsect=Createobject('frm_aleg_operatie')
|
|
ofrmnormsect.Show(1)
|
|
*!* pnid_norma = gnid_spalare
|
|
*!* ofrmnormsect=Createobject('frm_aleg_sectie')
|
|
*!* ofrmnormsect.Show(1)
|
|
*!* Else
|
|
|
|
*!* Endif
|
|
If pniesire !=1
|
|
Return
|
|
Endif
|
|
******************************************
|
|
******************************************
|
|
*!* 27.07.2007
|
|
*!* marius.mutu
|
|
*!* lnNumarFactura = aloca_numar_fact()
|
|
|
|
&& adaugare lucrare
|
|
SQLSetprop(gnHandle,"Transactions",2)
|
|
pnIdOrdl = 0
|
|
*!* modificare v 2.0.14
|
|
*!* lcSql = [begin pack_devize.dev_adauga_lucrare(?gcS,?gnAn,?gnLuna,?gnIdUtil,?pcNr,?pnIdInsp,] + ;
|
|
*!* [?pnIdAsig,?pcNrDosar,?pnIdMC,?pnKmInt,to_date(NULL,'DD/MM/YYYY'),?pntipcom,?@pnIdOrdl); end;]
|
|
lcTermen = Iif(Empty(pdTermen) Or Isnull(pdTermen),'NULL',[']+Dtoc(pdTermen)+['])
|
|
lcSql = [begin pack_auto.dev_adauga_lucrare(?gcS,?gnAn,?gnLuna,?gnIdUtil,?pcNr,?pnIdInsp,] + ;
|
|
[?pnIdAsig,?pcNrDosar,?pnIdMC,?pnKmInt,?pnOreFct,to_date(]+lcTermen+[,'DD/MM/YYYY'),?pntipcom,?pcSirIDOperatiiClient, ?pcObservatii, ?pcDefectiuni, ?pnIdPartRef, ?@pnIdOrdl); end;]
|
|
*!* modificare v 2.0.14 ^
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
|
|
If lnSucces < 0
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
amessagebox(goExecutor.cEroare,0+16,'Eroare')
|
|
Return
|
|
Endif
|
|
|
|
******************************************
|
|
|
|
******************************************
|
|
If Used('crscomenzi')
|
|
Use In crsComenzi
|
|
Endif
|
|
pcschema=['']
|
|
pcselect=['select * from ] + gcS + [.auto_ordl_facturare where 1=2']
|
|
pcfiltru = [ id_ordl = ] + Alltrim(Str(pnIdOrdl))
|
|
pcorder=[datai,nrord]
|
|
llAfiseaza=.F.
|
|
gencursor('pocomenzi','crscomenzi',pcselect,pcfiltru,pcschema,pcorder,llAfiseaza)
|
|
pocomenzi.ca_baza1.afisare()
|
|
Select crsComenzi
|
|
Scatter Name ocomanda
|
|
Use In crsComenzi
|
|
******************************************
|
|
|
|
******************************************
|
|
&& date factura
|
|
lnLungime=4
|
|
Dimension taValori[lnLungime,3]
|
|
taValori[1,1]="poAct.v4111"
|
|
taValori[1,2]=Alltrim(ocomanda.nume)
|
|
taValori[1,3]=.T.
|
|
taValori[2,1]="poAct.nrord"
|
|
taValori[2,2]=Alltrim(ocomanda.nrord)
|
|
taValori[2,3]=.T.
|
|
taValori[3,1]="poAct.id_lucrare"
|
|
taValori[3,2]=Alltrim(Str(ocomanda.id_lucrare))
|
|
taValori[3,3]=.T.
|
|
taValori[4,1]="poAct.id_vv4111"
|
|
taValori[4,2]=Alltrim(Str(ocomanda.id_partener))
|
|
taValori[4,3]=.T.
|
|
|
|
*!* taValori[5,1]="poAct.nract"
|
|
*!* taValori[5,2]=Alltrim(Str(lnNumarFactura))
|
|
*!* taValori[5,3]=.F.
|
|
|
|
If !Empty(pnid_sectie)
|
|
Dimension taValori[lnLungime+2,3]
|
|
taValori[lnLungime+1,1]="poAct.id_sectie"
|
|
taValori[lnLungime+1,2]=Alltrim(Str(pnid_sectie))
|
|
taValori[lnLungime+1,3]=.T.
|
|
taValori[lnLungime+2,1]="poAct.sectie"
|
|
taValori[lnLungime+2,2]=Alltrim(pcsectie)
|
|
taValori[lnLungime+2,3]=.T.
|
|
lnLungime = lnLungime+2
|
|
Endif
|
|
|
|
Dimension taValori[lnLungime+2,3]
|
|
taValori[lnLungime+1,1]="poAct.id_fdoc"
|
|
*!* modificare v 2.0.28
|
|
*!* taValori[lnLungime+1,2]=Alltrim(Str(gnid_fdoc_factura))
|
|
taValori[lnLungime+1,2] = Iif(Empty(Nvl(pnIdAsig,0)),Alltrim(Str(gnid_fdoc_fact)),Alltrim(Str(gnid_fdoc_factasig)))
|
|
*!* modificare v 2.0.28 ^
|
|
taValori[lnLungime+1,3]=.T.
|
|
taValori[lnLungime+2,1]="poAct.fdoc"
|
|
taValori[lnLungime+2,2]='FACTURA'
|
|
taValori[lnLungime+2,3]=.T.
|
|
lnLungime=lnLungime+2
|
|
|
|
lans(lnIdSet,.F.,.T.,@taValori)
|
|
|
|
If buton=2
|
|
Do deschid_actc
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* Do dezaloca_numar_fact In oserii_numere.prg
|
|
poGeneratorNumere.dezaloca_numere()
|
|
Return
|
|
Endif
|
|
|
|
*!* SELECT actactan
|
|
*!* GO TOP
|
|
*!* lnNumarFacturaAct = nract
|
|
*!* IF lnNumarFacturaAct <> lnNumarFactura
|
|
*!* DO dezaloca_numar_fact In oserii_numere.prg
|
|
*!* ENDIF
|
|
******************************************
|
|
|
|
|
|
******************************************
|
|
&& introducere suma factura + incasare
|
|
Use In (SELECT('v_nom_casa'))
|
|
lcSql=[select id_part,nume from vcoresp_tip_part where tip_partener IN ('BANCA LEI', 'CASA LEI')]
|
|
lnSucces=goExecutor.oExecute(lcSql,'v_nom_casa')
|
|
If lnSucces < 0
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* Do dezaloca_numar_fact In oserii_numere.prg
|
|
poGeneratorNumere.dezaloca_numere()
|
|
amessagebox(goExecutor.cEroare,0+16,'Eroare')
|
|
Return
|
|
Endif
|
|
|
|
local lnTvaIncasare, lcContTVA
|
|
Select actactan
|
|
Calculate Max(tva_incasare) To lnTvaIncasare && 0/1
|
|
|
|
lnProcTVA = GetProcTvaStandard() && 21
|
|
lcTipJ = "JV"
|
|
llTaxareInversa = .F.
|
|
|
|
pnIdJtvaColoana = ProcentTva2IdJtva(m.lnProcTVA, m.lcTipJ, m.llTaxareInversa, m.lnTvaIncasare)
|
|
loJtva = GeJtvaColoana(m.pnIdJtvaColoana, m.lnTVAIncasare, m.lcTipJ)
|
|
pnIdTva = loJtva.id_tva
|
|
pnProcTva = 1 + m.lnProcTVA / 100
|
|
|
|
lcContTVA = IIF(lnTvaIncasare = 1, [4428], [4427])
|
|
|
|
Private pnTotalfTva,pnTotalTva,pnTotalcTva,pnNrChit,pnIdCasa,pcCasa, pcSerieChit,pnPretCuTva, pnPOS
|
|
Store 0 To pnTotalfTva,pnTotalTva,pnTotalcTva,pnIdCasa,pnNrChit,pnPretCuTva, pnPOS
|
|
Store [] To pcSerieChit, pcCasa && modificare v 2.0.28
|
|
pniesire=1
|
|
*!* modificare v 2.0.42 : IIF(lnTipFactura=3,1,2) in loc de 1
|
|
ofrmincasare=Createobject('frm_incasare_avans',lnTvaIncasare,IIF(lnTipFactura=3,1,2))
|
|
ofrmincasare.lb_titlu_alb_b121.Caption=Upper(Alltrim("FACTURA "+lcTip))
|
|
ofrmincasare.Show(1)
|
|
If pniesire!=1
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* Do dezaloca_numar_fact In oserii_numere.prg
|
|
poGeneratorNumere.dezaloca_numere()
|
|
Return
|
|
Endif
|
|
Use In v_nom_casa
|
|
******************************************
|
|
|
|
Select actactan
|
|
Replace suma With pnTotalfTva,explicatia With "MANOPERA "+lcTip,id_jtva_coloana With pnIdJtvaColoana,proc_tva With pnProcTva For Alltrim(scc)='704' Or Alltrim(scc)='419'
|
|
Replace suma With pnTotalTva,explicatia With "TVA MANOPERA "+lcTip,id_sectie With pnid_sectie,sectie With pcsectie,id_jtva_coloana With pnIdTva,proc_tva With pnProcTva For scc=lcContTVA
|
|
*!* Replace proc_tva With m.ctvam,explicatia With "MANOPERA "+lcTip For Alltrim(scd)='411'
|
|
*!* modificare v 2.1.0 : am adaugat Alltrim(scd) = lcContTva
|
|
Replace proc_tva With pnProcTva For Alltrim(scd)='4111' or alltrim(scd) = lcContTva
|
|
|
|
If pnTipIncasare>1
|
|
*!* If !Empty(pnNrChit)
|
|
*!* incasare = 5311
|
|
Select actactan
|
|
Go Top
|
|
Scatter Name oactan
|
|
Append Blank
|
|
Gather Name oactan Fields Except id_jtva_coloana,proc_tva && Fields Except suma, ascc, scc, id_partc
|
|
Replace nr_nota With Recno(),partc With partd, id_partc With id_partd, suma With pnTotalcTva
|
|
Replace scc With Alltrim(scd), ascc With ascd, scd With '5311', ascd With '', perecheC With nract,nract With pnNrChit
|
|
Replace id_partd With pnIdCasa,partd With m.pcCasa,neimpozab With 0, explicatia With 'INCASARE '+lcTip, id_factd With id_fact, datascad With {}
|
|
Do Case
|
|
Case pnTipIncasare=2
|
|
Replace id_fdoc With gnid_fdoc_bonfiscal,fdoc With 'BON FISCAL'
|
|
Case pnTipIncasare=3
|
|
Replace id_fdoc With gnid_fdoc_chitanta,fdoc With 'CHITANTA' && modificare v 2.0.29 : am inlocuit gnid_fdoc_incasare
|
|
Endcase
|
|
*!* modificare v 2.1.0
|
|
If lnTvaIncasare = 1
|
|
local lnTotalTvaNeex
|
|
Select actactan
|
|
calculate sum(suma) for scc = lcContTva to lnTotalTvaNeex
|
|
Locate For scc = lcContTVA
|
|
If Found()
|
|
Scatter Name otva
|
|
Locate For scd = '5311'
|
|
If Found()
|
|
Scatter Name oincasare
|
|
Append Blank
|
|
Gather Name oincasare Fields Except id_partc,id_partd,partc,partd,scc,scd,id_fact,pereched,perechec,id_jtva_coloana,suma
|
|
Replace suma with lnTotalTvaNeex,scd With '4428',scc With '4427',id_fact With -5,;
|
|
perechec With otva.nract,id_jtva_coloana With getIdTva(pnIdTva,0),proc_tva with otva.proc_tva
|
|
Endif
|
|
Endif
|
|
release lnTotalTvaNeex
|
|
Endif
|
|
*!* modificare v 2.1.0 ^
|
|
|
|
IF m.pnTipIncasare = 2 AND m.pnPOS = 1
|
|
SELECT actactan
|
|
Locate For scd = '5311'
|
|
If Found()
|
|
REPLACE explicatia4 WITH partd && numele bancii
|
|
REPLACE scd WITH '5125', id_partd WITH id_partc, partd WITH partc
|
|
ENDIF
|
|
ENDIF
|
|
Endif
|
|
|
|
Select actactan
|
|
Scan
|
|
Scatter Name poactan
|
|
If Type('poActan.cont') = 'U'
|
|
x = AddProperty(poactan,'cont',poactan.scc)
|
|
Endif
|
|
poactan.ascc = calc_analitic(poactan.scc,'poActan','poActan')
|
|
Select actactan
|
|
Replace ascc With poactan.ascc
|
|
|
|
Release poactan
|
|
Select actactan
|
|
Scatter Name poactan
|
|
If Type('poActan.cont') = 'U'
|
|
x = AddProperty(poactan,'cont',poactan.scd)
|
|
Endif
|
|
poactan.ascd = calc_analitic(poactan.scd,'poActan','poActan')
|
|
Select actactan
|
|
Replace ascd With poactan.ascd
|
|
Endscan
|
|
|
|
******************************************
|
|
*!* modificare 09.07
|
|
*!* AddProperty(ocomanda,'delegat','')
|
|
*!* AddProperty(ocomanda,'eliberatde','')
|
|
*!* AddProperty(ocomanda,'bi','')
|
|
*!* AddProperty(ocomanda,'nrinmat_exp',ocomanda.nrinmat)
|
|
*!* ofrmdelegat=Createobject("frm_delegat_factura")
|
|
*!* ofrmdelegat.nidpartener=ocomanda.id_partener
|
|
*!* ofrmdelegat.cclient=ocomanda.nume
|
|
*!* ofrmdelegat.cnrinmat_exp=ocomanda.nrinmat_exp
|
|
*!* ofrmdelegat.Show(1)
|
|
******************************************
|
|
|
|
Private buton
|
|
buton=1
|
|
Select actactan
|
|
Replace all tva_incasare with lnTvaIncasare && modificare v 2.1.0
|
|
Go Top
|
|
*!* modificare v 2.0.17
|
|
*!* Do Form verificare With .T.
|
|
If !verificare_note_contabile('actactan', .T.,.T., .F.)
|
|
Do Form verificare With .T.
|
|
Endif
|
|
*!* modificare v 2.0.17 ^
|
|
If buton=2
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* Do dezaloca_numar_fact In oserii_numere.prg
|
|
poGeneratorNumere.dezaloca_numere()
|
|
Return
|
|
Endif
|
|
|
|
lcSql = [begin pack_auto.dev_adauga_oper_fact(?gcS,?pnIdOrdl,?pnid_sectie,?pnid_norme,?pnTotalFTva,?pntimpn,?pnore,]+;
|
|
[?gnIdUtil,?pnid_mecanic); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
Sqlrollback(gnHandle)
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* Do dezaloca_numar_fact In oserii_numere.prg
|
|
poGeneratorNumere.dezaloca_numere()
|
|
amessagebox(goExecutor.cEroare,0+16,'Eroare')
|
|
Return
|
|
Endif
|
|
|
|
*!* modificare v 2.0.28
|
|
*!* Select actactan
|
|
*!* Do oscrie_in_fisiere
|
|
*!* *!* Sqlrollback(gnHandle)
|
|
*!* Sqlcommit(gnHandle)
|
|
*!* SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* amessagebox("Factura a fost inregistrata!",0+64,"Confirmare facturare")
|
|
*!* modificare v 2.0.28 ^
|
|
******************************************
|
|
&& listari
|
|
*!* DO listare_precomanda WITH pnIdOrdl
|
|
*!* modificare v 2.0.28
|
|
*!* Do listare_FACTURA With ocomanda.id_partener,'actactan',ocomanda.nrord,ocomanda.nrinmat,Iif(lnTipFactura=2,lnTipFactura,3),0,0,0,0,0,0,pcdenop,lnTipFactura In oproceduri_listari
|
|
*!* modificare v 2.0.35
|
|
*!* If factureaza_deviz(ocomanda.id_lucrare,ocomanda.nrord,ocomanda.nrinmat,pcdenop)
|
|
*!* modificare v 2.0.41 : am adaugat Alltrim(Str(ocomanda.id_lucrare))
|
|
If factureaza_deviz(ocomanda.id_lucrare,ocomanda.nrord,ocomanda.nrinmat,pcdenop,,,,,,,ALLTRIM(STR(pnIdOrdl)),Alltrim(Str(ocomanda.id_lucrare)))
|
|
*!* modificare v 2.0.35 ^
|
|
Sqlcommit(gnHandle)
|
|
Else
|
|
poGeneratorNumere.dezaloca_numere()
|
|
Sqlrollback(gnHandle)
|
|
Endif
|
|
SQLSetprop(gnHandle,"Transactions",1)
|
|
*!* modificare v 2.0.28 ^
|
|
Release ocomanda
|
|
*!* toClient : id-ul de client
|
|
*!* tcCursor : Alias'ul cursorului
|
|
*!* tnTipfact : 1 - finala, 2 - spalare , 3 - restul
|
|
*!* tnProcDiscM,tnProcDiscN,tnProcDiscM,tnDiscountN,tnDiscountM,tnDiscountTvaM,tnDiscountTvaN,tcdenop
|
|
Endproc
|
|
*------------------------------sfarsit procedura factureaza-----------------------------------------
|
|
******************************************************************************************************************************
|
|
Procedure factureaza_deviz
|
|
Lparameters tnIdComanda,tcNrOrd,tcNrInmat,tcDenop,tnMultiple,tnDiscountM,tnDiscountN,tnProcDiscM,tnProcDiscN,tnIdOrdl,tcSirIdOrdl,tcSirIdLucrare,tnPretCuTva
|
|
*!* Parameters tnIdClient,tcCursor,tcSirNrord,tcNrInmat,tnTipfact,tnProcDiscM,tnProcDiscN,tnDiscountM,tnDiscountN,tnDiscountTvaM,tnDiscountTvaN,tcdenop,tnTipFactura
|
|
Local lnProcTvav,lnIdJTvaColoana,lnIdSet,llScris,ltDataOra,lnPretCuTva
|
|
LOCAL llArticolCumulat, llFacturaZero, lnTaxCode
|
|
lnProcTvav = 0
|
|
lnIdJTvaColoana = Null
|
|
lnTaxCode = NULL
|
|
lnIdSet = 0
|
|
lnDiscountM = Iif(Empty(tnDiscountM),0,tnDiscountM)
|
|
lnDiscountN = Iif(Empty(tnDiscountN),0,tnDiscountN)
|
|
lnProcDiscM = Iif(Empty(tnProcDiscM),0,tnProcDiscM)
|
|
lnProcDiscN = Iif(Empty(tnProcDiscN),0,tnProcDiscN)
|
|
lnMultiple = Iif(Empty(tnMultiple),0,tnMultiple)
|
|
lcDenop = Iif(Empty(tcDenop),[],Alltrim(Upper(tcDenop)))
|
|
lnPretCuTva = IIF(EMPTY(tnPretCuTva),0,tnPretCuTva) && modificare v 2.0.41
|
|
lcCursorDeviz = [crsdeviz] && modificare v 2.0.41
|
|
llFacturaZero = .F.
|
|
|
|
If Used('crsvanztemp')
|
|
Use In crsvanztemp
|
|
Endif
|
|
If Used('crsfactura')
|
|
Use In crsfactura
|
|
Endif
|
|
If Used(lcCursorDeviz)
|
|
Use In (lcCursorDeviz)
|
|
Endif
|
|
|
|
creeaza_facturacrs([crsfactura])
|
|
*!* modificare v 2.0.41
|
|
*!* Create Cursor (lcCursorDeviz)(denumire c(100),explicatie c(240),cante N(20,4),pretv N(20,4),proc_tvav N(7,3),discunitar N(20,4),id_jtva_coloana N(10),;
|
|
*!* pretvval N(20,4),id_articol N(10),um c(10) Null,serie c(10) Null Default Null,codmat c(50) Null Default Null,Pret N(7,3),pretd N(7,3),;
|
|
*!* id_valuta N(10) Null Default Null)
|
|
CREATE CURSOR (lcCursorDeviz)(id_vanzare_det n(10) DEFAULT RECNO(),id_articol N(10),explicatie c(240),denumire c(100),;
|
|
lot C(20) NULL DEFAULT null, serie c(10) NULL DEFAULT null,codmatf c(50) NULL DEFAULT null,codmat c(50) NULL DEFAULT null,;
|
|
codbare c(50) NULL DEFAULT null,id_jtva_coloana N(10),ID_JTVA_COLOANA_EX N(10) null,taxcode N(6) null, pret_achizitie N(20,4) DEFAULT 0,cantitate N(20,4),;
|
|
proc_Tvav N(7,3),um c(10) null,pret_cu_tva N(1) DEFAULT 0,pret N(20,4),;
|
|
pret_val N(20,4) DEFAULT 0,discount_unitar N(20,4),discount_unitar_val N(20,4) DEFAULT 0,;
|
|
id_vanzare_set N(10) NULL DEFAULT null,id_gestiune N(10) NULL DEFAULT null,id_ctr N(20) NULL DEFAULT null,;
|
|
numar_contract c(10) NULL DEFAULT null,id_valuta N(10) DEFAULT 0,tip_valuta N(1) DEFAULT 0,;
|
|
CURS N(10,4) DEFAULT 0,multiplicator n(1) DEFAULT 1,nume_val c(50) DEFAULT " ")
|
|
*!* modificare v 2.0.41 ^
|
|
|
|
Select actactan
|
|
Locate For proc_tva <> 0
|
|
If Found()
|
|
lnProcTvav = proc_tva
|
|
lnIdJTvaColoana = id_jtva_coloana
|
|
lnTaxCode = taxcode
|
|
ENDIF
|
|
|
|
* Verific daca factura are toate sumele 0. Daca are toate sumele 0, inregistrez totusi factura in vanzari, in scopul listarii.
|
|
Select actactan
|
|
LOCATE FOR suma <> 0
|
|
llFacturaZero = !FOUND()
|
|
|
|
Sum suma For Alltrim(scd) = '4111' And Alltrim(scc) = '707' And Left(Alltrim(explicatia),3) = "MAT" To lnMaterialeFTva
|
|
Sum suma For Alltrim(scd) = '4111' And Alltrim(scc) = '704' And Left(Alltrim(explicatia),3) = "MAN" To lnManoperaFTva
|
|
Sum suma For Alltrim(explicatia)='STORNARE AVANS' And !Inlist(Alltrim(scc),'4427','4428') To lnStornareAvansFTva
|
|
Sum suma For Alltrim(scd) = '4111' And Alltrim(scc) = Iif(gnAvans419=1,[419],[707]) And Like([AVANS*],Upper(Alltrim(explicatia))) To lnAvansFTva
|
|
*!* modificare v 2.0.41
|
|
Sum suma For Alltrim(scd) = '4111' And Like([AVANS*],Upper(Alltrim(explicatia))) To lnAvansCTva
|
|
Sum suma For Alltrim(scd) = '4111' AND (Left(Alltrim(explicatia),3) = "MAT" OR Left(Alltrim(explicatia),7) = "TVA MAT") To lnMaterialeCTva
|
|
*!* modificare v 2.1.12 : am pus (-1)*SIGN(...)*ABS(suma) in loc de suma
|
|
SUM (-1)*SIGN(lnMaterialeFTVA)*ABS(suma) FOR LEFT(ALLTRIM(explicatia),12) = "DISCOUNT MAT" TO lnDiscountNCTva
|
|
SUM (-1)*SIGN(lnManoperaFTva)*ABS(suma) FOR LEFT(ALLTRIM(explicatia),12) = "DISCOUNT MAN" TO lnDiscountMCTva
|
|
*!* modificare v 2.0.41 ^
|
|
*!* modificare v 2.0.42
|
|
Sum suma For Alltrim(scd) = '4111' And (Left(Alltrim(explicatia),3) = "MAN" OR Left(Alltrim(explicatia),7) = "TVA MAN") To lnManoperaCTva
|
|
*!* modificare v 2.0.42 ^
|
|
Locate For id_set <> 0
|
|
If Found()
|
|
lnIdSet = id_set
|
|
Endif
|
|
Private poDate
|
|
poDate = Createobject("oDateFactura",lnIdSet,-12)
|
|
*!* modificare ROAAUTO v 2.1.0 : tva_incasare
|
|
Select Distinct dataireg,id_fdoc,dataact,datascad,serie_act,nract,id_partd As id_part,nume_val,id_valuta,id_lucrare,tva_incasare ;
|
|
From actactan ;
|
|
WHERE Alltrim(scd) = '4111' ;
|
|
Into Cursor crstemp
|
|
|
|
*!* modificare v 2.0.41
|
|
*!* If lnAvansFTva <> 0
|
|
*!* Insert Into crsdeviz(denumire,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd) ;
|
|
*!* values("AVANS",1,lnAvansFTva,lnProcTvav,0,lnIdJTvaColoana,0,-10002,0,0)
|
|
IF (lnAvansFTva<>0 AND lnPretCuTva = 0) OR (lnAvansCTva<>0 AND lnPretCuTva = 1)
|
|
*!* Insert Into (lcCursorDeviz)(denumire,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd,cu_tva) ;
|
|
*!* values("AVANS",1,IIF(lnAvansPretCTva=1,lnAvansCTva,lnAvansFTva),lnProcTvav,0,lnIdJTvaColoana,0,-10002,0,0,lnAvansPretCTva)
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,pret,discount_unitar,pret_cu_tva) ;
|
|
values(-100005,"AVANS","",1,"",lnIdJTvaColoana,lnProcTvav,lnTaxCode,IIF(lnPretCuTva=1,lnAvansCTva,lnAvansFTva),0,lnPretCuTva)
|
|
*!* modificare v 2.0.41 ^
|
|
Endif
|
|
|
|
*!* modificare v 2.0.41
|
|
*!* If lnMaterialeFTva <> 0
|
|
*!* Insert Into (lcCursorDeviz)(denumire,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd) ;
|
|
*!* values ("MATERIALE",1,lnMaterialeFTva,lnProcTvav,ABS(lnDiscountN),lnIdJTvaColoana,0,-10001,0,0)
|
|
IF (lnMaterialeFTva<>0 AND !glAutoBonDet) OR (lnMaterialeCTva <> 0 AND glAutoBonDet) OR m.llFacturaZero
|
|
*!* modificare v 2.1.12 : am pus SIGN(lnMaterialeFTVA) pentru ca discountul trebuie sa aiba acelasi semn ca totalul de la materiale
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,pret,discount_unitar,pret_cu_tva) ;
|
|
values (-100003,"MATERIALE","",1,"",lnIdJTvaColoana,lnProcTvav,lnTaxCode,IIF(glAutoBonDet,lnMaterialeCTva,lnMaterialeFTva),;
|
|
SIGN(lnMaterialeFTva)*IIF(glAutoBonDet,ABS(lnDiscountNCTva),ABS(lnDiscountN)),IIF(glAutoBonDet,1,0))
|
|
*!* modificare v 2.0.41 ^
|
|
Endif
|
|
|
|
*!* modificare v 2.0.42
|
|
*!* If lnManoperaFTva <> 0
|
|
*!* *!* modificare v 2.0.41
|
|
*!* *!* Insert Into (lcCursorDeviz)(denumire,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd,explicatie) ;
|
|
*!* *!* values(Iif(lnIdSet=31003,"INSPECTIE TEHNICA PERIODICA",Iif(lnIdSet=31004,"SPALARE AUTO","MANOPERA")),1,lnManoperaFTva,lnProcTvav,ABS(lnDiscountM),lnIdJTvaColoana,0,Iif(lnIdSet=31003,-10004,Iif(lnIdSet=31004,-10005,-10000)),0,0,Iif(lnIdSet=31005,lcDenop,[]))
|
|
*!* Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,pret,discount_unitar) ;
|
|
*!* values(Iif(lnIdSet=31003,-100007,Iif(lnIdSet=31004,-100008,-100000)),;
|
|
*!* Iif(lnIdSet=31003,"INSPECTIE TEHNICA PERIODICA",Iif(lnIdSet=31004,"SPALARE AUTO","MANOPERA")),;
|
|
*!* Iif(lnIdSet=31005,lcDenop,[]),1,"",;
|
|
*!* lnIdJTvaColoana,lnProcTvav,lnManoperaFTva,IIF(glAutoBonDet,0,ABS(lnDiscountM)))
|
|
IF (lnManoperaFTva <> 0 AND !INLIST(lnIdSet,31003,31004)) OR m.llFacturaZero
|
|
*!* modificare v 2.1.12 : am pus SIGN(lnManoperaFTva) pentru ca discountul trebuie sa aiba acelasi semn ca totalul de la manopera
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,pret,discount_unitar) ;
|
|
values(-100000,"MANOPERA",Iif(lnIdSet=31005,lcDenop,[]),1,"",;
|
|
lnIdJTvaColoana,lnProcTvav,lnTaxCode,lnManoperaFTva,IIF(glAutoBonDet,0,SIGN(lnManoperaFTva)*ABS(lnDiscountM)))
|
|
*!* modificare v 2.0.42 ^
|
|
If glAutoBonDet AND lnDiscountMCTva <> 0
|
|
*!* modificare v 2.1.12 : am pus SIGN(lnManoperaFTva) pentru ca discountul trebuie sa aiba acelasi semn ca totalul de la manopera
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,Pret,pret_cu_tva) ;
|
|
values(-100001,"DISCOUNT MANOPERA","Discount "+ALLTRIM(STR(lnProcDiscM,5,2))+" %",1,"",lnIdJTvaColoana,lnProcTvav,lnTaxCode,(-1)*SIGN(lnManoperaFTva)*Abs(lnDiscountMCTva),1)
|
|
Endif
|
|
*!* modificare v 2.0.41 ^
|
|
Endif
|
|
|
|
*!* modificare v 2.0.42
|
|
If (m.lnManoperaCTva <> 0 And Inlist(lnIdSet,31003,31004))
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,Pret,pret_cu_tva) ;
|
|
values(Iif(lnIdSet=31003,-100007,-100008),;
|
|
Iif(lnIdSet=31003,"INSPECTIE TEHNICA PERIODICA","SPALARE AUTO"),1,"",;
|
|
lnIdJTvaColoana,lnProcTvav,lnTaxcode,lnManoperaCTva,1)
|
|
Endif
|
|
*!* modificare v 2.0.42 ^
|
|
|
|
*** Cumulez MATERIALE + MANOPERA pentru optiunea REPARATII AUTO (in loc de materiale + manopera)
|
|
*** doar in cazul in care nu doresc detaliat materialele pe bonul fiscal si pe factura, fara facturi ITP, spalare auto
|
|
llArticolCumulat = .F.
|
|
IF !m.glAutoBonDet AND !Inlist(lnIdSet,31003,31004) AND TYPE('gnAUTOIdArticolReparatii') = 'N' AND !EMPTY(NVL(m.gnAUTOIdArticolReparatii, 0))
|
|
PRIVATE pcArticolReparatii
|
|
pcArticolReparatii = ''
|
|
lnSucces = goExecutor.oSelect2Value('select denumire from nom_articole where id_articol = ?gnAUTOIdArticolReparatii',@pcArticolReparatii)
|
|
IF lnSucces < 0
|
|
aMESSAGEBOX(goExecutor.cEroare, 0+48,_screen.Caption)
|
|
ENDIF
|
|
IF EMPTY(m.pcArticolReparatii)
|
|
pcArticolReparatii = 'REPARATII AUTO'
|
|
ENDIF
|
|
SELECT m.gnAUTOIdArticolReparatii as id_articol, m.pcArticolReparatii as denumire, MAX(explicatie) as explicatie, ;
|
|
1 as cantitate, '' as um, id_jtva_coloana, proc_Tvav, taxcode, SUM(pret) as pret, SUM(discount_unitar) as discount_unitar, pret_cu_tva ;
|
|
FROM (lcCursorDeviz) ;
|
|
WHERE INLIST(id_articol,-100003, -100000, -100002, -100001) ;
|
|
GROUP BY id_jtva_coloana, proc_Tvav, taxcode, pret_cu_tva ;
|
|
INTO CURSOR crsArtCumulat
|
|
|
|
DELETE FROM (lcCursorDeviz) WHERE INLIST(id_articol,-100003, -100000, -100002, -100001)
|
|
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode, pret,discount_unitar,pret_cu_tva) ;
|
|
SELECT id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,pret,discount_unitar,pret_cu_tva ;
|
|
FROM crsArtCumulat
|
|
llArticolCumulat = .T.
|
|
USE IN (SELECT('crsArtCumulat'))
|
|
ENDIF
|
|
|
|
IF lnStornareAvansFTva <> 0
|
|
*!* modificare v 2.0.41
|
|
*!* Insert Into (lcCursorDeviz)(denumire,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd) ;
|
|
*!* values("STORNARE AVANS",1,lnStornareAvansFTva,lnProcTvav,0,lnIdJTvaColoana,0,-10003,0,0)
|
|
Local loStornare
|
|
lcSql = [{call pack_auto.citeste_sume_stornare(']+tcSirIdLucrare+[',',')}]
|
|
lcCursorStornare = [crsstornari]
|
|
If goExecutor.oExecuta(lcSql,lcCursorStornare)
|
|
Select (lcCursorStornare)
|
|
Scan
|
|
Scatter Name loStornare
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,Pret,discount_unitar,pret_cu_tva) ;
|
|
values(-100006,"STORNARE AVANS","",1,"",loStornare.id_jtva_coloana, loStornare.proc_tvav,loStornare.taxcode,loStornare.Pret,0,loStornare.pret_cu_tva)
|
|
Select (lcCursorStornare)
|
|
Endscan
|
|
Endif
|
|
Use In (lcCursorStornare)
|
|
Release loStornare
|
|
*!* modificare v 2.0.41 ^
|
|
Endif
|
|
|
|
If Used('crsalteserv')
|
|
*!* modificare v 2.0.41
|
|
*!* Insert Into (lcCursorDeviz)(denumire,um,cante,pretv,proc_tvav,discunitar,id_jtva_coloana,pretvval,id_articol,Pret,pretd) ;
|
|
*!* Select denumire,um,cantitate,pretftva,lnProcTvav,0,lnIdJTvaColoana,0,id_articol,0,0 From crsalteserv Where !Deleted()
|
|
Insert Into (lcCursorDeviz)(id_articol,denumire,explicatie,cantitate,um,id_jtva_coloana,proc_Tvav,taxcode,pret,discount_unitar) ;
|
|
Select id_articol,denumire,"",cantitate,um,CAST(lnIdJTvaColoana as N(6) null) as id_jtva_coloana,CAST(lnProcTvav as N(7,2) null) as proc_tvav,CAST(lnTaxCode as N(6) null) as taxcode,pretftva,0 From crsalteserv Where !Deleted()
|
|
*!* modificare v 2.0.41 ^
|
|
Endif
|
|
|
|
* In xml eFactura nu este permis pret unitar negativ. Cantitate negativa si pret pozitiv
|
|
SELECT (m.lcCursorDeviz)
|
|
SCAN FOR pret < 0
|
|
REPLACE cantitate WITH -cantitate, pret WITH -pret, discount_unitar WITH discount_unitar
|
|
ENDSCAN
|
|
|
|
Select crstemp
|
|
poDate.dataireg = dataireg
|
|
poDate.id_fdoc = id_fdoc
|
|
poDate.dataact = dataact
|
|
poDate.datascad = datascad
|
|
poDate.nract = nract
|
|
poDate.serie_act = Alltrim(serie_act)
|
|
poDate.id_client = id_part
|
|
poDate.nume_valuta = nume_val
|
|
poDate.id_valuta = id_valuta
|
|
poDate.id_lucrare = id_lucrare
|
|
poDate.zi_curs = dataact
|
|
poDate.id_ordl = IIF(EMPTY(NVL(tnIdOrdl,0)),NULL,tnIdOrdl) && modificare v 2.0.33
|
|
poDate.tva_incasare = tva_incasare && modificare v 2.1.0
|
|
*!* poDate.id_sectie = id_sectie
|
|
Use In crstemp
|
|
|
|
*!* ofrmdelegat=Createobject("frm_delegat_factura")
|
|
*!* ofrmdelegat.nidpartener = poDate.id_client
|
|
*!* ofrmdelegat.cclient = poDate.nume_client
|
|
*!* ofrmdelegat.cnrinmat_exp = tcNrInmat && poDate.nrinmat_del
|
|
*!* ofrmdelegat.Show(1)
|
|
*!* Release ofrmdelegat
|
|
Private ofrmdatesupl
|
|
ltDataOra = Get_Ora()
|
|
|
|
* Daca initializez vanzari.tip_saft cu cod 751 (factura in scop informativ) in loc de 380 (factura initiala)
|
|
* pentru facturile incasate cu bon fiscal, initializez cu tip 751 ca sa nu apara duplicate in decontul TVA precompletat
|
|
IF TYPE('gnEFactura_tip_saft_bf') = 'N' AND !EMPTY(NVL(m.gnEFactura_tip_saft_bf, 0))
|
|
IF pnTipIncasare = 2 && incasare bon fiscal
|
|
poDate.tip_saft = m.gnEFactura_tip_saft_bf && 751/380
|
|
ENDIF
|
|
ENDIF
|
|
|
|
poDate.dataora_exp = ltDataOra
|
|
ofrmdatesupl = Createobject("frm_alte_date")
|
|
ofrmdatesupl.Show(1)
|
|
Release ofrmdatesupl
|
|
If gnButon = 2
|
|
lnSucces = -1
|
|
llScris = .F.
|
|
Else
|
|
Select actactan
|
|
Locate For Alltrim(scd) = '5311'
|
|
Do Case
|
|
Case Found() And pnTipIncasare=2 && bon fiscal
|
|
poDate.ntip_incasare = 2
|
|
poDate.nr_incasare = actactan.nract
|
|
poDate.incasat = actactan.suma
|
|
Case Found() And pnTipIncasare=3 && chitanta
|
|
poDate.ntip_incasare = 11
|
|
poDate.nr_incasare = actactan.nract
|
|
poDate.serie_chit = actactan.serie_act
|
|
poDate.incasat = actactan.suma
|
|
Otherwise
|
|
poDate.ntip_incasare = 0
|
|
ENDCASE
|
|
|
|
SELECT actactan
|
|
LOCATE For Alltrim(scd) = '5125' && efecte de incasat
|
|
IF Found() And m.pnTipIncasare=2 AND m.pnPos = 1 && bon fiscal incasat prin CARD POS
|
|
poDate.ntip_incasare = 2
|
|
poDate.nr_incasare = actactan.nract
|
|
poDate.incasatCARD = actactan.suma
|
|
ENDIF
|
|
|
|
*!* modificare v 2.0.35 : am adaugat STRTRAN(tcNrOrd,[,],[, ]) in loc de tcNrOrd
|
|
Do Case
|
|
*!* modificare v 2.0.43
|
|
Case (lnAvansFTva<>0 And lnPretCuTva = 0) Or (lnAvansCTva<>0 And lnPretCuTva = 1) ;
|
|
OR (lnStornareAvansFTva <> 0 And lnManoperaFTva = 0 And lnMaterialeFTva = 0)
|
|
poDate.text_aditional = [LA ]+Iif(lnMultiple=0,[COMANDA ],[COMENZILE ])+STRTRAN(tcNrOrd,[,],[, ]) + ;
|
|
IIF(!Empty(poDate.text_aditional),Chr(13)+Chr(10)+poDate.text_aditional,[])
|
|
*!* *!* modificare v 2.0.41
|
|
*!* *!* Case lnAvansFTva <> 0
|
|
*!* Case (lnAvansFTva<>0 And lnPretCuTva = 0) Or (lnAvansCTva<>0 And lnPretCuTva = 1)
|
|
*!* Update (lcCursorDeviz) Set explicatie = [LA ]+Iif(lnMultiple=0,[COMANDA ],[COMENZILE ])+STRTRAN(tcNrOrd,[,],[, ]) Where id_articol = -100005
|
|
*!* *!* modificare v 2.0.41 ^
|
|
*!* Case lnStornareAvansFTva <> 0 And lnManoperaFTva = 0 And lnMaterialeFTva = 0
|
|
*!* Update (lcCursorDeviz) Set explicatie = [LA ]+Iif(lnMultiple=0,[COMANDA ],[COMENZILE ])+STRTRAN(tcNrOrd,[,],[, ]) Where id_articol = -100006
|
|
*!* modificare v 2.0.43 ^
|
|
Otherwise
|
|
Do Case
|
|
Case (!Between(lnIdSet,31003,31005) And lnManoperaFTva <> 0 And lnMaterialeFTva <> 0) OR m.llFacturaZero
|
|
lcExplicatie = [MANOPERA SI MATERIALE ]
|
|
Case !Between(lnIdSet,31003,31005) And lnManoperaFTva <> 0
|
|
lcExplicatie = [MANOPERA ]
|
|
Case !Between(lnIdSet,31003,31005) And lnMaterialeFTva <> 0
|
|
lcExplicatie = [MATERIALE ]
|
|
Otherwise
|
|
lcExplicatie = []
|
|
Endcase
|
|
|
|
IF m.llArticolCumulat && REPARATII AUTO in loc DE MANOPERA + MATERIALE
|
|
poDate.text_aditional = Iif(lnMultiple=0,[COMANDA/DEVIZ ],[COMENZI/DEVIZE ])+STRTRAN(tcNrOrd,[,],[, ]) + ;
|
|
IIF(!Empty(poDate.text_aditional),Chr(13)+Chr(10)+poDate.text_aditional,[])
|
|
ELSE
|
|
*!* modificare v 2.0.41 : am adaugat Between(lnIdSet,31003,31005)
|
|
If !Empty(lcExplicatie) OR Between(lnIdSet,31003,31005)
|
|
poDate.text_aditional = lcExplicatie + [CF. ]+Iif(lnMultiple=0,[COMENZII/DEVIZULUI ],[COMENZILOR/DEVIZELOR ])+STRTRAN(tcNrOrd,[,],[, ]) + ;
|
|
IIF(!Empty(poDate.text_aditional),Chr(13)+Chr(10)+poDate.text_aditional,[])
|
|
ENDIF
|
|
ENDIF
|
|
|
|
Endcase
|
|
|
|
*!* modificare v 2.0.41
|
|
*!* Insert Into ([crsfactura]) (id_temp,id_articol,denumire,explicatie,cantitate,cu_tva,pretftva,pretctva,;
|
|
*!* valftva,valtva,valctva,discountftva,discountctva,valdiscountftva,;
|
|
*!* valdiscounttva, valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav,id_jtva_coloana,um,;
|
|
*!* vpretftva,vvalftva,vvaltva,vdiscountftva,vvaldiscountftva,vvaldiscounttva,;
|
|
*!* vvaldiminuatftva,vvaldiminuattva,vvaldiminuatctva,gestionabil) ;
|
|
*!* Select Recno() As id_temp,id_articol,denumire,explicatie, 1 As cantitate,cu_tva,;
|
|
*!* Round(pretv,gnPc) As pretftva,;
|
|
*!* Round(pretv,gnPc) + Round(Round(pretv,gnPc) * (proc_tvav-1),gnPc) As pretctva,;
|
|
*!* Round(Round(pretv,gnPc)*cante,gnPc) As valftva,;
|
|
*!* ROUND(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valtva, ;
|
|
*!* Round(Round(pretv,gnPc)*cante,gnPc) + Round(Round(pretv*cante,gnPc)*(proc_tvav-1),gnPc) As valctva, ;
|
|
*!* ROUND(discunitar,gnPc) As discountftva,;
|
|
*!* ROUND(discunitar,gnPc)+Round(Round(discunitar,gnPc)*(proc_tvav-1),gnPc) As discountctva,;
|
|
*!* Round(Round(discunitar,gnPc)*cante,gnPc) As valdiscountftva, ;
|
|
*!* ROUND(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscounttva, ;
|
|
*!* Round(Round(discunitar,gnPc)*cante,gnPc) + Round(Round(discunitar*cante,gnPc)*(proc_tvav-1),gnPc) As valdiscountctva,;
|
|
*!* Round(Round(pretv-discunitar,gnPc)*cante,gnPc) As valdiminuatftva,;
|
|
*!* ROUND(Round((pretv-discunitar)*cante,gnPc)*(proc_tvav-1),gnPc) As valdiminuattva,;
|
|
*!* ROUND(Round(Round(pretv-discunitar,gnPc)*cante,gnPc)*proc_tvav,gnPc) As valdiminuatctva,;
|
|
*!* proc_tvav,id_jtva_coloana, Nvl(um,Space(50)) As um, ;
|
|
*!* Round(pretvval,gnPVal) As vpretftva,;
|
|
*!* ROUND(Round(pretvval,gnPVal)*cante,gnPVal) As vvalftva,;
|
|
*!* ROUND(Round(Round(pretvval,gnPVal)*cante,gnPVal)*(proc_tvav-1),gnPVal) As vvaltva,;
|
|
*!* 0 As vdiscountftva,0 As vvaldiscountftva,0 As vvaldiscounttva,;
|
|
*!* Round(Round(pretvval-0,gnPc)*cante,gnPc) As vvaldiminuatftva,;
|
|
*!* ROUND(Round((pretvval-0)*cante,gnPc)*(proc_tvav-1),gnPc) As vvaldiminuattva,;
|
|
*!* ROUND(Round(Round(pretvval-0,gnPc)*cante,gnPc)*proc_tvav,gnPc) As vvaldiminuatctva,;
|
|
*!* 0 As gestionabil From (lcCursorDeviz) Where cante <> 0
|
|
|
|
prelucreaza_facturacrs(lcCursorDeviz,[crsfactura],lnProcTvav,0,0)
|
|
*!* modificare v 2.0.41 ^
|
|
|
|
Create Cursor crsvanztemp(id_articol N(20),explicatie c(240),Pret N(20,4),proc_tvav N(7,3),id_jtva_coloana N(10),taxcode N(6) NULL,cantitate N(20,4),discount_unitar N(20,4),;
|
|
id_gestiune N(20),Cont c(4),pret_cu_tva N(1),serie c(100),id_valuta N(10),codmat c(50),Curs N(20,6),multiplicator N(10),pret_achizitie N(20,4),;
|
|
pretd N(20,4),id_valuta_d N(10))
|
|
|
|
*!* modificare v 2.0.41
|
|
*!* Insert Into crsvanztemp(id_articol,explicatie,Pret,proc_tvav,id_jtva_coloana,cantitate,discount_unitar,pret_cu_tva,;
|
|
*!* serie,codmat,id_valuta,Curs,multiplicator,pret_achizitie,pretd,id_valuta_d) ;
|
|
*!* SELECT id_articol,explicatie,pretv As Pret,proc_tvav,id_jtva_coloana,cante As cantitate,;
|
|
*!* discunitar As discount_unitar,cu_tva As pret_cu_tva,Nvl(serie,Space(100)) As serie,Nvl(codmat,Space(50)) As codmat,;
|
|
*!* 0 As id_valuta,0 As Curs,1 As multiplicator,Pret,pretd,Cast(Nvl(id_valuta,0) As N(5)) As id_valuta_d From (lcCursorDeviz) Where cante <> 0
|
|
|
|
Insert Into crsvanztemp(id_articol,explicatie,Pret,proc_tvav,id_jtva_coloana,taxcode,cantitate,discount_unitar,pret_cu_tva,;
|
|
serie,codmat,id_valuta,Curs,multiplicator,pret_achizitie,pretd,id_valuta_d) ;
|
|
SELECT id_articol,explicatie,Pret,proc_tvav,id_jtva_coloana,taxcode,cantitate,;
|
|
discount_unitar,pret_cu_tva,Nvl(serie,Space(100)) As serie,Nvl(codmat,Space(50)) As codmat,;
|
|
id_valuta,Curs,multiplicator,pret_achizitie,0 as pretd,Cast(Nvl(id_valuta,0) As N(5)) As id_valuta_d ;
|
|
From (lcCursorDeviz) Where cantitate <> 0 OR m.llFacturaZero
|
|
*!* modificare v 2.0.41 ^
|
|
|
|
lnSucces = SQLSetprop(gnHandle,"Transactions",2)
|
|
If lnSucces >= 0
|
|
lcSql = [begin ] + gcS +[.pack_facturare.initializeaza_date_factura(] + ;
|
|
[to_date('] + Alltrim(Dtoc(poDate.dataireg,2)) + [','YYYYMMDD'),] + ;
|
|
Nvl(Alltrim(Str(poDate.id_fdoc)),[NULL]) + [,to_date('] + Alltrim(Dtoc(poDate.dataact,2)) + [','YYYYMMDD'),] + ;
|
|
[to_date('] + Alltrim(Dtoc(poDate.datascad,2)) + [','YYYYMMDD'),'] + Nvl(poDate.serie_act,[]) + [',] + ;
|
|
Alltrim(Str(poDate.nract,14,0)) + [,] + ;
|
|
Iif(Isnull(poDate.id_client),[NULL],Alltrim(Str(poDate.id_client))) + [,] + ;
|
|
Iif(Isnull(poDate.id_lucrare),[NULL],Alltrim(Str(poDate.id_lucrare))) + [,] + ;
|
|
Iif(Isnull(poDate.id_sectie),[NULL],Alltrim(Str(poDate.id_sectie))) + [,] + ;
|
|
Iif(Isnull(poDate.id_venchelt),[NULL],Alltrim(Str(poDate.id_venchelt))) + [,] + ;
|
|
Iif(Isnull(poDate.id_responsabil),[NULL],Alltrim(Str(poDate.id_responsabil))) + [,] + ;
|
|
IIF(EMPTY(nvl(poDate.explicatia4,[])),[NULL],['] + STRTRAN(ALLTRIM(poDate.explicatia4),['],['']) + [']) + [,] + ; && modificare v 2.0.33
|
|
IIF(EMPTY(NVL(poDate.id_ordl,0)),[NULL],ALLTRIM(STR(poDate.id_ordl))) + [,NULL,] + ;
|
|
['] + Strtran(Alltrim(Nvl(poDate.descriere,[])),['],['']) + [',] + ;
|
|
Alltrim(Str(poDate.tip)) + [,] + Alltrim(Str(poDate.id_set)) + [,] + ;
|
|
[to_date('] + Dtoc(poDate.zi_curs,2) + [','YYYYMMDD'),] + Alltrim(Str(poDate.id_valuta)) + [,] + ;
|
|
Alltrim(Str(poDate.in_valuta)) + [,] + ;
|
|
alltrim(str(poDate.tva_incasare)) + [,] + ; && modificare ROAAUTO v 2.1.0
|
|
Iif(Isnull(gnIdSucursala),[NULL],Alltrim(Str(gnIdSucursala))) + [,] + ;
|
|
Alltrim(Str(gnIdUtil)) + [,NULL,NULL,] + ;
|
|
IIF(EMPTY(NVL(poDate.tip_saft,0)), [NULL], ALLTRIM(STR(poDate.tip_saft))) + [); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
|
ELSE
|
|
|
|
Private poArticol
|
|
Select crsvanztemp
|
|
Scan
|
|
Scatter Name poArticol
|
|
lcSql = [begin ] + gcS + [.pack_facturare.adauga_articol_factura_deviz(] + ;
|
|
Alltrim(Str(poArticol.id_articol)) + [,] + ;
|
|
['] + Strtran(Alltrim(Nvl(poArticol.explicatie,[])),['],['']) + [',] + ;
|
|
['] + Strtran(Alltrim(Nvl(poArticol.serie,[])),['],['']) + [',] + ;
|
|
Alltrim(Str(poArticol.pret_achizitie,18,gnPPret)) + [,] + ;
|
|
Alltrim(Str(poArticol.pretd,18,gnPVal)) + [,] + ;
|
|
Alltrim(Str(poArticol.id_valuta_d)) + [,] + ;
|
|
Alltrim(Str(poArticol.Pret,18,Iif(poDate.in_valuta = 1,gnPVal,gnPPretV))) + [,] + ;
|
|
Iif(poDate.in_valuta=1,Alltrim(Str(poArticol.id_valuta)),[NULL]) + [,] + ;
|
|
Alltrim(Str(poArticol.Curs,18,6)) + [,] + ;
|
|
Alltrim(Str(poArticol.multiplicator)) + [,] + ;
|
|
Alltrim(Str(poArticol.proc_tvav,18,2)) + [,] + ;
|
|
Alltrim(Str(poArticol.id_jtva_coloana)) + [,] + ;
|
|
Alltrim(Str(poArticol.cantitate,18,gnPCant)) + [,] + ;
|
|
Alltrim(Str(poArticol.discount_unitar,18,gnPPretV)) + [,] + ;
|
|
Alltrim(Str(poArticol.id_gestiune)) + [,] + ;
|
|
['] + Alltrim(Nvl(poArticol.Cont,'')) + [',] + ;
|
|
Alltrim(Str(poArticol.pret_cu_tva)) + [,NULL,NULL,] + IIF(ISNULL(poArticol.taxcode), [NULL], ALLTRIM(TRANSFORM(poArticol.taxcode))) + [); end;]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
|
Exit
|
|
Endif
|
|
Endscan
|
|
If !Used('INFISIERE')
|
|
lcCaleDateMenu = gcAppPath+[\COMUN\DATEMENU\]
|
|
Use &lcCaleDateMenu.INFISIERE In 0 Alias INFISIERE
|
|
Endif
|
|
If lnSucces >= 0
|
|
lnSucces = oscrie_in_fisiere(0,.F.,.T.) && ?
|
|
If lnSucces >= 0
|
|
*!* modificare v 2.0.47 : am adaugat lnIdSet la pack_devize.actualizeaza_deviz
|
|
lcSql = [begin ] + gcS + [.pack_facturare.scrie_in_vanzari(0,] + ;
|
|
IIF(Isnull(poDate.id_delegat),[NULL],Alltrim(Str(poDate.id_delegat))) + [,] + ;
|
|
IIF(Isnull(poDate.id_masina),[NULL],Alltrim(Str(poDate.id_masina))) + [,] + ;
|
|
IIF(Isnull(poDate.id_facturare),[NULL],Alltrim(Str(poDate.id_facturare))) + [,] + ;
|
|
IIF(Isnull(poDate.nListareDetaliata),[0],Alltrim(Str(poDate.nListareDetaliata))) + [,] + ;
|
|
[?poDate.dataora_exp,] + ;
|
|
IIF(Isnull(poDate.id_agent),[NULL],Alltrim(Str(poDate.id_agent))) + [,] + ;
|
|
['] + Strtran(Alltrim(Nvl(poDate.text_aditional,[])),['],['']) + [',?@poDate.nid_vanzare); ] + ;
|
|
[pack_auto.actualizeaza_deviz(] + ALLTRIM(STR(lnProcTvav,10,4)) + [,'] + ALLTRIM(tcSirIdOrdl) + [',] + ALLTRIM(STR(lnIdSet)) + [); end;]
|
|
*!* modificare v 2.0.35 : am scos apelul catre pack_devize.dev_completeaza_rul; e inclus in actualizeaza_deviz
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
|
ELSE
|
|
* Completare vanzari.id_fact cu act.id_fact
|
|
TEXT TO lcSql TEXTMERGE NOSHOW
|
|
merge into vanzari a using
|
|
(SELECT v.cod, (select min(id_fact) from act where cod = v.cod and scd = '4111') as id_fact from vanzari v where v.id_vanzare=?poDate.nid_vanzare) b on (a.cod = b.cod)
|
|
when matched then
|
|
update set id_fact = b.id_fact;
|
|
endtext
|
|
llSucces = goExecutor.oExecuta(m.lcSql)
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endif
|
|
Endif
|
|
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
|
|
lcSql = "ROLLBACK"
|
|
llScris = .F.
|
|
Else
|
|
lcSql = "COMMIT"
|
|
llScris = .T.
|
|
Endif
|
|
lnSucces2 = goExecutor.oExecute(lcSql)
|
|
|
|
Do Case
|
|
Case lnSucces2 < 0
|
|
amessagebox(lcSql + Chr(13) + goExecutor.cEroare,0+16,"Eroare")
|
|
llScris = .F.
|
|
Case lnSucces2 >=0 And lcSql = "COMMIT"
|
|
listeaza_ofacturare()
|
|
If poDate.ntip_incasare = 2 && bon fiscal
|
|
If glAutoBonDet And !Inlist(lnIdSet,31001,31002)
|
|
listeaza_bon_fiscal_det(ltDataOra,poDate.nr_incasare,poDate.incasat,poDate.incasatCARD,poDate.proc_tva,lnProcDiscN,lnProcDiscM)
|
|
Else
|
|
listeaza_bon_fiscal(ltDataOra,poDate.nr_incasare,poDate.incasat,poDate.incasatCARD,poDate.proc_tva,poDate.nract)
|
|
Endif
|
|
Endif
|
|
Endcase
|
|
|
|
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!',48,'Atentie!')
|
|
Endif
|
|
Endif
|
|
|
|
If Used('crsvanztemp')
|
|
Use In crsvanztemp
|
|
Endif
|
|
If Used('crsfactura')
|
|
Use In crsfactura
|
|
Endif
|
|
Release poDate
|
|
Return llScris
|
|
Endproc
|
|
*******************************************************************************************************************
|
|
Procedure listeaza_bon_fiscal_det
|
|
Lparameters ttDataOra,tnNrBon,tnSumaAchitNumerar,tnSumaAchitCARD,tnProcentTva,tnProcDiscMat,tnProcDiscMan
|
|
Local lcCursor
|
|
lcCursor = [crsDateBon]
|
|
Create Cursor (lcCursor) (denumire c(100), um c(10), CANT N(10,4), Pret N(18,4), DEPARTAMENT N(2), proc_tvav N(5,2),PROCENT N(5,2),DISCOUNT N(2) Default 0)
|
|
If Used('crsBonDetaliat')
|
|
Insert Into (lcCursor) (denumire,um,CANT,Pret,DEPARTAMENT,proc_tvav) ;
|
|
Select denumire, Nvl(um,'BUC') As um, CANT, Pret, 1, 1+(tnProcentTva/100) From crsBonDetaliat
|
|
Endif
|
|
If tnProcDiscMat <> 0
|
|
Select (lcCursor)
|
|
Append Blank
|
|
Replace denumire With 'DISCOUNT MATERIALE',um With 'BUC',CANT With 1,PROCENT With tnProcDiscMat,;
|
|
DEPARTAMENT With 1,proc_tvav With 1+(tnProcentTva/100),DISCOUNT With 2
|
|
Endif
|
|
Select crsfactura
|
|
Locate For id_articol = -100000 && Manopera
|
|
If Found()
|
|
lnSumaManopera = valctva
|
|
Select (lcCursor)
|
|
Append Blank
|
|
Replace denumire With 'MANOPERA',um With 'BUC',CANT With 1,Pret With lnSumaManopera,;
|
|
DEPARTAMENT With 1,proc_tvav With 1+(tnProcentTva/100)
|
|
Endif
|
|
If tnProcDiscMan <> 0
|
|
Select (lcCursor)
|
|
Append Blank
|
|
Replace denumire With 'DISCOUNT MANOPERA',um With 'BUC',CANT With 1,PROCENT With tnProcDiscMan,;
|
|
DEPARTAMENT With 1,proc_tvav With 1+(tnProcentTva/100),DISCOUNT With 1
|
|
Endif
|
|
Select crsfactura
|
|
Scan For !Inlist(id_articol,-100000,-100001,-100003) && fara manopera, discount manopera, materiale
|
|
lcDenumire = denumire
|
|
lcUM = Nvl(um,'BUC')
|
|
lnCantitate = cantitate
|
|
lnPret = pretctva
|
|
Select (lcCursor)
|
|
Append Blank
|
|
Replace denumire With lcDenumire,um With lcUM,CANT With lnCantitate,Pret With lnPret,;
|
|
DEPARTAMENT With 1,proc_tvav With 1+(tnProcentTva/100)
|
|
Select crsfactura
|
|
Endscan
|
|
loHash = GetHash()
|
|
loHash.SetValue("cTip", "1;")
|
|
loHash.SetValue("nNumarBon", tnNrBon)
|
|
loHash.SetValue("nValoareNumerar", m.tnSumaAchitNumerar)
|
|
loHash.SetValue("nValoareCARD", m.tnSumaAchitCard)
|
|
loHash.SetValue("nValoareTotal", m.tnSumaAchitNumerar + m.tnSumaAchitCard)
|
|
loHash.SetValue("cCursor",lcCursor)
|
|
loHash.SetValue("tDataOra",ttDataOra)
|
|
goControllerEcr.imprima(loHash)
|
|
Use In (lcCursor)
|
|
Release loHash
|
|
Endproc && listeaza_bon_fiscal_det
|
|
*******************************************************************************************************************
|
|
Procedure listeaza_bon_fiscal
|
|
Lparameters ttDataOra,tnNrBon,tnSumaAchitNumerar,tnSumaAchitCARD,tnProcentTva,tnNrFact
|
|
*!* lcSir=[1;Fact.]+Alltrim(Str(tnNrFact))+[;1;1;1;]+Alltrim(Str(tnSumaAchit*100))+[;1000;0\n]+CRLF
|
|
*!* lcSir=lcSir+[5;]+Alltrim(Str(tnSumaAchit*100))+[;0;0;0\n]+Chr(13)+Chr(10)+Chr(13)+Chr(10)
|
|
*!* imprimare_bon_fiscal(lcSir,tdDataOra,tnNrBon)
|
|
Local lcCursor
|
|
lcCursor = [crsDateBon]
|
|
Create Cursor (lcCursor) (denumire c(100), um c(10), CANT N(10,4), Pret N(18,4), DEPARTAMENT N(2), proc_tvav N(5,2))
|
|
Append Blank
|
|
Replace denumire With [Fact.]+Alltrim(Str(tnNrFact)),CANT With 1,Pret With m.tnSumaAchitNumerar + m.tnSumaAchitCARD,proc_tvav With 1+(tnProcentTva/100),DEPARTAMENT With 1
|
|
|
|
loHash = GetHash()
|
|
loHash.SetValue("cTip", "1;")
|
|
loHash.SetValue("nNumarBon", tnNrBon)
|
|
loHash.SetValue("nValoareNumerar", m.tnSumaAchitNumerar)
|
|
loHash.SetValue("nValoareCARD", m.tnSumaAchitCard)
|
|
loHash.SetValue("nValoareTotal", m.tnSumaAchitNumerar + m.tnSumaAchitCard)
|
|
loHash.SetValue("cCursor",lcCursor)
|
|
loHash.SetValue("tDataOra",ttDataOra)
|
|
goControllerEcr.imprima(loHash)
|
|
Use In (lcCursor)
|
|
Release loHash
|
|
Endproc && listeaza_bon_fiscal
|
|
*******************************************************************************************************************
|
|
Procedure alege_facturi_relistare
|
|
LPARAMETERS tcCursorComenzi
|
|
* tcCursorComenzi cursor cu comenzile selectate pentru listare
|
|
* trebuie sa aiba coloanele: ales N(1), id_lucrare I, nrord C
|
|
|
|
Local lnRaspuns,lcFisier,lcSql,lnSucces,lnIdLucrare,ldDataAct,lnNrAct,lcSelect,lcFiltru,lcSchema,lcOrder,llAfisare,lnnr,lnExp,lncounta,lncountb,lncountcod, lcFieldAles
|
|
Select (m.tcCursorComenzi)
|
|
lnRecno = Recno()
|
|
|
|
If Reccount(m.tcCursorComenzi)>0
|
|
lcFieldAles = tcCursorComenzi + '.ales'
|
|
IF TYPE(m.lcFieldAles) = 'U'
|
|
lnAlese = 0
|
|
ELSE
|
|
Calculate Sum(ales) To lnAlese
|
|
ENDIF
|
|
If lnAlese = 0
|
|
Select * From (tcCursorComenzi) Where Recno() = lnRecno Into Cursor crsRelistare
|
|
Else
|
|
Select * From (tcCursorComenzi) With (Buffering = .T.) Where ales = 1 Into Cursor crsRelistare
|
|
ENDIF
|
|
|
|
Select crsRelistare
|
|
Scan
|
|
Scatter Name ocomanda
|
|
lnIdLucrare=crsrelistare.id_lucrare
|
|
If Used('crsexport')
|
|
Use In crsexport
|
|
Endif
|
|
lcSql = [Select distinct 0 as ales,cod,serie_act,nract,MAX(datascad) as datascad,dataact from act ] + ;
|
|
[where id_set between 31000 and 31020 ] + ;
|
|
[and id_lucrare = ] + Alltrim(Str(lnIdLucrare)) + [ and SUBSTR(scd,1,3) not in ('711','531') ] + ;
|
|
[and sters = 0] + gcCondSucursala + [ and cod in (select cod from vanzari where sters = 0) ] + ;
|
|
[group by cod,serie_act,nract,dataact ] + ;
|
|
[order by dataact,nract]
|
|
lnSucces = goExecutor.oExecute(lcSql,[crsexport])
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,48,"Atentie")
|
|
Else
|
|
Do Case
|
|
Case Reccount([crsexport]) = 0
|
|
amessagebox("Nu exista documente pentru comanda " + Alltrim(crsrelistare.nrord)+ " !",0+48,"Atentie")
|
|
Case Reccount([crsexport]) = 1
|
|
Select ([crsexport])
|
|
relisteaza_factura_deviz(cod,serie_act,nract,dataact,datascad)
|
|
Otherwise
|
|
loFrmDocLuc=Createobject('frm_documente_lucrare',crsrelistare.nrord)
|
|
loFrmDocLuc.Show(1)
|
|
Select ([crsexport])
|
|
Scan For ales = 1
|
|
relisteaza_factura_deviz(cod,serie_act,nract,dataact,datascad)
|
|
Select ([crsexport])
|
|
Endscan
|
|
Endcase
|
|
Endif
|
|
Endscan
|
|
Use In (Select('crsrelistare'))
|
|
Use In (Select('crsexport'))
|
|
|
|
SELECT (m.tcCursorComenzi)
|
|
Go Max(Min(lnRecno,Reccount(tcCursorComenzi)),1)
|
|
Else
|
|
amessagebox("Nu ati selectat nici o comanda!",0+48,"Atentie")
|
|
Endif
|
|
Endproc
|
|
*******************************************************************************************************************
|
|
Procedure relisteaza_factura_deviz
|
|
Lparameters tnCod,tcSerie,tnNrAct,tdDataAct,tdDataScad
|
|
pnCod = tnCod
|
|
poDate=Createobject("oDateFactura",0,0)
|
|
poDate.serie_act = tcSerie
|
|
poDate.nract = tnNrAct
|
|
poDate.dataact = Iif(Type('tdDataAct')='T',Ttod(tdDataAct),tdDataAct)
|
|
poDate.datascad = Iif(Type('tdDataScad')='T',Ttod(tdDataScad),tdDataScad)
|
|
|
|
*!* modificare v 2.1.0 : am adaugat tva_incasare
|
|
lcSql = [select id_vanzare,id_comanda,dataora,dataora_exp,data_act,sters,dataoras,numar_act,serie_act,]+;
|
|
[tip,id_part,discount,disc_fara_tva,discount_evidentiat,text_aditional,facturat,data_facturat,]+;
|
|
[explicatie,altele,client,cod,utilizator,utils,utilfact,delegat,bidelegat,cnpdelegat,]+;
|
|
[nume_agent,nrinmat,total_fara_tva,total_tva,total_cu_tva,id_gestiune,serie_chit,nr_incasare,incasat,]+;
|
|
[in_valuta,sucursala,id_ruta,ruta,curs,multiplicator,nume_val,id_delegat,id_agent,id_masina,valoarea,]+;
|
|
[nume_gestiune,id_sectie,sectie,id_lucrare,lucrare,tip_incasare,afisare_scadenta,id_ordl,tva_incasare from fact_vfacturi where cod = ] + ALLTRIM(STR(m.pnCod))
|
|
lnSucces = goExecutor.oExecute(lcSql,[crsfacturiTemp])
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Select crsfacturiTemp
|
|
poDate.nRelistare = 1
|
|
poDate.nid_vanzare = id_vanzare
|
|
poDate.tip = tip
|
|
poDate.discount_evidentiat = discount_evidentiat
|
|
poDate.text_aditional = Nvl(text_aditional,[])
|
|
poDate.nrinmat = nrinmat
|
|
poDate.nume_delegat = delegat
|
|
poDate.bidelegat = bidelegat
|
|
poDate.cnpdelegat = cnpdelegat
|
|
poDate.dataora_exp = dataora_exp
|
|
poDate.afisare_scadenta = afisare_scadenta
|
|
poDate.listaid = Iif(poDate.tip = 3,Alltrim(Str(id_comanda)), [0])
|
|
poDate.ntip_incasare = tip_incasare
|
|
poDate.serie_chit = Nvl(serie_chit,[])
|
|
poDate.nr_incasare = nr_incasare
|
|
poDate.incasat = incasat
|
|
poDate.id_client = id_part
|
|
poDate.nume_client = client
|
|
poDate.in_valuta = in_valuta
|
|
poDate.id_ordl = id_ordl
|
|
poDate.tva_incasare = tva_incasare && modificare v 2.1.0
|
|
lnDiscount = DISCOUNT
|
|
lnDiscountVal = 0
|
|
Use In (SELECT('crsfacturiTemp'))
|
|
|
|
lcSql = [select * from fact_vfacturi_detalii where id_vanzare = ] + ALLTRIM(STR(poDate.nid_vanzare))
|
|
lnSucces = goExecutor.oExecute(lcSql,[crsdetalii])
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
|
|
Select crsdetalii
|
|
Calculate Max(proc_tvav) To lnProcTvav
|
|
creeaza_facturacrs([crsfactura])
|
|
prelucreaza_facturacrs([crsdetalii],[crsfactura],lnProcTvav,lnDiscount,lnDiscountVal)
|
|
Use In crsdetalii
|
|
listeaza_ofacturare()
|
|
|
|
If Used('crsfactura')
|
|
Use In crsfactura
|
|
Endif
|
|
|
|
Release poDate
|
|
Endproc
|
|
*!* ******************************************************************************************************************************
|
|
*!* Procedure listeaza_ofacturare_deviz
|
|
*!* listeaza_ofacturare()
|
|
*!* If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
|
|
*!* lnSucces2 = goExecutor.oexecute([COMMIT])
|
|
*!* Endif
|
|
*!* Endproc
|
|
*!* ******************************************************************************************************************************
|
|
|
|
*******************************************
|
|
* PROCEDURE export_comanda_xml( )
|
|
* Data/ora : 08/03/13, 08:58:28
|
|
* autor : liana.neagu
|
|
* descriere:
|
|
|
|
****** PARAMETER BLOCK **************
|
|
* Parametri : 0
|
|
*
|
|
*******************************************
|
|
PROCEDURE export_comanda_xml
|
|
tlCautPlus = .t.
|
|
Store "" To loCauta
|
|
*!* tlCautPlus - daca se foloseste formularul caut_alfa_form_plus cu butonul but_start_criterii
|
|
*!* 24.07.2009
|
|
*!* 29.01.2013 : am adaugat um2 in selectie
|
|
Local lcStringCriterii,lcCursor,lcXML,lcDateStyle,lcMark
|
|
LOCAL lcFisierXml,lcCursor ,lcCaleFisier
|
|
|
|
PRIVATE pcCodTehnician
|
|
|
|
lcStringCriterii = ""
|
|
|
|
|
|
lcStringCriterii="Lucrare\nrord\T\none\" + crlf + ;
|
|
"Client\nume\T\none"+ crlf + ;
|
|
"Nr. inmatriculare\nrinmat\T\none"+ crlf+;
|
|
"Serie sasiu\series\T\none"+ crlf+;
|
|
"Data\datai\D\none"+ crlf
|
|
|
|
lcTitluColoane = [Nr lucrare,Data,Client,Nr. inmatriculare,Serie sasiu]
|
|
lccoloane = [nrord,TTOD(datai),nume,nrinmat,series]
|
|
|
|
|
|
lcFiltru = [2=2]
|
|
lcSchema = []
|
|
lcOrder = [datai]
|
|
lcNumeProc = []
|
|
lcTitlu = [Alege_i comenzile (mouse-click pe denumire sau apasa_i SPACE)]
|
|
lcSelect = [select nrord,datai,nume,nrinmat,series,validat,id_ordl from auto_normare_comenzi a]
|
|
lcFiltruOriginal = gcCondLuna + [ and a.validat=0 ]
|
|
pcschema1=['']
|
|
|
|
|
|
llToateIreg = .t.
|
|
lcPrimaColoana = [nrord]
|
|
lnPornire = 1
|
|
lnTipReturn = 1
|
|
lcIdColumn = "id_ordl"
|
|
|
|
loHash = GetHash()
|
|
loHash.SetValue("cSelect", lcSelect)
|
|
loHash.SetValue("cFiltru", lcFiltru)
|
|
loHash.SetValue("cSchema", lcSchema)
|
|
loHash.SetValue("cOrder", lcOrder)
|
|
loHash.SetValue("cColoana", lccoloane)
|
|
loHash.SetValue("cTitlu", lcTitlu)
|
|
loHash.SetValue("cTitluColoana", lcTitluColoane)
|
|
loHash.SetValue("cNumeProc", lcNumeProc)
|
|
loHash.SetValue("lToateIreg", llToateIreg)
|
|
loHash.SetValue("cFiltruOriginal", lcFiltruOriginal)
|
|
loHash.SetValue("cPrimaColoana", lcPrimaColoana)
|
|
loHash.SetValue("nPornire", lnPornire)
|
|
loHash.SetValue("nTipReturn", lnTipReturn)
|
|
loHash.SetValue("cIdColumn", lcIdColumn)
|
|
loHash.SetValue("cStringCriterii", lcStringCriterii)
|
|
loCauta = cauta_alfa_hash(loHash)
|
|
*---------------------export in xml----------------------------------------
|
|
IF gnButon = 2 OR empty(NVL(loCauta,[]))
|
|
RETURN
|
|
ENDIF
|
|
lcCursor = [crsDateSelect]
|
|
XMLTOCURSOR(loCauta,lcCursor )
|
|
|
|
|
|
lcFisierXml = m.gcFISIERXMLCOMENZI
|
|
|
|
lcCaleFisier = JUSTPATH(lcFisierXml)
|
|
If !Directory(m.lcCaleFisier)
|
|
Md (m.lcCaleFisier)
|
|
Endif
|
|
|
|
lcSql = [select * from DEV_UTILIZATORI_CODURI where id_util = ?gnIdutil]
|
|
lnSucces = goExecutor.oExecute(lcSql,[crscodUtil])
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
|
|
|
|
SELECT crsCodUtil
|
|
pcCodTehnician = ALLTRIM(cod)
|
|
USE IN crsCodUtil
|
|
|
|
IF empty(NVL(pcCodTehnician,[]))
|
|
oadaugcod = CREATEOBJECT('frm_codutilizator')
|
|
*!* oadaugcod.Clb_tx_simplu1.text_simplu1.controlsource= 'pcCodTehnician'
|
|
oadaugcod.show(1)
|
|
IF gnbuton = 2
|
|
RETURN
|
|
ENDIF
|
|
|
|
lcSql = [merge into DEV_UTILIZATORI_CODURI a using (select ']+ALLTRIM(pcCodTehnician)+;
|
|
[' as cod,?gnIdutil as id_util from dual) b ON (a.id_util = b.id_util) WHEN NOT MATCHED THEN insert (id_util,cod) values (?gnIdutil,']+ALLTRIM(pcCodTehnician)+;
|
|
[') WHEN MATCHED THEN UPDATE SET cod = ']+ALLTRIM(pcCodTehnician)+[' where id_util = ?gnIdutil]
|
|
lnSucces = goExecutor.oExecute(lcSql)
|
|
If lnSucces < 0
|
|
amessagebox(goExecutor.cEroare,0+16,"Eroare")
|
|
Return
|
|
Endif
|
|
ENDIF
|
|
lcDateStyle = Set("Date")
|
|
lcMark = Set("Mark")
|
|
|
|
Set Date To Dmy
|
|
Set Mark To '.'
|
|
|
|
|
|
Set Textmerge On To Memvar lcXML NOSHOW
|
|
\<?xml version="1.0" encoding="iso-8859-1" ?>
|
|
SELECT (lcCursor)
|
|
*!* modificare 30.07.2012
|
|
\<Jobs>
|
|
SCAN
|
|
\<Job>
|
|
\<Jobnumber><<SUBSTR(XmlSpecialCharacters(ALLTRIM(nrord)),1,20)>></Jobnumber>
|
|
\<Customer><<SUBSTR(XmlSpecialCharacters(ALLTRIM(nume)),1,40)>></Customer>
|
|
\<License><<SUBSTR(ALLTRIM(nrinmat),1,10)>></License>
|
|
\<VINnumber><<SUBSTR(ALLTRIM(series),1,30)>></VINnumber>
|
|
\<TechnicianCode><<SUBSTR(ALLTRIM(m.pcCodTehnician),1,3)>></TechnicianCode>
|
|
\<CreatedDate><<TTOD(datai)>></CreatedDate>
|
|
\<JobStatus>1</JobStatus>
|
|
\</Job>
|
|
ENDSCAN
|
|
\</Jobs>
|
|
Set Textmerge To
|
|
|
|
Strtofile(lcXML, m.lcFisierXml )
|
|
Set Date To &lcDateStyle
|
|
Set Mark To &lcMark
|
|
|
|
|
|
|
|
aMESSAGEBOX('S-a creat fisierul '+m.lcFisierXml ,0+64,_screen.Caption)
|
|
|
|
|
|
|
|
ENDPROC
|
|
**********************sfarsit procedura export_comanda_xml*******************
|
|
|
|
*****************************************************************************
|
|
* citeste procentele de discount pe contractul tip CLIENT AUTO
|
|
* pentru completarea procentelor de discount la facturare
|
|
*****************************************************************************
|
|
PROCEDURE citeste_discount_contract
|
|
LPARAMETERS tnIdPart, tnIdCtr, tnProcDiscountManopera, tnProcDiscountMateriale
|
|
* tnIdPart IN - id client
|
|
* tnProcDiscountManopera, tnProcDiscountMateriale OUT
|
|
|
|
Local lcSql, llSucces
|
|
PRIVATE pnDiscountManopera, pnDiscountMateriale, pnIdCtr, pnIdPart
|
|
pnIdPart = tnIdPart
|
|
pnIdCtr = 0
|
|
pnDiscountManopera = 0.00
|
|
pnDiscountMateriale = 0.00
|
|
|
|
lcSql = [begin pack_auto.citeste_discount_contract(?pnIdPart, ?gnIdSucursala, ?@pnIdCtr, ?@pnDiscountManopera, ?@pnDiscountMateriale); end;]
|
|
llSucces = goExecutor.oExecuta(m.lcSql)
|
|
IF !m.llSucces
|
|
pnDiscountManopera = 0.00
|
|
pnDiscountMateriale = 0.00
|
|
ENDIF
|
|
tnIdCtr = pnIdCtr
|
|
tnProcDiscountManopera = NVL(m.pnDiscountManopera, 0.00)
|
|
tnProcDiscountMateriale = NVL(pnDiscountMateriale, 0.00)
|
|
ENDPROC && citeste_discount_contract
|
|
|
|
|
|
*****************************************************************************
|
|
* salveaza procentele de discount pe contractul tip CLIENT AUTO (il creeaza daca nu exista)
|
|
* in formularul onom_devize.vcx:frm_dev_clienti
|
|
*****************************************************************************
|
|
PROCEDURE salveaza_discount_contract
|
|
LPARAMETERS tnIdPart, tnIdCtr, tnProcDiscountManopera, tnProcDiscountMateriale
|
|
* tnIdPart IN - id client
|
|
* tnIdCtr IN - id contract SERVICE AUTO
|
|
* tnProcDiscountManopera, tnProcDiscountMateriale IN
|
|
|
|
Local lcSql, llSucces
|
|
PRIVATE pnDiscountManopera, pnDiscountMateriale, pnIdCtr, pnIdPart
|
|
pnIdPart = tnIdPart
|
|
pnIdCtr = tnIdCtr
|
|
pnDiscountManopera = tnProcDiscountManopera
|
|
pnDiscountMateriale = tnProcDiscountMateriale
|
|
lcSql = [begin pack_auto.salveaza_discount_contract(?pnIdPart, ?gnIdSucursala, ?pnIdCtr, ?pnDiscountManopera, ?pnDiscountMateriale); end;]
|
|
llSucces = goExecutor.oExecuta(m.lcSql)
|
|
RETURN m.llSucces
|
|
ENDPROC && salveaza_discount_contract
|
|
|
|
* -----------------------------------
|
|
* Intoarce .T. daca un tip de comanda se inchide prin validare sau .F. daca se inchide in alt mod ( nota inchidere, factura)
|
|
* -----------------------------------
|
|
FUNCTION getOptiuneInchidereValidare
|
|
LPARAMETERS tnTipComanda
|
|
* tnTipComanda: 1 = garantie, 2 = postgarantie ...(DEV_TIP_DEVIZ)
|
|
|
|
LOCAL lnReturnValue, llReturn, llSucces
|
|
PRIVATE pnTipComanda
|
|
|
|
pnTipComanda = m.tnTipComanda
|
|
lnReturnValue = 0
|
|
llSucces = goExecutor.oSelecteaza2Value("Select getOptiuneInchidere(?pnTipComanda) from dual", @lnReturnValue)
|
|
llReturn = (m.lnReturnValue = 1)
|
|
|
|
RETURN m.llReturn
|
|
ENDFUNC && getOptiuneInchidereValidare
|
|
|
|
* -----------------------------------
|
|
* Salveaza optiunea de inchidere prin validare pe un tip de comanda
|
|
* -----------------------------------
|
|
FUNCTION setOptiuneInchidereValidare
|
|
LPARAMETERS tnTipComanda, tlInchidereValidare
|
|
|
|
LOCAL lnReturnValue
|
|
PRIVATE pnTipComanda, pnInchidereValidare
|
|
|
|
pnTipComanda = m.tnTipComanda
|
|
pnInchidereValidare = IIF(m.tlInchidereValidare,1, 0)
|
|
|
|
llSucces = goExecutor.oExecuta("begin setOptiuneInchidere(?pnTipComanda, ?pnInchidereValidare); end;")
|
|
|
|
RETURN m.llSucces
|
|
ENDFUNC && setOptiuneInchidereValidare |