#Define TIP_TRANZIT 'TRANZIT' #Define TIP_CHEIAJ 'CHEIAJ' #Define TIP_APA 'APA' #Define TIP_CHIRII 'CHIRII' #Define TIP_PILOTAJ 'PILOTAJ' #Define TIP_ALTE 'ALTE' #Define TIP_PENALITATI 'PENALITATI' #Define TIP_DIVERSE 'DIVERSE' #Define NTIP_TRANZIT 0 #Define NTIP_CHEIAJ 1 #Define NTIP_APA 2 #Define NTIP_CHIRII 3 #Define NTIP_PILOTAJ 4 #Define NTIP_ALTE 5 #Define NTIP_PENALITATI 6 #Define NTIP_DIVERSE 9 *!* 08.07.2020 *!* Raport1_Concordanta se verifica diferentele registru documente pe locatii - contabilitate la nivel de document si conturi *!* 24.11.2022 *!* GET_DATE_VENITURI - situatie venituri tranzit. la facturile cu valoare -, scad si indicatorii fizici. *!* 19.08.2024 *!* GET_DATE_VENITURI - situatie venituri cheiaj - corectare UM LBD/LBP ******************************************************************************* *** concordanta facturi comercial-contabilitate zilnic (numar facturi, valoare) ******************************************************************************* Procedure Raport1_Concordanta Local lcAn, lcLuna, lcRaport, lcSqlAct, lcSqlComercial, lcSqlNotInAct, lcSqlNotInComercial Local lcSqlTVAAct, lcSqlTVAComercial, lcSqlVanzariSterse, lcdata, ldDataI, llSucces, lnAn, lnLuna Local lnNrfact2, lnUltimazi, lnZi, lnvalftvaE_tot, lnvalftvaI_tot, lnvalftva_tot Local lnvaltva_tot, lnvalftvacont_tot, lnvaltvacont_tot, loCom Private pdData, pdData1, pdData2, pnTVA, pnTVARJ lnAn = Int(m.gnAn) lnLuna = Int(m.gnLuna) lcAn = Alltrim(Str(m.lnAn)) lcLuna = Padl(m.lnLuna, 2, '0') lcdata = '01/' + lcLuna + '/' + lcAn ldDataI = Date(m.lnAn, m.lnLuna, 1) pdData = m.ldDataI lnUltimazi = Day(Gomonth(ldDataI, 1) - 1) pdData1 = Date(m.gnAn, m.gnLuna, 1) pdData2 = Gomonth(m.pdData1, 1) - 1 lnvalftva_tot = 0 lnvalftvaI_tot = 0 lnvalftvaE_tot = 0 lnvaltva_tot = 0 lnvalftvacont_tot = 0 lnvaltvacont_tot = 0 lcRaport = gcTempPath + [raport_] + Sys(2) + [.txt] lcRaportXls = Forceext(m.lcRaport, 'xls') CREATE CURSOR cFacturiTemp (ddata T NULL, nrfact1 I NULL, nrfact2 I NULL, ; valftvai1 N(20,2) NULL, valftvae1 N(20,2) NULL, ; valftva1 N(20,2) NULL, valftva2 N(20,2) NULL, difvalftva N(20,2) NULL, ; valtva1 N(20,2) NULL, valtva2 N(20,2) NULL, difvaltva N(20,2) NULL, ; nract I NULL, nract1 I NULL, nract2 I NULL, dataact1 D NULL, dataact2 D NULL, ; client C(100) NULL, tip_factura C(100) NULL, ; cont C(4) NULL, acont C(4) NULL, suma1 N(20,2) NULL, suma2 N(20,2) NULL, difcont N(20,2) NULL) * Facturi din Vanzari si din Act TEXT TO lcSqlVanzariAct TEXTMERGE NOSHOW select nvl(v.ddata, a.ddata) as ddata, nvl(v.nract, a.nract) as nract, v.client, v.ddata as dataact1, a.ddata as dataact2, v.nract as nract1, a.nract as nract2, v.valftvai1, v.valftvae1, v.valftva1, a.valftva2, nvl(v.valftva1,0) - nvl(a.valftva2,0) as difvalftva, v.valtva1, a.valtva2, nvl(v.valtva1,0) - nvl(a.valtva2,0) as difvaltva from (Select numar_act as nract, data_act as ddata, p.denumire as client, Sum(total_fara_tva) As valftva1, Sum(total_tva) As valtva1, SUM(case when in_valuta = 0 then total_fara_tva else 0 end) As valftvai1, Sum(case when in_valuta = 1 then total_fara_tva else 0 end) As valftvae1 FROM vanzari vz join nom_parteneri p on vz.id_part = p.id_part WHERE vz.data_act between ?pdData1 and ?pdData2 and vz.sters = 0 GROUP by vz.numar_act, vz.data_act, p.denumire) v full join (select nract, ddata, sum(baza) as valftva2, sum(tva) as valtva2 from (Select dataact as ddata, nract, sum(decode(scc, '4427', 0, suma)) as baza, sum(decode(scc, '4427', suma, 0)) as tva FROM act WHERE an = ?gnAn and luna = ?gnLuna and sters = 0 and id_set = 50200 and to_char(nract) || '/' || to_char(dataact, 'yyyymmdd') In (Select to_char(numar_act) || '/' || to_char(data_act, 'yyyymmdd') FROM vanzari WHERE data_act between ?pdData1 and ?pdData2 and sters = 0) group by dataact, nract) group by nract, ddata) a on v.ddata = a.ddata and v.nract = a.nract order by 1,2 ENDTEXT * Selectie din Vanzari si Act pe zile Wait Window 'Selectie facturi si valori...' Nowait llSucces = goExecutor.oExecuta(m.lcSqlVanzariAct, 'cFacturiTemp2') * Centralizez valorile pe zile Select ddata, ; SUM(Iif(!Empty(Nvl(nract1, 0)), 1, 0)) As nrfact1, ; SUM(Iif(!Empty(Nvl(nract2, 0)), 1, 0)) As nrfact2, ; SUM(valftvai1) As valftvai1, ; SUM(valftvae1) As valftvae1, ; SUM(valftva1) As valftva1, ; SUM(valftva2) As valftva2, ; SUM(difvalftva) As difvalftva, ; SUM(valtva1) As valtva1, ; SUM(valtva2) As valtva2, ; SUM(difvaltva) As difvaltva, ; CAST(Null As N(20)) As nract, ; CAST(Null As N(20)) As nract1, ; CAST(Null As N(20)) As nract2, ; CAST(Null As D) As dataact1, ; CAST(Null As D) As dataact2, ; CAST(Null As C(100)) As client, ; CAST(Null As C(100)) As tip_factura ; from cFacturiTemp2 ; group By 1 ; order By 1 ; into Cursor cFacturiTemp3 SELECT cFacturiTemp APPEND FROM DBF('cFacturiTemp3') USE IN (SELECT('cFacturiTemp3')) * Selectez facturile cu diferente comercial-contabilitate Select C.*, 'Diferente Comercial - Contabilitate' As tip_factura ; FROM cFacturiTemp2 C ; WHERE Nvl(valftva1, 0) <> Nvl(valftva2, 0) Or Nvl(valftva2, 0) <> Nvl(valftva2, 0) ; ORDER By ddata, nract ; INTO Cursor cFacturiDifTemp Select cFacturiTemp Append From Dbf('cFacturiDifTemp') Use In (Select('cFacturiDifTemp')) Use In (Select('cFacturiTemp2')) *** Facturi sterse din Vanzari, care nu sunt refacute cu acelasi numar si data TEXT TO lcSqlVanzariSterse TEXTMERGE NOSHOW Select distinct v.numar_act as nract, 'Sterse' as tip_factura FROM vanzari v WHERE v.data_act between ?pdData1 and ?pdData2 And v.sters = 1 and v.numar_act Not In (Select numar_act FROM vanzari WHERE data_act between ?pdData1 and ?pdData2 And sters = 0) order by v.numar_act ENDTEXT Wait Window 'Selectie facturi sterse din comercial...' Nowait llSucces = goExecutor.oExecuta(m.lcSqlVanzariSterse, 'cFacturiSterseTemp') Select cFacturiTemp Append From Dbf('cFacturiSterseTemp') Use In (Select('cFacturiSterseTemp')) *** facturi cu diferente pe conturi din Regdoc fata de contabilitate TEXT TO lcSqlRegdocAct TEXTMERGE NOSHOW select nvl(a1.dataact, a2.dataact) as ddata, nvl(a1.nract, a2.nract) as nract, nvl(a1.denumire, p2.denumire) as client, NVL(a1.cont, a2.cont) as cont, NVL(a1.acont, a2.acont) as acont, a1.suma as suma1, a2.suma as suma2, nvl(a2.suma, 0) - nvl(a1.suma, 0) as difcont, 'Diferente Reg. Documente - Contabilitate' as tip_factura from (select a11.id_fact, a11.nract, a11.dataact, p.denumire, decode(e1.exceptie, 1, a11.scd, a11.scc) as cont, decode(e1.exceptie, 1, a11.ascd, a11.ascc) as acont, sum(decode(e1.exceptie, 1, -a11.suma, a11.suma)) as suma from (select v.id_fact, v.id_part, v.numar_act as nract, v.data_act as dataact, trim(decode(r.tip, 6, pl.ctpideb, pl.ctdebitor)) as scd, trim(decode(r.tip, 6, pl.ctapideb, decode(v.in_valuta, 1, pl.ctaedeb, pl.ctaideb))) as ascd, trim(decode(r.tip, 6, pl.ctpicred, pl.ctcreditor)) as scc, trim(decode(r.tip, 6, pl.ctapicred, decode(v.in_valuta, 1, pl.ctaecred, pl.ctaicred))) as ascc, r.valftva as suma from ips_regdoc r join vanzari v on r.id_vanzare = v.id_vanzare left join ips_prestatii_locatii pl on r.id_articol = pl.id_articol and r.id_locatia = pl.id_locatia where extract(year from v.data_act) = ?gnAn and extract(month from v.data_act) = ?gnLuna and v.sters = 0) a11 LEFT JOIN (SELECT DISTINCT 1 AS EXCEPTIE, DECODE(DEBIT, 1, CONT_C, CONT) AS SCD, DECODE(DEBIT, 1, CONT, CONT_C) AS SCC FROM EXCEPTII_IREG WHERE INVERS = 1) e1 ON trim(a11.scd) = trim(e1.scd) AND trim(a11.scc) = trim(e1.scc) left join nom_parteneri p on a11.id_part = p.id_part group by a11.id_fact, a11.nract, a11.dataact, p.denumire, decode(e1.exceptie, 1, a11.scd, a11.scc), decode(e1.exceptie, 1, a11.ascd, a11.ascc)) a1 full join (select a.id_fact, a.nract, a.dataact, decode(e.exceptie, 1, a.id_partc, a.id_partd) as id_part, decode(e.exceptie, 1, a.scd, a.scc) as cont, decode(e.exceptie, 1, a.ascd, a.ascc) as acont, sum(decode(e.exceptie, 1, -a.suma, a.suma)) as suma from act a LEFT JOIN (SELECT DISTINCT 1 AS EXCEPTIE, DECODE(DEBIT, 1, CONT_C, CONT) AS SCD, DECODE(DEBIT, 1, CONT, CONT_C) AS SCC FROM EXCEPTII_IREG WHERE INVERS = 1) E ON trim(A.SCD) = trim(E.SCD) AND trim(A.SCC) = trim(E.SCC) where a.an = ?gnAn and a.luna = ?gnLuna and a.sters = 0 and a.id_Set = 50200 AND a.scc not in ('4427', '4428') group by a.id_fact, a.nract, a.dataact, decode(e.exceptie, 1, a.id_partc, a.id_partd), decode(e.exceptie, 1, a.scd, a.scc), decode(e.exceptie, 1, a.ascd, a.ascc)) a2 on (a1.id_fact = a2.id_fact and a1.nract = a2.nract and a1.dataact = a2.dataact and trim(a1.cont) = trim(a2.cont) and trim(nvl(a1.acont, 'x')) = trim(nvl(a2.acont, 'x'))) left join nom_parteneri p2 on a2.id_part = p2.id_part where abs(nvl(a1.suma, 0) - nvl(a2.suma, 0)) > 0.05 order by 1, 2 ENDTEXT * Selectie din Regdoc si Act pe zile si conturi Wait Window 'Selectie Reg. Documente si valori...' Nowait llSucces = goExecutor.oExecuta(m.lcSqlRegdocAct, 'cFacturiTemp4') Select cFacturiTemp Append From Dbf('cFacturiTemp4') USE IN (SELECT('cFacturiTemp4')) *********************************** Set Textmerge On To (lcRaport) Noshow Select cFacturiTemp Scan For Isnull(tip_factura) pdData = Ttod(ddata) lnvalftva_tot = lnvalftva_tot + valftva1 lnvalftvaI_tot = lnvalftvaI_tot + valftvai1 lnvalftvaE_tot = lnvalftvaE_tot + valftvae1 lnvaltva_tot = lnvaltva_tot + valtva1 lnvalftvacont_tot = lnvalftvacont_tot + valftva2 lnvaltvacont_tot = lnvaltvacont_tot + valtva2 \zi: <> <> \Nr. fact. comercial : <> \Nr. fact. contabilitate : <> \Val. fara TVA comercial INTERN : <> \Val. fara TVA comercial EXTERN : <> \Val. fara TVA comercial TOTAL : <> \Val. fara TVA contabilitate TOTAL : <> <> \Val. TVA comercial : <> \Val. TVA contabilitate : <> <> \------------------------------------------------------------------------- Endscan \ \ \TOTAL PERIOADA \Val. fara TVA comercial INTERN : <> \Val. fara TVA comercial EXTERN : <> \Val. fara TVA comercial TOTAL : <> \Val. fara TVA contabilitate TOTAL : <> <> \Val. TVA comercial : <> \Val. TVA contabilitate : <> <> \------------------------------------------------------------------------- * Facturile cu diferente din Vanzari care nu sunt in Registrul Jurnal Wait Window 'Facturi cu diferente Comercial - Contabilitate...' Nowait \ \Facturi cu diferente in comercial fata de contabilitate in perioada <> - <> Sele cFacturiTemp Scan For Alltrim(tip_factura) = 'Diferente Comercial - Contabilitate' \Nr. fact. <> Data fact. <> Client <> \Val. fara TVA comercial : <> \Val. fara TVA contabilitate : <> <> \Val. TVA comercial : <> \Val. TVA contabilitate : <> <> Endscan * Facturi sterse \ \ \Numere de facturi sterse in comercial si nereutilizate in perioada <> - <> Sele cFacturiTemp Scan For Alltrim(tip_factura) = 'Sterse' \Nr. fact. <> Endscan * Facturile cu diferente Reg. documente pe locatii fata de Contabilitate pe conturi Wait Window 'Facturi cu diferente Reg. Documente pe locatii - Contabilitate...' Nowait \ \Facturi cu diferente Reg. Documente pe locatii fata de contabilitate in perioada <> - <> Sele cFacturiTemp Scan For Alltrim(tip_factura) = 'Diferente Reg. Documente - Contabilitate' \Nr. fact: <> Data fact: <> Client: <> \\ Cont: <> ; Contabilitate: <> \\ - Reg. Doc: <> \\ = Diferenta: <> Endscan Set Textmerge To Select Ttod(ddata) As Data, ; nrfact1 As nr_facturi_com, ; nrfact2 As nr_facturi_cont, ; valftvai1 As valoare_fara_tva_int_com, ; valftvae1 As valoare_fara_tva_ext_com, ; valftva1 As valoare_fara_tva_com, ; valftva2 As valoare_fara_tva_cont, ; difvalftva As diferenta_valoare_fara_tva, ; valtva1 As valoare_tva_com, ; valtva2 As valoare_tva_cont, ; difvaltva As diferenta_valoare_tva, ; PADR(ALLTRIM(NVL(cont, '')) + IIF(!EMPTY(NVL(acont,'')), '.' + ALLTRIM(acont), ''), 10, ' ') as cont, ; suma1 as regdoc_suma, ; suma2 as conta_suma, ; difcont as diferenta_regdoc_conta, ; nract, Ttod(ddata) As dataact, client, tip_factura ; FROM cFacturiTemp ; INTO Cursor cFacturiXLS Select cFacturiXLS Copy To (lcRaportXls) Type Xl5 Use In (Select('cFacturiTemp')) Use In (Select('cFacturiXLS')) open_default_app(m.lcRaport) open_default_app(m.lcRaportXls) *!* lcRun = [run /N notepad.exe "] + lcRaport + ["] *!* &lcRun Endproc && --SFARSIT: Raport1_Concordanta -- ********************************* *** Lanseaza formularul frm_situatie_venituri ********************************* Procedure situatii_venituri loSituatieVenituri = Createobject("frm_situatii_venituri") loSituatieVenituri.Show(1) Endproc && situatii_venituri Procedure GET_DATE_VENITURI Parameters toDate, tcTabel, tcColoane * tcTabel OUT: numele cursorului rezultat * tcColoane OUT: lista coloane din cursorul rezultat, separate prin | * tnTip: 0 = TRANZIT, 1 = CHEIAJ, 2 = ALTE (NU SE MAI FOLOSESTE), 3 = CHIRII, 4 = PILOTAJ (NU SE MAI FOLOSESTE), 5 = APA, 6 = PENALITATI, 9 = DIVERSE * toDate.nNrRaport: numarul situatiei de venituri * toDate.dData1, toDate.dData2: perioada pentru raport * toDate.nIdClient, toDate.nIdCtrClient (OPTIONAL): id contract client, daca se doreste raportul pentru un singur contract Local lcPrestatia, lcSql, lcValfTVA, ldData1, llSucces, lnNrRaport, lnTip, lnTotalCumulat, lnvaloare *:Global B, I, LCFIELD, LPRESTATIA, NVENITURI, OClient, OTOTAL, T, X, pdData1, pdData2, pnIdClient *:Global pnIdCtrClient, taHeader[1] lnTip = toDate.nTip lnNrRaport = toDate.nNrRaport pdData1 = toDate.dData1 pdData2 = toDate.dData2 pnIdClient = Nvl(toDate.nIdClient, 0) pnIdCtrClient = Nvl(toDate.nIdCtrClient, 0) Do Case Case m.lnTip = NTIP_TRANZIT And m.lnNrRaport = 3 && TRANZIT: CLIENT,INT/EXT, CAP., TRN, CP, LBP TEXT TO lcSql TEXTMERGE NOSHOW SELECT p1.denumire As client, c.numar as contract, p2.denumire as beneficiar, decode(v.in_valuta, 1, 0, 1) as intern, vmv.um as ct, ROUND(sum(SIGN(vmv.valftva)*vmv.quantity),0) as cargo, ROUND(sum(case when vmv.um = 'TON' then SIGN(vmv.valftva)*vmv.tcap else 0 end),0) as tcap, ROUND(sum(case when vmv.um = 'TRN' then SIGN(vmv.valftva)*vmv.trn else 0 end),0) as trn, ROUND(sum(case when vmv.um = 'LBD' then SIGN(vmv.valftva)*vmv.lbd else 0 end),0) as lbd, ROUND(sum(case when vmv.um = 'HP' then SIGN(vmv.valftva)*vmv.hp else 0 end),0) as hp, ROUND(sum(vmv.valval),0) as valval, ROUND(sum(vmv.valftva),0) as valftva From vanzari v join ips_voyages_vanzari vv on v.id_vanzare = vv.vz_id join ips_voyage_members_vanzari vmv on vv.id = vmv.vv_id join nom_parteneri p1 on v.id_part = p1.id_part left join nom_parteneri p2 on v.id_beneficiar = p2.id_part left join contracte c on v.id_ctr = c.id_ctr Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, c.numar, p2.denumire, v.in_valuta, vmv.um Order By 1, 2, 3, 4, 5 ENDTEXT tcTabel = "cRaportTranzit" tcColoane = [Client|Client ctr.|Beneficiar|Intern|UM|Cargo|CAP|TRN|LBD|HP|Valoare valuta|Valoare lei] llSucces = goExecutor.oExecuta(m.lcSql, m.tcTabel) Case m.lnTip = NTIP_CHEIAJ And m.lnNrRaport = 5 && CHEIAJ: 3 = Clienti - venituri pe locatii (lei) TEXT TO lcSql TEXTMERGE NOSHOW SELECT p1.denumire As client, v.id_part as client_id, Round(Sum(CASE WHEN r.id_locatia = 5 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P1, Round(Sum(CASE WHEN r.id_locatia = 5 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P2, Round(Sum(CASE WHEN r.id_locatia = 1 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P3, Round(Sum(CASE WHEN r.id_locatia = 1 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P4, Round(Sum(CASE WHEN r.id_locatia = 4 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P5, Round(Sum(CASE WHEN r.id_locatia = 4 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P6, Round(Sum(CASE WHEN r.id_locatia = 2 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P7, Round(Sum(CASE WHEN r.id_locatia = 2 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P8, Round(Sum(CASE WHEN r.id_locatia = 3 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P9, Round(Sum(CASE WHEN r.id_locatia = 3 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P10, Round(Sum(CASE WHEN r.id_locatia = 6 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P11, Round(Sum(CASE WHEN r.id_locatia = 6 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P12, Round(Sum(CASE WHEN r.id_locatia = 7 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P13, Round(Sum(CASE WHEN r.id_locatia = 7 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P14, Round(Sum(CASE WHEN r.id_locatia = 23 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P15, Round(Sum(CASE WHEN r.id_locatia = 23 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P16, Round(Sum(CASE WHEN r.id_locatia = 26 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P17, Round(Sum(CASE WHEN r.id_locatia = 26 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P18, Round(Sum(r.valftva), 0) As TOTAL, CAST(0 as NUMBER(20)) AS TOTALCUMUL, 0 AS TIP From ips_regdoc r Join vanzari v on r.id_vanzare = v.id_vanzare join nom_parteneri p1 on v.id_part = p1.id_part Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, v.id_part ENDTEXT llSucces = goExecutor.oExecuta(m.lcSql, "xTabx") If m.llSucces *!* TOTAL CUMULAT DE LA INCEPUTUL ANULUI ldData1 = m.pdData1 pdData1 = Date(Year(m.ldData1), 1, 1) llSucces = goExecutor.oExecuta(m.lcSql, "xTabCumulat") pdData1 = m.ldData1 Endif IF m.llSucces * Totaluri cumulat de la inceputul anului pe linii (clienti) Sele xTabCumulat Scan Scatter Name loClient With loClient Select xTabx Locate For client_id = .client_id If !Found() Insert Into xTabx (client, client_id, totalcumul) Values (.client, .client_id, .total) Else Replace totalcumul With .total Endif Endwith Sele xTabCumulat ENDSCAN * Totaluri perioada pe coloane (locatii) SELECT "TOTAL" as client, 0 as client_id, 1 as tip, 0 as totalcumul, SUM(total) as total, ; SUM(p1) as p1,SUM(p2) as p2,SUM(p3) as p3,SUM(p4) as p4,SUM(p5) as p5,SUM(p6) as p6, ; SUM(p7) as p7,SUM(p8) as p8,SUM(p9) as p9,SUM(p10) as p10,SUM(p11) as p11,SUM(p12) as p12, ; SUM(p13) as p13,SUM(p14) as p14,SUM(p15) as p15,SUM(p16) as p16,SUM(p17) as p17,SUM(p18) as p18 ; from xTabx ; into cursor cTabPerioada SELECT cTabPerioada SCATTER NAME loTabPerioada INSERT INTO xTabx FROM NAME loTabPerioada USE IN (SELECT('cTabPerioada')) * Totaluri cumulat de la inceputul anului pe coloane (locatii) SELECT "TOTAL CUMULAT" as client, 0 as client_id, 2 as tip, SUM(total) as totalcumul, 0 as total, ; SUM(p1) as p1,SUM(p2) as p2,SUM(p3) as p3,SUM(p4) as p4,SUM(p5) as p5,SUM(p6) as p6, ; SUM(p7) as p7,SUM(p8) as p8,SUM(p9) as p9,SUM(p10) as p10,SUM(p11) as p11,SUM(p12) as p12, ; SUM(p13) as p13,SUM(p14) as p14,SUM(p15) as p15,SUM(p16) as p16,SUM(p17) as p17,SUM(p18) as p18 ; from xTabCumulat ; into cursor cTabCumulat SELECT cTabCumulat SCATTER NAME loTabCumulat INSERT INTO xTabx FROM NAME loTabCumulat USE IN (SELECT('cTabCumulat')) ENDIF && llSuccess SELECT * FROM xTabx ORDER BY tip, client INTO CURSOR xTaby USE IN (SELECT('xTabx')) tcTabel = "XTABY" tcColoane = [Client|Client Id|Agigea extern|Agigea intern|Basarabi extern|Basarabi intern|Luminita extern|Luminita intern|Medgidia extern|Medgidia intern|Ovidiu extern|Ovidiu intern|] + ; [Cernavoda extern|Cernavoda intern|Navodari extern|Navodari intern|Front asteptare extern|Front asteptare intern|Senal extern|Senal intern|] + ; [Total perioada|Total cumulat de la inceputul anului|Tip] Case m.lnTip = NTIP_TRANZIT And m.lnNrRaport = 13 && TRANZIT: CLIENT, TCAP TRANSE PLIN, TCAP TRANSE GOL, TCAP TOTAL, TON MARFA TEXT TO lcSql TEXTMERGE NOSHOW SELECT client, contract, beneficiar, SUM(cargo) as cantitate_marfa, SUM(CASE WHEN cargo <> 0 AND tcap < 2500 THEN tcap ELSE 0 END) as tcap_plin_0_2499, SUM(CASE WHEN cargo <> 0 AND tcap between 2500 and 5999 THEN tcap ELSE 0 END) as tcap_plin_2500_5999, SUM(CASE WHEN cargo <> 0 AND tcap between 6000 and 8999 THEN tcap ELSE 0 END) as tcap_plin_6000_8999, SUM(CASE WHEN cargo <> 0 AND tcap between 9000 and 11999 THEN tcap ELSE 0 END) as tcap_plin_9000_11999, SUM(CASE WHEN cargo <> 0 AND tcap >= 12000 THEN tcap ELSE 0 END) as tcap_plin_12000_99000, SUM(CASE WHEN cargo = 0 AND tcap < 2500 THEN tcap ELSE 0 END) as tcap_plin_0_2499, SUM(CASE WHEN cargo = 0 AND tcap between 2500 and 5999 THEN tcap ELSE 0 END) as tcap_plin_2500_5999, SUM(CASE WHEN cargo = 0 AND tcap between 6000 and 8999 THEN tcap ELSE 0 END) as tcap_plin_6000_8999, SUM(CASE WHEN cargo = 0 AND tcap between 9000 and 11999 THEN tcap ELSE 0 END) as tcap_plin_9000_11999, SUM(CASE WHEN cargo = 0 AND tcap >= 12000 THEN tcap ELSE 0 END) as tcap_plin_12000_99000, SUM(tcap) as total_tone_capacitate FROM (SELECT p1.denumire As client, c.numar as contract, p2.denumire as beneficiar, vmv.vye_id, ROUND(sum(vmv.quantity),2) as cargo, ROUND(sum(case when vmv.um = 'TON' then vmv.tcap else 0 end),2) as tcap From vanzari v join ips_voyages_vanzari vv on v.id_vanzare = vv.vz_id join ips_voyage_members_vanzari vmv on vv.id = vmv.vv_id join nom_parteneri p1 on v.id_part = p1.id_part left join nom_parteneri p2 on v.id_beneficiar = p2.id_part left join contracte c on v.id_ctr = c.id_ctr Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, c.numar, p2.denumire, vmv.vye_id) WHERE tcap <> 0 GROUP BY client, contract, beneficiar Order By client, contract, beneficiar ENDTEXT tcTabel = "cRaportTranzit" tcColoane = [Client|Client ctr.|Beneficiar|Cantitate marfa|Plin 0-2499|Plin 2500-5999|Plin 6000-8999|Plin 9000-11999|Plin 12000-99000|Gol 0-2499|Gol 2500-5999|Gol 6000-8999|Gol 9000-11999|Gol 12000-99000|Total tone capacitate] llSucces = goExecutor.oExecuta(m.lcSql, m.tcTabel) Case m.lnTip = NTIP_CHEIAJ And m.lnNrRaport = 5 && CHEIAJ: 3 = Clienti - venituri pe locatii (lei) TEXT TO lcSql TEXTMERGE NOSHOW SELECT p1.denumire As client, v.id_part as client_id, Round(Sum(CASE WHEN r.id_locatia = 5 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P1, Round(Sum(CASE WHEN r.id_locatia = 5 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P2, Round(Sum(CASE WHEN r.id_locatia = 1 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P3, Round(Sum(CASE WHEN r.id_locatia = 1 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P4, Round(Sum(CASE WHEN r.id_locatia = 4 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P5, Round(Sum(CASE WHEN r.id_locatia = 4 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P6, Round(Sum(CASE WHEN r.id_locatia = 2 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P7, Round(Sum(CASE WHEN r.id_locatia = 2 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P8, Round(Sum(CASE WHEN r.id_locatia = 3 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P9, Round(Sum(CASE WHEN r.id_locatia = 3 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P10, Round(Sum(CASE WHEN r.id_locatia = 6 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P11, Round(Sum(CASE WHEN r.id_locatia = 6 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P12, Round(Sum(CASE WHEN r.id_locatia = 7 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P13, Round(Sum(CASE WHEN r.id_locatia = 7 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P14, Round(Sum(CASE WHEN r.id_locatia = 23 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P15, Round(Sum(CASE WHEN r.id_locatia = 23 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P16, Round(Sum(CASE WHEN r.id_locatia = 26 and v.in_valuta = 1 THEN r.valftva ELSE 0 END), 0) As P17, Round(Sum(CASE WHEN r.id_locatia = 26 and v.in_valuta = 0 THEN r.valftva ELSE 0 END), 0) As P18, Round(Sum(r.valftva), 0) As TOTAL, CAST(0 as NUMBER(20)) AS TOTALCUMUL, 0 AS TIP From ips_regdoc r Join vanzari v on r.id_vanzare = v.id_vanzare join nom_parteneri p1 on v.id_part = p1.id_part Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, v.id_part ENDTEXT llSucces = goExecutor.oExecuta(m.lcSql, "xTabx") If m.llSucces *!* TOTAL CUMULAT DE LA INCEPUTUL ANULUI ldData1 = m.pdData1 pdData1 = Date(Year(m.ldData1), 1, 1) llSucces = goExecutor.oExecuta(m.lcSql, "xTabCumulat") pdData1 = m.ldData1 Endif IF m.llSucces * Totaluri cumulat de la inceputul anului pe linii (clienti) Sele xTabCumulat Scan Scatter Name loClient With loClient Select xTabx Locate For client_id = .client_id If !Found() Insert Into xTabx (client, client_id, totalcumul) Values (.client, .client_id, .total) Else Replace totalcumul With .total Endif Endwith Sele xTabCumulat ENDSCAN * Totaluri perioada pe coloane (locatii) SELECT "TOTAL" as client, 0 as client_id, 1 as tip, 0 as totalcumul, SUM(total) as total, ; SUM(p1) as p1,SUM(p2) as p2,SUM(p3) as p3,SUM(p4) as p4,SUM(p5) as p5,SUM(p6) as p6, ; SUM(p7) as p7,SUM(p8) as p8,SUM(p9) as p9,SUM(p10) as p10,SUM(p11) as p11,SUM(p12) as p12, ; SUM(p13) as p13,SUM(p14) as p14,SUM(p15) as p15,SUM(p16) as p16,SUM(p17) as p17,SUM(p18) as p18 ; from xTabx ; into cursor cTabPerioada SELECT cTabPerioada SCATTER NAME loTabPerioada INSERT INTO xTabx FROM NAME loTabPerioada USE IN (SELECT('cTabPerioada')) * Totaluri cumulat de la inceputul anului pe coloane (locatii) SELECT "TOTAL CUMULAT" as client, 0 as client_id, 2 as tip, SUM(total) as totalcumul, 0 as total, ; SUM(p1) as p1,SUM(p2) as p2,SUM(p3) as p3,SUM(p4) as p4,SUM(p5) as p5,SUM(p6) as p6, ; SUM(p7) as p7,SUM(p8) as p8,SUM(p9) as p9,SUM(p10) as p10,SUM(p11) as p11,SUM(p12) as p12, ; SUM(p13) as p13,SUM(p14) as p14,SUM(p15) as p15,SUM(p16) as p16,SUM(p17) as p17,SUM(p18) as p18 ; from xTabCumulat ; into cursor cTabCumulat SELECT cTabCumulat SCATTER NAME loTabCumulat INSERT INTO xTabx FROM NAME loTabCumulat USE IN (SELECT('cTabCumulat')) ENDIF && llSuccess SELECT * FROM xTabx ORDER BY tip, client INTO CURSOR xTaby USE IN (SELECT('xTabx')) tcTabel = "XTABY" tcColoane = [Client|Client Id|Agigea extern|Agigea intern|Basarabi extern|Basarabi intern|Luminita extern|Luminita intern|Medgidia extern|Medgidia intern|Ovidiu extern|Ovidiu intern|] + ; [Cernavoda extern|Cernavoda intern|Navodari extern|Navodari intern|Front asteptare extern|Front asteptare intern|Senal extern|Senal intern|] + ; [Total perioada|Total cumulat de la inceputul anului|Tip] Case m.lnTip = NTIP_CHEIAJ And m.lnNrRaport = 4 && CHEIAJ: CLIENT,PORT, CAP., TRN, CP, LBP TEXT TO lcSql TEXTMERGE NOSHOW SELECT p1.denumire As client, MAX(TRIM(c.numar)) as contract, p2.denumire as beneficiar, l.denumire As port, Round(Sum(CASE WHEN bd.um like '%TC%' then bv.CAP else 0 end), 0) As CAP, Round(Sum(CASE WHEN bd.um like '%TRN%' then bv.TRN else 0 end), 0) As TRN, Round(Sum(CASE WHEN bd.um like '%ML%' then bv.LUNG else 0 end), 0) As LUNG, Round(Sum(CASE WHEN bd.um like '%CP%' then bv.HP else 0 end), 0) As CP, Round(Sum(CASE WHEN bd.um like '%LBD%' or bd.um like '%LBP%' then bv.LBD else 0 end), 0) As LBD, Round(Sum(CASE WHEN TRIM(bd.um) = 'ZI' then 1 else 0 end), 0) As ZI, Round(Sum(CASE WHEN bd.um like '%TC%' then bd.valftva else 0 end), 0) As cap_val, Round(Sum(CASE WHEN bd.um like '%TRN%' then bd.valftva else 0 end), 0) As trn_val, Round(Sum(CASE WHEN bd.um like '%ML%' then bd.valftva else 0 end), 0) As lung_val, Round(Sum(CASE WHEN bd.um like '%CP%' then bd.valftva else 0 end), 0) As cp_val, Round(Sum(CASE WHEN bd.um like '%LBD%' or bd.um like '%LBP%' then bd.valftva else 0 end), 0) As lbd_val, Round(Sum(CASE WHEN TRIM(bd.um) = 'ZI' then bd.valftva else 0 end), 0) As zi_val From vanzari v join ips_voyages_vanzari vv on v.id_vanzare = vv.vz_id join ips_berthings_vanzari bv on vv.id = bv.vv_id join ips_berthing_details_vanzari bd on bv.id = bd.bv_id join nom_parteneri p1 on v.id_part = p1.id_part left join nom_parteneri p2 on v.id_beneficiar = p2.id_part left join contracte c on v.id_ctr = c.id_ctr left join nom_locatii l on bv.id_locatia = l.id Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, p2.denumire, l.denumire Order By 1, 2, 3, 4 ENDTEXT tcTabel = "cRaportCheiaj" tcColoane = [Client|Client ctr.|Beneficiar|Port|CAP|TRN|LUNG|CP|LBD|ZI|Valoare CAP|Valoare TRN|Valoare LUNG|Valoare CP|Valoare LBD|Valoare ZI] llSucces = goExecutor.oExecuta(m.lcSql, m.tcTabel) Case Inlist(m.lnTip, NTIP_APA, NTIP_CHIRII, NTIP_ALTE, NTIP_DIVERSE) And m.lnNrRaport = 1 && valori facturate pe client/prestatii (clienti pe randuri, prestatii pe coloane) TEXT TO lcSql TEXTMERGE NOSHOW Select p1.denumire As client, c.numar as contract, 'P' || TO_CHAR(r.id_articol) As id_articol, a.denumire As prestatia, ROUND(Sum(r.valftva),0) As valtot_lei, Round(SUM(decode(v.in_valuta,1, r.valval, 0)), 0) As val_val From ips_regdoc r Join vanzari v On r.id_vanzare = v.id_vanzare join nom_parteneri p1 on v.id_part = p1.id_part left join nom_parteneri p2 on v.id_beneficiar = p2.id_part left join contracte c on v.id_ctr = c.id_ctr Join nom_articole a On r.id_articol = a.id_articol Where v.data_act between ?pdData1 and ?pdData2 and v.tip_factura = <> <> <> Group By p1.denumire, c.numar, 'P' || TO_CHAR(r.id_articol), a.denumire Order By 2, 3, 4 ENDTEXT llSucces = goExecutor.oExecuta(m.lcSql, "cRaportVenituri1") If m.llSucces *!* TOTAL CUMULAT DE LA INCEPUTUL ANULUI ldData1 = m.pdData1 pdData1 = Date(Year(m.ldData1), 1, 1) llSucces = goExecutor.oExecuta(m.lcSql, "cRaportVenituri2") pdData1 = m.ldData1 Endif If m.llSucces Select client, contract, Sum(valtot_lei) As valoare ; From cRaportVenituri2 ; Group By client, contract ; Into Cursor totclient Select id_articol, prestatia, Sum(valtot_lei) As valoare ; From cRaportVenituri2 ; Group By id_articol, prestatia ; Into Cursor totprestatie *!* lc_outfile, lu_struct, ll_closein, ll_therm, ln_rowfld, ; *!* ln_colhead, ln_cellfld, ll_xtotal, ln_extfld1, ln_extfld2, ; *!* ln_extfld3, ln_extfld4, ll_cnt, ll_avg, ll_min, ll_max, ; *!* la_uniqcol, ln_rowcol, ln_colsort, ln_rowsort Sele cRaportVenituri1 X = MATXTAB("XTABX", 2, .F., .F., 1, 3, 5, .T., 2) Use In (Select('cRaportVenituri1')) Use In (Select('cRaportVenituri2')) Endif && llSuccess If Used('XTABX') *!* MARESC TOATE COLOANELE DE TIP NUMERIC LA N(16,2) ALTER_TABLE_INCREASE_NUM('XTABX', 'N(16,2)') Sele TOTPRESTATIE Scan lcField = Allt(TOTPRESTATIE.id_articol) Select xtabx If TYPE('xtabx.' + m.lcField) = 'U' Alter Table xtabx Add Column &lcField N(16, 2) Replace All &lcField With 0 Endif Sele TOTPRESTATIE Endscan *!* TOTAL CUMULAT PE CLIENTI Select xtabx Alter Table xtabx Add Column totalcumul N(20, 2) Add Column tip N(1) Sele totclient Scan Scatter Name OClient With OClient Select xtabx Locate For Alltrim(client) = Alltrim(OClient.client) AND ALLTRIM(contract) = ALLTRIM(oclient.contract) If !Found() Insert Into xtabx (client, contract, totalcumul) Values (.client, .contract, .valoare) Else Replace totalcumul With .valoare Endif Endwith Sele totclient Endscan *!* TOTAL PRESTATII DIN PERIOADA DATA Sele xtabx Scat Name OTOTAL Blank For I = 3 To Fcount() T = Field(I) Calc Sum(&T)To OTOTAL.&T Endfor Appe Blank Gath Name OTOTAL Repl client With "TOTAL", totalcumul With 0, tip With 1 *!* TOTAL CUMULAT DE LA INCEPUTUL ANULUI PE PRESTATII Select xtabx Append Blank Replace client With "TOTAL CUMULAT", tip With 2 Select totprestatie lnTotalCumulat = 0 Scan lnvaloare = valoare lnTotalCumulat = lnTotalCumulat + lnvaloare lcField = 'xtabx.' + Alltrim(id_articol) Replace &lcField With m.lnValoare In xtabx Endscan Replace totalcumul With lnTotalCumulat In xtabx tcColoane = '' Sele xtabx For I = 1 To Fcount() LCFIELD = Uppe(Allt(Field(I))) LPRESTATIA = LCFIELD Sele TOTPRESTATIE Loca For id_articol = LPRESTATIA If Found() LPRESTATIA = Alltrim(prestatia) Else If LCFIELD = 'XTOT' LPRESTATIA = 'TOTAL PERIOADA' Endif If LCFIELD = 'TOTALCUMUL' LPRESTATIA = 'TOTAL CUMULAT DE LA INCEPUTUL ANULUI' Endif Endif tcColoane = tcColoane + Iif(I > 1, '|', '') + Alltrim(m.LPRESTATIA) Sele xtabx Endfor tcTabel = "XTABY" Select * From xtabx Order By tip, client Into Cursor XTABY Use In (Select('XTABX')) Use In (Select('TVENITURI')) Use In (Select('TOTPRESTATIE')) Use In (SELECT('totclient')) Endif Otherwise AMESSAGEBOX("Nu este inca implementat.", 0 + 64, _Screen.Caption) Endcase * RETURN taHeader Endproc && GET_DATE_VENITURI Procedure DECO_LIST_VENITURI Parameters tnTip, tnNrRaport, TEXCEL, TTITLU && tip prestatie, nr. situatie,daca e in excel, data1, data2, titlu lcPerioada = GET_PERIOADA() ldData1 = Ctod(Substr(lcPerioada, 1, 10)) ldData2 = Ctod(Substr(lcPerioada, At(";", lcPerioada) + 1)) lnIdCtrClient = 0 lcClient = '' TTITLU = Iif(Empty(TTITLU), "SITUATIE VENITURI", TTITLU) + " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Do Case Case tnTip = 0 If Inlist(tnNrRaport, 2, 3, 4, 5, 8, 9, 10, 11, 12) && TRANZIT > 2 DETALIU UN CLIENT, 3. TOTI CLIENTII, 4 PLATITOR/GRUPA MARFA, 5 PLATITOR/RELATIE/GRUPA MARFA, 8 PLATITOR/MARFA, 10 SELECTIE CONVOAIE XLS, 11 Indicatori fizici pe \ INDICATORI,VALORI loCauta = caut_client_contract_activ() lcClient = loCauta.denumire lnIdClient = loCauta.id_part lcContractClient = Alltrim(loCauta.numar) lnIdCtrClient = loCauta.id_ctr TTITLU = "SITUATIE INDICATORI SI VALORI CHEIAJ " + lcClient + " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Endif Case Inlist(tnTip, 2, 3, 5, 9) If Inlist(m.tnNrRaport, 2, 3, 4) && raport facturat pe locatii, ani, doar anumite categorii de prestatii ALEG_PRESTATII(m.tnTip) && creeaza cursor crsNomPrest Endif Endcase Dimension LAHEADER[1] && HEADERUL CARE CONTINE NUMELE TABELULUI SI TITLURILE COLOANELOR PT AFISAREA IN EXCEL = GET_DATE_VENITURI(tnTip, tnNrRaport, ldData1, ldData2, lnIdCtrClient, @LAHEADER) lcTabel = LAHEADER[1] If TEXCEL If Used(m.lcTabel) If m.tnTip = 0 && tranzit lnReturn = LIST_VENITURI_EXCEL_XLSX(m.tnTip, m.lcTabel, @LAHEADER, m.TTITLU) If m.lnReturn = 0 = LIST_VENITURI_EXCEL(m.tnTip, m.lcTabel, @LAHEADER, m.TTITLU) Endif Else = LIST_VENITURI_EXCEL(tnTip, m.lcTabel, @LAHEADER, TTITLU) Endif Endif Else Do Case Case tnTip = 0 Do Case Case tnNrRaport = 2 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE PLATITOR "] + lcClient + ["] PTITLU2 = " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) Set Order To Ct = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT2") Set Cent On Release PTITLU1, PTITLU2 Endif Case tnNrRaport = 3 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE VENITURI TRANZIT] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT3") Set Cent On Release PTITLU1, PTITLU2 Endif Case Inlist(tnNrRaport, 4, 8) If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE PLATITORI - MARFA] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT4") Set Cent On Release PTITLU1, PTITLU2 Endif Case Inlist(tnNrRaport, 5, 9) If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE PLATITORI - MARFA - RELATIA] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT5") Set Cent On Release PTITLU1, PTITLU2 Endif Case tnNrRaport = 7 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE PLATITORI - RELATIE - TONE CAPACITATE] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT7") Set Cent On Release PTITLU1, PTITLU2 Endif Case tnNrRaport = 11 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE VENITURI TRANZIT] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT11") Set Cent On Release PTITLU1, PTITLU2 Endif Case tnNrRaport = 12 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE VENITURI TRANZIT] PTITLU2 = "DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Set Cent Off Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_TRANZIT12") Set Cent On Release PTITLU1, PTITLU2 Endif Other * Endcase Case tnTip = 1 Do Case Case tnNrRaport = 4 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE INDICATORI SI VALORI CHEIAJ ] + + lcClient PTITLU2 = " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_CHEIAJ_INDICATORI") Endif Case Inlist(tnNrRaport, 1, 2, 3) If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE VENITURI DIN CHEIAJ] PTITLU2 = " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_CHEIAJ2") Endif Case tnNrRaport = 5 If !Empty(m.lcTabel) Public PTITLU1, PTITLU2 PTITLU1 = [SITUATIE VENITURI DIN CHEIAJ] PTITLU2 = " DE LA " + Dtoc(ldData1) + " LA " + Dtoc(ldData2) Keyboard'{CTRL+F10}' Sele (m.lcTabel) = LISTAREUSERREPORT(m.lcTabel, "FRX", "SIT_CHEIAJ5") Endif Other * Endcase Endcase Endif If Used(m.lcTabel) Use In (m.lcTabel) Endif Endproc && DECO_LIST_VENITURI ***----------------------------------------------------------------------------------------------- Procedure DECO_LIST_VENITURI_EXCEL && perioada pe care vreau veniturile lcPerioada = GET_PERIOADA() ldData1 = Ctod(Left(lcPerioada, At(";", lcPerioada) - 1)) ldData2 = Ctod(Right(lcPerioada, At(";", lcPerioada) - 1)) OPRESTATIA = GET_PRESTATIA() && 0,1,2,3,4,5 LITIP = OPRESTATIA.tip lcTitlu = "VENITURI " + Allt(OPRESTATIA.prestatia) + " " + Strtran(lcPerioada, ";", " - ") LNRRAP = 1 Dime LAHEADER[1] LNRAP = 1 && tipul 1 de situatie = GET_DATE_VENITURI(LITIP, LNRRAP, ldData1, ldData2, 0, @LAHEADER) lcTabel = LAHEADER[1] Release OPRESTATIA If !Empty(m.lcTabel) * list_venituri_excel_xlsx nu face xlsx pentru ca nu gaseste driverul x86 si intra pe ramura copy to xls5 fara header * nu pune headerul in fisier *!* lnReturn = LIST_VENITURI_EXCEL_XLSX(LITIP, m.lcTabel, @LAHEADER, lcTitlu) *!* IF m.lnReturn = 0 = LIST_VENITURI_EXCEL(LITIP, m.lcTabel, @LAHEADER, lcTitlu) *!* Endif Endif If Used(m.lcTabel) Use In (m.lcTabel) Endif Endproc && DECO_LIST_VENITURI_EXCEL Procedure LIST_VENITURI_EXCEL Param tnTip, TTABEL, taHeader, TTITLU Local I, laFields[1], LCFIELD, lcFormat, lcType, lnDecimals, lnField, lnFields, lnSize, luValue *:Global I, LCANTET, LCFIS, LCHEADER, LDATE, NRCOL, TTITLU LCFIS = Allt(LOC) + "\" + Allt(NFSCURT) + "\TEMPO\VENITURI_" + Sys(2) + ".XLS" LCFIS = Strtran(LCFIS, '\\', '\') Set Textmerge On To (LCFIS) Noshow If Empty(TTITLU) TTITLU = "" Endif LCANTET = Uppe(Allt(TTITLU)) + CRLF \ \\<> \ LCHEADER = "" NRCOL = 0 If !Empty(taHeader) NRCOL = Alen(taHeader, 1) Endif Sele (TTABEL) If NRCOL - 1 < Fcount() For I = 1 To Fcount() LCHEADER = LCHEADER + Upper(Allt(Field(I))) + Tab Endfor Else For I = 2 To NRCOL LCHEADER = LCHEADER + Uppe(Allt(taHeader[I])) + Tab Endfor Endif LCHEADER = LCHEADER + CRLF \\<> Sele (TTABEL) lnFields = Afields(laFields, m.TTABEL) Scan LDATE = "" For lnField = 1 To m.lnFields LCFIELD = laFields[m.lnField, 1] luValue = Evaluate(m.LCFIELD) lcType = laFields[m.lnField, 2] lnSize = laFields[m.lnField, 3] lnDecimals = laFields[m.lnField, 4] Do Case Case lcType = 'C' LDATE = LDATE + m.luValue + Tab Case lcType = 'N' LDATE = LDATE + Str(m.luValue, m.lnSize, m.lnDecimals) + Tab Otherwise LDATE = LDATE + Transform(m.luValue, "") + Tab Endcase Endfor LDATE = LDATE + CRLF \\<> Endscan Set Textmerge To Wait Window "Se deschide Excel..." Nowait open_default_app(m.LCFIS) Endproc && list_venituri_excel ************************************************************************************************ Procedure GET_PERIOADA Local LD1, LD2 LRET = ";" LD1 = Date() - 7 LD2 = Date() OBD = Crea("frm_GET_perioada") With OBD .TXTDATA1.ControlSource = "LD1" .TXTDATA2.ControlSource = "LD2" Endwith OBD.Show(1) LRET = Dtoc(LD1) + ";" + Dtoc(LD2) Return LRET Endproc && get_perioada ************************************************************************************************ Procedure GET_PRESTATIA Create Cursor TPRESTATIA (tip I(6), prestatia C(30)) Insert Into TPRESTATIA (tip, prestatia) Values (0, "Tranzit") Insert Into TPRESTATIA (tip, prestatia) Values(1, "Cheiaj nave") Insert Into TPRESTATIA (tip, prestatia) Values(2, "Diverse") Insert Into TPRESTATIA (tip, prestatia) Values(3, "Chirii si utilitati") *!* INSERT INTO CURSOR VALUES(4,"Pilotaj") Insert Into TPRESTATIA (tip, prestatia) Values(5, "Furnizare apa") *WAIT WIND '1' Sele TPRESTATIA Go Top *BROW OBP = Crea("FRM_GET_PRESTATIA") With OBP.GRID1 .RecordSource = "tprestatia" .CPRESTATIA.ControlSource = "prestatia" Endwith OBP.Show(1) *WAIT WIND '2' Sele TPRESTATIA Scat Name OPRESTATIA LTIP = tip Use In TPRESTATIA Return OPRESTATIA && tipul prestatiei alese Endproc && get_prestatia *!* MARESC TOATE COLOANELE DE TIP NUMERIC LA N(16,2) *!* MARIUS MUTU *!* 04.05.2006 Procedure ALTER_TABLE_INCREASE_NUM Lparameters tcAlias, tcPrecision Local lnFields, I, LCFIELD, lcAlter Declare laFields[1, 1] If Used(tcAlias) lnFields = Afields(laFields, tcAlias) For I = 1 To lnFields If Inlist(laFields[i, 2], 'N', 'F', 'I', 'B', 'Y') LCFIELD = laFields[i, 1] lcAlter = [alter table ] + tcAlias + [ alter column ] + LCFIELD + + [ ] + tcPrecision &lcAlter Endif Endfor Endif Endproc && ALTER_TABLE_INCREASE_NUM