Files
vfp_roaauto/COMUN/programe/ofacturare.prg

2663 lines
123 KiB
Plaintext
Raw Blame History

*!* 13.11.2014
*!* marius.mutu
*!* listeaza_ofacturare - listare ROAAUTO - facturi tipizate - se listeaza A4 sau A5 dupa optiunea de tip formular netipizate
*!* 19.01.2015
*!* marius.mutu
*!* factureaza gnRF_ULTIMELE_DATE_COMPLETATE .completeaza_setari_document() completeaza datele de la un document anterior
*!* 04.02.2015
*!* marius.mutu
*!* factureaza - listare aviz de expeditie pentru bonul fiscal
*!* 05.05.2015
*!* marius.mutu
*!* listeaza_bon_fiscal - s-a corectat o problema la listare bon fiscal detaliat
*!* 23.09.2015
*!* marius.mutu
*!* listeaza_ofacturare - listare proforma (din comanda) - dadea eroare pentru ca nu existau toate coloanele necesare
*!* 03.02.2016
*!* marius.mutu
*!* listeaza_ofacturare: tip 41 (aviz retur subunitati) - se listeaza partenerul asociat gestiunii din care se face retur
*!* 09.02.2016
*!* marius.mutu
*!* listeaza_ofacturare: adaugat proprietate poDate.oClient pentru accesarea poDate.oClient.email_facturare la trimiterea emailurilor
*!* + poDate.nListareSilentioasa, poDate.nListareJustPDF
*!* 14.07.2016
*!* marius.mutu
*!* listeaza_ofacturare: dadea eroare la listare proforma - nu exista poDate.id_comanda_aviz si nici nu trebuia (nu exista proforme bazate pe aviz din comanda)
*!* 21.11.2019
*!* marius.mutu
*!* +listeaza_recapitulatie
*!* 22.01.2020
*!* marius.mutu
*!* listeaza_recapitulatie +poFirma.adresa
*!* 28.01.2020
*!* factureaza, factureaza2 - completare crsFactura.codmatc (cod material client)
*!* 30.01.2020
*!* marius.mutu
*!* listeaza_ofacturare - poDate.id_util in loc de gnIdUtil pentru numele celui care a introdus factura, in loc de cel care o (re)listeaza
*!* 12.03.2021
*!* marius.mutu
*!* factureaza
*!* daca este proforma, pun toate articolele negestionabile, ca sa nu mai arate stocul
*!* 16.09.2021
*!* marius.mutu
*!* listeaza_bon_fiscal: Daca bonul nu se listeaza detaliat, listez cumulat pe cote TVA
*!* lista toata suma cu cota TVA = 0 eronat!!!
*!* factureaza: dezaloca numar chitanta, numar bon fiscal la renuntare
*!* 17.11.2023
*!* marius.mutu
*!* adaugare tip 52 factura fiscala in valuta contract
*!* 15.01.2024
*!* marius.mutu
*!* listeaza_bon_fiscal - se transmite la casa de marcat (pretctva-discountctva), in loc de pretctva
*!* 23.01.2024
*!* listeaza_ofacturare
*!* efactura. se listeaza valori in valuta pentru factura in valuta
***************************************************************************************************************
**** Proceduri:
**** factureaza
**** completeaza_date_aviz_retur
**** listeaza_ofacturare
**** listeaza_oconformitate
***************************************************************************************************************
******************************************** INCEPUT: factureaza **********************************************
Procedure factureaza
Lparameters tnTip, toFactura
* toFactura - daca se doreste copierea unei facturi anterioare
*** 08.06.2017
*** Daca exista optiunea gnFacturareNou = 1 atunci lansez formularul frm_facturare_articole2 in loc de frm_facturare_articole
If Type('gnFacturareNou') = 'N' And m.gnFacturareNou = 1
If AMESSAGEBOX('Facturare noua (DA) sau standard (NU)?', 4 + 32, _Screen.Caption) = 6
factureaza2(m.tnTip)
Return
Endif
Endif
Private pnButon, poDate, poDateGestiuneDest, pnTotalDiscountAvize, plVizibil, poGeneratorNumere
*!* modificare v 2.0.67
*!* PRIVATE pnTipFacturare
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
Local lcCursor, lcObiect, lcObject, lcSqlCursor, lnSucces, lnTipTemp, loArticole, ltDataOra
Local llCopiere
*:Global ofrmceredate, ofrmdetaliifactura
If glLunaInchisa
AMESSAGEBOX("Nu puteti emite documente, deoarece aceasta luna este <20>nchisa!", 0 + 48, "Luna <20>nchisa")
Return
Endif
Local lnIdSet, lnRaspuns, loDateAnterior, loSoldClient
loDateAnterior = Null
llCopiere = (Type('toFactura') = 'O')
pnTotalDiscountAvize = 0
****************************************************
** Valori pentru pnTipFacturare
** 0 - facturare pe baza de lista de preturi,pe baza de comanda
** 1 - facturare contracte in rate
** 2 - facturare contracte in rate
** 3 - facturare contracte (articole din contract)
** 4 - facturare contracte (articole din lista de preturi)
****************************************************
lnIdSet = 25000 + tnTip - 1 + gnScadereStoc * 10
****************************************************
** Valori pentru (lnIdSet,tnTip)
** Facturare
** (25000,1) - pe baza de lista de preturi ( 25010 - daca e cu scadere din gestiune )
** (25001,2) - pe baza de contracte ( 25011 - daca e cu scadere din gestiune )
** (25002,3) - pe baza de comenzi ( 25012 - daca e cu scadere din gestiune )
** (25003,4) - pe baza de avize ( 25013 - daca e cu scadere din gestiune )
** (25004,5) - pe baza de lista de preturi in valuta ( 25014 - daca e cu scadere din gestiune )
** (25005,6) - pe baza de contract in valuta ( 25015 - daca e cu scadere din gestiune )
** (25006,7) - credit note
** (25007,8) - retur factura in lei ( 25017 )
** (25008,9) - retur factura in valuta ( 25018 )
** (25009,10) - factura fiscala in valuta ( 25019 )
** (25043,44) - factura hotel
** (25044,45) - factura restaurant ( 25054 )
** (25045,46) - nota de plata restaurant ( 25055 )
** (25047,48) - factura marfa custodie cu desc. k ( 25057 )
** (25048,49) - factura marfa custodie fara desc. k ( 25058 )
** (25051,52) - pe baza de contract factura fiscala in valuta ( 25061 - daca e cu scadere din gestiune )
** Avize de expeditie
** (25020,21) - catre clienti din comanda ( 25030 - daca e cu scadere din gestiune )
** (25021,22) - catre clienti din lista ( 25031 - daca e cu scadere din gestiune )
** (25022,23) - transfer catre subunitati din lista ( 25032 - daca e cu scadere din gestiune )
** (25023,24) - aviz de retur ( 25033 - daca e cu scadere din gestiune )
** (25024,25) - transfer catre subunitati din comanda ( 25034 - daca e cu scadere din gestiune )
** (25025,26) - catre clienti din contract ( 25035 - daca e cu scadere din gestiune )
** (25026,27) - transfer catre subunitati pe baza de lucrare( 25036 - daca e cu scadere din gestiune )
** (25027,28) - catre clienti debitori din comanda ( 25037 - daca e cu scadere din gestiune )
** (25028,29) - catre clienti debitori din lista ( 25038 - daca e cu scadere din gestiune )
** (25029,30) - transfer catre subunitati pe baza de NIR ( 25039 - daca e cu scadere din gestiune )
** (25040,41) - retur transfer catre subunitati lista pret ( 25050 - daca e cu scadere din gestiune )
** (25041,42) - catre clienti custodie pe baza de comanda ( 25051 - daca e cu scadere din gestiune )
** (25046,47) - catre clienti custodie pe baza de comanda ptr. descarcare cu K ( 25056 - daca e cu scadere din gestiune )
** (25049,50) - in lucru retur de la clienti custodie ( 25059 - daca e cu scadere din gestiune )
**
** ROAGEST
** (236/240/241/242,-6) - retur de la gestiune valorica
**
** ROARETAIL
** (25042,43) - bonuri fiscale colectate de la magazine ( 25052 - daca e cu scadere din gestiune )
** ROAACNPRO
** (50100,51) - factura ROAACNPRO ( 25060 - daca e cu scadere din gestiune )
****************************************************
*!* modificare v 2.2.0
*!* update_jtva_coloane([JV])
update_jtva_coloane([JV], [jtva_coloane_temp])
update_saft_taxtable()
*!* modificare v 2.2.0 ^
lnRaspuns = 6
Do While lnRaspuns = 6
plVizibil = .T.
If !actualizeaza_optiuni_program()
Release poDate, poGeneratorNumere
Return
Endif
If Type('poDate') <> 'O'
poDate = Createobject("oDateFactura", lnIdSet, tnTip)
poGeneratorNumere = Createobject("oGeneratorNumere")
Endif
Do Case
Case tnTip = 27
poDate.nIdTipDoc = 6 && AVIZ
Case tnTip = 30
poDate.nIdTipDoc = 6 && AVIZ
Case tnTip < 21 Or Inlist(tnTip, 45, 48, 49, 51, 52) && modificare : 45 (v2.0.87), 48 (v2.0.93), 49 (v2.0.95)
poDate.nIdTipDoc = 5 && FACTURA
Otherwise
poDate.nIdTipDoc = 6 && AVIZ
Endcase
* Completare date
If Type('loDateAnterior') = 'O'
poDate.completeaza_setari_document(m.loDateAnterior)
Else
If m.llCopiere
poDate.completeaza_setari_document(m.toFactura, .T.)
Endif
Endif
poGeneratorNumere.ResetNumere()
poDate.rezultat_serii = poGeneratorNumere.creeaza_cursor_serii(poDate.nIdTipDoc)
If Type('poDateGestiuneDest') <> 'O'
poDateGestiuneDest = Createobject("oDateGestiune")
Endif
Do Case
Case tnTip = 27
lcObiect = [frm_date_aviz_lucrare]
Case tnTip = 30
lcObiect = [frm_date_aviz_lucrare]
Case tnTip < 21 Or Inlist(tnTip, 45, 48, 49, 51, 52) && modificare : 45 (v2.0.87), 48 (v2.0.93), 49 (v2.0.95)
lcObiect = [frm_date_factura]
Otherwise
lcObiect = [frm_date_aviz]
Endcase
pnButon = 1
If Inlist(lcObiect, [frm_date_factura], [frm_date_aviz])
ofrmceredate = Createobject(m.lcObiect, toFactura)
Else
ofrmceredate = Createobject(m.lcObiect)
Endif
ofrmceredate.ntip = tnTip
ofrmceredate.Show()
*!* modificare v 2.2.0
Use In (Select('jtva_coloane'))
* sterg regularizare taxa colectata pentru ca are procent TVA
* la adaugarea automata a tuturor articolelor factura/aviz din comanda arata formularul de adaugare articol pentru ca sunt mai mult explicatii TVA
If poDate.tva_incasare = 0
Select * From jtva_coloane_temp Where Isnull(id_jtva_ex) AND !'RORTC'$UPPER(coloana_jv) Into Cursor jtva_coloane
Else
Select * From jtva_coloane_temp Where Isnull(id_jtva_neex) AND !'RORTC'$UPPER(coloana_jv) Into Cursor jtva_coloane
Endif
*!* modificare v 2.2.0 ^
Release ofrmceredate
If pnButon = 2
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
*!* modificare v 2.0.67
If Used('crsCtrTemp')
Use In ('crsCtrTemp')
Endif
*!* modificare v 2.0.67 ^
Release poDate, poGeneratorNumere
Return
Else
poGeneratorNumere.verifica_numar(poDate.nIdTipDoc, poDate.nract)
Endif
*!* modificare v 2.0.67
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
Do Case
Case m.llCopiere
lcSqlCursor = [{call pack_facturare.cursor_retur_document(?poDate.in_valuta,?poDate.listaid,1,?poDate.eProforma,?gnIdUtil)}]
*!* modificare v 2.0.93 ; modificare v 2.0.95 : am adaugat 49
Case Inlist(tnTip, 48, 49)
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_articole_k(?poDate.zi_curs,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.93 ^
*!* modificare v 2.0.87
Case tnTip = 45
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_preturi(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.listaid,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.87 ^
Case Inlist(tnTip, 1, 22, 5, 29, 7, 10, 23) && lista de preturi
&& modificare v 2.0.56 : am adaugat 10
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_preturi(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
Case Inlist(tnTip, 2, 26, 6, 52) && contract
poDate.id_agent = 0
*!* modificare v 2.0.67
*!* lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_contract(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
*!* [?poDate.listaid,?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala,?@pnTipFacturare,] + ;
*!* [?@poDate.id_agent,?@poDate.nume_agent)}]
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_contract(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.listaid,?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala,?@poDate.id_agent,?@poDate.nume_agent)}]
*!* modificare v 2.0.67 ^
Case Inlist(tnTip, 3, 21, 25, 28, 42, 47) && comenzi
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_comanda(?poDate.zi_curs,?poDate.tip,?poDate.listaid,?gnIdUtil)}]
Case tnTip = 4 && din avize
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_avize(?poDate.listaid,?gnIdUtil,?@pnTotalDiscountAvize)}]
Case Inlist(tnTip, 41) && transfer intre subunitati pe baza de lista de preturi + retur transfer
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_gestiune(?poDate.zi_curs,?poDate.id_pol,] + ;
[?poDate.id_client,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
Case tnTip = 30 && transfer intre subunitati pe baza de NIR
lcSqlCursor = [{call pack_facturare.cursor_aviz_nir(?poDate.id_client,?poDate.id_furnizor,?poDate.nrfactachi,?gnIdSucursala)}]
*!* modificare v 2.0.90 ^
Case tnTip = 27
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_lucrare(?poDate.zi_curs,?poDate.id_client,] + ;
[?poDate.id_lucrare,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.56
Case Inlist(tnTip, 8, 9, 24) && 8,9 = facturi de retur, 24 = aviz retur
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_retur(?poDate.in_valuta,?poDate.listaid,?gnIdUtil)}]
Endcase
lcCursor = [crsarticole]
lnSucces = goExecutor.oExecute(lcSqlCursor, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.oPrelucrareEroare(), 16, "Eroare")
If goExecutor.nEroare = 20005
vizualizeaza_curs(poDate.zi_curs)
ENDIF
*!* nu inchid crsCtrTemp
*!* modificare v 2.0.56
*!* poGeneratorNumere.dezaloca_numar(pnIdTipDoc)
*!* modificare v 2.0.56 ^
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc) && 29.03.2021 deblochez numarul ca sa il pot reda pe acelasi cand se reincarca formularul
Else
If Reccount(lcCursor) = 0 And (!Used(lcCursor + '1') Or (Used(lcCursor + '1') And Reccount(lcCursor + '1') = 0))
AMESSAGEBOX("Nu exista articole pentru optiunile alese!", 48, "Atentie")
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
Use In (SELECT('crsCtrTemp'))
ELSE
* Daca este o proforma, consider toate articolele negestionabile, pentru a nu mai alege din stoc
* 12.03.2021
IF poDate.eProforma = 1
UPDATE (m.lcCursor) SET gestionabil = 0
GO TOP IN (m.lcCursor)
ENDIF
creeaza_facturacrs([crsfactura])
If tnTip = 30 && Aviz din NIR
* populez factura cu articolele din NIR
Local lcIdJtva
Select (lcCursor)
Scan
Scatter Name loArticole Memo
Select crsfactura
update_jtva_coloane([JV], 'CrsCotaTva', 0)
Select CrsCotaTva
Locate For cota_tva = (loArticole.proc_tvav * 100 - 100)
If Found()
lcIdJtva = id_jtva_coloana
Else
lcIdJtva = Null
Endif
Use In CrsCotaTva
Insert Into crsfactura ;
(id_c, id_temp, id_articol, id_gestiune, Cont, um, ;
id_valuta, gestionabil, tip_valuta, Curs, multiplicator, id_jtva_coloana, codmat, ;
pret_achizitie, pretd, id_valuta_d, denumire, pretftva, pretctva, valftva, valtva, valctva, ;
cantitate, discountftva, discountctva, valdiscountftva, valdiscounttva, ;
valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav, cu_tva, serie, ;
id_set_fact, explicatie, id_pol, id_ctr ) ;
Values (;
loArticole.id_c, loArticole.id_c, loArticole.id_articol, loArticole.id_gestiune, loArticole.Cont, loArticole.um, ;
loArticole.id_valuta, loArticole.gestionabil, loArticole.tip_valuta, loArticole.Curs, ;
loArticole.multiplicator, lcIdJtva, Nvl(loArticole.codmat, ' '), ;
loArticole.preta, loArticole.pretd, loArticole.id_valuta_d, loArticole.denumire, ;
loArticole.pretftva, loArticole.pretctva, ;
Round(loArticole.cantitate * loArticole.pretftva, gnpc), ;
Round(loArticole.cantitate * loArticole.tvav, gnpc), ;
Round(loArticole.cantitate * loArticole.pretctva, gnpc), ;
loArticole.cantitate, 0, 0, 0, 0, ;
0, Round(loArticole.cantitate * loArticole.pretftva, gnpc), Round(loArticole.cantitate * loArticole.tvav, gnpc), ;
Round(loArticole.cantitate * loArticole.pretctva, gnpc), loArticole.proc_tvav, loArticole.preturi_cu_tva, '', ;
Null, '', Null, Null)
Select (lcCursor)
Endscan
Release lcIdJtva
Select crsfactura
Release loArticole
ENDIF && tnTip = 30
If tnTip = 27
lcObject = [frm_avizare_lucrare]
Create Cursor crsgestiunidest(id_gestiune N(20), nume_gestiune c(100))
Select crsgestiunidest
Append Blank
Replace id_gestiune With - 9999, nume_gestiune With '<TOATE>'
Insert Into crsgestiunidest(id_gestiune, nume_gestiune) ;
Select Distinct id_gestiune, nume_gestiune From (lcCursor) Order By nume_gestiune
Else
lcObject = [frm_facturare_articole]
Endif
*!* modificare v 2.0.67
*!* Endif
*!* modificare v 2.0.67 ^
*!* modificare v 2.0.56
*!* If Type('crsarticole.curs')<>'U'
*!* Select Distinct Curs,nume_val From crsArticole With (Buffering = .T.) Where tip_valuta = 1 Into Cursor crscursuri
*!* If poDate.in_valuta = 1
*!* Select crscursuri
*!* poDate.Curs = Curs
*!* Endif
If poDate.in_valuta = 1
Select Distinct Curs, nume_val, id_valuta, multiplicator From (lcCursor) With (Buffering = .T.) Where tip_valuta = 1 Order By nume_val Into Cursor crscursuri
Select crscursuri
poDate.Curs = Curs
poDate.multiplicator = multiplicator
Else
citeste_cursuri_zi(poDate.zi_curs)
If Reccount('crscursuri') = 0
Use In crscursuri
Endif
*!* modificare v 2.0.56 ^
Endif
If Type(lcCursor + '.nume_lista_preturi') <> 'U'
Create Cursor crspolitici (id_pol N(20), nume_lista_preturi c(100))
Select crspolitici
*!* modificare v 2.0.77
*!* Append Blank
*!* Replace id_pol With -9999,nume_lista_preturi With '<TOATE>'
Insert Into crspolitici(id_pol, nume_lista_preturi) Values (-9999, '<TOATE>')
*!* modificare v 2.0.77 ^
Insert Into crspolitici(id_pol, nume_lista_preturi) ;
Select Distinct id_pol, nume_lista_preturi From (lcCursor) Order By nume_lista_preturi
Endif
*!* modificare v 2.0.67
If Inlist(tnTip, 2, 6, 26)
Create Cursor crscontracte(id_ctr N(20), numar_contract c(100), Data d Null, numar c(50) Null)
Select crscontracte
Append Blank
Replace id_ctr With - 9999, numar_contract With '<TOATE>'
Insert Into crscontracte(id_ctr, numar_contract, Data, numar) ;
Select Distinct id_ctr, numar_contract, Data, numar From (lcCursor + [1]) Order By Data, numar
Endif
*!* modificare v 2.0.67 ^
ofrmdetaliifactura = Createobject(lcObject)
IF tnTip = 30 && AVIZ DIN NIR
* CALCULEZ TOTALURILE SI FINALIZEZ FORMULARUL FARA SA IL ARAT
Private plreturn
Store .T. To plreturn
ofrmdetaliifactura.do_calculeaza_totaluri()
ofrmdetaliifactura.but_termin1.Click()
plVizibil = .F.
If !plreturn
Return
ENDIF
ELSE
IF m.llCopiere
* Modificare sau copiere factura
* Nu adaug automat articolele din factura originala, ca sa dau posibilitate de modificare a cantitatilor, pretului, explicatiei
* ofrmdetaliifactura.do_adauga_tot()
* Sterg din cursorul cu articole inregistrarile adaugate in factura
*DELETE FROM crsArticole
* Adaug in lista articolelor cursorul cu lista de preturi ca sa pot adauga si alte articole in factura copiata/modificata
lcSqlCursor = [{call pack_facturare.cursor_preturi(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
lcCursorTemp = [crsArticoleTemp]
llSucces = goExecutor.oExecuta(lcSqlCursor, lcCursorTemp)
IF m.llSucces
SELECT crsArticole
APPEND FROM DBF(m.lcCursorTemp)
ENDIF
USE IN (SELECT(m.lcCursorTemp))
ENDIF && m.llCopiere
If plVizibil
ofrmdetaliifactura.Show()
Else
ofrmdetaliifactura.Release()
pnButon = 2
Endif
ENDIF && tnTip = 30
If Used('crspolitici')
Use In crspolitici
Endif
If Used('crscursuri')
Use In crscursuri
Endif
*!* modificare v 2.0.67
If Used('crscontracte')
Use In crscontracte
Endif
If Used('crsCtrTemp')
Use In crsCtrTemp
Endif
*!* modificare v 2.0.67 ^
*!* modificare v 2.0.80
If poDate.incasat <> 0
poGeneratorNumere.verifica_numar(16, poDate.nr_incasare)
Endif
*!* modificare v 2.0.80
If pnButon = 1
* Completez podate.institutie_publica
poDate.institutie_publica = GetInstitutiePublica(poDate.id_client)
* Completare codmat client, codnc8, codcpv
Select crsfactura
Scan
Replace codmatc With GetCodmatC(poDate.id_client, crsfactura.id_articol) In crsfactura
loCod = GetCodNC8CPV(crsfactura.id_articol)
Replace codnc8 WITH loCod.codnc8, codcpv WITH loCod.codcpv In crsfactura
Endscan
If poDate.tip <> 27
If poDate.ntip_incasare = 2 && bon fiscal
If Type('gnListareAvizBonFiscal') = 'N' And m.gnListareAvizBonFiscal = 1
lnTipTemp = poDate.tip
poDate.tip = 22 && La bonul fiscal listez AVIZ DE EXPEDITIE
listeaza_ofacturare()
poDate.tip = m.lnTipTemp
Endif
ltDataOra = Get_Ora()
listeaza_bon_fiscal(ltDataOra, poDate.nr_incasare, poDate.incasat, poDate.incasatCARD, poDate.proc_tva, poDate.nract, poDate.nBonDetaliat, "crsFactura")
ELSE
* Soldul pana la factura inclusiv
loSoldClient = GetSoldClient(poDate.id_client, IdVanzare2IdFact(podate.nid_vanzare))
poDate.sold_lei = loSoldClient.sold_lei
poDate.sold_valuta = loSoldClient.sold_valuta
listeaza_ofacturare()
ENDIF
ENDIF && tip
Else
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
poGeneratorNumere.dezaloca_numar(16) && dezaloca numar chitanta
poGeneratorNumere.dezaloca_numar(3) && dezaloca numar bon fiscal
poGeneratorNumere.dezaloca_numar(26) && dezaloca numar POS/Card
poDate.nr_incasare = 0
poDate.incasat = 0
ENDIF && pnButon
Use In (SELECT('crsfactura'))
Use In (SELECT('crsfacturaset'))
Use In (SELECT('crsfacturafinala'))
Endif
*!* lnRaspuns = amessagebox("Doriti sa continuati cu operatii de acest fel?", 4 + 32, "Confirmare")
lnRaspuns = AMESSAGEBOX([Doriti sa continuati cu operatii de acest fel?] + Chr(13) + Chr(10) + [DA=copiere date / NU=fara copiere date / Abandon], 3 + 32, "Confirmare")
If lnRaspuns = 6 && DA
loDateAnterior = CloneObj(m.poDate) && se retin informatiile pentru completarea pe factura urmatoare
Else
loDateAnterior = Null
If m.lnRaspuns = 7 && NU inseamna DA fara copierea datelor
lnRaspuns = 6 && DA
Endif
Endif
poDate.Reset(7 - lnRaspuns)
poDateGestiuneDest.Reset()
Endif
*!* Endif
*!* Endif
Enddo
*!* modificare v 2.2.0
Use In (Select('jtva_coloane_temp'))
Use In (Select('jtva_coloane'))
*!* modificare v 2.2.0 ^
Release poDate, poGeneratorNumere
Endproc
******************************************** SFARSIT: factureaza **********************************************
***
******************************************** INCEPUT: factureaza2 **********************************************
Procedure factureaza2
Lparameters tnTip
Private pnButon, poDate, poDateGestiuneDest, pnTotalDiscountAvize, plVizibil, poGeneratorNumere
*!* modificare v 2.0.67
*!* PRIVATE pnTipFacturare
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
Local lcCursor, lcObiect, lcObject, lcSqlCursor, lnSucces, lnTipTemp, loArticole, ltDataOra
*:Global ofrmceredate, ofrmdetaliifactura
If glLunaInchisa
AMESSAGEBOX("Nu pute_i emite documente, deoarece aceasta luna este <20>nchisa!", 0 + 48, "Luna <20>nchisa")
Return
Endif
Local lnIdSet, lnRaspuns, loDateAnterior
loDateAnterior = Null
pnTotalDiscountAvize = 0
****************************************************
** Valori pentru pnTipFacturare
** 0 - facturare pe baza de lista de preturi,pe baza de comanda
** 1 - facturare contracte in rate
** 2 - facturare contracte in rate
** 3 - facturare contracte (articole din contract)
** 4 - facturare contracte (articole din lista de preturi)
****************************************************
lnIdSet = 25000 + tnTip - 1 + gnScadereStoc * 10
****************************************************
** Valori pentru (lnIdSet,tnTip)
** Facturare
** (25000,1) - pe baza de lista de preturi ( 25010 - daca e cu scadere din gestiune )
** (25001,2) - pe baza de contracte ( 25011 - daca e cu scadere din gestiune )
** (25002,3) - pe baza de comenzi ( 25012 - daca e cu scadere din gestiune )
** (25003,4) - pe baza de avize ( 25013 - daca e cu scadere din gestiune )
** (25004,5) - pe baza de lista de preturi in valuta ( 25014 - daca e cu scadere din gestiune )
** (25005,6) - pe baza de contract in valuta ( 25015 - daca e cu scadere din gestiune )
** (25006,7) - credit note
** (25007,8) - retur factura in lei ( 25017 )
** (25008,9) - retur factura in valuta ( 25018 )
** (25009,10) - factura fiscala in valuta ( 25019 )
** (25043,44) - factura hotel
** (25044,45) - factura restaurant ( 25054 )
** (25045,46) - nota de plata restaurant ( 25055 )
** (25047,48) - factura marfa custodie cu desc. k ( 25057 )
** (25048,49) - factura marfa custodie fara desc. k ( 25058 )
** Avize de expeditie
** (25020,21) - catre clienti din comanda ( 25030 - daca e cu scadere din gestiune )
** (25021,22) - catre clienti din lista ( 25031 - daca e cu scadere din gestiune )
** (25022,23) - transfer catre subunitati din lista ( 25032 - daca e cu scadere din gestiune )
** (25023,24) - aviz de retur ( 25033 - daca e cu scadere din gestiune )
** (25024,25) - transfer catre subunitati din comanda ( 25034 - daca e cu scadere din gestiune )
** (25025,26) - catre clienti din contract ( 25035 - daca e cu scadere din gestiune )
** (25026,27) - transfer catre subunitati pe baza de lucrare( 25036 - daca e cu scadere din gestiune )
** (25027,28) - catre clienti debitori din comanda ( 25037 - daca e cu scadere din gestiune )
** (25028,29) - catre clienti debitori din lista ( 25038 - daca e cu scadere din gestiune )
** (25029,30) - transfer catre subunitati pe baza de NIR ( 25039 - daca e cu scadere din gestiune )
** (25040,41) - retur transfer catre subunitati lista pret ( 25050 - daca e cu scadere din gestiune )
** (25041,42) - catre clienti custodie pe baza de comanda ( 25051 - daca e cu scadere din gestiune )
** (25046,47) - catre clienti custodie pe baza de comanda ptr. descarcare cu K ( 25056 - daca e cu scadere din gestiune )
** in lucru (25049,50) - retur de la clienti custodie ( 25059 - daca e cu scadere din gestiune )
**
** ROAGEST
** (236/240/241/242,-6) - retur de la gestiune valorica
**
** ROARETAIL
** (25042,43) - bonuri fiscale colectate de la magazine ( 25052 - daca e cu scadere din gestiune )
****************************************************
*!* modificare v 2.2.0
*!* update_jtva_coloane([JV])
update_jtva_coloane([JV], [jtva_coloane_temp])
*!* modificare v 2.2.0 ^
lnRaspuns = 6
Do While lnRaspuns = 6
plVizibil = .T.
If !actualizeaza_optiuni_program()
Release poDate, poGeneratorNumere
Return
Endif
If Type('poDate') <> 'O'
poDate = Createobject("oDateFactura", lnIdSet, tnTip)
poGeneratorNumere = Createobject("oGeneratorNumere")
Endif
Do Case
Case tnTip = 27
poDate.nIdTipDoc = 6 && AVIZ
Case tnTip = 30
poDate.nIdTipDoc = 6 && AVIZ
Case tnTip < 21 Or Inlist(tnTip, 45, 48, 49) && modificare : 45 (v2.0.87), 48 (v2.0.93), 49 (v2.0.95)
poDate.nIdTipDoc = 5 && FACTURA
Otherwise
poDate.nIdTipDoc = 6 && AVIZ
Endcase
* Completare date
If Type('loDateAnterior') = 'O'
poDate.completeaza_setari_document(m.loDateAnterior)
Endif
poGeneratorNumere.ResetNumere()
poDate.rezultat_serii = poGeneratorNumere.creeaza_cursor_serii(poDate.nIdTipDoc)
If Type('poDateGestiuneDest') <> 'O'
poDateGestiuneDest = Createobject("oDateGestiune")
Endif
Do Case
Case tnTip = 27
lcObiect = [frm_date_aviz_lucrare]
Case tnTip = 30
lcObiect = [frm_date_aviz_lucrare]
Case tnTip < 21 Or Inlist(tnTip, 45, 48, 49) && modificare : 45 (v2.0.87), 48 (v2.0.93), 49 (v2.0.95)
lcObiect = [frm_date_factura]
Otherwise
lcObiect = [frm_date_aviz]
Endcase
pnButon = 1
If .F.
ofrmceredate = Createobject(m.lcObiect)
ofrmceredate.ntip = tnTip
ofrmceredate.Show()
Endif && .F.
*!* modificare v 2.2.0
Use In (Select('jtva_coloane'))
If poDate.tva_incasare = 0
Select * From jtva_coloane_temp Where Isnull(id_jtva_ex) Into Cursor jtva_coloane
Else
Select * From jtva_coloane_temp Where Isnull(id_jtva_neex) Into Cursor jtva_coloane
Endif
*!* modificare v 2.2.0 ^
Release ofrmceredate
If pnButon = 2
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
poGeneratorNumere.dezaloca_numar(16) && dezaloca numar chitanta
poGeneratorNumere.dezaloca_numar(3) && dezaloca numar bon fiscal
IF TYPE('poDate.nr_incasare') = 'N'
poDate.nr_incasare = 0
ENDIF
IF TYPE('poDate.incasat') = 'N'
poDate.incasat = 0
ENDIF
*!* modificare v 2.0.67
If Used('crsCtrTemp')
Use In ('crsCtrTemp')
Endif
*!* modificare v 2.0.67 ^
Release poDate, poGeneratorNumere
Return
Else
poGeneratorNumere.verifica_numar(poDate.nIdTipDoc, poDate.nract)
Endif
*!* modificare v 2.0.67
*!* pnTipFacturare = 0
*!* modificare v 2.0.67 ^
Do Case
*!* modificare v 2.0.93 ; modificare v 2.0.95 : am adaugat 49
Case Inlist(tnTip, 48, 49)
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_articole_k(?poDate.zi_curs,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.93 ^
*!* modificare v 2.0.87
Case tnTip = 45
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_preturi(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.listaid,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.87 ^
Case Inlist(tnTip, 1, 22, 5, 29, 7, 10) && lista de preturi
&& modificare v 2.0.56 : am adaugat 10
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_preturi(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
Case Inlist(tnTip, 2, 26, 6) && contract
poDate.id_agent = 0
*!* modificare v 2.0.67
*!* lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_contract(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
*!* [?poDate.listaid,?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala,?@pnTipFacturare,] + ;
*!* [?@poDate.id_agent,?@poDate.nume_agent)}]
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_contract(?poDate.zi_curs,?poDate.tip,?poDate.id_valuta,] + ;
[?poDate.listaid,?poDate.id_gestiune_init,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala,?@poDate.id_agent,?@poDate.nume_agent)}]
*!* modificare v 2.0.67 ^
Case Inlist(tnTip, 3, 21, 25, 28, 42, 47) && comenzi
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_comanda(?poDate.zi_curs,?poDate.tip,?poDate.listaid,] + ;
[?gnIdUtil)}]
Case tnTip = 4 && din avize
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_avize(?poDate.listaid,?gnIdUtil,?@pnTotalDiscountAvize)}]
Case Inlist(tnTip, 23, 41) && transfer intre subunitati pe baza de lista de preturi + retur transfer
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_gestiune(?poDate.zi_curs,?poDate.id_pol,] + ;
[?poDate.id_client,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
Case tnTip = 30 && transfer intre subunitati pe baza de NIR
*!* modificare v 2.0.61
*!* modificare v 2.0.56
*!* lcSqlCursor = [select rownum as id_c, a.ID_ARTICOL,a.SERIE,a.ID_GESTIUNE,a.ID_VALUTA,]+;
*!* [ 0 as discount_unitar,a.CODMAT,a.DENUMIRE, Nvl(a.UM,Chr(32)) as um, 1 as gestionabil,]+;
*!* [ a.CANT as cantitate, a.PROC_TVAV,0 as preturi_cu_tva, a.CURS, a.PRET as preta, a.PRETv as pret,a.tvav as tvav, 0 as pret_val,a.nume_val,]+;
*!* [ 0 as discount_unitar_val, 0 as tip_valuta,cont ]+;
*!* [ from vrul A where a.cod in (select max(b.cod) ]+;
*!* [ from act b where b.id_partc = ?poDate.id_furnizor and b.scc = '401' and b.nract = ?poDate.nrfactachi)]
*!* lcSqlCursor = [select rownum as id_c,rownum as id_temp, a.ID_ARTICOL,a.SERIE,a.ID_GESTIUNE,b.ID_VALUTA,]+;
*!* [ 0 as discount_unitar,a.CODMAT,a.DENUMIRE, Nvl(a.UM,Chr(32)) as um, 1 as gestionabil,]+;
*!* [ a.CANT as cantitate, a.PROC_TVAV,0 as preturi_cu_tva, 1 as CURS, a.PRET as preta, a.PRETv as pret,a.tvav as tvav, 0 as pret_val,b.nume_val,]+;
*!* [ 0 as discount_unitar_val, 0 as tip_valuta,a.cont,a.pretd,a.id_valuta as id_valuta_d ]+;
*!* [ from vrul A left join ] + ;
*!* [ (select id_valuta, nume_val from vnom_valute where moneda_nationala = 1 and rownum = 1) b on 1 = 1 ] + ;
*!* [ where a.cod in (select max(b.cod) ]+;
*!* [ from act a1 where a1.sters = 0 and a1.id_partc = ?poDate.id_furnizor and a1.scc = '401' and a1.nract = ?poDate.nrfactachi)]
*!* *!* modificare v 2.0.56 ^
*!* modificare v 2.0.90
*!* modificare v 2.0.71 : 0 as curs; conditii gcCondSucursala si a.id_gestiune = ?poDate.id_client
*!* lcSqlCursor = [select rownum as id_c,rownum as id_temp, a.ID_ARTICOL,a.SERIE,a.ID_GESTIUNE,b.ID_VALUTA,]+;
*!* [ 0 as discount_unitar,c.CODMAT,c.DENUMIRE, Nvl(c.UM,Chr(32)) as um, 1 as gestionabil,]+;
*!* [ a.CANT as cantitate, a.PROC_TVAV,decode(d.nr_pag,6,1,7,1,0) as preturi_cu_tva, 0 as CURS,1 as multiplicator,a.PRET as preta,] + ;
*!* [a.pretv+a.tvav as pretctva,a.pretv as pretftva,] + ;
*!* [a.tvav,0 as pret_val,b.nume_val,]+;
*!* [ 0 as discount_unitar_val, 0 as tip_valuta,a.cont,a.pretd,a.id_valuta as id_valuta_d ]+;
*!* [ from rul A left join ] + ;
*!* [ (select id_valuta, nume_val from vnom_valute where moneda_nationala = 1 and rownum = 1) b on 1 = 1 ] + ;
*!* [ left join nom_articole c on a.id_articol = c.id_articol ] + ;
*!* [ left join nom_gestiuni d on a.id_gestiune = d.id_gestiune ] + ;
*!* [ where a.sters = 0 and a.id_gestiune = ?poDate.id_client and a.cod in (select max(a1.cod) ]+;
*!* [ from act a1 where a1.sters = 0 and a1.id_partc = ?poDate.id_furnizor and a1.scc = '401' and a1.nract = ?poDate.nrfactachi] + ;
*!* STRTRAN(gcCondSucursala,[id_sucursala],[a1.id_sucursala]) + [)]
*!* modificare v 2.0.61 ^
lcSqlCursor = [{call pack_facturare.cursor_aviz_nir(?poDate.id_client,?poDate.id_furnizor,?poDate.nrfactachi,?gnIdSucursala)}]
*!* modificare v 2.0.90 ^
Case tnTip = 27
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_lucrare(?poDate.zi_curs,?poDate.id_client,] + ;
[?poDate.id_lucrare,?gnLuna,?gnAn,?gnIdUtil,?gnIdSucursala)}]
*!* modificare v 2.0.56
Case Inlist(tnTip, 8, 9) && facturi de retur
lcSqlCursor = [{call ] + gcS + [.pack_facturare.cursor_retur(?poDate.in_valuta,?poDate.listaid,?gnIdUtil)}]
*!* modificare v 2.0.56 ^
Endcase
If .F.
lcCursor = [crsarticole]
lnSucces = goExecutor.oExecute(lcSqlCursor, lcCursor)
Endif
lnSucces = 1
If lnSucces < 0
AMESSAGEBOX(goExecutor.oPrelucrareEroare(), 16, "Eroare")
If goExecutor.nEroare = 20005
vizualizeaza_curs(poDate.zi_curs)
Endif
*!* nu inchid crsCtrTemp
*!* modificare v 2.0.56
*!* poGeneratorNumere.dezaloca_numar(pnIdTipDoc)
*!* modificare v 2.0.56 ^
Else
If .F. And Reccount(lcCursor) = 0 And (!Used(lcCursor + '1') Or (Used(lcCursor + '1') And Reccount(lcCursor + '1') = 0))
AMESSAGEBOX("Nu exista articole pentru optiunile alese!", 48, "Atentie")
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
*!* modificare v 2.0.67
If Used('crsCtrTemp')
Use In ('crsCtrTemp')
Endif
*!* modificare v 2.0.67 ^
Else
*!* modificare v 2.0.67
*!* If Inlist(pnTipFacturare,1,2)
*!* *!* modificare v 2.0.56 : am mutat codul in procedura
*!* creeaza_crsfactura_rate()
*!* *!* modificare v 2.0.56 ^
*!* lcObject = [frm_facturare_rate]
*!* Else
*!* modificare v 2.0.67 ^
*!* modificare v 2.0.56 : am mutat codul in procedura
creeaza_facturacrs([crsfactura])
*!* modificare v 2.0.56 ^
If tnTip = 30
Local lcIdJtva
Select (lcCursor)
Scan
Scatter Name loArticole Memo
Select crsfactura
update_jtva_coloane([JV], 'CrsCotaTva', 0)
Select CrsCotaTva
Locate For cota_tva = (loArticole.proc_tvav * 100 - 100)
If Found()
lcIdJtva = id_jtva_coloana
Else
lcIdJtva = Null
Endif
Use In CrsCotaTva
*!* modificare v 2.0.61
*!* modificare v 2.0.56 : am adaugat pretd,id_valuta_d
*!* Insert Into crsfactura ;
*!* (id_c,id_temp,id_articol,id_gestiune,Cont,um,;
*!* id_valuta,gestionabil ,tip_valuta ,Curs ,id_jtva_coloana ,codmat ,;
*!* pret_achizitie,pretd,id_valuta_d,denumire ,pretftva ,pretctva ,valftva , valtva ,valctva ,;
*!* cantitate ,discountftva , discountctva , valdiscountftva ,valdiscounttva ,;
*!* valdiscountctva ,valdiminuatftva ,valdiminuattva , valdiminuatctva ,proc_tvav ,cu_tva ,serie ,;
*!* id_set_fact ,explicatie,id_pol ) ;
*!* values (;
*!* loArticole.id_c,loArticole.id_c,loArticole.id_articol,loArticole.id_gestiune,loArticole.Cont,loArticole.um,;
*!* loArticole.id_valuta,loArticole.gestionabil,loArticole.tip_valuta,loArticole.Curs,lcIdJtva ,Nvl(loArticole.codmat,' '),;
*!* loArticole.preta,loArticole.pretd,loArticole.id_valuta_d,loArticole.denumire,loArticole.Pret,loArticole.Pret+loArticole.tvav,Round(loArticole.cantitate*loArticole.Pret,gnpa),Round(loArticole.cantitate*loArticole.tvav,gnpa),Round((loArticole.cantitate*loArticole.Pret)+(loArticole.cantitate*loArticole.tvav),gnpa),;
*!* loArticole.cantitate,0,0,0,0,;
*!* 0,Round(loArticole.cantitate*loArticole.Pret,gnpa),Round(loArticole.cantitate*loArticole.tvav,gnpa),Round((loArticole.cantitate*loArticole.Pret)+(loArticole.cantitate*loArticole.tvav),gnpa),loArticole.proc_tvav,loArticole.preturi_cu_tva,'',;
*!* null,'',Null)
*!* modificare v 2.0.71 : am adaugat id_ctr = Null
*!* modificare v 2.0.90 : am adaugat multiplicator
Insert Into crsfactura ;
(id_c, id_temp, id_articol, id_gestiune, Cont, um, ;
id_valuta, gestionabil, tip_valuta, Curs, multiplicator, id_jtva_coloana, codmat, ;
pret_achizitie, pretd, id_valuta_d, denumire, pretftva, pretctva, valftva, valtva, valctva, ;
cantitate, discountftva, discountctva, valdiscountftva, valdiscounttva, ;
valdiscountctva, valdiminuatftva, valdiminuattva, valdiminuatctva, proc_tvav, cu_tva, serie, ;
id_set_fact, explicatie, id_pol, id_ctr ) ;
Values (;
loArticole.id_c, loArticole.id_c, loArticole.id_articol, loArticole.id_gestiune, loArticole.Cont, loArticole.um, ;
loArticole.id_valuta, loArticole.gestionabil, loArticole.tip_valuta, loArticole.Curs, ;
loArticole.multiplicator, lcIdJtva, Nvl(loArticole.codmat, ' '), ;
loArticole.preta, loArticole.pretd, loArticole.id_valuta_d, loArticole.denumire, ;
loArticole.pretftva, loArticole.pretctva, ;
Round(loArticole.cantitate * loArticole.pretftva, gnpc), ;
Round(loArticole.cantitate * loArticole.tvav, gnpc), ;
Round(loArticole.cantitate * loArticole.pretctva, gnpc), ;
loArticole.cantitate, 0, 0, 0, 0, ;
0, Round(loArticole.cantitate * loArticole.pretftva, gnpc), Round(loArticole.cantitate * loArticole.tvav, gnpc), ;
Round(loArticole.cantitate * loArticole.pretctva, gnpc), loArticole.proc_tvav, loArticole.preturi_cu_tva, '', ;
Null, '', Null, Null)
*!* modificare v 2.0.61 ^
&&25039
Select (lcCursor)
Endscan
Release lcIdJtva
Select crsfactura
Release loArticole
Endif
If tnTip = 27
lcObject = [frm_avizare_lucrare]
Create Cursor crsgestiunidest(id_gestiune N(20), nume_gestiune c(100))
Select crsgestiunidest
Append Blank
Replace id_gestiune With - 9999, nume_gestiune With '<TOATE>'
Insert Into crsgestiunidest(id_gestiune, nume_gestiune) ;
Select Distinct id_gestiune, nume_gestiune From (lcCursor) Order By nume_gestiune
Else
lcObject = [frm_facturare_articole2]
Endif
*!* modificare v 2.0.67
*!* Endif
*!* modificare v 2.0.67 ^
*!* modificare v 2.0.56
*!* If Type('crsarticole.curs')<>'U'
*!* Select Distinct Curs,nume_val From crsArticole With (Buffering = .T.) Where tip_valuta = 1 Into Cursor crscursuri
*!* If poDate.in_valuta = 1
*!* Select crscursuri
*!* poDate.Curs = Curs
*!* Endif
If poDate.in_valuta = 1
Select Distinct Curs, nume_val, id_valuta, multiplicator From (lcCursor) With (Buffering = .T.) Where tip_valuta = 1 Order By nume_val Into Cursor crscursuri
Select crscursuri
poDate.Curs = Curs
poDate.multiplicator = multiplicator
Else
Do citeste_cursuri_zi With poDate.zi_curs In oproceduri_curs.prg
If Used('crscursuri')
If Reccount('crscursuri') = 0
Use In (Select('crscursuri'))
Endif
Endif
*!* modificare v 2.0.56 ^
Endif
If .F.
If Type(lcCursor + '.nume_lista_preturi') <> 'U'
Create Cursor crspolitici (id_pol N(20), nume_lista_preturi c(100))
Select crspolitici
*!* modificare v 2.0.77
*!* Append Blank
*!* Replace id_pol With -9999,nume_lista_preturi With '<TOATE>'
Insert Into crspolitici(id_pol, nume_lista_preturi) Values (-9999, '<TOATE>')
*!* modificare v 2.0.77 ^
Insert Into crspolitici(id_pol, nume_lista_preturi) ;
Select Distinct id_pol, nume_lista_preturi From (lcCursor) Order By nume_lista_preturi
Endif
Endif && .F.
If .F.
*!* modificare v 2.0.67
If Inlist(tnTip, 2, 6, 26)
Create Cursor crscontracte(id_ctr N(20), numar_contract c(100), Data d Null, numar c(50) Null)
Select crscontracte
Append Blank
Replace id_ctr With - 9999, numar_contract With '<TOATE>'
Insert Into crscontracte(id_ctr, numar_contract, Data, numar) ;
Select Distinct id_ctr, numar_contract, Data, numar From (lcCursor + [1]) Order By Data, numar
Endif
Endif && .F.
*!* modificare v 2.0.67 ^
ofrmdetaliifactura = Createobject(lcObject)
If tnTip = 30
Private plreturn
Store .T. To plreturn
ofrmdetaliifactura.do_calculeaza_totaluri()
ofrmdetaliifactura.but_termin1.Click()
plVizibil = .F.
If !plreturn
Return
Endif
Else
If plVizibil
ofrmdetaliifactura.Show()
Else
ofrmdetaliifactura.Release()
pnButon = 2
Endif
Endif
If Used('crspolitici')
Use In crspolitici
Endif
If Used('crscursuri')
Use In crscursuri
Endif
*!* modificare v 2.0.67
If Used('crscontracte')
Use In crscontracte
Endif
If Used('crsCtrTemp')
Use In crsCtrTemp
Endif
*!* modificare v 2.0.67 ^
*!* modificare v 2.0.80
If poDate.incasat <> 0
poGeneratorNumere.verifica_numar(16, poDate.nr_incasare)
Endif
*!* modificare v 2.0.80
If pnButon = 1
* Completare codmat client
Select crsfactura
Scan
Replace codmatc With GetCodmatC(poDate.id_client, crsfactura.id_articol) In crsfactura
Endscan
If poDate.tip <> 27
If poDate.ntip_incasare = 2 && bon fiscal
If Type('gnListareAvizBonFiscal') = 'N' And m.gnListareAvizBonFiscal = 1
lnTipTemp = poDate.tip
poDate.tip = 22 && La bonul fiscal listez AVIZ DE EXPEDITIE
listeaza_ofacturare()
poDate.tip = m.lnTipTemp
Endif
ltDataOra = Get_Ora()
listeaza_bon_fiscal(ltDataOra, poDate.nr_incasare, poDate.incasat, poDate.incasatCARD, poDate.proc_tva, poDate.nract, poDate.nBonDetaliat, "crsFactura")
Else
listeaza_ofacturare()
Endif
Endif
Else
poGeneratorNumere.dezaloca_numar(poDate.nIdTipDoc)
Endif
If Used('crsfactura')
Use In crsfactura
Endif
If Used('crsfacturaset')
Use In crsfacturaset
Endif
If Used('crsfacturafinala')
Use In crsfacturafinala
Endif
Endif
*!* lnRaspuns = amessagebox("Doriti sa continuati cu operatii de acest fel?", 4 + 32, "Confirmare")
lnRaspuns = AMESSAGEBOX([Doriti sa continuati cu operatii de acest fel?] + Chr(13) + Chr(10) + [DA=copiere date / NU=fara copiere date / Abandon], 3 + 32, "Confirmare")
If lnRaspuns = 6 && DA
loDateAnterior = CloneObj(m.poDate) && se retin informatiile pentru completarea pe factura urmatoare
Else
loDateAnterior = Null
If m.lnRaspuns = 7 && NU inseamna DA fara copierea datelor
lnRaspuns = 6 && DA
Endif
Endif
poDate.Reset(7 - lnRaspuns)
poDateGestiuneDest.Reset()
Endif
*!* Endif
*!* Endif
Enddo
*!* modificare v 2.2.0
Use In (Select('jtva_coloane_temp'))
Use In (Select('jtva_coloane'))
*!* modificare v 2.2.0 ^
Release poDate, poGeneratorNumere
Endproc && factureaza2
******************************************** SFARSIT: factureaza2 **********************************************
***
************************************ INCEPUT: completeaza_date_aviz_retur *************************************
Function completeaza_date_aviz_retur
Local lnRezultatSerii
lnRezultatSerii = poGeneratorNumere.creeaza_cursor_serii(6)
ofrmdateavizretur = Createobject('frm_date_aviz_retur', lnRezultatSerii)
ofrmdateavizretur.Show(1)
Release ofrmdateavizretur, lnRezultatSerii
Return Iif(pnButon = 1, 1, -1)
Endfunc && completeaza_date_aviz_retur
************************************ SFARSIT: completeaza_date_aviz_retur *************************************
******************************************** INCEPUT: listeaza_ofacturare **********************************************
Procedure listeaza_ofacturare
Local loArticol, lcRaportVal, lnPretListAviz, lcRaport, llSilentios
Local loPreviewerConfig As "PreviewerConfig"
Local lcCursor, lcDestinationFile, lcDocument, lcExplicatieRaport, lcPdfHasImage, lcSetare
Local lcSetareVizualizare, lcSql, llPdfHasImage, lcSqlTVA
Local lcCursorFacturaTemp
*:Global poFirma
Private poClient, poBeneficiar, ptDataOra, pcExplicatieContract, pnTotalPozitii, pnIdUtil
poClient = Null
poBeneficiar = Null
ptDataOra = {//::}
pcExplicatieContract = ''
pnTotalPozitii = 0
lcRaportVal = []
lnPretListAviz = 2 && fara TVA
pnIdUtil = Iif(!Empty(Nvl(poDate.id_util, 0)), poDate.id_util, m.gnIdUtil)
************************************************
** Date client, responsabil facturare si firma
************************************************
Do Case
Case poDate.eProforma = 1
&& Proforma
TEXT TO lcSql NOSHOW
select 1 as tip,(case when p.tip_persoana = 1 then prefix||' '|| p.denumire||' '|| p.sufix else p.denumire end) as denumire,
p.cod_fiscal, p.cod_fiscal2, p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
sysdate as dataora,p.tip_persoana,0 as capital_soc_var,
0 as capital_soc_sub, b.comanda_externa,c.cod,d.adresa as adresa_facturare,NVL(d.email, p.email) as email_facturare,e.adresa as adresa_livrare,
d.denumire_adresa as denadrf,e.denumire_adresa as denadrl,
d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,
e.strada as stradal, e.judet as judetl, e.indicativ as indicativ_judetl, e.localitate as localitatel, e.tara as taral, e.prescurtare as cod_taral,
f.numar as nr_ctr,f.data as data_ctr,
p.cod_tara, p.judet, p.indicativ_judet, p.cod_judet, p.localitate, p.id_cetatenie, p.strada, p.numar as strada_nr
from vnom_parteneri p
left join comenzi b on b.id_part=p.id_part and b.id_comanda=?poDate.listaid
left join parteneri_coduri c on c.id=b.id_codclient
left join vadrese_parteneri d on d.id_adresa=b.id_facturare
left join vadrese_parteneri e on e.id_adresa=b.id_livrare
left join contracte f on b.id_ctr = f.id_ctr
where p.id_part = ?poDate.id_client
union all
select 2 as tip,denumire,cod_fiscal,cod_fiscal2,'' as adresa,'' as telefon,'' as fax,reg_comert,'' as banca,'' as cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub ,'' as comanda_externa,'' as cod,
'' as adresa_facturare,''as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,
'' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
'' as nr_ctr,null as data_ctr,
'' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr
from nom_parteneri where sters = 0 and inactiv = 0 and id_part in
(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)
union all
select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,telefon,fax,reg_comert,banca1 as banca,
cont_banca1 as cont_banca,banca2,cont_banca2,banca3,cont_banca3,
null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub,
'' as comanda_externa,'' as cod,'' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,
'' as denadrf,'' as denadrl,
'' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
'' as nr_ctr,null as data_ctr,
'' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr
from syn_nom_firme where id_firma = ?gnIdFirma
union all
select 4 as tip,(case when p.tip_persoana = 1 then prefix||' '|| p.denumire||' '|| p.sufix else p.denumire end) as denumire,
p.cod_fiscal,p.cod_fiscal2,p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
sysdate as dataora,p.tip_persoana,0 as capital_soc_var,
0 as capital_soc_sub, b.comanda_externa,c.cod,d.adresa as adresa_facturare,NVL(d.email, p.email) as email_facturare,e.adresa as adresa_livrare,
d.denumire_adresa as denadrf,e.denumire_adresa as denadrl,
d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,
e.strada as stradal, e.judet as judetl, e.indicativ as indicativ_judetl, e.localitate as localitatel, e.tara as taral, e.prescurtare as cod_taral,
f.numar as nr_ctr,f.data as data_ctr,
p.cod_tara, p.judet, p.indicativ_judet, p.cod_judet, p.localitate, p.id_cetatenie, p.strada, p.numar as strada_nr
from vnom_parteneri p
left join comenzi b on b.id_part=p.id_part and b.id_comanda=?poDate.listaid
left join parteneri_coduri c on c.id=b.id_codclient
left join vadrese_parteneri d on d.id_adresa=b.id_facturare
left join vadrese_parteneri e on e.id_adresa=b.id_livrare
left join contracte f on b.id_ctr = f.id_ctr
where p.id_part = ?poDate.nIdBeneficiar
ENDTEXT
Case Inlist(poDate.tip, 23, 25, 27, 30) And Isnull(poDate.id_part_rez) && AVIZE SUBUNITATI PE BAZA DE LISTA DE PRETURI, COMANDA, LUCRARE, NIR
*!* 14.12.2015 - sesizare Printconcept 4171 - nu apareau datele clientului
lcSql = [select 1 as tip,Nvl(c.denumire,a.nume_gestiune) as denumire,nvl(c.cod_fiscal,a.cgest) as cod_fiscal,c.cod_fiscal2,] + ;
[Nvl(d.adresa,'') as adresa,NVL(d.email,'') as email,Nvl(d.telefon1,'') as telefon,Nvl(d.fax,'') as fax,] + ;
[Nvl(c.reg_comert,'') as reg_comert,Nvl(c.banca,'') as banca,Nvl(c.cont_banca,'') as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[sysdate as dataora,1 as tip_persoana,0 as capital_soc_var,] + ;
[0 as capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,d.adresa as adresa_facturare,d.email as email_facturare, '' as adresa_livrare,] + ;
[d.denumire_adresa as denadrf,'' as denadrl,] + ;
[d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,] + ;
['' as nr_ctr, '' as data_ctr,] + ;
[c.cod_tara, c.judet, c.indicativ_judet, c.cod_judet, c.localitate, c.id_cetatenie, c.strada, c.numar as strada_nr ] + ;
[from nom_gestiuni a ] + ;
[left join asociere_parteneri_gestiuni b on a.id_gestiune = b.id_gestiune ] + ;
[left join vnom_parteneri c on b.id_part = c.id_part ] + ;
[left join vadrese_parteneri d on c.id_part = d.id_part and d.principala = 1 ] + ;
[where a.id_gestiune = ?poDateGestiuneDest.id_gestiune ] + ;
[union all ] + ;
[select 2 as tip,denumire,cod_fiscal,'' as cod_fiscal2,'' as adresa,'' as email,'' as telefon,'' as fax,'' as reg_comert,'' as banca,] + ;
['' as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from nom_parteneri where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)] + ;
[union all ] + ;
[select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,email,telefon,fax,reg_comert,] + ;
[banca1 as banca,cont_banca1 as cont_banca,] + ;
[banca2,cont_banca2,banca3,cont_banca3,] + ;
[null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from syn_nom_firme where id_firma = ?gnIdFirma]
*!* 14.12.2015 ^
Case Inlist(poDate.tip, 41, -6) && RETUR AVIZ SUBUNITATI(ROAFACTURARE), RETUR AVIZ DIN GESTIUNE VALORICA (ROAGEST)
lcSql = [select 1 as tip,Nvl(c.denumire,a.nume_gestiune) as denumire,nvl(c.cod_fiscal,a.cgest) as cod_fiscal,c.cod_fiscal2,] + ;
[Nvl(d.adresa,'') as adresa,NVL(d.email,'') as email,Nvl(d.telefon1,'') as telefon,Nvl(d.fax,'') as fax,] + ;
[Nvl(c.reg_comert,'') as reg_comert,Nvl(c.banca,'') as banca,Nvl(c.cont_banca,'') as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[sysdate as dataora,1 as tip_persoana,0 as capital_soc_var,0 as capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,d.adresa as adresa_facturare,d.email as email_facturare, '' as adresa_livrare,] + ;
[d.denumire_adresa as denadrf,'' as denadrl,] + ;
[d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,] + ;
['' as nr_ctr, '' as data_ctr,] + ;
[c.cod_tara, c.judet, c.indicativ_judet, c.cod_judet, c.localitate, c.id_cetatenie, c.strada, c.numar as strada_nr ] + ;
[from nom_gestiuni a ] + ;
[left join asociere_parteneri_gestiuni b on a.id_gestiune = b.id_gestiune ] + ;
[left join vnom_parteneri c on b.id_part = c.id_part ] + ;
[left join vadrese_parteneri d on c.id_part = d.id_part and d.principala = 1 ] + ;
[where a.id_gestiune = ?poDate.id_client ] + ;
[union all ] + ;
[select 2 as tip,denumire,cod_fiscal,cod_fiscal2,'' as adresa,'' as email,'' as telefon,'' as fax,'' as reg_comert,'' as banca,] + ;
['' as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from nom_parteneri where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)] + ;
[union all ] + ;
[select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,email,telefon,fax,reg_comert,] + ;
[banca1 as banca,cont_banca1 as cont_banca,] + ;
[banca2,cont_banca2,banca3,cont_banca3,] + ;
[null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from syn_nom_firme where id_firma = ?gnIdFirma]
*!* modificare v 2.0.16 ^
Case Inlist(poDate.tip, 3, 21, 28, 42, 47) Or (poDate.tip = 4 And Not Empty(poDate.id_comanda_aviz))
&&Factura pe baza de comanda/aviz din comanda sau factura din aviz si avizul este din comanda
*!* modificare v 2.0.99 : am adaugat data, nr_ctr
lcSql = [select 1 as tip,(case when p.tip_persoana = 1 then p.prefix||' '||p.denumire||' '||p.sufix else p.denumire end) as denumire,] + ;
[p.cod_fiscal,p.cod_fiscal2,p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[sysdate as dataora,p.tip_persoana,0 as capital_soc_var,0 as capital_soc_sub,] + ;
[b.comanda_externa,c.cod,] + ;
[d.adresa as adresa_facturare,d.email as email_facturare,e.adresa as adresa_livrare,] + ;
[d.denumire_adresa as denadrf,e.denumire_adresa as denadrl,] + ;
[d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf, ] + ;
[e.strada as stradal, e.judet as judetl, e.indicativ as indicativ_judetl, e.localitate as localitatel, e.tara as taral, e.prescurtare as cod_taral, ] + ;
[f.numar as nr_ctr,f.data as data_ctr, ] + ;
[p.cod_tara, p.judet, p.indicativ_judet, p.cod_judet, p.localitate, p.id_cetatenie, p.strada, p.numar as strada_nr ] + ;
[ from vnom_parteneri p ] + ;
[left join comenzi b on b.id_part=p.id_part and b.id_comanda=] + Iif(Inlist(poDate.tip, 3, 21, 28, 42, 47), [?poDate.listaid ], [?poDate.id_comanda_aviz ]) + ;
[left join parteneri_coduri c on c.id=b.id_codclient ] + ;
[left join vadrese_parteneri d on d.id_adresa=b.id_facturare ] + ;
[left join vadrese_parteneri e on e.id_adresa=b.id_livrare ] + ;
[left join contracte f on b.id_ctr = f.id_ctr ] + ;
[where p.id_part = ?poDate.id_client ] + ;
[union all ] + ;
[select 2 as tip,denumire,cod_fiscal,cod_fiscal2,'' as adresa,'' as telefon,'' as fax,reg_comert,'' as banca,'' as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub ,] + ;
['' as comanda_externa,'' as cod, ] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from nom_parteneri ] + ;
[where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)] + ;
[union all ] + ;
[select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,telefon,fax,reg_comert,banca1 as banca,] + ;
[cont_banca1 as cont_banca,] + ;
[banca2,cont_banca2,banca3,cont_banca3,] + ;
[null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub,] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from syn_nom_firme where id_firma = ?gnIdFirma]
*!* modificare ROAAUTO v 2.0.33
Case poDate.tip = -12 And !Empty(Nvl(poDate.id_ordl, 0))
lcSql = [select 1 as tip,(case when tip_persoana = 1 then prefix||' '||denumire||' '||sufix else denumire end) as denumire,] + ;
[cod_fiscal,cod_fiscal2,adresa,email,telefon,'' as fax,reg_comert,banca,cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[sysdate as dataora,tip_persoana,0 as capital_soc_var, 0 as capital_soc_sub, ]+ ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, strada, numar as strada_nr ] + ;
[from vnom_parteneri where id_part in ] + ;
[(select id_partener from dev_masiniclienti where id_masiniclient in ] + ;
[(select id_masiniclient from dev_ordl where id_ordl = ?poDate.id_ordl)) ] + ;
[union all ] + ;
[select 2 as tip,denumire,cod_fiscal,cod_fiscal2,'' as adresa,'' as email,'' as telefon,'' as fax,reg_comert,'' as banca,'' as cont_banca,] + ;
['' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,] + ;
[null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from nom_parteneri ] + ;
[where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)] + ;
[union all ] + ;
[select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,'' as email,telefon,fax,reg_comert,banca1 as banca,] + ;
[cont_banca1 as cont_banca,] + ;
[banca2,cont_banca2,banca3,cont_banca3,] + ;
[null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub, ] + ;
['' as comanda_externa,'' as cod,] + ;
['' as adresa_facturare,'' as email_facturare,'' as adresa_livrare,'' as denadrf,'' as denadrl,] + ;
['' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf, ] + ;
['' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral, ] + ;
['' as nr_ctr,null as data_ctr,] + ;
['' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr ] + ;
[from syn_nom_firme where id_firma = ?gnIdFirma]
*!* modificare ROAAUTO v 2.0.33 ^
Otherwise
&&Factura
*!* modificare v 2.0.21 : Nvl(?poDate.id_part_rez,?poDate.id_client) in loc de ?poDate.id_client
TEXT TO lcSql NOSHOW
select 1 as tip,(case when tip_persoana = 1 then p.prefix||' '|| p.denumire||' '|| p.sufix else denumire end) as denumire,
p.cod_fiscal,p.cod_fiscal2,p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
'' as banca4,'' as cont_banca4,'' as banca5,'' as cont_banca5,'' as banca6,'' as cont_banca6,'' as banca7,'' as cont_banca7,
'' as banca8,'' as cont_banca8,'' as banca9,'' as cont_banca9,'' as banca10,'' as cont_banca10,
sysdate as dataora,p.tip_persoana,0 as capital_soc_var,0 as capital_soc_sub,
'' as comanda_externa,'' as cod,
d.adresa as adresa_facturare,d.email as email_facturare,'' as adresa_livrare,d.denumire_adresa as denadrf,'' as denadrl,
d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
p.cod_tara, p.judet, p.indicativ_judet, p.cod_judet, p.localitate, p.id_cetatenie, p.strada, p.numar as strada_nr
from vnom_parteneri p left join vanzari b on b.id_part=p.id_part and b.id_vanzare = ?poDate.nid_vanzare
left join vadrese_parteneri d on d.id_adresa=b.id_facturare
where p.id_part = Nvl(?poDate.id_part_rez,?poDate.id_client)
union all
select 2 as tip,denumire,cod_fiscal,cod_fiscal2,'' as adresa,'' as telefon,'' as fax,reg_comert,'' as banca,'' as cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
'' as banca4,'' as cont_banca4,'' as banca5,'' as cont_banca5,'' as banca6,'' as cont_banca6,'' as banca7,'' as cont_banca7,
'' as banca8,'' as cont_banca8,'' as banca9,'' as cont_banca9,'' as banca10,'' as cont_banca10,
null as dataora,tip_persoana,0 as capital_soc_var,0 as capital_soc_sub,
'' as comanda_externa,'' as cod,
'' as adresa_facturare, '' as email_facturare,'' as adresa_livrare, '' as denadrf,'' as denadrl,
'' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
'' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr
from nom_parteneri
where sters = 0 and inactiv = 0 and id_part in
(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?pnIdUtil)
union all
select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,telefon,fax,reg_comert,banca1 as banca,
cont_banca1 as cont_banca,banca2,cont_banca2,banca3,cont_banca3,
banca4,cont_banca4,banca5,cont_banca5,banca6,cont_banca6,banca7,cont_banca7,
banca8,cont_banca8,banca9,cont_banca9,banca10,cont_banca10,
null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub,
'' as comanda_externa,'' as cod,
'' as adresa_facturare,''as email_facturare,'' as adresa_livrare, '' as denadrf,'' as denadrl,
'' as stradaf, '' as judetf, '' as indicativ_judetf, '' as localitatef, '' as taraf, '' as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
'' as cod_tara, '' as judet, '' as indicativ_judet, '' as cod_judet, '' as localitate, 0 as id_cetatenie, '' as strada, '' as strada_nr
from syn_nom_firme where id_firma = ?gnIdFirma
union all
select 4 as tip,(case when tip_persoana = 1 then p.prefix||' '|| p.denumire||' '|| p.sufix else denumire end) as denumire,
p.cod_fiscal,p.cod_fiscal2,p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
'' as banca4,'' as cont_banca4,'' as banca5,'' as cont_banca5,'' as banca6,'' as cont_banca6,'' as banca7,'' as cont_banca7,
'' as banca8,'' as cont_banca8,'' as banca9,'' as cont_banca9,'' as banca10,'' as cont_banca10,
sysdate as dataora,p.tip_persoana,0 as capital_soc_var,0 as capital_soc_sub,
'' as comanda_externa,'' as cod,
d.adresa as adresa_facturare,d.email as email_facturare,'' as adresa_livrare,d.denumire_adresa as denadrf,'' as denadrl,
d.strada as stradaf, d.judet as judetf, d.indicativ as indicativ_judetf, d.localitate as localitatef, d.tara as taraf, d.prescurtare as cod_taraf,
'' as stradal, '' as judetl, '' as indicativ_judetl, '' as localitatel, '' as taral, '' as cod_taral,
p.cod_tara, p.judet, p.indicativ_judet, p.cod_judet, p.localitate, p.id_cetatenie, p.strada, p.numar as strada_nr
from vnom_parteneri p left join vanzari b on b.id_part=p.id_part and b.id_vanzare = ?poDate.nid_vanzare
left join vadrese_parteneri d on d.id_adresa=b.id_facturare
where p.id_part = ?poDate.nIdBeneficiar
ENDTEXT
Endcase
If Used('crsdatefacturare')
Use In crsdatefacturare
Endif
lcCursor = [crsdatefacturare]
If !goExecutor.oExecuta(lcSql, lcCursor)
Return
Endif
Select crsdatefacturare
Scan
Do Case
Case tip = 1
Scatter Name poClient Memo
ptDataOra = poClient.dataora
Case tip = 2
With poDate
.nume_responsabil = denumire
.BIresp = reg_comert
.CNPresp = cod_fiscal
Endwith
Case tip = 4
Scatter Name poBeneficiar Memo
Otherwise
Scatter Name poFirma Memo
Endcase
Endscan
If Type('poBeneficiar') <> 'O'
Select crsdatefacturare
Scatter Name poBeneficiar Memo Blank
Endif
Use In crsdatefacturare
************************************************
************************************************
AddProperty(poClient, 'denumireClient', [])
AddProperty(poFirma, 'b_swift', [])
AddProperty(poFirma, 'b_adresa', [])
AddProperty(poFirma, 'b_swift2', [])
AddProperty(poFirma, 'b_adresa2', [])
AddProperty(poFirma, 'b_swift3', [])
AddProperty(poFirma, 'b_adresa3', [])
************************************************
************************************************
** Date suplimentare contract
************************************************
poClient.denumireClient = poClient.denumire && salvez denumirea originala in denumireClient
Do Case
*!* modificare v 2.0.67
*!* Case poDate.tip = 2
*!* && facturare pe baza de contract
*!* Private pnIdContract
*!* pnIdContract=Iif(Type('poDate.listaid')='C',Val(poDate.listaid),poDate.listaid)
*!* lcSql = [select contract from ] + gcS + [.vcontracte where id_ctr = ?pnIdContract and text_standard = 1]
*!* If Used('crsdatesuplimentare')
*!* Use In crsdatesuplimentare
*!* Endif
*!* lcCursor = [crsdatesuplimentare]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces<0
*!* amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
*!* Return
*!* Endif
*!* If Reccount('crsdatesuplimentare')>0
*!* Select crsdatesuplimentare
*!* lcNumarCtr = Nvl(contract,[.........])
*!* pcExplicatieContract = [Conform contractului nr. ] + lcNumarCtr
*!* Else
*!* pcExplicatieContract = []
*!* Endif
*!* Use In crsdatesuplimentare
*!* Release pnIdContract
*!* modificare v 2.0.67 ^
Case Inlist(poDate.tip, 3, 21, 28, 42, 47) Or (poDate.tip = 4 And Not Empty(poDate.id_comanda_aviz))
&& factura/aviz pe baza de comanda
*!* modificare v 2.0.99 : am adaugat nr_ctr si data_ctr
pcExplicatieContract = Iif(!Empty(Nvl(poClient.comanda_externa, [])), [Conform comanda nr. ] + poClient.comanda_externa, []) + ;
Iif(!Empty(Nvl(poClient.data_ctr, {})), Iif(!Empty(Nvl(poClient.comanda_externa, [])), CRLF, []) + ;
[Conform contract nr.] + Alltrim(poClient.nr_ctr) + [ din data de ] + ;
Padl(Alltrim(Str(Day(poClient.data_ctr))), 2, [0]) + [.] + ;
Padl(Alltrim(Str(Month(poClient.data_ctr))), 2, [0]) + [.] + ;
Alltrim(Str(Year(poClient.data_ctr))), [])
*!* modificare v 2.0.46
*!* If poDate.tip = 3 Or (poDate.tip=4 And Not Empty(poDate.id_comanda_aviz))
*!* poClient.adresa=Iif(Empty(poClient.adresa_facturare),poClient.adresa,poClient.adresa_facturare)
*!* Else
*!* poClient.adresa=Iif(Empty(poClient.adresa_livrare),poClient.adresa,poClient.adresa_livrare)
*!* Endif
If poDate.tip = 3 Or (poDate.tip = 4 And Not Empty(poDate.id_comanda_aviz))
poClient.adresa = Alltrim(Iif(Empty(Nvl(poClient.adresa_facturare, [])), poClient.adresa, poClient.adresa_facturare))
poClient.denumire = poClient.denumire + Nvl(poClient.denadrf, [])
Else
poClient.adresa = Alltrim(Iif(Empty(Nvl(poClient.adresa_livrare, [])), poClient.adresa, poClient.adresa_livrare))
poClient.denumire = poClient.denumire + Nvl(poClient.denadrl, [])
Endif
*!* modificare v 2.0.46 ^
Case poDate.tip = 4
&& facturare conform aviz
pcExplicatieContract = [Conform aviz : ] + poDate.descriere
*!* modificare 11.02.2008
*!* poClient.adresa=Iif(Empty(poClient.adresa_facturare),poClient.adresa,poClient.adresa_facturare)
*!* modificare 11.02.2008 ^
Otherwise
pcExplicatieContract = []
If Type('poClient.adresa_facturare') = 'C'
poClient.adresa = Alltrim(Iif(Empty(Nvl(poClient.adresa_facturare, [])), poClient.adresa, poClient.adresa_facturare))
poClient.denumire = poClient.denumire + Nvl(poClient.denadrf, [])
Endif
Endcase
************************************************
************************************************
* Salvez obiectul poClient in poDate sa pot accesa poDate.oClient.email_facturare la trimitere emailuri cu listare factura pdf
poDate.oClient = poClient
*!* modificare v 2.0.58
If poDate.nRelistare = 0
poDate.nSalveazaAtasamente = Nvl(citeste_optiune_firma([ATASAMENTEFACT]), 0)
Endif
*!* modificare v 2.0.58 ^
*!* modificare v 2.0.46
alege_optiuni_listare_facturare()
If m.glAlegeBanca
alege_banci_facturare()
Endif
*!* modificare v 2.0.46 ^
Select crsfactura
Calculate Max(Round(Nvl(proc_tvav, 1), 2)) To poDate.proc_tva
poDate.proc_tva = poDate.proc_tva * 100 - 100
poDate.text_aditional = STRTRAN(poDate.text_aditional, CHR(170), CHR(13) + CHR(10), 1, 100, 1)
poDate.text_aditional_en = poDate.text_aditional && modificare v 2.0.80
* Text TVA de afisat in partea de sus a facturii, daca este o singura explicatie de TVA pe toate liniile din crsDetalii
IF TYPE('poDate.cTextTVA') = 'U'
ADDPROPERTY(poDate, 'cTextTVA', '')
IF TYPE('gnTextTVAFactura') = 'N' AND m.gnTextTVAFactura = 1 AND !EMPTY(NVL(poDate.nid_vanzare,0))
TEXT TO lcSqlTVA TEXTMERGE noshow
select distinct jt.denumire as jtva_coloana,
jte.explicatie as jtva_coloana_ex
from vanzari_detalii a
left join jtva_coloane_explicatii jte
on jte.id = a.id_jtva_coloana_ex
left join jtva_coloane jt
on jt.id_jtva_coloana = a.id_jtva_coloana
where a.id_vanzare = <<INT(poDate.nid_vanzare)>>
ENDTEXT
llSucces = goExecutor.oExecuta(m.lcSqlTVA, 'cTextTVATemp')
IF m.llSucces AND RECCOUNT('cTextTVATemp') = 1
SELECT cTextTVATemp
GO TOP
poDate.cTextTVA = IIF(!EMPTY(NVL(jtva_coloana_ex, '')), ALLTRIM(jtva_coloana_ex), ALLTRIM(NVL(jtva_coloana,'')))
ENDIF
USE IN (SELECT('cTextTVATemp'))
ENDIF
ENDIF && poDate.cTextTVA
Do Case
CASE poDate.nEFactura = 1
* do nothing
Case INLIST(poDate.tip, 10, 52) And poDate.eProforma = 0 && factura fiscala in valuta lista de preturi, factura fiscala in valuta pe baza de contract
*!* modificare v 2.0.56
lcSetare = [FACTURA]
lcExplicatieRaport = [factura]
lcSetareVizualizare = [PREVIZFACT]
Do Case
Case gnFormatFactura = 1 && format A4
lcRaport = [FACTURA]
lcRaportVal = [FACTURA_VAL]
Case gnFormatFactura = 2 && format A5
lcRaport = [FACTURA_A5]
lcRaportVal = [FACTURA_VAL_A5]
Case gnFormatFactura = 3
If optiuni_format_listare(0) = 2
lcRaport = [FACTURA_A5]
lcRaportVal = [FACTURA_VAL_A5]
Else
lcRaport = [FACTURA]
lcRaportVal = [FACTURA_VAL]
Endif
Endcase
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Curs valutar = ] + formateaza(poDate.Curs, 14, gnPCurs) + [ RON / ] + ;
Iif(poDate.multiplicator = 1, [], Alltrim(Str(poDate.multiplicator)) + [ ]) + Alltrim(poDate.nume_valuta)
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Exchange rate = ] + Alltrim(Str(poDate.Curs, 14, gnPCurs)) + [ RON / ] + ;
Iif(poDate.multiplicator = 1, [], Alltrim(Str(poDate.multiplicator)) + [ ]) + Alltrim(poDate.nume_valuta)
If poDate.incasat <> 0
poDate.sumavorbe = suma_in_vorbe(poDate.incasat)
poDate.explicatie_chit = [facturii ] + Allt(Allt(Nvl(poDate.serie_act, [])) + [ ] + Alltrim(Transf(poDate.nract, get_mask(20, 0)))) + [ din ] + Dtoc(poDate.dataact)
*!* modificare ROAFACTURARE v 2.0.84 : lcDocument
lcDocument = Iif(poDate.ntip_incasare = 11, [chitanta], Iif(poDate.ntip_incasare = 2, [bon fiscal], Iif(poDate.ntip_incasare = 3, [POS/Card], [bon fiscal/chitanta])))
*!* modificare ROAAUTO v 2.0.41 ( 06.03.2011 ) : daca e bon fiscal, atunci nu-i trec seria
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[ Achitat cu ] + lcDocument + [ nr.] + Iif(poDate.ntip_incasare = 2, [], Alltrim(Nvl(poDate.serie_chit, []))) + [ ] + Alltrim(Str(poDate.nr_incasare)) + [ din ] + Dtoc(poDate.dataact) + [ .]
*!* modificare ROAAUTO v 2.0.41 ( 06.03.2011 ) : daca e bon fiscal, atunci nu-i trec seria
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional_en, [])), poDate.text_aditional_en + Chr(13) + Chr(10), []) + ;
[ Paid with cash ( receipt no. ] + Iif(poDate.ntip_incasare = 2, [], Alltrim(Nvl(poDate.serie_chit, []))) + [ ] + Alltrim(Str(poDate.nr_incasare)) + [ from ] + Dtoc(poDate.dataact) + [ ).]
Endif
*!* modificare v 2.0.56 ^
*!* modificare v 2.0.77
*!* *!* modificare v 2.0.4
*!* Case Inlist(poDate.tip,23,25,27,28,29,30,41,-6)
*!* If Nvl(gnPretListSubunitati,2)=2
*!* lcRaport = [AVIZ_TRANSFER]
*!* Else
*!* lcRaport = [AVIZ_TRANSFER_CTVA]
*!* Endif
*!* lcSetare = [AVIZ]
*!* lcExplicatieRaport = [avizul de transfer]
*!* *!* modificare v 2.0.46
*!* *!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
*!* lcSetareVizualizare = [PREVIZAVIZ]
*!* *!* modificare v 2.0.46 ^
*!* *!* modificare v 2.0.4 ^
*!* modificare v 2.0.77 ^
*!* modificare v 2.0.93
Case (Between(poDate.tip, 1, 20) Or Inlist(poDate.tip, -1, -2, -3, -4, -8, -11, 44, 45, 48, 49, 50, 51, 52)) And poDate.eProforma = 1
*!* Case poDate.tip < 20 And poDate.eProforma = 1 && proforme
*!* modificare v 2.0.93 ^
lcRaport = [PROFORMA]
lcRaportVal = [PROFORMA_VAL]
lcSetare = [PROFORMA]
lcExplicatieRaport = [proforma]
*!* modificare v 2.0.46
*!* lnVizualizare = Iif(Type('gnVizualProf')='N',gnVizualProf,1)
lcSetareVizualizare = [PREVIZPROF]
*!* modificare v 2.0.46 ^
*!* modificare v 2.0.70
If Nvl(gnListCursVal, 1) = 1 And poDate.in_valuta = 0
Local lcCurs, lcCursEn
lcCurs = []
lcCursEn = []
Create Cursor crsTempVal(nume_val c(100), Curs N(14, gnPCurs), multiplicator N(10))
Insert Into crsTempVal(nume_val, Curs, multiplicator) ;
Select Distinct nume_val, Curs, multiplicator From crsfactura Where tip_valuta = 1
Select crsTempVal
Scan
lcCurs = lcCurs + [;] + formateaza(Curs, 14, gnPCurs) + [ RON / ] + ;
Iif(multiplicator = 1, [], Alltrim(Str(multiplicator)) + [ ]) + Alltrim(nume_val) + [ ]
lcCursEn = lcCursEn + [;] + Alltrim(Str(Curs, 14, gnPCurs)) + [ RON / ] + ;
Iif(multiplicator = 1, [], Alltrim(Str(multiplicator)) + [ ]) + Alltrim(nume_val) + [ ]
Endscan
If !Empty(lcCurs)
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Curs valutar = ] + Substr(lcCurs, 2)
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Exchange rate = ] + Substr(lcCursEn, 2)
Endif
If Used('crsTempVal')
Use In crsTempVal
Endif
Release lcCurs, lcCursEn
Endif
*!* modificare v 2.0.70 ^
*!* modificare v 2.0.41
*!* Case poDate.tip < 20
*!* modificare v 2.0.76 : am adaugat 44, 45
*!* modificare v 2.0.93 : am adaugat 48
Case Between(poDate.tip, 1, 20) Or Inlist(poDate.tip, -1, -2, -3, -4, -8, -11, 44, 45, 48, 49, 50, 51) && facturi lei + invoice
*!* modificare v 2.0.41 ^
lcSetare = [FACTURA]
lcExplicatieRaport = [factura]
*!* modificare v 2.0.46
*!* lnVizualizare = Iif(Type('gnVizualFact')='N',gnVizualFact,1)
lcSetareVizualizare = [PREVIZFACT]
*!* modificare v 2.0.46 ^
Do Case
Case poDate.tip = 51 && ACN
lcRaport = [FACTURA_ACN]
lcRaportVal = [FACTURA_ACN]
Case gnFormatFactura = 1 && format A4
lcRaport = [FACTURA]
lcRaportVal = [INVOICE]
Case gnFormatFactura = 2 && format A5
lcRaport = [FACTURA_A5]
lcRaportVal = [INVOICE_A5]
Case gnFormatFactura = 3
*!* modificare v 2.0.46
*!* If optiuni_format_factura() = 2
If optiuni_format_listare(0) = 2
*!* modificare v 2.0.46
lcRaport = [FACTURA_A5]
lcRaportVal = [INVOICE_A5]
Else
lcRaport = [FACTURA]
lcRaportVal = [INVOICE]
Endif
Endcase
lcRaportVal = Iif(poDate.tip = 7, [CREDIT_NOTE], lcRaportVal)
If poDate.in_valuta = 1
*!* modificare v 2.0.46
poDate.text_aditional_invoice = poDate.text_aditional
*!* modificare v 2.0.46 ^
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Curs valutar = ] + formateaza(poDate.Curs, 14, gnPCurs) + [ RON / ] + ;
Iif(poDate.multiplicator = 1, [], Alltrim(Str(poDate.multiplicator)) + [ ]) + Alltrim(poDate.nume_valuta)
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Exchange rate = ] + Alltrim(Str(poDate.Curs, 14, gnPCurs)) + [ RON / ] + ;
Iif(poDate.multiplicator = 1, [], Alltrim(Str(poDate.multiplicator)) + [ ]) + Alltrim(poDate.nume_valuta)
*!* modificare v 2.0.67
Else
If Nvl(gnListCursVal, 1) = 1
Local lcCurs, lcCursEn
lcCurs = []
lcCursEn = []
Create Cursor crsTempVal(nume_val c(100), Curs N(14, gnPCurs), multiplicator N(10))
Insert Into crsTempVal(nume_val, Curs, multiplicator) ;
Select Distinct nume_val, Curs, multiplicator From crsfactura Where tip_valuta = 1
Select crsTempVal
Scan
lcCurs = lcCurs + [;] + formateaza(Curs, 14, gnPCurs) + [ RON / ] + ;
Iif(multiplicator = 1, [], Alltrim(Str(multiplicator)) + [ ]) + Alltrim(nume_val) + [ ]
lcCursEn = lcCursEn + [;] + Alltrim(Str(Curs, 14, gnPCurs)) + [ RON / ] + ;
Iif(multiplicator = 1, [], Alltrim(Str(multiplicator)) + [ ]) + Alltrim(nume_val) + [ ]
Endscan
If !Empty(lcCurs)
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Curs valutar = ] + Substr(lcCurs, 2)
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[Exchange rate = ] + Substr(lcCursEn, 2)
Endif
If Used('crsTempVal')
Use In crsTempVal
Endif
Release lcCurs
Endif
*!* modificare v 2.0.67 ^
Endif
If poDate.incasat <> 0
poDate.sumavorbe = suma_in_vorbe(poDate.incasat)
poDate.explicatie_chit = [facturii ] + Allt(Allt(Nvl(poDate.serie_act, [])) + [ ] + Alltrim(Transf(poDate.nract, get_mask(20, 0)))) + [ din ] + Dtoc(poDate.dataact)
*!* modificare ROAFACTURARE v 2.0.84 : lcDocument
lcDocument = Iif(poDate.ntip_incasare = 11, [chitanta], Iif(poDate.ntip_incasare = 2, [bon fiscal], Iif(poDate.ntip_incasare = 3, [POS/Card], [bon fiscal/chitanta])))
*!* modificare ROAAUTO v 2.0.41 ( 06.03.2011 ) : daca e bon fiscal, atunci nu-i trec seria
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[ Achitat cu ] + lcDocument + [ nr.] + Iif(poDate.ntip_incasare = 2, [], Alltrim(Nvl(poDate.serie_chit, []))) + [ ] + Alltrim(Str(poDate.nr_incasare)) + [ din ] + Dtoc(poDate.dataact)
*!* modificare ROAAUTO v 2.0.41 ( 06.03.2011 ) : daca e bon fiscal, atunci nu-i trec seria
poDate.text_aditional_en = Iif(!Empty(Nvl(poDate.text_aditional_en, [])), poDate.text_aditional_en + Chr(13) + Chr(10), []) + ;
[ Paid with cash ( receipt no. ] + Iif(poDate.ntip_incasare = 2, [], Alltrim(Nvl(poDate.serie_chit, []))) + [ ] + Alltrim(Str(poDate.nr_incasare)) + [ from ] + Dtoc(poDate.dataact) + [ ).]
Endif
*!* modificare v 2.0.189
*!* modificare ROAAUTO v 2.0.28
Case Inlist(poDate.tip, -12)
lcSetare = [FACTURA]
lcExplicatieRaport = [factura]
lcSetareVizualizare = [PREVIZFACT]
Do Case
Case gnTIP_LFACTURA_LINII = 1 And (gnTIP_LFACTURA = 1 Or (gnTIP_LFACTURA = 3 And poDate.ntip_incasare = 11))
lcRaport = [FACTURATIP_CUCHIT]
lcRaportVal = [INVOICE]
Case gnTIP_LFACTURA_LINII = 1 And Inlist(gnTIP_LFACTURA, 2, 3)
lcRaport = [FACTURATIP] && A5
lcRaportVal = [INVOICE]
If gnFormatFactura = 3 && A4 SAU A5
If optiuni_format_listare(0) = 2
lcRaport = [FACTURATIP_A5]
lcRaportVal = [INVOICE_A5]
Else
lcRaport = [FACTURATIP]
lcRaportVal = [INVOICE]
Endif
Endif
Case gnTIP_LFACTURA_LINII = 2 And gnFormatFactura = 1 && format A4
lcRaport = [FACTURA]
lcRaportVal = [INVOICE]
Case gnTIP_LFACTURA_LINII = 2 And gnFormatFactura = 2 && format A5
lcRaport = [FACTURA_A5]
lcRaportVal = [INVOICE_A5]
Case gnTIP_LFACTURA_LINII = 2 And gnFormatFactura = 3
If optiuni_format_listare(0) = 2
lcRaport = [FACTURA_A5]
lcRaportVal = [INVOICE_A5]
Else
lcRaport = [FACTURA]
lcRaportVal = [INVOICE]
Endif
Endcase
lcRaportVal = Iif(poDate.tip = 7, [CREDIT_NOTE], lcRaportVal)
If poDate.incasat <> 0
poDate.sumavorbe = suma_in_vorbe(poDate.incasat)
poDate.explicatie_chit = [facturii ] + Allt(Allt(Nvl(poDate.serie_act, [])) + [ ] + Alltrim(Transf(poDate.nract, get_mask(20, 0)))) + [ din ] + Dtoc(poDate.dataact)
lcDocument = Iif(poDate.ntip_incasare = 11, [chitanta], Iif(poDate.ntip_incasare = 2, [bon fiscal], Iif(poDate.ntip_incasare = 3, [POS/Card], [bon fiscal/chitanta])))
*!* modificare ROAAUTO v 2.0.41 ( 06.03.2011 ) : daca e bon fiscal, atunci nu-i trec seria
poDate.text_aditional = Iif(!Empty(Nvl(poDate.text_aditional, [])), poDate.text_aditional + Chr(13) + Chr(10), []) + ;
[ Achitat cu ] + lcDocument + [ nr.] + Iif(poDate.ntip_incasare = 2, [], Alltrim(Nvl(poDate.serie_chit, []))) + [ ] + Alltrim(Str(poDate.nr_incasare)) + [ din ] + Dtoc(poDate.dataact) + [ .]
Endif
*!* modificare ROAAUTO v 2.0.28 ^
*!* modificare v 2.0.189
Case Inlist(poDate.tip, -9, -10)
lcSetare = [AVIZ]
lcExplicatieRaport = [avizul]
lcSetareVizualizare = [PREVIZAVIZ]
lcRaport = [PROTOCOL2]
*!* modificare v 2.0.189 ^
Otherwise && avize
lcSetare = [AVIZ]
lcExplicatieRaport = [avizul]
*!* modificare v 2.0.46
*!* lnVizualizare = Iif(Type('gnVizualAviz')='N',gnVizualAviz,1)
lcSetareVizualizare = [PREVIZAVIZ]
*!* lcRaport = [AVIZ]
*!* modificare v 2.0.77
*!* If Nvl(gnPretListSubunitati,2)=2
*!* Do Case
*!* Case gnFormatAviz = 1 && format A4
*!* lcRaport = [AVIZ]
*!* Case gnFormatAviz = 2 && format A5
*!* lcRaport = [AVIZ_A5]
*!* Case gnFormatAviz = 3
*!* If optiuni_format_listare(1) = 2
*!* lcRaport = [AVIZ_A5]
*!* Else
*!* lcRaport = [AVIZ]
*!* Endif
*!* Endcase
*!* Else
*!* Do Case
*!* Case gnFormatAviz = 1 && format A4
*!* lcRaport = [AVIZ_TRANSFER_CTVA]
*!* Case gnFormatAviz = 2 && format A5
*!* lcRaport = [AVIZ_TRANSFER_CTVA_A5]
*!* Case gnFormatAviz = 3
*!* If optiuni_format_listare(1) = 2
*!* lcRaport = [AVIZ_TRANSFER_CTVA_A5]
*!* Else
*!* lcRaport = [AVIZ_TRANSFER_CTVA]
*!* Endif
*!* Endcase
*!* Endif
lcRaport = [AVIZ]
&& transferuri intre subunitati : 23,25,27,28,29,30,41,-6
If Nvl(gnPretListAviz, 2) = 1
lcRaport = lcRaport + [_CTVA]
lnPretListAviz = 1
Endif
If gnFormatAviz = 2 && format A5
lcRaport = lcRaport + [_A5]
Else
If gnFormatAviz = 3
If optiuni_format_listare(1) = 2
lcRaport = lcRaport + [_A5]
Endif
Endif
Endif
*!* modificare v 2.0.77 ^
*!* modificare v 2.0.46 ^
Endcase
* DECLARATIE CONFORMITATE
FOR lnLinie = 1 TO 8
lcLinie = 'gcTEXTCONFORMFACT' + ALLTRIM(STR(m.lnLinie))
&lcLinie = STRTRAN(&lcLinie, '<FIRMA>', ALLTRIM(UPPER(NVL(poFirma.denumire,''))),1,10,1)
&lcLinie = STRTRAN(&lcLinie, '<ADRESA>', ALLTRIM(NVL(poFirma.adresa,'')),1,10,1)
&lcLinie = STRTRAN(&lcLinie, '<REG_COMERT>', ALLTRIM(NVL(poFirma.reg_comert,'')),1,10,1)
&lcLinie = STRTRAN(&lcLinie, '<COD_FISCAL>', ALLTRIM(NVL(poFirma.cod_fiscal,'')),1,10,1)
&lcLinie = STRTRAN(&lcLinie, '<FACTURA_NR>', ALLTRIM(STR(poDate.nract)),1,10,1)
&lcLinie = STRTRAN(&lcLinie, '<FACTURA_DATA>', ALLTRIM(TRANSFORM(poDate.dataact)),1,10,1)
ENDFOR
&& prelucrare factura si aviz de retur
prelucreaza_factura([crsfactura], [crsfacturaset], [crsfacturafinala], poDate.discount_evidentiat, poDate.in_valuta, lnPretListAviz, poDate.nListareDetaliata)
If Used('crsavizretur') And poDate.nract_retur <> 0
prelucreaza_aviz_retur(poDate.discount_evidentiat) && ofacturare_comun.prg
Endif
lcCursorFacturaTemp = 'crsFacturaFinala'
If (poDate.tip = 51 And poDate.in_valuta = 1)
lcCursorFacturaTemp = 'crsfacturafinalaval' && la factura ACN este un singur formular pentru intern si extern. nu mai listez un formular suplimentar pentru extern
Endif
Select (m.lcCursorFacturaTemp)
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
*!* modificare v 2.0.80
If poDate.incasat <> 0 And poDate.eProforma = 0 AND poDate.nEFactura = 0 And poDate.in_valuta = 0 And pnTotalPozitii <= 10 And lcRaport = [FACTURA] ;
And Iif(Type('glFacturaCuChitanta') <> 'L', .F., glFacturaCuChitanta) ;
And poDate.ntip_incasare = 11 && modificare v 2.0.84
lcRaport = [FACTURA_CHIT]
Endif
*!* modificare v 2.0.80 ^
Go Top
If poDate.listare_componenta_set = 0
Select(m.lcCursorFacturaTemp)
Set Filter To cantitate <> 0
Endif
loPreviewerConfig = Createobject("PreviewerConfig") && rapoarte.prg
* daca listez factura
If poDate.nListareJustPDF = 0 AND poDate.nEFactura = 0
If poDate.nListareSilentioasa = 1
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
Endif
&& listare factura / aviz / proforma
goExport.export2frx(m.lcCursorFacturaTemp, lcRaport, .F., lcSetareVizualizare, lcSetare, , , .T., , loPreviewerConfig) && modificare v 2.2.15
ENDIF
* Optiune daca se trimite factura pe email dupa generarea facturii
lnFacturaEmail = Nvl(citeste_optiune_firma([FACTURAEMAIL]), 0) && 0 = nu trimite, 1 = trimite fara confirmare, 2 = trimite cu confirmare
lnFacturaEmail = IIF(m.lnFacturaEmail >0 and poDate.nRelistare = 0, m.lnFacturaEmail, 0)
llGenerarePDFDisk = .F.
* daca generez doar pdf pe disk sau vreau sa trimit factura pe email (trebuie sa generez pdf)
IF poDate.nListareJustPDF = 1 OR ;
(m.lnFacturaEmail = 1) OR ;
(m.lnFacturaEmail = 2 AND AMESSAGEBOX('Doriti sa trimiteti factura pe email (' + ALLTRIM(NVL(poDate.oClient.email_facturare,'')) + ')?',4+32,_screen.Caption) = 6)
lcDestinationFile = GetPDFFacturaFile(poDate.dataact, poDate.nract)
llGenerarePDFDisk = .T.
If !File(m.lcDestinationFile) Or (File(m.lcDestinationFile) And AMESSAGEBOX('Doriti sa suprascrieti ' + m.lcDestinationFile + '?', 4 + 32, _Screen.Caption) = 6)
m.loPreviewerConfig.SetValue("cDestFile", m.lcDestinationFile)
m.loPreviewerConfig.SetValue("lOpenDestFile", .F.)
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
m.loPreviewerConfig.SetValue("lOpenViewer", .F.)
lcPdfHasImage = goApp.ReadIni([email_factura], "pdfhasimage")
llPdfHasImage = (m.lcPdfHasImage = "1")
If Empty(m.lcPdfHasImage)
goApp.WriteIni([email_factura], "pdfhasimage", "0")
llPdfHasImage = .F.
Endif
m.loPreviewerConfig.SetValue("lPDFasImage", m.llPdfHasImage)
* tcAlias, tcRaport, tlCereTitlu, tcSetareVizualizare, tcSetareImprimanta, tcParametriListare, toListener, tlMultiPreview, tcReportPreviewer, toPreviewerConfig
goExport.export2frx(m.lcCursorFacturaTemp, lcRaport, .F., lcSetareVizualizare, lcSetare, , , .T., , loPreviewerConfig)
ENDIF
If m.lnFacturaEmail > 0 AND File(m.lcDestinationFile)
wrap_email_facturi(null, "", 1, 1, 1, poDate.nid_vanzare)
ENDIF
ENDIF
&& salvare factura / aviz
If poDate.nRelistare = 0 And poDate.eProforma = 0 AND poDate.nEFactura = 0 And poDate.nSalveazaAtasamente = 1
goExport.export2pdf(m.lcCursorFacturaTemp, lcRaport, .F., poDate.cDocAtasate)
Endif
If poDate.listare_componenta_set = 0
Select (m.lcCursorFacturaTemp)
Set Filter To
Endif
*!* modificare ROAAUTO v 2.0.28
&& certificat garantie ROAAUTO
If poDate.tip = -12 AND poDate.nEFactura = 0
If gnTIP_LFACTURA_LINII = 2 And gnCGarantie = 1
AMESSAGEBOX("Introduceti facturile pentru a se imprima certificatul de garantie pe verso!", 48, "Atentie")
If lcRaport = [FACTURA_A5]
goExport.export2frx('crsfacturafinala', [certificatg_a5], .F., , , , , .T.) && modificare ROAAUTO v 2.1.9
Else
goExport.export2frx('crsfacturafinala', [certificatg_a4], .F., , , , , .T.) && modificare ROAAUTO v 2.1.9
Endif
Endif
Endif
*!* modificare ROAAUTO v 2.0.28 ^
&& listare si salvare aviz retur
If Used('crsfacturafinala2') AND poDate.nEFactura = 0
Select crsfacturafinala2
poDate.text_aditional = poDate.text_aditional_retur
poDate.nract = poDate.nract_retur
poDate.serie_act = poDate.serie_act_retur
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
Go Top
lcRaport = [AVIZ]
lcSetare = [AVIZ]
lcSetareVizualizare = [PREVIZAVIZ]
goExport.export2frx('crsfacturafinala2', lcRaport, .F., lcSetareVizualizare, lcSetare, , , .T.) && modificare v 2.2.15
If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
goExport.export2pdf('crsfacturafinala2', lcRaport, .F., poDate.cDocAtasate)
Endif
Use In crsfacturafinala2
Endif
&& listare factura in valuta
If poDate.in_valuta = 1 And poDate.tip <> 51 AND poDate.nEFactura = 0 && la factura ACN este un singur formular pentru intern si extern. nu mai listez un formular suplimentar pentru extern
Select crsfacturafinalaval
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
Go Top
If poDate.listare_componenta_set = 0
Select crsfacturafinalaval
Set Filter To cantitate <> 0
ENDIF
* daca listez factura
If poDate.nListareJustPDF = 0
If poDate.nListareSilentioasa = 1
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
Endif
&& listare factura / aviz / proforma
goExport.export2frx('crsfacturafinalaval', lcRaportVal, .F., lcSetareVizualizare, lcSetare, , , .T., , loPreviewerConfig) && modificare v 2.2.15
ENDIF
* llGenerarePDFDisk
* Am verificat deja la listarea facturii in lei daca se doreste salvarea pdf pe disk pentru email
IF m.llGenerarePDFDisk
lcDestinationFile = GetPDFFacturaValutaFile(poDate.dataact, poDate.nract)
If !File(m.lcDestinationFile) Or (File(m.lcDestinationFile) And AMESSAGEBOX('Doriti sa suprascrieti ' + m.lcDestinationFile + '?', 4 + 32, _Screen.Caption) = 6)
m.loPreviewerConfig.SetValue("cDestFile", m.lcDestinationFile)
m.loPreviewerConfig.SetValue("lOpenDestFile", .F.)
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
m.loPreviewerConfig.SetValue("lOpenViewer", .F.)
lcPdfHasImage = goApp.ReadIni([email_factura], "pdfhasimage")
llPdfHasImage = (m.lcPdfHasImage = "1")
If Empty(m.lcPdfHasImage)
goApp.WriteIni([email_factura], "pdfhasimage", "0")
llPdfHasImage = .F.
Endif
m.loPreviewerConfig.SetValue("lPDFasImage", m.llPdfHasImage)
* tcAlias, tcRaport, tlCereTitlu, tcSetareVizualizare, tcSetareImprimanta, tcParametriListare, toListener, tlMultiPreview, tcReportPreviewer, toPreviewerConfig
goExport.export2frx('crsfacturafinalaval', lcRaportVal, .F., lcSetareVizualizare, lcSetare, , , .T., , loPreviewerConfig)
ENDIF
If m.lnFacturaEmail > 0 AND File(m.lcDestinationFile)
wrap_email_facturi(null, "", 1, 1, 1, poDate.nid_vanzare)
ENDIF
ENDIF && llGenerarePDFDisk
*!* goExport.export2frx('crsfacturafinalaval', lcRaportVal, .F., lcSetareVizualizare, lcSetare, , , .T.) && modificare v 2.2.15
If poDate.nRelistare = 0 And poDate.eProforma = 0 And poDate.nSalveazaAtasamente = 1
goExport.export2pdf('crsfacturafinalaval', lcRaportVal, .F., poDate.cDocAtasate)
Endif
Use In crsfacturafinalaval
*!* modificare v 2.0.80
*!* poDate.text_aditional = Strtran(poDate.text_aditional,[Exchange rate =],[Curs valutar =])
poDate.text_aditional = poDate.text_aditional_en
*!* modificare v 2.0.80 ^
Endif
&& salveaza recapitulatie
If poDate.nRelistare = 0 And poDate.eProforma = 0 AND poDate.nEFactura = 0 And Used('crsfacturaset') And poDate.nSalveazaAtasamente = 1
prelucreaza_recapitulatie(poDate.discount_evidentiat)
Select crsrecapitulatie
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
Go Top
goExport.export2pdf('crsrecapitulatie', 'recapitulatie', .F., poDate.cDocAtasate)
Select crsrecapitulatie
Go Top
Endif
&& listare recapitulatie
If poDate.listare_recapitulatie = 1 AND poDate.nEFactura = 0
If poDate.nRelistare = 1 ;
Or (poDate.nRelistare = 0 And poDate.eProforma = 0 And Used('crsfacturaset') And poDate.nSalveazaAtasamente = 0) && modificare v 2.0.67
prelucreaza_recapitulatie(poDate.discount_evidentiat)
Select crsrecapitulatie
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
Go Top
Endif
goExport.export2frx('crsrecapitulatie', 'recapitulatie', , , , , , .T.) && modificare v 2.2.15
Endif
If Used('crsrecapitulatie')
Use In crsrecapitulatie
Endif
&& listare lista livrare
If poDate.listare_lista_livrare = 1 AND poDate.nEFactura = 0 && pentru proforme e intotdeauna 0 ( vezi alege_optiuni_listare_facturare )
prelucreaza_lista_livrare()
goExport.export2frx('crslistalivrare', 'lista_livrare', , , , , , .T.) && modificare v 2.2.15
Use In crslistalivrare
Endif
*!* modificare v 2.0.80
If poDate.incasat <> 0 And poDate.eProforma = 0 AND poDate.nEFactura = 0 And poDate.in_valuta = 0 And !Inlist(lcRaport, [FACTURA_CHIT], [FACTURATIP_CUCHIT]) ;
And poDate.ntip_incasare = 11 && modificare ROAFACTURARE v 2.0.84
goExport.export2frx('crsfacturafinala', 'chitanta', .F., lcSetareVizualizare, lcSetare, , , .T.) && modificare v 2.2.15
Endif
*!* modificare v 2.0.80 ^
&& salvare atasamente
If poDate.nRelistare = 0 And poDate.eProforma = 0 AND poDate.nEFactura = 0 And poDate.nSalveazaAtasamente = 1
poDate.scrieAtasamente()
Endif
* Listare eFactura
IF poDate.nEFactura = 1
&& listare factura in valuta
If poDate.in_valuta = 1 And poDate.tip <> 51 && la factura ACN este un singur formular pentru intern si extern. nu mai listez un formular suplimentar pentru extern
lcCursoreFactura = 'crsfacturafinalaval'
ELSE
lcCursoreFactura = m.lcCursorFacturaTemp
ENDIF
SELECT (m.lcCursoreFactura)
Calculate Cnt() To pnTotalPozitii For cantitate <> 0
Go Top
If poDate.listare_componenta_set = 0
SELECT (m.lcCursoreFactura)
Set Filter To cantitate <> 0
ENDIF
llSilentios = (poDate.nListareSilentioasa = 1)
poDate.oInfoEFactura = goExport.export2xml_efactura(poDate, m.lcCursoreFactura, m.llSilentios) && modificare v 2.2.15
ENDIF
Use In (SELECT('crsfacturafinala'))
Endproc
******************************************** SFARSIT: listeaza_ofacturare **********************************************
Procedure listeaza_oconformitate
Local loArticol
Private poClient, poFirma&&,pcstring1,pcstring2,pcstring3
If Used('crsFirma')
Use In crsFirma
Endif
lcSql = [select antet as denumire,cod_fiscal,localitate,reg_comert from syn_nom_firme ] + ;
[where id_firma = ?gnIdFirma]
lcCursor = "crsFirma"
If !goExecutor.oExecuta(lcSql, lcCursor)
Return
Endif
Select crsFirma
Scatter Name poFirma
*!* modificare v 2.0.46
*!* If Used('crsConformitate')
*!* Use In crsConformitate
*!* Endif
lcCursorTemp = "crsConformitateT"
lcCursor = "crsConformitate"
If Used(lcCursorTemp)
Use In (lcCursorTemp)
Endif
*!* modificare v 2.0.46 ^
*!* modificare v 2.2.18 : am adaugat distinct si r.sters = 0 and r.id_tip_rulaj = 0
lcSql = [select distinct r.id_articol,a.codmat,a.denumire,a.codmatf,a.conditii_pastrare,r.lot,r.adata_expirare,r.dataact ] + ;
[from rul r left join nom_articole a on r.id_articol = a.id_articol where r.cod = ?poDate.Cod and r.sters = 0 and r.id_tip_rulaj = 0]
*!* modificare v 2.0.46
*!* lcCursor="crsConformitate"
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If !goExecutor.oExecuta(lcSql, lcCursorTemp)
*!* modificare v 2.0.46 ^
Return
Endif
lcRaport = "conformitate"
* loExport = Createobject("oExportConfig")
*!* pcstring1="Noi " + NVL(ALLTRIM(poFirma.denumire),"") + "," + NVL(ALLTRIM(poFirma.Localitate),"") + "cu nr. de inregistrare la Registrul Comertului nr. " + NVL(ALLTRIM(poFirma.reg_comert),"")+ " Cod Fiscal "+NVL(ALLTRIM(poFirma.cod_fiscal),"")
*!* pcstring2=", declaram si garantam pe proprie raspundere ca produsele la care se refera aceasta declaratie nu pun in pericol"
*!* pcstring3= " viata sau sanatatea si sunt in conformitate cu legislatia sanitara, sanitar-veterinara si pentru siguranta alimentelor, in vigoare :"
*!* MESSAGEBOX(pcstring1 + pcstring2 + pcstring3)
*!* listareUserReport('crsConformitate','FRX',lcRaport)
*!* Use In crsFirma
Select codmat, codmatf, denumire, lot, adata_expirare, dataact, conditii_pastrare, id_articol From (lcCursorTemp) ;
Into Cursor (lcCursor) Readwrite
Select (lcCursor)
Browse
goExport.export2frx(lcCursor, lcRaport, , , , , , .T.) && modificare v 2.2.15
Use In crsFirma
Use In (lcCursorTemp)
Use In (lcCursor)
*!* modificare v 2.0.46 ^
Endproc
*******************************************************************************************************************
Procedure listeaza_bon_fiscal
Lparameters ttDataOra, tnNrBon, tnSumaAchitNumerar, tnSumaAchitCARD, tnProcentTva, tnNrFact, tnBonDetaliat, tcCursorFactura
* ttDataOra: dataora listare
* tnNrBon: numar bon fiscal
* tnSumaAchitNumerar: Suma achitata numerar
* tnSumaAchitCARD: Suma achitata cu card la POS
* tnProcentTVA
* tnNrFact: Numar factura, daca NU se listeaza bonul detaliat pe articole
* tnBonDetaliat: 1 = se listeaza articolele individual; 0 = "contravaloarea factura nr..."
* tcCursorFactura: numele cursorului cu articole din factura pentru listarea detaliata a bonului fiscal
Local lcCursor, lcCursorArticole, lcSelect, lnBonDetaliat, loHash, lnValoare, lnDiferenta
lcSelect = Select()
lnBonDetaliat = Iif(Type('tnBonDetaliat') = 'N', m.tnBonDetaliat, 0)
lcCursorFactura = Iif(Type('tcCursorFactura') = 'C' And !Empty(m.tcCursorFactura), m.tcCursorFactura, '')
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)
DO CASE
CASE m.lnBonDetaliat = 1 And !Empty(m.lcCursorFactura) And Used(m.lcCursorFactura)
Insert Into (lcCursor) (denumire, um, CANT, Pret, DEPARTAMENT, proc_tvav) ;
Select denumire, Nvl(um, 'BUC') As um, cantitate, (pretctva-discountctva), 1, proc_tvav From (m.lcCursorFactura)
CASE m.lnBonDetaliat = 0 And !Empty(m.lcCursorFactura) And Used(m.lcCursorFactura)
* Daca bonul nu se listeaza detaliat, cumulez pe cote TVA
SELECT (lcCursorFactura)
SELECT proc_tvav, ROUND(SUM(cantitate*(pretctva-discountctva)), m.gnPC) as valoare FROM (lcCursorFactura) GROUP BY proc_tvav ORDER BY proc_tvav DESC INTO CURSOR cCoefTVATemp READWRITE
* Pun diferenta dintre totalul incasat si totalul sumelor defalcate pe cote TVA pe prima cota TVA
CALCULATE SUM(valoare) TO lnValoare IN cCoefTVATemp
lnDiferenta = m.tnSumaAchitNumerar + m.tnSumaAchitCARD - m.lnValoare
SELECT cCoefTVATemp
LOCATE FOR !EMPTY(valoare)
IF !FOUND()
GO TOP
ENDIF
REPLACE valoare WITH valoare + m.lnDiferenta
Insert Into (lcCursor) (denumire, um, CANT, Pret, DEPARTAMENT, proc_tvav) ;
SELECT [Fact.] + Alltrim(Str(tnNrFact)) as denumire, "" as um, 1 as cant, valoare as pret, 1 as departament, proc_tvav FROM cCoefTVATemp
USE IN (SELECT('cCoefTVATemp'))
OTHERWISE
Insert Into (lcCursor) (denumire, um, CANT, Pret, DEPARTAMENT, proc_tvav) ;
Values ([Fact.] + Alltrim(Str(tnNrFact)), "", 1, m.tnSumaAchitNumerar + m.tnSumaAchitCARD, 1, 1 + (tnProcentTva / 100))
ENDCASE
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
Select (m.lcSelect)
Endproc && listeaza_bon_fiscal
*** Copiata din oproceduri_listari.prg ca sa nu se includa tot fisierul
Procedure listare_protocol
Lparameters tnNract, tnTip
*!* tnTip: 1 (default) = protocol (pret cu tva); 2 = sponsorizare (pret fara tva)
Private pnNrAct, pnCod
Local lcCursor, lcCursor2, lnTip
lcCursor = [crsdateact]
lcCursor2 = [crsprotocol]
If Type('tnTip') <> 'N'
lnTip = 1
Else
lnTip = tnTip
Endif
pnNrAct = tnNract
*!* v 2.0.18 roagest (denumire partener, id_set 232, 233, 235)
lcSql = [Select distinct a.cod, a.dataact, p.id_part as id_client, p.denumire, b.nume_gestiune as gestiune from act a ] + ;
[ left join nom_gestiuni b on a.id_gestout = b.id_gestiune ] + ;
[ left join nom_parteneri p on a.id_partc = p.id_part ] + ;
[where a.an = ?gnAn and a.luna = ?gnLuna and a.nract = ?pnNrAct and a.scc = '401' and a.sters = 0 and a.id_set in (230,232,233,235,261) ] + ;
Strtran(gcCondSucursala, [id_sucursala], [a.id_sucursala])
lnSucces = goExecutor.oExecute(lcSql, lcCursor)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
Return
Endif
If Reccount(lcCursor) > 0
Select (lcCursor)
Scatter Name poClient
*!* v 2.0.18 roagest (iau partenerul din jurnal)
*!* AddProperty(poClient,[id_client],[0])
*!* AddProperty(poClient,[denumire],[])
pnCod = cod
poDate = Createobject("oDateFactura", 0, 0)
poDate.nract = pnNrAct
poDate.dataact = Iif(Type('dataact') = 'T', Ttod(dataact), dataact)
poDate.dataora_exp = Get_Ora(2) && modificare ROAGEST v 2.0.150
*!* loCauta = caut_partener()
*!* If gnButon <> 2
*!* poClient.id_client = loCauta.id_part
*!* poClient.denumire = loCauta.denumire
*!* Else
poDate.tip = 23 && artificiu ca sa nu mai caute doar in delegatii pentru partenerul respectiv
*!* EndIf
*!* v 2.0.18 roagest ^
Use In (lcCursor)
Private ofrmdatesupl
ofrmdatesupl = Createobject("frm_alte_date")
ofrmdatesupl.Show(1)
Release ofrmdatesupl
*!* modificare ROAGEST v 2.0.150
If gnButon = 1
*!* modificare ROAGEST v 2.0.150 ^
lcSql = [select denumire as nume_responsabil,cod_fiscal as CNPresp,reg_comert as BIresp from nom_parteneri ] + ;
[where sters = 0 and inactiv = 0 and id_part in ] + ;
[(select id_partener from utilizatori_rol_intern where sters = 0 and id_util = ?gnIdUtil)]
lnSucces = goExecutor.oExecute(lcSql, lcCursor2)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
Return
Endif
Select (lcCursor2)
poDate.nume_responsabil = nume_responsabil
poDate.BIresp = BIresp
poDate.CNPresp = CNPresp
Use In (lcCursor2)
lcSql = [select a.cante as cantitate,] + ;
Iif(lnTip = 1, [a.pretv+a.tvav], [a.pretv]) + [ as pretctva, ] + ;
Iif(lnTip = 1, [Round(a.cante*(a.pretv+a.tvav),?gnPc)], [Round(a.cante*a.pretv,?gnPc)]) + [ as valctva,] + ;
[a.serie,b.codmat,b.denumire,b.um ] + ;
[from rul a left join nom_articole b on a.id_articol = b.id_articol ] + ;
[where a.sters = 0 and a.cod = ?pnCod]
lnSucces = goExecutor.oExecute(lcSql, lcCursor2)
If lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare, 0 + 16, "Eroare")
Return
Endif
goExport.export2frx(lcCursor2, [protocol])
If Used(lcCursor2)
Use In (lcCursor2)
Endif
*!* modificare ROAGEST v 2.0.150
Endif
*!* modificare ROAGEST v 2.0.150 ^
Else
AMESSAGEBOX("Nu exista avizul cu acest numar in luna curenta!", 48, "Atentie")
Endif
Release lcCursor, lcCursor2, pnNrAct, pnCod
Endproc && listare_protocol
********************************************************
* apelez listarea Recapitulatiei cu numele unui cursor si numele unui raport
********************************************************
Procedure listeaza_recapitulatie
Lparameters tcNumeCursor, tcRaport
Local lcSql, lcCursorDetalii, lcSetareVizualizare, lcSetare, lcRaport, lcSelect, lnListareJustPDF, lnListareSilentioasa
Private poFirma, poClient, pnIdVanzare, pnIdClient
poFirma = Null
poClient = Null
lcSelect = Select()
lnListareJustPDF = 0
lnListareSilentioasa = 0
pnIdVanzare = 0
pnIdClient = 0
If Type('poDate') = 'O'
pnIdVanzare = Iif(Type('poDate.nid_vanzare') = 'N', poDate.nid_vanzare, 0)
pnIdClient = Iif(Type('poDate.id_client') = 'N', poDate.id_client, 0)
lnListareJustPDF = Iif(Type('poDate.nListareJustPDF') = 'N', poDate.nListareJustPDF, 0)
lnListareSilentioasa = Iif(Type('poDate.nListareSilentioasa') = 'N', poDate.nListareSilentioasa, 0)
Endif
If Empty(m.tcNumeCursor)
Select (m.lcSelect)
Return
Endif
TEXT TO lcSql NOSHOW
select 3 as tip,antet as denumire,cod_fiscal,'' as cod_fiscal2,adresa,telefon,fax,reg_comert,banca1 as banca,
cont_banca1 as cont_banca,
banca2,cont_banca2,banca3,cont_banca3,
null as dataora,0 as tip_persoana,capital_soc_var,capital_soc_sub, '' as adresa_facturare,''as email_facturare, '' as denadrf
from syn_nom_firme where id_firma = ?gnIdFirma
ENDTEXT
If !goExecutor.oExecuta(lcSql, 'crsFirma')
Select (m.lcSelect)
Return
Endif
Select crsFirma
Go Top
Scatter Name poFirma Memo
Use In (Select('crsFirma'))
TEXT TO lcSql NOSHOW
select 1 as tip,(case when tip_persoana = 1 then p.prefix||' '|| p.denumire||' '|| p.sufix else denumire end) as denumire,
p.cod_fiscal,p.cod_fiscal2,p.adresa,p.telefon,'' as fax,p.reg_comert,p.banca,p.cont_banca,
'' as banca2,'' as cont_banca2,'' as banca3,'' as cont_banca3,
sysdate as dataora,p.tip_persoana,0 as capital_soc_var,
0 as capital_soc_sub,d.adresa as adresa_facturare,d.email as email_facturare,d.denumire_adresa as denadrf
from vnom_parteneri p left join vanzari b on b.id_part=p.id_part and b.id_vanzare = ?pnIdVanzare
left join vadrese_parteneri d on d.id_adresa=b.id_facturare
where p.id_part = ?pnIdClient
ENDTEXT
If !goExecutor.oExecuta(lcSql, 'crsClient')
Select (m.lcSelect)
Return
Endif
Select crsClient
Go Top
Scatter Name poClient Memo
Use In (Select('crsClient'))
lcRaport = Iif(Type('tcRaport') = 'C' And !Empty(m.tcRaport), m.tcRaport, 'recapitulatie.frx')
lcSetare = [RECAPITULATIE]
lcSetareVizualizare = [PREVIZRECAP]
loPreviewerConfig = Createobject("PreviewerConfig") && rapoarte.prg
If m.lnListareJustPDF = 0
If m.lnListareSilentioasa = 1
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
Endif
&& listare factura / aviz / proforma
goExport.export2frx(m.tcNumeCursor, m.lcRaport, .F., m.lcSetareVizualizare, m.lcSetare, , , .T., , loPreviewerConfig) && modificare v 2.2.15
Else
lcDestinationFile = GetPDFRecapitulatiaFile(poDate.dataact, poDate.nract)
If !File(m.lcDestinationFile) Or (File(m.lcDestinationFile) And AMESSAGEBOX('Doriti sa suprascrieti ' + m.lcDestinationFile + '?', 4 + 32, _Screen.Caption) = 6)
m.loPreviewerConfig.SetValue("cDestFile", m.lcDestinationFile)
m.loPreviewerConfig.SetValue("lOpenDestFile", .F.)
m.loPreviewerConfig.SetValue("lDirectPrint", .T.)
m.loPreviewerConfig.SetValue("lOpenViewer", .F.)
lcPdfHasImage = goApp.ReadIni([email_factura], "pdfhasimage")
llPdfHasImage = (m.lcPdfHasImage = "1")
If Empty(m.lcPdfHasImage)
goApp.WriteIni([email_factura], "pdfhasimage", "0")
llPdfHasImage = .F.
Endif
m.loPreviewerConfig.SetValue("lPDFasImage", m.llPdfHasImage)
* tcAlias, tcRaport, tlCereTitlu, tcSetareVizualizare, tcSetareImprimanta, tcParametriListare, toListener, tlMultiPreview, tcReportPreviewer, toPreviewerConfig
goExport.export2frx(m.tcNumeCursor, m.lcRaport, .F., m.lcSetareVizualizare, m.lcSetare, , , .T., , loPreviewerConfig)
Endif
Endif
Endproc && listeaza_recapitulatie
*********************************************************************************
*** intoarce calea catre fisierul pdf FACTURA
Function GetPDFFacturaFile
Lparameters tdDataFactura, tnNumarFactura
Local lcDestinationFile, lcTip, lcFileName
Local lcDefaultPrefix, lcDefaultSufix
lcTip = 'factura'
lcFileName = Dtos(m.tdDataFactura) + "_" + Alltrim(Str(m.tnNumarFactura))
lcDefaultPrefix = ''
lcDefaultSufix = m.lcTip
lcDestinationFile = GetPDFFile(m.lcTip, m.lcFileName, m.lcDefaultPrefix, m.lcDefaultSufix)
Return m.lcDestinationFile
Endfunc && GetPDFFacturaFile
*********************************************************************************
*** intoarce calea catre fisierul pdf FACTURA FISCALA VALUTA
Function GetPDFFacturaValutaFile
Lparameters tdDataFactura, tnNumarFactura
Local lcDestinationFile, lcTip, lcFileName
Local lcDefaultPrefix, lcDefaultSufix
lcTip = 'factura_valuta'
lcFileName = Dtos(m.tdDataFactura) + "_" + Alltrim(Str(m.tnNumarFactura))
lcDefaultPrefix = ''
lcDefaultSufix = m.lcTip
lcDestinationFile = GetPDFFile(m.lcTip, m.lcFileName, m.lcDefaultPrefix, m.lcDefaultSufix)
Return m.lcDestinationFile
Endfunc && GetPDFFacturaValutaFile
*********************************************************************************
*** intoarce calea catre fisierul pdf INVOICE
Function GetPDFInvoiceFile
Lparameters tdDataFactura, tnNumarFactura
Local lcDestinationFile, lcTip, lcFileName
Local lcDefaultPrefix, lcDefaultSufix
lcTip = 'invoice'
lcFileName = Dtos(m.tdDataFactura) + "_" + Alltrim(Str(m.tnNumarFactura))
lcDefaultPrefix = ''
lcDefaultSufix = m.lcTip
lcDestinationFile = GetPDFFile(m.lcTip, m.lcFileName, m.lcDefaultPrefix, m.lcDefaultSufix)
Return m.lcDestinationFile
Endfunc && GetPDFInvoiceFile
*********************************************************************************
*** intoarce calea catre fisierul pdf RECAPITULATIA
Function GetPDFRecapitulatiaFile
Lparameters tdDataFactura, tnNumarFactura
Local lcDestinationFile, lcTip, lcFileName
Local lcDefaultPrefix, lcDefaultSufix
lcTip = 'recapitulatie'
lcFileName = Dtos(m.tdDataFactura) + "_" + Alltrim(Str(m.tnNumarFactura))
lcDefaultPrefix = ''
lcDefaultSufix = m.lcTip
lcDestinationFile = GetPDFFile(m.lcTip, m.lcFileName, m.lcDefaultPrefix, m.lcDefaultSufix)
Return m.lcDestinationFile
Endfunc && GetPDFRecapitulatiaFile
*********************************************************************************
*** intoarce calea catre fisierul pdf BORDEROU: borderou_[aaaallzz]_[tnId].pdf
Function GetPDFBorderouFile
Lparameters tdDataBorderou, tnIdBorderou
Local lcDestinationFile, lcTip, lcFileName
Local lcDefaultPrefix, lcDefaultSufix
lcTip = 'borderou'
lcFileName = Dtos(m.tdDataBorderou) + "_" + Alltrim(Str(m.tnIdBorderou))
lcDefaultPrefix = ''
lcDefaultSufix = m.lcTip
lcDestinationFile = GetPDFFile(m.lcTip, m.lcFileName, m.lcDefaultPrefix, m.lcDefaultSufix)
Return m.lcDestinationFile
Endfunc && GetPDFBorderouFile
*************************************************
*** Intoarce optiunea [pdf_factura_acn/recapitulatia][salvareautomata]
*** se foloseste dupa listare factura sau recapitulatie, sa se salveze automat pdf
*************************************************
Function GetPDFSalvareAutomata
Lparameters tcTip
Local lcTip, lcSection, lcPDFSalvareAutomata
lcTip = Iif(!Empty(m.tcTip) And Type('tcTip') = 'C', Alltrim(Lower(m.tcTip)), 'factura')
lcSection = 'pdf_' + m.lcTip + '_' + m.gcS && [pdf_factura_acn] / [pdf_recapitulatia_acn]
lcPDFSalvareAutomata = goApp.ReadIni(m.lcSection, "salvareautomata")
If Empty(m.lcPDFSalvareAutomata)
lcPDFSalvareAutomata = "0"
goApp.WriteIni(m.lcSection, "salvareautomata", m.lcPDFSalvareAutomata)
Endif
Return (lcPDFSalvareAutomata = "1")
Endfunc
*------------------------------------------
* Intoarce directorul catre un tip de document
* Ex: GetPdfPath(TIP_DOCUMENT)
* intoarce variabila "pdfpath" din sectiunea [pdf_TIP_DOCUMENT_SCHEMA] din settings.ini
* daca nu este completata variabila pdfpath, ofera completarea
* Ex: lcFacturaPath = GetDocumentPath('factura')
* Ex: lcRecapitulatiaPath = GetDocumentPath('recapitulatie')
Function GetDocumentPath
Lparameters tcTip
* tcTip (sectiunea de unde se citesc directorul pdf): factura/contract => email_factura/email_contract
Local lcPdfPath, lcSection, lcTip
lcPdfPath = ''
lcTip = IIF(!EMPTY(m.tcTip), m.tcTip, 'factura')
lcSection = 'pdf_' + m.lcTip + '_' + m.gcS && [pdf_factura_acn] / [pdf_recapitulatie_acn]
lcPdfPath = goApp.ReadIni(m.lcSection, "pdfpath")
If Empty(m.lcPdfPath)
lcPdfPath = Getdir("", "Alege director pentru pdf-uri " + m.lcTip, "Director pdf " + m.lcTip, 64)
If !Empty(m.lcPdfPath)
goApp.WriteIni(m.lcSection, "pdfpath", m.lcPdfPath)
Endif
Endif
Return m.lcPdfPath
Endfunc
*------------------------------------------
*** intoarce calea catre fisierul pdf
Function GetPDFFile
Lparameters tcTip, tcFileName, tcDefaultPrefix, tcDefaultSufix
* tcTip (sectiunea de unde se citesc directorul pdf): factura/contract => email_factura/email_contract
* tcFileName (numele fisierului): 20160210_123456
* tcDefaultPrefix: daca se ataseaza un prefix la tcFileName. Se suprascrie cu cel din din setting.ini
* tcDefaultSufix: daca se ataseaza un sufix la tcFileName. Se suprascrie cu cel din din setting.ini
Local lcDestinationFile, lcFacturiPdfPath, lcSection, lcTip, lcFileName
Local lcPdfPath, lcPdfPrefix, lcPdfSufix
lcTip = Iif(!Empty(m.tcTip) And Type('tcTip') = 'C', Alltrim(Lower(m.tcTip)), 'factura')
lcFileName = Iif(!Empty(m.tcFileName), Lower(Transform(m.tcFileName)), Sys(2015))
lcSection = 'pdf_' + m.lcTip + '_' + m.gcS && [pdf_factura_acn] / [pdf_recapitulatia_acn]
lcPdfPath = goApp.ReadIni(m.lcSection, "pdfpath")
lcPdfPrefix = goApp.ReadIni(m.lcSection, "pdfprefix")
lcPdfSufix = goApp.ReadIni(m.lcSection, "pdfsufix")
If Empty(m.lcPdfPrefix) And !Empty(m.tcDefaultPrefix)
lcPdfPrefix = m.tcDefaultPrefix
goApp.WriteIni(m.lcSection, "pdfprefix", m.lcPdfPrefix)
Endif
If Empty(m.lcPdfSufix) And !Empty(m.tcDefaultSufix)
m.lcPdfSufix = m.tcDefaultSufix
goApp.WriteIni(m.lcSection, "pdfsufix", m.lcPdfSufix)
Endif
If Empty(m.lcPdfPrefix) And Empty(m.lcPdfSufix)
m.lcPdfSufix = m.lcTip
goApp.WriteIni(m.lcSection, "pdfsufix", m.lcPdfSufix)
Endif
If Empty(m.lcPdfPath)
lcPdfPath = Getdir("", "Alege director pentru pdf-uri", "Director pdf", 64)
If Empty(m.lcPdfPath)
m.lcPdfPath = m.gcTempPath
Endif
goApp.WriteIni(m.lcSection, "pdfpath", m.lcPdfPath)
Endif
lcDestinationFile = Addbs(m.lcPdfPath) + Iif(!Empty(m.lcPdfPrefix), m.lcPdfPrefix + '_', '') + m.lcFileName + Iif(!Empty(m.lcPdfSufix), "_" + Lower(Transform(m.lcPdfSufix)), '') + ".pdf"
Return m.lcDestinationFile
Endfunc && GetPDFFile
* Intoarce codmat client din PARTENERI_ARTICOLE_CODURI pentru un (client, articol)
Function GetCodmatC
Parameters pnIdClient, pnIdArticol
Private pcCod
pcCod = ''
llSucces = goExecutor.oSelecteaza2Value([select cod from parteneri_articole_coduri where id_part = ?pnIdClient and id_articol = ?pnIdArticol and sters = 0], @pcCod)
Return Nvl(m.pcCod, '')
Endfunc && GetCodmatC
* Intoarce CODNC8, CODCPV din NOM_ARTICOLE pentru un articol
Function GetCodNC8CPV
Parameters pnIdArticol
LOCAL lcCursor, loRet, lcSelect
lcSelect = SELECT()
loRet = CREATEOBJECT("empty")
ADDPROPERTY(loRet, 'codnc8', '')
ADDPROPERTY(loRet, 'codcpv', '')
lcCursor = SYS(2015)
llSucces = goExecutor.oExecuta([select codnc8, codcpv from nom_articole where id_articol = ?pnIdArticol and sters = 0], m.lcCursor)
IF m.llSucces
SELECT (m.lcCursor)
loRet.codnc8 = ALLTRIM(NVL(codnc8,''))
loRet.codcpv = ALLTRIM(NVL(codcpv,''))
ENDIF
USE IN (SELECT(m.lcCursor))
SELECT (m.lcSelect)
Return loRet
Endfunc && GetCodmatC
* intoarce nom_parteneri.institutie_publica pentru un id_part
function GetInstitutiePublica
LPARAMETERS tnIdClient
PRIVATE pnIdClient
LOCAL lnInstitutiePublica
pnIdClient = tnIdClient
lnInstitutiePublica = 0
llSucces = goExecutor.oSelecteaza2Value([select MAX(NVL(institutie_publica,0)) as institutie_publica from nom_parteneri where id_part = ?pnIdClient and sters = 0], @lnInstitutiePublica)
Return m.lnInstitutiePublica
ENDFUNC && GetInstitutiePublica