*!* 19.02.2010 *!* marius.mutu lans_nir_bon - crsconfigcvc (coresp_cont_venchelt) *!* este nevoie de conturi corespondente si pentru operatiile 264,265 finalizare aprovizionare *!* 19.04.2010 *!* marius.mutu *!* vizualizeaza_inventar_magazin - creez cursor cote_tva *!* 29.05.2010 *!* marius.mutu *!* lans_nir_bon - id_set 266 - mf pret de achizitie * > facturi nesosite pret de lista *!* 07.09.2009 *!* marius.mutu *!* vizualizeaza_inventar_magazin - use in actactan *!* 31.01.2011 *!* marius.mutu *!* vizualizeaza_inventar *!* completat select si schema (dadea eroare la adaugarea in crs_inventar NULL) *!* #2876 *!* 26.10.2011 *!* lans_nir_bon id_set 247 ( NIR cu lista de preturi) *!* daca dau renunt la transferul articolelor din nir in alta gestiune, se in actbaza2007.release se dezaloca numarul de NIR *!* 21.12.2011 *!* marius.mutu *!* vizualizeaza_inventar, vizualizeaza_inventar_magazin *!* parametru suplimentar inventar corectie *!* 19.03.2014 *!* marius.mutu *!* vizualizeaza_inventar - stoc_scriptic nu avea zecimale la selectia din baza de date #3953 *!* 14.08.2014 *!* marius.mutu *!* achizitie_import *!* s-a tratat factura TVA Incasare - se schimba 4426>4428, explicatia_tva *!* 14.01.2015 *!* marius.mutu *!* NU se executa avizul de transfer automat llAvizTransferAutomat daca optiunea RG_AVIZ_TRANSFER_NIR6/RG_AVIZ_TRANSFER_NIR7 este 0 *!* 04.01.2016 *!* marius.mutu *!* achizitiile si livrarile pe 2015 trebuie sa propuna TVA 24%. *!* In xsets s-a modificat 20% de la 01.01.2016 *!* 03.01.2017 *!* achizitie_import: In 2016 lucrez cu TVA 20%. Transform TVA din 19% in 20% *!* lans_nir_bon: achizitiile si livrarile pe 2016 trebuie sa propuna TVA 20%. In xsets s-a modificat 19% de la 01.01.2017 *!* 18.08.2017 *!* lans_Nir_Bon *!* adaugare parametru tcNumeObje = 'corectie,1234' pentru modificarea NIR/BON *!* 05.09.2017 *!* vizualizeaza_inventar_magazin - se transmit in clar gnAn, gnLuna, pnIdFact - nu mai folosea indexul si facea full scan pe act *!* lans_Nir_Bon *!* corectie NIR/Bon - stergere document original inainte de scrierea celui modificat *!* 05.01.2018 *!* vizualizeaza_inventar + coloana dataora *!* 15.05.2018 *!* marius.mutu *!* lans_Nir_Bon - la modificare NIR/BON se sterge documentul original inainte de scrierea celui nou, doar daca s-a dat terminat la NIR/BON. Se stergea chiar daca se dadea renunt. *!* 12.11.2019 *!* marius.mutu *!* lans_nir_bon - se initializeaza poDate pentru oscrie_vanzare_din_stoc() *!* 17.07.2025 *!* marius.mutu *!* lans_Nir_Bon = cota TVA 19%-21% pentru perioada de tranzitie *!* achizitiile si livrarile < 08/2025 trebuie sa propuna TVA 19% *!* In xsets s-a modificat 21% de la 01.08.2025 #Define CRLF Chr(13) + Chr(10) ********* INCEPUT: lans_Nir_Bon *********** Procedure lans_Nir_Bon Parameters tnIdSet, tcObj, tcNumeObj Local llReturn,llGestin,llGestout, lnTip Local lcSelect, lcCursor,lnPornire && modificare ROAPRODUCTIE v 2.0.0 : am adaugat lnPornire llReturn = .T. Store .F. To llGestin,llGestout Local lnNir Store 0 To lnNir llCorectie = (TYPE('tcNumeObj') = 'C' AND LOWER(LEFT(m.tcNumeObj, 8)) = 'corectie') lnCod = IIF(m.llCorectie, INT(VAL(GETWORDNUM(m.tcNumeObj,2, ','))), 0) *!* v 2.0.28 *!* LA NIR BILETE RATC - CALCULUL, NOTELE CONTABILE, LISTAREA SE FAC: *!* VALOAREA CU TVA *!* VALOAREA TVA = VALOAREA CU TVA * (PROC_TVA - 1)/ PROC_TVA *!* VALOAREA FARA TVA = VALOAREA CU TVA - VALOAREA TVA Private plNIRBONPretCuTVA plNIRBONPretCuTVA = IsNIRBONPretCuTVA(tnIdSet) && NIR BILETE RATC *!* v 2.0.28 ^ Select xsets Locate For id_set = tnIdSet Scatter Name oSet *!* modificare JC/JV 2007 If gnNeplatitoare_tva = 1 oSet.id_jtax = oSet.id_jtaxn oSet.id_jnetax = oSet.id_jtaxn Endif *!* modificare JC/JV 2007 ^ DO CASE CASE BETWEEN(m.gnAn*12+m.gnLuna,2018*12+1, 2025*12+7) * achizitiile si livrarile inainte de 08/2025 trebuie sa propuna TVA 19%. * In xsets s-a modificat 21% de la 01.08.2025 DO case CASE INLIST(oset.id_jtax, 208) oset.id_jtax = 105 && ACH. INT. 19% CASE INLIST(oset.id_jtax, 216) oset.id_jtax = 141 && TX. INV. 19% CASE INLIST(oset.id_jtax, 220) oset.id_jtax = 118 && ACH. IMP. 19% CASE oset.id_jtax = 35 oset.id_jtax = 1 && LIVR.INTERN 19% ENDCASE CASE BETWEEN(m.gnAn, 2016, 2017) * achizitiile si livrarile pe 2016 trebuie sa propuna TVA 20%. * In xsets s-a modificat 19% de la 01.01.2017 DO case CASE INLIST(oset.id_jtax, 101, 103, 105) oset.id_jtax = 176 && ACH. INT. 20% CASE INLIST(oset.id_jtax, 137, 139, 141) oset.id_jtax = 186 && TX. INV. 20% CASE INLIST(oset.id_jtax, 114, 116, 118) oset.id_jtax = 180 && ACH. IMP. 20% CASE oset.id_jtax = 1 oset.id_jtax = 27 && LIVR.INTERN 20% ENDCASE CASE gnAn <= 2015 * achizitiile si livrarile pe 2015 trebuie sa propuna TVA 24%. * In xsets s-a modificat 20% de la 01.01.2016 DO case CASE oset.id_jtax = 176 oset.id_jtax = 156 CASE oset.id_jtax = 186 oset.id_jtax = 162 CASE oset.id_jtax = 180 oset.id_jtax = 158 CASE oset.id_jtax = 27 oset.id_jtax = 15 ENDCASE ENDCASE *!* 30.10.2008 NIR DEPOZIT *!* NIR PE BAZA NIR DEPOZIT (CODURI DE BARE + CANTITATE CITITE DE GESTIONAR) *!* CAUT NIR-UL DUPA NUMAR, DATA - DACA EXISTA - VERIFIC DACA EXISTA ARTICOLE NOI CARE TREBUIE ADAUGATE IN NOMENCLATOR If oSet.model = 2 && NIR Do COMPLETEAZA_ARTICOLE_DEP_NIR With poAct.nract, poAct.dataact In OINTRODUCERI.PRG If gnButon = 2 && DACA AM ALES RENUNT - NU MERG MAI DEPARTE Return gnButon Endif Endif *!* 30.10.2008 ^ lFactura = oSet.factura lFacturaVal = oSet.cursval && modificare 21.09.2007 lAdaos = oSet.adaos lDiscount = oSet.discount lcTipFrm = Upper(oSet.explicatia) lcFormCereDate = Alltrim(oSet.frm_date) lcObj = Alltrim(tcObj) If !Inlist(Left(Alltrim(Upper(lcObj)),6), "WEBNIR","VALOAR","SCHIMB","INVENT","RESTNI") pcObj = &tcObj Endif If oSet.model = 4 And oSet.factura && facturi retur If Used('xcont') Select xcont Locate For Val(contpart) = 4111 lnIdPart = idPart lcTitlu = numepart lcCursor = 'crs_facturi_emise' pcListaFacturi = aleg_facturi_pt_retur(lnIdPart,'4111',lcTitlu,lcCursor) If Empty(pcListaFacturi) Return 2 && renunt Endif Endif Endif Select selectii Locate For id_sel = oSet.id_selSt If Found() Scatter Name ost Memo Else amessagebox('NECONFIGURAT!',0+48,'Atentie!') Return 2 && renunt Endif ***--------------------- *!* v 2.0.87 - gestselectii - coloane ordonate din optiuni utilizator llElementeEgale = .F. lcWidth_coloane = '' lnPornire = 1 && v 2.0.90 lcGestSelectii = citeste_optiune_utilizator('GEST_SELECTII') If !Empty(lcGestSelectii) Xmltocursor(lcGestSelectii, "crsGestSelectiiUtilizator") Select crsGestSelectiiUtilizator Locate For id_sel = oSet.id_selSt If Found() **-- compara daca am aceleasi coloane (control source) pe server si in tabelul din proiect (gest_selectii) Create Cursor crsLista1 (element C(100)) Create Cursor crsLista2 (element C(100)) lista2cursor(crsGestSelectiiUtilizator.nume_col,"crsLista1","element",";") lista2cursor(ost.nume_col,"crsLista2","element",";") Select * From crsLista1 ; ORDER By element ; INTO Cursor crsListaOrd1 Select * From crsLista2 ; ORDER By element ; INTO Cursor crsListaOrd2 lcSirOrdonat1 = cursor2lista("crsListaOrd1","element",";") lcSirOrdonat2 = cursor2lista("crsListaOrd2","element",";") If Used('crsLista1') Use In crsLista1 Endif If Used('crsLista2') Use In crsLista2 Endif If Used('crsListaOrd1') Use In crsListaOrd1 Endif If Used('crsListaOrd2') Use In crsListaOrd2 Endif If lcSirOrdonat1 = lcSirOrdonat2 llElementeEgale = .T. Endif **-- If llElementeEgale Select crsGestSelectiiUtilizator Locate For id_sel = oSet.id_selSt ost.titlu_col = titlu_col ost.nume_col = nume_col ost.ordine = ordine lcWidth_coloane = width_col If Type("pornire")<>"U" && ver. 2.0.90 lnPornire = pornire Endif Endif Endif Else Create Cursor crsGestSelectiiUtilizator (id_sel I, titlu_col M, nume_col M, ordine C(50), width_col M, pornire N(2)) Endif *!* v 2.0.87 - gestselectii ^ ***--------------------- Select selectii Locate For id_sel = oSet.id_selDr If Found() Scatter Name odr Memo Else amessagebox('NECONFIGURAT!',0+48,'Atentie!') Return 2 && renunt Endif lcFiltruOrig = Alltrim(ost.filtruOrig) If Empty(lcFiltruOrig) lcFiltruOrig = [2=2] Else lcFiltruOrig = &lcFiltruOrig Endif Local lcNrSt Store 0 To lcNrSt Do While ("??"$ost.titlu_grid) lcNrSt = lcNrSt + 1 ost.titlu_grid = Stuff(ost.titlu_grid ,At("??",ost.titlu_grid ,1),At("??",ost.titlu_grid,2)-At("??",ost.titlu_grid ,1)+2,Alltrim(Evaluate(Substr(ost.titlu_grid ,At("??",ost.titlu_grid ,1)+2,At("??",ost.titlu_grid ,2)-At("??",ost.titlu_grid ,1)-2)))) Enddo Release lcNrSt *!* modificare v 2.1.19 *!* lcSelSt = Alltrim(ost.cselect) + [ from ] + gcs + [.] + Alltrim(ost.cfrom) + [ where ] + Iif(!Empty(ost.FILTRU),Alltrim(ost.FILTRU),[])+Iif(!Empty(ost.CWHERE),Iif(!Empty(ost.FILTRU),[ AND ],[ ])+Alltrim(ost.CWHERE),[]) * 3 = BON CONSUM IF oxset.model = 3 AND INLIST(gnFifoLifo,1,2) lcOrdineSelectie = IIF(gnFifoLifo=1,[],[ desc]) lcSelSt = STRTRAN(Alltrim(ost.cselect),[select ],; [select row_number() over (partition by id_articol,id_gestiune order by denumire,id_articol,id_gestiune,datain] + lcOrdineSelectie + [) as nrordine,]) + ; [ from ] + gcs + [.] + Alltrim(ost.cfrom) + [ where ] + Iif(!Empty(ost.FILTRU),Alltrim(ost.FILTRU),[])+Iif(!Empty(ost.CWHERE),Iif(!Empty(ost.FILTRU),[ AND ],[ ])+Alltrim(ost.CWHERE),[]) *!* ost.ordine = [denumire,id_articol,id_gestiune,datain]+lcOrdineSelectie else lcSelSt = Alltrim(ost.cselect) + [ from ] + gcs + [.] + Alltrim(ost.cfrom) + [ where ] + Iif(!Empty(ost.FILTRU),Alltrim(ost.FILTRU),[])+Iif(!Empty(ost.CWHERE),Iif(!Empty(ost.FILTRU),[ AND ],[ ])+Alltrim(ost.CWHERE),[]) ENDIF *!* modificare v 2.1.19 ^ lcSchemaSt = Alltrim(ost.cschema) *AMESSAGEBOX('lcFiltruOrig: '+lcFiltruOrig) odr.filtruOrig = Iif(Empty(odr.filtruOrig), [2=2], Alltrim(odr.filtruOrig)) *!* modificare v 2.1.19 *!* lcSelDr = Alltrim(odr.cselect) + [ from ] + gcs + [.] + Alltrim(odr.cfrom) + [ where ] + Alltrim(odr.FILTRU) IF oxset.model = 3 AND INLIST(gnFifoLifo,1,2) lcSelDr = Alltrim(odr.cselect) + [,0 as nrordine from ] + gcs + [.] + Alltrim(odr.cfrom) + [ where ] + Alltrim(odr.FILTRU) ELSE lcSelDr = Alltrim(odr.cselect) + [ from ] + gcs + [.] + Alltrim(odr.cfrom) + [ where ] + Alltrim(odr.FILTRU) ENDIF *!* modificare v 2.1.19 ^ lcSchemaDr = Alltrim(odr.cschema) *!* modificare v 2.0.6 *!* If Type('pcobj.id_gestout') # 'U' And !Empty(pcObj.id_gestout) If Type('pcobj.id_gestout') # 'U' And !Empty(pcObj.id_gestout) And !Inlist(oSet.id_set,215,216,257) *!* modificare v 2.0.6 ^ llGestout = .T. Endif If Type('pcobj.id_gestin') # 'U' And !Empty(pcObj.id_gestin) llGestin = .T. Endif If Inlist(oSet.id_selSt, 1, 22) && selectie din vnom_articole llAdMod = .T. Else llAdMod = .F. Endif If Inlist(Left(Alltrim(Upper(lcObj)),6), 'WEBNIR',"RESTNI") LcNumeObj = Alltrim(Upper(lcObj)) && 'WEBNIR' Private pnAdaosTotal Store 0 To pnAdaosTotal Private pnId_lista, pdDataI, pdDataF, pcDataI, pcDataF, pcPerioada, pcDataOra ltDataora = get_ora() ldDataora = Ttod(ltDataora) pnId_lista = 0 pdDataI = DTOT(MIN(DATE(gnAn,gnLuna,1),ldDataora)) && DATE()-1 pdDataF = Dtot(MIN(GOMONTH(DATE(gnAn,gnLuna,1),1)-1,ldDataora))+24*60*60-1 && DATE()-1 pcDataI = '' pcDataF = '' pcPerioada = "" pcDataOra = get_ora(2) ***--------- combo liste preturi Private pnId_lista, pnId_produs Store 0 To pnId_lista, pnId_produs Private poListe_pret Store '' To poListe_pret Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza lcSchema1 = [] lcSelect1 = [select * from vcrm_politici_preturi] lcOrder1 = [nume_lista_preturi] lcgroup = [] lcFiltru1 = [2=2] lcFiltruOriginal = [] llModParam = .T. llAfiseaza = .F. gencursor('poListe_pret','cListePret', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poListe_pret.ca_baza1.afisare() Select cListePret ***------------------ Private pnIdGest_InProd, pnIdGest_InMarf Store 0 To pnIdGest_InProd, pnIdGest_InMarf Private poGestiuni Store '' To poGestiuni Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza lcSchema1 = [] lcSelect1 = [select id_gestiune, nume_gestiune, cgest, nr_pag, cont, acont, inactiv, nume_tip from vnom_gestiuni] lcOrder1 = [cgest] lcgroup = [] lcFiltru1 = [2=2] If Empty(gcGestPermis) lcFiltruOriginal = [1=2] Else lcFiltruOriginal = [id_gestiune in (]+ gcGestPermis + [)] Endif llModParam = .T. llAfiseaza = .F. gencursor('poGestiuni','crsGestiuni', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poGestiuni.ca_baza1.afisare() ***------------------ Else * IF oSet.id_set = 105 && NIR de marfa la pret de vanzare Private pnId_lista, pnId_produs Store 0 To pnId_lista, pnId_produs Private poListe_pret Store '' To poListe_pret Local lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza lcSchema1 = [] lcSelect1 = [select * from vcrm_politici_preturi] lcOrder1 = [nume_lista_preturi] lcgroup = [] lcFiltru1 = [2=2] lcFiltruOriginal = [] llModParam = .T. llAfiseaza = .F. gencursor('poListe_pret','cListePret', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) poListe_pret.ca_baza1.afisare() * ENDIF If !Inlist(Left(Alltrim(Upper(lcObj)),6), "WEBNIR","VALOAR","SCHIMB","INVENT","RESTNI") LcNumeObj = "nir" Else LcNumeObj = Alltrim(Upper(lcObj)) Endif Endif *!* modificare 04.10.2007 *!* 19.02.2010 *!* If Inlist(oSet.model,3,4) *!* 19.02.2010 ^ If update_corespondente_cvc() < 0 Return Endif *!* Endif *!* modificare 04.10.2007 ^ *!* modificare 21.02.2007 If update_jtva_coloane([],[jtva_temp]) > 0 *!* modificare ROAGEST v 2.2.0 *!* Select * From jtva_temp Where JC = 1 Into Cursor jtva_achizitie *!* Select * From jtva_temp Where JV = 1 Into Cursor jtva_vanzare If type('pcObj') = 'O' and pemstatus(pcObj, "tva_incasare", 5) and Empty(pcObj.tva_incasare) Select * From jtva_temp Where JC = 1 And Isnull(id_jtva_ex) Into Cursor jtva_achizitie Select * From jtva_temp Where JV = 1 And Isnull(id_jtva_ex) Into Cursor jtva_vanzare Else Select * From jtva_temp Where JC = 1 And Isnull(id_jtva_neex) Into Cursor jtva_achizitie Select * From jtva_temp Where JV = 1 And Isnull(id_jtva_neex) Into Cursor jtva_vanzare Endif *!* modificare ROAGEST v 2.2.0 ^ If Used('jtva_temp') Use In jtva_temp Endif Else && adaugare 04.10.2007 Return && adaugare 04.10.2007 Endif *!* modificare 21.02.2007 ^ If oSet.productie And !Empty(oSet.formproduc) *!* modificare ROAPRODUCTIE v 2.0.2 : am adaugat pnInStoc,pnInCrm,pcUm Private pnId_articol, pcDenumire, pnCant, pnId_gestiune, pcGestiune, pcCont_articol,pnInStoc,pnInCrm,pcUm, pcLot, pcSerie Store 0 To pnId_articol, pnId_gestiune,pnInCrm Store 1 To pnCant,pnInStoc Store '' To pcDenumire, pcGestiune, pcCont_articol,pcUm, pcLot, pcSerie ***--------------------------------------------------------------------------------------- Private pnId_sectie, pcSectie, pnId_comanda, pcNr_comanda, pnValoareDecontata, pnCheltuieliDirecte Store 0 To pnId_sectie, pnId_comanda, pnValoareDecontata, pnCheltuieliDirecte Store '' To pcSectie, pcNr_comanda lcFormProductie = Alltrim(Upper(oSet.formproduc)) loap = Createobject(lcFormProductie) *loap = Createobject('frm_alege_prod_cant') loap.Show(1) *!* modificare ROAPRODUCTIE v 2.0.0 If gnButon = 2 Return gnButon Endif *!* modificare ROAPRODUCTIE v 2.0.0 ^ Endif If Alltrim(Upper(LcNumeObj)) <> 'INVENTAR_STOC' onirbon = Createobject(LcNumeObj) If Type('onirbon.cObj') # 'U' onirbon.cObj = lcObj Endif If Type('onirbon.cTip_frm') # 'U' onirbon.cTip_frm = lcTipFrm Endif If Type('onirbon.cFrm_cereDate') # 'U' onirbon.cFrm_cereDate = lcFormCereDate Endif If !Inlist(Left(Alltrim(Upper(lcObj)),6), "WEBNIR","VALOAR","SCHIMB","INVENT","RESTNI") onirbon.ct_Factura1.Visible = lFactura onirbon.ct_factura2.Visible = lFacturaVal onirbon.ct_Adaos1.Visible = lAdaos onirbon.ct_Discount1.Visible = lDiscount && daca onirbon.ct_factura2 este vizibil il trec in fata If lFacturaVal onirbon.ct_factura2.ZOrder(0) Endif && daca onirbon.ct_Discount1 este vizibil il trec in fata ( ) If lDiscount onirbon.ct_Discount1.ZOrder(0) Endif *** INITIALIZEZ PROPRIETATILE CONTAINER STANGA With onirbon.ct_grid_search1 .cselect = lcSelSt .cschema = lcSchemaSt .cTitlu_coloane = Alltrim(ost.titlu_col) .cNume_coloane = Alltrim(ost.nume_col) .cMask = Alltrim(ost.mask_col) .cWidth_coloane = Alltrim(lcWidth_coloane) .nPornire = lnPornire .cFiltruOriginal = lcFiltruOrig .cFiltru = Alltrim(ost.FILTRU) .cOrder = Alltrim(ost.ordine) .cTitlu = Alltrim(ost.titlu_grid) .cb_tx_gestout.Visible = llGestout .CWHERE = Alltrim(ost.CWHERE) .but_nou1.Visible = llAdMod * .but_modifica1.VISIBLE = llAdMod *!* modificare 03.10.2007 If Inlist(oxset.model,4,6) && Retur .RemoveObject([Cb_tx_gestout]) Endif *!* modificare 03.10.2007 ^ Endwith *** INITIALIZEZ PROPRIETATILE CONTAINER DREAPTA With onirbon.ct_grid_order1 .cselect = lcSelDr .cTitlu_coloane = Alltrim(odr.titlu_col) .cNume_coloane = Alltrim(odr.nume_col) .cMask = Alltrim(odr.mask_col) *!* modificare v 2.0.6 *!* modificare 15.02.2008 *!* .cFiltruOriginal = Alltrim(odr.filtruOrig) *!* .cFiltru = Alltrim(odr.FILTRU) *!* .cFiltruOriginal = Evaluate(Alltrim(odr.fpfiltruOr)) *!* .cFiltru = Evaluate(Alltrim(odr.fpFILTRU)) *!* modificare 15.02.2008 ^ .cFiltruOriginal = Alltrim(odr.fpfiltruOr) .cFiltru = Alltrim(odr.FILTRU) *!* modificare v 2.0.6 ^ .cOrder = Alltrim(odr.ordine) .cTitlu = Alltrim(odr.titlu_grid) .cb_tx_gestin.Visible = llGestin Endwith onirbon.osel_dr = odr Endif onirbon.addproperty('lCorectie', m.llCorectie) onirbon.addproperty('nCod', m.lnCod) onirbon.Show() Endif Clear Class (LcNumeObj) && modificare 06.03 && casa de marcat If buton = 1 If Type('glListareBonFiscal')<>'U' And glListareBonFiscal &&E500 && lcSirBonFiscal (explicatii) : && 1 (vanzare);nume articol;u.m.;departament;cota tva;pret*10^2;cantitate*10^3;0 (articolul va fi vandut) &&MP500 && lcSirBonFiscal (explicatii) : && S (vanzare),nr logic,zona rezervata;Parametrii &&Parametrii : denumire c(22);pret 99999999;cantitate 99999.999;numar departament de la 1 la 8; && numar grupa de articole de la 1 la 99;numar grupa tva de la 1 la 8 If pnTipCasaMarcat=1 lcSirBonFiscal=[] Else lcSirBonFiscal=[H,1,______,_,__;]+CRLF Endif Local lnValMp500 lnValMp500 = 0 Select rul_temp Scan If pnTipCasaMarcat=1 lcSirBonFiscal=lcSirBonFiscal+[1;]+Substr(Alltrim(denumire),1,14)+[;1;2;1;]+; ALLTRIM(Str(Round(Round(pretv,gnPPretV)+Round(tvav,gnPPretV),2)*100))+[;]++Alltrim(Str(cante*1000))+[;0]+CRLF Else lnValMp500 = round(Round(pretv,gnPPretV)+Round(tvav,gnPPretV),2) *!* pnSumamp500 = pnSumamp500 + lnValMp500*cante lcSirBonFiscal=lcSirBonFiscal+[S,1,______,_,__;]+Left(Alltrim(denumire),22)+[;]+; ALLTRIM(Str(lnValMp500*100,8))+[;]+Alltrim(Str(cante,9,3))+[;1;1;1;0;0;]+CRLF Endif Endscan && lcSirBonFiscal (explicatii) : && 5 (incasare);suma achitata;0(numerar);0(moneda);0(numar card credit) Select actactan *!* modificare 23.02.2007 *!* LOCATE FOR scd='5311' *!* IF FOUND() *!* lnNumarBonFiscal=nract *!* IF pnTipCasaMarcat=1 *!* lcSirBonFiscal=lcSirBonFiscal+[5;]+ALLTRIM(STR(suma*100))+[;0;0;0]+CRLF+CRLF *!* ENDIF *!* ldDataBonFiscal=get_ora() *!* ENDIF Calculate Sum(suma) For scd='5311' To lnSuma If lnSuma > 0 lnNumarBonFiscal=nract If pnTipCasaMarcat=1 lcSirBonFiscal=lcSirBonFiscal+[5;]+Alltrim(Str(lnSuma*100))+[;0;0;0]+CRLF+CRLF Endif ldDataBonFiscal=get_ora() Endif *!* modificare 23.02.2007 ^ Endif If Alltrim(LcNumeObj) = 'WEBNIR' Select actactan Locate For scc='371' And id_set = oSet.id_set If Found() lnNir = nnir Endif Endif If INLIST(Alltrim(LcNumeObj),'WEBNIR_RETETAR',"RESTNIR_RETETAR","RESTNIR_RETETAR_CUM") Or poAct.id_set = 26002 Select actactan Locate For scc='301' And id_set = oSet.id_set If Found() lnNir = nnir Endif Endif If Alltrim(LcNumeObj) = 'INVENTAR_STOC' *!* modificare ROAPRODUCTIE v 2.0.0 *!* Do nota_inventar With .F., .T. In OINTRODUCERI.PRG Private pnIdCInventar Store 0 To pnIdCInventar lcSql = [begin pack_inventar.adauga_inventar(] + Alltrim(Str(gnLuna)) + [,] + Alltrim(Str(gnAn)) + [,] + ; ['] + Alltrim(poAct.gestout) + [','] + Alltrim(Str(poAct.id_gestiune)) + [|',] + Alltrim(Str(gnIdUtil)) + [,] + ; [3,?gnIdSucursala,?@pnIdCInventar); end;] lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare") Return 2 Else Do vizualizeaza_inventar With pnIdCInventar In OINTRODUCERI.PRG Endif *!* modificare ROAPRODUCTIE v 2.0.0 ^ Endif *** Modificare NIR/BON - se sterger documentului original inainte de scrierea celui nou IF m.llCorectie lcSql = [begin pack_contafin.sterge_document(] + ALLTRIM(STR(m.lnCod)) + [,] + ALLTRIM(STR(m.gnAn)) + [,] + ALLTRIM(STR(m.gnLuna)) + [,] + ALLTRIM(STR(gnIdUtil)) + [); end;] llSucces = goExecutor.oExecuta(lcSql) buton = IIF(m.llSucces, 1, 2) IF buton = 2 MESSAGEBOX('Nu s-a putut sterge documentul original! Nu se va scrie nici documentul modificat!',0+48,_screen.Caption) ENDIF ENDIF && m.llCorectie ENDIF && buton = 1 && sfarsit modificare 06.03 && modificare 25.10.2006 *!* 236, 240 = marfa pv > transfer > retur din gestiune valorica - aviz expeditie - lista preturi *!* 241, 242 = marfa pa > transfer > retur din gestiune valorica - aviz expeditie - lista preturi *!* modificare v 2.0.188 : am adaugat 233 If buton = 1 And (Inlist(oSet.id_set,73,79,83,206,61,62,63,64,65, 102, 103,222,223,224,225,226,227,236,238,239,240,241,242,243,244) Or Inlist(oSet.id_set,233,252,255,256,258,259,260,261,262,267,270,272)) And oSet.model > 1 *!* modificare 13.08.2007 If Used('rul_temp') Select rul_temp Replace nract With poAct.nract,serie_Act With poAct.serie_Act All Endif If Used('rul_temp_obinv') Select rul_temp_obinv Replace nract With poAct.nract,serie_Act With poAct.serie_Act All Endif *!* modificare 13.08.2007 ^ *!* 12.11.2019 poDate se initializeaza doar in initializeaza_vanzare_din_stoc() pentru vanzarea din stoc IF TYPE('poDate') = 'U' Private poDate lnTip = IdSet2TipFacturare(oSet.id_set) poDate = CREATEOBJECT("oDateFactura",oSet.id_set, m.lnTip) ENDIF *!* 12.11.2019 ^ lnButon = 1 lnSucces = oscrie_vanzare_din_stoc(oSet) && ofacturare_stoc.prg If lnSucces < 0 lnButon = 2 Endif Else && modificare 25.10.2006 ^ If buton = 1 And oSet.model > 1 *!* modificare 13.08.2007 If Used('rul_temp') Select rul_temp Replace nract With poAct.nract,serie_Act With poAct.serie_Act All Endif If Used('rul_temp_obinv') Select rul_temp_obinv Replace nract With poAct.nract,serie_Act With poAct.serie_Act All Endif *!* modificare 13.08.2007 ^ lnButon = 1 lnSucces = oscrie_in_fisiere(0,.F.,.T.) If lnSucces < 0 lnButon = 2 Endif *!* modificare ROAPRODUCTIE v 2.0.0 If poAct.id_set = 26000 If lnSucces < 0 lcSql = [update ] + gcs + [.GEST_CENTR_INVENTAR set sters = 1, dataoras = sysdate,id_utils=?gnIdUtil where id_c_inventar =?pnIdCInventar] Else lcSql = [update ] + gcs + [.GEST_CENTR_INVENTAR set validat = 1, dataorav = sysdate,id_utilv=?gnIdUtil where id_c_inventar =?pnIdCInventar] Endif lnSucces2 = goExecutor.oExecute(lcSql) If lnSucces2 < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif Release pnIdCInventar Endif *!* modificare ROAPRODUCTIE v 2.0.0 ^ *!* 29.05.2010 *!* 231 mf pret de vanzare > facturi neplatite pret de lista *!* 247 mf pret de achizitie * > facturi neplatite pret de lista *!* 266 mf pret de achizitie * > facturi nesosite pret de lista llAvizTransferAutomat = IIF(oSet.id_set = 231 and ((TYPE('gnRG_AVIZ_TRANSFER_NIR6') <> 'U' and m.gnRG_AVIZ_TRANSFER_NIR6 = 1) or TYPE('gnRG_AVIZ_TRANSFER_NIR6') = 'U'), .T., ; IIF(INLIST(oSet.id_set, 247, 266) and ((TYPE('gnRG_AVIZ_TRANSFER_NIR7') <> 'U' and m.gnRG_AVIZ_TRANSFER_NIR7 = 1) or TYPE('gnRG_AVIZ_TRANSFER_NIR7') = 'U'), .T., .F.)) If buton = 1 And lnSucces > 0 And Inlist(oSet.id_set, 231, 247, 266) AND m.llAvizTransferAutomat *!* 29.05.2010 ^ *!* 26.10.2011 *!* daca dau renunt la transferul articolelor din nir in alta gestiune, se in actbaza2007.release se dezaloca numarul de NIR lnOldButon = buton Do ofactureaza.PRG buton = lnOldButon pnButon = lnOldButon gnButon = lnOldButon *!* 26.10.2011 Endif Else lnButon = 2 Endif lnTipGest = gnTipGest If lnButon # 2 And !Empty(oSet.listare) lcProcName = Alltrim(oSet.listare) lcParametersList = Alltrim(oSet.param2) && pcObj.nnir,gnTipGest IN oproceduri_listari If INLIST(Left(Alltrim(LcNumeObj),6),'WEBNIR',"RESTNI") lnNr_pag = 0 Do Case Case LcNumeObj = 'WEBNIR' And (oSet.id_set = 91 Or oSet.id_set = 96 Or oSet.id_set = 97 OR oSet.id_set = 106) lnNr_pag = 5 Do &lcProcName With lnNir, lnNr_pag In oproceduri_listari Case LcNumeObj = 'WEBNIR' And oSet.id_set = 95 lnNr_pag = 6 Do &lcProcName With lnNir, lnNr_pag In oproceduri_listari Case INLIST(LcNumeObj,'WEBNIR_RETETAR',"RESTNIR_RETETAR","RESTNIR_RETETAR_CUM") lnNr_pag = 2 Do listare_descarcare_productie With lnNir, lnNr_pag In oproceduri_listari Endcase Else Do Case Case LcNumeObj = 'INVENTAR_STOC' lnNr_pag = 0 && 4 Do &lcProcName With poAct.nract, lnNr_pag In oproceduri_listari If poAct.id_set = 26000 && Bon de consum cu inventar Private pnId_gestiune, pcNumeGestiune, pnNr pnId_gestiune = poAct.id_gestiune pcNumeGestiune = poAct.nume_gestiune pnNr = poAct.nract lcSel = [{call pack_productie.get_stoc(?gnAn, ?gnLuna, ?pnId_gestiune, ?gnIdSucursala)}] lcCursor = 'cStoc' lnSucces = goExecutor.oExecute(lcSel, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return Endif Private pcTitlu, pcDataOra pcTitlu = "INVENTAR la data de "+Dtoc(poAct.dataact) pcDataOra = get_ora(2) Select cStoc Report Form rap_inventariere_bon.frx To Printer Prompt Preview If Used('cStoc') Use In cStoc Endif Endif *!* Case poact.id_set = 26002 && Inregistrare productie si consum de materii prime *!* lnNr_pag = 2 *!* Do listare_descarcare_productie With lnNir, lnNr_pag In oproceduri_listari Otherwise Do &lcProcName With &lcParametersList && IN oproceduri_listari Endcase Endif Endif && modificare 25.10.2006 Endif && modificare 25.10.2006 ^ && modificare 06.03 && casa de marcat If lnButon#2 And Type('glListareBonFiscal')<>'U' And glListareBonFiscal If pnTipCasaMarcat=1 imprimare_bon_fiscal(lcSirBonFiscal,ldDataBonFiscal,lnNumarBonFiscal) Else If Type('lcStringmp500')='C' lcSirBonFiscal=lcSirBonFiscal+lcStringmp500 Else lcSirBonFiscal=lcSirBonFiscal+[T,1,______,_,__;]+CRLF+[F,1,______,_,__;]+CRLF Endif imprimare_bon_mp500(lcSirBonFiscal,ldDataBonFiscal,lnNumarBonFiscal) Endif Endif && sfarsit modificare 06.03 Use In (Select('actactan')) Use In (Select('rul_temp')) Use In (Select('rul_temp_obinv')) Use In (Select('jtva_achizitie')) Use In (Select('jtva_vanzare')) Use In (Select('crsconfigcvc')) Use In (Select('crsGestSelectiiUtilizator')) *!* modificare ROAPRODUCTIE v 2.0.2 If oSet.productie And !Empty(oSet.formproduc) Release pnId_articol, pcDenumire, pnCant, pnId_gestiune, pcGestiune, pcCont_articol,pnInStoc,pnInCrm,pcUm, pcLot, pcSerie ENDIF *!* modificare ROAPRODUCTIE v 2.0.2 ^ Release oSet Release ost Release odr Return lnButon ********* SFARSIT: lans_Nir_Bon *********** **************************************************************************************************** Function IsNIRBONPretCuTVA Lparameters tnIdSet Local llNIRBONPretCuTVA &&23.10.2008 adaugat 248 - bilete ratc in gestiunea hibrid llNIRBONPretCuTVA = Iif(Inlist(tnIdSet, 234,248),.T.,.F.) && NIR BILETE RATC Return llNIRBONPretCuTVA Endfunc && IsNIRBONPretCuTVA **************************************************************************************************** ********* INCEPUT: aleg_facturi_pt_retur *********** Procedure aleg_facturi_pt_retur Parameters tnIdPart,tcCont,tcTitlu,tcCursor If Empty(tcTitlu) lcTitlu = [Facturi emise] Else lcTitlu = Upper(Alltrim(tcTitlu)) Endif *** aflu numele partenerului *!* lcNumePart='' *!* lcSel = [select nume from ] + gcs + [.vnom_parteneri where id_part = ?tnIdPart] *!* lccursor = [crsNumePart] *!* lnsucces = goExecutor.oExecute(lcSel,lccursor) *!* IF lnsucces < 0 *!* lcmesaj = goExecutor.cEroare *!* ofrm_er = CREATEOBJECT('frm_mesaj','Eroare','exclam.ico','Avertizare',lcmesaj) *!* ofrm_er.show(1) *!* RELEASE ofrm_er *!* ENDIF *!* SELECT crsNumePart *!* LOCATE *!* lcNumePart = ALLTRIM(nume) *!* USE IN crsNumePart *** perioada din luna curenta pdDataI = Ctod('01/' + pcNl + '/' + pcAn) pdDataF = ultimazi(pcAn,pcNl) lcSel = [{call facturi_emise(?gcS,?tcCont,?tnIdPart,?pdDataI,?pdDataF)}] lcSchema = [''] &&['ceck n(1),totdebit n(16,gnPa),totcredit n(16,gnPa),id_fact n(10),id_part n(10),nume c(50),dataact D,dataireg D,nract n(14),datascad D,cont c(4),acont c(4)'] lcCursor = Iif(!Empty(tcCursor),Alltrim(tcCursor),'crs_facturi_emise') lnSucces = goExecutor.oExecute(lcSel,lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return Endif ofact = Createobject('facturi_retur') With ofact.ct_grid_order1 .cselect = lcSel .cschema = lcSchema .cTitlu_coloane = [Alege,Serie factura,Nr.factura,Data factura,Data scadenta,Cont,Analitic,Total cu TVA,Achitat,Sold] .cNume_coloane = [ceck;serie_act;nract;dataact;datascad;cont;acont;totdebit;totcredit;totdebit-totcredit] .cFiltruOriginal = [] .cFiltru = [] .cOrder = [dataact] .cTitlu = [Client: ] + lcTitlu .cnrcoloane_check = [1] .cnumeCursor = lcCursor .lmodparam = .T. Endwith ofact.Show(1) Select (lcCursor) lcFacturiAlese = [] Select (lcCursor) Scan For ceck = 1 lcFacturiAlese = lcFacturiAlese + [,] + Alltrim(Str(id_fact)) Endscan lcFacturiAlese = Substr(lcFacturiAlese,2) If Used(lcCursor) Use In (lcCursor) Endif Return lcFacturiAlese Endproc ********* SFARSIT: aleg_facturi_pt_retur *********** ********* INCEPUT: lista_inventar *********** Procedure lista_inventar Lparameters tnTip Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal Local llAfiseaza Private poInventare poInventare = Null lcSchema = [id_c_inventar n(20),data_inventar t,id_util n(10),an n(4),luna n(2), ] + ; [descriere c(240),validat n(1),dataorav t,id_utilv n(10),util c(240),utilv c(240), tip n(2), ] + ; [id_sucursala n(5), sucursala c(100), nract n(14), nnir n(14), id_fact n(20), ] + ; [id_gestiuni M, id_subgrupe_articole M, id_articole M] lcSelect = [select id_c_inventar,data_inventar,id_util,an,luna, ] + ; [descriere,validat,dataorav,id_utilv,util,utilv,tip,id_sucursala,sucursala, nract, nnir, id_fact, id_gestiuni, id_subgrupe_articole, id_articole ] + ; [ from vgest_centr_inventar] lcFiltru = [an*12+luna <= ] + ALLTRIM(STR(m.gnAn*12+m.gnLuna)) lcOrder = [2 desc] llAfisare=.F. lcgroup = [] llModParam = .T. *!* modificare ROAVIN v 2.0.0 *!* lcFiltruOriginal = Iif(!Empty(gcCondSucursala), Substr(gcCondSucursala,6), []) lcFiltruOriginal = Substr(gcCondSucursala + Iif(!Empty(tnTip),[ and tip = ] + Alltrim(Str(tnTip)),[]),6) *!* modificare ROAVIN v 2.0.0 ^ gencursor('poInventare','crsinventare',lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal) poInventare.ca_baza1.afisare() *!* modificare ROAVIN v 2.0.0 *!* loFrmInventare = Createobject('frm_inventar_centralizator') loFrmInventare = Createobject('frm_inventar_centralizator',tnTip) *!* modificare ROAVIN v 2.0.0 ^ loFrmInventare.Show(1) Use In (Select('crsInventare')) Release loFrmInventare,poInventare Endproc && lista_inventar ********* SFARSIT: lista_inventar *********** ********* INCEPUT: vizualizeaza_inventar *********** Procedure vizualizeaza_inventar Lparameters tnIdCInventar, tlCorectie *** tlCorectie: .T. daca inventarul este validat si se doreste corectarea lui LOCAL llCorectie llCorectie = IIF(PCOUNT() >=2, tlCorectie, .F.) Local llBonConsum, llObinvent, llInventarROAVin,llMagazin Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal Local lnValidat, lnTip, ldDataInventar lnValidat = 0 lnTip = 1 Local llCreareGeneratorNumere *!* 15.06.2010 Private pdDataRef, pdDataInceputInventar, pdDataSfarsitInventar, pnNract, pnNnir, pdDataNotaInventar, pcTextLunaAn, pcChiosc, pcTextLunaAnNecompletat PRIVATE pnIdFact, pnCod,pnIdInventar pnCod = 0 pnIdFact = 0 pnNract = 0 pnNnir = 0 pdDataNotaInventar = {} pcTextLunaAn = '' pcTextLunaAnNecompletat = '' pcChiosc = '' *!* 15.06.2010 ^ *!* 12.01.2015 pnIdInventar = tnIdCInventar *!* 12.01.2015 ^ llCreareGeneratorNumere = .F. If Type('poGeneratorNumere') = 'U' Private poGeneratorNumere poGeneratorNumere = Createobject('oGeneratorNumere') llCreareGeneratorNumere = .T. Endif *!* 16.06.2010 lcSql = "select validat, dataorav, tip, id_gestiuni, descriere, optiuneinventar, numarluni, data_inventar, id_fact, nract, nnir, dataact from VGEST_CENTR_INVENTAR where id_c_inventar=?pnIdInventar" lcCursor = 'crsGestCentrInventarTemp' lnSucces = goExecutor.oExecute(m.lcSql, m.lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return ENDIF *!* 21.12.2011 *** trebuie act.cod pentru nota de completare din inventarul de corectie pnIdFact = NVL(crsGestCentrInventarTemp.id_fact, 0) IF m.llCorectie *!* lnSucces = goExecutor.oSelect2Value("SELECT MAX(cod) FROM act WHERE an = ?gnAn and luna = ?gnLuna and id_fact = ?pnIdFact", @pnCod) lnSucces = goExecutor.oSelect2Value("SELECT MAX(cod) FROM act WHERE an = " + ALLTRIM(STR(m.gnAn)) + " and luna = " + ALLTRIM(STR(m.gnLuna)) + " and id_fact = " + ALLTRIM(STR(m.pnIdFact)), @pnCod) IF m.lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return ENDIF ENDIF *!* 21.12.2011 ^ Select crsGestCentrInventarTemp lnValidat = Validat lnTip = tip lcId_gestiuni = Alltrim(id_gestiuni) lcDescriere = Alltrim(descriere) lnOptiuneInventar = optiuneinventar ldDataInventar = data_inventar pdDataRef = data_inventar pdDataInceputInventar = data_inventar pdDataSfarsitInventar = dataorav pnNract = nract pnNnir = nnir pdDataNotaInventar = dataact pcChiosc = ALLTRIM(NVL(descriere,'')) pcTextLunaAn = 'Luna contabila ' + PADL(allt(str(m.gnLuna)),2, '0') + '/' + allt(str(m.gnAn)) + ; ' Inventar ' + transform(m.pdDataInceputInventar)+ ; IIF(!EMPTY(NVL(m.pdDataSfarsitInventar,{})), ' - ' + transform(m.pdDataSfarsitInventar), '') + ; IIF(!EMPTY(m.lcDescriere), ' | ' + m.lcDescriere , '') + ; IIF(!EMPTY(NVL(m.pnNract, 0)), ' | Nr. doc. ' + alltrim(str(pnNract)),'') + ; IIF(!EMPTY(NVL(m.pnNnir,0)), ' | Nr. bon ' + alltrim(str(pnNnir)),'') + ; IIF(!EMPTY(NVL(m.pdDataNotaInventar,{})), ' | Data doc. ' + transform(m.pdDataNotaInventar), '') pcTextLunaAnNecompletat = 'Luna contabila ' + PADL(allt(str(m.gnLuna)),2, '0') + '/' + allt(str(m.gnAn)) + ; IIF(!EMPTY(m.lcDescriere), ' | ' + m.lcDescriere , '') && fara data inceput inventar si numar/data bon, se poate lista si ulterior, la contabilitate si nu trebuie data generarii inventarului Use In (Select('crsGestCentrInventarTemp')) *!* 16.06.2010 ^ llBonConsum = lnTip = 3 llObinvent = lnTip = 2 llInventarROAVin = lnTip = 4 llMagazin = lnTip = 5 lcNumeCursor = 'crs_inventar' *!* 31.01.2011 IF llInventarROAVin lcSelect = [SELECT ID_INVENTAR,ID_ARTICOL,ID_GESTIUNE,STOC_FAPTIC,PRET,PRETV,TVA,TVAV,CANTS,CANT,CANTE,CONT,PRETD,ACONT,DATAIN,DATAOUT,PROC_TVAV,ID_STOC,DATA_REFERINTA,ID_RESPONSABIL,DATAPIF,DNS_LUNI,DNS_LUNI_FAPTIC,UZURA_FAPTIC,DNS_RAMAS,STOC_SCRIPTIC,DEPRECIERE, ] + ; [MOTIV_DEPRECIERE,ID_UTIL,SERIE,PRET_UNITAR,DENUMIRE,CODMAT,UM,DNF,ID_GRUPA,ID_SUBGRUPA,GRUPA,SUBGRUPA,CGEST,NUME_GESTIUNE,NR_PAG,UTILIZATOR,ID_MESERIA,ID_FORMATIA,DATAANG,DATALIC,DATA_EXPIRARE,ID_RUL_AUX,ID_PART_REZ,ID_LUCRARE_REZ,ID_CATEG_CALITATE, ] + ; [ID_VIN_STADIU,ID_VENCHELT,CATEGORIE_CALITATE,CANT_ZAHAR,GRADE_ALCOOL,POTENTIAL,AN_PROD,ACRONIM,STADIU,EXPLICATIE,ID_VALUTA,VALUTA,LOT,ADATA_EXPIRARE,ID_C_INVENTAR,ID_SUCURSALA,PRETCTVAV, ] + ; [VALIDAT, DATAORA_VALIDAT, ID_FURNIZOR, FURNIZOR, DATAORA ] + ; [FROM vvin_gest_inventar] lcSchema = [ID_INVENTAR N(20) NOT NULL,ID_ARTICOL N(10) NOT NULL,ID_GESTIUNE N(5) NOT NULL,STOC_FAPTIC N(14,3) NOT NULL,PRET N(16,4) NOT NULL,PRETV N(16,4) NOT NULL,TVA N(16,4) NOT NULL,TVAV N(16,4) NOT NULL,CANTS N(14,3) NOT NULL,CANT N(14,3) NOT NULL, ] + ; [CANTE N(14,3) NOT NULL,CONT V(4) NULL,PRETD N(16,4) NOT NULL,ACONT V(4) NULL,DATAIN T NULL,DATAOUT T NULL,PROC_TVAV N(5,2) NOT NULL,ID_STOC N(10) NOT NULL,DATA_REFERINTA T NULL,ID_RESPONSABIL N(10) NULL,DATAPIF T NULL,DNS_LUNI N(10) NOT NULL, ] + ; [DNS_LUNI_FAPTIC N(10) NULL,UZURA_FAPTIC N(3) NULL,DNS_RAMAS N(10) NOT NULL,STOC_SCRIPTIC N(14,3) NULL,DEPRECIERE N(16,4) NOT NULL,MOTIV_DEPRECIERE V(50) NULL,ID_UTIL N(5) NOT NULL,SERIE V(100) NULL,PRET_UNITAR N(16, 4) NULL,DENUMIRE V(100) NULL, ] + ; [CODMAT V(50) NULL,UM V(10) NULL,DNF N(5) NULL,ID_GRUPA N(5) NULL,ID_SUBGRUPA N(5) NULL,GRUPA V(100) NULL,SUBGRUPA V(100) NULL,CGEST V(20) NULL,NUME_GESTIUNE V(50) NULL,NR_PAG N(2) NULL,UTILIZATOR V(30) NULL,ID_MESERIA N(5) NULL,ID_FORMATIA N(5) NULL, ] + ; [DATAANG T NULL,DATALIC T NULL,DATA_EXPIRARE T NULL,ID_RUL_AUX N(10) NULL,ID_PART_REZ N(10) NULL,ID_LUCRARE_REZ N(10) NULL,ID_CATEG_CALITATE N(10) NULL,ID_VIN_STADIU N(10) NULL,ID_VENCHELT N(10) NULL,CATEGORIE_CALITATE V(100) NULL,CANT_ZAHAR N(18, ] + ; [4) NULL,GRADE_ALCOOL N(18,4) NULL,POTENTIAL N(18,4) NULL,AN_PROD N(4) NULL,ACRONIM V(15) NULL,STADIU V(50) NULL,EXPLICATIE V(200) NULL,ID_VALUTA N(5) NULL,VALUTA V(10) NULL,LOT V(20) NULL,ADATA_EXPIRARE T NULL,ID_C_INVENTAR N(20) NULL, ] + ; [ID_SUCURSALA N(5) NULL,PRETCTVAV N(20,4) NULL, VALIDAT N(1) NULL, DATAORA_VALIDAT T NULL, ID_FURNIZOR I, FURNIZOR C(100), DATAORA T ] * lcSchema = "" ELSE lcSelect = [SELECT ID_INVENTAR,ID_ARTICOL,ID_GESTIUNE,STOC_FAPTIC,STOC_FAPTIC1,STOC_FAPTIC2,STOC_FAPTIC3,STOC_FAPTIC4,STOC_FAPTIC5,PRET,PRETV,TVA,TVAV,CANTS,CANT,CANTE,CONT,PRETD,ACONT,DATAIN,DATAOUT,PROC_TVAV,ID_STOC,DATA_REFERINTA,ID_RESPONSABIL,DATAPIF,DNS_LUNI, ] + ; [DNS_LUNI_FAPTIC,UZURA_FAPTIC,DNS_RAMAS,STOC_SCRIPTIC,DEPRECIERE,MOTIV_DEPRECIERE,PRET_UNITAR,DENUMIRE,CODMAT,CODBARE,UM,DNF,ID_GRUPA,ID_SUBGRUPA,GRUPA,SUBGRUPA,CGEST,NUME_GESTIUNE,ID_UTIL,NR_PAG,UTILIZATOR,RESPONSABIL,ID_MESERIA,MESERIE,ID_FORMATIA, ] + ; [FORMATIA,DATAANG,DATALIC,DATA_EXPIRARE,ID_RUL_AUX,SERIE,ID_VALUTA,VALUTA,ID_PART_REZ,ID_LUCRARE_REZ,PART_REZ,NRORD_REZ,LOT,ADATA_EXPIRARE,ID_C_INVENTAR,ID_SUCURSALA,ID_SUCURSALA_GESTIUNE,PRETCTVAV,ID_SECTIE,SECTIE,FIRST_UPDATED_AT, ] + ; [VALIDAT, DATAORA_VALIDAT, ID_FURNIZOR, FURNIZOR, DATAORA ] + ; [FROM vgest_inventar] lcSchema = [ID_INVENTAR N(20) NOT NULL,ID_ARTICOL N(10) NOT NULL,ID_GESTIUNE N(5) NOT NULL,STOC_FAPTIC N(14,3) NOT NULL,STOC_FAPTIC1 N(14,3) NOT NULL,STOC_FAPTIC2 N(14,3) NOT NULL,STOC_FAPTIC3 N(14,3) NOT NULL,STOC_FAPTIC4 N(14,3) NOT NULL,STOC_FAPTIC5 N(14, ] + ; [3) NOT NULL,PRET N(16,4) NOT NULL,PRETV N(16,4) NOT NULL,TVA N(16,4) NOT NULL,TVAV N(16,4) NOT NULL,CANTS N(14,3) NOT NULL,CANT N(14,3) NOT NULL,CANTE N(14,3) NOT NULL,CONT V(4) NULL,PRETD N(16,4) NOT NULL,ACONT V(4) NULL,DATAIN T NULL, ] + ; [DATAOUT T NULL,PROC_TVAV N(5,2) NOT NULL,ID_STOC N(10) NOT NULL,DATA_REFERINTA T NULL,ID_RESPONSABIL N(10) NULL,DATAPIF T NULL,DNS_LUNI N(10) NOT NULL,DNS_LUNI_FAPTIC N(10) NULL,UZURA_FAPTIC N(3) NULL,DNS_RAMAS N(10) NOT NULL,STOC_SCRIPTIC N(14,3) NULL, ] + ; [DEPRECIERE N(16,4) NOT NULL,MOTIV_DEPRECIERE V(50) NULL,PRET_UNITAR N(16,4) NULL,DENUMIRE V(100) NULL,CODMAT V(50) NULL,CODBARE V(50) NULL,UM V(10) NULL,DNF N(5) NULL,ID_GRUPA N(5) NULL,ID_SUBGRUPA N(5) NULL,GRUPA V(100) NULL,SUBGRUPA V(100) NULL, ] + ; [CGEST V(20) NULL,NUME_GESTIUNE V(50) NULL,ID_UTIL N(5) NOT NULL,NR_PAG N(2) NULL,UTILIZATOR V(30) NULL,RESPONSABIL V(70) NULL,ID_MESERIA N(5) NULL,MESERIE V(64) NULL,ID_FORMATIA N(5) NULL,FORMATIA V(64) NULL,DATAANG T NULL,DATALIC T NULL, ] + ; [DATA_EXPIRARE T NULL,ID_RUL_AUX N(10) NULL,SERIE V(100) NULL,ID_VALUTA N(5) NULL,VALUTA V(10) NULL,ID_PART_REZ N(10) NULL,ID_LUCRARE_REZ N(10) NULL,PART_REZ V(70) NULL,NRORD_REZ V(100) NULL,LOT V(20) NULL,ADATA_EXPIRARE T NULL, ] + ; [ID_C_INVENTAR N(20) NULL,ID_SUCURSALA N(5) NULL,ID_SUCURSALA_GESTIUNE N(10) NULL,PRETCTVAV N(20,4) NULL,ID_SECTIE N(5) NULL,SECTIE V(50) NULL,FIRST_UPDATED_AT T NULL, VALIDAT N(1) NULL, DATAORA_VALIDAT T NULL, ID_FURNIZOR I, FURNIZOR C(100), DATAORA T ] * lcSchema = "" ENDIF *!* 31.01.2011 ^ lcFiltru= [] && + Iif(glEMama,[ and id_sucursala is null],gcCondSucursala) lcOrder = [denumire] llAfisare = .F. llModParam = .T. lcgroup = [] lcFiltruOriginal = [id_c_inventar = ] + Alltrim(Str(tnIdCInventar)) If Used(lcNumeCursor) Use In &lcNumeCursor Endif Private podecabaza podecabaza = '' gencursor('podecabaza',lcNumeCursor,lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal) podecabaza.ca_baza1.afisare() gnButon = 2 *!* lnData = 12*gnAn + gnLuna *!* lcSel = [Select MAX(data_referinta) as data_referinta from ] + gcs + [.gest_inventar where 12*extract(YEAR from data_referinta) +extract(MONTH from data_referinta) <=?lnData] *!* lcSchema = [''] *!* lcCursor = [crs_data] *!* lnSucces = goExecutor.oExecute(lcSel,lcCursor) *!* If lnSucces < 0 *!* amessagebox(goExecutor.cEroare,0+16,"Eroare") *!* Endif *!* pdDataRef = data_referinta *!* If Used('crs_data') *!* Use In crs_data *!* Endif *!* modificare ROAVIN v 2.0.1 ( 19.05.2011 ) If update_corespondente_cvc() < 0 Return Endif *!* modificare ROAVIN v 2.0.1 ( 19.05.2011 ) ^ Select crs_inventar lnid_c_inventar=id_c_inventar oInventar = Createobject('inventar_stoc',tnIdCInventar) oInventar.ocursor = podecabaza oInventar.cnumeCursor = lcNumeCursor *!* modificare v 2.2.6 oInventar.cId_gestiuni = iif(!empty(nvl(lcId_gestiuni,'')),left(Strtran(lcId_gestiuni,[|],[,]),len(lcId_gestiuni)-1),'') *!* modificare v 2.2.6 ^ oInventar.cFiltruOriginal = lcFiltru oInventar.lObinv = llObinvent oInventar.lBonConsum = llBonConsum oInventar.lInventarROAVin = llInventarROAVin oInventar.lValidat = lnValidat = 1 oInventar.lCorectie = m.llCorectie oInventar.lMagazin = llMagazin oInventar.dDataInventar = ldDataInventar oInventar.nCod = m.pnCod oInventar.nIdFact = m.pnIdFact *!* If lnValidat = 1 AND !m.llCorectie *!* oInventar.but_nou1.Visible = .F. && adaugare *!* oInventar.but_termin1.Visible = .F. *!* oInventar.but_sterge1.Visible = .F. && stergere *!* Endif oInventar.Show() If !llBonConsum And gnButon = 1 lnSucces = oscrie_in_fisiere(0,.F.,.T.) If lnSucces < 0 If Type([_Screen.nId_tipdoc]) = 'N' And !Empty(_Screen.nid_tipdoc) poGeneratorNumere.dezaloca_numar(_Screen.nid_tipdoc) Endif ELSE *!* 15.06.2010 pnIdFact = 0 lnSucces = goExecutor.oFunction2Value("pack_contafin.GET_IDFACT()", @pnIdFact) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif TEXT TO lcSql NOSHOW begin update GEST_CENTR_INVENTAR set validat = 1, id_fact = ?pnIdFact, dataorav = sysdate, id_utilv = ?gnIdUtil where id_c_inventar = ?lnid_c_inventar; update gest_inventar set validat = 1, dataora_validat = sysdate where id_c_inventar = ?lnid_c_inventar AND validat = 0 ; end; ENDTEXT *!* lcSql = [update GEST_CENTR_INVENTAR set validat = 1, id_fact = ?pnIdFact, dataorav = sysdate, id_utilv=?gnIdUtil where id_c_inventar = ] + ALLTRIM(STR(lnid_c_inventar)) lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif Endif Endif If llCreareGeneratorNumere Release poGeneratorNumere Endif *!* modificare 23.10.2012 Use In (Select(lcNumeCursor)) Use In (Select('rul_temp')) Use In (Select('rul_temp_obinv')) Use In (Select('actactan')) *!* modificare 23.10.2012 ^ *!* modificare ROAVIN v 2.0.1 ( 19.05.2011 ) Use In (Select('crsconfigcvc')) *!* modificare ROAVIN v 2.0.1 ( 19.05.2011 ) ^ Endproc && vizualizeaza_inventar ********* SFARSIT: vizualizeaza_inventar *********** ********* INCEPUT: nota_inventar *********** Procedure nota_inventar Parameters tlObinvent, tlBonConsum, tlInventarROAVin && tlBonConsum - RoaProductie - bon consum productie Private pdDataRef, tnRefacInventar Local llCallProc,crsUtilNev Store .F. To llCallProc Store 0 To tnRefacInventar *!* modificare serii numere - 10.2007 Local llCreareGeneratorNumere llCreareGeneratorNumere = .F. If Type('poGeneratorNumere') = 'U' Private poGeneratorNumere poGeneratorNumere = Createobject('oGeneratorNumere') llCreareGeneratorNumere = .T. Endif *!* modificare serii numere - 10.2007 ^ If tlObinvent lcCondSpec = [cont = ?gcContObInv ] + Iif(glEMama,[and id_sucursala is null],gcCondSucursala) Else lcCondSpec = [cont <> ?gcContObInv ] + Iif(glEMama,[and id_sucursala is null],gcCondSucursala) Endif If !tlBonConsum lnData = 12*gnAn + gnLuna lcSel = [Select MAX(data_referinta) as data_referinta from ] + gcs + [.gest_inventar ] + ; [where 12*extract(YEAR from data_referinta) +extract(MONTH from data_referinta) <=?lnData ] + ; [and validat = 0 and ] + lcCondSpec lcSchema = [''] lcCursor = [crs_data] lnSucces = goExecutor.oExecute(lcSel,lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif If lnSucces > 0 Select crs_data Locate pdDataRef = data_referinta If Used('crs_data') Use In crs_data Endif If !Isnull(pdDataRef) lcSel = [select distinct id_util,utilizator,validat from vgest_inventar ] + ; [where id_util != 0 and validat = 0 ] + Iif(glEMama,[and id_sucursala is null],gcCondSucursala) lcSchema = [''] lccrsUtilizatori="crsUtilNev" lnSucces = goExecutor.oExecute(lcSel,lccrsUtilizatori) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif lnNrUtilNev=0 lcListaUtilNev="" If Reccount("&lccrsUtilizatori")>0 lnNrUtilNev = Reccount("&lccrsUtilizatori") Select &lccrsUtilizatori Scan lcListaUtilNev=lcListaUtilNev + Alltrim(&lccrsUtilizatori..utilizator) + "," Endscan lcListaUtilNev=Substr(lcListaUtilNev,1,Len(lcListaUtilNev)-1) Endif If lnNrUtilNev =0 lnRaspuns = amessagebox("Doriti sa continuati inventarierea stocului la " + Dtoc(pdDataRef) + "?" , 4+32, "Inventariere") Else lnRaspuns = amessagebox("Doriti sa continuati inventarierea stocului la " + Dtoc(pdDataRef) + "?" + CRLF + ; "ATENTIE! Daca se incepe o inventariere noua se vor suprascrie modificarile nevalidate ale utilizatorilor : " + lcListaUtilNev + "!", 4+32, "Inventariere") Endif *!* If buton = 2 && NU If lnRaspuns # 6 llCallProc = .T. Endif Else llCallProc = .T. Endif Endif Else llCallProc = .T. Endif If llCallProc And lnSucces > 0 tnRefacInventar = 1 pdDataRef = ultima_zi_din_luna(gnAn, gnLuna) *oCere = CREATEOBJECT('frm_cere_titlu','Data de referinta:','pdDataRef') *oCere.SHOW() Do While pdDataRef > ultima_zi_din_luna(gnAn, gnLuna) amessagebox('Data trebuie sa fie din luna curenta!',0,'Atentie') pdDataRef = ultima_zi_din_luna(gnAn, gnLuna) * oCere = CREATEOBJECT('frm_cere_titlu','Data de referinta:','pdDataRef') * oCere.SHOW() Enddo Endif If lnSucces > 0 If tlObinvent pnObinv = 1 Else pnObinv = 0 Endif lcSel = [{call inventar_stoc(?tnRefacInventar, ?gcS, TO_DATE(']+Dtos(pdDataRef)+[','YYYY-MM-DD'),] + ; [?pnObinv, ?gnIdSucursala)}] * lcSel = [{call inventar_stoc(?tnRefacInventar, ?gcS, ?pdDataRef, ?pnObinv)}] lcSchema = [''] *!* lcCursor ='crs_inventar' *!* lnSucces = goExecutor.oExecute(lcSel,lcCursor) lnSucces = goExecutor.oExecute(lcSel) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif Endif If lnSucces > 0 lcNumeCursor = 'crs_inventar' lcSelect = [select * from ] + Iif(tlInventarROAVin,[vvin_gest_inventar],[vgest_inventar]) + [ where 1=2] If tlBonConsum lcFiltru = [id_gestiune=]+Alltrim(Str(poAct.id_gestiune)) + [ and data_referinta = ?pdDataRef and ] + lcCondSpec Else lcFiltru = [data_referinta = ?pdDataRef and ] + lcCondSpec Endif lcSchema = [] lcOrder = [denumire] llAfisare = .F. llModParam = .F. If Used(lcNumeCursor) Use In &lcNumeCursor Endif Private podecabaza podecabaza = '' gencursor('podecabaza',lcNumeCursor,lcSelect,[2=2],lcSchema,lcOrder,llAfisare,'',llModParam,lcFiltru) podecabaza.ca_baza1.afisare() gnButon = 2 *!* modificare serii numere - 10.2007 *!* If Pemstatus(_Screen,'nIdSerie',5) *!* _Screen.nIdSerie = 0 *!* Endif *!* modificare serii numere - 10.2007 ^ Select crs_inventar oInventar = Createobject('inventar_stoc') oInventar.ocursor = podecabaza oInventar.cnumeCursor = lcNumeCursor oInventar.cFiltruOriginal = lcFiltru oInventar.lObinv = tlObinvent oInventar.lBonConsum = tlBonConsum oInventar.lInventarROAVin = tlInventarROAVin oInventar.Show() If !tlBonConsum And gnButon = 1 lnSucces = oscrie_in_fisiere(0,.F.,.T.) If lnSucces < 0 *!* modificare serii numere - 10.2007 If Type([_Screen.nId_tipdoc]) = 'N' And !Empty(_Screen.nid_tipdoc) poGeneratorNumere.dezaloca_numar(_Screen.nid_tipdoc) Endif *!* If Pemstatus(_Screen,'nIdSerie',5) *!* lnIdSerieBon = Str(_Screen.nIdSerie) && il salvez in item.when *!* If Type('lnIdSerieBon') = 'N' *!* lcSql = [update ] + gcs + [.serii_numere set alocat = 0 where ] +; *!* [ id_numar = ?lnIdSerieBon] *!* lnSucces = goExecutor.oExecute(lcSql) *!* If lnSucces < 0 *!* lcTitlu = [Eroare] *!* lcTip = [Avertizare] *!* lcImagine = [exclam.ico] *!* lcMesaj = goExecutor.cEroare *!* ofrm_eroare = Createobject('frm_mesaj',lcTitlu,lcImagine,lcTip,lcMesaj) *!* ofrm_eroare.Show(1) *!* Release ofrm_eroare *!* Endif *!* Endif *!* Endif *!* modificare serii numere - 10.2007 ^ Else lcSql = [update ] + gcs + [.gest_inventar set validat = 1, dataora_validat = pack_contafin.GET_DATAORA() ] + ; [where data_referinta = ?pdDataRef and stoc_faptic <> cants+cant-cante and validat = 0 ] + ; [AND id_util = ?gnIdUtil] + Iif(glEMama,[ and id_sucursala is null],gcCondSucursala) lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif Endif endif *!* modificare 23.10.2012 Use In (lcNumeCursor) *!* modificare 23.10.2012 ^ Endif *!* modificare serii numere - 10.2007 If llCreareGeneratorNumere Release poGeneratorNumere Endif *!* modificare serii numere - 10.2007 ^ Endproc && nota_inventar ********* SFARSIT: nota_inventar *********** ********* INCEPUT: achizitie_import *********** Procedure achizitie_import Parameters tnIdSet, tlIntern Local I Private pnIdSet pnIdSet = tnIdSet If Empty(pnIdSet) Return Endif If Type('poGeneratorNumere') = 'U' Private poGeneratorNumere poGeneratorNumere = Createobject('oGeneratorNumere') llCreareGeneratorNumere = .T. Endif lnButon = lans(pnIdSet) If lnButon = 2 If Used('actactan') Use In actactan Endif Return Endif Select actactan Locate Scatter Name poAct Zap If Used('introdc') Use In introdc Endif SET STEP ON lcSql = [select id_note, explicatie as explicatia, scd, ascd, scc, ascc, cu_tva, id_set, ordine, in_valuta, id_jtva_coloana, ptva, explicatie_tva, tipjurnal,taxcode,paymentcode from vnote_contabile ] + ; [where id_set = ?pnIdSet] lcCursor = [cnote_contabile] lnSucces = goExecutor.oExecute(lcSql,lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,'Eroare') Return Endif DO CASE CASE m.gnAn < 2017 * In 2016 lucrez cu TVA 20%. Transform TVA din 19% in 20% * Ach int 20% update cnote_contabile set ptva = 20, id_jtva_coloana = 176, explicatie_tva = 'ACH. INT. 20%' where INLIST(id_jtva_coloana, 101, 103, 105) && 19% update cnote_contabile set ptva = 20, id_jtva_coloana = 177, explicatie_tva = 'TVA ACH. INT. 20%' where INLIST(id_jtva_coloana, 102, 104, 106) && 19% update cnote_contabile set ptva = 20, id_jtva_coloana = 178, explicatie_tva = 'ACH. INT. NEEX. 20%' where id_jtva_coloana = 188 update cnote_contabile set ptva = 20, id_jtva_coloana = 179, explicatie_tva = 'TVA ACH. INT. NEEX. 20%' where id_jtva_coloana = 189 * Ach. b. imp. 20% update cnote_contabile set ptva = 20, id_jtva_coloana = 180, explicatie_tva = 'ACH. IMP. 20%' where INLIST(id_jtva_coloana, 114, 116, 118) update cnote_contabile set ptva = 20, id_jtva_coloana = 181, explicatie_tva = 'TVA ACH. IMP. 20%' where INLIST(id_jtva_coloana, 115, 117, 119) * Ach b. CE 20% update cnote_contabile set ptva = 20, id_jtva_coloana = 182, explicatie_tva = 'ACH. BUNURI CE. 20%' where INLIST(id_jtva_coloana, 127, 129, 133) update cnote_contabile set ptva = 20, id_jtva_coloana = 183, explicatie_tva = 'TVA ACH. BUNURI CE. 20%' where INLIST(id_jtva_coloana, 128, 130, 134) * Ach Tx inversa 20% update cnote_contabile set ptva = 20, id_jtva_coloana = 186, explicatie_tva = 'TX. INV. 20%' where INLIST(id_jtva_coloana, 137, 139, 141) update cnote_contabile set ptva = 20, id_jtva_coloana = 187, explicatie_tva = 'TVA TX. INV. 20%' where INLIST(id_jtva_coloana, 138, 140, 142) * LIV INT 20% update cnote_contabile set ptva = 20, id_jtva_coloana = 27, explicatie_tva = 'LIVR.INTERN 20%' where id_jtva_coloana = 1 update cnote_contabile set ptva = 20, id_jtva_coloana = 28, explicatie_tva = 'TVA LIVR.INTERN 20%' where id_jtva_coloana = 2 update cnote_contabile set ptva = 20, id_jtva_coloana = 29, explicatie_tva = 'LIVR.INTERN NEEX. 20%' where id_jtva_coloana = 31 update cnote_contabile set ptva = 20, id_jtva_coloana = 30, explicatie_tva = 'TVA LIVR.INTERN NEEX. 20%' where id_jtva_coloana = 32 CASE gnAn <= 2015 * In 2015 lucrez cu TVA 24%. Transform TVA din 20% in 24% * Ach int 24% - 20% update cnote_contabile set ptva = 24, id_jtva_coloana = 156, explicatie_tva = 'ACH. INT. 24%' where id_jtva_coloana = 176 update cnote_contabile set ptva = 24, id_jtva_coloana = 157, explicatie_tva = 'TVA ACH. INT. 24%' where id_jtva_coloana = 177 update cnote_contabile set ptva = 24, id_jtva_coloana = 170, explicatie_tva = 'ACH. INT. NEEX. 24%' where id_jtva_coloana = 178 update cnote_contabile set ptva = 24, id_jtva_coloana = 171, explicatie_tva = 'TVA ACH. INT. NEEX. 24%' where id_jtva_coloana = 179 * Ach. b. imp. 24% update cnote_contabile set ptva = 24, id_jtva_coloana = 158, explicatie_tva = 'ACH. IMP. 24%' where id_jtva_coloana = 180 update cnote_contabile set ptva = 24, id_jtva_coloana = 159, explicatie_tva = 'TVA ACH. IMP. 24%' where id_jtva_coloana = 181 * Ach b. CE 24% update cnote_contabile set ptva = 24, id_jtva_coloana = 160, explicatie_tva = 'ACH. BUNURI CE. 24%' where id_jtva_coloana = 182 update cnote_contabile set ptva = 24, id_jtva_coloana = 161, explicatie_tva = 'TVA ACH. BUNURI CE. 24%' where id_jtva_coloana = 183 * Ach Tx inversa 24% update cnote_contabile set ptva = 24, id_jtva_coloana = 162, explicatie_tva = 'TX. INV. 24%' where id_jtva_coloana = 186 update cnote_contabile set ptva = 24, id_jtva_coloana = 163, explicatie_tva = 'TVA TX. INV. 24%' where id_jtva_coloana = 187 * LIV INT 24% update cnote_contabile set ptva = 24, id_jtva_coloana = 15, explicatie_tva = 'LIVR.INTERN 24%' where id_jtva_coloana = 27 update cnote_contabile set ptva = 24, id_jtva_coloana = 16, explicatie_tva = 'TVA LIVR.INTERN 24%' where id_jtva_coloana = 28 update cnote_contabile set ptva = 24, id_jtva_coloana = 21, explicatie_tva = 'LIVR.INTERN NEEX. 24%' where id_jtva_coloana = 29 update cnote_contabile set ptva = 24, id_jtva_coloana = 22, explicatie_tva = 'TVA LIVR.INTERN NEEX. 24%' where id_jtva_coloana = 30 ENDCASE && gnAn <= 2015 * La facturile cu TVA Incasare modific 4426 in 4428 si explicatiile de TVA IF m.tlIntern AND poAct.tva_incasare = 1 SELECT cnote_contabile SCAN IF scd = '4426' REPLACE scd WITH '4428' loTVA = GeTvaColoana(id_jtva_coloana, 1, 'JC') ELSE loTVA = GeJtvaColoana(id_jtva_coloana, 1, 'JC') ENDIF SELECT cnote_contabile REPLACE id_jtva_coloana WITH loTVA.id_jtva_coloana, explicatie_tva WITH loTVA.denumire ENDSCAN ENDIF *!* 22.05.2008 *!* id_valuta - dadea eroare la verificare_note_contabile *!* modificare v 2.1.39 : am adaugat data_act, fdoc, id_fdoc, se_scrie *!* modificare v 2.2.6 : am adaugat tva_incasare #3649 Select N.*, ; 00000000000000.0000 As suma, 00000000000000.0000 As SUMA_val, 00000000000000 As id_partd, 00000000000000 As id_partc, Space(100) As partd, Space(100) As partc, ; 00000000000000 As id_fact, 00000000000000 As id_factd, 00000000000000 As id_factc, 00000000000000 As pereched, 00000000000000 As perechec, ; 00000000000000 As nract, Space(10) As serie_Act,Space(50) As explicatia4, Space(50) As explicatia5, .T. As participa_valuta, ; poAct.id_valuta As id_valuta, poAct.Curs As Curs, poAct.dataact as dataact, poAct.fdoc as fdoc, poAct.id_fdoc as id_fdoc, 0 as se_scrie, poAct.tva_incasare as tva_incasare ; FROM cnote_contabile N ; WHERE N.id_set = poAct.id_set ; INTO Cursor introdc Readwrite Order By ordine *!* 22.05.2008 ^ Use In (SELECT('cnote_contabile')) If !Used('saft_taxtable') update_saft_taxtable() ENDIF If !Used('saft_mecanisme_plati') update_saft_mecanisme_plati() ENDIF * Actualizez taxcode SAFT in functie de furnizori RTVAI IF m.gl406 SELECT introdc SCAN FOR INLIST(ALLTRIM(NVL(tipjurnal,'')), 'JC', 'JV') lnIdJtva = introdc.id_jtva_coloana lnIdPart = NVL(introdc.id_partc, introdc.id_partd) lnTaxCode = GetTaxCodeIdPart(m.gnAn, m.gnLuna, poAct.DataAct, m.lnIdJtva, m.lnIdPart) SELECT introdc REPLACE taxcode WITH m.lnTaxCode ENDSCAN ENDIF GO TOP IN introdc Select ordine, ID_JTVA_coloana, denumire, JC, JV, AFISAT, COLOANA_JC, COLOANA_JV, COTA_TVA, ID_TVA ; FROM jtva_coloane ; WHERE ID_JTVA_coloana > 0 ; UNION ; SELECT 0 As ordine, 0 As ID_JTVA_coloana, '' As denumire, 0 As JC, 0 As JV, 1 As AFISAT, '' As COLOANA_JC, '' As COLOANA_JV, 0 As COTA_TVA, 0 As ID_TVA ; FROM jtva_coloane ; WHERE Recno() = 1 ; INTO Cursor jtva_coloane2 NOFILTER ; ORDER By 1 gnZvama = 0 gnButon = 1 obj = Createobject('IMPORT_nota', tlIntern) obj.oact = poAct obj.Show() If gnButon=2 If Type('poGeneratorNumere') <> 'U' poGeneratorNumere.dezaloca_numere() poGeneratorNumere.ResetAll() Endif ENDIF Use In (SELECT('introdc')) Use In (SELECT('cote_tva')) Use In (SELECT('actactan')) Use In (SELECT('rul_temp')) USE IN (SELECT('rul_temp_obinv')) Use In (SELECT('jtva_coloane2')) ENDPROC && achizitie_import Procedure completare_parteneri_gestiune *!* 02.06.2008 *!* completez partenerii corespondenti pentru cont-gestin, cont-gestout lcSql = [Select cont, id_gestiune, id_part, denumire from vasociere_parteneri_gestiuni] lnSucces = goExecutor.oExecute(lcSql, "crsGestiuniParteneri") If lnSucces < 0 amessagebox(goExecutor.oExecute,0+16,"Eroare") Else Select actactan Scan For Empty(id_partd) Or Empty(id_partc) Scatter Name loRec If Empty(actactan.id_partd) Select crsGestiuniParteneri Locate For Alltrim(Cont) == Alltrim(loRec.scd) And id_gestiune = Iif(!Empty(loRec.id_gestin), loRec.id_gestin, loRec.id_gestout) If Found() Replace id_partd With crsGestiuniParteneri.id_part, partd With crsGestiuniParteneri.denumire In actactan Endif Endif If Empty(actactan.id_partc) Select crsGestiuniParteneri Locate For Alltrim(Cont) == Alltrim(loRec.scc) And id_gestiune = Iif(!Empty(loRec.id_gestout), loRec.id_gestout, loRec.id_gestin) If Found() Replace id_partc With crsGestiuniParteneri.id_part, partc With crsGestiuniParteneri.denumire In actactan Endif Endif Endscan Use In (Select('crsGestiuniParteneri')) Endif Endproc && completare_parteneri_gestiune ********* INCEPUT: lista_inventar_magazin *********** Procedure lista_inventar_magazin Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal Local llAfiseaza Private poInventare poInventare = Null lcFiltru = [] lcSchema = [id_c_inventar n(20),data_inventar t,id_util n(10),an n(4),luna n(2), ] + ; [descriere c(240),validat n(1),dataorav t,id_utilv n(10),util c(240),utilv c(240), tip n(2), id_sucursala n(5), sucursala c(100)] lcSelect = [select id_c_inventar,data_inventar,id_util,an,luna, ] + ; [descriere,validat,dataorav,id_utilv,util,utilv,tip,id_sucursala,sucursala] + ; [ from vgest_centr_inventar] lcOrder = [2 desc] llAfisare=.F. lcgroup = [] llModParam = .T. lcFiltruOriginal = Iif(!Empty(gcCondSucursala), Substr(gcCondSucursala,6)+[ and tip = 5 ], [ tip = 5 ]) gencursor('poInventare','crsinventare',lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal) poInventare.ca_baza1.afisare() loFrmInventare = Createobject('frm_inventar_magazin_centralizator') &&oinventar.vcx loFrmInventare.Show(1) Use In (Select('crsInventare')) Release loFrmInventare,poInventare Endproc && lista_inventar_magazin ********* SFARSIT: lista_inventar_magazin *********** ********* INCEPUT: vizualizeaza_inventar_magazin *********** Procedure vizualizeaza_inventar_magazin Lparameters tnIdCInventar, tlCorectie *** tlCorectie: .T. daca inventarul este validat si se doreste corectarea lui LOCAL llCorectie, llNuSuprascrieCod llNuSuprascrieCod = .F. llCorectie = IIF(PCOUNT() >=2, tlCorectie, .F.) Private pdDataRef, pdDataInceputInventar, pdDataSfarsitInventar, pnNract, pnNnir, pdDataNotaInventar, pcTextLunaAn, pcTextLunaAnNecompletat, pcChiosc *!* 15.06.2010 PRIVATE pnIdFact, pnCod,pnIdInventar pnCod = 0 pnIdFact = 0 pnNract = 0 pnNnir = 0 pdDataNotaInventar = {} pcTextLunaAn = '' pcChiosc = '' *!* 15.06.2010 ^ *!* 12.01.2015 pnIdInventar = tnIdCInventar *!* 12.01.2015 ^ pcTextLunaAnNecompletat = '' Local lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal Local lnValidat, lnTip,lcId_gestiuni,lcDescriere, lnOptiuneInventar, ldDataInventar lnValidat = 0 lnTip = 1 Local llCreareGeneratorNumere Private pdDataRef llCreareGeneratorNumere = .F. If Type('poGeneratorNumere') = 'U' Private poGeneratorNumere poGeneratorNumere = Createobject('oGeneratorNumere') llCreareGeneratorNumere = .T. ENDIF *!* 16.06.2010 lcSql = "select validat, dataorav, tip, id_gestiuni, descriere, optiuneinventar, numarluni, data_inventar, id_fact, nract, nnir, dataact from VGEST_CENTR_INVENTAR where id_c_inventar=?pnIdInventar" *!* 16.06.2010 ^ lcCursor = 'crsGestCentrInventarTemp' lnSucces = goExecutor.oExecute(m.lcSql, m.lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return ENDIF *!* 21.12.2011 *** trebuie act.cod pentru nota de completare din inventarul de corectie pnIdFact = NVL(crsGestCentrInventarTemp.id_fact, 0) IF m.llCorectie lnSucces = goExecutor.oSelect2Value("SELECT MAX(cod) FROM act WHERE an = " + ALLTRIM(STR(m.gnAn)) + " and luna = " + ALLTRIM(STR(m.gnLuna)) + " and id_fact = " + ALLTRIM(STR(m.pnIdFact)), @pnCod) IF lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Return ENDIF ENDIF *!* 21.12.2011 ^ Select crsGestCentrInventarTemp lnValidat = Validat lnTip = tip lcId_gestiuni = Alltrim(id_gestiuni) lcDescriere = Alltrim(descriere) lnOptiuneInventar = optiuneinventar ldDataInventar = data_inventar pdDataRef = data_inventar pdDataInceputInventar = data_inventar pdDataSfarsitInventar = dataorav pnNract = nract pnNnir = nnir pdDataNotaInventar = TTOD(NVL(dataact,{//::})) pcChiosc = ALLTRIM(NVL(descriere,'')) pcTextLunaAn = 'Luna contabila ' + PADL(allt(str(m.gnLuna)),2, '0') + '/' + allt(str(m.gnAn)) + ; ' Inventar ' + transform(m.pdDataInceputInventar)+ ; IIF(!EMPTY(NVL(m.pdDataSfarsitInventar,{})), ' - ' + transform(m.pdDataSfarsitInventar), '') + ; IIF(!EMPTY(m.lcDescriere), ' | ' + m.lcDescriere , '') + ; IIF(!EMPTY(NVL(m.pnNract, 0)), ' | Nr. doc. ' + alltrim(str(pnNract)),'') + ; IIF(!EMPTY(NVL(m.pnNnir,0)), ' | Nr. bon ' + alltrim(str(pnNnir)),'') + ; IIF(!EMPTY(NVL(m.pdDataNotaInventar,{})), ' | Data doc. ' + transform(m.pdDataNotaInventar), '') Use In (Select('crsGestCentrInventarTemp')) pcTextLunaAnNecompletat = 'Luna contabila ' + PADL(allt(str(m.gnLuna)),2, '0') + '/' + allt(str(m.gnAn)) + ; IIF(!EMPTY(m.lcDescriere), ' | ' + m.lcDescriere , '') && fara data inceput inventar si numar/data bon, se poate lista si ulterior, la contabilitate si nu trebuie data generarii inventarului lcNumeCursor = 'crs_inventar' lcSelect = [select * from vgest_inventar] lcSchema = [] lcFiltru= [] && + Iif(glEMama,[ and id_sucursala is null],gcCondSucursala) lcOrder = [denumire] llAfisare = .F. llModParam = .T. lcgroup = [] lcFiltruOriginal = [id_c_inventar = ] + Alltrim(Str(tnIdCInventar)) If Used(lcNumeCursor) Use In &lcNumeCursor Endif Private podecabaza podecabaza = '' gencursor('podecabaza',lcNumeCursor,lcSelect, lcFiltru, lcSchema, lcOrder, llAfisare, lcgroup, llModParam, lcFiltruOriginal) podecabaza.ca_baza1.afisare() gnButon = 2 lcId_gestiuni = Strtran(lcId_gestiuni,[|],[,]) If Right(Alltrim(lcId_gestiuni),1) = [,] lcId_gestiuni = Left(Alltrim(lcId_gestiuni),Len(Alltrim(lcId_gestiuni))-1) Endif If Empty(Nvl(lcId_gestiuni,'')) lcSel = [Select nume_gestiune,id_gestiune from vnom_gestiuni] Else lcSel = [Select nume_gestiune,id_gestiune from vnom_gestiuni where id_gestiune in (]+lcId_gestiuni +[)] Endif lcSchema = [''] lcCursor = [crs_gest] lnSucces = goExecutor.oExecute(lcSel,lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif Select crs_gest lcNume_gest = crs_gest.nume_gestiune lnId_gestiune = crs_gest.id_gestiune If Used('crs_gest') Use In crs_gest ENDIF *!* 19.04.2010 update_cote_TVA() && updateserver.prg -> cursorul cote_tva *!* 19.04.2010 Select crs_inventar lnid_c_inventar=id_c_inventar Scatter Name oinv Blank oInventar = Createobject('inventar_stoc_magazin',tnIdCInventar) oInventar.ocursor = podecabaza oInventar.cnumeCursor = lcNumeCursor oInventar.cFiltruOriginal = lcFiltru oInventar.lValidat = lnValidat = 1 oInventar.lCorectie = m.llCorectie oInventar.cId_gestiuni = lcId_gestiuni oInventar.cNume_gest = lcNume_gest oInventar.nId_gestiune = lnId_gestiune oInventar.cdescriere = lcDescriere oInventar.nOptiuneInventar = lnOptiuneInventar oInventar.dDataInventar = ldDataInventar oInventar.nCod = m.pnCod oInventar.nIdFact = m.pnIdFact If lnValidat = 1 AND !m.llCorectie oInventar.but_nou1.Visible = .F. && adaugare oInventar.but_termin1.Visible = .F. oInventar.but_copiaza1.Visible = .F. && copiere oInventar.but_stergex.Visible = .F. && stergere oInventar.Ct_clb_gestiune.Visible = .F. oInventar.Clb_tx_codbare.Visible = .F. *!* oInventar.Ct_clb_articol.Visible = .F. oInventar._shape3.Visible = .F. Endif oInventar.Show() If gnButon = 1 *!* 21.12.2011 *!* daca rulajele din inventarul de corectie au acelasi cod ca rulajele initiale, nu se pot sterge rulajele daca se sterge nota *!* llNuSuprascrieCod = !m.llCorectie llNuSuprascrieCod = .F. *!* 21.12.2011 ^ lnSucces = oscrie_in_fisiere(0,.F., .T., m.llNuSuprascrieCod) If lnSucces < 0 If Type([_Screen.nId_tipdoc]) = 'N' And !Empty(_Screen.nid_tipdoc) poGeneratorNumere.dezaloca_numar(_Screen.nid_tipdoc) Endif ELSE IF EMPTY(m.pnIdFact) *!* 15.06.2010 pnIdFact = 0 lnSucces = goExecutor.oFunction2Value("pack_contafin.GET_IDFACT()", @pnIdFact) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") Endif ENDIF *!* 21.12.2011 * lcSql = [update ] + gcs + [.gest_inventar set validat = 1, dataora_validat = pack_contafin.GET_DATAORA() where data_referinta = ?pdDataRef and stoc_faptic <> cants+cant-cante] TEXT TO lcSql NOSHOW begin update GEST_CENTR_INVENTAR set validat = 1, id_fact = ?pnIdFact, dataorav = sysdate, id_utilv = ?gnIdUtil where id_c_inventar = ?lnid_c_inventar; update gest_inventar set validat = 1, dataora_validat = sysdate where id_c_inventar = ?lnid_c_inventar AND validat = 0 ; end; ENDTEXT *!* lcSql = [update ] + gcs + [.GEST_CENTR_INVENTAR set validat = 1, id_fact = ?pnIdFact, dataorav = sysdate,id_utilv=?gnIdUtil where id_c_inventar =?lnid_c_inventar] *!* 21.12.2011 ^ *!* 15.06.2010 ^ lnSucces = goExecutor.oExecute(lcSql) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,"Eroare") ENDIF Endif If llCreareGeneratorNumere Release poGeneratorNumere Endif ENDIF *!* modificare 23.10.2012 Use In (Select(lcNumeCursor)) Use In (Select('rul_temp_obinv')) *!* modificare 23.10.2012 ^ *!* 07.09.2009 USE IN (SELECT('actactan')) USE IN (SELECT('rul_temp')) *!* 07.09.2009 ^ *!* 19.04.2010 USE IN (SELECT('cote_tva')) *!* 19.04.2010 ^ Endproc && vizualizeaza_inventar_magazin ********* SFARSIT: vizualizeaza_inventar_magazin *********** *!* 30.10.2008 NIR DEPOZIT Procedure COMPLETEAZA_ARTICOLE_DEP_NIR Parameters tnNract, tdDataact Local lcSelect, lcSql, lcCursor, lnSucces, llContinuare llContinuare = .T. lcSelect = Select() lcSql = [SELECT ND.ID, ND.ID_ARTICOL, ND.CODBARE, ND.DENUMIRE, ND.CANTITATE FROM DEP_NIR_DETALII ND JOIN DEP_NIR N ON ND.ID_NIR = N.ID WHERE N.NUMARACT = ?tnNract AND trunc(N.DATAACT) = ?tdDataact AND NVL(ID_ARTICOL,0) = 0] lcCursor = [crsArticoleNoiTemp] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,'Eroare') Else If Reccount(lcCursor) > 0 loFrmArticoleNir = Createobject("frm_articole_noi") && ointroduceri_depozit.vcx loFrmArticoleNir.lb_titlu_alb_b121.Caption = "FACTURA " + Alltrim(Str(tnNract)) + " / " + Alltrim(Transform(tdDataact)) + " - Articole noi" loFrmArticoleNir.Show(1) llContinuare = gnButon = 1 Endif Endif If llContinuare lcSql = [SELECT COUNT(*) as nr FROM DEP_NIR N WHERE N.NUMARACT = ?tnNract AND trunc(N.DATAACT) = ?tdDataact] lcCursor = [crsArticoleCount] lnSucces = goExecutor.oExecute(lcSql, lcCursor) If lnSucces < 0 amessagebox(goExecutor.cEroare,0+16,'Eroare') Else *!* TEMPORAR - PANA II FAC UN SET DISTINCT ??? If Nvl(crsArticoleCount.nr,0) > 0 oSet.id_selSt = 30 && vnom_articole_dep_nir Endif *!* TEMPORAR ^ Use In (Select(lcCursor)) Endif Endif && llcContinuare Select (lcSelect) Endproc && COMPLETEAZA_ARTICOLE_DEP_NIR *!* 30.10.2008 ^