*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (EN) AUTOGENERATED - ATTENTION!! - NOT INTENDED FOR EXECUTION!! USE ONLY FOR MERGING CHANGES AND STORING WITH SCM TOOLS!!
*--------------------------------------------------------------------------------------------------------------------------------------------------------
*< FOXBIN2PRG: Version="1.21" SourceFile="ointroduceri.vcx" CPID="1252" /> (Solo para binarios VFP 9 / Only for VFP 9 binaries)
*
*
DEFINE CLASS container_valoare_decontata AS container
*< CLASSDATA: Baseclass="container" Timestamp="" Scale="Pixels" 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="" />
*
BackColor = 255,255,255
BorderColor = 255,255,255
Height = 28
Name = "container_valoare_decontata"
Width = 245
*
ADD OBJECT 'Label1' AS label WITH ;
BackStyle = 0, ;
Caption = "Valoare decontatã", ;
FontCharSet = 238, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 7,118,177, ;
Height = 17, ;
Left = 3, ;
Name = "Label1", ;
Top = 6, ;
Width = 108
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Text1' AS textbox WITH ;
ControlSource = "pnValoareDecontata", ;
FontCharSet = 238, ;
FontName = "Arial", ;
FontSize = 10, ;
Format = "rk", ;
Height = 23, ;
InputMask = (get_mask(12,gnPC)), ;
Left = 113, ;
Name = "Text1", ;
SpecialEffect = 1, ;
Top = 3, ;
Width = 129
*< END OBJECT: BaseClass="textbox" />
PROCEDURE Text1.LostFocus
IF pnValoareDecontata > thisform.nTotal
pnValoareDecontata = thisform.nTotal
this.Refresh
ENDIF
pnCheltuieliDirecte = thisform.nTotal - pnValoareDecontata
ENDPROC
ENDDEFINE
DEFINE CLASS facturi_retur AS _frmbase OF "_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="Ct_grid_order1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column1.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column1.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column2.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column2.Check1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column3.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column3.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column4.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column4.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column5.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column5.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column6.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column6.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column7.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column7.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column8.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column8.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column9.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column9.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column10.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.Column10.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.cSerie_act.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1._GRID1.cSerie_act.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_n1n2_simplu1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Resizable1" UniqueID="" Timestamp="" />
#INCLUDE "..\include\foxpro.h"
*
BorderStyle = 1
DoCreate = .T.
Height = 460
Name = "facturi_retur"
Width = 662
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 662
_shape1.ZOrderSet = 1
_shape2.Height = 29
_shape2.Left = 599
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 63
_shape2.ZOrderSet = 2
Lb_titlu_alb_b121.Caption = "Selectati facturile pentru retur"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.ZOrderSet = 3
BUT_TERMIN1.Left = 631
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 4
GRIDSORT1.Name = "GRIDSORT1"
*
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 601, ;
Name = "But_renunt1", ;
TabIndex = 4, ;
Top = 1, ;
ZOrderSet = 6
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Clb_n1n2_simplu1' AS clb_n1n2_simplu WITH ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 30, ;
Left = 362, ;
Name = "Clb_n1n2_simplu1", ;
TabIndex = 1, ;
Top = 68, ;
Width = 290, ;
ZOrderSet = 5, ;
tx_n1.ControlSource = "pdDatai", ;
tx_n1.Left = 130, ;
tx_n1.Name = "tx_n1", ;
tx_n1.Top = 3, ;
Lb_simplu1.Caption = "Facturi din perioada:", ;
Lb_simplu1.Left = 8, ;
Lb_simplu1.Name = "Lb_simplu1", ;
Lb_simplu1.Top = 7, ;
tx_n2.ControlSource = "pdDataf", ;
tx_n2.Left = 210, ;
tx_n2.Name = "tx_n2", ;
tx_n2.Top = 3
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_order1' AS ct_grid_order WITH ;
cnumecursor = crs_facturi_emise, ;
Height = 418, ;
Left = 7, ;
Name = "Ct_grid_order1", ;
TabIndex = 2, ;
Top = 41, ;
Width = 648, ;
ZOrderSet = 0, ;
_GRID1.Column1.ControlSource = "nrcrt()", ;
_GRID1.Column1.FontName = "Arial Narrow", ;
_GRID1.Column1.Name = "Column1", ;
_GRID1.Column1.Width = 24, ;
_GRID1.Column10.ColumnOrder = 11, ;
_GRID1.Column10.ControlSource = "totdebit-totcredit", ;
_GRID1.Column10.FontName = "Arial Narrow", ;
_GRID1.Column10.InputMask = (get_mask(12,gnPc)), ;
_GRID1.Column10.Name = "Column10", ;
_GRID1.Column10.Width = 81, ;
_GRID1.Column11.ColumnOrder = 3, ;
_GRID1.Column11.ControlSource = "serie_act", ;
_GRID1.Column11.FontName = "Arial Narrow", ;
_GRID1.Column11.Name = "cSerie_act", ;
_GRID1.Column11.Width = 53, ;
_GRID1.Column2.Alignment = 2, ;
_GRID1.Column2.ControlSource = "ceck", ;
_GRID1.Column2.FontName = "Arial Narrow", ;
_GRID1.Column2.Name = "Column2", ;
_GRID1.Column2.Sparse = .F., ;
_GRID1.Column2.Width = 31, ;
_GRID1.Column3.ColumnOrder = 4, ;
_GRID1.Column3.ControlSource = "nract", ;
_GRID1.Column3.FontName = "Arial Narrow", ;
_GRID1.Column3.Name = "Column3", ;
_GRID1.Column4.ColumnOrder = 5, ;
_GRID1.Column4.ControlSource = "dataact", ;
_GRID1.Column4.FontName = "Arial Narrow", ;
_GRID1.Column4.Name = "Column4", ;
_GRID1.Column4.Width = 63, ;
_GRID1.Column5.ColumnOrder = 6, ;
_GRID1.Column5.ControlSource = "datascad", ;
_GRID1.Column5.FontName = "Arial Narrow", ;
_GRID1.Column5.Name = "Column5", ;
_GRID1.Column5.Width = 70, ;
_GRID1.Column6.ColumnOrder = 7, ;
_GRID1.Column6.ControlSource = "cont", ;
_GRID1.Column6.FontName = "Arial Narrow", ;
_GRID1.Column6.Name = "Column6", ;
_GRID1.Column6.Width = 31, ;
_GRID1.Column7.ColumnOrder = 8, ;
_GRID1.Column7.ControlSource = "acont", ;
_GRID1.Column7.FontName = "Arial Narrow", ;
_GRID1.Column7.Name = "Column7", ;
_GRID1.Column7.Width = 33, ;
_GRID1.Column8.ColumnOrder = 9, ;
_GRID1.Column8.ControlSource = "totdebit", ;
_GRID1.Column8.FontName = "Arial Narrow", ;
_GRID1.Column8.InputMask = (get_mask(12,gnPc)), ;
_GRID1.Column8.Name = "Column8", ;
_GRID1.Column8.Width = 89, ;
_GRID1.Column9.ColumnOrder = 10, ;
_GRID1.Column9.ControlSource = "totcredit", ;
_GRID1.Column9.FontName = "Arial Narrow", ;
_GRID1.Column9.InputMask = (get_mask(12,gnPc)), ;
_GRID1.Column9.Name = "Column9", ;
_GRID1.Column9.Width = 88, ;
_GRID1.ColumnCount = 11, ;
_GRID1.FontName = "Arial Narrow", ;
_GRID1.Height = 348, ;
_GRID1.Left = 6, ;
_GRID1.Name = "_GRID1", ;
_GRID1.Panel = 1, ;
_GRID1.RecordSource = "crs_facturi_emise", ;
_GRID1.Top = 62, ;
_GRID1.Width = 639, ;
Titlu.Left = 9, ;
Titlu.Name = "Titlu", ;
Titlu.Top = 3, ;
Cb_tx_cautare1.Criteriu.Name = "Criteriu", ;
Cb_tx_cautare1.Name = "Cb_tx_cautare1", ;
Cb_tx_cautare1.Text.Name = "Text"
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column1.Header1' AS header WITH ;
Caption = "Nr.", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.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 'Ct_grid_order1._GRID1.Column10.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Sold", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column10.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 'Ct_grid_order1._GRID1.Column2.Check1' AS checkbox WITH ;
Alignment = 0, ;
Caption = "", ;
Centered = .T., ;
FontName = "Arial Narrow", ;
Height = 17, ;
Left = 9, ;
Name = "Check1", ;
Top = 40, ;
Width = 60
*< END OBJECT: BaseClass="checkbox" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column2.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Alege", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column3.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Nr.factura", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column3.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 'Ct_grid_order1._GRID1.Column4.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data factura", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.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 'Ct_grid_order1._GRID1.Column5.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data scadenta", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.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 'Ct_grid_order1._GRID1.Column6.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cont", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column6.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 'Ct_grid_order1._GRID1.Column7.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Analitic", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column7.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 'Ct_grid_order1._GRID1.Column8.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Total factura", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column8.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 'Ct_grid_order1._GRID1.Column9.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Achitat", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.Column9.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 'Ct_grid_order1._GRID1.cSerie_act.Header1' AS header WITH ;
Alignment = 0, ;
Caption = "Serie factura", ;
FontName = "Arial Narrow", ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Ct_grid_order1._GRID1.cSerie_act.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 'Resizable1' AS resizable_class WITH ;
Left = 271, ;
Name = "Resizable1", ;
repositionlist = _shape Urmator But_termin But_renunt Clb_n1n2_simplu Titlufrumos Ct_grid_order, ;
resizelist = _shape Urmator But_termin But_renunt Clb_n1n2_simplu Titlufrumos Ct_grid_order, ;
Top = 31
*< END OBJECT: ClassLib="solution.vcx" BaseClass="custom" />
PROCEDURE inainte_de_do_termin
lcSel = this.ct_grid_order1.cnumecursor
SELECT (lcSel)
COUNT FOR ceck = 1 TO lnAlese
IF lnAlese = 0
amessagebox('Alegeti o factura!',0+16,'Atentie')
RETURN .f.
ENDIF
ENDPROC
PROCEDURE Show
LPARAMETERS nStyle
this.ct_grid_order1.initializare(.t.)
i = 0
For Each loColumn In Thisform.ct_grid_order1._GRID1.Columns
i = i + 1
With loColumn
If !Empty(loColumn.ControlSource)
* Save default caption, color and font
lcOldCaption = loColumn.Header1.Caption
lcOldFontName = loColumn.Header1.FontName
lnOldForeColor = loColumn.Header1.ForeColor
llOldFontUnderline = loColumn.Header1.FontUnderline
* Name Header Obj after ControlSource
lcControlSrc = loColumn.ControlSource
lnControlSrc = Rat(".", lcControlSrc) + 1
lcControlSrc = Substr(lcControlSrc, lnControlSrc)
* Metoda dupa care se face ordonarea relativa la grid
lcMethodName = 'parent.corderby_assign'
lcPropColOrder = 'parent.cOrder'
lcPropSensOrder = 'parent.cAsc'
* Remove old and create new header
.RemoveObject("Header1")
.AddObject("grh"+ALLTRIM(STR(i)), ;
"PSHeader", ;
lcOldCaption, lcOldFontName,lnOldForeColor,llOldFontUnderline,lcMethodName,lcControlSrc)
If Upper(Alltrim(lcControlSrc)) = Upper(Alltrim(this.ct_grid_order1.corder))
lcCuloare = [locolumn.grh] + ALLTRIM(STR(i)) + [.forecolor = RGB(0,0,255)]
&lcCuloare
lcUnderline = [locolumn.grh] + ALLTRIM(STR(i)) + [.FontUnderline = .t.]
&lcUnderline
Endif
Endif
Endwith
ENDFOR
ENDPROC
PROCEDURE Clb_n1n2_simplu1.tx_n1.Valid
IF EMPTY(this.Parent.tx_n2.value)
this.Parent.tx_n2.value=this.value
this.Parent.tx_n2.Refresh
ENDIF
ENDPROC
PROCEDURE Clb_n1n2_simplu1.tx_n2.LostFocus
thisform.LockScreen = .t.
thisform.ct_grid_order1.initializare(.t.)
thisform.ct_grid_order1.SetFocus
thisform.LockScreen = .f.
ENDPROC
PROCEDURE Ct_grid_order1.initializare
PARAMETERS tlNumerotare
llNrOrd = tlNumerotare
*** CREEZ CURSORUL INITIAL
lcTitlu = This.cTitlu
lcOrder = this.corder
lcNumeCursor = this.cnumecursor
lcSql = This.cSelect
lnSucces = goExecutor.oExecute(lcSql,'crs_temp')
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
RETURN
ENDIF
save_grid(This._grid1)
IF USED(lcNumeCursor)
USE IN &lcNumeCursor
ENDIF
SELECT ceck, serie_act, nract, TTOD(dataact) as dataact,TTOD(datascad) as datascad,cont,acont,totdebit,totcredit,totdebit-totcredit,id_fact ;
FROM crs_temp INTO CURSOR (lcNumeCursor) READWRITE
USE IN crs_temp
IF llNrOrd
DO nrord WITH lcNumeCursor
this._griD1.LockColumns = 1
ENDIF
restore_grid(This._grid1)
SELECT (lcNumeCursor)
GO TOP
ENDPROC
PROCEDURE _shape1.DblClick
IF thisform.WindowState = 2
thisform.WindowState = 0
ELSE
thisform.WindowState = 2
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS frm_alege_prod_cant AS _frmbase OF "_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="Command1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txt_produs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtCant" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_clb_gestiune" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_clb_produs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtLot" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtSerie" UniqueID="" Timestamp="" />
*
*m: do_cauta_gestiune
*m: do_cauta_produs
*
*
BorderStyle = 1
Caption = "Form"
DoCreate = .T.
Height = 188
Name = "frm_alege_prod_cant"
Width = 353
_SHAPE1.Name = "_SHAPE1"
_SHAPE2.Height = 29
_SHAPE2.Left = 292
_SHAPE2.Name = "_SHAPE2"
_SHAPE2.Top = 0
_SHAPE2.Width = 61
LB_TITLU_ALB_B121.Caption = "Productie"
LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121"
LB_TITLU_ALB_B121.TabIndex = 8
BUT_TERMIN1.Left = 322
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 6
BUT_TERMIN1.Top = 1
GRIDSORT1.Left = 240
GRIDSORT1.Name = "GRIDSORT1"
GRIDSORT1.Top = 12
*
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 292, ;
Name = "But_renunt1", ;
TabIndex = 7, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Command1' AS commandbutton WITH ;
Caption = "Cauta articol", ;
Height = 27, ;
Left = 25, ;
Name = "Command1", ;
TabIndex = 9, ;
Top = 257, ;
Width = 84
*< END OBJECT: BaseClass="commandbutton" />
ADD OBJECT 'Ct_clb_gestiune' AS ct_clb_cautare_var WITH ;
cconditie = EMPTY(NVL(pnId_gestiune,0)), ;
cprocedura = thisform.do_cauta_gestiune, ;
cvar_afisata = pcGestiune, ;
Height = 31, ;
Left = 12, ;
Name = "Ct_clb_gestiune", ;
TabIndex = 5, ;
Top = 150, ;
Width = 337, ;
shape_cautare.Height = 29, ;
shape_cautare.Left = 1, ;
shape_cautare.Name = "shape_cautare", ;
shape_cautare.Top = 1, ;
shape_cautare.Width = 305, ;
img_cautare.Left = 310, ;
img_cautare.Name = "img_cautare", ;
img_cautare.Top = 5, ;
lb_cautare.Caption = "Gestiune destinatie", ;
lb_cautare.Name = "lb_cautare", ;
tx_cautare.Left = 119, ;
tx_cautare.Name = "tx_cautare", ;
tx_cautare.Top = 4
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
ADD OBJECT 'Ct_clb_produs' AS ct_clb_cautare_var WITH ;
cconditie = EMPTY(NVL(pnId_articol,0)), ;
cprocedura = thisform.do_cauta_produs, ;
cvar_afisata = pcDenumire, ;
Height = 31, ;
Left = 11, ;
Name = "Ct_clb_produs", ;
TabIndex = 1, ;
Top = 43, ;
Width = 337, ;
shape_cautare.Height = 29, ;
shape_cautare.Left = 1, ;
shape_cautare.Name = "shape_cautare", ;
shape_cautare.Top = 1, ;
shape_cautare.Width = 305, ;
img_cautare.Left = 309, ;
img_cautare.Name = "img_cautare", ;
img_cautare.Top = 5, ;
lb_cautare.Caption = "Produs", ;
lb_cautare.Name = "lb_cautare", ;
tx_cautare.Left = 119, ;
tx_cautare.Name = "tx_cautare", ;
tx_cautare.Top = 4
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
ADD OBJECT 'Label1' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Cantitate", ;
FontSize = 10, ;
Height = 18, ;
Left = 17, ;
Name = "Label1", ;
TabIndex = 11, ;
Top = 78, ;
Width = 54
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Label2' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Lot", ;
FontSize = 10, ;
Height = 18, ;
Left = 17, ;
Name = "Label2", ;
TabIndex = 13, ;
Top = 103, ;
Width = 20
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Label3' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Serie", ;
FontSize = 10, ;
Height = 18, ;
Left = 17, ;
Name = "Label3", ;
TabIndex = 12, ;
Top = 128, ;
Width = 32
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'txt_produs' AS textbox WITH ;
Height = 23, ;
Left = 120, ;
Name = "txt_produs", ;
TabIndex = 10, ;
Top = 259, ;
Width = 120
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtCant' AS textbox WITH ;
ControlSource = "pnCant", ;
FontSize = 10, ;
Format = "rk", ;
Height = 23, ;
InputMask = (get_mask(10,gnPcant)), ;
Left = 84, ;
Name = "txtCant", ;
TabIndex = 2, ;
Top = 75, ;
Width = 131
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtLot' AS textbox WITH ;
ControlSource = "pcLot", ;
FontSize = 10, ;
Format = "!K", ;
Height = 23, ;
Left = 60, ;
Name = "txtLot", ;
TabIndex = 3, ;
Top = 100, ;
Width = 155
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'txtSerie' AS textbox WITH ;
ControlSource = "pcSerie", ;
FontSize = 10, ;
Format = "!K", ;
Height = 23, ;
Left = 60, ;
Name = "txtSerie", ;
TabIndex = 4, ;
Top = 125, ;
Width = 155
*< END OBJECT: BaseClass="textbox" />
PROCEDURE do_cauta_gestiune
Local loCauta
loCauta = caut_gestiune(4,gnidUtil)
If !Empty(Nvl(loCauta.id_gestiune,0))
pnid_gestiune = loCauta.id_gestiune
pcGestiune = loCauta.nume_gestiune
Thisform.but_teRMIN1.SetFocus()
Else
pnid_gestiune = Null
pcGestiune = []
Endif
ENDPROC
PROCEDURE do_cauta_produs
Store "" To loCauta
lcFiltru = []
lcSchema = []
lcOrder = [nume_articol]
lccoloane = [nume_articol,codmat,um,cont]
lcTitlu = [Alegeti produsul]
lcTitluColoane = [Denumire,Cod Material,UM,Cont]
llMultipleArticles = .F.
*lcSelect = [select a.denumire,a.codmat,a.um, a.grupa, a.subgrupa, a.id_grupa, a.id_subgrupa,a.dnf,a.cont, a.acont, a.inactiv, a.id_articol from ] + gcS + [.vnom_articole a ]
*!* lcSelect = [select id_articol,id_pol,pret,um,nume_articol,codmat, cont ] + ;
*!* [ from com_vpreturi_utilizator where id_util = ?gnIdUtil and id_pol in ] + ;
*!* [ (select varvalue as id_pol from optiuni where vartype = 'NUMERIC' AND varname = ?pcOptiune ) ]
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcOptiune = 'ID_LISTA_PRETURI_PV_PRODUCTIE'
*!* lcSelect = [select id_articol,id_pol,pret,um,nume_articol,codmat, cont ] + ;
*!* [ from com_vpreturi_utilizator ]
*!* lcFiltruOriginal = [ id_util = ?gnIdUtil and id_pol in ] + ;
*!* [ (select varvalue as id_pol from optiuni where vartype = 'NUMERIC' AND varname = ?pcOptiune ) ]
lcSelect = [select id_articol,id_pol,pret,um,nume_articol,codmat, cont, in_crm, in_stoc ] + ;
[ from com_vpreturi_utilizator ]
lcFiltruOriginal = [ in_stoc = 1 and id_util = ?gnIdUtil and id_pol = ?gnId_lista_preturi_pv ]
*!* modificare ROAPRODUCTIE v 2.0.2 ^
lcNumeProc = []
llToateIreg = .F.
lcPrimaColoana = []
lnPornire = 1
lnTipReturn = Iif(llMultipleArticles, 1, 0)
lcIdColumn = "id_articol"
llModParam = .T.
loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal, lcPrimaColoana, lnPornire, lnTipReturn , lcIdColumn,,,,,llModParam) && 11.07.2007
***------------------------------
pnId_articol = loCauta.id_articol
pcDenumire = loCauta.nume_articol
pcCont_articol = loCauta.cont
*!* modificare ROAPRODUCTIE v 2.0.2
pnInStoc = loCauta.in_stoc
pnInCrm = loCauta.in_crm
pcUm = loCauta.um
*!* modificare ROAPRODUCTIE v 2.0.2 ^
Thisform.txtCant.SetFocus()
ENDPROC
PROCEDURE inainte_de_do_termin
IF EMPTY(pnId_articol)
AMESSAGEBOX('Nu ati ales produsul!')
RETURN .F.
ENDIF
IF EMPTY(pnId_gestiune)
AMESSAGEBOX('Nu ati ales gestiunea!')
RETURN .F.
ENDIF
ENDPROC
PROCEDURE Command1.Click
Store "" To loCauta
lcFiltru = [1=2]
lcSchema = []
lcOrder = [nume_articol]
lccoloane = [nume_articol,codmat,um,cont]
lcTitlu = [Alegeti produsul (mouse-click pe denumire sau apasati SPACE)]
lcTitluColoane = [Denumire,Cod Material,UM,Cont]
llMultipleArticles = .T.
*lcSelect = [select a.denumire,a.codmat,a.um, a.grupa, a.subgrupa, a.id_grupa, a.id_subgrupa,a.dnf,a.cont, a.acont, a.inactiv, a.id_articol from ] + gcS + [.vnom_articole a ]
*!* modificare ROAPRODUCTIE v 2.0.2
*!* pcOptiune = 'ID_LISTA_PRETURI_PV_PRODUCTIE'
*!* lcSelect = [select id_articol,id_pol,pret,um,nume_articol,codmat, cont ] + ;
*!* [from com_vpreturi_utilizator where id_util = ?gnIdUtil and id_pol in ] + ;
*!* [(select varvalue as id_pol from optiuni where varname = ?pcOptiune and vartype = 'NUMERIC') ]
lcSelect = [select id_articol,id_pol,pret,um,nume_articol,codmat,cont ] + ;
[from com_vpreturi_utilizator where id_util = ?gnIdUtil and id_pol = ?gnID_LISTA_PRETURI_PV ]
*!* modificare ROAPRODUCTIE v 2.0.2 ^
lcFiltruOriginal = []
lcNumeProc = []
llToateIreg = .F.
lcPrimaColoana = [denumire]
lnPornire = 1
lnTipReturn = Iif(llMultipleArticles, 1, 0)
lcIdColumn = "id_articol"
loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal, lcPrimaColoana, lnPornire, lnTipReturn , lcIdColumn) && 11.07.2007
***------------------------------
pnId_articol = loCauta.id_articol
pcDenumire = nume_articol
pcCont_articol = cont
thisform.txt_produs.Value = pcDenumire
ENDPROC
ENDDEFINE
DEFINE CLASS frm_alege_sectie AS _frmbase OF "_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="Ct_clb_grup" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*
*m: do_cauta_sectie
*
*
BorderStyle = 1
DoCreate = .T.
Height = 89
Name = "frm_alege_sectie"
Width = 352
_shape1.Name = "_shape1"
_shape2.Height = 29
_shape2.Left = 291
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 62
Lb_titlu_alb_b121.Caption = "Sectia beneficiara"
Lb_titlu_alb_b121.Left = 11
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.Top = 6
BUT_TERMIN1.Left = 322
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Top = 1
Gridsort1.Left = 228
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 7
*
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 292, ;
Name = "But_renunt1", ;
TabIndex = 4, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_clb_grup' AS ct_clb_cautare_var WITH ;
cconditie = EMPTY(NVL(pnId_sectie,0)), ;
cprocedura = thisform.do_cauta_sectie, ;
cvar_afisata = pcSectie, ;
Height = 31, ;
Left = 11, ;
Name = "Ct_clb_grup", ;
TabIndex = 1, ;
Top = 40, ;
Width = 337, ;
shape_cautare.Height = 29, ;
shape_cautare.Left = 1, ;
shape_cautare.Name = "shape_cautare", ;
shape_cautare.Top = 1, ;
shape_cautare.Width = 305, ;
img_cautare.Left = 310, ;
img_cautare.Name = "img_cautare", ;
img_cautare.Top = 5, ;
lb_cautare.Caption = "Sectia beneficiara", ;
lb_cautare.Name = "lb_cautare", ;
tx_cautare.Left = 119, ;
tx_cautare.Name = "tx_cautare", ;
tx_cautare.Top = 4
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
PROCEDURE do_cauta_sectie
Local loCauta
loCauta = caut_sectie()
If !Empty(Nvl(loCauta.id_sectie,0))
pnid_sectie = loCauta.id_sectie
pcSectie = loCauta.sectie
Thisform.but_TERMIN1.SetFocus()
Else
pnid_sectie = Null
pcSectie = []
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
IF EMPTY(NVL(pnId_sectie,0))
AMESSAGEBOX('Nu ati ales sectia!',48,"Atentie")
THISFORM.CT_clb_grup.SetFocus()
RETURN .F.
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS frm_alege_sectie_comanda AS _frmbase OF "_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="Ct_clb_grup" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_clb_comanda" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*
*m: do_cauta_comanda
*m: do_cauta_sectie
*
*
BorderStyle = 1
DoCreate = .T.
Height = 119
Name = "frm_alege_sectie_comanda"
Width = 352
_shape1.Name = "_shape1"
_shape2.Height = 29
_shape2.Left = 291
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 62
Lb_titlu_alb_b121.Caption = "Sectia - comanda"
Lb_titlu_alb_b121.Left = 11
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.Top = 6
BUT_TERMIN1.Left = 322
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Top = 1
Gridsort1.Left = 228
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 7
*
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 292, ;
Name = "But_renunt1", ;
TabIndex = 4, ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_clb_comanda' AS ct_clb_cautare_var WITH ;
cconditie = EMPTY(NVL(pnId_comanda,0)), ;
cprocedura = thisform.do_cauta_comanda, ;
cvar_afisata = pcNr_comanda, ;
Height = 31, ;
Left = 11, ;
Name = "Ct_clb_comanda", ;
TabIndex = 2, ;
Top = 68, ;
Width = 337, ;
shape_cautare.Height = 29, ;
shape_cautare.Left = 1, ;
shape_cautare.Name = "shape_cautare", ;
shape_cautare.Top = 1, ;
shape_cautare.Width = 305, ;
img_cautare.Left = 310, ;
img_cautare.Name = "img_cautare", ;
img_cautare.Top = 5, ;
lb_cautare.Caption = "Comanda", ;
lb_cautare.Name = "lb_cautare", ;
tx_cautare.Left = 119, ;
tx_cautare.Name = "tx_cautare", ;
tx_cautare.Top = 4
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
ADD OBJECT 'Ct_clb_grup' AS ct_clb_cautare_var WITH ;
cconditie = EMPTY(NVL(pnId_sectie,0)), ;
cprocedura = thisform.do_cauta_sectie, ;
cvar_afisata = pcSectie, ;
Height = 31, ;
Left = 11, ;
Name = "Ct_clb_grup", ;
TabIndex = 1, ;
Top = 40, ;
Width = 337, ;
shape_cautare.Height = 29, ;
shape_cautare.Left = 1, ;
shape_cautare.Name = "shape_cautare", ;
shape_cautare.Top = 1, ;
shape_cautare.Width = 305, ;
img_cautare.Left = 310, ;
img_cautare.Name = "img_cautare", ;
img_cautare.Top = 5, ;
lb_cautare.Caption = "Sectia beneficiara", ;
lb_cautare.Name = "lb_cautare", ;
tx_cautare.Left = 119, ;
tx_cautare.Name = "tx_cautare", ;
tx_cautare.Top = 4
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
PROCEDURE do_cauta_comanda
Local lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal, lcPrimaColoana, lnPornire, lnTipReturn , lcIdColumn, llModParam
Store "" To loCauta
lcSchema = []
lcOrder = [nr_comanda]
lccoloane = [nr_comanda,data_comanda]
lcTitlu = [Alegeti comanda]
lcTitluColoane = [Nr comanda,Data comanda]
llMultipleArticles = .F.
*!* lcSelect = [select id_comanda,nr_comanda,data_comanda ] + ;
*!* [ from vcomenzi where id_sectie2= ] + ALLTRIM(STR(pnId_sectie))
lcSelect = [select id_comanda,nr_comanda,data_comanda from vcomenzi ]
lcFiltru = []
lcFiltruOriginal = [data_livrat is null and inchisa = 0 and id_sectie2= ] + Alltrim(Str(pnId_sectie))
lcNumeProc = []
llToateIreg = .F.
lcPrimaColoana = []
lnPornire = 1
lnTipReturn = Iif(llMultipleArticles, 1, 0)
lcIdColumn = "id_comanda"
llModParam = .F.
loCauta = cauta_alfa(lcSelect, lcFiltru, lcSchema, lcOrder, lccoloane, lcTitlu, lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal, lcPrimaColoana, lnPornire, lnTipReturn , lcIdColumn,,,,,llModParam) && 11.07.2007
***------------------------------
If !Empty(Nvl(loCauta.id_comanda,0))
pnId_comanda = loCauta.id_comanda
pcNr_comanda = loCauta.nr_comanda
Thisform.but_TERMIN1.SetFocus()
Else
pnId_comanda = 0
pcNr_comanda = []
Endif
ENDPROC
PROCEDURE do_cauta_sectie
Local loCauta
loCauta = caut_sectie()
If !Empty(Nvl(loCauta.id_sectie,0))
pnid_sectie = loCauta.id_sectie
pcSectie = loCauta.sectie
Thisform.ct_clb_comanda.SetFocus()
Else
pnid_sectie = Null
pcSectie = []
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
IF EMPTY(NVL(pnId_sectie,0))
AMESSAGEBOX('Nu ati ales sectia!',48,"Atentie")
THISFORM.CT_clb_grup.SetFocus()
RETURN .F.
ENDIF
IF EMPTY(NVL(pnId_comanda,0))
AMESSAGEBOX('Nu ati ales comanda!',48,"Atentie")
thisform.ct_clb_comanda.SetFocus()
RETURN .F.
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS frm_conversie AS _frmbase OF "_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="_pgfrmbase1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.Clb_volum" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.Clb_densitate" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.Clb_masa" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.cb_um_volum" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.cb_um_masa_d" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.cb_um_volum_d" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.cb_um_masa" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.LB_SIMPLU1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.Clb_pret" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page1.Clb_prettr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.Clb_pret" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.Clb_pret_tr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.Clb_cantitate" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.cb_um" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.cb_um_orig" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_pgfrmbase1.Page2.Clb_cantitate_tr" UniqueID="" Timestamp="" />
*
*m: do_actualizeaza_um
*m: do_calculeaza_pret
*m: do_conversie
*p: calias
*p: ccursor
*p: cum
*p: ncantitate
*p: npret
*p: ntip
*
*
BorderStyle = 1
calias =
ccursor =
cum =
DoCreate = .T.
Height = 270
Name = "frm_conversie"
ncantitate = 0
npret = 0
ntip = 0
Width = 480
_memberdata =
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 480
_shape2.Height = 29
_shape2.Left = 443
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 39
Lb_titlu_alb_b121.Caption = "Conversie"
Lb_titlu_alb_b121.FontName = "Comic Sans MS"
Lb_titlu_alb_b121.FontSize = 10
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 2
BUT_TERMIN1.Left = 448
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
*
ADD OBJECT '_pgfrmbase1' AS _pgfrmbase WITH ;
ErasePage = .T., ;
Height = 215, ;
Left = 14, ;
Name = "_pgfrmbase1", ;
PageCount = 2, ;
TabIndex = 1, ;
Top = 43, ;
Width = 454, ;
Page1.BackColor = 255,255,255, ;
Page1.Caption = "\ masa", ;
Page1.Name = "Page1", ;
Page1.PageOrder = 2, ;
Page2.BackColor = 255,255,255, ;
Page2.Caption = "\
ADD OBJECT '_pgfrmbase1.Page1.cb_um_masa' AS _cbbase WITH ;
Height = 24, ;
Left = 351, ;
Name = "cb_um_masa", ;
TabIndex = 6, ;
Top = 121, ;
Width = 60
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page1.cb_um_masa_d' AS _cbbase WITH ;
Height = 24, ;
Left = 325, ;
Name = "cb_um_masa_d", ;
TabIndex = 4, ;
Top = 54, ;
Width = 48
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page1.cb_um_volum' AS _cbbase WITH ;
Height = 24, ;
Left = 351, ;
Name = "cb_um_volum", ;
TabIndex = 2, ;
Top = 26, ;
Width = 60
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page1.cb_um_volum_d' AS _cbbase WITH ;
Height = 24, ;
Left = 390, ;
Name = "cb_um_volum_d", ;
TabIndex = 5, ;
Top = 54, ;
Width = 48
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page1.Clb_densitate' AS clb_tx_simplu WITH ;
Left = 18, ;
Name = "Clb_densitate", ;
TabIndex = 3, ;
Top = 52, ;
TEXT_SIMPLU1.Alignment = 3, ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.InputMask = "999 999.999", ;
TEXT_SIMPLU1.Left = 131, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.Top = 3, ;
TEXT_SIMPLU1.Value = 0, ;
TEXT_SIMPLU1.Width = 154, ;
LB_SIMPLU1.Caption = "Densitate", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page1.Clb_masa' AS clb_tx_simplu WITH ;
Enabled = .F., ;
Left = 18, ;
Name = "Clb_masa", ;
TabIndex = 8, ;
Top = 119, ;
TEXT_SIMPLU1.Alignment = 3, ;
TEXT_SIMPLU1.Enabled = .F., ;
TEXT_SIMPLU1.InputMask = "999 999 999.999", ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.Value = 0, ;
LB_SIMPLU1.Caption = "Masa", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page1.Clb_pret' AS clb_tx_simplu WITH ;
Left = 18, ;
Name = "Clb_pret", ;
TabIndex = 7, ;
Top = 80, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.ControlSource = "Thisform.npret", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(12,gnPpret)), ;
Text_simplu1.Left = 131, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Value = 0, ;
Text_simplu1.Width = 154, ;
Lb_simplu1.Caption = "Pret", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page1.Clb_prettr' AS clb_tx_simplu WITH ;
Enabled = .F., ;
Left = 18, ;
Name = "Clb_prettr", ;
TabIndex = 9, ;
Top = 147, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.Enabled = .F., ;
Text_simplu1.Format = "rK", ;
Text_simplu1.InputMask = (get_mask(12,gnPpret)), ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Value = 0, ;
Lb_simplu1.Caption = "Pret transformat", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page1.Clb_volum' AS clb_tx_simplu WITH ;
Left = 18, ;
Name = "Clb_volum", ;
TabIndex = 1, ;
Top = 24, ;
TEXT_SIMPLU1.Alignment = 3, ;
TEXT_SIMPLU1.InputMask = "999 999 999.999", ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.Value = 0, ;
LB_SIMPLU1.Caption = "Volum", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page1.LB_SIMPLU1' AS lb_simplu WITH ;
Caption = "/", ;
Left = 379, ;
Name = "LB_SIMPLU1", ;
TabIndex = 10, ;
Top = 57
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT '_pgfrmbase1.Page2.cb_um' AS _cbbase WITH ;
Height = 24, ;
Left = 331, ;
Name = "cb_um", ;
TabIndex = 4, ;
Top = 99, ;
Width = 84
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page2.cb_um_orig' AS _cbbase WITH ;
Height = 24, ;
Left = 331, ;
Name = "cb_um_orig", ;
TabIndex = 2, ;
Top = 26, ;
Width = 84
*< END OBJECT: ClassLib="_cb_base.vcx" BaseClass="combobox" />
ADD OBJECT '_pgfrmbase1.Page2.Clb_cantitate' AS clb_tx_simplu WITH ;
Left = 18, ;
Name = "Clb_cantitate", ;
TabIndex = 1, ;
Top = 24, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(14,gnPCant)), ;
Text_simplu1.Left = 123, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Value = 0, ;
Text_simplu1.Width = 162, ;
Lb_simplu1.Caption = "Cantitate impach.", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page2.Clb_cantitate_tr' AS clb_tx_simplu WITH ;
Enabled = .F., ;
Left = 18, ;
Name = "Clb_cantitate_tr", ;
TabIndex = 6, ;
Top = 97, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.Enabled = .F., ;
Text_simplu1.InputMask = "999 999 999.999", ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Value = 0, ;
Lb_simplu1.Caption = "Cantitate transf.", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page2.Clb_pret' AS clb_tx_simplu WITH ;
Left = 18, ;
Name = "Clb_pret", ;
TabIndex = 3, ;
Top = 52, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.ControlSource = "Thisform.npret", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(12,gnPpret)), ;
Text_simplu1.Left = 123, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Top = 3, ;
Text_simplu1.Value = 0, ;
Text_simplu1.Width = 162, ;
Lb_simplu1.Caption = "Pret", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT '_pgfrmbase1.Page2.Clb_pret_tr' AS clb_tx_simplu WITH ;
Enabled = .F., ;
Left = 18, ;
Name = "Clb_pret_tr", ;
TabIndex = 5, ;
Top = 125, ;
Text_simplu1.Alignment = 3, ;
Text_simplu1.Enabled = .F., ;
Text_simplu1.Format = "rK", ;
Text_simplu1.InputMask = (get_mask(12,gnPpret)), ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.Value = 0, ;
Lb_simplu1.Caption = "Pret transformat", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
PROCEDURE Destroy
If Used(This.cCursor)
Use In (This.cCursor)
Endif
Select (This.cAlias)
ENDPROC
PROCEDURE do_actualizeaza_um
Lparameters tcIdUm
Local lnIdUm
lnIdUm = Val(tcIdUm)
Select (This.cCursor)
Set Filter To
Locate For id_um = lnIdUm
If Found()
lnTip = tip
Else
lnTip = 0
Endif
If This.nTip <> lnTip
With Thisform._pgfrmbase1.page2.cb_um
.Clear()
.Refresh()
This.nTip = lnTip
Select (This.cCursor)
Set Filter To tip = lnTip
Scan
.AddItem(um)
.List[.NewIndex,2] = Alltrim(Str(id_um))
Endscan
.ListIndex = 1
Endwith
Endif
ENDPROC
PROCEDURE do_calculeaza_pret
lnPaginaActiva = Thisform._pgfrmbase1.ActivePage
With Thisform._pgfrmbase1
Do Case
Case lnPaginaActiva = 1
With .page2
lnCantitateTr = .clb_cantitate_tr.text_simplu1.Value
lnPret = .clb_pret.text_simplu1.Value
If lnCantitateTr <> 0
lnPretTr = Round(lnPret / lnCantitateTr,gnPPret)
Else
lnPretTr = 0
Endif
.clb_pret_tr.text_simplu1.Value = lnPretTr
.clb_pret_tr.text_simplu1.Refresh()
Endwith
*!* Case lnPaginaActiva = 2
*!* With .page3
*!* lnCantitateTr = .clb_cantitate.text_simplu1.Value
*!* lnPret = .clb_pret.text_simplu1.Value
*!* If lnCantitateTr <> 0
*!* lnPretTr = Round(lnPret / lnCantitateTr,gnPPret)
*!* Else
*!* lnPretTr = 0
*!* Endif
*!* .clb_pret_tr.text_simplu1.Value = lnPretTr
*!* .clb_pret_tr.text_simplu1.Refresh()
*!* Endwith
Case lnPaginaActiva = 2
With .page1
lnVolum=.clb_volum.text_simplu1.Value
lnDensitate=.clb_densitate.text_simplu1.Value
lnUmVolum=Val(.cb_um_volum.List[.cb_um_volum.listindex,2])
lnUmVolumD=Val(.cb_um_volum_d.List[.cb_um_volum_d.listindex,2])
lnUmMasaD=Val(.cb_um_masa_d.List[.cb_um_masa_d.listindex,2])
lnUmMasa=Val(.cb_um_masa.List[.cb_um_masa.listindex,2])
lnMasa=Round(lnVolum*lnUmVolum*lnDensitate*lnUmMasaD/(lnUmVolumD*lnUmMasa),3)
.clb_masa.text_simplu1.Value=lnMasa
.clb_masa.text_simplu1.Refresh()
lnPret = .clb_pret.text_simplu1.Value
lnValoare = lnPret * lnVolum
lnPretTr = 0
If lnMasa <> 0
lnPretTr = Round(lnValoare/lnMasa,gnPPret)
Endif
.clb_prettr.text_simplu1.Value=lnPretTr
.clb_prettr.text_simplu1.Refresh()
Endwith
Endcase
Endwith
ENDPROC
PROCEDURE do_conversie
lnPaginaActiva = Thisform._pgfrmbase1.ActivePage
llDespachetare = .F.
With Thisform._pgfrmbase1
Do Case
Case lnPaginaActiva = 1
With .page2
lnIdUM = Val(.cb_um_orig.List[.cb_um_orig.listindex,2])
lnIdUM2 = Val(.cb_um.List[.cb_um.listindex,2])
lnCantitate = .Clb_cantitate.text_simplu1.Value
Select (This.cCursor)
Set Filter To
Locate For id_um = lnIdUM
If Found()
If tip <> -1
llDespachetare = .T.
Else
lnCantitate = (Nvl(multiplicator,1) ^ Nvl(putere,1)) * lnCantitate
Endif
Else
lnCantitate = 0
Endif
If !llDespachetare
Locate For id_um = lnIdUM2
If Found()
lnCantitate = lnCantitate / (Nvl(multiplicator,1) ^ Nvl(putere,1))
Else
lnCantitate = 0
Endif
Endif
.Clb_cantitate_tr.text_simplu1.Value = lnCantitate
.Clb_cantitate_tr.text_simplu1.Refresh()
Endwith
Thisform.do_calculeaza_pret()
Case lnPaginaActiva = 2
With .page1
lnVolum=.clb_volum.text_simplu1.Value
lnDensitate=.clb_densitate.text_simplu1.Value
lnUmVolum=Val(.cb_um_volum.List[.cb_um_volum.listindex,2])
lnUmVolumD=Val(.cb_um_volum_d.List[.cb_um_volum_d.listindex,2])
lnUmMasaD=Val(.cb_um_masa_d.List[.cb_um_masa_d.listindex,2])
lnUmMasa=Val(.cb_um_masa.List[.cb_um_masa.listindex,2])
lnMasa=Round(lnVolum*lnUmVolum*lnDensitate*lnUmMasaD/(lnUmVolumD*lnUmMasa),3)
.clb_masa.text_simplu1.Value=lnMasa
.clb_masa.text_simplu1.Refresh()
Endwith
Endcase
Endwith
ENDPROC
PROCEDURE inainte_de_do_termin
lnPaginaActiva = Thisform._pgfrmbase1.ActivePage
With Thisform._pgfrmbase1
Do Case
Case lnPaginaActiva = 1
pnTransformat = .page2.clb_cantitate_tr.text_simplu1.Value * Thisform.ncantitate
pnPretTr = .page2.clb_pret_tr.text_simplu1.Value
*!* Case lnPaginaActiva = 2
*!* pnTransformat = .page3.clb_cantitate.text_simplu1.Value * Thisform.ncantitate
*!* pnPretTr = .page3.clb_pret_tr.text_simplu1.Value
Case lnPaginaActiva = 2
pnTransformat = .page1.clb_masa.text_simplu1.Value
pnPretTr = .page1.clb_prettr.text_simplu1.Value
Endcase
Endwith
ENDPROC
PROCEDURE Init
Lparameters tnPret,tcUm,tnCantitate && ,tnCantImpach
DoDefault()
Thisform.cum = UPPER(Alltrim(Nvl(tcUm,[])))
Thisform.npret = tnPret
Thisform.ncantitate = tnCantitate
&& Thisform._pgfrmbase1.page3.clb_cantitate.text_simplu1.Value = tnCantImpach
This.cAlias = Alias()
This.cCursor = Sys(2015)
Create Cursor (This.cCursor) (id_um N(1),tip N(1),um c(100),multiplicator N(10,4) Null,putere N(2) Null,id_um_fund N(1) Null)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (1,-1,'BUC',Null,Null,Null)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (2,1,'KG',Null,Null,Null)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (3,1,'G',10,-3,2)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (4,1,'T',10,3,2)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (5,2,'L',Null,Null,Null)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (6,2,'ML',10,-3,5)
Insert Into (This.cCursor) (id_um,tip,um,multiplicator,putere,id_um_fund) ;
VALUES (7,2,'CL',10,-2,5)
Select (This.cCursor)
Locate For um = This.cum
If Found()
lnTip = tip
This.nTip = lnTip
With Thisform._pgfrmbase1.page2.Cb_um
.AddItem(This.cum)
.List[.NewIndex,2] = Alltrim(Str(id_um))
.ListIndex = 1
Endwith
Select (This.cCursor)
Set Filter To tip = lnTip
Else
This.nTip = 0
Endif
Select (This.cCursor)
With Thisform._pgfrmbase1.page2.cb_um_orig
Scan
.AddItem(um)
.List[.NewIndex,2] = Alltrim(Str(id_um))
Endscan
.ListIndex = 1
Endwith
Thisform._pgfrmbase1.page2.Clb_cantitate.SetFocus()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_masa.Init
This.AddItem([g])
This.List[1,2]=[0.001]
This.AddItem([kg])
This.List[2,2]=[1]
This.ListIndex=1
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_masa.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_masa_d.Init
This.AddItem([g])
This.List[1,2]=[0.001]
This.AddItem([kg])
This.List[2,2]=[1]
This.ListIndex=2
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_masa_d.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_volum.Init
This.AddItem([l])
This.List[1,2]=[0.001]
This.AddItem([cl])
This.List[2,2]=[0.00001]
This.AddItem([ml])
This.List[3,2]=[0.000001]
This.AddItem([m^3])
This.List[4,2]=[1]
This.ListIndex=1
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_volum.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_volum_d.Init
This.AddItem([l])
This.List[1,2]=[0.001]
This.AddItem([cl])
This.List[2,2]=[0.00001]
This.AddItem([ml])
This.List[3,2]=[0.000001]
This.AddItem([m^3])
This.List[4,2]=[1]
This.ListIndex=4
ENDPROC
PROCEDURE _pgfrmbase1.Page1.cb_um_volum_d.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.Clb_densitate.TEXT_SIMPLU1.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.Clb_pret.Text_simplu1.InteractiveChange
Thisform.do_calculeaza_pret()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.Clb_pret.Text_simplu1.Valid
Thisform.do_calculeaza_pret()
ENDPROC
PROCEDURE _pgfrmbase1.Page1.Clb_volum.TEXT_SIMPLU1.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page2.cb_um.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page2.cb_um_orig.InteractiveChange
Thisform.do_actualizeaza_um(This.List[This.ListIndex,2])
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page2.Clb_cantitate.Text_simplu1.InteractiveChange
Thisform.do_conversie()
ENDPROC
PROCEDURE _pgfrmbase1.Page2.Clb_pret.Text_simplu1.InteractiveChange
Thisform.do_calculeaza_pret()
ENDPROC
PROCEDURE _pgfrmbase1.Page2.Clb_pret.Text_simplu1.Valid
Thisform.do_calculeaza_pret()
ENDPROC
ENDDEFINE
DEFINE CLASS frm_introd8039 AS frm_introdnir OF "ointroduceri.vcx"
*< CLASSDATA: Baseclass="form" Timestamp="" Scale="Pixels" Uniqueid="" />
*-- OBJECTDATA items order determines ZOrder / El orden de los items OBJECTDATA determina el ZOrder
*< OBJECTDATA: ObjPath="Shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Shape1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item12" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item13" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="ItemGradUzura" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item14" UniqueID="" Timestamp="" />
*
*p: nprocentuzura
*
*
BorderStyle = 1
DoCreate = .T.
Height = 354
Name = "frm_introd8039"
nprocentuzura = 0
Width = 670
Item2.Label_item1.Name = "Label_item1"
Item2.Left = 17
Item2.Lineo1.Name = "Lineo1"
Item2.Lineo2.Name = "Lineo2"
Item2.Lineo3.Name = "Lineo3"
Item2.Lineo4.Name = "Lineo4"
Item2.Lineo5.Name = "Lineo5"
Item2.Name = "Item2"
Item2.TabIndex = 2
Item2.Text_item1.Name = "Text_item1"
Item2.Top = 87
Item2.ZOrderSet = 3
Item14.Label_item1.Name = "Label_item1"
Item14.Lineo1.Name = "Lineo1"
Item14.Lineo2.Name = "Lineo2"
Item14.Lineo3.Name = "Lineo3"
Item14.Lineo4.Name = "Lineo4"
Item14.Lineo5.Name = "Lineo5"
Item14.Name = "Item14"
Item14.Text_item1.Name = "Text_item1"
Item14.Text_item2.Name = "Text_item2"
Item13.Label_item1.Name = "Label_item1"
Item13.Left = 17
Item13.Lineo1.Name = "Lineo1"
Item13.Lineo2.Name = "Lineo2"
Item13.Lineo3.Name = "Lineo3"
Item13.Lineo4.Name = "Lineo4"
Item13.Lineo5.Name = "Lineo5"
Item13.Name = "Item13"
Item13.Text_item1.Name = "Text_item1"
Item13.Top = 40
Item1.Label_item1.Name = "Label_item1"
Item1.Left = 17
Item1.Lineo1.Name = "Lineo1"
Item1.Lineo2.Name = "Lineo2"
Item1.Lineo3.Name = "Lineo3"
Item1.Lineo4.Name = "Lineo4"
Item1.Lineo5.Name = "Lineo5"
Item1.Name = "Item1"
Item1.TabIndex = 1
Item1.Text_item1.Name = "Text_item1"
Item1.Top = 64
Item1.ZOrderSet = 6
Item15.Label_item1.Name = "Label_item1"
Item15.Lineo1.Name = "Lineo1"
Item15.Lineo2.Name = "Lineo2"
Item15.Lineo3.Name = "Lineo3"
Item15.Lineo4.Name = "Lineo4"
Item15.Lineo5.Name = "Lineo5"
Item15.Name = "Item15"
Item15.Text_item1.Name = "Text_item1"
Item16.Label_item1.Name = "Label_item1"
Item16.Lineo1.Name = "Lineo1"
Item16.Lineo2.Name = "Lineo2"
Item16.Lineo3.Name = "Lineo3"
Item16.Lineo4.Name = "Lineo4"
Item16.Lineo5.Name = "Lineo5"
Item16.Name = "Item16"
Item16.Text_item1.Name = "Text_item1"
But_renunt1.Left = 570
But_renunt1.Name = "But_renunt1"
But_renunt1.TabIndex = 13
But_renunt1.Top = 1
But_renunt1.ZOrderSet = 11
Item3.Label_item1.Name = "Label_item1"
Item3.Left = 17
Item3.Lineo1.Name = "Lineo1"
Item3.Lineo2.Name = "Lineo2"
Item3.Lineo3.Name = "Lineo3"
Item3.Lineo4.Name = "Lineo4"
Item3.Lineo5.Name = "Lineo5"
Item3.Name = "Item3"
Item3.TabIndex = 3
Item3.Text_item1.Name = "Text_item1"
Item3.Top = 111
Item3.ZOrderSet = 12
Item4.Label_item1.Name = "Label_item1"
Item4.Left = 17
Item4.Lineo1.Name = "Lineo1"
Item4.Lineo2.Name = "Lineo2"
Item4.Lineo3.Name = "Lineo3"
Item4.Lineo4.Name = "Lineo4"
Item4.Lineo5.Name = "Lineo5"
Item4.Name = "Item4"
Item4.TabIndex = 4
Item4.Text_item1.Name = "Text_item1"
Item4.Top = 135
Item4.ZOrderSet = 13
Item5.Label_item1.Name = "Label_item1"
Item5.Left = 17
Item5.Lineo1.Name = "Lineo1"
Item5.Lineo2.Name = "Lineo2"
Item5.Lineo3.Name = "Lineo3"
Item5.Lineo4.Name = "Lineo4"
Item5.Lineo5.Name = "Lineo5"
Item5.Name = "Item5"
Item5.TabIndex = 5
Item5.Text_item1.Name = "Text_item1"
Item5.Top = 159
Item5.ZOrderSet = 14
Item6.Label_item1.Name = "Label_item1"
Item6.Left = 16
Item6.Lineo1.Name = "Lineo1"
Item6.Lineo2.Name = "Lineo2"
Item6.Lineo3.Name = "Lineo3"
Item6.Lineo4.Name = "Lineo4"
Item6.Lineo5.Name = "Lineo5"
Item6.Name = "Item6"
Item6.TabIndex = 14
Item6.Text_item1.Name = "Text_item1"
Item6.Top = 357
Item6.ZOrderSet = 15
Item7.Comment = ""
Item7.Label_item1.Name = "Label_item1"
Item7.Left = 14
Item7.Lineo1.Name = "Lineo1"
Item7.Lineo2.Name = "Lineo2"
Item7.Lineo3.Name = "Lineo3"
Item7.Lineo4.Name = "Lineo4"
Item7.Lineo5.Name = "Lineo5"
Item7.Name = "Item7"
Item7.TabIndex = 16
Item7.Text_item1.Name = "Text_item1"
Item7.Top = 377
Item7.Visible = .F.
Item7.ZOrderSet = 16
Item8.Comment = ""
Item8.Label_item1.Name = "Label_item1"
Item8.Left = 14
Item8.Lineo1.Name = "Lineo1"
Item8.Lineo2.Name = "Lineo2"
Item8.Lineo3.Name = "Lineo3"
Item8.Lineo4.Name = "Lineo4"
Item8.Lineo5.Name = "Lineo5"
Item8.Name = "Item8"
Item8.TabIndex = 17
Item8.Text_item1.Name = "Text_item1"
Item8.Top = 400
Item8.Visible = .F.
Item8.ZOrderSet = 17
Item9.Comment = ""
Item9.Label_item1.Name = "Label_item1"
Item9.Left = 14
Item9.Lineo1.Name = "Lineo1"
Item9.Lineo2.Name = "Lineo2"
Item9.Lineo3.Name = "Lineo3"
Item9.Lineo4.Name = "Lineo4"
Item9.Lineo5.Name = "Lineo5"
Item9.Name = "Item9"
Item9.TabIndex = 18
Item9.Text_item1.Name = "Text_item1"
Item9.Top = 423
Item9.Visible = .F.
Item9.ZOrderSet = 18
Item17.Label_item1.Name = "Label_item1"
Item17.Left = 17
Item17.Lineo1.Name = "Lineo1"
Item17.Lineo2.Name = "Lineo2"
Item17.Lineo3.Name = "Lineo3"
Item17.Lineo4.Name = "Lineo4"
Item17.Lineo5.Name = "Lineo5"
Item17.Name = "Item17"
Item17.Text_item1.Name = "Text_item1"
Item17.Top = 324
Item12.Label_item1.Name = "Label_item1"
Item12.Left = 5
Item12.Lineo1.Name = "Lineo1"
Item12.Lineo2.Name = "Lineo2"
Item12.Lineo3.Name = "Lineo3"
Item12.Lineo4.Name = "Lineo4"
Item12.Lineo5.Name = "Lineo5"
Item12.Name = "Item12"
Item12.Text_item1.Name = "Text_item1"
Item12.Top = 230
Item10.camp_lista = nume
Item10.Comment = "B"
Item10.fis_lista = Vnom_responsabili
Item10.id_fisier = id_responsabil
Item10.label_item = Nume responsabil
Item10.Label_item1.Caption = "Responsabil"
Item10.Label_item1.Name = "Label_item1"
Item10.Left = 17
Item10.Lineo1.Name = "Lineo1"
Item10.Lineo2.Name = "Lineo2"
Item10.Lineo3.Name = "Lineo3"
Item10.Lineo4.Name = "Lineo4"
Item10.Lineo5.Name = "Lineo5"
Item10.Name = "Item10"
Item10.TabIndex = 11
Item10.TabStop = .T.
Item10.Text_item1.Comment = "thisform.cobj.nresp"
Item10.Text_item1.Name = "Text_item1"
Item10.Text_item1.ReadOnly = .T.
Item10.Top = 299
Item10.ZOrderSet = 20
Item11.Label_item1.Name = "Label_item1"
Item11.Left = 17
Item11.Lineo1.Name = "Lineo1"
Item11.Lineo2.Name = "Lineo2"
Item11.Lineo3.Name = "Lineo3"
Item11.Lineo4.Name = "Lineo4"
Item11.Lineo5.Name = "Lineo5"
Item11.Name = "Item11"
Item11.TabIndex = 10
Item11.TabStop = .F.
Item11.Text_item1.Name = "Text_item1"
Item11.Text_item1.ReadOnly = .T.
Item11.Top = 324
Item11.ZOrderSet = 19
lb_modparam.Left = 486
lb_modparam.Name = "lb_modparam"
lb_modparam.Top = 139
_shape1.Name = "_shape1"
_shape1.ZOrderSet = 7
_shape2.Name = "_shape2"
_shape2.ZOrderSet = 8
Gridsort1.Left = 1
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 42
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 19
Lb_titlu_alb_b121.ZOrderSet = 10
BUT_TERMIN1.Left = 639
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 12
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 25
Clb_ITEM_adaos.Comment = ""
Clb_ITEM_adaos.Lb_simplu1.Name = "Lb_simplu1"
Clb_ITEM_adaos.Left = 472
Clb_ITEM_adaos.Name = "Clb_ITEM_adaos"
Clb_ITEM_adaos.TabIndex = 15
Clb_ITEM_adaos.Text_simplu1.Name = "Text_simplu1"
Clb_ITEM_adaos.Top = 379
Clb_ITEM_adaos.Visible = .F.
Clb_ITEM_adaos.ZOrderSet = 26
But_modiparam1.Left = 492
But_modiparam1.Name = "But_modiparam1"
But_modiparam1.Top = 156
Image1.Height = 16
Image1.Left = 461
Image1.Name = "Image1"
Image1.Top = 232
Image1.Width = 16
Opt_imputare.Left = 483
Opt_imputare.Name = "Opt_imputare"
Opt_imputare.Option1.Left = 5
Opt_imputare.Option1.Name = "Option1"
Opt_imputare.Option1.Top = 5
Opt_imputare.Option2.Left = 5
Opt_imputare.Option2.Name = "Option2"
Opt_imputare.Option2.Top = 20
Opt_imputare.Top = 265
lb_imputare.Left = 489
lb_imputare.Name = "lb_imputare"
lb_imputare.Top = 255
cbo_tva_achizitie.Left = 480
cbo_tva_achizitie.Name = "cbo_tva_achizitie"
cbo_tva_achizitie.Top = 112
lb_tva_achizitie.Name = "lb_tva_achizitie"
cbo_tva_vanzare.Left = 475
cbo_tva_vanzare.Name = "cbo_tva_vanzare"
cbo_tva_vanzare.Top = 371
lb_tva_vanzare.Left = 480
lb_tva_vanzare.Name = "lb_tva_vanzare"
lb_tva_vanzare.Top = 354
But_renunt2.Name = "But_renunt2"
cmdTVA1.Name = "cmdTVA1"
cmdTVA2.Name = "cmdTVA2"
cmdTVA3.Name = "cmdTVA3"
cmdTVA4.Name = "cmdTVA4"
cmdTVA5.Name = "cmdTVA5"
cbo_saft.Name = "cbo_saft"
lb_saft.Name = "lb_saft"
*
ADD OBJECT 'Item12' AS item WITH ;
Comment = "T", ;
Left = 17, ;
Name = "Item12", ;
TabIndex = 9, ;
tip = F, ;
Top = 265, ;
ZOrderSet = 4, ;
Label_item1.Caption = "Durata de folosinta ramasa(luni)", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.DNS_LUNI", ;
Text_item1.InputMask = (get_mask(4,0)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item13' AS item WITH ;
Comment = "T", ;
Left = 17, ;
Name = "Item13", ;
TabIndex = 6, ;
tip = F, ;
Top = 198, ;
ZOrderSet = 5, ;
Label_item1.Caption = "Data trecerii in folosinta", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Alignment = 3, ;
Text_item1.Comment = "thisform.cobj.DATAPIF", ;
Text_item1.Format = "k", ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item14' AS item WITH ;
Comment = "T", ;
Left = 17, ;
Name = "Item14", ;
TabIndex = 8, ;
tip = F, ;
Top = 243, ;
ZOrderSet = 27, ;
Label_item1.Caption = "Durata normata de folosinta", ;
Label_item1.Name = "Label_item1", ;
Label_item1.TabIndex = 2, ;
Text_item1.Comment = "thisform.cobj.DNF", ;
Text_item1.InputMask = (get_mask(3,0)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Text_item1.TabIndex = 1, ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'ItemGradUzura' AS item WITH ;
Comment = "T", ;
Left = 17, ;
Name = "ItemGradUzura", ;
TabIndex = 7, ;
tip = F, ;
Top = 220, ;
ZOrderSet = 27, ;
LABEL_ITEM1.Caption = "Grad uzura (%)", ;
LABEL_ITEM1.Name = "LABEL_ITEM1", ;
LABEL_ITEM1.TabIndex = 2, ;
TEXT_ITEM1.Comment = "thisform.nProcentUzura", ;
TEXT_ITEM1.ControlSource = "thisform.nProcentUzura", ;
TEXT_ITEM1.InputMask = (get_mask(3,0)), ;
TEXT_ITEM1.Name = "TEXT_ITEM1", ;
TEXT_ITEM1.TabIndex = 1, ;
LINEO1.Name = "LINEO1", ;
LINEO3.Name = "LINEO3", ;
LINEO4.Name = "LINEO4", ;
LINEO5.Name = "LINEO5", ;
LINEO2.Name = "LINEO2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Shape1' AS shape WITH ;
BackColor = 255,255,255, ;
BorderColor = 128,128,128, ;
Height = 154, ;
Left = 13, ;
Name = "Shape1", ;
Top = 38, ;
Width = 464, ;
ZOrderSet = 2
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape2' AS shape WITH ;
BackColor = 255,255,255, ;
BorderColor = 128,128,128, ;
Height = 101, ;
Left = 13, ;
Name = "Shape2", ;
Top = 190, ;
Width = 464, ;
ZOrderSet = 1
*< END OBJECT: BaseClass="shape" />
ADD OBJECT 'Shape3' AS shape WITH ;
BackColor = 255,255,255, ;
BorderColor = 128,128,128, ;
Height = 60, ;
Left = 13, ;
Name = "Shape3", ;
Top = 290, ;
Width = 464, ;
ZOrderSet = 0
*< END OBJECT: BaseClass="shape" />
PROCEDURE Show
Lparameters nStyle
thisform.cobj.DATAPIF = thisform.cobj.DATAACT
lnDNF = thisform.cobj.DNF
IF thisform.cobj.DNS_LUNI = 0
thisform.cobj.DNS_LUNI = thisform.cobj.DNF
ENDIF
lnDNSRamas = thisform.cobj.DNS_LUNI
IF lnDNF = 0
THISFORM.nProcentuzura = 0
ELSE
THISFORM.nProcentuzura = ROUND((lnDNF - lnDNSRamas)/lnDNF*100,0)
ENDIF
this.itemgradUzura.text_item1.ControlSource = "thisform.nProcentUzura"
DODEFAULT(nStyle)
ENDPROC
PROCEDURE Item12.Text_item1.Valid
DODEFAULT()
lnDNF = thisform.cobj.DNF
lnDNSRamas = thisform.cobj.DNS_LUNI
IF lnDNF = 0
THISFORM.nProcentuzura = 0
ELSE
THISFORM.nProcentuzura = ROUND((lnDNF - lnDNSRamas)/lnDNF*100,0)
ENDIF
thisform.Refresh
ENDPROC
PROCEDURE Item14.Init
IF INLIST(oset.id_set, 55, 273) && dare in folosinta
this.tEXT_ITEM1.ReadOnly = .f.
ENDIF
ENDPROC
PROCEDURE ItemGradUzura.TEXT_ITEM1.Valid
DODEFAULT()
thisform.cobj.DNS_LUNI = ROUND(thisform.cobj.DNF*(100 - thisform.nprocentuzura)/100,0)
thisform.Refresh()
ENDPROC
ENDDEFINE
DEFINE CLASS frm_introdnir AS _frmbase OF "_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="Item2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item14" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item14.Text_item2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item13" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item15" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item16" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item6" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item7" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item8" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item9" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item17" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item12" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item10" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item11" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_modparam" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_ITEM_adaos" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modiparam1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Image1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Opt_imputare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_imputare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_tva_achizitie" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_tva_achizitie" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_tva_vanzare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_tva_vanzare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdTVA1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdTVA2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdTVA3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdTVA4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdTVA5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_saft" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_saft" UniqueID="" Timestamp="" />
#INCLUDE "..\include\foxpro.h"
*
*m: actualizeaza_explicatie_saft
*m: aplicatva
*m: calculeaza_tva_ach
*m: calculeaza_valori_ach
*m: do_alege_reteta
*m: do_alege_tvaach
*m: do_alege_tvavanz
*m: do_modiparam
*m: updateexplicatiesaft
*m: updatelabelsaft
*m: updatepaymentsaft
*p: blochezpretv
*p: cobj
*p: cparentobj
*p: cpaymentcode && Cod Taxa SAFT
*p: ctitlu
*p: lmonedanationala && .T. - daca id_valuta este moneda nationala
*p: ncant_iesita
*p: ncant_stoc
*p: ncurs
*p: npretvoriginal
*p: npretv_nat
*p: npretv_val
*p: npret_nat
*p: npret_val
*p: ntaxcodeachizitie && Cod taxa SAFT achizitie
*p: ntaxcodevanzare && Cod taxa SAFT vanzare
*p: omemopref && Obiect in care se memoreaza datele care sa fie folosite ca implicite cand se apeleaza formularul.
*p: pretu_factura
*p: pretvtva
*p: proc_adaos
*p: proc_discount
*p: proc_tvav
*p: valoare
*p: valoaretva
*
*
BorderStyle = 1
bvizualizare =
cobj =
cpaymentcode =
ctitlu =
DoCreate = .T.
FontCharSet = 238
Height = 466
lmonedanationala = .T.
Name = "frm_introdnir"
ncant_iesita = .F.
ncant_stoc = .F.
ncurs = 0
npretvoriginal = 0
npretv_nat = 0
npretv_val = 0
npret_nat = 0
npret_val = 0
ntaxcodeachizitie = NULL
ntaxcodevanzare = NULL
omemopref = .NULL.
pretu_factura = 0
pretvtva = 0
proc_adaos = 0
proc_discount = 0
proc_tvav = 0
valoare = 0
valoaretva = 0
Width = 670
WindowType = 1
_memberdata =
_shape1.Height = 30
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = -1
_shape1.Width = 676
_shape1.ZOrderSet = 2
_shape2.Height = 29
_shape2.Left = 601
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 70
_shape2.ZOrderSet = 3
Lb_titlu_alb_b121.FontName = "Comic Sans MS"
Lb_titlu_alb_b121.FontSize = 10
Lb_titlu_alb_b121.Left = 8
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 21
Lb_titlu_alb_b121.Top = 4
Lb_titlu_alb_b121.ZOrderSet = 4
BUT_TERMIN1.Left = 640
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 17
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 5
Gridsort1.Name = "Gridsort1"
*
ADD OBJECT 'But_modiparam1' AS but_modiparam WITH ;
Left = 532, ;
Name = "But_modiparam1", ;
TabIndex = 22, ;
TabStop = .F., ;
ToolTipText = "Conversie", ;
Top = 233
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 571, ;
Name = "But_renunt1", ;
TabIndex = 18, ;
Top = 1, ;
ZOrderSet = 6
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_renunt2' AS but_renunt WITH ;
Left = 608, ;
Name = "But_renunt2", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cbo_saft' AS combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
ColumnLines = .F., ;
FontName = "Arial", ;
FontSize = 10, ;
Height = 20, ;
InputMask = "", ;
Left = 475, ;
Name = "cbo_saft", ;
RowSourceType = 3, ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 27, ;
TabStop = .F., ;
Top = 207, ;
Visible = .F., ;
Width = 190
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'cbo_tva_achizitie' AS _combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
Comment = "F", ;
ControlSource = "", ;
FontSize = 10, ;
Height = 24, ;
InputMask = "", ;
Left = 475, ;
Name = "cbo_tva_achizitie", ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 28, ;
TabStop = .F., ;
Top = 164, ;
Visible = .T., ;
Width = 190
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'cbo_tva_vanzare' AS _combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
Comment = "A", ;
ControlSource = "", ;
Left = 475, ;
Name = "cbo_tva_vanzare", ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 27, ;
TabStop = .F., ;
Top = 378, ;
Visible = .T., ;
Width = 190
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'Clb_ITEM_adaos' AS clb_tx_simplu WITH ;
BorderColor = 255,255,255, ;
Comment = "A", ;
Height = 23, ;
Left = 472, ;
Name = "Clb_ITEM_adaos", ;
TabIndex = 13, ;
Top = 333, ;
Width = 77, ;
TEXT_SIMPLU1.Alignment = 1, ;
TEXT_SIMPLU1.BackColor = 224,224,224, ;
TEXT_SIMPLU1.BorderStyle = 0, ;
TEXT_SIMPLU1.Comment = "thisform.cobj.procent", ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.InputMask = (get_mask(12,2)), ;
TEXT_SIMPLU1.Left = 2, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.SpecialEffect = 1, ;
TEXT_SIMPLU1.Top = 2, ;
TEXT_SIMPLU1.Width = 53, ;
LB_SIMPLU1.Caption = "%", ;
LB_SIMPLU1.Left = 61, ;
LB_SIMPLU1.Name = "LB_SIMPLU1", ;
LB_SIMPLU1.Top = 5
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'cmdTVA1' AS cmd_executa WITH ;
Caption = "19%", ;
Left = 471, ;
Name = "cmdTVA1", ;
Top = 115, ;
Visible = .F., ;
Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdTVA2' AS cmd_executa WITH ;
Caption = "9%", ;
Left = 501, ;
Name = "cmdTVA2", ;
Top = 115, ;
Visible = .F., ;
Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdTVA3' AS cmd_executa WITH ;
Caption = "5%", ;
Left = 531, ;
Name = "cmdTVA3", ;
Top = 115, ;
Visible = .F., ;
Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdTVA4' AS cmd_executa WITH ;
Caption = "5%", ;
Left = 561, ;
Name = "cmdTVA4", ;
Top = 115, ;
Visible = .F., ;
Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdTVA5' AS cmd_executa WITH ;
Caption = "5%", ;
Left = 591, ;
Name = "cmdTVA5", ;
Top = 115, ;
Visible = .F., ;
Width = 30
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Image1' AS image WITH ;
Height = 16, ;
Left = 472, ;
Name = "Image1", ;
Picture = ..\grafice\alege.bmp, ;
ToolTipText = "Alege fisa tehnologica alternativa (R)", ;
Top = 263, ;
Width = 16
*< END OBJECT: BaseClass="image" />
ADD OBJECT 'Item1' AS item WITH ;
Comment = "F", ;
Left = 14, ;
Name = "Item1", ;
TabIndex = 4, ;
tip = F, ;
Top = 117, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Pret unitar pe factura", ;
Label_item1.FontCharSet = 238, ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.pretu_factura", ;
Text_item1.InputMask = (get_mask(12,gnPpret)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item10' AS item WITH ;
camp_lista = nume_gestiune,cgest, ;
Comment = "N", ;
fis_lista = Vnom_gestiuni , ;
id_fisier = id_gestiune, ;
label_item = Nume gestiune destinatie, ;
Left = 14, ;
Name = "Item10", ;
pcobj = orul, ;
TabIndex = 11, ;
TabStop = .F., ;
tip = N, ;
Top = 286, ;
ZOrderSet = 14, ;
Label_item1.Caption = "Gestiunea", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.gestin", ;
Text_item1.ControlSource = "", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item11' AS item WITH ;
camp_lista = sectie, ;
Comment = "T", ;
fis_lista = Vnom_sectii, ;
id_fisier = id_sectie, ;
label_item = Denumire sectie, ;
Left = 14, ;
Name = "Item11", ;
pcobj = orul, ;
TabIndex = 12, ;
TabStop = .F., ;
tip = , ;
Top = 309, ;
ZOrderSet = 14, ;
Label_item1.Caption = "Sectia", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.sectie", ;
Text_item1.ControlSource = "", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item12' AS item WITH ;
camp_lista = reteta, ;
Comment = "N", ;
fis_lista = , ;
id_fisier = id_reteta, ;
label_item = Fisa tehnologica, ;
Left = 13, ;
Name = "Item12", ;
pcobj = orul, ;
TabIndex = 10, ;
TabStop = .T., ;
tip = N, ;
Top = 261, ;
ZOrderSet = 14, ;
Label_item1.Caption = "Fiºa tehnologica", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.reteta", ;
Text_item1.ControlSource = "", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item13' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item13", ;
TabIndex = 1, ;
tip = T, ;
Top = 40, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Serie", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.serie", ;
Text_item1.Format = "K!", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item14' AS item WITH ;
Comment = "T", ;
Height = 21, ;
Left = 478, ;
Name = "Item14", ;
TabIndex = 19, ;
TabStop = .F., ;
tip = T, ;
Top = 40, ;
Width = 136, ;
ZOrderSet = 1, ;
LABEL_ITEM1.Caption = "Cont", ;
LABEL_ITEM1.Height = 18, ;
LABEL_ITEM1.Left = 3, ;
LABEL_ITEM1.Name = "LABEL_ITEM1", ;
LABEL_ITEM1.Top = 2, ;
LABEL_ITEM1.Width = 45, ;
TEXT_ITEM1.Comment = "thisform.cobj.cont", ;
TEXT_ITEM1.Format = "K!", ;
TEXT_ITEM1.Height = 18, ;
TEXT_ITEM1.Left = 52, ;
TEXT_ITEM1.MaxLength = 4, ;
TEXT_ITEM1.Name = "TEXT_ITEM1", ;
TEXT_ITEM1.ReadOnly = .T., ;
TEXT_ITEM1.Top = 1, ;
TEXT_ITEM1.Width = 35, ;
LINEO1.Name = "LINEO1", ;
LINEO3.Name = "LINEO3", ;
LINEO4.Name = "LINEO4", ;
LINEO5.Name = "LINEO5", ;
LINEO2.Name = "LINEO2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item14.Text_item2' AS text_item WITH ;
BackStyle = 1, ;
BorderColor = 226,226,226, ;
BorderStyle = 1, ;
Comment = "thisform.cobj.acont", ;
FontName = "Arial", ;
Format = "K!", ;
Height = 18, ;
Left = 92, ;
MaxLength = 4, ;
Name = "Text_item2", ;
ReadOnly = .T., ;
Top = 1, ;
Width = 35
*< END OBJECT: ClassLib="baza.vcx" BaseClass="textbox" />
ADD OBJECT 'Item15' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item15", ;
TabIndex = 2, ;
tip = T, ;
Top = 63, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Numar lot", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.lot", ;
Text_item1.Format = "K!", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item16' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item16", ;
TabIndex = 3, ;
tip = T, ;
Top = 88, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Data expirare", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.adata_expirare", ;
Text_item1.Format = "K!", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item17' AS item WITH ;
camp_lista = nrord, ;
Comment = "T", ;
fis_lista = Vnom_lucrari, ;
id_fisier = id_lucrare, ;
label_item = Lucrarea/Comanda, ;
Left = 14, ;
Name = "Item17", ;
pcobj = orul, ;
TabIndex = 13, ;
TabStop = .F., ;
tip = , ;
Top = 333, ;
ZOrderSet = 14, ;
Label_item1.Caption = "Lucrare", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.nrord", ;
Text_item1.ControlSource = "", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item2' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item2", ;
TabIndex = 5, ;
tip = , ;
Top = 140, ;
ZOrderSet = 0, ;
Label_item1.Caption = "Pret unitar de intrare NIR", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.pret", ;
Text_item1.InputMask = (get_mask(12,gnPpret)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item3' AS item WITH ;
Comment = "F", ;
Left = 14, ;
Name = "Item3", ;
TabIndex = 6, ;
tip = F, ;
Top = 164, ;
ZOrderSet = 7, ;
Label_item1.Caption = "TVA (unitara)", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.tva", ;
Text_item1.InputMask = (get_mask(12,gnPpret)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item4' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item4", ;
TabIndex = 7, ;
tip = , ;
Top = 188, ;
ZOrderSet = 8, ;
Label_item1.Caption = "Cantitate", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.cant", ;
Text_item1.InputMask = (get_mask(12,gnPcant)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item5' AS item WITH ;
Comment = "T", ;
Left = 14, ;
Name = "Item5", ;
TabIndex = 8, ;
tip = , ;
Top = 212, ;
ZOrderSet = 9, ;
Label_item1.Caption = "Valoare ", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.valoare", ;
Text_item1.InputMask = (get_mask(12,gnPc)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item6' AS item WITH ;
Comment = "F", ;
Left = 14, ;
Name = "Item6", ;
TabIndex = 9, ;
tip = F, ;
Top = 236, ;
ZOrderSet = 10, ;
Label_item1.Caption = "Valoare TVA", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.valoaretva", ;
Text_item1.InputMask = (get_mask(12,gnPc)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item7' AS item WITH ;
Comment = "A", ;
Left = 14, ;
Name = "Item7", ;
TabIndex = 14, ;
tip = A, ;
Top = 355, ;
ZOrderSet = 11, ;
Label_item1.Caption = "Pret de vânzare cu TVA", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.PretvTva", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item8' AS item WITH ;
Comment = "A", ;
Left = 14, ;
Name = "Item8", ;
TabIndex = 15, ;
tip = A, ;
Top = 378, ;
ZOrderSet = 12, ;
Label_item1.Caption = "TVA vânzare", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.tvav", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item9' AS item WITH ;
Comment = "X", ;
Left = 14, ;
Name = "Item9", ;
TabIndex = 16, ;
tip = A, ;
Top = 401, ;
ZOrderSet = 13, ;
Label_item1.Caption = "Pret de vânzare fara TVA", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.pretv", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'lb_imputare' AS _label WITH ;
BackStyle = 0, ;
Caption = "Se imputa:", ;
FontCharSet = 238, ;
FontSize = 10, ;
Height = 18, ;
Left = 480, ;
Name = "lb_imputare", ;
TabIndex = 26, ;
ToolTipText = "Se imputa", ;
Top = 285, ;
Width = 65
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_modparam' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Conversie", ;
Comment = "F", ;
FontCharSet = 238, ;
FontName = "Arial", ;
Height = 18, ;
Left = 475, ;
Name = "lb_modparam", ;
TabIndex = 23, ;
Top = 238, ;
Width = 58, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_saft' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Cod taxa", ;
FontName = "Arial", ;
FontSize = 10, ;
Height = 18, ;
Left = 475, ;
Name = "lb_saft", ;
TabIndex = 25, ;
Top = 191, ;
Visible = .F., ;
Width = 54
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lb_tva_achizitie' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA achizitie", ;
Comment = "F", ;
FontCharSet = 238, ;
FontName = "Arial", ;
Height = 18, ;
Left = 475, ;
Name = "lb_tva_achizitie", ;
TabIndex = 25, ;
Top = 147, ;
Visible = .T., ;
Width = 79
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_tva_vanzare' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA vânzare", ;
Comment = "A", ;
FontCharSet = 238, ;
Height = 18, ;
Left = 475, ;
Name = "lb_tva_vanzare", ;
TabIndex = 24, ;
Top = 361, ;
Visible = .T., ;
Width = 75
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'Opt_imputare' AS optiongroup WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
BorderStyle = 0, ;
ButtonCount = 2, ;
Height = 43, ;
Left = 474, ;
Name = "Opt_imputare", ;
TabIndex = 20, ;
Top = 295, ;
Value = 1, ;
Width = 72, ;
Option1.AutoSize = .T., ;
Option1.BackStyle = 0, ;
Option1.Caption = "procent", ;
Option1.FontCharSet = 238, ;
Option1.FontName = "Arial", ;
Option1.FontSize = 10, ;
Option1.Height = 18, ;
Option1.Left = 5, ;
Option1.Name = "Option1", ;
Option1.ToolTipText = "procentul de durata ramasa din durata de folosinta", ;
Option1.Top = 5, ;
Option1.Value = 1, ;
Option1.Width = 62, ;
Option2.AutoSize = .T., ;
Option2.BackStyle = 0, ;
Option2.Caption = "integral", ;
Option2.FontCharSet = 238, ;
Option2.FontName = "Arial", ;
Option2.FontSize = 10, ;
Option2.Height = 18, ;
Option2.Left = 5, ;
Option2.Name = "Option2", ;
Option2.ToolTipText = "integral", ;
Option2.Top = 20, ;
Option2.Width = 61
*< END OBJECT: BaseClass="optiongroup" />
PROCEDURE actualizeaza_explicatie_saft
Local lcWhere, llAchizitie, llVisible
If !m.gl406
Return
Endif
llAchizitie = (oset.model = 2) && 2 = NIR
lcWhere = [.T.]
IF m.llAchizitie
lcWhere = [tva_achizitii=1]
IF this.cbo_tva_achizitie.Visible
lcWhere = lcWhere + [ and procent_taxa = jtva_achizitie.cota_tva]
ENDIF
ELSE
lcWhere = [tva_livrari=1]
IF this.cbo_Tva_vanzare.Visible
lcWhere = lcWhere + [ and procent_taxa = jtva_vanzare.cota_tva]
ENDIF
ENDIF
* Pentru o factura de vanzare mut cbo_Saft sub cbo_tva_vanzare
* Daca cbo_tva_vanzare este vizibil (ex: la vanzarea en-gros, cbo_tva_vanzare nu este vizibil)
IF !m.llAchizitie AND This.cbo_tva_vanzare.Visible
this.lb_saft.Top = this.cbo_tva_vanzare.Top + this.cbo_tva_vanzare.Height + 5
this.cbo_saft.Top = this.lb_saft.Top + this.lb_saft.Height
ENDIF
With This
llVisible = .cbo_saft.Visible
* Cod taxa SAFT
.cbo_saft.RowSourceType = 3 && sql
.cbo_saft.RowSource = [Select descriere, taxcode, procent_taxa From saft_taxtable where ] + m.lcWhere + [ Order by taxcode Into Cursor crsTaxTableX]
.cbo_saft.ControlSource = [Thisform.cobj.taxcode]
.cbo_saft.BoundColumn = 2
.cbo_saft.BoundTo = .T.
.cbo_saft.ColumnCount = 3
.cbo_saft.ColumnWidths = "500,50,50"
.cbo_saft.Visible = m.llVisible && se pune Visible = .T. cand se face BoundTo = .T.
Endwith
This.UpdateExplicatieSAFT()
ENDPROC
PROCEDURE aplicatva
LPARAMETERS tcButonCaption && 24%
Local lcCaption, lnCotaTva, lnPretCuTVA, lnPretFaraTVA, lnPretTVA
lcCaption = m.tcButonCaption && 24%
lnCotaTva = Val(Left(m.lcCaption, Len(m.lcCaption) - 1)) && 24
If m.gnNeplatitoare_tva = 1
lnPretFaraTVA = Thisform.item1.text_item1.Value
lnPretTVA = 0
lnPretCuTVA = Round(m.lnPretFaraTVA * (100 + m.lnCotaTva) / 100, m.gnPpret)
* firma neplatitoare TVA. Presupun ca este pretul fara TVA si aplic TVA unitar la pretul fara TVA
Thisform.item1.text_item1.Value = m.lnPretCuTVA
Thisform.item2.text_item1.Value = m.lnPretCuTVA
Thisform.item3.text_item1.Value = m.lnPretTVA
Else
* firma platitoare TVA. Presupun ca este pretul cu TVA si scad TVA unitar din pretul cu TVA
lnPretCuTVA = Thisform.item1.text_item1.Value
lnPretTVA = Round(lnPretCuTVA * m.lnCotaTva / (100 + m.lnCotaTva), m.gnPpret)
lnPretFaraTVA = lnPretCuTVA - lnPretTVA
Thisform.item1.text_item1.Value = m.lnPretFaraTVA
Thisform.item2.text_item1.Value = m.lnPretFaraTVA
Thisform.item3.text_item1.Value = m.lnPretTVA
Endif
* Schimb cota de TVA din cbo_tva_achizitie si cbo_tva_vanzare doar daca firma este platitoare TVA
If m.gnNeplatitoare_tva = 0
* Daca cota TVA achizitie <> cota TVA apasat, schimb TVA achizitie
If Thisform.cbo_tva_achizitie.Visible
Select jtva_achizitie
lcColoanaAch = LEFT(coloana_jc,2) && RO[19NB]
lnCotaTVAAch = cota_tva && 19
lnIdJtvaAch = id_jtva_coloana
IF m.lnCotaTVAAch <> m.lnCotaTVA
LOCATE FOR cota_tva = m.lnCotaTVA AND LEFT(coloana_jc,2) = m.lcColoanaAch
IF !FOUND()
LOCATE FOR id_jtva_coloana = m.lnIdJtvaAch
ENDIF
ENDIF
lnIdJtvaAch = id_jtva_coloana
thisform.cbo_tva_achizitie.Value = m.lnIdJtvaAch
Thisform.do_alege_tvaach()
ENDIF
* Daca cota TVA vz <> cota TVA apasat, schimb TVA vz
If Thisform.cbo_tva_vanzare.Visible
Select jtva_vanzare
lcColoanaVz = LEFT(coloana_jc,2) && RO[19NB]
lnCotaTVAVz = cota_tva && 19
lnIdJtvaVz = id_jtva_coloana
IF m.lnCotaTVAVz <> m.lnCotaTVA
LOCATE FOR cota_tva = m.lnCotaTVA AND LEFT(coloana_jv,2) = m.lcColoanaVz
IF !FOUND()
LOCATE FOR id_jtva_coloana = m.lnIdJtvaVz
ENDIF
ENDIF
lnIdJtvaVz = id_jtva_coloana
Thisform.cbo_tva_vanzare.Value = m.lnIdJtvaVz
Thisform.do_alege_tvavanz()
ENDIF
ENDIF && m.gnNeplatitoare_tva
Thisform.item1.text_item1.Refresh()
Thisform.item2.text_item1.Refresh()
Thisform.item3.text_item1.Refresh()
Thisform.item1.text_item1.SetFocus()
ENDPROC
PROCEDURE calculeaza_tva_ach
Thisform.cobj.tva = Round(Thisform.cobj.Pret * (Thisform.cobj.proc_tva - 1),gnPpret)
Thisform.item3.Refresh()
ENDPROC
PROCEDURE calculeaza_valori_ach
Lparameters tnCantitate
Local lnCantitate, lnPret, lnTva, lnProcTva, lnValoareACTva, lnValoareATva, lnValoareACTva
lnCantitate = tnCantitate
If !Thisform.blochezPretV And poact.id_set <> 104 && (la imputare, sa ma lase sa pun cu mana pretv)
Thisform.cobj.TVAV = Round(Thisform.PRETVTVA * (Thisform.cobj.proc_tvav-1)/Iif(Thisform.cobj.proc_tvav <> 0, Thisform.cobj.proc_tvav,1), gnPPretV)
Thisform.cobj.PRETV = Thisform.PRETVTVA - Thisform.cobj.TVAV
Endif
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
*!* v 2.0.24
lnPret = Thisform.cobj.Pret
lnTva = Thisform.cobj.TVA
lnProcTva = Iif(Thisform.cobj.PROC_TVA <> 0, Thisform.cobj.PROC_TVA, TVA2PROCTVA(lnTva, lnPret))
*!* in stoc nu exista coloana proc_tva !!! o calculez si o pun in rulaj
Thisform.cobj.PROC_TVA = lnProcTva
If !plNIRBONPretCuTVA
lnValoareAFTva = Round(lnCantitate*lnPret, gnPc)
lnValoareATva = Round(lnValoareAFTva * (lnProcTva-1), gnPc)
lnValoareACTva = lnValoareAFTva + lnValoareATva
Else
lnValoareACTva = Round(lnCantitate*(lnPret+lnTva), gnPc)
lnValoareATva = Round(lnValoareACTva * (lnProcTva - 1) / lnProcTva, gnPc)
lnValoareAFTva = lnValoareACTva - lnValoareATva
Endif
Thisform.valoare = lnValoareAFTva
Thisform.VALOAREtva = lnValoareATva
*!* v 2.0.24 ^
Thisform.item5.Refresh
Thisform.item6.Refresh
ENDPROC
PROCEDURE do_alege_reteta
LOCAL lcselect,lcFiltru,lcSchema,lcOrder,lccoloane,lcTitlu,lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal, lnPornire, llDesktop
lcselect = [select id_reteta, reteta from vnom_retetar]
lcSchema = []
lcOrder = [reteta]
lccoloane = [reteta]
lcTitlu = [Alegeti fisa tehnologica]
lcTitluColoane = [Fisa tehnologica]
lcFiltru = []
lcFiltruOriginal = [principala=0 and id_articol=]+ALLTRIM(STR(thisform.cobj.id_articol))
lcNumeProc = []
llToateIreg = .F.
lnPornire = 1
llDesktop = .F.
locauta = cauta_alfa(lcselect,lcFiltru,lcSchema,lcOrder,lccoloane,lcTitlu,lcTitluColoane, lcNumeProc, llToateIreg, lcFiltruOriginal,,lnPornire,,,llDesktop) && 11.07.2007
IF buton = 2
RETURN
ENDIF
thisform.cobj.id_reteta = locauta.id_reteta
thisform.cobj.reteta = locauta.reteta
ENDPROC
PROCEDURE do_alege_tvaach
Thisform.COBJ.PROC_TVA = (jtva_achizitie.cota_tva + 100 ) / 100
Thisform.COBJ.id_jtva_coloana = jtva_achizitie.id_jtva_coloana
This.actualizeaza_explicatie_saft()
*!* modificare ROAFACTURARE v 2.2.20
*!* Thisform.item1.teXT_ITEM1.Valid
Thisform.calculeaza_tva_ach()
Thisform.calculeaza_valori_ach(Thisform.item4.text_item1.Value)
*!* modificare ROAFACTURARE v 2.2.20 ^
ENDPROC
PROCEDURE do_alege_tvavanz
If !('F' $ Thisform.bVizualizare)
Thisform.COBJ.id_jtva_coloana = jtva_vanzare.id_jtva_coloana
Endif
If !Thisform.blochezPretV
Thisform.COBJ.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
Thisform.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
Thisform.item7.teXT_ITEM1.InteractiveChange
ENDIF
This.actualizeaza_explicatie_saft()
ENDPROC
PROCEDURE do_executa
*!* this.cobj.pretv = ROUND(this.cobj.pret * (1 + this.cobj.procent/100), gnPpret)
*!* this.cobj.TVAV = ROUND(this.cobj.PRETV*(this.cobj.proC_TVAV-1), gnPpret)
If !plNIRBONPretCuTVA
This.cobj.pretv = Round(This.cobj.Pret * (1 + This.cobj.procent/100), gnPPretV)
This.cobj.TVAV = Round(This.cobj.pretv*(This.cobj.proC_TVAV-1), gnPPretV)
This.PRETVTVA = This.cobj.pretv + This.cobj.TVAV
Else
This.cobj.pretv = Round(This.cobj.Pret * (1 + This.cobj.procent/100), gnPPretV)
thisform.pretvtva = Round((This.cobj.Pret + This.cobj.Tva) * (1 + This.cobj.procent/100), gnPPretV)
This.cobj.TVAV = thisform.pretvtva - This.cobj.pretv
EndIf
This.item7.Refresh
This.item8.Refresh
This.item9.Refresh
ENDPROC
PROCEDURE do_modiparam
Private pnTransformat, pnPretTr, ofrmconversie
Store 0 To pnTransformat, pnPretTr
ofrmconversie=Createobject('frm_conversie',Thisform.cobj.Pret,Thisform.cobj.um,Thisform.cobj.cant)
ofrmconversie.Show(1)
Release ofrmconversie
If gnButon=1
*!* modificare v 2.0.150
*!* Thisform.pretu_factura = pnPretTr
*!* Thisform.cobj.Pret = pnPretTr
*!* Thisform.item1.Refresh()
*!* Thisform.item1.SetFocus()
*!* Thisform.item2.Refresh()
*!* Thisform.item2.SetFocus()
*!* Thisform.cobj.cant = pnTransformat
*!* Thisform.item4.Refresh()
*!* Thisform.item4.SetFocus()
Thisform.item1.text_item1.Value = pnPretTr
Thisform.item2.text_item1.Value = pnPretTr
Thisform.item4.text_item1.Value = pnTransformat
Thisform.item1.Refresh()
Thisform.item1.SetFocus()
Thisform.item2.Refresh()
Thisform.item2.SetFocus()
Thisform.item4.Refresh()
Thisform.item4.SetFocus()
*!* modificare v 2.0.150 ^
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
Local llReturn
Store .T. To llReturn
If oset.model = 2
Thisform.cobj.Cont = Thisform.item14.text_item1.Value
lcCont = Thisform.cobj.Cont
If Empty(Nvl(lcCont,[]))
amessagebox("Nu ati completat contul!",48,"Atentie")
Thisform.item14.SetFocus()
llReturn = .F.
Else
lcSql = [begin ] + gcS + [.verifica_plcont_sintetic(?gnAn,'] + Alltrim(lcCont) + ['); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
amessagebox(goExecutor.oPrelucrareEroare(),16,"Eroare")
Thisform.item14.SetFocus()
llReturn = .F.
Endif
Endif
ENDIF
*!* 27.05.2009 - cantitatea introdusa plus cantitatea iesita nu trebuie sa depaseasca cantitatea din stoc.
*!* marius.felecanu
IF thisform.ncant_stoc <> 0
IF thisform.ncant_iesita + thisform.item4.text_item1.Value > thisform.ncant_stoc
AMESSAGEBOX("Cantitatea maxima existenta este: " + ALLTRIM(STR(thisform.ncant_stoc - thisform.ncant_iesita,18,4)),0+48,_screen.Caption)
llReturn = .F.
thisform.item4.SetFocus()
ENDIF
ENDIF
*!* 27.05.2009 ^
*!* 09.06.2008
*!* id_set = 231 nir mf la pv cu modificarea listei de preturi
If Type('poPreturi') = 'O'
poPreturi.pretv = this.cobj.pretv
poPreturi.tvav = this.cobj.tvav
poPreturi.pretvtva = this.PretvTva
EndIf
*!* 09.06.2008 ^
*!* modificare ROAGEST v 2.0.53
If InList(oset.id_set,238,239,259,260,267)
Thisform.COBJ.id_jtva_coloana = jtva_vanzare.id_jtva_coloana
EndIf
*!* modificare ROAGEST v 2.0.53 ^
*!* modificare ROAGEST v 2.2.29
If llReturn And !Isnull(Thisform.omemopref)
Thisform.omemopref.id_jtva_ach = jtva_achizitie.id_jtva_coloana
Thisform.omemopref.proc_tva = (jtva_achizitie.cota_tva + 100)/100
Thisform.omemopref.id_jtva_vanz = jtva_vanzare.id_jtva_coloana
Thisform.omemopref.proc_tvav = (jtva_vanzare.cota_tva + 100)/100
Endif
*!* modificare ROAGEST v 2.2.29 ^
Return llReturn
ENDPROC
PROCEDURE Init
*!* modificare ROAGEST v 2.2.29
LPARAMETERS toDatePref
DODEFAULT()
Thisform.omemopref = IIF(TYPE("toDatePref")="O",toDatePref,NULL)
*!* modificare ROAGEST v 2.2.29 ^
ENDPROC
PROCEDURE KeyPress
Lparameters nKeyCode, nShiftAltCtrl
Do Case
Case nKeyCode = 19 And nShiftAltCtrl = 4 And Thisform.item12.Visible && ALT + R
Nodefault
Thisform.do_alege_reteta()
Case nKeyCode=13 And nShiftAltCtrl=2
Nodefault
If Pemstatus(This,"do_modiparam",5)
This.do_modiparam()
Endif
Otherwise
DoDefault(nKeyCode, nShiftAltCtrl)
Endcase
ENDPROC
PROCEDURE Load
If !Used('saft_taxtable')
update_saft_taxtable()
Endif
ENDPROC
PROCEDURE Show
*!* 01.07.2010
*!* MARIUS.MUTU
*!* folosesc GetIdJtvaStandard - este relativa la luna contabila
*!* 09.03.2014
*!* marius.mutu
*!* Fac vizibile maxim 4 butoane cmdCotaTVA - pentru aplicarea cotei tva la pretul unitar de achizitie fara TVA
*!* In cazul firmelor neplatitoare de TVA, pretul unitar de achizite fara TVA include si TVA unitar
*!* 12.06.2015
*!* marius.mutu
*!* setare explicatie tva 24% sau 9% pentru fct. achizitie cu politica de preturi, dupa cota de tva din politica de preturi
*!* 03.01.2016
*!* marius.mutu
*!* jtva_achizitie - setare TVA achizitie independent de xsets.id_jtax
*!* 20.11.2017
*!* marius.mutu
*!* jtva_achizitie - setare TVA achizitie preluand id_jtva de la articolul anterior
Lparameters nStyle
lnHeight = 0
* DARE IN FOLOSINTA OBIECTE DE INVENTAR. POT SA COMPLETEZ SERIA (NR INVENTAR) PENTRU CA INTRA IN RUL_OBINV CA INTRARE NOUA
* schimb thisform.cobj.serie in thisform.cobj_serie_obinv, ca sa o pot modifica
IF INLIST(oset.id_set , 55, 273) && dare in folosinta
thisform.item13.text_item1.Comment = 'thisform.cobj.serie_obinv'
* In caz ca este deja completata seria, o preiau pe serie_obinv
thisform.cobj.serie_obinv = thisform.cobj.serie
thisform.item13.text_item1.ReadOnly = .F.
ENDIF
For Each loControl In This.Controls
With loControl
If !Empty(loControl.Comment)
If .Comment $ This.bVizualizare
.Visible = .T.
If 'ITEM' $ Upper(.Name)
For Each loCtrSecund In loControl.Controls
If 'TEXT' $ Upper(loCtrSecund.Name)
lcControlSource = Alltrim(loCtrSecund.Comment)
loCtrSecund.ControlSource = lcControlSource
Endif
Endfor
*!* lcControlSource = ALLTRIM(.text_item1.comment)
*!* .text_item1.controlsource = lcControlSource
.pcobj = 'orul'
Endif
lnTop = .Top
If lnTop > lnHeight
lnHeight = lnTop
Endif
Else
.Visible = .F.
Endif
Endif
Endwith
Endfor
SET STEP ON
IF m.gnNeplatitoare_tva <> 1 AND this.cbo_tva_achizitie.Visible
*!* modificare 21.02.2007
*** Daca sunt la al doilea articol, preiau id_jtva_coloana de la articolul anterior
llFound = .F.
If !Empty(Thisform.cobj.id_jtva_coloana)
Select jtva_achizitie
Locate For id_jtva_coloana = Thisform.cobj.id_jtva_coloana
llFound = Found()
Endif
If !m.llFound
Select jtva_achizitie
Do Case
*!* modificare ROAGEST v 2.0.53
Case Inlist(oset.id_set,238,239,259,260,267)
&& Mf pv - Aviz retur marfa (valoric);Mf pv - Factura retur marfa (valorica);Mf pv - Factura retur marfa (valorica);Aviz retur marfa (valoric)
*!* 01.07.2010
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE') && modificare v 2.2.0 : conditia de dupa or && 103
*!* 01.07.2010 ^
*!* modificare ROAGEST v 2.0.53 ^
Case Type('poAct.id_pol') = 'N' And Type('poAct.proc_tvav') = 'N' And !Empty(Nvl(poAct.id_pol,0)) And !Empty(Nvl(poAct.PROC_TVAv,0))
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE', poAct.PROC_TVAv) Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE', poAct.PROC_TVAv) Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_MATERII', poAct.PROC_TVAv)
Case Alltrim(This.cobj.Cont) = '371' And Inlist(oset.id_jtax, 137, 139, 141, 162, 186,216) && taxare inversa 19%, 162 = 24%, 186 = 20%, 216=21%
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_TI_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_TI_VANZARE') && 139
Case Alltrim(This.cobj.Cont) = '371' And Inlist(oset.id_jtax, 101, 103,105, 156, 176,208) && marfa 19 %, 156 = 24%, 176 = 20%, 208=21%
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE') && 103
If !Found()
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_MATERII') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_MATERII') && 105
Endif
Case Alltrim(This.cobj.Cont) = '371'
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE')
If !Found()
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_MATERII') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_MATERII') && 105
Endif
Case Inlist(Left(Alltrim(This.cobj.Cont),2), '30', '31', '32')
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE')
If !Found()
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE') && 103
Endif
Otherwise
Locate For id_jtva_coloana = oset.id_jtax Or id_jtva_ex = oset.id_jtax && modificare v 2.2.0 : conditia de dupa or
Endcase
ENDIF && !m.llFound
If Found()
*!* This.cbo_tva_achizitie.Value = Alltrim(denumire) v 2.2.29
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (COTA_TVA + 100)/100
Endif
*!* SELECT cote_tva
*!* GO TOP
*!* modificare 21.02.2007 ^
Endif
SET STEP ON
If 'F' $ This.bVizualizare And Empty(This.cobj.proc_tva) AND this.cbo_tva_achizitie.Visible
*!* modificare 21.02.2007
Select jtva_achizitie
Do Case
Case Type('poAct.id_pol') = 'N' And Type('poAct.proc_tvav') = 'N' And !Empty(Nvl(poAct.id_pol,0)) And !Empty(Nvl(poAct.PROC_TVAv,0))
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE', poAct.PROC_TVAv) Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE', poAct.PROC_TVAv) Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_MATERII', poAct.PROC_TVAv)
Case Alltrim(This.cobj.Cont) = '371' And Inlist(oset.id_jtax, 137, 139, 141, 162, 186,216) && taxare inversa 19%, 162 = 24%, 186 = 20%
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_TI_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_TI_VANZARE') && 139
Case Alltrim(This.cobj.Cont) = '371' And Inlist(oset.id_jtax, 101,103,105, 156, 176,208) && marfa 19 %, 156 = 24%, 176 = 20%
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE') && 103
Case Alltrim(This.cobj.Cont) = '371'
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE_VANZARE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE_VANZARE')
Case Inlist(Left(Alltrim(This.cobj.Cont),2), '30', '31', '32')
Locate For id_jtva_coloana = GetIdJtvaStandard('ACHIZITIE') Or id_jtva_ex = GetIdJtvaStandard('ACHIZITIE')
Otherwise
Locate For id_jtva_coloana = oset.id_jtax Or id_jtva_ex = oset.id_jtax && modificare v 2.2.0 : conditia de dupa or
Endcase
If Found()
*!* This.cbo_tva_achizitie.Value = Alltrim(denumire) v 2.2.29
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (COTA_TVA + 100)/100
Endif
*!* SELECT cote_tva
*!* * GO top
*!* lnProc_tva = proc_tva
*!* lnproc = procent
*!* THIS.cotaTVA_achizitie.VALUE = ALLTRIM(STR(lnproc))
*!* THIS.cobj.proc_tva = lnProc_tva
*!* modificare 21.02.2007 ^
Endif
SET STEP ON
If 'A' $ This.bVizualizare
If This.blochezPretV
This.item7.Enabled = .F.
This.item8.Enabled = .F.
This.item9.Enabled = .F.
This.Clb_ITEM_adaos.Visible = .F.
*!* modificare 21.02.2007
lcFiltru = [cota_tva = ] + Alltrim(Str(Thisform.cobj.PROC_TVAv * 100 - 100))
Select jtva_vanzare
Set Filter To &lcFiltru
Go Top
*!* This.cbo_tva_VANZARE.Value = Alltrim(denumire) v 2.2.29
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
*!* THIS.CotaTVA_vanzare.ENABLED = .F.
*!* THIS.CotaTVA_vanzare.VALUE = ALLTRIM(STR(THIS.proc_tvav *100 - 100))
*!* modificare 21.02.2007 ^
Else
*!* modificare 21.02.2007
Select jtva_vanzare
Go Top
*!* 01.07.2010
If Type('poAct.id_pol') = 'N' And Type('poAct.proc_tvav') = 'N' And !Empty(Nvl(poAct.id_pol,0)) And !Empty(Nvl(poAct.PROC_TVAv,0))
Locate For id_jtva_coloana = GetIdJtvaStandard('VANZARE', poAct.PROC_TVAv) Or id_jtva_ex = GetIdJtvaStandard('VANZARE', poAct.PROC_TVAv)
Else
*!* Locate For id_jtva_coloana = Iif(oset.tipjurnal=[JV],oset.id_jtax,1)
Locate For id_jtva_coloana = Iif(oset.tipjurnal=[JV],oset.id_jtax,GetIdJtvaStandard('VANZARE')) Or id_jtva_ex = Iif(oset.tipjurnal=[JV],oset.id_jtax,GetIdJtvaStandard('VANZARE')) && modificare v 2.2.0 : conditia de dupa or
Endif
*!* 01.07.2010 ^
If Found()
*!* This.cbo_tva_VANZARE.Value = id_jtva_coloana v 2.2.29
This.cobj.PROC_TVAv = (COTA_TVA + 100)/100
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
Endif
*!* SELECT cote_tva
*!* * GO top
*!* lnProc_tva = proc_tva
*!* lnproc = procent
*!* THIS.CotaTVA_vanzare.VALUE = ALLTRIM(STR(lnproc))
*!* THIS.cobj.proc_tvav = lnProc_tva
*!* modificare 21.02.2007 ^
Endif
This.cobj.procent = Thisform.proc_adaos
Endif
*!* modificare ROAGEST v 2.2.29
Local lnIdJtvaAles
If Inlist(oxset.id_set, 232, 235, 244, 262) && protocol fara TVA, sponsorizare
Select jtva_vanzare
lnIdJtvaAles = id_jtva_coloana
Set Filter To COTA_TVA = 0
Locate For id_jtva_coloana = lnIdJtvaAles
If !Found()
Go Top
Endif
Endif
* se tine cont de cota de la ultimul articol ales, dar nu si pentru achizitiile cu lista preturi de vanzare, la care am luat cota de tva din lista de preturi
If !Isnull(Thisform.omemopref) And !(Type('poAct.id_pol') = 'N' And Type('poAct.proc_tvav') = 'N' And !Empty(Nvl(poAct.id_pol,0)) And !Empty(Nvl(poAct.PROC_TVAv,0)))
Select jtva_achizitie
lnIdJtvaAles = id_jtva_coloana
Locate For id_jtva_coloana = Evl(Thisform.omemopref.id_jtva_ach,lnIdJtvaAles)
If !Found()
Locate For id_jtva_coloana = lnIdJtvaAles
Endif
If Thisform.cbo_tva_achizitie.Visible
Thisform.do_alege_tvaach()
Endif
Select jtva_vanzare
lnIdJtvaAles = id_jtva_coloana
Locate For id_jtva_coloana = Evl(Thisform.omemopref.id_jtva_vanz,lnIdJtvaAles)
If !Found()
Locate For id_jtva_coloana = lnIdJtvaAles
Endif
If Thisform.cbo_tva_vanzare.Visible
Thisform.do_alege_tvavanz()
Endif
Endif
Release lnIdJtvaAles
*!* modificare ROAGEST v 2.2.29 ^
* 31.08.2020
* Fac vizibile maxim 4 butoane cmdCotaTVA - pentru aplicarea/scaderea cotei tva la pretul unitar de achizitie fara/cu TVA
* In cazul firmelor neplatitoare de TVA, se scrie pretul fara TVA, iar cand se apasa butonul se va include si TVA unitar
* In cazul firmelor platitoare de TVA, se scrie pretul cu TVA de pe bonul fiscal, iar cand se apasa butonul se defalca in pret fara TVA si TVA unitar
IF this.item1.Visible && pret unitar pe factura
Select Distinct COTA_TVA From jtva_achizitie Where COTA_TVA <> 0 Order By COTA_TVA Desc Into Array laCoteTVA
lnCoteTVA = _Tally
For lnCotaIdx = 1 To Min(m.lnCoteTVA, 5) && 5 cote maxim
lcControl = 'thisform.cmdTVA' + Alltrim(Str(m.lnCotaIdx))
lnCotaTVA = laCoteTVA[m.lnCotaIdx]
lcCaption = Alltrim(Str(m.lnCotaTVA)) + '%'
&lcControl..Caption = m.lcCaption
&lcControl..ToolTipText = IIF(m.gnNeplatitoare_tva = 1, 'Aplica TVA la pretul fara TVA', 'Scade TVA din pretul cu TVA')
&lcControl..Visible = .T. && este deja vizibil
ENDFOR
ENDIF
*!* firmele neplatitoare de TVA sunt intitializate cu cota TVA 0%
If m.gnNeplatitoare_tva = 1
*!* modificare 21.02.2007
Select jtva_achizitie
Locate For id_jtva_coloana = 113
If Found()
*!* This.cbo_tva_achizitie.Value = Alltrim(denumire) v 2.2.29
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (COTA_TVA + 100)/100
Endif
Select jtva_vanzare
Locate For id_jtva_coloana = 11
If Found()
*!* This.cbo_tva_VANZARE.Value = Alltrim(denumire) v 2.2.29
Thisform.cobj.PROC_TVAv = (jtva_vanzare.COTA_TVA + 100)/100
Thisform.PROC_TVAv = (jtva_vanzare.COTA_TVA + 100)/100
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
Endif
ENDIF
*!* modificare 21.02.2007 ^
* Factura vanzare si nu este vizibil cbo_tva_vanzare
llAchizitie = (oset.model = 2) && 2 = NIR
IF oset.factura AND !m.llAchizitie AND !this.cbo_tva_vanzare.Visible AND TYPE('poAct.id_jtva_coloana') = 'N'
SELECT jtva_vanzare
LOCATE FOR id_jtva_coloana = poAct.id_jtva_coloana
IF FOUND()
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (COTA_TVA + 100)/100
ENDIF
ENDIF
If 'B' $ This.bVizualizare
This.item4.SetFocus
ENDIF
* 55,273 Dare in folosinta, ma pozitionez pe serie
IF INLIST(oset.id_set, 55,273)
this.item13.SetFocus
ENDIF
*!* 29.09.2006
*!* MARIUS.MUTU
*!* RETETA VIZIBILA DOAR IN ROAPRODUCTIE.pv_productie (FOARTE POSIBIL SI IN ROAGEST - PV PRODUCTIE)
If Inlist(poAct.id_set,26001)
This.ITEM12.Visible = .T.
This.IMAGE1.Visible = .T.
Else
This.ITEM12.Visible = .F.
This.IMAGE1.Visible = .F.
Endif
&& opt_imputare
If Inlist(poAct.id_set,104) And gnImputare = 1
This.lb_imputare.Visible = .T.
This.opt_imputare.Visible= .T.
Else
This.lb_imputare.Visible = .F.
This.opt_imputare.Visible = .F.
Endif
If poAct.id_set = 105 && NIR de marfa la pret de vanzare
This.item7.text_item1.ReadOnly = .T.
This.item9.text_item1.ReadOnly = .T.
This.Clb_ITEM_adaos.text_simplu1.ReadOnly = .T.
Endif
*!* modificare 22.06
This.but_modiparam1.Visible=This.item4.Visible
This.lb_modparam.Visible=This.item4.Visible
*!* ^
This.Height = lnHeight + 90 && ultimul item + 90 (pentru lbs_saft si cbo_saft)
This.lb_titlu_alb_b121.Caption = This.cTitlu
*!* modificare 20.08.2007
If oset.model = 2
This.item13.text_item1.ReadOnly = .F.
This.item14.text_item1.ReadOnly = .F.
this.item14.text_item2.ReadOnly = .F.
*!* modificare 18.01.2008
This.item15.text_item1.ReadOnly = .F.
This.item16.text_item1.ReadOnly = .F.
*!* modificare 18.01.2008 ^
Endif
*!* modificare 20.08.2007 ^
*!* modificare v 2.2.29 : le-am initializat aici pentru ca s-a intamplat uneori sa imi apara formularul,
*!* dar sa nu am selectata nicio valoare in combo, iar daca inchideam fereastra si o lansam din nou,
*!* de abia atunci imi aparea valoarea selectata
With Thisform.cbo_tva_achizitie
If .Visible
.ColumnCount = 3
.ColumnLines = .F.
.ColumnWidths = [200,10,0]
.RowSource = [jtva_achizitie.denumire,cota_tva,id_jtva_coloana]
.RowSourceType = 6
.BoundColumn = 3
.BoundTo = .T.
.Value = jtva_achizitie.id_jtva_coloana && Substr(jtva_achizitie.denumire,1,200)
Endif
Endwith
With Thisform.cbo_tva_vanzare
If .Visible
.ColumnCount = 3
.ColumnLines = .F.
.ColumnWidths = [200,10,0]
.RowSource = [jtva_vanzare.denumire,cota_tva,id_jtva_coloana]
.RowSourceType = 6
.BoundColumn = 3
.BoundTo = .T.
.Value = jtva_vanzare.id_jtva_coloana && Substr(jtva_achizitie.denumire,1,200)
Endif
ENDWITH
IF m.gl406 AND oset.factura AND (this.cbo_tva_achizitie.Visible OR this.cbo_tva_vanzare.Visible)
* FACTURA + MODEL = 2 (NIR)
* Factura vanzare en-gros nu are vizibila cbo_tva_vanzare
This.cbo_saft.Visible = .T.
this.lb_saft.Visible = .T.
This.actualizeaza_explicatie_saft()
ELSE
IF m.gl406 AND oset.factura
* Daca este factura , dar nu este vizibil cbo_saft (ex: vanzare en-gros)
This.UpdateExplicatieSAFT()
ENDIF
ENDIF
*!* modificare v 2.2.29 ^
If oset.id_set = 85 && MATERIALE RECUPERATE
Thisform.cobj.PROC_TVA = 1 && ORUL.PROC_TVA = 1 nu are procent TVA
ENDIF
DoDefault()
ENDPROC
PROCEDURE updateexplicatiesaft
LOCAL llAchizitie, laNesosit[1]
Local llN100, llN50, llNeexigibil
* tlAchizitie: .T. = factura achizitie
Local ldDataAct, lnIdJtva, lnIdPart, llFurnizorRTVAI, lcProcentTaxa, lnTaxCode
If !m.gl406
Return
ENDIF
llAchizitie = (oset.model = 2) && 2 = NIR
ldDataAct = poAct.dataact
If m.llAchizitie
lnIdJtva = jtva_achizitie.id_jtva_coloana
Else
lnIdJtva = jtva_vanzare.id_jtva_coloana
ENDIF
llFurnizorRTVAI = .F.
IF TYPE('pcobj.oPartenerRTVAI') = 'O'
llFurnizorRTVAI = IIF(m.llAchizitie, IIF(PEMSTATUS(pcobj.oPartenerRTVAI, 'leinRtvai',5), pcobj.oPartenerRTVAI.leinRtvai, .F.), .F.) && poAct
ENDIF
* llN50/llN100 = .T. doar pentru linia cu Explicatie TVA = "Limitare deducere TVA"
llN50 = .F. && (m.lnIdSet = 10609) && limitare deducere 50%
llN100 = .F. && (m.lnIdSet = 10647) && limitare deducere 100%
SELECT COUNT(*) as nr FROM xnote WHERE id_set = oset.id_set AND (LEFT(xscd,3) = '418' OR LEFT(xscc,3) = '408') INTO ARRAY laNesosit
llNeexigibil = (laNesosit[1] > 0) && factura neintocmita/nesosita
lnTaxCode = GetTaxCode(m.gnAn, m.gnLuna, m.ldDataAct, m.lnIdJtva, m.llFurnizorRTVAI, m.llN50, m.llN100, m.llNeexigibil)
Thisform.cobj.taxcode = m.lnTaxCode
This.UpdateLabelSaft(m.lnTaxCode)
This.cbo_saft.Refresh()
ENDPROC
PROCEDURE updatelabelsaft
LPARAMETERS lnTaxCode
Local lcProcentTaxa
lcProcentTaxa = ''
IF SEEK(m.lnTaxCode, 'saft_taxtable', 'taxcode')
lcProcentTaxa = Alltrim(Transform(saft_taxtable.procent_taxa)) + '%'
ENDIF
This.lb_saft.Caption = 'Taxa SAFT' + Iif(!Empty(NVL(m.lnTaxCode,0)), ' (' + Alltrim(Transform(m.lnTaxCode)) + ' ' + m.lcProcentTaxa + ')', '')
* Schimb in culoarea rosie pentru a atentiona utilizatorul ca valoarea a fost schimbata
This.lb_saft.ForeColor = Rgb(255, 0, 0)
This.lb_saft.Refresh()
ENDPROC
PROCEDURE updatepaymentsaft
If !m.gl406
Return
Endif
lnIdFdoc = Nvl(poAct.id_fdoc,0)
If !Empty(m.lnIdFdoc)
This.cPaymentCode = GetPaymentCode(m.lnIdFdoc)
Else
This.cPaymentCode = ''
Endif
This.cbo_plata_saft.Refresh()
ENDPROC
PROCEDURE cbo_saft.LostFocus
This.ForeColor = Rgb(0, 0, 0)
ENDPROC
PROCEDURE cbo_saft.Valid
Thisform.UpdateLabelSaft(Thisform.cobj.taxcode)
ENDPROC
PROCEDURE cbo_tva_achizitie.Valid
Thisform.do_alege_tvaach()
ENDPROC
PROCEDURE cbo_tva_vanzare.Valid
Thisform.do_alege_tvavanz()
ENDPROC
PROCEDURE Clb_ITEM_adaos.TEXT_SIMPLU1.InteractiveChange
lcAtribuieValoare = This.ControlSource + [ = ] + Alltrim(Str(This.Value,12,2))
&lcAtribuieValoare
Thisform.do_executa()
ENDPROC
PROCEDURE Clb_ITEM_adaos.TEXT_SIMPLU1.Valid
*!* modificare ROAGEST v 2.0.53
*!* If Val(This.Text)=0
If Val(This.Text) = 0 Or Thisform.pretvtva = 0
*!* modificare ROAGEST v 2.0.53 ^
Thisform.do_executa()
Endif
ENDPROC
PROCEDURE cmdTVA1.Click
Thisform.AplicaTVA(this.Caption)
ENDPROC
PROCEDURE cmdTVA2.Click
Thisform.AplicaTVA(this.Caption)
ENDPROC
PROCEDURE cmdTVA3.Click
Thisform.AplicaTVA(this.Caption)
ENDPROC
PROCEDURE cmdTVA4.Click
Thisform.AplicaTVA(this.Caption)
ENDPROC
PROCEDURE cmdTVA5.Click
Thisform.AplicaTVA(this.Caption)
ENDPROC
PROCEDURE Image1.Click
thisform.do_alege_reteta()
ENDPROC
PROCEDURE Item1.Text_item1.InteractiveChange
If Thisform.proc_discount <> 0
Thisform.cobj.Pret = Round(This.Value*(100-Thisform.proc_discount)/100,gnPpret)
Else
Thisform.cobj.Pret = This.Value
Endif
*!* modificare ROAFACTURARE v 2.2.20
*!* *!* *!* CALCULEZ tva doar pentru seturile in afara de 231,234 (NIR mf pret de lista, NIR RATC)
*!* *!* *!* la 231, 234 se ia pretul de pe ultimul NIR
*!* *!* If !((poact.id_set = 231 or plNIRBONPretCuTVA) AND !Empty(Thisform.cobj.tva))
*!* Thisform.cobj.tva = Round(Thisform.cobj.Pret * (Thisform.cobj.proc_tva - 1),gnPpret)
*!* *!* EndIf
*!* Thisform.item3.Refresh
Thisform.calculeaza_tva_ach()
*!* modificare ROAFACTURARE v 2.2.20 ^
ENDPROC
PROCEDURE Item1.Text_item1.ProgrammaticChange
If Thisform.proc_discount <> 0
Thisform.cobj.Pret = Round(This.Value*(100-Thisform.proc_discount)/100,gnPpret)
Else
Thisform.cobj.Pret = This.Value
Endif
*!* *!* CALCULEZ tva doar pentru seturile in afara de 231,234 (NIR mf pret de lista, NIR RATC)
*!* *!* la 231, 234 se ia pretul de pe ultimul NIR
*!* If !((poact.id_set = 231 or plNIRBONPretCuTVA) AND !Empty(Thisform.cobj.tva))
*Thisform.cobj.tva = Round(Thisform.cobj.Pret * (Thisform.cobj.proc_tva - 1),gnPpret)
*!* EndIf
Thisform.item3.Refresh
ENDPROC
PROCEDURE Item1.Text_item1.Valid
*!* modificare ROAFACTURARE v 2.2.20
*!* Thisform.item4.text_item1.Valid()
Thisform.calculeaza_valori_ach(Thisform.item4.text_item1.Value)
*!* modificare ROAFACTURARE v 2.2.20 ^
ENDPROC
PROCEDURE Item2.Text_item1.InteractiveChange
If 'F' $ Thisform.bvizualizare
*!* modificare ROAFACTURARE v 2.2.20
*!* *!* If !((poact.id_set = 231 or plNIRBONPretCuTVA) AND !Empty(Thisform.cobj.tva))
*!* Thisform.cobj.tva = Round(Thisform.cobj.Pret * (Thisform.cobj.proc_tva - 1),gnPpret)
*!* *!* EndIf
*!* Thisform.item3.Refresh
Thisform.calculeaza_tva_ach()
*!* modificare ROAFACTURARE v 2.2.20 ^
Endif
If Thisform.cobj.procent <> 0 And !INLIST(oset.id_set, 105, 231, 247, 266) && procent adaos - Achizitie fact. neplatita- marfa la pret de vanzare/achizitie
Thisform.do_executa && calculeaza pretul de vanzare inclusiv Tva
Endif
ENDPROC
PROCEDURE Item2.Text_item1.ProgrammaticChange
If 'F' $ Thisform.bvizualizare
*!* modificare ROAFACTURARE v 2.2.20
*!* *!* If !((poact.id_set = 231 or plNIRBONPretCuTVA) AND !Empty(Thisform.cobj.tva))
*!* Thisform.cobj.tva = Round(Thisform.cobj.Pret * (Thisform.cobj.proc_tva - 1),gnPpret)
*!* *!* EndIf
*!* Thisform.item3.Refresh
Thisform.calculeaza_tva_ach()
*!* modificare ROAFACTURARE v 2.2.20 ^
Endif
If Thisform.cobj.procent <> 0 And !INLIST(oset.id_set, 105, 231, 247, 266) && procent adaos - Achizitie fact. neplatita- marfa la pret de vanzare/achizitie
Thisform.do_executa && calculeaza pretul de vanzare inclusiv Tva
Endif
ENDPROC
PROCEDURE Item2.Text_item1.Valid
If 'F' $ Thisform.bvizualizare
*!* modificare ROAFACTURARE v 2.2.20
*!* Thisform.item4.text_item1.Valid()
Thisform.calculeaza_valori_ach(Thisform.item4.text_item1.Value)
*!* modificare ROAFACTURARE v 2.2.20 ^
EndIf
ENDPROC
PROCEDURE Item4.Text_item1.Valid
*!* modificare ROAFACTURARE v 2.2.20
*!* Local lnCantitate, lnPret, lnTva, lnProcTva, lnValoareACTva, lnValoareATva, lnValoareACTva
*!* If !Thisform.blochezPretV AND poact.id_set <> 104 && (la imputare, sa ma lase sa pun cu mana pretv)
*!* Thisform.cobj.TVAV = Round(Thisform.PRETVTVA * (Thisform.cobj.proc_tvav-1)/Iif(Thisform.cobj.proc_tvav <> 0, Thisform.cobj.proc_tvav,1), gnPPretV)
*!* Thisform.cobj.PRETV = Thisform.PRETVTVA - Thisform.cobj.TVAV
*!* Endif
*!* If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
*!* Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
*!* Endif
*!* Thisform.item8.Refresh
*!* Thisform.item9.Refresh
*!* Thisform.clb_item_adaos.Refresh
*!* *!* v 2.0.24
*!*
*!* lnCantitate = this.Value
*!* lnPret = thisform.cobj.PRET
*!* lnTVA = thisform.cobj.TVA
*!* lnProcTVA = Iif(Thisform.cobj.PROC_TVA <> 0, Thisform.cobj.PROC_TVA, TVA2PROCTVA(lnTVA, lnPret))
*!* *!* in stoc nu exista coloana proc_tva !!! o calculez si o pun in rulaj
*!* Thisform.cobj.PROC_TVA = lnProcTva
*!* If !plNIRBONPretCuTVA
*!* lnValoareAFTva = Round(lnCantitate*lnPret, gnPC)
*!* lnValoareATva = Round(lnValoareAFTva * (lnProcTVA-1), gnPC)
*!* lnValoareACTva = lnValoareAFTva + lnValoareATva
*!* Else
*!* lnValoareACTva = Round(lnCantitate*(lnPret+lnTVA), gnPC)
*!* lnValoareATva = Round(lnValoareACTva * (lnProcTva - 1) / lnProcTva, gnPC)
*!* lnValoareAFTva = lnValoareACTva - lnValoareATva
*!* EndIf
*!* Thisform.valoare = lnValoareAFTva
*!* Thisform.VALOAREtva = lnValoareATva
*!* *!* v 2.0.24 ^
*!* Thisform.item5.Refresh
*!* Thisform.item6.Refresh
Thisform.calculeaza_valori_ach(This.Value)
*!* modificare ROAFACTURARE v 2.2.20 ^
ENDPROC
PROCEDURE Item7.Text_item1.InteractiveChange
Thisform.PRETVTVA = This.Value
Thisform.cobj.PRETV = Round(Thisform.PRETVTVA / Thisform.cobj.proc_tvav, gnPPretV)
Thisform.cobj.TVAV = Thisform.PRETVTVA - Thisform.cobj.PRETV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
ENDPROC
PROCEDURE Item7.Text_item1.Valid
*!* thisform.cobj.TVAV = ROUND(thisform.PRETVTVA * (thisform.cobj.proc_tvav-1)/thisform.cobj.proc_tvav, gnPpret)
*!* thisform.cobj.PRETV = thisform.PRETVTVA - thisform.cobj.TVAV
ENDPROC
PROCEDURE Item8.Text_item1.Valid
*!* *!* thisform.cobj.TVAV = ROUND(thisform.cobj.PRETV*(thisform.cobj.proc_tvaV-1), gnPpret)
*!* Thisform.cobj.TVAV = Round(Thisform.cobj.PRETV*(Thisform.cobj.proc_tvaV-1), gnPc)
*!* Thisform.PRETVTVA = Thisform.cobj.PRETV + Thisform.cobj.TVAV
*!* If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
*!* Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
*!* Endif
ENDPROC
PROCEDURE Item9.Text_item1.InteractiveChange
*!* nu stiu de ce atunci cand mai trec prin cantitate si apoi in pret vanzare fara tva intra in interactivechange fara sa modific valoare
If thisform.nPretvOriginal = This.Value
Return
EndIf
Thisform.cobj.PRETV = This.Value
Thisform.cobj.TVAV = Round(Thisform.cobj.PRETV*(Thisform.cobj.proc_TVAV-1), gnPPretV)
Thisform.PRETVTVA = Thisform.cobj.PRETV + Thisform.cobj.TVAV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent = Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item7.Refresh
Thisform.item8.Refresh
Thisform.clb_item_adaos.Refresh
ENDPROC
PROCEDURE Item9.Text_item1.Valid
*!* thisform.cobj.TVAV = ROUND(thisform.cobj.PRETV*(thisform.cobj.proc_TVAV-1), gnPpret)
ENDPROC
PROCEDURE Item9.Text_item1.When
thisform.nPretvOriginal = This.Value
ENDPROC
PROCEDURE Opt_imputare.Init
pnImputare = this.Value
ENDPROC
PROCEDURE Opt_imputare.InteractiveChange
pnImputare = this.Value
ENDPROC
PROCEDURE Opt_imputare.Valid
pnImputare = this.Value
ENDPROC
ENDDEFINE
DEFINE CLASS frm_introdnir_val AS _frmbase OF "_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="Item2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item13" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item5" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item7" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item8" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item9" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item11" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item6" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_ach" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_explicatie_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item10" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Item12" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_vanz1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_vanz2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_vanz3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_ach_c" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_valuta_vanz_c" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_ITEM_adaos" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_tva_vanzare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_tva_vanzare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_curs_ach" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_curs_vanz" UniqueID="" Timestamp="" />
#INCLUDE "..\include\foxpro.h"
*
*m: do_modiparam
*p: blochezpretv
*p: cobj
*p: cparentobj
*p: ctitlu
*p: ncant_iesita
*p: ncant_stoc
*p: ncursach
*p: ncursvanz
*p: omemopref
*p: pretvtva
*p: pretvtvaval
*p: proc_adaos
*p: proc_discount
*p: proc_tvav
*p: valoare
*p: valoaretva
*
*
bvizualizare =
cobj =
ctitlu =
DoCreate = .T.
Height = 371
Name = "frm_introdnir_val"
ncant_iesita = .F.
ncant_stoc = .F.
ncursach = 0
ncursvanz = 0
omemopref = NULL
pretvtva = 0
pretvtvaval = 0
proc_adaos = 0
proc_discount = 0
proc_tvav = 0
valoare = 0
valoaretva = 0
Width = 634
WindowType = 1
_shape1.Height = 30
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = -1
_shape1.Width = 636
_shape1.ZOrderSet = 2
_shape2.Height = 29
_shape2.Left = 567
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 67
_shape2.ZOrderSet = 3
Lb_titlu_alb_b121.FontName = "Comic Sans MS"
Lb_titlu_alb_b121.FontSize = 10
Lb_titlu_alb_b121.Left = 8
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 17
Lb_titlu_alb_b121.Top = 4
Lb_titlu_alb_b121.ZOrderSet = 4
BUT_TERMIN1.Left = 601
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 15
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 5
Gridsort1.Name = "Gridsort1"
*
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 571, ;
Name = "But_renunt1", ;
TabIndex = 16, ;
Top = 1, ;
ZOrderSet = 6
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cbo_tva_vanzare' AS _combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
ColumnCount = 3, ;
ColumnLines = .F., ;
ColumnWidths = "200,10,0", ;
Comment = "A", ;
ControlSource = "", ;
InputMask = "", ;
Left = 475, ;
Name = "cbo_tva_vanzare", ;
RowSource = "jtva_vanzare.denumire,cota_tva,id_jtva_coloana", ;
RowSourceType = 6, ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 26, ;
TabStop = .F., ;
Top = 261, ;
Visible = .T., ;
Width = 149
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'Clb_ITEM_adaos' AS clb_tx_simplu WITH ;
BorderColor = 255,255,255, ;
Comment = "A", ;
Height = 29, ;
Left = 472, ;
Name = "Clb_ITEM_adaos", ;
TabIndex = 8, ;
Top = 216, ;
Width = 83, ;
TEXT_SIMPLU1.Alignment = 1, ;
TEXT_SIMPLU1.BackColor = 224,224,224, ;
TEXT_SIMPLU1.BorderStyle = 0, ;
TEXT_SIMPLU1.Comment = "thisform.cobj.procent", ;
TEXT_SIMPLU1.ControlSource = "", ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.InputMask = (get_mask(12,2)), ;
TEXT_SIMPLU1.Left = 2, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.SpecialEffect = 1, ;
TEXT_SIMPLU1.Top = 2, ;
TEXT_SIMPLU1.Width = 58, ;
LB_SIMPLU1.Caption = "%", ;
LB_SIMPLU1.FontName = "Comic Sans MS", ;
LB_SIMPLU1.Left = 66, ;
LB_SIMPLU1.Name = "LB_SIMPLU1", ;
LB_SIMPLU1.Top = 5
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Item1' AS item WITH ;
Comment = "T", ;
Left = 13, ;
Name = "Item1", ;
TabIndex = 2, ;
tip = F, ;
Top = 67, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Pret achizitie in valuta", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.pretd", ;
Text_item1.InputMask = (get_mask(12,gnPpretVal)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item10' AS item WITH ;
Comment = "A", ;
Left = 13, ;
Name = "Item10", ;
TabIndex = 13, ;
TabStop = .F., ;
tip = A, ;
Top = 309, ;
ZOrderSet = 12, ;
LABEL_ITEM1.Caption = "TVA vanzare in valuta", ;
LABEL_ITEM1.Name = "LABEL_ITEM1", ;
TEXT_ITEM1.Comment = "thisform.cobj.tvaval", ;
TEXT_ITEM1.InputMask = (get_mask(12,gnPVal)), ;
TEXT_ITEM1.Name = "TEXT_ITEM1", ;
TEXT_ITEM1.ReadOnly = .T., ;
LINEO1.Name = "LINEO1", ;
LINEO3.Name = "LINEO3", ;
LINEO4.Name = "LINEO4", ;
LINEO5.Name = "LINEO5", ;
LINEO2.Name = "LINEO2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item11' AS item WITH ;
camp_lista = sectie, ;
Comment = "T", ;
fis_lista = Vnom_sectii, ;
id_fisier = id_sectie, ;
label_item = Denumire sectie, ;
Left = 13, ;
Name = "Item11", ;
pcobj = orul, ;
TabIndex = 7, ;
TabStop = .F., ;
tip = , ;
Top = 189, ;
ZOrderSet = 14, ;
Label_item1.Caption = "Sectie", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.sectie", ;
Text_item1.ControlSource = "", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item12' AS item WITH ;
Comment = "X", ;
Left = 13, ;
Name = "Item12", ;
TabIndex = 14, ;
tip = A, ;
Top = 332, ;
ZOrderSet = 13, ;
LABEL_ITEM1.Caption = "Pret de vanzare fara TVA", ;
LABEL_ITEM1.Name = "LABEL_ITEM1", ;
TEXT_ITEM1.Comment = "thisform.cobj.pretvval", ;
TEXT_ITEM1.InputMask = (get_mask(14,gnPVal)), ;
TEXT_ITEM1.Name = "TEXT_ITEM1", ;
LINEO1.Name = "LINEO1", ;
LINEO3.Name = "LINEO3", ;
LINEO4.Name = "LINEO4", ;
LINEO5.Name = "LINEO5", ;
LINEO2.Name = "LINEO2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item13' AS item WITH ;
Comment = "T", ;
Left = 13, ;
Name = "Item13", ;
TabIndex = 1, ;
tip = T, ;
Top = 40, ;
ZOrderSet = 1, ;
Label_item1.Caption = "Serie", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.serie", ;
Text_item1.Format = "K!", ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item2' AS item WITH ;
Comment = "T", ;
Left = 13, ;
Name = "Item2", ;
TabIndex = 3, ;
tip = , ;
Top = 90, ;
ZOrderSet = 0, ;
Label_item1.Caption = "Pret achizitie", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.pret", ;
Text_item1.InputMask = (get_mask(12,gnPpret)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item3' AS item WITH ;
Left = 13, ;
Name = "Item3", ;
TabIndex = 4, ;
tip = F, ;
Top = 114, ;
ZOrderSet = 7, ;
Label_item1.Caption = "Pret achizitie la cursul zilei", ;
Label_item1.Name = "Label_item1", ;
Text_item1.InputMask = (get_mask(12,gnPpret)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item4' AS item WITH ;
Comment = "T", ;
Left = 13, ;
Name = "Item4", ;
TabIndex = 5, ;
tip = , ;
Top = 138, ;
ZOrderSet = 8, ;
Label_item1.Caption = "Cantitate", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.cant", ;
Text_item1.InputMask = (get_mask(12,gnPcant)), ;
Text_item1.Name = "Text_item1", ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item5' AS item WITH ;
Comment = "T", ;
Left = 13, ;
Name = "Item5", ;
TabIndex = 6, ;
tip = , ;
Top = 162, ;
ZOrderSet = 9, ;
Label_item1.Caption = "Valoare ", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.valoare", ;
Text_item1.InputMask = (get_mask(12,gnPc)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item6' AS item WITH ;
Comment = "A", ;
Left = 13, ;
Name = "Item6", ;
TabIndex = 12, ;
tip = A, ;
Top = 286, ;
ZOrderSet = 11, ;
LABEL_ITEM1.Caption = "Pret de vanzare cu TVA in valuta", ;
LABEL_ITEM1.Name = "LABEL_ITEM1", ;
TEXT_ITEM1.Comment = "thisform.Pretvtvaval", ;
TEXT_ITEM1.InputMask = (get_mask(14,gnPVal)), ;
TEXT_ITEM1.Name = "TEXT_ITEM1", ;
LINEO1.Name = "LINEO1", ;
LINEO3.Name = "LINEO3", ;
LINEO4.Name = "LINEO4", ;
LINEO5.Name = "LINEO5", ;
LINEO2.Name = "LINEO2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item7' AS item WITH ;
Comment = "A", ;
Left = 13, ;
Name = "Item7", ;
TabIndex = 9, ;
TabStop = .F., ;
tip = A, ;
Top = 216, ;
ZOrderSet = 11, ;
Label_item1.Caption = "Pret de vanzare cu TVA", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.PretvTva", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item8' AS item WITH ;
Comment = "A", ;
Left = 13, ;
Name = "Item8", ;
TabIndex = 10, ;
TabStop = .F., ;
tip = A, ;
Top = 239, ;
ZOrderSet = 12, ;
Label_item1.Caption = "TVA vanzare", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.tvav", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'Item9' AS item WITH ;
Comment = "X", ;
Left = 13, ;
Name = "Item9", ;
TabIndex = 11, ;
TabStop = .F., ;
tip = A, ;
Top = 262, ;
ZOrderSet = 13, ;
Label_item1.Caption = "Pret de vanzare fara TVA", ;
Label_item1.Name = "Label_item1", ;
Text_item1.Comment = "thisform.cobj.pretv", ;
Text_item1.InputMask = (get_mask(12,gnPPretV)), ;
Text_item1.Name = "Text_item1", ;
Text_item1.ReadOnly = .T., ;
Lineo1.Name = "Lineo1", ;
Lineo3.Name = "Lineo3", ;
Lineo4.Name = "Lineo4", ;
Lineo5.Name = "Lineo5", ;
Lineo2.Name = "Lineo2"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
ADD OBJECT 'lb_explicatie_curs' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Curs valutar", ;
FontName = "Comic Sans MS", ;
ForeColor = 0,0,128, ;
Height = 20, ;
Left = 488, ;
Name = "lb_explicatie_curs", ;
TabIndex = 18, ;
Top = 107, ;
Width = 75, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_tva_vanzare' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA vanzare", ;
Comment = "A", ;
Height = 18, ;
Left = 477, ;
Name = "lb_tva_vanzare", ;
TabIndex = 25, ;
Top = 244, ;
Visible = .T., ;
Width = 75
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_ach' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
Height = 18, ;
Left = 474, ;
Name = "lb_valuta_ach", ;
TabIndex = 20, ;
Top = 68, ;
Width = 47, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_ach_c' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
FontName = "Comic Sans MS", ;
ForeColor = 0,0,128, ;
Height = 20, ;
Left = 482, ;
Name = "lb_valuta_ach_c", ;
TabIndex = 24, ;
Top = 132, ;
Width = 50, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_vanz1' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
Left = 479, ;
Name = "lb_valuta_vanz1", ;
TabIndex = 21, ;
Top = 287, ;
Width = 47, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_vanz2' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
Left = 479, ;
Name = "lb_valuta_vanz2", ;
TabIndex = 19, ;
Top = 310, ;
Width = 47, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_vanz3' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
Left = 479, ;
Name = "lb_valuta_vanz3", ;
TabIndex = 23, ;
Top = 333, ;
Width = 47, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lb_valuta_vanz_c' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "[Valuta]", ;
FontName = "Comic Sans MS", ;
ForeColor = 0,0,128, ;
Height = 20, ;
Left = 482, ;
Name = "lb_valuta_vanz_c", ;
TabIndex = 22, ;
Top = 156, ;
Width = 50, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'tx_curs_ach' AS _txbase WITH ;
Alignment = 0, ;
BorderStyle = 0, ;
ControlSource = "thisform.ncursach", ;
FontName = "Comic Sans MS", ;
Height = 18, ;
InputMask = (get_mask(6,4)), ;
Left = 540, ;
Name = "tx_curs_ach", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabIndex = 27, ;
TabStop = .F., ;
Top = 132, ;
Value = 0, ;
Width = 84
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'tx_curs_vanz' AS _txbase WITH ;
Alignment = 0, ;
BorderStyle = 0, ;
ControlSource = "thisform.ncursvanz", ;
FontName = "Comic Sans MS", ;
Height = 18, ;
InputMask = (get_mask(6,4)), ;
Left = 540, ;
Name = "tx_curs_vanz", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabIndex = 28, ;
TabStop = .F., ;
Top = 156, ;
Value = 0, ;
Width = 84
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
PROCEDURE do_executa
This.cobj.pretv = Round(This.cobj.Pret * (1 + This.cobj.procent/100), gnPPretV)
This.cobj.TVAV = Round(This.cobj.pretv*(This.cobj.proC_TVAV-1), gnPPretV)
This.PRETVTVA = This.cobj.pretv + This.cobj.TVAV
This.item7.Refresh
This.item8.Refresh
This.item9.Refresh
thisform.cobj.pretvval = Round(Thisform.cobj.pretv / thisform.cobj.curs,gnPVal)
thisform.cobj.tvaval = Round(Thisform.cobj.TVAV / thisform.cobj.curs,gnPVal)
Thisform.pretvtvaval = thisform.cobj.pretvval + thisform.cobj.tvaval
Thisform.item6.Refresh
Thisform.item10.Refresh
Thisform.item12.Refresh
ENDPROC
PROCEDURE do_modiparam
ENDPROC
PROCEDURE inainte_de_do_termin
*!* 27.05.2009 - cantitatea introdusa plus cantitatea iesita nu trebuie sa depaseasca cantitatea din stoc.
*!* marius.felecanu
Local llReturn
Store .T. To llReturn
IF thisform.ncant_stoc <> 0
IF thisform.ncant_iesita + thisform.item4.text_item1.Value > thisform.ncant_stoc
AMESSAGEBOX("Cantitatea maxima existenta este: " + ALLTRIM(STR(thisform.ncant_stoc - thisform.ncant_iesita,18,4)),0+48,_screen.Caption)
llReturn = .F.
thisform.item4.SetFocus()
ENDIF
ENDIF
RETURN llReturn
*!* 27.05.2009 ^
ENDPROC
PROCEDURE Init
LPARAMETERS toDatePref
DODEFAULT()
Thisform.omemopref = IIF(TYPE("toDatePref")="O",toDatePref,NULL)
ENDPROC
PROCEDURE Show
Lparameters nStyle
lnHeight = 0
With Thisform.lb_explicatie_curs
.Caption = [Curs valutar ] + Dtoc(poAct.v8)
.AutoSize = .T.
Endwith
Select crscursuri
If !Empty(Nvl(Thisform.cobj.id_valuta,0))
Locate For id_valuta = Thisform.cobj.id_valuta
If Found()
Thisform.ncursach = Curs / multiplicator
lcNumeValuta = Upper(Alltrim(nume_val))
With Thisform.lb_valuta_ach
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
With Thisform.lb_valuta_ach_c
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
Endif
Thisform.item3.text_item1.Value = Round(Thisform.cobj.pretd*Thisform.ncursach,gnPPret)
Else
Thisform.ncursach = 0
Thisform.lb_valuta_ach.Visible = .F.
Thisform.lb_valuta_ach_c.Visible = .F.
Thisform.tx_curs_ach.Visible = .F.
Thisform.item1.Visible = .F.
Thisform.item3.Visible = .F.
Thisform.lb_valuta_vanz_c.Top = Thisform.lb_valuta_ach_c.Top
Thisform.tx_curs_vanz.Top = Thisform.tx_curs_ach.Top
Endif
If Nvl(Thisform.cobj.id_valuta,0) <> poAct.id_valuta_vanz
*!* Locate For id_valuta = poAct.id_valuta_vanz
*!* If Found()
*!* Thisform.ncursvanz = Curs
*!* lcNumeValuta = Upper(Alltrim(nume_val))
Thisform.ncursvanz = Thisform.cobj.Curs
lcNumeValuta = poAct.nume_val_vanz
*!* Endif
Else
Thisform.lb_valuta_vanz_c.Visible = .F.
Thisform.tx_curs_vanz.Visible = .F.
Endif
With Thisform.lb_valuta_vanz1
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
With Thisform.lb_valuta_vanz2
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
With Thisform.lb_valuta_vanz3
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
With Thisform.lb_valuta_vanz_c
.Caption = lcNumeValuta
.AutoSize = .T.
Endwith
Thisform.proc_adaos = 0
For Each loControl In This.Controls
With loControl
If !Empty(loControl.Comment)
If .Comment $ This.bVizualizare
.Visible = .T.
If 'ITEM' $ Upper(.Name)
For Each loCtrSecund In loControl.Controls
If 'TEXT' $ Upper(loCtrSecund.Name)
lcControlSource = Alltrim(loCtrSecund.Comment)
loCtrSecund.ControlSource = lcControlSource
Endif
Endfor
*!* lcControlSource = ALLTRIM(.text_item1.comment)
*!* .text_item1.controlsource = lcControlSource
.pcobj = 'orul'
Endif
lnTop = .Top
If lnTop > lnHeight
lnHeight = lnTop
Endif
Else
.Visible = .F.
Endif
Endif
Endwith
Endfor
If gnNeplatitoare_tva = 1
*!* modificare 21.02.2007
Select jtva_achizitie
Locate For id_jtva_coloana = 113
If Found()
This.cbo_tva_achizitie.Value = Alltrim(denumire)
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (cota_tva + 100)/100
Endif
Select jtva_vanzare
Locate For id_jtva_coloana = 11
If Found()
This.cbo_tva_VANZARE.Value = Alltrim(denumire)
Thisform.cobj.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
Thisform.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
Endif
*!* SELECT cote_tva
*!* LOCATE FOR proc_tva = 1.00
*!* IF !FOUND()
*!* SELECT cote_tva
*!* GO TOP
*!* ENDIF
*!* modificare 21.02.2007 ^
Else
*!* modificare 21.02.2007
Select jtva_achizitie
Do Case
Case This.cobj.Cont = '371' And oset.id_jtax = 141 && taxare inversa 19 %
Locate For id_jtva_coloana = 139
Case This.cobj.Cont = '371' And oset.id_jtax = 105 && marfa 19 %
Locate For id_jtva_coloana = 103
Otherwise
Locate For id_jtva_coloana = oset.id_jtax or id_jtva_ex = oset.id_jtax && modificare v 2.2.0 : conditia de dupa or
Endcase
If Found()
This.cbo_tva_achizitie.Value = Alltrim(denumire)
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (cota_tva + 100)/100
Endif
*!* SELECT cote_tva
*!* GO TOP
*!* modificare 21.02.2007 ^
Endif
If 'F' $ This.bVizualizare And Empty(This.cobj.proc_tva)
*!* modificare 21.02.2007
Select jtva_achizitie
Do Case
Case This.cobj.Cont = '371' And oset.id_jtax = 141 && taxare inversa 19 %
Locate For id_jtva_coloana = 139
Case This.cobj.Cont = '371' And oset.id_jtax = 105 && marfa 19 %
Locate For id_jtva_coloana = 103
Otherwise
Locate For id_jtva_coloana = oset.id_jtax or id_jtva_ex = oset.id_jtax && modificare v 2.2.0 : conditia de dupa or
Endcase
If Found()
This.cbo_tva_achizitie.Value = Alltrim(denumire)
Thisform.cobj.id_jtva_coloana = id_jtva_coloana
This.cobj.proc_tva = (cota_tva + 100)/100
Endif
*!* SELECT cote_tva
*!* * GO top
*!* lnProc_tva = proc_tva
*!* lnproc = procent
*!* THIS.cotaTVA_achizitie.VALUE = ALLTRIM(STR(lnproc))
*!* THIS.cobj.proc_tva = lnProc_tva
*!* modificare 21.02.2007 ^
Endif
If 'A' $ This.bVizualizare
If This.blochezPretV
This.item7.Enabled = .F.
This.item8.Enabled = .F.
This.item9.Enabled = .F.
This.Clb_ITEM_adaos.Visible = .F.
*!* modificare 21.02.2007
lcFiltru = [cota_tva = ] + Alltrim(Str(Thisform.cobj.PROC_TVAv * 100 - 100))
Select jtva_vanzare
Set Filter To &lcFiltru
Go Top
This.cbo_tva_VANZARE.Value = Alltrim(denumire)
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
*!* THIS.CotaTVA_vanzare.ENABLED = .F.
*!* THIS.CotaTVA_vanzare.VALUE = ALLTRIM(STR(THIS.proc_tvav *100 - 100))
*!* modificare 21.02.2007 ^
Else
*!* modificare 21.02.2007
Select jtva_vanzare
Locate For id_jtva_coloana = Iif(oset.tipjurnal=[JV],oset.id_jtax,GetIdJtvaStandard('VANZARE')) or id_jtva_ex = Iif(oset.tipjurnal=[JV],oset.id_jtax,GetIdJtvaStandard('VANZARE')) && modificare v 2.2.0 : conditia de dupa or
If Found()
This.cbo_tva_VANZARE.Value = Alltrim(denumire)
This.cobj.PROC_TVAv = (cota_tva + 100)/100
If !('F' $ This.bVizualizare)
This.cobj.id_jtva_coloana = id_jtva_coloana
Endif
Endif
*!* SELECT cote_tva
*!* * GO top
*!* lnProc_tva = proc_tva
*!* lnproc = procent
*!* THIS.CotaTVA_vanzare.VALUE = ALLTRIM(STR(lnproc))
*!* THIS.cobj.proc_tvav = lnProc_tva
*!* modificare 21.02.2007 ^
Endif
This.cobj.procent = Thisform.proc_adaos
Endif
This.lb_titlu_alb_b121.Caption = This.cTitlu
This.item4.SetFocus
*!* modificare ROAFACTURARE v 2.0.90
If Thisform.ncursach <> Round(Thisform.ncursach,4)
Thisform.tx_curs_ach.InputMask = get_mask(8,6)
Endif
If Thisform.ncursvanz <> Round(Thisform.ncursvanz,4)
Thisform.tx_curs_vanz.InputMask = get_mask(8,6)
Endif
*!* modificare ROAFACTURARE v 2.0.90 ^
DoDefault()
ENDPROC
PROCEDURE cbo_tva_vanzare.Valid
If !('F' $ Thisform.bVizualizare)
Thisform.COBJ.id_jtva_coloana = jtva_vanzare.id_jtva_coloana
Endif
If !Thisform.blochezPretV
Thisform.COBJ.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
Thisform.PROC_TVAv = (jtva_vanzare.cota_tva + 100)/100
Thisform.item7.teXT_ITEM1.InteractiveChange
Endif
ENDPROC
PROCEDURE Clb_ITEM_adaos.TEXT_SIMPLU1.Valid
thisform.do_executa
ENDPROC
PROCEDURE Item12.TEXT_ITEM1.InteractiveChange
thisform.cobj.pretvval = This.Value
thisform.cobj.tvaval = Round(thisform.cobj.pretvval * (Thisform.cobj.proc_tvav-1),gnPVal)
Thisform.pretvtvaval = thisform.cobj.pretvval + thisform.cobj.tvaval
Thisform.item6.Refresh
Thisform.item10.Refresh
Thisform.cobj.PRETV = Round(thisform.cobj.pretvval * thisform.cobj.curs , gnPPretV)
Thisform.cobj.TVAV = Round(thisform.cobj.tvaval * thisform.cobj.curs, gnPPretV)
Thisform.PRETVTVA = Thisform.cobj.PRETV + Thisform.cobj.TVAV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent = Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item7.Refresh
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
ENDPROC
PROCEDURE Item4.Text_item1.Valid
If !Thisform.blochezPretV AND poact.id_set <> 104 && (la imputare, sa ma lase sa pun cu mana pretv)
*!* thisform.cobj.TVAV = ROUND(thisform.PRETVTVA * (thisform.cobj.proc_tvav-1)/IIF(thisform.cobj.proc_tvav <> 0, thisform.cobj.proc_tvav,1), gnPpret)
Thisform.cobj.TVAV = Round(Thisform.PRETVTVA * (Thisform.cobj.proc_tvav-1)/Iif(Thisform.cobj.proc_tvav <> 0, Thisform.cobj.proc_tvav,1), gnPPretV)
Thisform.cobj.PRETV = Thisform.PRETVTVA - Thisform.cobj.TVAV
Endif
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
Thisform.valoare = Round(This.Value * Thisform.cobj.Pret,gnPc)
Thisform.VALOAREtva = Round(Thisform.valoare*(Thisform.cobj.PROC_TVA-1),gnPc)
Thisform.item5.Refresh
Thisform.item6.Refresh
ENDPROC
PROCEDURE Item6.TEXT_ITEM1.InteractiveChange
Thisform.pretvtvaval = This.Value
thisform.cobj.pretvval = Round(Thisform.pretvtvaval / Thisform.cobj.proc_tvav,gnPVal)
thisform.cobj.tvaval = Thisform.pretvtvaval - thisform.cobj.pretvval
Thisform.item10.Refresh
Thisform.item12.Refresh
Thisform.PRETVTVA = Round(Thisform.pretvtvaval * thisform.cobj.curs, gnPPretV)
Thisform.cobj.PRETV = Round(thisform.cobj.pretvval * thisform.cobj.curs, gnPPretV)
Thisform.cobj.TVAV = Thisform.PRETVTVA - Thisform.cobj.PRETV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item7.Refresh
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
ENDPROC
PROCEDURE Item6.TEXT_ITEM1.Valid
*!* thisform.cobj.TVAV = ROUND(thisform.PRETVTVA * (thisform.cobj.proc_tvav-1)/thisform.cobj.proc_tvav, gnPpret)
*!* thisform.cobj.PRETV = thisform.PRETVTVA - thisform.cobj.TVAV
ENDPROC
PROCEDURE Item7.Text_item1.InteractiveChange
Thisform.PRETVTVA = This.Value
Thisform.cobj.PRETV = Round(Thisform.PRETVTVA / Thisform.cobj.proc_tvav, gnPPretV)
Thisform.cobj.TVAV = Thisform.PRETVTVA - Thisform.cobj.PRETV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent=Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item8.Refresh
Thisform.item9.Refresh
Thisform.clb_item_adaos.Refresh
Thisform.pretvtvaval = Round(Thisform.PRETVTVA / thisform.cobj.curs,gnPVal)
thisform.cobj.pretvval = Round(Thisform.cobj.PRETV / thisform.cobj.curs,gnPVal)
thisform.cobj.tvaval = Thisform.pretvtvaval - thisform.cobj.pretvval
Thisform.item6.Refresh
Thisform.item10.Refresh
Thisform.item12.Refresh
ENDPROC
PROCEDURE Item9.Text_item1.InteractiveChange
Thisform.cobj.PRETV = This.Value
Thisform.cobj.TVAV = Round(Thisform.cobj.PRETV*(Thisform.cobj.proc_TVAV-1), gnPPretV)
Thisform.PRETVTVA = Thisform.cobj.PRETV + Thisform.cobj.TVAV
If !Empty(Thisform.cobj.Pret) And !Empty(Thisform.cobj.PRETV)
Thisform.cobj.procent = Round((Thisform.cobj.PRETV/Thisform.cobj.Pret-1)*100, gnPc)
Endif
Thisform.item7.Refresh
Thisform.item8.Refresh
Thisform.clb_item_adaos.Refresh
thisform.cobj.pretvval = Round(Thisform.cobj.PRETV / thisform.cobj.curs,gnPVal)
thisform.cobj.tvaval = Round(Thisform.cobj.TVAV / thisform.cobj.curs,gnPVal)
Thisform.pretvtvaval = thisform.cobj.pretvval + thisform.cobj.tvaval
Thisform.item6.Refresh
Thisform.item10.Refresh
Thisform.item12.Refresh
ENDPROC
ENDDEFINE
DEFINE CLASS import_adauga_factura AS _frmbase OF "_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="shpDvi" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shape4" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_label1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtFelDocDVI" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdFelDocDVI" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblFelDoc" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtFelDoc" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdFelDoc" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblSerie" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtSerie" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblNr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtNr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblData" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtData" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblSuma" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtSuma" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblCurs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtCurs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="chkParticipaValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="chkInValutaCont" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="optTipTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblExplicatieTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtExplicatieTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdExplicatieTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblPedagogieDvi" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviNr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviNr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviData" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviData" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdDviPartener" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviTvaVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviTvaVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviTvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviTvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblProcentTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblSumaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtProcentTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtSumaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_label2" UniqueID="" Timestamp="" />
*
*m: actualizeaza_stare_dvi
*m: actualizeaza_stare_valuta
*m: actualizeaza_tabstop
*m: arata_valuta_curs
*m: construieste_todlg
*m: recalc_tva
*m: seteaza_masti
*m: valideaza
*p: cdvipartener
*p: cdviserie
*p: cexplicatia
*p: cexplicatietva
*p: cfeldoc
*p: cfeldocdvi
*p: cpartener
*p: cserieact
*p: cseriedvi
*p: cvaluta
*p: ddata
*p: ddataact
*p: ddvidata
*p: lcursdirty
*p: linvalutadirty && bifa "in valuta" schimbata explicit de utilizator - nu o mai fortez
*p: lsumaleidirty && suma in lei a fost editata manual - recalc_tva nu o mai suprascrie
*p: lsuprimadirty
*p: ncurs
*p: ndviidpartener
*p: ndvitvalei
*p: ndvitvaval
*p: nidexplicatietva
*p: nidfdoc
*p: nidfdocdvi
*p: nidpartener
*p: nidvaluta
*p: nnract
*p: nnractdvi
*p: nprocenttva
*p: nsuma
*p: nsumalei && suma fara TVA in lei (calculata, doar afisare)
*p: oparinte && referinta catre import_nota care a deschis dialogul
*
*
BorderStyle = 1
cdvipartener = ""
cdviserie = ""
cexplicatia = ""
cexplicatietva = ""
cfeldoc = ""
cfeldocdvi = ""
cpartener = ""
cserieact = ""
cseriedvi = ""
cvaluta = ""
ddata = {}
ddataact = {}
ddvidata = {}
DoCreate = .T.
Height = 406
lcursdirty = .F.
linvalutadirty = .F.
lsumaleidirty = .F.
lsuprimadirty = .F.
Name = "import_adauga_factura"
ncurs = 0
ndviidpartener = 0
ndvitvalei = 0
ndvitvaval = 0
nidexplicatietva = 0
nidfdoc = 0
nidfdocdvi = 0
nidpartener = 0
nidvaluta = 0
nnract = 0
nnractdvi = 0
nprocenttva = 0
nsuma = 0
nsumalei = 0
oparinte =
Width = 650
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 653
_shape1.ZOrderSet = 3
_shape2.Left = 583
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.ZOrderSet = 4
Lb_titlu_alb_b121.Caption = "Adauga factura"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.ZOrderSet = 5
BUT_TERMIN1.Left = 620
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 27
BUT_TERMIN1.Top = 1
BUT_TERMIN1.Visible = .T.
BUT_TERMIN1.ZOrderSet = 6
Gridsort1.Left = 5
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 31
*
ADD OBJECT '_label1' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Fel doc", ;
FontBold = .T., ;
Height = 17, ;
Left = 25, ;
Name = "_label1", ;
Top = 305, ;
Width = 50, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT '_label2' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "completati TVA% si apoi alegeti Explicatie TVA", ;
FontBold = .F., ;
FontItalic = .T., ;
FontSize = 9, ;
Height = 17, ;
Left = 20, ;
Name = "_label2", ;
Top = 252, ;
Width = 257, ;
ZOrderSet = 32
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT '_shape3' AS _shape WITH ;
BackColor = 240,225,255, ;
BackStyle = 0, ;
Height = 157, ;
Left = 12, ;
Name = "_shape3", ;
SpecialEffect = 0, ;
Top = 36, ;
Width = 628, ;
ZOrderSet = 1
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shape4' AS _shape WITH ;
BackColor = 197,197,226, ;
BackStyle = 0, ;
Height = 83, ;
Left = 12, ;
Name = "_shape4", ;
SpecialEffect = 0, ;
Top = 191, ;
Width = 628, ;
ZOrderSet = 2
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 590, ;
Name = "But_renunt1", ;
TabIndex = 28, ;
Top = 1, ;
ZOrderSet = 47
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'chkInValutaCont' AS _checkbox WITH ;
Alignment = 0, ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Suma in valuta in contabilitate", ;
Height = 31, ;
Left = 522, ;
Name = "chkInValutaCont", ;
TabIndex = 14, ;
TabStop = .F., ;
Top = 117, ;
Value = 1, ;
Width = 102, ;
WordWrap = .T., ;
ZOrderSet = 30
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkParticipaValuta' AS _checkbox WITH ;
Alignment = 0, ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Participa la pretul de intrare", ;
Height = 34, ;
Left = 522, ;
Name = "chkParticipaValuta", ;
TabIndex = 13, ;
TabStop = .F., ;
Top = 150, ;
Value = 1, ;
Width = 107, ;
WordWrap = .T., ;
ZOrderSet = 29
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'cmdDviPartener' AS _commandbutton WITH ;
Caption = "...", ;
Enabled = .F., ;
FontBold = .T., ;
FontName = "Arial", ;
Left = 558, ;
Name = "cmdDviPartener", ;
TabIndex = 24, ;
Top = 332, ;
Width = 24, ;
ZOrderSet = 42
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdExplicatieTva' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
FontName = "Arial", ;
Left = 475, ;
Name = "cmdExplicatieTva", ;
TabIndex = 18, ;
Top = 225, ;
Width = 24, ;
ZOrderSet = 34
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdFelDoc' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Left = 228, ;
Name = "cmdFelDoc", ;
TabIndex = 2, ;
Top = 38, ;
Width = 24, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdFelDocDVI' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Left = 235, ;
Name = "cmdFelDocDVI", ;
TabIndex = 20, ;
Top = 300, ;
Width = 24, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdPartener' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Height = 21, ;
Left = 558, ;
Name = "cmdPartener", ;
TabIndex = 7, ;
Top = 70, ;
Width = 24, ;
ZOrderSet = 19
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdValuta' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Left = 365, ;
Name = "cmdValuta", ;
TabIndex = 11, ;
Top = 120, ;
Width = 24, ;
ZOrderSet = 26
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'lblCurs' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Curs", ;
FontBold = .T., ;
Height = 17, ;
Left = 394, ;
Name = "lblCurs", ;
Top = 125, ;
Width = 30, ;
ZOrderSet = 27
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblData' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Data", ;
FontBold = .T., ;
Height = 17, ;
Left = 499, ;
Name = "lblData", ;
Top = 43, ;
Width = 30, ;
ZOrderSet = 15
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviData' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Data", ;
FontBold = .T., ;
Height = 18, ;
Left = 500, ;
Name = "lblDviData", ;
Top = 304, ;
Width = 31, ;
ZOrderSet = 38
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviNr' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Nr", ;
FontBold = .T., ;
Height = 18, ;
Left = 287, ;
Name = "lblDviNr", ;
Top = 304, ;
Width = 16, ;
ZOrderSet = 36
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviPartener' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Partener", ;
FontBold = .T., ;
Height = 18, ;
Left = 25, ;
Name = "lblDviPartener", ;
Top = 335, ;
Width = 57, ;
ZOrderSet = 40
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviTvaLei' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA lei", ;
FontBold = .T., ;
Height = 18, ;
Left = 231, ;
Name = "lblDviTvaLei", ;
Top = 365, ;
Width = 48, ;
ZOrderSet = 45
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviTvaVal' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA valuta", ;
FontBold = .T., ;
Height = 18, ;
Left = 25, ;
Name = "lblDviTvaVal", ;
Top = 365, ;
Width = 71, ;
ZOrderSet = 43
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblExplicatieTva' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Explicatie TVA", ;
FontBold = .T., ;
Height = 18, ;
Left = 118, ;
Name = "lblExplicatieTva", ;
Top = 230, ;
Width = 95, ;
ZOrderSet = 32
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblFelDoc' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Fel doc", ;
FontBold = .T., ;
Height = 17, ;
Left = 20, ;
Name = "lblFelDoc", ;
Top = 43, ;
Width = 50, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblNr' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Nr", ;
FontBold = .T., ;
Height = 17, ;
Left = 350, ;
Name = "lblNr", ;
Top = 43, ;
Width = 20, ;
ZOrderSet = 13
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblPartener' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Partener", ;
FontBold = .T., ;
Height = 17, ;
Left = 20, ;
Name = "lblPartener", ;
Top = 73, ;
Width = 60, ;
ZOrderSet = 17
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblPedagogieDvi' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "DVI", ;
FontBold = .T., ;
ForeColor = 0,0,25, ;
Height = 18, ;
Left = 25, ;
Name = "lblPedagogieDvi", ;
Top = 279, ;
Width = 24, ;
ZOrderSet = 35
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblProcentTva' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA %", ;
FontBold = .T., ;
Height = 18, ;
Left = 18, ;
Name = "lblProcentTva", ;
Top = 230, ;
Width = 42, ;
ZOrderSet = 48
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblSerie' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Serie", ;
FontBold = .T., ;
Height = 17, ;
Left = 260, ;
Name = "lblSerie", ;
Top = 43, ;
Width = 34, ;
ZOrderSet = 11
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblSuma' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Suma fara TVA", ;
FontBold = .T., ;
Height = 18, ;
Left = 20, ;
Name = "lblSuma", ;
Top = 125, ;
Width = 98, ;
ZOrderSet = 22
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblSumaLei' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Suma lei", ;
FontBold = .T., ;
Height = 18, ;
Left = 59, ;
Name = "lblSumaLei", ;
Top = 154, ;
Width = 59, ;
ZOrderSet = 50
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblValuta' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Valuta", ;
FontBold = .T., ;
Height = 17, ;
Left = 247, ;
Name = "lblValuta", ;
Top = 125, ;
Width = 40, ;
ZOrderSet = 24
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'optTipTva' AS _optiongrup WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
ButtonCount = 3, ;
Height = 28, ;
Left = 16, ;
Name = "optTipTva", ;
TabIndex = 15, ;
Top = 196, ;
Value = 1, ;
Width = 289, ;
ZOrderSet = 31, ;
Option1.AutoSize = .T., ;
Option1.BackStyle = 0, ;
Option1.Caption = "TVA Furnizor", ;
Option1.FontBold = .T., ;
Option1.FontSize = 10, ;
Option1.Height = 18, ;
Option1.Left = 5, ;
Option1.Name = "Option1", ;
Option1.Top = 5, ;
Option1.Width = 102, ;
Option2.AutoSize = .T., ;
Option2.BackStyle = 0, ;
Option2.Caption = "TVA DVI", ;
Option2.FontBold = .T., ;
Option2.FontSize = 10, ;
Option2.Height = 18, ;
Option2.Left = 116, ;
Option2.Name = "Option2", ;
Option2.Top = 5, ;
Option2.Width = 71, ;
Option3.AutoSize = .T., ;
Option3.BackStyle = 0, ;
Option3.Caption = "Fara TVA", ;
Option3.FontBold = .T., ;
Option3.FontSize = 10, ;
Option3.Height = 18, ;
Option3.Left = 206, ;
Option3.Name = "Option3", ;
Option3.Top = 5, ;
Option3.Width = 78
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="optiongroup" />
ADD OBJECT 'shpDvi' AS _shape WITH ;
BackColor = 217,217,236, ;
BackStyle = 1, ;
Height = 121, ;
Left = 12, ;
Name = "shpDvi", ;
SpecialEffect = 0, ;
Top = 273, ;
Width = 628, ;
ZOrderSet = 0
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'txtCurs' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nCurs", ;
Format = "RK", ;
InputMask = "9999.9999", ;
Left = 428, ;
Name = "txtCurs", ;
TabIndex = 12, ;
Top = 122, ;
Width = 80, ;
ZOrderSet = 28
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtData' AS _textbox WITH ;
ControlSource = "Thisform.dDataAct", ;
Format = "K", ;
Left = 533, ;
Name = "txtData", ;
TabIndex = 5, ;
Top = 40, ;
Width = 94, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviData' AS _textbox WITH ;
ControlSource = "Thisform.dDviData", ;
Enabled = .F., ;
Format = "K", ;
Left = 540, ;
Name = "txtDviData", ;
TabIndex = 22, ;
Top = 302, ;
Width = 90, ;
ZOrderSet = 39
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviNr' AS _textbox WITH ;
ControlSource = "Thisform.nNractDvi", ;
Enabled = .F., ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999999", ;
Left = 312, ;
Name = "txtDviNr", ;
TabIndex = 21, ;
Top = 302, ;
Width = 147, ;
ZOrderSet = 37
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviPartener' AS _textbox WITH ;
ControlSource = "Thisform.cDviPartener", ;
Enabled = .F., ;
Format = "K", ;
Height = 23, ;
Left = 98, ;
Name = "txtDviPartener", ;
TabIndex = 23, ;
Top = 332, ;
Width = 452, ;
ZOrderSet = 41
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviTvaLei' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nDviTvaLei", ;
Enabled = .F., ;
Format = "RK", ;
InputMask = "9999999.9999", ;
Left = 285, ;
Name = "txtDviTvaLei", ;
TabIndex = 26, ;
Top = 362, ;
Width = 112, ;
ZOrderSet = 46
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviTvaVal' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nDviTvaVal", ;
Enabled = .F., ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999.9999", ;
Left = 98, ;
Name = "txtDviTvaVal", ;
TabIndex = 25, ;
Top = 362, ;
Width = 112, ;
ZOrderSet = 44
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtExplicatieTva' AS _textbox WITH ;
ControlSource = "Thisform.cExplicatieTva", ;
Enabled = .T., ;
Format = "K", ;
Left = 215, ;
Name = "txtExplicatieTva", ;
ReadOnly = .T., ;
TabIndex = 17, ;
Top = 227, ;
Width = 254, ;
ZOrderSet = 33
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtFelDoc' AS _textbox WITH ;
ControlSource = "Thisform.cFelDoc", ;
Enabled = .T., ;
Format = "K", ;
Left = 74, ;
Name = "txtFelDoc", ;
ReadOnly = .T., ;
TabIndex = 1, ;
Top = 40, ;
Width = 150, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtFelDocDVI' AS _textbox WITH ;
ControlSource = "Thisform.cFelDocDVI", ;
Enabled = .T., ;
Format = "K", ;
Left = 81, ;
Name = "txtFelDocDVI", ;
ReadOnly = .T., ;
TabIndex = 19, ;
Top = 302, ;
Width = 150, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtNr' AS _textbox WITH ;
ControlSource = "Thisform.nNract", ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999999", ;
Left = 371, ;
Name = "txtNr", ;
TabIndex = 4, ;
Top = 40, ;
Width = 120, ;
ZOrderSet = 14
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtPartener' AS _textbox WITH ;
ControlSource = "Thisform.cPartener", ;
Enabled = .T., ;
Format = "K", ;
Height = 23, ;
Left = 92, ;
Name = "txtPartener", ;
ReadOnly = .T., ;
TabIndex = 6, ;
Top = 70, ;
Width = 462, ;
ZOrderSet = 18
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtProcentTva' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nProcentTva", ;
Format = "RK", ;
InputMask = "999.99", ;
Left = 62, ;
Name = "txtProcentTva", ;
TabIndex = 16, ;
Top = 227, ;
Width = 44, ;
ZOrderSet = 49
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtSerie' AS _textbox WITH ;
ControlSource = "Thisform.cSerieAct", ;
Format = "K", ;
Height = 23, ;
Left = 298, ;
Name = "txtSerie", ;
TabIndex = 3, ;
Top = 40, ;
Width = 44, ;
ZOrderSet = 12
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtSuma' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nSuma", ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999999.9999", ;
Left = 125, ;
Name = "txtSuma", ;
TabIndex = 9, ;
Top = 122, ;
Width = 114, ;
ZOrderSet = 23
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtSumaLei' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nSumaLei", ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999999.99", ;
Left = 125, ;
Name = "txtSumaLei", ;
TabIndex = 29, ;
Top = 151, ;
Width = 114, ;
ZOrderSet = 51
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtValuta' AS _textbox WITH ;
ControlSource = "Thisform.cValuta", ;
Enabled = .T., ;
Format = "K", ;
Left = 291, ;
Name = "txtValuta", ;
ReadOnly = .T., ;
TabIndex = 10, ;
Top = 122, ;
Width = 70, ;
ZOrderSet = 25
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
PROCEDURE actualizeaza_stare_dvi
*!* Arata/ascunde subrandul DVI dupa radio-ul TVA; pre-completeaza din memoria DVI
*!* a lui import_nota si pune data DVI = data facturii principale daca lipseste.
Local llDvi, loCtl
llDvi = (This.optTipTva.Value = 2)
For Each loCtl In This.Controls
If At('DVI', Upper(loCtl.Name)) > 0
loCtl.Visible = llDvi
If Pemstatus(loCtl, 'Enabled', 5)
loCtl.Enabled = llDvi
Endif
Endif
Endfor
This._label1.Visible = llDvi
If llDvi
If !Empty(This.oParinte.cDviSerie) Or This.oParinte.nDviIdPartener <> 0 Or !Empty(Nvl(This.oParinte.nDviIdFdoc, 0)) Or Val(Nvl(This.oParinte.cDviNr, '0')) <> 0
This.cDviSerie = This.oParinte.cDviSerie
This.cDviPartener = This.oParinte.cDviPartener
This.dDviData = This.oParinte.dDviData
This.nDviIdPartener = This.oParinte.nDviIdPartener
This.nNractDvi = Val(Nvl(This.oParinte.cDviNr, '0'))
This.cFelDocDvi = Nvl(This.oParinte.cDviFelDoc, '')
This.nIdFdocDVI = Nvl(This.oParinte.nDviIdFdoc, 0)
Endif
If Vartype(This.dDviData) <> 'D' Or Empty(This.dDviData)
This.dDviData = This.dDataAct
Endif
This.txtDviNr.Value = This.nNractDvi
This.txtDviData.Value = This.dDviData
This.txtDviPartener.Value = This.cDviPartener
Endif
This.Refresh()
ENDPROC
PROCEDURE actualizeaza_stare_valuta
*!* Propune cursul BNR (onom_curs.vc2 / clasa "curs") pentru valuta si data curente.
*!* Daca valuta e RON, cursul e fixat la 1 si nu se mai cere suma in valuta.
*!* Daca utilizatorul a editat manual cursul (lCursDirty), nu il mai suprascriu.
Local loCurs, lnCurs
If Empty(This.cValuta) Or Upper(Alltrim(This.cValuta)) == 'RON'
This.nCurs = 1
This.txtCurs.Value = 1
This.txtCurs.Enabled = .F.
This.chkInValutaCont.Value = 0
This.chkInValutaCont.Enabled = .F.
This.arata_valuta_curs(.T.)
Else
This.txtCurs.Enabled = .T.
This.chkInValutaCont.Enabled = .T.
If !This.lInValutaDirty
This.chkInValutaCont.Value = 1
Endif
This.arata_valuta_curs(This.chkInValutaCont.Value = 1)
Endif
This.seteaza_masti()
This.Refresh()
ENDPROC
PROCEDURE actualizeaza_tabstop
*!* Butoanele "..." ies din ordinea de tab cand valoarea lor e deja completata,
*!* ca Tab/Enter sa nu se mai opreasca pe ele (cautarea ramane pe dublu-click/GotFocus).
This.cmdFelDoc.TabStop = Empty(Nvl(This.nIdFdoc, 0)) And Empty(Alltrim(Nvl(This.cFelDoc, '')))
This.cmdPartener.TabStop = Empty(Nvl(This.nIdPartener, 0))
This.cmdExplicatieTva.TabStop = Empty(Nvl(This.nIdExplicatieTva, 0))
This.cmdFelDocDVI.TabStop = Empty(Nvl(This.nIdFdocDVI, 0)) And Empty(Alltrim(Nvl(This.cFelDocDvi, '')))
This.cmdDviPartener.TabStop = Empty(Nvl(This.nDviIdPartener, 0))
This.cmdValuta.TabStop = Empty(Nvl(This.nIdValuta, 0)) And Empty(Alltrim(Nvl(This.cValuta, '')))
ENDPROC
PROCEDURE arata_valuta_curs
*!* Arata/ascunde selectorul de valuta si cursul (bifa "Suma in valuta in contabilitate").
Lparameters tlArata
This.lblValuta.Visible = tlArata
This.txtValuta.Visible = tlArata
This.cmdValuta.Visible = tlArata
This.lblCurs.Visible = tlArata
This.txtCurs.Visible = tlArata
ENDPROC
PROCEDURE construieste_todlg
*!* Construieste obiectul toDlg pentru import_nota.do_adauga_factura().
*!* Contract populabil programatic (nu doar din UI) - vezi docs M2.
Local loT
loT = Createobject('Empty')
Addproperty(loT, 'serie_act', Alltrim(Nvl(This.cSerieAct, '')))
Addproperty(loT, 'nract', This.nNract)
Addproperty(loT, 'dataact', This.dDataAct)
Addproperty(loT, 'fdoc', This.cFelDoc)
Addproperty(loT, 'id_fdoc', This.nIdFdoc)
Addproperty(loT, 'id_partc', This.nIdPartener)
Addproperty(loT, 'partc', This.cPartener)
Addproperty(loT, 'explicatia', Alltrim(Nvl(This.cExplicatia, '')))
Addproperty(loT, 'suma', Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, Iif(This.nSumaLei <> 0, This.nSumaLei, Round(This.nSuma * This.nCurs, m.gnPC)), This.nSuma))
Addproperty(loT, 'suma_val', Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, This.nSuma, 0))
Addproperty(loT, 'in_valuta', This.chkInValutaCont.Value)
Addproperty(loT, 'participa_valuta', (This.chkParticipaValuta.Value = 1))
Addproperty(loT, 'id_valuta', Iif(This.chkInValutaCont.Value = 1, This.nIdValuta, 0))
Addproperty(loT, 'curs', Iif(This.chkInValutaCont.Value = 1, This.nCurs, 0))
Addproperty(loT, 'nume_val', Iif(This.chkInValutaCont.Value = 1, Alltrim(Nvl(This.cValuta, '')), ''))
Addproperty(loT, 'cTipTva', Iif(This.optTipTva.Value = 1, 'F', Iif(This.optTipTva.Value = 2, 'D', 'N')))
Addproperty(loT, 'id_jtva_coloana', This.nIdExplicatieTva)
If This.optTipTva.Value = 2
Addproperty(loT, 'dvi_serie', Chrtran(Alltrim(Nvl(This.cSerieDvi, '')), Chr(34), ''))
Addproperty(loT, 'dvi_nract', This.nNractDvi)
Addproperty(loT, 'dvi_dataact', This.dDviData)
Addproperty(loT, 'dvi_id_fdoc', This.nIdFdocDVI)
Addproperty(loT, 'dvi_fdoc', This.cFelDocDvi)
Addproperty(loT, 'dvi_id_partc', This.nDviIdPartener)
Addproperty(loT, 'dvi_partc', This.cDviPartener)
Addproperty(loT, 'dvi_scc', '401')
Addproperty(loT, 'dvi_tva_lei', This.nDviTvaLei)
Addproperty(loT, 'dvi_tva_val', This.nDviTvaVal)
Endif
Return loT
ENDPROC
PROCEDURE inainte_de_do_termin
*!* Hook standard _frmbase (apelat de do_termin, _frm_base.vc2:363): valideaza + adauga
*!* perechea (baza+TVA) prin import_nota.do_adauga_factura() +, daca reuseste, permite
*!* inchiderea dialogului (Return .T.). Return .F. tine dialogul deschis pentru corectare.
Local loFelDviCauta, llOk
If !Thisform.valideaza()
Return .F.
Endif
* la prima trecere pe "prin DVI" in aceasta sesiune, cer felul documentului DVI
* (devine cheia sesiunii pentru M1/memoria DVI - docs M2, autoplan #37)
If Thisform.optTipTva.Value = 2 And Empty(Nvl(Thisform.nIdFdocDVI, 0)) And Empty(Alltrim(Nvl(Thisform.cFelDocDvi, '')))
loFelDviCauta = caut_fdoc(.F., .T.)
If Vartype(loFelDviCauta) <> 'O' Or Empty(Nvl(loFelDviCauta.id_fdoc, 0))
Amessagebox('Alegeti felul documentului pentru DVI.', 0 + 48, 'Adauga factura')
Return .F.
Endif
Thisform.oParinte.nDviIdFdoc = loFelDviCauta.id_fdoc
Thisform.nIdFdocDVI = loFelDviCauta.id_fdoc
Thisform.cFelDocDvi = loFelDviCauta.fel_document
Thisform.oParinte.cDviFelDoc = loFelDviCauta.fel_document
Endif
Thisform.LockScreen = .T.
Wait Window 'Se adauga factura...' Nowait
llOk = Thisform.oParinte.do_adauga_factura(Thisform.construieste_todlg())
Wait Clear
If llOk And Thisform.optTipTva.Value = 2
* memoria DVI (identitate document) traieste pe import_nota
Thisform.oParinte.cDviSerie = Chrtran(Alltrim(Nvl(Thisform.cSerieDvi, '')), Chr(34), '')
Thisform.oParinte.cDviNr = Alltrim(Str(Thisform.nNractDvi, 14))
Thisform.oParinte.dDviData = Thisform.dDviData
Thisform.oParinte.nDviIdPartener = Thisform.nDviIdPartener
Thisform.oParinte.cDviPartener = Thisform.cDviPartener
Thisform.oParinte.cDviFelDoc = Thisform.cFelDocDvi
Thisform.oParinte.nDviIdFdoc = Thisform.nIdFdocDVI
Endif
Thisform.LockScreen = .F.
Return llOk
ENDPROC
PROCEDURE Init
Lparameters toParinte
DoDefault()
This.oParinte = toParinte
This.dData = Iif(Vartype(toParinte.oact.dataact) = 'D' And !Empty(toParinte.oact.dataact), toParinte.oact.dataact, Date())
This.dDataAct = This.dData
This.nIdValuta = Nvl(toParinte.oact.id_valuta, 0)
This.cValuta = Alltrim(Nvl(toParinte.oact.nume_val, ''))
This.nCurs = Nvl(toParinte.oact.curs, 1)
This.cExplicatia = ''
* pre-completare din antetul notei (toParinte.oact = Scatter din vact) - Marius alege
* felul documentului, furnizorul si cursul la deschiderea notei; dialogul le mosteneste,
* editabile. Guard Type() ca sa nu crape Init daca vreun camp lipseste din vact.
If Type('toParinte.oact.id_fdoc') <> 'U'
This.nIdFdoc = Nvl(toParinte.oact.id_fdoc, 0)
This.cFelDoc = Alltrim(Nvl(toParinte.oact.fdoc, ''))
Endif
If Type('toParinte.oact.id_partc') <> 'U'
This.nIdPartener = Nvl(toParinte.oact.id_partc, 0)
This.cPartener = Alltrim(Nvl(toParinte.oact.partc, ''))
Endif
If Type('toParinte.oact.serie_act') <> 'U'
This.cSerieAct = Alltrim(Nvl(toParinte.oact.serie_act, ''))
Endif
* memoria DVI, daca a mai fost folosita in aceasta sesiune a formularului import_nota
This.cDviSerie = toParinte.cDviSerie
This.cDviPartener = toParinte.cDviPartener
This.dDviData = toParinte.dDviData
This.nDviIdPartener = toParinte.nDviIdPartener
This.cFelDocDvi = Nvl(toParinte.cDviFelDoc, '')
This.nIdFdocDVI = Nvl(toParinte.nDviIdFdoc, 0)
This.nNractDvi = Val(Nvl(toParinte.cDviNr, '0'))
* explicatia TVA default: iau din randul 1 (baza) al perechii - baza defineste
* documentul (ex. "Ach. CE"); randul 2 e TVA ("TVA Ach. CE"). Daca introdc e goala
* (prima factura) iau din introdc_sablon, altfel din prima pereche din introdc.
Local lnSelIni
lnSelIni = Select()
This.nIdExplicatieTva = 0
This.cExplicatieTva = ''
This.nProcentTva = 0
If Used('introdc') And Reccount('introdc') >= 2
Select introdc
Go TOP
This.nIdExplicatieTva = Nvl(id_jtva_coloana, 0)
This.cExplicatieTva = Alltrim(Nvl(explicatie_tva, ''))
This.nProcentTva = Nvl(ptva, 0)
Else
If Used('introdc_sablon') And Reccount('introdc_sablon') >= 2
Select introdc_sablon
Go TOP
This.nIdExplicatieTva = Nvl(id_jtva_coloana, 0)
This.cExplicatieTva = Alltrim(Nvl(explicatie_tva, ''))
This.nProcentTva = Nvl(ptva, 0)
Endif
Endif
Select (lnSelIni)
This.optTipTva.Value = 1
This.actualizeaza_stare_valuta()
This.actualizeaza_stare_dvi()
This.actualizeaza_tabstop()
This.Refresh()
ENDPROC
PROCEDURE recalc_tva
*!* Precompleteaza TVA-ul DVI din baza facturii si cota (This.nProcentTva):
*!* in valuta: TVA_val = baza_val * cota/100, TVA_lei = TVA_val * curs;
*!* in lei (RON): TVA_lei = baza_lei * cota/100. Utilizatorul poate corecta.
Local lnCota, lnBazaVal, lnTvaVal, lnTvaLei
lnCota = Nvl(This.nProcentTva, 0)
* suma fara TVA in lei (editabila): o recalculez doar daca nu a fost editata manual
If !This.lSumaLeiDirty
If This.chkInValutaCont.Value = 1 And This.nCurs <> 0
This.nSumaLei = Round(This.nSuma * This.nCurs, m.gnPC)
Else
This.nSumaLei = Round(This.nSuma, m.gnPC)
Endif
This.txtSumaLei.Refresh()
Endif
If This.optTipTva.Value = 2 And lnCota > 0 And This.nSuma <> 0
If This.chkInValutaCont.Value = 1 And This.nCurs <> 0
lnBazaVal = This.nSuma
lnTvaVal = Round(lnBazaVal * lnCota / 100, m.gnPval)
lnTvaLei = Round(lnTvaVal * This.nCurs, m.gnPC)
Else
lnTvaVal = 0
lnTvaLei = Round(This.nSuma * lnCota / 100, m.gnPC)
Endif
This.nDviTvaVal = lnTvaVal
This.nDviTvaLei = lnTvaLei
This.txtDviTvaVal.Value = lnTvaVal
This.txtDviTvaLei.Value = lnTvaLei
Endif
ENDPROC
PROCEDURE seteaza_masti
*!* Masti de precizie pe sumele din dialog: valorile in valuta cu m.gnPval,
*!* valorile in lei cu m.gnPC - acelasi mecanism ca in grid (get_mask).
Local llValuta
llValuta = (This.chkInValutaCont.Value = 1 And This.nCurs <> 0)
This.txtSuma.InputMask = get_mask(12, Iif(llValuta, m.gnPval, m.gnPC))
This.txtSumaLei.InputMask = get_mask(12, m.gnPC)
This.txtDviTvaVal.InputMask = get_mask(12, m.gnPval)
This.txtDviTvaLei.InputMask = get_mask(12, m.gnPC)
ENDPROC
PROCEDURE valideaza
*!* Validari la "Termin", numite explicit, fara crash (docs/propuneri_ergonomie_import.md, M2).
If Empty(Nvl(This.nIdFdoc, 0)) And Empty(Alltrim(Nvl(This.cFelDoc, '')))
Amessagebox('Alegeti felul documentului.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.nNract = 0
Amessagebox('Completati numarul actului.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If Vartype(This.dDataAct) <> 'D' Or Empty(This.dDataAct)
Amessagebox('Completati data documentului.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If Year(This.dDataAct) <> m.gnAn Or Month(This.dDataAct) <> m.gnLuna
Amessagebox('Data documentului nu este in perioada de lucru (' + Alltrim(Str(m.gnLuna)) + '/' + Alltrim(Str(m.gnAn)) + ').', 0 + 48, 'Adauga factura')
Return .F.
Endif
If Empty(Nvl(This.nIdPartener, 0))
Amessagebox('Alegeti partenerul.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.nSuma = 0
Amessagebox('Suma nu poate fi zero.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.optTipTva.Value = 1 And Empty(Nvl(This.nIdExplicatieTva, 0))
Amessagebox('Alegeti explicatia TVA.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.optTipTva.Value = 2
If This.nNractDvi = 0 Or Vartype(This.dDviData) <> 'D' Or Empty(This.dDviData)
Amessagebox('Completati numarul si data DVI-ului.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If Empty(Nvl(This.nDviIdPartener, 0))
Amessagebox('Alegeti partenerul vamal (DVI).', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.nDviTvaLei = 0
Amessagebox('TVA in lei (DVI) trebuie sa fie mai mare decat zero.', 0 + 48, 'Adauga factura')
Return .F.
Endif
Endif
Return .T.
ENDPROC
PROCEDURE chkInValutaCont.InteractiveChange
*!* bifa scoasa = suma NU se inregistreaza in valuta: valuta si cursul nu au sens,
*!* le ascund; valorile raman memorate pe forma si revin la re-bifare.
Thisform.lInValutaDirty = .T.
Thisform.arata_valuta_curs(This.Value = 1)
Thisform.seteaza_masti()
Thisform.recalc_tva()
ENDPROC
PROCEDURE cmdDviPartener.Click
Local loCauta
loCauta = caut_partener(-2, 'Alegeti partenerul DVI', .F., .T.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_part, 0))
Thisform.nDviIdPartener = loCauta.id_part
Thisform.cDviPartener = Alltrim(loCauta.denumire)
Thisform.txtDviPartener.Refresh()
Endif
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE cmdExplicatieTva.Click
*!* Cauta explicatia TVA filtrata dupa procentul ales (Thisform.nProcentTva) - acelasi
*!* mecanism ca in grid (do_modifica_explicatie_tva): cauta_alfa direct pe vjtva_coloane
*!* cu filtru pe cota_tva. Procent 0/gol => toate cotele.
Local loCauta, lnCota, lcFiltru
lnCota = Nvl(Thisform.nProcentTva, 0)
lcFiltru = [id_jtva_coloana > 0]
If lnCota > 0
lcFiltru = lcFiltru + [ and cota_tva = ] + Alltrim(Str(lnCota, 10, 2))
Endif
loCauta = cauta_alfa([select id_jtva_coloana, denumire, cota_tva FROM vjtva_coloane], [1=2], [], ;
[denumire], [denumire,cota_tva], [Alegeti explicatia TVA], [Explicatie TVA,Cota TVA], ;
[], .F., lcFiltru)
If Vartype(loCauta) <> 'O' Or Empty(Nvl(loCauta.id_jtva_coloana, 0))
Return
Endif
Thisform.nIdExplicatieTva = loCauta.id_jtva_coloana
Thisform.cExplicatieTva = Alltrim(loCauta.denumire)
Thisform.nProcentTva = Nvl(loCauta.cota_tva, 0)
Thisform.txtExplicatieTva.Refresh()
If Pemstatus(Thisform, 'txtProcentTva', 5)
Thisform.txtProcentTva.Refresh()
Endif
Thisform.recalc_tva()
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE cmdFelDoc.Click
Local loCauta
loCauta = caut_fdoc(.F., .T.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_fdoc, 0))
Thisform.nIdFdoc = loCauta.id_fdoc
Thisform.cFelDoc = loCauta.fel_document
Thisform.txtFelDoc.Refresh()
Thisform.txtSerie.SetFocus()
Endif
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE cmdFelDocDVI.Click
Local loCauta
loCauta = caut_fdoc(.F., .T.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_fdoc, 0))
Thisform.nIdFdocDVI = loCauta.id_fdoc
Thisform.cFelDocDVI = loCauta.fel_document
Thisform.txtFelDocDVI.Refresh()
Thisform.txtDVINr.SetFocus()
Endif
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE cmdPartener.Click
Local loCauta
loCauta = caut_partener(-2, 'Alegeti furnizorul', .F., .T.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_part, 0))
Thisform.nIdPartener = loCauta.id_part
Thisform.cPartener = Alltrim(loCauta.denumire)
Thisform.txtPartener.Refresh()
Thisform.txtSuma.SetFocus()
Endif
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE cmdValuta.Click
Local loCauta
loCauta = caut_valuta(, .F., .F.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_valuta, 0))
Thisform.nIdValuta = loCauta.id_valuta
Thisform.cValuta = Alltrim(loCauta.nume_val)
Thisform.txtValuta.Refresh()
Thisform.lCursDirty = .F.
Thisform.lInValutaDirty = .F.
Thisform.actualizeaza_stare_valuta()
Thisform.recalc_tva()
Endif
Thisform.actualizeaza_tabstop()
ENDPROC
PROCEDURE optTipTva.InteractiveChange
Thisform.actualizeaza_stare_dvi()
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtCurs.Valid
If !Thisform.lSuprimaDirty
Thisform.lCursDirty = .T.
Endif
Thisform.nCurs = This.Value
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtData.Valid
This.Parent.dDataAct = This.Value
This.Parent.actualizeaza_stare_valuta()
ENDPROC
PROCEDURE txtDviPartener.DblClick
Thisform.cmddviPartener.Click()
ENDPROC
PROCEDURE txtDviPartener.GotFocus
If This.Tag == 'SKIP'
This.Tag = ''
Return
Endif
If Thisform.optTipTva.Value = 2 And Empty(Nvl(Thisform.nDviIdPartener, 0))
This.Tag = 'SKIP'
Thisform.cmdDviPartener.Click()
Endif
ENDPROC
PROCEDURE txtDviPartener.InteractiveChange
Thisform.cmddviPartener.Click()
This.Value = Thisform.cDviPartener
ENDPROC
PROCEDURE txtExplicatieTva.DblClick
Thisform.cmdExplicatieTva.Click()
ENDPROC
PROCEDURE txtExplicatieTva.InteractiveChange
Thisform.cmdExplicatieTva.Click()
this.Value = Thisform.cExplicatieTva
ENDPROC
PROCEDURE txtFelDoc.DblClick
thisform.cmdfelDoc.Click()
ENDPROC
PROCEDURE txtFelDoc.GotFocus
If This.Tag == 'SKIP'
This.Tag = ''
Return
Endif
If Empty(Nvl(Thisform.nIdFdoc, 0)) And Empty(Alltrim(Nvl(Thisform.cFelDoc, '')))
This.Tag = 'SKIP'
Thisform.cmdFelDoc.Click()
Endif
ENDPROC
PROCEDURE txtFelDoc.InteractiveChange
thisform.cmdfelDoc.Click()
This.Value = Thisform.cFelDoc
ENDPROC
PROCEDURE txtFelDocDVI.DblClick
thisform.cmdfelDocDVI.Click()
ENDPROC
PROCEDURE txtFelDocDVI.GotFocus
If This.Tag == 'SKIP'
This.Tag = ''
Return
Endif
If Thisform.optTipTva.Value = 2 And Empty(Nvl(Thisform.nIdFdocDVI, 0)) And Empty(Alltrim(Nvl(Thisform.cFelDocDvi, '')))
This.Tag = 'SKIP'
Thisform.cmdFelDocDVI.Click()
Endif
ENDPROC
PROCEDURE txtFelDocDVI.InteractiveChange
Thisform.cmdFelDocDVI.Click()
This.Value = Thisform.cFelDocDVI
ENDPROC
PROCEDURE txtPartener.DblClick
Thisform.cmdPartener.Click()
ENDPROC
PROCEDURE txtPartener.GotFocus
If This.Tag == 'SKIP'
This.Tag = ''
Return
Endif
If Empty(Nvl(Thisform.nIdPartener, 0))
This.Tag = 'SKIP'
Thisform.cmdPartener.Click()
Endif
ENDPROC
PROCEDURE txtPartener.InteractiveChange
Thisform.cmdPartener.Click()
This.Value = Thisform.cPartener
ENDPROC
PROCEDURE txtProcentTva.Valid
Thisform.nProcentTva = This.Value
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtSuma.Valid
If This.Value <> Thisform.nSuma
* suma s-a schimbat: reiau calculul automat al sumei in lei
Thisform.lSumaLeiDirty = .F.
Endif
Thisform.nSuma = This.Value
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtSumaLei.Valid
If This.Value <> Thisform.nSumaLei
Thisform.nSumaLei = This.Value
Thisform.lSumaLeiDirty = .T.
Endif
ENDPROC
PROCEDURE txtValuta.DblClick
Thisform.cmdvaluta.Click()
ENDPROC
ENDDEFINE
DEFINE CLASS import_nir AS frm_termin_renunt OF "_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="Label3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_executa1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_leiftva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_leiadaos" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_leitva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valftva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valadaos" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valtva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cDenumire.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cDenumire.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCodMat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCodMat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCant.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCant.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretFactura.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretFactura.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretValutaCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretValutaCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretLeiCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPretLeiCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareValutaFactura.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareValutaFactura.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareValutaCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareValutaCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareLeiCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValoareLeiCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCont.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCont.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAcont.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAcont.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSerie.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSerie.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cLot.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cLot.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAdata_expirare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAdata_expirare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.Column1.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.Column1.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_diferente_lei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="clb_diferente_valuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_adauga1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_adauga2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modiparam1" UniqueID="" Timestamp="" />
*
*m: assign_analitic
*m: do_calculeaza_diferente
*m: do_modiparam
*p: lintern && Achizitie din import (.F.) / din intern (.T.)
*p: nbaza_lei
*p: nbaza_val
*p: ncurs
*p: ndif_lei
*p: ndif_val
*p: ntva_lei
*p: ntva_val
*p: oact
*p: procent_lei
*p: procent_val
*
*
BorderStyle = 1
DoCreate = .T.
FontCharSet = 238
Height = 432
lintern = .F.
Name = "import_nir"
nbaza_lei = 0
nbaza_val = 0
ncurs = 0
ndif_lei = 0
ndif_val = 0
ntva_lei = 0
ntva_val = 0
oact = .F.
procent_lei = 0
procent_val = 0
Width = 768
_shape1.Anchor = 10
_shape1.Height = 29
_shape1.Left = -12
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 797
_shape2.Height = 29
_shape2.Left = 673
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Visible = .F.
_shape2.Width = 194
Lb_titlu_alb_b121.Caption = "INTRARE IN GESTIUNE MARFÃ/MATERIALE IMPORT"
Lb_titlu_alb_b121.FontSize = 11
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 1
BUT_TERMIN1.Anchor = 8
BUT_TERMIN1.Left = 738
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 2
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
But_renunt1.Anchor = 8
But_renunt1.Left = 707
But_renunt1.Name = "But_renunt1"
But_renunt1.TabIndex = 3
But_renunt1.Top = 1
*
ADD OBJECT 'But_modiparam1' AS but_modiparam WITH ;
Anchor = 8, ;
Left = 677, ;
Name = "But_modiparam1", ;
ToolTipText = "Import fisier XLS", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Clb_diferente_lei' AS clb_tx_simplu WITH ;
Anchor = 12, ;
Height = 29, ;
Left = 543, ;
Name = "Clb_diferente_lei", ;
TabIndex = 15, ;
TabStop = .F., ;
Top = 392, ;
Width = 219, ;
Text_simplu1.ControlSource = "thisform.ndif_lei", ;
Text_simplu1.DisabledBackColor = 230,242,255, ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPc)), ;
Text_simplu1.Left = 79, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 135, ;
Lb_simplu1.Caption = "Diferenþe lei", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'clb_diferente_valuta' AS clb_tx_simplu WITH ;
Anchor = 12, ;
Height = 29, ;
Left = 318, ;
Name = "clb_diferente_valuta", ;
TabIndex = 16, ;
TabStop = .F., ;
Top = 392, ;
Width = 226, ;
Text_simplu1.ControlSource = "thisform.ndif_val", ;
Text_simplu1.DisabledBackColor = 240,248,255, ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPval)), ;
Text_simplu1.Left = 98, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 125, ;
Lb_simplu1.Caption = "Diferenþe valutã", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_leiadaos' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 615, ;
Name = "Clb_leiadaos", ;
TabIndex = 7, ;
TabStop = .F., ;
Top = 51, ;
Width = 146, ;
Text_simplu1.ControlSource = "thisform.procent_lei", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "9999.99", ;
Text_simplu1.Left = 93, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 49, ;
Lb_simplu1.Caption = "Procent adaos", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_leiftva' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 69, ;
Name = "Clb_leiftva", ;
TabIndex = 6, ;
TabStop = .F., ;
Top = 51, ;
Width = 270, ;
Text_simplu1.ControlSource = "thisform.nbaza_lei", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPc)), ;
Text_simplu1.Left = 131, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 135, ;
Lb_simplu1.Caption = "Total facturat fãrã TVA", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_leitva' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 342, ;
Name = "Clb_leitva", ;
TabIndex = 8, ;
TabStop = .F., ;
Top = 51, ;
Width = 270, ;
Text_simplu1.ControlSource = "thisform.ntva_lei", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPc)), ;
Text_simplu1.Left = 131, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 135, ;
Lb_simplu1.Caption = "Total facturat TVA", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valadaos' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 615, ;
Name = "Clb_valadaos", ;
TabIndex = 10, ;
TabStop = .F., ;
Top = 79, ;
Width = 146, ;
Text_simplu1.ControlSource = "thisform.procent_val", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = "9999.99", ;
Text_simplu1.Left = 93, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 49, ;
Lb_simplu1.Caption = "Procent adaos", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valftva' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 69, ;
Name = "Clb_valftva", ;
TabIndex = 9, ;
TabStop = .F., ;
Top = 79, ;
Width = 270, ;
Text_simplu1.ControlSource = "thisform.nbaza_val", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPval)), ;
Text_simplu1.Left = 131, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 135, ;
Lb_simplu1.Caption = "Total facturat fãrã TVA", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valtva' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 342, ;
Name = "Clb_valtva", ;
TabIndex = 11, ;
TabStop = .F., ;
Top = 79, ;
Width = 270, ;
Text_simplu1.ControlSource = "thisform.ntva_val", ;
Text_simplu1.FontName = "Arial Narrow", ;
Text_simplu1.FontSize = 10, ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(10,gnPval)), ;
Text_simplu1.Left = 131, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 135, ;
Lb_simplu1.Caption = "Total facturat TVA", ;
Lb_simplu1.Comment = "", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Cmd_adauga1' AS cmd_adauga WITH ;
Anchor = 4, ;
Caption = "\
ADD OBJECT 'Cmd_adauga2' AS cmd_adauga WITH ;
Anchor = 4, ;
caction = do_copie, ;
Caption = "\
ADD OBJECT 'Cmd_executa1' AS cmd_executa WITH ;
Anchor = 4, ;
caction = do_Reface, ;
Caption = "\
ADD OBJECT 'Grid1' AS grid WITH ;
Anchor = 15, ;
ColumnCount = 15, ;
FontSize = 10, ;
Height = 273, ;
Left = 7, ;
Name = "Grid1", ;
Panel = 1, ;
RecordSource = "rul_temp", ;
RowHeight = 19, ;
TabIndex = 14, ;
Top = 115, ;
Width = 756, ;
Column1.ControlSource = "denumire", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cDenumire", ;
Column1.ReadOnly = .T., ;
Column1.Width = 181, ;
Column2.ControlSource = "codmat", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.Name = "cCodMat", ;
Column2.ReadOnly = .T., ;
Column2.Width = 84, ;
Column3.BackColor = 240,248,255, ;
Column3.ColumnOrder = 6, ;
Column3.ControlSource = "cant", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.InputMask = (get_mask(10,gnPcant)), ;
Column3.Name = "cCant", ;
Column3.Width = 67, ;
Column4.BackColor = 230,242,255, ;
Column4.ColumnOrder = 7, ;
Column4.ControlSource = "pret_val", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.InputMask = (get_mask(10,gnPpretval)), ;
Column4.Name = "cPretFactura", ;
Column4.Width = 108, ;
Column5.BackColor = 240,248,255, ;
Column5.ColumnOrder = 9, ;
Column5.ControlSource = "pretd", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.InputMask = (get_mask(10,gnPPretval)), ;
Column5.Name = "cPretValutaCalculat", ;
Column5.Width = 114, ;
Column6.BackColor = 230,242,255, ;
Column6.ColumnOrder = 10, ;
Column6.ControlSource = "pret", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.InputMask = (get_mask(10,gnPpret)), ;
Column6.Name = "cPretLeiCalculat", ;
Column6.Width = 83, ;
Column7.Bound = .F., ;
Column7.ColumnOrder = 11, ;
Column7.ControlSource = "round(pret_val*cant, gnPval)", ;
Column7.FontName = "Arial", ;
Column7.FontSize = 10, ;
Column7.InputMask = (get_mask(16,gnPval)), ;
Column7.Name = "cValoareValutaFactura", ;
Column7.Width = 128, ;
Column8.Bound = .F., ;
Column8.ColumnOrder = 12, ;
Column8.ControlSource = "round(pretd*cant, gnPval)", ;
Column8.FontName = "Arial", ;
Column8.FontSize = 10, ;
Column8.InputMask = (get_mask(16,gnPval)), ;
Column8.Name = "cValoareValutaCalculat", ;
Column8.Width = 97, ;
Column9.Bound = .F., ;
Column9.ColumnOrder = 13, ;
Column9.ControlSource = "round(pret*cant, gnPc)", ;
Column9.FontName = "Arial", ;
Column9.FontSize = 10, ;
Column9.InputMask = (get_mask(10,gnPc)), ;
Column9.Name = "cValoareLeiCalculat", ;
Column9.Width = 104, ;
Column10.BackColor = 240,248,255, ;
Column10.ColumnOrder = 4, ;
Column10.ControlSource = "cont", ;
Column10.FontName = "Arial", ;
Column10.FontSize = 10, ;
Column10.Name = "cCont", ;
Column10.ReadOnly = .F., ;
Column10.Width = 43, ;
Column11.BackColor = 240,248,255, ;
Column11.ColumnOrder = 5, ;
Column11.ControlSource = "acont", ;
Column11.FontName = "Arial", ;
Column11.FontSize = 10, ;
Column11.Name = "cAcont", ;
Column11.ReadOnly = .F., ;
Column11.Width = 47, ;
Column12.BackColor = 240,248,255, ;
Column12.ColumnOrder = 3, ;
Column12.ControlSource = "serie", ;
Column12.FontName = "Arial", ;
Column12.FontSize = 10, ;
Column12.Format = "!K", ;
Column12.Name = "cSerie", ;
Column12.Width = 123, ;
Column13.BackColor = 240,248,255, ;
Column13.ColumnOrder = 14, ;
Column13.ControlSource = "lot", ;
Column13.FontName = "Arial", ;
Column13.FontSize = 10, ;
Column13.Name = "cLot", ;
Column14.BackColor = 240,248,255, ;
Column14.ColumnOrder = 15, ;
Column14.ControlSource = "adata_expirare", ;
Column14.FontName = "Arial", ;
Column14.FontSize = 10, ;
Column14.Name = "cAdata_expirare", ;
Column14.Width = 79, ;
Column15.BackColor = 240,248,255, ;
Column15.ColumnOrder = 8, ;
Column15.ControlSource = "proc_disc", ;
Column15.FontName = "Arial", ;
Column15.FontSize = 10, ;
Column15.InputMask = (get_mask(3,2)), ;
Column15.Name = "Column1", ;
Column15.Width = 50
*< END OBJECT: BaseClass="grid" />
ADD OBJECT 'Grid1.cAcont.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Analitic", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cAcont.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cAdata_expirare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data expirare", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cAdata_expirare.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cCant.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cantitate", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cCant.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cCodMat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cod material", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cCodMat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cCont.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cont", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cCont.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cDenumire.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Denumire", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cDenumire.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cLot.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Lot", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cLot.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.Column1.Header1' AS header WITH ;
Caption = "Disc. %", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.Column1.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cPretFactura.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret valuta factura", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPretFactura.Text1' AS textbox WITH ;
BackColor = 230,242,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cPretLeiCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret unitar", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPretLeiCalculat.Text1' AS textbox WITH ;
BackColor = 230,242,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cPretValutaCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret valuta calculat", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPretValutaCalculat.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cSerie.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Serie", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cSerie.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cValoareLeiCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cValoareLeiCalculat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cValoareValutaCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare valuta", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cValoareValutaCalculat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cValoareValutaFactura.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare valuta factura", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cValoareValutaFactura.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Label3' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Moneda", ;
FontBold = .T., ;
Height = 17, ;
Left = 7, ;
Name = "Label3", ;
TabIndex = 4, ;
Top = 35, ;
Width = 45, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblLei' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Naþionalã", ;
FontCharSet = 238, ;
Height = 17, ;
Left = 12, ;
Name = "lblLei", ;
TabIndex = 12, ;
Top = 57, ;
Width = 53, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblValuta' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Valutã", ;
FontCharSet = 238, ;
Height = 17, ;
Left = 12, ;
Name = "lblValuta", ;
TabIndex = 13, ;
Top = 85, ;
Width = 33, ;
WordWrap = .T.
*< END OBJECT: BaseClass="label" />
PROCEDURE assign_analitic
PARAMETERS tcCont,pcAct,pcRul
PRIVATE pcCont,pcAct,pcRul,pParamP,pParamS
STORE 0 TO pParamP,pParamS
lcAnalitic = ''
lcAlias = ALIAS()
pcCont = ALLTRIM(tcCont)
lcSel = [SELECT * from ] + gcs + [.config_analitice WHERE cont = ?pcCont]
lcCursor = 'crs_cfg_ana'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
RETURN
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_cfg_ana')=0
USE IN crs_cfg_ana
lnSucces = -1
ENDIF
ENDIF
IF lnSucces > 0
SELECT crs_cfg_ana
SCATTER NAME ocfg
lcCampPrefix = NVL(ALLTRIM(ocfg.camp_leg_prefix),'')
lcCampSufix = NVL(ALLTRIM(ocfg.camp_leg_sufix),'')
IF !EMPTY(lcCampPrefix)
IF TYPE('&pcRul..'+lcCampPrefix) # 'U'
pParamP = &pcRul..&lcCampPrefix
ELSE
IF TYPE('&pcAct..'+lcCampPrefix) # 'U'
pParamP = &pcAct..&lcCampPrefix
ENDIF
ENDIF
ENDIF
IF !EMPTY(lcCampSufix)
IF TYPE('&pcRul..'+lcCampSufix) # 'U'
pParamS = &pcRul..&lcCampSufix
ELSE
IF TYPE('&pcAct..'+lcCampSufix) # 'U'
pParamS = &pcAct..&lcCampSufix
ENDIF
ENDIF
ENDIF
lcSel = [{call fconturi_analitice(?gcs,?pcCont,0,?pParamP,?pParamS)}]
lcCursor = 'crs_analitice'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
IF lnSucces > 0
SELECT crs_analitice
GO top
lcAnalitic = ALLTRIM(acont)
ENDIF
&& verificare analiticului cu Planul de Conturi
IF lnSucces > 0
lcSel = [SELECT cont,acont from ] + gcs + [.vplcont_analitic WHERE cont = ?pcCont and acont = ?lcAnalitic and an = ?gnAn ]
lcCursor = 'crs_verific'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_verific')=0
lnSucces = -1
ENDIF
ENDIF
IF USED('crs_cfg_ana')
USE IN crs_cfg_ana
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF USED('crs_analitice')
USE IN crs_analitice
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF lnSucces < 0
lcAnalitic = ''
ENDIF
SELECT (lcAlias)
RETURN lcAnalitic
****
ENDPROC
PROCEDURE do_adauga
lcLista = ['-1']
SELECT DISTINCT scd FROM actactan WHERE suma <> 0 INTO CURSOR tconturi
SELECT tconturi
SCAN
lcLista = lcLista + [,'] + ALLTRIM(scd) + [']
ENDSCAN
LOCAL lcXMLArticole, lcFiltru, lcCrsArt, lcCrsNir
lcFiltru = [a.cont in (] + lcLista + [)]
lcXMLArticole = cauta_nom_articole(lcFiltru) && ocautare.prg - selectie multipla (click/SPACE); adauga singura a.inactiv = 0
IF gnButon = 1 AND !EMPTY(lcXMLArticole)
lcCrsArt = [crsArtAlese]
XMLTOCURSOR(lcXMLArticole, lcCrsArt)
lcCrsNir = THIS.grid1.RECORDSOURCE
loAct = THIS.oact
SELECT (lcCrsArt)
SCAN
SCATTER NAME loArt
SELECT (lcCrsNir)
APPEND BLANK
GATHER NAME loAct
GATHER NAME loArt
REPLACE id_gestiune WITH loAct.id_gestin
SCATTER NAME lorul && pentru id_gestiune
lcAcont = THISFORM.assign_analitic(lorul.CONT,THISFORM.oact,'lorul')
SELECT (lcCrsNir)
REPLACE acont WITH lcAcont, tva WITH ROUND(pret * (proc_tva-1), gnPpret)
SELECT (lcCrsArt)
ENDSCAN
USE IN (lcCrsArt)
THIS.grid1.REFRESH
ENDIF
THIS.GRid1.cserie.SetFocus()
ENDPROC
PROCEDURE do_calculeaza_diferente
PARAMETERS tnRecNo, tcCursor && modificare v 2.1.3 : am adaugat tcCursor
*!* modificare v 2.1.3
*!* lcSel = Thisform.grid1.RecordSource
If Empty(tcCursor)
lcSel = Thisform.grid1.RecordSource
Else
lcSel = tcCursor
Endif
*!* modificare v 2.1.3 ^
SELECT (lcSel)
SUM ROUND(Pret*cant,gnPc) TO lnLeiTot
SUM ROUND(Pretd*cant,gnPval) TO lnValTot
thisform.ndif_lei = thisform.nbaza_lei - lnLeiTot
thisform.ndif_val = thisform.nbaza_val - lnValTot
thisform.clb_diferente_lei.Refresh
thisform.clb_diferente_valuta.Refresh
SELECT (lcSel)
IF tnRecNo = 1
LOCATE
ELSE
TRY
GO tnRecNo
CATCH
GO TOP
ENDTRY
ENDIF
ENDPROC
PROCEDURE do_copie
lcSelect = this.grid1.RecordSource
SELECT (lcSelect)
SCATTER NAME loRec
INSERT INTO (lcSelect) FROM NAME loRec
this.do_reface()
this.grid1.SetFocus()
ENDPROC
PROCEDURE do_executa
PARAMETERS tnNivel, tRecNo, tnValue, tcCursor && modificare v 2.1.3 : am adaugat tcCursor
*!* DEBUG
*!* SUSPEND
*!* modificare v 2.1.3
*!* lcSel = Thisform.grid1.RecordSource
If Empty(tcCursor)
lcSel = Thisform.grid1.RecordSource
Else
lcSel = tcCursor
Endif
*!* modificare v 2.1.3 ^
SELECT (lcSel)
IF tnNivel <= 2
*WAIT WINDOW STR(tnValue,16,4)
IF this.lIntern
IF tnNivel <= 1
lnPretLei = ROUND(tnValue*thisform.procent_lei/100,gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
ELSE
lnPretLei = tnValue
ENDIF
&& modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretLei = ROUND(lnPretLei - (lnPretLei * proc_disc/100 ),gnPPret) && modificare v 2.1.37
REPLACE pret WITH lnPretLei
ELSE
IF tnNivel <= 1
lnPretVal = ROUND(tnValue*thisform.procent_val/100,gnPPretval) && modificare v 2.1.39 : gnPPretval in loc de gnPVal
ELSE
lnPretval = tnValue
ENDIF
lnPretVal = ROUND(lnPretVal - (lnPretVal * proc_disc/100 ),gnPPretval) && modificare v 2.1.39 : gnPPretval in loc de gnPVal
REPLACE pretd WITH lnPretval
lnPretLei = ROUND(ROUND(lnPretval*thisform.ncurs,gnPpret)*thisform.procent_lei/100,gnPpret)
REPLACE pret WITH lnPretLei
ENDIF
ENDIF
this.do_calculeaza_diferente(tRecNo,tcCursor) && modificare v 2.1.3 : am adaugat tcCursor
ENDPROC
PROCEDURE do_modiparam
Local lcSelect, lcFisier, lnIdArticol, lcCursor, lcCont, loAct, lnInregistrari
LOCAL loEx as Exception
Local lcAcont, lcDenumire, lcSelect2, lcSql, llSucces, lnSucces, loArticol
Local lcMesaj
Local lnRec
Local lnInStoc
Private pnIdArticol, lorul
loAct = This.oact
CALCULATE CNT() FOR !DELETED() TO lnInregistrari IN rul_temp
If m.lnInregistrari > 0
IF AMESSAGEBOX('Doriti sa stergeti reperele deja existente?',4+32,_screen.Caption) = 6
SELECT rul_temp
DELETE ALL
ENDIF
*!* amessagebox("Nu puteti face import daca ati adaugat deja repere pe nir!",48,"Atentie")
*!* Return
Endif
amessagebox("Fisierul XLS trebuie sa contina campurile (in aceasta ordine si fara capul de tabel): " + CHR(13) + CHR(10) + ;
[COD PRODUS, DENUMIRE, UM, CANTITATE, PRET IN VALUTA FARA TVA (de pe factura)] + Chr(13) + Chr(10) + Chr(13) + Chr(10) + ;
[Fisierul trebuie sa fie salvat cu formatul "Microsoft Excel 5.0/95 Workbook (*.xls)"] ,48,"Atentie")
lcFisier = Getfile("xls","Fisier factura","Alegeti",0,"Import fisier factura - format XLS")
If Empty(m.lcFisier) Or !File(m.lcFisier)
Return
ENDIF
lcSelect = "rul_temp"
llSucces = .F.
TRY
SELECT 0
Import From (lcFisier) Type Xls
lcSelect2 = Alias()
SELECT ALLTRIM(UPPER(TRANSFORM(a))) as codmat, UPPER(ALLTRIM(TRANSFORM(b))) as denumire, UPPER(ALLTRIM(TRANSFORM(c))) as um, ROUND(d,6) as cant, ROUND(e,6) as pret_val ;
FROM &lcSelect2 ;
INTO CURSOR crsImport
llSucces = .T.
Catch To loEx
lcMesaj = 'Fisierul ' + m.lcFisier + ' nu a putut fi importat.' + Chr(13) + Chr(10) + TRANSFORM(loEx.ErrorNo) + " "
IF loEx.ErrorNo = 1661
lcMesaj = m.lcMesaj + [Salvati fisierul in formatul "Microsoft Excel 5.0/95 Workbook (*.xls)"]
ELSE
lcMesaj = m.lcMesaj + loEx.Message
ENDIF
amessagebox(m.lcMesaj, 0+48, _Screen.Caption)
ENDTRY
IF !m.llSucces
RETURN
ENDIF
USE IN (SELECT(m.lcSelect2))
lcSelect2 = "crsImport"
*!* A = codmat
*!* B = denumire
*!* C = um
*!* D = cantitate
*!* E = pret achizitie in valuta
save_grid_tag(Thisform.grid1)
Select Distinct scd From actactan Where Inlist(Left(Alltrim(scd),1),'2','3') And suma <> 0 Into Cursor tconturi
If Reccount('tconturi') = 1
Select tconturi
lcCont = Alltrim(scd)
Else
lcCont = []
Endif
Use In tconturi
If Reccount(m.lcSelect2) > 0
lcCursor = [crstmpimpart]
Select (lcSelect2)
Scan
Scatter Name loArticol
If !Empty(Nvl(loArticol.cant,0))
pnIdArticol = 0
lcSql = [select id_articol,denumire,in_stoc,cont from nom_articole where UPPER(codmat) = '] + loArticol.codmat + [' and sters = 0]
If !goExecutor.oExecuta(lcSql,lcCursor)
amessagebox("A fost inregistrata o eroare la cautarea articolului " + loArticol.denumire + " pe nir!" + crlf + ;
"Iesiti din acest nir si reincercati operatia de preluare a fisierului!",48,"Atentie")
Exit
Else
Select (lcCursor)
If Reccount(lcCursor) > 0
Locate For Upper(Alltrim(denumire)) = loArticol.denumire
If !Found()
Go Top
Endif
lcDenumire = Upper(Alltrim(denumire))
If lcDenumire <> loArticol.denumire
If amessagebox("Articolul " + loArticol.denumire + " a fost gasit in baza de date dupa cod material, dar are denumirea de "+;
lcDenumire + ".Doriti sa pastrati denumirea din baza de date?" + crlf + ;
"( Daca apasati nu, atunci se va crea un articol nou cu denumirea din fisier )",4+32,"Denumire diferita") = 6
lnIdArticol = id_articol
lnInStoc = Nvl(in_stoc,1)
loArticol.denumire = m.lcDenumire
Else
*!*adauga_articol
If Empty(m.lcCont)
lcCont = Inputbox("Introduceti contul pentru articolul " + loArticol.denumire, "Cont articol ", m.lcCont, 5000,[371],[371])
Endif
lcSql = [begin pack_preturi.adauga_articol(?gnAn,'] + loArticol.codmat + [',NULL,NULL,] + ;
['] + loArticol.denumire + [','] + loArticol.um + [',] + ;
['] + Upper(Alltrim(m.lcCont)) + [',Null,0,0,NULL,NULL,0,NULL,1,0,0,?gnIdUtil,] + ;
ALLTRIM(Str(loAct.id_partc)) + [,0,0,?@pnIdArticol); end;]
goExecutor.oExecuta(lcSql)
lnIdArticol = m.pnIdArticol
lnInStoc = 1
Endif
Else
lnIdArticol = id_articol
lnInStoc = Nvl(in_stoc,1)
Endif
Else
*!* adauga articol
If Empty(m.lcCont)
lcCont = Inputbox("Introduceti contul pentru articolul " + loArticol.denumire, "Cont articol ", m.lcCont, 5000,[371],[371])
Endif
lcSql = [begin pack_preturi.adauga_articol(?gnAn,'] + loArticol.codmat + [',NULL,NULL,] + ;
['] + loArticol.denumire + [','] + loArticol.um + [',] + ;
['] + Upper(Alltrim(m.lcCont)) + [',Null,0,0,NULL,NULL,0,NULL,1,0,0,?gnIdUtil,] + ;
ALLTRIM(Str(loAct.id_partc)) + [,0,0,?@pnIdArticol); end;]
goExecutor.oExecuta(lcSql)
lnIdArticol = m.pnIdArticol
lnInStoc = 1
Endif
If lnIdArticol = 0
amessagebox("A fost inregistrata o eroare la adaugarea articolului " + loArticol.denumire + " pe NIR!" + crlf + ;
"Iesiti din acest nir si reincercati operatia de preluare a fisierului!",48,"Atentie")
Exit
Use In (lcCursor)
Else
*!* completez in rul_temp
Select (lcSelect)
Append Blank
Gather Name loAct
Replace Cont With m.lcCont, id_gestiune With loAct.id_gestin, id_articol With m.lnIdArticol,;
denumire With loArticol.denumire, codmat With loArticol.codmat,;
um With loArticol.um, cant With loArticol.cant, pret_val With loArticol.pret_val,;
in_stoc With m.lnInStoc
Scatter Name lorul
lcAcont = Thisform.assign_analitic(lorul.Cont, Thisform.oact, 'lorul')
Select (m.lcSelect)
Replace acont With m.lcAcont, tva With Round(Pret * (proc_tva-1), m.gnPpret)
Thisform.do_executa(1, Recno(), pret_val, m.lcSelect)
Use In (m.lcCursor)
Endif
Endif
Endif
Select (m.lcSelect2)
Endscan
Endif
Use In (select(lcSelect2))
Select (lcSelect)
GO TOP
lnRec = RECNO()
thisform.Do_calculeaza_diferente(m.lnRec, m.lcSelect)
restore_grid_tag(Thisform.grid1)
this.grid1.SetFocus()
ENDPROC
PROCEDURE do_reface
lcSel = Thisform.grid1.RecordSource
Select (lcSel)
lnNrIreg = Reccount(lcSel)
lnRec = Recno()
lnLeiTot = 0
lnValTot = 0
i = 0
Scan
i = i + 1
Scatter Name orul
*!* modificare v 2.1.37
*!* lnPretval = Round(orul.pret_val*Thisform.procent_val/100,gnPval)
*!* lnPretval = Round(lnPretval - (lnPretval * orul.proc_disc/100 ),gnPval)
*!* lnPretLei = Round(Round(lnPretval*Thisform.ncurs,gnPpret)*Thisform.procent_lei/100,gnPpret)
If Thisform.lIntern
lnPretlei = Round(orul.pret_lei*Thisform.procent_lei/100,gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretlei = Round(lnPretlei - (lnPretlei * orul.proc_disc/100 ),gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretval = 0
Else
lnPretval = Round(orul.pret_val*Thisform.procent_val/100,gnPPretVal) && modificare v 2.1.39 : gnPPretVal in loc de gnPVal
lnPretval = Round(lnPretval - (lnPretval * orul.proc_disc/100 ),gnPPretVal) && modificare v 2.1.39 : gnPPretVal in loc de gnPVal
lnPretlei = Round(Round(lnPretval*Thisform.ncurs,gnPpret)*Thisform.procent_lei/100,gnPpret)
Endif
*!* modificare v 2.1.37 ^
Replace pretd With lnPretval
Replace Pret With lnPretlei
lnLeiTot = lnLeiTot + Round(lnPretlei*cant,gnPc)
lnValTot = lnValTot + Round(lnPretval*cant,gnPval)
*!* IF i = lnNrIreg
*!* REPLACE pret WITH pret + (thisform.nbaza_lei - lnPretTot)
*!* ENDIF
Endscan
Thisform.Do_calculeaza_diferente(lnRec)
*GO lnRec
ENDPROC
PROCEDURE inainte_de_do_termin
*** copiez actactan sa pot sa il restaurez pentru cazul in care se apasa butonul in formularul de verificare
Local lcScd, lcScd1, lcSerieAct, lnIdpartd, lnNnir, lnNract, lnSucces, lnDiferenta
Local lnRec
SELECT rul_temp
lnRec = RECNO()
thisform.Do_calculeaza_diferente(m.lnRec, "rul_temp")
&& calcularea diferentelor
Select * From actactan Into Cursor crsActactanTemp READWRITE NOFILTER
lnDiferenta = This.ndif_lei
If lnDiferenta <> 0
Select actactan
locate
lcScd = scd
lnIdpartd = actactan.id_partd
Append Blank
*!* modificare migrare v 1.0 > v 2.0
*!* Gather Name poact Fields Except Curs, pretd, nume_val, id_valuta, nnir, proc_tva
Gather Name poAct Fields Except Curs, pretd, nume_val, id_valuta, nnir, proc_tva
*!* modificare migrare v 1.0 > v 2.0 ^
If Substr(lcScd,1,2)='34'
*!* modificare migrare v 1.0 > v 2.0
*!* Replace suma With lnDiferenta, ;
*!* scd With '711', scc With lcScd, explicatia With 'DIFERENTE'
Replace suma With lnDiferenta, ;
scd With '711', scc With lcScd, explicatia With 'DIFERENTE',ID_JTVA_coloana With Null
*!* modificare migrare v 1.0 > v 2.0 ^
Else
lcScd = Alltrim(lcScd)
Do Case
Case lcScd = "371"
lcScd1 = "607"
Case Inlist(lcScd, "381", "388")
lcScd1 = "608"
Otherwise
lcScd1 = '60' + Substr(lcScd,3,2)
Endcase
*!* modificare migrare v 1.0 > v 2.0
*!* Replace suma With lnDiferenta, ;
*!* scd With lcScd1, scc With lcScd, explicatia With 'DIFERENTE'
Replace suma With lnDiferenta, ;
scd With lcScd1, scc With lcScd,id_partc With lnIdpartd, explicatia With 'DIFERENTE',ID_JTVA_coloana With Null
*!* modificare migrare v 1.0 > v 2.0 ^
Endif
Endif
Select actactan
Locate
Do Form verificare With .T. , .T.
If gnButon = 2
Use In (Select('actactan'))
Select * From crsActactanTemp Into Cursor actactan READWRITE NOFILTER
Use In (Select('crsActactanTemp'))
RETURN .F.
Else
Use In (Select('crsActactanTemp'))
*!* modificare v 2.1.41
Select actactan
Go Top
lnNrAct = nract
lcSerieAct = serie_act
* completex TVA si TAXCODE cu datele de pe prima factura
lnIdJtvaColoana = id_jtva_coloana
lnTaxCode = taxcode
If Used('rul_temp')
Select rul_temp
Replace ALL nract With lnNrAct,serie_act With lcSerieAct, id_jtva_coloana WITH m.lnIdJtvaColoana, taxcode WITH m.lnTaxCode
Endif
If Used('rul_temp_obinv')
Select rul_temp_obinv
Replace ALL nract With lnNrAct,serie_act With lcSerieAct
Endif
*!* Select Distinct serie_Act,nract,nnir From actactan Where nract <> nnir Into Cursor crsRulComplet
*!* If Used('rul_temp')
*!* Select crsRulComplet
*!* Scan
*!* lnNnir = nnir
*!* lnNract = nract
*!* lcSerieAct = serie_Act
*!* Select rul_temp
*!* Replace nract With lnNract,serie_Act With lcSerieAct For nnir = lnNnir
*!* Select crsRulComplet
*!* Endscan
*!* Endif
*!* If Used('rul_temp_obinv')
*!* Select crsRulComplet
*!* Scan
*!* lnNnir = nnir
*!* lnNract = nract
*!* lcSerieAct = serie_Act
*!* Select rul_temp_obinv
*!* Replace nract With lnNract,serie_Act With lcSerieAct For nnir = lnNnir
*!* Select crsRulComplet
*!* Endscan
*!* Endif
*!* If Used('crsRulComplet')
*!* Use In crsRulComplet
*!* Endif
*!* modificare v 2.1.41 ^
*!* modificare 13.08.2007 ^
***** articolele negestionabile nu intra in rulaje/stoc (acelasi model ca la NIR normal)
* le pastrez intr-un cursor temporar ca sa le pot readauga daca scrierea esueaza
Select * From rul_temp Where Nvl(in_stoc,1) = 0 And !Deleted() Into Cursor crsNegest NOFILTER Readwrite
Delete From rul_temp Where Nvl(in_stoc,1) = 0
lnSucces = oscrie_in_fisiere(0,.F.,.T.)
If lnSucces > 0
Use In (Select('crsNegest'))
this.AlwaysOnTop = .F.
Do listare_nir With poAct.nnir, gnTipGest In oproceduri_listari
this.AlwaysOnTop = .T.
RETURN .T.
Else
* scrierea a esuat - readaug articolele negestionabile, ca grila sa ramana completa la reincercare
Select rul_temp
Append From Dbf('crsNegest')
Use In (Select('crsNegest'))
Endif
Endif
ENDPROC
PROCEDURE Init
Lparameters tlIntern
This.lIntern = tlIntern
If This.lIntern
This.grid1.cPretFactura.ControlSource = "pret_lei"
This.grid1.cPretFactura.Header1.Caption = "Pret lei factura"
*!* modificare v 2.1.39
This.grid1.cPretFactura.InputMask = get_mask(10,gnPPret)
*!* modificare v 2.1.39 ^
This.grid1.cPretValutaCalculat.Visible = .F.
This.grid1.cValoareValutaFactura.Visible = .F.
This.grid1.cValoareValutaCalculat.Visible = .F.
This.clb_diferente_valuta.Visible = .F.
*!* modificare v 2.1.3
Thisform.but_modiparam1.Visible = .F.
Thisform._shape2.Left = Thisform.but_renunt1.Left - (Thisform.but_modiparam1.Left - Thisform._shape2.Left)
*!* modificare v 2.1.3 ^
ENDIF
this.WindowState = 2
DoDefault()
ENDPROC
PROCEDURE Show
LPARAMETERS nStyle
this.do_reface
ENDPROC
PROCEDURE Grid1.cCant.Text1.InteractiveChange
DODEFAULT()
this.LostFocus(.T.)
ENDPROC
PROCEDURE Grid1.cCant.Text1.LostFocus
PARAMETERS tlCalcul
IF tlCalcul
REPLACE cant WITH this.Value
lnRec = RECNO()
thisform.do_executa(3,lnRec,this.value)
ENDIF
ENDPROC
PROCEDURE Grid1.Column1.Text1.LostFocus
Parameters tlCalcul
*IF tlCalcul
* REPLACE pret_val WITH this.Value
lnRec = Recno()
*!* thisform.do_executa(3,lnRec,this.Value)
*!* modificare v 2.1.37
*!* thisform.do_executa(1,lnRec,pret_val)
If Thisform.lIntern
Thisform.do_executa(1,lnRec,pret_lei)
Else
Thisform.do_executa(1,lnRec,pret_val)
Endif
*!* modificare v 2.1.37 ^
*ENDIF
ENDPROC
PROCEDURE Grid1.cPretFactura.Text1.InteractiveChange
*!* DODEFAULT()
*!* this.LostFocus(.t.)
ENDPROC
PROCEDURE Grid1.cPretFactura.Text1.LostFocus
PARAMETERS tlCalcul
*IF tlCalcul
* REPLACE pret_val WITH this.Value
lnRec = RECNO()
thisform.do_executa(1,lnRec,this.Value)
*ENDIF
ENDPROC
PROCEDURE Grid1.cPretLeiCalculat.Text1.InteractiveChange
DODEFAULT()
this.LostFocus(.t.)
ENDPROC
PROCEDURE Grid1.cPretLeiCalculat.Text1.LostFocus
PARAMETERS tlCalcul
IF tlCalcul
REPLACE pret WITH this.Value
lnRec = RECNO()
thisform.do_executa(3,lnRec,this.Value)
ENDIF
ENDPROC
PROCEDURE Grid1.cPretValutaCalculat.Text1.InteractiveChange
DODEFAULT()
this.LostFocus(.t.)
ENDPROC
PROCEDURE Grid1.cPretValutaCalculat.Text1.LostFocus
PARAMETERS tlCalcul
IF tlCalcul
lnRec = RECNO()
thisform.do_executa(2,lnRec,this.value)
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS import_nota AS frm_termin_renunt OF "_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="Grid1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cNract.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cNract.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPartC.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPartC.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatie.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatie.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatieTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatieTva.Combo1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatieTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatia4.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatia4.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cScd.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cScd.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cScc.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cScc.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSuma.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSuma.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSumaVal.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSumaVal.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cInValuta.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cInValuta.Check1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatia5.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cExplicatia5.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPartD.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPartD.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAscd.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAscd.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAscc.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cAscc.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPtva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cPtva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cParticipaValuta.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cParticipaValuta.Check1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSerie_act.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSerie_act.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cDataAct.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cDataAct.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cFDoc.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cFDoc.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSe_scrie.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cSe_scrie._checkbox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cTaxCode.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cTaxCode.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cTaxCode._combobox1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValuta.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cValuta.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCurs.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cCurs.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cTip.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Grid1.cTip.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Text2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtFtvaVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="LblFtvaVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="LblFtvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtFtvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Text3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Cmd_executa1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_copiaza1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_adauga_art" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_copie_art" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_sterge_art" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="chkSpargeSecundare" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cDenumire.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cDenumire.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCodMat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCodMat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCant.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCant.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretFactura.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretFactura.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretValutaCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretValutaCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretLeiCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cPretLeiCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareValutaFactura.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareValutaFactura.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareValutaCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareValutaCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareLeiCalculat.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cValoareLeiCalculat.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCont.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCont.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cAcont.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cAcont.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cSerie.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cSerie.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cLot.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cLot.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cAdata_expirare.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cAdata_expirare.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.Column1.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.Column1.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCotaTva.Header1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="GridArt.cCotaTva.Text1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_grdfooter1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblIncLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtIncLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblIncVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtIncVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDifLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtDifLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDifVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtDifVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_modiparam1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tmrSync" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblSync" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblLegenda" UniqueID="" Timestamp="" />
*
*m: actualizeaza_banda
*m: aplica_explicatie_tva
*m: assign_analitic
*m: calc_baze_cota_creditor
*m: calc_doc_key
*m: copiaza_valoare
*m: creeaza_rand_s
*m: do_adauga_articol
*m: do_adauga_factura
*m: do_calculeaza_diferente
*m: do_calculeaza_suma
*m: do_copiaza_nota
*m: do_executa_pret
*m: do_modifica_explicatie_tva
*m: do_modifica_fdoc
*m: do_modiparam
*m: do_sterge_articol
*m: gaseste_jtva_cota
*m: recalculeaza
*m: recalc_diferente
*m: recalc_tva_document
*m: refac_culori_documente
*m: sincronizeaza
*m: sparge_document
*m: uneste_document
*m: updateexplicatiesaft
*m: valideaza_sume
*p: cdvifeldoc && memoria DVI: textul felului de document al DVI (pt. redeschidere dialog)
*p: cdvinr && memoria DVI (M2): numarul DVI, ca sir - vezi contract mai jos
*p: cdvipartener && memoria DVI: denumirea partenerului vamal
*p: cdviserie && memoria DVI: seria DVI (de regula goala)
*p: cmesajsync && mesajele valideaza_sume/sparge_document/recalc_diferente (banda de sincronizare)
*p: ddvidata && memoria DVI: data DVI
*p: ldialogaratat && dialogul "Adauga factura" a fost deschis automat la Activate (o singura data)
*p: linsync && A1: guard de reintrare in sincronizeaza()
*p: lintern && Formularul este folosit pentru Import (.T.) sau pentru achizitii interne (.F.)
*p: lrecalctva && recalculeaza automat T-urile nemanuale cand se modifica totalul facturii
*p: lspargesecundare && spargerea facturilor secundare pe conturile/analiticele articolelor (implicit activa)
*p: lsyncpending && A1: sincronizare amanata, armata din Valid-uri, executata de tmrSync
*p: nbazaprincipala_lei && baza principala lei (nr_doc minim B/S), numitor procente per rand (sincronizeaza)
*p: nbazaprincipala_val && baza principala valuta, numitor procente per rand (sincronizeaza)
*p: nbaza_lei && baza lei totala (recalculeaza) - documentele cu S insumeaza S, fara S insumeaza B
*p: nbaza_val && baza valuta totala (recalculeaza)
*p: ndif_lei && diferenta lei randul D (recalc_diferente)
*p: ndif_val && diferenta valuta randul D (recalc_diferente)
*p: ndviidfdoc && memoria DVI: id_fdoc ales prima data prin caut_fdoc - cheia sesiunii DVI
*p: ndviidpartener && memoria DVI: id_part al partenerului vamal
*p: nid_part_finalizarenir
*p: noldval && valoarea celulei la intrarea in focus (GotFocus) - Valid/LostFocus doar la modificare
*p: ntva_lei && TVA lei totala (recalculeaza)
*p: ntva_val && TVA valuta totala (recalculeaza)
*p: oact
*p: procent_lei && A3: procent incarcare lei (100 + transport/taxe), calculat direct in recalculeaza()
*p: procent_val && A3: procent incarcare valuta, calculat direct in recalculeaza()
*p: tprocente
*p: tsuma
*
*
BorderStyle = 3
cdvifeldoc = ""
cdvinr = ""
cdvipartener = ""
cdviserie = ""
cmesajsync = ""
ddvidata = {}
DoCreate = .T.
Height = 620
KeyPreview = .T.
ldialogaratat = .F.
linsync = .F.
lintern = .F.
lrecalctva = .T.
lspargesecundare = .T.
lsyncpending = .F.
Name = "import_nota"
nbazaprincipala_lei = 0
nbazaprincipala_val = 0
nbaza_lei = 0
nbaza_val = 0
ndif_lei = 0
ndif_val = 0
ndviidfdoc = 0
ndviidpartener = 0
nid_part_finalizarenir =
noldval = 0
ntva_lei = 0
ntva_val = 0
oact =
procent_lei = 0
procent_val = 0
tprocente = 0
tsuma = 0
Width = 1000
_memberdata =
_shape1.Anchor = 10
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 1001
_shape2.Anchor = 8
_shape2.Left = 937
_shape2.Name = "_shape2"
_shape2.Top = 0
_shape2.Width = 60
Lb_titlu_alb_b121.Caption = "ACHIZIÞIE DIN IMPORT MARFÃ/MATERIALE"
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
BUT_TERMIN1.Anchor = 8
BUT_TERMIN1.Left = 968
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.Top = 1
Gridsort1.Name = "Gridsort1"
But_renunt1.Anchor = 8
But_renunt1.Left = 939
But_renunt1.Name = "But_renunt1"
But_renunt1.Top = 1
*
ADD OBJECT '_grdfooter1' AS _grdfooter WITH ;
Anchor = 14, ;
ccolwithlabel = cDenumire, ;
csourcegrid = , ;
csumcolumns = cValoareValutaFactura, cValoareValutaCalculat, cValoareLeiCalculat, ;
ctotallabelexpression = 'TOTAL', ;
Left = 4, ;
Name = "_grdfooter1", ;
Top = 573, ;
Width = 990
*< END OBJECT: ClassLib="_grd_base.vcx" BaseClass="grid" />
ADD OBJECT 'But_adauga_art' AS but_nou WITH ;
Anchor = 9, ;
caction = do_adauga_articol, ;
Left = 770, ;
Name = "But_adauga_art", ;
ToolTipText = "Adauga repere", ;
Top = 376
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_copiaza1' AS but_copiaza WITH ;
Anchor = 8, ;
caction = do_copiaza_nota, ;
Left = 843, ;
Name = "But_copiaza1", ;
ToolTipText = "Copiaza factura (Da=document, Nu=linie)", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_copie_art' AS but_copiaza WITH ;
Anchor = 9, ;
caction = do_copie, ;
Left = 802, ;
Name = "But_copie_art", ;
ToolTipText = "Copiaza reperul curent", ;
Top = 376
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_modiparam1' AS but_modiparam WITH ;
Anchor = 8, ;
Left = 779, ;
Name = "But_modiparam1", ;
ToolTipText = "Import fisier XLS", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_nou1' AS but_nou WITH ;
Anchor = 8, ;
Left = 811, ;
Name = "But_nou1", ;
Top = 1
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_sterge1' AS but_sterge WITH ;
Anchor = 8, ;
Left = 875, ;
Name = "But_sterge1", ;
ToolTipText = "Stergere linia sau nota curenta", ;
Top = 1, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'But_sterge_art' AS but_sterge WITH ;
Anchor = 9, ;
caction = do_sterge_articol, ;
Left = 834, ;
Name = "But_sterge_art", ;
ToolTipText = "Sterge articolul curent", ;
Top = 376, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'chkSpargeSecundare' AS _checkbox WITH ;
Alignment = 0, ;
Anchor = 9, ;
Caption = "Sincronizeaza facturile secundare", ;
ControlSource = "Thisform.lSpargeSecundare", ;
Height = 18, ;
Left = 764, ;
Name = "chkSpargeSecundare", ;
Top = 406, ;
Width = 214
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'Cmd_executa1' AS cmd_executa WITH ;
Anchor = 9, ;
Caption = "\
ADD OBJECT 'Grid1' AS grid WITH ;
Anchor = 11, ;
BackColor = 255,255,255, ;
ColumnCount = 24, ;
DeleteMark = .F., ;
FontName = "Arial", ;
FontSize = 10, ;
HeaderHeight = 49, ;
Height = 288, ;
Left = 4, ;
Name = "Grid1", ;
Panel = 1, ;
RecordSource = "introdc", ;
RecordSourceType = 1, ;
RowHeight = 19, ;
TabIndex = 2, ;
Top = 60, ;
Width = 990, ;
ZOrderSet = 5, ;
Column1.BackColor = 255,255,255, ;
Column1.ColumnOrder = 5, ;
Column1.ControlSource = "nract", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cNract", ;
Column1.Visible = .T., ;
Column1.Width = 71, ;
Column2.BackColor = 255,255,255, ;
Column2.ColumnOrder = 6, ;
Column2.ControlSource = "partc", ;
Column2.CurrentControl = "Text1", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.Name = "cPartC", ;
Column2.Sparse = .T., ;
Column2.Visible = .T., ;
Column2.Width = 109, ;
Column3.BackColor = 255,255,255, ;
Column3.ColumnOrder = 7, ;
Column3.ControlSource = "explicatia", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.Name = "cExplicatie", ;
Column3.Visible = .T., ;
Column3.Width = 92, ;
Column4.BackColor = 255,255,255, ;
Column4.ColumnOrder = 9, ;
Column4.ControlSource = "explicatie_tva", ;
Column4.CurrentControl = "Text1", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.Name = "cExplicatieTva", ;
Column4.ReadOnly = .F., ;
Column4.Sparse = .F., ;
Column4.Width = 134, ;
Column5.BackColor = 255,255,255, ;
Column5.ColumnOrder = 22, ;
Column5.ControlSource = "explicatia4", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.Name = "cExplicatia4", ;
Column5.Visible = .T., ;
Column5.Width = 46, ;
Column6.BackColor = 255,255,255, ;
Column6.ColumnOrder = 10, ;
Column6.ControlSource = "scd", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.Name = "cScd", ;
Column6.Visible = .T., ;
Column6.Width = 46, ;
Column7.BackColor = 255,255,255, ;
Column7.ColumnOrder = 12, ;
Column7.ControlSource = "scc", ;
Column7.FontName = "Arial", ;
Column7.FontSize = 10, ;
Column7.Name = "cScc", ;
Column7.Visible = .T., ;
Column7.Width = 41, ;
Column8.Alignment = 1, ;
Column8.BackColor = 255,255,255, ;
Column8.ColumnOrder = 15, ;
Column8.ControlSource = "suma", ;
Column8.FontName = "Arial", ;
Column8.FontSize = 10, ;
Column8.Format = "R", ;
Column8.InputMask = (get_mask(12,gnPc)), ;
Column8.Name = "cSuma", ;
Column8.Visible = .T., ;
Column8.Width = 75, ;
Column9.BackColor = 255,255,255, ;
Column9.ColumnOrder = 16, ;
Column9.ControlSource = "suma_val", ;
Column9.FontName = "Arial", ;
Column9.FontSize = 10, ;
Column9.InputMask = (get_mask(12,gnPval)), ;
Column9.Name = "cSumaVal", ;
Column9.Width = 76, ;
Column10.BackColor = 255,255,255, ;
Column10.ColumnOrder = 19, ;
Column10.ControlSource = "in_valuta", ;
Column10.FontName = "Arial", ;
Column10.FontSize = 10, ;
Column10.Name = "cInValuta", ;
Column10.Sparse = .F., ;
Column10.Width = 84, ;
Column11.BackColor = 255,255,255, ;
Column11.ColumnOrder = 23, ;
Column11.ControlSource = "explicatia5", ;
Column11.FontName = "Arial", ;
Column11.FontSize = 10, ;
Column11.Name = "cExplicatia5", ;
Column11.Visible = .T., ;
Column11.Width = 45, ;
Column12.BackColor = 255,255,255, ;
Column12.ColumnOrder = 21, ;
Column12.ControlSource = "PARTD", ;
Column12.FontName = "Arial", ;
Column12.FontSize = 10, ;
Column12.Name = "cPartD", ;
Column12.Visible = .T., ;
Column12.Width = 91, ;
Column13.BackColor = 255,255,255, ;
Column13.ColumnOrder = 11, ;
Column13.ControlSource = "ascd", ;
Column13.FontName = "Arial", ;
Column13.FontSize = 10, ;
Column13.Name = "cAscd", ;
Column13.Width = 40, ;
Column14.BackColor = 255,255,255, ;
Column14.ColumnOrder = 13, ;
Column14.ControlSource = "ascc", ;
Column14.FontName = "Arial", ;
Column14.FontSize = 10, ;
Column14.Name = "cAscc", ;
Column14.Width = 44, ;
Column15.BackColor = 255,255,255, ;
Column15.ColumnOrder = 8, ;
Column15.ControlSource = "ptva", ;
Column15.FontName = "Arial", ;
Column15.FontSize = 10, ;
Column15.InputMask = "999", ;
Column15.Name = "cPtva", ;
Column15.Width = 41, ;
Column16.BackColor = 255,255,255, ;
Column16.ColumnOrder = 20, ;
Column16.ControlSource = "participa_valuta", ;
Column16.CurrentControl = "Check1", ;
Column16.FontName = "Arial", ;
Column16.FontSize = 10, ;
Column16.Name = "cParticipaValuta", ;
Column16.Sparse = .F., ;
Column16.Width = 76, ;
Column17.BackColor = 255,255,255, ;
Column17.ColumnOrder = 4, ;
Column17.ControlSource = "serie_act", ;
Column17.FontName = "Arial", ;
Column17.FontSize = 10, ;
Column17.Name = "cSerie_act", ;
Column17.Width = 70, ;
Column18.BackColor = 255,255,255, ;
Column18.ColumnOrder = 2, ;
Column18.ControlSource = "dataact", ;
Column18.FontName = "Arial", ;
Column18.FontSize = 10, ;
Column18.Name = "cDataAct", ;
Column19.BackColor = 255,255,255, ;
Column19.ColumnOrder = 3, ;
Column19.ControlSource = "fdoc", ;
Column19.FontName = "Arial", ;
Column19.FontSize = 10, ;
Column19.Name = "cFDoc", ;
Column19.ReadOnly = .F., ;
Column20.BackColor = 255,255,255, ;
Column20.ColumnOrder = 24, ;
Column20.ControlSource = "se_scrie", ;
Column20.FontName = "Arial", ;
Column20.FontSize = 10, ;
Column20.Name = "cSe_scrie", ;
Column20.Sparse = .F., ;
Column20.Visible = .T., ;
Column20.Width = 87, ;
Column21.BackColor = 255,255,255, ;
Column21.Bound = .F., ;
Column21.ColumnOrder = 14, ;
Column21.ControlSource = "Iif(Seek(introdc.taxcode,'saft_taxtable','taxcode'),saft_taxtable.taxname,'')", ;
Column21.CurrentControl = "_combobox1", ;
Column21.FontName = "Arial", ;
Column21.FontSize = 10, ;
Column21.Name = "cTaxCode", ;
Column21.Sparse = .F., ;
Column21.Width = 176, ;
Column22.BackColor = 255,255,255, ;
Column22.ColumnOrder = 17, ;
Column22.ControlSource = "nume_val", ;
Column22.FontName = "Arial", ;
Column22.FontSize = 10, ;
Column22.Name = "cValuta", ;
Column22.ReadOnly = .F., ;
Column22.Visible = .T., ;
Column22.Width = 55, ;
Column23.Alignment = 1, ;
Column23.BackColor = 255,255,255, ;
Column23.ColumnOrder = 18, ;
Column23.ControlSource = "curs", ;
Column23.FontName = "Arial", ;
Column23.FontSize = 10, ;
Column23.InputMask = (get_mask(12,gnPCurs)), ;
Column23.Name = "cCurs", ;
Column23.ReadOnly = .F., ;
Column23.Visible = .T., ;
Column23.Width = 70, ;
Column24.BackColor = 255,255,255, ;
Column24.Bound = .F., ;
Column24.ColumnOrder = 1, ;
Column24.ControlSource = "introdc.tip_rand + Iif(introdc.mod_manual=1,'*',' ')", ;
Column24.FontName = "Arial", ;
Column24.FontSize = 10, ;
Column24.Name = "cTip", ;
Column24.ReadOnly = .T., ;
Column24.Width = 32
*< END OBJECT: BaseClass="grid" />
ADD OBJECT 'Grid1.cAscc.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "ASCC", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cAscc.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cAscd.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "ASCD", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cAscd.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cCurs.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Curs", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cCurs.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cDataAct.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data doc.", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cDataAct.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cExplicatia4.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Procent lei", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cExplicatia4.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cExplicatia5.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Procent valuta", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cExplicatia5.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cExplicatie.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Explicatia", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cExplicatie.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cExplicatieTva.Combo1' AS combobox WITH ;
BoundColumn = 1, ;
BoundTo = .T., ;
ColumnCount = 1, ;
ColumnLines = .F., ;
ColumnWidths = "250,0,0", ;
FontName = "Arial", ;
FontSize = 10, ;
Height = 10, ;
Left = 17, ;
Name = "Combo1", ;
RowSource = "jtva_coloane2.denumire,cota_tva,id_jtva_coloana", ;
RowSourceType = 2, ;
SpecialEffect = 1, ;
Style = 2, ;
Top = 23, ;
Visible = .T., ;
Width = 10
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Grid1.cExplicatieTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Explicatie TVA", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cExplicatieTva.Text1' AS textbox WITH ;
BorderStyle = 0, ;
Height = 23, ;
Left = 104, ;
Name = "Text1", ;
ReadOnly = .F., ;
Top = 87, ;
Width = 100
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cFDoc.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Fel doc.", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cFDoc.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cInValuta.Check1' AS checkbox WITH ;
Alignment = 2, ;
Caption = "", ;
Centered = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Height = 17, ;
Left = 49, ;
Name = "Check1", ;
TabStop = .F., ;
Top = 83, ;
Width = 60
*< END OBJECT: BaseClass="checkbox" />
ADD OBJECT 'Grid1.cInValuta.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valuta in contabilitate", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cNract.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Nr factura", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cNract.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cPartC.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Partener credit", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPartC.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cPartD.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Partener debit", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPartD.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cParticipaValuta.Check1' AS checkbox WITH ;
Alignment = 2, ;
Caption = "", ;
FontName = "Arial", ;
FontSize = 10, ;
Height = 17, ;
Left = 21, ;
Name = "Check1", ;
Top = 71, ;
Width = 60
*< END OBJECT: BaseClass="checkbox" />
ADD OBJECT 'Grid1.cParticipaValuta.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Participa la pret valuta", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPtva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "TVA %", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cPtva.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cScc.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "SCC", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cScc.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cScd.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "SCD", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cScd.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cSe_scrie._checkbox1' AS _checkbox WITH ;
Alignment = 2, ;
AutoSize = .F., ;
Caption = "", ;
Centered = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Left = 41, ;
Name = "_checkbox1", ;
Top = 47
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'Grid1.cSe_scrie.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Se scrie nota chiar daca suma este 0", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cSerie_act.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Serie factura", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1", ;
WordWrap = .T.
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cSerie_act.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Format = "!", ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cSuma.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Suma", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cSuma.Text1' AS textbox WITH ;
Alignment = 1, ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
Visible = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cSumaVal.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Suma valuta", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cSumaVal.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cTaxCode._combobox1' AS _combobox WITH ;
BorderStyle = 0, ;
BoundColumn = 3, ;
BoundTo = .T., ;
ColumnCount = 2, ;
ColumnLines = .F., ;
ColumnWidths = "450,100", ;
ControlSource = "introdc.taxcode", ;
FontName = "Arial", ;
FontSize = 10, ;
Left = 84, ;
Name = "_combobox1", ;
RowSource = "select taxname, procent_taxa, taxcode from saft_taxtable where tva_achizitii=1 into cursor crsTaxTableX", ;
RowSourceType = 3, ;
Top = 87
*< END OBJECT: ClassLib="..\..\..\roacont\comun\clase\_baza.vcx" BaseClass="combobox" />
ADD OBJECT 'Grid1.cTaxCode.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Taxa SAFT", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cTaxCode.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cTip.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Tip", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cTip.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Grid1.cValuta.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valuta", ;
FontBold = .T., ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'Grid1.cValuta.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt' AS grid WITH ;
Anchor = 15, ;
ColumnCount = 16, ;
DeleteMark = .F., ;
FontSize = 10, ;
Height = 145, ;
Left = 4, ;
Name = "GridArt", ;
Panel = 1, ;
RecordSource = "rul_temp", ;
RowHeight = 19, ;
TabIndex = 14, ;
Top = 428, ;
Width = 990, ;
Column1.ControlSource = "denumire", ;
Column1.FontName = "Arial", ;
Column1.FontSize = 10, ;
Column1.Name = "cDenumire", ;
Column1.ReadOnly = .T., ;
Column1.Width = 181, ;
Column2.ControlSource = "codmat", ;
Column2.FontName = "Arial", ;
Column2.FontSize = 10, ;
Column2.Name = "cCodMat", ;
Column2.ReadOnly = .T., ;
Column2.Width = 84, ;
Column3.BackColor = 240,248,255, ;
Column3.ColumnOrder = 6, ;
Column3.ControlSource = "cant", ;
Column3.FontName = "Arial", ;
Column3.FontSize = 10, ;
Column3.InputMask = (get_mask(10,gnPcant)), ;
Column3.Name = "cCant", ;
Column3.Width = 67, ;
Column4.BackColor = 230,242,255, ;
Column4.ColumnOrder = 7, ;
Column4.ControlSource = "pret_val", ;
Column4.FontName = "Arial", ;
Column4.FontSize = 10, ;
Column4.InputMask = (get_mask(10,gnPpretval)), ;
Column4.Name = "cPretFactura", ;
Column4.Width = 108, ;
Column5.BackColor = 240,248,255, ;
Column5.ColumnOrder = 9, ;
Column5.ControlSource = "pretd", ;
Column5.FontName = "Arial", ;
Column5.FontSize = 10, ;
Column5.InputMask = (get_mask(10,gnPPretval)), ;
Column5.Name = "cPretValutaCalculat", ;
Column5.Width = 114, ;
Column6.BackColor = 230,242,255, ;
Column6.ColumnOrder = 10, ;
Column6.ControlSource = "pret", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.InputMask = (get_mask(10,gnPpret)), ;
Column6.Name = "cPretLeiCalculat", ;
Column6.Width = 83, ;
Column7.Bound = .F., ;
Column7.ColumnOrder = 11, ;
Column7.ControlSource = "round(pret_val*cant, gnPval)", ;
Column7.FontName = "Arial", ;
Column7.FontSize = 10, ;
Column7.InputMask = (get_mask(16,gnPval)), ;
Column7.Name = "cValoareValutaFactura", ;
Column7.Width = 128, ;
Column8.Bound = .F., ;
Column8.ColumnOrder = 12, ;
Column8.ControlSource = "round(pretd*cant, gnPval)", ;
Column8.FontName = "Arial", ;
Column8.FontSize = 10, ;
Column8.InputMask = (get_mask(16,gnPval)), ;
Column8.Name = "cValoareValutaCalculat", ;
Column8.Width = 97, ;
Column9.Bound = .F., ;
Column9.ColumnOrder = 13, ;
Column9.ControlSource = "round(pret*cant, gnPc)", ;
Column9.FontName = "Arial", ;
Column9.FontSize = 10, ;
Column9.InputMask = (get_mask(10,gnPc)), ;
Column9.Name = "cValoareLeiCalculat", ;
Column9.Width = 104, ;
Column10.BackColor = 240,248,255, ;
Column10.ColumnOrder = 4, ;
Column10.ControlSource = "cont", ;
Column10.FontName = "Arial", ;
Column10.FontSize = 10, ;
Column10.Name = "cCont", ;
Column10.ReadOnly = .F., ;
Column10.Width = 43, ;
Column11.BackColor = 240,248,255, ;
Column11.ColumnOrder = 5, ;
Column11.ControlSource = "acont", ;
Column11.FontName = "Arial", ;
Column11.FontSize = 10, ;
Column11.Name = "cAcont", ;
Column11.ReadOnly = .F., ;
Column11.Width = 47, ;
Column12.BackColor = 240,248,255, ;
Column12.ColumnOrder = 3, ;
Column12.ControlSource = "serie", ;
Column12.FontName = "Arial", ;
Column12.FontSize = 10, ;
Column12.Format = "!K", ;
Column12.Name = "cSerie", ;
Column12.Width = 123, ;
Column13.BackColor = 240,248,255, ;
Column13.ColumnOrder = 14, ;
Column13.ControlSource = "lot", ;
Column13.FontName = "Arial", ;
Column13.FontSize = 10, ;
Column13.Name = "cLot", ;
Column14.BackColor = 240,248,255, ;
Column14.ColumnOrder = 15, ;
Column14.ControlSource = "adata_expirare", ;
Column14.FontName = "Arial", ;
Column14.FontSize = 10, ;
Column14.Name = "cAdata_expirare", ;
Column14.Width = 79, ;
Column15.BackColor = 240,248,255, ;
Column15.ColumnOrder = 8, ;
Column15.ControlSource = "proc_disc", ;
Column15.FontName = "Arial", ;
Column15.FontSize = 10, ;
Column15.InputMask = (get_mask(3,2)), ;
Column15.Name = "Column1", ;
Column15.Width = 50, ;
Column16.BackColor = 240,248,255, ;
Column16.ColumnOrder = 16, ;
Column16.ControlSource = "cota_tva", ;
Column16.FontName = "Arial", ;
Column16.FontSize = 10, ;
Column16.InputMask = (get_mask(3,2)), ;
Column16.Name = "cCotaTva", ;
Column16.Width = 60
*< END OBJECT: BaseClass="grid" />
ADD OBJECT 'GridArt.cAcont.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Analitic", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cAcont.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cAdata_expirare.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Data expirare", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cAdata_expirare.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cCant.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cantitate", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cCant.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cCodMat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cod material", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cCodMat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cCont.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cont", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cCont.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .F.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cCotaTva.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Cota TVA", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cCotaTva.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cDenumire.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Denumire", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cDenumire.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1", ;
ReadOnly = .T.
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cLot.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Lot", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cLot.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.Column1.Header1' AS header WITH ;
Caption = "Disc. %", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.Column1.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cPretFactura.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret valuta factura", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cPretFactura.Text1' AS textbox WITH ;
BackColor = 230,242,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cPretLeiCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret unitar", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cPretLeiCalculat.Text1' AS textbox WITH ;
BackColor = 230,242,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cPretValutaCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Pret valuta calculat", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cPretValutaCalculat.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cSerie.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Serie", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cSerie.Text1' AS textbox WITH ;
BackColor = 240,248,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cValoareLeiCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cValoareLeiCalculat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cValoareValutaCalculat.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare valuta", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cValoareValutaCalculat.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'GridArt.cValoareValutaFactura.Header1' AS header WITH ;
Alignment = 2, ;
Caption = "Valoare valuta factura", ;
FontName = "Arial", ;
FontSize = 10, ;
Name = "Header1"
*< END OBJECT: BaseClass="header" />
ADD OBJECT 'GridArt.cValoareValutaFactura.Text1' AS textbox WITH ;
BackColor = 255,255,255, ;
BorderStyle = 0, ;
FontName = "Arial", ;
FontSize = 10, ;
ForeColor = 0,0,0, ;
Margin = 0, ;
Name = "Text1"
*< END OBJECT: BaseClass="textbox" />
ADD OBJECT 'Label1' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Suma", ;
FontBold = .T., ;
Height = 18, ;
Left = 8, ;
Name = "Label1", ;
TabIndex = 13, ;
Top = 353, ;
Width = 39, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'Label3' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Suma val.", ;
FontBold = .T., ;
Height = 18, ;
Left = 130, ;
Name = "Label3", ;
TabIndex = 13, ;
Top = 353, ;
Width = 66, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDifLei' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Dif. lei", ;
FontBold = .F., ;
Height = 18, ;
Left = 795, ;
Name = "lblDifLei", ;
Top = 353, ;
Width = 38
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDifVal' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Dif. val.", ;
FontBold = .F., ;
Height = 18, ;
Left = 895, ;
Name = "lblDifVal", ;
Top = 353, ;
Width = 44
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'LblFtvaLei' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "F.TVA", ;
FontBold = .T., ;
Height = 18, ;
Left = 278, ;
Name = "LblFtvaLei", ;
TabIndex = 13, ;
Top = 353, ;
Width = 40, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'LblFtvaVal' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "F.TVA val.", ;
FontBold = .T., ;
Height = 18, ;
Left = 403, ;
Name = "LblFtvaVal", ;
TabIndex = 13, ;
Top = 353, ;
Width = 67, ;
ZOrderSet = 9
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblIncLei' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Inc. lei %", ;
FontBold = .F., ;
Height = 18, ;
Left = 554, ;
Name = "lblIncLei", ;
Top = 353, ;
Width = 56
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblIncVal' AS _label WITH ;
Anchor = 3, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Inc. val. %", ;
FontBold = .F., ;
Height = 18, ;
Left = 673, ;
Name = "lblIncVal", ;
Top = 353, ;
Width = 62
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblLegenda' AS label WITH ;
Anchor = 11, ;
Caption = "Tip rand: B=factura (nesincronizata) S=sincronizat pe cont T=TVA D=DIFERENTE *=modificat manual", ;
FontItalic = .T., ;
Height = 16, ;
Left = 4, ;
Name = "lblLegenda", ;
Top = 398, ;
Width = 756
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lblSync' AS label WITH ;
Anchor = 11, ;
BackColor = 226,239,218, ;
BackStyle = 1, ;
Caption = "Sincronizat", ;
FontBold = .T., ;
Height = 20, ;
Left = 4, ;
Name = "lblSync", ;
Top = 376, ;
Width = 756
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'Text2' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(12,gnPc)), ;
Left = 49, ;
Name = "Text2", ;
TabIndex = 12, ;
Top = 350, ;
Value = 0, ;
Width = 76, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'Text3' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(12,gnPVAL)), ;
Left = 197, ;
Name = "Text3", ;
TabIndex = 12, ;
Top = 350, ;
Value = 0, ;
Width = 76, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'tmrSync' AS timer WITH ;
Enabled = .T., ;
Height = 23, ;
Interval = 0, ;
Left = -25, ;
Name = "tmrSync", ;
Top = 0, ;
Width = 23
*< END OBJECT: BaseClass="timer" />
ADD OBJECT 'TxtDifLei' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "thisform.ndif_lei", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(10,gnPc)), ;
Left = 838, ;
Name = "TxtDifLei", ;
Top = 350, ;
Width = 52
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'TxtDifVal' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "thisform.ndif_val", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(10,gnPval)), ;
Left = 946, ;
Name = "TxtDifVal", ;
Top = 350, ;
Width = 52
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'TxtFtvaLei' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(12,gnPc)), ;
Left = 322, ;
Name = "TxtFtvaLei", ;
TabIndex = 12, ;
Top = 350, ;
Value = 0, ;
Width = 76, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'TxtFtvaVal' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = (get_mask(12,gnPVAL)), ;
Left = 473, ;
Name = "TxtFtvaVal", ;
TabIndex = 12, ;
Top = 350, ;
Value = 0, ;
Width = 76, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'TxtIncLei' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "thisform.procent_lei", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = "999.99", ;
Left = 616, ;
Name = "TxtIncLei", ;
Top = 350, ;
Width = 52
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'TxtIncVal' AS _textbox WITH ;
Alignment = 1, ;
Anchor = 3, ;
BackStyle = 0, ;
ControlSource = "thisform.procent_val", ;
DisabledForeColor = 0,64,128, ;
Enabled = .F., ;
FontBold = .F., ;
ForeColor = 0,64,128, ;
Format = "r", ;
Height = 23, ;
InputMask = "999.99", ;
Left = 738, ;
Name = "TxtIncVal", ;
Top = 350, ;
Width = 52
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
PROCEDURE Activate
*!* Deschid automat dialogul "Adauga factura" la prima activare (numai pe modul
*!* import), dupa ce formularul e deja vizibil in spatele dialogului.
DoDefault()
If !This.lIntern And !This.lDialogAratat
This.lDialogAratat = .T.
This.do_adauga()
Endif
ENDPROC
PROCEDURE actualizeaza_banda
*!* 16.07.2026 claude (T3, E2/D-M1/D-M4/D-M5) - banda de stare + totalurile formularului
If Empty(This.cmesajsync)
This.lblSync.BackColor = Rgb(226,239,218)
This.lblSync.Caption = 'Sincronizat | Incarcare pret (transport/taxe): +' + Alltrim(Str(This.procent_val * This.procent_lei / 100 - 100, 12, 4)) + ' %'
Else
This.lblSync.BackColor = Rgb(255,221,221)
This.lblSync.Caption = Left('NESINCRONIZAT: ' + Strtran(Strtran(This.cmesajsync, Chr(13), ''), Chr(10), ' | '), 254)
Endif
This.text2.Value = This.nbaza_lei + This.ntva_lei
This.text3.Value = This.nbaza_val + This.ntva_val
This.txtftvalei.Value = This.nbaza_lei
This.TxtIncLei.Refresh()
If !This.lIntern
This.txtftvaval.Value = This.nbaza_val
This.TxtIncVal.Refresh()
This.TxtDifVal.Refresh()
Endif
This.TxtDifLei.Refresh()
If Vartype(This._grdfooter1) = 'O'
This._grdfooter1.calcTotal()
Endif
ENDPROC
PROCEDURE aplica_explicatie_tva
*!* Extrasa din do_modifica_explicatie_tva si Grid1.cExplicatieTva.Combo1.Valid
*!* (comutarea 4426=4427/401 + UpdateExplicatieSAFT), ca sa nu se duplice logica intre
*!* editarea in grid si frm_adauga_factura (docs/propuneri_ergonomie_import.md, M2).
*!* CONTRACT (16.07.2026 claude, tip_rand/doc_key): se apeleaza cu randul curent din
*!* introdc pozitionat pe un rand non-T (B, sau S din T2); randul T al documentului
*!* (acelasi doc_key) se cauta cu Locate; pozitia initiala se restaureaza la iesire.
Lparameters tnIdJtvaColoana
Local lnPtva, lcExplicatieTva, lnId_tva, lnId_jtva_coloanaTVA, lnCota_tva, lcExplicatie_TVA
Local lcDocKey, lcTipRand, lcScd
Select jtva_coloane2
Locate For id_jtva_coloana = tnIdJtvaColoana
If !Found()
Return .F.
Endif
lnPtva = jtva_coloane2.cota_Tva
lcExplicatieTva = jtva_coloane2.denumire
lnId_tva = jtva_coloane2.id_Tva
Select introdc
lcDocKey = Padr(Thisform.calc_doc_key(), Len(doc_key))
lcTipRand = tip_rand
lcScd = scd
Replace id_jtva_coloana With tnIdJtvaColoana, ptva With lnPtva, explicatie_tva With lcExplicatieTva
If lcTipRand <> 'T'
Thisform.UpdateExplicatieSAFT()
If lnPtva = 0
Select introdc
Replace cu_tva With 0
Locate For doc_key == lcDocKey And tip_rand = 'T'
If Found()
Replace id_jtva_coloana With 0, ptva With 0, explicatie_tva With '', cu_tva With 0
Endif
Else && randul de TVA al documentului
Select jtva_coloane2
Locate For id_jtva_coloana = lnId_tva
If Found()
lnId_jtva_coloanaTVA = jtva_coloane2.id_jtva_coloana
lnCota_tva = jtva_coloane2.cota_Tva
lcExplicatie_TVA = jtva_coloane2.denumire
* PENTRU TAXARE INVERSA SI COMUNITATEA EUROPEANA: 4426 = 4427 PE LINIA DE TVA, ALTFEL 4426 = 401
Select introdc
Replace cu_tva With 1
Locate For doc_key == lcDocKey And tip_rand = 'T'
If Found()
Replace id_jtva_coloana With lnId_jtva_coloanaTVA, ptva With lnCota_tva, ;
explicatie_tva With lcExplicatie_TVA, cu_tva With 1
If Seek(lnId_jtva_coloanaTVA, "cJtvaCol4427", "id_jtva")
Replace scc With '4427' In introdc
Else
Replace scc With '401' In introdc
Endif
Endif
Thisform.UpdateExplicatieSAFT()
Endif
Endif
Endif
Select introdc
*!* 16.07.2026 claude (T2) - pentru S extind Locate cu scd (mai multe S per doc - ambiguu altfel)
If lcTipRand == 'S'
Locate For doc_key == lcDocKey And tip_rand == lcTipRand And scd == lcScd
Else
Locate For doc_key == lcDocKey And tip_rand == lcTipRand
Endif
Return .T.
ENDPROC
PROCEDURE assign_analitic
*!* 16.07.2026 claude - copiat din import_nir.assign_analitic (T3 va muta import_nir);
*!* folosit de creeaza_rand_s pentru analiticul contului articolelor pe randul S.
PARAMETERS tcCont,pcAct,pcRul
PRIVATE pcCont,pcAct,pcRul,pParamP,pParamS
STORE 0 TO pParamP,pParamS
lcAnalitic = ''
lcAlias = ALIAS()
pcCont = ALLTRIM(tcCont)
lcSel = [SELECT * from ] + gcs + [.config_analitice WHERE cont = ?pcCont]
lcCursor = 'crs_cfg_ana'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
RETURN
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_cfg_ana')=0
USE IN crs_cfg_ana
lnSucces = -1
ENDIF
ENDIF
IF lnSucces > 0
SELECT crs_cfg_ana
SCATTER NAME ocfg
lcCampPrefix = NVL(ALLTRIM(ocfg.camp_leg_prefix),'')
lcCampSufix = NVL(ALLTRIM(ocfg.camp_leg_sufix),'')
IF !EMPTY(lcCampPrefix)
IF TYPE('&pcRul..'+lcCampPrefix) # 'U'
pParamP = &pcRul..&lcCampPrefix
ELSE
IF TYPE('&pcAct..'+lcCampPrefix) # 'U'
pParamP = &pcAct..&lcCampPrefix
ENDIF
ENDIF
ENDIF
IF !EMPTY(lcCampSufix)
IF TYPE('&pcRul..'+lcCampSufix) # 'U'
pParamS = &pcRul..&lcCampSufix
ELSE
IF TYPE('&pcAct..'+lcCampSufix) # 'U'
pParamS = &pcAct..&lcCampSufix
ENDIF
ENDIF
ENDIF
lcSel = [{call fconturi_analitice(?gcs,?pcCont,0,?pParamP,?pParamS)}]
lcCursor = 'crs_analitice'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
IF lnSucces > 0
SELECT crs_analitice
GO top
lcAnalitic = ALLTRIM(acont)
ENDIF
&& verificare analiticului cu Planul de Conturi
IF lnSucces > 0
lcSel = [SELECT cont,acont from ] + gcs + [.vplcont_analitic WHERE cont = ?pcCont and acont = ?lcAnalitic and an = ?gnAn ]
lcCursor = 'crs_verific'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_verific')=0
lnSucces = -1
ENDIF
ENDIF
IF USED('crs_cfg_ana')
USE IN crs_cfg_ana
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF USED('crs_analitice')
USE IN crs_analitice
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF lnSucces < 0
lcAnalitic = ''
ENDIF
SELECT (lcAlias)
RETURN lcAnalitic
ENDPROC
PROCEDURE calc_baze_cota_creditor
*!* runda27 (D3+D6): grupeaza bazele articolelor (rul_temp) pe cota TVA + creditorul
*!* (scc/ascc) al S-ului corespunzator contului articolului (scd==cont, ascd==acont);
*!* cand nu exista un S pereche, foloseste scc/ascc din toFallback. Partenerul TVA
*!* (id_partc/partc pe T) NU se preia de la S-uri - ramane cel ales la introducerea
*!* facturii (furnizor sau DVI). Rezultatul ramane deschis in crsGrupCota (cota_tva,
*!* scc, ascc, baza_lei, baza_val) - apelantul il elibereaza (Use In crsGrupCota).
Lparameters tcDocKey, toFallback
Local lcSelCbcc
lcSelCbcc = Select()
Select scd As cont, ascd As acont, scc, ascc From introdc ;
Where doc_key == tcDocKey And tip_rand == 'S' Into Cursor crsSccPerCont READWRITE
Select Distinct rul_temp.cont, rul_temp.acont From rul_temp Where !Deleted() Into Cursor crsContArt NOFILTER
Select crsContArt
Scan
Select crsSccPerCont
Locate For Alltrim(cont) == Alltrim(crsContArt.cont) And Alltrim(Nvl(acont,'')) == Alltrim(Nvl(crsContArt.acont,''))
If !Found()
Select crsSccPerCont
Append Blank
Replace cont With crsContArt.cont, acont With crsContArt.acont, scc With toFallback.scc, ascc With toFallback.ascc
Endif
Select crsContArt
Endscan
Use In crsContArt
If This.lIntern
Select rul_temp.cota_tva, crsSccPerCont.scc, crsSccPerCont.ascc, ;
Sum(Round(rul_temp.pret_lei*rul_temp.cant,gnPc)) As baza_lei, 0 As baza_val ;
From rul_temp Inner Join crsSccPerCont ;
On Alltrim(rul_temp.cont) == Alltrim(crsSccPerCont.cont) And Alltrim(Nvl(rul_temp.acont,'')) == Alltrim(Nvl(crsSccPerCont.acont,'')) ;
Where !Deleted("rul_temp") ;
Group By rul_temp.cota_tva, crsSccPerCont.scc, crsSccPerCont.ascc ;
Into Cursor crsGrupCota NOFILTER
Else
Select rul_temp.cota_tva, crsSccPerCont.scc, crsSccPerCont.ascc, ;
Sum(Round(rul_temp.pret_val*rul_temp.cant,gnPval)) As baza_val, 0 As baza_lei ;
From rul_temp Inner Join crsSccPerCont ;
On Alltrim(rul_temp.cont) == Alltrim(crsSccPerCont.cont) And Alltrim(Nvl(rul_temp.acont,'')) == Alltrim(Nvl(crsSccPerCont.acont,'')) ;
Where !Deleted("rul_temp") ;
Group By rul_temp.cota_tva, crsSccPerCont.scc, crsSccPerCont.ascc ;
Into Cursor crsGrupCota NOFILTER
Endif
Use In crsSccPerCont
Select (lcSelCbcc)
ENDPROC
PROCEDURE calc_doc_key
* cheia documentului: nr_doc e identificatorul unic per document (o factura + rand TVA + eventual DVI);
* campurile de business (serie_act/nract/id_fdoc/id_partc) raman informative in cheie, nu mai asigura unicitatea
Return Alltrim(Str(Nvl(introdc.nr_doc,0),8)) + '|' + Upper(Alltrim(Nvl(introdc.serie_act,''))) + '|' + Alltrim(Str(Nvl(introdc.nract,0),14)) + '|' + ;
Alltrim(Str(Nvl(introdc.id_fdoc,0),14)) + '|' + Alltrim(Str(Nvl(introdc.id_partc,0),14))
ENDPROC
PROCEDURE copiaza_valoare
*!* 16.07.2026 claude - propaga valoarea pe tot grupul doc_key (E1 generalizat,
*!* inlocuieste copierea pe perechea para din paritatea Recno); daca tcCamp e o
*!* cheie a documentului, regenereaza doc_key pe grup dupa propagare.
Lparameters tcCamp
Local lcSelect, lcCursor, luValoare, lcDocKeyOld, lcDocKeyNou, lnRecCurent, llCheie
lcCursor = Thisform.grid1.RecordSource
lcSelect = Select()
Select (lcCursor)
lnRecCurent = Recno()
lcDocKeyOld = doc_key
luValoare = &tcCamp
llCheie = Inlist(Lower(tcCamp), 'serie_act', 'nract', 'id_fdoc', 'fdoc', 'id_partc', 'partc')
Scan For doc_key == lcDocKeyOld And Recno() <> lnRecCurent
Replace (tcCamp) With luValoare
Endscan
If llCheie
Go lnRecCurent
lcDocKeyNou = Thisform.calc_doc_key()
Scan For doc_key == lcDocKeyOld
Replace doc_key With lcDocKeyNou
Endscan
Endif
Go lnRecCurent
Select (lcSelect)
Release lcSelect, lcCursor, luValoare, lcDocKeyOld, lcDocKeyNou, lnRecCurent, llCheie
ENDPROC
PROCEDURE creeaza_rand_s
*!* un rand S: copie completa a sablonului documentului (toSablon de la sparge_document,
*!* altfel randul B/S gasit aici); suprascrie doar scd/ascd, suma/suma_val, tip_rand, mod_manual.
*!* analiticul (tcAcont) vine de pe articole cand e furnizat (C2), altfel fallback assign_analitic.
Lparameters tcDocKey, tcCont, tnSumaLei, tnSumaVal, toSablon, tcAcont
Private loRandB, lcAcont
Local lcSelAnt
lcSelAnt = Select()
Select introdc
If Pcount() >= 5 And Vartype(toSablon) == 'O'
loRandB = toSablon
Else
Locate For doc_key == tcDocKey And tip_rand == 'B'
If !Found()
Locate For doc_key == tcDocKey And tip_rand == 'S'
Endif
If !Found()
Select (lcSelAnt)
Return
Endif
Scatter Name loRandB Memo
Endif
Append Blank
Gather Name loRandB Memo
If Pcount() >= 6 And Vartype(tcAcont) == 'C'
lcAcont = Alltrim(tcAcont)
Else
lcAcont = Thisform.assign_analitic(tcCont, Thisform.oact, 'loRandB')
Endif
Replace tip_rand With 'S', doc_key With tcDocKey, scd With tcCont, ascd With lcAcont, ;
suma With tnSumaLei, suma_val With tnSumaVal, mod_manual With 0
Select (lcSelAnt)
ENDPROC
PROCEDURE Destroy
USE IN (SELECT('cJtvaCol4427'))
ENDPROC
PROCEDURE do_adauga
*!* Pas 3: deschide dialogul modal frm_adauga_factura. Memoria DVI (cDviSerie/cDviNr/
*!* dDviData/nDviIdPartener/cDviPartener/nDviIdFdoc) traieste pe Thisform (import_nota)
*!* si e citita/scrisa de dialog prin Thisform.oParinte - vezi frm_adauga_factura.Init
*!* si cmdAdauga.Click in pas3_frm_class.txt.
Local loDlg
loDlg = Createobject('import_adauga_factura', Thisform)
loDlg.Show(1)
Release loDlg
ENDPROC
PROCEDURE do_adauga_articol
*!* 16.07.2026 claude (T3-A) - filtrul se largeste la clasa 2+3 (precedent do_modiparam
*!* :7504), nu mai depinde de conturile prezente pe nota (spargerea le genereaza acum).
LOCAL lcXMLArticole, lcFiltru, lcCrsArt, lcCrsNir, lnPtvaPrincipal
*!* 16.07.2026 claude (3f) - filtrul ajunge in WHERE-ul Oracle prin cauta_nom_articole: sintaxa SQL, nu VFP.
lcFiltru = [Substr(Trim(a.cont),1,1) In ('2','3')]
lcXMLArticole = cauta_nom_articole(lcFiltru) && ocautare.prg - selectie multipla (click/SPACE); adauga singura a.inactiv = 0
*!* cota_tva implicita a articolelor noi = ptva de pe primul rand de baza (B/S) al
*!* facturii principale; randul T pereche poate fi al DVI-ului (alt document).
lnPtvaPrincipal = 0
SELECT introdc
GO TOP
LOCATE FOR Inlist(tip_rand,'B','S')
IF FOUND()
lnPtvaPrincipal = ptva
ENDIF
IF gnButon = 1 AND !EMPTY(lcXMLArticole)
lcCrsArt = [crsArtAlese]
XMLTOCURSOR(lcXMLArticole, lcCrsArt)
lcCrsNir = THIS.gridart.RECORDSOURCE
loAct = THIS.oact
SELECT (lcCrsArt)
SCAN
SCATTER NAME loArt
*!* F2: articol fara cont in nomenclator - blocam adaugarea lui, continuam cu restul
IF EMPTY(ALLTRIM(NVL(loArt.cont,'')))
amessagebox("Articolul " + ALLTRIM(loArt.denumire) + " nu are cont definit in nomenclator - nu a fost adaugat pe nota!",48,"Atentie")
LOOP
ENDIF
SELECT (lcCrsNir)
APPEND BLANK
GATHER NAME loAct
GATHER NAME loArt
REPLACE id_gestiune WITH loAct.id_gestin, cota_tva WITH lnPtvaPrincipal
SCATTER NAME lorul && pentru id_gestiune
lcAcont = THISFORM.assign_analitic(lorul.CONT,THISFORM.oact,'lorul')
SELECT (lcCrsNir)
REPLACE acont WITH lcAcont, tva WITH ROUND(pret * (proc_tva-1), gnPpret)
SELECT (lcCrsArt)
ENDSCAN
USE IN (lcCrsArt)
THIS.gridart.REFRESH
ENDIF
THIS.gridart.cserie.SetFocus()
Thisform.sincronizeaza()
ENDPROC
PROCEDURE do_adauga_factura
*!* Directia A: cloneaza perechea-sablon (baza + TVA) din introdc_sablon,
*!* o adauga in introdc si o populeaza cu datele documentului (toDlg).
*!* 16.07.2026 claude - identitatea randurilor e tip_rand+doc_key (nu paritatea Recno);
*!* fiecare document primeste un nr_doc nou (F1, index de sortare).
*!* toDlg.cTipTva in {'F' furnizor, 'D' DVI, 'N' fara} decide randul de TVA -
*!* vezi docs/propuneri_ergonomie_import.md, M2, "Ramura TVA".
Lparameters toDlg
Local lnSel, loBaza, loTva, lnNrDoc, lnRecT
lnSel = Select()
If !Used('introdc_sablon') Or Reccount('introdc_sablon') < 2
Messagebox('Lipseste perechea-sablon (introdc_sablon).', 0+16, 'Adauga factura')
Select (lnSel)
Return .F.
Endif
*!* 16.07.2026 claude - urmatorul nr_doc (F1); ignora randurile D (99999999, vin la T2)
lnNrDoc = 0
Select introdc
If Reccount() > 0
Calculate Max(Iif(Nvl(nr_doc,0) = 99999999, 0, Nvl(nr_doc,0))) To lnNrDoc
Endif
lnNrDoc = Max(Nvl(lnNrDoc,0), 0) + 1
* --- rand BAZA (clona recordului 1 din sablon) ---
Select introdc_sablon
Go Top
Scatter Name loBaza Memo
Select introdc
Append Blank
Gather Name loBaza Memo
Replace serie_act With toDlg.serie_act, ;
nract With toDlg.nract, ;
dataact With toDlg.dataact, ;
fdoc With toDlg.fdoc, ;
id_fdoc With toDlg.id_fdoc, ;
id_partc With toDlg.id_partc, ;
partc With toDlg.partc, ;
explicatia With toDlg.explicatia, ;
suma With toDlg.suma, ;
suma_val With toDlg.suma_val, ;
in_valuta With toDlg.in_valuta, ;
participa_valuta With toDlg.participa_valuta, ;
id_valuta With toDlg.id_valuta, ;
curs With toDlg.curs, ;
nume_val With toDlg.nume_val
* tip_rand/nr_doc intai (Gather din sablon aduce tip_rand='B'); doc_key citeste nr_doc deja scris,
* nu ordinea de evaluare in acelasi Replace
Replace tip_rand With 'B', nr_doc With lnNrDoc
Replace doc_key With Thisform.calc_doc_key(), suma_doc With toDlg.suma, suma_doc_val With toDlg.suma_val
* --- rand TVA (clona recordului 2 din sablon; suma TVA o pune do_executa) ---
Select introdc_sablon
Go 2
Scatter Name loTva Memo
Select introdc
Append Blank
Gather Name loTva Memo
Replace serie_act With toDlg.serie_act, ;
nract With toDlg.nract, ;
dataact With toDlg.dataact, ;
fdoc With toDlg.fdoc, ;
id_fdoc With toDlg.id_fdoc, ;
id_partc With toDlg.id_partc, ;
partc With toDlg.partc, ;
in_valuta With toDlg.in_valuta, ;
participa_valuta With toDlg.participa_valuta, ;
id_valuta With toDlg.id_valuta, ;
curs With toDlg.curs, ;
nume_val With toDlg.nume_val
* tip_rand/nr_doc/doc_key - vezi comentariul de la randul BAZA
Replace tip_rand With 'T', nr_doc With lnNrDoc
Replace doc_key With Thisform.calc_doc_key(), suma_doc With toDlg.suma, suma_doc_val With toDlg.suma_val
lnRecT = Recno()
Do Case
Case toDlg.cTipTva = 'F'
* explicatia TVA + comutarea 4426=4427/401, ca la editarea in grid (aplica_explicatie_tva);
* metoda asteapta randul curent pe un rand non-T (B) - repozitionez pe baza; aplica_explicatie_tva
* gaseste ea insasi randul T prin doc_key. do_executa() face Go Top, deci pozitia finala nu conteaza.
Skip -1
Thisform.aplica_explicatie_tva(toDlg.id_jtva_coloana)
Case toDlg.cTipTva = 'D'
* explicatia TVA in tandem (baza + linia de TVA), ca la editarea in grid (aplica_explicatie_tva);
* apoi Replace-ul de mai jos suprascrie pe linia de TVA campurile proprii DVI-ului - doc_key ramane
* al documentului-mama (nr_doc neschimbat), desi randul poarta partener/conturi de vama
Skip -1
Thisform.aplica_explicatie_tva(toDlg.id_jtva_coloana)
Select introdc
*!* randul T al facturii curente, pe Recno-ul salvat la creare (Locate cu
*!* calc_doc_key() in FOR se evalueaza per rand scanat => gasea primul T din cursor)
Go lnRecT
* TVA platit in vama: randul de TVA devine "al DVI-ului" - alt document/partener/conturi
Replace serie_act With toDlg.dvi_serie, ;
nract With toDlg.dvi_nract, ;
dataact With toDlg.dvi_dataact, ;
fdoc With toDlg.dvi_fdoc, ;
id_fdoc With toDlg.dvi_id_fdoc, ;
id_partc With toDlg.dvi_id_partc, ;
partc With toDlg.dvi_partc, ;
scd With '4426', ;
scc With toDlg.dvi_scc, ;
suma With toDlg.dvi_tva_lei, ;
suma_val With toDlg.dvi_tva_val, ;
in_valuta With Iif(toDlg.dvi_tva_val <> 0, toDlg.in_valuta, 0), ;
participa_valuta With toDlg.participa_valuta, ;
id_valuta With Iif(toDlg.dvi_tva_val <> 0, toDlg.id_valuta, 0), ;
curs With Iif(toDlg.dvi_tva_val <> 0, toDlg.curs, 0), ;
nume_val With Iif(toDlg.dvi_tva_val <> 0, toDlg.nume_val, '')
Case toDlg.cTipTva = 'N'
* fara TVA: randul pereche ramane gol fiscal, ca la cota 0 in logica existenta
Replace id_jtva_coloana With 0, ptva With 0, cu_tva With 0, explicatie_tva With ''
Endcase
Thisform.do_executa()
Thisform.sincronizeaza()
Select (lnSel)
Return .T.
ENDPROC
PROCEDURE do_calculeaza_diferente
PARAMETERS tnRecNo, tcCursor && modificare v 2.1.3 : am adaugat tcCursor (tnRecNo nefolosit la pozitionare - vezi lnRecCrt)
*!* modificare v 2.1.3
*!* lcSel = Thisform.gridart.RecordSource
If Empty(tcCursor)
lcSel = Thisform.gridart.RecordSource
Else
lcSel = tcCursor
Endif
*!* modificare v 2.1.3 ^
SELECT (lcSel)
If Eof() Or Bof()
lnRecCrt = 0
Else
lnRecCrt = Recno()
Endif
SUM ROUND(Pret*cant,gnPc) TO lnLeiTot
SUM ROUND(Pretd*cant,gnPval) TO lnValTot
thisform.ndif_lei = thisform.nbaza_lei - lnLeiTot
thisform.ndif_val = 0 && diferenta doar in lei (randul D fara valuta)
thisform.TxtDifLei.Refresh
thisform.TxtDifVal.Refresh
If Vartype(Thisform._grdfooter1) = 'O'
Thisform._grdfooter1.calcTotal()
Endif
SELECT (lcSel)
If lnRecCrt > 0
TRY
GO lnRecCrt
CATCH
GO TOP
ENDTRY
Else
LOCATE
Endif
ENDPROC
PROCEDURE do_calculeaza_suma
aMESSAGEBOX("Eroare calculeaza suma!")
*!* Local lnSuma1, lnSuma2, Tsuma, Tprocent, lnRec
*!* Store 0 To lnSuma1, lnSuma2, Tsuma, Tprocent, lnRec
*!* lcSel = Thisform.grid1.RecordSource
*!* Select (lcSel)
*!* lnRec = Recno(lcSel)
*!* Go Top
*!* lnSuma1 = suma
*!* If in_valuta = 1
*!* lnBazaVal = suma_val
*!* Endif
*!* Sum suma For in_valuta = 1 To lnBazaLei
*!* Sum suma_val For in_valuta = 1 To tSumaVal
*!* If Mod(Recno(),2)<>0 && rand impar
*!* lnSuma2 = suma
*!* lnSuma_val = suma_val
*!* If in_valuta = 0
*!* Replace explicatia4 With Allt(Str(lnSuma2/lnBazaLei*100,8,4)), explicatia5 With ''
*!* Else
*!* Replace explicatia5 With Allt(Str(lnSuma_val/lnBazaVal*100,8,4)), explicatia4 With ''
*!* Endif
*!* Else
*!* If ptva <> 0
*!* Repl suma With Round(lnSuma2*ptva/100,gnZvama)
*!* If in_valuta = 1
*!* Replace suma_val With Round(lnSuma_val*ptva/100,gnPval)
*!* Endif
*!* Else
*!* If Recno()>1 And !Eof()
*!* Repl suma With 0, suma_val With 0
*!* Endif
*!* Endif
*!* Endif
*!* Tprocent = Tprocent + Round(lnSuma2/lnSuma1*100,2)
*!* Tsuma = Tsuma + suma
*!* Goto lnRec
*!* Thisform.text2.Value = Tsuma
*!* Thisform.text3.Value = tSumaVal
*!* Thisform.Refresh
ENDPROC
PROCEDURE do_copiaza_nota
*!* Buton copiere: meniu linie/document, ca la stergere (randul D nu se copiaza -
*!* e rand unic pe document). Copia primeste nr_doc nou (F1, ca la do_adauga_factura)
*!* si doc_key nou (calc_doc_key); seria/numarul/partenerul raman cele originale -
*!* utilizatorul le editeaza apoi in grila (doc_key ramane unic prin nr_doc).
Local lnSel, lnRaspuns, lcDoc, lcDocKey, lcTipRand, lnNrDoc, lcDocKeyNou, lnI, lnCnt, lnRecnoNou, loRec, lnRecnoCrt
Local laRecno[1]
lnSel = Select()
Select introdc
If Reccount() = 0 Or Eof() Or Bof()
Select (lnSel)
Return
Endif
lcTipRand = tip_rand
If lcTipRand == 'D'
amessagebox('Randul DIFERENTE nu se copiaza (e rand unic pe nota).', 0+48, 'Copiere')
Select (lnSel)
Return
Endif
lcDocKey = doc_key
lnRecnoCrt = Recno()
lcDoc = Alltrim(Nvl(fdoc,'')) + ' ' + Alltrim(Nvl(serie_act,'')) + ' ' + ;
Alltrim(Str(Nvl(nract,0),14)) + ' - ' + Alltrim(Nvl(partc,''))
lnRaspuns = amessagebox('Copiati nota ' + Alltrim(lcDoc) + Chr(13)+Chr(10) + ;
'Da = tot documentul (toate randurile lui)' + Chr(13)+Chr(10) + ;
'Nu = doar linia curenta', 3+32, 'Copiere')
If !Inlist(lnRaspuns, 6, 7)
Select (lnSel)
Return
Endif
*!* urmatorul nr_doc (F1) - ca la do_adauga_factura
lnNrDoc = 0
If Reccount() > 0
Calculate Max(Iif(Nvl(nr_doc,0) = 99999999, 0, Nvl(nr_doc,0))) To lnNrDoc
Endif
lnNrDoc = Max(Nvl(lnNrDoc,0), 0) + 1
lcDocKeyNou = ''
If lnRaspuns = 6
*!* colectez intai recno-urile B/T (nu S - se regenereaza la sincronizare), abia apoi
*!* copiez pe array: indexul ord_doc ar baga randurile noi in parcurgere daca as copia in Scan
lnCnt = 0
Scan For doc_key == lcDocKey And Inlist(tip_rand,'B','T')
lnCnt = lnCnt + 1
Dimension laRecno[lnCnt]
laRecno[lnCnt] = Recno()
Endscan
For lnI = 1 To lnCnt
Go laRecno[lnI]
Scatter Name loRec Memo
Append Blank
Gather Name loRec Memo
Replace nr_doc With lnNrDoc, mod_manual With 0
lnRecnoNou = Recno()
If Empty(lcDocKeyNou) And tip_rand == 'B'
lcDocKeyNou = Thisform.calc_doc_key()
Endif
Endfor
*!* document fara rand B (doar T) - cheia se calculeaza pe ultimul rand copiat
If Empty(lcDocKeyNou) And lnCnt > 0
Go lnRecnoNou
lcDocKeyNou = Thisform.calc_doc_key()
Endif
Replace doc_key With lcDocKeyNou For nr_doc == lnNrDoc
Locate For doc_key == Padr(lcDocKeyNou, Len(doc_key))
Else
*!* copie linie: un singur rand
*!* Calculate muta pointerul la EOF - revin pe linia sursa
Go lnRecnoCrt
Scatter Name loRec Memo
Append Blank
Gather Name loRec Memo
Replace nr_doc With lnNrDoc, mod_manual With 0
Replace doc_key With Thisform.calc_doc_key()
Endif
Thisform.do_executa()
Thisform.sincronizeaza()
Select (lnSel)
ENDPROC
PROCEDURE do_copie
lcSelect = this.gridart.RecordSource
SELECT (lcSelect)
SCATTER NAME loRec
INSERT INTO (lcSelect) FROM NAME loRec
this.do_reface()
this.gridart.SetFocus()
ENDPROC
PROCEDURE do_executa
Local lnSuma1, lnSuma2, lnSuma_val, Tsuma
Store 0 To lnSuma1, lnSuma2, lnSuma_val, Tsuma
LOCAL lnBazaVal, tSumaVal, lnBazaLei, lcDocKeyRec, lcTipRandRec, lcDocKeyCrt
lnBazaVal = 0
tSumaVal = 0
Sele introdc
*!* 16.07.2026 claude - E6: repozitionare finala pe doc_key+tip_rand, nu Goto absolut
lcDocKeyRec = ''
lcTipRandRec = ''
If Reccount() > 0 And Between(Recno(), 1, Reccount())
lcDocKeyRec = doc_key
lcTipRandRec = tip_rand
Endif
Go Top
lnSuma1 = suma
&& baza in valuta pentru facturile din import este pe prima linie
If in_valuta = 1
lnBazaVal = suma_val
Endif
&& baza lei pentru facturile interne este pe prima linie
IF this.lIntern
lnBazaLei = IIF(participa_valuta, suma, 0)
ELSE
Sum suma For participa_valuta AND in_valuta = 1 AND scd <> '4426' To lnBazaLei
ENDIF
Sum suma_val For in_valuta = 1 To tSumaVal
*!*lnBazaLei = suma && adaugata 06.09.2007 marius.mutu - mi-e neclar fata de ce suma se calculeaza procentele
&& procentele se recalculeaza oricum in ointroduceri.prg
*!* 16.07.2026 claude - tip_rand+doc_key inlocuiesc paritatea Mod(Recno(),2): Scan doar
*!* pe randurile B, randul T al fiecarui document se cauta prin Locate pe doc_key
Scan For tip_rand = 'B'
lnSuma2 = suma
lnSuma_val = suma_val
*REPL explicatia4 WITH ALLT(STR(lnSuma2/lnSuma1*100,6,2))+'%'
*!* If in_valuta = 0
*!* procentele per rand (explicatia4/explicatia5) le scrie sincronizeaza(), dupa spargere - nu aici
*!* modificare v 2.1.39
*!* modificare v 2.1.39 ^
Tsuma = Tsuma + suma
lcDocKeyCrt = doc_key
Locate For doc_key == lcDocKeyCrt And tip_rand = 'T'
If Found()
*!* rand T marcat manual (mod_manual=1) - nu se rescrie suma/suma_val
If Nvl(mod_manual,0) <> 1
If ptva <> 0
IF lnSuma2 <> 0
Repl suma With Round(lnSuma2*ptva/100,gnPC)
ENDIF
If in_valuta = 1 AND lnSuma_val <> 0
Replace suma_val With Round(lnSuma_val*ptva/100,gnPval)
Endif
Else
Repl suma With 0, suma_val With 0
Endif
Endif
Tsuma = Tsuma + suma
Endif
Endscan
*!* IF MOD(RECNO(),2)<>0
*!* suma2=suma
*!* REPLACE explicatia4 WITH ALLT(STR(suma2/suma1*100,6,3)+'%')
*!* SKIP 1
*!* IF ptva # 0
*!* REPLACE suma WITH ROUND(suma2*ptva /100,gnPc)
*!* REPLACE suma_val WITH ROUND(suma_val*ptva /100,gnPval)
*!* ELSE
*!* REPLACE suma WITH 0, suma_val WITH 0
*!* ENDIF
*!* *!* ENDIF
*!* ENDIF
*!* 16.07.2026 claude - repozitionare finala pe doc_key+tip_rand (E6), fallback Go Top
Do Case
Case lcTipRandRec == 'D'
*!* randul D are doc_key gol - repozitionare dupa tip_rand
Locate For tip_rand == 'D'
If !Found()
Go Top
Endif
Case !Empty(lcDocKeyRec)
Locate For doc_key == lcDocKeyRec And tip_rand == lcTipRandRec
If !Found()
Go Top
Endif
Otherwise
Go Top
Endcase
Thisform.text2.Value = Tsuma
Thisform.text3.Value = tSumaVal
Thisform.refac_culori_documente()
Thisform.Refresh
ENDPROC
PROCEDURE do_executa_pret
PARAMETERS tnNivel, tRecNo, tnValue, tcCursor && modificare v 2.1.3 : am adaugat tcCursor
*!* DEBUG
*!* SUSPEND
*!* modificare v 2.1.3
*!* lcSel = Thisform.gridart.RecordSource
If Empty(tcCursor)
lcSel = Thisform.gridart.RecordSource
Else
lcSel = tcCursor
Endif
*!* modificare v 2.1.3 ^
SELECT (lcSel)
IF tnNivel <= 2
*WAIT WINDOW STR(tnValue,16,4)
IF this.lIntern
IF tnNivel <= 1
lnPretLei = ROUND(tnValue*thisform.procent_lei/100,gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
ELSE
lnPretLei = tnValue
ENDIF
&& modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretLei = ROUND(lnPretLei - (lnPretLei * proc_disc/100 ),gnPPret) && modificare v 2.1.37
REPLACE pret WITH lnPretLei
ELSE
IF tnNivel <= 1
lnPretVal = ROUND(tnValue*thisform.procent_val/100,gnPPretval) && modificare v 2.1.39 : gnPPretval in loc de gnPVal
ELSE
lnPretval = tnValue
ENDIF
lnPretVal = ROUND(lnPretVal - (lnPretVal * proc_disc/100 ),gnPPretval) && modificare v 2.1.39 : gnPPretval in loc de gnPVal
REPLACE pretd WITH lnPretval
*!* 16.07.2026 claude (3f) - ncurs era proprietatea lui import_nir (nesetata pe import_nota); cursul documentului e oact.Curs.
lnPretLei = ROUND(ROUND(lnPretval*thisform.oact.Curs,gnPpret)*thisform.procent_lei/100,gnPpret)
REPLACE pret WITH lnPretLei
ENDIF
ENDIF
this.do_calculeaza_diferente(tRecNo,tcCursor) && modificare v 2.1.3 : am adaugat tcCursor
*!* 16.07.2026 claude (A1) - sync amanata (nu direct din Valid/LostFocus de grid)
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE do_modifica_explicatie_tva
*!* cautare explicatie TVA prin formular (model: frm_modific2024 din omodificari.vcx);
*!* logica de aplicare pe cursor e extrasa in aplica_explicatie_tva() - comuna cu
*!* Grid1.cExplicatieTva.Combo1.Valid si cu frm_adauga_factura (ramura furnizor).
LOCAL lnId, loCauta, lnCotaFiltru, lcFiltruTva
Select introdc
* filtrez explicatiile dupa procentul de TVA al liniei (coloana "TVA %");
* fara procent (0/gol) se afiseaza toate, ca sa nu ramana lista goala
lnCotaFiltru = Nvl(introdc.ptva, 0)
lcFiltruTva = [id_jtva_coloana > 0]
If lnCotaFiltru > 0
lcFiltruTva = lcFiltruTva + [ and cota_tva = ] + Alltrim(Str(lnCotaFiltru,10,2))
Endif
* lista contine si liniile de baza si perechile de TVA, ca vechiul dropdown (jtva_coloane2) -
* caut_explicatie_tva cu tlTipEx intoarce doar perechile de TVA, deci apelez direct cauta_alfa
loCauta = cauta_alfa([select id_jtva_coloana, denumire, cota_tva FROM vjtva_coloane], [1=2], [], ;
[denumire], [denumire,cota_tva], [Alegeti explicatia TVA], [Explicatie TVA,Cota TVA], ;
[], .F., lcFiltruTva)
If Vartype(loCauta) <> 'O' Or Empty(Nvl(loCauta.id_jtva_coloana,0))
Return
Endif
lnId = loCauta.id_jtva_coloana
Select introdc
Thisform.aplica_explicatie_tva(lnId)
Thisform.grid1.cSuma.teXT1.Valid
ENDPROC
PROCEDURE do_modifica_fdoc
Local loCauta
loCauta = caut_fdoc(.F.,.T.)
If !Isnull(loCauta)
Select (Thisform.grid1.RecordSource)
Replace id_fdoc With loCauta.id_fdoc,fdoc With loCauta.fel_document
Thisform.copiaza_valoare([id_fdoc])
Thisform.copiaza_valoare([fdoc])
Endif
ENDPROC
PROCEDURE do_modiparam
Local lcSelect, lcFisier, lnIdArticol, lcCursor, lcCont, loAct, lnInregistrari, lnPtvaPrincipal
LOCAL loEx as Exception
Local lcAcont, lcDenumire, lcSelect2, lcSql, llSucces, lnSucces, loArticol
Local lcMesaj
Local lnRec
Local lnInStoc
Private pnIdArticol, lorul
loAct = This.oact
*!* cota_tva implicita = ptva de pe primul rand de baza (ca la do_adauga_articol)
lnPtvaPrincipal = 0
SELECT introdc
GO TOP
LOCATE FOR Inlist(tip_rand,'B','S')
IF FOUND()
lnPtvaPrincipal = ptva
ENDIF
CALCULATE CNT() FOR !DELETED() TO lnInregistrari IN rul_temp
If m.lnInregistrari > 0
IF AMESSAGEBOX('Doriti sa stergeti reperele deja existente?',4+32,_screen.Caption) = 6
SELECT rul_temp
DELETE ALL
ENDIF
*!* amessagebox("Nu puteti face import daca ati adaugat deja repere pe nir!",48,"Atentie")
*!* Return
Endif
amessagebox("Fisierul XLS trebuie sa contina campurile (in aceasta ordine si fara capul de tabel): " + CHR(13) + CHR(10) + ;
[COD PRODUS, DENUMIRE, UM, CANTITATE, PRET IN VALUTA FARA TVA (de pe factura)] + Chr(13) + Chr(10) + Chr(13) + Chr(10) + ;
[Fisierul trebuie sa fie salvat cu formatul "Microsoft Excel 5.0/95 Workbook (*.xls)"] ,48,"Atentie")
lcFisier = Getfile("xls","Fisier factura","Alegeti",0,"Import fisier factura - format XLS")
If Empty(m.lcFisier) Or !File(m.lcFisier)
Return
ENDIF
lcSelect = "rul_temp"
llSucces = .F.
TRY
SELECT 0
Import From (lcFisier) Type Xls
lcSelect2 = Alias()
SELECT ALLTRIM(UPPER(TRANSFORM(a))) as codmat, UPPER(ALLTRIM(TRANSFORM(b))) as denumire, UPPER(ALLTRIM(TRANSFORM(c))) as um, ROUND(d,6) as cant, ROUND(e,6) as pret_val ;
FROM &lcSelect2 ;
INTO CURSOR crsImport
llSucces = .T.
Catch To loEx
lcMesaj = 'Fisierul ' + m.lcFisier + ' nu a putut fi importat.' + Chr(13) + Chr(10) + TRANSFORM(loEx.ErrorNo) + " "
IF loEx.ErrorNo = 1661
lcMesaj = m.lcMesaj + [Salvati fisierul in formatul "Microsoft Excel 5.0/95 Workbook (*.xls)"]
ELSE
lcMesaj = m.lcMesaj + loEx.Message
ENDIF
amessagebox(m.lcMesaj, 0+48, _Screen.Caption)
ENDTRY
IF !m.llSucces
RETURN
ENDIF
USE IN (SELECT(m.lcSelect2))
lcSelect2 = "crsImport"
*!* A = codmat
*!* B = denumire
*!* C = um
*!* D = cantitate
*!* E = pret achizitie in valuta
save_grid_tag(Thisform.gridart)
Select Distinct scd From actactan Where Inlist(Left(Alltrim(scd),1),'2','3') And suma <> 0 Into Cursor tconturi
If Reccount('tconturi') = 1
Select tconturi
lcCont = Alltrim(scd)
Else
lcCont = []
Endif
Use In tconturi
If Reccount(m.lcSelect2) > 0
lcCursor = [crstmpimpart]
Select (lcSelect2)
Scan
Scatter Name loArticol
If !Empty(Nvl(loArticol.cant,0))
pnIdArticol = 0
lcSql = [select id_articol,denumire,in_stoc,cont from nom_articole where UPPER(codmat) = '] + loArticol.codmat + [' and sters = 0]
If !goExecutor.oExecuta(lcSql,lcCursor)
amessagebox("A fost inregistrata o eroare la cautarea articolului " + loArticol.denumire + " pe nir!" + crlf + ;
"Iesiti din acest nir si reincercati operatia de preluare a fisierului!",48,"Atentie")
Exit
Else
Select (lcCursor)
If Reccount(lcCursor) > 0
Locate For Upper(Alltrim(denumire)) = loArticol.denumire
If !Found()
Go Top
Endif
lcDenumire = Upper(Alltrim(denumire))
If lcDenumire <> loArticol.denumire
If amessagebox("Articolul " + loArticol.denumire + " a fost gasit in baza de date dupa cod material, dar are denumirea de "+;
lcDenumire + ".Doriti sa pastrati denumirea din baza de date?" + crlf + ;
"( Daca apasati nu, atunci se va crea un articol nou cu denumirea din fisier )",4+32,"Denumire diferita") = 6
lnIdArticol = id_articol
lnInStoc = Nvl(in_stoc,1)
loArticol.denumire = m.lcDenumire
Else
*!*adauga_articol
If Empty(m.lcCont)
lcCont = Inputbox("Introduceti contul pentru articolul " + loArticol.denumire, "Cont articol ", m.lcCont, 5000,[371],[371])
Endif
lcSql = [begin pack_preturi.adauga_articol(?gnAn,'] + loArticol.codmat + [',NULL,NULL,] + ;
['] + loArticol.denumire + [','] + loArticol.um + [',] + ;
['] + Upper(Alltrim(m.lcCont)) + [',Null,0,0,NULL,NULL,0,NULL,1,0,0,?gnIdUtil,] + ;
ALLTRIM(Str(loAct.id_partc)) + [,0,0,?@pnIdArticol); end;]
goExecutor.oExecuta(lcSql)
lnIdArticol = m.pnIdArticol
lnInStoc = 1
Endif
Else
lnIdArticol = id_articol
lnInStoc = Nvl(in_stoc,1)
Endif
Else
*!* adauga articol
If Empty(m.lcCont)
lcCont = Inputbox("Introduceti contul pentru articolul " + loArticol.denumire, "Cont articol ", m.lcCont, 5000,[371],[371])
Endif
lcSql = [begin pack_preturi.adauga_articol(?gnAn,'] + loArticol.codmat + [',NULL,NULL,] + ;
['] + loArticol.denumire + [','] + loArticol.um + [',] + ;
['] + Upper(Alltrim(m.lcCont)) + [',Null,0,0,NULL,NULL,0,NULL,1,0,0,?gnIdUtil,] + ;
ALLTRIM(Str(loAct.id_partc)) + [,0,0,?@pnIdArticol); end;]
goExecutor.oExecuta(lcSql)
lnIdArticol = m.pnIdArticol
lnInStoc = 1
Endif
If lnIdArticol = 0
amessagebox("A fost inregistrata o eroare la adaugarea articolului " + loArticol.denumire + " pe NIR!" + crlf + ;
"Iesiti din acest nir si reincercati operatia de preluare a fisierului!",48,"Atentie")
Exit
Use In (lcCursor)
Else
*!* completez in rul_temp
Select (lcSelect)
Append Blank
Gather Name loAct
Replace Cont With m.lcCont, id_gestiune With loAct.id_gestin, id_articol With m.lnIdArticol,;
denumire With loArticol.denumire, codmat With loArticol.codmat,;
um With loArticol.um, cant With loArticol.cant, pret_val With loArticol.pret_val,;
in_stoc With m.lnInStoc, cota_tva With lnPtvaPrincipal
Scatter Name lorul
lcAcont = Thisform.assign_analitic(lorul.Cont, Thisform.oact, 'lorul')
Select (m.lcSelect)
Replace acont With m.lcAcont, tva With Round(Pret * (proc_tva-1), m.gnPpret)
Thisform.do_executa_pret(1, Recno(), pret_val, m.lcSelect)
Use In (m.lcCursor)
Endif
Endif
Endif
Select (m.lcSelect2)
Endscan
Endif
Use In (select(lcSelect2))
Select (lcSelect)
GO TOP
lnRec = RECNO()
thisform.Do_calculeaza_diferente(m.lnRec, m.lcSelect)
restore_grid_tag(Thisform.gridart)
this.gridart.SetFocus()
Thisform.sincronizeaza()
ENDPROC
PROCEDURE do_reface
lcSel = Thisform.gridart.RecordSource
Select (lcSel)
lnNrIreg = Reccount(lcSel)
lnRec = Recno()
lnLeiTot = 0
lnValTot = 0
i = 0
Scan
i = i + 1
Scatter Name orul
*!* modificare v 2.1.37
*!* lnPretval = Round(orul.pret_val*Thisform.procent_val/100,gnPval)
*!* lnPretval = Round(lnPretval - (lnPretval * orul.proc_disc/100 ),gnPval)
*!* lnPretLei = Round(Round(lnPretval*Thisform.ncurs,gnPpret)*Thisform.procent_lei/100,gnPpret)
If Thisform.lIntern
lnPretlei = Round(orul.pret_lei*Thisform.procent_lei/100,gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretlei = Round(lnPretlei - (lnPretlei * orul.proc_disc/100 ),gnPPret) && modificare v 2.1.39 : gnPPret in loc de gnPVal
lnPretval = 0
Else
lnPretval = Round(orul.pret_val*Thisform.procent_val/100,gnPPretVal) && modificare v 2.1.39 : gnPPretVal in loc de gnPVal
lnPretval = Round(lnPretval - (lnPretval * orul.proc_disc/100 ),gnPPretVal) && modificare v 2.1.39 : gnPPretVal in loc de gnPVal
*!* 16.07.2026 claude (3f) - idem do_executa_pret: oact.Curs in loc de ncurs (inexistent pe import_nota).
lnPretlei = Round(Round(lnPretval*Thisform.oact.Curs,gnPpret)*Thisform.procent_lei/100,gnPpret)
Endif
*!* modificare v 2.1.37 ^
Replace pretd With lnPretval
Replace Pret With lnPretlei
lnLeiTot = lnLeiTot + Round(lnPretlei*cant,gnPc)
lnValTot = lnValTot + Round(lnPretval*cant,gnPval)
*!* IF i = lnNrIreg
*!* REPLACE pret WITH pret + (thisform.nbaza_lei - lnPretTot)
*!* ENDIF
Endscan
Thisform.Do_calculeaza_diferente(lnRec)
*!* repozitionare explicita - do_calculeaza_diferente ramane pe pozitia de la intrare (aici EOF)
Select (lcSel)
If lnRec > 0
Try
Go lnRec
Catch
Go Top
Endtry
Else
Go Top
Endif
ENDPROC
PROCEDURE do_sterge
*!* Butonul de stergere: linia curenta sau nota (document) curenta din introdc.
*!* Randul D (fara document propriu, rand unic) pastreaza confirmarea simpla.
*!* Pentru restul, meniu Da=document (toate randurile B+S*+T cu acelasi doc_key,
*!* identitatea documentului), Nu=doar linia curenta, Cancel=renunta. Cu SET DELETED ON
*!* randurile sterse dispar din grid si din Scan/Sum-urile din flux. Nu se face
*!* Zap + refacere: introdc e sursa grid-ului, iar Zap inchide si recreeaza cursorul,
*!* deci grid-ul ar ramane fara sursa (blank).
Local lnSel, lnRaspuns, lcDoc, lcDocKey, lcTipRand
lnSel = Select()
Select introdc
If Reccount() = 0 Or Eof() Or Bof()
Select (lnSel)
Return
Endif
lcDocKey = doc_key
lcTipRand = tip_rand
lcDoc = Alltrim(Nvl(fdoc,'')) + ' ' + Alltrim(Nvl(serie_act,'')) + ' ' + ;
Alltrim(Str(Nvl(nract,0),14)) + ' - ' + Alltrim(Nvl(partc,''))
If lcTipRand == 'D'
lnRaspuns = amessagebox('Stergeti nota ' + Alltrim(lcDoc) + Chr(13) + Chr(10) + ;
'(toate randurile documentului)?', 4+32, 'Stergere nota')
If lnRaspuns <> 6
Select (lnSel)
Return
Endif
Delete
Else
lnRaspuns = amessagebox('Stergeti nota ' + Alltrim(lcDoc) + Chr(13)+Chr(10) + ;
'Da = tot documentul (toate randurile lui)' + Chr(13)+Chr(10) + ;
'Nu = doar linia curenta', 3+32, 'Stergere')
Do Case
Case lnRaspuns = 6
Delete For doc_key == lcDocKey
Case lnRaspuns = 7
Delete
Otherwise
Select (lnSel)
Return
Endcase
Endif
Go Top
Thisform.do_executa()
Thisform.sincronizeaza()
Select (lnSel)
ENDPROC
PROCEDURE do_sterge_articol
*!* 16.07.2026 claude (T3d) - butonul de stergere articol pe grila GridArt (rul_temp)
Local lnSel, lnRaspuns, lcDenumire
If !Used('rul_temp')
Return
Endif
lnSel = Select()
Select rul_temp
If Reccount() = 0 Or Eof()
Select (lnSel)
Return
Endif
lcDenumire = Alltrim(Nvl(denumire,''))
lnRaspuns = amessagebox('Stergeti articolul ' + lcDenumire + '?', 4+32, 'Stergere articol')
If lnRaspuns <> 6
Select (lnSel)
Return
Endif
Delete
Select (lnSel)
This.gridart.Refresh()
This.sincronizeaza()
ENDPROC
PROCEDURE gaseste_jtva_cota
*!* 16.07.2026 claude (dec.6) - mapare cota->id_jtva_coloana in aceeasi familie
*!* (LEFT(coloana_jc,2), precedent frm_conversie ~:3087-3091). tnIdJtvaFamilie = un
*!* id_jtva_coloana din familia sursa (alta cota); tnCota = cota tinta. Returneaza 0
*!* daca nu gaseste (validare blocanta in apelant, nu inventez id-uri).
Lparameters tnIdJtvaFamilie, tnCota
Local lcSel, lcFamilie, lnGasit
lnGasit = 0
lcSel = Select()
If Used('jtva_coloane2')
Select jtva_coloane2
Locate For id_jtva_coloana = tnIdJtvaFamilie
If Found()
lcFamilie = Left(Nvl(coloana_jc,''), 2)
Locate For Left(Nvl(coloana_jc,''),2) == lcFamilie And cota_tva = tnCota
If Found()
lnGasit = id_jtva_coloana
Endif
Endif
Endif
Select (lcSel)
Return lnGasit
ENDPROC
PROCEDURE inainte_de_do_termin
*!* 14.08.2014
*!* marius.mutu
*!* S-a tratat cazul in care contul de TVA este 4428 (TVA incasare), nu numai 4426
Local lcCursor, lcSel, lcSql, llAlegPartener, llRet, llVerificAnalitic, lnBazaLei, lnBazaVal
Local lnNrActPrima, lcSerieActPrima, lnIdJtvaPrima, lnTaxCodePrima, lcLogSumar
Local lnBazaVal2, lnNract, lnProcLei, lnProcVal, lnSucces, lnTvaLei, lnTvaVal, lnTvaVal2, loFact
Local llRulTempPlin
lnNract = 0
llRet = .F.
*!* fara sincronizare automata la Terminat - se salveaza exact ce vede utilizatorul;
*!* daca o sincronizare armata (lSyncPending) nu a apucat sa ruleze, doar atentionam
If Thisform.lSyncPending
amessagebox("Exista modificari nesincronizate - apasati Recalculeaza (F5) si verificati nota!",0+48,"Atentie")
Return .F.
Endif
If !Empty(Thisform.cmesajsync)
amessagebox(Thisform.cmesajsync,0+48,"Atentie")
Return .F.
Endif
lcSel = Thisform.grid1.RecordSource
Select (lcSel)
Locate For Empty(nract) And suma<>0
If Found()
amessagebox('Nu ati completat numarul actului!',0+48,"Atentie")
Return m.llRet
Endif
*!* modificare v 2.1.42
Go Top
Locate For Empty(Nvl(id_fdoc,0)) And suma <> 0
If Found()
amessagebox("Nu ati completat tipul documentului!",0+48,"Atentie")
Return m.llRet
Endif
*!* modificare v 2.1.42 ^
llVerificAnalitic = .T.
llAlegPartener = .F.
llRet = verificare_note_contabile(lcSel,llVerificAnalitic,llAlegPartener)
If !m.llRet
Return m.llRet
Endif
SELECT actactan
DELETE ALL
Thisform.nid_part_finalizarenir = 0 && modificare v 2.1.39
*!* modificare v 2.1.39 : am adaugat "or se_scrie = 1"
Select introdc
Scan For suma <> 0 Or se_scrie = 1
Scatter Name loFact
Select actactan
Append Blank
Gather Name poAct
*!* modificare v 2.1.41 : am adaugat id_fdoc, fdoc, dataact
Gather Name loFact Fields id_fdoc, fdoc, dataact, serie_Act,nract, partc, id_partc,partd, id_partd, suma, explicatia, explicatia4, explicatia5, scd, ascd, scc, ascc, ID_JTVA_coloana, taxcode, id_valuta, curs, nume_val
Replace proc_tva With Round((loFact.ptva+100)/100,2)
If loFact.in_valuta = 1
Replace SUMA_val With loFact.SUMA_val
Else
Replace Curs With 0,id_valuta With 0, nume_val With ''
Endif
*!* 30.08.2007
*!* MARIUS.MUTU
*!* LAS NNIR DOAR PE PRIMA FACTURA (DE ACHIZITIE)
*!* ALTFEL SE SCRIE IN RUL.NRACT ULTIMUL NUMAR DE DOCUMENT CU NNIR-UL RESPECTIV
If nract <> 0 And lnNract <> nract And lnNract <> 0
Replace nnir With 0
Else
lnNract = nract
Endif
*!* modificare v 2.1.39
If Thisform.nid_part_finalizarenir = 0 And loFact.cu_tva = 0 And loFact.tip_rand <> 'D'
Select actactan
Append Blank
Gather Name poAct
Gather Name loFact Fields serie_Act, nract, explicatia, explicatia4, explicatia5
Replace scd With "", ascd With "", scc With "401", ascc With "",suma With 0,proc_tva With 0,id_jtva_coloana WITH Null
loCauta = caut_partener([-2],[Alegeti furnizorul])
If !Isnull(loCauta)
Thisform.nid_part_finalizarenir = loCauta.id_part
Select actactan
Replace partc With loCauta.denumire,id_partc With loCauta.id_part
Endif
Endif
*!* modificare v 2.1.39 ^
Select introdc
Endscan
*!* 30.08.2007
*!* marius.mutu
*!* calculez pretul in valuta incluzand si facturile in lei / curs care participa la pretul in valuta
*!* 20.09.2012
*!* marius.atanasiu
*!* am scos conditia "cu_tva=1" de la toate SUM-urile de mai jos
*!* 16.07.2026 claude (A3) - sumarile + procentele mutate in recalculeaza(); Sum
*!* Val(explicatia4/5) eliminat (nu se mai copiaza, formula noua e directa)
Thisform.recalculeaza()
lnBazaLei = Thisform.nbaza_lei
lnBazaVal = Thisform.nbaza_val
lnTvaLei = Thisform.ntva_lei
lnTvaVal = Thisform.ntva_val
lnProcLei = Thisform.procent_lei - Iif(tlIntern, 0, 100)
lnProcVal = Thisform.procent_val
Locate
poAct.proc_tva = (100 + ptva)/100
*!* rul_temp e creat in Load (nu mai aici); vezi acolo.
this.AlwaysOnTop = .F.
*!* 16.07.2026 claude (T3) - do_termin unificat: verificare/scriere migrate din
*!* import_nir.inainte_de_do_termin; import_nir nu se mai instantiaza (ramane rezerva)
Select * From actactan Into Cursor crsActactanTemp READWRITE NOFILTER
Do Form verificare With .T. , .T.
If gnButon = 2
Use In (Select('actactan'))
Select * From crsActactanTemp Into Cursor actactan READWRITE NOFILTER
Use In (Select('crsActactanTemp'))
this.AlwaysOnTop = .T.
Return .F.
Endif
Use In (Select('crsActactanTemp'))
Select actactan
Go Top
lnNrActPrima = nract
lcSerieActPrima = serie_act
* completez TVA si TAXCODE cu datele de pe prima factura (ca in fluxul vechi)
lnIdJtvaPrima = id_jtva_coloana
lnTaxCodePrima = taxcode
If Used('rul_temp')
Select rul_temp
Replace All nract With lnNrActPrima, serie_act With lcSerieActPrima, id_jtva_coloana With lnIdJtvaPrima, taxcode With lnTaxCodePrima
Endif
If Used('rul_temp_obinv')
Select rul_temp_obinv
Replace All nract With lnNrActPrima, serie_act With lcSerieActPrima
Endif
***** articolele negestionabile nu intra in rulaje/stoc (acelasi model ca la NIR normal)
* le pastrez intr-un cursor temporar ca sa le pot readauga daca scrierea esueaza
Select * From rul_temp Where Nvl(in_stoc,1) = 0 And !Deleted() Into Cursor crsNegest NOFILTER Readwrite
Delete From rul_temp Where Nvl(in_stoc,1) = 0
*!* 16.07.2026 claude (T3, F4) - sumar spargere in log, pentru reconstructie post-hoc la client
If Type('goLog') = 'O'
lcLogSumar = 'NIR import unificat: act ' + Alltrim(Nvl(lcSerieActPrima,'')) + ' ' + Alltrim(Str(Nvl(lnNrActPrima,0),14))
Select introdc
Scan For tip_rand = 'S' And !Deleted()
lcLogSumar = lcLogSumar + ' | S ' + Alltrim(Nvl(scd,'')) + '=' + Alltrim(Str(Nvl(suma,0),14,2))
Endscan
Locate For tip_rand = 'D'
If Found()
lcLogSumar = lcLogSumar + ' | D ' + Alltrim(Nvl(scd,'')) + '=' + Alltrim(Str(Nvl(suma,0),14,2))
Endif
goLog.Log(lcLogSumar)
Endif
lnSucces = oscrie_in_fisiere(0,.F.,.T.)
If lnSucces > 0
Use In (Select('crsNegest'))
Do listare_nir With poAct.nnir, gnTipGest In oproceduri_listari
llRet = .T.
Else
* scrierea a esuat - readaug articolele negestionabile, ca grila sa ramana completa la reincercare
Select rul_temp
Append From Dbf('crsNegest')
Use In (Select('crsNegest'))
llRet = .F.
Endif
this.AlwaysOnTop = !llRet
RETURN m.llRet
ENDPROC
PROCEDURE Init
Lparameters tlIntern
&& tlIntern - default formularul este folosit pentru import (.F.), daca este .T. atunci nu apar coloanele legate de valuta
This.lIntern = Iif(Pcount() = 0 Or Type('tlIntern') <> 'L', .F., tlIntern)
*!* rul_temp e creat in Load - inainte de instantierea membrilor, ca GridArt
*!* (RecordSource = rul_temp) sa se lege de un cursor existent.
This.lactiv4 = .T. && acces la do_sterge (butonul de stergere note)
This.cDviSerie = ''
This.cDviPartener = ''
This.cDviFelDoc = ''
If This.lIntern
Select introdc
Replace All suma_val With 0, in_valuta With 0
Go Top && modificare v 2.1.37
This.grid1.cInValuta.Visible = .F.
This.grid1.cParticipaValuta.Visible = .F.
&& this.grid1.cParticipaValuta.Header1.Caption = "Participa la pret lei"
This.grid1.cSumaVal.Visible = .F.
This.grid1.cExplicatia5.Visible = .F.
This.lb_titlu_alb_b121.Caption = "ACHIZIÞIE INTERNÃ MARFÃ/MATERIALE"
*!* 16.07.2026 claude (T3-A, sectiunea F) - ascunde coloanele valutare si pe grila
*!* articolelor (ca in import_nir.Init), plus But_modiparam1 (XLS-ul cere pret valuta).
This.gridart.cPretFactura.ControlSource = "pret_lei"
This.gridart.cPretFactura.Header1.Caption = "Pret lei factura"
This.gridart.cPretFactura.InputMask = get_mask(10,gnPPret)
This.gridart.cPretValutaCalculat.Visible = .F.
This.gridart.cValoareValutaFactura.Visible = .F.
This.gridart.cValoareValutaCalculat.Visible = .F.
This.lblIncVal.Visible = .F.
This.TxtIncVal.Visible = .F.
This.lblDifVal.Visible = .F.
This.TxtDifVal.Visible = .F.
This.But_modiparam1.Visible = .F.
*!* modificare v 2.1.40
Else
*!* modificare v 2.1.40 ^
Endif
This.WindowState = 2
this.grid1.HeaderHeight = 49 && se micsoreaza singur la afisare; refacut si in Show()
*SAFT
this.grid1.cTaxCode.Visible = m.gl406
* Creez cursor cu Id-uri de TVA Taxare inversa si Comunitate Europeana pentru notele 4426 = 4426, la alegerea Explicatie TVA
lcSql = "select ID_JTVA_COLOANA from JTVA_COLOANE t where (coloana_jc LIKE 'TI%T' or coloana_jc like 'XX%TIT') or (coloana_jc LIKE 'CE%T' and coloana_jc not LIKE 'CE%FTT') "
lcCursor = 'cJtvaCol4427'
llSucces = goExecutor.oExecuta(m.lcSql, lcCursor)
IF m.llSucces
SELECT cJtvaCol4427
INDEX on ID_JTVA_COLOANA TAG ID_JTVA
ENDIF
DoDefault()
Thisform.refac_culori_documente()
This._grdfooter1.attachToGrid(This.GridArt)
This._grdfooter1.calcTotal()
ENDPROC
PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
*!* 16.07.2026 claude (T3, D-M3) - F5 = Recalculeaza (sincronizare manuala)
If nKeyCode = -4
Nodefault
Thisform.sincronizeaza()
Return
Endif
DoDefault(nKeyCode, nShiftAltCtrl)
ENDPROC
PROCEDURE Load
*!* rul_temp trebuie sa existe inaintea instantierii membrilor: GridArt e legat de el
*!* prin RecordSource, iar crearea lui dupa (in Init) lasa grila nelegata si goala.
DoDefault()
llRulTempPlin = .F.
If Used('RUL_TEMP')
llRulTempPlin = (Reccount('RUL_TEMP') > 0)
Endif
If !m.llRulTempPlin
If Used('RUL_TEMP')
Use In (Select('RUL_TEMP'))
Endif
lcSqlRul = [select r.*, r.pret as pret_lei, r.pretd as pret_val, 000.00 as cota_tva from ] + gcs + [.vrul r where 1=2 ]
lnSuccesRul = goExecutor.oExecute(lcSqlRul,[rul_temp])
If lnSuccesRul < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
Return .F.
Endif
Endif
ENDPROC
PROCEDURE recalculeaza
*!* 16.07.2026 claude (A3) - muta sumarile din inainte_de_do_termin (baza/tva) aici, ca
*!* proprietati de formular. Regula dec.1: cu S existent baza documentului e Suma(S) (B a
*!* disparut la spargere - D9); fara S ramane B - de aceea filtrul de mai jos e pe
*!* tip_rand IN ('B','S') fara distinctie (invarianta garantata de sparge_document).
*!* Procentele NU mai copiaza Sum Val(explicatia4/5) (eliminat la migrare) - se calculeaza
*!* direct. 16.07.2026b claude (C4 - corectii T2): pe import, procent_lei NU mai e
*!* 100*baza_totala/baza_principala (ar dubla incarcarea documentelor de transport in
*!* valuta - do_reface aplica intai procent_val pe pretd, apoi procent_lei pe pret derivat
*!* din pretd*curs) - procent_lei pe import = 100 + contributia DOAR a documentelor
*!* care NU participa la pretul in valuta (restul intra in procent_val). Ramura intern
*!* ramane neschimbata (echivalenta cu vechiul calcul din do_executa).
Local lnBazaLei, lnBazaVal, lnBazaVal2, lnTvaLei, lnTvaVal, lnTvaVal2, lcSel
Local lnMinNrDoc, lnBazaPrincipalaLei, lnBazaPrincipalaVal, lnBazaLeiOnly, lnBazaValBased
lcSel = Select()
If !Used('introdc')
Select (lcSel)
Return
Endif
Select introdc
If This.lIntern
Sum suma For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And participa_valuta To lnBazaLei
Sum suma For tip_rand = 'T' And !Empty(id_jtva_coloana) And participa_valuta To lnTvaLei
Else
Sum suma For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaLei
Sum suma For tip_rand = 'T' And !Empty(id_jtva_coloana) To lnTvaLei
Endif
Sum suma_val For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And in_valuta = 1 And participa_valuta To lnBazaVal
Sum Round(suma/This.oact.Curs, gnPval) For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And in_valuta = 0 And participa_valuta To lnBazaVal2
lnBazaVal = lnBazaVal + lnBazaVal2
Sum suma_val For tip_rand = 'T' And !Empty(id_jtva_coloana) And in_valuta = 1 And participa_valuta To lnTvaVal
Sum Round(suma/This.oact.Curs, gnPval) For tip_rand = 'T' And !Empty(id_jtva_coloana) And in_valuta = 0 And participa_valuta To lnTvaVal2
lnTvaVal = lnTvaVal + lnTvaVal2
*!* baza documentului principal (nr_doc minim dintre B/S), pentru procent_val, procent_lei (intern) si procentele pe rand
lnMinNrDoc = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDoc
Sum suma_val For Inlist(tip_rand,'B','S') And nr_doc = lnMinNrDoc And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And in_valuta = 1 To lnBazaPrincipalaVal
Sum suma For Inlist(tip_rand,'B','S') And nr_doc = lnMinNrDoc And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaPrincipalaLei
This.nbaza_lei = lnBazaLei
This.nbaza_val = lnBazaVal
This.ntva_lei = lnTvaLei
This.ntva_val = lnTvaVal
This.nbazaprincipala_lei = lnBazaPrincipalaLei
This.nbazaprincipala_val = lnBazaPrincipalaVal
If This.lIntern
This.procent_lei = Iif(lnBazaPrincipalaLei <> 0, 100 * lnBazaLei / lnBazaPrincipalaLei, 100)
Else
*!* C4b: documentele cu participa_valuta (si cele platite in lei, convertite la curs in
*!* nbaza_val) sunt acoperite de procent_val - in procent_lei raman doar neparticipantele
Sum suma For Inlist(tip_rand,'B','S') And !participa_valuta And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaLeiOnly
Sum suma For Inlist(tip_rand,'B','S') And participa_valuta And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) To lnBazaValBased
This.procent_lei = 100 + Iif(lnBazaValBased <> 0, 100 * lnBazaLeiOnly / lnBazaValBased, 0)
Endif
This.procent_val = Iif(lnBazaPrincipalaVal <> 0, 100 * lnBazaVal / lnBazaPrincipalaVal, 100)
Select (lcSel)
ENDPROC
PROCEDURE recalc_diferente
*!* 16.07.2026b claude (C5 - corectii T2) - randul D unic (doc_key='', nr_doc=99999999):
*!* diferenta = baza TOTALA (This.nbaza_lei/val, dupa recalculeaza) - Suma(pret*cant) cu
*!* pretul INCARCAT (do_reface-adjusted, ca vechiul do_calculeaza_diferente), NU suma_doc
*!* a principalei si NU pretul de factura (pret_lei/pret_val). Cont dominant = clasa 3 cu
*!* baza (aceeasi formula) ABS maxima (dec.9+E5); fara clasa 3 -> dominant clasa 2, cont fix 6588.
*!* Diferenta se determina si se scrie DOAR in lei (fara valuta). E3: D mosteneste antetul documentului principal.
Local lcSel, lnMinNrDoc, lnTotalLei, lnTotalVal
Local lcContDominant, lnBazaDominantaAbs, lcScd1, lnDiferentaLei, lnDiferentaVal, lcExplicatie
Local llGasitClasa3, loAntet
lcSel = Select()
If !Used('rul_temp') Or Reccount('rul_temp') = 0
*!* E7: fara articole - nimic de calculat; sterg D-ul ramas orfan, daca exista
Select introdc
Delete For tip_rand == 'D'
This.ndif_lei = 0
This.ndif_val = 0
Select (lcSel)
Return
Endif
Select introdc
lnMinNrDoc = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDoc
Locate For nr_doc = lnMinNrDoc And Inlist(tip_rand,'B','S')
If !Found()
Select (lcSel)
Return
Endif
Select Sum(Round(pret*cant,gnPc)) As tot_lei, Sum(Round(pretd*cant,gnPval)) As tot_val ;
From rul_temp Where !Deleted() Into Cursor crsTotArt NOFILTER
lnTotalLei = Nvl(crsTotArt.tot_lei, 0)
lnTotalVal = Nvl(crsTotArt.tot_val, 0)
Use In crsTotArt
*!* contul dominant: clasa 3 cu baza (pret incarcat) ABS maxima (dec.9+E5);
*!* fara clasa 3 -> clasa 2 (imobilizari), nota D cu cont fix 6588
Select cont, Sum(Round(pret*cant,gnPc)) As baza_lei ;
From rul_temp Where !Deleted() And Inlist(Left(Alltrim(Nvl(cont,'')),1),'2','3') Group By cont Into Cursor crsGrupDom NOFILTER
lcContDominant = ''
lnBazaDominantaAbs = -1
Select crsGrupDom
Scan For Left(Alltrim(cont),1) == '3'
If Abs(baza_lei) > lnBazaDominantaAbs
lnBazaDominantaAbs = Abs(baza_lei)
lcContDominant = Alltrim(cont)
Endif
Select crsGrupDom
Endscan
llGasitClasa3 = !Empty(lcContDominant)
If !llGasitClasa3
Select crsGrupDom
Scan
If Abs(baza_lei) > lnBazaDominantaAbs
lnBazaDominantaAbs = Abs(baza_lei)
lcContDominant = Alltrim(cont)
Endif
Select crsGrupDom
Endscan
Endif
Use In crsGrupDom
lnDiferentaLei = Round(This.nbaza_lei - lnTotalLei, gnPc)
This.ndif_lei = lnDiferentaLei
This.ndif_val = 0
If lnDiferentaLei = 0
Select introdc
Delete For tip_rand == 'D'
Select (lcSel)
Return
Endif
lcScd1 = ''
If llGasitClasa3
Do Case
Case Left(lcContDominant,2) == '34'
lcScd1 = '711'
Case lcContDominant == '371'
lcScd1 = '607'
Case Inlist(lcContDominant, '381', '388')
lcScd1 = '608'
Otherwise
lcScd1 = '60' + Substr(lcContDominant,3,2)
Endcase
Else
lcScd1 = '6588' && dominant clasa 2 (imobilizari): alte cheltuieli de exploatare, fix
Endif
lcExplicatie = 'DIFERENTA'
Select introdc
Locate For tip_rand == 'D'
If !Found()
Locate For nr_doc = lnMinNrDoc And Inlist(tip_rand,'B','S')
Scatter Name loAntet Memo
Select introdc
Append Blank
Gather Name loAntet Memo
Replace tip_rand With 'D', doc_key With '', nr_doc With 99999999, mod_manual With 0
Replace partc With '', id_partc With 0, partd With '', id_partd With 0
Endif
Replace scd With lcScd1, scc With lcContDominant, suma With lnDiferentaLei, suma_val With 0, ;
explicatia With lcExplicatie, id_jtva_coloana With Null, ptva With 0, cu_tva With 0, ;
in_valuta With 0, participa_valuta With .F., nume_val With '', id_valuta With 0, curs With 0
Select (lcSel)
ENDPROC
PROCEDURE recalc_tva_document
*!* recalculeaza randurile T nemanuale (mod_manual<>1) ale documentului tcDocKey,
*!* proportional cu bazele pe cota TVA (rul_temp) cand exista mai multe cote; nu
*!* creeaza/sterge randuri T, nu atinge randurile T manuale.
Lparameters tcDocKey
Local lcSel, lnRec, llValuta, lnCurs, lnTotal, lnTotalVal, lnBazaTotala, lnPondere
Local lnCntTSec, lnTotSLei2, lnPtvaSec, lnRestLei2, lnRestVal2, lnMaxAbs2, lnRecMaxAbs2
lcSel = Select()
lnRec = Recno('introdc')
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
If !Found()
Select (lcSel)
If Between(lnRec, 1, Reccount('introdc'))
Go lnRec In introdc
Endif
Return
Endif
Local loRandT
Scatter Name loRandT Memo
llValuta = (loRandT.in_valuta = 1)
lnCurs = Iif(Nvl(loRandT.curs,0) <> 0, loRandT.curs, Thisform.oact.Curs)
lnTotal = loRandT.suma_doc
lnTotalVal = loRandT.suma_doc_val
*!* bazele articolelor (rul_temp) descriu doar documentul principal (nr_doc minim intre B/S)
Local lnMinNrDoc, llPrincipal
lnMinNrDoc = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDoc
llPrincipal = (loRandT.nr_doc = lnMinNrDoc)
Local lnCntCote
lnCntCote = 0
If Used('rul_temp')
*!* runda27 (D6): aceeasi grupare cota+creditor ca in sparge_document (D3), reutilizata
Thisform.calc_baze_cota_creditor(tcDocKey, loRandT)
lnCntCote = Reccount('crsGrupCota')
Endif
If llPrincipal And lnCntCote > 1
*!* principal cu mai multe cote/creditoare: bazele pe cota_tva+scc+ascc (rul_temp -> S), pondere = baza_grup / baza_totala
If This.lIntern
Select Sum(baza_lei) As tot From crsGrupCota Into Cursor crsBazaTot NOFILTER
Else
Select Sum(baza_val) As tot From crsGrupCota Into Cursor crsBazaTot NOFILTER
Endif
lnBazaTotala = Nvl(crsBazaTot.tot, 0)
Use In crsBazaTot
If lnBazaTotala = 0
Use In crsGrupCota
Select (lcSel)
If Between(lnRec, 1, Reccount('introdc'))
Go lnRec In introdc
Endif
Return
Endif
Select crsGrupCota
Scan
lnPondere = Iif(This.lIntern, baza_lei, baza_val) / lnBazaTotala
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 And ptva == crsGrupCota.cota_tva ;
And Alltrim(Nvl(scc,'')) == Alltrim(Nvl(crsGrupCota.scc,'')) And Alltrim(Nvl(ascc,'')) == Alltrim(Nvl(crsGrupCota.ascc,''))
If This.lIntern
Replace suma With Round(lnTotal * lnPondere * ptva / 100, gnPc), suma_val With 0
Else
If llValuta
Replace suma_val With Round(lnTotalVal * lnPondere * ptva / 100, gnPval)
Replace suma With Round(suma_val * lnCurs, gnPc)
Else
*!* document secundar platit in lei: pondere aplicata direct pe suma_doc in lei
Replace suma With Round(lnTotal * lnPondere * ptva / 100, gnPc), suma_val With 0
Endif
Endif
Endscan
Select crsGrupCota
Endscan
Use In crsGrupCota
Else
If Used('crsGrupCota')
Use In crsGrupCota
Endif
*!* o singura cota / document secundar / fara rul_temp: T = total nou x ptva / 100;
*!* daca T-urile secundarei sunt sparte pe creditori, fiecare primeste cota-parte
*!* proportionala cu S-urile creditorului sau
Select Count(*) As nr From introdc Where doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 Into Cursor crsCntTSec NOFILTER
lnCntTSec = crsCntTSec.nr
Use In crsCntTSec
lnTotSLei2 = 0
lnPtvaSec = 0
If lnCntTSec > 1
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
lnPtvaSec = ptva
Select scc, ascc, Sum(suma) As s_lei From introdc ;
Where doc_key == tcDocKey And tip_rand == 'S' ;
Group By scc, ascc Into Cursor crsGrupSccR NOFILTER
Select Sum(s_lei) As tot From crsGrupSccR Into Cursor crsTotSR NOFILTER
lnTotSLei2 = Nvl(crsTotSR.tot,0)
Use In crsTotSR
Endif
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
lnPondere = Iif(lnCntTSec > 1, 1 / lnCntTSec, 1)
If lnCntTSec > 1 And lnTotSLei2 <> 0
Select crsGrupSccR
Locate For Alltrim(Nvl(scc,'')) == Alltrim(Nvl(introdc.scc,'')) And Alltrim(Nvl(ascc,'')) == Alltrim(Nvl(introdc.ascc,''))
lnPondere = Iif(Found(), crsGrupSccR.s_lei / lnTotSLei2, 0)
Select introdc
Endif
If This.lIntern
Replace suma With Round(lnTotal * lnPondere * ptva / 100, gnPc), suma_val With 0
Else
If llValuta
Replace suma_val With Round(lnTotalVal * lnPondere * ptva / 100, gnPval)
Replace suma With Round(suma_val * lnCurs, gnPc)
Else
Replace suma With Round(lnTotal * lnPondere * ptva / 100, gnPc), suma_val With 0
Endif
Endif
Select introdc
Endscan
If Used('crsGrupSccR')
Use In crsGrupSccR
Endif
If lnCntTSec > 1
*!* reziduul de rotunjire pe T-ul cu |suma| maxima (modelul D5)
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 Into Cursor crsSumTSec2 NOFILTER
If This.lIntern Or !llValuta
lnRestLei2 = Round(lnTotal * lnPtvaSec / 100, gnPc) - Round(Nvl(crsSumTSec2.s_lei,0), gnPc)
lnRestVal2 = 0
Else
lnRestVal2 = Round(lnTotalVal * lnPtvaSec / 100, gnPval) - Round(Nvl(crsSumTSec2.s_val,0), gnPval)
lnRestLei2 = 0
Endif
Use In crsSumTSec2
If lnRestLei2 <> 0 Or lnRestVal2 <> 0
lnMaxAbs2 = -1
lnRecMaxAbs2 = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
If Abs(suma) > lnMaxAbs2
lnMaxAbs2 = Abs(suma)
lnRecMaxAbs2 = Recno()
Endif
Endscan
If lnRecMaxAbs2 > 0
Go lnRecMaxAbs2 In introdc
If lnRestVal2 <> 0
Replace suma_val With suma_val + lnRestVal2
Replace suma With Round(suma_val * lnCurs, gnPc)
Else
Replace suma With suma + lnRestLei2
Endif
Endif
Endif
Endif
Endif
Select (lcSel)
If Between(lnRec, 1, Reccount('introdc'))
Go lnRec In introdc
Endif
ENDPROC
PROCEDURE refac_culori_documente
* M1: culoare fundal + eticheta document, precalculate pe cursorul introdc.
* Cheia document = doc_key (nr_doc+serie_act+nract+id_fdoc+id_partc, calc_doc_key).
* primul rand B/S al unui doc_key defineste documentul - B dispare dupa spargere (dec.9);
* randul 'T' mosteneste culoarea/eticheta. Repozitionare finala pe doc_key+tip_rand (E6).
Local lcSel, lnDocCount, lnIdx, i, lcCheie, lnPrevColor, lcPrevLabel, lcPrevDocKey
Local laCol[6], laKeys[100], lcDocKeyRec, lcTipRandRec
If !Used('introdc')
Return
Endif
laCol[1] = Rgb(221,235,247)
laCol[2] = Rgb(226,239,218)
laCol[3] = Rgb(255,242,204)
laCol[4] = Rgb(237,225,247)
laCol[5] = Rgb(252,228,214)
laCol[6] = Rgb(255,221,221)
lcSel = Select()
Select introdc
lcDocKeyRec = ''
lcTipRandRec = ''
If Reccount() > 0 And Between(Recno(), 1, Reccount())
lcDocKeyRec = doc_key
lcTipRandRec = tip_rand
Endif
lnDocCount = 0
lnPrevColor = 16777215
lcPrevLabel = '-'
lcPrevDocKey = Chr(255)
Go Top
Scan
Do Case
Case Inlist(tip_rand, 'B', 'S') And !(doc_key == lcPrevDocKey)
lcPrevDocKey = doc_key
lcCheie = Thisform.calc_doc_key()
If Empty(Alltrim(Nvl(serie_act,''))) And Nvl(nract,0) = 0
Replace doc_color With 16777215, doc_label With '-'
Else
lnIdx = 0
For i = 1 To lnDocCount
If laKeys[i] == lcCheie
lnIdx = i
Exit
Endif
Endfor
If lnIdx = 0 And lnDocCount < 100
lnDocCount = lnDocCount + 1
laKeys[lnDocCount] = lcCheie
lnIdx = lnDocCount
Endif
If lnIdx = 0
lnIdx = 1
Endif
Replace doc_color With laCol[Mod(lnIdx - 1, 6) + 1], doc_label With 'F' + Alltrim(Str(lnIdx))
Endif
lnPrevColor = doc_color
lcPrevLabel = Alltrim(doc_label)
Case Inlist(tip_rand, 'B', 'S')
*!* S-urile urmatoare ale aceluiasi document
Replace doc_color With lnPrevColor, doc_label With lcPrevLabel
Otherwise
Replace doc_color With lnPrevColor, doc_label With Iif(lcPrevLabel == '-', '-', lcPrevLabel + ' TVA')
Endcase
Endscan
Do Case
Case lcTipRandRec == 'D'
*!* randul D are doc_key gol - repozitionare dupa tip_rand
Locate For tip_rand == 'D'
If !Found()
Go Top
Endif
Case !Empty(lcDocKeyRec)
Locate For doc_key == lcDocKeyRec And tip_rand == lcTipRandRec
If !Found()
Go Top
Endif
Otherwise
Go Top
Endcase
Select (lcSel)
ENDPROC
PROCEDURE Show
Lparameters tnStyle
*!* HeaderHeight se micsoreaza singur la afisare si taie liniile din capul
*!* coloanelor - il refac la valoarea din design.
If Pcount() = 0
DoDefault()
Else
DoDefault(tnStyle)
Endif
This.grid1.HeaderHeight = 49
*!* 16.07.2026 claude (T3-A) - reface preturile articolelor la afisare (ca in import_nir.Show),
*!* doar daca exista deja articole (rul_temp populat la reintrare din verificare/listare).
If Reccount('rul_temp') > 0
This.do_reface()
Endif
ENDPROC
PROCEDURE sincronizeaza
*!* 16.07.2026 claude (A1+F3+D-C1) - orchestratorul sincronizarii; NU se apeleaza direct
*!* din Valid (eroare VFP 2166) - armare prin lSyncPending+tmrSync. Guard de reintrare lInSync.
If This.lInSync
Return
Endif
This.lInSync = .T.
Local lcDocKeyPoz, lcTipRandPoz, lcScdPoz, lcDocKeyCrt, lnMinNrDocProc, lnValRandProc, ;
lnMinNrDocGlobal, lcDocKeyBucla, lnNrDocDoc, llEsteParticipant
lcDocKeyPoz = ''
lcTipRandPoz = ''
lcScdPoz = ''
If Used('introdc') And Reccount('introdc') > 0 And Between(Recno('introdc'), 1, Reccount('introdc'))
Select introdc
lcDocKeyPoz = doc_key
lcTipRandPoz = tip_rand
lcScdPoz = scd
Endif
This.cmesajsync = ''
*!* directia nota->articole: recalculez procentele, apoi (T3) do_reface repreteste articolele
This.recalculeaza()
If Pemstatus(This, 'do_reface', 5)
This.do_reface()
Endif
*!* directia articole->nota: principala se sparge intotdeauna; secundarele doar daca
*!* Thisform.lSpargeSecundare e activ si documentul chiar participa la pretul articolelor
If Used('introdc')
Select Distinct doc_key ;
From introdc ;
Where Inlist(tip_rand,'B','S') And !Empty(doc_key) ;
Into Cursor crsDocs Nofilter
Select introdc
lnMinNrDocGlobal = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDocGlobal
Select crsDocs
Scan
lcDocKeyBucla = crsDocs.doc_key
Select introdc
Locate For doc_key == lcDocKeyBucla And Inlist(tip_rand,'B','S')
If !Found()
Loop
Endif
lnNrDocDoc = nr_doc
If lnNrDocDoc = lnMinNrDocGlobal
Thisform.sparge_document(lcDocKeyBucla)
Else
llEsteParticipant = !Empty(id_jtva_coloana) And (!This.lIntern Or participa_valuta)
If Thisform.lSpargeSecundare And llEsteParticipant
Thisform.sparge_document(lcDocKeyBucla)
Else
Thisform.uneste_document(lcDocKeyBucla)
Endif
Endif
Select crsDocs
Endscan
Use In crsDocs
Endif
This.recalc_diferente()
*!* procente per rand (dupa spargere): raportate la baza documentului principal (nr_doc minim B/S).
*!* NU se scriu in recalculeaza() - acolo ruleaza inaintea sparge_document(), deci S-urile
*!* documentului principal inca nu exista la momentul respectiv.
If Used('introdc') And Reccount('introdc') > 0
Select introdc
lnMinNrDocProc = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDocProc
Scan For Inlist(tip_rand,'B','S')
If nr_doc = lnMinNrDocProc
Replace explicatia4 With '100.00'
Replace explicatia5 With Iif(in_valuta = 1 Or participa_valuta, '100.00', '')
Else
Replace explicatia4 With Iif(This.nbazaprincipala_lei <> 0, Allt(Str(suma/This.nbazaprincipala_lei*100,6,2)), '')
lnValRandProc = Iif(in_valuta = 1, suma_val, Round(suma/This.oact.Curs, gnPval))
Replace explicatia5 With Iif(This.nbazaprincipala_val <> 0, Allt(Str(lnValRandProc/This.nbazaprincipala_val*100,6,2)), '')
Endif
Endscan
Endif
This.valideaza_sume()
*!* D-C1: restaurare pozitie (randul D dupa tip_rand - doc_key-ul lui e gol;
*!* fallback: primul rand al documentului, apoi Go Top)
Select introdc
Do Case
Case lcTipRandPoz == 'D'
Locate For tip_rand == 'D'
If !Found()
Go Top
Endif
Case !Empty(lcDocKeyPoz)
Locate For doc_key == lcDocKeyPoz And tip_rand == lcTipRandPoz And scd == lcScdPoz
If !Found()
Locate For doc_key == lcDocKeyPoz
Endif
If !Found()
Go Top
Endif
Otherwise
Go Top
Endcase
This.grid1.Refresh()
This.refac_culori_documente()
This.actualizeaza_banda()
This.lInSync = .F.
ENDPROC
PROCEDURE sparge_document
*!* 16.07.2026b claude (corectii T2 dupa review) - sparge documentul tcDocKey pe conturile
*!* articolelor din rul_temp. C1: B poate fi deja sters de la o spargere anterioara - daca
*!* nu exista, template-ul e primul rand S al documentului (nu mai ies fara sa fac nimic);
*!* sursa unica a totalului documentului e suma_doc/suma_doc_val (nu loBaza.suma, care pe
*!* un rand S ar fi doar cota unui cont). C2: baza de repartizare e in moneda documentului
*!* (This.lIntern): import -> pret_val*cant (D-H4: suma_val editabil, suma=val*curs);
*!* intern -> pret_lei*cant, suma_val=0. C7: la 0 articole S-urile dispar NECONDITIONAT
*!* (E7), B se recreeaza din primul S daca lipseste.
Lparameters tcDocKey
Local lcSel, lnAreArticole, llPrincipal, lnMinNrDoc, llValuta, lnCurs, llAreB, lnBazaArtTot
Local loBaza, lnSumaDoc, lnSumaDocVal, lnRestLei, lnRestVal, lcContMaxAbs, lnMaxAbs, llAreManual, lnBazaTotala
Local lnPondere, lnSumaS, lnSumaSVal, lnIdJtvaOrig, lnCotaCrt, lnIdJtvaCrt, lnRecMaxAbs
Local loRandTS, lnTotTLei, lnTotTVal, lnTotSLei
lcSel = Select()
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'B'
llAreB = Found()
If llAreB
Scatter Name loBaza Memo
Else
Locate For doc_key == tcDocKey And tip_rand == 'S'
If !Found()
*!* documentul nu (mai) exista (nici B, nici S) - nimic de facut
Select (lcSel)
Return
Endif
Scatter Name loBaza Memo
Endif
If llAreB And Empty(Alltrim(Nvl(loBaza.scd_orig,'')))
loBaza.scd_orig = Nvl(loBaza.scd,'')
loBaza.ascd_orig = Nvl(loBaza.ascd,'')
Endif
lnSumaDoc = loBaza.suma_doc
lnSumaDocVal = loBaza.suma_doc_val
*!* documentul "principal" (are articole) = nr_doc minim dintre B/S existente
*!* (v1: articolele apartin intotdeauna primului document - decizia 3)
lnMinNrDoc = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDoc
llPrincipal = (loBaza.nr_doc = lnMinNrDoc)
lnAreArticole = 0
If Used('rul_temp')
Select Count(*) As nr From rul_temp Where !Deleted() Into Cursor crsCntArt NOFILTER
lnAreArticole = crsCntArt.nr
Use In crsCntArt
Endif
*!* articole fara cantitati/preturi (baza totala 0): documentele raman nesparte
lnBazaArtTot = 0
If lnAreArticole > 0
If This.lIntern
Select Sum(Round(pret_lei*cant,gnPc)) As tot From rul_temp Where !Deleted() Into Cursor crsBazaArtTot NOFILTER
Else
Select Sum(Round(pret_val*cant,gnPval)) As tot From rul_temp Where !Deleted() Into Cursor crsBazaArtTot NOFILTER
Endif
lnBazaArtTot = Nvl(crsBazaArtTot.tot, 0)
Use In crsBazaArtTot
If lnBazaArtTot = 0
If !("Articolele nu au inca cantitati/preturi" $ Thisform.cmesajsync)
Thisform.cmesajsync = Thisform.cmesajsync + Iif(Empty(Thisform.cmesajsync),'',Chr(13)+Chr(10)) + ;
"Articolele nu au inca cantitati/preturi - completati-le; documentele raman nesincronizate."
Endif
Select (lcSel)
Return
Endif
Endif
llAreManual = .F.
Select introdc
Locate For doc_key == tcDocKey And Inlist(tip_rand,'S','D') And mod_manual = 1
If Found()
llAreManual = .T.
Endif
If lnAreArticole = 0
*!* E7 (C7): fara articole -> S-urile dispar NECONDITIONAT; B se recreeaza daca lipseste
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'S'
If Found()
If !llAreB
Local loRandS, lcScdSablon
Scatter Name loRandS Memo
lcScdSablon = ''
If Used('introdc_sablon')
Select introdc_sablon
Go 1
lcScdSablon = scd
Select introdc
Endif
Append Blank
Gather Name loRandS Memo
Replace tip_rand With 'B', doc_key With tcDocKey, scd With Iif(!Empty(Alltrim(Nvl(loRandS.scd_orig,''))), Alltrim(loRandS.scd_orig), lcScdSablon), ascd With Alltrim(Nvl(loRandS.ascd_orig,'')), ;
suma With lnSumaDoc, suma_val With lnSumaDocVal, mod_manual With 0
Endif
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'S'
Endif
Select (lcSel)
Return
Endif
If llAreManual
*!* D-H3 (simplificat la T2): editari manuale prezente - nu rescriu S-urile documentului
Select (lcSel)
Return
Endif
llValuta = (loBaza.in_valuta = 1)
lnCurs = Iif(Nvl(loBaza.curs,0) <> 0, loBaza.curs, Thisform.oact.Curs)
*!* partenerul debit completat pe S-uri se pastreaza la regenerare (per cont+analitic)
Select scd, ascd, id_partd, partd From introdc ;
Where doc_key == tcDocKey And tip_rand == 'S' And Nvl(id_partd,0) <> 0 ;
Into Cursor crsPartS NOFILTER
*!* runda27 (D2): scc/ascc/id_partc/partc editate manual pe un S se pastreaza la
*!* regenerare (spre deosebire de crsPartS, se reaplica NECONDITIONAT mai jos)
Select scd, ascd, scc, ascc, id_partc, partc From introdc ;
Where doc_key == tcDocKey And tip_rand == 'S' And !Empty(Alltrim(Nvl(scc,''))) ;
Into Cursor crsSccS NOFILTER
*!* C1: sterg S-urile existente ale documentului inainte de regenerare (altfel se
*!* acumuleaza duplicate la fiecare resincronizare)
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'S'
*!* C2: grupez articolele pe cont+analitic, in moneda documentului (import: pret_val; intern: pret_lei)
If This.lIntern
Select cont, acont, Sum(Round(pret_lei*cant,gnPc)) As baza_lei, 0 As baza_val ;
From rul_temp Where !Deleted() Group By cont, acont Into Cursor crsGrupCont NOFILTER
Else
Select cont, acont, Sum(Round(pret_val*cant,gnPval)) As baza_val, 0 As baza_lei ;
From rul_temp Where !Deleted() Group By cont, acont Into Cursor crsGrupCont NOFILTER
Endif
If llPrincipal
*!* factura principala: rand S per cont, la baza proprie a contului
Select crsGrupCont
Scan
If This.lIntern
Thisform.creeaza_rand_s(tcDocKey, cont, baza_lei, 0, loBaza, acont)
Else
Thisform.creeaza_rand_s(tcDocKey, cont, Round(baza_val*lnCurs,gnPc), baza_val, loBaza, acont)
Endif
Select crsGrupCont
Endscan
Else
*!* transport/taxe (dec.2 revizuita): proportional cu bazele articolelor per cont,
*!* raportat la baza totala a facturii principale (in moneda documentului); debit =
*!* contul articolelor, credit = mostenit din randul B/S sablon (scc), prin
*!* creeaza_rand_s (A2)
If This.lIntern
Select Sum(baza_lei) As tot From crsGrupCont Into Cursor crsBazaTotala NOFILTER
Else
Select Sum(baza_val) As tot From crsGrupCont Into Cursor crsBazaTotala NOFILTER
Endif
lnBazaTotala = Nvl(crsBazaTotala.tot, 0)
Use In crsBazaTotala
If lnBazaTotala = 0
Use In crsGrupCont
If Used('crsPartS')
Use In crsPartS
Endif
Select (lcSel)
Return
Endif
Select crsGrupCont
Scan
If This.lIntern
lnPondere = baza_lei / lnBazaTotala
lnSumaS = Round(lnSumaDoc * lnPondere, gnPc)
lnSumaSVal = 0
Else
lnPondere = baza_val / lnBazaTotala
If loBaza.in_valuta = 1
lnSumaSVal = Round(lnSumaDocVal * lnPondere, gnPval)
lnSumaS = Round(lnSumaSVal * lnCurs, gnPc)
Else
*!* document secundar platit in lei: se repartizeaza direct suma in lei
lnSumaSVal = 0
lnSumaS = Round(lnSumaDoc * lnPondere, gnPc)
Endif
Endif
Thisform.creeaza_rand_s(tcDocKey, cont, lnSumaS, lnSumaSVal, loBaza, acont)
Select crsGrupCont
Endscan
Endif
Use In crsGrupCont
*!* E2: rotunjire independenta per moneda - reziduul pe randul S cu |suma| maxima,
*!* raportat la suma_doc/suma_doc_val (sursa unica, C1)
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc Where doc_key == tcDocKey And tip_rand == 'S' Into Cursor crsSumS NOFILTER
lnRestLei = Round(lnSumaDoc - Nvl(crsSumS.s_lei,0), gnPc)
lnRestVal = Round(lnSumaDocVal - Nvl(crsSumS.s_val,0), gnPval)
Use In crsSumS
If lnRestLei <> 0
lcContMaxAbs = ''
lnMaxAbs = -1
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'S'
If Abs(suma) > lnMaxAbs
lnMaxAbs = Abs(suma)
lcContMaxAbs = scd
Endif
Endscan
Locate For doc_key == tcDocKey And tip_rand == 'S' And scd == lcContMaxAbs
If Found()
Replace suma With suma + lnRestLei
Endif
Endif
If llValuta And lnRestVal <> 0
lcContMaxAbs = ''
lnMaxAbs = -1
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'S'
If Abs(suma_val) > lnMaxAbs
lnMaxAbs = Abs(suma_val)
lcContMaxAbs = scd
Endif
Endscan
Locate For doc_key == tcDocKey And tip_rand == 'S' And scd == lcContMaxAbs
If Found()
Replace suma_val With suma_val + lnRestVal
Endif
Endif
If Used('crsPartS') And Reccount('crsPartS') > 0
Select crsPartS
Scan
Select introdc
Replace id_partd With crsPartS.id_partd, partd With crsPartS.partd ;
For doc_key == tcDocKey And tip_rand == 'S' And Nvl(id_partd,0) = 0 ;
And Alltrim(scd) == Alltrim(crsPartS.scd) And Alltrim(Nvl(ascd,'')) == Alltrim(Nvl(crsPartS.ascd,''))
Select crsPartS
Endscan
Endif
If Used('crsPartS')
Use In crsPartS
Endif
*!* runda27 (D2): reaplic scc/ascc/id_partc/partc pe cheia scd+ascd, NECONDITIONAT -
*!* creditorul ales de utilizator per cont invinge mostenirea din sablon
If Used('crsSccS') And Reccount('crsSccS') > 0
Select crsSccS
Scan
Select introdc
Replace scc With crsSccS.scc, ascc With crsSccS.ascc, id_partc With crsSccS.id_partc, partc With crsSccS.partc ;
For doc_key == tcDocKey And tip_rand == 'S' ;
And Alltrim(scd) == Alltrim(crsSccS.scd) And Alltrim(Nvl(ascd,'')) == Alltrim(Nvl(crsSccS.ascd,''))
Select crsSccS
Endscan
Endif
If Used('crsSccS')
Use In crsSccS
Endif
*!* dec.6: cate un rand T per cota TVA prezenta pe articolele documentului (doar la principal)
If llPrincipal
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T'
If Found()
Local loRandT
Scatter Name loRandT Memo
lnIdJtvaOrig = id_jtva_coloana
Select rul_temp
Replace cota_tva With loRandT.ptva For Nvl(cota_tva,0) <= 0
*!* runda27 (D3): grupare pe cota + creditor (scc/ascc) al S-ului corespunzator contului articolului
Thisform.calc_baze_cota_creditor(tcDocKey, loBaza)
If Reccount('crsGrupCota') > 0
Select introdc
*!* T-urile manuale (mod_manual=1) nu se sterg - raman neatinse
Delete For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
Select crsGrupCota
Scan
lnCotaCrt = cota_tva
*!* cota are deja un rand T manual - nu se recreaza (evita duplicat)
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual = 1 ;
And Alltrim(Nvl(scc,'')) == Alltrim(Nvl(crsGrupCota.scc,'')) And Alltrim(Nvl(ascc,'')) == Alltrim(Nvl(crsGrupCota.ascc,''))
If Found()
Select crsGrupCota
Loop
Endif
If lnCotaCrt = loRandT.ptva
lnIdJtvaCrt = lnIdJtvaOrig
Else
lnIdJtvaCrt = Thisform.gaseste_jtva_cota(lnIdJtvaOrig, lnCotaCrt)
Endif
If lnIdJtvaCrt = 0
Thisform.cmesajsync = Thisform.cmesajsync + Iif(Empty(Thisform.cmesajsync),'',Chr(13)+Chr(10)) + ;
"Nu am gasit coloana TVA pentru cota " + Transform(lnCotaCrt) + "% (document " + Alltrim(Nvl(loRandT.fdoc,'')) + ")."
Else
Select introdc
Append Blank
Gather Name loRandT Memo
If This.lIntern
Replace tip_rand With 'T', doc_key With tcDocKey, nr_doc With loRandT.nr_doc, ;
id_jtva_coloana With lnIdJtvaCrt, ptva With lnCotaCrt, ;
scc With crsGrupCota.scc, ascc With crsGrupCota.ascc, ;
suma With Round(crsGrupCota.baza_lei * lnCotaCrt / 100, gnPc), suma_val With 0
Else
Replace tip_rand With 'T', doc_key With tcDocKey, nr_doc With loRandT.nr_doc, ;
id_jtva_coloana With lnIdJtvaCrt, ptva With lnCotaCrt, ;
scc With crsGrupCota.scc, ascc With crsGrupCota.ascc, ;
suma_val With Round(crsGrupCota.baza_val * lnCotaCrt / 100, gnPval)
Replace suma With Round(suma_val * lnCurs, gnPc)
Endif
If lnIdJtvaCrt <> lnIdJtvaOrig
Select jtva_coloane2
Locate For id_jtva_coloana = lnIdJtvaCrt
If Found()
Select introdc
Replace explicatie_tva With jtva_coloane2.denumire
Endif
Endif
Endif
Select crsGrupCota
Endscan
*!* runda27 (D5): rotunjire reziduala per cota - suma T-urilor nemanuale ale unei cote
*!* cu mai multe creditoare trebuie sa fie exact baza_totala_cota*cota/100; reziduul
*!* merge pe T-ul cu |suma| maxima al cotei. Sarit daca exista deja un T manual pe
*!* cota respectiva (baza lui nu mai apartine lotului auto).
Select Distinct cota_tva From crsGrupCota Into Cursor crsCoteRund NOFILTER
Select crsCoteRund
Scan
lnCotaCrt = crsCoteRund.cota_tva
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual = 1
If !Found()
Select Sum(baza_lei) As tot_lei, Sum(baza_val) As tot_val, Count(*) As nr_grup ;
From crsGrupCota Where cota_tva == lnCotaCrt Into Cursor crsBazaCota NOFILTER
If crsBazaCota.nr_grup > 1
If This.lIntern
Select Sum(suma) As s From introdc Where doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual <> 1 Into Cursor crsSumTCota NOFILTER
lnRestLei = Round(crsBazaCota.tot_lei * lnCotaCrt / 100, gnPc) - Round(Nvl(crsSumTCota.s,0), gnPc)
Use In crsSumTCota
If lnRestLei <> 0
lnMaxAbs = -1
lnRecMaxAbs = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual <> 1
If Abs(suma) > lnMaxAbs
lnMaxAbs = Abs(suma)
lnRecMaxAbs = Recno()
Endif
Endscan
If lnRecMaxAbs > 0
Go lnRecMaxAbs In introdc
Replace suma With suma + lnRestLei
Endif
Endif
Else
Select Sum(suma_val) As s From introdc Where doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual <> 1 Into Cursor crsSumTCota NOFILTER
lnRestVal = Round(crsBazaCota.tot_val * lnCotaCrt / 100, gnPval) - Round(Nvl(crsSumTCota.s,0), gnPval)
Use In crsSumTCota
If lnRestVal <> 0
lnMaxAbs = -1
lnRecMaxAbs = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual <> 1
If Abs(suma_val) > lnMaxAbs
lnMaxAbs = Abs(suma_val)
lnRecMaxAbs = Recno()
Endif
Endscan
If lnRecMaxAbs > 0
Go lnRecMaxAbs In introdc
Replace suma_val With suma_val + lnRestVal
Replace suma With Round(suma_val * lnCurs, gnPc)
Endif
Endif
Endif
Endif
Use In crsBazaCota
Endif
Select crsCoteRund
Endscan
Use In crsCoteRund
Endif
Use In crsGrupCota
Endif
Endif
If !llPrincipal
*!* secundara: T-urile nemanuale se regrupeaza pe creditorii S-urilor (scc/ascc),
*!* impartind totalul T existent proportional cu sumele S per creditor
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
If Found()
Scatter Name loRandTS Memo
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 Into Cursor crsTotTSec NOFILTER
lnTotTLei = Nvl(crsTotTSec.s_lei,0)
lnTotTVal = Nvl(crsTotTSec.s_val,0)
Use In crsTotTSec
Select scc, ascc, Sum(suma) As s_lei From introdc ;
Where doc_key == tcDocKey And tip_rand == 'S' ;
Group By scc, ascc Into Cursor crsGrupSccT NOFILTER
Select Sum(s_lei) As tot From crsGrupSccT Into Cursor crsTotSSec NOFILTER
lnTotSLei = Nvl(crsTotSSec.tot,0)
Use In crsTotSSec
If Reccount('crsGrupSccT') > 0 And lnTotSLei <> 0
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
Select crsGrupSccT
Scan
lnPondere = crsGrupSccT.s_lei / lnTotSLei
Select introdc
Append Blank
Gather Name loRandTS Memo
Replace scc With crsGrupSccT.scc, ascc With crsGrupSccT.ascc, ;
suma With Round(lnTotTLei * lnPondere, gnPc), ;
suma_val With Round(lnTotTVal * lnPondere, gnPval)
Select crsGrupSccT
Endscan
*!* reziduul de rotunjire pe T-ul cu |suma| maxima (modelul D5)
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 Into Cursor crsSumTSec NOFILTER
lnRestLei = Round(lnTotTLei - Nvl(crsSumTSec.s_lei,0), gnPc)
lnRestVal = Round(lnTotTVal - Nvl(crsSumTSec.s_val,0), gnPval)
Use In crsSumTSec
If lnRestLei <> 0 Or lnRestVal <> 0
lnMaxAbs = -1
lnRecMaxAbs = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
If Abs(suma) > lnMaxAbs
lnMaxAbs = Abs(suma)
lnRecMaxAbs = Recno()
Endif
Endscan
If lnRecMaxAbs > 0
Go lnRecMaxAbs In introdc
Replace suma With suma + lnRestLei, suma_val With suma_val + lnRestVal
Endif
Endif
Endif
Use In crsGrupSccT
Endif
Endif
*!* B dispare dupa spargere (dec.9=D9)
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'B'
Select (lcSel)
ENDPROC
PROCEDURE uneste_document
*!* reface randul B al unui document din S-urile lui (cand spargerea secundarelor e oprita)
Lparameters tcDocKey
Local lcSel, lcScdB, lcAscdB, lnMaxAbs
Local lnCntTU, lnSumTULei, lnSumTUVal, lnRecTU
lcSel = Select()
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'S'
If !Found()
Select (lcSel)
Return
Endif
*!* editari manuale prezente - nu ating documentul
Locate For doc_key == tcDocKey And Inlist(tip_rand,'S','D') And mod_manual = 1
If Found()
Select (lcSel)
Return
Endif
Local loS
Locate For doc_key == tcDocKey And tip_rand == 'S'
Scatter Name loS Memo
*!* contul B: cel original (scd_orig) daca exista, altfel al S-ului cu |suma| maxima
lcScdB = Alltrim(Nvl(loS.scd_orig,''))
lcAscdB = Alltrim(Nvl(loS.ascd_orig,''))
If Empty(lcScdB)
lnMaxAbs = -1
Scan For doc_key == tcDocKey And tip_rand == 'S'
If Abs(suma) > lnMaxAbs
lnMaxAbs = Abs(suma)
lcScdB = Alltrim(scd)
lcAscdB = Alltrim(Nvl(ascd,''))
Endif
Endscan
Endif
Append Blank
Gather Name loS Memo
Replace tip_rand With 'B', doc_key With tcDocKey, scd With lcScdB, ascd With lcAscdB, ;
suma With loS.suma_doc, suma_val With loS.suma_doc_val, mod_manual With 0
Delete For doc_key == tcDocKey And tip_rand == 'S'
*!* T-urile nemanuale sparte pe creditori se reunesc intr-unul singur (documentul revine la B unic)
Select Count(*) As nr, Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 Into Cursor crsTU NOFILTER
lnCntTU = crsTU.nr
lnSumTULei = Nvl(crsTU.s_lei,0)
lnSumTUVal = Nvl(crsTU.s_val,0)
Use In crsTU
If lnCntTU > 1
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1
lnRecTU = Recno()
Delete For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 And Recno() <> lnRecTU
Go lnRecTU In introdc
Replace suma With lnSumTULei, suma_val With lnSumTUVal
Endif
Select (lcSel)
ENDPROC
PROCEDURE updateexplicatiesaft
* Daca nu este activata SAFT 406 nu fac nimic
IF !m.gl406
RETURN
ENDIF
Local loPartenerRTVAI As "empty"
Local loPartenerRTVAIX As "empty"
Local lcCodFiscal, lcNumePart, ldDataAct, llFurnizorRTVAI, lnIdJtva, lnIdPart, lnTaxCode, lcSelect
lcSelect = SELECT()
ldDataAct = poAct.dataact
lnIdJtva = introdc.id_jtva_coloana
llFurnizorRTVAI = .F.
lnIdPart = Nvl(introdc.id_partc, introdc.id_partd)
lnTaxCode = GetTaxCodeIdPart(m.gnAn, m.gnLuna, m.ldDataAct, m.lnIdJtva, m.lnIdPart)
Replace taxcode With m.lnTaxCode In introdc
*This.grid1.cTaxCode._combobox1.Refresh()
SELECT (m.lcSelect)
ENDPROC
PROCEDURE valideaza_sume
*!* 16.07.2026 claude - Suma(S) vs suma_doc per document (E2), articole fara cont (F2);
*!* cmesajsync acumuleaza si mesajele deja setate de sparge_document/recalc_diferente
*!* (jtva lipsa - dec.6, 2xx nerepartizat - dec.9). Return .F. daca exista vreun mesaj.
Local lcSel, lcMesaje, lcDocKeyCrt, lnSumaS, lnSumaDoc, lnSumaSVal, lnSumaDocVal, lcSelAna, lnSuccesAna, lcArtMesaj, lcContCrt, lcAcontCrt, lcDenCrt, lcMsgCrt, lcConturiAna
lcSel = Select()
lcMesaje = Thisform.cmesajsync
If Used('introdc')
Select Distinct doc_key From introdc Where tip_rand == 'S' Into Cursor crsDocSparte NOFILTER
Select crsDocSparte
Scan
lcDocKeyCrt = doc_key
Select introdc
Locate For doc_key == lcDocKeyCrt And tip_rand == 'S'
lnSumaDoc = suma_doc
lnSumaDocVal = suma_doc_val
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc Where doc_key == lcDocKeyCrt And tip_rand == 'S' Into Cursor crsSumS NOFILTER
lnSumaS = Nvl(crsSumS.s_lei,0)
lnSumaSVal = Nvl(crsSumS.s_val,0)
Use In crsSumS
If Round(lnSumaS - lnSumaDoc, gnPc) <> 0 Or Round(lnSumaSVal - lnSumaDocVal, gnPval) <> 0
*!* pe documente in valuta, mesajul in moneda documentului (sumele in lei nu apar in grila)
If introdc.in_valuta = 1
lcMesaje = lcMesaje + Iif(Empty(lcMesaje),'',Chr(13)+Chr(10)) + ;
"Document " + Alltrim(Nvl(introdc.fdoc,'')) + " " + Alltrim(Nvl(introdc.serie_act,'')) + Transform(introdc.nract) + ;
": suma subrandurilor (" + Transform(lnSumaSVal) + " " + Alltrim(Nvl(introdc.nume_val,'')) + " / " + Transform(lnSumaS) + " lei)" + ;
" difera de suma facturii (" + Transform(lnSumaDocVal) + " " + Alltrim(Nvl(introdc.nume_val,'')) + " / " + Transform(lnSumaDoc) + " lei)."
Else
lcMesaje = lcMesaje + Iif(Empty(lcMesaje),'',Chr(13)+Chr(10)) + ;
"Document " + Alltrim(Nvl(introdc.fdoc,'')) + " " + Alltrim(Nvl(introdc.serie_act,'')) + Transform(introdc.nract) + ;
": suma subrandurilor (" + Transform(lnSumaS) + ") difera de suma facturii (" + Transform(lnSumaDoc) + ")."
Endif
Endif
Select crsDocSparte
Endscan
Use In crsDocSparte
Endif
*!* F2: articol fara cont in nomenclator (validarea completa la adaugare vine cu do_adauga la T3)
If Used('rul_temp')
Select Count(*) As nr From rul_temp Where !Deleted() And Empty(Alltrim(Nvl(cont,''))) Into Cursor crsFaraCont NOFILTER
If crsFaraCont.nr > 0
lcMesaje = lcMesaje + Iif(Empty(lcMesaje),'',Chr(13)+Chr(10)) + ;
Transform(crsFaraCont.nr) + " articol(e) fara cont in nomenclator."
Endif
Use In crsFaraCont
Endif
*!* F3: analitic pe cont articol (cont cu analitice in plan neasignat/necunoscut - vezi assign_analitic/verificare_note_contabile)
If Used('rul_temp') And Reccount('rul_temp') > 0
lcConturiAna = cursor2listac('rul_temp','cont',',',[!Deleted() And !Empty(Alltrim(Nvl(cont,'')))])
If !Empty(lcConturiAna)
lcSelAna = [select cont, acont from ] + gcS + [.vplcont_analitic where inactiv = 0 and an = ?gnAn and acont is not null and rtrim(cont) in (] + lcConturiAna + [) order by cont]
lnSuccesAna = goExecutor.oExecute(lcSelAna,'crsPlanAna')
If lnSuccesAna < 0
lcMesaje = lcMesaje + Iif(Empty(lcMesaje),'',Chr(13)+Chr(10)) + ;
"Eroare verificare analitic articole: " + goExecutor.cEroare
Else
If lnSuccesAna > 0
lcArtMesaj = ''
Select rul_temp
Scan For !Deleted() And !Empty(Alltrim(Nvl(cont,'')))
lcContCrt = Alltrim(cont)
lcAcontCrt = Alltrim(Nvl(acont,''))
lcDenCrt = Alltrim(Nvl(denumire,''))
Select crsPlanAna
Locate For Alltrim(cont) == lcContCrt
If Found()
If Empty(lcAcontCrt)
lcMsgCrt = "Articol " + lcDenCrt + ": contul " + lcContCrt + " are analitice definite, analiticul nu e completat."
If !(lcMsgCrt $ lcArtMesaj)
lcArtMesaj = lcArtMesaj + Iif(Empty(lcArtMesaj),'',Chr(13)+Chr(10)) + lcMsgCrt
Endif
Else
Locate For Alltrim(cont) == lcContCrt And Alltrim(Nvl(acont,'')) == lcAcontCrt
If !Found()
lcMsgCrt = "Articol " + lcDenCrt + ": analiticul " + lcContCrt + "." + lcAcontCrt + " nu exista in planul de conturi."
If !(lcMsgCrt $ lcArtMesaj)
lcArtMesaj = lcArtMesaj + Iif(Empty(lcArtMesaj),'',Chr(13)+Chr(10)) + lcMsgCrt
Endif
Endif
Endif
Endif
Select rul_temp
Endscan
If !Empty(lcArtMesaj)
lcMesaje = lcMesaje + Iif(Empty(lcMesaje),'',Chr(13)+Chr(10)) + lcArtMesaj
Endif
Endif
Use In crsPlanAna
Endif
Endif
Endif
Thisform.cmesajsync = lcMesaje
Select (lcSel)
Return Empty(lcMesaje)
ENDPROC
PROCEDURE chkSpargeSecundare.Valid
*!* NU sincronizeaza() direct (eroare VFP 2166) - doar armeaza tmrSync
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE Cmd_executa1.Click
*!* 16.07.2026 claude (T3) - butonul benzii: sincronizare manuala (nu do_executa direct)
Thisform.sincronizeaza()
ENDPROC
PROCEDURE Grid1.cAscc.Text1.Click
this.LostFocus(.t.)
ENDPROC
PROCEDURE Grid1.cAscc.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid recalculeaza doar daca s-a modificat
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE Grid1.cAscc.Text1.LostFocus
PARAMETERS PlClick
lcSel = thisform.grid1.RecordSource
SELECT (lcSel)
lcCont = scc
lcAcont = ascc
llReturn = verific_analitic(plClick, lcCont, lcAcont,'ascc', lcSel) && in oOperatii_comune.prg
ENDPROC
PROCEDURE Grid1.cAscc.Text1.Valid
*!* rand S: schimbarea manuala a analiticului creditor muta si TVA-ul la resincronizare.
*!* Garda pe nOldVal: Valid re-declansat de regenerarea randurilor din sincronizare nu
*!* rearmeaza timerul; grila poate scrie campul INAINTE de Valid (ex. Enter), deci
*!* armarea nu depinde de compararea cu campul
If Thisform.lInSync
Return
Endif
If This.Value = Thisform.nOldVal
Return
Endif
If introdc.tip_rand == 'S'
If !(Alltrim(This.Value) == Alltrim(Nvl(introdc.ascc,'')))
Select introdc
Replace ascc With This.Value
Endif
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
Endif
Thisform.nOldVal = This.Value
ENDPROC
PROCEDURE Grid1.cAscd.Text1.Click
this.LostFocus(.t.)
ENDPROC
PROCEDURE Grid1.cAscd.Text1.LostFocus
PARAMETERS PlClick
lcSel = thisform.grid1.RecordSource
SELECT (lcSel)
lcCont = scd
lcAcont = ascd
llReturn = verific_analitic(plClick, lcCont, lcAcont,'ascd', lcSel) && in oOperatii_comune.prg
ENDPROC
PROCEDURE Grid1.cCurs.Text1.Valid
*!* cursul editat se scrie explicit (ca la cSumaVal.Valid - dupa amessagebox grid-ul
*!* nu-l mai scria in camp) si se copiaza pe randul de TVA pereche; apoi ofer
*!* recalcularea sumei in lei din suma in valuta, ca la modificarea sumei in valuta
Local lnSumaDinVal, lnRaspuns
If This.Value # 0
Select introdc
Replace curs With This.Value
Thisform.copiaza_valoare([curs])
If in_valuta = 1 And suma_val # 0
lnSumaDinVal = Round(suma_val * This.Value, gnPC)
lnRaspuns = 6
If suma <> 0 And suma <> lnSumaDinVal
lnRaspuns = amessagebox("Suma in lei difera de suma in valuta transformata in lei!" + CHR(13) + CHR(10) + ;
"Doriti recalcularea sumei in lei?",4+32,"Diferente sume")
Endif
If lnRaspuns = 6
Replace suma With lnSumaDinVal
Endif
Thisform.do_executa
Endif
Endif
ENDPROC
PROCEDURE Grid1.cDataAct.Text1.Valid
Thisform.copiaza_valoare(This.Parent.ControlSource)
ENDPROC
PROCEDURE Grid1.cExplicatieTva.Combo1.Valid
*!* 14.07.2016
*!* marius.mutu
*!* inlocuiesc 4426 = 401 cu 4426 = 4427 pt ach tx inversa/CE 20%
*!* 16.07.2026 claude - delegat la aplica_explicatie_tva (era duplicat pe paritate)
LOCAL lnId, lnPtva
lnId = jtva_coloane2.id_jtva_coloana
lnPtva = jtva_coloane2.cota_Tva
Select introdc
Replace id_jtva_coloana With lnId, ptva With lnPtva
If introdc.tip_rand = 'B'
Thisform.aplica_explicatie_tva(lnId)
Endif
Thisform.grid1.cSuma.teXT1.Valid
ENDPROC
PROCEDURE Grid1.cExplicatieTva.Text1.DblClick
thisform.do_modifica_explicatie_tva()
ENDPROC
PROCEDURE Grid1.cExplicatieTva.Text1.InteractiveChange
thisform.do_modifica_explicatie_tva()
This.Value = introdc.explicatie_tva
ENDPROC
PROCEDURE Grid1.cFDoc.Text1.DblClick
Thisform.do_modifica_fdoc()
ENDPROC
PROCEDURE Grid1.cFDoc.Text1.InteractiveChange
Thisform.do_modifica_fdoc()
This.Value = introdc.fdoc
ENDPROC
PROCEDURE Grid1.cFDoc.Text1.When
*!* 16.07.2026 claude (T3c2, D-H2) - blocat pe randul D (diferente, fara act propriu)
Return !(introdc.tip_rand == 'D')
ENDPROC
PROCEDURE Grid1.cInValuta.Check1.Valid
thisform.do_executa
ENDPROC
PROCEDURE Grid1.cNract.Text1.Valid
*!* modificare v 2.1.39
Thisform.copiaza_valoare(This.Parent.ControlSource)
*!* IF MOD(RECNO(),2) = 1 AND RECNO() <> RECCOUNT()
*!* LOCAL lcSelect
*!* lcSelect = SELECT()
*!*
*!* SELECT introdc
*!* lnNract = nract
*!* SKIP
*!* REPLACE nract WITH lnNract
*!* SKIP -1
*!*
*!* SELECT (lcSelect)
*!* ENDIF
*!* modificare v 2.1.39 ^
ENDPROC
PROCEDURE Grid1.cNract.Text1.When
*!* 16.07.2026 claude (T3c2, D-H2) - blocat pe randul D (diferente, fara act propriu)
Return !(introdc.tip_rand == 'D')
ENDPROC
PROCEDURE Grid1.cPartC.Text1.Click
* single click nu mai declanseaza cautarea partenerului (golea partenerul la
* anulare). Re-alegerea se face pe dublu click - vezi DblClick.
ENDPROC
PROCEDURE Grid1.cPartC.Text1.DblClick
* re-alegerea partenerului creditor; daca se anuleaza, pastrez valoarea veche
Local lcSel, lnOldId, lcOldNume
lcSel = Thisform.grid1.RecordSource
lnOldId = &lcSel..id_partc
lcOldNume = &lcSel..partc
This.LostFocus(.t.)
If Empty(&lcSel..id_partc) And lnOldId <> 0
Select (lcSel)
Replace id_partc With lnOldId, partc With lcOldNume
Thisform.grid1.Refresh()
Endif
ENDPROC
PROCEDURE Grid1.cPartC.Text1.InteractiveChange
* nu mai fortez cautarea la tastare (vezi Click/DblClick)
ENDPROC
PROCEDURE Grid1.cPartC.Text1.LostFocus
PARAMETERS PlClick
lcSel = thisform.grid1.RecordSource
IF plClick OR EMPTY(&lcSel..id_partc)
lcCont = &lcSel..scc
llReturn = verific_partener(lcCont, 'partc','id_partc', lcSel) && in oOperatii_comune.prg
ELSE
DODEFAULT()
ENDIF
ENDPROC
PROCEDURE Grid1.cPartC.Text1.Valid
*!* 16.07.2026 claude - propaga pe doc_key (inlocuieste MOD(RECNO(),2)+SKIP)
LOCAL lcSelect, lcDocKey, lnIdPart, lcPart, lcCont, lnRecCurent
lcSelect = SELECT()
SELECT introdc
lnRecCurent = RECNO()
lcDocKey = doc_key
lnIdPart = id_partc
lcPart = partc
lcCont = scc
SCAN FOR !EMPTY(lcDocKey) AND doc_key == lcDocKey AND RECNO() <> lnRecCurent
IF scc = lcCont AND EMPTY(id_partc)
REPLACE id_partc WITH lnIdPart, partc WITH lcPart
ENDIF
ENDSCAN
GO lnRecCurent
SELECT (lcSelect)
ENDPROC
PROCEDURE Grid1.cPartC.Text1.When
Return .T.
ENDPROC
PROCEDURE Grid1.cPartD.Text1.Click
* single click nu mai declanseaza cautarea partenerului (vezi DblClick)
ENDPROC
PROCEDURE Grid1.cPartD.Text1.DblClick
* re-alegerea partenerului debitor; daca se anuleaza, pastrez valoarea veche
Local lcSel, lnOldId, lcOldNume
lcSel = Thisform.grid1.RecordSource
lnOldId = &lcSel..id_partd
lcOldNume = &lcSel..partd
This.LostFocus(.t.)
If Empty(&lcSel..id_partd) And lnOldId <> 0
Select (lcSel)
Replace id_partd With lnOldId, partd With lcOldNume
Thisform.grid1.Refresh()
Endif
ENDPROC
PROCEDURE Grid1.cPartD.Text1.InteractiveChange
* la tastare deschid cautarea de partener debitor - acelasi mecanism ca
* re-alegerea pe dublu-click (pastreaza valoarea veche la anulare)
This.DblClick()
This.Value = Evaluate(Thisform.grid1.RecordSource + '.partd')
ENDPROC
PROCEDURE Grid1.cPartD.Text1.LostFocus
PARAMETERS PlClick
lcSel = thisform.grid1.RecordSource
IF plClick OR EMPTY(&lcSel..id_partd)
lcCont = &lcSel..scd
llReturn = verific_partener(lcCont, 'partd','id_partd', lcSel) && in oOperatii_comune.prg
ELSE
DODEFAULT()
ENDIF
ENDPROC
PROCEDURE Grid1.cPartD.Text1.Valid
*!* 16.07.2026 claude - propaga pe doc_key (inlocuieste MOD(RECNO(),2)+SKIP)
LOCAL lcSelect, lcDocKey, lnIdPart, lcPart, lcCont, lnRecCurent
lcSelect = SELECT()
SELECT introdc
lnRecCurent = RECNO()
lcDocKey = doc_key
lnIdPart = id_partd
lcPart = partd
lcCont = scd
SCAN FOR !EMPTY(lcDocKey) AND doc_key == lcDocKey AND RECNO() <> lnRecCurent
IF scd = lcCont AND EMPTY(id_partd)
REPLACE id_partd WITH lnIdPart, partd WITH lcPart
ENDIF
ENDSCAN
GO lnRecCurent
SELECT (lcSelect)
ENDPROC
PROCEDURE Grid1.cParticipaValuta.Check1.Valid
thisform.do_executa
ENDPROC
PROCEDURE Grid1.cScc.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid recalculeaza doar daca s-a modificat
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE Grid1.cScc.Text1.Valid
*!* rand S: schimbarea manuala a creditorului nu seteaza mod_manual (ar bloca
*!* sparge_document prin llAreManual) - doar rearmeaza sincronizarea, care muta si TVA-ul.
*!* Garda pe nOldVal: Valid re-declansat de regenerarea randurilor din sincronizare nu
*!* rearmeaza timerul; grila poate scrie campul INAINTE de Valid (ex. Enter), deci
*!* armarea nu depinde de compararea cu campul
If Thisform.lInSync
Return
Endif
If This.Value = Thisform.nOldVal
Return
Endif
If introdc.tip_rand == 'S'
If !(Alltrim(This.Value) == Alltrim(Nvl(introdc.scc,'')))
Select introdc
Replace scc With This.Value
Endif
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
Endif
Thisform.nOldVal = This.Value
ENDPROC
PROCEDURE Grid1.cSerie_act.Text1.Valid
*!* modificare v 2.1.39
Thisform.copiaza_valoare(This.Parent.ControlSource)
*!* IF MOD(RECNO(),2) = 1 AND RECNO() <> RECCOUNT()
*!* LOCAL lcSelect
*!* lcSelect = SELECT()
*!*
*!* SELECT introdc
*!* lnSerie_act = serie_act
*!* SKIP
*!* REPLACE serie_act WITH lnSerie_act
*!* SKIP -1
*!*
*!* SELECT (lcSelect)
*!* ENDIF
*!* modificare v 2.1.39 ^
ENDPROC
PROCEDURE Grid1.cSerie_act.Text1.When
*!* 16.07.2026 claude (T3c2, D-H2) - blocat pe randul D (diferente, fara act propriu)
Return !(introdc.tip_rand == 'D')
ENDPROC
PROCEDURE Grid1.cSuma.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid recalculeaza doar daca s-a modificat
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE Grid1.cSuma.Text1.Valid
*!* 16.07.2026 claude (A1+dec.5) - NU sincronizeaza() direct (eroare VFP 2166); doar
*!* marcheaza documentul si armeaza tmrSync. 16.07.2026b claude (C6): suma_doc se
*!* propaga pe grup DOAR cand editez randul B (nu si pe T, unde userul editeaza suma
*!* de TVA - altfel suma_doc ar deveni eronat egala cu TVA-ul).
If This.Value = Thisform.nOldVal
*!* nemodificat (ex. navigare cu sagetile) - fara recalcul si fara resincronizare
Return
Endif
If Inlist(introdc.tip_rand, 'S', 'D', 'T')
Select introdc
Replace mod_manual With 1
If introdc.tip_rand == 'S' And !Empty(Nvl(introdc.doc_key,''))
*!* S modificat manual: actualizez automat totalul facturii (suma_doc) - modificarea e intentia utilizatorului
Local lcDocKeyS, lnSLei, lnSVal, lnRecS
Replace suma With This.Value
lcDocKeyS = introdc.doc_key
lnRecS = Recno('introdc')
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc Where doc_key == lcDocKeyS And tip_rand == 'S' Into Cursor crsSumSDoc NOFILTER
lnSLei = Nvl(crsSumSDoc.s_lei,0)
lnSVal = Nvl(crsSumSDoc.s_val,0)
Use In crsSumSDoc
Select introdc
Go lnRecS
If Round(lnSLei - suma_doc, gnPc) <> 0 Or Round(lnSVal - suma_doc_val, gnPval) <> 0
Replace suma_doc With lnSLei, suma_doc_val With lnSVal
Thisform.copiaza_valoare([suma_doc])
Thisform.copiaza_valoare([suma_doc_val])
If Thisform.lRecalcTva
Thisform.recalc_tva_document(lcDocKeyS)
Endif
Endif
Endif
Else
If introdc.tip_rand == 'B'
Select introdc
Replace suma_doc With suma
Thisform.copiaza_valoare([suma_doc])
Endif
Endif
thisform.do_executa
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE Grid1.cSuma.Text1.When
*!* 16.07.2026 claude (T3c2, D-H2) - blocat pe randul S cu suma in valuta (editabil doar cSumaVal)
Return !(introdc.tip_rand == 'S' And introdc.in_valuta = 1)
ENDPROC
PROCEDURE Grid1.cSumaVal.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid recalculeaza doar daca s-a modificat
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE Grid1.cSumaVal.Text1.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
IF NKEYCODE=13 OR nKeyCode = 4 &&ENTER
NODEFAULT
KEYBOARD '{DNARROW}'
ENDIF
ENDPROC
PROCEDURE Grid1.cSumaVal.Text1.Valid
*!* Mutat din LostFocus: acolo valoarea tastata se pierdea (dupa amessagebox
*!* grid-ul nu o mai scria in camp) - aici o scriu explicit din This.Value.
Local lnSumaDinVal, lnRaspuns
If This.Value = Thisform.nOldVal
*!* nemodificat (ex. navigare cu sagetile) - fara recalcul si fara resincronizare
Return
Endif
If This.Value # 0
Select introdc
Replace suma_val With This.Value
* runda 13: folosesc cursul randului (editabil in grid) cand exista; altfel cursul
* facturii principale, ca inainte
lnSumaDinVal = Round(This.Value * Iif(introdc.in_valuta = 1 And Nvl(introdc.curs, 0) <> 0, introdc.curs, Thisform.oact.Curs), gnPC)
lnRaspuns = 6
If suma <> 0 And suma <> lnSumaDinVal
lnRaspuns = amessagebox("Suma in lei difera de suma in valuta transformata in lei!" + CHR(13) + CHR(10) + ;
"Doriti recalcularea sumei in lei?",4+32,"Diferente sume")
Endif
If lnRaspuns = 6
Replace suma With lnSumaDinVal
Endif
Endif
*!* 16.07.2026 claude (A1+dec.5) - vezi Grid1.cSuma.Text1.Valid. 16.07.2026b claude (C6):
*!* suma_doc se propaga pe grup DOAR pe randul B (nu si pe T).
If Inlist(introdc.tip_rand, 'S', 'D', 'T')
Select introdc
Replace mod_manual With 1
If introdc.tip_rand == 'S' And !Empty(Nvl(introdc.doc_key,''))
*!* S modificat manual: actualizez automat totalul facturii (suma_doc) - modificarea e intentia utilizatorului
Local lcDocKeyS, lnSLei, lnSVal, lnRecS
lcDocKeyS = introdc.doc_key
lnRecS = Recno('introdc')
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc Where doc_key == lcDocKeyS And tip_rand == 'S' Into Cursor crsSumSDoc NOFILTER
lnSLei = Nvl(crsSumSDoc.s_lei,0)
lnSVal = Nvl(crsSumSDoc.s_val,0)
Use In crsSumSDoc
Select introdc
Go lnRecS
If Round(lnSLei - suma_doc, gnPc) <> 0 Or Round(lnSVal - suma_doc_val, gnPval) <> 0
Replace suma_doc With lnSLei, suma_doc_val With lnSVal
Thisform.copiaza_valoare([suma_doc])
Thisform.copiaza_valoare([suma_doc_val])
If Thisform.lRecalcTva
Thisform.recalc_tva_document(lcDocKeyS)
Endif
Endif
Endif
Else
If introdc.tip_rand == 'B'
Select introdc
Replace suma_doc With suma, suma_doc_val With suma_val
Thisform.copiaza_valoare([suma_doc])
Thisform.copiaza_valoare([suma_doc_val])
Endif
Endif
Thisform.do_executa
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE Grid1.cSumaVal.Text1.When
*!* 16.07.2026 claude (T3c2, D-H2) - blocat pe randul S cu suma in lei (editabil doar cSuma)
Return !(introdc.tip_rand == 'S' And introdc.in_valuta = 0)
ENDPROC
PROCEDURE Grid1.cTaxCode.Text1.InteractiveChange
If tact.cu_tva = 1
*!* modificare ROACONT v 2.4.4
If TYPE('tact.tipnota') = 'N' AND tact.tipnota = 1
*!* explicatii TVA exigibile din JC ( 1 ), JV ( 3 ) sau toate ( 5 )
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1),,,iif(tact.scc=[4428],1,iif(tact.scd=[4428],3,5)))
Else
locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1))
Endif
*!* locauta = caut_explicatie_tva(Nvl(tact.id_jtva_coloana,-1))
*!* modificare ROACONT v 2.4.4 ^
If !Empty(locauta.id_jtva_coloana)
Select tact
Replace id_jtva_coloana With locauta.id_jtva_coloana,explicatie_Tva With locauta.denumire,proc_tva With (locauta.cota_tva + 100) / 100
Endif
* Actualizez Cod Taxa SAFT in functie de Cota TVA
Thisform.UpdateExplicatieSAFT()
ENDIF
ENDPROC
PROCEDURE Grid1.cValuta.Text1.DblClick
* alegerea valutei pe rand (caut_valuta, ca in dialogul Adauga factura);
* la anulare raman valorile vechi; valoarea se copiaza pe randul de TVA pereche
Local loCauta
loCauta = caut_valuta(, .F., .F.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_valuta, 0))
Select introdc
Replace id_valuta With loCauta.id_valuta, nume_val With Alltrim(loCauta.nume_val)
Thisform.copiaza_valoare([id_valuta])
Thisform.copiaza_valoare([nume_val])
Thisform.grid1.Refresh()
Endif
ENDPROC
PROCEDURE Grid1.cValuta.Text1.InteractiveChange
* la tastare deschid cautarea de valuta - acelasi mecanism ca dublu-click
This.DblClick()
This.Value = introdc.nume_val
ENDPROC
PROCEDURE Grid1.Init
*!* 16.07.2026 claude - italic pe randul T (inlocuieste Mod(Recno('introdc'),2)=0)
thisform.grid1.SetAll("dynamicbackcolor", "", "Column")
thisform.grid1.SetAll("dynamicforecolor", "", "Column")
thisform.grid1.SetAll("DynamicBackColor", "introdc.doc_color", "Column")
thisform.grid1.SetAll("DynamicFontItalic", "introdc.tip_rand == 'T'", "Column")
*!* 16.07.2026 claude (T3c2, D-H4) - gri pe coloanele blocate dinamic (vezi metodele .When)
thisform.grid1.cSuma.DynamicBackColor = "Iif(introdc.tip_rand = 'S' And introdc.in_valuta = 1, Rgb(229,229,229), introdc.doc_color)"
thisform.grid1.cSumaVal.DynamicBackColor = "Iif(introdc.tip_rand = 'S' And introdc.in_valuta = 0, Rgb(229,229,229), introdc.doc_color)"
thisform.grid1.cSerie_act.DynamicBackColor = "Iif(introdc.tip_rand = 'D', Rgb(229,229,229), introdc.doc_color)"
thisform.grid1.cNract.DynamicBackColor = "Iif(introdc.tip_rand = 'D', Rgb(229,229,229), introdc.doc_color)"
thisform.grid1.cFDoc.DynamicBackColor = "Iif(introdc.tip_rand = 'D', Rgb(229,229,229), introdc.doc_color)"
ENDPROC
PROCEDURE GridArt.cCant.Text1.GotFocus
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE GridArt.cCant.Text1.InteractiveChange
*!* DODEFAULT()
*!* this.LostFocus(.T.)
ENDPROC
PROCEDURE GridArt.cCant.Text1.LostFocus
PARAMETERS tlCalcul
If This.Value = Thisform.nOldVal
&& nemodificat - fara recalcul
Return
Endif
REPLACE cant WITH this.Value
lnRec = RECNO()
thisform.do_executa_pret(3,lnRec,this.value)
ENDPROC
PROCEDURE GridArt.cCotaTva.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid rearmeaza sincronizarea doar daca s-a modificat
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE GridArt.cCotaTva.Text1.Valid
*!* 16.07.2026 claude (T3-A, dec.6/D7) - editarea cotei TVA per articol nu recalculeaza
*!* direct (A1) - doar armeaza sincronizarea amanata (tmrSync regenereaza liniile T pe cota).
If This.Value = Thisform.nOldVal
Return
Endif
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE GridArt.Column1.Text1.LostFocus
Parameters tlCalcul
*IF tlCalcul
* REPLACE pret_val WITH this.Value
lnRec = Recno()
*!* thisform.do_executa_pret(3,lnRec,this.Value)
*!* modificare v 2.1.37
*!* thisform.do_executa_pret(1,lnRec,pret_val)
If Thisform.lIntern
Thisform.do_executa_pret(1,lnRec,pret_lei)
Else
Thisform.do_executa_pret(1,lnRec,pret_val)
Endif
*!* modificare v 2.1.37 ^
*ENDIF
ENDPROC
PROCEDURE GridArt.cPretFactura.Text1.GotFocus
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE GridArt.cPretFactura.Text1.InteractiveChange
*!* DODEFAULT()
*!* this.LostFocus(.t.)
ENDPROC
PROCEDURE GridArt.cPretFactura.Text1.LostFocus
PARAMETERS tlCalcul
If This.Value = Thisform.nOldVal
&& nemodificat - fara recalcul
Return
Endif
*IF tlCalcul
* REPLACE pret_val WITH this.Value
lnRec = RECNO()
thisform.do_executa_pret(1,lnRec,this.Value)
*ENDIF
ENDPROC
PROCEDURE GridArt.cPretLeiCalculat.Text1.GotFocus
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE GridArt.cPretLeiCalculat.Text1.InteractiveChange
*!* DODEFAULT()
*!* this.LostFocus(.t.)
ENDPROC
PROCEDURE GridArt.cPretLeiCalculat.Text1.LostFocus
PARAMETERS tlCalcul
If This.Value = Thisform.nOldVal
&& nemodificat - fara recalcul
Return
Endif
REPLACE pret WITH this.Value
lnRec = RECNO()
thisform.do_executa_pret(3,lnRec,this.Value)
ENDPROC
PROCEDURE GridArt.cPretValutaCalculat.Text1.GotFocus
Thisform.nOldVal = This.Value
Dodefault()
ENDPROC
PROCEDURE GridArt.cPretValutaCalculat.Text1.InteractiveChange
*!* DODEFAULT()
*!* this.LostFocus(.t.)
ENDPROC
PROCEDURE GridArt.cPretValutaCalculat.Text1.LostFocus
PARAMETERS tlCalcul
If This.Value = Thisform.nOldVal
&& nemodificat - fara recalcul
Return
Endif
lnRec = RECNO()
thisform.do_executa_pret(2,lnRec,this.value)
ENDPROC
PROCEDURE tmrSync.Timer
*!* 16.07.2026 claude (A1) - executa sincronizarea amanata (armata din Valid-urile de grid);
*!* Interval=0 opreste repetarea pana la urmatoarea armare.
If Thisform.lSyncPending
Thisform.lSyncPending = .F.
This.Interval = 0
Thisform.sincronizeaza()
Endif
ENDPROC
ENDDEFINE
DEFINE CLASS nir AS _frmbase OF "_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="_shapeSus" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura1.txfTotal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura1.txfBaza" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura1.txfTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_discount1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shapeDr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Urmator1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lbTotal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txNir" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_adaos1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.lb_listePreturi" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.cboListe" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.Cb_tx_gestout" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1.Cb_tx_gestin" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1.But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2.lb_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2.lb_valuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_totalctva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_totalctva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Container_valoare_decontata1" UniqueID="" Timestamp="" />
#INCLUDE "..\include\foxpro.h"
*
*m: aleg_cont_transfer
*m: analiza_cmp
*m: assign_analitic
*m: assign_values
*m: bon_fiscal
*m: calcul_pret_vanzare
*m: calcul_sume
*m: caut_gestiune
*m: compensare
*m: do_verifica_sume
*m: intrare_produs
*m: modificare_lista_preturi
*p: cfrm_ceredate
*p: cobj
*p: ctip_frm
*p: nftotctva
*p: nftotftva
*p: nftottva
*p: nidresponsabil
*p: nresp
*p: ntotal
*p: ntvaincasare
*p: omemopref && Obiectul in care se retin preferintele : id_jtva_ach, proc_tva, id_jtva_vanz, proc_tvav
*p: osel_dr
*
*
BorderStyle = 1
cbuton3 =
cbuton4 = Ct_grid_order1.But_sterge1;but_reface1
cfrm_ceredate =
cobj =
ctip_frm = NIR
DoCreate = .T.
Height = 572
lactiv3 = .T.
lactiv4 = .T.
Name = "nir"
nftotctva = 0.00
nftotftva = 0.00
nftottva = 0.00
nidresponsabil = 0
nresp =
ntotal = 0
ntvaincasare = 0
omemopref = .NULL.
osel_dr =
Width = 793
WindowType = 1
_memberdata =
_shape1.Anchor = 11
_shape1.Height = 30
_shape1.Left = -1
_shape1.Name = "_shape1"
_shape1.Tag = ""
_shape1.Top = -1
_shape1.Width = 726
_shape1.ZOrderSet = 4
_shape2.Anchor = 9
_shape2.Height = 29
_shape2.Left = 724
_shape2.Name = "_shape2"
_shape2.Tag = "MOVABLE"
_shape2.Top = 0
_shape2.Width = 69
_shape2.ZOrderSet = 7
Lb_titlu_alb_b121.Anchor = 3
Lb_titlu_alb_b121.FontName = "Comic Sans MS"
Lb_titlu_alb_b121.FontSize = 10
Lb_titlu_alb_b121.Height = 20
Lb_titlu_alb_b121.Left = 10
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.Top = 3
Lb_titlu_alb_b121.Width = 41
Lb_titlu_alb_b121.ZOrderSet = 9
BUT_TERMIN1.Anchor = 9
BUT_TERMIN1.Height = 27
BUT_TERMIN1.Left = 757
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Tag = ""
BUT_TERMIN1.Top = 1
BUT_TERMIN1.Width = 32
BUT_TERMIN1.ZOrderSet = 13
Gridsort1.Name = "Gridsort1"
*
ADD OBJECT '_shape3' AS _shape WITH ;
Anchor = 135, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 408, ;
Left = 9, ;
Name = "_shape3", ;
Tag = "", ;
Top = 156, ;
Width = 361, ;
ZOrderSet = 3
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shapeDr' AS _shape WITH ;
Anchor = 45, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 408, ;
Left = 406, ;
Name = "_shapeDr", ;
Tag = "", ;
Top = 156, ;
Width = 381, ;
ZOrderSet = 5
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shapeSus' AS _shape WITH ;
Anchor = 11, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 123, ;
Left = 9, ;
Name = "_shapeSus", ;
Tag = "RESIZABLE, MOVABLE", ;
Top = 32, ;
Width = 778, ;
ZOrderSet = 0
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Anchor = 9, ;
Left = 727, ;
Name = "But_renunt1", ;
TabIndex = 4, ;
Tag = "", ;
Top = 1, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Container_valoare_decontata1' AS container_valoare_decontata WITH ;
Left = 15, ;
Name = "Container_valoare_decontata1", ;
Top = 81, ;
Visible = .F., ;
ZOrderSet = 20, ;
Label1.Name = "Label1", ;
Text1.Name = "Text1"
*< END OBJECT: ClassLib="ointroduceri.vcx" BaseClass="container" />
ADD OBJECT 'Ct_adaos1' AS ct_adaos WITH ;
Anchor = 9, ;
Left = 538, ;
Name = "Ct_adaos1", ;
TabIndex = 8, ;
Tag = "", ;
Top = 38, ;
ZOrderSet = 14, ;
LBBAZA_ADAOS.Name = "LBBAZA_ADAOS", ;
LBTVA_ADAOS.Name = "LBTVA_ADAOS", ;
LBPROC_ADAOS.Name = "LBPROC_ADAOS", ;
TXBAZA_ADAOS.ControlSource = "this.parent.baza_adaos", ;
TXBAZA_ADAOS.Name = "TXBAZA_ADAOS", ;
TXTVA_ADAOS.Name = "TXTVA_ADAOS", ;
TXPROC_ADAOS.Name = "TXPROC_ADAOS"
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_discount1' AS ct_discount WITH ;
Anchor = 3, ;
Height = 112, ;
Left = 286, ;
Name = "Ct_discount1", ;
TabIndex = 10, ;
Tag = "", ;
Top = 37, ;
Width = 284, ;
ZOrderSet = 2, ;
COMBOGRID3.Name = "COMBOGRID3", ;
LBBAZA_DISCOUNT.Name = "LBBAZA_DISCOUNT", ;
LBTVA_DISCOUNT.Name = "LBTVA_DISCOUNT", ;
LBPROC_DISCOUNT.Name = "LBPROC_DISCOUNT", ;
TXBAZA_DISCOUNT.Name = "TXBAZA_DISCOUNT", ;
TXTVA_DISCOUNT.Name = "TXTVA_DISCOUNT", ;
TXPROC_DISCOUNT.Format = "r", ;
TXPROC_DISCOUNT.InputMask = (get_mask(12,2)), ;
TXPROC_DISCOUNT.Name = "TXPROC_DISCOUNT", ;
CotaTVA.HideSelection = .F., ;
CotaTVA.Name = "CotaTVA", ;
lbTva.Name = "lbTva", ;
lb_explicatie_tva.Left = 1, ;
lb_explicatie_tva.Name = "lb_explicatie_tva", ;
lb_explicatie_tva.Top = 91
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura1' AS ct_factura WITH ;
Anchor = 131, ;
Height = 71, ;
Left = 14, ;
Name = "Ct_factura1", ;
TabIndex = 9, ;
Tag = "", ;
Top = 61, ;
Width = 292, ;
ZOrderSet = 1, ;
lbBaza.Left = 4, ;
lbBaza.Name = "lbBaza", ;
lbBaza.Top = 27, ;
LbTva.Left = 4, ;
LbTva.Name = "LbTva", ;
LbTva.Top = 50, ;
txBaza.ControlSource = "this.parent.totftva", ;
txBaza.Height = 23, ;
txBaza.Left = 99, ;
txBaza.Name = "txBaza", ;
txBaza.ToolTipText = "Valoarea fara TVA calculata", ;
txBaza.Top = 25, ;
txBaza.Width = 91, ;
txTva.ControlSource = "this.parent.tva", ;
txTva.Height = 23, ;
txTva.Left = 99, ;
txTva.Name = "txTva", ;
txTva.ToolTipText = "Valoarea TVA calculata", ;
txTva.Top = 48, ;
txTva.Width = 91, ;
lbExplic.AutoSize = .F., ;
lbExplic.Left = 6, ;
lbExplic.Name = "lbExplic", ;
lbExplic.Top = 14, ;
txTotal.Height = 23, ;
txTotal.Left = 99, ;
txTotal.Name = "txTotal", ;
txTotal.ToolTipText = "Valoarea cu TVA calculata", ;
txTotal.Top = 1, ;
txTotal.Width = 91, ;
lbTotal.AutoSize = .F., ;
lbTotal.Left = 3, ;
lbTotal.Name = "lbTotal", ;
lbTotal.Top = 3
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura1.txfBaza' AS _txbase WITH ;
BackColor = 206,231,255, ;
ControlSource = "thisform.nfTotftva", ;
Format = "KR", ;
Height = 23, ;
InputMask = (get_mask(9,gnPC)), ;
Left = 192, ;
Name = "txfBaza", ;
ToolTipText = "Valoarea fara TVA de pe factura - modificati daca este diferita de valoarea calculata", ;
Top = 25, ;
Visible = .F., ;
Width = 96
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'Ct_factura1.txfTotal' AS _txbase WITH ;
ControlSource = "thisform.nfTotctva", ;
DisabledBackColor = 255,255,255, ;
Format = "RK", ;
Height = 23, ;
InputMask = (get_mask(9,gnPC)), ;
Left = 192, ;
Name = "txfTotal", ;
ReadOnly = .T., ;
ToolTipText = "Valoarea cu TVA de pe factura", ;
Top = 1, ;
Visible = .F., ;
Width = 96
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'Ct_factura1.txfTva' AS _txbase WITH ;
BackColor = 206,231,255, ;
ControlSource = "thisform.nfTottva", ;
Format = "KR", ;
Height = 23, ;
InputMask = (get_mask(9,gnPC)), ;
Left = 192, ;
Name = "txfTva", ;
ToolTipText = "Valoarea TVA de pe factura - modificati daca este diferita de valoarea calculata", ;
Top = 48, ;
Visible = .F., ;
Width = 96
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'Ct_factura2' AS ct_factura WITH ;
Anchor = 3, ;
Height = 96, ;
Left = 285, ;
Name = "Ct_factura2", ;
TabIndex = 9, ;
Tag = "", ;
Top = 45, ;
Width = 270, ;
ZOrderSet = 17, ;
LBBAZA.Left = 51, ;
LBBAZA.Name = "LBBAZA", ;
LBBAZA.Top = 52, ;
LBTVA.Left = 51, ;
LBTVA.Name = "LBTVA", ;
LBTVA.Top = 72, ;
TXBAZA.Height = 23, ;
TXBAZA.InputMask = (get_mask(14,gnPVal)), ;
TXBAZA.Left = 130, ;
TXBAZA.Name = "TXBAZA", ;
TXBAZA.Top = 50, ;
TXBAZA.Width = 138, ;
TXTVA.Height = 23, ;
TXTVA.InputMask = (get_mask(14,gnPVal)), ;
TXTVA.Left = 130, ;
TXTVA.Name = "TXTVA", ;
TXTVA.Top = 70, ;
TXTVA.Width = 138, ;
LBEXPLIC.Left = 1, ;
LBEXPLIC.Name = "LBEXPLIC", ;
LBEXPLIC.Top = 52, ;
TXTOTAL.ControlSource = "this.parent.totctva", ;
TXTOTAL.Height = 23, ;
TXTOTAL.InputMask = (get_mask(14,gnPVal)), ;
TXTOTAL.Left = 130, ;
TXTOTAL.Name = "TXTOTAL", ;
TXTOTAL.Top = 28, ;
TXTOTAL.Width = 138, ;
LBTOTAL.Height = 18, ;
LBTOTAL.Left = 3, ;
LBTOTAL.Name = "LBTOTAL", ;
LBTOTAL.Top = 19, ;
LBTOTAL.Width = 106
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura2.lb_curs' AS lb_titlu_albastru_b12 WITH ;
Alignment = 2, ;
AutoSize = .F., ;
Caption = "[Curs]", ;
FontBold = .T., ;
Height = 22, ;
Left = 19, ;
Name = "lb_curs", ;
Top = 2, ;
Width = 201
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'Ct_factura2.lb_valuta' AS lb_titlu_albastru_b12 WITH ;
Caption = "[Valuta]", ;
FontBold = .F., ;
FontSize = 9, ;
ForeColor = 7,118,177, ;
Height = 17, ;
Left = 58, ;
Name = "lb_valuta", ;
Top = 35, ;
Width = 42
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'Ct_grid_order1' AS ct_grid_order WITH ;
Anchor = 45, ;
cnumecursor = rul_temp1, ;
Height = 425, ;
Left = 409, ;
Name = "Ct_grid_order1", ;
TabIndex = 11, ;
Top = 139, ;
Width = 375, ;
ZOrderSet = 16, ;
_GRID1.Height = 325, ;
_GRID1.Left = 6, ;
_GRID1.Name = "_GRID1", ;
_GRID1.TabIndex = 2, ;
_GRID1.Top = 93, ;
_GRID1.Width = 364, ;
Titlu.Left = 9, ;
Titlu.Name = "Titlu", ;
Titlu.TabIndex = 3, ;
Titlu.Top = 28, ;
Cb_tx_cautare1.Criteriu.Name = "Criteriu", ;
Cb_tx_cautare1.Left = 7, ;
Cb_tx_cautare1.Name = "Cb_tx_cautare1", ;
Cb_tx_cautare1.TabIndex = 1, ;
Cb_tx_cautare1.Text.Name = "Text", ;
Cb_tx_cautare1.Top = 65
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_order1.But_sterge1' AS but_sterge WITH ;
Anchor = 9, ;
Left = 310, ;
Name = "But_sterge1", ;
TabIndex = 5, ;
TabStop = .F., ;
Top = 65, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_grid_order1.Cb_tx_gestin' AS cb_tx_simplu WITH ;
BackStyle = 0, ;
BorderColor = 255,255,255, ;
Height = 24, ;
Left = 7, ;
Name = "Cb_tx_gestin", ;
TabIndex = 4, ;
Top = 40, ;
Width = 366, ;
_CBBASE1.BorderStyle = 0, ;
_CBBASE1.ColumnCount = 2, ;
_CBBASE1.ColumnLines = .F., ;
_CBBASE1.ColumnWidths = "220,40", ;
_CBBASE1.ControlSource = "poact.gestin", ;
_CBBASE1.FontItalic = .F., ;
_CBBASE1.FontName = "Arial Narrow", ;
_CBBASE1.Height = 23, ;
_CBBASE1.Left = 130, ;
_CBBASE1.Name = "_CBBASE1", ;
_CBBASE1.RowSource = "nom_gestiuni.nume_gestiune,cgest", ;
_CBBASE1.RowSourceType = 6, ;
_CBBASE1.Sorted = .F., ;
_CBBASE1.Top = 0, ;
_CBBASE1.Width = 229, ;
_LBBASE1.Caption = "Gestiunea destinatie", ;
_LBBASE1.FontItalic = .T., ;
_LBBASE1.Left = 3, ;
_LBBASE1.Name = "_LBBASE1", ;
_LBBASE1.Top = 4
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1' AS ct_grid_search WITH ;
Anchor = 135, ;
cnumecursor = cursor_curent1, ;
Height = 418, ;
Left = 11, ;
Name = "Ct_grid_search1", ;
TabIndex = 1, ;
Top = 140, ;
Width = 357, ;
ZOrderSet = 15, ;
_GRID1.Comment = "grd_st", ;
_GRID1.Height = 324, ;
_GRID1.Left = 6, ;
_GRID1.Name = "_GRID1", ;
_GRID1.RecordSource = "cursor_curent", ;
_GRID1.TabIndex = 3, ;
_GRID1.Top = 94, ;
_GRID1.Width = 347, ;
_GRID1.ZOrderSet = 0, ;
Titlu.Left = 9, ;
Titlu.Name = "Titlu", ;
Titlu.TabIndex = 4, ;
Titlu.Top = 24, ;
Titlu.ZOrderSet = 1, ;
Cb_tx_cautare1.Criteriu.Comment = "criteriu_st", ;
Cb_tx_cautare1.Criteriu.Name = "Criteriu", ;
Cb_tx_cautare1.Height = 27, ;
Cb_tx_cautare1.Left = 7, ;
Cb_tx_cautare1.Name = "Cb_tx_cautare1", ;
Cb_tx_cautare1.TabIndex = 2, ;
Cb_tx_cautare1.Text.Comment = "text_st", ;
Cb_tx_cautare1.Text.Height = 25, ;
Cb_tx_cautare1.Text.Left = 103, ;
Cb_tx_cautare1.Text.Name = "Text", ;
Cb_tx_cautare1.Text.Top = 1, ;
Cb_tx_cautare1.Text.Width = 207, ;
Cb_tx_cautare1.Top = 66, ;
Cb_tx_cautare1.Width = 312, ;
Cb_tx_cautare1.ZOrderSet = 2
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1.But_nou1' AS but_nou WITH ;
Anchor = 9, ;
Height = 27, ;
Left = 322, ;
Name = "But_nou1", ;
TabIndex = 6, ;
TabStop = .F., ;
Top = 65, ;
ZOrderSet = 3
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_grid_search1.Cb_tx_gestout' AS cb_tx_simplu WITH ;
BackStyle = 0, ;
BorderColor = 255,255,255, ;
Height = 24, ;
Left = 7, ;
Name = "Cb_tx_gestout", ;
TabIndex = 5, ;
Top = 38, ;
Width = 346, ;
ZOrderSet = 6, ;
_CBBASE1.BorderStyle = 0, ;
_CBBASE1.ColumnCount = 2, ;
_CBBASE1.ColumnLines = .F., ;
_CBBASE1.ColumnWidths = "180,30", ;
_CBBASE1.ControlSource = "poact.gestout", ;
_CBBASE1.FontItalic = .F., ;
_CBBASE1.FontName = "Arial Narrow", ;
_CBBASE1.Height = 23, ;
_CBBASE1.Left = 101, ;
_CBBASE1.Name = "_CBBASE1", ;
_CBBASE1.RowSource = "nom_gestiuni.nume_gestiune,cgest", ;
_CBBASE1.RowSourceType = 6, ;
_CBBASE1.Sorted = .F., ;
_CBBASE1.Top = 1, ;
_CBBASE1.Width = 243, ;
_LBBASE1.Caption = "Gestiunea sursa", ;
_LBBASE1.FontItalic = .T., ;
_LBBASE1.Left = 3, ;
_LBBASE1.Name = "_LBBASE1", ;
_LBBASE1.Top = 3
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1.cboListe' AS combobox WITH ;
Anchor = 3, ;
BorderStyle = 0, ;
ColumnCount = 4, ;
ColumnLines = .F., ;
ColumnWidths = "200,65,60,0", ;
Format = "", ;
Height = 23, ;
Left = 104, ;
Name = "cboListe", ;
RowSource = "cListePret.nume_lista_preturi,datai,datas,id_pol", ;
RowSourceType = 2, ;
Style = 2, ;
TabIndex = 1, ;
Top = 39, ;
Visible = .F., ;
Width = 247, ;
ZOrderSet = 5
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Ct_grid_search1.lb_listePreturi' AS label WITH ;
Anchor = 3, ;
BackStyle = 0, ;
Caption = "Lista de preturi:", ;
FontItalic = .T., ;
Height = 17, ;
Left = 11, ;
Name = "lb_listePreturi", ;
TabIndex = 7, ;
Top = 42, ;
Visible = .F., ;
Width = 84, ;
ZOrderSet = 4
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lb_totalctva' AS lb_simplu WITH ;
Anchor = 9, ;
Caption = "Total val.vânz. cu TVA", ;
ForeColor = 7,118,177, ;
Left = 542, ;
Name = "lb_totalctva", ;
Top = 119, ;
Visible = .F., ;
ZOrderSet = 19
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'lbTotal' AS titlufrumos WITH ;
Anchor = 3, ;
AutoSize = .F., ;
Caption = "TOTAL NIR:", ;
ForeColor = 7,118,177, ;
Height = 20, ;
Left = 17, ;
Name = "lbTotal", ;
TabIndex = 6, ;
Top = 40, ;
Width = 77, ;
ZOrderSet = 11
*< END OBJECT: ClassLib="baza.vcx" BaseClass="label" />
ADD OBJECT 'tx_totalctva' AS _txbase WITH ;
Alignment = 3, ;
Anchor = 9, ;
Height = 23, ;
InputMask = (get_mask(12,gnPc)), ;
Left = 665, ;
Name = "tx_totalctva", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabStop = .F., ;
Top = 117, ;
Value = 0, ;
Visible = .F., ;
Width = 113, ;
ZOrderSet = 18
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'txNir' AS _txbase WITH ;
Anchor = 3, ;
BackStyle = 1, ;
ControlSource = "thisform.ntotal", ;
DisabledBackColor = 255,255,255, ;
FontCharSet = 238, ;
Height = 21, ;
InputMask = (get_mask(12,gnPc)), ;
Left = 114, ;
Name = "txNir", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabIndex = 7, ;
Tag = "", ;
Top = 39, ;
Width = 147, ;
ZOrderSet = 12
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'Urmator1' AS urmator WITH ;
Anchor = 240, ;
Left = 373, ;
Name = "Urmator1", ;
TabIndex = 2, ;
Tag = "", ;
Top = 324, ;
ZOrderSet = 10, ;
Imbuton1.Height = 27, ;
Imbuton1.Name = "Imbuton1", ;
Imbuton1.Width = 30, ;
Command1.Name = "Command1"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
PROCEDURE Activate
this.WindowState = 2
ENDPROC
PROCEDURE aleg_cont_transfer
PARAMETERS tnIdGest
lcSql = [select (case when p.explicatie is null then s.explicatie else p.explicatie end) as explicatie,] +;
[c.cont, p.acont from VCORESP_CONT_TIPGEST c ] +;
[left join vplcont_analitic p on c.cont = p.cont and p.an = ?gnAn ] +;
[left join vplcont_sintetic s on c.cont = s.cont and s.an = ?gnAn]
pcFiltruOrig = [c.id_tipgest in (select nr_pag from vnom_gestiuni where id_gestiune = ?tnIdGest)]
pcfiltru = [1=2]
pcschema = []
pcorder = [cont,acont]
pccoloane = [cont,acont,explicatie]
pcTitlu = [Alegeti Contul de Transfer]
pcTitluColoane = [Cont,Analitic,Explicatie cont]
locauta = cauta_alfa(lcSql,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,'',.F.,pcFiltruOrig) && 11.07.2007
RETURN loCauta
ENDPROC
PROCEDURE analiza_cmp
PARAMETERS tcRul, tcAct
*!* 14.10.2006
*!* mutu.marius
*!* tratare achizitie articol cu mai multe preturi
LOCAL lcSql, lcCursor, lnSucces
PRIVATE poArticol
*** alocare numar NIR pt rulajele generate de CMP
*** dezaloc in caz ca trece de mai multe ori prin metoda asta
IF THISFORM.numar_plaja1.id_numar # 0
THISFORM.numar_plaja1.dezalocare_numar()
ENDIF
lnIdEnt = 0
THIS.numar_plaja1.id_entitate = lnIdEnt
THIS.numar_plaja1.tip = 4 && NIR PT CMP
THIS.numar_plaja1.serie = 2 && Asa transmit paramerii la procedura viz_config_serii din oproceduri_configurare.prg
THIS.numar_plaja1.alocare_numar()
lnNnir = THIS.numar_plaja1.numar_curent
***
SELECT * ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
INTO CURSOR crsTempRul
SELECT DISTINCT ID_ARTICOL, CONT FROM crsTempRul ;
INTO CURSOR crsArticoleTemp
&& pentru fiecare articol - se poate sa am acelasi articol cu mai multe preturi
SELECT crsArticoleTemp
SCAN
SCATTER NAME poArticol
&& selectez din stoc cantitatea si pretul existente pentru articolul curent
&& posibil mai multe gestiuni ???
lcSql = [SELECT cants+cant-cante as cante, pret, id_articol, id_gestiune, id_gestiune as id_gestout, cont,] + ;
[acont FROM stoc where an = ?gnAn and luna = ?gnluna and id_articol = ?poArticol.id_articol ] + ;
[and (cants+cant-cante)<>0 and TRIM(cont) = ?ALLTRIM(poArticol.cont)] + gcCondSucursala
lcCursorStoc = [tmpVer]
lnSucces = goExecutor.oExecute(lcSql, lcCursorStoc)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
RETURN
ENDIF
&& pentru fiecare pozitie articol achizitionat din articolul curent
SELECT crsTempRul
SCAN FOR cant <> 0 AND id_articol = poArticol.id_articol
SCATTER NAME orul
&& scot articolul curent din rulaj la pretul de achizitie
*!* IF RECCOUNT(lcCursorStoc) > 0
&& il scot chiar daca nu il am in stoc - pentru ca s-ar putea sa fie achizitionat cu mai multe preturi
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE cante WITH orul.cant, cant WITH 0, nnir WITH lnNnir, tva WITH 0
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
*!* ENDIF
SELECT crsTempRul
ENDSCAN
*** scot din stoc articolul curent - cantitatea si pretul existente - inainte de achizitia curenta
IF USED(lcCursorStoc)
SELECT (lcCursorStoc)
SCAN
SCATTER NAME ointr
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE cant WITH 0, cante WITH 0
GATHER NAME ointr
REPLACE nnir WITH lnNnir
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
SELECT (lcCursorStoc)
ENDSCAN
USE IN (lcCursorStoc)
ENDIF
&& aflu pretul mediu ponderat - selectez toate iesirile din rul_temp (articolele achizitionate si stocul precedent)
&& pentru articol, cont curente
&& un singur pret mediu ponderat pe articol, indiferent de gestiune
*!* 05.12.2006
*!* MARIUS.MUTU
*!* LA RETUR FACTURA FURNIZOR CANTITATE NEGATIVA, DACA E RETUR LA TOATA CANTITATEA DIN STOC,
*!* CANTITATEA TOTALA = 0, NUMERIC OVERFLOW LA CALCUL CMP
*!* AM FACUT ABS(CANTE)
SELECT SUM(ROUND(PRET*ABS(cante),gnPc)) AS valoare, SUM(ABS(cante)) AS cantitate, ID_ARTICOL, CONT ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
WHERE cante <> 0 AND ID_ARTICOL = poArticol.ID_ARTICOL AND CONT = poArticol.CONT ;
GROUP BY ID_ARTICOL, CONT ;
INTO CURSOR tCmp
SELECT tCmp
SCAN
SCATTER NAME ocmp
&& pretul mediu ponderat
lnCMP = ROUND(ocmp.valoare/ocmp.cantitate, gnPpret)
&& articol, gestiune, cantitate_totala (cantitate achizitionata cu toate preturile + stoc)
SELECT id_articol, id_gestiune, SUM(cante) AS cant ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
WHERE ID_ARTICOL = ocmp.ID_ARTICOL AND cante <> 0 AND CONT = ocmp.CONT ;
GROUP BY id_gestiune, ID_ARTICOL ;
INTO CURSOR crsCantGest
&& adaug in rulaj intrarea cu toata cantitatea (achizitionata + stoc) la noul pret mediu ponderat
SELECT crsCantGest
SCAN
SCATTER NAME ocant
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE PRET WITH lnCMP, cant WITH 0, cante WITH 0, tva WITH 0
GATHER NAME ocant
REPLACE nnir WITH lnNnir
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
SELECT crsCantGest
ENDSCAN
USE IN crsCantGest
&& diferente de pret din rotunjiri
IF ROUND(lnCMP * ocmp.cantitate, gnPc) - ocmp.valoare <> 0
SELECT (tcAct)
APPEND BLANK
GATHER NAME poact
REPLACE nnir WITH lnNnir
REPLACE scd WITH ocmp.CONT, scc WITH IIF(LEFT(ocmp.cont,3) = '371', '378', '308'), ascd WITH '', ascc WITH ''
REPLACE suma WITH ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare
ENDIF
SELECT tCmp
ENDSCAN
USE IN tCmp
ENDSCAN && crsArticoleTemp
USE IN crsArticoleTemp
SELECT (tcRul)
&& program vechi
*!* PARAMETERS tcRul, tcAct
*!* *** alocare numar NIR pt rulajele generate de CMP
*!* *** dezaloc in caz ca trece de mai multe ori prin metoda asta
*!* IF thisform.numar_plaja1.id_numar # 0
*!* thisform.numar_plaja1.dezalocare_numar()
*!* ENDIF
*!* lnIdEnt = 0
*!* this.numar_plaja1.id_entitate = lnIdEnt
*!* this.numar_plaja1.tip = 4 && NIR PT CMP
*!* this.numar_plaja1.serie = 2 && Asa transmit paramerii la procedura viz_config_serii din oproceduri_configurare.prg
*!* this.numar_plaja1.alocare_numar()
*!* lnNnir = this.numar_plaja1.numar_curent
*!* ***
*!* SELECT * FROM (tcRul) WITH (BUFFERING = .T.) INTO CURSOR crsTempRul
*!* SELECT crsTempRul
*!* SCAN FOR cant <> 0
*!* SCATTER NAME orul
*!* lcCont = ALLTRIM(orul.cont)
*!* lcsql = [SELECT cants+cant-cante as cante, pret, id_articol, id_gestiune, id_gestiune as id_gestout, cont, acont FROM stoc where an = ?gnAn and luna = ?gnluna and id_articol = ?orul.id_articol and (cants+cant-cante)<>0 and TRIM(cont) =?lcCont]
*!* lcCursor = [tmpVer]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* amessagebox(goExecutor.cEroare,0+16,"Eroare")
*!* Return
*!* ENDIF
*!* IF RECCOUNT(lcCursor) > 0
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE cante WITH orul.cant, cant WITH 0, nnir WITH lnNnir
*!* ENDIF
*!* SELECT (lcCursor)
*!* SCAN
*!* SCATTER NAME ointr
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE cant WITH 0, cante WITH 0
*!* GATHER NAME ointr
*!* REPLACE nnir WITH lnNnir
*!* SELECT (lcCursor)
*!* ENDSCAN
*!* USE IN (lcCursor)
*!*
*!* *!* SELECT (tcRul)
*!* *!* LOCATE
*!* && aflu pretul mediu ponderat
*!* SELECT SUM(ROUND(pret*cante,gnPc)) as valoare, SUM(cante) as cantitate, id_articol, cont ;
*!* FROM (tcRul) WITH (BUFFERING = .T.) ;
*!* WHERE cante <> 0 AND id_articol = orul.id_articol ;
*!* GROUP BY id_articol, cont ;
*!* INTO CURSOR tCmp
*!*
*!* SELECT tCmp
*!* SCAN
*!* SCATTER NAME ocmp
*!* lnCMP = ROUND(ocmp.valoare/ocmp.cantitate,gnPc)
*!*
*!* SELECT id_gestiune, SUM(cante) as cant FROM (tcRul) WITH (BUFFERING = .T.) ;
*!* WHERE id_articol = ocmp.id_articol AND cante <> 0 AND cont = ocmp.cont ;
*!* GROUP BY id_gestiune, id_articol ;
*!* INTO CURSOR crsCantGest
*!*
*!* SELECT crsCantGest
*!* SCAN
*!* SCATTER NAME ocant
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE pret WITH lnCMP, cant WITH 0, cante WITH 0
*!* GATHER NAME ocant
*!* REPLACE nnir WITH lnNnir
*!* SELECT crsCantGest
*!* ENDSCAN
*!* USE IN crsCantGest
*!* IF ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare <> 0
*!* SELECT (tcAct)
*!* APPEND BLANK
*!* GATHER NAME poact
*!* REPLACE nnir WITH lnNnir
*!* REPLACE scd WITH ocmp.cont, scc WITH '308 ', ascd WITH '', ascc WITH ''
*!* REPLACE suma WITH ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare
*!* ENDIF
*!* SELECT tCmp
*!* ENDSCAN
*!* USE IN tCmp
*!* SELECT crsTempRul
*!* ENDSCAN
*!* USE IN crsTempRul
*!* SELECT (tcRul)
ENDPROC
PROCEDURE assign_analitic
PARAMETERS tcCont,pcAct,pcRul
PRIVATE pcCont,pcAct,pcRul,pParamP,pParamS
STORE 0 TO pParamP,pParamS
lcAnalitic = ''
lcAlias = ALIAS()
pcCont = ALLTRIM(tcCont)
lcSel = [SELECT * from ] + gcs + [.config_analitice WHERE cont = '] + ALLTRIM(pcCont) + [']
lcCursor = 'crs_cfg_ana'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_cfg_ana')=0
USE IN crs_cfg_ana
lnSucces = -1
ENDIF
ENDIF
IF lnSucces > 0
SELECT crs_cfg_ana
SCATTER NAME ocfg
lcCampPrefix = NVL(ALLTRIM(ocfg.camp_leg_prefix),'')
lcCampSufix = NVL(ALLTRIM(ocfg.camp_leg_sufix),'')
IF !EMPTY(lcCampPrefix)
IF TYPE('&pcRul..'+lcCampPrefix) # 'U'
pParamP = &pcRul..&lcCampPrefix
ELSE
IF TYPE('&pcAct..'+lcCampPrefix) # 'U'
pParamP = &pcAct..&lcCampPrefix
ENDIF
ENDIF
ENDIF
IF !EMPTY(lcCampSufix)
IF TYPE('&pcRul..'+lcCampSufix) # 'U'
pParamS = &pcRul..&lcCampSufix
ELSE
IF TYPE('&pcAct..'+lcCampSufix) # 'U'
pParamS = &pcAct..&lcCampSufix
ENDIF
ENDIF
ENDIF
lcSel = [{call fconturi_analitice('] + ALLTRIM(gcs) + [','] + ALLTRIM(pcCont) + [',0,] + TRANSFORM(pParamP) + [,] + TRANSFORM(pParamS) + [)}]
lcCursor = 'crs_analitice'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
IF lnSucces > 0
SELECT crs_analitice
GO top
lcAnalitic = ALLTRIM(acont)
ENDIF
&& verificare analiticului cu Planul de Conturi
IF lnSucces > 0
lcSel = [SELECT cont,acont from ] + gcs + [.vplcont_analitic WHERE cont = '] + ALLTRIM(pcCont) + [' and acont = '] + ALLTRIM(lcAnalitic) + [' and an = ] + TRANSFORM(gnAn)
lcCursor = 'crs_verific'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_verific')=0
lnSucces = -1
ENDIF
ENDIF
IF USED('crs_cfg_ana')
USE IN crs_cfg_ana
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF USED('crs_analitice')
USE IN crs_analitice
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF lnSucces < 0
lcAnalitic = ''
ENDIF
SELECT (lcAlias)
RETURN lcAnalitic
ENDPROC
PROCEDURE assign_values
PARAMETERS tcObjDestinatie, tcObjSursa1, tcObjSursa2
lcSelRul = this.ct_grid_order1.cnumecursor
lcOdest = ALLTRIM(tcObjDestinatie)
lcOsursa1 = ALLTRIM(tcObjSursa1)
lcOsursa2 = ALLTRIM(tcObjSursa2)
SELECT (lcSelRul)
FOR i = 1 TO FCOUNT()
lcNumeCol = FIELD(i)
IF TYPE('&lcOsursa1..'+lcNumeCol) # 'U'
&lcodest..&lcNumeCol = &lcosursa1..&lcNumeCol
ENDIF
IF TYPE('&lcOsursa2..'+lcNumeCol) # 'U'
IF EMPTY(&lcodest..&lcNumeCol)
&lcodest..&lcNumeCol = &lcosursa2..&lcNumeCol
ENDIF
ENDIF
ENDFOR
ENDPROC
PROCEDURE bon_fiscal
PRIVATE pnSumaMp500
pnSumaMp500 = thisform.ct_factura1.txTotal.Value
ocasamp500 = CREATEOBJECT('frm_tichete',pnSumaMp500)
ocasamp500.show(1)
RELEASE ocasamp500
ENDPROC
PROCEDURE calcul_pret_vanzare
PARAMETERS tcTabel
LOCAL lnPretv, lnTvav, lnCoefAdaos, lnSuma, lcTabel
STORE 0 TO lnPretv, lnTvav, lnCoefAdaos, lnSuma
IF EMPTY(tcTabel)
lcTabel = this.ct_grid_order1.cnumecursor
ELSE
lcTabel = ALLTRIM(tcTabel)
ENDIF
SELECT (lcTabel)
SUM ROUND(ABS(cante*pret),gnPc) TO lnSuma
IF lnSuma <> 0
lnCoefAdaos = (pcobj.totftva-lnSuma)/lnSuma && coeficientul mediu de adaos
ELSE
lnCoefAdaos = 1
ENDIF
SELECT (lcTabel)
SET FILTER TO
REPLACE ALL proc_tvav WITH pcobj.proc_tva, procent WITH ROUND(lnCoefAdaos*100,2)
CALCULATE cnt() TO lnRecords
i = 0
SCAN
i = i + 1
REPLACE pretv WITH ROUND(pret + ROUND(pret*lnCoefAdaos,gnPPretV),gnPPretV) && modificare 14.09.2007
REPLACE tvav WITH ROUND(pretv*(proc_tvav-1),gnPPretV)
lnPretv = lnPretv + ROUND(pretv*cante,gnPC)
lnTvav = lnTvav + ROUND(tvav*cante,gnPC)
IF i = lnRecords
IF lnPretv # pcobj.totftva
REPLACE pretv WITH pretv + ROUND((pcobj.totftva - lnPretv)/cante,gnPPretV)
ENDIF
IF lnTvav # pcobj.tottva
REPLACE tvav WITH tvav + ROUND((pcobj.tottva - lnTvav)/cante,gnPPretV)
ENDIF
ENDIF
ENDSCAN
ENDPROC
PROCEDURE calcul_sume
Parameters tcTabel
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* Model =-1 : Nota fara contabilizare
*!* Model = 1 : Nota simpla cu contabilizare
*!* Model = 2 : NIR
*!* Model = 3 : BON/FACTURA VANZARE
*!* Model = 4 : Retur BON/FACTURA VANZARE
*!* Model = 5 : Transfer
*!* Model = 6 : Retur Transfer
*!* Model = 7 : Diferenta de pret
*!* Param1 = 1 : En-detail
*!* Param1 = 2 : En-gros
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* v 2.0.28 calculez valorile de achizitie in functie de gnTipGest
*!* ACHIZITIE
*!* !plNIRBONPretCuTVA : valoarea fara tva achizitie = cant*pret
*!* : valoarea tva achizitie = valoarea fara tva achizitie * proc_tva
*!* : valoarea cu tva achizitie = valoarea fara tva achizitie + valoarea tva achizitie
*!*
*!* plNIRBONPretCuTVA : valoarea tva achizitie = valoarea cu tva achizitie * (proc_tva - 1) / proc_tva
*!* BILETE RATC : valoarea fara tva achizitie = valoarea cu tva achizitie - valoarea tva achizitie
*!* : valoarea cu tva achizitie = cant*(pret+tva)
*!* VANZARE
*!* gnTipGest <> 6 : valoarea fara tva vanzare = cant*pretv
*!* : valoarea tva vanzare = valoarea fara tva vanzare * proc_tvav
*!* : valoarea cu tva vanzare = valoarea fara tva vanzare + valoarea tva vanzare
*!* : adaosul = valoarea fara tva vanzare - valoarea fara tva achizitie
*!*
*!* gnTipGest = 6 : valoarea fara tva vanzare = valorea cu tva vanzare - valoarea tva vanzare
*!* : valoarea tva vanzare = valoarea cu tva vanzare * (proc_tvav-1)/proc_tvav
*!* : valoarea cu tva vanzare = cant*(pretv+tvav)
*!* : adaosul = valoarea fara tva vanzare - valoarea fara tva achizitie
*!* v 2.0.28 ^
Store 0 To lnTotBaza, lnTotTva, lnBazaDiscount, lnBazaAdaos, lnTvaDiscount, lnTvaAdaos
If Pcount() = 0
tcTabel = Alltrim(This.ct_grid_order1.cnumecursor)
Endif
*lcCant = [cant] + IIF(INLIST(oset.model, 3, 4),[e],[]) && 3 = bon, bon retur
lcCant = This.osel_dr.cantitate
llCalculFact = Iif(oset.param1 = 2, .F., .T.) && daca e En-gros (vanzare) nu mai recalculez Total factura
If This.ct_discount1.Visible = .T.
lnBazaDiscount = This.ct_discount1.baza_discount
lnTvaDiscount = This.ct_discount1.tva_discount
Endif
If oset.adaos
Do Case
Case oset.param1 = 1 && factura de vanzare en-detail
Select (tcTabel)
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
*!* modificare ROAGEST v 2.0.94 : am adaugat conditia AND oset.id_set <> 75
If !INLIST(gnTipGest, 6,7) AND oset.id_set <> 75
Sum Round(pretv*&lcCant,gnPc) To lnTotBaza
Sum Round(Round(pretv*&lcCant,gnPc)*(proc_tvav-1),gnPc) To lnTotTva
lnBazaAdaos = lnTotBaza - Thisform.ntotal
Else
Sum Round(Round(pretv+tvav,gnPPretV)*&lcCant,gnPc) To lnTotctva
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTva
lnTotBaza = lnTotctva - lnTotTva
lnBazaAdaos = lnTotBaza - Thisform.ntotal
Endif
If oset.id_set = 75 && Transfer catre gestiune la pret de vanzare
*!* modificare ROAGEST v 2.0.94
*!* If gnTipGest <> 6
*!* *!* Sum Round(tvav*&lcCant,gnPc) To lnTotTvav && nu stiu de ce pornea de la tvav unitar ???
*!* Sum Round(Round(pretv*&lcCant,gnPc)*(proc_tvav-1),gnPc) To lnTotTvav
*!* Else
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTvav
*!* Endif
*!* modificare ROAGEST v 2.0.94 ^
Thisform.tx_totalctva.Value = lnTotTvav + lnTotBaza
Endif
Case oset.param1 = 2 && factura de vanzare en-gros
This.ct_factura1.totctva = pcobj.totctva
This.ct_factura1.totftva = pcobj.totftva
This.ct_factura1.tva = pcobj.tottva
Select (tcTabel)
If !plNIRBONPretCuTVA
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
Else
Sum Round(&lcCant*(Pret+Tva),gnPc) - Round(Round(&lcCant*(Pret+Tva),gnPc)*(proc_tva - 1)/proc_tva, gnPC) To Thisform.ntotal
EndIf
lnTotBaza = This.ntotal
lnBazaAdaos = This.ct_factura1.totftva - Thisform.ntotal
This.ct_adaos1.baza_adaos = lnBazaAdaos
Otherwise && NIR MARFA LA PRET DE VANZARE
Select (tcTabel)
If !plNIRBONPretCuTVA
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
Sum Round(Round(&lcCant*Pret,gnPc) * (proc_tva-1),gnPc) To lnTotTva
Else
Sum Round(&lcCant*(Pret+Tva),gnPc) - Round(Round(&lcCant*(Pret+Tva),gnPc)*(proc_tva - 1)/proc_tva, gnPC) To Thisform.ntotal
Sum Round(Round(&lcCant*(Pret+Tva),gnPc)*(proc_tva - 1)/proc_tva, gnPC) To lnTotTva
Endif
lnTotBaza = This.ntotal
If gnTipGest <> 6
Sum Round(&lcCant*pretv, gnPc) - m.lnTotBaza To lnBazaAdaos
Else
Sum Round(Round(pretv+tvav,gnPPretV)*&lcCant,gnPc) To lnTotctvaOther
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTvaOther
lnTotfTvaOhter = m.lnTotctvaOther - m.lnTotTvaOther
lnBazaAdaos = m.lnTotfTvaOhter - m.lnTotBaza
Endif
Endcase
Select (tcTabel)
Sum procent To lnProcent
Calculate Cnt() To lnNrRecord
lnProcent = lnProcent/lnNrRecord
This.ct_adaos1.baza_adaos = lnBazaAdaos
This.ct_adaos1.proc_adaos = lnProcent
Else
Select (tcTabel)
If !plNIRBONPretCuTVA
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
Sum Round(Round(&lcCant*Pret,gnPc) * (proc_tva-1),gnPc) To lnTotTva
Else
Sum Round(&lcCant*(Pret+Tva),gnPc) - Round(Round(&lcCant*(Pret+Tva),gnPc)*(proc_tva - 1)/proc_tva, gnPC) To Thisform.ntotal
Sum Round(Round(&lcCant*(Pret+Tva),gnPc)*(proc_tva - 1)/proc_tva, gnPC) To lnTotTva
EndIf
lnTotBaza = Thisform.ntotal
Endif
If oset.factura And llCalculFact
If oset.cursval
Select (tcTabel)
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(&lcCant*pretvval,gnPc),Round(Round(&lcCant*pretvval,gnPc)*(proc_tvav-1),gnPc) To lnTotalFTvaVal,lnTotalTvaVal
Else
Sum Round(Round(pretvval*proc_tvav,gnPVal)*&lcCant,gnPVal) To lnTotalCTvaVal
Sum Round(Round(Round(pretvval*proc_tvav,gnPVal)*&lcCant,gnPVal)*(proc_tvav-1),gnPVal) To lnTotalTvaVal
lnTotalFTvaVal = m.lnTotalCTvaVal - m.lnTotalTvaVal
Endif
With Thisform.ct_factura2
.totftva = lnTotalFTvaVal
.tva = lnTotalTvaVal
.totctva = lnTotalFTvaVal + lnTotalTvaVal
.Refresh()
Endwith
lnTotBaza = Round(lnTotalFTvaVal * poAct.Curs,gnPc)
lnTotTva = Round(lnTotalTvaVal * poAct.Curs,gnPc)
Endif
With This.ct_factura1
If oset.model = 2 && NIR
lnBazaAdaos = 0
lnTvaAdaos = 0
Endif
.totftva = lnTotBaza - lnBazaDiscount
.tva = lnTotTva - lnTvaDiscount
.totctva = .totftva + .tva
Endwith
Endif
*!* modificare v 2.0.6
Do Case
Case oset.id_set = 216 && Intrare din transfer de la gest. valorica la pret de vanz.
Select (tcTabel)
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(pretv*cant,gnPc) To lnTotBaza216
Sum Round(Round(pretv*cant,gnPc)*(proc_tvav-1), gnPc) To lnTotTvav
Else
Sum Round(Round(pretv+tvav,gnPc)*&lcCant,gnPc) To lnTotctva216
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTvav
lnTotBaza216 = lnTotctva216 - lnTotTvav
Endif
Thisform.tx_totalctva.Value = lnTotTvav + lnTotBaza216
Case Inlist(oset.id_set, 230, 232, 233, 235, 261) && protocol, sponsorizare
Select (tcTabel)
*!* modificare conditie if v 2.0.94
If !INLIST(gnTipGest, 6,7) &&gnTipGest <> 6
*!* modificare conditie if v 2.0.94 ^
Sum Round(pretv*&lcCant,gnPc) + Round(Round(pretv*&lcCant,gnPc)*(proc_tvav-1),gnPc) To lnTotal230
Else
Sum Round((pretv+tvav)*cante,gnPc) To lnTotal230
EndIf
Thisform.tx_totalctva.Value = lnTotal230
*!* modificare ROAFACTURARE v 2.2.20
CASE oset.id_set = 267
SELECT (tcTabel)
If !INLIST(gnTipGest, 6,7)
Sum Round(pretv*cant,gnPc) + Round(Round(pretv*cant,gnPc)*(proc_tvav-1),gnPc) To lnTotal230
Else
Sum Round((pretv+tvav)*cant,gnPc) To lnTotal230
EndIf
Thisform.tx_totalctva.Value = lnTotal230
*!* modificare ROAFACTURARE v 2.2.20 ^
ENDCASE
IF thisform.ntotal#0
lnProcentDiscount=(thisform.ct_discount1.baza_discount/thisform.ntotal)*100
ELSE
lnProcentDiscount=0
ENDIF
if(thisform.ct_discount1.combogrid3.Value=2)
thisform.ct_discount1.txProc_discount.Value=lnProcentDiscount
ENDIF
*!* modificare v 2.0.6 ^
This.txNir.Refresh
This.ct_factura1.Refresh
This.ct_factura2.Refresh
This.ct_adaos1.Refresh
ENDPROC
PROCEDURE caut_gestiune
PARAMETERS tnFel
IF EMPTY(tnFel)
tnFel = 0
ENDIF
IF tnFel = 1 && pret vanzare
lcCond = [nr_pag = 6]
ELSE
lcCond = [nr_pag in (2,3,4,5)]
ENDIF
pcselect = [select * from vnom_GESTIUNI]
pcFiltruOrig = [inactiv = 0 and ] + lcCond
pcfiltru = [1=2]
pcschema = []
pcorder = [NUME_gestiune]
pccoloane = [nume_gestiune,cgest]
pcTitlu = [Nume Gestiune Destinatie]
pcTitluColoane = [Gestiune,Indicativ]
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,'',.F.,pcFiltruOrig) && 11.07.2007
RETURN locauta
ENDPROC
PROCEDURE compensare
*!* 24.08.2011
*!* marius.mutu
*!* suma platita = suma modificata de utilizator, nu suma calculata din rulaj
*!* 30.08.2011
*!* marius.mutu
*!* suma platita = suma modificata de utilizator daca este diferita de 0, nu suma calculata din rulaj
IF USED('xcont')
SELECT xcont
LOCATE FOR Pozitie # Fel_Cont AND Cu_Inregistrari = 1
IF FOUND()
pcContul = ALLTRIM(cont_part)
pnIdPart = idPart
pcNume = numepart
pnFelCont = Fel_Cont
pcDenumire = ALLTRIM(explic_cont)
pcCond = [ an = ?gnAn and luna = ?gnluna]
llval = .F. && Deocamdata e doar in lei
IF llval
pccond= pccond + [ and ABS(i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit)>0 and i.id_valuta = ] + ALLTRIM(STR(&lcObj..id_valuta))
ELSE
pccond= pccond + [ and (i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit = 0) ]
ENDIF
pcselect = ['select i.* FROM ] + gcs + [.Vireg_parteneri i where 2=2 ']
pcfiltru = [ i.id_part = ?pnIdPart AND ABS(i.precdeb + i.debit - i.preccred - i.credit)<>0 AND i.cont = ?pcContul and ] + pcCond
pcschema = ['']
pcorder = ['']
PRIVATE podateintrod
STORE '' TO podateintrod
gencursor('podateintrod','crs_actcv',pcselect,pcfiltru,[''],'')
lcFis = 'actcv' + ALLTRIM(pcContul)
IF USED(lcFis)
USE IN &lcFis
ENDIF
IF pnFelCont = 0
lcsel = [SELECT *, ACONT AS ASCC, nume_val as numeval, curs as cursschimb, precdeb + debit as totctva, preccred+credit as achitat, ] +;
[precvaldeb + valdebit AS sumaval, precVALcred+VALcredit as achitatval, ] +;
[.f. as ales, 00000000000000.0000 as sumaachi, 000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] +;
[FROM crs_actcv INTO CURSOR ] + lcFis + [ READWRITE ]
ELSE
lcsel = [SELECT *, ACONT AS ASCD, nume_val as numeval, curs as cursschimb, preccred + credit as totctva, precdeb+debit as achitat, ] + ;
[precvalcred + valcredit as sumaval, precVALdeb+VALdebit as achitatval, ] + ;
[.f. as ales, 00000000000000.0000 as sumaachi, 00000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] + ;
[FROM crs_actcv INTO CURSOR ] + lcFis + [ READWRITE ]
ENDIF
&lcsel
SELECT (lcFis)
OPLATA=CREATEOBJECT('ocompensari')
* oplata.txtNume.value =lcNume
OPLATA.titlufrumos1.CAPTION = pcDenumire + [: ] + pcNume
OPLATA.pcFis = lcFis
*!* 24.08.2011
*!* OPLATA.SUMA = THIS.ct_factura1.totctva
OPLATA.SUMA = IIF(thisform.nfTotctva<> 0, thisform.nfTotctva, THIS.ct_factura1.totctva)
*!* 24.08.2011 ^
OPLATA.pnFelCont = pnFelCont
OPLATA.SHOW(1)
*!* SELECT (lcfis)
*!* CALCULATE cnt() FOR ales TO LnBife
*!* IF LnBife=1
*!* LOCATE FOR ALES
*!* &M=nract
*!* ELSE
*!* &M=0
*!* ENDIF
ENDIF
ENDIF
ENDPROC
PROCEDURE do_adauga
PRIVATE pnpretvtva
pnpretvtva = 0
PRIVATE poCote_tva
STORE '' TO poCote_tva
local lnId
lnId = 0
llSucces = nom_articole_nou(@lnId)
this.ct_grid_search1.actualizeaza_grid
ENDPROC
PROCEDURE do_modifica
lcNomArt = this.ct_grid_search1.cnumecursor
SELECT (lcNomArt)
SCATTER NAME lorec
PRIVATE poCote_tva
STORE '' TO poCote_tva
lnId = lorec.id_articol
DO Adauga_Modifica_Inregistrare WITH [catalog_articole],lorec,lnId,[UPDATE]
this.ct_grid_search1.actualizeaza_grid
ENDPROC
PROCEDURE do_sterge
Local lnRecno, lcSelRul
lcSelRul = This.ct_grid_order1.cnumecursor
Select (lcSelRul)
Scatter Name osterg && modificare ROAGEST v 2.1.19
lnRecno = Recno()
*!* modificare ROAGEST v 2.1.19
LOCATE FOR !DELETED()
IF !FOUND()
MESSAGEBOX("Nu exista inregistrari de sters!",48,"Atentie")
RETURN
ENDIF
*!* modificare ROAGEST v 2.1.25 : am adaugat conditia legata de oset.id_set ( ob. de inv. )
If oset.model = 3 AND INLIST(gnFifoLifo,1,2) AND !INLIST(oset.id_set,70,72,104)
Locate For id_articol = osterg.id_articol And id_gestout = osterg.id_gestout ;
AND !DELETED() AND nrordine > osterg.nrordine
*!* And Nvl(serie,'') = Nvl(osterg.serie,'') AND Pret = osterg.Pret And Iif(Inlist(gnTipGest,6,7),pretv,1) = Iif(Inlist(gnTipGest,6,7),osterg.pretv,1)
If Found()
amessagebox("Nu puteti sterge acest articol deoarece nu se mai respecta metoda "+IIF(gnFifoLifo=1,"FIFO","LIFO")+" !",48,"Atentie")
Go lnRecno
RETURN
Endif
Endif
Select (lcSelRul)
GO lnRecno
*!* modificare ROAGEST v 2.1.19 ^
Delete
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - AM PUS RECNO('RUL_TEMP') IN CURSORUL DE TRANSFER - LA STERGERE SA POT STERGE SI LINIA CORESPONDENTA DIN CRSTRANSFER
If Inlist(oset.model,5,6,7) And Used('crsTransfer')
Select crsTransfer
Goto lnRecno
Delete
This.ct_grid_order1.cb_tx_gestin.SetFocus()
Endif
This.ct_grid_order1.actualizeaza_grid
This.calcul_sume
*!* modificare ROAGEST v 2.1.19
Select (lcSelRul)
Go lnRecno
If oset.model = 3
SELECT (This.ct_grid_search1.cnumecursor)
lnRecno = Recno()
*!* modificare ROAGEST v 2.1.25 : am inlocuit datain = osterg.datain cu cond. daca exista osterg.datain si coloana datain in this.ct_grid_search1.cnumecursor
Locate For id_articol = osterg.id_articol And id_gestiune = osterg.id_gestout And Nvl(serie,'') = Nvl(osterg.serie,'') ;
AND Pret = osterg.Pret And Iif(Inlist(gnTipGest,6,7),pretv,1) = Iif(Inlist(gnTipGest,6,7),osterg.pretv,1) ;
AND IIF(INLIST(TYPE('osterg.datain'),'T','D') AND INLIST(TYPE(This.ct_grid_search1.cnumecursor+'.datain'),'T','D'),datain,datapif) = ;
IIF(INLIST(TYPE('osterg.datain'),'T','D') AND INLIST(TYPE(This.ct_grid_search1.cnumecursor+'.datain'),'T','D'),osterg.datain,osterg.datapif)
If Found()
Replace stoc_actual With stoc_actual + osterg.cante
Endif
Go lnRecno
Endif
*!* modificare ROAGEST v 2.1.19 ^
ENDPROC
PROCEDURE do_termin
If This.inainte_de_do_termin()
lcSelRul = This.ct_grid_order1.cnumecursor
lcSelSt = This.ct_grid_search1.cnumecursor
gnButon = 1
pnButon = 1
Buton = 1
pnIesire = 1
*this.Hide
If Type('pnTipCasaMarcat') = 'U'
pnTipCasaMarcat = 1
Endif
If Type('glListareBonFiscal')<>'U' And glListareBonFiscal And pnTipCasaMarcat#1
lcStringmp500 = ''
Thisform.bon_fiscal()
If gnButon<>1
Return
Endif
Endif
Select actactan
*!* modificare ROAPRODUCTIE v 2.0.2
*!* If !Inlist(poact.id_set, 26001) && PV de productie
llVerificare = verificare_note_contabile('actactan', .T.,.T., .F.)
If !llVerificare
*!* modificare ROAPRODUCTIE v 2.0.2 ^
This.AlwaysOnTop = .F.
Do Form verificare With .T.,.T.,3 && cu buton de precedent
This.AlwaysOnTop = .T.
Endif
Do Case
Case gnButon = 3
*onirbon.visible = .t.
Do nrord With lcSelRul
Otherwise
This.Release
Endcase
Endif
ENDPROC
PROCEDURE do_verifica_sume
tcTabel = Alltrim(This.ct_grid_order1.cnumecursor)
Select (tcTabel)
Replace id_valuta_vanz With poAct.id_valuta_vanz All
Calculate Sum(Round(pretvval*cante,gnPVal)),Sum(Round(pretv*cante,gnPc)) To lnTotalVal,lnTotalLei
lnTotalVal = Round(lnTotalVal*poAct.Curs,gnPc)
If lnTotalVal <> lnTotalLei
lnDiferenta = lnTotalVal - lnTotalLei
lnSemn = Sign(lnDiferenta)
*!* lnDiferenta = Abs(lnDiferenta)
lnDiferenta = lnDiferenta
lnDiferentaPretU = Exp((-1)*gnPPretV*Log(10))
lnModificari = 1
Do While lnModificari <> 0
lnModificari = 0
Select (tcTabel)
Scan
lnDiferentaPret = Round(lnDiferentaPretU*cante,gnPc)
lnSemnPret = Sign(lnDiferentaPret)
If Abs(lnDiferentaPret) <= Abs(lnDiferenta)
lnDiferenta = lnDiferenta - lnSemn * lnDiferentaPret
Replace pretv With pretv + lnSemn * lnSemnPret * lnDiferentaPretU
lnModificari = lnModificari + 1
Endif
Endscan
Enddo
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* Model =-1 : Nota fara contabilizare
*!* Model = 1 : Nota simpla cu contabilizare
*!* Model = 2 : NIR
*!* Model = 3 : BON/FACTURA VANZARE
*!* Model = 4 : Retur BON/FACTURA VANZARE
*!* Model = 5 : Transfer
*!* Model = 6 : Retur Transfer
*!* Model = 7 : Diferenta de pret
*!* Param1 = 1 : En-detail
*!* Param1 = 2 : En-gros
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* v 2.0.28 calculez valorile de achizitie in functie de gnTipGest
*!* ACHIZITIE
*!* !plNIRBONPretCuTVA : valoarea fara tva achizitie = cant*pret
*!* : valoarea tva achizitie = valoarea fara tva achizitie * proc_tva
*!* : valoarea cu tva achizitie = valoarea fara tva achizitie + valoarea tva achizitie
*!*
*!* plNIRBONPretCuTVA : valoarea tva achizitie = valoarea cu tva achizitie * (proc_tva - 1) / proc_tva
*!* BILETE RATC : valoarea fara tva achizitie = valoarea cu tva achizitie - valoarea tva achizitie
*!* : valoarea cu tva achizitie = cant*(pret+tva)
*!* VANZARE
*!* gnTipGest <> 6 : valoarea fara tva vanzare = cant*pretv
*!* : valoarea tva vanzare = valoarea fara tva vanzare * proc_tvav
*!* : valoarea cu tva vanzare = valoarea fara tva vanzare + valoarea tva vanzare
*!* : adaosul = valoarea fara tva vanzare - valoarea fara tva achizitie
*!*
*!* gnTipGest = 6 : valoarea fara tva vanzare = valorea cu tva vanzare - valoarea tva vanzare
*!* : valoarea tva vanzare = valoarea cu tva vanzare * (proc_tvav-1)/proc_tvav
*!* : valoarea cu tva vanzare = cant*(pretv+tvav)
*!* : adaosul = valoarea fara tva vanzare - valoarea fara tva achizitie
*!* v 2.0.28 ^
***-----------------------------------
*!* Ordinea coloanelor in tabelul din stanga
*!* salvata pe server in optiuni_util, varname = 'GEST_SELECTII' - pt. fiecare utilizator - pt. operatiile in care a intrat
*!* 19.02.2010
*!* marius.mutu
*!* id_set 264, 265 finalizare aprovizionare din 3xx = 401 => 3xx = 32x din coresp_cont_venchelt.cont_aprovizionare
*!* 06.09.2011
*!* marius.mutu
*!* pnTotalFactura,pnBazaFactura,pnTvaFactura = valorile modificate de utilizator
*!* 05.02.2014
*!* marius.mutu
*!* diferente baza, tva la NIR - x = 401; x se completeaza cu CORESP_CONT_VENCHELT.cont_diferente daca este completat, altfel 6588
*!* #4132
*!* 12.07.2016
*!* marius.mutu
*!* nu se mai inlocuieste scd cu 4426 pentru tva ach. neex. in cazul in care scc = 408. Trebuie sa ramana 4428 = 408
*!* 23.01.2017
*!* marius.mutu
*!* vanzare produse en-detail (firma TVA Incasare) nu se schimba contul 4111 = 4428 in 4111 = 4427 19%
*!* 28.11.2018
*!* marius.mutu
*!* Achizitii din CE, modific 4426 = 401 in 4426 = 4427
*!* 12.11.2019
*!* marius.mutu
*!* id_set = 267 EDUARD AVIZ RETUR CLIENTI CUSTODIE VALORIC - am corectat valoarea 357 si tva vanzare
*!* daca era impartita pe mai multe gestiuni, sectii nu se completa corect
*!* modificare ROAPRODUCTIE v 2.0.2
If Reccount(This.ct_grid_order1.cnumecursor) = 0
amessagebox("Nu ati ales articolele!",48,"Atentie")
Return .F.
Endif
*!* modificare ROAPRODUCTIE v 2.0.2 ^
Local lnNrCols, lcHeader, lcHeader2, lcTitlu_col, lcControlSource, lcControlSource2, lcNume_col, lcOrdine, lcWidth_col, lcSql, lnPornire
Store 0 To lnNrCols
Store 1 To lnPornire
Store '' To lcHeader, lcHeader2, lcTitlu_col, lcControlSource, lcControlSource2, lcNume_col, lcWidth_col, lcOrdine
Create Cursor crsGrid (ordine N(3), ctrSource C(100), titlu C(100), width_col C(100))
lnNrCols = This.ct_GRID_SEARCH1._GRID1.ColumnCount
llNrOrd = This.ct_GRID_SEARCH1.lNumerotare
lnPornire = Val(This.ct_GRID_SEARCH1.cb_tx_cautare1.criteriu.Value)
For I=1 To lnNrCols
If llNrOrd And I<>1 && ce se intampla daca nu e llNrOrd ??????
lcColOrd = [this.ct_grid_search1._grID1.column] + Alltrim(Str(I))+[.columnorder]
lnColOrd = &lcColOrd
*!* modificare v 2.1.19
*!* lcHeader = [this.ct_grid_search1._grid1.column] + Alltrim(Str(I))+ [.grh]+Alltrim(Str(I))+[.]+[Caption]
lcHeader = [This.ct_grid_search1._GRID1.column] + Alltrim(Str(I)) + [.grh] +Alltrim(Str(I))
IF TYPE(lcHeader) = 'O'
lcHeader = lcHeader + [.Caption]
ELSE
*!* daca nu se poate ordona dupa coloana respectiva, atunci am Header1 in loc de grhI
lcHeader = [This.ct_grid_search1._GRID1.column] + Alltrim(Str(I)) + [.header1.Caption]
endif
*!* modificare v 2.1.19 ^
lcHeader2 = &lcHeader
lcControlSource = [this.ct_grid_search1._grid1.column] + Alltrim(Str(I))+ [.ControlSource]
lcControlSource2 = &lcControlSource
lcWidthColumn = [this.ct_grid_search1._grid1.column] + Alltrim(Str(I))+ [.width]
lcWidthColumn2 = Alltrim(Str(&lcWidthColumn))
Insert Into crsGrid (ordine, titlu, ctrSource, width_col) Values (lnColOrd, lcHeader2, lcControlSource2, lcWidthColumn2)
Endif
Endfor
Select * From crsGrid Order By ordine Into Cursor crsGridOrd
Use In crsGrid
Select crsGridOrd
Scan
lcTitlu_col = lcTitlu_col + Alltrim(titlu) + ","
lcNume_col = lcNume_col + Alltrim(ctrSource) + ";"
lcWidth_col = lcWidth_col + Alltrim(width_col)+ ";"
Select crsGridOrd
Endscan
lcTitlu_col = Substr(lcTitlu_col,1,Len(lcTitlu_col)-1)
lcNume_col = Substr(lcNume_col,1,Len(lcNume_col)-1)
lcWidth_col = Substr(lcWidth_col,1,Len(lcWidth_col)-1)
lcOrd = [this.ct_grid_search1.corder]
lcOrdine = &lcOrd
*!* v 2.0.87 - gestselectii - coloane ordonate din optiuni utilizator
lnid_sel = oSet.id_selSt
If Type('crsGestSelectiiUtilizator.pornire')='U' && ver. 2.0.90
Alter Table crsGestSelectiiUtilizator Add Column pornire N(2)
Endif
Select crsGestSelectiiUtilizator
Locate For id_sel = oSet.id_selSt
If Found()
Update crsGestSelectiiUtilizator ;
Set titlu_col = lcTitlu_col, nume_col = lcNume_col, ordine = lcOrdine, width_col = lcWidth_col, pornire = lnPornire ;
WHERE id_sel = oSet.id_selSt
Else
Insert Into crsGestSelectiiUtilizator (id_sel, titlu_col, nume_col, ordine, width_col, pornire) ;
VALUES (oSet.id_selSt, lcTitlu_col, lcNume_col, lcOrdine, lcWidth_col, lnPornire )
Endif
lcCursorXML = ''
Cursortoxml("crsGestSelectiiUtilizator", "lcCursorXML", 2, 0+2+8, 0, "1")
scrie_optiune_utilizator("GEST_SELECTII", lcCursorXML, "Ordinea coloanelor in tabelul din stanga in formularele de nir, bon, etc.")
*!* v 2.0.87 - gestselectii ^
***-----------------------------------
Private poRec
poRec = Null
Local loRec
Local lcSelRul, lcSelRulGr,lcContTr, lcAcontTr, lcRul, lcCursor, lnSucces, llSucces, lcCant, lnIdGestiuneTr
Store '' To lcContTr, lcAcontTr
lnIdGestiuneTr = 0
lcSelRulGr = This.ct_grid_order1.cnumecursor
Local lnRecno
lnRecno = 0
pnBazaV341 = 0
pnBazaV346 = 0
pnBazaVProd = 0
pnBazaVAmb = 0
pnBazaVal341 = 0
pnBazaVal346 = 0
pnBazaValProd = 0
pnBazaValAmb = 0
*!* 15.03.2007
Local llY
llY = .F.
*!* 15.03.2007 ^
*!* modificare facturare in valuta 24.09.2007
If oSet.cursval
Thisform.do_verifica_sume()
Endif
*!* modificare facturare in valuta 24.09.2007 ^
Thisform.compensare && PT 542 ; se completeaza actactanul in adunadate
*** completez tabela ACTACTAN
If Type('oitem') = 'O'
If Pemstatus(oitem,'adunadate',5)
oitem.adunadate()
*!* modificare ROAGEST v 2.2.0 : repun conturile modificate in actbaza2007
select actactan
replace all scc with '4427' for inlist(id_jtva_coloana,22,24,26,30,32,38,42) and scc = '4428'
replace all scd with '4426' for inlist(id_jtva_coloana,171,173,175,179,189,211,215) and scd = '4428' AND scc <> '408' && aviz 4428 = 408
*!* modificare ROAGEST v 2.2.0
Endif
Endif
***
If Used('rul_temp')
Use In rul_temp
ENDIF
&& completez RUL_TEMP
lcRul = Alltrim(This.osel_dr.cfrom)
lcSql = [select v.*,0 as pretvval,0 as curs,0 as id_valuta_vanz,0 as id_jtva_coloana,0 as taxcode, v.id_gestiune as id_gestin, v.nume_gestiune as gestin, v.id_gestiune as id_gestout, v.nume_gestiune as gestout, 0 as nuInConturiX]
&& VRUL_OBINV NU ARE CODMATF, LOT, ADATA_EXPIRARE SI NU SE MAI SALVEAZA LOT, ADATA_EXPIRARE IN RUL
If 'obinv'$Lower(lcRul)
lcSql = lcSql + [,rpad(' ',50,' ') as codmatf, rpad(' ',50,' ') as lot, to_date('') as adata_expirare, rpad(' ',50,' ') as serie_obinv]
Endif
lcSql = lcSql + [ from ] + lcRul + [ where 1=2]
lcCursor = [rul_temp]
llSucces = goExecutor.oExecuta(lcSql,lcCursor)
If !m.llSucces
Return .F.
Endif
Select rul_temp
Append From Dbf(lcSelRulGr)
lcSelRul = 'rul_temp'
*!* v 2.0.39
*!* modificare ROAGEST v 2.0.51
*!* If oset.id_set = 236 && retur din transfer de la gestiune valorica mf pv - aviz expeditie
*!* 240 && retur din transfer de la gestiune valorica (cantitativ) mf pv - aviz expeditie
*!* 241 = 236 la mf pret ach
*!* 242 = 240 la mf pret ach
If Inlist(oSet.id_set,236,238,239,240,241,242,255,256,259,260) && retur din transfer de la gestiune valorica mf pv - aviz expeditie
*!* modificare ROAGEST v 2.0.51 ^
*!* il introduc ca NIR, dar vreau sa apara ca intrare din retur (cante < 0)
Select rul_temp
Scan
Scatter Name loRec
Replace cante With -loRec.cant, cant With 0, id_gestiunec With poAct.id_gestout, id_gestin With poAct.id_gestout, id_gestout With poAct.id_gestin, datain With loRec.dataout, dataout With {}
Endscan
Select ACTACTAN
Replace id_gestin With poAct.id_gestout, id_gestout With poAct.id_gestin, id_partc With 0, partc With ""
Endif
*!* modificare ROAFACTURARE v 2.0.96
pnDisctV = 0
pnTvaDiscV = 0
IF oSet.id_set = 267
lnProcDiscount = Iif(oset.discount And Thisform.ct_discount1.Combogrid3.Value=3,Thisform.ct_discount1.proc_discount ,0) / 100
Select rul_temp
Scan
Scatter Name loRec
Replace cante With -loRec.cant, cant With 0, id_gestiunec With poAct.id_gestout, id_gestin With poAct.id_gestout, id_gestout With poAct.id_gestin, datain With loRec.dataout, dataout With {},;
discunitar WITH ROUND((loRec.pretv+loRec.tvav)*lnProcDiscount,gnPPretV)
Endscan
Calculate Sum(Round(discunitar * Abs(cante),gnPc)-Round(Round(discunitar * Abs(cante),gnPc) * (proc_tvav-1)/proc_tvav,gnPc)),;
SUM(Round(Round(discunitar * Abs(cante),gnPc) * (proc_tvav-1)/proc_tvav,gnPc)) To pnDiscV,pnTvaDiscV
Select ACTACTAN
Replace id_gestin With poAct.id_gestout, id_gestout With poAct.id_gestin, id_partc With 0, partc With ""
ENDIF
*!* modificare ROAFACTURARE v 2.0.96 ^
If Inlist(oSet.id_set, 215, 216, 237,257) && intrare din transfer de la gestiune valorica
Replace All id_gestiunec With poAct.id_gestout, id_gestout With poAct.id_gestout
Endif
*!* v 2.0.39
If oSet.productie
Do Case
Case Alltrim(Upper(oSet.formproduc))='FRM_ALEGE_PROD_CANT'
Thisform.intrare_produs()
Case Inlist(Alltrim(Upper(oSet.formproduc)),'FRM_ALEGE_SECTIE_COMANDA','FRM_ALEGE_SECTIE')
Select ACTACTAN
*!* modificare 03.09.2007
*!* Replace id_sectie With pnId_sectie, sectie With pcSectie For Inlist(nr_nota,1,2,5)
Replace id_sectie With 0, sectie With '' For Inlist(nr_nota,4)
Endcase
Endif
*!* 15.03.2007
*!* pentru intrare dintr-o gestiune tinuta doar valoric - trebuie contul
*!* daca exista Y (trebuie sa aleaga contul de transfer)
Select xscd As SCD, xscc As scc From XNOTE Where id_set = oSet.id_set ;
AND (Inlist(Upper(Alltrim(xscd)),'Y') Or Inlist(Upper(Alltrim(xscc)),'Y'));
INTO Cursor crsY
If _Tally > 0 Or Inlist(oSet.model, 5, 6, 7)
llY = .T.
Endif
Use In crsY
*!* 15.03.2007 ^
If Inlist(oSet.model, 5, 6, 7) && TRANSFER, RETUR TRANSFER
Select (lcSelRul)
lnRecno = Recno()
If oSet.id_set = 211 && TRANSFER GESTIUNE OB INV IN FOLOSINTA PE PERSOANA CATRE O MAGAZIE OB INV IN FOLOSINTA
Replace id_responsabil With 0, nresp With ''
Endif
If Used('crsTransfer')
Append From Dbf('crsTransfer')
If oSet.id_set = 210 && TRANSFER MAGAZIE OB INV IN FOLOSINTA CATRE O GESTIUNE OB INV IN FOLOSINTA PE PERSOANA
Replace id_responsabil With 0, nresp With '' For Recno() > lnRecno
Endif
*!* modificare 22.05.2007
*** se modifica pretul de ach. pentru intrari
If oSet.id_set = 218 && Diferenta pret la produse
Replace Pret With pretv For cant <> 0
Endif
*!* modificare 22.05.2007 ^
Endif
If !Inlist(oSet.id_set,89, 210, 211, 212) && (FARA TRANSFER INTRE PERSOANE)
*!* If Inlist(oset.id_seldr,11,16,18) && achizitie
*!* poGestTr = This.caut_gestiune()
*!* Endif
*!* If oset.id_seldr = 12 && vanzare
*!* poGestTr = This.caut_gestiune(1)
*!* Endif
*!* If Empty(poGestTr.Id_gestiune) && renunt
*!* Return .F.
*!* Endif
*!* && Dc poGestTr.Id_gestiune nu e empty aleg contul de transfer si analiticul
*!* loCont = This.aleg_cont_transfer(poGestTr.Id_gestiune)
*!* If Empty(loCont.Cont) && renunt
*!* Return .F.
*!* Endif
&& oset.id_seldr = 12 : catre o gestiune de marfa la pret de vanzare
loCauta = caut_gestiune_dest(0,Iif(oSet.id_seldr = 12, [6],[2,3,4,5]),0)
If Nvl(loCauta.id_gestiune,0) = 0
Return .F.
Else
poGestTr = Createobject("custom")
poGestTr.AddProperty("id_gestiune", loCauta.id_gestiune)
poGestTr.AddProperty("nume_gestiune", loCauta.nume_gestiune)
loCont = Createobject("custom")
loCont.AddProperty("cont", loCauta.Cont)
loCont.AddProperty("acont", Nvl(loCauta.acont,""))
Endif
Select (lcSelRul)
Replace All id_gestin With poGestTr.id_gestiune, gestin With poGestTr.nume_gestiune &&FOR cant <> 0
Do Case
Case Inlist(oSet.model,5,7) && transfer
Replace All id_gestiune With poGestTr.id_gestiune, nume_gestiune With poGestTr.nume_gestiune For cant <> 0
Case oSet.model = 6 && retur
Replace All id_gestiune With poGestTr.id_gestiune, nume_gestiune With poGestTr.nume_gestiune For cante <> 0
Endcase
lcContTr = loCont.Cont
lcAcontTr = loCont.acont
Select ACTACTAN
Replace All SCD With lcContTr, ascd With lcAcontTr, id_gestin With poGestTr.id_gestiune, gestin With poGestTr.nume_gestiune For Upper(Alltrim(SCD)) = 'Y'
Select (lcSelRul)
If oSet.model = 6
lcCant = Thisform.osel_dr.cantitate
Else
lcCant = [cant]
Endif
Replace All Cont With lcContTr, acont With lcAcontTr For &lcCant <> 0
*!* REPLACE ALL id_gestiunec WITH id_gestout FOR cant <> 0
*!* REPLACE ALL id_gestiunec WITH id_gestin FOR cante <> 0
*!* REPLACE ALL nuInConturiX WITH 1 FOR cant <> 0
Endif
Select (lcSelRul)
Replace All id_gestiunec With id_gestout For cant <> 0
Replace All id_gestiunec With id_gestin For cante <> 0
Replace All nuInConturiX With 1 For cant <> 0
Endif
Select (lcSelRul)
If oSet.param1 = 2 And oSet.factura && factura en-gros
This.calcul_pret_vanzare(lcSelRul)
*!* modificare 31.10.2006
pnTotalFactura = This.ct_factura1.totctva
pnBazaFactura = This.ct_factura1.totftva
pnTvaFactura = This.ct_factura1.tva
Select rul_temp
If gnTipGest <> 6
Calculate Sum(Round(Round(pretv,gnPPretV)*cante,gnPc)),;
SUM(Round(Round(Round(pretv,gnPPretV)*cante,gnPc)*(proc_tvav-1),gnPc)) ;
TO lnBazaFactura,lnTvaFactura
Else
Calculate Sum(Round(Round(pretv+tvav,gnPPretV)*cante,gnPc)) To lnTotFactura
Calculate Sum(Round(Round(Round(pretv+tvav,gnPPretV)*cante,gnPc)*(proc_tvav-1)/proc_tvav,gnPc)) To lnTvaFactura
lnBazaFactura = lnTotFactura - lnTvaFactura
Endif
Do Case
Case lnBazaFactura <> pnBazaFactura And lnTvaFactura <> pnTvaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(23) + [Baza] + Space(18) + [TVA] + CRLF + ;
[Introduse:] + Space(5) + Str(pnBazaFactura,20,gnPc) + [ ] + Str(pnTvaFactura,20,gnPc) + ;
CRLF +;
[Calculate:] + Space(5) + Str(lnBazaFactura,20,gnPc) + [ ] + Str(lnTvaFactura,20,gnPc) + ;
CRLF + CRLF + ;
[Doriti sa continuati?]
Case lnBazaFactura <> pnBazaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(23) + [Baza] + CRLF + ;
[Introduse:] + Space(5) + Str(pnBazaFactura,20,gnPc) + CRLF+;
[Calculate:] + Space(5) + Str(lnBazaFactura,20,gnPc) + CRLF + CRLF + ;
[Doriti sa continuati?]
Case lnTvaFactura <> pnTvaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(24) + [TVA] + CRLF + ;
[Introduse:] + Space(5) + Str(pnTvaFactura,20,gnPc) + CRLF +;
[Calculate:] + Space(5) + Str(lnTvaFactura,20,gnPc) + CRLF + CRLF + ;
[Doriti sa continuati?]
Otherwise
lcMesaj = []
Endcase
If !Empty(lcMesaj)
If amessagebox(lcMesaj,4+32+256,"Confirmare")==7
Return .F.
Else
pnBazaFactura = lnBazaFactura
pnTvaFactura = lnTvaFactura
pnTotalFactura = lnBazaFactura + lnTvaFactura
Endif
Endif
Else
*!* 06.09.2011
*!* pnTotalFactura = This.ct_factura1.totctva
*!* pnBazaFactura = This.ct_factura1.totftva
*!* pnTvaFactura = This.ct_factura1.tva
pnTotalFactura = IIF(thisform.nfTotctva<> 0, thisform.nfTotcTva, THIS.ct_factura1.totctva)
pnBazaFactura = IIF(thisform.nfTotfTva <> 0, thisform.nfTotfTva, This.ct_factura1.totftva)
pnTvaFactura = IIF(thisform.nfTotTva<> 0, thisform.nfTotTva, This.ct_factura1.tva)
*!* modificare 31.10.2006 ^
*!* 06.09.2011 ^
Endif
pnDiscount = This.ct_discount1.baza_discount
pnTVADiscount = -This.ct_discount1.tva_discount
pnProcDiscount = This.ct_discount1.pnTva
pnIdJtvaDiscount = This.ct_discount1.nid_jtva_coloana
pnIdTvaDiscount = This.ct_discount1.nid_tva
*!* pnTotalFactura = THIS.ct_factura1.totctva
*!* pnBazaFactura = THIS.ct_factura1.totftva
*!* pnTvaFactura = THIS.ct_factura1.tva
pnBazaNir = [pret*cant]
pnBazaBon = [pret*cante]
pnTotalBon = This.ntotal
pnTotalNir = This.ntotal
lcCant = Lower(Alltrim(This.osel_dr.cantitate))
*!* ROAGEST V 2.0.61
*!* modificare ROAGEST v 2.0.53
*!* If Inlist(oset.model, 5, 6, 7) && transfer
*!* 236,240,241,242 - RETUR DE LA GESTIUNE VALORICA (-CANTE)
*!* 267 retur valoric din custodie
If Inlist(oSet.model, 5, 6, 7) Or Inlist(oSet.id_set,238,239,236,240,241,242,255,256,259,260,267 )
lcCant = [cante]
Endif
*!* modificare ROAGEST v 2.0.53 ^
*!* ROAGEST V 2.0.61 ^
If !plNIRBONPretCuTVA
pcTvaNirFormula = [ROUND(ROUND(cant*pret,gnPc)*(proc_tva-1),gnPc)]
pcBazaNirFormula = [Round(cant*pret,gnPc)]
pcBazaBonFormula = [Round(cante*pret,gnPc)]
Else
pcTvaNirFormula = [Round(ROUND(cant*(pret+tva),gnPc) * (proc_tva-1)/proc_tva, gnPC)]
pcBazaNirFormula = [Round(cant*(pret+tva),gnPc) - Round(ROUND(cant*(pret+tva),gnPc) * (proc_tva-1)/proc_tva, gnPC)]
pcBazaBonFormula = [Round(cante*(pret+tva),gnPc) - Round(ROUND(cante*(pret+tva),gnPc) * (proc_tva-1)/proc_tva, gnPC)]
Endif
*!* modificare ROAGEST v 2.0.94 : am adaugat conditia AND oset.id_set <> 75
If !Inlist(gnTipGest, 6, 7) And oSet.id_set <> 75
pnBazaVanz = [ROUND(pretv*cante,gnPc)]
pnBazaVal = [ROUND(pretvval*cante,gnPVal)]
pnBazaValVanz = [ROUND(ROUND(pretvval*curs,gnPPretV)*cante,gnPC)]
pnTvaVanzOut2 = [Round(ROUND(pretv*cante,gnPc)*(proc_tvav-1),gnPc)] && PROTOCOL
pnTvaVal = [ROUND(ROUND(pretvval*cante,gnPVal)*(proc_tvav-1),gnPVal)]
pnTvaValVanz = [ROUND(ROUND(ROUND(pretvval*curs,gnPPretV)*cante,gnPC)*(proc_tvav-1),gnPC)]
pcBazaVanzFormula = [ROUND(pretv*cante,gnPc)]
pnTvaVanzIn = [Round(ROUND(pretv*cant,gnPc) * (proc_tvav-1), gnPC)]
pnTvaVanzOut = [Round(ROUND(pretv*cante,gnPc) * (proc_tvav-1), gnPC)]
If !plNIRBONPretCuTVA
pnAdaos = [Round(] + lcCant+ [ * pretv, gnPc) - Round(] + lcCant+ [ * pret, gnPc)]
Else
pnAdaos = [Round(] + lcCant+ [ * pretv, gnPc) - (ROUND((pret+tva)*] + lcCant + [,gnPc) - Round(ROUND((pret+tva)*] + lcCant + [,gnPc) * (proc_tva-1)/proc_tva, gnPC))]
Endif
*!* modificare ROAGEST v 2.0.45
pnVanzOutCuTva = pnBazaVanz + [+] + pnTvaVanzOut
*!* modificare ROAGEST v 2.0.45 ^
Else
pnBazaVanz = [ROUND((pretv+tvav)*cante,gnPc) - Round(ROUND((pretv+tvav)*cante,gnPc) * (proc_tvav-1)/proc_tvav, gnPc)]
pnBazaVal = [ROUND(Round(pretvval*proc_tvav,gnPVal)*cante,gnPVal) - Round(ROUND(Round(pretvval*proc_tvav,gnPVal)*cante,gnPVal) * (proc_tvav-1)/proc_tvav, gnPVal)]
pnBazaValVanz = [ROUND(Round(ROUND(pretvval*curs,gnPPretV)*proc_tvav,gnPPretV)*cante, gnPc) - Round(ROUND(Round(ROUND(pretvval*curs,gnPPretV)*proc_tvav, gnPPretV)*cante, gnPc) * (proc_tvav-1)/proc_tvav, gnPc)]
pnTvaVanzOut2 = [Round(Round((pretv+tvav)*cante,gnPc)*(proc_tvav-1)/proc_tvav, gnPc)] && PROTOCOL
pnTvaVal = [Round(ROUND(Round(pretvval*proc_tvav,gnPVal)*cante,gnPVal) * (proc_tvav-1)/proc_tvav, gnPVal)]
pnTvaValVanz = [Round(ROUND(Round(ROUND(pretvval*curs,gnPPretV)*proc_tvav, gnPPretV)*cante, gnPc) * (proc_tvav-1)/proc_tvav, gnPc)]
pcBazaVanzFormula = [ROUND((pretv+tvav)*cante,gnPc) - Round(ROUND((pretv+tvav)*cante,gnPc) * (proc_tvav-1)/proc_tvav, gnPC)]
pnTvaVanzIn = [Round(ROUND((pretv+tvav)*cant,gnPc)* (proc_tvav-1)/proc_tvav, gnPC)]
pnTvaVanzOut = [Round(ROUND((pretv+tvav)*cante,gnPc)* (proc_tvav-1)/proc_tvav, gnPC)]
If !plNIRBONPretCuTVA
pnAdaos = [ROUND((pretv+tvav)*] + lcCant + [,gnPc) - Round(ROUND((pretv+tvav)*] + lcCant + [,gnPc) * (proc_tvav-1)/proc_tvav, gnPC) - ] + ;
[Round(] + lcCant+ [ * pret, gnPc)]
Else
pnAdaos = [ROUND((pretv+tvav)*] + lcCant + [,gnPc) - Round(ROUND((pretv+tvav)*] + lcCant + [,gnPc) * (proc_tvav-1)/proc_tvav, gnPC) - ] + ;
[(ROUND((pret+tva)*] + lcCant + [,gnPc) - Round(ROUND((pret+tva)*] + lcCant + [,gnPc) * (proc_tva-1)/proc_tva, gnPC))]
Endif
*!* modificare ROAGEST v 2.0.45
pnVanzOutCuTva = [Round((pretv+tvav)*cante,gnPc)]
*!* modificare ROAGEST v 2.0.45 ^
Endif
If oSet.id_set = 104 And gnImputare = 1
pnBazaVanz = [ROUND(pret_imputare*cante,gnPc)]
pnTvaVanzOut = [ROUND(ROUND(pret_imputare*cante,gnPc)*(proc_tvav-1),gnPc)]
Endif
pnAdaosTotal = This.ct_adaos1.baza_adaos
pnBazaPlusAdaos = pnTotalBon + pnAdaosTotal
Select * From XNOTE Where id_set = oSet.id_set Into Cursor crsNota
lcField = ''
Select xact
Go Top
For I = 1 To Fcount()
If Upper(Alltrim(Evaluate(Field(I)))) = 'SUMA'
lcField = Field(I)
Exit
Endif
Endfor
If Empty(lcField)
Return .T.
Endif
Select Distinct xscd As SCD, xscc As scc, Padr(&lcField,100,' ') As eticheta,x34,x37 From crsNota ;
WHERE Inlist(Upper(Alltrim(xscd)),'X') Or Inlist(Upper(Alltrim(xscc)),'X');
INTO Cursor crsIcsi
If _Tally > 0
Select crsIcsi
Scan
lcEticheta = Lower(Alltrim(eticheta))
If Empty(lcEticheta)
amessagebox('NECONFIGURAT xnote.dbf !',48,'Atentie!')
Loop
Endif
lcSCD = Upper(Alltrim(SCD))
lcSCC = Upper(Alltrim(scc))
lcIDJtva = Upper(Alltrim(x34)) && ID_JTAX/ID_TVA/pnIdJTvaDiscount/pnIdTvaDiscount
lcTaxCode = UPPER(ALLTRIM(x37)) && STAXCODE
If Inlist(oSet.model, 5, 6, 7) && TRANSFER, RETUR TRANSFER
If lcSCD = 'Y'
lcSCD = lcContTr
Endif
If lcSCC = 'Y'
lcSCC = lcContTr
Endif
Endif
&& despart sumele pe gestiuni si sectii - pt formarea corecta a analiticelor
If 'pntvavanz' $ lcEticheta Or 'pnadaos' $ lcEticheta
*!* IF 'pnadaos'$lcEticheta
If Type('&lcEticheta') <> 'N'
lcEticheta = &lcEticheta
Endif
lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
*!* ELSE
*!* lcEticheta = &lcEticheta
*!* lcSuma = [SUM(ROUND(ROUND(&lcEticheta,gnPc)*(proc_tvav-1),gnPc))]
*!* ENDIF
lcSelect = [SELECT CONT,ACONT,id_gestiune,id_sectie,sectie,id_lucrare,nrord,] + ;
IIF(Type(lcSelRul+'.id_jtva_coloana')#'U',[id_jtva_coloana],[NULL]) + [ as id_jtva_coloana,] + ;
IIF(Type(lcSelRul+'.taxcode')#'U',[taxcode],[NULL]) + [ as taxcode,] + ;
IIF(Type(lcSelRul+'.proc_tvav')#'U',[proc_tvav],[0000]) + [ as proc_tva,] +;
IIF(Type(lcSelRul+'.id_gestin')#'U',[id_gestin],[000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ AS suma ] + ;
[FROM ] + lcSelRul + [ where nuInConturiX = 0 into cursor crsConturiX ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14]
&lcSelect
Else
*!* v 2.0.24 valoarea baza achizitie = diferenta intre valoarea cu tva si valoarea tva
Do Case
Case 'pnbazanir' $ Lower(lcEticheta)
lcSuma = [Sum(&pcBazaNirFormula)]
Case 'pnbazabon' $ Lower(lcEticheta)
lcSuma = [Sum(&pcBazaBonFormula)]
Otherwise
If Type('&lcEticheta') <> 'N'
lcEticheta = &lcEticheta
Endif
lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
Endcase
*!* v 2.0.24
*!* lcSuma = [SUM(ROUND(]+ALLTRIM(STR(lcEticheta,20,6))+[,gnPc))]
lcSelect = [SELECT CONT,ACONT,id_gestiune,id_sectie,sectie,id_lucrare,nrord,] + ;
IIF(Type(lcSelRul+'.id_jtva_coloana')#'U',[id_jtva_coloana],[NULL]) + [ as id_jtva_coloana,] + ;
IIF(Type(lcSelRul+'.taxcode')#'U',[taxcode],[NULL]) + [ as taxcode,] + ;
IIF(Type(lcSelRul+'.proc_tva')#'U',[proc_tva],[0000]) + [ as proc_tva,] +;
IIF(Type(lcSelRul+'.id_gestin')#'U',[id_gestin],[000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ AS suma ] + ;
[FROM ] + lcSelRul + [ where nuInConturiX = 0 into cursor crsConturiX ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14]
&lcSelect
Endif
Select crsConturiX
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
Scatter Name loCX
Select ACTACTAN
Locate For Upper(Alltrim(SCD)) = lcSCD And Upper(Alltrim(scc)) = lcSCC
If Found()
Scatter Name loActactan
With loActactan
If Upper(Alltrim(.SCD)) = 'X'
.SCD = loCX.Cont
.ascd = Nvl(loCX.acont,'')
.suma = loCX.suma
If !Empty(lcIDJtva) && AND !INLIST(oset.model,5,6)
.id_jtva_coloana = loCX.id_jtva_coloana
.proc_tva = loCX.proc_tva
Else
.id_jtva_coloana = Null
.proc_tva = 0
Endif
.taxcode = IIF(!Empty(m.lcTaxCode), loCX.taxcode, NULL)
.id_gestin = loCX.id_gestin
.gestin = loCX.gestin
.id_gestout = loCX.id_gestout
.gestout = loCX.gestout
.id_sectie = loCX.id_sectie
.sectie = loCX.sectie
.id_lucrare = loCX.id_lucrare
.nrord = loCX.nrord
Endif
If Upper(Alltrim(.scc)) = 'X'
.scc = loCX.Cont
.ascc = Nvl(loCX.acont,'')
.suma = loCX.suma
*!* modificare 04.10.2007
*!* If Left(.scd,1) = '6' And Alltrim(.scd) # '607' And Inlist(oset.model, 3, 4) && BON, RETUR
*!* If .scc = '381'
*!* .scd = '608'
*!* Else
*!* .scd = Strtran(.scc, '3', '6', 1, 1)
*!* Endif
*!* Endif
If Inlist(oSet.model,3,4)
Select crsconfigcvc
Locate For Cont = Upper(Alltrim(.scc))
If Found() And (Empty(.SCD) Or Inlist(Left(.SCD,1), '6','7'))
.SCD = Alltrim(cont_chelt)
Else
If Left(.SCD,1) = '6' And Alltrim(.SCD) # '607'
IF LEFT(.scc,1) = '8' && clasa 8 nu are corespondent (obiecte inventar in folosinta)
.scd = ''
Else
If .scc = '381'
.SCD = '608'
ELSE
.SCD = Strtran(.scc, '3', '6', 1, 1)
ENDIF
ENDIF
Endif
Endif
Select ACTACTAN
Endif
*!* modificare 04.10.2007 ^
If !Empty(lcIDJtva) && AND !INLIST(oset.model,5,6)
.id_jtva_coloana = loCX.id_jtva_coloana
.proc_tva = loCX.proc_tva
Else
.id_jtva_coloana = Null
.proc_tva = 0
ENDIF
.taxcode = IIF(!Empty(m.lcTaxCode), loCX.taxcode, NULL)
.id_gestin = loCX.id_gestin
.gestin = loCX.gestin
.id_gestout = loCX.id_gestout
.gestout = loCX.gestout
.id_sectie = loCX.id_sectie
.sectie = loCX.sectie
.id_lucrare = loCX.id_lucrare
.nrord = loCX.nrord
Endif
Endwith
Append Blank
Gather Name loActactan
Endif && IF FOUND()
Select crsConturiX
Endscan
Select crsIcsi
Endscan
Delete From ACTACTAN Where Inlist(Upper(Alltrim(SCD)),'X') Or Inlist(Upper(Alltrim(scc)),'X')
Endif
*!* 15.03.2007 ^
*!* inlocuiesc Y - la notele care nu sunt transfer sau retur transfer (intrare dintr-o gestiune tinuta valoric - trebuie contul)
If !Inlist(oSet.model, 5, 6, 7) And llY
Select rul_temp
Go Top
lnIdGestiuneTr = id_gestiune
If !Empty(lnIdGestiuneTr)
loCont = This.aleg_cont_transfer(lnIdGestiuneTr)
lcContTr = loCont.Cont
lcAcontTr = loCont.acont
Select ACTACTAN
Replace All SCD With lcContTr, ascd With lcAcontTr For Upper(Alltrim(SCD)) = 'Y'
Replace All scc With lcContTr, ascc With lcAcontTr For Upper(Alltrim(scc)) = 'Y'
Endif
*!* 20.03.2007
*!* cont de transfer - cont din nomenclator
*!* in rul aj trebuie sa am pe intrari contul din debit (contul de transfer)
If oSet.model = 2 Or Upper(Alltrim(oSet.formgest)) = 'NIR'
Select rul_temp
Replace All Cont With lcContTr
Endif
Endif
*!* 15.03.2007 ^
Select crsNota
Scan For !(Inlist(Upper(Alltrim(xscd)),'X') Or Inlist(Upper(Alltrim(xscc)),'X'))
Scatter Name loNota
lcVariabila = Lower(Alltrim(loNota.&lcField))
lcIDJtva = Upper(Alltrim(x34))
If Inlist(oSet.model, 5, 6, 7) Or llY && TRANSFER, RETUR TRANSFER
If loNota.xscd = 'Y'
loNota.xscd = lcContTr
loNota.xAscd = lcAcontTr
Endif
If loNota.xscc = 'Y'
loNota.xscc = lcContTr
loNota.xAscc = lcAcontTr
Endif
Endif
Do Case
Case 'pntvanir' $ lcVariabila
lcSuma = [SUM(&pcTvaNirFormula)]
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tva,CAST(] + IIF(Type(lcSelRul+'.taxcode')#'U',[a.taxcode],[NULL]) + [ as I) as taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane b ON a.id_jtva_coloana = b.id_jtva_coloana ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12]
*!* v 2.0.24 ^
&lcSelect
Select crsTva
I = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
I = I + 1
If I = 1
Select ACTACTAN
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select ACTACTAN
Append Blank
Gather Name loAct
Gather Name loTva
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null,proc_tva With 0
Endif
Endscan
Case 'pnbazavanz'$lcVariabila Or 'pntvavanz'$lcVariabila
lcVariabilatemp = lcVariabila
lcVariabila = &lcVariabila
lcSuma = [sum(ROUND(&lcVariabila,gnPc))]
DO CASE
CASE 'pnbazavanz'$lcVariabilatemp
lcSuma = [Sum(&pcBazaVanzFormula)]
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,a.taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12]
CASE 'pntvavanz'$lcVariabilatemp
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tvav,CAST(] + IIF(Type(lcSelRul+'.taxcode')#'U',[a.taxcode],[NULL]) + [ as I) as taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane B ON A.ID_JTVA_COLOANA = B.ID_JTVA_COLOANA ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12]
ENDCASE
&lcSelect
Select crsTva
I = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
I = I + 1
If I = 1
Select ACTACTAN
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select ACTACTAN
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
*!* modificare facturare in valuta 21.09.2007
Case 'pnbazaval'$lcVariabila Or 'pntvaval'$lcVariabila
lcVariabilatemp = lcVariabila
lcVariabila = &lcVariabila
lcSumaVal = [sum(&lcVariabila)]
If 'pnbazaval'$lcVariabilatemp
*!* lcSuma = [SUM(]+pnBazaValVanz+[)]
lcSuma = [ROUND(SUM(]+pnBazaVal+[)*a.curs,gnPc)]
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,a.taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
[NVL(a.id_valuta_vanz,0) as id_valuta,] + ;
IIF(Type(lcSelRul+'.curs') #'U',[a.curs],[0]) + [ as curs,] + ;
lcSumaVal + [ as suma_val,] + lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Else
*!* lcSuma = [SUM(]+pnTvaValVanz+[)]
lcSuma = [ROUND(SUM(]+pnTvaVal+[)*a.curs,gnPc)]
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tvav,CAST(] + IIF(Type(lcSelRul+'.taxcode')#'U',[a.taxcode],[NULL]) + [ as I) as taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
[NVL(a.id_valuta_vanz,0) as id_valuta,] + ;
IIF(Type(lcSelRul+'.curs') #'U',[a.curs],[0]) + [ as curs,] + ;
lcSumaVal + [ as suma_val,] + lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane B ON A.ID_JTVA_COLOANA = B.ID_JTVA_COLOANA ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12,13,14]
Endif
&lcSelect
Select crsTva
I = 0
Scan For suma_val*0 = 0 && sa evit cazurile in care suma este ******
I = I + 1
If I = 1
Select ACTACTAN
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
AddProperty(loTva,[nume_val],poAct.nume_val_vanz)
Select ACTACTAN
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
*!* modificare facturare in valuta 21.09.2007 ^
Case 'pnbazabon'$lcVariabila
*!* v 2.0.24
*!* lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
lcSuma = [Sum(&pcBazaBonFormula)]
*!* v 2.0.24 ^
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,CAST(null as I) as taxcode,a.id_sectie,a.id_gestiune,a.sectie,a.id_lucrare,a.nrord,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11,12]
&lcSelect
Select crsTva
I = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
I = I + 1
If I = 1
Select ACTACTAN
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select ACTACTAN
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
Otherwise
Select ACTACTAN
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
If !Empty(lcVariabila)
Replace suma With &lcVariabila
Endif
Endif
If 'discount' $ lcVariabila
Replace proc_tva With pnProcDiscount,id_jtva_coloana With &lcIDJtva, taxcode WITH GetTaxCode(m.gnAn, m.gnLuna, dataact, &lcIDJtva, (Thisform.nTvaincasare=1))
Endif
Endcase
Endscan
If Used('crsIcsi')
Use In crsIcsi
Endif
If Used('crsConturiX')
Use In crsConturiX
Endif
If Used('crsNota')
Use In crsNota
Endif
*!* IF USED('rul_temp')
*!* USE IN rul_temp
*!* ENDIF
*!* && completez RUL_TEMP
*!* lcRul = ALLTRIM(THIS.osel_dr.cfrom)
*!* lcSql = [select * from ] + gcS + [.] + lcRul + [ where 1=2]
*!* lcCursor = [rul_temp]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* IF lnSucces < 0
*!* RETURN .F.
*!* ENDIF
*!* lcCant = LOWER(ALLTRIM(this.osel_dr.cantitate))
*!* lcCantTransf = [cant] + iif(lcCant = [cante],[],[e])
*!* IF INLIST(oset.model, 5, 6) && TRANSFER, RETUR TRANSFER
*!* SELECT * FROM (lcSelRul) INTO CURSOR crsTransf NOFILTER READWRITE
*!* REPLACE ALL &lcCantTransf WITH &lcCant FOR !EMPTY(&lcCant)
*!* REPLACE ALL &lcCant WITH 0
*!* APPEND FROM DBF(lcSelRul)
*!* IF oset.id_set <> 89 && TRANSFER INTRE PERSOANE
*!* REPLACE ALL cont WITH lcContTr, acont WITH lcAcontTr FOR &lcCantTransf # 0
*!* ELSE
*!* SELECT (this.ct_grid_search1.cnumecursor)
*!* SCATTER NAME loStg
*!* SELECT crsTransf
*!* REPLACE ALL id_gestin WITH id_gestout
*!* REPLACE ALL id_responsabil WITH loStg.id_responsabil, nresp WITH loStg.nresp FOR cante <> 0
*!* ENDIF
*!* REPLACE ALL id_gestiune WITH id_gestin,nume_gestiune WITH gestin FOR &lcCantTransf <> 0
*!* REPLACE ALL id_gestiune WITH id_gestout, nume_gestiune WITH gestout FOR &lcCant <> 0
*!*
*!* SELECT rul_temp
*!* APPEND FROM DBF('crsTransf')
*!* IF USED('crsTransf')
*!* USE IN crsTransf
*!* ENDIF
*!*
*!* lcSel = [SELECT id_gestiune from ] + gcs + [.vnom_gestiuni WHERE nr_pag = 6]
*!* lcCursor = 'crsIdVanzare'
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
*!* IF lnSucces < 0
*!* MESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* ENDIF
*!*
*!* IF lnSucces > 0
*!* UPDATE rul_temp SET pretv = 0, tvav = 0, proc_tvav = 0 WHERE id_gestiune NOT in (select id_gestiune from crsIdVanzare)
*!* USE IN crsIdVanzare
*!* ENDIF
*!* ELSE
*!* SELECT rul_temp
*!* APPEND FROM DBF(lcSelRul)
*!* ENDIF
*!* IF INLIST(oset.model, 5, 6) AND USED('crsTransfer') && TRANSFER, RETUR TRANSFER
*!* SELECT rul_temp
*!* APPEND FROM DBF('crsTransfer')
*!* ENDIF
*!* SELECT rul_temp
*!* APPEND FROM DBF(lcSelRul)
*!* modificare 20.04.2007 & 04.05.2007 & 09.05.2007
Do Case
Case Inlist(oSet.id_set,61,62,63,226,258,260) && modificare ROAGEST v 2.0.188 : am sters 261
Select ACTACTAN
If oSet.cursval
Calculate Sum(suma) To pnBazaValProd For Alltrim(scc)= '345'
Calculate Sum(suma) To pnBazaVal341 For Alltrim(scc)= '341'
Calculate Sum(suma) To pnBazaVal346 For Alltrim(scc)= '346'
Calculate Sum(suma) To pnBazaValAmb For Alltrim(scc) = '381'
pnBazaVProd = pnBazaValProd
pnBazaVAmb = pnBazaValAmb
pnBazaV341 = pnBazaVal341
pnBazaV346 = pnBazaVal346
Else
Calculate Sum(suma) To pnBazaVProd For Alltrim(scc)= '345'
Calculate Sum(suma) To pnBazaVAmb For Alltrim(scc) = '381'
Calculate Sum(suma) To pnBazaV341 For Alltrim(scc)= '341'
Calculate Sum(suma) To pnBazaV346 For Alltrim(scc)= '346'
Endif
Replace suma With suma - pnBazaVProd - pnBazaVAmb - pnBazaV341 - pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '707'
*!* 19.01.2015: 701-> 7015
*!* Replace suma With pnBazaVProd + pnBazaV341 + pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '701'
Replace suma With pnBazaVProd + pnBazaV341 + pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '7015'
*!* 19.01.2015: 701-> 7015 ^
Replace SCD With '711',suma With pnBazaVProd For Alltrim(SCD) = '607' And Alltrim(scc) = '345'
Replace SCD With '711',suma With pnBazaV341 For Alltrim(SCD) = '607' And Alltrim(scc) = '341'
Replace SCD With '711',suma With pnBazaV346 For Alltrim(SCD) = '607' And Alltrim(scc) = '346'
Replace scc With '348' For Inlist(Alltrim(SCD),'341','345','346') And Alltrim(scc) = '378'
Replace SCD With '348',scc With '711' For Alltrim(SCD) = '378' And Inlist(Alltrim(scc),'341','345','346')
Replace suma With pnBazaVAmb For Alltrim(SCD) = '4111' And Alltrim(scc) = '708'
Replace SCD With '608' For Alltrim(SCD) = '607' And Alltrim(scc) = '381'
Replace scc With '388' For Alltrim(SCD) = '381' And Alltrim(scc) = '378'
Replace SCD With '388' For Alltrim(SCD) = '378' And Alltrim(scc) = '381'
Delete For suma = 0
Case Inlist(oSet.id_set,79,83,206,225)
Select ACTACTAN
Replace scc With '711' For Alltrim(SCD) = '348'
*!* modificare 22.05.2007
Case oSet.id_set = 218 && diferenta de pret
Select (lcSelRul)
Replace All pretv With 0,tvav With 0,proc_tvav With 0,procent With 0
Select ACTACTAN
Replace id_gestin With 0,gestin With '' For nr_nota = 2
*!* Replace id_gestin With id_gestout, gestin With gestout,id_gestout With 0,gestout With '',scc WITH '711' For nr_nota = 4
*!* Replace scc WITH '711' For nr_nota = 4
Replace SCD With '348' For nr_nota = 2 And SCD <> '381'
Replace SCD With '388' For nr_nota = 2 And SCD = '381'
Replace scc With '388' For nr_nota = 1 And SCD = '381'
*!* modificare 22.05.2007 ^
Case Inlist(oSet.id_set,53,213,57,58)
Select ACTACTAN
Replace SCD With '607' For scc = '371'
Replace SCD With '711' For scc = '345' && modificare 03.10.2007
Case Inlist(oSet.id_set, 230, 232, 233, 235,243,244,261,262,270) && protocol, sponsorizare
Select ACTACTAN
Replace suma With suma * (-1) For nr_nota = 1
*!* modificare v 2.2.29
IF INLIST(oSet.id_set, 232, 235, 244, 262)
Replace proc_tva WITH 0 FOR nr_nota = 1
Endif
*!* modificare v 2.2.29 ^
Endcase
*!* modificare ^
&& ordonez notele contabile in ACTACTANSELECT actactan
Select ACTACTAN
Sum suma To lnSume
If lnSume <> 0
lcCondDele = [!(suma = 0 and !(((left(scd,1) = '3' and left(scc,2) = '40') OR (left(scd,2) = '41' and left(scc,1) = '7')) AND proc_tva # 1))]
Else
*!* modificare ROAGEST v 2.0.55
*!* lcCondDele = [suma = 0 AND nr_nota = 1 ]
lcCondDele = [(suma = 0 and nr_nota = 1) or suma <> 0]
*!* modificare ROAGEST v 2.0.55 ^
Endif
*!* 19.02.2010
*!* 230,232,233,235 = protocol, sponsorizare
*!* 264,265 = finalizare aprovizionare - are o nota nimic = 401 cu suma 0 care trebuie sa ramana pentru numele furnizorului
Select * From ACTACTAN Into Cursor crsActActan Where &lcCondDele Or Inlist(id_set, 89, 210, 211, 212, 230, 232, 233, 235,261,264,265) Order By nr_nota NOFILTER Readwrite
*!* 19.02.2010 ^
Select ACTACTAN
Delete From ACTACTAN
Append From Dbf('crsactactan')
If Used('crsactactan')
Use In crsActActan
Endif
*** && completare analitice
*!* 2.0.85
*!* sterg analiticele puse datorita lui X = 378 si X = 4428 (X este de la gestiunea destinatie, nu sursa)
If Inlist(oSet.id_set, 255, 256) && retur de la gestiune valorica - mf pa *
Replace All ascd With "" For Inlist(Alltrim(scc), '378', '4428')
Endif
*!* 2.0.85 ^
Select ACTACTAN
Scan For Empty(Nvl(ascd,''))
Scatter Name loActactan
If Type('loActactan.cont') = 'U'
x = AddProperty(loActactan,'cont',loActactan.SCD)
Endif
If oSet.model = 2 And Type('loActactan.id_gestiune') = 'U' And !Inlist(oSet.id_set,215,216,237,257) && NIR, fara intrare din gestiune valorica
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestin)
Endif
If (Inlist(oSet.model, 3, 4) Or Inlist(oSet.id_set,215,216,237,257)) And Type('loActactan.id_gestiune') = 'U' && BON, RETUR, intrare din gestiune valorica
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestout)
Endif
loActactan.ascd = This.assign_analitic(loActactan.SCD,This.cobj,'loActactan')
Replace ascd With loActactan.ascd
Select ACTACTAN
Endscan
Select ACTACTAN
Scan For Empty(Nvl(ascc,''))
Scatter Name loActactan
If Type('loActactan.cont') = 'U'
x = AddProperty(loActactan,'cont',loActactan.scc)
Endif
If oSet.model = 2 And Type('loActactan.id_gestiune') = 'U' And !Inlist(oSet.id_set,215,216,237,257) && NIR, fara intrare din gestiune valorica
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestin)
Endif
If (Inlist(oSet.model, 3, 4) Or Inlist(oSet.id_set,215,216,237,257)) And Type('loActactan.id_gestiune') = 'U' && BON, RETUR, intrare din gestiune valorica
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestout)
Endif
loActactan.ascc = This.assign_analitic(loActactan.scc,This.cobj,'loActactan')
Replace ascc With loActactan.ascc
Select ACTACTAN
Endscan
**********************************************
* OBIECTE DE INVENTAR IN FOLOSINTA
Use In (SELECT('RUL_TEMP_OBINV'))
**********************************************
DO CASE
CASE oSet.id_set = 55
* DARE IN FOLOSINTA 8039 cu inregistrarea cheltuielii 603 = 303
* Mut inregistrarea cant<>0 in rul_temp_obinv
* id_set = 55 dare in folosinta cu schimbarea contului in 8039
* schimb contul in 8039
Update rul_temp Set Cont = gcContObinv, acont = '', serie = serie_obinv Where cant <> 0
CASE oSet.id_set = 273
* DARE IN FOLOSINTA 303 fara inregistrarea cheltuielii 303 = 303
* Nu schimb contul
Select * From rul_temp Where cant <> 0 And !Deleted() Into Cursor RUL_TEMP_OBINV NOFILTER Readwrite
UPDATE rul_temp_obinv SET serie = serie_obinv
Delete all FOR cant<>0 IN rul_temp
CASE INLIST(oset.id_set, 70,71,89,104,210,211,212,274)
* casare 70, retur din folosinta 71, 89 transfer intre persoane, 104 imputare, 210-212 transfer persoane-magazie, 274 = inregistrare cheltuiala ob inv in fol.
* operatii cu ob. inv. in folosinta nu mai tin seama de contul 8039, intrucat pot fi ob inv in folos si cu contul 303 (id_Set = 274)
Select * From rul_temp Where !Deleted() Into Cursor RUL_TEMP_OBINV NOFILTER Readwrite
IF oset.id_set = 71
* 71 retur din folosinta, trebuie sa existe iesirea si in rul_temp, ca sa reintre in stoc
Delete all FOR Left(Cont,2) = '80' IN rul_temp
Delete all FOR Left(Cont,2) <> '80' IN rul_temp_obinv
ELSE
Delete all IN rul_temp
ENDIF
ENDCASE
IF !USED('RUL_TEMP_OBINV')
Select * From rul_temp Where Left(Cont,2) = '80' And !Deleted() Into Cursor RUL_TEMP_OBINV NOFILTER Readwrite
Delete all FOR Left(Cont,2) = '80' IN rul_temp
ELSE
Select * From rul_temp Where Left(Cont,2) = '80' And !Deleted() Into Cursor RUL_TEMP_OBINV2 NOFILTER Readwrite
Delete all FOR Left(Cont,2) = '80' IN rul_temp
SELECT rul_temp_obinv
APPEND FROM DBF('rul_temp_obinv2')
USE IN (SELECT('rul_temp_obinv2'))
ENDIF
**********************************************
If gnCMP = 1 And oSet.model = 2 && NIR
Thisform.analiza_cmp('rul_temp', 'actactan')
*!* modificare 24.11.2006
Else
If Inlist(oSet.id_set, 215,216,236,237,238,239,240,241,242,255,256,257,259,260) && intrare din gestiune valorica, retur din gestiune valorica
Replace All id_tip_rulaj With oSet.id_tip_rul
Else
Select rul_temp
Replace id_tip_rulaj With oSet.id_tip_rul For id_tip_rulaj = 0
*!* modificare 24.11.2006 ^
ENDIF
IF INLIST(oSet.id_set, 55,89,210,211,212,273,274) && obiecte inventar in folosinta
SELECT rul_temp_obinv
Replace All id_tip_rulaj With oSet.id_tip_rul
ENDIF
Endif
If Type('loActactan') = 'O'
Release loActactan
Endif
Do Case
*!* modificare ROAFACTURARE v 2.0.96
CASE oSet.id_set = 267 && EDITURA EDUARD AVIZ RETUR MARFA DIN CUSTODIE VALORIC
Select rul_temp
Replace All id_tip_rulaj With oSet.id_tip_rul
* Atentie! pot fi mai multe randuri tva vanzare si marfa custodie (357) datorita impartirii pe gestiuni, sectii
* TVA discount este calculat pe total, nu pe gestiuni, sectii. Trebuie sa il pun doar pe prima linie
* nr_nota = 1 357 = 371 pot fi de asemenea mai multe randuri datorita impartirii pe gestiuni, sectii
* nu trebuie sa pun suma totala pe toate randurile nr_nota = 1, ci doar pe o singura nota
SELECT actactan
*!* replace suma WITH suma+pnTvaDiscV FOR INLIST(nr_nota,4,6) && adun tva discount la tva vanzare (-)
LOCATE FOR nr_nota = 4
IF FOUND()
replace suma WITH suma+pnTvaDiscV && adun tva discount la tva vanzare (-) doar pe primul rand 4
ENDIF
LOCATE FOR nr_nota = 6
IF FOUND()
replace suma WITH suma+pnTvaDiscV && adun tva discount la tva vanzare (-) doar pe primul rand 6
ENDIF
CALCULATE SUM(suma) FOR INLIST(nr_nota,2,3,4) TO lnSumaCont357 && valoarea marfa custodie (357) = marfa la pret de achizitie (2) + adaos (3) + tva (4)
CALCULATE SUM(suma) FOR nr_nota = 1 TO lnSumaCont357b && valoare bon pret achizitie
LOCATE FOR nr_nota = 1 && completez pe primul rand nr_nota = 1 cu diferenta dintre valoare 357 si valoarea bon de pe toate randurile nr_nota = 1
IF FOUND()
replace suma WITH suma + (lnSumaCont357 - m.lnSumaCont357b)
ENDIF
*!* modificare ROAFACTURARE v 2.0.96 ^
Case oSet.id_set=69
*!* modificare 07.03.2006 && 24.02.2007
Select ACTACTAN
Calculate Max(proc_tva) To lnMaxProcTva
Calculate Min(id_jtva_coloana) For proc_tva = lnMaxProcTva To lnIdJtvaColoana
Scan For Left(SCD,3)='411' Or Left(scc,3)='411'
If proc_tva=0
Replace proc_tva With lnMaxProcTva,id_jtva_coloana With lnIdJtvaColoana
Endif
Endscan
*!* sfarsit modificare 07.03.2006
Case oSet.id_set = 213
*!* modificare 12.02.2007 (bon de consum pe lucrari in curs de executie la Materii prime si materiale)
Select rul_temp
Replace All pretv With Round(Pret,gnPPretV) && modificare 14.09.2007
*!* modificare 12.02.2007 ^
*!* modificare v 2.0.6
Case Inlist(oSet.id_set,215,216,257)
Select (lcSelRul)
Replace All id_gestiunec With poAct.id_gestout,id_gestout With poAct.id_gestout,gestout With poAct.gestout
Select ACTACTAN
Replace All id_gestout With poAct.id_gestout,gestout With poAct.gestout
*!* modificare v 2.0.6 ^
Case Inlist(oSet.id_set, 240, 242,256) && Retur din transfer de la gestiune valorica (cantitativ) la pret de vanzare - aviz expeditie
&& e facut ca un nir cu cante < 0 in depozit, adaug inca o inregistrare cu cant < 0 de la magazin
Select * From rul_temp Into Cursor cReturTemp Readwrite
Select cReturTemp
Scan
Scatter Name poRec
Replace cant With poRec.cante, cante With 0, id_gestiune With poRec.id_gestiunec, id_gestiunec With poRec.id_gestiune
poRec.id_gestiune = cReturTemp.id_gestiune
poRec.id_gestiunec = cReturTemp.id_gestiunec
poRec.acont = Thisform.assign_analitic(poRec.Cont,Thisform.cobj,'poRec')
Replace acont With poRec.acont
Endscan
Select rul_temp
Append From Dbf('cReturTemp')
Use In (Select('cReturTemp'))
*!* modificare ROAGEST v 2.0.56
Case oSet.id_set = 229
Select rul_temp
Replace id_part_rez With poAct.vid_part_rez,id_lucrare_rez With poAct.id_lucrare For cant <> 0
* Nu mai sterg id_part_rez din iesire, pentru ca daca fac un transfer pe un alt client/inapoi in depozit,
* de pe un articol deja rezervat, se sterge id_part_rez de pe linia originala si nu se mai imperecheaza in stoc
* Replace id_part_rez With Null,id_lucrare_rez With Null For cante <> 0
*!* modificare ROAGEST v 2.0.56 ^
*!* 19.02.2010
*!* 3xx = 401 => 3xx = 32x
Case Alltrim(Upper(oSet.explicatia)) = 'FINALIZARE APROVIZIONARE'
Select ACTACTAN
Scan For Left(SCD,1) = '3' And Alltrim(scc) = '401'
lcContD = Alltrim(SCD)
Select crsconfigcvc
Locate For Alltrim(Cont) = m.lcContD And !Empty(Nvl(cont_aprovizionare, ''))
If Found()
lcContC = Alltrim(cont_aprovizionare)
Replace scc With m.lcContC In ACTACTAN
Endif
Endscan && actactan
*!* 19.02.2010 ^
Endcase
Select rul_temp
Locate For Empty(id_gestiune)
If Found()
amessagebox('Nu ati ales gestiunea!',48,"Atentie")
Return .F.
Endif
Select RUL_TEMP_OBINV
Locate For Empty(id_gestiune)
If Found()
amessagebox('Nu ati ales gestiunea!',48,"Atentie")
Return .F.
Endif
If oSet.productie
If Alltrim(Upper(oSet.formproduc))='FRM_ALEGE_PROD_CANT'
Select a.*, Recno() As ninreg ;
FROM ACTACTAN a ;
WHERE Substr(scc,1,1)='3' And !INLIST(Alltrim(scc), '301', '341', '345') ;
INTO Cursor cModificari
Select cModificari
Scan
Scatter Name loLinie
lcSCC = Alltrim(scc)
lnInreg = ninreg
Select ACTACTAN
Replace scc With lcSCC, SCD With '301' For Recno() = lnInreg
Append Blank
loLinie.SCD = '601'
loLinie.scc = '301'
Gather Name loLinie
Select cModificari
Endscan
If Used('cModificari')
Use In cModificari
Endif
Endif
Endif
*!* v 2.0.23 diferente baza, tva la NIR
*!* daca sunt diferente intre valoarea calculata si valoarea de pe factura inregistrez diferentele
If oSet.model = 2 && NIR
loRec = Null
lnDiferentaValftva = Thisform.nfTotftva - This.ct_factura1.totftva
lnDiferentaValTva = Thisform.nfTottva - This.ct_factura1.tva
If lnDiferentaValftva <> 0 And Thisform.nfTotftva <> 0
Select ACTACTAN
Locate For Left(scc,2) = '40'
If Found()
Scatter Name loRec
loRec.suma = lnDiferentaValftva
loRec.explicatia5 = 'Diferente calcul Valoare fara TVA'
*!* modificare ROAGEST v 2.0.101 : "ALTE CHELTUIELI DE EXPLOATARE"
* Las cont debit = contul original, nu cu 6588 daca nu eset configurare
IF .F.
Select crsconfigcvc
Locate For Cont = Upper(Alltrim(loRec.scd)) && 301, 302...
If Found() AND !Empty(NVL(cont_diferente, ''))
loRec.scd = Alltrim(cont_diferente)
ELSE
loRec.SCD='6588'
ENDIF
loRec.ascd=''
ENDIF
*!* modificare ROAGEST v 2.0.101 ^
Insert Into ACTACTAN From Name loRec
Release loRec
Else
amessagebox('Nu s-a gasit nici o inregistrare x = 40x pentru distribuirea diferentei la valoarea fara tva',0+48,'Diferente')
Endif
Endif
If lnDiferentaValTva <> 0 And Thisform.nfTottva <> 0
Select ACTACTAN
Locate For Inlist(SCD, '4426', '4428')
If Found()
Scatter Name loRec
loRec.suma = lnDiferentaValTva
loRec.explicatia5 = 'Diferente calcul TVA'
Insert Into ACTACTAN From Name loRec
Release loRec
Else
amessagebox('Nu s-a gasit nici o inregistrare x = 4426/4428 pentru distribuirea diferentei la valoarea tva',0+48,'Diferente')
Endif
Endif
Endif
*!* v 2.0.23 ^
Do completare_parteneri_gestiune In ointroduceri.prg
Do completare_gruputil_analitice In oproceduri_comune.prg
Do completare_tva_analitice In oproceduri_comune.prg
* Achizitii din CE, modific 4426 = 401 in 4426 = 4427
Select ACTACTAN
Replace All scc With '4427', ascc WITH '', id_partc WITH 0, partc WITH '' For scd = '4426' AND LEFT(scc,1) = '4' AND IsJCJtvaCE(id_jtva_coloana) IN ACTACTAN
Select ACTACTAN
*!* modificare ROAGEST v 2.2.0
If Thisform.ntvaincasare = 1
Replace All scc With '4428',ascc WITH '' For Inlist(id_jtva_coloana,22,24,26,30,32,38,42) And scc = '4427'
Replace All scd With '4428',ascd WITH '' For Inlist(id_jtva_coloana,171,173,175,179,189,211,215) And scd = '4426'
If Upper(Alltrim(Nvl(oSet.tipJurnal, ''))) = 'JC' && FURNIZORI / PASIV
lcSCTrez = 'scc'
lcSCTVA = 'scd'
Else
lcSCTrez = 'scd'
lcSCTVA = 'scc'
ENDIF
*!* 15.04.2013 - dupa ce puneam la loc 4428, ramanea cu analiticele de pe 4426 sau 4427
Do completare_gruputil_analitice In oproceduri_comune.prg
Do completare_tva_analitice In oproceduri_comune.prg
*!* ^15.04.2013
*** caut linia cu PLATA 401 = 5XX / INCASAREA 5XX = 411
Select actactan
Locate For Inlist(Alltrim(&lcSCTrez),'5121','5124','5311','5314', '542') && scc = '5xx' / scd = '5xx'
If Found()
*lnNrChitanta = evaluate(Thisform.cobj + [.nrchitanta])
lnNrChitanta = IIF(Type(Thisform.cobj +[.nrchitanta])<>'U',Evaluate(Thisform.cobj +[.nrchitanta]),Evaluate(Thisform.cobj +[.nract]))
lnIdFdoc = IIF(Type(Thisform.cobj+[.id_fdoc2])<>'U',Evaluate(Thisform.cobj+[.id_fdoc2]),Evaluate(Thisform.cobj+[.id_fdoc]))
lcFdoc = IIF(Type(Thisform.cobj+[.fdocpl])<>'U',Evaluate(Thisform.cobj+[.fdocpl]),Evaluate(Thisform.cobj+[.fdoc]))
Insert Into actactan(nr_nota,luna,an,nract,scd,ascc,scc,;
suma,suma_val,pereched,perechec,explicatia4,explicatia5,Curs,id_util,;
id_responsabil,nresp,id_venchelt,dst_chlt,id_lucrare,nrord,;
id_ctr,contract,id_sectie,sectie,proc_tva,id_set,id_fact,;
id_factd,id_factc,id_partd,partd,id_partc,partc,;
id_sucursala,sucursala,id_fdoc,fdoc,id_gestin,id_jtva_coloana,taxcode,;
gestin,id_gestout,gestout,id_valuta,nume_val,dataact,dataireg);
Select a.nr_nota, a.luna, a.an, lnNrChitanta As nract,'4426' As scd,a.ascd As ascc,'4428' As scc,;
a.suma, a.suma_val,a.nract As pereched,a.perechec,a.explicatia4,a.explicatia5,a.Curs,a.id_util,;
a.id_responsabil,a.nresp,a.id_venchelt,a.dst_chlt,a.id_lucrare,a.nrord,;
a.id_ctr,a.contract,a.id_sectie,a.sectie,a.proc_tva,a.id_set,-5 As id_fact,;
0 As id_factd,0 As id_factc,0 As id_partd,'' As partd, 0 As id_partc, '' As partc,;
a.id_sucursala,a.sucursala,;
lnIdFdoc as id_fdoc, lcFdoc as fdoc,;
0 As id_gestin,;
c.id_tva As id_jtva_coloana,;
CAST(GetTaxCode(m.gnAn, m.gnLuna, a.dataact, c.id_tva) as N(6) NULL) as taxcode,;
'' As gestin,0 As id_gestout,'' As gestout,a.id_valuta,a.nume_val,a.dataact,a.dataireg ;
FROM actactan a ;
Left Join jtva_coloane b On a.id_jtva_coloana = b.id_tva ;
left Join jtva_coloane c On b.id_jtva_ex = c.id_jtva_coloana ;
Where a.scd = '4428' And Like('4*',a.scc) And !Isnull(b.id_jtva_ex)
Insert Into actactan(nr_nota,luna,an,nract,scc,ascd,scd,;
suma,suma_val,pereched,perechec,explicatia4,explicatia5,Curs,id_util,;
id_responsabil,nresp,id_venchelt,dst_chlt,id_lucrare,nrord,;
id_ctr,contract,id_sectie,sectie,proc_tva,id_set,id_fact,;
id_factd,id_factc,id_partd,partd,id_partc,partc,;
id_sucursala,sucursala,id_fdoc,fdoc,id_gestin,id_jtva_coloana,taxcode,;
gestin,id_gestout,gestout,id_valuta,nume_val,dataact,dataireg);
Select a.nr_nota, a.luna, a.an, lnNrChitanta As nract,'4427' As scc,a.ascc As ascd,'4428' As scd,;
a.suma, a.suma_val, a.pereched,a.nract As perechec,a.explicatia4,a.explicatia5,a.Curs,a.id_util,;
a.id_responsabil,a.nresp,a.id_venchelt,a.dst_chlt,a.id_lucrare,a.nrord,;
a.id_ctr,a.contract,a.id_sectie,a.sectie,a.proc_tva,a.id_set,-5 As id_fact,;
0 As id_factd,0 As id_factc,0 As id_partd,'' As partd, 0 As id_partc, '' As partc,;
a.id_sucursala,a.sucursala,;
lnIdFdoc as id_fdoc, lcFdoc as fdoc,;
0 As id_gestin,;
c.id_tva As id_jtva_coloana,;
CAST(GetTaxCode(m.gnAn, m.gnLuna, a.dataact, c.id_tva) as N(6) NULL) as taxcode,;
'' As gestin,0 As id_gestout,'' As gestout,a.id_valuta,a.nume_val,a.dataact,a.dataireg ;
FROM actactan a ;
Left Join jtva_coloane b On a.id_jtva_coloana = b.id_tva ;
left Join jtva_coloane c On b.id_jtva_ex = c.id_jtva_coloana ;
Where a.scc = '4428' And Like('4*',a.scd) And !Isnull(b.id_jtva_ex)
Endif
Endif
*!* modificare ROAGEST v 2.2.0 ^
DO completare_taxname IN oproceduri_comune.prg
DO completare_paymentname IN oproceduri_comune.prg
DO completare_explicatie_tva IN oproceduri_comune.prg
Go TOP IN actactan
***** articolele negestionabile nu intra in stoc 2009.02.17
Delete From (lcSelRul) Where in_stoc = 0
***** 2009.02.17 ^
Return .T.
ENDPROC
PROCEDURE intrare_produs
Select rul_temp
Append Blank
Replace id_articol With m.pnId_articol, ;
denumire With m.pcDenumire, ;
cant With m.pnCant, ;
lot WITH m.pcLot, ;
serie WITH m.pcSerie, ;
pret With ROUND(Thisform.ntotal/pnCant,gnPPret), ;
id_gestiune With pnId_gestiune, nume_gestiune With pcGestiune, ;
id_gestin With pnId_gestiune, gestout With pcGestiune, ;
cont With pcCont_articol, ;
nnir With poact.nnir, ;
dataact With poact.dataact, ;
datain With poact.dataact, ;
id_set With poact.id_set, ;
in_stoc WITH pnInStoc,;
in_crm WITH pnInCrm ;
um WITH pcUm ;
nract WITH poAct.nract
*!* modificare ROAPRODUCTIE v 2.0.2 : am adaugat ce este sub id_set
*!* proc_tva ?
ENDPROC
PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcCtrGrid, lcCtrCriteriu, lcControl
lcCtrGrid = []
lcCtrCriteriu = []
lcControl = UPPER(THIS.ACTIVECONTROL.NAME)
IF lcControl = '_GRID1'
lcCtrGrid = UPPER(THIS.ACTIVECONTROL.COMMENT)
ENDIF
IF lcControl = 'CRITERIU'
lcCtrCriteriu = UPPER(THIS.ACTIVECONTROL.COMMENT)
ENDIF
DO CASE
CASE nKeyCode = 13 AND 'GRD_ST' $ lcCtrGrid
NODEFAULT
THISFORM.urmator1.comMAND1.SETFOCUS
CASE nKeyCode = 13 AND 'GRD_DR' $ lcCtrGrid
NODEFAULT
THISFORM.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
CASE (nKeyCode >=33 AND nKeyCode <=122) AND ('CRITERIU_ST' $ lcCtrCriteriu OR 'GRD_ST' $ lcCtrGrid)
NODEFAULT
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE = ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE) + CHR(nKeyCode)
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode = 127) AND ('CRITERIU_ST' $ lcCtrCriteriu OR 'GRD_ST' $ lcCtrGrid) && backspace
NODEFAULT
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE = LEFT(ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE),LEN(ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE))-1)
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode >=33 AND nKeyCode <=122) AND ('CRITERIU_DR' $ lcCtrCriteriu OR 'GRD_DR' $ lcCtrGrid)
NODEFAULT
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE = ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE) + CHR(nKeyCode)
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode = 127) AND ('CRITERIU_DR' $ lcCtrCriteriu OR 'GRD_DR' $ lcCtrGrid) && backspace
NODEFAULT
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE = LEFT(ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE),LEN(ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE))-1)
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE INLIST(nKeyCode, 13, 9, 4, 24) AND '_CBBASE1'$lcControl
NODEFAULT
thisform.ct_grid_search1.cb_tx_cautare1.text.SetFocus
OTHERWISE
DODEFAULT(nKeyCode, nShiftAltCtrl)
ENDCASE
ENDPROC
PROCEDURE modificare_lista_preturi
Lparameters tnIdPol, tnIdArticol, tnPretftvaLista, tnPretvtvaLista, tnPretLista, tnProcTvav, tnPretListaVechi
&& tnPretListaVechi - apare doar la operatiile de retur
&& la NIR se modifica automat pretul de lista
If Type('tnPretListaVechi') = 'N' and Nvl(tnIdPol,0) <> 0
If aMessagebox(Alltrim(OSTG.denumire)+" are pretul " + ;
Alltrim(Str(tnPretListaVechi,16, gnPPretV)) + [ in politicile de preturi.] + Alltrim(Str(tnIdPol)) + Chr(13) + Chr(10) + ;
[Doriti sa il schimbati cu ]+Alltrim(Str(tnPretLista,16, gnPPretV))+[?],4+32) <> 6
Return
Endif
Endif
*!* MODIFICARE PRETURI IN LISTA DE PRETURI PENTRU NIR-UL CU MODIFICAREA LISTEI DE PRETURI (ID_SET = 231 NIR MF PV LISTA DE PRETURI)
Local lcSql, lcSelect
lcSelect = Select()
*!* verific daca exista articolul in politica de preturi
lcSql = [Select id_pol_art, id_venchelt, proc_tvav from crm_politici_pret_art where id_pol = ] + Alltrim(Str(tnIdPol)) + [ and id_articol = ] + Alltrim(Str(tnIdArticol))
lnSucces = goExecutor.oExecute(m.lcSql, "cPoliticiPretArt")
If lnSucces < 0
aMessageBox(goExecutor.cEroare,0+16, 'Eroare')
Select (lcSelect)
Return
Endif
Select cPoliticiPretArt
Scatter Name loPoliticaPretArt
Use In (Select('cPoliticiPretArt'))
&& TRANZACTIE MANUALA (MODIFICARE CRM_POLITICI_PRET_ART, CRM_POLITICI_PRETURI)
lnSucces = SQLSetprop(gnHandle,"Transactions",2)
If lnSucces < 0
aMessageBox("Programul nu a trecut pe tranzactie manuala",4+48,'Lista preturi')
Select (lcSelect)
Return
Endif
*!* ADAUGARE ARTICOL NOU IN LISTA DE PRETURI SAU MODIFICARE ARTICOL EXISTENT
If Nvl(loPoliticaPretArt.id_pol_art,0) = 0
lcSql = [begin pack_preturi.adauga_politica_pret_art(] + ;
ALLTRIM(Str(tnIdPol)) + [,] + ; && id_pol
Alltrim(Str(tnIdArticol)) + [,] + ; && id_articol
Alltrim(Str(tnPretLista,20,4)) + [,] + ; && pret
Alltrim(Str(tnPretftvaLista,20,4)) + [,] + ; && pretftva
Alltrim(Str(tnPretvtvaLista ,20,4)) + [,] + ; && pretctva
[NULL, ] + ; && id_valuta
Alltrim(Str(tnProcTvav,20,4)) + [,] + ; && proc_tvav
[NULL, ] + ; && procent
[NULL, ] + ; && id_venchelt
Alltrim(Str(gnIdUtil)) + ; && id_util
[); end;]
Else
lcSql = [begin pack_preturi.modifica_pret_pol_pret_art(] + ;
ALLTRIM(Str(loPoliticaPretArt.id_pol_art)) + [,] + ; && id_pol_art
Alltrim(Str(tnPretLista,20,4)) + [,] + ; && pret
Alltrim(Str(tnPretftvaLista,20,4)) + [,] + ; && pretftva
Alltrim(Str(tnPretvtvaLista ,20,4)) + [,] + ; && pretctva
Iif(Isnull(loPoliticaPretArt.id_venchelt), 'NULL',Alltrim(Str(loPoliticaPretArt.id_venchelt))) + [,] + ; && id_venchelt
Iif(Isnull(loPoliticaPretArt.proc_tvav), 'NULL', Alltrim(Str(loPoliticaPretArt.proc_tvav,20,4))) + ; && proc_tvav
[); end;]
Endif && Nvl(lnIdPolArt,0) = 0
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
aMessageBox(goExecutor.cEroare,0+16, 'Eroare')
Else
*!* MODIFICARE DATAORA, UTIL in CRM_POLITICI_PRETURI
lcSql = [begin pack_preturi.modifica_politica_dataora(] + ;
ALLTRIM(Str(tnIdPol)) + [,] + ; && id_pol
Alltrim(Str(gnIdUtil)) + ; && id_util
[); end;]
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
aMessageBox(goExecutor.cEroare,0+16, 'Eroare')
Endif
Endif
*!* COMMIT / ROLLBACK
If lnSucces > 0
lnSucces = goExecutor.oExecute("COMMIT")
If lnSucces < 0
aMessageBox(goExecutor.cEroare,0+16, 'Eroare')
Endif
Else
lnSucces = goExecutor.oExecute("ROLLBACK")
If lnSucces < 0
aMessageBox(goExecutor.cEroare,0+16, 'Eroare')
Endif
Endif
SQLSetprop(gnHandle,"Transactions",1)
Select (lcSelect)
ENDPROC
PROCEDURE Release
lcSelRul = this.ct_grid_order1.cnumecursor
lcSelSt = this.ct_grid_search1.cnumecursor
IF USED(lcSelRul)
USE IN (lcSelRul)
ENDIF
IF USED(lcSelSt)
USE IN (lcSelSt)
ENDIF
IF USED('crsTransfer')
USE IN crsTransfer
ENDIF
ENDPROC
PROCEDURE Show
*!* 18.08.2017
*!* marius.mutu
*!* Completare tabel dreapta pentru MODIFICARE NIR/BON
Lparameters nStyle
Local lcObj, lcSelRul, lcSql
private pnCod
lcObj = Thisform.cobj
lcSelRul = This.ct_grid_order1.cnumecursor
This.lbTotal.Caption = 'TOTAL ' + This.CTip_frm
This.ct_grid_order1.initializare(.T.)
*!* modificare v 2.1.19 : la bon/factura nu-l las sa ordoneze dupa alte coloane
If oset.model = 3
This.ct_grid_search1.ccoloanepermise = [codmat,denumire,serie,pret]
Endif
*!* modificare v 2.1.19 ^
This.ct_grid_search1.initializare(.T.)
* MODIFICARE NIR/BON
If Pemstatus(This, 'lCorectie', 5) And Pemstatus(This, 'nCod', 5) And Type('this.nCod') = 'N' And This.lCorectie And This.nCod > 0
pnCod = This.nCod
lcSql = [select * from vrul where cod = ?pnCod]
lnSucces = goExecutor.oExecute(m.lcSql, 'cRulTemp')
IF lnSucces > 0
Select (m.lcSelRul)
Append From Dbf('cRulTemp')
ELSE
AMESSAGEBOX(goExecutor.cEroare,0+48,_screen.Caption)
ENDIF
USE IN (SELECT('cRulTemp'))
ENDIF
This.calcul_sume(lcSelRul)
This.ct_grid_search1.cb_tx_cautare1.SetFocus
*!* modificare v 2.1.34
If Type(Thisform.ct_grid_search1.cnumecursor + ".in_stoc") <> "U"
If oset.model >= 3
Thisform.ct_grid_search1._GRID1.SetAll("DynamicForeColor", "IIF(in_stoc=0,RGB(255,0,0),RGB(0,0,0))", "Column")
Else
Thisform.ct_grid_search1._GRID1.SetAll("DynamicForeColor", "IIF(in_stoc=0,RGB(0,128,128),RGB(0,0,0))", "Column")
Endif
Endif
*!* modificare v 2.1.34 ^
*!* v 2.0.22 diferente de calcul NIR
*!* doar pe nir afisez texboxurile pentru diferente
If oset.model = 2 && NIR
This.ct_factura1.txfTotal.Visible = .T.
This.ct_factura1.txfBaza.Visible = .T.
This.ct_factura1.txfTva.Visible = .T.
Endif
*!* v 2.0.22 ^
If Inlist(poact.id_set, 105, 106)
Thisform.ct_grid_search1.cboListe.Visible = .T.
Thisform.ct_grid_search1.lb_listePreturi.Visible = .T.
Endif
If oxset.cursval
With Thisform.ct_factura2
.lb_valuta.Caption = [(] + &lcObj..nume_val_vanz + [)]
With .lb_curs
.Caption = [Curs ] + Dtoc(&lcObj..v8) + [ : ] + Alltrim(Str(&lcObj..Curs, 14, 4))
.AutoSize = .T.
Endwith
Endwith
Endif
If oset.productie And Inlist(oset.id_set, 26003, 26004) && modificare 17.10.2007
Thisform.container_valoare_decontata1.Visible = .T.
Endif
&& transfer catre gest la pret vz, Intrare din transfer de la gest. valorica la pret de vanz.,
&& protocol, sponsorizare
If Inlist(oset.id_set, 75, 216, 230, 232, 233, 235, 257, 261, 267)
Thisform.lb_totalctva.Visible = .T.
Thisform.tx_totalctva.Visible = .T.
Endif
*!* modificare v 2.2.0
Thisform.nTvaincasare = &lcObj..tva_incasare
*!* modificare v 2.2.0 ^
*!* modificare v 2.2.29
Thisform.omemopref = Createobject("Custom")
AddProperty(Thisform.omemopref, "id_jtva_ach", 0)
AddProperty(Thisform.omemopref, "proc_tva", 0.01)
AddProperty(Thisform.omemopref, "id_jtva_vanz", 0)
AddProperty(Thisform.omemopref, "proc_tvav", 0.01)
*!* modificare v 2.2.29 ^
DoDefault(nStyle)
ENDPROC
PROCEDURE Ct_discount1.Init
*!* 19.10.2017
*!* marius.mutu
*!* s-a tratat cazul in care firma este cu TVA Incasare si trebuie id_jtax neexigibil in loc de exigibil
*!* modificare 2.2.4 : am inlocuit jtva_coloane cu crsjtax
Local lnIdJtva, lnProc_tva, lnproc, loTVA
lnIdJtva = oSet.id_jtax && achizitii int. 19%
loTVA = GeJtvaColoana(m.lnIdJtva, poAct.tva_incasare, NVL(oSet.tipjurnal, 'JC'))
lnIdJtva = loTVA.id_jtva_coloana
Select crsjtax
Locate For id_jtva_coloana = m.lnIdJtva
If !Found()
Go Top
Endif
This.lb_explicatie_tva.Caption = Alltrim(Upper(denumire))
lnProc_tva = (cota_tva + 100) / 100
lnproc = cota_tva
This.pntva = lnProc_tva
This.nid_jtva_coloana = id_jtva_coloana
This.nid_tva = id_tva
This.cotaTva.ListIndex = Recno()
ENDPROC
PROCEDURE Ct_discount1.Refresh
DODEFAULT()
lcSelRul = thisform.ct_grid_order1.cnumecursor
this.Parent.calcul_sume(lcSelRul)
ENDPROC
PROCEDURE Ct_factura1.txfBaza.Valid
thisform.nftotctva = thisform.nftotftva + thisform.nftottva
thisform.ct_factura1.txftotal.Refresh
ENDPROC
PROCEDURE Ct_factura1.txfTva.Valid
thisform.nftotctva = thisform.nftotftva + thisform.nftottva
thisform.ct_factura1.txftotal.Refresh
ENDPROC
PROCEDURE Ct_grid_order1.Cb_tx_gestin._CBBASE1.LostFocus
SELECT nom_gestiuni
pcobj.id_gestin = id_GESTiune
pcobj.gestin = nume_gestiune
pcObj.cgest = cgest
pcobj.id_GESTiune = id_GESTiune
pcobj.nume_gestiune = nume_gestiune
ENDPROC
PROCEDURE Ct_grid_search1.actualizeaza_grid
*!* 12.06.2017
*!* marius.mutu
*!* am pus conditii suplimentare la dynamicbackcolor sa nu mai dea invalid expression, sper
*!* modificare ROAGEST v 2.1.19
Lparameters pcFiltru
DoDefault(pcFiltru)
If oSet.model = 3
poLog.Log('recordsource/tooltiptext inainte de This._GRID1.salveaza_grid() ' + ALLTRIM(TRANSFORM(this._griD1.RecordSource)) + '/' + ALLTRIM(TRANSFORM(This._grid1.ToolTipText)), PROGRAM())
This._GRID1.salveaza_grid()
poLog.Log('recordsource/tooltiptext dupa This._GRID1.salveaza_grid() ' + ALLTRIM(TRANSFORM(this._griD1.RecordSource)) + '/' + ALLTRIM(TRANSFORM(This._grid1.ToolTipText)), PROGRAM())
lcCursor1 = Thisform.ct_grid_search1.cnumecursor
lcCursor2 = Thisform.ct_grid_order1.cnumecursor
lcCursor3 = [crsTempCurent]
copiaza_structura_cursor(lcCursor1,lcCursor3)
Insert Into (lcCursor3) Select * From (lcCursor1)
If Used(lcCursor1)
Use In (lcCursor1)
Endif
If !Inlist(gnTipGest , 6,7)
Select a.*,a.cantitate-Nvl(b.cantitate,0) As stoc_actual From (lcCursor3) a ;
Left Join (Select Sum(cante) As cantitate, id_articol, Nvl(serie,'') As serie,Pret,id_gestout ;
From (lcCursor2) ;
WITH (Buffering = .T.) Group By id_gestout,id_articol,serie,Pret) b On a.id_articol = b.id_articol ;
And a.Pret = b.Pret ;
AND a.id_gestiune = b.id_gestout ;
And Nvl(a.serie,'') = Nvl(b.serie,'') ;
Into Cursor (lcCursor1) Readwrite
Else
Select a.*,a.cantitate-Nvl(b.cantitate,0) As stoc_actual From (lcCursor3) a ;
Left Join (Select Sum(cante) As cantitate, id_articol, Nvl(serie,'') As serie,Pret,pretv,id_gestout ;
From (lcCursor2) ;
WITH (Buffering = .T.) Group By id_gestout,id_articol,serie,Pret,pretv) b On a.id_articol = b.id_articol ;
And a.Pret = b.Pret ;
AND a.id_gestiune = b.id_gestout ;
And Nvl(a.serie,'') = Nvl(b.serie,'') ;
and a.pretv = b.pretv ;
Into Cursor (lcCursor1) Readwrite
Endif
If Used(lcCursor3)
Use In (lcCursor3)
ENDIF
poLog.Log('recordsource/tooltiptext inainte de This._GRID1.incarca_grid() ' + ALLTRIM(TRANSFORM(this._griD1.RecordSource)) + '/' + ALLTRIM(TRANSFORM(This._grid1.ToolTipText)), PROGRAM())
This._GRID1.incarca_grid()
poLog.Log('recordsource/tooltiptext dupa This._GRID1.incarca_grid() ' + ALLTRIM(TRANSFORM(this._griD1.RecordSource)) + '/' + ALLTRIM(TRANSFORM(This._grid1.ToolTipText)), PROGRAM())
*!* modificare ROAGEST v 2.1.19
*!* If oSet.model = 3
This._GRID1.SetAll("DynamicBackColor","IIF(USED('" + m.lcCursor1 + "') and TYPE('" + + m.lcCursor1 + ".stoc_actual') = 'N' and " + m.lcCursor1 + ".stoc_actual=0,RGB(128,128,128),RGB(255,255,255))","Column")
*!* Endif
*!* modificare ROAGEST v 2.1.19 ^
Endif
*!* modificare ROAGEST v 2.1.19 ^
ENDPROC
PROCEDURE Ct_grid_search1.cboListe.Init
IF INLIST(poact.id_set,105,106)
SELECT cListePret
LOCATE FOR id_pol = poact.id_pol
this.Value = cListePret.nume_lista_preturi
this.Refresh
ENDIF
ENDPROC
PROCEDURE Ct_grid_search1.cboListe.Valid
pnId_lista = cListePret.id_pol
SELECT cListePret
pcobj.id_pol = cListePret.id_pol
thisform.ct_GRID_SEARCH1.initializare(.T.)
thisform.ct_grid_search1.cb_tx_cautare1.text.SetFocus
ENDPROC
PROCEDURE Ct_grid_search1.Cb_tx_gestout._CBBASE1.Valid
Select nom_gestiuni
pcobj.id_gestout = id_GESTiune
pcobj.gestout = nume_gestiune
pcobj.cgest = cgest
pcobj.id_GESTiune = id_GESTiune
pcobj.nume_gestiune = nume_gestiune
Thisform.ct_GRID_SEARCH1.initializare(.T.,.T.)
*!* modificare ROAGEST v 2.1.33
*!* This.Parent.Parent.cb_tx_cautare1.Text.SetFocus()
Return This.Parent.Parent.cb_tx_cautare1.Text
*!* modificare ROAGEST v 2.1.33 ^
ENDPROC
PROCEDURE Lb_titlu_alb_b121.Init
If Type('oxset.nume_set') # 'U'
This.Caption = Proper(Alltrim(oxset.nume_set))
Endif
This.Caption = This.Caption + [ ( Nr. document : ] + Alltrim(Nvl(poAct.serie_act,[])) + [ ] + ;
TRANSFORM(poAct.nract,get_mask(14,0)) + [ ) ]
ENDPROC
PROCEDURE Urmator1.Command1.Click
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* Model =-1 : Nota fara contabilizare
*!* Model = 1 : Nota simpla cu contabilizare
*!* Model = 2 : NIR
*!* Model = 3 : BON/FACTURA VANZARE
*!* Model = 4 : Retur BON/FACTURA VANZARE
*!* Model = 5 : Transfer
*!* Model = 6 : Retur Transfer
*!* Model = 7 : Diferenta de pret
*!* Param1 = 1 : En-detail
*!* Param1 = 2 : En-gros
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* 11.05.2009 -ultimul pret de achizitie,vanzare este din ultimii 2 ani
*!* marius.felecanu
*!* 26.05.2009 - pentru transfer - sectia si lucrarea se inregistreaza in contabilitate
*!* marius.felecanu
*!* 27.05.2009 - se poate adauga acelasi articol de mai multe ori
*!* marius.felecanu
*!* 30.03.2010
*!* marius.mutu
*!* se citeste si rul.proc_tva de la ultima achizitie pentru NIR-urile din lista de preturi - completare automata preturi
*!* 13.09.2010
*!* marius.mutu
*!* ultimele preturi de achizitie, vanzare se citesc din RUL_ULTIMA_INTRARE daca este configurata optiunea RG_PRET_ULTIMA_INTRARE
*!* 20.01.2015
*!* marius.mutu
*!* se citesc ultimele preturi de achizitie pentru ID_SET = NIR + optiunea gnRG_NIR_ULTIMUL_PRET = 1
*!* 21.12.2015
*!* marius.mutu
*!* nu mai suprascriu pretul de vanzare din lista de preturi. de ce ar trebui sa il suprascriu?
*!* 22.09.2023
*!* marius.mutu
*!* transfer ob inv in folosinta + alte transferuri (oSet.model = 5) corectare gestiune intrare daca se schimba gestiunea sursa
Private poPreturi
poPreturi = Createobject("empty")
AddProperty(poPreturi,"pretv", 0)
AddProperty(poPreturi,"tvav", 0)
AddProperty(poPreturi,"pretvtva", 0)
Local lnNIRPRETLISTAMOD
If Type('gnNIRPRETLISTAMOD') <> 'U'
lnNIRPRETLISTAMOD = gnNIRPRETLISTAMOD
Else
lnNIRPRETLISTAMOD = 0
Endif
Local lnPretfTva, lnPretvTva, lnListaPreturiCuTva, lcAcont
Local loPoliticaPretArt
lnPretfTva = 0
lnPretvTva = 0
lnListaPreturiCuTva = 1 && daca lista de preturi are preturile cu tva id_set = 231 nir mf la pv cu modificarea listei de preturi
loPoliticaPretArt = Null
lcSelRul = Thisform.ct_grid_order1.cnumecursor
*!* modificare 22.08.2007
*!* La toate conditiile unde era id_articol, am adaugat si NVL(serie,'') , in afara de politicile de preturi si reteta.
lcIde = [T]
lcIde = lcIde + ',' + Iif(oset.factura And oset.model = 2, 'F', '') && 2/F = FACTURA DE ACHIZITIE SI NIR
lcIde = lcIde + ',' + Iif(oset.adaos And (oset.param1 = 1 Or oset.model = 2), 'A,X','')
lcIde = lcIde + ',' + Iif(oset.discount, 'D','')
lcIde = lcIde + ',' + Iif(Inlist(oset.model,2), 'N', Iif(Inlist(oset.model, 3, 4, 5, 6, 7), 'B', '')) && 2/N = NIR, B = BON/TRANSFER
lcIde = Iif(oset.model = 7, lcIde + ',X' , lcIde) && 7 = DIFERENTA DE PRET PRODUSE
lnProcDisc = Iif(oset.discount And Thisform.ct_discount1.Combogrid3.Value=3,Thisform.ct_discount1.proc_discount ,0)
*!* modificare ROAFACTURARE v 2.0.96
If oset.id_set = 267
lnProcDisc = 0
Endif
*!* modificare ROAFACTURARE v 2.0.96 ^
*!* modificare 22.06
*!* lnProcAdaos = IIF(oset.adaos,thisform.ct_adaos1.proc_adaos,0)
lnProcAdaos = Iif(oset.adaos,Iif(Thisform.ct_adaos1.proc_adaos<-9999999,0,Thisform.ct_adaos1.proc_adaos),0)
*!* ^
Select cursor_curent1
Scatter Name oStg
If Empty(oStg.Cont)
amessagebox('Nu s-a selectat niciun reper! Repetati selectia!',48,"Atentie")
Release oStg
Thisform.ct_grid_search1._GRID1.SetFocus
Return
Endif
*!* modificare v 2.1.34
If oset.model >= 3 And Type(Thisform.ct_grid_search1.cnumecursor+".in_stoc")<>"U"
IF oStg.in_stoc = 0
amessagebox("Acest articol este prezent in stoc, dar nu este definit ca fiind gestionabil!"+CHR(13)+CHR(10)+;
"Intrati pe acest articol in 'Gestiuni > Configurare > Catalog de materiale si marfuri' si bifati casuta 'Articol gestionabil'!",48,"Atentie")
RETURN
ENDIF
Endif
*!* modificare v 2.1.34 ^
*!* modificare ROAGEST v 2.1.19 :
*!* verific daca articolul ales respecta metoda FIFO / LIFO
*!* modificare ROAGEST v 2.1.25 : am adaugat conditia legata de oset.id_set ( ob. de inv. )
If oset.model = 3 AND INLIST(gnFifoLifo,1,2) AND !INLIST(oset.id_set,70,72,104)
*!* Select Min(a.nrordine) As nrordinemin From (Thisform.ct_grid_search1.cnumecursor) a ;
*!* Left Join (Select Sum(cante) As cantitate From (Thisform.ct_grid_order1.cnumecursor) ;
*!* WITH (Buffering = .T.) Where id_articol = oStg.id_articol ;
*!* AND id_gestout = oStg.id_gestiune And Nvl(serie,'') = Nvl(oStg.serie,'') And datain = oStg.datain ;
*!* GROUP By id_articol,serie) b On 1 = 1 ;
*!* Where a.cantitate - Nvl(b.cantitate,0) <> 0 Into Cursor crsComparatie
Select Min(nrordine) As nrordinemin From (Thisform.ct_grid_search1.cnumecursor) ;
Where id_articol = oStg.id_articol ;
AND id_gestiune = oStg.id_gestiune And Nvl(serie,'') = Nvl(oStg.serie,'') ;
AND stoc_actual > 0 Into Cursor crsComparatie
Select crsComparatie
lnNrOrdineMin = nrordinemin
If lnNrOrdineMin <> oStg.nrordine
amessagebox("Articolul ales nu respecta metoda "+Iif(gnFifoLifo=1,"FIFO","LIFO")+" !",48,"Atentie")
Select (Thisform.ct_grid_search1.cnumecursor)
lnRecno = Recno()
Locate For id_articol = oStg.id_articol ;
AND id_gestiune = oStg.id_gestiune And Nvl(serie,'') = Nvl(oStg.serie,'') And nrordine = lnNrOrdineMin
If !Found()
Go lnRecno
Endif
Thisform.ct_grid_search1.SetFocus()
Return
Endif
Endif
*!* modificare ROAGEST v 2.1.19 ^
*!* If oSet.model > 2 And !Empty(NVL(oStg.id_rul_aux,0))
*!* amessagebox("Operatiile asupra acestui reper se pot efectua doar din programul ROAVIN!",48,"Atentie")
*!* Release oStg
*!* Thisform.ct_grid_search1._GRID1.SetFocus
*!* Return
*!* Endif
*!* DNF
Select (lcSelRul)
Scatter Name orul BLANK MEMO
If !Pemstatus(orul,'dnf',5)
AddProperty(orul,'dnf',00000)
If Pemstatus(oStg,'dnf',5)
orul.DNF= oStg.DNF
Endif
ENDIF
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - SA SE POATA SCOATE DIN STOC DE MAI MULTE ORI ACEEASI CANTITATE LA OB INV IN FOLOSINTA CAND TRANSFER, CASARE DIN FOLOSINTA
*!* SET STEP ON
Local lnCantIesita, lnCantStoc
lnCantIesita = 0
lnCantStoc = 0
If !Inlist(oset.id_set,210,211,212,89,70)
If 'B' $ lcIde
Sele (lcSelRul)
If !Inlist(gnTipGest , 6,7)
Select Sum(cante) As cante, id_articol, Nvl(serie,'') As serie From (lcSelRul) ;
WITH (Buffering = .T.) Where id_articol = oStg.id_articol And Pret =oStg.Pret ;
AND id_gestout = oStg.id_gestiune And Nvl(serie,'') = Nvl(oStg.serie,'') ;
GROUP By id_articol,serie Into Cursor crsCant
*!* LOCATE FOR id_articol = ostg.id_articol AND pret =ostg.pret AND id_gestout = ostg.id_gestiune && id_gestout in loc de id_gestiune pt ca la transfer modific id_gestiune (inainte_de_do_termin)
Else
Select Sum(cante) As cante, id_articol,Nvl(serie,'') As serie From (lcSelRul) ;
WITH (Buffering = .T.) Where id_articol = oStg.id_articol And pretv =oStg.pretv ;
AND id_gestout = oStg.id_gestiune And Pret =oStg.Pret And Nvl(serie,'') = Nvl(oStg.serie,'') ;
GROUP By id_articol,serie Into Cursor crsCant
*!* LOCATE FOR id_articol = ostg.id_articol AND pretv =ostg.pretv AND id_gestout = ostg.id_gestiune AND pret =ostg.pret && id_gestout in loc de id_gestiune pt ca la transfer modific id_gestiune (inainte_de_do_termin)
Endif
*!* 27.05.2009
Select crsCant
Locate
lnCantIesita = cante
lnCantStoc = oStg.cantitate
If lnCantStoc <= lnCantIesita
amessagebox('Stoc epuizat',0+64,"Info")
Thisform.ct_grid_search1._GRID1.SetFocus
Use In crsCant
Return
Endif
*!* 27.05.2009 ^
Use In crsCant
Endif
Else
&& scoatere din stoc obiecte de inventar
If 'B' $ lcIde
Sele (lcSelRul)
*!* modificare v 2.1.25 : am pus nvl la id_responsabil = oStg.id_responsabil
Select Sum(cante) As cante, id_articol, Nvl(serie,'') As serie ;
FROM (lcSelRul) With (Buffering = .T.) ;
WHERE id_articol = oStg.id_articol And Pret =oStg.Pret And id_gestout = oStg.id_gestiune ;
AND NVL(id_responsabil,0) = NVL(oStg.id_responsabil,0) And datapif = oStg.datapif And Nvl(serie,'') = Nvl(oStg.serie,'') ;
GROUP By id_articol,serie Into Cursor crsCant
*!* 27.05.2009
Select crsCant
Locate
lnCantIesita = cante
lnCantStoc = oStg.cantitate
If lnCantStoc <= lnCantIesita
amessagebox('Stoc epuizat',0+64,"Info")
Thisform.ct_grid_search1.cb_tx_cautare1.Text.SetFocus
Use In crsCant
Return
Endif
*!* 27.05.2009 ^
Use In crsCant
Endif
Endif
*!* modificare 03.10.2007
If Inlist(oxset.model,4,6) && Retur
lcObiect = Thisform.cobj
&lcObiect..id_gestout = oStg.id_gestiune
&lcObiect..gestout = Alltrim(oStg.nume_gestiune)
Endif
*!* modificare 03.10.2007 ^
Thisform.assign_values('orul',Thisform.cobj,'oStg')
* La transfer, tabelul din dreapta rul_temp1 are cantitatile intrate, iar crsTransfer cantitatile iesite
* Daca se schimba gestiunea sursa, se schimba si pcObj.id_gestiune = pcObje.id_gestout (poAct) si in rul_temp1 (intrari) va intra gestiunea sursa, in loc de destinatie
* Modific gestiunea = gestiunea sursa in intrari
If Inlist(oSet.model, 5) AND TYPE('orul.id_gestiune') = 'N' AND !EMPTY(NVL(pcObj.id_gestin,0)) && TRANSFER
orul.id_gestiune = pcobj.id_gestin
orul.nume_gestiune = pcobj.gestin
ENDIF
* 01.04.2021 - repun responsabilul salvat dupa articolul anterior
IF !EMPTY(NVL(Thisform.nIdResponsabil,0))
orul.id_responsabil = thisform.nIdResponsabil
orul.nresp = thisform.nResp
ENDIF
If Type('orul.datapif') # 'U' And Type('orul.datapif') = 'T' && pentru ob. inv. in folosinta
orul.datapif = Ttod(orul.datapif)
Endif
If Inlist(oset.model,3,4) And oset.param1 = 1 && bon/retur + factura + en-detail
lnPretvTva = orul.pretv + orul.tvav && pret vanzare cu TVA
*!* modificare 22.06
lnProcAdaos = Iif(orul.procent<>0,orul.procent,lnProcAdaos)
*!* ^
Else
*!* 09.06.2008
*!* 231 - nir mf pretv cu modificarea listei de preturi
*!* 105,106 - roafacturare - NIR de marfa la pret de vanzare;
*!* 231 = roagest - nir marfa la pretv cu lista de preturi
*!* 236,240,241,243 - retur de la gestiune valorica - aviz expeditie - pret de lista
*!* 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
If Inlist(oset.id_set,105,106,231,236,240,241,242,247,255,256,266)
lcSql = [ select pretftva, pretctva, (proc_tvav*100-100) as proc_tvav from vcrm_politici_pret_art where id_pol=] + Alltrim(Str(poact.id_pol))+;
[ and id_articol =] + Alltrim(Str(oStg.id_articol))
lnSucces=goExecutor.oExecute(lcSql,'crsPret')
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsPret
lnPretfTva = pretftva
lnPretvTva = pretctva
IF !PEMSTATUS(poAct, 'proc_tvav',5 )
ADDPROPERTY(poAct, 'proc_tvav', 24)
ENDIF
poAct.proc_tvav = crsPret.proc_tvav
Use In (SELECT('crsPret'))
Private pnReturnValue
pnReturnValue = 0
lnSucces = goExecutor.oSelect2Value("select preturi_cu_tva from vcrm_politici_preturi where id_pol = " + Alltrim(Str(poact.id_pol)), @pnReturnValue)
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Else
lnListaPreturiCuTva = pnReturnValue
Endif
Else
lnPretvTva = 0
Endif
*!* 09.06.2008
Endif
If oset.id_set = 104
Private pnImputare
Store 0 To pnImputare
If gnImputare = 1 && pretul maxim din stoc
lcSql=[select MAX(pret) as pretMax from (select pack_sesiune.suma_ron(pret, an, luna) as pret from ] + ;
[(select pret, an, luna from stoc where id_articol = ] + +Alltrim(Str(orul.id_articol))+ ;
[ and NVL(serie,'x_x_x') = '] + Nvl(orul.serie,'x_x_x') + [' ] + gcCondSucursala + [))]
lnSucces=goExecutor.oExecute(lcSql,'crsPretMax')
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Endif
Select crsPretMax
orul.pretv = pretMax
If Isnull(orul.pretv)
orul.pretv = 0
Endif
If Used('crsPretMax')
Use In crsPretMax
Endif
Endif
Endif
If Empty(Thisform.cfrm_ceredate)
Return
Endif
If Inlist(oset.id_set,211) && TRANSFER MAGAZIE OB INV IN FOLOSINTA - CATRE GESTIUNE OB INV IN FOL PE UN RESPONSABIL
orul.id_responsabil = 0
orul.NRESP = ''
Endif
lcForm = Alltrim(Thisform.cfrm_ceredate)
onir = Createobject(lcForm,Thisform.omemopref) && modificare ROAGEST v 2.2.29 : am adaugat Thisform.omemopref
onir.bVizualizare = lcIde
onir.cobj = orul
*onir.cParentObj = thisform.cobj
onir.pretvtva = lnPretvTva
*!* 27.05.2009
onir.ncant_stoc = lnCantStoc
onir.ncant_iesita = lnCantIesita
*!* 27.05.2009 ^
*!* 11.09.2008 ROAGEST 2.0.61
*!* 105 Achizitie fact. neplatita- marfa la pret de vanzare
*!* 106 ?
*!* 231 Achizitie fact. neplatita- marfa la pret de vanzare - pret de lista
*!* 234 Achizitie fact. neplatita - bilete RATC - marfa la pret de vanzare -pret de list
*!* 236,240,241,242 - Retur de la gestiune valorica - lista preturi - aviz expeditie
*!* 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 248 Achizitie fact. neplatita - bilete RATC - marfa la pret de vanzare -pret de list - gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
If Inlist(oset.id_set,105,106,231,234,236,240,241,242,247,248,255,256,266)
onir.cobj.pretv = lnPretfTva
onir.cobj.tvav = lnPretvTva - lnPretfTva
Endif
*!* 11.09.2008 ROAGEST 2.0.61 ^
If oset.model = 2 And Type('ostg.cantitate') = 'N' And oset.id_selst = 30
onir.cobj.cant = oStg.cantitate
Endif
*!* 09.06.2008
*!* 231 - nir mf pretv cu modificarea listei de preturi
&& 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 248 Achizitie fact. neplatita - bilete RATC - marfa la pret de vanzare -pret de list - gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
*!* 267 modificare ROAFACTURARE v 2.2.2
If Inlist(oset.id_set,231,234,236,240,241,242,247,248,255,256,266,267) OR (m.gnRG_NIR_ULTIMUL_PRET = 1 AND INLIST(oset.id_set,43,44,45,46,47,48,49,50,51,101,94,85,246,249,250,251,264))
&& v 2.0.14 din 11iun2008 - preluare preturi din rul de pe ultima factura de achizitie/retur, cautarea se face in ultimele 2 luni
&& 231 - NIR LISTA PRETURI
&& 234 - NIR RATC
*!* v 2.0.18 (ordonare an desc, luna desc, dataora desc, cant <> 0)
*!* 11.05.2009 -ultimul pret de achizitie,vanzare este din ultimii 2 ani
*!* 30.03.2010 - se ia si proc_tva
*!* 13.09.2010
If Type('gnRG_PRET_ULTIMA_INTRARE') = 'N' And gnRG_PRET_ULTIMA_INTRARE = 1
lcSql = [select pret, tva, proc_tva, pretv, tvav, pretvtva, dataora ]+;
[ from rul_ultima_intrare where ID_ARTICOL = ]+Alltrim(Str(orul.id_articol))
Else
lcSql = [select a.* from (select a.dataora,a.pret,a.tva, a.proc_tva, a.tvav,a.pretv,a.PRETV+a.TVAV as pretvtva ]+;
[ from rul a where a.ID_ARTICOL = ]+Alltrim(Str(orul.id_articol)) + [ and a.sters = 0 and ] + ;
[((a.cant<>0 and a.id_tip_rulaj = 0) or (a.cante<0 and a.id_tip_rulaj = 1) )]+;
[ and an*12+luna between ]+ Alltrim(Str(gnAn*12+gnluna-23))+[ and ]+ Alltrim(Str(gnAn*12+gnluna)) +;
[ order by a.an desc, a.luna desc, a.dataora desc) a where rownum = 1]
Endif
*!* 13.09.2010 ^
*!* v 2.0.18 ^
lnSucces=goExecutor.oExecute(lcSql,'crsPretUltim')
If lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Else
Select crsPretUltim
If Reccount() > 0
onir.pretu_factura = crsPretUltim.Pret
onir.cobj.Pret = crsPretUltim.Pret
onir.cobj.tva = crsPretUltim.tva
onir.cobj.proc_tva = crsPretUltim.proc_tva
&& suprascriu pretul de vanzare din lista doar daca pe nir am pretul <> 0
*!* 267 modificare ROAFACTURARE v 2.2.2
*!* If crsPretUltim.pretv <> 0 and oset.id_set <> 267
*!* 21.12.2015 nu mai suprascriu pretul de vanzare din lista de preturi. de ce ar trebui sa il suprascriu?
If crsPretUltim.pretv <> 0 and onir.cobj.pretv = 0 and oset.id_set <> 267
onir.cobj.pretv = crsPretUltim.pretv
onir.cobj.tvav = crsPretUltim.tvav
onir.pretvtva = crsPretUltim.pretvtva
Endif
Endif
Use In crsPretUltim
Endif
&& v 2.0.14 din 11iun2008 ^
Endif
*!* 09.06.2008 ^
onir.cTitlu = Alltrim(Nvl(oStg.denumire,'')) + [-] + Alltrim(Nvl(oStg.codmat,''))
onir.item2.text_item1.ReadOnly = Iif(oset.model = 2, .F., .T.)
If oset.param1 = 1 And (oset.model = 4 Or gnTipGest = 6 Or gnTipGest = 7) && facturi retur / vanzare marfa la pret de vanzare en-detail - blochez pretul de vanzare
onir.BlochezPretV = .T.
onir.proc_tvav = orul.proc_tvav
onir.proc_adaos = lnProcAdaos
Endif
Do Case
Case oset.model = 7 && ( oset.id_set = 218 )
onir.item9.label_item1.Caption = 'Pret nou fara TVA'
onir.item9.text_item1.InputMask = get_mask(12,gnPPret)
Case poact.id_set = 104 && RoaObInv - Imputare
onir.item7.label_item1.Caption = 'Pret imputare cu TVA'
onir.item8.label_item1.Caption = 'TVA imputare'
onir.item9.label_item1.Caption = 'Pret imputare fara TVA'
* onir.BlochezPretV = .T.
Case poact.id_set = 26001 && ROAPRODUCTIE.PV_PRODUCTIE
Local lnPret
Store 0 To lnPret
Private poPret
Store '' To poPret
Local lcschema, lcselect, lcFiltru, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal
lcschema = []
lcselect = [select pret from vcrm_politici_pret_art]
lcOrder = []
lcFiltru = []
llAfiseaza = .F.
lcgroup = ""
llModParam = .T.
lcFiltruOriginal = [id_pol=] + Alltrim(Str(poact.id_pol)) + [ and id_articol=] + Alltrim(Str(oStg.id_articol))
gencursor('poPret','crsPret',lcselect,lcFiltru,lcschema,lcOrder,llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poPret.ca_baza1.afisare()
Select crsPret
Go Top
lnPret = Pret
If Used('crsPret')
Use In crsPret
Endif
Release poPret
onir.cobj.Pret = lnPret
onir.item2.label_item1.Caption = 'Pret unitar'
onir.item2.text_item1.ReadOnly = .T.
onir.item2.text_item1.TabStop = .F.
Local lcReteta, lnId_reteta
Store 0 To lnId_reteta
Store '' To lcReteta
Private poReteta
Store '' To poReteta
lcschema = []
lcselect = [select id_reteta, reteta from vnom_retetar]
lcOrder = []
lcFiltru = []
llAfiseaza = .F.
lcgroup = ""
llModParam = .T.
lcFiltruOriginal = [principala=1 and id_articol=] + Alltrim(Str(onir.cobj.id_articol))
gencursor('poReteta','crsReteta',lcselect,lcFiltru,lcschema,lcOrder,llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poReteta.ca_baza1.afisare()
Select crsReteta
Go Top
lcReteta = Alltrim(reteta)
lnId_reteta = id_reteta
If Used('crsReteta')
Use In crsReteta
Endif
Release poReteta
onir.cobj.reteta = lcReteta
onir.cobj.id_reteta = lnId_reteta
Endcase
*onir.item4.text_item1.comment = onir.item4.text_item1.comment + IIF(INLIST(oset.model,3,4),[e],[]) && CANT sau CANTE
onir.item4.text_item1.Comment = onir.item4.text_item1.Comment + ;
Iif(Lower(Alltrim(Thisform.osel_dr.cantitate))=[cante],[e],[]) && CANT sau CANTE
onir.proc_discount = lnProcDisc
onir.proc_adaos = lnProcAdaos
*** modific lucrarea cu lucrarea asociata gestiunii, daca este configurata
lcSql = [select id_lucrare, nrord from vnom_gestiuni where id_gestiune = ] + alltrim(str(orul.id_gestiune))
llSucces = goExecutor.oExecuta(m.lcSql, "crsLucrareTemp")
if m.llSucces
go top in crsLucrareTemp
if !empty(nvl(crsLucrareTemp.nrord,''))
onir.cobj.id_lucrare = crsLucrareTemp.id_lucrare
onir.cobj.nrord = alltrim(crsLucrareTemp.nrord)
endif
use in (select('crsLucrareTemp'))
endif
onir.Show(1)
If gnButon = 1
lcCant = [orul.] + Alltrim(Thisform.osel_dr.cantitate)
If Type('ostg.cantitate') # 'U' And Inlist(oset.model, 3, 4, 5, 6, 7) &&: bon, retur, transfer, retur transfer
lnCantD = &lcCant
lnCantD1 = &lcCant
lnCantS = oStg.cantitate
*!* MODIFICAT 11.04.2006
*!* DOAR LA ID_SET = 210 (TRANSFER OB INV IN FOL CATRE MAI MULTI RESPONSABILI) AM PERMIS SA SE SCOATA DE MAI MULTE ORI ACELASI REPER
*!* ADUN CANTITATEA DEJA IESITA LA CEA CURENTA
lnCant = 0
If Inlist(oset.id_set,210,211,212,89)
Select Sum(Nvl(cant,0)) As cant ;
FROM (lcSelRul) With (Buffering = .T.);
WHERE id_articol = oStg.id_articol And Pret = oStg.Pret And ;
id_gestout = oStg.id_gestiune And Nvl(serie,'') = Nvl(oStg.serie,'') ;
INTO Cursor crsCant
Select crsCant
Calculate Sum(cant) To lnCant
lnCantD = lnCantD + lnCant
Use In crsCant
Endif
If Abs(lnCantD) > Abs(lnCantS) Or (Sign(lnCantD1) * Sign(lnCantS) < 0)
lcTitlu = [Atentie]
lcTip = [Avertizare]
lcImagine = [exclam.ico]
ofrm_eroare = Createobject('frm_mesaj',lcTitlu,lcImagine,lcTip,"Cantitatea maxima existenta este:",oStg.cantitate)
ofrm_eroare.Show(1)
Release ofrm_eroare
&lcCant = oStg.cantitate - lnCant
Endif
*!* MODIFICAT 11.04.2006
*!* NU ADAUG ARTICOLE FARA CANTITATE
If &lcCant = 0
Thisform.ct_grid_order1.cb_tx_gestin.SetFocus()
Return
Endif
Endif
Do Case
Case Inlist(oset.model, 4, 6) && retur BON, retur TRANSFER
&lcCant = -&lcCant
Case oset.model = 2 && NIR
Select (lcSelRul)
lcAcont = Thisform.assign_analitic(orul.Cont,Thisform.cobj,'orul')
IF !EMPTY(m.lcAcont)
orul.acont = m.lcAcont
ENDIF
Endcase
If Inlist(oset.model,5,6,7) && TRANSFER, RETUR TRANSFER, DIFERENTA DE PRET
lcCantDr = Lower(Alltrim(Thisform.osel_dr.cantitate))
lcCantTransf = [cant] + Iif(lcCantDr = [cante],[],[e])
If !Used('crsTransfer')
Select *, 0000 As rec, 0 As nuInConturiX From (lcSelRul) Into Cursor crsTransfer Where 1=2 NOFILTER Readwrite
Endif
Select crsTransfer
Append Blank
Gather Name pcObj
Gather Name oStg
Replace cant With 0, cante With 0
Replace &lcCantTransf With &lcCant
*!* v 2.0.24
lnProcTVA = Iif(proc_tva <> 0, proc_tva, TVA2PROCTVA(tva, Pret))
Replace proc_tva With lnProcTVA
*!* v 2.0.24 ^
*REPLACE nuInConturiX WITH 1
*!* modificare 26.02.2007
Do Case
Case Inlist(oset.id_set,75,218) && modificare 22.05.2007 : completez si pretv ca sa pot calcula adaosul
Replace pretv With orul.pretv,tvav With orul.tvav,proc_tvav With orul.proc_tvav
Case Inlist(oset.id_set, 207,254)
orul.pretv = oStg.pretv
orul.tvav = oStg.tvav
orul.proc_tvav = oStg.proc_tvav
Case oset.id_set = 89 && transfer intre persoane
pcObj.id_gestin = orul.id_gestout
pcObj.gestin = orul.id_gestout
orul.id_gestin = orul.id_gestout
orul.gestin = orul.gestout
Endcase
*!* IF oset.id_set = 89 && transfer intre persoane
*!* pcObj.id_gestin = orul.id_gestout
*!* pcObj.gestin = orul.id_gestout
*!* orul.id_gestin = orul.id_gestout
*!* orul.gestin = orul.gestout
*!* ENDIF
*!* modificare 26.02.2007 ^
Replace id_gestin With orul.id_gestin, gestin With orul.gestin
Replace id_gestout With orul.id_gestout, gestout With orul.gestout
*!* IF TYPE('orul.id_gestiune') = 'N' AND TYPE('crsTransfer.id_gestiunec') = 'N'
*!* REPLACE id_gestiunec WITH orul.id_gestiune
*!* ENDIF
If Type('orul.id_responsabil') = 'N' And Type('crsTransfer.id_responsabilc') = 'N'
Replace id_responsabilc With orul.id_responsabil
Endif
*!* nou 26.05.2009
Replace id_lucrare With orul.id_lucrare, nrord With orul.nrord
Replace id_sectie With orul.id_sectie, sectie With orul.sectie
*!* nou 26.05.2009 ^
Endif
If oset.id_set = 104
If gnImputare = 1
Select cursor_curent1
If DNF<>0
uzura = (DNF-(dns_luni-Iif(!Empty(datapif) And !Isnull(datapif),((gnAn*12+gnluna)-(Year(datapif)*12+Month(datapif))),0)))/DNF*100
Else
uzura = 0
Endif
Do Case
Case pnImputare = 1 && procent
orul.pret_imputare = Round((100 - uzura) * orul.pretv / 100,gnPPretV)
Case pnImputare = 2 && integral
orul.pret_imputare = orul.pretv
Otherwise
orul.pret_imputare = orul.pretv
Endcase
Else
orul.pret_imputare = orul.pretv
Endif
Endif
Select (lcSelRul)
Append Blank
Gather Name orul
Replace id_set With oset.id_set
lnRecno = Recno()
*!* IF TYPE('ostg.id_gestiune') = 'N'
*!* REPLACE id_gestiunec WITH ostg.id_gestiune
*!* ENDIF
If Type('ostg.id_responsabil') = 'N'
Replace id_responsabilc With oStg.id_responsabil
Endif
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - AM PUS RECNO('RUL_TEMP') IN CURSORUL DE TRANSFER - LA STERGERE SA POT STERGE SI LINIA CORESPONDENTA DIN CRSTRANSFER
If Inlist(oset.model,5,6,7) And Used('crsTransfer') && TRANSFER, RETUR TRANSFER, DIFERENTA DE PRET
Select crsTransfer
Replace rec With lnRecno
Endif
*!* 09.06.2008
*!* 231 - nir mf pretv cu modificarea listei de preturi
*!* daca pretul de vanzare este diferit de pretul de vanzare din lista
*!* modific pretul de vanzare din lista
*!* 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
If Inlist(oset.id_set, 231, 247, 266) And poPreturi.pretvtva <> lnPretvTva And lnNIRPRETLISTAMOD = 1
lnPretftvaLista = poPreturi.pretv
lnPretvtvaLista = poPreturi.pretvtva
lnPretLista = Iif(lnListaPreturiCuTva = 1, lnPretvtvaLista, lnPretftvaLista)
Thisform.modificare_lista_preturi(poact.id_pol, oStg.id_articol, lnPretftvaLista, lnPretvtvaLista, lnPretLista, orul.proc_tvav)
Endif
*!* 09.06.2008 ^
*!* 10.09.2008 v 2.0.61
*!* 236, 240, 241, 242 = retur de la gestiune valorica
If Inlist(oset.id_set, 236, 240, 241, 242,255,256) And poPreturi.pretvtva <> lnPretvTva
lnPretftvaLista = poPreturi.pretv
lnPretvtvaLista = poPreturi.pretvtva
lnPretLista = Iif(lnListaPreturiCuTva = 1, lnPretvtvaLista, lnPretftvaLista)
Thisform.modificare_lista_preturi(poact.id_pol, oStg.id_articol, lnPretftvaLista, lnPretvtvaLista,lnPretLista, orul.proc_tvav,lnPretvTva)
Endif
*!* 10.09.2008 v 2.0.61 ^
* 01.04.2021 salvez responsabilul ales de utilizator si il folosesc pentru articolele urmatoare
thisform.nIdResponsabil = orul.id_responsabil
thisform.nResp = orul.nresp
If Thisform.ct_grid_order1.cb_tx_gestin.Visible
Thisform.ct_grid_order1.cb_tx_gestin._cbbase1.Value = orul.gestin
Thisform.ct_grid_order1.cb_tx_gestin._cbbase1.Refresh
Endif
Thisform.ct_grid_order1.actualizeaza_grid()
Thisform.ct_grid_order1._GRID1.AutoFit
Else
Thisform.ct_grid_search1._GRID1.SetFocus
Endif
Thisform.calcul_sume(lcSelRul)
*!* SELECT crsTransfer
*!* BROWSE
*!* SELECT (lcSelRul)
*!* BROWSE
If oset.productie And Inlist(oset.id_set,26003,26004) && modificare 17.10.2007 AND ALLTRIM(UPPER(oset.formproduc))='FRM_ALEGE_SECTIE_COMANDA'
pnValoareDecontata = Thisform.nTotal
pnCheltuieliDirecte = Thisform.nTotal - pnValoareDecontata
Thisform.container_valoare_decontata1.Refresh
Endif
If Thisform.nTotal#0
lnProcentDiscount=(Thisform.ct_discount1.baza_discount/Thisform.nTotal)*100
Else
lnProcentDiscount=0
Endif
If(Thisform.ct_discount1.Combogrid3.Value=2)
Thisform.ct_discount1.txProc_discount.Value=lnProcentDiscount
Endif
*!* modificare ROAGEST v 2.1.19
If oset.model = 3
Select (Thisform.ct_grid_search1.cnumecursor)
Replace stoc_actual With stoc_actual - orul.cante
Endif
*!* modificare ROAGEST v 2.1.19 ^
Release orul
Release oStg
ENDPROC
PROCEDURE _shape1.DblClick
IF thisform.WindowState = 2
thisform.WindowState = 0
ELSE
thisform.WindowState = 2
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS nir_orig AS _frmbase OF "_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="Ct_discount1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shapeDr" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_shapeSus" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Urmator1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lbTotal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txNir" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_adaos1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.But_nou1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.lb_listePreturi" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.cboListe" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_search1.Cb_tx_gestout" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1.Cb_tx_gestin" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_grid_order1.But_sterge1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Container_valoare_decontata1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2.lb_curs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Ct_factura2.lb_valuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="tx_totalctva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_totalctva" UniqueID="" Timestamp="" />
#INCLUDE "..\include\foxpro.h"
*
*m: aleg_cont_transfer
*m: analiza_cmp
*m: assign_analitic
*m: assign_values
*m: bon_fiscal
*m: calcul_pret_vanzare
*m: calcul_sume
*m: caut_gestiune
*m: compensare
*m: do_verifica_sume
*m: intrare_produs
*p: cfrm_ceredate
*p: cobj
*p: ctip_frm
*p: ntotal
*p: osel_dr
*
*
BorderStyle = 1
cbuton3 =
cbuton4 = Ct_grid_order1.But_sterge1;but_reface1
cfrm_ceredate =
cobj =
ctip_frm = NIR
DoCreate = .T.
Height = 572
lactiv3 = .T.
lactiv4 = .T.
Name = "nir_orig"
ntotal = 0
osel_dr =
Width = 793
WindowType = 1
_shape1.Anchor = 11
_shape1.Height = 30
_shape1.Left = -1
_shape1.Name = "_shape1"
_shape1.Tag = ""
_shape1.Top = -1
_shape1.Width = 726
_shape1.ZOrderSet = 2
_shape2.Anchor = 9
_shape2.Height = 29
_shape2.Left = 724
_shape2.Name = "_shape2"
_shape2.Tag = "MOVABLE"
_shape2.Top = 0
_shape2.Width = 69
_shape2.ZOrderSet = 4
Lb_titlu_alb_b121.Anchor = 3
Lb_titlu_alb_b121.FontName = "Comic Sans MS"
Lb_titlu_alb_b121.FontSize = 10
Lb_titlu_alb_b121.Height = 20
Lb_titlu_alb_b121.Left = 10
Lb_titlu_alb_b121.Name = "Lb_titlu_alb_b121"
Lb_titlu_alb_b121.TabIndex = 5
Lb_titlu_alb_b121.Top = 3
Lb_titlu_alb_b121.Width = 41
Lb_titlu_alb_b121.ZOrderSet = 8
BUT_TERMIN1.Anchor = 9
BUT_TERMIN1.Height = 27
BUT_TERMIN1.Left = 757
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 3
BUT_TERMIN1.Tag = ""
BUT_TERMIN1.Top = 1
BUT_TERMIN1.Width = 32
BUT_TERMIN1.ZOrderSet = 12
Gridsort1.Name = "Gridsort1"
*
ADD OBJECT '_shape3' AS _shape WITH ;
Anchor = 135, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 427, ;
Left = 9, ;
Name = "_shape3", ;
Tag = "", ;
Top = 137, ;
Width = 361, ;
ZOrderSet = 1
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shapeDr' AS _shape WITH ;
Anchor = 45, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 427, ;
Left = 406, ;
Name = "_shapeDr", ;
Tag = "", ;
Top = 137, ;
Width = 381, ;
ZOrderSet = 3
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shapeSus' AS _shape WITH ;
Anchor = 11, ;
BackStyle = 0, ;
BorderColor = 7,118,177, ;
BorderWidth = 2, ;
Height = 103, ;
Left = 8, ;
Name = "_shapeSus", ;
Tag = "RESIZABLE, MOVABLE", ;
Top = 32, ;
Width = 780, ;
ZOrderSet = 5
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Anchor = 9, ;
Left = 727, ;
Name = "But_renunt1", ;
TabIndex = 4, ;
Tag = "", ;
Top = 1, ;
ZOrderSet = 7
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Container_valoare_decontata1' AS container_valoare_decontata WITH ;
Left = 12, ;
Name = "Container_valoare_decontata1", ;
Top = 81, ;
Visible = .F., ;
ZOrderSet = 18, ;
Label1.Name = "Label1", ;
Text1.Name = "Text1"
*< END OBJECT: ClassLib="ointroduceri.vcx" BaseClass="container" />
ADD OBJECT 'Ct_adaos1' AS ct_adaos WITH ;
Anchor = 161, ;
Left = 556, ;
Name = "Ct_adaos1", ;
TabIndex = 8, ;
Tag = "", ;
Top = 38, ;
ZOrderSet = 13, ;
LBBAZA_ADAOS.Name = "LBBAZA_ADAOS", ;
LBTVA_ADAOS.Name = "LBTVA_ADAOS", ;
LBPROC_ADAOS.Name = "LBPROC_ADAOS", ;
TXBAZA_ADAOS.Name = "TXBAZA_ADAOS", ;
TXTVA_ADAOS.Name = "TXTVA_ADAOS", ;
TXPROC_ADAOS.Name = "TXPROC_ADAOS"
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_discount1' AS ct_discount WITH ;
Anchor = 161, ;
Left = 262, ;
Name = "Ct_discount1", ;
TabIndex = 10, ;
Tag = "", ;
Top = 37, ;
ZOrderSet = 0, ;
COMBOGRID3.Name = "COMBOGRID3", ;
LBBAZA_DISCOUNT.Name = "LBBAZA_DISCOUNT", ;
LBTVA_DISCOUNT.Name = "LBTVA_DISCOUNT", ;
LBPROC_DISCOUNT.Name = "LBPROC_DISCOUNT", ;
TXBAZA_DISCOUNT.Name = "TXBAZA_DISCOUNT", ;
TXTVA_DISCOUNT.Name = "TXTVA_DISCOUNT", ;
TXPROC_DISCOUNT.Name = "TXPROC_DISCOUNT", ;
CotaTVA.HideSelection = .F., ;
CotaTVA.Name = "CotaTVA", ;
lbTva.Name = "lbTva", ;
lb_explicatie_tva.Name = "lb_explicatie_tva"
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura1' AS ct_factura WITH ;
Anchor = 131, ;
Left = 14, ;
Name = "Ct_factura1", ;
TabIndex = 9, ;
Tag = "", ;
Top = 61, ;
ZOrderSet = 14, ;
lbBaza.Name = "lbBaza", ;
lbTva.Name = "lbTva", ;
txBaza.Name = "txBaza", ;
txTva.Name = "txTva", ;
lbExplic.Name = "lbExplic", ;
txTotal.Name = "txTotal", ;
lbTotal.Name = "lbTotal"
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura2' AS ct_factura WITH ;
Anchor = 131, ;
Height = 96, ;
Left = 260, ;
Name = "Ct_factura2", ;
TabIndex = 9, ;
Tag = "", ;
Top = 36, ;
Width = 238, ;
ZOrderSet = 19, ;
LBBAZA.Left = 51, ;
LBBAZA.Name = "LBBAZA", ;
LBBAZA.Top = 52, ;
LBTVA.Left = 51, ;
LBTVA.Name = "LBTVA", ;
LBTVA.Top = 72, ;
TXBAZA.InputMask = (get_mask(14,gnPVal)), ;
TXBAZA.Left = 130, ;
TXBAZA.Name = "TXBAZA", ;
TXBAZA.Top = 50, ;
TXTVA.InputMask = (get_mask(14,gnPVal)), ;
TXTVA.Left = 130, ;
TXTVA.Name = "TXTVA", ;
TXTVA.Top = 70, ;
LBEXPLIC.Left = 1, ;
LBEXPLIC.Name = "LBEXPLIC", ;
LBEXPLIC.Top = 52, ;
TXTOTAL.ControlSource = "this.parent.totctva", ;
TXTOTAL.InputMask = (get_mask(14,gnPVal)), ;
TXTOTAL.Left = 130, ;
TXTOTAL.Name = "TXTOTAL", ;
TXTOTAL.Top = 28, ;
LBTOTAL.Height = 17, ;
LBTOTAL.Left = 3, ;
LBTOTAL.Name = "LBTOTAL", ;
LBTOTAL.Top = 19, ;
LBTOTAL.Width = 97
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_factura2.lb_curs' AS lb_titlu_albastru_b12 WITH ;
Alignment = 2, ;
AutoSize = .F., ;
Caption = "[Curs]", ;
FontBold = .T., ;
Height = 22, ;
Left = 19, ;
Name = "lb_curs", ;
Top = 2, ;
Width = 201
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'Ct_factura2.lb_valuta' AS lb_titlu_albastru_b12 WITH ;
Caption = "[Valuta]", ;
FontBold = .F., ;
FontSize = 9, ;
ForeColor = 7,118,177, ;
Height = 17, ;
Left = 58, ;
Name = "lb_valuta", ;
Top = 35, ;
Width = 42
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'Ct_grid_order1' AS ct_grid_order WITH ;
Anchor = 45, ;
cnumecursor = rul_temp1, ;
Height = 425, ;
Left = 409, ;
Name = "Ct_grid_order1", ;
TabIndex = 11, ;
Top = 139, ;
Width = 375, ;
ZOrderSet = 16, ;
_GRID1.Height = 345, ;
_GRID1.Left = 6, ;
_GRID1.Name = "_GRID1", ;
_GRID1.TabIndex = 2, ;
_GRID1.Top = 73, ;
_GRID1.Width = 364, ;
Titlu.Left = 9, ;
Titlu.Name = "Titlu", ;
Titlu.TabIndex = 3, ;
Titlu.Top = 3, ;
Cb_tx_cautare1.Criteriu.Name = "Criteriu", ;
Cb_tx_cautare1.Left = 7, ;
Cb_tx_cautare1.Name = "Cb_tx_cautare1", ;
Cb_tx_cautare1.TabIndex = 1, ;
Cb_tx_cautare1.Text.Name = "Text", ;
Cb_tx_cautare1.Top = 46
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_order1.But_sterge1' AS but_sterge WITH ;
Anchor = 9, ;
Left = 310, ;
Name = "But_sterge1", ;
TabIndex = 5, ;
TabStop = .F., ;
Top = 45, ;
Visible = .T.
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_grid_order1.Cb_tx_gestin' AS cb_tx_simplu WITH ;
BackStyle = 0, ;
BorderColor = 255,255,255, ;
Height = 24, ;
Left = 7, ;
Name = "Cb_tx_gestin", ;
TabIndex = 4, ;
Top = 20, ;
Width = 366, ;
_CBBASE1.BorderStyle = 0, ;
_CBBASE1.ColumnCount = 2, ;
_CBBASE1.ColumnLines = .F., ;
_CBBASE1.ColumnWidths = "220,40", ;
_CBBASE1.ControlSource = "poact.gestin", ;
_CBBASE1.FontItalic = .F., ;
_CBBASE1.FontName = "Arial Narrow", ;
_CBBASE1.Height = 23, ;
_CBBASE1.Left = 124, ;
_CBBASE1.Name = "_CBBASE1", ;
_CBBASE1.RowSource = "nom_gestiuni.nume_gestiune,cgest", ;
_CBBASE1.RowSourceType = 6, ;
_CBBASE1.Sorted = .F., ;
_CBBASE1.Top = 0, ;
_CBBASE1.Width = 237, ;
_LBBASE1.Caption = "gestiune destinatie:", ;
_LBBASE1.FontItalic = .T., ;
_LBBASE1.Left = 3, ;
_LBBASE1.Name = "_LBBASE1", ;
_LBBASE1.Top = 4
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1' AS ct_grid_search WITH ;
Anchor = 135, ;
cnumecursor = cursor_curent1, ;
Height = 425, ;
Left = 11, ;
Name = "Ct_grid_search1", ;
TabIndex = 1, ;
Top = 139, ;
Width = 357, ;
ZOrderSet = 15, ;
_GRID1.Comment = "grd_st", ;
_GRID1.FontName = "Arial Narrow", ;
_GRID1.Height = 345, ;
_GRID1.Left = 6, ;
_GRID1.Name = "_GRID1", ;
_GRID1.RecordSource = "cursor_curent", ;
_GRID1.TabIndex = 3, ;
_GRID1.Top = 73, ;
_GRID1.Width = 347, ;
_GRID1.ZOrderSet = 0, ;
Titlu.Left = 9, ;
Titlu.Name = "Titlu", ;
Titlu.TabIndex = 4, ;
Titlu.Top = 2, ;
Titlu.ZOrderSet = 1, ;
Cb_tx_cautare1.Criteriu.Comment = "criteriu_st", ;
Cb_tx_cautare1.Criteriu.Name = "Criteriu", ;
Cb_tx_cautare1.Height = 27, ;
Cb_tx_cautare1.Left = 7, ;
Cb_tx_cautare1.Name = "Cb_tx_cautare1", ;
Cb_tx_cautare1.TabIndex = 2, ;
Cb_tx_cautare1.Text.Comment = "text_st", ;
Cb_tx_cautare1.Text.Height = 25, ;
Cb_tx_cautare1.Text.Left = 103, ;
Cb_tx_cautare1.Text.Name = "Text", ;
Cb_tx_cautare1.Text.Top = 1, ;
Cb_tx_cautare1.Text.Width = 207, ;
Cb_tx_cautare1.Top = 46, ;
Cb_tx_cautare1.Width = 312, ;
Cb_tx_cautare1.ZOrderSet = 2
*< END OBJECT: ClassLib="ferestre_cere_date.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1.But_nou1' AS but_nou WITH ;
Anchor = 9, ;
Height = 27, ;
Left = 322, ;
Name = "But_nou1", ;
TabIndex = 6, ;
TabStop = .F., ;
Top = 45, ;
ZOrderSet = 3
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'Ct_grid_search1.Cb_tx_gestout' AS cb_tx_simplu WITH ;
BackStyle = 0, ;
BorderColor = 255,255,255, ;
Height = 24, ;
Left = 7, ;
Name = "Cb_tx_gestout", ;
TabIndex = 5, ;
Top = 20, ;
Width = 346, ;
ZOrderSet = 6, ;
_CBBASE1.BorderStyle = 0, ;
_CBBASE1.ColumnCount = 2, ;
_CBBASE1.ColumnLines = .F., ;
_CBBASE1.ColumnWidths = "180,30", ;
_CBBASE1.ControlSource = "poact.gestout", ;
_CBBASE1.FontItalic = .F., ;
_CBBASE1.FontName = "Arial Narrow", ;
_CBBASE1.Height = 23, ;
_CBBASE1.Left = 101, ;
_CBBASE1.Name = "_CBBASE1", ;
_CBBASE1.RowSource = "nom_gestiuni.nume_gestiune,cgest", ;
_CBBASE1.RowSourceType = 6, ;
_CBBASE1.Sorted = .F., ;
_CBBASE1.Top = 1, ;
_CBBASE1.Width = 243, ;
_LBBASE1.Caption = "Gestiune sursa", ;
_LBBASE1.FontItalic = .T., ;
_LBBASE1.Left = 3, ;
_LBBASE1.Name = "_LBBASE1", ;
_LBBASE1.Top = 3
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Ct_grid_search1.cboListe' AS combobox WITH ;
Anchor = 3, ;
BorderStyle = 0, ;
ColumnCount = 4, ;
ColumnLines = .F., ;
ColumnWidths = "200,65,60,0", ;
Format = "", ;
Height = 23, ;
Left = 104, ;
Name = "cboListe", ;
RowSource = "cListePret.nume_lista_preturi,datai,datas,id_pol", ;
RowSourceType = 2, ;
Style = 2, ;
TabIndex = 1, ;
Top = 21, ;
Visible = .F., ;
Width = 247, ;
ZOrderSet = 5
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Ct_grid_search1.lb_listePreturi' AS label WITH ;
Anchor = 3, ;
BackStyle = 0, ;
Caption = "Lista de preturi:", ;
FontItalic = .T., ;
Height = 17, ;
Left = 11, ;
Name = "lb_listePreturi", ;
TabIndex = 7, ;
Top = 25, ;
Visible = .F., ;
Width = 84, ;
ZOrderSet = 4
*< END OBJECT: BaseClass="label" />
ADD OBJECT 'lb_totalctva' AS lb_simplu WITH ;
Anchor = 41, ;
Caption = "Total val.vanz. cu TVA", ;
ForeColor = 7,118,177, ;
Left = 558, ;
Name = "lb_totalctva", ;
Top = 109, ;
Visible = .F.
*< END OBJECT: ClassLib="lb.vcx" BaseClass="label" />
ADD OBJECT 'lbTotal' AS titlufrumos WITH ;
Anchor = 3, ;
AutoSize = .T., ;
Caption = "TOTAL NIR:", ;
ForeColor = 7,118,177, ;
Height = 20, ;
Left = 20, ;
Name = "lbTotal", ;
TabIndex = 6, ;
Top = 40, ;
Width = 77, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="baza.vcx" BaseClass="label" />
ADD OBJECT 'tx_totalctva' AS _txbase WITH ;
Alignment = 3, ;
Anchor = 161, ;
FontName = "Comic Sans MS", ;
Height = 20, ;
InputMask = (get_mask(12,gnPa)), ;
Left = 678, ;
Name = "tx_totalctva", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabStop = .F., ;
Top = 107, ;
Value = 0, ;
Visible = .F.
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'txNir' AS _txbase WITH ;
Anchor = 3, ;
BackStyle = 1, ;
ControlSource = "thisform.ntotal", ;
DisabledBackColor = 255,255,255, ;
FontName = "Comic Sans MS", ;
Height = 21, ;
InputMask = (get_mask(12,gnPA)), ;
Left = 98, ;
Name = "txNir", ;
ReadOnly = .T., ;
SpecialEffect = 1, ;
TabIndex = 7, ;
Tag = "", ;
Top = 39, ;
Width = 152, ;
ZOrderSet = 11
*< END OBJECT: ClassLib="_tx_base.vcx" BaseClass="textbox" />
ADD OBJECT 'Urmator1' AS urmator WITH ;
Anchor = 240, ;
Left = 373, ;
Name = "Urmator1", ;
TabIndex = 2, ;
Tag = "", ;
Top = 324, ;
ZOrderSet = 9, ;
Imbuton1.Height = 27, ;
Imbuton1.Name = "Imbuton1", ;
Imbuton1.Width = 30, ;
Command1.Name = "Command1"
*< END OBJECT: ClassLib="baza.vcx" BaseClass="container" />
PROCEDURE Activate
this.WindowState = 2
ENDPROC
PROCEDURE aleg_cont_transfer
PARAMETERS tnIdGest
lcSql = [select (case when p.explicatie is null then s.explicatie else p.explicatie end) as explicatie,] +;
[c.cont, p.acont from VCORESP_CONT_TIPGEST c ] +;
[left join vplcont_analitic p on c.cont = p.cont and p.an = ?gnAn ] +;
[left join vplcont_sintetic s on c.cont = s.cont and s.an = ?gnAn]
pcFiltruOrig = [c.id_tipgest in (select nr_pag from vnom_gestiuni where id_gestiune = ?tnIdGest)]
pcfiltru = [1=2]
pcschema = []
pcorder = [cont,acont]
pccoloane = [cont,acont,explicatie]
pcTitlu = [Alegeti Contul de Transfer]
pcTitluColoane = [Cont,Analitic,Explicatie cont]
locauta = cauta_alfa(lcSql,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,'',.F.,pcFiltruOrig) && 11.07.2007
RETURN loCauta
ENDPROC
PROCEDURE analiza_cmp
PARAMETERS tcRul, tcAct
*!* 14.10.2006
*!* mutu.marius
*!* tratare achizitie articol cu mai multe preturi
LOCAL lcSql, lcCursor, lnSucces
PRIVATE poArticol
*** alocare numar NIR pt rulajele generate de CMP
*** dezaloc in caz ca trece de mai multe ori prin metoda asta
IF THISFORM.numar_plaja1.id_numar # 0
THISFORM.numar_plaja1.dezalocare_numar()
ENDIF
lnIdEnt = 0
THIS.numar_plaja1.id_entitate = lnIdEnt
THIS.numar_plaja1.tip = 4 && NIR PT CMP
THIS.numar_plaja1.serie = 2 && Asa transmit paramerii la procedura viz_config_serii din oproceduri_configurare.prg
THIS.numar_plaja1.alocare_numar()
lnNnir = THIS.numar_plaja1.numar_curent
***
SELECT * ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
INTO CURSOR crsTempRul
SELECT DISTINCT ID_ARTICOL, CONT FROM crsTempRul ;
INTO CURSOR crsArticoleTemp
&& pentru fiecare articol - se poate sa am acelasi articol cu mai multe preturi
SELECT crsArticoleTemp
SCAN
SCATTER NAME poArticol
&& selectez din stoc cantitatea si pretul existente pentru articolul curent
&& posibil mai multe gestiuni ???
lcSql = [SELECT cants+cant-cante as cante, pret, id_articol, id_gestiune, id_gestiune as id_gestout, cont,] + ;
[acont FROM stoc where an = ?gnAn and luna = ?gnluna and id_articol = ?poArticol.id_articol ] + ;
[and (cants+cant-cante)<>0 and TRIM(cont) = ?ALLTRIM(poArticol.cont)] + gcCondSucursala
lcCursorStoc = [tmpVer]
lnSucces = goExecutor.oExecute(lcSql, lcCursorStoc)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
RETURN
ENDIF
&& pentru fiecare pozitie articol achizitionat din articolul curent
SELECT crsTempRul
SCAN FOR cant <> 0 AND id_articol = poArticol.id_articol
SCATTER NAME orul
&& scot articolul curent din rulaj la pretul de achizitie
*!* IF RECCOUNT(lcCursorStoc) > 0
&& il scot chiar daca nu il am in stoc - pentru ca s-ar putea sa fie achizitionat cu mai multe preturi
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE cante WITH orul.cant, cant WITH 0, nnir WITH lnNnir, tva WITH 0
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
*!* ENDIF
SELECT crsTempRul
ENDSCAN
*** scot din stoc articolul curent - cantitatea si pretul existente - inainte de achizitia curenta
IF USED(lcCursorStoc)
SELECT (lcCursorStoc)
SCAN
SCATTER NAME ointr
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE cant WITH 0, cante WITH 0
GATHER NAME ointr
REPLACE nnir WITH lnNnir
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
SELECT (lcCursorStoc)
ENDSCAN
USE IN (lcCursorStoc)
ENDIF
&& aflu pretul mediu ponderat - selectez toate iesirile din rul_temp (articolele achizitionate si stocul precedent)
&& pentru articol, cont curente
&& un singur pret mediu ponderat pe articol, indiferent de gestiune
*!* 05.12.2006
*!* MARIUS.MUTU
*!* LA RETUR FACTURA FURNIZOR CANTITATE NEGATIVA, DACA E RETUR LA TOATA CANTITATEA DIN STOC,
*!* CANTITATEA TOTALA = 0, NUMERIC OVERFLOW LA CALCUL CMP
*!* AM FACUT ABS(CANTE)
SELECT SUM(ROUND(PRET*ABS(cante),gnPc)) AS valoare, SUM(ABS(cante)) AS cantitate, ID_ARTICOL, CONT ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
WHERE cante <> 0 AND ID_ARTICOL = poArticol.ID_ARTICOL AND CONT = poArticol.CONT ;
GROUP BY ID_ARTICOL, CONT ;
INTO CURSOR tCmp
SELECT tCmp
SCAN
SCATTER NAME ocmp
&& pretul mediu ponderat
lnCMP = ROUND(ocmp.valoare/ocmp.cantitate, gnPpret)
&& articol, gestiune, cantitate_totala (cantitate achizitionata cu toate preturile + stoc)
SELECT id_articol, id_gestiune, SUM(cante) AS cant ;
FROM (tcRul) WITH (BUFFERING = .T.) ;
WHERE ID_ARTICOL = ocmp.ID_ARTICOL AND cante <> 0 AND CONT = ocmp.CONT ;
GROUP BY id_gestiune, ID_ARTICOL ;
INTO CURSOR crsCantGest
&& adaug in rulaj intrarea cu toata cantitatea (achizitionata + stoc) la noul pret mediu ponderat
SELECT crsCantGest
SCAN
SCATTER NAME ocant
SELECT (tcRul)
APPEND BLANK
GATHER NAME orul
REPLACE PRET WITH lnCMP, cant WITH 0, cante WITH 0, tva WITH 0
GATHER NAME ocant
REPLACE nnir WITH lnNnir
REPLACE id_tip_rulaj WITH 2 && RULAJ ARTIFICIAL CMP
SELECT crsCantGest
ENDSCAN
USE IN crsCantGest
&& diferente de pret din rotunjiri
IF ROUND(lnCMP * ocmp.cantitate, gnPc) - ocmp.valoare <> 0
SELECT (tcAct)
APPEND BLANK
GATHER NAME poact
REPLACE nnir WITH lnNnir
REPLACE scd WITH ocmp.CONT, scc WITH IIF(LEFT(ocmp.cont,3) = '371', '378', '308'), ascd WITH '', ascc WITH ''
REPLACE suma WITH ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare
ENDIF
SELECT tCmp
ENDSCAN
USE IN tCmp
ENDSCAN && crsArticoleTemp
USE IN crsArticoleTemp
SELECT (tcRul)
&& program vechi
*!* PARAMETERS tcRul, tcAct
*!* *** alocare numar NIR pt rulajele generate de CMP
*!* *** dezaloc in caz ca trece de mai multe ori prin metoda asta
*!* IF thisform.numar_plaja1.id_numar # 0
*!* thisform.numar_plaja1.dezalocare_numar()
*!* ENDIF
*!* lnIdEnt = 0
*!* this.numar_plaja1.id_entitate = lnIdEnt
*!* this.numar_plaja1.tip = 4 && NIR PT CMP
*!* this.numar_plaja1.serie = 2 && Asa transmit paramerii la procedura viz_config_serii din oproceduri_configurare.prg
*!* this.numar_plaja1.alocare_numar()
*!* lnNnir = this.numar_plaja1.numar_curent
*!* ***
*!* SELECT * FROM (tcRul) WITH (BUFFERING = .T.) INTO CURSOR crsTempRul
*!* SELECT crsTempRul
*!* SCAN FOR cant <> 0
*!* SCATTER NAME orul
*!* lcCont = ALLTRIM(orul.cont)
*!* lcsql = [SELECT cants+cant-cante as cante, pret, id_articol, id_gestiune, id_gestiune as id_gestout, cont, acont FROM stoc where an = ?gnAn and luna = ?gnluna and id_articol = ?orul.id_articol and (cants+cant-cante)<>0 and TRIM(cont) =?lcCont]
*!* lcCursor = [tmpVer]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* If lnSucces < 0
*!* amessagebox(goExecutor.cEroare,0+16,"Eroare")
*!* Return
*!* ENDIF
*!* IF RECCOUNT(lcCursor) > 0
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE cante WITH orul.cant, cant WITH 0, nnir WITH lnNnir
*!* ENDIF
*!* SELECT (lcCursor)
*!* SCAN
*!* SCATTER NAME ointr
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE cant WITH 0, cante WITH 0
*!* GATHER NAME ointr
*!* REPLACE nnir WITH lnNnir
*!* SELECT (lcCursor)
*!* ENDSCAN
*!* USE IN (lcCursor)
*!*
*!* *!* SELECT (tcRul)
*!* *!* LOCATE
*!* && aflu pretul mediu ponderat
*!* SELECT SUM(ROUND(pret*cante,gnPc)) as valoare, SUM(cante) as cantitate, id_articol, cont ;
*!* FROM (tcRul) WITH (BUFFERING = .T.) ;
*!* WHERE cante <> 0 AND id_articol = orul.id_articol ;
*!* GROUP BY id_articol, cont ;
*!* INTO CURSOR tCmp
*!*
*!* SELECT tCmp
*!* SCAN
*!* SCATTER NAME ocmp
*!* lnCMP = ROUND(ocmp.valoare/ocmp.cantitate,gnPc)
*!*
*!* SELECT id_gestiune, SUM(cante) as cant FROM (tcRul) WITH (BUFFERING = .T.) ;
*!* WHERE id_articol = ocmp.id_articol AND cante <> 0 AND cont = ocmp.cont ;
*!* GROUP BY id_gestiune, id_articol ;
*!* INTO CURSOR crsCantGest
*!*
*!* SELECT crsCantGest
*!* SCAN
*!* SCATTER NAME ocant
*!* SELECT (tcRul)
*!* APPEND BLANK
*!* GATHER NAME orul
*!* REPLACE pret WITH lnCMP, cant WITH 0, cante WITH 0
*!* GATHER NAME ocant
*!* REPLACE nnir WITH lnNnir
*!* SELECT crsCantGest
*!* ENDSCAN
*!* USE IN crsCantGest
*!* IF ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare <> 0
*!* SELECT (tcAct)
*!* APPEND BLANK
*!* GATHER NAME poact
*!* REPLACE nnir WITH lnNnir
*!* REPLACE scd WITH ocmp.cont, scc WITH '308 ', ascd WITH '', ascc WITH ''
*!* REPLACE suma WITH ROUND(lnCMP*ocmp.cantitate,gnPc) - ocmp.valoare
*!* ENDIF
*!* SELECT tCmp
*!* ENDSCAN
*!* USE IN tCmp
*!* SELECT crsTempRul
*!* ENDSCAN
*!* USE IN crsTempRul
*!* SELECT (tcRul)
ENDPROC
PROCEDURE assign_analitic
PARAMETERS tcCont,pcAct,pcRul
PRIVATE pcCont,pcAct,pcRul,pParamP,pParamS
STORE 0 TO pParamP,pParamS
lcAnalitic = ''
lcAlias = ALIAS()
pcCont = ALLTRIM(tcCont)
lcSel = [SELECT * from ] + gcs + [.config_analitice WHERE cont = '] + ALLTRIM(pcCont) + [']
lcCursor = 'crs_cfg_ana'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
aMESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_cfg_ana')=0
USE IN crs_cfg_ana
lnSucces = -1
ENDIF
ENDIF
IF lnSucces > 0
SELECT crs_cfg_ana
SCATTER NAME ocfg
lcCampPrefix = NVL(ALLTRIM(ocfg.camp_leg_prefix),'')
lcCampSufix = NVL(ALLTRIM(ocfg.camp_leg_sufix),'')
IF !EMPTY(lcCampPrefix)
IF TYPE('&pcRul..'+lcCampPrefix) # 'U'
pParamP = &pcRul..&lcCampPrefix
ELSE
IF TYPE('&pcAct..'+lcCampPrefix) # 'U'
pParamP = &pcAct..&lcCampPrefix
ENDIF
ENDIF
ENDIF
IF !EMPTY(lcCampSufix)
IF TYPE('&pcRul..'+lcCampSufix) # 'U'
pParamS = &pcRul..&lcCampSufix
ELSE
IF TYPE('&pcAct..'+lcCampSufix) # 'U'
pParamS = &pcAct..&lcCampSufix
ENDIF
ENDIF
ENDIF
lcSel = [{call fconturi_analitice('] + ALLTRIM(gcs) + [','] + ALLTRIM(pcCont) + [',0,] + TRANSFORM(pParamP) + [,] + TRANSFORM(pParamS) + [)}]
lcCursor = 'crs_analitice'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
&& iau Primul Simbol Analitic din Tabel - ordonat pt ca e selectat cu Distinct
IF lnSucces > 0
SELECT crs_analitice
GO top
lcAnalitic = ALLTRIM(acont)
ENDIF
&& verificare analiticului cu Planul de Conturi
IF lnSucces > 0
lcSel = [SELECT cont,acont from ] + gcs + [.vplcont_analitic WHERE cont = '] + ALLTRIM(pcCont) + [' and acont = '] + ALLTRIM(lcAnalitic) + [' and an = ] + TRANSFORM(gnAn)
lcCursor = 'crs_verific'
lnSucces = goExecutor.oExecute(lcSel,lcCursor)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,"Eroare")
ENDIF
ENDIF
IF lnSucces > 0
IF RECCOUNT('crs_verific')=0
lnSucces = -1
ENDIF
ENDIF
IF USED('crs_cfg_ana')
USE IN crs_cfg_ana
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF USED('crs_analitice')
USE IN crs_analitice
ENDIF
IF USED('crs_verific')
USE IN crs_verific
ENDIF
IF lnSucces < 0
lcAnalitic = ''
ENDIF
SELECT (lcAlias)
RETURN lcAnalitic
ENDPROC
PROCEDURE assign_values
PARAMETERS tcObjDestinatie, tcObjSursa1, tcObjSursa2
lcSelRul = this.ct_grid_order1.cnumecursor
lcOdest = ALLTRIM(tcObjDestinatie)
lcOsursa1 = ALLTRIM(tcObjSursa1)
lcOsursa2 = ALLTRIM(tcObjSursa2)
SELECT (lcSelRul)
FOR i = 1 TO FCOUNT()
lcNumeCol = FIELD(i)
IF TYPE('&lcOsursa1..'+lcNumeCol) # 'U'
&lcodest..&lcNumeCol = &lcosursa1..&lcNumeCol
ENDIF
IF TYPE('&lcOsursa2..'+lcNumeCol) # 'U'
IF EMPTY(&lcodest..&lcNumeCol)
&lcodest..&lcNumeCol = &lcosursa2..&lcNumeCol
ENDIF
ENDIF
ENDFOR
ENDPROC
PROCEDURE bon_fiscal
PRIVATE pnSumaMp500
pnSumaMp500 = thisform.ct_factura1.txTotal.Value
ocasamp500 = CREATEOBJECT('frm_tichete',pnSumaMp500)
ocasamp500.show(1)
RELEASE ocasamp500
ENDPROC
PROCEDURE calcul_pret_vanzare
PARAMETERS tcTabel
LOCAL lnPretv, lnTvav, lnCoefAdaos, lnSuma, lcTabel
STORE 0 TO lnPretv, lnTvav, lnCoefAdaos, lnSuma
IF EMPTY(tcTabel)
lcTabel = this.ct_grid_order1.cnumecursor
ELSE
lcTabel = ALLTRIM(tcTabel)
ENDIF
SELECT (lcTabel)
SUM ROUND(ABS(cante*pret),gnPc) TO lnSuma
IF lnSuma <> 0
lnCoefAdaos = (pcobj.totftva-lnSuma)/lnSuma && coeficientul mediu de adaos
ELSE
lnCoefAdaos = 1
ENDIF
SELECT (lcTabel)
SET FILTER TO
REPLACE ALL proc_tvav WITH pcobj.proc_tva, procent WITH ROUND(lnCoefAdaos*100,2)
CALCULATE cnt() TO lnRecords
i = 0
SCAN
i = i + 1
REPLACE pretv WITH ROUND(pret + ROUND(pret*lnCoefAdaos,gnPc),gnPc) && modificare 14.09.2007
REPLACE tvav WITH ROUND(pretv*(proc_tvav-1),gnPc)
lnPretv = lnPretv + ROUND(pretv*cante,gnPC)
lnTvav = lnTvav + ROUND(tvav*cante,gnPC)
IF i = lnRecords
IF lnPretv # pcobj.totftva
REPLACE pretv WITH pretv + ROUND((pcobj.totftva - lnPretv)/cante,gnPc)
ENDIF
IF lnTvav # pcobj.tottva
REPLACE tvav WITH tvav + ROUND((pcobj.tottva - lnTvav)/cante,gnPc)
ENDIF
ENDIF
ENDSCAN
ENDPROC
PROCEDURE calcul_sume
Parameters tcTabel
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* Model =-1 : Nota fara contabilizare
*!* Model = 1 : Nota simpla cu contabilizare
*!* Model = 2 : NIR
*!* Model = 3 : BON/FACTURA VANZARE
*!* Model = 4 : Retur BON/FACTURA VANZARE
*!* Model = 5 : Transfer
*!* Model = 6 : Retur Transfer
*!* Model = 7 : Diferenta de pret
*!* Param1 = 1 : En-detail
*!* Param1 = 2 : En-gros
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
*!* daca gnTipGest = 6 (marfa la pret de vanzare) - valoarea fara tva = valoarea cu tva - valoarea cu tva
Store 0 To lnTotBaza, lnTotTva, lnBazaDiscount, lnBazaAdaos, lnTvaDiscount, lnTvaAdaos
If Pcount() = 0
tcTabel = Alltrim(This.ct_grid_order1.cnumecursor)
Endif
*lcCant = [cant] + IIF(INLIST(oset.model, 3, 4),[e],[]) && 3 = bon, bon retur
lcCant = This.osel_dr.cantitate
llCalculFact = Iif(oset.param1 = 2, .F., .T.) && daca e En-gros (vanzare) nu mai recalculez Total factura
If This.ct_discount1.Visible = .T.
lnBazaDiscount = This.ct_discount1.baza_discount
lnTvaDiscount = This.ct_discount1.tva_discount
Endif
If oset.adaos
Do Case
Case oset.param1 = 1 && factura de vanzare en-detail
Select (tcTabel)
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(&lcCant*pretv - &lcCant*Pret,gnPc) To lnBazaAdaos
*!* modificare 31.10.2006
*!* SUM ROUND(ROUND((pretv+tvav)/proc_tvav,gnPc)*&lcCant,gnPc) TO lnTotBaza
*!* SUM ROUND(ROUND((pretv+tvav)*(proc_tvav-1)/proc_tvav,gnPc)*&lcCant,gnPc) TO lnTotTva
Sum Round(pretv*&lcCant,gnPc) To lnTotBaza
Sum Round(Round(pretv*&lcCant,gnPc)*(proc_tvav-1),gnPc) To lnTotTva
*!* modificare 31.10.2006 ^
Else
Sum Round(Round(pretv+tvav,gnPc)*&lcCant,gnPc) To lnTotctva
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTva
lnTotBaza = lnTotctva - lnTotTva
lnBazaAdaos = lnTotBaza - thisform.nTotal
EndIf
*!* v 2.0.18 ^
*!* modificare v 2.0.6
If oset.id_set = 75 && Transfer catre gestiune la pret de vanzare
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(tvav*&lcCant,gnPc) To lnTotTvav
Else
Sum Round(Round(pretv*&lcCant,gnPc)*(proc_tvav-1),gnPc) To lnTotTvav
EndIf
Thisform.tx_totalctva.Value = lnTotTvav + lnTotBaza
Endif
*!* modificare v 2.0.6 ^
Case oset.param1 = 2 && factura de vanzare en-gros
This.ct_factura1.totctva = pcobj.totctva
This.ct_factura1.totftva = pcobj.totftva
This.ct_factura1.tva = pcobj.tottva
Select (tcTabel)
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
lnTotBaza = This.ntotal
lnBazaAdaos = This.ct_factura1.totftva - Thisform.ntotal
This.ct_adaos1.baza_adaos = lnBazaAdaos
Otherwise
Select (tcTabel)
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
lnTotBaza = This.ntotal
Sum Round(Round(&lcCant*Pret,gnPc) * (proc_tva-1),gnPc) To lnTotTva
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
If gnTipGest <> 6
Sum Round(&lcCant*pretv - &lcCant*Pret,gnPc) To lnBazaAdaos
Else
Sum Round(Round(pretv+tvav,gnPc)*&lcCant,gnPc) To lnTotctvaOther
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTvaOther
lnTotfTvaOhter = m.lnTotctvaOther - m.lnTotTvaOther
lnBazaAdaos = m.lnTotfTvaOhter - m.lnTotBaza
EndIf
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
Endcase
Select (tcTabel)
Sum procent To lnProcent
Calculate Cnt() To lnNrRecord
lnProcent = lnProcent/lnNrRecord
This.ct_adaos1.baza_adaos = lnBazaAdaos
This.ct_adaos1.proc_adaos = lnProcent
Else
Select (tcTabel)
Sum Round(&lcCant*Pret,gnPc) To Thisform.ntotal
lnTotBaza = Thisform.ntotal
Sum Round(Round(&lcCant*Pret,gnPc) * (proc_tva-1),gnPc) To lnTotTva
Endif
If oset.factura And llCalculFact
*!* modificare facturare in valuta 21.09.2007
If oset.cursval
Select (tcTabel)
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(&lcCant*pretvval,gnPc),Round(Round(&lcCant*pretvval,gnPc)*(proc_tvav-1),gnPc) To lnTotalFTvaVal,lnTotalTvaVal
Else
Sum Round(Round(pretvval*proc_tvav,gnPVal)*&lcCant,gnPVal) to lnTotalCTvaVal
Sum Round(Round(Round(pretvval*proc_tvav,gnPVal)*&lcCant,gnPVal)*(proc_tvav-1),gnPVal) To lnTotalTvaVal
lnTotalFTvaVal = m.lnTotalCTvaVal - m.lnTotalTvaVal
EndIf
*!* v 2.0.18 ^
With Thisform.ct_factura2
.totftva = lnTotalFTvaVal
.tva = lnTotalTvaVal
.totctva = lnTotalFTvaVal + lnTotalTvaVal
.Refresh()
Endwith
lnTotBaza = Round(lnTotalFTvaVal * poAct.Curs,gnPc)
lnTotTva = Round(lnTotalTvaVal * poAct.Curs,gnPc)
Endif
*!* modificare facturare in valuta 21.09.2007 ^
With This.ct_factura1
If oset.model = 2 && NIR
lnBazaAdaos = 0
lnTvaAdaos = 0
Endif
.totftva = lnTotBaza - lnBazaDiscount
.tva = lnTotTva - lnTvaDiscount
.totctva = .totftva + .tva
Endwith
Endif
*!* modificare v 2.0.6
Do Case
Case INLIST(oset.id_set , 216,257) && Intrare din transfer de la gest. valorica la pret de vanz.
Select (tcTabel)
*!* v 2.0.18 - am calculat total cu tva, total tva, total fara tva = diferenta, adaos
If gnTipGest <> 6 && calculez valftva si valtva pornind de la pretv in loc de (pretv+tvav)
Sum Round(pretv*cant,gnPc) To lnTotBaza216
Sum Round(tvav*cant,gnPc) To lnTotTvav
Else
Sum Round(Round(pretv+tvav,gnPc)*&lcCant,gnPc) To lnTotctva216
Sum Round(Round((pretv+tvav)*&lcCant,gnPc)*(proc_tvav-1)/proc_tvav,gnPc) To lnTotTvav
lnTotBaza216 = lnTotctva216 - lnTotTvav
EndIf
*!* v 2.0.18 ^
Thisform.tx_totalctva.Value = lnTotTvav + lnTotBaza216
*!* modificare v 2.0.8
*!* modificare v 2.0.13
*!* modificare v 2.0.15 - protocol
Case Inlist(oset.id_set, 230, 232, 233,261) && protocol
Select (tcTabel)
Sum Round((pretv+tvav)*cante,gnPc) To lnTotal230
Thisform.tx_totalctva.Value = lnTotal230
*!* modificare v 2.0.15 ^
*!* modificare v 2.0.13 ^
*!* modificare v 2.0.8 ^
Endcase
*!* modificare v 2.0.6 ^
This.txNir.Refresh
This.ct_factura1.Refresh
This.ct_factura2.Refresh
This.ct_adaos1.Refresh
ENDPROC
PROCEDURE caut_gestiune
PARAMETERS tnFel
IF EMPTY(tnFel)
tnFel = 0
ENDIF
IF tnFel = 1 && pret vanzare
lcCond = [nr_pag = 6]
ELSE
lcCond = [nr_pag in (2,3,4,5)]
ENDIF
pcselect = [select * from vnom_GESTIUNI]
pcFiltruOrig = [inactiv = 0 and ] + lcCond
pcfiltru = [1=2]
pcschema = []
pcorder = [NUME_gestiune]
pccoloane = [nume_gestiune,cgest]
pcTitlu = [Nume Gestiune Destinatie]
pcTitluColoane = [Gestiune,Indicativ]
locauta = cauta_alfa(pcselect,pcfiltru,pcschema,pcorder,pccoloane,pcTitlu,pcTitluColoane,'',.F.,pcFiltruOrig) && 11.07.2007
RETURN locauta
ENDPROC
PROCEDURE compensare
IF USED('xcont')
SELECT xcont
LOCATE FOR Pozitie # Fel_Cont AND Cu_Inregistrari = 1
IF FOUND()
pcContul = ALLTRIM(cont_part)
pnIdPart = idPart
pcNume = numepart
pnFelCont = Fel_Cont
pcDenumire = ALLTRIM(explic_cont)
pcCond = [ an = ?gnAn and luna = ?gnluna]
llval = .F. && Deocamdata e doar in lei
IF llval
pccond= pccond + [ and ABS(i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit)>0 and i.id_valuta = ] + ALLTRIM(STR(&lcObj..id_valuta))
ELSE
pccond= pccond + [ and (i.precvaldeb + i.valdebit - i.precvalcred - i.valcredit = 0) ]
ENDIF
pcselect = ['select i.* FROM ] + gcs + [.Vireg_parteneri i where 2=2 ']
pcfiltru = [ i.id_part = ?pnIdPart AND ABS(i.precdeb + i.debit - i.preccred - i.credit)<>0 AND i.cont = ?pcContul and ] + pcCond
pcschema = ['']
pcorder = ['']
PRIVATE podateintrod
STORE '' TO podateintrod
gencursor('podateintrod','crs_actcv',pcselect,pcfiltru,[''],'')
lcFis = 'actcv' + ALLTRIM(pcContul)
IF USED(lcFis)
USE IN &lcFis
ENDIF
IF pnFelCont = 0
lcsel = [SELECT *, ACONT AS ASCC, nume_val as numeval, curs as cursschimb, precdeb + debit as totctva, preccred+credit as achitat, ] +;
[precvaldeb + valdebit AS sumaval, precVALcred+VALcredit as achitatval, ] +;
[.f. as ales, 00000000000000.0000 as sumaachi, 000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] +;
[FROM crs_actcv INTO CURSOR ] + lcFis + [ READWRITE ]
ELSE
lcsel = [SELECT *, ACONT AS ASCD, nume_val as numeval, curs as cursschimb, preccred + credit as totctva, precdeb+debit as achitat, ] + ;
[precvalcred + valcredit as sumaval, precVALdeb+VALdebit as achitatval, ] + ;
[.f. as ales, 00000000000000.0000 as sumaachi, 00000000000000.0000 as sumaachi2, 00000000000000.0000 as achilei, 00000000000000.0000 as difplus, 00000000000000.0000 as difminus, 000000.0000 as cursval, 000000.0000 as cursdif ] + ;
[FROM crs_actcv INTO CURSOR ] + lcFis + [ READWRITE ]
ENDIF
&lcsel
SELECT (lcFis)
OPLATA=CREATEOBJECT('ocompensari')
* oplata.txtNume.value =lcNume
OPLATA.titlufrumos1.CAPTION = pcDenumire + [: ] + pcNume
OPLATA.pcFis = lcFis
OPLATA.SUMA = THIS.ct_factura1.totctva
OPLATA.pnFelCont = pnFelCont
OPLATA.SHOW(1)
*!* SELECT (lcfis)
*!* CALCULATE cnt() FOR ales TO LnBife
*!* IF LnBife=1
*!* LOCATE FOR ALES
*!* &M=nract
*!* ELSE
*!* &M=0
*!* ENDIF
ENDIF
ENDIF
ENDPROC
PROCEDURE do_adauga
PRIVATE pnpretvtva
pnpretvtva = 0
lcNomArt = this.ct_grid_search1.cnumecursor
SELECT (lcNomArt)
SCATTER NAME lorec BLANK MEMO
*!* 18.050.2007
*!* marius.mutu
*!* articolul nou sa fie initializat ca gestionabil (orice program fara ROAPRETURI)
IF TYPE('gcNumeProgram') = 'C' AND gcNumeProgram <> 'ROAPRETURI'
loRec.in_stoc = 1
ELSE
loRec.in_crm = 1
ENDIF
*!* 18.050.2007 ^
PRIVATE poCote_tva
STORE '' TO poCote_tva
DO Adauga_Modifica_Inregistrare WITH [catalog_articole],lorec,,[INSERT]
this.ct_grid_search1.actualizeaza_grid
ENDPROC
PROCEDURE do_modifica
lcNomArt = this.ct_grid_search1.cnumecursor
SELECT (lcNomArt)
SCATTER NAME lorec
PRIVATE poCote_tva
STORE '' TO poCote_tva
lnId = lorec.id_articol
DO Adauga_Modifica_Inregistrare WITH [catalog_articole],lorec,lnId,[UPDATE]
this.ct_grid_search1.actualizeaza_grid
ENDPROC
PROCEDURE do_sterge
LOCAL lnRecno, lcSelRul
lcSelRul = this.ct_grid_order1.cnumecursor
SELECT (lcSelRul)
*SCATTER NAME osterg
lnRecno = RECNO()
DELETE
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - AM PUS RECNO('RUL_TEMP') IN CURSORUL DE TRANSFER - LA STERGERE SA POT STERGE SI LINIA CORESPONDENTA DIN CRSTRANSFER
IF INLIST(oset.model,5,6,7) AND USED('crsTransfer')
SELECT crsTransfer
GOTO lnRecno
DELETE
this.ct_grid_order1.cb_tx_gestin.SetFocus()
ENDIF
this.ct_grid_order1.actualizeaza_grid
this.calcul_sume
ENDPROC
PROCEDURE do_termin
If This.inainte_de_do_termin()
lcSelRul = This.ct_grid_order1.cnumecursor
lcSelSt = This.ct_grid_search1.cnumecursor
gnButon = 1
pnButon = 1
Buton = 1
pnIesire = 1
*this.Hide
If Type('pnTipCasaMarcat') = 'U'
pnTipCasaMarcat = 1
Endif
If Type('glListareBonFiscal')<>'U' And glListareBonFiscal And pnTipCasaMarcat#1
lcStringmp500 = ''
Thisform.bon_fiscal()
If gnButon<>1
Return
Endif
Endif
Select actactan
If !Inlist(poact.id_set, 26001) && PV de productie
This.AlwaysOnTop = .F.
Do Form verificare With .T.,.T.,3 && cu buton de precedent
This.AlwaysOnTop = .T.
Endif
Do Case
Case gnButon = 3
*onirbon.visible = .t.
Do nrord With lcSelRul
Otherwise
This.Release
Endcase
Endif
ENDPROC
PROCEDURE do_verifica_sume
tcTabel = Alltrim(This.ct_grid_order1.cnumecursor)
Select (tcTabel)
Replace id_valuta_vanz With poAct.id_valuta_vanz All
Calculate Sum(Round(pretvval*cante,gnPc)),Sum(Round(pretv*cante,gnPc)) To lnTotalVal,lnTotalLei
lnTotalVal = Round(lnTotalVal*poAct.Curs,gnPc)
If lnTotalVal <> lnTotalLei
lnDiferenta = lnTotalVal - lnTotalLei
lnSemn = Sign(lnDiferenta)
*!* lnDiferenta = Abs(lnDiferenta)
lnDiferenta = lnDiferenta
lnDiferentaPretU = Exp((-1)*gnPc*Log(10))
lnModificari = 1
Do While lnModificari <> 0
lnModificari = 0
Select (tcTabel)
Scan
lnDiferentaPret = Round(lnDiferentaPretU*cante,gnPc)
lnSemnPret = Sign(lnDiferentaPret)
If Abs(lnDiferentaPret) <= Abs(lnDiferenta)
lnDiferenta = lnDiferenta - lnSemn * lnDiferentaPret
Replace pretv With pretv + lnSemn * lnSemnPret * lnDiferentaPretU
lnModificari = lnModificari + 1
Endif
Endscan
Enddo
Endif
ENDPROC
PROCEDURE inainte_de_do_termin
Local lcSelRul, lcSelRulGr,lcContTr, lcAcontTr, lcRul, lcSql, lcCursor, lnSucces, lcCant, lnIdGestiuneTr
Store '' To lcContTr, lcAcontTr
lnIdGestiuneTr = 0
lcSelRulGr = This.ct_grid_order1.cnumecursor
Local lnRecno
lnRecno = 0
pnBazaV341 = 0
pnBazaV346 = 0
pnBazaVProd = 0
pnBazaVAmb = 0
pnBazaVal341 = 0
pnBazaVal346 = 0
pnBazaValProd = 0
pnBazaValAmb = 0
*!* 15.03.2007
Local llY
llY = .F.
*!* 15.03.2007 ^
*!* modificare facturare in valuta 24.09.2007
If oset.cursval
Thisform.do_verifica_sume()
Endif
*!* modificare facturare in valuta 24.09.2007 ^
Thisform.compensare && PT 542 ; se completeaza actactanul in adunadate
*** completez tabela ACTACTAN
If Type('oitem') = 'O'
If Pemstatus(oitem,'adunadate',5)
oitem.adunadate()
Endif
Endif
***
If Used('rul_temp')
Use In rul_temp
Endif
&& completez RUL_TEMP
lcRul = Alltrim(This.osel_dr.cfrom)
lcSql = [select v.*,0 as pretvval,0 as curs,0 as id_valuta_vanz,0 as id_jtva_coloana, v.id_gestiune as id_gestin, v.nume_gestiune as gestin, v.id_gestiune as id_gestout, v.nume_gestiune as gestout, 0 as nuInConturiX]
&& VRUL_OBINV NU ARE CODMATF, LOT, ADATA_EXPIRARE SI NU SE MAI SALVEAZA LOT, ADATA_EXPIRARE IN RUL
IF 'obinv'$LOWER(lcRul)
lcSql = lcSql + [,rpad(' ',50,' ') as codmatf, rpad(' ',50,' ') as lot, to_date('') as adata_expirare]
ENDIF
lcSql = lcSql + [ from ] + lcRul + [ where 1=2]
lcCursor = [rul_temp]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
If lnSucces < 0
Return .F.
Endif
Select rul_temp
Append From Dbf(lcSelRulGr)
lcSelRul = 'rul_temp'
If oset.productie
Do Case
Case Alltrim(Upper(oset.formproduc))='FRM_ALEGE_PROD_CANT'
Thisform.intrare_produs()
Case INLIST(Alltrim(Upper(oset.formproduc)),'FRM_ALEGE_SECTIE_COMANDA','FRM_ALEGE_SECTIE')
Select actactan
*!* modificare 03.09.2007
*!* Replace id_sectie With pnId_sectie, sectie With pcSectie For Inlist(nr_nota,1,2,5)
Replace id_sectie With 0, sectie With '' For Inlist(nr_nota,4)
Endcase
Endif
*!* 15.03.2007
*!* pentru intrare dintr-o gestiune tinuta doar valoric - trebuie contul
*!* daca exista Y (trebuie sa aleaga contul de transfer)
Select xscd As SCD, xscc As scc From XNOTE Where id_set = oset.id_set ;
AND (Inlist(Upper(Alltrim(xscd)),'Y') Or Inlist(Upper(Alltrim(xscc)),'Y'));
INTO Cursor crsY
If _Tally > 0 Or Inlist(oset.model, 5, 6, 7)
llY = .T.
Endif
Use In crsY
*!* 15.03.2007 ^
If Inlist(oset.model, 5, 6, 7) && TRANSFER, RETUR TRANSFER
Select (lcSelRul)
lnRecno = Recno()
If oset.id_set = 211 && TRANSFER GESTIUNE OB INV IN FOLOSINTA PE PERSOANA CATRE O MAGAZIE OB INV IN FOLOSINTA
Replace id_responsabil With 0, nresp With ''
Endif
If Used('crsTransfer')
Append From Dbf('crsTransfer')
If oset.id_set = 210 && TRANSFER MAGAZIE OB INV IN FOLOSINTA CATRE O GESTIUNE OB INV IN FOLOSINTA PE PERSOANA
Replace id_responsabil With 0, nresp With '' For Recno() > lnRecno
Endif
*!* modificare 22.05.2007
*** se modifica pretul de ach. pentru intrari
If oset.id_set = 218
Replace Pret With pretv For cant <> 0
Endif
*!* modificare 22.05.2007 ^
Endif
If !Inlist(oset.id_set,89, 210, 211, 212) && (FARA TRANSFER INTRE PERSOANE)
If Inlist(oset.id_seldr,11,16,18) && achizitie
poGestTr = This.caut_gestiune()
Endif
If oset.id_seldr = 12 && vanzare
poGestTr = This.caut_gestiune(1)
Endif
If Empty(poGestTr.Id_gestiune) && renunt
Return .F.
Endif
&& Dc poGestTr.Id_gestiune nu e empty aleg contul de transfer si analiticul
loCont = This.aleg_cont_transfer(poGestTr.Id_gestiune)
If Empty(loCont.Cont) && renunt
Return .F.
Endif
Select (lcSelRul)
Replace All id_gestin With poGestTr.Id_gestiune, gestin With poGestTr.nume_gestiune &&FOR cant <> 0
Do Case
Case Inlist(oset.model,5,7) && transfer
Replace All Id_gestiune With poGestTr.Id_gestiune, nume_gestiune With poGestTr.nume_gestiune For cant <> 0
Case oset.model = 6 && retur
Replace All Id_gestiune With poGestTr.Id_gestiune, nume_gestiune With poGestTr.nume_gestiune For cante <> 0
Endcase
lcContTr = loCont.Cont
lcAcontTr = loCont.acont
Select actactan
Replace All SCD With lcContTr, ascd With lcAcontTr, id_gestin With poGestTr.Id_gestiune, gestin With poGestTr.nume_gestiune For Upper(Alltrim(SCD)) = 'Y'
Select (lcSelRul)
If oset.model = 6
lcCant = Thisform.osel_dr.cantitate
Else
lcCant = [cant]
Endif
Replace All Cont With lcContTr, acont With lcAcontTr For &lcCant <> 0
*!* REPLACE ALL id_gestiunec WITH id_gestout FOR cant <> 0
*!* REPLACE ALL id_gestiunec WITH id_gestin FOR cante <> 0
*!* REPLACE ALL nuInConturiX WITH 1 FOR cant <> 0
Endif
Select (lcSelRul)
Replace All id_gestiunec With id_gestout For cant <> 0
Replace All id_gestiunec With id_gestin For cante <> 0
Replace All nuInConturiX With 1 For cant <> 0
Endif
Select (lcSelRul)
If oset.param1 = 2 And oset.factura && factura en-gros
This.calcul_pret_vanzare(lcSelRul)
*!* modificare 31.10.2006
pnTotalFactura = This.ct_factura1.totctva
pnBazaFactura = This.ct_factura1.totftva
pnTvaFactura = This.ct_factura1.tva
Select rul_temp
Calculate Sum(Round(Round(pretv,gnPc)*cante,gnPc)),;
SUM(Round(Round(Round(pretv,gnPc)*cante,gnPc)*(proc_tvav-1),gnPc)) ;
TO lnBazaFactura,lnTvaFactura
Do Case
Case lnBazaFactura <> pnBazaFactura And lnTvaFactura <> pnTvaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(23) + [Baza] + Space(18) + [TVA] + CRLF + ;
[Introduse:] + Space(5) + Str(pnBazaFactura,20,gnPc) + [ ] + Str(pnTvaFactura,20,gnPc) + ;
CRLF +;
[Calculate:] + Space(5) + Str(lnBazaFactura,20,gnPc) + [ ] + Str(lnTvaFactura,20,gnPc) + ;
CRLF + CRLF + ;
[Doriti sa continuati?]
Case lnBazaFactura <> pnBazaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(23) + [Baza] + CRLF + ;
[Introduse:] + Space(5) + Str(pnBazaFactura,20,gnPc) + CRLF+;
[Calculate:] + Space(5) + Str(lnBazaFactura,20,gnPc) + CRLF + CRLF + ;
[Doriti sa continuati?]
Case lnTvaFactura <> pnTvaFactura
lcMesaj = [Diferenta intre sumele introduse si cele rezultate din calcul:] + CRLF + ;
SPACE(24) + [TVA] + CRLF + ;
[Introduse:] + Space(5) + Str(pnTvaFactura,20,gnPc) + CRLF +;
[Calculate:] + Space(5) + Str(lnTvaFactura,20,gnPc) + CRLF + CRLF + ;
[Doriti sa continuati?]
Otherwise
lcMesaj = []
Endcase
If !Empty(lcMesaj)
If aMessagebox(lcMesaj,4+32+256,"Confirmare")==7
Return .F.
Else
pnBazaFactura = lnBazaFactura
pnTvaFactura = lnTvaFactura
pnTotalFactura = lnBazaFactura + lnTvaFactura
Endif
Endif
Else
pnTotalFactura = This.ct_factura1.totctva
pnBazaFactura = This.ct_factura1.totftva
pnTvaFactura = This.ct_factura1.tva
*!* modificare 31.10.2006 ^
Endif
pnDiscount = This.ct_discount1.baza_discount
pnTVADiscount = -This.ct_discount1.tva_discount
pnProcDiscount = This.ct_discount1.pnTva
pnIdJtvaDiscount = This.ct_discount1.nid_jtva_coloana
pnIdTvaDiscount = This.ct_discount1.nid_tva
*!* pnTotalFactura = THIS.ct_factura1.totctva
*!* pnBazaFactura = THIS.ct_factura1.totftva
*!* pnTvaFactura = THIS.ct_factura1.tva
pnBazaNir = [pret*cant]
pnBazaBon = [pret*cante]
pnTotalBon = This.ntotal
pnTotalNir = This.ntotal
*pnTvaNir = [tva*cant]
pnTvaNir = [pret*cant]
*!* modificari 31.10.2006
*!* *pnBazaVanz = [pretv*cante]
*!* pnBazaVanz = [ROUND(ROUND((pretv+tvav)/proc_tvav,gnPc)*cante,gnPc)]
*!* *pnTvaVanzIn = [tvav*cant]
*!* *pnTvaVanzIn = [pretv*cant]
*!* pnTvaVanzIn = [ROUND(ROUND((pretv+tvav)*(proc_tvav-1)/proc_tvav,gnPc)*cant,gnPc)]
*!* *pnTvaVanzOut = [tvav*cante]
*!* *pnTvaVanzOut = [pretv*cante]
*!* pnTvaVanzOut = [ROUND(ROUND((pretv+tvav)*(proc_tvav-1)/proc_tvav,gnPc)*cante,gnPc)]
pnBazaVanz = [ROUND(pretv*cante,gnPc)]
pnBazaVal = [ROUND(pretvval*cante,gnPVal)]
pnBazaValVanz = [ROUND(ROUND(pretvval*curs,gnPC)*cante,gnPC)]
*** 04.07.2007 - modificat in calcul si raport rap_nirtransfer_vanz valoare tva
*pnTvaVanzIn = [ROUND(ROUND(pretv*cant,gnPc)*(proc_tvav-1),gnPc)]
*!* modificare 17.09.2007
pnTvaVanzIn = [ROUND(tvav*cant,gnPc)]
*!* pnTvaVanzIn = [ROUND(ROUND(pretv*cant,gnPc)*(proc_tvav-1),gnPc)]
*!* modificare 17.09.2007 ^
*pnTvaVanzOut = [ROUND(ROUND(pretv*cante,gnPc)*(proc_tvav-1),gnPc)]
*!* modificare 17.09.2007
*!* pnTvaVanzOut = [ROUND(tvav*cante,gnPc)]
pnTvaVanzOut = [ROUND(ROUND(pretv*cante,gnPc)*(proc_tvav-1),gnPc)]
pnTvaVanzOut2 = [Round(tvav*cante,gnPc)] && modificare v 2.0.8
pnTvaVal = [ROUND(ROUND(pretvval*cante,gnPVal)*(proc_tvav-1),gnPVal)]
pnTvaValVanz = [ROUND(ROUND(ROUND(pretvval*curs,gnPC)*cante,gnPC)*(proc_tvav-1),gnPC)]
*!* modificare 17.09.2007 ^
***
If oset.id_set = 104 And gnImputare = 1
pnBazaVanz = [ROUND(pret_imputare*cante,gnPc)]
pnTvaVanzOut = [ROUND(ROUND(pret_imputare*cante,gnPc)*(proc_tvav-1),gnPc)]
Endif
*!* modificari 31.10.2006 ^
pnAdaosTotal = This.ct_adaos1.baza_adaos
pnBazaPlusAdaos = pnTotalBon + pnAdaosTotal
lcCant = Lower(Alltrim(This.osel_dr.cantitate))
If Inlist(oset.model, 5, 6, 7) && transfer
lcCant = 'cante'
Endif
pnAdaos = [pretv*] + lcCant + [-pret*] + lcCant
Select * From XNOTE Where id_set = oset.id_set Into Cursor crsNota
lcField = ''
Select xact
Go Top
For i = 1 To Fcount()
If Upper(Alltrim(Evaluate(Field(i)))) = 'SUMA'
lcField = Field(i)
Exit
Endif
Endfor
If Empty(lcField)
Return .T.
Endif
Select Distinct xscd As SCD, xscc As scc, Padr(&lcField,100,' ') As eticheta,x34 From crsNota ;
WHERE Inlist(Upper(Alltrim(xscd)),'X') Or Inlist(Upper(Alltrim(xscc)),'X');
INTO Cursor crsIcsi
If _Tally > 0
Select crsIcsi
Scan
lcEticheta = Lower(Alltrim(eticheta))
If Empty(lcEticheta)
aMessagebox('NECONFIGURAT xnote.dbf !',48,'Atentie!')
Loop
Endif
lcSCD = Upper(Alltrim(SCD))
lcSCC = Upper(Alltrim(scc))
lcIDJtva = Upper(Alltrim(x34))
If Inlist(oset.model, 5, 6, 7) && TRANSFER, RETUR TRANSFER
If lcSCD = 'Y'
lcSCD = lcContTr
Endif
If lcSCC = 'Y'
lcSCC = lcContTr
Endif
Endif
&& despart sumele pe gestiuni si sectii - pt formarea corecta a analiticelor
If 'pntvavanz' $ lcEticheta Or 'pnadaos' $ lcEticheta
*!* IF 'pnadaos'$lcEticheta
If Type('&lcEticheta') <> 'N'
lcEticheta = &lcEticheta
Endif
lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
*!* ELSE
*!* lcEticheta = &lcEticheta
*!* lcSuma = [SUM(ROUND(ROUND(&lcEticheta,gnPc)*(proc_tvav-1),gnPc))]
*!* ENDIF
lcSelect = [SELECT CONT,ACONT,id_gestiune,id_sectie,sectie,] + ;
IIF(Type(lcSelRul+'.id_jtva_coloana')#'U',[id_jtva_coloana],[NULL]) + [ as id_jtva_coloana,] + ;
IIF(Type(lcSelRul+'.proc_tvav')#'U',[proc_tvav],[0000]) + [ as proc_tva,] +;
IIF(Type(lcSelRul+'.id_gestin')#'U',[id_gestin],[000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ AS suma ] + ;
[FROM ] + lcSelRul + [ where nuInConturiX = 0 into cursor crsConturiX ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11]
&lcSelect
Else
If Type('&lcEticheta') <> 'N'
lcEticheta = &lcEticheta
Endif
lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
*!* lcSuma = [SUM(ROUND(]+ALLTRIM(STR(lcEticheta,20,6))+[,gnPc))]
lcSelect = [SELECT CONT,ACONT,id_gestiune,id_sectie,sectie,] + ;
IIF(Type(lcSelRul+'.id_jtva_coloana')#'U',[id_jtva_coloana],[NULL]) + [ as id_jtva_coloana,] + ;
IIF(Type(lcSelRul+'.proc_tva')#'U',[proc_tva],[0000]) + [ as proc_tva,] +;
IIF(Type(lcSelRul+'.id_gestin')#'U',[id_gestin],[000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ AS suma ] + ;
[FROM ] + lcSelRul + [ where nuInConturiX = 0 into cursor crsConturiX ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11]
&lcSelect
Endif
Select crsConturiX
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
Scatter Name loCX
Select actactan
Locate For Upper(Alltrim(SCD)) = lcSCD And Upper(Alltrim(scc)) = lcSCC
If Found()
Scatter Name loActactan
With loActactan
If Upper(Alltrim(.SCD)) = 'X'
.SCD = loCX.Cont
.ascd = Nvl(loCX.acont,'')
.suma = loCX.suma
If !Empty(lcIDJtva) && AND !INLIST(oset.model,5,6)
.id_jtva_coloana = loCX.id_jtva_coloana
.proc_tva = loCX.proc_tva
Else
.id_jtva_coloana = Null
.proc_tva = 0
Endif
.id_gestin = loCX.id_gestin
.gestin = loCX.gestin
.id_gestout = loCX.id_gestout
.gestout = loCX.gestout
.id_sectie = loCX.id_sectie
.sectie = loCX.sectie
Endif
If Upper(Alltrim(.scc)) = 'X'
.scc = loCX.Cont
.ascc = Nvl(loCX.acont,'')
.suma = loCX.suma
*!* modificare 04.10.2007
*!* If Left(.scd,1) = '6' And Alltrim(.scd) # '607' And Inlist(oset.model, 3, 4) && BON, RETUR
*!* If .scc = '381'
*!* .scd = '608'
*!* Else
*!* .scd = Strtran(.scc, '3', '6', 1, 1)
*!* Endif
*!* Endif
If Inlist(oset.model,3,4)
Select crsconfigcvc
Locate For Cont = Upper(Alltrim(.scc))
If Found() AND (EMPTY(.scd) OR INLIST(LEFT(.scd,1), '6','7'))
.scd = ALLTRIM(cont_chelt)
Else
If Left(.scd,1) = '6' And Alltrim(.scd) # '607'
If .scc = '381'
.scd = '608'
Else
.scd = Strtran(.scc, '3', '6', 1, 1)
Endif
Endif
Endif
SELECT actactan
Endif
*!* modificare 04.10.2007 ^
If !Empty(lcIDJtva) && AND !INLIST(oset.model,5,6)
.id_jtva_coloana = loCX.id_jtva_coloana
.proc_tva = loCX.proc_tva
Else
.id_jtva_coloana = Null
.proc_tva = 0
Endif
.id_gestin = loCX.id_gestin
.gestin = loCX.gestin
.id_gestout = loCX.id_gestout
.gestout = loCX.gestout
.id_sectie = loCX.id_sectie
.sectie = loCX.sectie
Endif
Endwith
Append Blank
Gather Name loActactan
Endif && IF FOUND()
Select crsConturiX
Endscan
Select crsIcsi
Endscan
Delete From actactan Where Inlist(Upper(Alltrim(SCD)),'X') Or Inlist(Upper(Alltrim(scc)),'X')
Endif
*!* 15.03.2007 ^
*!* inlocuiesc Y - la notele care nu sunt transfer sau retur transfer (intrare dintr-o gestiune tinuta valoric - trebuie contul)
If !Inlist(oset.model, 5, 6, 7) And llY
Select rul_temp
Go Top
lnIdGestiuneTr = Id_gestiune
If !Empty(lnIdGestiuneTr)
loCont = This.aleg_cont_transfer(lnIdGestiuneTr)
lcContTr = loCont.Cont
lcAcontTr = loCont.acont
Select actactan
Replace All SCD With lcContTr, ascd With lcAcontTr For Upper(Alltrim(SCD)) = 'Y'
Replace All scc With lcContTr, ascc With lcAcontTr For Upper(Alltrim(scc)) = 'Y'
Endif
*!* 20.03.2007
*!* cont de transfer - cont din nomenclator
*!* in rul aj trebuie sa am pe intrari contul din debit (contul de transfer)
If oset.model = 2 Or Upper(Alltrim(oset.formgest)) = 'NIR'
Select rul_temp
Replace All Cont With lcContTr
Endif
Endif
*!* 15.03.2007 ^
Select crsNota
Scan For !(Inlist(Upper(Alltrim(xscd)),'X') Or Inlist(Upper(Alltrim(xscc)),'X'))
Scatter Name loNota
lcVariabila = Lower(Alltrim(loNota.&lcField))
lcIDJtva = Upper(Alltrim(x34))
If Inlist(oset.model, 5, 6, 7) Or llY && TRANSFER, RETUR TRANSFER
If loNota.xscd = 'Y'
loNota.xscd = lcContTr
loNota.xAscd = lcAcontTr
Endif
If loNota.xscc = 'Y'
loNota.xscc = lcContTr
loNota.xAscc = lcAcontTr
Endif
Endif
Do Case
Case 'pntvanir' $ lcVariabila
lcVariabila = &lcVariabila
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tva,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
[SUM(ROUND(ROUND(&lcVariabila,gnPc)*(a.proc_tva-1),gnPc)) as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane b ON a.id_jtva_coloana = b.id_jtva_coloana ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9]
&lcSelect
Select crsTva
i = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
i = i + 1
If i = 1
Select actactan
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select actactan
Append Blank
Gather Name loAct
Gather Name loTva
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null,proc_tva With 0
Endif
Endscan
Case 'pnbazavanz'$lcVariabila Or 'pntvavanz'$lcVariabila
*!* IF 'pnbazavanz'$lcVariabila
&& 05.09.2007
&& marius.mutu
&& linia If 'pnbazavanz'$lcVariabila intra mereu pe else si punea o baza cu id_jtva_coloana de tva
lcVariabilatemp = lcVariabila
lcVariabila = &lcVariabila
lcSuma = [sum(ROUND(&lcVariabila,gnPc))]
*!* ELSE
*!* lcVariabila = &lcVariabila
*!* lcSuma = [SUM(ROUND(ROUND(&lcVariabila,gnPc)*(proc_tvav-1),gnPc))]
*!* ENDIF
If 'pnbazavanz'$lcVariabilatemp
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9]
Else
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tvav,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane B ON A.ID_JTVA_COLOANA = B.ID_JTVA_COLOANA ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9]
Endif
&lcSelect
Select crsTva
i = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
i = i + 1
If i = 1
Select actactan
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select actactan
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
*!* modificare facturare in valuta 21.09.2007
Case 'pnbazaval'$lcVariabila Or 'pntvaval'$lcVariabila
lcVariabilatemp = lcVariabila
lcVariabila = &lcVariabila
lcSumaVal = [sum(&lcVariabila)]
If 'pnbazaval'$lcVariabilatemp
*!* lcSuma = [SUM(]+pnBazaValVanz+[)]
lcSuma = [ROUND(SUM(]+pnBazaVal+[)*a.curs,gnPc)]
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
[NVL(a.id_valuta_vanz,0) as id_valuta,] + ;
IIF(TYPE(lcSelRul+'.curs') #'U',[a.curs],[0]) + [ as curs,] + ;
lcSumaVal + [ as suma_val,] + lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11]
Else
*!* lcSuma = [SUM(]+pnTvaValVanz+[)]
lcSuma = [ROUND(SUM(]+pnTvaVal+[)*a.curs,gnPc)]
lcSelect = [SELECT b.id_tva as id_jtva_coloana,a.proc_tvav,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
[NVL(a.id_valuta_vanz,0) as id_valuta,] + ;
IIF(TYPE(lcSelRul+'.curs') #'U',[a.curs],[0]) + [ as curs,] + ;
lcSumaVal + [ as suma_val,] + lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a LEFT JOIN jtva_coloane B ON A.ID_JTVA_COLOANA = B.ID_JTVA_COLOANA ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9,10,11]
Endif
&lcSelect
Select crsTva
i = 0
Scan For suma_val*0 = 0 && sa evit cazurile in care suma este ******
i = i + 1
If i = 1
Select actactan
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
AddProperty(loTva,[nume_val],poAct.nume_val_vanz)
Select actactan
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
*!* modificare facturare in valuta 21.09.2007 ^
Case 'pnbazabon'$lcVariabila
lcSuma = [SUM(ROUND(&lcEticheta,gnPc))]
*!* lcSelect = [SELECT CONT,ACONT,id_gestiune,id_sectie,sectie,] + ;
*!* IIF(Type(lcSelRul+'.id_jtva_coloana')#'U',[id_jtva_coloana],[NULL]) + [ as id_jtva_coloana,] + ;
*!* IIF(Type(lcSelRul+'.proc_tva')#'U',[proc_tva],[0000]) + [ as proc_tva,] +;
*!* IIF(Type(lcSelRul+'.id_gestin')#'U',[id_gestin],[000000000]) + [ as id_gestin,] + ;
*!* IIF(Type(lcSelRul+'.id_gestout')#'U',[id_gestout],[000000000]) + [ as id_gestout,] + ;
*!* IIF(Type(lcSelRul+'.gestin')#'U',[gestin],[SPACE(50)]) + [ as gestin,] + ;
*!* IIF(Type(lcSelRul+'.gestout')#'U',[gestout],[SPACE(50)]) + [ as gestout,] + ;
*!* lcSuma + [ AS suma ] + ;
*!* [FROM ] + lcSelRul + [ where nuInConturiX = 0 into cursor crsTva ] + ;
*!* [GROUP BY 1,2,3,4,5,6,7,8,9,10,11]
lcSelect = [SELECT a.id_jtva_coloana,a.proc_tvav,a.id_sectie,a.id_gestiune,a.sectie,] + ;
IIF(Type(lcSelRul+'.id_gestin')#'U',[a.id_gestin],[0000000000]) + [ as id_gestin,] + ;
IIF(Type(lcSelRul+'.id_gestout')#'U',[a.id_gestout],[000000000]) + [ as id_gestout,] + ;
IIF(Type(lcSelRul+'.gestin')#'U',[a.gestin],[SPACE(50)]) + [ as gestin,] + ;
IIF(Type(lcSelRul+'.gestout')#'U',[a.gestout],[SPACE(50)]) + [ as gestout,] + ;
lcSuma + [ as suma ] + ;
[FROM ] + lcSelRul + [ a ] + ;
[INTO CURSOR crsTva ] + ;
[GROUP BY 1,2,3,4,5,6,7,8,9]
&lcSelect
Select crsTva
i = 0
Scan For suma*0 = 0 && sa evit cazurile in care suma este ******
i = i + 1
If i = 1
Select actactan
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
Scatter Name loAct
Delete
Else
Scatter Name loAct Blank
Endif
Endif
Select crsTva
Scatter Name loTva
Select actactan
Append Blank
Gather Name loAct
Gather Name loTva
Replace proc_tva With loTva.proc_tvav
If Empty(lcIDJtva)
Replace id_jtva_coloana With Null
Endif
Endscan
Otherwise
Select actactan
Locate For SCD = loNota.xscd And scc = loNota.xscc And suma = 0
If Found()
If !Empty(lcVariabila)
Replace suma With &lcVariabila
Endif
Endif
If 'discount' $ lcVariabila
Replace proc_tva With pnProcDiscount,id_jtva_coloana With &lcIDJtva
Endif
Endcase
Endscan
If Used('crsIcsi')
Use In crsIcsi
Endif
If Used('crsConturiX')
Use In crsConturiX
Endif
If Used('crsNota')
Use In crsNota
Endif
*!* IF USED('rul_temp')
*!* USE IN rul_temp
*!* ENDIF
*!* && completez RUL_TEMP
*!* lcRul = ALLTRIM(THIS.osel_dr.cfrom)
*!* lcSql = [select * from ] + gcS + [.] + lcRul + [ where 1=2]
*!* lcCursor = [rul_temp]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* IF lnSucces < 0
*!* RETURN .F.
*!* ENDIF
*!* lcCant = LOWER(ALLTRIM(this.osel_dr.cantitate))
*!* lcCantTransf = [cant] + iif(lcCant = [cante],[],[e])
*!* IF INLIST(oset.model, 5, 6) && TRANSFER, RETUR TRANSFER
*!* SELECT * FROM (lcSelRul) INTO CURSOR crsTransf NOFILTER READWRITE
*!* REPLACE ALL &lcCantTransf WITH &lcCant FOR !EMPTY(&lcCant)
*!* REPLACE ALL &lcCant WITH 0
*!* APPEND FROM DBF(lcSelRul)
*!* IF oset.id_set <> 89 && TRANSFER INTRE PERSOANE
*!* REPLACE ALL cont WITH lcContTr, acont WITH lcAcontTr FOR &lcCantTransf # 0
*!* ELSE
*!* SELECT (this.ct_grid_search1.cnumecursor)
*!* SCATTER NAME loStg
*!* SELECT crsTransf
*!* REPLACE ALL id_gestin WITH id_gestout
*!* REPLACE ALL id_responsabil WITH loStg.id_responsabil, nresp WITH loStg.nresp FOR cante <> 0
*!* ENDIF
*!* REPLACE ALL id_gestiune WITH id_gestin,nume_gestiune WITH gestin FOR &lcCantTransf <> 0
*!* REPLACE ALL id_gestiune WITH id_gestout, nume_gestiune WITH gestout FOR &lcCant <> 0
*!*
*!* SELECT rul_temp
*!* APPEND FROM DBF('crsTransf')
*!* IF USED('crsTransf')
*!* USE IN crsTransf
*!* ENDIF
*!*
*!* lcSel = [SELECT id_gestiune from ] + gcs + [.vnom_gestiuni WHERE nr_pag = 6]
*!* lcCursor = 'crsIdVanzare'
*!* lnSucces = goExecutor.oExecute(lcSel,lcCursor)
*!* IF lnSucces < 0
*!* MESSAGEBOX(goExecutor.cEroare,0+16,"Eroare")
*!* ENDIF
*!*
*!* IF lnSucces > 0
*!* UPDATE rul_temp SET pretv = 0, tvav = 0, proc_tvav = 0 WHERE id_gestiune NOT in (select id_gestiune from crsIdVanzare)
*!* USE IN crsIdVanzare
*!* ENDIF
*!* ELSE
*!* SELECT rul_temp
*!* APPEND FROM DBF(lcSelRul)
*!* ENDIF
*!* IF INLIST(oset.model, 5, 6) AND USED('crsTransfer') && TRANSFER, RETUR TRANSFER
*!* SELECT rul_temp
*!* APPEND FROM DBF('crsTransfer')
*!* ENDIF
*!* SELECT rul_temp
*!* APPEND FROM DBF(lcSelRul)
*!* modificare 20.04.2007 & 04.05.2007 & 09.05.2007
Do Case
Case Inlist(oset.id_set,61,62,63,226,258)
Select actactan
If oset.cursval
Calculate Sum(suma) To pnBazaValProd For Alltrim(scc)= '345'
Calculate Sum(suma) To pnBazaVal341 For Alltrim(scc)= '341'
Calculate Sum(suma) To pnBazaVal346 For Alltrim(scc)= '346'
Calculate Sum(suma) To pnBazaValAmb For Alltrim(scc) = '381'
pnBazaVProd = pnBazaValProd
pnBazaVAmb = pnBazaValAmb
pnBazaV341 = pnBazaVal341
pnBazaV346 = pnBazaVal346
Else
Calculate Sum(suma) To pnBazaVProd For Alltrim(scc)= '345'
Calculate Sum(suma) To pnBazaVAmb For Alltrim(scc) = '381'
Calculate Sum(suma) To pnBazaV341 For Alltrim(scc)= '341'
Calculate Sum(suma) To pnBazaV346 For Alltrim(scc)= '346'
Endif
Replace suma With suma - pnBazaVProd - pnBazaVAmb - pnBazaV341 - pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '707'
*!* 19.01.2015: 701-> 7015
*!* Replace suma With pnBazaVProd + pnBazaV341 + pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '701'
Replace suma With pnBazaVProd + pnBazaV341 + pnBazaV346 For Alltrim(SCD) = '4111' And Alltrim(scc) = '7015'
*!* 19.01.2015: 701-> 7015 ^
Replace SCD With '711',suma With pnBazaVProd For Alltrim(SCD) = '607' And Alltrim(scc) = '345'
Replace SCD With '711',suma With pnBazaV341 For Alltrim(SCD) = '607' And Alltrim(scc) = '341'
Replace SCD With '711',suma With pnBazaV346 For Alltrim(SCD) = '607' And Alltrim(scc) = '346'
Replace scc With '348' For INLIST(Alltrim(SCD),'341','345','346') And Alltrim(scc) = '378'
Replace SCD With '348',scc With '711' For Alltrim(SCD) = '378' And INLIST(Alltrim(scc),'341','345','346')
Replace suma With pnBazaVAmb For Alltrim(SCD) = '4111' And Alltrim(scc) = '708'
Replace SCD With '608' For Alltrim(SCD) = '607' And Alltrim(scc) = '381'
Replace scc With '388' For Alltrim(SCD) = '381' And Alltrim(scc) = '378'
Replace SCD With '388' For Alltrim(SCD) = '378' And Alltrim(scc) = '381'
Delete For suma = 0
Case Inlist(oset.id_set,79,83,206,225)
Select actactan
Replace scc With '711' For Alltrim(SCD) = '348'
*!* modificare 22.05.2007
Case oset.id_set = 218 && diferenta de pret
Select (lcSelRul)
Replace All pretv With 0,tvav With 0,proc_tvav With 0,procent With 0
Select actactan
Replace id_gestin With 0,gestin With '' For nr_nota = 2
*!* Replace id_gestin With id_gestout, gestin With gestout,id_gestout With 0,gestout With '',scc WITH '711' For nr_nota = 4
*!* Replace scc WITH '711' For nr_nota = 4
Replace SCD With '348' For nr_nota = 2 And SCD <> '381'
Replace SCD With '388' For nr_nota = 2 And SCD = '381'
Replace scc With '388' For nr_nota = 1 And SCD = '381'
*!* modificare 22.05.2007 ^
*!* modificare 16.08.2007
Case INLIST(oset.id_set,53,213,57,58)
Select actactan
Replace scd With '607' For scc = '371'
Replace scd With '711' For scc = '345' && modificare 03.10.2007
*!* modificare 16.08.2007 ^
*!* modificare v 2.0.6
*!* modificare v 2.0.13
*!* modificare v 2.0.15 - protocol
Case InList(oset.id_set, 230, 232, 233,261)
Select actactan
Replace suma With suma * (-1) For nr_nota = 1
*!* modificare v 2.0.15 ^
*!* modificare v 2.0.13 ^
*!* modificare v 2.0.6 ^
Endcase
*!* modificare ^
&& ordonez notele contabile in ACTACTANSELECT actactan
Select actactan
Sum suma To lnSume
If lnSume <> 0
lcCondDele = [!(suma = 0 and !(((left(scd,1) = '3' and left(scc,2) = '40') OR (left(scd,2) = '41' and left(scc,1) = '7')) AND proc_tva # 1))]
Else
lcCondDele = [suma = 0 AND nr_nota = 1 ]
Endif
Select * From actactan Into Cursor crsActActan Where &lcCondDele Or Inlist(id_set, 89, 210, 211, 212) Order By nr_nota NOFILTER Readwrite
Select actactan
Delete From actactan
Append From Dbf('crsactactan')
If Used('crsactactan')
Use In crsActActan
Endif
*** && completare analitice
Select actactan
Scan For Empty(Nvl(ascd,''))
Scatter Name loActactan
If Type('loActactan.cont') = 'U'
x = AddProperty(loActactan,'cont',loActactan.SCD)
Endif
If oset.model = 2 And Type('loActactan.id_gestiune') = 'U' && NIR
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestin)
Endif
If Inlist(oset.model, 3, 4) And Type('loActactan.id_gestiune') = 'U' && BON, RETUR
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestout)
Endif
loActactan.ascd = This.assign_analitic(loActactan.SCD,This.cobj,'loActactan')
Replace ascd With loActactan.ascd
Select actactan
Endscan
Select actactan
Scan For Empty(Nvl(ascc,''))
Scatter Name loActactan
If Type('loActactan.cont') = 'U'
x = AddProperty(loActactan,'cont',loActactan.scc)
Endif
If oset.model = 2 And Type('loActactan.id_gestiune') = 'U' && NIR
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestin)
Endif
If Inlist(oset.model, 3, 4) And Type('loActactan.id_gestiune') = 'U' && BON, RETUR
x = AddProperty(loActactan,'id_gestiune',loActactan.id_gestout)
Endif
loActactan.ascc = This.assign_analitic(loActactan.scc,This.cobj,'loActactan')
Replace ascc With loActactan.ascc
Select actactan
Endscan
If Used('rul_temp_OBINV')
Use In RUL_TEMP_OBINV
Endif
Select * From rul_temp Where Cont = gcContObinv And !Deleted() Into Cursor RUL_TEMP_OBINV NOFILTER Readwrite
Select rul_temp
Delete All For Cont = gcContObinv
If gnCMP = 1 And oset.model = 2 && NIR
Thisform.analiza_cmp('rul_temp', 'actactan')
*!* modificare 24.11.2006
Else
Select rul_temp
Replace id_tip_rulaj With oset.id_tip_rul For id_tip_rulaj = 0
*!* modificare 24.11.2006 ^
Endif
If Type('loActactan') = 'O'
Release loActactan
Endif
Do Case
Case oset.id_set=69
*!* modificare 07.03.2006 && 24.02.2007
Select actactan
Calculate Max(proc_tva) To lnMaxProcTva
Calculate Min(id_jtva_coloana) For proc_tva = lnMaxProcTva To lnIdJtvaColoana
Scan For Left(SCD,3)='411' Or Left(scc,3)='411'
If proc_tva=0
Replace proc_tva With lnMaxProcTva,id_jtva_coloana With lnIdJtvaColoana
Endif
Endscan
*!* sfarsit modificare 07.03.2006
Case oset.id_set = 213
*!* modificare 12.02.2007 (bon de consum pe lucrari in curs de executie la Materii prime si materiale)
Select rul_temp
Replace All pretv With ROUND(Pret,gnPc) && modificare 14.09.2007
*!* modificare 12.02.2007 ^
*!* modificare v 2.0.6
Case Inlist(oset.id_set,215,216,257)
Select (lcSelRul)
Replace All id_gestiunec With poAct.id_gestout,id_gestout with poAct.id_gestout,gestout With poAct.gestout
Select actactan
Replace All id_gestout With poAct.id_gestout,gestout With poAct.gestout
*!* modificare v 2.0.6 ^
Endcase
Select rul_temp
Locate For Empty(Id_gestiune)
If Found()
aMessagebox('Nu ati ales gestiunea!',48,"Atentie")
Return .F.
Endif
Select RUL_TEMP_OBINV
Locate For Empty(Id_gestiune)
If Found()
aMessagebox('Nu ati ales gestiunea!',48,"Atentie")
Return .F.
Endif
If oset.productie
If Alltrim(Upper(oset.formproduc))='FRM_ALEGE_PROD_CANT'
Select a.*, Recno() As ninreg ;
FROM actactan a ;
WHERE Substr(scc,1,1)='3' And Alltrim(scc)<>'301' ;
INTO Cursor cModificari
Select cModificari
Scan
Scatter Name loLinie
lcSCC = Alltrim(scc)
lnInreg = ninreg
Select actactan
Replace scc With lcSCC, SCD With '301' For Recno() = lnInreg
Append Blank
loLinie.SCD = '601'
loLinie.scc = '301'
Gather Name loLinie
Select cModificari
Endscan
If Used('cModificari')
Use In cModificari
Endif
Endif
Endif
*!* 02.06.2008
*!* completez partenerii corespondenti pentru cont-gestin, cont-gestout
lcSql = [Select cont, id_gestiune, id_part, denumire from vasociere_parteneri_gestiuni]
lnSucces = goExecutor.oExecute(lcSql, "crsGestiuniParteneri")
If lnSucces < 0
AMessageBox(goExecutor.oExecute,0+16,"Eroare")
Else
Select actactan
Scan FOR Empty(ID_PARTD) OR Empty(ID_PARTC)
Scatter name loRec
If Empty(actactan.id_partd)
Select crsGestiuniParteneri
Locate for Alltrim(cont) == Alltrim(loRec.scd) and id_gestiune = Iif(!Empty(loRec.id_gestin), loRec.id_gestin, loRec.id_gestout)
If Found()
Replace id_partd with crsGestiuniParteneri.id_part, partd with crsGestiuniParteneri.denumire in actactan
EndIf
EndIf
If Empty(actactan.id_partc)
Select crsGestiuniParteneri
Locate for Alltrim(cont) == Alltrim(loRec.scc) and id_gestiune = Iif(!Empty(loRec.id_gestout), loRec.id_gestout, loRec.id_gestin)
If Found()
Replace id_partc with crsGestiuniParteneri.id_part, partc with crsGestiuniParteneri.denumire in actactan
EndIf
EndIf
EndScan
Use in (Select('crsGestiuniParteneri'))
EndIf
Select actactan
Go Top
Return .T.
ENDPROC
PROCEDURE intrare_produs
Select rul_temp
Append Blank
Replace id_articol With pnId_articol, ;
denumire With pcDenumire, ;
cant With pnCant, ;
pret With ROUND(Thisform.ntotal/pnCant,gnPPret), ;
id_gestiune With pnId_gestiune, nume_gestiune With pcGestiune, ;
id_gestin With pnId_gestiune, gestout With pcGestiune, ;
cont With pcCont_articol, ;
nnir With poact.nnir, ;
dataact With poact.dataact, ;
datain With poact.dataact, ;
id_set With poact.id_set
ENDPROC
PROCEDURE KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
LOCAL lcCtrGrid, lcCtrCriteriu, lcControl
lcCtrGrid = []
lcCtrCriteriu = []
lcControl = UPPER(THIS.ACTIVECONTROL.NAME)
IF lcControl = '_GRID1'
lcCtrGrid = UPPER(THIS.ACTIVECONTROL.COMMENT)
ENDIF
IF lcControl = 'CRITERIU'
lcCtrCriteriu = UPPER(THIS.ACTIVECONTROL.COMMENT)
ENDIF
DO CASE
CASE nKeyCode = 13 AND 'GRD_ST' $ lcCtrGrid
NODEFAULT
THISFORM.urmator1.comMAND1.SETFOCUS
CASE nKeyCode = 13 AND 'GRD_DR' $ lcCtrGrid
NODEFAULT
THISFORM.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
CASE (nKeyCode >=33 AND nKeyCode <=122) AND ('CRITERIU_ST' $ lcCtrCriteriu OR 'GRD_ST' $ lcCtrGrid)
NODEFAULT
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE = ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE) + CHR(nKeyCode)
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode = 127) AND ('CRITERIU_ST' $ lcCtrCriteriu OR 'GRD_ST' $ lcCtrGrid) && backspace
NODEFAULT
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE = LEFT(ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE),LEN(ALLTRIM(THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.VALUE))-1)
THIS.ct_grid_search1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode >=33 AND nKeyCode <=122) AND ('CRITERIU_DR' $ lcCtrCriteriu OR 'GRD_DR' $ lcCtrGrid)
NODEFAULT
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE = ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE) + CHR(nKeyCode)
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE (nKeyCode = 127) AND ('CRITERIU_DR' $ lcCtrCriteriu OR 'GRD_DR' $ lcCtrGrid) && backspace
NODEFAULT
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE = LEFT(ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE),LEN(ALLTRIM(THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.VALUE))-1)
THIS.ct_grid_order1.Cb_tx_cautare1.TEXT.SETFOCUS
KEYBOARD '{END}'
CASE INLIST(nKeyCode, 13, 9, 4, 24) AND '_CBBASE1'$lcControl
NODEFAULT
thisform.ct_grid_search1.cb_tx_cautare1.text.SetFocus
OTHERWISE
DODEFAULT(nKeyCode, nShiftAltCtrl)
ENDCASE
ENDPROC
PROCEDURE Release
lcSelRul = this.ct_grid_order1.cnumecursor
lcSelSt = this.ct_grid_search1.cnumecursor
IF USED(lcSelRul)
USE IN (lcSelRul)
ENDIF
IF USED(lcSelSt)
USE IN (lcSelSt)
ENDIF
IF USED('crsTransfer')
USE IN crsTransfer
ENDIF
ENDPROC
PROCEDURE Show
Lparameters nStyle
lcSelRul = This.ct_grid_order1.cnumecursor
This.lbTotal.Caption = 'TOTAL ' + This.CTip_frm
This.ct_grid_order1.initializare(.T.)
This.ct_grid_search1.initializare(.T.)
This.calcul_sume(lcSelRul)
This.ct_grid_search1.cb_tx_cautare1.SetFocus
If Inlist(poact.id_set,105,106)
Thisform.ct_grid_search1.cboListe.Visible = .T.
Thisform.ct_grid_search1.lb_listePreturi.Visible = .T.
Endif
If oxset.cursval
With Thisform.ct_factura2
lcObj = Thisform.cobj
.lb_valuta.Caption = [(] + &lcObj..nume_val_vanz + [)]
With .lb_curs
.Caption = [Curs ] + Dtoc(&lcObj..v8) + [ : ] + Alltrim(Str(&lcObj..Curs,14,4))
.AutoSize = .T.
Endwith
Endwith
Endif
If oset.productie And INLIST(oset.id_set,26003,26004) && modificare 17.10.2007
Thisform.container_valoare_decontata1.Visible = .T.
Endif
*!* modificare v 2.0.8
*!* modificare v 2.0.13
*!* modificare v 2.0.15 - protocol
If InList(oset.id_set,75,216,230,232,233,257,261)
thisform.lb_totalctva.Visible = .T.
thisform.tx_totalctva.Visible = .T.
EndIf
*!* modificare v 2.0.15 ^
*!* modificare v 2.0.13 ^
*!* modificare v 2.0.8 ^
DoDefault(nStyle)
ENDPROC
PROCEDURE Ct_discount1.Init
Select jtva_coloane
*!* Locate For proc_tva = 1.00 And procent = 0
Locate For id_jtva_coloana = oSet.id_jtax
If !Found()
Go Top
Endif
This.lb_explicatie_tva.Caption = Alltrim(Upper(denumire))
lnProc_tva = (cota_tva + 100)/ 100
lnproc = cota_tva
This.pntva = lnProc_tva
This.nid_jtva_coloana = id_jtva_coloana
This.nid_tva = jtva_coloane.id_tva
This.cotaTva.ListIndex = Recno()
ENDPROC
PROCEDURE Ct_discount1.Refresh
DODEFAULT()
lcSelRul = thisform.ct_grid_order1.cnumecursor
this.Parent.calcul_sume(lcSelRul)
ENDPROC
PROCEDURE Ct_grid_order1.Cb_tx_gestin._CBBASE1.LostFocus
SELECT nom_gestiuni
pcobj.id_gestin = id_GESTiune
pcobj.gestin = nume_gestiune
pcObj.cgest = cgest
pcobj.id_GESTiune = id_GESTiune
pcobj.nume_gestiune = nume_gestiune
ENDPROC
PROCEDURE Ct_grid_search1.cboListe.Init
IF INLIST(poact.id_set,105,106)
SELECT cListePret
LOCATE FOR id_pol = poact.id_pol
this.Value = cListePret.nume_lista_preturi
this.Refresh
ENDIF
ENDPROC
PROCEDURE Ct_grid_search1.cboListe.Valid
pnId_lista = cListePret.id_pol
SELECT cListePret
pcobj.id_pol = cListePret.id_pol
thisform.ct_GRID_SEARCH1.initializare(.T.)
thisform.ct_grid_search1.cb_tx_cautare1.text.SetFocus
ENDPROC
PROCEDURE Ct_grid_search1.Cb_tx_gestout._CBBASE1.Valid
Select nom_gestiuni
pcobj.id_gestout = id_GESTiune
pcobj.gestout = nume_gestiune
pcobj.cgest = cgest
pcobj.id_GESTiune = id_GESTiune
pcobj.nume_gestiune = nume_gestiune
Thisform.ct_GRID_SEARCH1.initializare(.T.,.T.)
This.Parent.Parent.cb_tx_cautare1.Text.SetFocus
ENDPROC
PROCEDURE Lb_titlu_alb_b121.Init
If Type('oxset.nume_set') # 'U'
This.Caption = Proper(Alltrim(oxset.nume_set))
Endif
This.Caption = This.Caption + [ ( Nr. document : ] + Alltrim(Nvl(poAct.serie_act,[])) + [ ] + ;
TRANSFORM(poAct.nract,get_mask(14,0)) + [ ) ]
ENDPROC
PROCEDURE Urmator1.Command1.Click
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
*!* Model =-1 : Nota fara contabilizare
*!* Model = 1 : Nota simpla cu contabilizare
*!* Model = 2 : NIR
*!* Model = 3 : BON/FACTURA VANZARE
*!* Model = 4 : Retur BON/FACTURA VANZARE
*!* Model = 5 : Transfer
*!* Model = 6 : Retur Transfer
*!* Model = 7 : Diferenta de pret
*!* Param1 = 1 : En-detail
*!* Param1 = 2 : En-gros
*!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!* *!*
Private poPreturi
poPreturi = CreateObject("empty")
AddProperty(poPreturi,"pretv", 0)
AddProperty(poPreturi,"tvav", 0)
AddProperty(poPreturi,"pretvtva", 0)
Local lnNIRPRETLISTAMOD
If Type('gnNIRPRETLISTAMOD') <> 'U'
lnNIRPRETLISTAMOD = gnNIRPRETLISTAMOD
Else
lnNIRPRETLISTAMOD = 0
EndIf
Local lnPretfTva, lnPretvTva, lnListaPreturiCuTva
lnPretfTva = 0
lnPretvTva = 0
lnListaPreturiCuTva = 1 && daca lista de preturi are preturile cu tva id_set = 231 nir mf la pv cu modificarea listei de preturi
lcSelRul = THISFORM.ct_grid_order1.cnumecursor
*!* modificare 22.08.2007
*!* La toate conditiile unde era id_articol, am adaugat si NVL(serie,'') , in afara de politicile de preturi si reteta.
lcIde = [T]
lcIde = lcIde + ',' + IIF(oset.factura AND oset.model = 2, 'F', '')
lcIde = lcIde + ',' + IIF(oset.adaos AND (oset.param1 = 1 OR oset.model = 2), 'A,X','')
lcIde = lcIde + ',' + IIF(oset.discount, 'D','')
lcIde = lcIde + ',' + IIF(INLIST(oset.model,2), 'N', IIF(INLIST(oset.model, 3, 4, 5, 6, 7), 'B', ''))
lcIde = IIF(oset.model = 7, lcIde + ',X' , lcIde)
lnProcDisc = IIF(oset.discount,THISFORM.ct_discount1.proc_discount ,0)
*!* modificare 22.06
*!* lnProcAdaos = IIF(oset.adaos,thisform.ct_adaos1.proc_adaos,0)
lnProcAdaos = IIF(oset.adaos,IIF(THISFORM.ct_adaos1.proc_adaos<-9999999,0,THISFORM.ct_adaos1.proc_adaos),0)
*!* ^
SELECT cursor_curent1
SCATTER NAME oStg
If Empty(oStg.Cont)
amessagebox('Nu s-a selectat nici un reper! Repetati selectia!',48,"Atentie")
Release oStg
Thisform.ct_grid_search1._GRID1.SetFocus
Return
Endif
*!* If oSet.model > 2 And !Empty(NVL(oStg.id_rul_aux,0))
*!* amessagebox("Operatiile asupra acestui reper se pot efectua doar din programul ROAVIN!",48,"Atentie")
*!* Release oStg
*!* Thisform.ct_grid_search1._GRID1.SetFocus
*!* Return
*!* Endif
*!* DNF
SELECT (lcSelRul)
SCATTER NAME orul BLANK
IF !PEMSTATUS(orul,'dnf',5)
ADDPROPERTY(orul,'dnf',00000)
IF PEMSTATUS(oStg,'dnf',5)
orul.DNF= oStg.DNF
ENDIF
ENDIF
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - SA SE POATA SCOATE DIN STOC DE MAI MULTE ORI ACEEASI CANTITATE LA OB INV IN FOLOSINTA CAND TRANSFER, CASARE DIN FOLOSINTA
IF !INLIST(oset.id_set,210,211,212,89,70)
IF 'B' $ lcIde
SELE (lcSelRul)
IF gnTipGest # 6
SELECT SUM(cante) AS cante, id_articol, NVL(serie,'') as serie FROM (lcSelRul) ;
WITH (BUFFERING = .T.) WHERE id_articol = oStg.id_articol AND PRET =oStg.PRET ;
AND id_gestout = oStg.id_gestiune AND NVL(serie,'') = NVL(oStg.serie,'') ;
GROUP BY id_articol,serie INTO CURSOR crsCant
*!* LOCATE FOR id_articol = ostg.id_articol AND pret =ostg.pret AND id_gestout = ostg.id_gestiune && id_gestout in loc de id_gestiune pt ca la transfer modific id_gestiune (inainte_de_do_termin)
ELSE
SELECT SUM(cante) AS cante, id_articol,NVL(serie,'') as serie FROM (lcSelRul) ;
WITH (BUFFERING = .T.) WHERE id_articol = oStg.id_articol AND pretv =oStg.pretv ;
AND id_gestout = oStg.id_gestiune AND PRET =oStg.PRET AND NVL(serie,'') = NVL(oStg.serie,'') ;
GROUP BY id_articol,serie INTO CURSOR crsCant
*!* LOCATE FOR id_articol = ostg.id_articol AND pretv =ostg.pretv AND id_gestout = ostg.id_gestiune AND pret =ostg.pret && id_gestout in loc de id_gestiune pt ca la transfer modific id_gestiune (inainte_de_do_termin)
ENDIF
SELECT crsCant
LOCATE
lnCant = cante
*!* IF FOUND()
IF RECCOUNT('crsCant') > 0
amessagebox('Daca doriti o cantitate diferita, stergeti acest reper si repetati selectia.',0+64,"Info")
THISFORM.ct_grid_search1._GRID1.SETFOCUS
USE IN crsCant
RETURN
ENDIF
USE IN crsCant
ENDIF
ELSE
&& scoatere din stoc obiecte de inventar
IF 'B' $ lcIde
SELE (lcSelRul)
SELECT SUM(cante) AS cante, id_articol, NVL(serie,'') as serie ;
FROM (lcSelRul) WITH (BUFFERING = .T.) ;
WHERE id_articol = oStg.id_articol AND PRET =oStg.PRET AND id_gestout = oStg.id_gestiune ;
AND id_responsabil = oStg.id_responsabil AND datapif = oStg.datapif AND NVL(serie,'') = NVL(oStg.serie,'') ;
GROUP BY id_articol,serie INTO CURSOR crsCant
SELECT crsCant
LOCATE
lnCant = cante
IF RECCOUNT('crsCant') > 0
amessagebox('Daca doriti o cantitate diferita, stergeti acest reper si repetati selectia.',64,"Info")
* THISFORM.ct_grid_search1._GRID1.SETFOCUS
thisform.ct_grid_search1.cb_tx_cautare1.text.SetFocus
USE IN crsCant
RETURN
ENDIF
USE IN crsCant
ENDIF
ENDIF
*!* modificare 03.10.2007
If Inlist(oxset.model,4,6) && Retur
lcObiect = Thisform.cobj
&lcObiect..id_gestout = oStg.id_gestiune
&lcObiect..gestout = ALLTRIM(oStg.nume_gestiune)
Endif
*!* modificare 03.10.2007 ^
THISFORM.assign_values('orul',THISFORM.cobj,'oStg')
IF TYPE('orul.datapif') # 'U' AND TYPE('orul.datapif') = 'T' && pentru ob. inv. in folosinta
orul.datapif = TTOD(orul.datapif)
ENDIF
IF INLIST(oset.model,3,4) AND oset.param1 = 1 && bon/retur + factura + en-detail
lnPretvTva = orul.pretv + orul.tvav && pret vanzare cu TVA
*!* modificare 22.06
lnProcAdaos = IIF(orul.procent<>0,orul.procent,lnProcAdaos)
*!* ^
Else
*!* 09.06.2008
*!* 231 = roagest - nir marfa la pretv cu lista de preturi
*!* 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
IF INLIST(oset.id_set,105,106,231,247,266) && 105,106 - roafacturare - NIR de marfa la pret de vanzare
lcSql = [ select pretftva, pretctva from vcrm_politici_pret_art where id_pol=] + ALLTRIM(STR(poact.id_pol))+;
[ and id_articol =] + ALLTRIM(STR(oStg.id_articol))
lnSucces=goExecutor.oExecute(lcSql,'crsPret')
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
EndIf
SELECT crsPret
lnPretfTva = pretftva
lnPretvTva = pretctva
IF USED('crsPret')
USE IN crsPret
ENDIF
Private pnReturnValue
pnReturnValue = 0
lnSucces = goExecutor.oSelect2Value("select preturi_cu_tva from vcrm_politici_preturi where id_pol = " + ALLTRIM(STR(poact.id_pol)), @pnReturnValue)
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Else
lnListaPreturiCuTva = pnReturnValue
EndIf
ELSE
lnPretvTva = 0
EndIf
*!* 09.06.2008
ENDIF
IF oset.id_set = 104
PRIVATE pnImputare
STORE 0 TO pnImputare
IF gnImputare = 1 && pretul maxim din stoc
lcSql=[select MAX(pret) as pretMax from (select pack_sesiune.suma_ron(pret, an, luna) as pret from ] + ;
[(select pret, an, luna from stoc where id_articol = ] + +ALLTRIM(STR(orul.id_articol))+ ;
[ and NVL(serie,'x_x_x') = '] + NVL(orul.serie,'x_x_x') + [' ] + gcCondSucursala + [))]
lnSucces=goExecutor.oExecute(lcSql,'crsPretMax')
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
ENDIF
SELECT crsPretMax
orul.pretv = pretMax
IF ISNULL(orul.pretv)
orul.pretv = 0
ENDIF
IF USED('crsPretMax')
USE IN crsPretMax
ENDIF
ENDIF
ENDIF
IF EMPTY(THISFORM.cfrm_ceredate)
RETURN
ENDIF
IF INLIST(oset.id_set,211) && TRANSFER MAGAZIE OB INV IN FOLOSINTA - CATRE GESTIUNE OB INV IN FOL PE UN RESPONSABIL
orul.id_responsabil = 0
orul.NRESP = ''
ENDIF
lcForm = ALLTRIM(THISFORM.cfrm_ceredate)
onir = CREATEOBJECT(lcForm)
onir.bVizualizare = lcIde
onir.cobj = orul
*onir.cParentObj = thisform.cobj
onir.pretvtva = lnPretvTva
*!* 09.06.2008
*!* 231 - nir mf pretv cu modificarea listei de preturi
*!* 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
IF INLIST(oset.id_set,105,106,231,247,266)
onir.cobj.pretv = lnPretfTva
onir.cobj.tvav = lnPretvTva - lnPretfTva
&& v 2.0.14 din 11iun2008 - preluare preturi din rul de pe ultima factura de achizitie, cautarea se face in ultimele 2 luni
IF INLIST(oset.id_set,231,247,266)
*!* v 2.0.18 (ordonare an desc, luna desc, dataora desc, cant <> 0)
lcSql = [select a.* from (select a.dataora,a.pret,a.tva, a.tvav,a.pretv,a.PRETV+a.TVAV as pretvtva ]+;
[ from rul a where a.ID_ARTICOL = ]+Alltrim(Str(orul.id_articol)) + [ and a.sters = 0 and a.cant<>0 and a.id_tip_rulaj = 0]+;
[ and an*12+luna between ]+ Alltrim(Str(gnAn*12+gnluna-1))+[ and ]+ Alltrim(Str(gnAn*12+gnluna)) +;
[ order by a.an desc, a.luna desc, a.dataora desc) a where rownum = 1]
*!* v 2.0.18 ^
lnSucces=goExecutor.oExecute(lcSql,'crsPretUltim')
IF lnSucces < 0
amessagebox(goExecutor.cEroare,0+16,'Eroare')
Else
Select crsPretUltim
If Reccount() > 0
onir.pretu_factura = crsPretUltim.pret
onir.cobj.pret = crsPretUltim.pret
onir.cobj.tva = crsPretUltim.tva
&& suprascriu pretul de vanzare din lista doar daca pe nir am pretul <> 0
If crsPretUltim.pretv <> 0
onir.cobj.pretv = crsPretUltim.pretv
onir.cobj.tvav = crsPretUltim.tvav
onir.pretvtva = crsPretUltim.pretvtva
EndIf
EndIf
Use in crsPretUltim
EndIf
&& v 2.0.14 din 11iun2008 ^
EndIf
ENDIF
*!* 09.06.2008 ^
onir.cTitlu = ALLTRIM(NVL(oStg.denumire,'')) + [-] + ALLTRIM(NVL(oStg.codmat,''))
onir.item2.text_item1.READONLY = IIF(oset.model = 2, .F., .T.)
IF oset.param1 = 1 AND (oset.model = 4 OR gnTipGest = 6) && facturi retur / vanzare marfa la pret de vanzare en-detail - blochez pretul de vanzare
onir.BlochezPretV = .T.
onir.proc_tvav = orul.proc_tvav
onir.proc_adaos = lnProcAdaos
ENDIF
Do Case
CASE oset.model = 7 && ( oset.id_set = 218 )
onir.item9.label_item1.Caption = 'Pret nou fara TVA'
onir.item9.text_item1.inputmask = get_mask(12,gnPPret)
Case poact.id_set = 104 && RoaObInv - Imputare
onir.item7.label_item1.Caption = 'Pret imputare cu TVA'
onir.item8.label_item1.Caption = 'TVA imputare'
onir.item9.label_item1.Caption = 'Pret imputare fara TVA'
* onir.BlochezPretV = .T.
Case poact.id_set = 26001 && ROAPRODUCTIE.PV_PRODUCTIE
Local lnPret
Store 0 To lnPret
Private poPret
Store '' To poPret
Local lcschema, lcselect, lcFiltru, lcOrder, llAfiseaza, lcgroup, llModParam, lcFiltruOriginal
lcschema = []
lcselect = [select pret from vcrm_politici_pret_art]
lcOrder = []
lcFiltru = []
llAfiseaza = .F.
lcgroup = ""
llModParam = .T.
lcFiltruOriginal = [id_pol=] + ALLTRIM(STR(poact.id_pol)) + [ and id_articol=] + ALLTRIM(STR(oStg.id_articol))
gencursor('poPret','crsPret',lcselect,lcFiltru,lcschema,lcOrder,llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poPret.ca_baza1.afisare()
SELECT crsPret
GO TOP
lnPret = PRET
IF USED('crsPret')
USE IN crsPret
ENDIF
RELEASE poPret
onir.cobj.PRET = lnPret
onir.item2.label_item1.CAPTION = 'Pret unitar'
onir.item2.text_item1.READONLY = .T.
onir.item2.text_item1.TABSTOP = .F.
LOCAL lcReteta, lnId_reteta
STORE 0 TO lnId_reteta
STORE '' TO lcReteta
PRIVATE poReteta
STORE '' TO poReteta
lcschema = []
lcselect = [select id_reteta, reteta from vnom_retetar]
lcOrder = []
lcFiltru = []
llAfiseaza = .F.
lcgroup = ""
llModParam = .T.
lcFiltruOriginal = [principala=1 and id_articol=]+ALLTRIM(STR(onir.cobj.id_articol))
gencursor('poReteta','crsReteta',lcselect,lcFiltru,lcschema,lcOrder,llAfiseaza, lcgroup, llModParam, lcFiltruOriginal)
poReteta.ca_baza1.afisare()
SELECT crsReteta
GO TOP
lcReteta = ALLTRIM(reteta)
lnId_reteta = id_reteta
IF USED('crsReteta')
USE IN crsReteta
ENDIF
RELEASE poReteta
onir.cobj.reteta = lcReteta
onir.cobj.id_reteta = lnId_reteta
ENDCASE
*onir.item4.text_item1.comment = onir.item4.text_item1.comment + IIF(INLIST(oset.model,3,4),[e],[]) && CANT sau CANTE
onir.item4.text_item1.COMMENT = onir.item4.text_item1.COMMENT + IIF(LOWER(ALLTRIM(THISFORM.osel_dr.cantitate))=[cante],[e],[]) && CANT sau CANTE
onir.proc_discount = lnProcDisc
onir.proc_adaos = lnProcAdaos
onir.SHOW(1)
IF gnButon = 1
lcCant = [orul.] + ALLTRIM(THISFORM.osel_dr.cantitate)
IF TYPE('ostg.cantitate') # 'U' AND INLIST(oset.model, 3, 4, 5, 6, 7) &&: bon, retur, transfer, retur transfer
lnCantD = &lcCant
lnCantD1 = &lcCant
lnCantS = oStg.cantitate
*!* MODIFICAT 11.04.2006
*!* DOAR LA ID_SET = 210 (TRANSFER OB INV IN FOL CATRE MAI MULTI RESPONSABILI) AM PERMIS SA SE SCOATA DE MAI MULTE ORI ACELASI REPER
*!* ADUN CANTITATEA DEJA IESITA LA CEA CURENTA
lnCant = 0
IF INLIST(oset.id_set,210,211,212,89)
SELECT SUM(NVL(cant,0)) AS cant ;
FROM (lcSelRul) WITH (BUFFERING = .T.);
WHERE id_articol = oStg.id_articol AND PRET = oStg.PRET AND id_gestout = oStg.id_gestiune AND NVL(serie,'') = NVL(oStg.serie,'') ;
INTO CURSOR crsCant
SELECT crsCant
CALCULATE SUM(cant) TO lnCant
lnCantD = lnCantD + lnCant
USE IN crsCant
ENDIF
IF ABS(lnCantD) > ABS(lnCantS) OR (SIGN(lnCantD1) * SIGN(lnCantS) < 0)
lcTitlu = [Atentie]
lcTip = [Avertizare]
lcImagine = [exclam.ico]
ofrm_eroare = CREATEOBJECT('frm_mesaj',lcTitlu,lcImagine,lcTip,"Cantitatea maxima existenta este:",oStg.cantitate)
ofrm_eroare.SHOW(1)
RELEASE ofrm_eroare
&lcCant = oStg.cantitate - lnCant
ENDIF
*!* MODIFICAT 11.04.2006
*!* NU ADAUG ARTICOLE FARA CANTITATE
IF &lcCant = 0
THISFORM.ct_grid_order1.cb_tx_gestin.SETFOCUS()
RETURN
ENDIF
ENDIF
DO case
CASE INLIST(oset.model, 4, 6) && retur BON, retur TRANSFER
&lcCant = -&lcCant
case oset.model = 2 && NIR
SELECT (lcSelRul)
orul.acont = THISFORM.assign_analitic(orul.CONT,THISFORM.cobj,'orul')
ENDCASE
IF INLIST(oset.model,5,6,7) && TRANSFER, RETUR TRANSFER, DIFERENTA DE PRET
lcCantDr = LOWER(ALLTRIM(THISFORM.osel_dr.cantitate))
lcCantTransf = [cant] + IIF(lcCantDr = [cante],[],[e])
IF !USED('crsTransfer')
SELECT *, 0000 AS rec, 0 AS nuInConturiX FROM (lcSelRul) INTO CURSOR crsTransfer WHERE 1=2 NOFILTER READWRITE
ENDIF
SELECT crsTransfer
APPEND BLANK
GATHER NAME pcObj
GATHER NAME oStg
REPLACE cant WITH 0, cante WITH 0
REPLACE &lcCantTransf WITH &lcCant
*REPLACE nuInConturiX WITH 1
*!* modificare 26.02.2007
Do Case
Case INLIST(oset.id_set,75,218) && modificare 22.05.2007 : completez si pretv ca sa pot calcula adaosul
Replace pretv With orul.pretv,tvav With orul.tvav,proc_Tvav With orul.proc_Tvav
Case INLIST(oset.id_set, 207,254)
orul.pretv = oStg.pretv
orul.tvav = oStg.tvav
orul.proc_tvav = oStg.proc_tvav
Case oset.id_set = 89 && transfer intre persoane
pcObj.id_gestin = orul.id_gestout
pcObj.gestin = orul.id_gestout
orul.id_gestin = orul.id_gestout
orul.gestin = orul.gestout
Endcase
*!* IF oset.id_set = 89 && transfer intre persoane
*!* pcObj.id_gestin = orul.id_gestout
*!* pcObj.gestin = orul.id_gestout
*!* orul.id_gestin = orul.id_gestout
*!* orul.gestin = orul.gestout
*!* ENDIF
*!* modificare 26.02.2007 ^
REPLACE id_gestin WITH orul.id_gestin, gestin WITH orul.gestin
REPLACE id_gestout WITH orul.id_gestout, gestout WITH orul.gestout
*!* IF TYPE('orul.id_gestiune') = 'N' AND TYPE('crsTransfer.id_gestiunec') = 'N'
*!* REPLACE id_gestiunec WITH orul.id_gestiune
*!* ENDIF
IF TYPE('orul.id_responsabil') = 'N' AND TYPE('crsTransfer.id_responsabilc') = 'N'
REPLACE id_responsabilc WITH orul.id_responsabil
ENDIF
ENDIF
IF oset.id_set = 104
IF gnImputare = 1
SELECT cursor_curent1
IF DNF<>0
uzura = (DNF-(dns_luni-IIF(!EMPTY(datapif) AND !ISNULL(datapif),((gnAn*12+gnLuna)-(YEAR(datapif)*12+MONTH(datapif))),0)))/DNF*100
ELSE
uzura = 0
ENDIF
DO CASE
CASE pnImputare = 1 && procent
orul.pret_imputare = ROUND((100 - uzura) * orul.pretv / 100,gnPC)
CASE pnImputare = 2 && integral
orul.pret_imputare = orul.pretv
OTHERWISE
orul.pret_imputare = orul.pretv
ENDCASE
ELSE
orul.pret_imputare = orul.pretv
ENDIF
ENDIF
SELECT (lcSelRul)
APPEND BLANK
GATHER NAME orul
lnRecno = RECNO()
*!* IF TYPE('ostg.id_gestiune') = 'N'
*!* REPLACE id_gestiunec WITH ostg.id_gestiune
*!* ENDIF
IF TYPE('ostg.id_responsabil') = 'N'
REPLACE id_responsabilc WITH oStg.id_responsabil
ENDIF
*!* MODIFICAT 11.04.2006
*!* MARIUS.MUTU - AM PUS RECNO('RUL_TEMP') IN CURSORUL DE TRANSFER - LA STERGERE SA POT STERGE SI LINIA CORESPONDENTA DIN CRSTRANSFER
IF INLIST(oset.model,5,6,7) AND USED('crsTransfer') && TRANSFER, RETUR TRANSFER, DIFERENTA DE PRET
SELECT crsTransfer
REPLACE rec WITH lnRecno
EndIf
*!* 09.06.2008
*!* 231 - nir mf pretv cu modificarea listei de preturi
*!* daca pretul de vanzare este diferit de pretul de vanzare din lista
*!* modific pretul de vanzare din lista
&& 247 = roagest - nir marfa la pretv cu lista de preturi gestiune hibrid 23.10.2008
*!* 266 roagest - mf pret de ach * > factura nesosita - pret de lista ** 19.05.2010
If INLIST(oset.id_set,231,247,266) and poPreturi.pretvtva <> lnPretvTva and lnNIRPRETLISTAMOD = 1
lnPretftvaLista = poPreturi.pretv
lnPretvtvaLista = poPreturi.pretvtva
lnPretLista = Iif(lnListaPreturiCuTva = 1, lnPretvtvaLista, lnPretftvaLista)
lcSql = [update crm_politici_pret_art set pret = ] + Alltrim(Str(lnPretLista,20,4)) + ;
[, pretftva = ] + Alltrim(Str(lnPretftvaLista,20,4)) + [, pretctva = ] + Alltrim(Str(lnPretvtvaLista ,20,4)) + ;
[ where id_pol=] + ALLTRIM(STR(poact.id_pol)) + [ and id_articol =] + ALLTRIM(STR(oStg.id_articol))
lnSucces = goExecutor.oExecute(lcSql)
If lnSucces < 0
MessageBox(goExecutor.cEroare,0+16, 'Eroare')
EndIf
EndIf
*!* 09.06.2008 ^
IF THISFORM.ct_grid_order1.cb_tx_gestin.VISIBLE
THISFORM.ct_grid_order1.cb_tx_gestin._cbbase1.VALUE = orul.gestin
THISFORM.ct_grid_order1.cb_tx_gestin._cbbase1.REFRESH
ENDIF
THISFORM.ct_grid_order1.actualizeaza_grid()
THISFORM.ct_grid_order1._GRID1.AUTOFIT
ELSE
THISFORM.ct_grid_search1._GRID1.SETFOCUS
ENDIF
THISFORM.calcul_sume(lcSelRul)
*!* SELECT crsTransfer
*!* BROWSE
*!* SELECT (lcSelRul)
*!* BROWSE
IF oset.productie AND INLIST(oset.id_set,26003,26004) && modificare 17.10.2007 AND ALLTRIM(UPPER(oset.formproduc))='FRM_ALEGE_SECTIE_COMANDA'
pnValoareDecontata = thisform.nTotal
pnCheltuieliDirecte = thisform.nTotal - pnValoareDecontata
thisform.container_valoare_decontata1.Refresh
ENDIF
RELEASE orul
RELEASE oStg
ENDPROC
PROCEDURE _shape1.DblClick
IF thisform.WindowState = 2
thisform.WindowState = 0
ELSE
thisform.WindowState = 2
ENDIF
ENDPROC
ENDDEFINE
DEFINE CLASS valoare2rulaj AS frm_termin_renunt OF "_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="_shape3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_facturi_transport" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdFacturiTransport" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_articole" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdArticole" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Clb_valoare_repartizat" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cbo_explicatieTVA" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lb_explicatieTVA" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Caut_anluna1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="_label1" UniqueID="" Timestamp="" />
*
*m: calculvaloarerepartizat
*m: do_cauta_articole
*m: do_cauta_facturi_achizitie
*m: do_cauta_facturi_transport
*m: do_cauta_furnizor
*m: make_rul_temp
*p: cacont
*p: ccont
*p: cfurnizorname
*p: clistaidarticole
*p: clistaidfacturitransport
*p: cnumefurnizor
*p: cxmlarticole
*p: cxmlfacturiachizitie
*p: cxmlfacturitransport
*p: ddata1
*p: ddata2
*p: nidfurnizor
*p: nprocenttva
*p: ntotalvaloarerepartizat
*p: ofurnizor
*
*
cacont =
Caption = "Form"
ccont = 301
cfurnizorname =
clistaidarticole =
clistaidfacturitransport =
cnumefurnizor =
cxmlarticole =
cxmlfacturiachizitie =
cxmlfacturitransport =
ddata1 = {}
ddata2 = {}
DoCreate = .T.
Height = 178
Name = "valoare2rulaj"
nidfurnizor = 0
nprocenttva = 0
ntotalvaloarerepartizat = 0
ofurnizor = .F.
Width = 599
_SHAPE1.Height = 29
_SHAPE1.Left = 0
_SHAPE1.Name = "_SHAPE1"
_SHAPE1.Top = 0
_SHAPE1.Width = 600
_SHAPE1.ZOrderSet = 1
_SHAPE2.Height = 29
_SHAPE2.Left = 539
_SHAPE2.Name = "_SHAPE2"
_SHAPE2.Top = 0
_SHAPE2.Width = 61
_SHAPE2.ZOrderSet = 2
LB_TITLU_ALB_B121.Caption = "Repartizare valori pe articole"
LB_TITLU_ALB_B121.Name = "LB_TITLU_ALB_B121"
LB_TITLU_ALB_B121.TabIndex = 10
LB_TITLU_ALB_B121.ZOrderSet = 3
BUT_TERMIN1.Left = 570
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 6
BUT_TERMIN1.Top = 1
BUT_TERMIN1.ZOrderSet = 4
GRIDSORT1.Name = "GRIDSORT1"
BUT_RENUNT1.Left = 541
BUT_RENUNT1.Name = "BUT_RENUNT1"
BUT_RENUNT1.TabIndex = 7
BUT_RENUNT1.Top = 1
BUT_RENUNT1.ZOrderSet = 6
*
ADD OBJECT '_label1' AS _label WITH ;
Caption = "Luna intrari articole", ;
Left = 21, ;
Name = "_label1", ;
TabIndex = 4, ;
Top = 146, ;
ZOrderSet = 15
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT '_shape3' AS _shape WITH ;
BackStyle = 0, ;
Height = 29, ;
Left = 13, ;
Name = "_shape3", ;
Top = 138, ;
Width = 372, ;
ZOrderSet = 0
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'Caut_anluna1' AS caut_anluna WITH ;
Left = 226, ;
Name = "Caut_anluna1", ;
TabIndex = 12, ;
ToolTipText = "Luna in care se cauta intrarile de articole pe care se repartizeaza valoarea facturilor", ;
Top = 142, ;
ZOrderSet = 14, ;
cboan.Name = "cboan", ;
cboluna.Name = "cboluna"
*< END OBJECT: ClassLib="caut_ora.vcx" BaseClass="container" />
ADD OBJECT 'cbo_explicatieTVA' AS combobox WITH ;
BorderColor = 128,128,128, ;
BorderStyle = 1, ;
BoundTo = .T., ;
ColumnCount = 1, ;
ColumnLines = .F., ;
ControlSource = "", ;
FontSize = 10, ;
Height = 20, ;
InputMask = "", ;
Left = 439, ;
Name = "cbo_explicatieTVA", ;
RowSource = "jtva_coloane.denumire,cota_tva,id_jtva_coloana", ;
RowSourceType = 2, ;
SpecialEffect = 1, ;
Style = 2, ;
TabIndex = 5, ;
TabStop = .F., ;
Top = 65, ;
Width = 149, ;
ZOrderSet = 12
*< END OBJECT: BaseClass="combobox" />
ADD OBJECT 'Clb_articole' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 13, ;
Name = "Clb_articole", ;
TabIndex = 3, ;
Top = 110, ;
Width = 372, ;
ZOrderSet = 9, ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.Left = 101, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.ReadOnly = .T., ;
TEXT_SIMPLU1.Top = 3, ;
TEXT_SIMPLU1.Width = 265, ;
LB_SIMPLU1.Caption = "Articole", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_facturi_transport' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 12, ;
Name = "Clb_facturi_transport", ;
TabIndex = 1, ;
Top = 48, ;
Width = 372, ;
ZOrderSet = 7, ;
TEXT_SIMPLU1.Height = 23, ;
TEXT_SIMPLU1.Left = 132, ;
TEXT_SIMPLU1.Name = "TEXT_SIMPLU1", ;
TEXT_SIMPLU1.ReadOnly = .T., ;
TEXT_SIMPLU1.Top = 3, ;
TEXT_SIMPLU1.Width = 234, ;
LB_SIMPLU1.Caption = "Facturi de repartizat", ;
LB_SIMPLU1.Name = "LB_SIMPLU1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'Clb_valoare_repartizat' AS clb_tx_simplu WITH ;
Height = 29, ;
Left = 12, ;
Name = "Clb_valoare_repartizat", ;
TabIndex = 2, ;
Top = 76, ;
Width = 372, ;
ZOrderSet = 11, ;
Text_simplu1.ControlSource = "thisform.nTotalValoareRepartizat", ;
Text_simplu1.Format = "KR", ;
Text_simplu1.Height = 23, ;
Text_simplu1.InputMask = (get_mask(12,gnPc)), ;
Text_simplu1.Left = 216, ;
Text_simplu1.Name = "Text_simplu1", ;
Text_simplu1.ReadOnly = .T., ;
Text_simplu1.Top = 3, ;
Text_simplu1.Width = 149, ;
Lb_simplu1.Caption = "Valoare de repartizat", ;
Lb_simplu1.Name = "Lb_simplu1"
*< END OBJECT: ClassLib="lb_tx.vcx" BaseClass="container" />
ADD OBJECT 'cmdArticole' AS but_cautare WITH ;
caction = do_cauta_articole, ;
Left = 397, ;
Name = "cmdArticole", ;
TabIndex = 9, ;
Top = 110, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdFacturiTransport' AS but_cautare WITH ;
caction = do_cauta_facturi_transport, ;
Left = 396, ;
Name = "cmdFacturiTransport", ;
TabIndex = 8, ;
Top = 48, ;
ZOrderSet = 8
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'lb_explicatieTVA' AS label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "TVA", ;
FontName = "Arial", ;
Height = 17, ;
Left = 439, ;
Name = "lb_explicatieTVA", ;
TabIndex = 11, ;
Top = 48, ;
Width = 23, ;
ZOrderSet = 13
*< END OBJECT: BaseClass="label" />
PROCEDURE calculvaloarerepartizat
lcXMLFacturi = this.cXmlfacturitransport
IF !EMPTY(lcXMLFacturi)
XMLTOCURSOR(lcXMLFacturi, "crsFacturiTransport")
lcNrFacturi = cursor2lista("crsFacturiTransport", "nract", ",")
this.cListaIdFacturiTransport = cursor2lista("crsFacturiTransport","id_ireg_part",",")
SELECT crsFacturiTransport
lnProcent = 100 + this.nProcentTVA
CALCULATE SUM(ROUND(totctva*100/lnProcent,gnPC)) TO this.nTotalValoareRepartizat
this.clb_facturi_transport.teXT_SIMPLU1.Value = lcNrFacturi
USE IN crsFacturiTransport
ELSE
this.clb_facturi_transport.teXT_SIMPLU1.Value = ""
this.ntotalvaloarerepartizat = 0
ENDIF
this.clb_valoare_repartizat.text_simplu1.Refresh()
this.clb_facturi_transport.text_SIMPLU1.Refresh()
ENDPROC
PROCEDURE do_cauta_articole
LOCAL lcArticole, lcXMLArticole
lcXMLArticole = caut_articol(0, .F., .T.)
this.cXMLArticole = lcXMLArticole
IF !EMPTY(lcXMLArticole)
XMLTOCURSOR(lcXMLArticole, "crsArticole")
lcArticole = cursor2lista("crsArticole", "denumire", ",")
this.cListaIdArticole = cursor2lista("crsArticole","id_articol",",")
USE IN crsArticole
this.clb_articole.teXT_SIMPLU1.Value = lcArticole
this.clb_articole.text_SIMPLU1.Refresh()
ENDIF
ENDPROC
PROCEDURE do_cauta_facturi_achizitie
ENDPROC
PROCEDURE do_cauta_facturi_transport
LOCAL lcCont, lnIdPart, ldData1, ldData2, lcXMLFacturi
lcCont = "401,408"
ldData1 = DATE(gnAn, gnLuna, 1)
ldData2 = GOMONTH(ldData1,2) - 1 && pot sa am factura de transport si in luna urmatoare
IF this.nIdfurnizor <= 0
aMESSAGEBOX("Alegeti furnizorul",0+48,"Atentie")
RETURN
ENDIF
lnIdPart = this.nIdfurnizor
lcXMLFacturi = caut_facturi(lcCont, lnIdPart, ldData1, ldData2)
IF gnButon = 1
this.cXmlfacturitransport = lcXMLFacturi
this.calculvaloarerepartizat()
ENDIF
ENDPROC
PROCEDURE do_cauta_furnizor
ENDPROC
PROCEDURE inainte_de_do_termin
llSucces = .T.
lcListaIdArticole = This.clistaidarticole
lcListaIdFacturiTransport = This.cListaIdfacturitransport
If Empty(lcListaIdArticole)
llSucces = .F.
AMESSAGEBOX('Alegeti articolele!', 0 + 48, 'Atentie')
Endif
If Empty(lcListaIdFacturiTransport)
llSucces = .F.
AMESSAGEBOX('Alegeti facturile de repartizat', 0 + 16, 'Facturi')
Endif
If llSucces
If Type('oitem') = 'O'
If Pemstatus(oitem,'adunadate',5)
_Screen.MousePointer = 11
*!* modificare JC/JV 2007
oitem.id_jnetax = Null
oitem.id_jtax = Null
oitem.id_jtva = Null
*!* modificare JC/JV 2007 ^
oitem.adunadate()
_Screen.MousePointer = 0
Endif
Endif
Endif
If llSucces
_Screen.MousePointer = 11
llSucces = This.make_rul_temp()
_Screen.MousePointer = 0
Endif
Return llSucces
ENDPROC
PROCEDURE Init
DODEFAULT()
IF USED('xcont')
SELECT xcont
LOCATE FOR cont_part = "401"
IF FOUND()
lcNumePart = ALLTRIM(numepart)
lnIdPart = idpart
this.nIdFurnizor = lnIdPart
this.cNumeFurnizor = lcNumePart
ENDIF
ENDIF
ENDPROC
PROCEDURE make_rul_temp
LOCAL llSucces, lnSucces, lcListaIdArticole, lcListaIdFacturiTransport
LOCAL lcSql, lcCursor, lnTotalValoareAchizitie, lnTotalValoareRepartizat, lnIdArticol, lnCant, lnCante, lnPret, lnIdGestiune
LOCAL lcCont, lcAcont
LOCAL lnCoeficient, lnValoareRepartizat, lnValoare, lnLuna, lnAn
lcListaIdArticole = THIS.clistaidarticole
lcListaIdFacturiTransport = THIS.cListaIdfacturitransport
lnLuna = thisform.caut_anluna1.nluna
lnAn = thisform.caut_anluna1.nan
lcSql = [select v.*, v.id_gestiune as id_gestin, v.nume_gestiune as gestin, v.id_gestiune as id_gestout,] + ;
[v.nume_gestiune as gestout, 0 as nuInConturiX from vrul v where 1=2]
lcCursor = [rul_temp]
lnSucces = goExecutor.oExecute(lcSql,lcCursor)
IF lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
ENDIF
IF lnSucces > 0
lcselect = [SELECT A.DENUMIRE, A.CODMAT, G.NUME_GESTIUNE, S.id_articol, S.id_gestiune, S.pret, S.proc_tvav, S.cont, S.acont, S.cants, S.cant, S.cante, S.stoc FROM ] + ;
[(select id_articol, id_gestiune, pret, proc_tvav, cont, acont, cants, cant, cante, (cants + cant - cante) as stoc from stoc where an = ] + ;
TRANSFORM(m.lnAn) + [ and luna = ] + TRANSFORM(m.lnLuna) + [ and id_gestiune in (] + gcGestPermis + [)] + ;
[ and (cants + cant - cante <> 0) and cant <> 0 and id_articol in (] + lcListaIdArticole + [)] + gcCondSucursala + ;
[ order by id_articol) S LEFT JOIN NOM_ARTICOLE A ON S.ID_ARTICOL = A.ID_ARTICOL ] + ;
[ LEFT JOIN NOM_GESTIUNI G ON S.ID_GESTIUNE = G.ID_GESTIUNE]
*!* lcSql = [select id_articol, id_gestiune, pret, proc_tvav, cont, acont, cants, cant, cante, (cants + cant - cante) as stoc from stoc where an = ] + ;
*!* TRANSFORM(gnAn) + [ and luna = ] + TRANSFORM(gnLuna) + [ and id_gestiune in (] + gcGestPermis + [)] + ;
*!* [ and (cants + cant - cante <> 0) and cant <> 0 and id_articol in (] + lcListaIdArticole + [)] + ;
*!* [ order by id_articol]
*!* lcCursor = [crsStoc]
*!* lnSucces = goExecutor.oExecute(lcSql,lcCursor)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
*!* ENDIF
loHash = GetHash()
WITH loHash
.SetValue("cSelect", lcselect)
.SetValue("cColoana", "DENUMIRE, CODMAT, NUME_GESTIUNE, CONT, ACONT, PRET, STOC, ID_ARTICOL, ID_GESTIUNE")
.SetValue("cTitlu", "Alegeti intrarile (Mouse Click sau SPATIU pe 'DENUMIRE')")
.SetValue("cTitluColoana", "DENUMIRE, COD MATERIAL, NUME_GESTIUNE, CONT, ACONT, PRET, STOC, ID ARTICOL, ID GESTIUNE")
.SetValue("cPrimaColoana", "denumire")
.SetValue("nTipReturn", 1)
ENDWITH
TRY
lcXML = cauta_alfa_hash(loHash) && 11.07.2007
IF !EMPTY(lcXML)
XMLTOCURSOR(lcXML, "crsStoc")
ELSE
lnSucces = -1
ENDIF
CATCH
lnSucces = -1
ENDTRY
ENDIF
*!* modificare serii numere - 10.2007
*!* IF lnSucces > 0
*!* && PLAJE NIR-URI CMP
*!* lnTip = 4 && NIR PT CMP
*!* lnSerie = 2
*!* lnId_entitate = 0
*!* lnNnir1 = 0
*!* lnNnir2 = 0
*!* lcselect = [select id_plaja,pl_inf,pl_sup from ] + gcS + [.vplaje_numere where ] +;
*!* [inactiv = 0 and tip = ] + ALLTRIM(STR(lnTip)) + [ and serie = ] + ;
*!* ALLTRIM(STR(lnSerie)) + [ and id_entitate = ] + ALLTRIM(STR(lnId_entitate))
*!* lcCursor = [crsplaja]
*!* lnSucces = goExecutor.oExecute(lcselect,lcCursor)
*!* IF lnSucces < 0
*!* AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
*!* ELSE
*!* SELECT crsPlaja
*!* lnNnir1 = pl_inf
*!* lnNnir2 = pl_sup
*!* ENDIF
*!* USE IN crsPlaja
*!* ENDIF
*!* modificare serii numere - 10.2007 ^9
IF lnSucces > 0
*!* modificare v 2.2.33 : am adaugat PRET
SELECT DISTINCT ID_ARTICOL, ID_GESTIUNE, PADR(NVL(CONT,''), 4, ' ') AS CONT, PADR(NVL(ACONT,''), 4, ' ') AS ACONT, pret ;
FROM crsStoc ;
INTO CURSOR crsJoinTemp
*!* modificare serii numere - 10.2007
*!* modificare v 2.2.33 : pret, round(CANT*PRET,?gnPc)
lcselect = [SELECT ID_ARTICOL, ID_GESTIUNE, CONT, ACONT, PRET, SUM(ROUND(CANT*PRET,?gnPc)) AS VALOARE FROM RUL ] + ;
[ WHERE STERS = 0 AND AN = ] + TRANSFORM(m.lnAn) + [ AND LUNA = ] + TRANSFORM(m.lnLuna) + ;
[ and id_gestiune in (] + gcGestPermis + [)] + ;
[ AND CANT <> 0 and id_tip_rulaj <> 2] + gcCondSucursala
*!* lcselect = [SELECT ID_ARTICOL, ID_GESTIUNE, CONT, ACONT, SUM(CANT*PRET) AS VALOARE FROM RUL ] + ;
*!* [ WHERE STERS = 0 AND AN = ] + TRANSFORM(gnAn) + [ AND LUNA = ] + TRANSFORM(gnLuna) + [ and id_gestiune in (] + gcGestPermis + [)] + ;
*!* [ AND CANT <> 0 and (NNIR NOT BETWEEN ] + TRANSFORM(lnNnir1) + [ AND ] + TRANSFORM(lnNnir2) + [)]
*!* *!* [ AND id_articol in (] + lcListaIdArticole + [)]
*!* modificare serii numere - 10.2007 ^
lcConditie = ""
SELECT crsJoinTemp
SCAN
SCATTER NAME lorec
lcConditie = lcConditie + [ OR (id_articol = ] + ALLTRIM(STR(lorec.ID_ARTICOL)) + [ and id_gestiune = ] + ALLTRIM(STR(lorec.ID_GESTIUNE)) + ;
[ and cont = '] + ALLTRIM(lorec.CONT) + IIF(!EMPTY(ALLTRIM(lorec.ACONT)), [' and acont = '] + ALLTRIM(lorec.ACONT) + ['], [']) + [)]
ENDSCAN
USE IN crsJoinTemp
IF !EMPTY(lcConditie)
lcConditie = SUBSTR(lcConditie, 5)
ENDIF
lcselect = lcselect + IIF(!EMPTY(lcConditie), [ AND (] + lcConditie + [)], [])
*!* modificare v 2.2.33 : am adaugat PRET
lcselect = lcselect + [ GROUP BY ID_ARTICOL, ID_GESTIUNE, CONT, ACONT, PRET order by id_articol]
lcCursor = [crsRulTemp]
lnSucces = goExecutor.oExecute(lcselect,lcCursor)
IF lnSucces < 0
AMESSAGEBOX(goExecutor.cEroare,0+16, 'Eroare')
ENDIF
*!* loHash = GetHash()
*!* WITH loHash
*!* .SetValue("cSelect", lcselect)
*!* .SetValue("cColoana", "DENUMIRE, CODMAT, NUME_GESTIUNE, CONT, ACONT, VALOARE, ID_ARTICOL, ID_GESTIUNE")
*!* .SetValue("cTitlu", "Alegeti intrarile")
*!* .SetValue("cTitluColoana", "DENUMIRE, COD MATERIAL, NUME_GESTIUNE, CONT, ACONT, VALOARE, ID ARTICOL, ID GESTIUNE")
*!* .SetValue("cPrimaColoana", "denumire")
*!* .SetValue("nTipReturn", 1)
*!* ENDWITH
*!* lcXML = cauta_alfa_hash(loHash) && 11.07.2007
*!* IF !EMPTY(lcXML)
*!* XMLTOCURSOR(lcXML, "crsRulTemp")
*!* ELSE
*!* lnSucces = -1
*!* ENDIF
ENDIF
IF lnSucces > 0
SELECT crsRulTemp
CALCULATE SUM(ROUND(valoare,gnPc)) TO lnTotalValoareAchizitie
lnTotalValoareRepartizat = THIS.ntotalvaloarerepartizat
LOCAL lnValoareRepartizatSuma
lnValoareRepartizatSuma = 0
SELECT crsStoc
SCAN
lnIdArticol = ID_ARTICOL
lnCante = cants + cant - cante
lnPret = PRET
lnIdGestiune = ID_GESTIUNE
lcCont = CONT
lcAcont = ACONT
lnStoc = stoc
*!* SCOT STOCUL EXISTENT CU PRETUL VECHI
SELECT rul_temp
SCATTER NAME loRul BLANK
WITH loRul
.ID_ARTICOL = lnIdArticol
.id_gestout = lnIdGestiune
.ID_GESTIUNE = lnIdGestiune
.cante = lnStoc
.PRET = lnPret
.CONT = lcCont
.ACONT = lcAcont
ENDWITH
SELECT rul_temp
APPEND BLANK
GATHER NAME loRul
*!* INTRODUC STOCUL EXISTENT CU PRETUL NOU
*!* coeficient_lesie = valoare_achizitie_lesie / valoare_achizitie_totala
*!* valoare_repartizata_lesie = valoare_totala_de_repartizat * coeficient_lesie
*!* valoare_lesie = valoare_stoc_lesie + valoare_repartizata_lesie
*!* pret_lesie = valoare_lesie / stoc_final_lesie
SELECT crsRulTemp
*!* modificare v 2.2.33 : am adaugat PRET
LOCATE FOR ID_ARTICOL = lnIdArticol AND ID_GESTIUNE = lnIdGestiune AND CONT = lcCont AND NVL(ACONT,'XXXX') = NVL(lcAcont,'XXXX') AND pret = lnPret
IF FOUND()
*!* modificare v 2.2.33 : round(...)
lnCoeficient = ROUND(valoare / lnTotalValoareAchizitie,2)
ELSE
lnCoeficient = 0
ENDIF
&& la ultimul reper valoarea de repartizat = total valoare de repartizat - valoarea repartizata pe reperele anterioare
lnValoareRepartizat = ROUND(lnTotalValoareRepartizat * lnCoeficient, gnPc)
IF RECCOUNT('crsStoc') = RECNO('crsStoc') && ultimul reper
lnValoareRepartizat = lnTotalValoareRepartizat - lnValoareRepartizatSuma
ELSE
lnValoareRepartizatSuma = lnValoareRepartizatSuma + lnValoareRepartizat
ENDIF
lnValoare = ROUND(lnStoc * lnPret + lnValoareRepartizat, gnPc)
lnPret = ROUND(lnValoare / lnStoc, gnPpret)
SELECT rul_temp
SCATTER NAME loRul BLANK
WITH loRul
.ID_ARTICOL = lnIdArticol
.id_gestout = lnIdGestiune
.ID_GESTIUNE = lnIdGestiune
.cant = lnStoc
.PRET = lnPret
.CONT = lcCont
.ACONT = lcAcont
ENDWITH
SELECT rul_temp
APPEND BLANK
GATHER NAME loRul
ENDSCAN
ENDIF
SELECT rul_temp
REPLACE ALL ID_TIP_RULAJ WITH 5 && RULAJ REPARTIZARE VALOARE PE ARTICOLE
*!* modificare 08.11.2007
lcCont = cont
*!* modificare 08.11.2007 ^
IF USED('ACTACTAN')
SELECT ACTACTAN
*!* modificare JC/JV 2007
REPLACE proc_tva WITH 0 FOR NVL(id_jtva_coloana,0)=0
*!* modificare JC/JV 2007 ^
GO TOP
*!* modificare 08.11.2007
replace scd WITH lcCont
*!* REPLACE SCD WITH rul_temp.CONT
*!* modificare 08.11.2007 ^
SCATTER NAME loActactan
SELECT rul_temp
REPLACE ALL dataact WITH loActactan.dataact, ;
nnir WITH loActactan.nnir, ;
id_sectie WITH loActactan.id_sectie, ;
id_responsabil WITH loActactan.id_responsabil, ;
id_lucrare WITH loActactan.id_lucrare, nract WITH loActactan.nract, serie_act WITH loActactan.serie_act
ENDIF
IF USED('crsStoc')
USE IN crsStoc
ENDIF
IF USED('crsRulTemp')
USE IN crsRulTemp
ENDIF
llSucces = IIF(lnSucces > 0, .T., .F.)
RETURN llSucces
ENDPROC
PROCEDURE cbo_explicatieTVA.Init
Select jtva_coloane
Locate For id_jtva_coloana = XSETS.id_jtax
If ! Found()
Go Top
Endif
Thisform.nProcenttva = cota_tva
This.Value = Alltrim(denumire)
ENDPROC
PROCEDURE cbo_explicatieTVA.InteractiveChange
Select jtva_coloane
Thisform.nProcenttva = cota_tva
Thisform.calculvaloarerepartizat()
ENDPROC
ENDDEFINE