Files
comun/clase/ointroduceri.vc2

20544 lines
686 KiB
Plaintext

*--------------------------------------------------------------------------------------------------------------------------------------------------------
* (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="" />
*<PropValue>
BackColor = 255,255,255
BorderColor = 255,255,255
Height = 28
Name = "container_valoare_decontata"
Width = 245
*</PropValue>
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"
*<PropValue>
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"
*</PropValue>
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="" />
*<DefinedPropArrayMethod>
*m: do_cauta_gestiune
*m: do_cauta_produs
*</DefinedPropArrayMethod>
*<PropValue>
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
*</PropValue>
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="" />
*<DefinedPropArrayMethod>
*m: do_cauta_sectie
*</DefinedPropArrayMethod>
*<PropValue>
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
*</PropValue>
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="" />
*<DefinedPropArrayMethod>
*m: do_cauta_comanda
*m: do_cauta_sectie
*</DefinedPropArrayMethod>
*<PropValue>
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
*</PropValue>
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="" />
*<DefinedPropArrayMethod>
*m: do_actualizeaza_um
*m: do_calculeaza_pret
*m: do_conversie
*p: calias
*p: ccursor
*p: cum
*p: ncantitate
*p: npret
*p: ntip
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 1
calias =
ccursor =
cum =
DoCreate = .T.
Height = 270
Name = "frm_conversie"
ncantitate = 0
npret = 0
ntip = 0
Width = 480
_memberdata = <VFPData>
<memberdata name="ccursor" display="cCursor"/>
<memberdata name="ntip" display="nTip"/>
</VFPData>
_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"
*</PropValue>
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 = "\<Volum -> masa", ;
Page1.Name = "Page1", ;
Page1.PageOrder = 2, ;
Page2.BackColor = 255,255,255, ;
Page2.Caption = "\<Conversii", ;
Page2.Name = "Page2", ;
Page2.PageOrder = 1
*< END OBJECT: ClassLib="_frm_base.vcx" BaseClass="pageframe" />
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="" />
*<DefinedPropArrayMethod>
*p: nprocentuzura
*</DefinedPropArrayMethod>
*<PropValue>
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"
*</PropValue>
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"
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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 = <VFPData>
<memberdata name="aplicatva" display="AplicaTVA"/>
<memberdata name="updatepaymentsaft" display="UpdatePaymentSAFT"/>
<memberdata name="cpaymentcode" display="cPaymentCode"/>
<memberdata name="updateexplicatiesaft" display="UpdateExplicatieSAFT"/>
<memberdata name="ntaxcodeachizitie" display="nTaxCodeAchizitie"/>
<memberdata name="ntaxcodevanzare" display="nTaxCodeVanzare"/>
<memberdata name="updatelabelsaft" display="UpdateLabelSaft"/>
</VFPData>
_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"
*</PropValue>
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"
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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"
*</PropValue>
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="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="_label1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtFelDocDVI" 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="_label2" 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="But_renunt1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblProcentTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtProcentTva" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdFelDocDVI" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="cmdDviValuta" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDviCurs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDviCurs" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="lblDiscBaza" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="txtDiscBaza" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="chkDviInValuta" UniqueID="" Timestamp="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_etichete_sume
*m: actualizeaza_stare_dvi
*m: actualizeaza_stare_dvi_valuta
*m: actualizeaza_stare_valuta
*m: arata_valuta_curs
*m: construieste_todlg
*m: dvi_curs_efectiv
*m: dvi_id_valuta_efectiva
*m: dvi_tva_in_valuta
*m: dvi_valuta_efectiva
*m: recalc_tva
*m: seteaza_masti
*m: tva_dvi_lei
*m: valideaza
*p: cdvipartener
*p: cdviserie
*p: cdvivaluta
*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: ldvicursdirty
*p: ldviinvalutadirty
*p: ldvitvavaldirty
*p: ldvivalutadirty
*p: linvalutadirty && bifa "in valuta" schimbata explicit de utilizator - nu o mai fortez
*p: lsuprimadirty
*p: ncurs
*p: ndiscbaza
*p: ndvicurs
*p: ndvicursoldval
*p: ndviidpartener
*p: ndviidvaluta
*p: ndvitvalei
*p: ndvitvaval
*p: ndvitvavaloldval
*p: nidexplicatietva
*p: nidfdoc
*p: nidfdocdvi
*p: nidpartener
*p: nidvaluta
*p: nnract
*p: nnractdvi
*p: noldval
*p: nprocenttva
*p: nsuma
*p: nsumalei && suma fara TVA in lei (calculata din suma si curs)
*p: oparinte && referinta catre import_nota care a deschis dialogul
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 1
cdvipartener = ""
cdviserie = ""
cdvivaluta = ""
cexplicatia = ""
cexplicatietva = ""
cfeldoc = ""
cfeldocdvi = ""
cpartener = ""
cserieact = ""
cseriedvi = ""
cvaluta = ""
ddata = {}
ddataact = {}
ddvidata = {}
DoCreate = .T.
Height = 410
lcursdirty = .F.
ldvicursdirty = .F.
ldviinvalutadirty = .F.
ldvitvavaldirty = .F.
ldvivalutadirty = .F.
linvalutadirty = .F.
lsuprimadirty = .F.
Name = "import_adauga_factura"
ncurs = 0
ndiscbaza = 0
ndvicurs = 0
ndvicursoldval = 0
ndviidpartener = 0
ndviidvaluta = 0
ndvitvalei = 0
ndvitvaval = 0
ndvitvavaloldval = 0
nidexplicatietva = 0
nidfdoc = 0
nidfdocdvi = 0
nidpartener = 0
nidvaluta = 0
nnract = 0
nnractdvi = 0
noldval = 0
nprocenttva = 0
nsuma = 0
nsumalei = 0
oparinte =
Width = 655
_shape1.Height = 29
_shape1.Left = 0
_shape1.Name = "_shape1"
_shape1.Top = 0
_shape1.Width = 653
_shape1.ZOrderSet = 3
_shape2.Left = 586
_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 = 623
BUT_TERMIN1.Name = "BUT_TERMIN1"
BUT_TERMIN1.TabIndex = 30
BUT_TERMIN1.Top = 1
BUT_TERMIN1.Visible = .T.
BUT_TERMIN1.ZOrderSet = 6
Gridsort1.Left = 5
Gridsort1.Name = "Gridsort1"
Gridsort1.Top = 31
*</PropValue>
ADD OBJECT '_label1' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Fel doc", ;
FontBold = .T., ;
Height = 17, ;
Left = 20, ;
Name = "_label1", ;
Top = 280, ;
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 = 227, ;
Width = 257, ;
ZOrderSet = 32
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT '_shape3' AS _shape WITH ;
BackColor = 240,225,255, ;
BackStyle = 0, ;
Height = 131, ;
Left = 7, ;
Name = "_shape3", ;
SpecialEffect = 0, ;
Top = 36, ;
Width = 639, ;
ZOrderSet = 1
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT '_shape4' AS _shape WITH ;
BackColor = 197,197,226, ;
BackStyle = 0, ;
Height = 83, ;
Left = 7, ;
Name = "_shape4", ;
SpecialEffect = 0, ;
Top = 165, ;
Width = 639, ;
ZOrderSet = 2
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="shape" />
ADD OBJECT 'But_renunt1' AS but_renunt WITH ;
Left = 593, ;
Name = "But_renunt1", ;
TabIndex = 31, ;
Top = 1, ;
ZOrderSet = 47
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
ADD OBJECT 'chkDviInValuta' AS _checkbox WITH ;
Alignment = 0, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Valuta", ;
Height = 18, ;
Left = 300, ;
Name = "chkDviInValuta", ;
TabIndex = 29, ;
TabStop = .F., ;
Top = 364, ;
Value = 0, ;
Width = 56, ;
ZOrderSet = 63
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="checkbox" />
ADD OBJECT 'chkInValutaCont' AS _checkbox WITH ;
Alignment = 0, ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Valuta", ;
Height = 18, ;
Left = 560, ;
Name = "chkInValutaCont", ;
TabIndex = 13, ;
TabStop = .F., ;
Top = 133, ;
Value = 1, ;
Width = 55, ;
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 = 529, ;
Name = "chkParticipaValuta", ;
TabIndex = 14, ;
TabStop = .F., ;
Top = 66, ;
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 = 496, ;
Name = "cmdDviPartener", ;
TabIndex = 24, ;
Top = 305, ;
Width = 24, ;
ZOrderSet = 42
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdDviValuta' AS _commandbutton WITH ;
Caption = "...", ;
Enabled = .F., ;
FontBold = .T., ;
FontName = "Arial", ;
Left = 206, ;
Name = "cmdDviValuta", ;
TabIndex = 27, ;
Top = 361, ;
Width = 18, ;
ZOrderSet = 54
*< 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 = 200, ;
Width = 24, ;
ZOrderSet = 34
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdFelDoc' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Left = 223, ;
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 = 230, ;
Name = "cmdFelDocDVI", ;
TabIndex = 20, ;
Top = 275, ;
Width = 24, ;
ZOrderSet = 10
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="commandbutton" />
ADD OBJECT 'cmdPartener' AS _commandbutton WITH ;
Caption = "...", ;
FontBold = .T., ;
Height = 21, ;
Left = 490, ;
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 = 440, ;
Name = "cmdValuta", ;
TabIndex = 11, ;
Top = 129, ;
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 = 472, ;
Name = "lblCurs", ;
Top = 111, ;
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 = 494, ;
Name = "lblData", ;
Top = 43, ;
Width = 30, ;
ZOrderSet = 15
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDiscBaza' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Discount", ;
FontBold = .T., ;
Height = 18, ;
Left = 190, ;
Name = "lblDiscBaza", ;
Top = 111, ;
Width = 56, ;
ZOrderSet = 59
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviCurs' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Curs", ;
FontBold = .T., ;
Height = 18, ;
Left = 234, ;
Name = "lblDviCurs", ;
Top = 345, ;
Width = 30, ;
ZOrderSet = 55
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviData' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Data", ;
FontBold = .T., ;
Height = 18, ;
Left = 453, ;
Name = "lblDviData", ;
Top = 279, ;
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 = 263, ;
Name = "lblDviNr", ;
Top = 279, ;
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 = 20, ;
Name = "lblDviPartener", ;
Top = 310, ;
Width = 57, ;
ZOrderSet = 40
*< 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 = 20, ;
Name = "lblDviTvaVal", ;
Top = 345, ;
Width = 71, ;
ZOrderSet = 43
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblDviValuta' AS _label WITH ;
AutoSize = .T., ;
BackStyle = 0, ;
Caption = "Valuta", ;
FontBold = .T., ;
Height = 18, ;
Left = 150, ;
Name = "lblDviValuta", ;
Top = 345, ;
Width = 43, ;
ZOrderSet = 52
*< 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 = 205, ;
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 = 15, ;
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 = 345, ;
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 = 15, ;
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 = 20, ;
Name = "lblPedagogieDvi", ;
Top = 254, ;
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 = 205, ;
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 = 255, ;
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 = 15, ;
Name = "lblSuma", ;
Top = 111, ;
Width = 98, ;
ZOrderSet = 22
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="label" />
ADD OBJECT 'lblValuta' AS _label WITH ;
AutoSize = .F., ;
BackStyle = 0, ;
Caption = "Valuta", ;
FontBold = .T., ;
Height = 17, ;
Left = 366, ;
Name = "lblValuta", ;
Top = 111, ;
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 = 171, ;
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 = 158, ;
Left = 7, ;
Name = "shpDvi", ;
SpecialEffect = 0, ;
Top = 247, ;
Width = 639, ;
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 = 472, ;
Name = "txtCurs", ;
TabIndex = 12, ;
Top = 131, ;
Width = 80, ;
ZOrderSet = 28
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtData' AS _textbox WITH ;
ControlSource = "Thisform.dDataAct", ;
Format = "K", ;
Left = 528, ;
Name = "txtData", ;
TabIndex = 5, ;
Top = 40, ;
Width = 94, ;
ZOrderSet = 16
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDiscBaza' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nDiscBaza", ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999999999.9999", ;
Left = 190, ;
Name = "txtDiscBaza", ;
TabIndex = 9, ;
Top = 131, ;
Width = 114, ;
ZOrderSet = 60
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviCurs' AS _textbox WITH ;
Alignment = 1, ;
ControlSource = "Thisform.nDviCurs", ;
Enabled = .F., ;
Format = "RK", ;
Height = 23, ;
InputMask = "9999.9999", ;
Left = 234, ;
Name = "txtDviCurs", ;
TabIndex = 28, ;
Top = 363, ;
Width = 55, ;
ZOrderSet = 56
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviData' AS _textbox WITH ;
ControlSource = "Thisform.dDviData", ;
Enabled = .F., ;
Format = "K", ;
Left = 493, ;
Name = "txtDviData", ;
TabIndex = 22, ;
Top = 277, ;
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 = 288, ;
Name = "txtDviNr", ;
TabIndex = 21, ;
Top = 277, ;
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 = 93, ;
Name = "txtDviPartener", ;
TabIndex = 23, ;
Top = 307, ;
Width = 400, ;
ZOrderSet = 41
*< 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 = 21, ;
Name = "txtDviTvaVal", ;
TabIndex = 25, ;
Top = 363, ;
Width = 112, ;
ZOrderSet = 44
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtDviValuta' AS _textbox WITH ;
ControlSource = "Thisform.cDviValuta", ;
Enabled = .F., ;
Format = "K", ;
Height = 23, ;
Left = 150, ;
Name = "txtDviValuta", ;
ReadOnly = .T., ;
TabIndex = 26, ;
Top = 363, ;
Width = 52, ;
ZOrderSet = 53
*< 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 = 202, ;
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 = 69, ;
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 = 76, ;
Name = "txtFelDocDVI", ;
ReadOnly = .T., ;
TabIndex = 19, ;
Top = 277, ;
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 = 366, ;
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 = 87, ;
Name = "txtPartener", ;
ReadOnly = .T., ;
TabIndex = 6, ;
Top = 70, ;
Width = 400, ;
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 = 202, ;
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 = 293, ;
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 = 15, ;
Name = "txtSuma", ;
TabIndex = 8, ;
Top = 131, ;
Width = 114, ;
ZOrderSet = 23
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
ADD OBJECT 'txtValuta' AS _textbox WITH ;
ControlSource = "Thisform.cValuta", ;
Enabled = .T., ;
Format = "K", ;
Left = 366, ;
Name = "txtValuta", ;
ReadOnly = .T., ;
TabIndex = 10, ;
Top = 131, ;
Width = 70, ;
ZOrderSet = 25
*< END OBJECT: ClassLib="_baza.vcx" BaseClass="textbox" />
PROCEDURE actualizeaza_etichete_sume
*!* Etichetele sumelor arata moneda in care se tasteaza: valuta documentului cand
*!* bifa "Valuta" e pusa, altfel RON; TVA-ul DVI urmeaza bifa lui.
Local lcVal, lcValDvi
lcVal = Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0 And !(Empty(Nvl(This.cValuta, '')) Or Upper(Alltrim(Nvl(This.cValuta, ''))) == 'RON'), Alltrim(This.cValuta), 'RON')
lcValDvi = Iif(This.dvi_tva_in_valuta(), Alltrim(This.dvi_valuta_efectiva()), 'RON')
This.lblSuma.Caption = 'Valoare fara TVA ' + lcVal
This.lblDiscBaza.Caption = 'Discount fara TVA ' + lcVal
This.lblDviTvaVal.Caption = 'Valoare TVA ' + lcValDvi
This.Refresh()
ENDPROC
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.actualizeaza_stare_dvi_valuta()
This.Refresh()
ENDPROC
PROCEDURE actualizeaza_stare_dvi_valuta
*!* Resincronizeaza bifa cu starea valutei facturii daca n-a fost schimbata manual.
*!* Bifa scoasa = DVI fara valuta proprie: ascunde valuta/cursul, curs=1, TVA tastat in lei.
If This.optTipTva.Value <> 2
Return
Endif
If !This.lDviInValutaDirty
This.chkDviInValuta.Value = Iif(This.chkInValutaCont.Value = 1 And !(Empty(This.cValuta) Or Upper(Alltrim(This.cValuta)) == 'RON'), 1, 0)
Endif
This.lblDviValuta.Visible = (This.chkDviInValuta.Value = 1)
This.txtDviValuta.Visible = (This.chkDviInValuta.Value = 1)
This.cmdDviValuta.Visible = (This.chkDviInValuta.Value = 1)
If This.dvi_tva_in_valuta()
This.lblDviCurs.Visible = .T.
This.txtDviCurs.Visible = .T.
This.txtDviCurs.Enabled = .T.
Else
This.lblDviCurs.Visible = .F.
This.txtDviCurs.Visible = .F.
This.txtDviCurs.Enabled = .F.
This.nDviCurs = 1
This.txtDviCurs.Value = 1
This.lDviCursDirty = .F.
Endif
This.seteaza_masti()
This.actualizeaza_etichete_sume()
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 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 cu datele dialogului, pentru import_nota.do_adauga_factura().
Local loT, lcDviVal, lcFactVal, llDviFaraVal, llFactFaraVal, llDviPropriu
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, 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
lcDviVal = Alltrim(Nvl(This.dvi_valuta_efectiva(), ''))
lcFactVal = Alltrim(Nvl(This.cValuta, ''))
llDviFaraVal = (This.chkDviInValuta.Value = 0) Or Empty(lcDviVal) Or Upper(lcDviVal) == 'RON'
llFactFaraVal = (Empty(lcFactVal) Or Upper(lcFactVal) == 'RON')
llDviPropriu = (This.dvi_id_valuta_efectiva() <> This.nIdValuta Or This.dvi_curs_efectiv() <> This.nCurs)
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.tva_dvi_lei())
Addproperty(loT, 'dvi_tva_val', Iif(llDviFaraVal, 0, This.nDviTvaVal))
Addproperty(loT, 'dvi_in_valuta', !llDviFaraVal)
Addproperty(loT, 'dvi_id_valuta', This.dvi_id_valuta_efectiva())
Addproperty(loT, 'dvi_curs', This.dvi_curs_efectiv())
Addproperty(loT, 'dvi_nume_val', lcDviVal)
Addproperty(loT, 'dvi_valuta_proprie', Iif(llDviFaraVal And llFactFaraVal, 0, Iif(llDviFaraVal <> llFactFaraVal, 1, Iif(llDviPropriu, 1, 0))))
Endif
Addproperty(loT, 'disc_baza_lei', Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, Round(This.nDiscBaza * This.nCurs, m.gnPC), This.nDiscBaza))
Addproperty(loT, 'disc_baza_val', Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, This.nDiscBaza, 0))
Return loT
ENDPROC
PROCEDURE dvi_curs_efectiv
Return Iif(This.lDviValutaDirty Or This.lDviCursDirty, This.nDviCurs, This.nCurs)
ENDPROC
PROCEDURE dvi_id_valuta_efectiva
Return Iif(This.lDviValutaDirty, This.nDviIdValuta, This.nIdValuta)
ENDPROC
PROCEDURE dvi_tva_in_valuta
*!* .T. cand TVA-ul DVI se tasteaza in valuta (bifa pusa si valuta efectiva nu e RON).
Return This.chkDviInValuta.Value = 1 And !(Empty(This.dvi_valuta_efectiva()) Or Upper(Alltrim(This.dvi_valuta_efectiva())) == 'RON')
ENDPROC
PROCEDURE dvi_valuta_efectiva
Return Iif(This.lDviValutaDirty, This.cDviValuta, This.cValuta)
ENDPROC
PROCEDURE inainte_de_do_termin
*!* Hook _frmbase apelat de do_termin: valideaza si adauga perechea baza+TVA prin
*!* import_nota.do_adauga_factura(). Return .F. tine dialogul deschis pentru corectare.
Local loFelDviCauta, llOk
If !Thisform.valideaza()
Return .F.
Endif
* la prima trecere pe "prin DVI" cer felul documentului DVI - devine cheia
* memoriei DVI pentru restul sesiunii
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.nDviIdValuta = This.nIdValuta
This.cDviValuta = This.cValuta
This.nDviCurs = This.nCurs
This.cExplicatia = ''
* pre-completare din antetul notei (toParinte.oact = Scatter din vact); campurile raman
* editabile. Type() acopera cazul in care un 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_etichete_sume()
This.Refresh()
ENDPROC
PROCEDURE recalc_tva
*!* Precompleteaza TVA-ul DVI din baza neta (suma - discount) si cota (This.nProcentTva).
*!* Campul de TVA se tasteaza in valuta DVI cand DVI-ul are valuta, altfel in lei.
Local lnCota, lnTvaVal, lnTvaLei, lnDiscLei, lnDiscVal, lnBazaLeiNet, lnBazaValNet
lnCota = Nvl(This.nProcentTva, 0)
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
If This.optTipTva.Value = 2 And lnCota > 0 And This.nSuma <> 0
lnDiscLei = Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, Round(This.nDiscBaza * This.nCurs, m.gnPC), This.nDiscBaza)
lnDiscVal = Iif(This.chkInValutaCont.Value = 1 And This.nCurs <> 0, This.nDiscBaza, 0)
lnBazaLeiNet = This.nSumaLei - lnDiscLei
lnBazaValNet = This.nSuma - lnDiscVal
If !This.dvi_tva_in_valuta()
lnTvaLei = Round(lnBazaLeiNet * lnCota / 100, m.gnPC)
lnTvaVal = 0
Else
If This.chkInValutaCont.Value = 1 And This.nCurs <> 0 And This.dvi_id_valuta_efectiva() == This.nIdValuta
lnTvaVal = Round(lnBazaValNet * lnCota / 100, m.gnPval)
Else
lnTvaLei = Round(lnBazaLeiNet * lnCota / 100, m.gnPC)
lnTvaVal = Iif(This.dvi_curs_efectiv() <> 0, Round(lnTvaLei / This.dvi_curs_efectiv(), m.gnPval), 0)
Endif
Endif
If !This.lDviTvaValDirty
This.nDviTvaVal = Iif(This.dvi_tva_in_valuta(), lnTvaVal, lnTvaLei)
This.txtDviTvaVal.Value = This.nDviTvaVal
Endif
Else
If !This.lDviTvaValDirty
This.nDviTvaVal = 0
This.txtDviTvaVal.Value = 0
Endif
Endif
This.nDviTvaLei = This.tva_dvi_lei()
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.txtDiscBaza.InputMask = get_mask(12, Iif(llValuta, m.gnPval, m.gnPC))
This.txtDviTvaVal.InputMask = get_mask(12, Iif(This.dvi_tva_in_valuta(), m.gnPval, m.gnPC))
ENDPROC
PROCEDURE tva_dvi_lei
*!* TVA-ul DVI in lei, din valoarea tastata (in valuta DVI sau direct in lei).
Return Iif(This.dvi_tva_in_valuta(), Round(This.nDviTvaVal * This.dvi_curs_efectiv(), m.gnPC), Round(This.nDviTvaVal, m.gnPC))
ENDPROC
PROCEDURE valideaza
*!* Validari la "Termin": mesaj explicit per camp lipsa, Return .F. opreste inchiderea.
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.chkDviInValuta.Value = 1 And !(Empty(This.dvi_valuta_efectiva()) Or Upper(Alltrim(This.dvi_valuta_efectiva())) == 'RON') And This.dvi_curs_efectiv() = 0
Amessagebox('Completati cursul valutei DVI.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.tva_dvi_lei() = 0
Amessagebox('Valoarea TVA (DVI) trebuie sa fie mai mare decat zero.', 0 + 48, 'Adauga factura')
Return .F.
Endif
Endif
If This.nDiscBaza <> 0
If This.nDiscBaza < 0
Amessagebox('Discountul nu poate fi negativ.', 0 + 48, 'Adauga factura')
Return .F.
Endif
If This.nDiscBaza >= This.nSuma
Amessagebox('Discountul este mai mare sau egal cu suma facturii. Verificati valoarea.', 0 + 48, 'Adauga factura')
Return .F.
Endif
Endif
Return .T.
ENDPROC
PROCEDURE chkDviInValuta.InteractiveChange
Thisform.lDviInValutaDirty = .T.
Thisform.lDviTvaValDirty = .F.
Thisform.actualizeaza_stare_dvi_valuta()
Thisform.recalc_tva()
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.lDviTvaValDirty = .F.
Thisform.arata_valuta_curs(This.Value = 1)
Thisform.seteaza_masti()
Thisform.actualizeaza_stare_dvi_valuta()
Thisform.recalc_tva()
Thisform.actualizeaza_etichete_sume()
ENDPROC
PROCEDURE cmdDviPartener.Click
Local loCauta
loCauta = caut_partener(-2, 'Alegeti partenerul DVI', .F., .T., .T., Thisform.dDataAct)
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
ENDPROC
PROCEDURE cmdDviValuta.Click
Local loCauta
loCauta = caut_valuta(, .F., .F.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_valuta, 0))
Thisform.nDviIdValuta = loCauta.id_valuta
Thisform.cDviValuta = Alltrim(loCauta.nume_val)
Thisform.txtDviValuta.Refresh()
Thisform.lDviCursDirty = .F.
Thisform.lDviValutaDirty = .T.
Thisform.lDviTvaValDirty = .F.
Thisform.actualizeaza_stare_dvi_valuta()
Thisform.recalc_tva()
Endif
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()
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
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
ENDPROC
PROCEDURE cmdPartener.Click
Local loCauta
loCauta = caut_partener(-2, 'Alegeti furnizorul', .F., .T., .T., Thisform.dDataAct)
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
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.lDviTvaValDirty = .F.
Thisform.actualizeaza_stare_valuta()
If !Thisform.lDviValutaDirty
Thisform.nDviIdValuta = Thisform.nIdValuta
Thisform.cDviValuta = Thisform.cValuta
Thisform.nDviCurs = Thisform.nCurs
Thisform.txtDviValuta.Refresh()
Thisform.txtDviCurs.Refresh()
Endif
Thisform.actualizeaza_stare_dvi_valuta()
Thisform.actualizeaza_etichete_sume()
Thisform.recalc_tva()
Endif
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
If !Thisform.lDviValutaDirty
Thisform.nDviCurs = Thisform.nCurs
Thisform.txtDviCurs.Refresh()
Endif
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtData.Valid
This.Parent.dDataAct = This.Value
This.Parent.actualizeaza_stare_valuta()
ENDPROC
PROCEDURE txtDiscBaza.Valid
Thisform.nDiscBaza = This.Value
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtDviCurs.GotFocus
Thisform.nOldVal = This.Value
ENDPROC
PROCEDURE txtDviCurs.Valid
Thisform.nDviCurs = This.Value
If This.Value <> Thisform.nOldVal
Thisform.lDviCursDirty = .T.
Endif
Thisform.recalc_tva()
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 txtDviTvaVal.GotFocus
Thisform.nOldVal = This.Value
ENDPROC
PROCEDURE txtDviTvaVal.Valid
Thisform.nDviTvaVal = This.Value
If This.Value <> Thisform.nOldVal
Thisform.lDviTvaValDirty = .T.
Endif
Thisform.nDviTvaLei = Thisform.tva_dvi_lei()
ENDPROC
PROCEDURE txtDviValuta.DblClick
Thisform.cmdDviValuta.Click()
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 TVA-ului
Thisform.lDviTvaValDirty = .F.
Endif
Thisform.nSuma = This.Value
Thisform.recalc_tva()
ENDPROC
PROCEDURE txtValuta.DblClick
Thisform.cmdvaluta.Click()
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="Text3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtFtvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="TxtFtvaVal" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label1" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="Label3" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="LblFtvaLei" UniqueID="" Timestamp="" />
*< OBJECTDATA: ObjPath="LblFtvaVal" 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="" />
*<DefinedPropArrayMethod>
*m: actualizeaza_banda
*m: aliniaza_tva_la_baza
*m: aplica_explicatie_tva
*m: assign_analitic
*m: calc_baze_cota_creditor
*m: calc_doc_key
*m: copiaza_valoare
*m: creeaza_rand_s
*m: disc_document
*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: rand_protejat
*m: recalculeaza
*m: recalc_diferente
*m: recalc_tva_document
*m: refac_culori_documente
*m: sincronizeaza
*m: sparge_discount
*m: sparge_document
*m: sparge_tva_protejat
*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: numarul DVI, ca sir
*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: coldval && valoarea celulei caracter la intrarea in focus (scc/ascc) - pereche cu noldval, numeric
*p: ddvidata && memoria DVI: data DVI
*p: ldialogaratat && dialogul "Adauga factura" a fost deschis automat la Activate (o singura data)
*p: linsync && 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 && 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: ndisc_lei && discount lei totala (recalculeaza), suma randurilor G
*p: ndisc_val && discount valuta totala (recalculeaza)
*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 && procent incarcare lei (100 + transport/taxe), calculat in recalculeaza()
*p: procent_val && procent incarcare valuta, calculat in recalculeaza()
*p: tprocente
*p: tsuma
*</DefinedPropArrayMethod>
*<PropValue>
BorderStyle = 3
cdvifeldoc = ""
cdvinr = ""
cdvipartener = ""
cdviserie = ""
cmesajsync = ""
coldval = ""
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
ndisc_lei = 0
ndisc_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 = <VFPData>
<memberdata name="updateexplicatiesaft" display="UpdateExplicatieSAFT"/>
</VFPData>
_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
*</PropValue>
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 = "\<Recalculeaza", ;
FontBold = .T., ;
Height = 27, ;
Left = 870, ;
Name = "Cmd_executa1", ;
Top = 376, ;
Width = 124
*< END OBJECT: ClassLib="cmd_butoane.vcx" BaseClass="commandbutton" />
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", ;
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 = 8, ;
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 = 9, ;
Column6.ControlSource = "pret", ;
Column6.FontName = "Arial", ;
Column6.FontSize = 10, ;
Column6.InputMask = (get_mask(10,gnPpret)), ;
Column6.Name = "cPretLeiCalculat", ;
Column6.Width = 100, ;
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 = 130, ;
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 = 110, ;
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 = 10, ;
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 lei calculat", ;
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 lei calculat", ;
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 calculat", ;
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
*!* Banda de stare (sincronizat / nesincronizat, incarcarea pretului) si 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.ndisc_lei
This.text3.Value = This.nbaza_val + This.ntva_val - This.ndisc_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 aliniaza_tva_la_baza
*!* Aliniaza randurile T ale documentului la familia de explicatii a randului S de aceeasi
*!* cota (perechea de TVA din nomenclator), reface taxcode (SAFT) si comutarea scc
*!* 4427/creditor S; randurile cu explicatia aleasa manual (expl_manual=1) raman neatinse.
Lparameters tcDocKey
Local lcSel, lnCotaCrt, lnIdJtvaT
lcSel = Select()
Select Distinct introdc.ptva As cota, jb.id_tva As id_jtva_t, jt.denumire As denumire, ;
introdc.scc As scc_s, introdc.ascc As ascc_s ;
From introdc, jtva_coloane2 jb, jtva_coloane2 jt ;
Where introdc.doc_key == tcDocKey And introdc.tip_rand == 'S' And Nvl(introdc.ptva,0) > 0 ;
And jb.id_jtva_coloana = introdc.id_jtva_coloana And Nvl(jb.cota_tva,0) = Nvl(introdc.ptva,0) ;
And Nvl(jb.id_tva,0) > 0 And jt.id_jtva_coloana = jb.id_tva ;
Into Cursor crsPerecheT NOFILTER
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And Nvl(expl_manual,0) <> 1 And Nvl(ptva,0) > 0
lnCotaCrt = ptva
Select crsPerecheT
Locate For cota = lnCotaCrt
lnIdJtvaT = Iif(Found(), crsPerecheT.id_jtva_t, 0)
Select introdc
If lnIdJtvaT <> 0 And lnIdJtvaT <> Nvl(id_jtva_coloana,0)
Replace id_jtva_coloana With lnIdJtvaT, explicatie_tva With crsPerecheT.denumire
If Seek(lnIdJtvaT, "cJtvaCol4427", "id_jtva")
Replace scc With '4427', ascc With ''
Else
*!* creditorul propriu al randului T (spargerea pe creditori) se pastreaza - se reface doar iesirea din 4427
If Alltrim(Nvl(scc,'')) == '4427'
Replace scc With crsPerecheT.scc_s, ascc With Nvl(crsPerecheT.ascc_s,'')
Endif
Endif
Thisform.UpdateExplicatieSAFT()
Endif
Endscan
Use In crsPerecheT
Select (lcSel)
ENDPROC
PROCEDURE aplica_explicatie_tva
*!* Aplica explicatia TVA pe randul curent si pe randurile T de aceeasi cota ale documentului
*!* (comutare scc 4426=4427 / creditorul bazei + UpdateExplicatieSAFT). Se apeleaza cu randul
*!* curent pozitionat pe un rand non-T (B sau S); pozitia initiala se restaureaza la iesire.
Lparameters tnIdJtvaColoana
Local lnPtva, lcExplicatieTva, lnId_tva, lnId_jtva_coloanaTVA, lnCota_tva, lcExplicatie_TVA
Local lcDocKey, lcTipRand, lcScd, lnTaxCodeBaza, lcSccS, lcAsccS, lnRanduriT
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
lcSccS = Nvl(scc,'')
lcAsccS = Nvl(ascc,'')
Replace id_jtva_coloana With tnIdJtvaColoana, ptva With lnPtva, explicatie_tva With lcExplicatieTva
If lcTipRand == 'T'
*!* explicatie aleasa direct pe randul de TVA - sincronizarea nu o realiniaza la familia bazei
Replace expl_manual With 1
Endif
If lcTipRand == 'G'
*!* randul de discount se editeaza local, fara sa atinga randul de TVA al documentului
Thisform.UpdateExplicatieSAFT()
Replace cu_tva With Iif(lnPtva = 0, 0, 1)
Return .T.
Endif
If lcTipRand <> 'T'
Thisform.UpdateExplicatieSAFT()
lnTaxCodeBaza = taxcode
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 CREDITORUL BAZEI
Select introdc
Replace cu_tva With 1
*!* un singur rand T = fara ambiguitate de cota (factura abia creata, randul T din sablon)
Count For doc_key == lcDocKey And tip_rand == 'T' To lnRanduriT
Scan For doc_key == lcDocKey And tip_rand == 'T' And (lnRanduriT = 1 Or Nvl(ptva,0) = lnPtva)
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', ascc With ''
Else
*!* creditorul propriu al randului T se pastreaza - se reface doar iesirea din 4427
If Alltrim(Nvl(scc,'')) == '4427'
Replace scc With lcSccS, ascc With lcAsccS
Endif
Endif
Thisform.UpdateExplicatieSAFT()
Endscan
Endif
Endif
Endif
*!* randul de discount urmeaza baza documentului: aceeasi cota, explicatie si taxa SAFT
If lcTipRand <> 'T'
Select introdc
Replace id_jtva_coloana With tnIdJtvaColoana, ptva With lnPtva, ;
explicatie_tva With lcExplicatieTva, taxcode With lnTaxCodeBaza, ;
cu_tva With Iif(lnPtva = 0, 0, 1) ;
For doc_key == lcDocKey And tip_rand == 'G'
Endif
Select introdc
*!* pentru S, Locate cuprinde si scd - un document poate avea mai multe randuri S
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
*!* analiticul contului articolelor pe randul S (folosit de creeaza_rand_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
*!* Grupeaza bazele articolelor (rul_temp) pe cota TVA + creditorul (scc/ascc) al S-ului
*!* corespunzator contului articolului (scd==cont, ascd==acont); fara S pereche foloseste
*!* scc/ascc din toFallback. Partenerul TVA (id_partc/partc pe T) ramane cel ales la
*!* introducerea facturii. Rezultatul ramane deschis in crsGrupCota (cota_tva, scc, ascc,
*!* baza_lei, baza_val) - apelantul face 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 identifica unic documentul (factura + rand TVA + eventual DVI);
* serie_act/nract/id_fdoc/id_partc raman informative in cheie
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
*!* Propaga valoarea campului tcCamp pe tot grupul doc_key; daca tcCamp face parte din
*!* cheia documentului, doc_key se regenereaza pe grup dupa propagare.
Lparameters tcCamp
Local lcSelect, lcCursor, luValoare, lcDocKeyOld, lcDocKeyNou, lnRecCurent, llCheie
Local llCampValuta, llCampIdentitate, llSursaProtejata, lcCamp
lcCursor = Thisform.grid1.RecordSource
lcSelect = Select()
Select (lcCursor)
lnRecCurent = Recno()
lcDocKeyOld = doc_key
luValoare = &tcCamp
*!* la runtime VFP califica ControlSource-ul coloanei cu aliasul grilei (introdc.nract)
lcCamp = Lower(Alltrim(tcCamp))
If '.' $ lcCamp
lcCamp = Substr(lcCamp, Rat('.', lcCamp) + 1)
Endif
llCheie = Inlist(lcCamp, 'serie_act', 'nract', 'id_fdoc', 'fdoc', 'id_partc', 'partc')
llCampValuta = Inlist(lcCamp, 'in_valuta', 'id_valuta', 'nume_val', 'curs', 'suma_val')
llCampIdentitate = Inlist(lcCamp, 'nract', 'serie_act', 'partc', 'id_partc', 'id_fdoc', 'fdoc', 'dataact')
*!* randul DVI e protejat si ca SURSA - identitatea lui vamala nu se propaga pe factura-mama
llSursaProtejata = (llCampValuta And Thisform.rand_protejat()) Or (llCampIdentitate And Nvl(rand_dvi,0) = 1)
If !llSursaProtejata
Scan For doc_key == lcDocKeyOld And Recno() <> lnRecCurent
If llCampValuta And Thisform.rand_protejat()
Loop
Endif
If llCampIdentitate And Nvl(rand_dvi,0) = 1
Loop
Endif
Replace (tcCamp) With luValoare
Endscan
Endif
If llCheie And !llSursaProtejata
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
Release llCampValuta, llCampIdentitate, llSursaProtejata, lcCamp
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, altfel din assign_analitic.
Lparameters tcDocKey, tcCont, tnSumaLei, tnSumaVal, toSablon, tcAcont, tnCota
Private loRandB, lcAcont
Local lcSelAnt, lnIdJtvaS
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
If Pcount() >= 7 And Vartype(tnCota) == 'N' And tnCota > 0 And tnCota <> Nvl(ptva,0)
lnIdJtvaS = Thisform.gaseste_jtva_cota(Nvl(loRandB.id_jtva_coloana,0), tnCota)
Replace ptva With tnCota
If lnIdJtvaS <> 0
Replace id_jtva_coloana With lnIdJtvaS
Select jtva_coloane2
Locate For id_jtva_coloana = lnIdJtvaS
If Found()
Replace explicatie_tva With jtva_coloane2.denumire In introdc
Endif
Select introdc
Endif
Endif
Select (lcSelAnt)
ENDPROC
PROCEDURE Destroy
USE IN (SELECT('cJtvaCol4427'))
ENDPROC
PROCEDURE disc_document
*!* discountul (rand G) al documentului tcDocKey, in lei sau in valuta.
Lparameters tcDocKey, tlValuta
Local lcSelAnt, lnRecAnt, lnDisc
lcSelAnt = Select()
lnRecAnt = Recno('introdc')
Select introdc
If tlValuta
Sum suma_val For doc_key == tcDocKey And tip_rand == 'G' To lnDisc
Else
Sum suma For doc_key == tcDocKey And tip_rand == 'G' To lnDisc
Endif
Select (lcSelAnt)
If Between(lnRecAnt, 1, Reccount('introdc'))
Go lnRecAnt In introdc
Endif
Return lnDisc
ENDPROC
PROCEDURE do_adauga
*!* Deschide dialogul modal frm_adauga_factura. Memoria DVI (cDviSerie/cDviNr/dDviData/
*!* nDviIdPartener/cDviPartener/nDviIdFdoc) traieste pe import_nota si e citita/scrisa
*!* de dialog prin Thisform.oParinte.
Local loDlg
loDlg = Createobject('import_adauga_factura', Thisform)
loDlg.Show(1)
Release loDlg
ENDPROC
PROCEDURE do_adauga_articol
*!* filtru pe conturile de clasa 2+3, independent de conturile deja prezente pe nota
LOCAL lcXMLArticole, lcFiltru, lcCrsArt, lcCrsNir, lnPtvaPrincipal
*!* filtrul intra 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
*!* articol fara cont in nomenclator - nu se adauga, restul continua
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
*!* Cloneaza perechea-sablon (baza + TVA) din introdc_sablon, o adauga in introdc si o
*!* populeaza cu datele documentului (toDlg). Identitatea randurilor e tip_rand+doc_key,
*!* iar fiecare document primeste un nr_doc nou. toDlg.cTipTva in {'F' furnizor, 'D' DVI,
*!* 'N' fara} decide randul de TVA. Cand exista discount (disc_baza_lei<>0), randul G se
*!* creeaza intre randul B si randul T, cu aceleasi date de TVA ca baza.
Lparameters toDlg
Local lnSel, loBaza, loTva, lnNrDoc, lnRecT, llDviInValuta, lnDviTvaAsteptat
Local lcIdValutaDvi, lnCursDvi, lcNumeValDvi, lnValutaProprie, lcDocKeyCrt
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
*!* urmatorul nr_doc; randurile D (99999999) sunt ignorate
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 DISCOUNT (rand G, intre B si T; clona randului B proaspat creat) ---
If Type('toDlg.disc_baza_lei') <> 'U' And Round(Nvl(toDlg.disc_baza_lei,0), gnPC) <> 0
Scatter Name loBaza Memo
Append Blank
Gather Name loBaza Memo
Replace tip_rand With 'G', ;
scd With loBaza.scc, ;
ascd With loBaza.ascc, ;
scc With '767', ;
ascc With '', ;
suma With toDlg.disc_baza_lei, ;
suma_val With Iif(Type('toDlg.disc_baza_val')='U', 0, toDlg.disc_baza_val), ;
id_partd With loBaza.id_partc, ;
partd With loBaza.partc, ;
id_partc With 0, ;
partc With '', ;
participa_valuta With .F., ;
explicatia With 'DISCOUNT', ;
mod_manual With 0, ;
rand_dvi With 0, ;
valuta_proprie With 0
Endif
* --- 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()
lcDocKeyCrt = doc_key
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 (Locate, nu Skip -1,
* pentru ca randul G se poate afla intre B si T); aplica_explicatie_tva gaseste ea insasi
* randul T prin doc_key. do_executa() face Go Top, deci pozitia finala nu conteaza.
Locate For doc_key == lcDocKeyCrt And tip_rand == 'B'
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
Locate For doc_key == lcDocKeyCrt And tip_rand == 'B'
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
llDviInValuta = Iif(Type('toDlg.dvi_in_valuta') = 'U', (toDlg.dvi_tva_val <> 0), toDlg.dvi_in_valuta)
lcIdValutaDvi = Iif(Type('toDlg.dvi_id_valuta') = 'U', toDlg.id_valuta, toDlg.dvi_id_valuta)
lnCursDvi = Iif(Type('toDlg.dvi_curs') = 'U', toDlg.curs, toDlg.dvi_curs)
lcNumeValDvi = Iif(Type('toDlg.dvi_nume_val') = 'U', toDlg.nume_val, toDlg.dvi_nume_val)
lnValutaProprie = Iif(Type('toDlg.dvi_valuta_proprie') = 'U', 0, toDlg.dvi_valuta_proprie)
lnDviTvaAsteptat = Round((toDlg.suma - Iif(Type('toDlg.disc_baza_lei') = 'U', 0, Nvl(toDlg.disc_baza_lei, 0))) * ptva / 100, gnPC)
* 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 Iif(llDviInValuta, toDlg.dvi_tva_val, 0), ;
in_valuta With Iif(llDviInValuta, 1, 0), ;
participa_valuta With Iif(llDviInValuta, toDlg.participa_valuta, .F.), ;
id_valuta With Iif(llDviInValuta, lcIdValutaDvi, 0), ;
curs With Iif(llDviInValuta, lnCursDvi, 0), ;
nume_val With Iif(llDviInValuta, lcNumeValDvi, ''), ;
rand_dvi With 1, ;
valuta_proprie With lnValutaProprie, ;
mod_manual With Iif(Round(Nvl(toDlg.dvi_tva_lei, 0), gnPC) <> lnDviTvaAsteptat, 1, 0)
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
*!* baza doar din documentele participante la pret; randul D manual se pastreaza (ca in recalc_diferente)
If Used('introdc')
lnRecIntr = Iif(Eof('introdc') Or Bof('introdc'), 0, Recno('introdc'))
Select introdc
Locate For tip_rand == 'D' And Nvl(mod_manual,0) = 1
If Found()
thisform.ndif_lei = suma
Else
Sum suma For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And participa_valuta To lnBazaParticipa
thisform.ndif_lei = Round(lnBazaParticipa - lnLeiTot, gnPc)
Endif
If lnRecIntr > 0
Try
Go lnRecIntr In introdc
Catch
Go Top In introdc
Endtry
Endif
Else
thisform.ndif_lei = thisform.nbaza_lei - lnLeiTot
Endif
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/G/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','G','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, rand_dvi With 0, valuta_proprie 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, rand_dvi With 0, valuta_proprie 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, lnDiscTotalLei, lnDiscTotalVal
lnBazaVal = 0
tSumaVal = 0
Sele introdc
*!* pozitia curenta se salveaza pe doc_key+tip_rand, nu pe numarul de inregistrare
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 And tip_rand<>'G' To tSumaVal
Sum suma For tip_rand = 'G' To lnDiscTotalLei
Sum suma_val For tip_rand = 'G' To lnDiscTotalVal
*!*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
*!* Scan doar pe randurile B; randul T al fiecarui document se cauta prin Locate pe doc_key
Scan For tip_rand = 'B'
lnSuma2 = suma - Thisform.disc_document(doc_key, .F.)
lnSuma_val = suma_val - Thisform.disc_document(doc_key, .T.)
*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 And !Thisform.rand_protejat()
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
*!* repozitionare finala pe doc_key+tip_rand, 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
Tsuma = Tsuma - lnDiscTotalLei
tSumaVal = tSumaVal - lnDiscTotalVal
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
*!* cursul documentului e oact.Curs (ncurs exista doar pe import_nir)
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
*!* sincronizare amanata - nu se apeleaza 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.do_executa()
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
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
*!* cursul documentului e oact.Curs (ncurs exista doar pe import_nir)
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
*!* Sterge articolul curent de 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
*!* Mapare cota -> id_jtva_coloana dupa semnatura coloanei (coloana_jc fara cifre, distinge baza de TVA).
*!* tnIdJtvaFamilie = un id_jtva_coloana din familia sursa, tnCota = cota tinta.
*!* Returneaza 0 daca nu gaseste.
Lparameters tnIdJtvaFamilie, tnCota
Local lcSel, lcSemnatura, lnGasit
lnGasit = 0
lcSel = Select()
If Used('jtva_coloane2')
Select jtva_coloane2
Locate For id_jtva_coloana = tnIdJtvaFamilie
If Found()
lcSemnatura = Chrtran(Alltrim(Nvl(coloana_jc,'')),'0123456789','')
If !Empty(lcSemnatura)
Locate For Chrtran(Alltrim(Nvl(coloana_jc,'')),'0123456789','') == lcSemnatura And cota_tva = tnCota
If Found()
lnGasit = id_jtva_coloana
Endif
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 !Inlist(loFact.tip_rand,'D','G')
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],,, .T.)
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
*!* sumarile si procentele se calculeaza in recalculeaza()
Thisform.recalculeaza()
lnBazaLei = Thisform.nbaza_lei
lnBazaVal = Thisform.nbaza_val
lnTvaLei = Thisform.ntva_lei
lnTvaVal = Thisform.ntva_val
lnProcLei = Thisform.procent_lei - Iif(Thisform.lIntern, 0, 100)
lnProcVal = Thisform.procent_val
Locate
poAct.proc_tva = (100 + ptva)/100
*!* rul_temp e creat in Load
this.AlwaysOnTop = .F.
*!* verificarea si scrierea NIR-ului, comune importului si achizitiei interne
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
*!* sumar spargere in log, pentru reconstructie ulterioara
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.cSumaVal.Visible = .F.
This.grid1.cExplicatia5.Visible = .F.
This.lb_titlu_alb_b121.Caption = "ACHIZIÞIE INTERNÃ MARFÃ/MATERIALE"
*!* pe intern se ascund coloanele valutare de pe grila articolelor si importul XLS (cere pret in valuta)
This.gridart.cPretFactura.ControlSource = "rul_temp.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
*!* F5 = 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 rand_protejat
Return (Nvl(valuta_proprie,0) = 1)
ENDPROC
PROCEDURE recalculeaza
*!* Totalurile formularului (baza si TVA, in lei si in valuta) si procentele de incarcare.
*!* Baza unui document e Suma(S) daca a fost spart, altfel randul B - de aceea filtrul e
*!* pe tip_rand IN ('B','S'). Pe import procent_lei = 100 (incarcarea in valuta se aplica
*!* pe pretd, iar pretul in lei deriva din pretd*curs), iar documentele care nu participa
*!* la pret raman pe randul D (recalc_diferente); pe intern procent_lei =
*!* 100*baza_totala/baza_principala.
Local lnBazaLei, lnBazaVal, lnBazaVal2, lnTvaLei, lnTvaVal, lnTvaVal2, lcSel
Local lnMinNrDoc, lnBazaPrincipalaLei, lnBazaPrincipalaVal, lnDiscLei, lnDiscVal
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 Nvl(id_valuta,0) = Nvl(This.oact.id_valuta,0) 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 Or Nvl(id_valuta,0) <> Nvl(This.oact.id_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 Nvl(id_valuta,0) = Nvl(This.oact.id_valuta,0) 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 Or Nvl(id_valuta,0) <> Nvl(This.oact.id_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
Sum suma For tip_rand = 'G' To lnDiscLei
Sum suma_val For tip_rand = 'G' To lnDiscVal
This.nbaza_lei = lnBazaLei
This.nbaza_val = lnBazaVal
This.ntva_lei = lnTvaLei
This.ntva_val = lnTvaVal
This.ndisc_lei = lnDiscLei
This.ndisc_val = lnDiscVal
This.nbazaprincipala_lei = lnBazaPrincipalaLei
This.nbazaprincipala_val = lnBazaPrincipalaVal
If This.lIntern
This.procent_lei = Iif(lnBazaPrincipalaLei <> 0, 100 * lnBazaLei / lnBazaPrincipalaLei, 100)
Else
*!* documentele fara participa_valuta nu incarca pretul - raman pe randul D
This.procent_lei = 100
Endif
This.procent_val = Iif(lnBazaPrincipalaVal <> 0, 100 * lnBazaVal / lnBazaPrincipalaVal, 100)
Select (lcSel)
ENDPROC
PROCEDURE recalc_diferente
*!* Randul D, unic pe nota (doc_key gol, nr_doc 99999999): diferenta = baza documentelor
*!* care participa la pret - Suma(pret*cant) cu pretul incarcat. Cont dominant = contul de
*!* clasa 3 cu baza ABS maxima; fara clasa 3 -> clasa 2, cu contul fix 6588. Diferenta se
*!* scrie doar in lei, fara TVA si fara cod de taxa SAFT. Antetul se mosteneste de la
*!* documentul principal.
Local lcSel, lnMinNrDoc, lnTotalLei, lnTotalVal, lnBazaParticipa
Local lcContDominant, lnBazaDominantaAbs, lcScd1, lnDiferentaLei, lnDiferentaVal, lcExplicatie
Local llGasitClasa3, loAntet
lcSel = Select()
If !Used('rul_temp') Or Reccount('rul_temp') = 0
*!* fara articole nu exista diferenta - sterg randul D ramas orfan
Select introdc
Delete For tip_rand == 'D' And Nvl(mod_manual,0) <> 1
Locate For tip_rand == 'D'
This.ndif_lei = Iif(Found(), suma, 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
*!* randul D modificat manual (mod_manual=1) nu se rescrie/sterge, ca randurile T
Locate For tip_rand == 'D'
If Found() And Nvl(mod_manual,0) = 1
This.ndif_lei = suma
This.ndif_val = 0
Select (lcSel)
Return
Endif
Sum suma For Inlist(tip_rand,'B','S') And !Inlist(scd,'4426','4428') And !Empty(id_jtva_coloana) And participa_valuta To lnBazaParticipa
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;
*!* fara clasa 3 -> clasa 2 (imobilizari), randul 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(lnBazaParticipa - 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, taxcode With 0, 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 And Nvl(valuta_proprie,0) <> 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 - Thisform.disc_document(tcDocKey, .F.)
lnTotalVal = loRandT.suma_doc_val - Thisform.disc_document(tcDocKey, .T.)
*!* 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')
*!* aceeasi grupare cota+creditor ca in sparge_document
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 Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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
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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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
* Culoare de fundal + eticheta document, precalculate pe cursorul introdc.
* Cheia documentului e doc_key (calc_doc_key); primul rand B/S al unui doc_key defineste
* documentul (B dispare dupa spargere), randul T mosteneste culoarea si eticheta.
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
Case tip_rand == 'G'
Replace doc_color With lnPrevColor, doc_label With Iif(lcPrevLabel == '-', '-', lcPrevLabel + ' DISC')
Otherwise
Replace doc_color With lnPrevColor, doc_label With Iif(lcPrevLabel == '-', '-', lcPrevLabel + ' TVA' + Iif(Thisform.rand_protejat(), '*', ''))
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
*!* reface preturile articolelor la afisare, daca exista deja articole in rul_temp
If Reccount('rul_temp') > 0
This.do_reface()
Endif
ENDPROC
PROCEDURE sincronizeaza
*!* Orchestratorul sincronizarii; nu se apeleaza direct din Valid (eroare VFP 2166) - se
*!* armeaza prin lSyncPending + tmrSync. lInSync e garda de reintrare.
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 do_reface reface preturile articolelor
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
If !This.lIntern And !participa_valuta
Replace explicatia4 With ''
Replace explicatia5 With ''
Else
Replace explicatia4 With Iif(This.nbazaprincipala_lei <> 0, Allt(Str(suma/This.nbazaprincipala_lei*100,6,2)), '')
lnValRandProc = Iif(in_valuta = 1 And Nvl(id_valuta,0) = Nvl(This.oact.id_valuta,0), 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
Endif
Endscan
Endif
This.valideaza_sume()
*!* 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_discount
*!* Sparge randurile G (discount) pe cotele TVA ale articolelor, proportional cu bazele pe
*!* cota, pastrand totalul discountului. Cere crsGrupCota deschis (calc_baze_cota_creditor).
Lparameters tcDocKey
Local lcSel, lnCnt, lnTotLei, lnTotVal, lnBazaTot, lnPondere, lnCotaCrt, lnIdJtvaCrt
Local lnRestLei, lnRestVal, lnMaxAbs, lnRecMaxAbs, loRandG
lcSel = Select()
Select introdc
Locate For doc_key == tcDocKey And tip_rand == 'G'
If !Found()
Select (lcSel)
Return
Endif
Scatter Name loRandG Memo
Select Count(*) As nr, Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'G' Into Cursor crsTotG NOFILTER
lnCnt = Nvl(crsTotG.nr, 0)
lnTotLei = Nvl(crsTotG.s_lei, 0)
lnTotVal = Nvl(crsTotG.s_val, 0)
Use In crsTotG
If This.lIntern
Select cota_tva, Sum(baza_lei) As pond From crsGrupCota Group By cota_tva Into Cursor crsPondDisc NOFILTER
Else
Select cota_tva, Sum(baza_val) As pond From crsGrupCota Group By cota_tva Into Cursor crsPondDisc NOFILTER
Endif
Select Sum(pond) As tot From crsPondDisc Into Cursor crsPondDiscTot NOFILTER
lnBazaTot = Nvl(crsPondDiscTot.tot, 0)
Use In crsPondDiscTot
Go Top In crsPondDisc
If lnBazaTot = 0 Or (lnCnt = 1 And Reccount('crsPondDisc') = 1 And crsPondDisc.cota_tva = loRandG.ptva)
*!* o singura cota, aceeasi cu a randului de discount - nimic de spart
Use In crsPondDisc
Select (lcSel)
Return
Endif
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'G'
Select crsPondDisc
Scan
lnCotaCrt = crsPondDisc.cota_tva
lnPondere = crsPondDisc.pond / lnBazaTot
lnIdJtvaCrt = Iif(lnCotaCrt = loRandG.ptva, loRandG.id_jtva_coloana, Thisform.gaseste_jtva_cota(Nvl(loRandG.id_jtva_coloana,0), lnCotaCrt))
Select introdc
Append Blank
Gather Name loRandG Memo
Replace tip_rand With 'G', doc_key With tcDocKey, ptva With lnCotaCrt, ;
suma With Round(lnTotLei * lnPondere, gnPc), suma_val With Round(lnTotVal * lnPondere, gnPval)
If lnIdJtvaCrt <> 0
Replace id_jtva_coloana With lnIdJtvaCrt
Select jtva_coloane2
Locate For id_jtva_coloana = lnIdJtvaCrt
If Found()
Replace explicatie_tva With jtva_coloane2.denumire In introdc
Endif
Endif
Select crsPondDisc
Endscan
Use In crsPondDisc
*!* reziduul de rotunjire pe randul de discount cu |suma| maxima
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'G' Into Cursor crsSumG NOFILTER
lnRestLei = Round(lnTotLei - Nvl(crsSumG.s_lei,0), gnPc)
lnRestVal = Round(lnTotVal - Nvl(crsSumG.s_val,0), gnPval)
Use In crsSumG
If lnRestLei <> 0 Or lnRestVal <> 0
lnMaxAbs = -1
lnRecMaxAbs = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'G'
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
Select (lcSel)
ENDPROC
PROCEDURE sparge_document
*!* Sparge documentul tcDocKey in randuri S, pe conturile articolelor din rul_temp.
*!* Sablonul e randul B, sau primul S daca B a disparut la o spargere anterioara.
*!* Totalul documentului se ia din suma_doc/suma_doc_val. Baza de repartizare e in moneda
*!* documentului: import -> pret_val*cant, intern -> pret_lei*cant (suma_val = 0).
*!* Fara articole S-urile dispar, iar 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 (cel cu articole) = nr_doc minim dintre B/S existente
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
*!* 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
*!* 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
*!* scc/ascc/id_partc/partc editate manual pe un S se pastreaza la regenerare
*!* (se reaplica neconditionat mai jos, spre deosebire de crsPartS)
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
*!* 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'
*!* articolele fara cota proprie preiau cota documentului, ca randurile S sa se poata grupa pe cota
If llPrincipal And Nvl(loBaza.ptva,0) > 0
Select rul_temp
Replace cota_tva With loBaza.ptva For Nvl(cota_tva,0) <= 0
Select introdc
Endif
*!* grupez articolele pe cont+analitic (la principal si pe cota TVA - randul S poarta cota
*!* articolelor lui, in concordanta cu randul T al cotei), in moneda documentului
If This.lIntern
If llPrincipal
Select cont, acont, cota_tva, Sum(Round(pret_lei*cant,gnPc)) As baza_lei, 0 As baza_val ;
From rul_temp Where !Deleted() Group By cont, acont, cota_tva Into Cursor crsGrupCont NOFILTER
Else
Select cont, acont, 0 As cota_tva, 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
Endif
Else
If llPrincipal
Select cont, acont, cota_tva, Sum(Round(pret_val*cant,gnPval)) As baza_val, 0 As baza_lei ;
From rul_temp Where !Deleted() Group By cont, acont, cota_tva Into Cursor crsGrupCont NOFILTER
Else
Select cont, acont, 0 As cota_tva, 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
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, cota_tva)
Else
Thisform.creeaza_rand_s(tcDocKey, cont, Round(baza_val*lnCurs,gnPc), Iif(loBaza.in_valuta = 1, baza_val, 0), loBaza, acont, cota_tva)
Endif
Select crsGrupCont
Endscan
Else
*!* transport/taxe: proportional cu bazele articolelor per cont, raportat la baza totala
*!* a facturii principale (in moneda documentului); debit = contul articolelor,
*!* credit = mostenit din randul sablon (scc)
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
*!* rotunjire independenta per moneda - reziduul pe randul S cu |suma| maxima,
*!* raportat la suma_doc/suma_doc_val
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
*!* reaplic scc/ascc/id_partc/partc pe cheia scd+ascd - 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
*!* explicatiile alese manual pe randuri T se pastreaza peste regenerare, pe cota
Select ptva, id_jtva_coloana, explicatie_tva From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And Nvl(expl_manual,0) = 1 ;
Into Cursor crsExplT NOFILTER
Select introdc
*!* 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, llTvaProtejat
lnIdJtvaOrig = id_jtva_coloana
llTvaProtejat = .F.
Locate For doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) <> 1
If Found()
Scatter Name loRandT Memo
Else
*!* TVA-ul documentului sta doar pe randul protejat (DVI cu valuta proprie) - se sparge
*!* acela pe cotele articolelor, nu se nasc T-uri noi din randul de baza
llTvaProtejat = .T.
Locate For doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) = 1
Scatter Name loRandT Memo
Endif
Select rul_temp
Replace cota_tva With loRandT.ptva For Nvl(cota_tva,0) <= 0
*!* grupare pe cota + creditor (scc/ascc) al S-ului corespunzator contului articolului
Thisform.calc_baze_cota_creditor(tcDocKey, loBaza)
Local lnBazaGrupTot, lnFactorDisc
If This.lIntern
Select Sum(baza_lei) As tot From crsGrupCota Into Cursor crsBazaGrupTot NOFILTER
lnBazaGrupTot = Nvl(crsBazaGrupTot.tot, 0)
Use In crsBazaGrupTot
lnFactorDisc = Iif(lnBazaGrupTot <> 0, Max((lnBazaGrupTot - Thisform.disc_document(tcDocKey, .F.)) / lnBazaGrupTot, 0), 1)
Else
Select Sum(baza_val) As tot From crsGrupCota Into Cursor crsBazaGrupTot NOFILTER
lnBazaGrupTot = Nvl(crsBazaGrupTot.tot, 0)
Use In crsBazaGrupTot
lnFactorDisc = Iif(lnBazaGrupTot <> 0, Max((lnBazaGrupTot - Thisform.disc_document(tcDocKey, .T.)) / lnBazaGrupTot, 0), 1)
Endif
If Reccount('crsGrupCota') > 0
Thisform.sparge_discount(tcDocKey)
Endif
If llTvaProtejat And Reccount('crsGrupCota') > 0
Thisform.sparge_tva_protejat(tcDocKey, loRandT, lnIdJtvaOrig)
Endif
If Reccount('crsGrupCota') > 0 And !llTvaProtejat
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 And Nvl(valuta_proprie,0) <> 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)) + ;
"Documentul " + Alltrim(Nvl(loRandT.fdoc,'')) + " are marfa la " + Transform(lnCotaCrt) + "%, dar nu exista explicatie TVA de " + Transform(lnCotaCrt) + "% in seria '" + Alltrim(Strtran(Chrtran(Nvl(loRandT.explicatie_tva,''),'0123456789%',''),' ',' ')) + "' - completati nomenclatorul de explicatii TVA."
Else
Select introdc
Append Blank
Gather Name loRandT Memo
Replace rand_dvi With 0, valuta_proprie With 0, expl_manual With 0
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 * lnFactorDisc * 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 * lnFactorDisc * lnCotaCrt / 100, gnPval)
Replace suma With Round(suma_val * lnCurs, gnPc)
If !llValuta
Replace suma_val With 0
Endif
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
Select introdc
Thisform.UpdateExplicatieSAFT()
Endif
Endif
Select crsGrupCota
Endscan
*!* rotunjire reziduala per cota: suma T-urilor nemanuale ale unei cote trebuie sa fie
*!* exact baza_cota*cota/100, reziduul merge pe T-ul cu |suma| maxima al cotei.
*!* Cotele care au deja un T manual se sar.
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 Or !llValuta
Select Sum(suma) As s From introdc Where doc_key == tcDocKey And tip_rand == 'T' And ptva == lnCotaCrt And mod_manual <> 1 And Nvl(valuta_proprie,0) <> 1 Into Cursor crsSumTCota NOFILTER
If This.lIntern
lnRestLei = Round(crsBazaCota.tot_lei * lnFactorDisc * lnCotaCrt / 100, gnPc) - Round(Nvl(crsSumTCota.s,0), gnPc)
Else
lnRestLei = Round(Round(crsBazaCota.tot_val * lnFactorDisc * lnCotaCrt / 100, gnPval) * lnCurs, gnPc) - Round(Nvl(crsSumTCota.s,0), gnPc)
Endif
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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 1 Into Cursor crsSumTCota NOFILTER
lnRestVal = Round(crsBazaCota.tot_val * lnFactorDisc * 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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 1
Select crsGrupSccT
Scan
lnPondere = crsGrupSccT.s_lei / lnTotSLei
Select introdc
Append Blank
Gather Name loRandTS Memo
Replace rand_dvi With 0, valuta_proprie With 0, expl_manual With 0
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
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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 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
*!* explicatiile alese manual pe randuri T revin pe cota lor, restul urmeaza familia S-ului
Select crsExplT
Scan
Select introdc
Replace id_jtva_coloana With crsExplT.id_jtva_coloana, explicatie_tva With crsExplT.explicatie_tva, expl_manual With 1 ;
For doc_key == tcDocKey And tip_rand == 'T' And ptva == crsExplT.ptva
Select crsExplT
Endscan
Use In crsExplT
Thisform.aliniaza_tva_la_baza(tcDocKey)
*!* randul B dispare dupa spargere
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'B'
Select (lcSel)
ENDPROC
PROCEDURE sparge_tva_protejat
*!* Sparge randurile T protejate (TVA pe DVI cu valuta proprie) pe cotele TVA ale
*!* articolelor, pastrand totalul introdus pe DVI, identitatea vamala si protectia.
*!* Cere crsGrupCota deschis (calc_baze_cota_creditor).
Lparameters tcDocKey, toRandT, tnIdJtvaOrig
Local lcSel, lnTotLei, lnTotVal, lnCntProt, lnPonderiTot, lnPondere, lnCotaCrt, lnIdJtvaCrt
Local lnRestLei, lnRestVal, lnMaxAbs, lnRecMaxAbs
lcSel = Select()
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 Nvl(valuta_proprie,0) = 1 Into Cursor crsTotTProt NOFILTER
lnCntProt = Nvl(crsTotTProt.nr, 0)
lnTotLei = Nvl(crsTotTProt.s_lei, 0)
lnTotVal = Nvl(crsTotTProt.s_val, 0)
Use In crsTotTProt
*!* ponderea unei cote = baza articolelor pe cota x cota (in moneda documentului)
If This.lIntern
Select cota_tva, Sum(Round(baza_lei * cota_tva / 100, gnPc)) As pond ;
From crsGrupCota Group By cota_tva Into Cursor crsPondCota NOFILTER
Else
Select cota_tva, Sum(Round(baza_val * cota_tva / 100, gnPval)) As pond ;
From crsGrupCota Group By cota_tva Into Cursor crsPondCota NOFILTER
Endif
Select Sum(pond) As tot From crsPondCota Into Cursor crsPondTot NOFILTER
lnPonderiTot = Nvl(crsPondTot.tot, 0)
Use In crsPondTot
Go Top In crsPondCota
If lnPonderiTot = 0 Or (lnCntProt = 1 And Reccount('crsPondCota') = 1 And crsPondCota.cota_tva = toRandT.ptva)
*!* nimic de spart: o singura cota, aceeasi cu a randului protejat
Use In crsPondCota
Select (lcSel)
Return
Endif
*!* creditorul fiecarei cote se pastreaza peste recreare - clonarea lui toRandT ar da
*!* tuturor cotelor creditorul primului rand protejat
Select ptva, scc, ascc From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) = 1 ;
Into Cursor crsSccProt NOFILTER
Select introdc
Delete For doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) = 1
Select crsPondCota
Scan
lnCotaCrt = crsPondCota.cota_tva
lnPondere = crsPondCota.pond / lnPonderiTot
lnIdJtvaCrt = Iif(lnCotaCrt = toRandT.ptva, tnIdJtvaOrig, Thisform.gaseste_jtva_cota(tnIdJtvaOrig, lnCotaCrt))
Select introdc
Append Blank
Gather Name toRandT Memo
Replace tip_rand With 'T', doc_key With tcDocKey, nr_doc With toRandT.nr_doc, ptva With lnCotaCrt, ;
suma With Round(lnTotLei * lnPondere, gnPc), suma_val With Round(lnTotVal * lnPondere, gnPval), ;
expl_manual With Iif(lnCotaCrt = toRandT.ptva, Nvl(toRandT.expl_manual,0), 0)
Select crsSccProt
Locate For ptva = lnCotaCrt
If Found()
Replace scc With crsSccProt.scc, ascc With Nvl(crsSccProt.ascc,'') In introdc
Endif
Select introdc
If lnIdJtvaCrt = 0
Thisform.cmesajsync = Thisform.cmesajsync + Iif(Empty(Thisform.cmesajsync),'',Chr(13)+Chr(10)) + ;
"Documentul " + Alltrim(Nvl(toRandT.fdoc,'')) + " are marfa la " + Transform(lnCotaCrt) + "%, dar nu exista explicatie TVA de " + Transform(lnCotaCrt) + "% in seria '" + Alltrim(Strtran(Chrtran(Nvl(toRandT.explicatie_tva,''),'0123456789%',''),' ',' ')) + "' - completati nomenclatorul de explicatii TVA."
Else
Replace id_jtva_coloana With lnIdJtvaCrt
If lnIdJtvaCrt <> tnIdJtvaOrig
Select jtva_coloane2
Locate For id_jtva_coloana = lnIdJtvaCrt
If Found()
Select introdc
Replace explicatie_tva With jtva_coloane2.denumire
Endif
Select introdc
Thisform.UpdateExplicatieSAFT()
Endif
Endif
Select crsPondCota
Endscan
Use In crsPondCota
Use In crsSccProt
*!* reziduul de rotunjire pe randul cu |suma| maxima
Select Sum(suma) As s_lei, Sum(suma_val) As s_val From introdc ;
Where doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) = 1 Into Cursor crsSumTProt NOFILTER
lnRestLei = Round(lnTotLei - Nvl(crsSumTProt.s_lei,0), gnPc)
lnRestVal = Round(lnTotVal - Nvl(crsSumTProt.s_val,0), gnPval)
Use In crsSumTProt
If lnRestLei <> 0 Or lnRestVal <> 0
lnMaxAbs = -1
lnRecMaxAbs = 0
Select introdc
Scan For doc_key == tcDocKey And tip_rand == 'T' And Nvl(valuta_proprie,0) = 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
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 And Nvl(valuta_proprie,0) <> 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 And Nvl(valuta_proprie,0) <> 1
lnRecTU = Recno()
Delete For doc_key == tcDocKey And tip_rand == 'T' And mod_manual <> 1 And Nvl(valuta_proprie,0) <> 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
*!* Verifica Suma(S) fata de suma_doc per document si articolele fara cont; cmesajsync
*!* acumuleaza si mesajele setate de sparge_document/recalc_diferente.
*!* 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
*!* articol fara cont in nomenclator
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
*!* cont de articol cu analitice in plan, neasignat sau necunoscut (vezi assign_analitic)
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
*!* butonul benzii: sincronizare manuala
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.cOldVal = 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.cOldVal
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.cOldVal = 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
*!* recalcularea se aplica pe toate randurile documentului si reface suma_doc/suma_doc_val
Local lnSumaDinVal, lnRaspuns, lcDocKeyC, lnRecC, lnCntS, lnSLei, lnSVal, lnMinNrDocC
If This.Value # 0
Select introdc
If tip_rand == 'T' And Nvl(rand_dvi,0) = 1
Replace curs With This.Value, valuta_proprie With 1
If This.Value <> 0
Replace suma_val With Round(suma / This.Value, gnPval)
Endif
Thisform.do_executa()
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
Return
Endif
Replace curs With This.Value
Thisform.copiaza_valoare([curs])
lnRecC = Recno('introdc')
lnMinNrDocC = 99999998
Calculate Min(Iif(Inlist(tip_rand,'B','S'), nr_doc, 99999998)) To lnMinNrDocC
Try
Go lnRecC In introdc
Catch
Go Top In introdc
Endtry
If nr_doc = lnMinNrDocC And in_valuta = 1
Thisform.oact.curs = This.Value
Endif
If in_valuta = 1 And !Empty(Nvl(introdc.doc_key,''))
lcDocKeyC = introdc.doc_key
lnRecC = Recno('introdc')
lnRaspuns = 6
Locate For doc_key == lcDocKeyC And in_valuta = 1 And suma_val # 0 And suma <> 0 And suma <> Round(suma_val * This.Value, gnPC)
If Found()
lnRaspuns = amessagebox("Suma in lei difera de suma in valuta transformata in lei!" + Chr(13) + Chr(10) + ;
"Doriti recalcularea sumelor in lei pe document?",4+32,"Diferente sume")
Endif
If lnRaspuns = 6
Scan For doc_key == lcDocKeyC And in_valuta = 1 And suma_val # 0
Replace suma With Round(suma_val * This.Value, gnPC)
Endscan
Calculate Cnt(), Sum(suma), Sum(suma_val) For doc_key == lcDocKeyC And tip_rand == 'S' To lnCntS, lnSLei, lnSVal
If lnCntS = 0
Locate For doc_key == lcDocKeyC And tip_rand == 'B'
If Found()
lnCntS = -1
lnSLei = suma
lnSVal = suma_val
Endif
Else
Locate For doc_key == lcDocKeyC
Endif
If lnCntS <> 0
Replace suma_doc With lnSLei, suma_doc_val With lnSVal
Thisform.copiaza_valoare([suma_doc])
Thisform.copiaza_valoare([suma_doc_val])
Endif
Endif
Try
Go lnRecC In introdc
Catch
Go Top In introdc
Endtry
Thisform.do_executa
Else
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
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
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%
*!* aplicarea pe cursor e delegata la aplica_explicatie_tva
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 Inlist(introdc.tip_rand, 'B', 'S', 'G')
Thisform.aplica_explicatie_tva(lnId)
Else
If introdc.tip_rand == 'T'
*!* explicatie aleasa direct pe randul de TVA - sincronizarea nu o realiniaza la familia bazei
Replace expl_manual With 1
Endif
Endif
Thisform.do_executa()
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
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
*!* blocat pe randul D (diferente, fara act propriu)
Return !(introdc.tip_rand == 'D')
ENDPROC
PROCEDURE Grid1.cInValuta.Check1.Valid
*!* la debifare se sterg valuta, suma in valuta si cursul pe liniile documentului
Select introdc
If tip_rand == 'T' And Nvl(rand_dvi,0) = 1
Replace in_valuta With This.Value, valuta_proprie With 1
If This.Value = 0
Replace id_valuta With 0, nume_val With '', curs With 0, suma_val With 0
Endif
Thisform.do_executa()
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
Return
Endif
Replace in_valuta With This.Value
Thisform.copiaza_valoare([in_valuta])
If This.Value = 0
Replace id_valuta With 0, nume_val With '', curs With 0, suma_val With 0, suma_doc_val With 0
Thisform.copiaza_valoare([id_valuta])
Thisform.copiaza_valoare([nume_val])
Thisform.copiaza_valoare([curs])
Thisform.copiaza_valoare([suma_val])
Thisform.copiaza_valoare([suma_doc_val])
Endif
thisform.do_executa
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
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
*!* 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
*!* propaga valoarea pe randurile aceluiasi doc_key
LOCAL lcSelect, lcDocKey, lnIdPart, lcPart, lcCont, lnRecCurent
lcSelect = SELECT()
SELECT introdc
*!* randul DVI are partener propriu (vama) - nu il da si nu il preia de la factura
IF Nvl(rand_dvi,0) = 1
SELECT (lcSelect)
RETURN
ENDIF
lnRecCurent = RECNO()
lcDocKey = doc_key
lnIdPart = id_partc
lcPart = partc
lcCont = scc
SCAN FOR !EMPTY(lcDocKey) AND doc_key == lcDocKey AND RECNO() <> lnRecCurent
IF Nvl(rand_dvi,0) = 1
LOOP
ENDIF
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
*!* propaga valoarea pe randurile aceluiasi doc_key
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
Thisform.lSyncPending = .T.
Thisform.tmrSync.Interval = 1
ENDPROC
PROCEDURE Grid1.cScc.Text1.GotFocus
*!* valoarea la intrarea in celula - Valid recalculeaza doar daca s-a modificat
Thisform.cOldVal = 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.cOldVal
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.cOldVal = 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
*!* 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
*!* Nu apeleaza sincronizeaza() direct (eroare VFP 2166) - marcheaza documentul si armeaza
*!* tmrSync. suma_doc se propaga pe grup doar la editarea randului B; pe T utilizatorul
*!* editeaza suma de TVA. Valid re-declansat de regenerarea randurilor din sincronizare iese devreme.
If Thisform.lInSync
Return
Endif
If Vartype(This.Value) <> 'N'
Return
Endif
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
*!* 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
*!* valoarea tastata se scrie explicit din This.Value (dupa amessagebox grid-ul nu o mai scrie in camp)
Local lnSumaDinVal, lnRaspuns
If Thisform.lInSync
Return
Endif
If Vartype(This.Value) <> 'N'
Return
Endif
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
* folosesc cursul randului (editabil in grid) cand exista; altfel cursul facturii principale
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
*!* ca la Grid1.cSuma.Text1.Valid; suma_doc se propaga pe grup doar pe randul B
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
*!* 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, llDviRon, llDocRon, llCoincideDoc
loCauta = caut_valuta(, .F., .F.)
If Vartype(loCauta) = 'O' And !Empty(Nvl(loCauta.id_valuta, 0))
Select introdc
If tip_rand == 'T' And Nvl(rand_dvi,0) = 1
llDviRon = (Empty(Alltrim(Nvl(loCauta.nume_val,''))) Or Upper(Alltrim(Nvl(loCauta.nume_val,''))) == 'RON')
llDocRon = (Empty(Alltrim(Nvl(Thisform.oact.nume_val,''))) Or Upper(Alltrim(Nvl(Thisform.oact.nume_val,''))) == 'RON')
llCoincideDoc = Iif(llDviRon And llDocRon, .T., (loCauta.id_valuta == Nvl(Thisform.oact.id_valuta,0)))
Replace id_valuta With loCauta.id_valuta, nume_val With Alltrim(loCauta.nume_val), ;
valuta_proprie With Iif(llCoincideDoc, 0, 1)
If llCoincideDoc
Replace in_valuta With Iif(llDocRon, 0, 1), curs With Iif(llDocRon, 0, Thisform.oact.Curs)
Replace suma_val With Iif(!llDocRon And curs <> 0, Round(suma / curs, gnPval), 0)
Endif
This.Value = introdc.nume_val
Thisform.do_executa()
Thisform.grid1.Refresh()
Return
Endif
Replace id_valuta With loCauta.id_valuta, nume_val With Alltrim(loCauta.nume_val)
Thisform.copiaza_valoare([id_valuta])
Thisform.copiaza_valoare([nume_val])
This.Value = introdc.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
*!* italic pe randul T
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")
*!* 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
*!* editarea cotei TVA nu recalculeaza direct - armeaza sincronizarea amanata,
*!* care regenereaza randurile 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
*!* 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"
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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 = <VFPData>
<memberdata name="nidresponsabil" display="nIdResponsabil"/>
<memberdata name="nresp" display="nResp"/>
</VFPData>
_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"
*</PropValue>
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"
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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"
*</PropValue>
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="" />
*<DefinedPropArrayMethod>
*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
*</DefinedPropArrayMethod>
*<PropValue>
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
*</PropValue>
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