From f0d5151c24fe8059ec41359d8ca7cf16ee663f1b Mon Sep 17 00:00:00 2001 From: Marius Mutu Date: Wed, 26 Aug 2026 12:49:21 +0300 Subject: [PATCH] sync SVN r18058 --- .gitignore | 81 + Clase/ofundal_preturi.vc2 | 106 + Clase/ofundal_roapreturi.vc2 | 339 ++ Clase/onom_preturi.vc2 | 4542 +++++++++++++++++ Clase/opreturi.vc2 | 98 + Ferestre/Copy of fundal.sc2 | 251 + Ferestre/fundal.sc2 | 116 + Grafice/f1.jpg | Bin 0 -> 9291 bytes Grafice/f2.jpg | Bin 0 -> 6403 bytes Grafice/f3.jpg | Bin 0 -> 2651 bytes Grafice/lista1.bmp | Bin 0 -> 8322 bytes Grafice/lista2.bmp | Bin 0 -> 8322 bytes Grafice/roaoferta.bmp | Bin 0 -> 367014 bytes Grafice/roapreturi.bmp | Bin 0 -> 367014 bytes Meniuri/roapreturi.mn2 | 106 + Programe/onom_preturi.prg | 130 + Programe/ovariabile_globale.prg | 12 + Programe/roapreturi.prg | 1040 ++++ Programe/roapreturi_.prg | 569 +++ Programe/shutdown.prg | 3 + Programe/update_nomenclator.prg | 4 + Programe/update_preturi.prg | 224 + Rapoarte/rap_liste.fr2 | 650 +++ Rapoarte/rap_liste_subgrupe.fr2 | 698 +++ .../24_05_2006/ROAOFERTA_instalare.sql | 17 + .../24_05_2006/curatare_schema.sql | 11 + Scripturi_instalare/24_05_2006/packages.sql | 353 ++ Scripturi_instalare/24_05_2006/secvente.sql | 67 + Scripturi_instalare/24_05_2006/tabele.sql | 202 + Scripturi_instalare/24_05_2006/triggere.sql | 70 + Scripturi_instalare/24_05_2006/viewuri.sql | 77 + .../Arhiva/script_oferta_companiei_0405.txt | 1619 ++++++ Scripturi_instalare/ROAOFERTA_instalare.sql | 17 + Scripturi_instalare/Scripturi.xls | Bin 0 -> 13824 bytes Scripturi_instalare/curatare_schema.sql | 11 + Scripturi_instalare/packages.sql | 353 ++ Scripturi_instalare/script_obiecte.sql | 38 + Scripturi_instalare/secvente.sql | 67 + Scripturi_instalare/tabele.sql | 202 + Scripturi_instalare/triggere.sql | 70 + Scripturi_instalare/viewuri.sql | 77 + changelog_roapreturi.txt | 538 ++ config.fpw | 44 + roa_sync.bat | 2 + roapreturi.pj2 | 390 ++ versiune_db.txt | 1 + 46 files changed, 13195 insertions(+) create mode 100644 .gitignore create mode 100644 Clase/ofundal_preturi.vc2 create mode 100644 Clase/ofundal_roapreturi.vc2 create mode 100644 Clase/onom_preturi.vc2 create mode 100644 Clase/opreturi.vc2 create mode 100644 Ferestre/Copy of fundal.sc2 create mode 100644 Ferestre/fundal.sc2 create mode 100644 Grafice/f1.jpg create mode 100644 Grafice/f2.jpg create mode 100644 Grafice/f3.jpg create mode 100644 Grafice/lista1.bmp create mode 100644 Grafice/lista2.bmp create mode 100644 Grafice/roaoferta.bmp create mode 100644 Grafice/roapreturi.bmp create mode 100644 Meniuri/roapreturi.mn2 create mode 100644 Programe/onom_preturi.prg create mode 100644 Programe/ovariabile_globale.prg create mode 100644 Programe/roapreturi.prg create mode 100644 Programe/roapreturi_.prg create mode 100644 Programe/shutdown.prg create mode 100644 Programe/update_nomenclator.prg create mode 100644 Programe/update_preturi.prg create mode 100644 Rapoarte/rap_liste.fr2 create mode 100644 Rapoarte/rap_liste_subgrupe.fr2 create mode 100644 Scripturi_instalare/24_05_2006/ROAOFERTA_instalare.sql create mode 100644 Scripturi_instalare/24_05_2006/curatare_schema.sql create mode 100644 Scripturi_instalare/24_05_2006/packages.sql create mode 100644 Scripturi_instalare/24_05_2006/secvente.sql create mode 100644 Scripturi_instalare/24_05_2006/tabele.sql create mode 100644 Scripturi_instalare/24_05_2006/triggere.sql create mode 100644 Scripturi_instalare/24_05_2006/viewuri.sql create mode 100644 Scripturi_instalare/Arhiva/script_oferta_companiei_0405.txt create mode 100644 Scripturi_instalare/ROAOFERTA_instalare.sql create mode 100644 Scripturi_instalare/Scripturi.xls create mode 100644 Scripturi_instalare/curatare_schema.sql create mode 100644 Scripturi_instalare/packages.sql create mode 100644 Scripturi_instalare/script_obiecte.sql create mode 100644 Scripturi_instalare/secvente.sql create mode 100644 Scripturi_instalare/tabele.sql create mode 100644 Scripturi_instalare/triggere.sql create mode 100644 Scripturi_instalare/viewuri.sql create mode 100644 changelog_roapreturi.txt create mode 100644 config.fpw create mode 100644 roa_sync.bat create mode 100644 roapreturi.pj2 create mode 100644 versiune_db.txt diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..6b39516 --- /dev/null +++ b/.gitignore @@ -0,0 +1,81 @@ +# ============================================================================= +# Flux text FoxBin2Prg: git urmareste DOAR versiunile text .??2 (in arbore), +# nu binarele VFP. Binarele convertibile si indecsii regenerabili se ignora. +# SVN ramane sursa de adevar pentru binare (via global-ignores pe .??2). +# ============================================================================= + +# --- Binare VFP convertibile in text .??2 (ambele forme de caz) --- +*.vcx +*.VCX +*.vct +*.VCT +*.scx +*.SCX +*.sct +*.SCT +*.frx +*.FRX +*.frt +*.FRT +*.mnx +*.MNX +*.mnt +*.MNT +*.lbx +*.LBX +*.lbt +*.LBT +*.pjx +*.PJX +*.pjt +*.PJT +*.dbc +*.DBC +*.dct +*.DCT + +# --- Indecsi regenerabili (nu se transporta in .db2/.dc2) --- +*.cdx +*.CDX +*.dcx +*.DCX + +# --- Fisiere generate/compilate Visual FoxPro --- +*.fxp +*.FXP +*.mpr +*.MPR +*.mpx +*.MPX +*.vcr +*.VCR +*.src + +# --- Backup-uri si fisiere temporare create de editorul VFP --- +*.bak +*.BAK +*.tmp +*.TMP +*.err +*.ERR +*.Stats +*.stackdump + +# --- Stare locala / specifica masinii, nu proiectului --- +FOXUSER.DBF +FOXUSER.FPT +log.txt +roapreturi.ARM +roapreturi.ERR +roapreturi.exe +roapreturi.Stats + +# --- Subversion (working copy paralela) --- +.svn/ + +# --- COMUN este SVN external (romfast/comun.git gestioneaza separat) --- +COMUN/ + +docs/diff_*.patch +.gstack/ +docs/local/ diff --git a/Clase/ofundal_preturi.vc2 b/Clase/ofundal_preturi.vc2 new file mode 100644 index 0000000..2aea727 --- /dev/null +++ b/Clase/ofundal_preturi.vc2 @@ -0,0 +1,106 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="ofundal_preturi.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS pg_meniu_princ AS pg_meniu OF "..\comun\clase\ofundal.vcx" + *< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Page1.Pict_meniu1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Page1.Cw1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Page1.Cw6" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Page1.Cw7" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Page1.Pict_liniuta2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Page2.Pict_meniu1" UniqueID="" Timestamp="" /> + + * + ErasePage = .T. + Height = 256 + Name = "pg_meniu_princ" + PageCount = 2 + Themes = .F. + Width = 799 + Page1.Caption = "Configurare" + Page1.Name = "Page1" + Page2.Caption = "" + Page2.Enabled = .F. + Page2.Name = "Page2" + * + + ADD OBJECT 'Page1.Cw1' AS cw WITH ; + Left = 3, ; + Name = "Cw1", ; + TabIndex = 3, ; + Top = 22, ; + Label_item1.Caption = "Catalog de articole", ; + Label_item1.Name = "Label_item1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Page1.Cw6' AS cw WITH ; + Height = 20, ; + Left = 3, ; + Name = "Cw6", ; + TabIndex = 4, ; + Top = 76, ; + Width = 117, ; + Label_item1.Caption = "Liste de preturi", ; + Label_item1.Name = "Label_item1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Page1.Cw7' AS cw WITH ; + Height = 20, ; + Left = 3, ; + Name = "Cw7", ; + nid_cw = 8, ; + ntip = 1, ; + TabIndex = 1, ; + Top = 49, ; + Width = 117, ; + Label_item1.Caption = "Note de vanzari", ; + Label_item1.Name = "Label_item1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Page1.Pict_liniuta2' AS pict_liniuta WITH ; + Left = 3, ; + Name = "Pict_liniuta2", ; + Picture = ..\comun\grafice\f3.jpg, ; + Top = 101 + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" /> + + ADD OBJECT 'Page1.Pict_meniu1' AS pict_meniu WITH ; + Anchor = 7, ; + Height = 553, ; + Left = 0, ; + Name = "Pict_meniu1", ; + Picture = ..\grafice\f2.jpg, ; + Top = 8, ; + Width = 133 + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" /> + + ADD OBJECT 'Page2.Pict_meniu1' AS pict_meniu WITH ; + Anchor = 7, ; + Left = 0, ; + Name = "Pict_meniu1", ; + Picture = ..\grafice\f2.jpg, ; + Top = 8 + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" /> + + PROCEDURE Page1.Cw1.do_actiune + Do viz_catalog_articole In onom_preturi.prg + ENDPROC + + PROCEDURE Page1.Cw6.do_actiune + Do viz_politici In onom_preturi.prg + + ENDPROC + + PROCEDURE Page1.Cw7.do_actiune + * DO viz_note_vanzari IN onom_preturi.prg + LOCAL llCRM + llCRM = .T. + DO configurare_note WITH llCRM IN omeniu_initializari.prg + ENDPROC + +ENDDEFINE diff --git a/Clase/ofundal_roapreturi.vc2 b/Clase/ofundal_roapreturi.vc2 new file mode 100644 index 0000000..2c28873 --- /dev/null +++ b/Clase/ofundal_roapreturi.vc2 @@ -0,0 +1,339 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="ofundal_roapreturi.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS pagefr AS pg_meniu OF "..\comun\clase\ofundal.vcx" + *< CLASSDATA: Baseclass="pageframe" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + ErasePage = .T. + Height = 177 + Name = "pagefr" + PageCount = 2 + Themes = .F. + Width = 428 + Page1.Caption = "Configurare" + Page1.Name = "Page1" + Page2.Caption = "" + Page2.Name = "Page2" + * + +ENDDEFINE + +DEFINE CLASS princ AS ffergen OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1.Page1.shape1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1.Page1.Cw2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1.Page1.Cw1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1.Page1.Cw3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Pagefr1.Page2.Cw3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_utilizator" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Imagine01" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_utilizator1" UniqueID="" Timestamp="" /> + + * + AlwaysOnTop = .F. + BackColor = 255,255,255 + BorderStyle = 0 + ControlBox = .F. + DoCreate = .T. + Left = 0 + Name = "princ" + ShowTips = .T. + Top = 0 + WindowState = 2 + * + + ADD OBJECT 'Image1' AS image WITH ; + Anchor = 12, ; + Height = 220, ; + Left = 182, ; + Name = "Image1", ; + Picture = ..\grafice\roapreturi.bmp, ; + Top = 195, ; + Width = 556, ; + ZOrderSet = 2 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Image2' AS image WITH ; + Anchor = 11, ; + BackStyle = 1, ; + Height = 63, ; + Left = 0, ; + Name = "Image2", ; + Picture = ..\comun\grafice\f1.jpg, ; + Stretch = 2, ; + Top = 0, ; + Width = 804, ; + ZOrderSet = 0 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Imagine01' AS imagine WITH ; + ccod = A03, ; + Height = 54, ; + Left = 9, ; + Name = "Imagine01", ; + nid_img = 1, ; + picturedown = lista2.bmp, ; + pictureup = lista1.bmp, ; + ToolTipText = "Drepturi de acces la listele de preturi", ; + Top = 1, ; + Width = 45 + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" /> + + ADD OBJECT 'lb_utilizator' AS lb_simplu WITH ; + Anchor = 9, ; + Caption = "Operator:", ; + FontItalic = .T., ; + ForeColor = 255,255,255, ; + Left = 457, ; + Name = "lb_utilizator", ; + Top = 9, ; + ZOrderSet = 4 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'lb_utilizator1' AS lb_simplu WITH ; + Anchor = 9, ; + Caption = "nume_utilizator", ; + FontBold = .T., ; + FontItalic = .T., ; + ForeColor = 255,255,255, ; + Left = 513, ; + Name = "lb_utilizator1", ; + Top = 9, ; + Visible = .F., ; + ZOrderSet = 5 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'Pagefr1' AS pagefr WITH ; + ErasePage = .T., ; + Height = 475, ; + Left = -1, ; + Name = "Pagefr1", ; + Top = 59, ; + Width = 804, ; + Page1.Name = "Page1", ; + Page2.Caption = "Liste de prețuri", ; + Page2.Name = "Page2" + *< END OBJECT: ClassLib="ofundal_roapreturi.vcx" BaseClass="pageframe" /> + + ADD OBJECT 'Pagefr1.Page1.Cw1' AS cw WITH ; + Left = 4, ; + Name = "Cw1", ; + nid_cw = 1, ; + ntip = 1, ; + TabIndex = 3, ; + Top = 12, ; + ZOrderSet = 4, ; + LABEL_ITEM1.Caption = "Catalog de articole", ; + LABEL_ITEM1.Name = "LABEL_ITEM1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Pagefr1.Page1.Cw2' AS cw WITH ; + Height = 20, ; + Left = 4, ; + Name = "Cw2", ; + nid_cw = 2, ; + ntip = 1, ; + TabIndex = 1, ; + Top = 39, ; + Width = 117, ; + ZOrderSet = 2, ; + LABEL_ITEM1.Caption = "Note de vânzări", ; + LABEL_ITEM1.Name = "LABEL_ITEM1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Pagefr1.Page1.Cw3' AS cw WITH ; + Height = 31, ; + Left = 4, ; + Name = "Cw3", ; + nid_cw = 3, ; + ntip = 1, ; + TabIndex = 1, ; + Top = 67, ; + Width = 117, ; + ZOrderSet = 2, ; + Label_item1.Caption = "Drepturi de acces la listele de prețuri", ; + Label_item1.Height = 30, ; + Label_item1.Left = 5, ; + Label_item1.Name = "Label_item1", ; + Label_item1.Top = 1, ; + Label_item1.Width = 99, ; + Label_item1.WordWrap = .T. + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + ADD OBJECT 'Pagefr1.Page1.shape1' AS pict_meniu WITH ; + Anchor = 7, ; + Height = 420, ; + Left = 0, ; + Name = "shape1", ; + Picture = ..\comun\grafice\f2.jpg, ; + Top = -4, ; + Width = 133 + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="image" /> + + ADD OBJECT 'Pagefr1.Page2.Cw3' AS cw WITH ; + Height = 20, ; + Left = 12, ; + Name = "Cw3", ; + nid_cw = 1, ; + ntip = 4, ; + TabIndex = 4, ; + Top = 45, ; + Width = 117, ; + ZOrderSet = 3, ; + Label_item1.Caption = "Liste de preturi", ; + Label_item1.Name = "Label_item1" + *< END OBJECT: ClassLib="..\comun\clase\ofundal.vcx" BaseClass="container" /> + + PROCEDURE RightClick + Thisform.image1.RightClick() + ENDPROC + + PROCEDURE Show + Lparameters nStyle + + *!* verifica_drepturi('oprinc','pagefr1') + + * comentat 15.09.2006 + *!* Local lnScrH,lnScrW + + *!* _SCREEN.HEIGHT = THISFORM.HEIGHT + *!* _SCREEN.WIDTH = THISFORM.WIDTH + + *!* _Screen.AutoCenter=.T. + *!* _Screen.Refresh + *!* Thisform.Left=0 + *!* Thisform.Top=0 + + + ***** + Local w,h + w=_Screen.Width + h=_Screen.Height + + This.Width = w + This.Height = h + + *!* This.image1.Left=w-This.image1.Width + *!* This.image1.Top=h-This.image1.Height + *!* This.lb_utilizator.Top=h-This.lb_utilizator.Height + *!* This.lb_utilizator1.Top=h-This.lb_utilizator1.Height + *!* This.image2.Width = w + 180 + + With This.pagefr1 + .Width = w + .Height = h + .page1.shape1.Height = h + ENDWITH + + + + ENDPROC + + PROCEDURE Image1.RightClick + Do start_firma In ostartfirma.prg + + ** Initializez gnRon corespunzator lunii in care am intrat + Local lcLunaRon, lcAnulRon, lnValue, lcExec, lnSucces, lcTextEroare + lcLunaRon = Substr(gcDataRon,1,2) + lcAnulRon = Substr(gcDataRon,4,4) + If gnAn * 12 + gnLuna < Val(lcAnulRon) * 12 + Val(lcLunaRon) + lnValue = 2 + Else + lnValue = 1 + Endif + + lcExec = [update optiuni set varvalue = ] + Alltrim(Str(lnValue)) + [ where varname = 'RON'] + + lnSucces = goExecutor.oExecute(lcExec) + If lnSucces < 0 + lcTextEroare = goExecutor.cEroare + aMessagebox(lcTextEroare,48,"Eroare") + Return + Endif + + Do oinit_optiuni.prg + ** + + verifica_drepturi('oprinc','pagefr1') + + + + ENDPROC + + PROCEDURE Imagine01.do_actiune + LOCAL llCRM + llCRM = .T. + DO acces_liste IN omeniu_initializari.prg + ENDPROC + + PROCEDURE Pagefr1.Page1.Cw1.do_actiune + Do viz_catalog_articole In oproceduri_articole.prg + ENDPROC + + PROCEDURE Pagefr1.Page1.Cw2.do_actiune + * DO viz_note_vanzari IN onom_preturi.prg + LOCAL llCRM + llCRM = .T. + DO configurare_note WITH llCRM IN omeniu_initializari.prg + ENDPROC + + PROCEDURE Pagefr1.Page1.Cw3.do_actiune + * DO viz_note_vanzari IN onom_preturi.prg + LOCAL llCRM + llCRM = .T. + DO acces_liste IN omeniu_initializari.prg + ENDPROC + + PROCEDURE Pagefr1.Page1.RightClick + Do start_firma In ostartfirma.prg + + ** Initializez gnRon corespunzator lunii in care am intrat + Local lcLunaRon, lcAnulRon, lnValue, lcExec, lnSucces, lcTextEroare + lcLunaRon = Substr(gcDataRon,1,2) + lcAnulRon = Substr(gcDataRon,4,4) + If gnAn * 12 + gnLuna < Val(lcAnulRon) * 12 + Val(lcLunaRon) + lnValue = 2 + Else + lnValue = 1 + Endif + + lcExec = [update optiuni set varvalue = ] + Alltrim(Str(lnValue)) + [ where varname = 'RON'] + + lnSucces = goExecutor.oExecute(lcExec) + If lnSucces < 0 + lcTextEroare = goExecutor.cEroare + aMessagebox(lcTextEroare,48,"Eroare") + Return + Endif + + Do oinit_optiuni.prg + ** + + verifica_drepturi('oprinc','pagefr1') + ENDPROC + + PROCEDURE Pagefr1.Page2.Click + Do viz_politici In onom_preturi.prg + thisform.pagefr1.page1.SetFocus + + ENDPROC + + PROCEDURE Pagefr1.Page2.Cw3.do_actiune + Do viz_politici In onom_preturi.prg + *!* thisform.pagefr1.page1.SetFocus + ENDPROC + + PROCEDURE Pagefr1.RightClick + Thisform.image1.RightClick() + ENDPROC + +ENDDEFINE diff --git a/Clase/onom_preturi.vc2 b/Clase/onom_preturi.vc2 new file mode 100644 index 0000000..9eec14c --- /dev/null +++ b/Clase/onom_preturi.vc2 @@ -0,0 +1,4542 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="onom_preturi.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS cus_odata_politici_pret AS _cusodatabase OF "..\comun\clase\_cus_odata_base.vcx" + *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + Name = "cus_odata_politici_pret" + * + + PROCEDURE make_sql + Lparameters toRec,tnId + + lcActiune = Alltrim(This.cActiune) + lcId_util = Alltrim(Str(gnIdUtil)) + + If Inlist(lcActiune, "UPDATE",'INSERT') And Type('toRec') != "O" + Return .F. + Endif + + If Inlist(lcActiune, "UPDATE",'DELETE') And Type('tnId') != "N" + Return .F. + Endif + + If Inlist(lcActiune, "UPDATE",'DELETE') + lcId = Alltrim(Str(tnId)) + Endif + + If Inlist(lcActiune, "UPDATE",'INSERT') + lcNume = UPPER(ALLTRIM(toRec.nume_lista_preturi)) + lcDataI = ALLTRIM(DTOS(toRec.datai)) + lcDataS = ALLTRIM(DTOS(toRec.datas)) + lcIdValuta = ALLTRIM(STR(toRec.id_valuta)) + lcIdNota = ALLTRIM(STR(toRec.id_nota)) + lcIdSucursala = Iif(Empty(Nvl(torec.id_sucursala,[])),[NULL],ALLTRIM(STR(torec.id_sucursala))) + lcPreturi_cu_tva = ALLTRIM(STR(toRec.preturi_cu_tva)) + + *!* Select crspolitica_curenta + *!* lcSir=[] + *!* Scan + *!* lcSir = lcSir + NVL(ALLTRIM(STR(id_pol_art)),0) + [,] + Alltrim(Str(id_articol)) + [,] + Alltrim(NVL(um,[])) + ; + *!* [,] + Alltrim(Str(NVL(pret,0),20,gnPa)) + [,] +Alltrim(Str(NVL(proc_tvav,1),6,gnPa))+ ; + *!* [,] + ALLTRIM(STR(procent))+[;] + *!* ENDSCAN + *!* lnLen1 = INT(LEN(lcSir)/2) + *!* lcSir1 = LEFT(lcSir, lnLen1) + *!* lcSir2 = SUBSTR(lcSir, lnLen1+1) + ENDIF + + Do Case + Case lcActiune = "INSERT" + lcSql = [begin pack_preturi.adauga_politica(']+lcNume+[',]+; + [to_date(']+lcDataI+[','YYYYMMDD'),to_date(']+lcDataS+[','YYYYMMDD'),]+; + lcIdValuta+[,]+lcIdNota +[,]+lcPreturi_cu_tva +[,]+ ; + lcId_util+[,]+lcIdSucursala +[); end;] + + Case lcActiune = "UPDATE" + lcSql = [begin pack_preturi.modifica_politica(']+Alltrim(gcS)+[',]+lcId+[,']+lcNume+[',]+; + [to_date(']+lcDataI+[','YYYYMMDD'),to_date(']+lcDataS+[','YYYYMMDD'),]+; + lcIdValuta+[,]+lcIdNota +[,]+lcPreturi_cu_tva +[,] + ; + lcId_util+[); end;] + + Case lcActiune = "DELETE" + lcSql = [begin pack_preturi.sterge_politica(']+Alltrim(gcS)+[',]+lcId+[,]+lcId_util+[); end;] + + ENDCASE + + This.csql = lcSql + ENDPROC + +ENDDEFINE + +DEFINE CLASS cus_odata_politicigrupuri AS _cusodatabase OF "..\comun\clase\_cus_odata_base.vcx" + *< CLASSDATA: Baseclass="custom" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + Name = "cus_odata_politicigrupuri" + * + + PROCEDURE make_sql + Lparameters toRec,tnId + + lcActiune = Alltrim(This.cActiune) + + If Inlist(lcActiune, "UPDATE",'INSERT') And Type('toRec') != "O" + Return .F. + Endif + + If Inlist(lcActiune, "UPDATE",'DELETE') And Type('tnId') != "N" + Return .F. + Endif + + If Inlist(lcActiune, "UPDATE",'DELETE') + lcId = Alltrim(Str(tnId)) + Endif + + If Inlist(lcActiune, "UPDATE",'INSERT') + lcid_grup = Nvl(ALLTRIM(STR(toRec.id_grup)),"null") + lcid_politica =Nvl(ALLTRIM(STR(toRec.id_politica)),"null") + lcinactiv = Nvl(ALLTRIM(STR(toRec.inactiv)),"0") + Endif + + + Do Case + Case lcActiune = "INSERT" + + lcSql = [INSERT INTO ] + gcS + [.POLITICI_GRUPURI (id_grup,id_politica,inactiv) VALUES (] + lcId_grup + [,] + lcid_politica +[,]+lcInactiv+ [)] + + Case lcActiune = "UPDATE" + + lcSql = [UPDATE ] + gcS + [.POLITICI_GRUPURI SET id_grup = ]+lcId_grup + [,inactiv = ] + lcinactiv + [,id_politica = ]+lcId_politica+[ where id_polgr = ] + lcId + + Case lcActiune = "DELETE" + + lcSql = [update POLITICI_GRUPURI set sters=1 where id_polgr=]+lcid + *!* lcSql = [begin nomdelproc('] + lcnom + [','] + lcamp + [',] + lcid + [,'] + lclook + [','] + lclookid + ['); end;] + Endcase + This.csql = lcSql + + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_alege_articol AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="grid_pol_pret_art" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column1.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column1.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column3.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column3.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column4.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column4.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column5.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pol_pret_art.Column5.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ck_nume_articol" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_reset1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cboListe" UniqueID="" Timestamp="" /> + + * + cgridsortlist = grid_pol_pret_art + Desktop = .T. + DoCreate = .T. + Height = 545 + Name = "frm_alege_articol" + Width = 785 + _shape1.Height = 29 + _shape1.Left = 0 + _shape1.Name = "_shape1" + _shape1.Top = 0 + _shape1.Width = 792 + _shape2.Anchor = 9 + _shape2.Height = 29 + _shape2.Left = 721 + _shape2.Name = "_shape2" + _shape2.Top = 0 + _shape2.Width = 64 + Lb_titlu_alb_b121.Caption = "Articole - Liste - Preturi" + Lb_titlu_alb_b121.Left = 11 + Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121" + Lb_titlu_alb_b121.Top = 6 + BUT_TERMIN1.Anchor = 9 + BUT_TERMIN1.Left = 754 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.Top = 1 + Gridsort1.Left = 180 + Gridsort1.Name = "Gridsort1" + Gridsort1.Top = 12 + * + + ADD OBJECT 'But_renunt1' AS but_renunt WITH ; + Anchor = 9, ; + Height = 27, ; + Left = 723, ; + Name = "But_renunt1", ; + TabIndex = 5, ; + Top = 1, ; + Width = 30 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'cboListe' AS combobox WITH ; + ColumnCount = 4, ; + ColumnLines = .F., ; + ColumnWidths = "200,65,60,0", ; + Height = 24, ; + Left = 11, ; + Name = "cboListe", ; + RowSource = "cListePret.nume_lista_preturi,datai,datas,id_pol", ; + RowSourceType = 2, ; + Style = 2, ; + Top = 36, ; + Width = 276 + *< END OBJECT: BaseClass="combobox" /> + + ADD OBJECT 'ck_nume_articol' AS ck_filtru_text WITH ; + Alignment = 0, ; + camp_nume = nume_articol, ; + Caption = "Articol", ; + FontCharSet = 238, ; + FontName = "Arial Narrow", ; + Left = 308, ; + Name = "ck_nume_articol", ; + TabIndex = 3, ; + Top = 37 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ; + Anchor = 8, ; + Left = 581, ; + Name = "Cmd_cauta1", ; + TabIndex = 6, ; + Top = 33 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Cmd_reset1' AS cmd_reset WITH ; + Anchor = 8, ; + Left = 672, ; + Name = "Cmd_reset1", ; + TabIndex = 15, ; + Top = 33 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'grid_pol_pret_art' AS _grdrow WITH ; + Anchor = 15, ; + ColumnCount = 5, ; + DeleteMark = .F., ; + Height = 468, ; + Left = 11, ; + Name = "grid_pol_pret_art", ; + Panel = 1, ; + RecordSource = "crsArtAles", ; + Top = 66, ; + Width = 763, ; + Column1.ColumnOrder = 2, ; + Column1.ControlSource = "nume_articol", ; + Column1.Name = "Column1", ; + Column1.Width = 299, ; + Column2.ColumnOrder = 3, ; + Column2.ControlSource = "pret", ; + Column2.Format = "rk", ; + Column2.InputMask = (get_mask(20,MAX(gnPPretV,gnPVal))), ; + Column2.Name = "Column2", ; + Column2.Width = 74, ; + Column3.ColumnOrder = 1, ; + Column3.ControlSource = "nume_lista_preturi", ; + Column3.Name = "Column3", ; + Column3.Width = 279, ; + Column4.ColumnOrder = 4, ; + Column4.ControlSource = "nume_val", ; + Column4.Name = "Column4", ; + Column4.Width = 47, ; + Column5.ControlSource = "ales", ; + Column5.Name = "Column5", ; + Column5.Sparse = .F., ; + Column5.Width = 29 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grid_pol_pret_art.Column1.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pol_pret_art.Column1.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pol_pret_art.Column2.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pol_pret_art.Column2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pol_pret_art.Column3.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Lista de preturi", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pol_pret_art.Column3.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pol_pret_art.Column4.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pol_pret_art.Column4.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pol_pret_art.Column5.Check1' AS checkbox WITH ; + Alignment = 0, ; + Caption = "", ; + Height = 17, ; + Left = 28, ; + Name = "Check1", ; + Top = 47, ; + Width = 60 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'grid_pol_pret_art.Column5.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Ales", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + PROCEDURE actualizeaza_grid1 + Lparameters lcFiltru + If Empty(lcFiltru) + lcFiltru = poPol_pret_art.ca_baza1.cfiltru + Endif + Thisform.MousePointer= 11 + Thisform.LockScreen=.T. + save_grid_tag(Thisform.grid_pol_pret_art) + poPol_pret_art.ca_baza1.cfiltru=lcFiltru + poPol_pret_art.ca_baza1.afisare() + restore_grid_tag(Thisform.grid_pol_pret_art) + Thisform.LockScreen=.F. + Thisform.MousePointer= 0 + If Reccount('crsArtAles')>0 + Thisform.grid_pol_pret_art.SetFocus() + Endif + ENDPROC + + PROCEDURE do_cauta + Local lcFiltru + lcFiltru = [2=2] + + If Thisform.ck_nume_articol.Value=1 + lcFiltru = lcFiltru + Thisform.ck_nume_articol.filtru + ENDIF + + IF pnId_lista <> 0 + lcFiltru = lcFiltru + " and id_pol="+ALLTRIM(STR(pnId_lista)) + ENDIF + + Thisform.actualizeaza_grid1(lcFiltru) + + If Reccount('crsArtAles')=0 + aMessagebox('Cautarea nu a intors rezultate!',0+48,'Info cautare') + Thisform.ck_nume_articol.SetFocus() + Endif + ENDPROC + + PROCEDURE do_reset + pnId_lista = 0 + thisform.cboListe.Value = "" + thisform.cboListe.Refresh + + thisform.ck_nume_articol.Value = 0 + + ENDPROC + + PROCEDURE cboListe.Init + this.Value = "" + + ENDPROC + + PROCEDURE cboListe.Valid + pnId_lista = cListePret.id_pol + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_articol_politica AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Clb_articol" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_pret" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_pret.optProcent" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_um" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_valuta" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_tx_simplu1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="clb_pret2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cb_tx_coef_tva" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cb_tx_coef_tva.Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ct_clb_venchelt" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_cant_bax" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_um2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_checkbox1" UniqueID="" Timestamp="" /> + + * + *m: actualizare_preturi + *m: do_cauta_venchelt + *p: nid + *p: nnivelmodificare && - 1 daca utilizatorul are voie sa modifice toate datele ; 0 daca are voie sa modifice doar nr. de telefon + *p: npreturicutva + *p: orec + * + + * + DoCreate = .T. + Height = 375 + Name = "frm_articol_politica" + nnivelmodificare = -1 + npreturicutva = 0 + Width = 356 + _shape1.Height = 29 + _shape1.Left = 0 + _shape1.Name = "_shape1" + _shape1.Top = 0 + _shape1.Width = 360 + _shape2.Height = 29 + _shape2.Left = 289 + _shape2.Name = "_shape2" + _shape2.Top = 0 + _shape2.Width = 69 + Lb_titlu_alb_b121.Caption = "ADĂUGARE ARTICOL" + Lb_titlu_alb_b121.FontBold = .T. + Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121" + Lb_titlu_alb_b121.TabIndex = 13 + BUT_TERMIN1.Height = 27 + BUT_TERMIN1.Left = 324 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 11 + BUT_TERMIN1.Top = 1 + BUT_TERMIN1.Width = 30 + Gridsort1.Name = "Gridsort1" + * + + ADD OBJECT '_checkbox1' AS _checkbox WITH ; + Alignment = 0, ; + Caption = "Compus", ; + ControlSource = "poarticol.compus", ; + Enabled = .F., ; + Left = 24, ; + Name = "_checkbox1", ; + ReadOnly = .T., ; + Top = 354 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'But_renunt1' AS but_renunt WITH ; + Height = 27, ; + Left = 292, ; + Name = "But_renunt1", ; + TabIndex = 12, ; + Top = 1, ; + Width = 30 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Cb_tx_coef_tva' AS cb_tx_simplu WITH ; + Height = 29, ; + Left = 24, ; + Name = "Cb_tx_coef_tva", ; + TabIndex = 9, ; + Top = 292, ; + Width = 290, ; + ZOrderSet = 12, ; + _cbbase1.FontName = "Arial Narrow", ; + _cbbase1.Height = 23, ; + _cbbase1.Left = 101, ; + _cbbase1.Name = "_cbbase1", ; + _cbbase1.RowSource = "crs_cote_tva", ; + _cbbase1.RowSourceType = 2, ; + _cbbase1.Top = 3, ; + _cbbase1.Width = 163, ; + _lbbase1.Caption = "Coeficient TVA", ; + _lbbase1.FontName = "Arial Narrow", ; + _lbbase1.FontSize = 10, ; + _lbbase1.Left = 6, ; + _lbbase1.Name = "_lbbase1", ; + _lbbase1.Top = 6 + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Cb_tx_coef_tva.Label1' AS label WITH ; + BackStyle = 0, ; + Caption = "%", ; + Height = 17, ; + Left = 270, ; + Name = "Label1", ; + Top = 7, ; + Width = 13 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Clb_articol' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_articol", ; + TabIndex = 2, ; + TabStop = .F., ; + Top = 73, ; + Text_simplu1.ControlSource = "poArticol.nume_articol", ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Lb_simplu1.Caption = "Articol", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_cant_bax' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_cant_bax", ; + TabIndex = 7, ; + TabStop = .F., ; + Top = 236, ; + Width = 290, ; + Text_simplu1.Alignment = 1, ; + Text_simplu1.ControlSource = "poArticol.cant_bax", ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Lb_simplu1.Caption = "Cant. / împach.", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_pret' AS clb_tx_simplu WITH ; + Height = 52, ; + Left = 24, ; + Name = "Clb_pret", ; + TabIndex = 3, ; + Top = 101, ; + Width = 290, ; + TEXT_SIMPLU1.ControlSource = "poArticol.pret", ; + TEXT_SIMPLU1.InputMask = (get_mask(14,gnPPretV)), ; + TEXT_SIMPLU1.Left = 101, ; + TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ; + TEXT_SIMPLU1.TabIndex = 1, ; + TEXT_SIMPLU1.Top = 25, ; + LB_SIMPLU1.Caption = "", ; + LB_SIMPLU1.Left = 8, ; + LB_SIMPLU1.Name = "LB_SIMPLU1", ; + LB_SIMPLU1.TabIndex = 2, ; + LB_SIMPLU1.Top = 6 + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_pret.optProcent' AS _optiongrup WITH ; + AutoSize = .T., ; + BorderStyle = 0, ; + Height = 46, ; + Left = 5, ; + Name = "optProcent", ; + TabIndex = 3, ; + Top = 3, ; + Width = 71, ; + Option1.Caption = "Pret", ; + Option1.Left = 5, ; + Option1.Name = "Option1", ; + Option1.TabStop = .F., ; + Option1.Top = 5, ; + Option2.Caption = "Procent", ; + Option2.Left = 57, ; + Option2.Name = "Option2", ; + Option2.TabStop = .F., ; + Option2.Top = 5 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="optiongroup" /> + + ADD OBJECT 'clb_pret2' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "clb_pret2", ; + TabIndex = 4, ; + TabStop = .F., ; + Top = 152, ; + Text_simplu1.Alignment = 1, ; + Text_simplu1.ControlSource = "poArticol.pretftva", ; + Text_simplu1.InputMask = (get_mask(14,gnPPretV)), ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Lb_simplu1.Caption = "Preț fără TVA", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_tx_simplu1' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_tx_simplu1", ; + TabIndex = 1, ; + TabStop = .F., ; + Top = 45, ; + TEXT_SIMPLU1.ControlSource = "poArticol.codmat", ; + TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ; + TEXT_SIMPLU1.ReadOnly = .T., ; + LB_SIMPLU1.Caption = "Cod material", ; + LB_SIMPLU1.Name = "LB_SIMPLU1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_um' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_um", ; + TabIndex = 6, ; + TabStop = .F., ; + Top = 208, ; + Width = 290, ; + TEXT_SIMPLU1.Alignment = 1, ; + TEXT_SIMPLU1.ControlSource = "poArticol.um", ; + TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ; + TEXT_SIMPLU1.ReadOnly = .T., ; + LB_SIMPLU1.Caption = "U.M.", ; + LB_SIMPLU1.Name = "LB_SIMPLU1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_um2' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_um2", ; + TabIndex = 8, ; + TabStop = .F., ; + Top = 264, ; + Width = 290, ; + Text_simplu1.Alignment = 1, ; + Text_simplu1.ControlSource = "poArticol.um2", ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Lb_simplu1.Caption = "U.M. 2", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_valuta' AS clb_tx_simplu WITH ; + Left = 24, ; + Name = "Clb_valuta", ; + TabIndex = 5, ; + TabStop = .F., ; + Top = 180, ; + Text_simplu1.Alignment = 1, ; + Text_simplu1.ControlSource = "poArticol.nume_val", ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Lb_simplu1.Caption = "Valuta", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Ct_clb_venchelt' AS ct_clb_cautare_var WITH ; + cconditie = EMPTY(NVL(poArticol.id_venchelt,0)), ; + cprocedura = thisform.do_cauta_venchelt, ; + cvar_afisata = poArticol.explicatie_venchelt, ; + Height = 31, ; + Left = 23, ; + Name = "Ct_clb_venchelt", ; + TabIndex = 10, ; + Top = 319, ; + Width = 337, ; + shape_cautare.Height = 29, ; + shape_cautare.Left = 1, ; + shape_cautare.Name = "shape_cautare", ; + shape_cautare.Top = 1, ; + shape_cautare.Width = 290, ; + img_cautare.Left = 303, ; + img_cautare.Name = "img_cautare", ; + img_cautare.Top = 5, ; + lb_cautare.Caption = "Venit", ; + lb_cautare.Name = "lb_cautare", ; + tx_cautare.Left = 103, ; + tx_cautare.Name = "tx_cautare", ; + tx_cautare.Top = 4 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="container" /> + + PROCEDURE actualizare_preturi + *!* modificare v 2.0.20 + local lnPrecizie + lnPrecizie = iif(poArticol.moneda_nationala=1,gnPPretV,gnPVal) + *!* modificare v 2.0.20 ^ + If This.clb_pret.optProcent.Value = 1 && pret + If This.nPreturiCuTva = 1 + poArticol.pretctva = poArticol.Pret + poArticol.pretftva = Iif(!Empty(Nvl(poArticol.proc_tvav,0)),Round(Round(poArticol.Pret,lnPrecizie) / poArticol.proc_tvav, lnPrecizie),poArticol.pretctva) + Else + poArticol.pretftva = poArticol.Pret + poArticol.pretctva = Iif(!Empty(Nvl(poArticol.proc_tvav,0)),Round(Round(poArticol.Pret,lnPrecizie) + Round(poArticol.Pret,lnPrecizie) *(poArticol.proc_tvav -1),lnPrecizie),poArticol.pretftva) + Endif + Endif + This.Refresh + ENDPROC + + PROCEDURE Destroy + IF USED('crs_cote_tva') + USE IN 'crs_cote_tva' + ENDIF + + ENDPROC + + PROCEDURE do_cauta_venchelt + Local loCauta + loCauta = caut_venchelt() + If !Empty(Nvl(loCauta.id_venchelt,0)) + poArticol.id_venchelt = loCauta.id_venchelt + poArticol.explicatie_venchelt = loCauta.explicatie + Else + poArticol.id_venchelt = Null + poArticol.explicatie_venchelt = [] + Endif + Thisform.but_termin1.SetFocus() + ENDPROC + + PROCEDURE inainte_de_do_termin + Local plReturn + lccontrol = Upper(This.ActiveControl.BaseClass ) + If Inlist(lccontrol,"TEXTBOX","EDITBOX","COMBOBOX") + lcval=This.ActiveControl.ControlSource + &lcval=Thisform.ActiveControl.Value + Endif + + poArticol.procent = Thisform.clb_pret.optProcent.Value-1 + + *!* modificare 04.02.2008 + *!* Do Case + *!* *!* Case Empty(poArticol.Pret) + *!* *!* aMessagebox("Nu ati introdus pretul!",0+48,"Atentie") + *!* *!* Thisform.clb_pret.text_simplu1.SetFocus() + *!* *!* plReturn=.F. + *!* Case Empty(poArticol.proc_tvav) + *!* aMessagebox("Nu ati completat coeficietul de TVA!",0+48,"Atentie") + *!* Thisform.cb_tx_coef_tva.SetFocus() + *!* plReturn=.F. + *!* Otherwise + *!* plReturn=.T. + *!* Endcase + *!* modificare 04.02.2008 ^ + plReturn = .T. + + Return plReturn + + ENDPROC + + PROCEDURE Init + Lparameters tlEnabledOptPret, tnPreturiCuTva, tlModificare + DoDefault() + If Pcount()>=1 + Thisform.clb_pret.optProcent.Enabled=tlEnabledOptPret + Endif + Thisform.clb_pret.optProcent.Value=poArticol.procent+1 + IF poArticol.compus = 1 + Thisform.clb_pret.text_simplu1.ReadOnly= .T. + ELSE + Thisform.clb_pret.text_simplu1.ReadOnly= .f. + ENDIF + If Type('tnPreturiCuTva') = 'N' + This.nPreturiCuTva = tnPreturiCuTva + Else + This.nPreturiCuTva = 0 + Endif + + If This.nPreturiCuTva = 1 + This.clb_pret2.lb_SIMPLU1.Caption = 'Pret fara TVA' + This.clb_pret2.texT_SIMPLU1.ControlSource = "poArticol.pretftva" + Else + This.clb_pret2.lb_SIMPLU1.Caption = 'Pret cu TVA' + This.clb_pret2.texT_SIMPLU1.ControlSource = "poArticol.pretctva" + Endif + + If tlModificare + Select crs_cote_Tva + Locate For Nvl(proc_tva,0) = Nvl(poArticol.proc_tvav,0) + If !Found() + Go Top + *!* modificare v 2.0.10 + poArticol.proc_tvav = proc_tva + *!* modificare v 2.0.10 ^ + Endif + Else + Select crs_cote_Tva + Go Top + *!* modificare v 2.0.10 + poArticol.proc_tvav = proc_tva + *!* modificare v 2.0.10 ^ + Endif + Thisform.cb_tx_coef_tva._cbbase1.ListIndex = Recno('crs_cote_tva') + *!* modificare v 2.0.20 + Thisform.clb_pret.text_simplu1.InputMask = get_mask(14,iif(poArticol.moneda_nationala=1,gnPPretV,gnPVal)) + Thisform.clb_pret2.text_simplu1.InputMask = get_mask(14,iif(poArticol.moneda_nationala=1,gnPPretV,gnPVal)) + *!* modificare v 2.0.20 ^ + ENDPROC + + PROCEDURE Load + If Used('crs_cote_tva') + Use In 'crs_cote_tva' + Endif + If !Used('crs_cote_tva') + + *!* modificare v 2.0.10 : am adaugat order by + lcsel3 = [select procent,proc_tva from ] + gcS + [.vcote_tva where an = ?gnAn and luna = ?gnLuna order by proc_tva desc] + lccursor3 = [crs_cote_tva2] + lnsucces3 = goExecutor.oExecute(lcsel3,lccursor3) + If lnsucces3 < 0 + lcmesaj = goExecutor.cEroare + ofrm_er = Createobject('frm_mesaj','Eroare','exclam2.ico','Avertizare',lcmesaj) + ofrm_er.Show(1) + Release ofrm_er + Endif + + Create Cursor crs_cote_tva (procent C(100),proc_tva N(10,2) Null) + + Insert Into crs_cote_tva(procent,proc_tva) Select Alltrim(Str(procent,10,2)),proc_tva From crs_cote_Tva2 + + Select crs_cote_tva + Append Blank + Replace procent With [] + + Use In crs_cote_Tva2 + Endif + + ENDPROC + + PROCEDURE Cb_tx_coef_tva._cbbase1.InteractiveChange + Select crs_cote_tva + poArticol.proc_tvav = proc_tva + Thisform.actualizare_preturi() + + ENDPROC + + PROCEDURE Clb_pret.TEXT_SIMPLU1.Valid + thisform.actualizare_preturi() + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_pachet_articole AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="grid_pachet" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column1.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column1.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column3.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column3.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column4.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grid_pachet.Column4.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="txtPretPachet" UniqueID="" Timestamp="" /> + + * + *m: afisactual + * + + * + cgridsortlist = grid_pachet + Desktop = .T. + DoCreate = .T. + Height = 304 + Name = "frm_pachet_articole" + Width = 784 + _shape1.Height = 29 + _shape1.Left = 0 + _shape1.Name = "_shape1" + _shape1.Top = 0 + _shape1.Width = 786 + _shape2.Anchor = 9 + _shape2.Height = 29 + _shape2.Left = 691 + _shape2.Name = "_shape2" + _shape2.Top = 0 + _shape2.Width = 93 + Lb_titlu_alb_b121.Caption = "Pachet articole" + Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121" + BUT_TERMIN1.Anchor = 9 + BUT_TERMIN1.Left = 753 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.Top = 1 + Gridsort1.Left = 132 + Gridsort1.Name = "Gridsort1" + Gridsort1.Top = 10 + * + + ADD OBJECT 'But_nou1' AS but_nou WITH ; + Anchor = 9, ; + Left = 693, ; + Name = "But_nou1", ; + Top = 1 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_sterge1' AS but_sterge WITH ; + Anchor = 9, ; + Left = 723, ; + Name = "But_sterge1", ; + Top = 1 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'grid_pachet' AS _grdrow WITH ; + Anchor = 15, ; + ColumnCount = 4, ; + DeleteMark = .F., ; + Height = 228, ; + HighlightStyle = 2, ; + Left = 10, ; + Name = "grid_pachet", ; + Panel = 1, ; + RecordSource = "crsPachetArt", ; + Top = 38, ; + Width = 763, ; + Column1.ControlSource = "nume_articol", ; + Column1.Name = "Column1", ; + Column1.Width = 298, ; + Column2.ControlSource = "nume_lista_preturi", ; + Column2.Name = "Column2", ; + Column2.Width = 303, ; + Column3.ControlSource = "pret", ; + Column3.Format = "rk", ; + Column3.InputMask = (get_mask(20,MAX(gnPPretV,gnPVal))), ; + Column3.Name = "Column3", ; + Column3.Width = 75, ; + Column4.ControlSource = "nume_val", ; + Column4.Name = "Column4", ; + Column4.Width = 53 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grid_pachet.Column1.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol component", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pachet.Column1.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pachet.Column2.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Lista de preturi", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pachet.Column2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pachet.Column3.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pachet.Column3.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grid_pachet.Column4.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grid_pachet.Column4.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Label1' AS label WITH ; + Anchor = 12, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Total", ; + FontBold = .T., ; + Height = 17, ; + Left = 540, ; + Name = "Label1", ; + Top = 276, ; + Width = 30 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'txtPretPachet' AS textbox WITH ; + Anchor = 12, ; + ControlSource = "pnPretPachet", ; + Format = "rk", ; + Height = 23, ; + InputMask = (get_mask(14,MAX(gnPVal,gnPPretV))), ; + Left = 577, ; + Name = "txtPretPachet", ; + Top = 272, ; + Width = 122 + *< END OBJECT: BaseClass="textbox" /> + + PROCEDURE actualizeaza_grid1 + Lparameters lcFiltru + If Empty(lcFiltru) + lcFiltru = poPachetArt.ca_baza1.cfiltru + Endif + Thisform.MousePointer= 11 + Thisform.LockScreen=.T. + save_grid_tag(Thisform.grid_pachet) + poPachetArt.ca_baza1.cfiltru=lcFiltru + poPachetArt.ca_baza1.afisare() + restore_grid_tag(Thisform.grid_pachet) + Thisform.LockScreen=.F. + Thisform.MousePointer= 0 + If Reccount('crsPachetArt')>0 + Thisform.grid_pachet.SetFocus() + Endif + ENDPROC + + PROCEDURE afisactual + LOCAL lcTabel + lcTabel = thisform.grid_pachet.RecordSource + + SELECT (lcTabel) + CALCULATE SUM(pret) TO pnPretPachet + + thisform.txtPretPachet.Refresh + + ENDPROC + + PROCEDURE do_adauga + LOCAL lcTabel + + ***--------- combo liste preturi + PRIVATE pnId_lista + STORE 0 TO pnId_lista + + CREATE CURSOR cListePret (id_pol N(5), nume_lista_preturi C(100), datai D, DATAS D) + SELECT cListePret + INSERT INTO cListePret VALUES (0, "",{//},{//}) + + 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','crsListePret', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) + poListe_pret.ca_baza1.afisare() + + SELECT cListePret + APPEND FROM DBF("crsListePret") + ***--------- combo liste preturi + + + PRIVATE poPol_pret_art + STORE '' TO poPol_pret_art + + LOCAL lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza + lcSchema1 = [] + lcSelect1 = [select ppa.*, 0 as ales from vcrm_politici_pret_art ppa] + lcOrder1 = [nume_articol] + lcgroup = [] + lcFiltru1 = [1=2] + lcFiltruOriginal = [id_pol_art <> ]+ALLTRIM(STR(pnId_pachet)) + llModParam = .T. + llAfiseaza = .F. + + gencursor('poPol_pret_art','crsArtAles', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) + poPol_pret_art.ca_baza1.afisare() + + SELECT crsArtAles + loaa = CREATEOBJECT("frm_alege_articol") + loaa.SHOW(1) + + IF buton = 2 + RELEASE poPol_pret_art, poListe_pret + + IF USED("crsArtAles") + USE IN crsArtAles + ENDIF + IF USED("cArtAles") + USE IN cArtAles + ENDIF + + IF USED("crsListePret") + USE IN crsListePret + ENDIF + + IF USED("cListePret") + USE IN cListePret + ENDIF + + RETURN + ENDIF + + SELECT * FROM crsArtAles WITH (BUFFERING = .T.) WHERE ales = 1 INTO CURSOR cArtAles + + lcTabel = THISFORM.grid_pachet.RECORDSOURCE + SELECT (lcTabel) + APPEND FROM DBF("cArtAles") + *** + RELEASE poPol_pret_art, poListe_pret + + IF USED("crsArtAles") + USE IN crsArtAles + ENDIF + IF USED("cArtAles") + USE IN cArtAles + ENDIF + + IF USED("crsListePret") + USE IN crsListePret + ENDIF + + IF USED("cListePret") + USE IN cListePret + ENDIF + + THISFORM.grid_pachet.SETFOCUS + thisform.afisactual + + + ENDPROC + + PROCEDURE inainte_de_do_sterge + LOCAL lcTabel, lnRaspuns + lcTabel = THISFORM.grid_pachet.RECORDSOURCE + SELECT (lcTabel) + IF RECCOUNT() > 0 + lnRaspuns = AMESSAGEBOX("Doriti sa stergeti articolul ?",4+32,_SCREEN.CAPTION) + IF lnRaspuns = 7 + RETURN + ENDIF + + SELECT (lcTabel) + DELETE + ENDIF + + thisform.grid_pachet.Refresh + THISFORM.grid_pachet.SETFOCUS + thisform.afisactual + + + ENDPROC + + PROCEDURE Init + DODEFAULT() + thisform.afisactual + + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_politici_pret AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="But_listare1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataI.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataI.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cNume.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cNume.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataS.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataS.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cNume_val.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cNume_val.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cUtilizator.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cUtilizator.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataora.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cDataora.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.Column7.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.Column7.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cPreturi_cu_tva.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_pret.cPreturi_cu_tva.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_shape3" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ck_nume_lista_preturi" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ck_utilizator" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_reset1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ck_nume_val" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_copie" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ck_datai" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_modifica1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_detalii_politica" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cArticol.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cArticol.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cPret.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cPret.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUM.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUM.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cNume_val.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cNume_val.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUtilizator.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUtilizator.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cDataora.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cDataora.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.Column7.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.Column7._checkbox1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.Column8.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.Column8.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cExplicatie_venchelt.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cExplicatie_venchelt.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cCodmat.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cCodmat.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cCant_bax.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cCant_bax.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUM2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politici_art.cUM2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ck_datas" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="cmdArtCompus" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ck_active" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_excel1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_modiparam1" UniqueID="" Timestamp="" /> + + * + *m: do_modiparam + *p: cfiltru + * + + * + cfiltru = + cgridsortlist = grd_politici_pret,grd_politici_art + DoCreate = .T. + FontCharSet = 238 + Height = 582 + lactiv1 = .T. + lactiv2 = .T. + Name = "frm_politici_pret" + Width = 793 + _SHAPE1.Anchor = 10 + _SHAPE1.Height = 29 + _SHAPE1.Left = -1 + _SHAPE1.Name = "_SHAPE1" + _SHAPE1.Top = 0 + _SHAPE1.Width = 795 + _SHAPE2.Anchor = 8 + _SHAPE2.Height = 29 + _SHAPE2.Left = 546 + _SHAPE2.Name = "_SHAPE2" + _SHAPE2.Top = 0 + _SHAPE2.Width = 250 + LB_TITLU_ALB_B121.Caption = "LISTE DE PREȚURI" + LB_TITLU_ALB_B121.FontBold = .T. + LB_TITLU_ALB_B121.FontCharSet = 238 + LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121" + LB_TITLU_ALB_B121.TabIndex = 18 + BUT_TERMIN1.Anchor = 8 + BUT_TERMIN1.Left = 761 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 17 + BUT_TERMIN1.Top = 1 + Gridsort1.Name = "Gridsort1" + * + + ADD OBJECT '_shape3' AS _shape WITH ; + Anchor = 10, ; + BackStyle = 0, ; + Height = 60, ; + Left = 12, ; + Name = "_shape3", ; + Top = 36, ; + Width = 768 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="shape" /> + + ADD OBJECT 'But_copie' AS but_grafic WITH ; + Anchor = 9, ; + caction = do_copie, ; + cpicturedown = copy_jos.bmp, ; + cpictureup = copy_sus.bmp, ; + Left = 731, ; + Name = "But_copie", ; + Picture = ..\comun\grafice\copy_sus.bmp, ; + TabIndex = 16, ; + ToolTipText = "Copiere politica preturi", ; + Top = 1, ; + ZOrderSet = 13 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_excel1' AS but_excel WITH ; + Anchor = 8, ; + Left = 671, ; + Name = "But_excel1", ; + TabIndex = 14, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_listare1' AS but_listare WITH ; + Anchor = 8, ; + Left = 701, ; + Name = "But_listare1", ; + Picture = ..\comun\grafice\listare_sus.bmp, ; + TabIndex = 15, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_modifica1' AS but_modifica WITH ; + Anchor = 8, ; + caction = do_modifica, ; + Left = 580, ; + Name = "But_modifica1", ; + TabIndex = 11, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_modiparam1' AS but_modiparam WITH ; + Anchor = 8, ; + Left = 610, ; + Name = "But_modiparam1", ; + TabIndex = 12, ; + ToolTipText = "Actualizare cu ultimul pret de achizitie din rulaje", ; + Top = 1 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_nou1' AS but_nou WITH ; + Anchor = 8, ; + Left = 550, ; + Name = "But_nou1", ; + TabIndex = 10, ; + Top = 1 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_sterge1' AS but_sterge WITH ; + Anchor = 8, ; + caction = do_sterge, ; + Left = 640, ; + Name = "But_sterge1", ; + TabIndex = 13, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'ck_active' AS _checkbox WITH ; + Alignment = 0, ; + Caption = "Doar politicile active în lună", ; + Left = 230, ; + Name = "ck_active", ; + TabIndex = 6, ; + Top = 69 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Ck_datai' AS ck_filtru_numar WITH ; + Alignment = 0, ; + camp_nume = datai, ; + Caption = "Data început", ; + Left = 131, ; + Name = "Ck_datai", ; + TabIndex = 3, ; + tip = D, ; + Top = 44 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Ck_datas' AS ck_filtru_numar WITH ; + Alignment = 0, ; + camp_nume = datas, ; + Caption = "Data sfărșit", ; + Left = 131, ; + Name = "Ck_datas", ; + TabIndex = 4, ; + tip = D, ; + Top = 69 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'ck_nume_lista_preturi' AS ck_filtru_text WITH ; + Alignment = 0, ; + camp_nume = nume_lista_preturi, ; + Caption = "Listă prețuri", ; + Left = 30, ; + Name = "ck_nume_lista_preturi", ; + TabIndex = 1, ; + Top = 44 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Ck_nume_val' AS ck_filtru_text WITH ; + Alignment = 0, ; + camp_nume = nume_val, ; + Caption = "Valuta", ; + FontCharSet = 238, ; + Left = 30, ; + Name = "Ck_nume_val", ; + TabIndex = 2, ; + Top = 69 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Ck_utilizator' AS ck_filtru_text WITH ; + Alignment = 0, ; + camp_nume = utilizator, ; + Caption = "Utilizator", ; + FontCharSet = 238, ; + Left = 230, ; + Name = "Ck_utilizator", ; + TabIndex = 5, ; + Top = 44 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ; + Anchor = 8, ; + Left = 662, ; + Name = "Cmd_cauta1", ; + TabIndex = 7, ; + Top = 38 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Cmd_reset1' AS cmd_reset WITH ; + Anchor = 8, ; + Left = 662, ; + Name = "Cmd_reset1", ; + TabIndex = 19, ; + Top = 66 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'cmdArtCompus' AS commandbutton WITH ; + Caption = "Articol compus", ; + FontBold = .T., ; + FontSize = 10, ; + ForeColor = 0,64,128, ; + Height = 25, ; + Left = 672, ; + Name = "cmdArtCompus", ; + TabIndex = 21, ; + Top = 305, ; + Visible = .F., ; + Width = 108, ; + WordWrap = .F. + *< END OBJECT: BaseClass="commandbutton" /> + + ADD OBJECT 'grd_politici_art' AS _grdbase WITH ; + Anchor = 15, ; + ColumnCount = 12, ; + DeleteMark = .F., ; + FontSize = 10, ; + Height = 240, ; + HighlightStyle = 2, ; + Left = 12, ; + Name = "grd_politici_art", ; + Panel = 1, ; + RecordSource = "crspoliticiart", ; + RowHeight = 19, ; + TabIndex = 9, ; + Top = 333, ; + Width = 768, ; + Column1.ColumnOrder = 2, ; + Column1.ControlSource = "nume_articol", ; + Column1.FontName = "Arial", ; + Column1.FontSize = 10, ; + Column1.Name = "cArticol", ; + Column1.Visible = .T., ; + Column1.Width = 281, ; + Column2.BackColor = 222,252,254, ; + Column2.ColumnOrder = 6, ; + Column2.ControlSource = "pret", ; + Column2.FontName = "Arial", ; + Column2.FontSize = 10, ; + Column2.InputMask = (get_mask(14,gnPPretV)), ; + Column2.Name = "cPret", ; + Column2.Visible = .T., ; + Column2.Width = 69, ; + Column3.ColumnOrder = 3, ; + Column3.ControlSource = "um", ; + Column3.FontName = "Arial", ; + Column3.FontSize = 10, ; + Column3.Name = "cUM", ; + Column3.Visible = .T., ; + Column3.Width = 37, ; + Column4.ColumnOrder = 7, ; + Column4.ControlSource = "nume_val", ; + Column4.FontName = "Arial", ; + Column4.FontSize = 10, ; + Column4.Name = "cNume_val", ; + Column4.Visible = .T., ; + Column4.Width = 38, ; + Column5.ColumnOrder = 11, ; + Column5.ControlSource = "utilizator", ; + Column5.FontName = "Arial", ; + Column5.FontSize = 10, ; + Column5.Name = "cUtilizator", ; + Column5.Visible = .T., ; + Column5.Width = 135, ; + Column6.ColumnOrder = 12, ; + Column6.ControlSource = "dataora", ; + Column6.FontName = "Arial", ; + Column6.FontSize = 10, ; + Column6.Name = "cDataora", ; + Column6.Visible = .T., ; + Column6.Width = 95, ; + Column7.ColumnOrder = 10, ; + Column7.ControlSource = "art_compus", ; + Column7.FontName = "Arial", ; + Column7.FontSize = 10, ; + Column7.Name = "Column7", ; + Column7.ReadOnly = .T., ; + Column7.Sparse = .F., ; + Column7.Width = 90, ; + Column8.ColumnOrder = 8, ; + Column8.ControlSource = "proc_tvav", ; + Column8.FontName = "Arial", ; + Column8.FontSize = 10, ; + Column8.Format = "rk", ; + Column8.InputMask = "99.99", ; + Column8.Name = "Column8", ; + Column8.Width = 56, ; + Column9.ColumnOrder = 9, ; + Column9.ControlSource = "explicatie_venchelt", ; + Column9.FontName = "Arial", ; + Column9.FontSize = 10, ; + Column9.Name = "cExplicatie_venchelt", ; + Column9.Width = 100, ; + Column10.ColumnOrder = 1, ; + Column10.ControlSource = "codmat", ; + Column10.FontName = "Arial", ; + Column10.FontSize = 10, ; + Column10.Name = "cCodmat", ; + Column11.ColumnOrder = 4, ; + Column11.ControlSource = "cant_bax", ; + Column11.FontName = "Arial", ; + Column11.FontSize = 10, ; + Column11.InputMask = (get_mask(14,gnPcant)), ; + Column11.Name = "cCant_bax", ; + Column11.Width = 80, ; + Column12.ColumnOrder = 5, ; + Column12.ControlSource = "um2", ; + Column12.FontName = "Arial", ; + Column12.FontSize = 10, ; + Column12.Name = "cUM2", ; + Column12.Width = 40 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grd_politici_art.cArticol.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol", ; + FontCharSet = 238, ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cArticol.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cCant_bax.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cant./impach.", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cCant_bax.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cCodmat.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cod material", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cCodmat.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cDataora.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Data operarii", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cDataora.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cExplicatie_venchelt.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Venit / cheltuiala", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cExplicatie_venchelt.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cNume_val.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cNume_val.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.Column7._checkbox1' AS _checkbox WITH ; + Alignment = 2, ; + Caption = "", ; + Centered = .T., ; + FontName = "Arial", ; + FontSize = 10, ; + Left = 44, ; + Name = "_checkbox1", ; + ReadOnly = .T., ; + Top = 38 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'grd_politici_art.Column7.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol compus", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.Column8.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Proc. TVA", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.Column8.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cPret.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cPret.Text1' AS textbox WITH ; + BackColor = 222,252,254, ; + BorderStyle = 0, ; + FontBold = .F., ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cUM.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "U.M.", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cUM.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cUM2.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "U.M. 2", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cUM2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_art.cUtilizator.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Operator", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_art.cUtilizator.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255, ; + Visible = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret' AS _grdbase WITH ; + Anchor = 10, ; + ColumnCount = 8, ; + DeleteMark = .F., ; + FontSize = 10, ; + HeaderHeight = 19, ; + Height = 192, ; + HighlightStyle = 2, ; + Left = 12, ; + Name = "grd_politici_pret", ; + Panel = 1, ; + ReadOnly = .T., ; + RecordSource = "crspoliticipret", ; + RowHeight = 19, ; + TabIndex = 8, ; + Top = 108, ; + Width = 768, ; + Column1.ColumnOrder = 2, ; + Column1.ControlSource = "datai", ; + Column1.FontName = "Arial", ; + Column1.FontSize = 10, ; + Column1.Name = "cDataI", ; + Column1.ReadOnly = .T., ; + Column1.Width = 73, ; + Column2.ColumnOrder = 1, ; + Column2.ControlSource = "nume_lista_preturi", ; + Column2.FontName = "Arial", ; + Column2.FontSize = 10, ; + Column2.Name = "cNume", ; + Column2.ReadOnly = .T., ; + Column2.Width = 323, ; + Column3.ColumnOrder = 3, ; + Column3.ControlSource = "datas", ; + Column3.FontName = "Arial", ; + Column3.FontSize = 10, ; + Column3.Name = "cDataS", ; + Column3.ReadOnly = .T., ; + Column3.Width = 67, ; + Column4.ColumnOrder = 4, ; + Column4.ControlSource = "nume_val", ; + Column4.FontName = "Arial", ; + Column4.FontSize = 10, ; + Column4.Name = "cNume_val", ; + Column4.ReadOnly = .T., ; + Column4.Width = 43, ; + Column5.ColumnOrder = 7, ; + Column5.ControlSource = "utilizator", ; + Column5.FontName = "Arial", ; + Column5.FontSize = 10, ; + Column5.Name = "cUtilizator", ; + Column5.ReadOnly = .T., ; + Column5.Width = 143, ; + Column6.ColumnOrder = 8, ; + Column6.ControlSource = "dataora", ; + Column6.FontName = "Arial", ; + Column6.FontSize = 10, ; + Column6.Name = "cDataora", ; + Column6.ReadOnly = .T., ; + Column6.Width = 95, ; + Column7.ColumnOrder = 5, ; + Column7.ControlSource = "notaContab", ; + Column7.FontName = "Arial", ; + Column7.FontSize = 10, ; + Column7.Name = "Column7", ; + Column7.ReadOnly = .T., ; + Column7.Width = 142, ; + Column8.ColumnOrder = 6, ; + Column8.ControlSource = "preturi_cu_tva", ; + Column8.FontName = "Arial", ; + Column8.FontSize = 10, ; + Column8.Name = "cPreturi_cu_tva", ; + Column8.ReadOnly = .T., ; + Column8.Sparse = .F., ; + Column8.Width = 88 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grd_politici_pret.cDataI.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Data inceput", ; + FontCharSet = 238, ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cDataI.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.cDataora.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Data operarii", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cDataora.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.cDataS.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Data sfarsit", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cDataS.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.cNume.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Denumire lista de preturi", ; + FontCharSet = 238, ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cNume.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.cNume_val.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cNume_val.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.Column7.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Nota contabila", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.Column7.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politici_pret.cPreturi_cu_tva.Check1' AS checkbox WITH ; + Alignment = 2, ; + Caption = "", ; + Centered = .T., ; + FontName = "Arial", ; + FontSize = 10, ; + Height = 17, ; + Left = 26, ; + Name = "Check1", ; + ReadOnly = .T., ; + Top = 23, ; + Width = 60 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'grd_politici_pret.cPreturi_cu_tva.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Preturi cu TVA", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cUtilizator.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Operator", ; + FontName = "Arial", ; + FontSize = 10, ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politici_pret.cUtilizator.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + FontSize = 10, ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'lb_detalii_politica' AS lb_simplu WITH ; + Anchor = 3, ; + Caption = "Detalii listă prețuri", ; + Left = 11, ; + Name = "lb_detalii_politica", ; + TabIndex = 20, ; + Top = 314 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + PROCEDURE actualizeaza_grid1 + Lparameters lcFiltru + If Empty(lcFiltru) + lcFiltru = popolitici.ca_baza1.cfiltru + Endif + Thisform.MousePointer= 11 + Thisform.LockScreen=.T. + save_grid_tag(Thisform.grd_politici_pret) + popolitici.ca_baza1.cfiltru=lcFiltru + popolitici.ca_baza1.afisare() + restore_grid_tag(Thisform.grd_politici_pret) + Thisform.LockScreen=.F. + Thisform.MousePointer= 0 + If Reccount('crspoliticipret')>0 + Thisform.grd_politici_pret.SetFocus() + Endif + ENDPROC + + PROCEDURE actualizeaza_grid2 + Lparameters lcFiltru + If Empty(lcFiltru) + lcFiltru = popoliticiart.ca_baza1.cfiltru + Endif + Thisform.MousePointer= 11 + Thisform.LockScreen=.T. + Thisform.grd_politici_art.salveaza_grid() + popoliticiart.ca_baza1.cfiltru=lcFiltru + popoliticiart.ca_baza1.afisare() + Thisform.grd_politici_art.cpret.InputMask = get_mask(14,Iif(Reccount('crspoliticipret')>0,Iif(crspoliticipret.moneda_nationala=1,gnPPretV,gnPVal),gnPPretV)) + Thisform.grd_politici_art.incarca_grid() + Thisform.LockScreen=.F. + Thisform.MousePointer= 0 + ENDPROC + + PROCEDURE do_adauga + Private pniesire + pniesire=0 + If Used('crspolitica_curenta') + Use In crspolitica_curenta + Endif + update_articole() + Select a.* From crspoliticiart a Where 1=2 Into Cursor crspolitica_curenta Readwrite + Select crspoliticipret + + + Scatter Name loRec Blank + loRec.datai=Ttod(get_ora()) + loRec.Id_sucursala=gnIdSucursala + Do Adauga_Modifica_Inregistrare With "politici_pret",loRec,,"INSERT" + If pniesire=1 + This.actualizeaza_grid1() + Select crspoliticipret + Locate For datai=loRec.datai And nume_lista_preturi=loRec.nume_lista_preturi + Thisform.grd_politici_pret.SetFocus() + Endif + + ENDPROC + + PROCEDURE do_cauta + Local lcFiltru, lcFiltruList + lcFiltru = [2=2] + lcFiltruList = [2=2] + + If Thisform.ck_datai.Value=1 + lcFiltru = lcFiltru + Thisform.ck_datai.filtru + lcFiltruList = lcFiltruList + thisform.ck_datai.filtru_vfp + Endif + + If Thisform.ck_datas.Value=1 + lcFiltru = lcFiltru + Thisform.ck_datas.filtru + lcFiltruList = lcFiltruList + thisform.ck_datas.filtru_vfp + Endif + + If Thisform.ck_nume_lista_preturi.Value=1 + lcFiltru = lcFiltru + Thisform.ck_nume_lista_preturi.filtru + lcFiltruList = lcFiltruList + thisform.ck_nume_lista_preturi.filtru + Endif + + If Thisform.ck_nume_val.Value=1 + lcFiltru = lcFiltru + Thisform.ck_nume_val.filtru + lcFiltruList = lcFiltruList + thisform.ck_nume_val.filtru + Endif + + If Thisform.ck_utilizator.Value=1 + lcFiltru = lcFiltru + Thisform.ck_utilizator.filtru + lcFiltruList = lcFiltruList + thisform.ck_utilizator.filtru + Endif + + *!* modificare v 2.0.14 + If Thisform.ck_active.Value = 1 + lcFiltru = lcFiltru + [ and least(NVL(last_day(to_date('] + ALLTRIM(STR(m.gnAn)) + PADL(m.gnLuna,2,'0') + [','YYYYMM')),sysdate),sysdate) between datai and ] + ; + [NVL(datas, to_date('300012', 'YYYYMM'))] + lcFiltruList = lcFiltruList + [ and least(NVL(last_day(to_date('] + ALLTRIM(STR(m.gnAn)) + PADL(m.gnLuna,2,'0') + [','YYYYMM')),sysdate),sysdate) between datai and ] + ; + [NVL(datas, to_date('300012', 'YYYYMM'))] + Endif + *!* modificare v 2.0.14 ^ + + thisform.cFiltru = lcFiltruList + Thisform.actualizeaza_grid1(lcFiltru+gcCondSucursala) + + If Reccount('crspoliticipret')=0 + aMessagebox('Cautarea nu a intors rezultate!',0+48,'Info cautare') + Thisform.ck_datai.SetFocus() + Else + Thisform.grd_politici_pret.SetFocus() + Endif + ENDPROC + + PROCEDURE do_copie + PRIVATE pnId_pol + LOCAL lcAlias, lnRaspuns + lcAlias = thisform.grd_politici_pret.RecordSource + SELECT (lcAlias) + IF RECCOUNT()>0 + SCATTER NAME poPol_copy + pnId_pol = id_pol + + lnRaspuns = AMESSAGEBOX("Doriti sa copiati politica de preturi " + ALLTRIM(poPol_copy.nume_lista_preturi) + "?",4+32,"Copiere politica de preturi") + IF lnRaspuns = 7 && 7 = No ; 6 = Yes + RETURN + Else + *!* modificare 2.0.5 + lnRaspuns = amessagebox("Doriti sa schimbati valuta de pe aceasta politica de preturi?"+; + Chr(13)+Chr(10)+Chr(13)+Chr(10)+; + "ATENTIE! Se va modifica doar valuta de pe toate articolele din lista, dar nu se va face conversia in noua valuta.",4+32,"Schimbare valuta politica de preturi") + If lnRaspuns = 6 + loCauta = caut_valuta() + If gnButon = 1 + lcIdValuta = Alltrim(Str(loCauta.id_valuta)) + Else + lcIdValuta = [NULL] + endif + Else + lcIdValuta = [NULL] + EndIf + lcSql = [begin pack_preturi.copiaza_politica(]+ALLTRIM(STR(pnId_pol))+[,] + lcIdValuta + [,]+ALLTRIM(STR(gnIdUtil))+[); end;] + *!* lcSql = [begin pack_preturi.copie_politica(]+ALLTRIM(STR(pnId_pol))+[,]+ALLTRIM(STR(gnIdUtil))+[); end;] + *!* modificare 2.0.5 ^ + lnSucces = goExecutor.oExecute(lcSql) + + IF lnSucces < 0 + aMESSAGEBOX('pack_preturi.copie_politica'+goExecutor.cEroare,0+16,"Eroare") + RETURN + ELSE + WAIT WINDOW "S-a copiat politica de preturi..." NOWAIT + ENDIF + + SELECT (lcAlias) + THISFORM.actualizeaza_grid1() + + SELECT (lcAlias) + LOCATE FOR id_pol = pnId_pol + + THISFORM.grd_politici_pret.SETFOCUS + ENDIF + ENDIF + + ENDPROC + + PROCEDURE do_excel + If Reccount(Thisform.grd_politici_pret.RecordSource) > 0 + Local lcNumeFisier + Select (Thisform.grd_politici_pret.RecordSource) + lcNumeFisier = Strtran(Alltrim(nume_lista_preturi),[ ],[_]) + goExport.export2xls(Thisform.grd_politici_art.RecordSource, lcNumeFisier) + Else + amessagebox("Nu ati ales politica!",48,"Atentie") + Endif + + ENDPROC + + PROCEDURE do_listare + x= xmenu('\ 0 + Select crspoliticipret + lnIdPol = id_pol + lcSql = [select * from ] + gcS + [.CRM_VRAP_POLITICI where id_pol = ] + Alltrim(Str(lnIdPol)) + ; + [ order by id_pol,nume_lista_preturi, id_pol, nume_articol] + lcRaport = [rap_liste] + Else + amessagebox("Nu este selectata politica!",48,"Atentie") + Return + Endif + Case x = 2 + lcSql = [select * from ] + gcS + [.CRM_VRAP_POLITICI order by nume_lista_preturi,id_pol, nume_articol] + lcRaport = [rap_liste] + Case x = 3 + lcSql = [select * from ] + gcS + [.CRM_VRAP_POL_SUBGRUPE order by nume_lista_preturi,id_pol,subgrupa,id_subgrupa,nume_articol] + && modificare v 2.0.4 [nume_lista_preturi, subgrupa, nume_articol] + lcRaport = [rap_liste_subgrupe] + Case x = 4 + lcSql = [select * from ] + gcS + [.CRM_VRAP_POL_CURENTE_SUBGRUPE order by nume_lista_preturi,id_pol,subgrupa,id_subgrupa,nume_articol] + && modificare v 2.0.4 [nume_lista_preturi, subgrupa, nume_articol] + lcRaport = [rap_liste_subgrupe] + Endcase + + lcCursor = [crsListe] + *!* modificare v 2.0.18 + *!* pcDataOra = get_ora(2) + *!* modificare v 2.0.18 ^ + If Used(lcCursor) + Use In (lcCursor) + Endif + lnSucces = goExecutor.oExecute(lcSql,lcCursor) + If lnSucces < 0 + amessagebox(goExecutor.oPrelucrareEroare(),0+16,"Eroare") + Else + Thisform.AlwaysOnTop = .F. + *!* modificare v 2.0.18 + goExport.export2frx(lcCursor,lcRaport) + *!* Select (lcCursor) + *!* Keyboard "{CTRL+F10}" + *!* Report Form (lcRaport) To Printer Prompt Preview + *!* modificare v 2.0.18 ^ + Thisform.AlwaysOnTop=.T. + + If Used(lcCursor) + Use In (lcCursor) + Endif + Endif + Release pcDataOra, lnIdPol + Endif + + ENDPROC + + PROCEDURE do_modifica + If Reccount('crspoliticipret')>0 + Local loRec + Private pniesire + pniesire=0 + If Used('crspolitica_curenta') + Use In crspolitica_curenta + Endif + update_articole() + Select crspoliticipret + Scatter Name loRec + Select a.* From crspoliticiart a ; + INTO Cursor crspolitica_curenta Readwrite + Do Adauga_Modifica_Inregistrare With "politici_pret",loRec,loRec.id_pol,"UPDATE" + If pniesire=1 + This.actualizeaza_grid1() + Endif + Select crspoliticipret + Locate For id_pol=loRec.id_pol + Thisform.grd_politici_pret.SetFocus() + Endif + + ENDPROC + + PROCEDURE do_modiparam + If Reccount('crspoliticipret')>0 + Local loRec + Private pniesire + pniesire=0 + Select crspoliticipret + Scatter Name loRec + loFrm = createobject("frm_politici_pret_rul",loRec) + loFrm.Show(1) + If pniesire=1 + This.actualizeaza_grid2() + Endif + Thisform.grd_politici_pret.SetFocus() + Endif + ENDPROC + + PROCEDURE do_reset + With Thisform + For i=1 To .Objects.Count + If Upper(.Objects(i).BaseClass)='CHECKBOX' + .Objects(i).Value=0 + Endif + Endfor + Endwith + Thisform.ck_datai.SetFocus() + + ENDPROC + + PROCEDURE do_sterge + If Reccount('crspoliticipret')>0 + Local loRec + Select crspoliticipret + Scatter Name loRec + *!* modificare v 2.0.5 + *!* Do STERGE_INREGISTRARE With "politici_pret",loRec.id_pol + *!* If gnButon = 1 + *!* This.actualizeaza_grid1() + *!* Endif + lnRecNo = Recno() + If verifica_politica(loRec.id_pol,2) + Do STERGE_INREGISTRARE With "politici_pret",loRec.id_pol + If gnButon = 1 + This.actualizeaza_grid1() + lnRecCount = Reccount('crspoliticipret') + If lnRecCount > 0 + Select crspoliticipret + Go Min(lnRecNo,lnRecCount) + Endif + Thisform.grd_politici_pret.SetFocus() + Endif + Endif + *!* modificare v 2.0.5 ^ + Endif + ENDPROC + + PROCEDURE Init + DoDefault() + *!* modificare v 2.0.15 + If Nvl(gnAvertizareRetetaPrinc,0) = 1 + Thisform.grd_politici_art.SetAll("DynamicForeColor","IIF(reteta_principala=1,RGB(0,0,255),RGB(0,0,0))","Column") + Endif + *!* modificare v 2.0.15 + Thisform.actualizeaza_grid1() + Thisform.actualizeaza_grid2() + Thisform.WindowState = 2 + ENDPROC + + PROCEDURE cmdArtCompus.Click + PRIVATE pnPretPachet, pnId_pachet + STORE 0 TO pnPretPachet, pnId_pachet + + LOCAL lctabel, lnId_pol_art + lctabel = THISFORM.grd_politici_art.RECORDSOURCE && grid jos + STORE 0 TO lnId_pol_art + + SELECT (lctabel) + IF RECCOUNT()>0 + pnId_pachet = id_pol_art + lcNume_pachet = UPPER(ALLTRIM(nume_articol)) + + PRIVATE poPachetArt + STORE '' TO poPachetArt + + LOCAL lcSchema1, lcSelect1, lcOrder1, lcFiltru1, llAfiseaza + lcSchema1 = [] + lcSelect1 = [select * from vcrm_pachete_articole] + lcOrder1 = [denumire] + lcgroup = [] + lcFiltru1 = [2=2] + lcFiltruOriginal = [id_pachet=] + ALLTRIM(STR(pnId_pachet)) + llModParam = .T. + llAfiseaza = .F. + + gencursor('poPachetArt','crsPachetArt', lcSelect1, lcFiltru1, lcSchema1, lcOrder1, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal) + poPachetArt.ca_baza1.afisare() + + SELECT crsPachetArt + lopa = CREATEOBJECT("frm_pachet_articole") + lopa.lb_titlu_alb_b121.caption = "Pachet de articole: " + lcNume_pachet + lopa.SHOW(1) + + lcSql = [begin pack_preturi.sterge_pachetArticole(]+ALLTRIM(STR(pnId_pachet))+[,]+ALLTRIM(STR(gnIdUtil))+[); end;] + lnSucces = goExecutor.oExecute(lcSql) + IF lnSucces < 0 + aMESSAGEBOX('pack_preturi.sterge_pachetArticole'+goExecutor.cEroare,0+16,"Eroare") + RETURN + ENDIF + + SELECT crsPachetArt + SCAN + lnId_pol_art = id_pol_art + lcSql = [begin pack_preturi.adauga_pachetArticol(]+ALLTRIM(STR(pnId_pachet))+[,]+ALLTRIM(STR(lnId_pol_art))+ [,] + ALLTRIM(STR(gnIdUtil))+[); end;] + lnSucces = goExecutor.oExecute(lcSql) + IF lnSucces < 0 + aMESSAGEBOX('pack_preturi.adauga_pachetArticol'+goExecutor.cEroare,0+16,"Eroare") + RETURN + ENDIF + + SELECT crsPachetArt + ENDSCAN + + + RELEASE poPachetArt + IF USED("crsPachetArt") + USE IN crsPachetArt + ENDIF + + lcSql = [begin pack_preturi.modifica_pret_pol_pret_art(]+ALLTRIM(STR(pnId_pachet))+[,]+ALLTRIM(STR(pnPretPachet))+[); end;] + lnSucces = goExecutor.oExecute(lcSql) + IF lnSucces < 0 + aMESSAGEBOX('pack_preturi.modifica_pret_pol_pret_art'+goExecutor.cEroare,0+16,"Eroare") + RETURN + ENDIF + + THISFORM.grd_politici_pret.AFTERROWCOLCHANGE + ENDIF + + + ENDPROC + + PROCEDURE grd_politici_pret.AfterRowColChange + Lparameters nColIndex + If This.RowColChange<>2 + Local lnIdPol + Select crspoliticipret + lnIdPol=id_pol + lcNume=nume_lista_preturi + lcPerioada=Iif(!Empty(Nvl(datai,{})),Dtoc(datai),[//])+[ - ]+Iif(!Empty(Nvl(DataS,{})),Dtoc(DataS),[//]) + lcFiltru=[id_pol=]+Alltrim(Str(lnIdPol)) + Thisform.actualizeaza_grid2(lcFiltru) + Thisform.lb_detalii_politica.Caption="Detalii lista de preturi "+Alltrim(lcNume)+" ( "+lcPerioada+" ) " + Endif + + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_politici_pret_nou AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Clb_nume" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cArticol.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cArticol.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cUM.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cUM.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cCodmat.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cCodmat.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cCant_bax.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cCant_bax.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cUM2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_articole.cUM2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cArticol.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cArticol.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cUM.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cUM.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cPret.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cPret.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cValuta.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cValuta.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cCodmat.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cCodmat.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.Column6.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.Column6.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cExplicatie_venchelt.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cExplicatie_venchelt.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cCant_bax.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cCant_bax.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cUM2.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_politica_curenta.cUM2.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_urmator1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_precedent1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Lb_simplu2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cus_odata_politici_pret1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="txtArticoleLista" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ck_preturi_cu_tva" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_modifica1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ct_clb_valuta" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ct_clb_notaContab" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Lb_articole" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="txtArticole" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_codmat" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="txtCodmat" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ct_codmat" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ct_articole" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_reset1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_valabilitate" UniqueID="" Timestamp="" /> + + * + *m: do_alege_notacontab + *m: do_alege_valuta + *m: do_creeaza_filtru + *p: cnewvalue + *p: cnume_val && Numele valutei alese. + *p: coldvalue + *p: loperatiipermise + *p: nid + *p: nid_valuta && Id-ul valutei pentru politica de preturi. + *p: orec + * + + * + cgridsortlist = grd_articole,grd_politica_curenta + cnewvalue = + cnume_val = + coldvalue = + DoCreate = .T. + Height = 586 + lactiv3 = .T. + loperatiipermise = .T. + Name = "frm_politici_pret_nou" + nid_valuta = 0 + Width = 781 + WindowState = 2 + _shape1.Anchor = 10 + _shape1.Height = 29 + _shape1.Left = 0 + _shape1.Name = "_shape1" + _shape1.Top = 0 + _shape1.Width = 780 + _shape2.Height = 29 + _shape2.Left = 720 + _shape2.Name = "_shape2" + _shape2.Top = 0 + _shape2.Width = 61 + Lb_titlu_alb_b121.Caption = "LISTĂ DE PREȚURI" + Lb_titlu_alb_b121.FontBold = .T. + Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121" + Lb_titlu_alb_b121.TabIndex = 19 + BUT_TERMIN1.Anchor = 8 + BUT_TERMIN1.Height = 27 + BUT_TERMIN1.Left = 751 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 16 + BUT_TERMIN1.Top = 1 + BUT_TERMIN1.Width = 30 + Gridsort1.Name = "Gridsort1" + * + + ADD OBJECT 'But_modifica1' AS but_modifica WITH ; + Anchor = 8, ; + Left = 729, ; + Name = "But_modifica1", ; + TabIndex = 21, ; + Top = 191, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_precedent1' AS but_precedent WITH ; + Left = 327, ; + Name = "But_precedent1", ; + TabIndex = 15, ; + Top = 318 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_renunt1' AS but_renunt WITH ; + Anchor = 8, ; + Height = 27, ; + Left = 721, ; + Name = "But_renunt1", ; + TabIndex = 17, ; + Top = 1, ; + Width = 30 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_reset1' AS but_reset WITH ; + Left = 312, ; + Name = "But_reset1", ; + TabIndex = 24, ; + Top = 164 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_urmator1' AS but_urmator WITH ; + Left = 327, ; + Name = "But_urmator1", ; + TabIndex = 13, ; + Top = 281 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'ck_preturi_cu_tva' AS checkbox WITH ; + Alignment = 0, ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Prețuri cu TVA", ; + ControlSource = "porec.preturi_cu_tva", ; + FontCharSet = 238, ; + FontSize = 10, ; + Height = 18, ; + Left = 401, ; + Name = "ck_preturi_cu_tva", ; + TabIndex = 5, ; + Top = 78, ; + Width = 104 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT 'Clb_nume' AS clb_tx_simplu WITH ; + Height = 29, ; + Left = 23, ; + Name = "Clb_nume", ; + TabIndex = 1, ; + Top = 42, ; + Width = 579, ; + Text_simplu1.Alignment = 3, ; + Text_simplu1.ControlSource = "porec.nume_lista_preturi", ; + Text_simplu1.Height = 23, ; + Text_simplu1.Left = 101, ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.Top = 3, ; + Text_simplu1.Width = 474, ; + Lb_simplu1.Caption = "Nume", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_valabilitate' AS clb_n1n2_simplu WITH ; + Height = 29, ; + Left = 23, ; + Name = "Clb_valabilitate", ; + TabIndex = 2, ; + Top = 70, ; + Width = 312, ; + tx_n1.ControlSource = "porec.datai", ; + tx_n1.Left = 152, ; + tx_n1.Name = "tx_n1", ; + tx_n1.Top = 2, ; + Lb_simplu1.Caption = "Valabilitate", ; + Lb_simplu1.Name = "Lb_simplu1", ; + tx_n2.ControlSource = "porec.datas", ; + tx_n2.Left = 232, ; + tx_n2.Name = "tx_n2", ; + tx_n2.Top = 2 + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'ct_articole' AS criteriu_text WITH ; + Height = 24, ; + Left = 95, ; + Name = "ct_articole", ; + RowSource = "incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5,nu are valori,6,are valori,7,toate,8", ; + TabIndex = 10, ; + Top = 193, ; + Value = 1, ; + Width = 84 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="combobox" /> + + ADD OBJECT 'Ct_clb_notaContab' AS ct_clb_cautare_var WITH ; + cconditie = Empty(NVL(poRec.id_nota,0)), ; + cprocedura = Thisform.do_alege_notacontab, ; + cvar_afisata = porec.notaContab, ; + Left = 22, ; + Name = "Ct_clb_notaContab", ; + TabIndex = 4, ; + Top = 125, ; + SHAPE_CAUTARE.Name = "SHAPE_CAUTARE", ; + IMG_CAUTARE.Name = "IMG_CAUTARE", ; + LB_CAUTARE.Caption = "Nota contabilă", ; + LB_CAUTARE.Left = 10, ; + LB_CAUTARE.Name = "LB_CAUTARE", ; + LB_CAUTARE.Top = 7, ; + TX_CAUTARE.Left = 125, ; + TX_CAUTARE.Name = "TX_CAUTARE", ; + TX_CAUTARE.Top = 4 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="container" /> + + ADD OBJECT 'Ct_clb_valuta' AS ct_clb_cautare_var WITH ; + cconditie = Empty(NVL(poRec.id_valuta,0)), ; + cprocedura = Thisform.do_alege_valuta, ; + cvar_afisata = porec.nume_val, ; + Left = 22, ; + Name = "Ct_clb_valuta", ; + TabIndex = 3, ; + Top = 97, ; + SHAPE_CAUTARE.Name = "SHAPE_CAUTARE", ; + IMG_CAUTARE.Name = "IMG_CAUTARE", ; + LB_CAUTARE.Caption = "Valuta", ; + LB_CAUTARE.Left = 10, ; + LB_CAUTARE.Name = "LB_CAUTARE", ; + LB_CAUTARE.Top = 7, ; + TX_CAUTARE.Left = 125, ; + TX_CAUTARE.Name = "TX_CAUTARE", ; + TX_CAUTARE.Top = 4 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="container" /> + + ADD OBJECT 'ct_codmat' AS criteriu_text WITH ; + Height = 24, ; + Left = 95, ; + Name = "ct_codmat", ; + RowSource = "incepe cu...,1,este...,2,nu este...,3,contine...,4,nu contine...,5,nu are valori,6,are valori,7,toate,8", ; + TabIndex = 8, ; + Top = 167, ; + Value = 2, ; + Width = 84 + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="combobox" /> + + ADD OBJECT 'Cus_odata_politici_pret1' AS cus_odata_politici_pret WITH ; + Left = 660, ; + Name = "Cus_odata_politici_pret1", ; + Top = 48 + *< END OBJECT: ClassLib="onom_preturi.vcx" BaseClass="custom" /> + + ADD OBJECT 'grd_articole' AS _grdrow WITH ; + Anchor = 7, ; + ColumnCount = 5, ; + DeleteMark = .F., ; + Height = 355, ; + HighlightStyle = 2, ; + Left = 18, ; + Name = "grd_articole", ; + Panel = 1, ; + RecordSource = "v_articole", ; + TabIndex = 12, ; + Top = 221, ; + Width = 300, ; + Column1.ColumnOrder = 2, ; + Column1.ControlSource = "nume_articol", ; + Column1.FontName = "Arial", ; + Column1.Name = "cArticol", ; + Column1.ReadOnly = .T., ; + Column1.Width = 162, ; + Column2.ColumnOrder = 3, ; + Column2.ControlSource = "um", ; + Column2.FontName = "Arial", ; + Column2.Name = "cUM", ; + Column2.ReadOnly = .T., ; + Column2.Width = 51, ; + Column3.ColumnOrder = 1, ; + Column3.ControlSource = "codmat", ; + Column3.FontName = "Arial", ; + Column3.Name = "cCodmat", ; + Column3.ReadOnly = .T., ; + Column3.Width = 75, ; + Column4.ControlSource = "cant_bax", ; + Column4.FontName = "Arial", ; + Column4.InputMask = (get_mask(14,gnPcant)), ; + Column4.Name = "cCant_bax", ; + Column4.Width = 60, ; + Column5.ControlSource = "um2", ; + Column5.FontName = "Arial", ; + Column5.Name = "cUM2", ; + Column5.Width = 40 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grd_articole.cArticol.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_articole.cArticol.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_articole.cCant_bax.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cant./impach.", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_articole.cCant_bax.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_articole.cCodmat.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cod material", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_articole.cCodmat.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_articole.cUM.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "U.M.", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_articole.cUM.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_articole.cUM2.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "U.M. 2", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_articole.cUM2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta' AS _grdrow WITH ; + Anchor = 15, ; + ColumnCount = 9, ; + DeleteMark = .F., ; + Height = 355, ; + HighlightStyle = 2, ; + Left = 368, ; + Name = "grd_politica_curenta", ; + Panel = 1, ; + ReadOnly = .T., ; + RecordSource = "crspolitica_curenta", ; + TabIndex = 14, ; + Top = 221, ; + Width = 396, ; + Column1.ColumnOrder = 2, ; + Column1.ControlSource = "nume_articol", ; + Column1.FontName = "Arial", ; + Column1.Name = "cArticol", ; + Column1.ReadOnly = .T., ; + Column1.Width = 147, ; + Column2.ColumnOrder = 3, ; + Column2.ControlSource = "um", ; + Column2.FontName = "Arial", ; + Column2.Name = "cUM", ; + Column2.ReadOnly = .T., ; + Column2.Width = 46, ; + Column3.ColumnOrder = 6, ; + Column3.ControlSource = "pret", ; + Column3.FontName = "Arial", ; + Column3.InputMask = (get_mask(14,gnPPretV)), ; + Column3.Name = "cPret", ; + Column3.ReadOnly = .T., ; + Column3.Width = 62, ; + Column4.ColumnOrder = 7, ; + Column4.ControlSource = "explicatie", ; + Column4.FontName = "Arial", ; + Column4.Name = "cValuta", ; + Column4.ReadOnly = .T., ; + Column4.Width = 38, ; + Column5.ColumnOrder = 1, ; + Column5.ControlSource = "codmat", ; + Column5.FontName = "Arial", ; + Column5.Name = "cCodmat", ; + Column5.ReadOnly = .T., ; + Column5.Width = 75, ; + Column6.ColumnOrder = 8, ; + Column6.ControlSource = "proc_tvav", ; + Column6.FontName = "Arial", ; + Column6.Format = "rk", ; + Column6.InputMask = "99.99", ; + Column6.Name = "Column6", ; + Column6.ReadOnly = .T., ; + Column6.Width = 51, ; + Column7.ColumnOrder = 9, ; + Column7.ControlSource = "explicatie_venchelt", ; + Column7.FontName = "Arial", ; + Column7.Name = "cExplicatie_venchelt", ; + Column7.ReadOnly = .T., ; + Column7.Width = 91, ; + Column8.ColumnOrder = 4, ; + Column8.ControlSource = "cant_bax", ; + Column8.FontName = "Arial", ; + Column8.InputMask = (get_mask(14,gnPcant)), ; + Column8.Name = "cCant_bax", ; + Column8.ReadOnly = .T., ; + Column8.Width = 59, ; + Column9.ColumnOrder = 5, ; + Column9.ControlSource = "um2", ; + Column9.FontName = "Arial", ; + Column9.Name = "cUM2", ; + Column9.ReadOnly = .T., ; + Column9.Width = 39 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grd_politica_curenta.cArticol.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cArticol.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + Enabled = .T., ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cCant_bax.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cant./impach.", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cCant_bax.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cCodmat.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cod material", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cCodmat.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cExplicatie_venchelt.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Venit / cheltuiala", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cExplicatie_venchelt.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.Column6.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Proc. TVA", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.Column6.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cPret.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cPret.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cUM.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "UM", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cUM.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cUM2.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "U.M. 2", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cUM2.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_politica_curenta.cValuta.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + FontName = "Arial", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_politica_curenta.cValuta.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T., ; + SelectedBackColor = 100,185,255 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Lb_articole' AS lb_simplu WITH ; + Caption = "Articol", ; + Left = 20, ; + Name = "Lb_articole", ; + TabIndex = 22, ; + Top = 197 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'lb_codmat' AS lb_simplu WITH ; + Caption = "Cod material", ; + Left = 20, ; + Name = "lb_codmat", ; + TabIndex = 23, ; + Top = 171 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'Lb_simplu2' AS lb_simplu WITH ; + Caption = "Articol", ; + Left = 368, ; + Name = "Lb_simplu2", ; + TabIndex = 20, ; + Top = 198 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'txtArticole' AS textbox WITH ; + Format = "!k", ; + Height = 23, ; + Left = 183, ; + Name = "txtArticole", ; + TabIndex = 11, ; + ToolTipText = "Tastati primele litere pentru cautare articole", ; + Top = 194, ; + Width = 144 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'txtArticoleLista' AS textbox WITH ; + FontSize = 10, ; + Format = "!k", ; + Height = 23, ; + Left = 415, ; + Name = "txtArticoleLista", ; + TabIndex = 18, ; + ToolTipText = "Tastati primele litere pentru cautare articole in lista de preturi", ; + Top = 195, ; + Width = 257 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'txtCodmat' AS textbox WITH ; + Format = "!k", ; + Height = 23, ; + Left = 183, ; + Name = "txtCodmat", ; + TabIndex = 9, ; + ToolTipText = "Tastati primele litere pentru cautare articole", ; + Top = 168, ; + Width = 111 + *< END OBJECT: BaseClass="textbox" /> + + PROCEDURE actualizeaza_grid2 + *!* modificare v 2.0.20 + Thisform.grd_POLITICA_CURENTA.cPret.InputMask = get_mask(14,Iif(poRec.moneda_nationala=1,gnPPretV,gnPVal)) + Thisform.grd_POLITICA_CURENTA.Refresh() + *!* modificare v 2.0.20 ^ + ENDPROC + + PROCEDURE Destroy + If Used('v_articole') + Use In v_articole + Endif + If Used('crspolitica_curenta') + Use In crspolitica_curenta + Endif + ENDPROC + + PROCEDURE do_adauga + Lparameters toArticol + Thisform.grd_politica_curenta.salveaza_grid() + Select crspolitica_curenta + Append Blank + toArticol.codmat=Nvl(toArticol.codmat,Space(1)) + toArticol.um2 = Nvl(toArticol.um2,Space(1)) + toArticol.explicatie=Iif(toArticol.procent=0,toArticol.nume_val,'%') + Gather Name toArticol + * Go Top + Thisform.grd_politica_curenta.incarca_grid() + + ENDPROC + + PROCEDURE do_alege_notacontab + Local lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc + lcselect = [select v.id_nota, v.denumire FROM vcrm_note_vanzari v] + lcfiltru = [] + lcschema = [] + lcorder = [v.denumire] + lccoloane = [denumire] + lcTitlu = [Alegeti nota] + lcTitluColoane = [Denumire] + lcFiltruOriginal = [] + lcNumeProc = "" + lnPornire = 1 + llDesktop = .F. + locauta = cauta_alfa(lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop) + + If buton=1 + porec.id_nota = locauta.id_nota + porec.notaContab = locauta.denumire + Thisform.ct_clb_notaContab.Refresh + Endif + Thisform.ck_preturi_cu_tva.SetFocus() + + ENDPROC + + PROCEDURE do_alege_valuta + Local loCauta, lnPornire, llDesktop + + lnPornire = 1 + llDesktop = .F. + loCauta = caut_valuta(lnPornire, llDesktop) + If gnButon = 1 + poRec.id_valuta = Iif(!Empty(loCauta.id_valuta), loCauta.id_valuta, 0) + poRec.nume_val = Iif(!Empty(loCauta.nume_val), loCauta.nume_val, "") + Thisform.ct_clb_valuta.Refresh() + *!* modificare v 2.0.20 + poRec.moneda_nationala = loCauta.moneda_nationala + *!* modificare v 2.0.21 + *!* Thisform.actualizeaza_grid2() + If This.cus_odata_politici_pret1.cactiune = [UPDATE] + Thisform.actualizeaza_grid2() + Endif + *!* modificare v 2.0.21 ^ + *!* modificare v 2.0.20 ^ + Endif + Thisform.ct_clb_notaContab.SetFocus() + + ENDPROC + + PROCEDURE do_creeaza_filtru + Lparameters toCriteriu,tcNumeCamp,tcValoare + Local lnCriteriu,lcFiltru + lnCriteriu = toCriteriu.Value + Do Case + Case lnCriteriu = 1 + lcFiltru = "LIKE('" + Upper(Strtran(tcValoare,['],[''])) + "*',UPPER(Nvl("+Alltrim(tcNumeCamp)+",'')))" + Case lnCriteriu = 2 + lcFiltru = "UPPER(Nvl("+Alltrim(tcNumeCamp)+",''))='" + Upper(Strtran(tcValoare,['],[''])) + "'" + Case lnCriteriu = 3 + lcFiltru = "UPPER(Nvl("+Alltrim(tcNumeCamp)+",''))<>'" + Upper(Strtran(tcValoare,['],[''])) + "'" + Case lnCriteriu = 4 + lcFiltru = "LIKE('*" + Upper(Strtran(tcValoare,['],[''])) + "*',UPPER(Nvl("+Alltrim(tcNumeCamp)+",'')))" + Case lnCriteriu = 5 + lcFiltru = "!LIKE('*" + Upper(Strtran(tcValoare,['],[''])) + "*',UPPER(Nvl("+Alltrim(tcNumeCamp)+",'')))" + Case lnCriteriu=6 + lcFiltru = "EMPTY(Nvl("+Alltrim(tcNumeCamp)+",''))" + Case lnCriteriu=7 + lcFiltru = "!EMPTY(Nvl("+Alltrim(tcNumeCamp)+",''))" + CASE lnCriteriu=8 + lcFiltru = "1=1" + Endcase + Return lcFiltru + ENDPROC + + PROCEDURE do_modifica + Lparameters toArticol + LOCAL lnPreturiCuTva + lnPreturiCuTva = poRec.preturi_cu_tva + SET STEP ON + *!* modificare v 2.0.5 + *!* If !Empty(This.nid) And !Isnull(This.nid) + If !Empty(This.nid) And !Isnull(This.nid) And Thisform.loperatiipermise + *!* modificare v 2.0.5 ^ + If Reccount('crspolitica_curenta')>0 + gnButon=2 + Private poArticol + Select crspolitica_curenta + Scatter Name poArticol + addproperty(poArticol,'moneda_nationala',poRec.moneda_nationala) && modificare v 2.0.20 + addproperty(poArticol,'compus',poArticol.art_compus) + poArticol.procent=Nvl(poArticol.procent,0) + ofrmadarticol=Createobject("frm_articol_politica",.F., lnPreturiCuTva,.T.) + ofrmadarticol.Show(1) + If gnButon = 1 + lcSql = [begin pack_preturi.modifica_pret_pol_pret_art(?poArticol.id_pol_art,?poArticol.Pret,] + ; + [?poArticol.Pretftva,?poArticol.Pretctva,?poArticol.id_venchelt,] + ; + IIF(empty(poArticol.proc_tvav),[NULL],[?poArticol.proc_tvav]) + [); end;] + lnSucces = goExecutor.oExecute(lcSql) + If lnSucces < 0 + aMessagebox('pack_preturi.modifica_pret_pol_pret_art'+goExecutor.cEroare,0+16,"Eroare") + Else + save_grid_tag(Thisform.grd_politica_curenta) + Select crspolitica_curenta + Replace Pret With poArticol.Pret, pretftva WITH poArticol.pretftva, pretctva WITH poArticol.pretctva,explicatie_venchelt WITH poArticol.explicatie_venchelt,id_venchelt WITH poArticol.id_venchelt,proc_tvav WITH poArticol.proc_tvav + restore_grid_tag(Thisform.grd_politica_curenta) + Endif + Endif + Release poArticol,ofrmadarticol + Endif + Endif + ENDPROC + + PROCEDURE do_precedent + *!* modificare v 2.0.5 + *!* IF !EMPTY(this.nId) AND !ISNULL(this.nId) && pe politica noua sa nu faca nimic + If !Empty(This.nId) And !Isnull(This.nId) And Thisform.loperatiipermise + *!* modificare v 2.0.5 ^ + Thisform.do_sterge() + Endif + + ENDPROC + + PROCEDURE do_reset + Thisform.ct_codmat.Value = 2 + Thisform.txtCodmat.Value = [] + Thisform.txtCodmat.ReadOnly = .F. + Thisform.ct_articole.Value = 1 + Thisform.txtArticole.Value = [] + Thisform.txtArticole.ReadOnly = .F. + Select v_articole + Set Filter To + Go Top + Thisform.grd_articole.SetFocus() + ENDPROC + + PROCEDURE do_sterge + IF !EMPTY(THIS.nid) AND !ISNULL(THIS.nid) + IF RECCOUNT('crspolitica_curenta')>0 + PRIVATE poArticol + SELECT crspolitica_curenta + SCATTER NAME poArticol + + + lcSql = [begin pack_preturi.sterge_politica_pret_art(] + ALLTRIM(STR(THIS.nid)) + [,] + ALLTRIM(STR(poArticol.id_articol)) + [); end;] + lnSucces = goExecutor.oExecute(lcSql) + + IF lnSucces < 0 + AMESSAGEBOX(goExecutor.oprelucrareEroare(),0+16,"Eroare") + RETURN + ENDIF + + + save_grid_tag(THISFORM.grd_politica_curenta) + SELECT * FROM crspolitica_curenta WHERE id_articol <> poArticol.id_articol ORDER BY nume_articol, dataora ; + INTO CURSOR crspolitica_curenta READWRITE + restore_grid_tag(THISFORM.grd_politica_curenta) + ENDIF + + RELEASE poArticol + ENDIF + + ENDPROC + + PROCEDURE do_urmator + Local lnPreturiCuTva + lnPreturiCuTva = poRec.preturi_cu_tva + + *!* modificare v 2.0.5 + *!* IF !EMPTY(THIS.nId) AND !ISNULL(THIS.nId) && pe politica noua sa nu faca nimic + If !Empty(This.nId) And !Isnull(This.nId) And Thisform.loperatiipermise + *!* modificare v 2.0.5 ^ + If Used('v_articole') And Reccount('v_articole')>0 + Private poArticol + Select v_articole + Scatter Name poArticol + + Select crspolitica_curenta + Locate For id_articol = poArticol.id_articol + If Found() + Thisform.grd_politica_curenta.SetFocus() + Else + gnButon=2 + AddProperty(poArticol,'Pret',0) + AddProperty(poArticol,'Pretftva',0) + AddProperty(poArticol,'Pretctva',0) + *!* modificare v 2.0.10 + *!* AddProperty(poArticol,'proc_tvav',1.19) + AddProperty(poArticol,'proc_tvav',0) + *!* modificare v 2.0.10 ^ + AddProperty(poArticol,'nume_val',poRec.nume_val) + AddProperty(poArticol,'procent',0) + AddProperty(poArticol,'explicatie',poRec.nume_val) + AddProperty(poArticol,'id_venchelt',0) + AddProperty(poArticol,'explicatie_venchelt',[]) + addproperty(poArticol,'moneda_nationala',poRec.moneda_nationala) && modificare v 2.0.20 + + ofrmadarticol=Createobject("frm_articol_politica",.F., lnPreturiCuTva,.F.) + ofrmadarticol.Show(1) + + If gnButon=1 And !Empty(This.nId) And !Isnull(This.nId) + lcSql = [begin pack_preturi.adauga_politica_pret_art(] + Alltrim(Str(This.nId)) + [,] + ; + ALLTRIM(Str(poArticol.id_articol)) + [,] + Alltrim(Str(poArticol.Pret,14,iif(poRec.moneda_nationala=1,gnPPretV,gnPVal))) + [,] + ; + ALLTRIM(Str(poArticol.PRETFTVA,14,iif(poRec.moneda_nationala=1,gnPPretV,gnPVal)))+ [,] + ; + ALLTRIM(Str(poArticol.PRETCTVA,14,iif(poRec.moneda_nationala=1,gnPPretV,gnPVal))) + [,] + Alltrim(Str(poRec.id_valuta)) + [,] + ; + IIF(Empty(poArticol.proc_tvav),[NULL],Alltrim(Str(poArticol.proc_tvav,10,2))) + [,] + ; + ALLTRIM(Str(poArticol.procent)) + [,] + Iif(!Empty(Nvl(poArticol.id_venchelt,0)),Alltrim(Str(poArticol.id_venchelt)),[NULL]) + [,] + ; + ALLTRIM(Str(gnIdUtil)) + [); end;] + lnSucces = goExecutor.oExecute(lcSql) + + If lnSucces < 0 + aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare") + Return + Endif + ***--- + + Thisform.do_adauga(poArticol) + Thisform.grd_politica_curenta.SetFocus() + Endif + Endif + + Release ofrmadarticol, poArticol + Endif + Endif + + ENDPROC + + PROCEDURE inainte_de_do_termin + Local plReturn + lccontrol = Upper(This.ActiveControl.BaseClass ) + If Inlist(lccontrol,"TEXTBOX","EDITBOX","COMBOBOX") + lcval=This.ActiveControl.ControlSource + &lcval=Thisform.ActiveControl.Value + Endif + plReturn = .F. + Do Case + Case Empty(porec.nume_lista_preturi) + aMessagebox('Nu ati completat numele!',0+48,"Atentie") + This.clb_nume.text_simplu1.SetFocus() + Case Empty(porec.datai) + aMessagebox('Nu ati completat data de inceput a politicii!',0+48,"Atentie") + This.clb_valabilitate.tx_n1.SetFocus() + Case Empty(porec.DataS) + aMessagebox('Nu ati completat data de sfarsit a politicii!',0+48,"Atentie") + This.clb_valabilitate.tx_n2.SetFocus() + Case Empty(Nvl(porec.id_valuta,0)) And Empty(porec.nume_val) + aMessagebox('Nu ati ales valuta!',0+48,"Atentie") + This.ct_clb_valuta.tx_cautare.SetFocus() + Case Empty(Nvl(porec.id_nota,0)) + aMessagebox('Nu ati nota contabila!',0+48,"Atentie") + This.ct_clb_notaContab.tx_cautare.SetFocus() + Case Reccount('crspolitica_curenta')=0 And (!Empty(This.NID) And !Isnull(This.NID)) + aMessagebox('Nu ati ales articolele pentru aceasta oferta!',0+48,"Atentie") + This.grd_articole.SetFocus() + Otherwise + plReturn=This.cus_odata_politici_pret1.salvare(This.OREC,This.NID) + Endcase + + Return plReturn + + ENDPROC + + PROCEDURE Init + Lparameters toRec, tnId, tcActiune + DoDefault() + This.orec= toRec + This.nid = tnId + This.cus_odata_politici_pret1.cactiune = tcActiune + + If Empty(tnId) Or Isnull(tnId) + This.Height = 160 + Thisform.AutoCenter = .F. + For i = 1 To Thisform.Objects.Count + If Type('thisform.objects[i]')<>'U' + loObiect = Thisform.Objects[i] + If loObiect.Top >= This.Height + Thisform.RemoveObject(loObiect.Name) + i = i-1 + Endif + Endif + Endfor + Endif + + *!* modificare v 2.0.5 + If tcActiune = [UPDATE] + Thisform.loperatiipermise = verifica_politica(toRec.id_pol,1) + Thisform.but_modifica1.Visible = Thisform.loperatiipermise + Thisform.but_precedent1.Visible = Thisform.loperatiipermise + Thisform.but_urmator1.Visible = Thisform.loperatiipermise + Thisform.actualizeaza_grid2() && modificare v 2.0.21 + Endif + *!* modificare v 2.0.5 ^ + *!* modificare v 2.0.21 + *!* *!* modificare v 2.0.20 + *!* Thisform.actualizeaza_grid2() + *!* *!* modificare v 2.0.20 ^ + *!* modificare v 2.0.21 ^ + ENDPROC + + PROCEDURE KeyPress + LPARAMETERS nKeyCode, nShiftAltCtrl + lcControl = UPPER(ALLTRIM(THISFORM.ACTIVECONTROL.NAME)) + + * WAIT WINDOW lcControl + + DO CASE + CASE nKeyCode = 13 AND lcControl = 'GRD_ARTICOLE' + NODEFAULT + THISFORM.but_urmator1.SETFOCUS() + CASE nKeyCode = 13 AND lcControl = 'BUT_URMATOR1' + NODEFAULT + THISFORM.do_urmator() + THISFORM.grd_articole.SETFOCUS() + CASE nKeyCode = 13 AND lcControl = 'GRD_POLITICA_CURENTA' + NODEFAULT + THISFORM.TXTArticole.SetFocus() + *!* modificare v 2.0.16 + *!* CASE lcControl = 'TXTARTICOLE' AND nKeyCode = 13 + *!* * WAIT WINDOW 'INTRA AICI' + *!* lcArticolCautat = ALLTRIM(THISFORM.txtArticole.VALUE) + *!* SELECT v_articole + *!* LOCATE FOR SUBSTR(ALLTRIM(nume_articol),1,LEN(lcArticolCautat)) = lcArticolCautat + *!* THISFORM.grd_articole.SETFOCUS() + *!* *!* IF FOUND() + *!* *!* ENDIF + Case InList(lcControl,'TXTARTICOLE','TXTCODMAT') And nKeyCode = 13 + Nodefault + If Used('v_articole') + Select v_articole + lnRecno = Recno() + lcFiltru = Thisform.do_creeaza_filtru(Thisform.ct_articole,[nume_articol],Alltrim(Strtran(Thisform.txtArticole.Value,['],['']))) + lcFiltru = lcFiltru + [ AND ] + Thisform.do_creeaza_filtru(Thisform.ct_codmat,[codmat],Alltrim(Strtran(Thisform.txtcodmat.Value,['],['']))) + Set filter to &lcFiltru + Go top + Thisform.grd_articole.SetFocus() + Endif + *!* modificare v 2.0.16 ^ + CASE lcControl = 'TXTARTICOLELISTA' AND nKeyCode = 13 + lcArticolCautat = ALLTRIM(THISFORM.txtArticoleLista.VALUE) + SELECT crsPolitica_curenta + LOCATE FOR SUBSTR(ALLTRIM(nume_articol),1,LEN(lcArticolCautat)) = lcArticolCautat + thisform.grd_politica_curenta.SetFocus() + + *!* CASE (nKeyCode >=33 AND nKeyCode <=122) AND (lcControl <> 'TXTARTICOLE' AND lcControl <> 'TXTARTICOLELISTA') + *!* NODEFAULT + *!* THIS.TXTARTICOLE.Value = ALLTRIM(THIS.TXTARTICOLE.VALUE) + CHR(nKeyCode) + *!* THIS.TXTARTICOLE.SetFocus() + *!* KEYBOARD '{END}' + *!* + *!* CASE (nKeyCode = 127) AND (lcControl <> 'TXTARTICOLE' AND lcControl <> 'TXTARTICOLELISTA') + *!* NODEFAULT + *!* THIS.TXTARTICOLE.VALUE = LEFT(ALLTRIM(THIS.TXTARTICOLE.VALUE),LEN(ALLTRIM(THIS.TXTARTICOLE.VALUE))-1) + *!* THIS.TXTARTICOLE.SetFocus() + *!* KEYBOARD '{END}' + + CASE nKeyCode=27 AND nShiftAltCtrl=0 + NODEFAULT + IF aMESSAGEBOX("Sunteti sigur ca doriti sa inchideti fereastra?",4+32+256,"Confirmare")==6 + THIS.do_renunt() + ENDIF + CASE nKeyCode=6 AND nShiftAltCtrl=2 + NODEFAULT + THIS.do_termin() + ENDCASE + + ENDPROC + + PROCEDURE Clb_valabilitate.tx_n1.Valid + If Empty(Nvl(This.Parent.tx_n2.Value,{})) + This.Parent.tx_n2.Value=This.Value + This.Parent.tx_n2.Refresh + Endif + ENDPROC + + PROCEDURE ct_articole.InteractiveChange + With Thisform.txtArticole + If This.Value>5 + .Value="" + .ReadOnly=.T. + Else + .ReadOnly=.F. + .SetFocus() + Endif + Endwith + ENDPROC + + PROCEDURE ct_codmat.InteractiveChange + With Thisform.txtcodmat + If This.Value>5 + .Value="" + .ReadOnly=.T. + Else + .ReadOnly=.F. + .SetFocus() + Endif + Endwith + + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_politici_pret_rul AS _frmbase OF "..\comun\clase\_frm_base.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Clb_nume" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_data_curs" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cDenumire.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cDenumire.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cPret_Nou.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cPret_Nou.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cPret_Vechi.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cPret_Vechi.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cCodmat.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cCodmat.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cProc_tvav.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cProc_tvav.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cAles.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cAles._checkbox1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cVariatie.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="grd_preturi_rul.cVariatie.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cus_odata_politici_pret1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Clb_perioada_rulaj" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_cauta1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Lb_explicatie_preturi" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cmd_select_adv1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Gridextra1" UniqueID="" Timestamp="" /> + + * + *p: npret_nou_mod + *p: npret_nou_orig + *p: orec + * + + * + cgridsortlist = grd_preturi_rul + DoCreate = .T. + Height = 586 + lactiv3 = .T. + Name = "frm_politici_pret_rul" + npret_nou_mod = + npret_nou_orig = + orec = + Width = 781 + WindowState = 2 + _shape1.Anchor = 11 + _shape1.Height = 29 + _shape1.Left = 0 + _shape1.Name = "_shape1" + _shape1.Top = 0 + _shape1.Width = 780 + _shape2.Anchor = 9 + _shape2.Height = 29 + _shape2.Left = 720 + _shape2.Name = "_shape2" + _shape2.Top = 0 + _shape2.Width = 61 + Lb_titlu_alb_b121.Caption = "ACTUALIZARE PE BAZA PRE_URILOR DE ACHIZI_IE" + Lb_titlu_alb_b121.FontBold = .T. + Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121" + Lb_titlu_alb_b121.TabIndex = 8 + BUT_TERMIN1.Anchor = 9 + BUT_TERMIN1.Height = 27 + BUT_TERMIN1.Left = 751 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 6 + BUT_TERMIN1.Top = 1 + BUT_TERMIN1.Width = 30 + Gridsort1.Name = "Gridsort1" + * + + ADD OBJECT 'But_renunt1' AS but_renunt WITH ; + Anchor = 9, ; + Height = 27, ; + Left = 721, ; + Name = "But_renunt1", ; + TabIndex = 7, ; + Top = 1, ; + Width = 30 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Clb_data_curs' AS clb_tx_simplu WITH ; + Left = 334, ; + Name = "Clb_data_curs", ; + TabIndex = 3, ; + Top = 70, ; + Visible = .F., ; + Width = 312, ; + TEXT_SIMPLU1.Height = 23, ; + TEXT_SIMPLU1.Left = 210, ; + TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ; + TEXT_SIMPLU1.Top = 3, ; + TEXT_SIMPLU1.Width = 98, ; + LB_SIMPLU1.Caption = "Data curs actualizare", ; + LB_SIMPLU1.Name = "LB_SIMPLU1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_nume' AS clb_tx_simplu WITH ; + Height = 29, ; + Left = 23, ; + Name = "Clb_nume", ; + TabIndex = 1, ; + Top = 42, ; + Width = 623, ; + Text_simplu1.Alignment = 3, ; + Text_simplu1.Height = 23, ; + Text_simplu1.Left = 98, ; + Text_simplu1.Name = "Text_simplu1", ; + Text_simplu1.ReadOnly = .T., ; + Text_simplu1.Top = 3, ; + Text_simplu1.Width = 520, ; + Lb_simplu1.Caption = "Nume", ; + Lb_simplu1.Name = "Lb_simplu1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Clb_perioada_rulaj' AS clb_n1n2_simplu WITH ; + Height = 29, ; + Left = 23, ; + Name = "Clb_perioada_rulaj", ; + TabIndex = 2, ; + Top = 70, ; + Width = 312, ; + tx_n1.Left = 152, ; + tx_n1.Name = "tx_n1", ; + tx_n1.Top = 2, ; + Lb_simplu1.Caption = "Perioada rulaj", ; + Lb_simplu1.Name = "Lb_simplu1", ; + tx_n2.Left = 232, ; + tx_n2.Name = "tx_n2", ; + tx_n2.Top = 2 + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'Cmd_cauta1' AS cmd_cauta WITH ; + Left = 664, ; + Name = "Cmd_cauta1", ; + TabIndex = 4, ; + Top = 71 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Cmd_select_adv1' AS cmd_select_adv WITH ; + ccoloana = ales, ; + cgrid = Thisform.grd_preturi_rul, ; + Left = 12, ; + Name = "Cmd_select_adv1", ; + Top = 103 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'Cus_odata_politici_pret1' AS cus_odata_politici_pret WITH ; + Left = 660, ; + Name = "Cus_odata_politici_pret1", ; + Top = 48 + *< END OBJECT: ClassLib="onom_preturi.vcx" BaseClass="custom" /> + + ADD OBJECT 'grd_preturi_rul' AS _grdrow WITH ; + Anchor = 15, ; + ColumnCount = 7, ; + DeleteMark = .F., ; + FontName = "Arial Narrow", ; + Height = 444, ; + HighlightStyle = 2, ; + Left = 12, ; + Name = "grd_preturi_rul", ; + Panel = 1, ; + ReadOnly = .T., ; + RecordSource = "crspreturirul", ; + TabIndex = 5, ; + Top = 132, ; + Width = 752, ; + Column1.ColumnOrder = 3, ; + Column1.ControlSource = "denumire", ; + Column1.FontName = "Arial Narrow", ; + Column1.Name = "cDenumire", ; + Column1.ReadOnly = .T., ; + Column1.Width = 275, ; + Column2.BackColor = 253,252,223, ; + Column2.ColumnOrder = 5, ; + Column2.ControlSource = "pret_nou", ; + Column2.FontName = "Arial Narrow", ; + Column2.InputMask = (get_mask(14,gnPPretV)), ; + Column2.Name = "cPret_Nou", ; + Column2.ReadOnly = .F., ; + Column2.Width = 75, ; + Column3.ColumnOrder = 4, ; + Column3.ControlSource = "pret_vechi", ; + Column3.FontName = "Arial Narrow", ; + Column3.InputMask = (get_mask(14,gnPPretV)), ; + Column3.Name = "cPret_Vechi", ; + Column3.ReadOnly = .T., ; + Column3.Width = 74, ; + Column4.ColumnOrder = 2, ; + Column4.ControlSource = "codmat", ; + Column4.FontName = "Arial Narrow", ; + Column4.Name = "cCodmat", ; + Column4.ReadOnly = .T., ; + Column4.Width = 95, ; + Column5.ColumnOrder = 7, ; + Column5.ControlSource = "proc_tvav", ; + Column5.FontName = "Arial Narrow", ; + Column5.Format = "rk", ; + Column5.InputMask = "99.99", ; + Column5.Name = "cProc_tvav", ; + Column5.ReadOnly = .T., ; + Column5.Width = 50, ; + Column6.ColumnOrder = 1, ; + Column6.ControlSource = "ales", ; + Column6.FontName = "Arial Narrow", ; + Column6.Name = "cAles", ; + Column6.ReadOnly = .F., ; + Column6.Sparse = .F., ; + Column6.Width = 69, ; + Column7.ColumnOrder = 6, ; + Column7.ControlSource = "pret_nou-pret_vechi", ; + Column7.FontName = "Arial Narrow", ; + Column7.InputMask = (get_mask(14,gnPPretV)), ; + Column7.Name = "cVariatie", ; + Column7.ReadOnly = .T., ; + Column7.Width = 72 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT 'grd_preturi_rul.cAles._checkbox1' AS _checkbox WITH ; + Alignment = 2, ; + Caption = "", ; + Centered = .T., ; + FontName = "Arial Narrow", ; + Left = 25, ; + Name = "_checkbox1", ; + ReadOnly = .F., ; + Top = 23 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'grd_preturi_rul.cAles.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Se actualizeaza", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cCodmat.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Cod material", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cCodmat.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_preturi_rul.cDenumire.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Articol", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cDenumire.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + Enabled = .T., ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_preturi_rul.cPret_Nou.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret nou", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cPret_Nou.Text1' AS textbox WITH ; + BackColor = 253,252,223, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .F. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_preturi_rul.cPret_Vechi.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Pret actual", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cPret_Vechi.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_preturi_rul.cProc_tvav.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Proc. TVA", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cProc_tvav.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1", ; + ReadOnly = .T. + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'grd_preturi_rul.cVariatie.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Variatie", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT 'grd_preturi_rul.cVariatie.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Gridextra1' AS gridextra WITH ; + gridexpression = Thisform.grd_preturi_rul, ; + Left = 288, ; + Name = "Gridextra1", ; + Top = 108 + *< END OBJECT: ClassLib="..\comun\utile\gridextras\gridextras.vcx" BaseClass="custom" /> + + ADD OBJECT 'Lb_explicatie_preturi' AS lb_simplu WITH ; + Caption = "Explica_ie pre_uri", ; + FontBold = .T., ; + Left = 540, ; + Name = "Lb_explicatie_preturi", ; + Top = 110 + *< END OBJECT: ClassLib="..\comun\clase\lb.vcx" BaseClass="label" /> + + PROCEDURE Destroy + Local lcCursor + lcCursor = Thisform.grd_preturi_rul.RecordSource + If Used(lcCursor) + Use In (lcCursor) + Endif + ENDPROC + + PROCEDURE do_cauta + Private pdDataI,pdDataF,pdDataCurs + pdDataI = Thisform.clb_perioada_rulaj.tx_n1.Value + pdDataF = Thisform.clb_perioada_rulaj.tx_n2.Value + pdDataCurs = Thisform.clb_data_curs.text_simplu1.Value + Do Case + Case Empty(Nvl(pdDataI,{})) + amessagebox("Nu ati completat data de inceput pentru cautarea in rulaje!",48,"Atentie") + Thisform.clb_perioada_rulaj.tx_n1.SetFocus() + Case Empty(Nvl(pdDataF,{})) + amessagebox("Nu ati completat data de sfarsit pentru cautarea in rulaje!",48,"Atentie") + Thisform.clb_perioada_rulaj.tx_n2.SetFocus() + Case Empty(Nvl(pdDataCurs,{})) And toRec.moneda_nationala = 0 + amessagebox("Nu ati completat data cursului folosit la conversie!",48,"Atentie") + Thisform.clb_data_curs.text_simplu1.SetFocus() + Otherwise + If Thisform.oRec.moneda_nationala = 1 + pdDataCurs = Null + Endif + lcCursor = Thisform.grd_preturi_rul.RecordSource + Thisform.grd_preturi_rul.salveaza_grid() + If Used(lcCursor) + Use In (lcCursor) + Endif + lcSql = [{call pack_preturi.citeste_preturi_rulaj(] + Alltrim(Str(Thisform.oRec.id_pol)) + [,] + ; + alltrim(Str(Thisform.oRec.id_valuta)) + [,] + Alltrim(Str(Thisform.oRec.preturi_cu_tva)) + [,] + ; + [?pdDataI,?pdDataF,?pdDataCurs)}] + If goExecutor.oExecuta(lcSql,lcCursor) + If Reccount(lcCursor) = 0 + amessagebox("Nu exista rezultate pentru datele specificate!",48,"Atentie") + Else + Select (lcCursor) + If Isnull(Curs) + amessagebox("Nu exista curs pentru data specificata!",48,"Atentie") + Thisform.clb_data_curs.text_simplu1.SetFocus() + Endif + Endif + Endif + Thisform.grd_preturi_rul.incarca_grid() + Endcase + + ENDPROC + + PROCEDURE inainte_de_do_termin + Local llReturn, lnNrInregistrari, lcCursor, lcCursorAct, lnZecimale, lcSir + llReturn = .T. + lcCursor = Thisform.grd_preturi_rul.RecordSource + lcCursorAct = [crsactualizare] + lnZecimale = Iif(Thisform.oRec.moneda_nationala = 1,gnPPretV, gnPVal) + lnNrInregistrari = 0 + lcSir = [] + + Select id_articol, pret_nou, proc_tvav From (lcCursor) With (Buffering=.T.) Where ales = 1 Into Cursor (lcCursorAct) + If Reccount(lcCursorAct) > 0 + If Thisform.do_deschide_tranzactie() + Select (lcCursorAct) + Scan + lnNrInregistrari = lnNrInregistrari + 1 + lcSir = lcSir + Alltrim(Str(id_articol))+[;]+Alltrim(Str(NVL(pret_nou, 0.00),20,lnZecimale))+[;] + Alltrim(Str(NVL(proc_tvav, 0.00),20,2)) + [|] + If Mod(lnNrInregistrari,100) = 0 + lcSql = [begin pack_preturi.actualizeaza_preturi(] + Alltrim(Str(Thisform.oRec.id_pol)) + [,] + ; + alltrim(Str(Thisform.oRec.preturi_cu_tva)) + [,] + ; + alltrim(Str(Thisform.oRec.id_valuta)) + [,] + ; + ['] + lcSir + [',?gnIdUtil); end;] + lcSir = [] + If !goExecutor.oExecuta(lcSql) + llReturn = .F. + Exit + Endif + Endif + Select (lcCursorAct) + Endscan + If !Empty(lcSir) And llReturn + lcSql = [begin pack_preturi.actualizeaza_preturi(] + Alltrim(Str(Thisform.oRec.id_pol)) + [,] + ; + alltrim(Str(Thisform.oRec.preturi_cu_tva)) + [,] + ; + alltrim(Str(Thisform.oRec.id_valuta)) + [,] + ; + ['] + lcSir + [',?gnIdUtil); end;] + lcSir = [] + llReturn = goExecutor.oExecuta(lcSql) + Endif + Endif + If llReturn + llReturn = Thisform.do_inchide_tranzactie(1) + If llReturn + amessagebox("Preturile articolelor selectate au fost actualizate in baza de date!",64,"Confirmare actualizare") + Endif + Else + Thisform.do_inchide_tranzactie(2) + Endif + Endif + Use In (Select(lcCursorAct)) + Return llReturn + + ENDPROC + + PROCEDURE Init + Lparameters toRec + Local ldDataS + DoDefault() + + Thisform.orec = toRec + Thisform.clb_nume.Text_simplu1.Value = toRec.nume_lista_preturi + Thisform.Lb_explicatie_preturi.Caption = [Prețurile sunt ] + Iif(toRec.preturi_cu_tva = 1,[cu],[fără]) + [ TVA.] + ldDataS = Min(Ttod(get_ora()),Gomonth(Date(gnAn,gnLuna,1),1)-1) + Thisform.clb_perioada_rulaj.tx_n1.Value = Date(gnAn,gnLuna,1) + Thisform.clb_perioada_rulaj.tx_n2.Value = ldDataS + Thisform.clb_data_curs.Text_simplu1.Value = ldDataS + With Thisform.grd_preturi_rul + If toRec.moneda_nationala = 0 + .cPret_nou.InputMask = get_mask(14,gnPVal) + .cPret_vechi.InputMask = get_mask(14,gnPVal) + .cVariatie.InputMask = get_mask(14,gnPVal) + Thisform.clb_data_curs.Visible = .T. + Else + .cPret_nou.InputMask = get_mask(14,gnPPretV) + .cPret_vechi.InputMask = get_mask(14,gnPPretV) + .cVariatie.InputMask = get_mask(14,gnPPretV) + Thisform.clb_data_curs.Visible = .F. + Endif + .cPret_nou.Header1.Caption = .cPret_nou.Header1.Caption + [ (] + Alltrim(Thisform.orec.nume_val) + [)] + .cPret_vechi.Header1.Caption = .cPret_vechi.Header1.Caption + [ (] + Alltrim(Thisform.orec.nume_val) + [)] + .cVariatie.Header1.Caption = .cVariatie.Header1.Caption + [ (] + Alltrim(Thisform.orec.nume_val) + [)] + .SetAll("DynamicBackColor","IIF(ales=1,rgb(210,240,247),rgb(255,255,255))","Column") + .cPret_nou.DynamicBackColor = "" + .cVariatie.DynamicForeColor = "iif(pret_nou-pret_vechi<0,rgb(255,0,0),rgb(0,0,0))" + .Refresh() + Endwith + Thisform.do_cauta() + Thisform.gridextra1.Setup() + + ENDPROC + + PROCEDURE Clb_perioada_rulaj.tx_n1.Valid + If Empty(Nvl(This.Parent.tx_n2.Value,{})) + This.Parent.tx_n2.Value=This.Value + This.Parent.tx_n2.Refresh + Endif + ENDPROC + + PROCEDURE grd_preturi_rul.cPret_Nou.Text1.Valid + Select (Thisform.grd_preturi_rul.RecordSource) + If Thisform.npret_nou_orig <> This.Value And pret_vechi < This.Value + Replace ales With 1 + Endif + ENDPROC + + PROCEDURE grd_preturi_rul.cPret_Nou.Text1.When + Thisform.npret_nou_orig = This.Value + ENDPROC + + PROCEDURE grd_preturi_rul.Init + *!* + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_politicigrupuri AS frm_termin OF "..\comun\clase\_frm_child.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="clb_grup" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="CMD_CAUTA1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column3.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column3.Check1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column4.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column4.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column5.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column5.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column1.Header1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_grdrow1.Column1.Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_modifica1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="ck_pol_expirate" UniqueID="" Timestamp="" /> + + * + DoCreate = .T. + Height = 401 + Name = "frm_politicigrupuri" + Width = 448 + _SHAPE1.Height = 29 + _SHAPE1.Left = 0 + _SHAPE1.Name = "_SHAPE1" + _SHAPE1.Top = 0 + _SHAPE1.Width = 456 + _SHAPE2.Height = 29 + _SHAPE2.Left = 316 + _SHAPE2.Name = "_SHAPE2" + _SHAPE2.Top = 0 + _SHAPE2.Width = 131 + LB_TITLU_ALB_B121.Caption = "Drepturi de acces la listele de prețuri" + LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121" + LB_TITLU_ALB_B121.TabIndex = 8 + BUT_TERMIN1.Left = 414 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 4 + BUT_TERMIN1.Top = 1 + GRIDSORT1.Name = "GRIDSORT1" + * + + ADD OBJECT '_grdrow1' AS _grdrow WITH ; + ColumnCount = 4, ; + DeleteMark = .F., ; + FontName = "Arial Narrow", ; + Height = 288, ; + Left = 9, ; + Name = "_grdrow1", ; + Panel = 1, ; + RecordSource = "crsPolGr", ; + TabIndex = 3, ; + Top = 96, ; + Width = 430, ; + Column1.ColumnOrder = 4, ; + Column1.ControlSource = "inactiv", ; + Column1.CurrentControl = "Check1", ; + Column1.FontName = "Arial Narrow", ; + Column1.Name = "Column3", ; + Column1.Sparse = .F., ; + Column1.Width = 33, ; + Column2.ColumnOrder = 1, ; + Column2.ControlSource = "nume_lista_preturi", ; + Column2.FontName = "Arial Narrow", ; + Column2.Name = "Column4", ; + Column2.Width = 188, ; + Column3.ColumnOrder = 3, ; + Column3.ControlSource = "denumire_grup", ; + Column3.FontName = "Arial Narrow", ; + Column3.Name = "Column5", ; + Column3.Width = 122, ; + Column4.ColumnOrder = 2, ; + Column4.ControlSource = "nume_val", ; + Column4.FontName = "Arial Narrow", ; + Column4.Name = "Column1", ; + Column4.Width = 48 + *< END OBJECT: ClassLib="..\comun\clase\_grd_base.vcx" BaseClass="grid" /> + + ADD OBJECT '_grdrow1.Column1.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Valuta", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT '_grdrow1.Column1.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT '_grdrow1.Column3.Check1' AS checkbox WITH ; + Alignment = 2, ; + Caption = "", ; + Centered = .T., ; + FontName = "Arial Narrow", ; + Height = 17, ; + Left = 17, ; + Name = "Check1", ; + Top = 51, ; + Width = 60 + *< END OBJECT: BaseClass="checkbox" /> + + ADD OBJECT '_grdrow1.Column3.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Inactiv", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT '_grdrow1.Column4.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Lista preturi", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT '_grdrow1.Column4.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT '_grdrow1.Column5.Header1' AS header WITH ; + Alignment = 2, ; + Caption = "Grup de utilizatori", ; + FontName = "Arial Narrow", ; + Name = "Header1" + *< END OBJECT: BaseClass="header" /> + + ADD OBJECT '_grdrow1.Column5.Text1' AS textbox WITH ; + BackColor = 255,255,255, ; + BorderStyle = 0, ; + FontName = "Arial Narrow", ; + ForeColor = 0,0,0, ; + Margin = 0, ; + Name = "Text1" + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'But_modifica1' AS but_modifica WITH ; + caction = do_modifica, ; + Left = 351, ; + Name = "But_modifica1", ; + TabIndex = 6, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_nou1' AS but_nou WITH ; + Left = 321, ; + Name = "But_nou1", ; + TabIndex = 7, ; + Top = 1 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'But_sterge1' AS but_sterge WITH ; + caction = do_sterge, ; + Left = 382, ; + Name = "But_sterge1", ; + TabIndex = 5, ; + Top = 1, ; + Visible = .T. + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + ADD OBJECT 'ck_pol_expirate' AS _checkbox WITH ; + Alignment = 0, ; + Caption = "Fără politicile expirate", ; + Left = 21, ; + Name = "ck_pol_expirate", ; + TabIndex = 2, ; + Top = 75 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'clb_grup' AS clb_tx_simplu WITH ; + Left = 21, ; + Name = "clb_grup", ; + TabIndex = 1, ; + Top = 42, ; + TEXT_SIMPLU1.Height = 23, ; + TEXT_SIMPLU1.Left = 108, ; + TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ; + TEXT_SIMPLU1.Top = 3, ; + TEXT_SIMPLU1.Width = 177, ; + LB_SIMPLU1.Caption = "Grup de utilizatori", ; + LB_SIMPLU1.Name = "LB_SIMPLU1" + *< END OBJECT: ClassLib="..\comun\clase\lb_tx.vcx" BaseClass="container" /> + + ADD OBJECT 'CMD_CAUTA1' AS cmd_cauta WITH ; + Left = 321, ; + Name = "CMD_CAUTA1", ; + TabIndex = 9, ; + Top = 42 + *< END OBJECT: ClassLib="..\comun\clase\cmd_butoane.vcx" BaseClass="commandbutton" /> + + PROCEDURE actualizeaza_grid1 + Lparameters pcFiltru + Local lcFiltru + lcFiltru=pcFiltru + If Empty(lcFiltru) + lcFiltru=poAccesListe.ca_baza1.cfiltru + Endif + save_grid_tag(Thisform._grdrow1) + poAccesListe.ca_baza1.cfiltru=lcFiltru + poAccesListe.ca_baza1.afisare() + restore_grid_tag(Thisform._grdrow1) + If Reccount('crsPolGr')>0 + Thisform._grdrow1.SetFocus() + Else + Thisform.clb_grup.SetFocus() + Endif + ENDPROC + + PROCEDURE do_adauga + SELECT crsPolGr + SCATTER NAME loRec blank + DO Adauga_Modifica_Inregistrare WITH "politiciGrupuri",loRec,,"INSERT" + this.actualizeaza_grid1() + ENDPROC + + PROCEDURE do_cauta + Local lcFiltru + lcFiltru=[] + lcNume = Strtran(Upper(Alltrim(This.clb_grup.text_simplu1.Value)),['],['']) + + If Thisform.ck_pol_expirate.Value = 1 + lcFiltru = lcFiltru + [ and politica_expirata = 0] + Endif + + If !Empty(lcNume) + lcFiltru= lcFiltru + [ and denumire_grup like ']+lcNume+[%'] + Endif + + If Empty(lcFiltru) + lcFiltru = [2=2] + Else + lcFiltru = Substr(lcFiltru,5) + Endif + + This.MousePointer= 11 + This.LockScreen=.T. + Thisform.actualizeaza_grid1(lcFiltru+gcCondSucursala) + If Reccount()=0 + amessagebox("Cautarea nu a intors rezultate!",0+64,"Info cautare") + Endif + This.LockScreen=.F. + This.MousePointer= 0 + + ENDPROC + + PROCEDURE do_modifica + If Reccount('crsPolGr') > 0 + Select crsPolGr + Scatter Name loRec + Do Adauga_Modifica_Inregistrare With "politiciGrupuri",loRec,loRec.id_polgr,"UPDATE" + Thisform.actualizeaza_grid1() + Else + amessagebox("Nu exista inregistrari pentru modificare!",0+48,"Atentie") + Endif + + ENDPROC + + PROCEDURE do_sterge + If Reccount('crsPolGr') > 0 + Select crsPolGr + Scatter Name lorec + Do STERGE_INREGISTRARE With "politiciGrupuri",lorec.id_polgr + This.actualizeaza_grid1() + Else + amessagebox("Nu exista inregistrari pentru stergere!",0+48,"Atentie") + Endif + + ENDPROC + + PROCEDURE _grdrow1.Init + DoDefault() + This.SetAll("ReadOnly",.T.,"Column") + This.SetAll("DynamicForeColor","IIF(politica_expirata = 1,RGB(128,128,128),RGB(0,0,0))","Column") + ENDPROC + +ENDDEFINE + +DEFINE CLASS frm_politicigrupuri_nou AS frm_termin_renunt OF "..\comun\clase\_frm_child.vcx" + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="_checkbox1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Cus_odata_politicigrupuri1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ct_clb_grup" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Ct_clb_lista_preturi" UniqueID="" Timestamp="" /> + + * + *m: do_alege_grup + *m: do_alege_politica + *p: nid + *p: orec + * + + * + DoCreate = .T. + Height = 145 + Name = "frm_politicigrupuri_nou" + nid = .F. + orec = .F. + Width = 375 + _SHAPE1.Name = "_SHAPE1" + _SHAPE2.Height = 29 + _SHAPE2.Left = 312 + _SHAPE2.Name = "_SHAPE2" + _SHAPE2.Top = 0 + _SHAPE2.Width = 63 + LB_TITLU_ALB_B121.Caption = "Drepturi de acces la listele de prețuri" + LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121" + LB_TITLU_ALB_B121.TabIndex = 6 + BUT_TERMIN1.Left = 343 + BUT_TERMIN1.Name = "BUT_TERMIN1" + BUT_TERMIN1.TabIndex = 4 + BUT_TERMIN1.Top = 1 + GRIDSORT1.Left = 348 + GRIDSORT1.Name = "GRIDSORT1" + GRIDSORT1.Top = 120 + BUT_RENUNT1.Left = 314 + BUT_RENUNT1.Name = "BUT_RENUNT1" + BUT_RENUNT1.TabIndex = 5 + BUT_RENUNT1.Top = 1 + * + + ADD OBJECT '_checkbox1' AS _checkbox WITH ; + Alignment = 0, ; + Caption = "Inactiv", ; + ControlSource = "porec.inactiv", ; + Left = 36, ; + Name = "_checkbox1", ; + TabIndex = 3, ; + TabStop = .F., ; + Top = 120 + *< END OBJECT: ClassLib="..\comun\clase\_baza.vcx" BaseClass="checkbox" /> + + ADD OBJECT 'Ct_clb_grup' AS ct_clb_cautare_var WITH ; + cconditie = EMPTY(NVL(porec.denumire_grup,[])), ; + cprocedura = thisform.do_alege_grup, ; + cvar_afisata = porec.denumire_grup, ; + Left = 12, ; + Name = "Ct_clb_grup", ; + TabIndex = 1, ; + Top = 51, ; + SHAPE_CAUTARE.Name = "SHAPE_CAUTARE", ; + IMG_CAUTARE.Name = "IMG_CAUTARE", ; + LB_CAUTARE.Caption = "Grup", ; + LB_CAUTARE.Name = "LB_CAUTARE", ; + TX_CAUTARE.Name = "TX_CAUTARE" + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="container" /> + + ADD OBJECT 'Ct_clb_lista_preturi' AS ct_clb_cautare_var WITH ; + cconditie = EMPTY(NVL(porec.nume_lista_preturi,[])), ; + cprocedura = thisform.do_alege_politica, ; + cvar_afisata = porec.nume_lista_preturi, ; + Left = 12, ; + Name = "Ct_clb_lista_preturi", ; + TabIndex = 2, ; + Top = 79, ; + SHAPE_CAUTARE.Name = "SHAPE_CAUTARE", ; + IMG_CAUTARE.Name = "IMG_CAUTARE", ; + LB_CAUTARE.Caption = "Listă prețuri", ; + LB_CAUTARE.Name = "LB_CAUTARE", ; + TX_CAUTARE.Name = "TX_CAUTARE" + *< END OBJECT: ClassLib="..\comun\clase\caut_ora.vcx" BaseClass="container" /> + + ADD OBJECT 'Cus_odata_politicigrupuri1' AS cus_odata_politicigrupuri WITH ; + Left = 0, ; + Name = "Cus_odata_politicigrupuri1", ; + Top = 120 + *< END OBJECT: ClassLib="onom_preturi.vcx" BaseClass="custom" /> + + PROCEDURE do_alege_grup + Local lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc + lcselect = [select * FROM vgrupuri_utilizatori] + lcfiltru = [] + lcschema = [] + lcorder = [denumire_grup] + lccoloane = [denumire_grup] + lcTitlu = [Alegeti grupul] + lcTitluColoane = [Grup] + lcFiltruOriginal = [] + lcNumeProc = "" + lnPornire = 1 + llDesktop = .F. + locauta = cauta_alfa(lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop) + If buton=2 + Return + Endif + porec.id_grup = locauta.id_grup + porec.denumire_grup = locauta.denumire_grup + ENDPROC + + PROCEDURE do_alege_politica + Local lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcFiltruOriginal, lcNumeProc + lcselect = [select * FROM vcrm_politici_preturi] + lcfiltru = [2=2] + lcschema = [] + lcorder = [nume_lista_preturi] + lccoloane = [nume_lista_preturi, nume_val, DTOC(datai), DTOC(datas)] + lcTitlu = [Alegeti lista de preturi] + lcTitluColoane = [Lista,Valuta,Data inceput,Data sfarsit] + *!* modificare v 2.0.14 + lcFiltruOriginal = [least(NVL(last_day(to_date('] + ALLTRIM(STR(m.gnAn)) + PADL(m.gnLuna,2,'0') + [','YYYYMM')),sysdate),sysdate) between datai and ] + ; + [NVL(datas, to_date('300012', 'YYYYMM'))]+gcCondSucursala + *!* lcFiltruOriginal = [2=2]+gcCondSucursala + *!* modificare v 2.0.14 ^ + lcNumeProc = "" + lnPornire = 1 + llDesktop = .F. + locauta = cauta_alfa(lcselect, lcfiltru, lcschema, lcorder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, .F., lcFiltruOriginal,,lnPornire,,,llDesktop) + If buton=2 + Return + Endif + porec.ID_POLITICA = locauta.ID_POL + porec.nume_lista_preturi= locauta.nume_lista_preturi + ENDPROC + + PROCEDURE inainte_de_do_termin + Local PLRETURN + + lccontrol = Upper(This.ActiveControl.BaseClass ) + If Inlist(lccontrol,"TEXTBOX","EDITBOX","COMBOBOX") + lcval=This.ActiveControl.ControlSource + &lcval=Thisform.ActiveControl.Value + Endif + + Do Case + Case Empty(Nvl(porec.denumire_grup,[])) + amessagebox("Nu ati completat grupul!",0+48,"Atentie") + Thisform.ct_clb_grup.SetFocus() + PLRETURN = .F. + Case Empty(Nvl(porec.nume_lista_preturi,[])) + amessagebox("Nu ati completat politica de preturi!",0+48,"Atentie") + Thisform.ct_clb_lista_preturi.SetFocus() + PLRETURN = .F. + Otherwise + PLRETURN=This.cus_odata_politicigrupuri1.salvare(This.OREC,This.NID) + Endcase + Return PLRETURN + + ENDPROC + + PROCEDURE Init + LPARAMETERS toRec, tnId, tcActiune + + DODEFAULT() + + this.orec= toRec + this.nid = tnId + this.cus_odata_politicigrupuri1.cactiune = tcActiune + + ENDPROC + +ENDDEFINE diff --git a/Clase/opreturi.vc2 b/Clase/opreturi.vc2 new file mode 100644 index 0000000..217d157 --- /dev/null +++ b/Clase/opreturi.vc2 @@ -0,0 +1,98 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="opreturi.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS capplication AS wzapplication OF "..\..\roacont\clase\appwiz.vcx" && Application class. + *< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" Uniqueid="" /> + + * + clastcaption = Microsoft Visual FoxPro + clasticon = + Name = "capplication" + nformcount = 0 + * + + PROCEDURE doform + LPARAMETERS tcFileName,tcClass,tlNoMultipleInstances,tlNoShow + LOCAL lcFileName,lcClass,oForm,oForm2,lcName,lnCount,lnTop,lnLeft + LOCAL lcFormName,lnFormCount + + _screen.visible=.t. + + lcFileName=UPPER(ALLTRIM(tcFileName)) + IF EMPTY(lcFileName) + RETURN .F. + ENDIF + lcClass=IIF(TYPE("tcClass")=="C",LOWER(ALLTRIM(tcClass)),"") + lcFileName=LOWER(FULLPATH(lcFileName)) + IF NOT "."$lcFileName + lcFileName=lcFileName+IIF(EMPTY(lcClass),".scx",".vcx") + ENDIF + IF NOT FILE(lcFileName) + this.FileNotFoundMsgBox(lcFileName) + RETURN .F. + ENDIF + lcFormName=IIF(EMPTY(lcClass),lcFileName,lcFileName+","+lcClass) + IF tlNoMultipleInstances + FOR lnCount = 1 TO this.nFormCount + IF this.aFormNames[lnCount]==lcFormName AND ; + TYPE("this.aForms[lnCount]")=="O" AND ; + NOT ISNULL(this.aForms[lnCount]) + this.aForms[lnCount].Show + RETURN .F. + ENDIF + ENDFOR + ENDIF + this.RefreshFormsCollection + this.nFormCount=this.nFormCount+1 + DIMENSION this.aForms[this.nFormCount],this.aFormNames[this.nFormCount] + this.aFormNames[this.nFormCount]=lcFormName + IF NOT EMPTY(lcClass) + SET CLASSLIB TO (lcFileName) ADDITIVE + this.aForms[this.nFormCount]=CREATEOBJECT(lcClass) + IF NOT tlNoShow AND TYPE("this.aForms[this.nFormCount]")=="O" AND ; + NOT ISNULL(this.aForms[this.nFormCount]) + this.aForms[this.nFormCount].Show + ENDIF + ELSE + DO FORM (lcFileName) NAME this.aForms[this.nFormCount] LINKED NOSHOW + ENDIF + lnFormCount=this.nFormCount + this.RefreshFormsCollection + IF this.lCascadeForms AND this.nFormCount>=lnFormCount + oForm=this.aForms[this.nFormCount] + lnTop=oForm.Top + lnLeft=oForm.Left + lcName=oForm.Name + IF WEXIST(lcName) AND oForm.WindowState#2 + FOR lnCount = 1 TO (this.nFormCount-1) + oForm2=this.aForms[lnCount] + IF TYPE("oForm2")#"O" OR ISNULL(oForm2) + LOOP + ENDIF + IF lcName==oForm2.Name AND WLROW(lcName)=WLROW(oForm2.Name) AND ; + WLCOL(lcName)=WLCOL(oForm2.Name) + lnTop=lnTop+this.nPixelOffset + lnLeft=lnLeft+this.nPixelOffset + ENDIF + ENDFOR + IF oForm.Top#lnTop + oForm.Top=lnTop + ENDIF + IF oForm.Left#lnLeft + oForm.Left=lnLeft + ENDIF + ENDIF + ENDIF + + *!* modificat 18.10.2004 + *!* Marius + IF !(tlNoShow OR ('LOGIN'$UPPER(lcFileName) and glParametri)) + this.aForms[this.nFormCount].Show + ENDIF + + ENDPROC + +ENDDEFINE diff --git a/Ferestre/Copy of fundal.sc2 b/Ferestre/Copy of fundal.sc2 new file mode 100644 index 0000000..d5d74db --- /dev/null +++ b/Ferestre/Copy of fundal.sc2 @@ -0,0 +1,251 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="copy of fundal.scx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 200 + Left = 1 + Name = "Dataenvironment" + Top = 220 + Width = 520 + * + +ENDDEFINE + +DEFINE CLASS form1 AS form + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + *-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder + *< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Text1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Text2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Image2" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="_pgfrmbase1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_utilizator" UniqueID="" Timestamp="" /> + *< OBJECTDATA: ObjPath="lb_utilizator1" UniqueID="" Timestamp="" /> + + * + *m: jurnal + * + + * + AlwaysOnBottom = .T. + AutoCenter = .T. + BackColor = 255,255,255 + BorderStyle = 0 + Caption = "" + Closable = .F. + ControlBox = .F. + DoCreate = .T. + Enabled = .T. + FillColor = 0,0,0 + HalfHeightCaption = .F. + Height = 450 + MaxButton = .F. + MinButton = .F. + Movable = .F. + Name = "Form1" + Picture = ..\..\ + ShowTips = .T. + Width = 797 + * + + ADD OBJECT '_pgfrmbase1' AS pg_meniu_princ WITH ; + ErasePage = .T., ; + Height = 396, ; + Left = -2, ; + Name = "_pgfrmbase1", ; + Top = 60, ; + Width = 489, ; + Page1.Cw1.Label_item1.Name = "Label_item1", ; + Page1.Cw1.Name = "Cw1", ; + Page1.Cw6.Label_item1.Name = "Label_item1", ; + Page1.Cw6.Name = "Cw6", ; + Page1.Cw7.Label_item1.Name = "Label_item1", ; + Page1.Cw7.Name = "Cw7", ; + Page1.Cw9.Label_item1.Name = "Label_item1", ; + Page1.Cw9.Name = "Cw9", ; + Page1.Name = "Page1", ; + Page1.Pict_liniuta2.Name = "Pict_liniuta2", ; + Page1.Pict_meniu1.Name = "Pict_meniu1", ; + Page1.Pict_meniu1.Picture = ..\grafice\f2.jpg, ; + Page2.Name = "Page2", ; + Page2.Pict_meniu1.Name = "Pict_meniu1" + *< END OBJECT: ClassLib="..\clase\ofundal_preturi.vcx" BaseClass="pageframe" /> + + ADD OBJECT 'Image1' AS image WITH ; + Height = 220, ; + Left = 228, ; + Name = "Image1", ; + Picture = ..\grafice\roapreturi.bmp, ; + Stretch = 0, ; + Top = 205, ; + Width = 556 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Image2' AS image WITH ; + Height = 63, ; + Left = -11, ; + Name = "Image2", ; + Picture = ..\grafice\f1.jpg, ; + Stretch = 2, ; + Top = -1, ; + Width = 851 + *< END OBJECT: BaseClass="image" /> + + ADD OBJECT 'Label1' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Operator:", ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Height = 17, ; + Left = 7, ; + Name = "Label1", ; + Top = 381, ; + Width = 53 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'Label2' AS label WITH ; + AutoSize = .T., ; + BackStyle = 0, ; + Caption = "Nivel de acces:", ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Height = 17, ; + Left = 7, ; + Name = "Label2", ; + Top = 401, ; + Width = 85 + *< END OBJECT: BaseClass="label" /> + + ADD OBJECT 'lb_utilizator' AS lb_simplu WITH ; + Anchor = 4, ; + Caption = "Operator:", ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Left = 149, ; + Name = "lb_utilizator", ; + Top = 379 + *< END OBJECT: ClassLib="..\..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'lb_utilizator1' AS lb_simplu WITH ; + Anchor = 4, ; + Caption = "nume_utilizator", ; + FontBold = .T., ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Left = 203, ; + Name = "lb_utilizator1", ; + Top = 379, ; + Visible = .F. + *< END OBJECT: ClassLib="..\..\comun\clase\lb.vcx" BaseClass="label" /> + + ADD OBJECT 'Text1' AS textbox WITH ; + BackStyle = 0, ; + BorderStyle = 0, ; + ControlSource = "utilizator", ; + FontBold = .T., ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Height = 23, ; + Left = 62, ; + Name = "Text1", ; + ReadOnly = .T., ; + TabStop = .F., ; + Top = 380, ; + Width = 147 + *< END OBJECT: BaseClass="textbox" /> + + ADD OBJECT 'Text2' AS textbox WITH ; + BackStyle = 0, ; + BorderStyle = 0, ; + ControlSource = "m.nivel", ; + FontBold = .T., ; + FontItalic = .T., ; + ForeColor = 0,0,128, ; + Height = 23, ; + Left = 93, ; + Name = "Text2", ; + ReadOnly = .T., ; + TabStop = .F., ; + Top = 400, ; + Width = 28 + *< END OBJECT: BaseClass="textbox" /> + + PROCEDURE Activate + Local lnScrH,lnScrW + lnScrW = _Screen.Width + lnScrH = _Screen.Height + + Thisform.image1.Top = lnScrH - Thisform.image1.Height - 50 + Thisform.image1.Left = lnScrW - Thisform.image1.Width - 30 + Thisform.image2.Width = lnScrW + 30 + Thisform._pgfrmbase1.Width = lnScrW + Thisform._pgfrmbase1.Height = Thisform.Height-Thisform.image2.Height + Thisform._pgfrmbase1.page1.Pict_meniu1.Height = Thisform._pgfrmbase1.Height + Thisform._pgfrmbase1.page2.Pict_meniu1.Height = Thisform._pgfrmbase1.Height + + If primadata + primadata = .F. + + Do start_firma In ostartfirma.prg + verifica_drepturi2('gofundal','_pgfrmbase1') + Thisform.lb_utilizator1.Caption=Alltrim(gcUserNameApp) + Thisform.lb_utilizator1.Visible=.T. + + Endif + + + ENDPROC + + PROCEDURE jurnal + ENDPROC + + PROCEDURE KeyPress + Lparameters nKeyCode, nShiftAltCtrl + If nKeyCode==-1 &&F2 + Quit + Endif + + + + ENDPROC + + PROCEDURE RightClick + Do start_firma In ostartfirma.prg + verifica_drepturi2('gofundal','_pgfrmbase1') + + ENDPROC + + PROCEDURE Image1.RightClick + thisform.rightclick + ENDPROC + + PROCEDURE lb_utilizator.RightClick + thisform.rightclick + ENDPROC + + PROCEDURE lb_utilizator1.RightClick + thisform.rightclick + ENDPROC + + PROCEDURE _pgfrmbase1.Page1.RightClick + Do start_firma In ostartfirma.prg + verifica_drepturi2('gofundal','_pgfrmbase1') + ENDPROC + + PROCEDURE _pgfrmbase1.Page2.RightClick + Do start_firma In ostartfirma.prg + verifica_drepturi2('gofundal','_pgfrmbase1') + ENDPROC + +ENDDEFINE diff --git a/Ferestre/fundal.sc2 b/Ferestre/fundal.sc2 new file mode 100644 index 0000000..6d7b5ed --- /dev/null +++ b/Ferestre/fundal.sc2 @@ -0,0 +1,116 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="fundal.scx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +* +DEFINE CLASS dataenvironment AS dataenvironment + *< CLASSDATA: Baseclass="dataenvironment" Timestamp="" Scale="" Uniqueid="" ClassIcon="1" /> + + * + DataSource = .NULL. + Height = 200 + Left = 1 + Name = "Dataenvironment" + Top = 220 + Width = 520 + * + +ENDDEFINE + +DEFINE CLASS form1 AS form + *< CLASSDATA: Baseclass="form" Timestamp="" Scale="" Uniqueid="" /> + + * + *m: jurnal + *m: statusbarclick + *p: ostatusbar + *p: _memberdata + * + + * + AlwaysOnBottom = .T. + AutoCenter = .T. + BackColor = 255,255,255 + BorderStyle = 0 + Caption = "" + Closable = .F. + ControlBox = .F. + DoCreate = .T. + Enabled = .T. + FillColor = 0,0,0 + HalfHeightCaption = .F. + Height = 500 + MaxButton = .F. + MinButton = .F. + Movable = .F. + Name = "Form1" + ostatusbar = .NULL. + Picture = ..\..\ + ShowTips = .T. + Width = 750 + WindowState = 0 + _memberdata = + + + * + + PROCEDURE Activate + Local c + If primadata + If Not Pemstatus(_Screen,"StatusBar", 5) Then + _Screen.Newobject("StatusBar","ctl32_statusbar", "ctl32_statusbar_fals.vcx", Null, 2) + Endif + Thisform.oStatusBar = _Screen.StatusBar + Thisform.oStatusBar.ctlIcon="roastartmic.ico" + Thisform.oStatusBar.ctlMessage = _Screen.Caption + Bindevent(Thisform.oStatusBar, [ctlClick], This, [StatusBarClick]) + + Do start_firma In ostartfirma.prg + primadata = .F. + oprinc=Crea('princ') + verifica_drepturi('oprinc','pagefr1') + oprinc.lb_utilizator1.Caption=Alltrim(gcUserNameApp) + oprinc.lb_utilizator1.Visible=.T. + Endif + + + primadata=.F. + oprinc.Show() + + DO lansare_toolbar IN oproceduri_comune.prg + DO lansare_help IN oproceduri_comune.prg + + + ENDPROC + + PROCEDURE Init + + + ENDPROC + + PROCEDURE jurnal + ENDPROC + + PROCEDURE KeyPress + LPARAMETERS nKeyCode, nShiftAltCtrl + if nkeycode==-1 &&F2 + DO IESIRE + endif + + + + ENDPROC + + PROCEDURE RightClick + DO start_firma IN ostartfirma.prg + verifica_drepturi('oprinc','pagefr1') + + + ENDPROC + + PROCEDURE statusbarclick + Thisform.oStatusBar.newtooltip() + ENDPROC + +ENDDEFINE diff --git a/Grafice/f1.jpg b/Grafice/f1.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3bff03ecdd2b1bcc3196cfd52bed5e9071bf408c GIT binary patch literal 9291 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 literal 0 HcmV?d00001 diff --git a/Grafice/f2.jpg b/Grafice/f2.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8e5353965dc7453a7b864594ccd0be5401c83f64 GIT binary patch literal 6403 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

=;m*Z3i?g+jah#Z|b#+6S>!PEz7cZ(@U28CF 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 literal 0 HcmV?d00001 diff --git a/Grafice/roaoferta.bmp b/Grafice/roaoferta.bmp new file mode 100644 index 0000000000000000000000000000000000000000..d6f2407452ef1e209d11766efd25249e39b7e34f GIT binary patch literal 367014 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�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\paO{$&+Y%6fAMb!plGf?b;A- zM8|@@6~1x|9H4tynhN^hvIh&WR>dnQKvR@}3hzL>qR(-`04Qu6e0c+O zQ2r1fHqZwYKnVi`3n3Bjq(wf*=v02sBFG3Bt1l8{H=|G=BZ> z8UdbRK0I|i{O8Y~Cn-nTiWOw@ShO&H>HN67MR7aQVt1{cyL08Nl4X;3B#kRhnOKoA zvm$F=_L7)|3*!&$uX^$P3CTZye*e>r+T;7n@-80V_2S1{KfQTI{(+k}t|iCEg$x9DDL8S0XWD9pX*{NeqRCk|aUZCLv3;Oy9mIq_j@7Eaxe61jVQ(*DBqeH+vE zZC-utcx597{dYa*{}yTar@VXfrmm{$Y+>Pdxw+L@Syh>tzq@5*RI!N)aGafeu%O_` z_U&w^_U^rO`t;4~*U|hKzRnUpS_cCv|mK z%FB=OCWV}w|1nCUG0DiNB$wUtjorRovd3xT>{r`_{x&t%3hW_wU~R^7BtW+`nGEbKSn;oV(Xg|NPTy zn)&J7+v>f$mnFu|pEGU3n4kdvfg$6jCa>F3eDQuo-HXyIKW;t$!@A@5Q!B14-FbQC zzT4}L{IK=xvu&py6&|hIcf@ z%tP72O|_e=nkhU843hfr((NWvO`5i8(p0KRvo_6|N;YrOx^*-0wk_JowP>Ry)xlh$ zV=rw@PXleQ&KiAFkVqE^xxZ>q;LcdyAevxc;}F-@%V=-@H~+~sG$gko|RvGTzdXd;i8 z(X!1M+j3Jb9NGQ$>HYfmWj{GowWoM<{^s25%oQoK!>0@zG$S*fJMqa&nGwBZ))C3FyfLic=y*5o-w{O-`wWWk!8)@D} z-cwW4Q(wV=M;nEvT;c2K`B%?M5*gN1$;8{`@2G=4svi zv&DB#Z@+)O?B2POt5tc&wj>`|w?F_L0e8LzdIS=5VBH6(%1vQ?SR9m!ITiC6JVHOc ze*WYA>xU|eHfAoWD9pNh`NS{p-@gCp-T70;%C>GQ`2a&%nah^WofSS}*wD$7rsZ!d zue$nR*Ue|S$M3DKsmnclKmX{%!jq3GuDz_j^RBY)-ImRzn>E4sCfTy7xOh|XcCFf~O19H& z+upc?f{lubi;h;`E}eb47`S)R^w3l5XQVyG(PH)h*Tup9xl!YblcRR7h$~$&e^>gV zU8@)G%1+v|Zux=2teR~(`?h4%6z3i+$*nBPI#jm)!oiZOhj-sOcZk{Dzwy2^fS*qn ze{%*aAU@U`J{(hqk8th3QJ%)C8b_dU1R6)+-#G&R=Wl=i`G^1W=HlPqUH<#~t3N+K z`~1qD%jFs0ZHPaxZvOwYw*3a{X;^^r-)&fUWK&|n%6Kq{#nkA)e~@mXwBJ0xbM4%| z;`}{DYtJ0q_2S8+pWnZ`ck5d9&f;A~1-rN8mu_0OA#2tA=%`VFBPULrxhlV8_oe$g zt~|*(ayRSHoxI}@HlO}s=jG>Bb#H6#zOBCVs`A#eva3%D30*jHCw0%|_^oHcGxrUO zTx%Bu6`G{!I6}j2h?b3aJ2idr=Ca}+-ncC#+q{ipD;ce}3SH$?t&}w#wX}O_Yq;xa z_*)nbvo#NL=r*OVb4;Lb()eNN)5olxJ7LS>h_aRQtJWsh6r>;CoPDG)r)EpmfugJ< zCF_pv+Hj~e?^yZ9V|z9p-d%9KVsq_*9hVO8x?Owt>oMp9K-b$tuzO>E#{mAx2eUkm zIc%gKUS#$0Ly{Jpu)I5_xVV@%s*uK{yu6$={tP&K7W8q30@%i}ud zrm?QZ5ojENfA0tYL%%%#``cT8e|zcgKV1Qg-hF@c+P*c1H!iAK|5Y#~kS45fM>j8i zcy!a@Z8^A;1Pnq_0ft!D`u5fHYv+$2sVY8RU3&Lg?dum$UOoHq!pWmmrCV!uZL8V2 zt#W(ernOlyQBk8uj2}B;PD*ZZ@%j6O7awOIy_0j|UeTqOWmjMBz5eRp-M5DxzB_R5 z^`4tAc3gatfAT^4zUxa%F3eqbBsg)K`^05t{xfx5$LqU})ps5!uW8t}c{|yr(jA($ zQEb*mt!3Lz679{~b+l1ZcTiDvP?mSoRSt465BGPE3m&*~W@u*Aq_weAwj@RFTou1N zYjOG7E9J(W&aKXAW#XRkgLY zrljtR7z91RAq&s|E;xU$U%$?(bI?S1n>?A2Klu<}nx39c_QholJ}D_Fdp4$>+_|=D z)AIk@-g$sGRla{;5y8P$Q2r<&C@LT#$`V8wf`Ee5LfJzotGfl-vPyfp(!F;}7cJdw z+H~)|lJ1eFJLybUIy2hjz0>$ZUQj>KB&(5L$m#5aOYn4W8QdEZKmthMDH0f!39gXK5)M=d zxpbj`!S60?%L}9io2Pl}-EZvt;b%~v7-z!SfC#iTYRe61$qDqbGlr^$_ge&T2ym2i zvs((Xk}~4LDhsoF*ex(i*V)!woSj^d8eNzgQ;-^$oe=Hk?X9m(I{mBik&~CSEq%Sy ztGsAUPTBQ7B^{wvoJa;IxqcwCg`3&JOJNR1F*t#R?H(CS+gQ4O0PT`P!l4_UUmw?9 zvQv54ZiSUUoS3_K#jHthy*p{vd#_IaVB*w86Q(SAb?O(d&s;lW_LleGlUljt?DwnH z5B;EhR@zkcl)Ju~pT$jz3n}@oO=gHo4%t1M?2#MkQ=AxDo)KM{6IYQLRh%4JoDy1^ z9s%X@N;4_>DZzzl=+iE3YLvTc47Ds`~$(I5OD-iA7IXaodONZtgWp< zRzO!Q%*;%TjEoEo4E1%*40Qd>bt4>g6TL}UfmT$qeO{<7HQb>n%7qs0m>X)F6Ji7J zd13Z>WJgA_cSELsZK`i=MnF?hBD*TLtFfHh%Z7PRp#1wwD2}Isv z`oPl<{)A+qh8lWOG&wUVhE-EJ$mxO?v%0)AJE1B!v8gn#v7&&Mn-v}sYG!PG{@j%# zN0ilW+S^A`J@Om9ikkf@*kndeLVbTaYcRW&2QrjU*H5YF2`FfHORYB}m+JWBDp*i< zE7`2rcXjz5)m8h>%=>ud%*nIfpZwOR)8?#s`@QvVzxU;o*()Yb`(n!Uy(^YoKf2dY z@sOUv0TN{W+>#G+&`A!orNw#|C-@a722^E5*3lBGsR`xTaTU1<)wI;Q!qhriQe8n3 zBR{?*GqNx}JUcNcCo#AvlTwluS&gH8e0I z>6;i3riO$iN!Qz4kK$ku=VqAdZCF6Isf=~4h;c59a;S)Lg7>mW`_f2<@)#F-f@gJ_ zACnr@R2bi0mD|m%80={iU#W+dXLMKKZjk^IKmz|B0r)@j$dHiB6b)92_zdt64K-!f zqA8t*3~G0CRby>sQ2{kBI?m40Mdkd}Bm3nQub5kgr27;%`Bk!ms=Hzv z`cjz#*)80hRzW&zD6wuJqN2+uo9PfoHx4OKcS$~^b!Xi%{pCMjS-oHGy`^8yd~MeJ z*JrJmG5gzj3$`!(Xye=e_u1=HKY4S?-Zd)?6;D`SKWlUI%xx3ZKu4XFV7tQPyX9Hr zn*10>UQAtaN=tQKTP=-QncGm2%cSSGR?*ni@Sam$kW`Qso|7Ds675F`zU}XA>*HqW zYD+TFzj^cK4RD8vgWL59OGCnnL|7XUw~Yz14H4&}o9v;V;X{H+OInCUS)?7f-bx~D zi^FZ;y)ewWB+98g-m`%k(?-wfs43vI)C_UJn}bd9{=I(zcqAl%1jd{I2!)8(EOrm^ zszd_DP+M+Y`kmYWlRul61AkD2Jz;2I0J%kwZ3IH|h#|nQJSgy3TAUagMK3Ao>j6`! zv!Q}omKj}JklI#T+}>2fYOJoI(=!s&+-=;|&TH)dS@x9tEz7X9km}Bm+HOj1cS>Vl zZYz)4F`V1RPi-8Gp?8NAwt8na+Qn87etB}1k>AT%e|bo2(}^n!SFD{edB%H_r+qea z<~Q^HZ`;BJ8{VC}e9E*Br%c(o=5zC_a^4o#{OoU%y$z%MEz&7&MQMR$SrK(bN%f^^ zOnPoxLkYXFw7I5;#VBA^(HhHh>q{~!@)D9Lckj4ay4aB{jI?fQDl5yMR+B%irE=Ez znu3+yH78Rdz=DW&0MP+~)=l%)2j?09%nLLv46`bw*cFkjL4#nblNMrG9O+n<>fcC< z?P6B;wl@s*cEV)ZBLL!0NB{{Sf#;uqI9{$z$gL4uLwp9eBfm922p*e%CPUFqgf2mV zyF5EP8)AbW%|{|b%!Y=t;^Kzts*a|**6QM-v?yvaxvnG|a*2A_O`uKfP0jhKSsu2x z70;>d`SHjpB`udED!H~Jy1qMw*_YqWFX|bgbq;4W4<*)cA}czA3R>LL>#d_JZr#n1 zxpil&oY`&#-Nj#Qm_BLh+{v%6n)~(-%Rc<&%jE~Z{%Y5XWy{{3{oTq>9f&LO0rpA3 z_Lo^>bdt1+uwHtmAbM<@7sxS-ys#J0LU#p_U*$65RoY`9WsX zQ0t21yY;mAE+&1TyNy584+&F`hK9c)0VIF~UMvD2L&M!7kfBj)Xr#BKvxp4O&p(tQ zsNMr5di3=4AjAvmT-_gy@Q2Vqh9F71r>m=mUQt<)*Hl$pTbi4j9A2K60Ml{3Y!+{@ zk3TfXX0fsoQ=P4xmE|t~wD-t4b;2b!Be8*<(K?vZ&ZBh-#IFuPX461?btk2wBY@W8 zk;$}*+)+8fI|SoF5W%Gz>TZdzQZzqhx$lf9L(&h^WhYVtal z6)djF*=Sv~*S_FIT=XYh2sSxSHoq8Yqm<~Zp600yiUV_N61jnQc!3zft31KGK0l_t zwwT-3E#MBqbmgOM#y>=dUm^h{fCOF?0%95J5piq9G26q{kVe#57zWSMhhw(kfBs+! z*&7ff5(%ozLE)*#K3!o2kSZvpTT@w5T|#ZGudFCY%S{SpmFM)e*75qgM+DrV{+`C# znzW=;H^rPxoMoV8_7eBv)Pwf;Gb_sG?2GSZi3AH^D6`cXa?AzI_ z>pmG5t;uH%+*W?`!~8k#eKL3U?lm8)pV)17`J|WeRkE{%+4ai@c5JmVxYfugsV~nd z$);4&;#gHV?G42+?M5%jOG}LLaJ9EGH89fCB5rDGU)M0Yrskrp;Kk9APV^1hkvqmy|@7c>Z5JTUVHrceRdmXQ(CRGu}|*FDVVg1z%t zGB3*Ah2um5NB{{umVh`)VL-@hgqUrRp^<^|t|Br#T_3iFpi-Q_wRlDjWC(I6Atw2; z4_jCPbZBs(ucfi3fnLn2E~ua;Rc6O`fThsWEZ}l@JgA-6*VWZQ%gb}HvOjm~g4CXa z@@m?iaXA?+y|ivVt&3mK$#|MY+O1Fq`{T7A zFFd$)6`^pz?$%l8^^+3l9&_jRb@_8=qzS?K@UVG@MscqI@i>6HC60xs0J9ShMB2GSgC^aL|ZDw+N#9atHnC1#W<)% z*{M)$lqj~!6nkZgol3Nmda93pQM7AAVL}(HiZ{TKj0@g>A1Z!A0!RP}Ac4P20K(aX zJeFvPE{Rg;XQo%iI%oPAJRn104c)OM3?MSu+#J$Wp&G!GJcnT&aE@@gy861i2m5-f zOA8CLQW~m?y4xH1L%k!zyb%Ep%FX9wX4zZWUOXqiZ{LBFXD-_L1f(`JQ+s&1Y+gnS8?^FC2K#rf0B(l_kN^^Rp$Uj%w)rihp{jc_ zM2~j`8M;4p2&^IK^59`g80r#cW@b>+40^#o$&-0hhDM-@%|LJOP=9Y{E32-eu&#pI z)7Bsu5c`J2BGuiMm7Z>4Vj_3`{6U$6C(m54^zcisZ>Dzhs4y?rEyx3ds6&v|CP=L7 z&uZ>*j!FLE7l=OCa_aCQ9ZfY?Ym$?tp1qm2qm`b{%}Z(uXVlLh*Hih`K=qWp`srXJ z`A92eiiILYtUgLnR*EsUph2pMj+YXhF2&ia#yeb!cf1m5qZVeN67Q~;OLnd=$?WZH z8Rm;ymcP(<1`ZwxAOR%s?+_3dmunMo#R1#!>Stw0WayqX1R5kR-Qz@fnh^%N;z&8D zq6w8V9~&tLr!SVFkrAlf2`z`94|q>UOKl~URa4a0(I^yUs zE*v;;=;(>FHeUW2_07c`ahO~#o1e=T{a3%RN@>} z;~mvv9aO_D<;WKDG0xXAg6%7F;=5YvxdVN0!m#{1;PEI(00|%gBp@ar92N=Mh4*Br zDHCMqe%}zt5Oi>ebtZhR#4-fEgrG=TSy>rWhkh(Tc%*~915pYP62~3nw6dz`C0Pws z1>NoSd~PrN$merwsw@2OdKi%i6&1yUGKY?xJa6spms#6f)Fa666u%03hH31+a#o{- zPte9~yH~FG>bq|?|Fm=GnIngEl+IY+lylXU4>XnwGnWfBJs)avKGgVZh>>iB`Ne4K z-^?G-ohUoyNNdFiYek5-jV2#19N z_HWjZfHByb1HK{1%Dmqi0woeh%GnS$gjj}bZEd5Yqgz^99{cnb%Mj?0fIkeWn;dpM zqog=LwX!6utAi6kNN7$N7-JAa!`YC0*I*&GrtgSagl5WG9=cZ zSUaUC8?oqwTPcQ`U4*QkC>JeSye~97>hEDgvk5TM;Pha5R$y_zNB{{S0VMDQ1VAW+ zf({|KTF7TWfm4v7@@U8OI}dgpf_b?}2g2P9DyR`qBHG>E9g2B!IO4FeM;v7IF)w}t zF&gOS)Krzya+0en3pm|v(EN@&)W>Y3XJ^EP_`AE>TN2lAo;Y;sVvV~ad zi(%$x!!0fZ8C?iAhHO*0C`ZjqvNO~mZD-YT2L~j<29mRS#A)MCNB{{S0VMG65daw) zEup=K9COwYqBkaRwPbTQmY zHP+=uZn$$}MQ(RHi#ymq+JylPpGRCD{0Rvl0VFV{1VBNCIpRVJJO-o=4KUM7D0UDj z_do`#Bv1i7M1JOkHPlid#Hp-yc6Rac@eBq7%pyt0)jt~vm_yKJw5zkDnbla!sH`X} z%Fj!Sq6GMQI+>G*bHAQEDt%zz54*R0y>Z_+8*co%-^WCaY^4xkDQBU1{K8LPp4t3~ zhV)wFvpe0d9|<+S0F@0Qzz8zE=xcDsTjz|Qfn2Psc2QBcSIu z^wx25a)RnKEbmzI_$B_+m0M|*gfCP}h6A}O!5_JBSz6vtbkP4A< z&~oSjYv_I@f~E#!Yr@Nna5N@t4G0T}TNo|!1I7_Z()|krGZ+~dfJ4bjm#{MwukUQC z<7q+on`;M~-ymCRkS#8SS*QjW$va;=VIsdz^T@ZC_OCZQ|3iT85p(s!%F^rPcYUUH z^jp1C+f6P?xm-QvM^Z@iHmS^tX>Y6o>G>_O^pR77Ply3mLjp(u2_S*7At25hf=Id1 z^i^IJR8gQOxc#9F-BTj)6G7k{OwdKzi(BCNSP~u<;^N!)zue6UPfKzApAah|+=hs9 z5N962RD*mEZ=2qaU`0 zBq7`|J13c-`=6kQlUqSw?tj5I_kO+iL9(G_C%?aY=p?z{igmh5wo<*Ld)7vI4@vfW zRq4%Vwr^0E*=~4FD%8n@SzXB+8XT1#RG+7Q`EiFx00|(0u_kc83<((A)|{%*Vm^N+ zL%%DC=bttTfAV!CC4-VZbQ0XOLiJ8ME6J$*xb=$k4j)_NxX5ruRaJkVxU#`mGs5E| z0VIF~kiat|08jbhPDo#cfNkjYz-!NAJklC^a*28Lnjky1&04HRzdLc-%1(Kmtf$d=LOzL!38M4Uuw?H^lFt)+Br8_!-?_ zNa4|f@>hQa^??aGP#=hM@HHgDY%Q`p4Ew3R2AZ0r8#h3Mpn^AQ(D=AH@GOu35alkfML+t$e^gGai^{LAcs1NvwpoMFw6>*m&R-gQs@Q$WNZgr}tDvWgf zy0Mm4T3T9ia&k>g4cbA^{=(xCkN^@u0^@=J%z6ojIbsDLH8#$Tj$pGIAm9zg&#O%nRfU^qX_;zkg9d>qR9jn%8Z<8M z3_J-WfCP}hze3<)8EVY-%MUVpxUAg6`ts;+pd1jGKNLG6z>M(L*9)j8S3=E()9hgF>LC^oq zh9g7*NB{{uOkmVEB;wYL%1|}GtALs92fm@d5wI=s{*Y}5Z$rXWmms^ia5_39lWz|k zmfw&qtckKVFt9c>%+AgRQ>eba9_^q9DB+(-00|(07lHuD&`2+oHkE`Z2sp*89RD1D z<0qFPN#q;E9{8CM?)rLOMn?Gw3A~}92h5*)F!>ERqM8_663Nck7%I_$Db&!=0EOuO zZ2fy1;s+#v1dsp{cn%4OWvE}os~6Yv8Lk=WFKf#2mqf}vNr(b?f57~4(Isw^NQnUf zeLX#oRug_>o~Sm?-o(Vg%q%Z24@@EGCypBQ9Nt$rBqV?YkiZiX5X;bjh}SSGL)F9m zWzBhkqag~9ij;$LJy0eN%pVs$y+9WidO?9eAb9Kn`OJJ#UA&{2nUjS@ettffLa0HH zg@!920VIF~o^t|X85$Jv8YMC$=q+ic22+F0M^O40fHvrKE{NTF5z!)pBWW3*x&!;O!%wKQ4Y# zp{OCn-OkR_!J)9Q5KN(_rY2~{`e-lG{d*Xb&m$uvFw@BA^WhynKkz4<{Jn2@JRXgoc64(bj;5A=$P3W>aym6gFvBm4yGz^|}*TU#4w6R6UYu)=ka z01`j~FCqbuA>ojS#}fO71mX|{kf9`Z!`mdnNl!1p$*Go3f0FQnKSalGDG@Q#?>IaA zxVn~FMd_=H}?=XklStVqyXx!o$OJb91w@vM3Y^Yz`|+V$s1My8kHfd7N8U;omjOJ-(fpgUwT+0xQd zWpptxFo3q^BoYb!I(6#Qv17-M962H-CADYIo})*PUb}Y9-rgQoxN+kKY;I*`1*O8F zL>`z?_l^Pw1zQR1qra`}|BwJ~js%bZ5*UvJgnS{tRoGQjmE;-k?b^m+$iL*zK9@w`JHkXx^1rrHWEG{lias)V5Qc@DwN+3)y|?f6<_z?5p2}GX+A2j&Ie}hYf!^L=UyKJ00_y|j10hoh=E`6)&HaDN z?a{^0#N_s;pUTdi`{|rH-)`C@y?3ww#*Loq)@^(H?X}C6ZQitL)3Rk-UU_Bd%P)WR z=9>z$XJ45)(`?zYtIL-!nKEVls#WJVZ+2X~_|%*^OW%11Hvj3TpTJxK8FF=Xh22XI z<>loCQ+6;d35FO5;#1*_J3#_S00}%N1cW0H_4TyIB50?Jn)8D1+zIjZt*oppFE58F zsj;<#U=|L1G?1wj6%`c{5)v2~2#y{nzVWHwc^x=n<+qZ|zpI;{<({}Xe&u_i8;{Es4_v~Tq z+U2u)^^&PmcWm3XfB$|}RaKbB1Kok6z_EgYg1{^S`wLKXcXy*5^tA3Y+z%2!0!ZLt z0s=Ne)SMrB_imVC<;joVb1UYGY;PI%(0gbDk<{WerZMWCpdvT@^v$&+0^ z{nTo~g0=6ytD&Z5sjhx}$&&pqy`=ooOS|UI)x3P!)7F-8{5WUdz60~;pFVN~6bIrH zAi_Zsln#Cg@ zxrZlAI5u(O!YR|YeYe$a<*M-c^G{5e@cC`bkOY@7#H0>C#_6UL>!*{&1U=wCTcyYo<(FHGSUFIm1T@$rf!wyoH(Jm@Pp6ZoVDb&DXSJPJg{!v@ps-an>Ovl8*gl!GiUo3 zUubD+f+q+f5Wwt0@6QAL@lPax1dzZpB{1CGC~7YO0g8)=fGIC9g`kE2q~|=-gFgAr zhlWPBZ|`{Hjl|irO=iy2oiO3 zuqRA#dimw32@~Spdr#@djnZ!0&74*!8h)~m`0|v>CWGUL8b10k;?$Sg9$N_4&(Cgq zZRgCXMzdxOzB?`K>Y8go8*f-GJa*{)b?U#KE_HQnadmBVacOaJX>xL+IyrTBbwTU_ zdVl`Yw=teP5`}{|5S3GSbfCQd10wcXG!j6iR*x0m$1gPf;G6bP$ z=?GiF4;@=EcvX%t=Ei1hRtY3Y%5 z>-cZH;ise&sI1I7d|0$-QNz-uw<(ku8jS`SxZ`JZ&)L0%!$AT_015n60wV(*qOKYc zpxlfMC`k>?gT|Exak(O8W#R7K!lg?E^XHE&SkOff#m&v_6%|7|IwJ=Uj;vY3n?0Mq zXigjTp0-<0VIF~{vH7#w^zhr7Uk!c78FSOmZApzJ(9Q;5<(Hpcm%`z>y*WB!C3QkbrPlAR1s-)9H}2Ef500VIF~#*lzmgNC{r zYHOQWEQp8$8G?!fSj}b(uLvF*2_OL^@Zt~d^Y78v3H literal 0 HcmV?d00001 diff --git a/Meniuri/roapreturi.mn2 b/Meniuri/roapreturi.mn2 new file mode 100644 index 0000000..10518f9 --- /dev/null +++ b/Meniuri/roapreturi.mn2 @@ -0,0 +1,106 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="roapreturi.mnx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* +*1 +*REPLACE + +* +DEFINE MENU _msysmenu BAR +DEFINE PAD _000000001 OF _msysmenu PROMPT "\ + +* +PROCEDURE BAR_1_OF_Utile_FB2P + Do start_firma In ostartfirma.prg + verifica_drepturi('oprinc','pagefr1') +ENDPROC && BAR_1_OF_Utile_FB2P + +PROCEDURE BAR_3_OF_Utile_FB2P + Do Case + Case File('C:\WINDOWS\CALC.EXE') + Run /N C:\Windows\Calc.Exe + Case File('C:\WINDOWS\SYSTEM32\CALC.EXE') + Run /N C:\Windows\SYSTEM32\Calc.Exe + Case File('C:\WINnt\system32\CALC.EXE') + Run /N C:\WINnt\SYSTEM32\Calc.Exe + Otherwise + lcMesaj='Aplicatia "Calculator" nu este instalata pe acest sistem!' + aMessagebox(lcMesaj,0+48,"ROA PRETURI") + Endcase +ENDPROC && BAR_3_OF_Utile_FB2P + +PROCEDURE BAR_4_OF_Utile_FB2P + Do Case + Case File('C:\WINDOWS\NOTEPAD.EXE') + Run /N C:\Windows\NOTEPAD.Exe + Case File('C:\WINnt\system32\NOTEPAD.EXE') + Run /N C:\WINnt\system32\NOTEPAD.Exe + Otherwise + lcMesaj='Aplicatia "Notepad" nu este instalata pe acest sistem!' + aMessagebox(lcMesaj,0+48,"ROA PRETURI") + Endcase +ENDPROC && BAR_4_OF_Utile_FB2P + +PROCEDURE BAR_6_OF_Utile_FB2P + QUIT +ENDPROC && BAR_6_OF_Utile_FB2P + +PROCEDURE BAR_4_OF_Ajutor_FB2P + DO FORM frm_about +ENDPROC && BAR_4_OF_Ajutor_FB2P + +* diff --git a/Programe/onom_preturi.prg b/Programe/onom_preturi.prg new file mode 100644 index 0000000..e67760a --- /dev/null +++ b/Programe/onom_preturi.prg @@ -0,0 +1,130 @@ +Procedure viz_politici +Private popolitici,popoliticiart,pcschema1,pcselect1 +Local llAfiseaza +Store .F. To llAfiseaza +Store '' To popolitici,popoliticiart +If Used('crspoliticipret') + Use In crspoliticipret +Endif +If Used('crspoliticiart') + Use In crspoliticiart +Endif + + +pcschema1=['id_pol n(10), nume_lista_preturi c(100), datai d, datas d, id_valuta n(10), nume_val c(10), id_nota N(10), notaContab C(30), preturi_cu_tva N(1), utilizator c(100),dataora t, id_sucursala n(5), sucursala c(50), moneda_nationala n(1)'] +pcselect1=['select id_pol, nume_lista_preturi ,datai, datas, id_valuta, nume_val, id_nota, notaContab, preturi_cu_tva, utilizator, dataora,id_sucursala,sucursala,moneda_nationala from vcrm_politici_preturi where 1=2'] +pcorder1=[nume_lista_preturi ] +pcfiltru1 = [2 = 2] + gcCondSucursala +llAfiseaza = .F. +gencursor('popolitici','crspoliticipret',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza) +popolitici.ca_baza1.afisare() + +pcschema1=['id_articol n(10), id_pol_art n(10), nume_articol c(100), um c(16), pret n(20,4), pretftva n(20,4), pretctva n(20,4),proc_tvav n(6,2), nume_val c(16),utilizator c(50),'+]+; + ['dataora t,codmat c(30),art_compus N(1),procent n(1),explicatie c(50),id_venchelt n(10),explicatie_venchelt c(50),um2 c(16),cant_bax n(20,4),reteta_principala n(10)'] +pcselect1=['select id_articol, id_pol_art, nume_articol,um,pret,pretftva, pretctva, proc_tvav,nume_val,utilizator,dataora,codmat,art_compus,procent,'+]+; + ["(case procent when 1 then '%' else nume_val end) as explicatie,id_venchelt,explicatie_venchelt,um2,cant_bax,reteta_principala "+]+; + ['from vcrm_politici_pret_art where 2=2'] +pcorder1=[nume_articol] +pcfiltru1 = [1 = 2] +llAfiseaza = .F. +gencursor('popoliticiart','crspoliticiart',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza) +popoliticiart.ca_baza1.afisare() + +ofrmpolitici=Createobject('frm_politici_pret') +ofrmpolitici.Show(1) +Release ofrmpolitici,popolitici,popoliticiart +Endproc && viz_politici + +****************************************************************************************************************** +Procedure viz_note_vanzari +Private poNote, poNoteIreg, pcschema1, pcselect1, pcschema2, pcselect2 +Local llAfiseaza +Store .F. To llAfiseaza +Store '' To poNote, poNoteIreg +If Used('crsNote') + Use In crsNote +Endif +If Used('crsNoteIreg') + Use In crsNoteIreg +Endif + +pcschema1=[''] +pcselect1=['select * from vcrm_note_vanzari where 2=2'] +pcorder1=[denumire] +pcfiltru1 = [1 = 2] +llAfiseaza = .F. +gencursor('poNote','crsNote',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza) +poNote.ca_baza1.afisare() + +pcselect2 = ['select * from note_contabile where 2=2'] +pcorder2 = [ordine] +pcfiltru2 = [1 = 2] +llAfiseaza = .F. +gencursor('poNoteIreg','crsNoteIreg',pcselect2,pcfiltru2,pcschema1,pcorder2,llAfiseaza) +poNoteIreg.ca_baza1.afisare() + +Select crsNote +ofrmNote = Createobject('frm_note_vanzari') +ofrmNote.Show(1) +Release poNote +Release poNoteIreg +Endproc && viz_note_vanzari +***------------------------------------------------------------------------------------------------------------------------------ +Procedure viz_categ_articole + +Private poCateg, pcschema1, pcselect1 +Local llAfiseaza +Store .F. To llAfiseaza +Store '' To poCateg +If Used('crsCateg') + Use In crsCateg +Endif + +pcschema1=['id_categ N(5), denumire C(30), grup_sup C(100), id_tata N(5), tata C(100), id_nota N(10), den_nota C(30), scd C(4), ascd C(4), scc C(4), ascc C(4)'] +pcselect1=['select id_categ, denumire, TRIM(SUBSTR(tata,1,INSTR(tata,CHR(92),1,nivel)-1)) as grup_sup, id_tata, tata, id_nota, den_nota, scd, ascd, scc, ascc from ]+gcS+[.vcrm_categ_note where 2=2'] +pcorder1=[denumire] +pcfiltru1 = [1 = 2] +llAfiseaza = .F. +gencursor('poCateg','crsCateg',pcselect1,pcfiltru1,pcschema1,pcorder1,llAfiseaza) +poCateg.ca_baza1.afisare() + +Select crsCateg +ofrmCatArt = Createobject('frm_categ_articole') +ofrmCatArt.Show(1) +Release poCateg + +Endproc && viz_categ_articole +***------------------------------------------------------------------------------------------------------------------------------ +Function verifica_politica +Lparameters tnIdPol,tnTipOperatie +** tnTipOperatie = 1 - modificare +** = 2 - stergere +Local llReturn +Store .T. To llReturn +lcCursor = [crstestpol] +lcSql = [select to_number(varvalue) as id_pol from optiuni where varname = 'ID_POL_PRET_STOC'] +lnSucces = goExecutor.oExecute(lcSql,lcCursor) +If lnSucces < 0 + amessagebox(goExecutor.cEroare,16,"Eroare") +Else + If Reccount(lcCursor)>0 + Select (lcCursor) + lnIdPol = id_pol + If lnIdPol = tnIdPol + llReturn = .F. + If tnTipOperatie = 1 + lcMesaj = Chr(9) + Chr(9) + Chr(9) + Chr(9) + [Nu puteti modifica articolele de pe aceasta politica,] + Chr(13) + Chr(10) + ; + [deoarece este setata ca fiind politica de preturi pentru facturarea din stoc ( in ROAFACTURARE ) !] + Else + lcMesaj = Chr(9) + Chr(9) + Chr(9) + Chr(9) + [Nu puteti sterge aceasta politica,] + Chr(13) + Chr(10) + ; + [deoarece este setata ca fiind politica de preturi pentru facturarea din stoc ( in ROAFACTURARE ) !] + Endif + amessagebox(lcMesaj,48,"Atentie") + Endif + Endif +Endif +If Used(lcCursor) + Use In (lcCursor) +Endif +Return llReturn +Endfunc && verifica_politica diff --git a/Programe/ovariabile_globale.prg b/Programe/ovariabile_globale.prg new file mode 100644 index 0000000..c318582 --- /dev/null +++ b/Programe/ovariabile_globale.prg @@ -0,0 +1,12 @@ +PUBLIC gcCondLuna +*!* gcCondLuna = [((((extract(month from datafact) =]+Alltrim(Str(gnLuna))+; +*!* [ and extract(year from datafact) =]+Alltrim(Str(gnAn))+[) or (datafact is null )); +*!* and ]+; +*!* [ (extract (month from datai)<=]+Alltrim(Str(gnLuna)) + [ and extract(year from datai)<= ]+Alltrim(Str(gnAn))+[))]+; +*!* [ or ((extract (month from dataoravalid)>= ]+Alltrim(Str(gnLuna))+[ and extract(year from dataoravalid)>=]+Alltrim(Str(gnAn)) +[)]+; +*!* [ and id_tip > 1)]+ [)] + +*!* lcDataFact= [ (a.facturat=1 and (extract(month from a.datafact) =]+Alltrim(Str(gnLuna))+[ and extract(year from a.datafact) =]+Alltrim(Str(gnAn))+[))] +*!* lcDataValid = [ (a.validat=1 and (extract (month from a.dataoravalid)>= ]+Alltrim(Str(gnLuna))+[ and extract(year from a.dataoravalid)>=]+Alltrim(Str(gnAn)) +[)) ] +*!* gcCondLuna = [ ((extract (month from a.datai)=]+Alltrim(Str(gnLuna)) + [ and extract(year from a.datai)= ]+Alltrim(Str(gnAn))+[) or ]+; +*!* [ (a.id_tip=1 and (a.facturat=0 or ] + lcDataFact + [) ) or (a.id_tip>1 and (a.validat=0 or ] + lcDataValid + [))) ] \ No newline at end of file diff --git a/Programe/roapreturi.prg b/Programe/roapreturi.prg new file mode 100644 index 0000000..df2ff47 --- /dev/null +++ b/Programe/roapreturi.prg @@ -0,0 +1,1040 @@ +Parameters tparam + + +Private gcParameters +If !Empty(tparam) And Type('tparam') = 'C' + gcParameters = tparam +Else + gcParameters = "" +Endif +&&& cont2003 + +Public gnewcryptfll +Public gnewcryptxml +gnewcryptfll=.F. +gnewcryptxml=.F. + +Local lchost, lcUserName, lcPassword, lnIdUtil, lnIdProgram, lcUserNameApp,lcPasswordApp +Store '' To lchost, lcUserName, lcPassword, lcUserNameApp,lcPasswordApp +Store 0 To lnIdUtil, lnIdProgram + +Public gcNumeProgram +gcNumeProgram = [ROAPRETURI] +_Screen.Icon=gcNumeProgram+[.ICO] + +If !Like(gcNumeProgram + '*', Upper(Alltrim(Juststem(Sys(16,0))))) + Messagebox("Nu puteti porni acest program!",0+16,"Atentie") + Return +Endif + +Set Century On +Set Deleted On +Set Date To Dmy +Set Exclusive Off +Set Cpdialog Off +Set Talk Off +Set Safety Off +Set Escape Off +Set Exact On +Set Mark To '/' +Set Ansi On +Set Console Off +Set Notify Off +Set Seconds Off +Set NullDisplay To '' +Set Decimals To 4 +* _SCREEN.VISIBLE=.F. +_Screen.AutoCenter=.T. + + + +*VARIABILE_______ +Local lcMainClassLib +Local lcLastSetTalk,lcLastSetPath,lcLastSetClassLib,lcOnShutdown + + +*VARIABILE__________________________________________________________________________ +Declare nror[65000] +Declare RTVA[22,2] + + + +Public CRLF,CR,LF,Tab +Store Chr(13) + Chr(10) To CRLF +Public pcNl,pcAn +Store "" To pcNl,pcAn && se initializeaza in start00 +CR=Chr(13) +LF=Chr(10) +Tab=Chr(9) + +Public pcTitlu,pl_verificat +Store "" To pcTitlu +Store .F. To pl_verificat +Public BUTON, luna_inchisa, luna_neplatita, PRIMADATA, m.ctva, m.ctvam, m.ctvai, antet, m.nivel +Public OStart,OSETVIZ,OSETTULBAR,OSETINSTRUM,orm,OTEXT,OJUR,osetgest,tlbr_INSTR,tlbr_VIZ,oprinc,DIRGEN +Public pcapsocsub,pcapsocvar +pcapsocsub=0 +pcapsocvar=0 +Public a4 +a4=.T. +m.nrgrup=999 + +Store .F. To luna_inchisa,tlbr_INSTRum,tlbr_VIZ +Store 1 To BUTON,col_menu +Store .T. To PRIMADATA,luna_neplatita + + +*** DECLARATII DE VARIABILE PUBLICE + +*-- Save and configure environment.*********************** + +lcLastSetTalk=Set("TALK") +Set Talk Off +lcLastSetPath=Set("PATH") + +*!* gcAppPath=ADDBS(JUSTPATH(SYS(16,0))) && d:\contafin\cont2003\ +Set Procedure To "D:\ROA\ROAPRETURI\COMUN\UTILE\web\WWUTILS.PRG" Additive +Set Procedure To "D:\ROA\ROAPRETURI\COMUN\UTILE\web\WWAPI.PRG" Additive + +Public gcAppPath,gcAppName, gcTempPath, gcCaleServerDate, gcUserNameApp, gcPasswordApp +Store '' To gcUserNameApp, gcPasswordApp, gnNivelUtilizator, gnGrupUtilizator, gcAcces + +gcAppPath = Addbs(ShortPath(GetAppStartPath())) +If Right(gcAppPath ,9)="PROGRAME\" + gcAppPath = Substr(gcAppPath ,1,Len(gcAppPath )-9) +Endif +gcAppName=Allt(Uppe(Juststem(Sys(16,0)))) && "cont2003" +*!*Set Path To Addbs(Substr(gcAppPath,1,Rat([\],gcAppPath,2)))+[COMUNROA\] Additive && modificare v 2.0.59 + + +*gcAppDataPath=gcAppPath+"Date_"+gcAppName+"\" && D:\CONTAFIN\TRANS\DATE_TRANS && PT OPTIUNI , FISIERE SPECIFICE PROGRAMULUI SI +gcUtilizatoriPath = gcAppPath + "UTILIZATORI\" + +Set Default To (gcAppPath) +lcPath = gcAppPath + 'Date;' + ; + gcAppPath + 'Include;' + ; + gcAppPath + 'FERESTRE;' + ; + gcAppPath + 'GRAFICE;' + ; + gcAppPath + 'CLASE;' + ; + gcAppPath + 'MENIURI;' + ; + gcAppPath + 'PROGRAME;' + ; + gcAppPath + 'RAPOARTE;' + ; + gcAppPath + 'COMUN;' + ; + gcAppPath + 'COMUN\CLASE;' + ; + gcAppPath + 'COMUN\FERESTRE;' + ; + gcAppPath + 'COMUN\PROGRAME;' + ; + gcAppPath + 'COMUN\GRAFICE;' + ; + gcAppPath + 'COMUN\RAPOARTE;' + ; + gcAppPath + 'COMUN\MENIURI;' + ; + gcAppPath + 'COMUN\UTILE\GRIDEXTRAS;' + ; + gcAppPath + 'COMUN\UTILE\CTL32;' + ; + gcAppPath + 'COMUN\UTILE\HPDF;' + ; + gcAppPath + 'COMUN\UTILE\HPDF\REPORTOUTPUT;' + ; + gcAppPath + 'COMUN\UTILE\WEB;' + ; + Addbs(Substr(gcAppPath,1,Rat([\],gcAppPath,2)))+[COMUNROA\] + +*!*Set Path To Date;Include;FERESTRE;GRAFICE;Help;CLASE;MENIURI;PROGRAME;RAPOARTE;PROGS;LIBS + +Set Path To &lcPath Additive + + +Push Menu _Msysmenu +lcLastSetClassLib=Set("CLASSLIB") +lcMainClassLib= gcAppPath + "comun\clase\appwiz" + +*CLASE__________________________________________________________ +Set Classlib To (lcMainClassLib) Additive +Set Classlib To ooptiuni Additive +Set Classlib To registry Additive +Set Classlib To decabaza Additive +Set Classlib To cauta_alfa_forms Additive +Set Classlib To ferestre_oracle Additive +Set Classlib To ofundal_roapreturi Additive +Set Classlib To onom_preturi Additive +Set Classlib To onote_contabile Additive +Set Classlib To otoolbar Additive +Set Classlib To onom_articole.vcx Additive + +Set Classlib To Messagebox Additive +*!* modificare v 2.0.10 +Set Classlib To wwdialogs.vcx Additive +*!* modificare v 2.0.10 ^ + +Set Classlib To ctl32_statusbar_fals.vcx Additive +Set Classlib To ctl32_common.vcx Additive +Set Classlib To ctl32_structs.vcx Additive +Set Classlib To ctl32_progressbar.vcx Additive +Set Classlib To ctl32_balloontip.vcx Additive +Set Classlib To ocriterii.vcx Additive + +Set Classlib To accessibility.vcx Additive + +*PROCEDURI______________________________________________________ +Set Procedure To quitapp Additive +Set Procedure To init_program Additive +Set Procedure To oproceduri_comune Additive +Set Procedure To gencursor.prg Additive +Set Procedure To updateserver.prg Additive +Set Procedure To update_nomenclator.prg Additive +Set Procedure To onomenclatoare Additive +Set Procedure To oproceduri_ams Additive +Set Procedure To ocautare Additive +Set Procedure To oinit_optiuni Additive +Set Procedure To osecurity Additive +Set Procedure To omeniu_initializari Additive +Set Procedure To acces_meniu Additive +Set Procedure To oheader Additive +Set Procedure To onom_preturi Additive +Set Procedure To proceduri_excel.prg Additive +Set Procedure To oproceduri_articole.prg Additive +Set Procedure To cauta_alfa.prg Additive + +Set Procedure To oserii_numere.prg Additive +*!* 19.06.2006 +*!* marius.mutu +Set Procedure To wwxmlhttp.prg Additive +Set Procedure To ini.prg Additive +Set Procedure To wwutils.prg Additive +Set Procedure To wwapi.prg Additive +*!* modificare v 2.0.10 +Set Procedure To filebringer.prg Additive +Set Procedure To iniacces.prg Additive +Set Procedure To oupdate.prg Additive +Set Procedure To procese.prg Additive +Set Procedure To Version.prg Additive +Set Procedure To wwcodeupdate.prg Additive +Set Procedure To wwhttp.prg Additive +Set Procedure To xmlaccess.prg Additive +Set Procedure To xmlparser.prg Additive +*!* modificare v 2.0.10 ^ +*!* modificare v 2.0.18 +Set Procedure To wwconfig.prg Additive +Set Procedure To oexport.prg Additive +Set Procedure To _libpdf.prg Additive +Set Procedure To frxoutput.prg Additive + +Declare Integer GetPrivateProfileString In Kernel32 ; + string, String, String, String @, Integer, String +Declare Integer WritePrivateProfileString In Kernel32 ; + string, String, String, String +Declare Integer CopyFile In kernel32; + STRING lpExistingFileName,; + STRING lpNewFileName,; + INTEGER bFailIfExists +Declare Integer URLDownloadToFile In urlmon.Dll; + INTEGER pCaller, String szURL, String szFileName,; + INTEGER dwReserved, Integer lpfnCB +Declare Integer PathFileExists In shlwapi; + STRING pszPath +*!* modificare v 2.0.18 ^ +Set Procedure To regex.prg Additive +*---------------------------------------------------------------------------- +If Pcount() = 1 And Type('tparam') = 'C' + glParametri = .T. + Private laParametri + Declare laParametri[1] + lcParam = Alltrim(tparam) + lnNr = lista2array(lcParam,@laParametri,";") + If lnNr < 5 + Messagebox('Numar incorect de parametri',0+16,'Eroare') + Return + Endif + lchost = laParametri[1] + lcUserName = laParametri[2] + lcPassword = laParametri[3] + lnIdUtil = Round(Val(laParametri[4]),0) + lnIdProgram = Round(Val(laParametri[5]),0) +Else + glParametri = .F. + lchost = 'JCSSERVER' + lcUserName = 'CONTAFIN_ORACLE' + lcPassword = '' + lnIdUtil = 0 + lnIdProgram = 0 + +Endif + + +*------------------------------------- +Public glVerificTabel && daca se verifica structura tabelelor in totv.prg +glVerificTabel=.T. + +Public glQuit +glQuit = .F. + +Public gnIdIstoric +gnIdIstoric = 0 + + + +*!* PUBLIC gcSchemaPath +*!* STORE '' TO gcSchemaPath + +*!* gcAppPath = ADDBS(ShortPath(GetAppStartPath())) && wwutils.prg +*!* gcAppName=ALLT(UPPE(JUSTSTEM(SYS(16,0)))) + +*!* gcAppDataPath=gcAppPath+"Date_"+gcAppName+"\" +gcUtilizatoriPath = gcAppPath + "UTILIZATORI\" + +Store "" To gcTempPath, gcCaleServerDate + +*!* IF !DIRECTORY(gcAppDataPath) +*!* MD (gcAppDataPath) +*!* ENDIF +*--------------------------------------- +*** DIRGEN +Public gcDirMare +liat=Rat("\",gcAppPath,2) +gcDirMare = Addbs(Left(gcAppPath,liat-1)) +DIRGEN = gcDirMare +Cd &DIRGEN +gcSecurityPath = DIRGEN + 'Security\' +gcSecurityFile = gcSecurityPath + 'ROA_SECURITY.TXT' + +Private gcGeneralIniFile, gcSettingsFile +gcGeneralIniFile = DIRGEN + "settings.ini" +gcSettingsFile = m.gcGeneralIniFile +If !File(gcGeneralIniFile) + + TEXT TO lcSettings NOSHOW +[errors] +host= + ENDTEXT + + Strtofile(lcSettings, gcGeneralIniFile) +Endif + +Private poLog,goLog && obiect pt logarea mesajelor sistemului +poLog = Newobject("Log_Mesaje","Log_Mesaje.prg") +goLog = poLog + +*!* public poLog && obiect pt logarea mesajelor sistemului +*!* poLog = NEWOBJECT("Log_Mesaje","Log_Mesaje.prg") + + +Public glQuit +glQuit = .F. + +Public gnIdIstoric +gnIdIstoric = 0 + +If verificari() + _Screen.Visible=.T. +* DO mesaj WITH "Se fac verificari programului","Va rugam reveniti" + AMESSAGEBOX("Se fac verificari programului",0+48,"Va rugam reveniti") + glQuit= .T. + Quit +Endif + +If !Debug_Start() + lcParam=tparam + If Empty(tparam) Or (Type('tParam')='C' And !verific_start(tparam,DIRGEN,gcAppName)) + _Screen.Visible=.T. +* DO mesaj WITH "Programul trebuie pornit doar din START","" + AMESSAGEBOX("Programul trebuie pornit doar din START",0+48,"") + Quit + Endif +Endif + +*!* modificare v 2.0.18 +*!* *** verificare serie permanenta +*!* PUBLIC tipar,SER_PERM,SER_PERI,VERSIUNE +*!* STORE .F. TO SER_PERM,SER_PERI +*!* modificare v 2.0.18 ^ + +***************************** VARIABILE ORACLE +Private goUtilizator +Private gnHandle,gnidutil,GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GCMONEDA,GNDIFZILE, gcUserNameApp, gcPasswordApp +Private gnButon && variabila pentru renunt si terminat +Store 2 To gnButon +Store '' To GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GCMONEDA, gcUserNameApp, gcPasswordApp, gcNivelUtilizator, gcGrupUtilizator, gcAcces +gnHandle = -1 +gnidutil = 0 + +Private gcHost, gcUserName, gcPassword,gofundal, gnIdProgram, gnId_prg_owner +Store 0 To gnIdProgram, gnId_prg_owner +gofundal='' + +Private goFirma,gnIdFirma,gcFirma,gnAn,gnLuna && ,gnPA,gnPC +&& STORE 0 TO gnPA,gnPC && nr. de zecimale afisare, calcul +Store Null To goFirma +Store 0 To gnIdFirma,gnAn,gnLuna +Store '' To gcFirma + +Private glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa + +Store .F. To glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa + +Private gcS && schema firmei +Store 'DEMO' To gcS + +Private gcCopyRight, gcAntet,goExport +gcCopyRight = '© ROA Romfast SRL' +gcAntet = [] +goExport = Createobject("oExportConfig") && modificare v 2.0.18 +***toolbar*** +Private otool,ohelp +Store '' To otool,ohelp +***toolbar*** + +Private gcS && schema firmei +Store 'DEMO' To gcS + +If Type('laparametri',1)="A" + If Alen(laParametri,1)=10 + gnAn = Val(laParametri[7]) + gnLuna = Val(laParametri[8]) &&lansare noua + gcS = laParametri[9] + gnIdFirma = Val(laParametri[10]) + Endif +Endif + +&& obiect global wrap pt sqlexec cu text eroare si succes +Private goExecutor, goConn +goExecutor = Createobject("oExecutor") +goConn = Createobject("oConn") + +Private goMyXMLHTTP +lcHostErrors = getini(gcGeneralIniFile,'errors','host') +goMyXMLHTTP = Createobject("MyXMLHTTP", lcHostErrors) + +&& obiect global pt luna aleasa din calendar +Private goCalendar +Store Null To goCalendar + +gcHost = lchost +gcUserName = lcUserName +gcPassword = lcPassword +gcUserNameApp = lcUserNameApp +gcPasswordApp = lcPasswordApp +gnidutil = lnIdUtil +gnIdProgram = lnIdProgram + + +If !glParametri + lnValid = getcrsSecurity(gcSecurityFile) + If lnValid > 0 + If Used('crsHost') + Select crsHost + Go Top + gcHost = Alltrim(Host) + gcUserName = Alltrim(schema) + gcPassword = Alltrim(pwd) + Use In crsHost + Endif + Endif +Endif + +*!* IF glParametri +*!* gcHost = lcHost +*!* gcUserName = lcUserName +*!* gcPassword = lcPassword +*!* gcUserNameApp = lcUserNameApp +*!* gcPasswordApp = lcPasswordApp +*!* gnIdUtil = lnIdUtil +*!* gnIdProgram = lnIdProgram +*!* ELSE +*!* gcHost = "jcsserver" +*!* gcUserName = "contafin_ORACLE" +*!* gcPassword = "123" +*!* gcUserNameApp = '' +*!* gcPasswordApp = '' +*!* gnIdUtil = 1 +*!* gnIdProgram = 8 +*!* ENDIF +***************************** VARIABILE ORACLE + + + +*!* USE &gcAppPath\SER IN 0 ALIAS SER SHARED +*!* SELECT SER +*!* GO TOP +*!* tipar=TIP +*!* SER_PERM=SER_PERMAN +*!* SER_PERI=SER_PERIOD +*!* VERSIUNE=VERcont +*!* MODEL_PROGRAM=MODEL +*!* USE IN SER +*!* parolamea=SUBSTR(tipar,MONTH(DATE()),1) +*!* parolamea=parolamea+ALLT(STR(DAY(DATE())))+ALLT(STR(MONTH(DATE()))) +*!* modificare v 2.0.18 +*!* IF !_DEBUG() +*!* IF SER_PERM AND !verif_ser_perm() +*!* QUIT +*!* ENDIF +*!* ENDIF +*!* PUBLIC cales,eserver,loc,numestatie +*!* eserver=.F. +*!* STORE '' TO cales,loc,numestatie +*!* modificare v 2.0.18 ^ +Public NUMEPROGRAM,MENIUPROGRAM,FUNDALPROGRAM + +NUMEPROGRAM='ROAPRETURI' +*!* MENIUPROGRAM=gcAppPath+"meniuri\cont2000.mpr" +*!* FUNDALPROGRAM=gcAppPath+"FERESTRE\FUNDAL.scx" +_program='roapreturi' + +*** INITIALIZEZ CAI DATE +If .F. + If !Start_Nou() + _Screen.WindowState=2 + Cd \ + If !Directory('c:\contafin') + Md contafin + Endif + Cd c:\contafin\ + If !Directory('temp') + Md temp + Endif + + + Sele 0 + Use c:\contafin\temp\ceprogram Alias ceprogram + Scat Memv +*wait wind m.util + Sele ceprogram + Use + utilizator=m.UTIL + GRUPUL=M.nrgrup + If M.nrgrup=0 + E_UN_SUPERVIZOR=.T. + Else + E_UN_SUPERVIZOR=.F. + Endif + + If File('&DIRGEN\START2000\DATA\RETEA.DBF') + If !File('c:\contafin\temp\RETEA.dbf') + Copy File &DIRGEN\START2000\Data\RETEA.* To c:\contafin\temp\RETEA.* + Endif + Sele 0 + Use c:\contafin\temp\RETEA + eserver=Server + cales=Allt(CALESERVER) + Use In RETEA + Endif + Else + + gcTempPath = Init_Cale_Temp(DIRGEN) + If !Directory(gcTempPath) + Md (gcTempPath) + Endif + + cales = Init_Cale_Server_Date(DIRGEN) + eserver = .T. + numestatie = Init_Nume_Statie(DIRGEN) + utilizator = Init_Nume_Utilizator(DIRGEN) + m.nivel = Round(Val(Init_Nivel_Utilizator(DIRGEN)),0) + m.CONTAB = Upper(Alltrim(Init_NumeAlternativ(DIRGEN))) + + lcQuitData = Alltrim(DIRGEN)+"\dateretea" + lcQuitName = "start_quitapp" + Private goQuitApp && I'm making it private so it will die with the application. + goQuitApp = quitapp(lcQuitData,lcQuitName) + + gnIdIstoric = Start_Istoric(m.utilizator, gcAppName, numestatie, Addbs(DIRGEN)+"DATERETEA\", "START_ISTORIC","start_ids") + + + Endif +Endif + +lcOnShutdown="ShutDown()" +On Shutdown &lcOnShutdown +On Error ErrorHandler(Error(),Program(),Lineno()) +_Shell="DO Cleanup IN progs\ROAPRETURI" + +*-- Instantiate application object.*************************** +Release goApp +Public goApp +goApp=Createobject("wzapplication") + +*-- Configure application object.***************************** +*!* goApp.SetCaption("DEVIZE") +Local laVersion +Dimension laVersion(12) +If Agetfileversion(laVersion, Sys(16,0)) > 0 + NUMEPROGRAM = laVersion(10) +Endif +Release laVersion + +goApp.SetCaption(NUMEPROGRAM) +goApp.cStartupMenu= m.gcAppPath + "meniuri\RoaPreturi" +*!* goApp.cStartupForm=DIRGEN+"\devize\FERESTRE\FUNDAL" + +goApp.cStartupForm = gcAppPath + 'comun\ferestre\frm_login.scx' + +_Screen.WindowState = 2 +*!* _SCREEN.MaxButton = .F. +*!* _SCREEN.BorderStyle = 1 + +*-- Show application. +goApp.Show +*-- Release application. +Release goApp + +*-- Restore default menu. +Pop Menu _Msysmenu + +*-- Restore environment. +On Error +On Shutdown +If Not lcLastSetClassLib==Set("classlib") + Release Classlib (lcMainClassLib) +Endif +If Empty(lcLastSetPath) + Set Path To +Else + Set Path To &lcLastSetPath +Endif +If lcLastSetTalk=="ON" + Set Talk On +Else + Set Talk Off +Endif + +Return + + + + +* FUNCTII______________________________________________________________________ +Function ErrorHandler(nError,cMethod,nLine) + Local lcErrorMsg,lcCodeLineMsg + + Wait Clear + lcErrorMsg=Message()+Chr(13)+Chr(13) + lcErrorMsg=lcErrorMsg+"Method: "+cMethod + lcCodeLineMsg=Message(1) + If Between(nLine,1,10000) And Not lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+Chr(13)+"Line: "+Alltrim(Str(nLine)) + If Not Empty(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+Chr(13)+Chr(13)+lcCodeLineMsg + Endif + Endif + + If Type('goMyXMLHTTP') = 'O' + lcLunaHTTP = Iif(Type('gnLuna') = 'N', Transform(gnLuna) + "/","") + Iif(Type('GNAN') = 'N', Transform(gnAn),"") + lcErrorMsgHTTP = Sys(0) + ":" + Iif(Type('GCS')='C'," " + gcS,"") + ": " + lcLunaHTTP + Chr(13) +Chr(10) + lcErrorMsg + ; + CHR(13) +Chr(10) + Chr(13) + Chr(10) + GETCALLSTACK() + lcUserName = gcUserNameApp + lcProgram = Juststem(Sys(16,0)) + goMyXMLHTTP.postError(lcErrorMsgHTTP, lcUserName, lcProgram) + Endif + + If Messagebox(lcErrorMsg,17,_Screen.Caption)#1 + On Error + Return .F. + Endif +Endfunc + + + +Function Shutdown + + =End_Istoric(gnIdIstoric, Addbs(DIRGEN)+"DATERETEA\", "START_ISTORIC") + If Type("goApp")=="O" And Not Isnull(goApp) + Return goApp.OnShutDown() + Endif + Cleanup() + Quit +Endfunc + + +Function Cleanup + + If Cntbar("_msysmenu")=7 + Return + Endif + On Error + On Shutdown + Set Classlib To + Set Path To + Clear All + Close All + Pop Menu _Msysmenu + Return + + + +*----------------------------------------------------- + +Function verif_ser_perm + Clear + + Return PORNIRE() +******** +*?pornire() + +Function PORNIRE + Set Exact On + Private calewin,calesys,checksum1,checksum2,serinreg,serdisk,file1,file2,valret,serdisktemp,ser1,ser2,key1,KEY2 + Store '' To calewin,serinreg,serdisk,calesys,serdisktemp,catehd,ser1,ser2,key1,KEY2 + Store 0 To checksum1,checksum2 + Store .T. To valret + Declare Integer SHGetFolderPath In SHFOLDER.Dll ; + INTEGER hwndOwner, ; + INTEGER nFolder, ; + INTEGER hToken, ; + INTEGER dwFlags, ; + STRING @ pszPath + Declare Integer GetActiveWindow In WIN32API + #Define CSIDL_WINDOWS 36 + #Define CSIDL_SYSTEM 37 + #Define CSIDL_PROGRAMS 38 + lcPath = Repl(Chr(0),261) + =SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath) + calewin=Left(lcPath,At(Chr(0),lcPath)-1) + lcPath = Repl(Chr(0),261) + =SHGetFolderPath(GetActiveWindow(),CSIDL_SYSTEM,0,0,@lcPath) + calesys=Left(lcPath,At(Chr(0),lcPath)-1) +&&se verifica existenta celor trei fisiere + If (Not File(calesys+'\diskserial.dll')) Or (Not File(calesys+'\getmacip.dll')) Or (Not File(calewin+'\comdir.snr')) + valret=.F. + Endif + If valret + file1=Filetostr(calesys+'\diskserial.dll') + checksum1=Sys(2007,file1) + file2=Filetostr(calesys+'\getmacip.dll') + checksum2=Sys(2007,file2) +&&severifica daca dll-urile nu au fost modificate + If (Val(checksum1) != 58755) Or (Val(checksum2) != 30476) + valret=.F. + Endif + Endif +&&se citesc seriile tutturor celor patru hard disk-uri posibile(pe IDE primary master,primary slave...) +&&se tine minte primul cu seria nenula-daca nu s-a putut citi seria de la nici unul se pune o serie default +&&seria default este "NUAREHAR" + If valret + Declare Integer GetSerialNumber In diskSerial.Dll Integer ,String + catehd=0 + For i=0 To 3 + serdisktemp=Space(40) + GetSerialNumber(i,@serdisktemp) + If (Len(Alltrim(serdisktemp))!=0) And (catehd=0) + serdisktemp=sircaracter(serdisktemp) + serdisk=serdisktemp + catehd=catehd+1 + Endif + Endfor + If (Len(Alltrim(serdisk))=0) + serdisk='NUAREHAR' + Else + If ((Len(Alltrim(serdisk))>0) And (Len(Alltrim(serdisk))<8)) + serdisk=serdisk+Replicate('1',8-Len(Alltrim(serdisk))) + Endif + Endif + serdisk=Substr(Alltrim(serdisk),Len(Alltrim(serdisk))-7,8) + Endif +&&se citeste din comdir.snr seria de inregistrare si se verifica egalitatea cu seria obtinuta anterior + If valret + gnFileHandle = Fopen(calewin+'\comdir.snr') + nSize = Fseek(gnFileHandle, 0, 2) && Move pointer to EOF + If nSize!=9 + valret=.F. + Else + = Fseek(gnFileHandle, 0, 0) && Move pointer to BOF + cString = Fread(gnFileHandle,9) + ser1=Substr(cString,1,4) + ser2=Substr(cString,5,4) + key1=Substr(cString,9,1) + KEY2=DECTOBIN(Alltrim(HEXDEC(key1))) + serinreg=decodare1(Alltrim(Upper(ser1)),KEY2)+decodare1(Alltrim(Upper(ser2)),KEY2) + If serdisk!=serinreg + valret=.F. + Endif + Endif + = Fclose(gnFileHandle) + Endif + seriedisk1=serdisk + serieinreg1=serinreg + On Error valret=.F. + Return valret +************* +Function decodare1 + Parameters lstring,CHEIE + Local lens,poz1,poz2,POZ3,lret,LRET2,lcstring,val1,lret1 + lret='' + lret1='' + LRET2='' + lcstring=Alltrim(Upper(lstring)) + lens=Len(lcstring) + For i=1 To 4 + poz1=Substr(lcstring,i,1) + val1=Asc(poz1) + POZ3=Substr(CHEIE,i,1) + Do Case + Case val1>=48 And val1<=57 + If ((val1-47)+Int(Val(POZ3)))<=10 + poz2=Chr(val1+Int(Val(POZ3))) + Else + poz2=Chr(val1+Int(Val(POZ3))-10) + Endif + Case val1>=65 And val1<=90 + If ((val1-64)+2*Int(Val(POZ3)))<=26 + poz2=Chr(val1+2*Int(Val(POZ3))) + Else + poz2=Chr(val1+2*Int(Val(POZ3))-26) + Endif + Endcase + LRET2=LRET2+poz2 + Endfor + For i=1 To lens + poz1=Substr(LRET2,i,1) + val1=Asc(poz1) + Do Case + Case val1>=48 And val1<=57 + If ((val1-47)+i)<=10 + poz2=Chr(val1+i) + Else + poz2=Chr(val1+i-10) + Endif + Case val1>=65 And val1<=90 + If ((val1-64)+2*i)<=26 + poz2=Chr(val1+2*i) + Else + poz2=Chr(val1+2*i-26) + Endif + Endcase + lret=lret+poz2 + Endfor + lens=Len(lret) + For i=1 To lens + poz1=Substr(lret,i,1) + val1=Asc(poz1) + Do Case + Case val1>=48 And val1<=57 + poz2=Chr(val1+17)&& din 0-9 in A-J + Case val1>=65 And val1<=74 + poz2=Chr(val1-17)&& din A-J in 0-9 + Case val1>=75 And val1<=82 + poz2=Chr(val1+8)&&din K-R in S-Z + Case val1>=83 And val1<=90 + poz2=Chr(val1-8)&&din S-Z in K-R + Endcase + lret1=lret1+poz2 + Endfor + Return lret1 +*********** +&&transformarea in decimal a unui caracter hexa +Function HEXDEC + Lparameters LC + Local LV + Do Case + Case LC=='0' + LV='0' + Case LC=='1' + LV='1' + Case LC=='2' + LV='2' + Case LC=='3' + LV='3' + Case LC=='4' + LV='4' + Case LC=='5' + LV='5' + Case LC=='6' + LV='6' + Case LC=='7' + LV='7' + Case LC=='8' + LV='8' + Case LC=='9' + LV='9' + Case LC=='A' + LV='10' + Case LC=='B' + LV='11' + Case LC=='C' + LV='12' + Case LC=='D' + LV='13' + Case LC=='E' + LV='14' + Case LC=='F' + LV='15' + Endcase + Return LV +**************** +&&codarea binara din hexa pe patru biti +Function DECTOBIN + Parameters sc + Local lretf + Do Case + Case sc=='0' + lretf='0000' + Case sc=='1' + lretf='0001' + Case sc=='2' + lretf='0010' + Case sc=='3' + lretf='0011' + Case sc=='4' + lretf='0100' + Case sc=='5' + lretf='0101' + Case sc=='6' + lretf='0110' + Case sc=='7' + lretf='0111' + Case sc=='8' + lretf='1000' + Case sc=='9' + lretf='1001' + Case sc=='10' + lretf='1010' + Case sc=='11' + lretf='1011' + Case sc=='12' + lretf='1100' + Case sc=='13' + lretf='1101' + Case sc=='14' + lretf='1110' + Case sc=='15' + lretf='1111' + Endcase + Return lretf +*********** +Function ECARACTER + Parameters strg1 + Private pz,ch,lcstring,vret,lg1 + Store 0 To pz,lg1 + Store '' To ch,lcstring + Store .T. To vret + lcstring=Upper(strg1) + lg1=Len(lcstring) + For ind1=1 To lg1 + ch=Substr(lcstring,ind1,1) + If (Not Between(Asc(ch),48,57)) And (Not Between(Asc(ch),65,90)) + vret=.F. + Exit + Endif + Endfor + Return vret +************ +Function sircaracter + Parameters strg1 + Private pz,ch,lcstring,vret,lg1,lciesire + Store 0 To pz,lg1 + Store '' To ch,lcstring,lciesire + Store .T. To vret + strg1=Strtran(strg1,Alltrim(Chr(39)),'')&&caracterul ' + strg1=Strtran(strg1,Alltrim(Chr(39)),'')&&caracterul " + lcstring=Upper(Alltrim(strg1)) + lg1=Len(lcstring) + For ind1=1 To lg1 + ch=Substr(lcstring,ind1,1) + If Between(Asc(ch),48,57) Or Between(Asc(ch),65,90) + lciesire=lciesire+ch + Endif + Endfor + Return lciesire + + + +***------------------------------------- +Procedure _DEBUG + + Private lcret,lcfisier,lcPath,lccalewin + Declare Integer SHGetFolderPath In SHFOLDER.Dll ; + INTEGER hwndOwner, ; + INTEGER nFolder, ; + INTEGER hToken, ; + INTEGER dwFlags, ; + STRING @ pszPath + Declare Integer GetActiveWindow In WIN32API + #Define CSIDL_WINDOWS 36 + + + lcPath = Repl(Chr(0),261) + =SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath) + lccalewin=Left(lcPath,At(Chr(0),lcPath)-1) + + lcret=.F. + lcfisier=Addbs(lccalewin)+[DEBUG.TXT] + + lcLog = '1 ' + lcfisier + poLog.Log(lcLog,Program()) + + If File(lcfisier) + LCVAL=Filetostr(lcfisier) + + LNVAL1=Mod(Val(Right(LCVAL,1)),2) && restul 1 sau 0; daca e impar e 1 + lnval2=Val(Left(LCVAL,Len(LCVAL)-1)) + + lcLog = Transform(LNVAL1) + ' ' + Transform(lnval2) + poLog.Log(lcLog,Program()) + + If LNVAL1=1 Or Year(Date())-Month(Date())=lnval2 + lcret=.T. + Endif + Endif + + lcLog = Transform(lcret) + poLog.Log(lcLog,Program()) + + Return lcret + +Endproc + + +Function Start_Nou +*!* llExista_Branch = Exista_Branch(,,dirgen) + +*!* lcLog = TRANSFORM(llExista_Branch) +*!* poLog.log(lcLog,PROGRAM()) + Return Exista_Branch(,,DIRGEN) + Return llExista_Branch + +Endfunc && start_nou + +Procedure Debug_Start + + lcFile = gcAppPath + "debug.txt" + If File(lcFile) + lcLog = 'debug_start' + poLog.Log(lcLog,Program()) + Else + lcLog = '!debug_start' + poLog.Log(lcLog,Program()) + Endif + + If File(lcFile) Or !Start_Nou() + Return .T. + Endif + Return .F. + +Endproc && Debug_Start +************************************************************************ +Procedure verificari + Parameters tcFisierVerif + + lcverificari = Addbs(gcAppPath)+gcAppName+".txt" + + + If File(lcverificari) + Return .T. + Endif + Return .F. + +Endproc && verificari*************** + +Procedure myinstance + Parameters myApp + =Ddesetoption("SAFETY",.F.) + ichannel = Ddeinitiate(myApp,"ZOOM") + If ichannel =>0 + =Ddeterminate(ichannel) + Quit + Endif + =Ddesetservice(myApp,"define") + =Ddesetservice(myApp,"execute") + =Ddesettopic(myApp,"","ddezoom") + Return +****************************************** +Procedure ddezoom + Parameter ichannel,saction,sitem,sdata,sformat,istatus + Zoom Window Screen Norm + Return +********************************************************** +** EOF +********************************************************** diff --git a/Programe/roapreturi_.prg b/Programe/roapreturi_.prg new file mode 100644 index 0000000..22e56cc --- /dev/null +++ b/Programe/roapreturi_.prg @@ -0,0 +1,569 @@ +Parameters tparam +&&& roapreturi +Local lchost, lcUserName, lcPassword, lnIdUtil, lnIdProgram, lcUserNameApp,lcPasswordApp +Store '' To lchost, lcUserName, lcPassword, lcUserNameApp,lcPasswordApp +Store 0 To lnIdUtil, lnIdProgram +_Screen.Icon = '' + +Private gcNumeProgram +Local lcStem +lcStem = Upper(Juststem(Sys(16,0))) +gcNumeProgram=[ROAPRETURI] +If gcNumeProgram != lcStem + Messagebox("Nu puteti porni acest program!",0+16,"Atentie") + Return +Endif + +Set Century On +Set Deleted On +Set Date To Dmy +Set Mark To '/' +Set Exclusive Off +Set Cpdialog Off +Set Talk Off +Set Safety Off +Set Escape Off +Set Exact On +Set Ansi On +Set Console Off +Set Notify Off +Set Seconds Off +Set NullDisplay To '' +Set Decimals To 4 + +_Screen.Visible=.F. + + +*VARIABILE_______ +Local lcMainClassLib +Local lcLastSetTalk,lcLastSetPath,lcLastSetClassLib,lcOnShutdown + +*VARIABILE__________________________________________________________________________ +Public CRLF +Store Chr(13) + Chr(10) To CRLF + +Public pcTitlu,pl_verificat +Store "" To pcTitlu +Store .F. To pl_verificat + +Public buton,primadata,dirgen,col_menu +Store 1 To buton,col_menu +Store .T. To primadata &&,luna_neplatita + +*-- Save and configure environment.*********************** +lcLastSetTalk=Set("TALK") +Set Talk Off +lcLastSetPath=Set("PATH") + +Set Path To ;Date;Include;FERESTRE;GRAFICE;Help;CLASE;MENIURI;PROGRAME;RAPOARTE;PROGS;LIBS; + PUSH Menu _Msysmenu +lcLastSetClassLib=Set("CLASSLIB") +lcMainClassLib="clase\opreturi" +*CLASE__________________________________________________________ +Set Classlib To (lcMainClassLib) Additive +Set Classlib To registry Additive +Set Classlib To cauta_alfa_forms Additive + +*PROCEDURI______________________________________________________ +Set Procedure To proceduri_comune Additive +Set Procedure To quitapp Additive +Set Procedure To init_program Additive + +&& CLASE ORACLE +Set Classlib To DECABAZA Additive +Set Classlib To ferestre_oracle Additive +Set Classlib To ofundal_preturi Additive +Set Classlib To onom_preturi ADDITIVE +SET CLASSLIB TO onote_contabile ADDITIVE + +************************************************************************************************ +&& PROCEDURI ORACLE +Set Procedure To GENCURSOR.PRG Additive +Set Procedure To OPROCEDURI_COMUNE.PRG Additive +Set Procedure To OPROCEDURI_aMS.PRG Additive +Set Procedure To osecurity Additive +Set Procedure To acces_meniu2 Additive +Set Procedure To onom_preturi Additive +* Set Procedure To update_preturi Additive +Set Procedure To ocautare Additive +Set Procedure To updateserver Additive +Set Procedure To oheader Additive +SET PROCEDURE TO omeniu_initializari ADDITIVE +************************************************************************************************ + +If Pcount() = 1 And Type('tparam') = 'C' + glParametri = .T. + Private laParametri + Declare laParametri[1] + lcParam = Alltrim(tparam) + lnNr = lista2array(lcParam,@laParametri,";") + If lnNr < 5 + Messagebox('Numar incorect de parametri',0+16,'Eroare') + Return + Endif + lchost = laParametri[1] + lcUserName = laParametri[2] + lcPassword = laParametri[3] + lnIdUtil = Round(Val(laParametri[4]),0) + lnIdProgram = Round(Val(laParametri[5]),0) +Else + glParametri = .F. + lchost = 'JCSSERVER' + lcUserName = 'CONTAFIN_ORACLE' + lcPassword = '' + lnIdUtil = 0 + lnIdProgram = 0 + +Endif + +Public glVerificTabel && daca se verifica structura tabelelor in totv.prg +glVerificTabel=.T. + +Public glQuit +glQuit = .F. + +Public gnIdIstoric +gnIdIstoric = 0 + +Public gcAppPath,gcAppName,gcAppDataPath, gcTempPath, gcCaleServerDate, gcUserNameApp, gcPasswordApp, gnId_Prg_Owner +Store '' To gcUserNameApp, gcPasswordApp, gnNivelUtilizator, gnGrupUtilizator, gcAcces +Public gcSchemaPath +Store '' To gcSchemaPath +Store 0 To gnId_Prg_Owner + +gcAppPath=Addbs(Justpath(Sys(16,0))) && d:\roa\roapreturi\ +gcAppName=Allt(Uppe(Juststem(Sys(16,0)))) && "roapreturi" + +gcAppDataPath=gcAppPath+"Date_"+gcAppName+"\" +gcUtilizatoriPath = gcAppPath + "UTILIZATORI\" + +Store "" To gcTempPath, gcCaleServerDate +If !Directory(gcAppDataPath) + Md (gcAppDataPath) +Endif + +*** DIRGEN +liat = Rat("\",gcAppPath,2) +dirgen = Addbs(Left(gcAppPath,liat-1)) + +gcSecurityPath = dirgen + 'Security\' +gcSecurityFile = gcSecurityPath + 'ROA_SECURITY.TXT' + +Cd &dirgen + +Private poLog,goLog && obiect pt logarea mesajelor sistemului +poLog = Newobject("Log_Mesaje","Log_Mesaje.prg") +goLog = poLog + +If verificari() + _Screen.Visible=.T. + Messagebox("Se fac verificari programului!"+CRLF+"Va rugam reveniti!",64,"ROA Preturi") + glQuit= .T. + Quit +Endif + +If !Debug_Start() + lcParam=tparam + If Empty(tparam) Or (Type('tParam')='C' And !verific_start(tparam,dirgen,gcAppName)) + _Screen.Visible=.T. + Messagebox("Programul trebuie pornit doar din START!",64,"ROA Preturi") + Quit + Endif +Endif + +***************************** VARIABILE ORACLE +Private gnHandle,gnidutil,GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GNDIFZILE, gcUserNameApp, gcPasswordApp +Private gnButon && variabila pentru renunt si terminat +Store 2 To gnButon +Store '' To GCCODFISCAL,GCADRESA,GCNUMEFIRMA,GCMONEDA, gcUserNameApp, gcPasswordApp, gcAcces +gnHandle = -1 +gnidutil = 0 + +Private gcHost, gcUserName, gcPassword, gofundal, gnIdProgram +gnIdProgram = 0 +gofundal='' + +Private goFirma,gnId_Firma,gnIdFirma,gcFirma,gnAn,gnLuna && ,gnPA,gnPC +Store Null To goFirma +Store 0 To gnId_Firma, gnIdFirma, gnAn, gnLuna +Store '' To gcFirma + +Private glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa +Store .F. To glUltimaLuna,glPrimaLuna, glLunaBuna,glLuna_neplatita,glLunaInchisa + +Private gcS && schema firmei +Store 'CONTAFIN' To gcS + +&& obiect global wrap pt sqlexec cu text eroare si succes +Private goExecutor, goConn +goExecutor = Createobject("oExecutor") +goConn = Createobject("oConn") + +&& obiect global pt luna aleasa din calendar +Private goCalendar +Store Null To goCalendar + +gcHost = lchost +gcUserName = lcUserName +gcPassword = lcPassword +gcUserNameApp = lcUserNameApp +gcPasswordApp = lcPasswordApp +gnidutil = lnIdUtil +gnIdProgram = lnIdProgram + +If !glParametri + lnValid = getcrsSecurity(gcSecurityFile) + If lnValid > 0 + If Used('crsHost') + Select crsHost + Go Top + gcHost = Alltrim(Host) + gcUserName = Alltrim(schema) + gcPassword = Alltrim(pwd) + Use In crsHost + Endif + Endif +Endif +***************************** VARIABILE ORACLE +Public NUMEPROGRAM,FUNDALPROGRAM, antet +NUMEPROGRAM='ROA Politici de preturi' +MENIUPROGRAM="MENIU\roapreturi.mpr" + +PRIVATE gcCopyRight +gcCopyRight = '© ROA Romfast SRL' + +*!* FUNDALPROGRAM=gcAppPath+"FERESTRE\FUNDAL.scx" + +*-- Configure application object.***************************** +* _Screen.WindowState=2 +_Screen.AutoCenter=.T. + +lcOnShutdown="ShutDown()" +On Shutdown &lcOnShutdown +On Error ErrorHandler(Error(),Program(),Lineno()) +*!* _Shell="DO Cleanup IN progs\cont2003" + +*-- Instantiate application object.*************************** +Release goApp +Public goApp +goApp=Createobject("cApplication") + +Local laVersion +Dimension laVersion(12) +If Agetfileversion(laVersion, Sys(16,0)) > 0 + NUMEPROGRAM = laVersion(10) +Endif +Release laVersion + +goApp.SetCaption(NUMEPROGRAM) +goApp.cStartupMenu=MENIUPROGRAM +goApp.cStartupForm = gcAppPath + 'ferestre\frm_login.scx' + +* _Screen.WindowState=2 + + +*-- Show application. +goApp.Show + +*-- Release application. +Release goApp + +*-- Restore default menu. +Pop Menu _Msysmenu + +*-- Restore environment. +On Error +On Shutdown +If Not lcLastSetClassLib==Set("classlib") + Release Classlib (lcMainClassLib) +Endif +If Empty(lcLastSetPath) + Set Path To +Else + Set Path To &lcLastSetPath +Endif +If lcLastSetTalk=="ON" + Set Talk On +Else + Set Talk Off +Endif + +Return +************************************************************************************************ +* FUNCTII______________________________________________________________________ +Function ErrorHandler(nError,cMethod,nLine) +Local lcErrorMsg,lcCodeLineMsg + +Wait Clear +lcErrorMsg=Message()+Chr(13)+Chr(13) +lcErrorMsg=lcErrorMsg+"Method: "+cMethod +lcCodeLineMsg=Message(1) +If Between(nLine,1,10000) And Not lcCodeLineMsg="..." + lcErrorMsg=lcErrorMsg+Chr(13)+"Line: "+Alltrim(Str(nLine)) + If Not Empty(lcCodeLineMsg) + lcErrorMsg=lcErrorMsg+Chr(13)+Chr(13)+lcCodeLineMsg + Endif +Endif +If Messagebox(lcErrorMsg,17,_Screen.Caption)#1 + On Error + Return .F. +Endif +Endfunc +************************************************************************************************ +Function Shutdown +If Start_Nou() + =End_Istoric(gnIdIstoric, Addbs(dirgen)+"DATERETEA\", "START_ISTORIC") +Endif +If Type("goApp")=="O" And Not Isnull(goApp) + Return goApp.OnShutDown() +Endif +Cleanup() +Quit +Endfunc +************************************************************************************************ +Function Cleanup +If Cntbar("_msysmenu")=7 + Return +Endif +On Error +On Shutdown +Set Classlib To +Set Path To +Clear All +Close All +Pop Menu _Msysmenu +Return +************************************************************************************************ +Function decodare1 +Parameters lstring,CHEIE +Local lens,poz1,poz2,POZ3,lret,LRET2,lcstring,val1,lret1 +lret='' +lret1='' +LRET2='' +lcstring=Alltrim(Upper(lstring)) +lens=Len(lcstring) +For i=1 To 4 + poz1=Substr(lcstring,i,1) + val1=Asc(poz1) + POZ3=Substr(CHEIE,i,1) + Do Case + Case val1>=48 And val1<=57 + If ((val1-47)+Int(Val(POZ3)))<=10 + poz2=Chr(val1+Int(Val(POZ3))) + Else + poz2=Chr(val1+Int(Val(POZ3))-10) + Endif + Case val1>=65 And val1<=90 + If ((val1-64)+2*Int(Val(POZ3)))<=26 + poz2=Chr(val1+2*Int(Val(POZ3))) + Else + poz2=Chr(val1+2*Int(Val(POZ3))-26) + Endif + Endcase + LRET2=LRET2+poz2 +Endfor +For i=1 To lens + poz1=Substr(LRET2,i,1) + val1=Asc(poz1) + Do Case + Case val1>=48 And val1<=57 + If ((val1-47)+i)<=10 + poz2=Chr(val1+i) + Else + poz2=Chr(val1+i-10) + Endif + Case val1>=65 And val1<=90 + If ((val1-64)+2*i)<=26 + poz2=Chr(val1+2*i) + Else + poz2=Chr(val1+2*i-26) + Endif + Endcase + lret=lret+poz2 +Endfor +lens=Len(lret) +For i=1 To lens + poz1=Substr(lret,i,1) + val1=Asc(poz1) + Do Case + Case val1>=48 And val1<=57 + poz2=Chr(val1+17)&& din 0-9 in A-J + Case val1>=65 And val1<=74 + poz2=Chr(val1-17)&& din A-J in 0-9 + Case val1>=75 And val1<=82 + poz2=Chr(val1+8)&&din K-R in S-Z + Case val1>=83 And val1<=90 + poz2=Chr(val1-8)&&din S-Z in K-R + Endcase + lret1=lret1+poz2 +Endfor +Return lret1 +************************************************************************************************ +&&transformarea in decimal a unui caracter hexa +Function HEXDEC +Lparameters LC +Local LV +Do Case +Case LC=='0' + LV='0' +Case LC=='1' + LV='1' +Case LC=='2' + LV='2' +Case LC=='3' + LV='3' +Case LC=='4' + LV='4' +Case LC=='5' + LV='5' +Case LC=='6' + LV='6' +Case LC=='7' + LV='7' +Case LC=='8' + LV='8' +Case LC=='9' + LV='9' +Case LC=='A' + LV='10' +Case LC=='B' + LV='11' +Case LC=='C' + LV='12' +Case LC=='D' + LV='13' +Case LC=='E' + LV='14' +Case LC=='F' + LV='15' +Endcase +Return LV +************************************************************************************************ +&&codarea binara din hexa pe patru biti +Function DECTOBIN +Parameters sc +Local lretf +Do Case +Case sc=='0' + lretf='0000' +Case sc=='1' + lretf='0001' +Case sc=='2' + lretf='0010' +Case sc=='3' + lretf='0011' +Case sc=='4' + lretf='0100' +Case sc=='5' + lretf='0101' +Case sc=='6' + lretf='0110' +Case sc=='7' + lretf='0111' +Case sc=='8' + lretf='1000' +Case sc=='9' + lretf='1001' +Case sc=='10' + lretf='1010' +Case sc=='11' + lretf='1011' +Case sc=='12' + lretf='1100' +Case sc=='13' + lretf='1101' +Case sc=='14' + lretf='1110' +Case sc=='15' + lretf='1111' +Endcase +Return lretf +************************************************************************************************ +Function ECARACTER +Parameters strg1 +Private pz,ch,lcstring,vret,lg1 +Store 0 To pz,lg1 +Store '' To ch,lcstring +Store .T. To vret +lcstring=Upper(strg1) +lg1=Len(lcstring) +For ind1=1 To lg1 + ch=Substr(lcstring,ind1,1) + If (Not Between(Asc(ch),48,57)) And (Not Between(Asc(ch),65,90)) + vret=.F. + Exit + Endif +Endfor +Return vret +************************************************************************************************ +Function sircaracter +Parameters strg1 +Private pz,ch,lcstring,vret,lg1,lciesire +Store 0 To pz,lg1 +Store '' To ch,lcstring,lciesire +Store .T. To vret +strg1=Strtran(strg1,Alltrim(Chr(39)),'')&&caracterul ' +strg1=Strtran(strg1,Alltrim(Chr(39)),'')&&caracterul " +lcstring=Upper(Alltrim(strg1)) +lg1=Len(lcstring) +For ind1=1 To lg1 + ch=Substr(lcstring,ind1,1) + If Between(Asc(ch),48,57) Or Between(Asc(ch),65,90) + lciesire=lciesire+ch + Endif +Endfor +Return lciesire +************************************************************************************************ +Procedure _DEBUG +Private lcret,lcfisier,lcPath,lccalewin +Declare Integer SHGetFolderPath In SHFOLDER.Dll ; + INTEGER hwndOwner, ; + INTEGER nFolder, ; + INTEGER hToken, ; + INTEGER dwFlags, ; + STRING @ pszPath +Declare Integer GetActiveWindow In WIN32API +#Define CSIDL_WINDOWS 36 + +lcPath = Repl(Chr(0),261) +=SHGetFolderPath(GetActiveWindow(),CSIDL_WINDOWS,0,0,@lcPath) +lccalewin=Left(lcPath,At(Chr(0),lcPath)-1) + +lcret=.F. +lcfisier=Addbs(lccalewin)+[DEBUG.TXT] + +If File(lcfisier) + LCVAL=Filetostr(lcfisier) + + LNVAL1=Mod(Val(Right(LCVAL,1)),2) && restul 1 sau 0; daca e impar e 1 + lnval2=Val(Left(LCVAL,Len(LCVAL)-1)) + If LNVAL1=1 Or Year(Date())-Month(Date())=lnval2 + lcret=.T. + Endif +Endif +Return lcret + +Endproc +************************************************************************************************ +Function Start_Nou +Return Exista_Branch(,,dirgen) +Endfunc && start_nou +************************************************************************************************ +Procedure Debug_Start +lcFile = gcAppPath + "debug.txt" +If File(lcFile) Or !Start_Nou() + Return .T. +Endif +Return .F. +Endproc && Debug_Start +************************************************************************************************ +Procedure verificari +Parameters tcFisierVerif + +lcverificari = Addbs(gcAppPath)+gcAppName+".txt" +If File(lcverificari) + Return .T. +Endif +Return .F. +Endproc && verificari +************************************************************************************************ \ No newline at end of file diff --git a/Programe/shutdown.prg b/Programe/shutdown.prg new file mode 100644 index 0000000..04ae62a --- /dev/null +++ b/Programe/shutdown.prg @@ -0,0 +1,3 @@ +IF TYPE("goApp")=="O" AND NOT ISNULL(goApp) + RETURN goApp.OnShutDown() +ENDIF diff --git a/Programe/update_nomenclator.prg b/Programe/update_nomenclator.prg new file mode 100644 index 0000000..00b7625 --- /dev/null +++ b/Programe/update_nomenclator.prg @@ -0,0 +1,4 @@ +********************************************************** +PROCEDURE update_nomenclator + +ENDPROC && update_nomenclator \ No newline at end of file diff --git a/Programe/update_preturi.prg b/Programe/update_preturi.prg new file mode 100644 index 0000000..0ea65de --- /dev/null +++ b/Programe/update_preturi.prg @@ -0,0 +1,224 @@ +***************************************************************************** +Procedure update_elemente_doc +Lparameters tnTipModelDoc,tnIdModelDoc +If Used('v_elemente_doc') + Use In v_elemente_doc +Endif +lcFiltru=[where a.id_tip_model_doc=]+Alltrim(Str(tnTipModelDoc))+[ and ]+; + [(b.id_model_doc=]+ALLTRIM(STR(tnIdModelDoc))+[ or b.id_model_doc is null)] +lcSql=[select a.id_coloana_doc,a.descriere,NVL(b.id_tip_tag_doc,0) as id_tip_tag_doc,]+; + [b.tip_tag,b.pozitie ]+; + [from ]+gcS+[.crm_vcoloane_documente a ]+; + [left join ]+gcS+[.crm_velemente_document b ]+; + [on a.id_coloana_doc = b.id_coloana_doc ] + ; + lcFiltru +lnSucces=goExecutor.oExecute(lcSql,'v_elemente_doc') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Else + If Used('crselementedoc') + Use In crselementedoc + Endif + Create Cursor crselementedoc(id_coloana_doc N(10),descriere C(100),id_tip_tag_doc N(10),; + tip_tag C(100),pozitie C(100)) + Insert Into crselementedoc (id_coloana_doc,descriere,id_tip_tag_doc,tip_tag,pozitie) ; + SELECT id_coloana_doc,descriere,id_tip_tag_doc,NVL(tip_tag,[]) as tip_tag,; + NVL(pozitie,[]) as pozitie From v_elemente_doc + GO top + Use In v_elemente_doc +Endif +goExecutor.oReset() +Return lnSucces +Endproc && update_elemente_doc +***************************************************************************** +Procedure update_coloane_doc +Lparameters tnTipModelDoc +If Used('v_coloane_doc') + Use In v_coloane_doc +Endif +If !Empty(tnTipModelDoc) + lcFiltru=[where id_tip_model_doc=]+Alltrim(Str(tnTipModelDoc)) +Else + lcFiltru=[] +Endif +lcSql=[select id_coloana_doc,descriere from ] + gcS + [.crm_vcoloane_documente ]+; + lcFiltru +lnSucces=goExecutor.oExecute(lcSql,'v_coloane_doc') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Else + If Used('crselementedoc') + Use In crselementedoc + Endif + Create Cursor crselementedoc(id_coloana_doc N(10),descriere C(100),id_tip_tag_doc N(10),; + tip_tag C(100),pozitie C(100)) + Insert Into crselementedoc (id_coloana_doc,descriere,id_tip_tag_doc) ; + SELECT id_coloana_doc,descriere,0 As id_tip_tag_doc From v_coloane_doc + GO top + Use In v_coloane_doc +Endif +goExecutor.oReset() +Return lnSucces +Endproc && update_coloane_doc +***************************************************************************** +Procedure update_tip_tag_document +If Used('v_tip_tag') + Use In v_tip_tag +Endif +lcSql=[select id_tip_tag_doc,tip_tag from ] + gcS + [.crm_vtip_tag_document where inactiv=0] +lnSucces=goExecutor.oExecute(lcSql,'v_tip_tag') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Endif +goExecutor.oReset() +Return lnSucces +Endproc && update_tip_tag_document +***************************************************************************** +Procedure update_articole +If Used('v_articole') + Use In v_articole +Endif +lcSql=[select id_articol, codmat, denumire as nume_articol, um from ] + gcS + [.vnom_articole_crm order by denumire ] +lnSucces=goExecutor.oExecute(lcSql,'v_articole') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Endif +goExecutor.oReset() +Return lnSucces + +Endproc && update_articole +***************************************************************************** +Procedure update_zone +If Used('v_zone') + Use In v_zone +Endif +lcSql=[select id_zona,zona from ] + gcS + [.crm_vzone where inactiv=0] +lnSucces=goExecutor.oExecute(lcSql,'v_zone') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Endif +goExecutor.oReset() +Return lnSucces + +Endproc && update_zone +***************************************************************************** +Procedure update_agenti +If Used('v_agenti') + Use In v_agenti +Endif +lcSql=[select id_responsabil,nume_agent from ] + gcS + [.vnom_agenti ]+; + [order by 2] +lnSucces=goExecutor.oExecute(lcSql,'v_agenti') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Endif +goExecutor.oReset() +Return lnSucces + +Endproc && update_agenti +***************************************************************************** +Procedure update_articole_politica_pret +Lparameters tnIdPol +If Used('crsarticole') + Use In crsarticole +Endif +lcSql=[select id_art as id_articol,nume_art as nume_articol,um,pret,nume_val,id_valuta from ] + gcS + [.vcrm_politici_pret_art ]+; + [where id_pol=]+Alltrim(Str(tnIdPol))+[ order by 2] +lnSucces=goExecutor.oExecute(lcSql,'crsarticole') +If lnSucces < 0 + Messagebox(goExecutor.cEroare,0+16,'Eroare') +Endif +goExecutor.oReset() +Return lnSucces + +Endproc && update_articole_politica_pret +***************************************************************************** +** Functii cautare +***************************************************************************** +Function cauta_agent +Lparameters tcIdAgent,tcNumeAgent +Local locauta,llReturn +Store "" To locauta +Store .F. To llReturn +pcselect = ["select id_responsabil,nume_agent,functie from ] + gcS + [.vnom_agenti "] +pcfiltru = [1=2] +pcschema = [''] +pcorder = [2] +pccoloane = [nume_agent,functie] +pcTitlu = [Agent] +pcTitluColoane = [Nume,Functie] +locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"") +If !Empty(locauta.id_responsabil) + tcIdAgent=locauta.id_responsabil + tcNumeAgent=Alltrim(locauta.nume_agent) + llReturn=.T. +Endif +Return llReturn +Endfunc && cauta_agent +***************************************************************************** +Function cauta_valuta +Lparameters tnIdValuta,tcNumeValuta +Local locauta,llReturn +Store "" To locauta +Store .F. To llReturn +pcselect = ["select id_valuta,nume_val from ] + gcS + [.vnom_valute "] +pcfiltru = [1=2] +pcschema = [''] +pcorder = [2] +pccoloane = [Nume_val] +pcTitlu = [Valuta] +pcTitluColoane = [Valuta] +locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"") + +If !Empty(locauta.id_valuta) + tnIdValuta=locauta.id_valuta + tcNumeValuta=Alltrim(locauta.nume_val) + llReturn=.T. +Endif +Return llReturn +Endfunc && cauta_valuta +***************************************************************************** +Function cauta_zona +Lparameters tnIdZona,tcNumeZona +Local locauta,llReturn +Store "" To locauta +Store .F. To llReturn +pcselect = ["select id_zona,zona from ] + gcS + [.crm_vzone where inactiv=0"] +pcfiltru = [1=2] +pcschema = [''] +pcorder = [2] +pccoloane = [Zona] +pcTitlu = [Zona] +pcTitluColoane = [Zona] +locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"") +If !Empty(locauta.id_zona) + tnIdZona=locauta.id_zona + tcNumeZona=Alltrim(locauta.zona) + llReturn=.T. +Endif +Return llReturn +Endfunc && cauta_zona +***************************************************************************** +Function cauta_politica_preturi +Lparameters tnIdPol,tcNumePolitica,tnIdValuta,tcNumeValuta +Local locauta,llReturn +Store "" To locauta +Store .F. To llReturn +pcselect = ["select id_pol,nume,datai,datas,id_valuta,nume_val from ] + gcS + [.crm_vpolitici_pret_curente"] +pcfiltru = [1=2] +pcschema = [''] +pcorder = [2] +pccoloane = [nume,datai,datas,nume_val] +pcTitlu = [Politici de preturi actuale] +pcTitluColoane = [Nume,Data inceput,Data sfarsit,Valuta] +locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,"") +If !Empty(locauta.id_pol) + tnIdPol=locauta.id_pol + tcNumePolitica=Alltrim(locauta.nume) + tnIdValuta=locauta.id_valuta + tcNumeValuta=Alltrim(locauta.nume_val) + llReturn=.T. +Endif +Return llReturn +Endfunc && cauta_politica_preturi +***************************************************************************** \ No newline at end of file diff --git a/Rapoarte/rap_liste.fr2 b/Rapoarte/rap_liste.fr2 new file mode 100644 index 0000000..86cd738 --- /dev/null +++ b/Rapoarte/rap_liste.fr2 @@ -0,0 +1,650 @@ +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!! +*-------------------------------------------------------------------------------------------------------------------------------------------------------- +*< FOXBIN2PRG: Version="1.21" SourceFile="rap_liste.frx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries) +* + + + + +