Files
roacont/Programe/oproceduri_casademarcat.prg

173 lines
6.0 KiB
Plaintext

*!* 30.11.2011
*!* marius.mutu
*!* creare_bon_fiscal
*!* procentul de tva nu se afla corect: str(lnidfact,20)
*!* 25.11.2014
*!* marius.mutu
*!* casademarcat_roacont - functioneaza si pentru incasare cu bon fiscal prin POS (banca) id_set 10576
*!* creare_bon_fiscal - functioneaza si pentru incasare cu bon fiscal prin POS (banca) id_set 10576, cont 5125 sume in curs de decontare
*!* 11.05.2015
*!* marius.mutu
*!* gcArticolBonFiscalCont: numele articolului care se va lista pe bonul fiscal. daca nu este completat se listeaza (Fact. Nr.)
Procedure casademarcat_roacont
Lparameters tnIdSet
Local lnLungime, lnRaspuns, lnIdSet, lnSucces
*:Global glListareBonFiscalCont, taValori[1]
*!* Private poGeneratorNumere
*!* poGeneratorNumere = Createobject('oGeneratorNumere')
If Empty(tnIdSet) Or Type('tnIdSet') <> 'N'
lnIdSet = 10576 && Casa incasari - Clienti ( cu bon fiscal )
Else
lnIdSet = m.tnIdSet && (10617 Banca incasari - Clienti (cu bon fiscal POS))
ENDIF
gcArticolBonFiscalCont = ""
IF INLIST(m.lnIdSet, 10619, 10620) && Bacsis fara TVA; Bacsis cu TVA
gcArticolBonFiscalCont = 'BACSIS'
ENDIF
lnLungime = 2
lnRaspuns = 6
Dimension taValori[lnLungime, 3]
Do While lnRaspuns = 6
glListareBonFiscalCont = .T.
taValori[1, 1] = "poAct.id_fdoc"
taValori[1, 2] = Alltrim(Str(gnid_fdoc_bonfiscal))
taValori[1, 3] = .T.
taValori[2, 1] = "poAct.fdoc"
taValori[2, 2] = [BON FISCAL]
taValori[2, 3] = .T.
*!* Store -1 To lnNumarBon
*!* lnRezultat = poGeneratorNumere.creeaza_cursor_serii_bf()
*!* lnNumarBon = poGeneratorNumere.aloca_numar_bf()
*!* If lnNumarBon = -1
*!* glListareBonFiscalCont=.F.
*!* Return
*!* Endif
*!* taValori[3,1]="poAct.nract"
*!* taValori[3,2]=Alltrim(Str(lnNumarBon))
*!* taValori[3,3]=.T.
lnSucces = lans(m.lnIdSet, .F., .T., @taValori)
*!* lnSucces=lans(10329,.F.,.T.,@taValori)
*!* If lnSucces=2
*!* poGeneratorNumere.dezaloca_numar_bf() && in oserii_numere.prg
*!* Endif
glListareBonFiscalCont = .F.
gcArticolBonFiscalCont = ""
lnRaspuns = AMESSAGEBOX('Doriti sa continuati cu operatii de acest fel?', 4 + 32, "Confirmare")
Enddo
Release poGeneratorNumere
Endproc
******************************************************************************************
Procedure creare_bon_fiscal
Local lnNumarBonFiscal, lnTotalSuma, lnIdCasa, lnTip, lnNrFact, lnSuma, lnProcTva
*!* Local lcSirBonFiscal,lnTip,lnIdCasa,lnTotalSuma,ldDataBonFiscal,lnNumarBonFiscal,lnTotalSuma
lnNumarBonFiscal = 0
lnTotalSuma = 0
lnSumaNumerar = 0
lnSumaCard = 0
*!* modificare v 2.0.74
*!* lcSirBonFiscal=[]
&& lcSirBonFiscal (explicatii) :
&& 5 (incasare);suma achitata;0(numerar);0(moneda);0(numar card credit)
*!* ldDataBonFiscal=get_ora()
*!* Select actactan
*!* Set Filter To scd='5311'
*!* Scan
*!* lnNumarBonFiscal=nract
*!* lnIdCasa=id_partd
*!* Do Case
*!* Case Type('gnId_casa_achit')<>'U' And lnIdCasa=gnId_casa_achit && optiune din Devize
*!* lnTip=1
*!* *!* Case TYPE('gnId_Part_Bufet')<>'U' AND lnIdCasa=gnId_Part_Bufet && optiune din Gestiuni
*!* *!* lnTip=2
*!* Otherwise
*!* lnTip=3
*!* Endcase
*!* lcSirBonFiscal=lcSirBonFiscal+[1;Fact.]+Alltrim(Str(perechec))+[;1;]+Alltrim(Str(lnTip))+[;1;]+Alltrim(Str(suma*100))+[;1000;0]+CRLF
*!* lnTotalSuma=lnTotalSuma+suma
*!* Endscan
*!* Set Filter To
*!* If !Empty(lcSirBonFiscal)
*!* lcSirBonFiscal=lcSirBonFiscal+[5;]+Alltrim(Str(lnTotalSuma*100))+[;0;0;0]+CRLF+CRLF
*!* imprimare_bon_fiscal(lcSirBonFiscal,ldDataBonFiscal,lnNumarBonFiscal)
*!* Else
*!* aMessagebox("Bonul nu contine nici un element!",0+48,"Atentie")
*!* Endif
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))
Select actactan
Set Filter To Inlist(scd, '5311', '5125')
Scan
lnNumarBonFiscal = nract
lnIdCasa = id_partd
Do Case
Case Type('gnId_casa_achit') <> 'U' And lnIdCasa = gnId_casa_achit && optiune din Devize
lnTip = 1
Otherwise
lnTip = 3
Endcase
lnNrFact = perechec
lnIdFactC = id_Factc
lnProcTva = proc_tva
lnSuma = suma
lnTotalSuma = lnTotalSuma + lnSuma
IF scd = '5311'
lnSumaNumerar = m.lnSumaNumerar + m.lnSuma
ELSE
lnSumaCard = m.lnSumaCard + m.lnSuma
ENDIF
*!* nu am proc_tva completat asa ca trebuie sa-l citesc din inregistrari
If Empty(lnProcTva) And !Empty(lnIdFactC)
lcSql = [select 1 + (cota_tva / 100) as proc_tva from ] + gcS + [.jtva_coloane where id_jtva_coloana in (select id_jtva_coloana ] + ;
[ from ] + gcS + [.act where id_fact = ] + Alltrim(Str(lnIdFactC, 20)) + [ and sters = 0) and afisat <> 0 and id_jtva_coloana>0 and sters = 0]
lnSucces = goExecutor.oExecute(lcSql, [crsbfpt])
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 16, "Eroare")
Else
If Reccount('crsbfpt') > 0
Select crsbfpt
lnProcTva = proc_tva
Endif
Endif
Use In (Select([crsbfpt]))
Endif
Select (lcCursor)
Append Blank
Replace DENUMIRE With IIF(!EMPTY(m.gcArticolBonFiscalCont), m.gcArticolBonFiscalCont, [Fact.] + Alltrim(Str(lnNrFact))), CANT With 1, Pret With lnSuma, PROC_TVAV With lnProcTva, DEPARTAMENT With lnTip
Select actactan
Endscan
Set Filter To
If Reccount(lcCursor) > 0
Local loHash
loHash = GetHash()
loHash.SetValue("cTip", "1;")
loHash.SetValue("nNumarBon", lnNumarBonFiscal)
loHash.SetValue("nValoareNumerar", m.lnSumaNumerar)
loHash.SetValue("nValoareCard", m.lnSumaCard)
loHash.SetValue("nValoareTotal", lnTotalSuma)
loHash.SetValue("cCursor", lcCursor)
loHash.SetValue("tDataOra", get_ora())
goControllerEcr.imprima(loHash)
Release loHash
Else
AMESSAGEBOX("Bonul nu contine nici un element!", 0 + 48, "Atentie")
Endif
Use In (lcCursor)
*!* modificare v 2.0.74 ^
Endproc
******************************************************************************************