diff --git a/Build/Build.fbl6 b/Build/Build.fbl6 index 1d3d4ff..ece37f8 100644 Binary files a/Build/Build.fbl6 and b/Build/Build.fbl6 differ diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 9d87741..dc56600 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -65,55 +65,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj index 7b608a9..6bfd609 100644 --- a/Source/Cliente/FactuGES.dproj +++ b/Source/Cliente/FactuGES.dproj @@ -51,7 +51,7 @@ Delphi.Personality VCLApplication -FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2710FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.7.1.0FactuGESFactuGES2.7.1.0 +FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse2720FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.7.2.0FactuGESFactuGES2.7.2.0 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES.dprFalse diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res index cb69b53..58a40fe 100644 Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index e1875bd..f44e3be 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas index 4d11ca7..3bd8042 100644 --- a/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas +++ b/Source/Modulos/Articulos/Controller/View/uIEditorElegirArticulos.pas @@ -18,7 +18,6 @@ type procedure SetMensaje (const AValue: String); function GetMensaje: String; property Mensaje : String read GetMensaje write SetMensaje; - end; diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas index a54612c..929d748 100644 --- a/Source/Modulos/Articulos/Controller/uArticulosController.pas +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -41,10 +41,15 @@ type function GetProveedoresController: IProveedoresController; property ProveedoresController: IProveedoresController read GetProveedoresController; + + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; TArticulosController = class(TControllerBase, IArticulosController) protected + FPrecioPunto: Currency; FDataModule : IDataModuleArticulos; FProveedoresController: IProveedoresController; function GetProveedoresController: IProveedoresController; @@ -59,6 +64,9 @@ type procedure RecuperarObjetos(AArticulo: IBizArticulo); virtual; procedure AsignarDataModule; virtual; + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; + public property ProveedoresController: IProveedoresController read GetProveedoresController; @@ -92,6 +100,8 @@ type procedure ElegirProveedor(AArticulo : IBizArticulo); procedure AnadirProveedor(AArticulo : IBizArticulo); procedure VerProveedor(AArticulo : IBizArticulo); + + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; implementation @@ -318,6 +328,7 @@ end; constructor TArticulosController.Create; begin inherited; + FPrecioPunto:= AppFactuGES.EmpresaActiva.PRECIO_PUNTO; AsignarDataModule; end; @@ -542,6 +553,11 @@ begin // end; +procedure TArticulosController.SetPrecioPunto(const AValue: Currency); +begin + FPrecioPunto := AValue; +end; + function TArticulosController.Existe(const ID: Integer): Boolean; var AArticulo : IBizArticulo; @@ -583,6 +599,11 @@ begin end; end; +function TArticulosController.GetPrecioPunto: Currency; +begin + Result := FPrecioPunto; +end; + function TArticulosController.GetProveedoresController: IProveedoresController; begin Result := FProveedoresController; diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj index 9b2a152..d273fa4 100644 --- a/Source/Modulos/Articulos/Views/Articulos_view.dproj +++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj @@ -54,12 +54,12 @@ MainSource - - - - - - + + + + + +
fEditorArticulo
diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm index 2650130..bd784c1 100644 --- a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm @@ -2,7 +2,6 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Caption = 'Seleccionar art'#237'culos' ClientWidth = 656 ExplicitWidth = 664 - ExplicitHeight = 478 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader @@ -20,14 +19,15 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos inherited TBXDock: TTBXDock Top = 91 Width = 656 - Height = 49 + Height = 53 ExplicitTop = 91 ExplicitWidth = 656 - ExplicitHeight = 49 + ExplicitHeight = 53 inherited tbxMain: TTBXToolbar Align = alLeft DockPos = -6 - ExplicitWidth = 126 + ExplicitWidth = 142 + ExplicitHeight = 27 inherited TBXItem2: TTBXItem Visible = False end @@ -45,13 +45,13 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos end end inherited tbxFiltro: TTBXToolbar - Left = 126 - Top = 23 + Left = 142 + Top = 26 Align = alLeft DockPos = 101 DockRow = 1 - ExplicitLeft = 126 - ExplicitTop = 23 + ExplicitLeft = 142 + ExplicitTop = 26 inherited TBXItem34: TTBXItem Action = actQuitarFiltro2 end @@ -61,11 +61,11 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos end inherited TBXTMain2: TTBXToolbar Left = 536 - Top = 23 + Top = 26 DockPos = 536 DockRow = 1 ExplicitLeft = 536 - ExplicitTop = 23 + ExplicitTop = 26 end end inherited StatusBar: TJvStatusBar @@ -127,12 +127,11 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Padding.Bottom = 8 ParentBackground = False TabOrder = 4 - ExplicitTop = -37 object lblTitle: TLabel AlignWithMargins = True Left = 25 Top = 8 - Width = 131 + Width = 606 Height = 13 Margins.Left = 0 Margins.Top = 0 @@ -146,17 +145,20 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False + ExplicitWidth = 131 end object lblComments: TLabel AlignWithMargins = True Left = 50 Top = 29 - Width = 3 - Height = 13 + Width = 581 + Height = 27 Margins.Left = 25 Margins.Top = 0 Margins.Right = 0 Align = alClient + ExplicitWidth = 3 + ExplicitHeight = 13 end end inherited EditorActionList: TActionList [5] diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas index e8b1698..968e093 100644 --- a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.pas @@ -36,6 +36,7 @@ type procedure SetViewGrid(const Value: IViewGridBase); override; procedure SetMensaje (const AValue: String); function GetMensaje: String; + public property Mensaje : String read GetMensaje write SetMensaje; property ArticulosSeleccionados: IBizArticulo read GetArticulosSeleccionados; @@ -68,6 +69,8 @@ procedure TfEditorElegirArticulos.FormShow(Sender: TObject); begin inherited; EditorActionList.State := asSuspended; + if Assigned(ViewGrid) then + (ViewGrid as IViewArticulos).PrecioPunto := Controller.PrecioPunto; end; procedure TfEditorElegirArticulos.frViewBarraSeleccion1actCancelarExecute( diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm index 1d399df..ef0652d 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm @@ -1,6 +1,6 @@ inherited frViewArticulo: TfrViewArticulo - Width = 451 - Height = 304 + Width = 981 + Height = 459 Align = alClient OnCreate = CustomViewCreate OnDestroy = CustomViewDestroy @@ -10,19 +10,19 @@ inherited frViewArticulo: TfrViewArticulo object dxLayoutControlArticulo: TdxLayoutControl Left = 0 Top = 0 - Width = 451 + Width = 981 Height = 393 Align = alTop ParentBackground = True TabOrder = 0 TabStop = False AutoContentSizes = [acsWidth] - ExplicitWidth = 869 + ExplicitWidth = 451 DesignSize = ( - 451 + 981 393) object PngSpeedButton2: TPngSpeedButton - Left = 546 + Left = 917 Top = 28 Width = 23 Height = 22 @@ -49,7 +49,7 @@ inherited frViewArticulo: TfrViewArticulo PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled] end object PngSpeedButton1: TPngSpeedButton - Left = 546 + Left = 917 Top = 56 Width = 23 Height = 22 @@ -123,7 +123,7 @@ inherited frViewArticulo: TfrViewArticulo Width = 144 end object eImagen: TcxImage - Left = 447 + Left = 722 Top = 28 Properties.GraphicClassName = 'TJPEGImage' Properties.ImmediatePost = True @@ -169,7 +169,7 @@ inherited frViewArticulo: TfrViewArticulo Width = 70 end inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor - Left = 219 + Left = 590 Top = 193 Width = 350 Height = 202 @@ -182,7 +182,7 @@ inherited frViewArticulo: TfrViewArticulo ParentFont = False TabOrder = 14 ReadOnly = False - ExplicitLeft = 219 + ExplicitLeft = 590 ExplicitTop = 193 inherited dxLayoutControl1: TdxLayoutControl inherited edtNIFCIF: TcxDBTextEdit @@ -314,7 +314,7 @@ inherited frViewArticulo: TfrViewArticulo Width = 86 end object cbNoInventariable: TcxDBCheckBox - Left = 265 + Left = 433 Top = 136 Caption = 'Art'#237'culo no inventariable' DataBinding.DataField = 'INVENTARIABLE' diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm index 53d3d98..f1a97a6 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -1,5 +1,14 @@ inherited frViewArticulos: TfrViewArticulos + Width = 896 + Height = 680 + OnCreate = CustomViewCreate + ExplicitWidth = 896 + ExplicitHeight = 680 inherited cxGrid: TcxGrid + Width = 896 + Height = 552 + ExplicitWidth = 896 + ExplicitHeight = 552 inherited cxGridView: TcxGridDBTableView OnMouseMove = cxGridViewMouseMove DataController.KeyFieldNames = 'ID' @@ -76,25 +85,25 @@ inherited frViewArticulos: TfrViewArticulos Caption = 'Referencia' DataBinding.FieldName = 'REFERENCIA' BestFitMaxWidth = 60 - Width = 60 + Width = 121 end object cxGridViewFAMILIA: TcxGridDBColumn Caption = 'Familia' DataBinding.FieldName = 'FAMILIA' BestFitMaxWidth = 60 - Width = 60 + Width = 120 end object cxGridViewREFERENCIA_PROV: TcxGridDBColumn Caption = 'Subfamilia' DataBinding.FieldName = 'REFERENCIA_PROV' BestFitMaxWidth = 60 - Width = 60 + Width = 121 end object cxGridViewDESCRIPCION: TcxGridDBColumn Caption = 'Descripci'#243'n' DataBinding.FieldName = 'DESCRIPCION' BestFitMaxWidth = 120 - Width = 120 + Width = 210 end object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn Caption = 'Proveedor' @@ -112,6 +121,7 @@ inherited frViewArticulos: TfrViewArticulos Properties.AssignedValues.DisplayFormat = True FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taRightJustify + Width = 130 end object cxGridViewDESCUENTO: TcxGridDBColumn Caption = 'Descuento' @@ -160,12 +170,18 @@ inherited frViewArticulos: TfrViewArticulos Properties.UseLeftAlignmentOnEditing = False OnGetDisplayText = cxGridViewPRECIOPVP2GetDisplayText HeaderAlignmentHorz = taRightJustify + Width = 158 end end end inherited frViewFiltroBase1: TfrViewFiltroBase + Width = 896 + ExplicitWidth = 896 inherited TBXDockablePanel1: TTBXDockablePanel + ExplicitWidth = 896 inherited dxLayoutControl1: TdxLayoutControl + Width = 896 + ExplicitWidth = 896 inherited txtFiltroTodo: TcxTextEdit Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' @@ -179,19 +195,35 @@ inherited frViewArticulos: TfrViewArticulos StyleHot.LookAndFeel.SkinName = '' end inherited edtFechaFinFiltro: TcxDateEdit + Left = 549 Style.LookAndFeel.SkinName = '' StyleDisabled.LookAndFeel.SkinName = '' StyleFocused.LookAndFeel.SkinName = '' StyleHot.LookAndFeel.SkinName = '' + ExplicitLeft = 549 + end + end + inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 896 + ExplicitWidth = 896 + inherited tbxBotones: TTBXToolbar + Width = 886 + ExplicitWidth = 886 end end end end inherited pnlAgrupaciones: TTBXDockablePanel + Top = 654 Visible = True - ExplicitWidth = 128 + ExplicitTop = 654 + ExplicitWidth = 896 inherited TBXAlignmentPanel1: TTBXAlignmentPanel + Width = 896 + ExplicitWidth = 896 inherited TBXToolbar1: TTBXToolbar + Width = 886 + ExplicitWidth = 886 object TBXSeparatorItem1: TTBXSeparatorItem end object TBXItem3: TTBXItem diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas index 8a9f53f..5945fd0 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.pas +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -22,6 +22,9 @@ type function GetArticulos: IBizArticulo; procedure SetArticulos(const Value: IBizArticulo); property Articulos: IBizArticulo read GetArticulos write SetArticulos; + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; TfrViewArticulos = class(TfrViewGrid, IViewArticulos) @@ -50,12 +53,18 @@ type procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer); procedure cxGridViewPRECIOPVP2GetDisplayText(Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AText: string); + procedure CustomViewCreate(Sender: TObject); protected + FPrecioPunto: Currency; FArticulos: IBizArticulo; function GetArticulos: IBizArticulo; virtual; procedure SetArticulos(const Value: IBizArticulo); virtual; + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; + public property Articulos: IBizArticulo read GetArticulos write SetArticulos; + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; implementation @@ -76,6 +85,11 @@ begin Result := FArticulos; end; +function TfrViewArticulos.GetPrecioPunto: Currency; +begin + Result := FPrecioPunto; +end; + procedure TfrViewArticulos.SetArticulos(const Value: IBizArticulo); begin FArticulos := Value; @@ -84,6 +98,12 @@ begin end; +procedure TfrViewArticulos.SetPrecioPunto(const AValue: Currency); +begin + FPrecioPunto := AValue; + cxGridViewPRECIOPVP2.Caption := '(' + CurrToStr(FPrecioPunto) + '€) Precio PVP'; +end; + procedure TfrViewArticulos.actFamiliaExecute(Sender: TObject); begin if (cxGridViewFAMILIA.GroupIndex < 0) then @@ -125,6 +145,12 @@ begin (Sender as TAction).Checked := not (cxGridViewNOMBRE_PROVEEDOR.GroupIndex < 0); end; +procedure TfrViewArticulos.CustomViewCreate(Sender: TObject); +begin + inherited; + PrecioPunto := AppFactuGES.EmpresaActiva.PRECIO_PUNTO; +end; + procedure TfrViewArticulos.cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); @@ -186,9 +212,8 @@ begin ImportePVP := -1; if not VarIsNull(ARecord.Values[cxGridViewPRECIO_COSTE.Index]) then - if not VarIsNull(AppFactuGES.EmpresaActiva.PRECIO_PUNTO) then - - ImportePVP := RoundCurrency(ARecord.Values[cxGridViewPRECIO_COSTE.Index] * AppFactuGES.EmpresaActiva.PRECIO_PUNTO) + if not VarIsNull(FPrecioPunto) then + ImportePVP := RoundCurrency(ARecord.Values[cxGridViewPRECIO_COSTE.Index] * FPrecioPunto) else ImportePVP := 0; diff --git a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm index 23533f4..63edede 100644 --- a/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Data/uDataModuleContratosCliente.dfm @@ -335,6 +335,10 @@ inherited DataModuleContratosCliente: TDataModuleContratosCliente Name = 'FACTURA_ASOCIADA' DataType = datString Size = 255 + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas index f4519ff..63b6289 100644 --- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas +++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteClient_Intf.pas @@ -9,13 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_Valores = '{9AD797AA-D46B-4AE9-9DD1-6BAC6654143D}'; - RID_Propiedades = '{09573259-D2FE-4AB6-A029-AC941F33783C}'; - RID_ListaAnosContratos = '{3285A04A-70B8-4A60-A13F-F7D07D7E7225}'; - RID_ContratosClienteBeneficios = '{E0BAE351-BBAD-4095-93FB-18C3A4BECCA0}'; - RID_ContratosCliente = '{36DCC1AC-A433-4CD3-B597-F8599DDEBEE5}'; - RID_TiposCapitulos = '{B2D4D441-CBF5-4C00-8D77-C97B1B99524B}'; - RID_ContratosCliente_Detalles = '{873F4990-695B-4AEE-9DB2-AA2EB812982A}'; + RID_Valores = '{39510FE4-7F74-401D-869E-CFB507479067}'; + RID_Propiedades = '{949B514D-468F-4D4D-B429-C68FC2863BD6}'; + RID_ListaAnosContratos = '{572F77CB-74C7-4CC7-B2C7-AB76992CC0D9}'; + RID_ContratosClienteBeneficios = '{BC4D5A2E-FD5F-4BB9-BCDF-D54933C6255C}'; + RID_ContratosCliente = '{F7738525-8BBC-463A-A369-81EA51C10BE0}'; + RID_TiposCapitulos = '{A72F947C-5A9B-49F6-9378-B3D4AB9960DD}'; + RID_ContratosCliente_Detalles = '{5D8BC29D-E34D-4E9F-B9A2-A7F2BC896C6C}'; { Data table names } nme_Valores = 'Valores'; @@ -135,6 +135,7 @@ const fld_ContratosClienteTIPO_CONTRATO = 'TIPO_CONTRATO'; fld_ContratosClienteREFERENCIA_CLIENTE = 'REFERENCIA_CLIENTE'; fld_ContratosClienteFACTURA_ASOCIADA = 'FACTURA_ASOCIADA'; + fld_ContratosClientePRECIO_PUNTO = 'PRECIO_PUNTO'; { ContratosCliente field indexes } idx_ContratosClienteID = 0; @@ -185,6 +186,7 @@ const idx_ContratosClienteTIPO_CONTRATO = 45; idx_ContratosClienteREFERENCIA_CLIENTE = 46; idx_ContratosClienteFACTURA_ASOCIADA = 47; + idx_ContratosClientePRECIO_PUNTO = 48; { TiposCapitulos fields } fld_TiposCapitulosID = 'ID'; @@ -243,7 +245,7 @@ const type { IValores } IValores = interface(IDAStronglyTypedDataTable) - ['{6E74F489-85F3-46DC-AC2E-4B4AE491D53B}'] + ['{DACA7BC8-C413-4082-886E-6F0C503F6132}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -302,7 +304,7 @@ type { IPropiedades } IPropiedades = interface(IDAStronglyTypedDataTable) - ['{2DB5F8D6-C637-46EE-AA32-88BEAA1E914B}'] + ['{F590BA10-8F0F-4365-9A7E-DF735A6D7F37}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -361,7 +363,7 @@ type { IListaAnosContratos } IListaAnosContratos = interface(IDAStronglyTypedDataTable) - ['{7EF2538F-7F91-41F2-BBA5-8E90D546307F}'] + ['{5BA2BF07-C795-41F5-9D37-F256F7453892}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -396,7 +398,7 @@ type { IContratosClienteBeneficios } IContratosClienteBeneficios = interface(IDAStronglyTypedDataTable) - ['{175DC6DA-9682-4343-A2AD-311257C2692A}'] + ['{A9D1988D-0E6E-4C26-8A9D-B4FAC07DF3B3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -599,7 +601,7 @@ type { IContratosCliente } IContratosCliente = interface(IDAStronglyTypedDataTable) - ['{EE4BBA7B-8F6D-4221-9573-423F0D44B0A1}'] + ['{3B5E86A1-8DC4-4855-B315-0FBCF8D81EC3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -789,6 +791,10 @@ type procedure SetFACTURA_ASOCIADAValue(const aValue: String); function GetFACTURA_ASOCIADAIsNull: Boolean; procedure SetFACTURA_ASOCIADAIsNull(const aValue: Boolean); + function GetPRECIO_PUNTOValue: Currency; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); + function GetPRECIO_PUNTOIsNull: Boolean; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); { Properties } @@ -888,6 +894,8 @@ type property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; property FACTURA_ASOCIADA: String read GetFACTURA_ASOCIADAValue write SetFACTURA_ASOCIADAValue; property FACTURA_ASOCIADAIsNull: Boolean read GetFACTURA_ASOCIADAIsNull write SetFACTURA_ASOCIADAIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; end; { TContratosClienteDataTableRules } @@ -1091,6 +1099,10 @@ type procedure SetFACTURA_ASOCIADAValue(const aValue: String); virtual; function GetFACTURA_ASOCIADAIsNull: Boolean; virtual; procedure SetFACTURA_ASOCIADAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -1189,6 +1201,8 @@ type property REFERENCIA_CLIENTEIsNull: Boolean read GetREFERENCIA_CLIENTEIsNull write SetREFERENCIA_CLIENTEIsNull; property FACTURA_ASOCIADA: String read GetFACTURA_ASOCIADAValue write SetFACTURA_ASOCIADAValue; property FACTURA_ASOCIADAIsNull: Boolean read GetFACTURA_ASOCIADAIsNull write SetFACTURA_ASOCIADAIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -1201,7 +1215,7 @@ type } { ITiposCapitulos } ITiposCapitulos = interface(IDAStronglyTypedDataTable) - ['{2B50B74F-8959-47A2-BED3-7B4812D6187A}'] + ['{F5C50F18-6FCD-4CFB-B113-37B7E7DF49EA}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1296,7 +1310,7 @@ type { IContratosCliente_Detalles } IContratosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{7CDC601E-7E87-402A-8C14-0C92B0C123E9}'] + ['{F97E04B7-9F8E-4D8B-A7ED-A52270F5EA78}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -3076,6 +3090,27 @@ begin DataTable.Fields[idx_ContratosClienteFACTURA_ASOCIADA].AsVariant := Null; end; +function TContratosClienteDataTableRules.GetPRECIO_PUNTOValue: Currency; +begin + result := DataTable.Fields[idx_ContratosClientePRECIO_PUNTO].AsCurrency; +end; + +procedure TContratosClienteDataTableRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_ContratosClientePRECIO_PUNTO].AsCurrency := aValue; +end; + +function TContratosClienteDataTableRules.GetPRECIO_PUNTOIsNull: boolean; +begin + result := DataTable.Fields[idx_ContratosClientePRECIO_PUNTO].IsNull; +end; + +procedure TContratosClienteDataTableRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ContratosClientePRECIO_PUNTO].AsVariant := Null; +end; + { TTiposCapitulosDataTableRules } constructor TTiposCapitulosDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas b/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas index e5ad346..623ac73 100644 --- a/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas +++ b/Source/Modulos/Contratos de cliente/Model/schContratosClienteServer_Intf.pas @@ -9,18 +9,18 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ValoresDelta = '{C3B5AAD1-9E86-48CC-BB2A-F57573EF5C77}'; - RID_PropiedadesDelta = '{DD5F6AC0-3F77-4E30-A969-7914F1E20C35}'; - RID_ListaAnosContratosDelta = '{A6AD38DE-D89D-4026-8EC6-4C6544AAFF71}'; - RID_ContratosClienteBeneficiosDelta = '{636C6919-7CB6-4F1D-A7BB-8880E13A3B4A}'; - RID_ContratosClienteDelta = '{5F703D9D-DB14-4081-A55C-18940FC569D1}'; - RID_TiposCapitulosDelta = '{1F7BEA81-2AD5-42AB-9113-8AA803914CFE}'; - RID_ContratosCliente_DetallesDelta = '{9DB335CB-ADD8-4604-8213-C5EDCFE7B5A9}'; + RID_ValoresDelta = '{36B2FC47-3E94-4865-ADC3-F178179AAB85}'; + RID_PropiedadesDelta = '{0D138196-3D19-4B50-B1F9-67D1EDB88CB9}'; + RID_ListaAnosContratosDelta = '{FEA3D163-003E-4AC2-80A1-C033004D4731}'; + RID_ContratosClienteBeneficiosDelta = '{5CA6EE91-2CB4-41F2-AAC7-EF21E9C4D413}'; + RID_ContratosClienteDelta = '{CFB27238-CC03-4AC2-80C9-1B708AF2D31F}'; + RID_TiposCapitulosDelta = '{DA155785-C0DC-4EB9-8F68-02DFFB2E8957}'; + RID_ContratosCliente_DetallesDelta = '{EDBFF95D-01E7-4770-AE40-78C7BC8FAA75}'; type { IValoresDelta } IValoresDelta = interface(IValores) - ['{C3B5AAD1-9E86-48CC-BB2A-F57573EF5C77}'] + ['{36B2FC47-3E94-4865-ADC3-F178179AAB85}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PROPIEDADValue : Integer; @@ -78,7 +78,7 @@ type { IPropiedadesDelta } IPropiedadesDelta = interface(IPropiedades) - ['{DD5F6AC0-3F77-4E30-A969-7914F1E20C35}'] + ['{0D138196-3D19-4B50-B1F9-67D1EDB88CB9}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -136,7 +136,7 @@ type { IListaAnosContratosDelta } IListaAnosContratosDelta = interface(IListaAnosContratos) - ['{A6AD38DE-D89D-4026-8EC6-4C6544AAFF71}'] + ['{FEA3D163-003E-4AC2-80A1-C033004D4731}'] { Property getters and setters } function GetOldANOValue : String; @@ -170,7 +170,7 @@ type { IContratosClienteBeneficiosDelta } IContratosClienteBeneficiosDelta = interface(IContratosClienteBeneficios) - ['{636C6919-7CB6-4F1D-A7BB-8880E13A3B4A}'] + ['{5CA6EE91-2CB4-41F2-AAC7-EF21E9C4D413}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldREFERENCIAValue : String; @@ -372,7 +372,7 @@ type { IContratosClienteDelta } IContratosClienteDelta = interface(IContratosCliente) - ['{5F703D9D-DB14-4081-A55C-18940FC569D1}'] + ['{CFB27238-CC03-4AC2-80C9-1B708AF2D31F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -422,6 +422,7 @@ type function GetOldTIPO_CONTRATOValue : String; function GetOldREFERENCIA_CLIENTEValue : String; function GetOldFACTURA_ASOCIADAValue : String; + function GetOldPRECIO_PUNTOValue : Currency; { Properties } property OldID : Integer read GetOldIDValue; @@ -472,6 +473,7 @@ type property OldTIPO_CONTRATO : String read GetOldTIPO_CONTRATOValue; property OldREFERENCIA_CLIENTE : String read GetOldREFERENCIA_CLIENTEValue; property OldFACTURA_ASOCIADA : String read GetOldFACTURA_ASOCIADAValue; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; end; { TContratosClienteBusinessProcessorRules } @@ -771,6 +773,12 @@ type function GetOldFACTURA_ASOCIADAIsNull: Boolean; virtual; procedure SetFACTURA_ASOCIADAValue(const aValue: String); virtual; procedure SetFACTURA_ASOCIADAIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + function GetOldPRECIO_PUNTOValue: Currency; virtual; + function GetOldPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -965,6 +973,10 @@ type property FACTURA_ASOCIADAIsNull : Boolean read GetFACTURA_ASOCIADAIsNull write SetFACTURA_ASOCIADAIsNull; property OldFACTURA_ASOCIADA : String read GetOldFACTURA_ASOCIADAValue; property OldFACTURA_ASOCIADAIsNull : Boolean read GetOldFACTURA_ASOCIADAIsNull; + property PRECIO_PUNTO : Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull : Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; + property OldPRECIO_PUNTOIsNull : Boolean read GetOldPRECIO_PUNTOIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -974,7 +986,7 @@ type { ITiposCapitulosDelta } ITiposCapitulosDelta = interface(ITiposCapitulos) - ['{1F7BEA81-2AD5-42AB-9113-8AA803914CFE}'] + ['{DA155785-C0DC-4EB9-8F68-02DFFB2E8957}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldPOSICIONValue : Integer; @@ -1068,7 +1080,7 @@ type { IContratosCliente_DetallesDelta } IContratosCliente_DetallesDelta = interface(IContratosCliente_Detalles) - ['{9DB335CB-ADD8-4604-8213-C5EDCFE7B5A9}'] + ['{EDBFF95D-01E7-4770-AE40-78C7BC8FAA75}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_CONTRATOValue : Integer; @@ -3552,6 +3564,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClienteFACTURA_ASOCIADA] := Null; end; +function TContratosClienteBusinessProcessorRules.GetPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClientePRECIO_PUNTO]; +end; + +function TContratosClienteBusinessProcessorRules.GetPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClientePRECIO_PUNTO]); +end; + +function TContratosClienteBusinessProcessorRules.GetOldPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClientePRECIO_PUNTO]; +end; + +function TContratosClienteBusinessProcessorRules.GetOldPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ContratosClientePRECIO_PUNTO]); +end; + +procedure TContratosClienteBusinessProcessorRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClientePRECIO_PUNTO] := aValue; +end; + +procedure TContratosClienteBusinessProcessorRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ContratosClientePRECIO_PUNTO] := Null; +end; + { TTiposCapitulosBusinessProcessorRules } constructor TTiposCapitulosBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas index a400a38..7c91214 100644 --- a/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Model/uBizContratosCliente.pas @@ -256,6 +256,7 @@ begin USUARIO := AppFactuGES.UsuarioActivo.UserName; // ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; //En abeto la forma de pago por defecto la da la configuración de tipo de documento ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; + PRECIO_PUNTO := AppFactuGES.EmpresaActiva.PRECIO_PUNTO; FECHA_CONTRATO := DateOf(Date); diff --git a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm index 12c16cf..e91c155 100644 --- a/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm +++ b/Source/Modulos/Contratos de cliente/Servidor/srvContratosCliente_Impl.dfm @@ -473,6 +473,10 @@ object srvContratosCliente: TsrvContratosCliente item DatasetField = 'PROCEDENCIA_CLIENTE' TableField = 'PROCEDENCIA_CLIENTE' + end + item + DatasetField = 'PRECIO_PUNTO' + TableField = 'PRECIO_PUNTO' end> end> Name = 'ContratosCliente' @@ -740,6 +744,10 @@ object srvContratosCliente: TsrvContratosCliente Name = 'FACTURA_ASOCIADA' DataType = datString Size = 255 + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> end item @@ -1199,6 +1207,11 @@ object srvContratosCliente: TsrvContratosCliente DataType = datString Size = 255 Value = '' + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency + Value = '' end> Statements = < item @@ -1215,16 +1228,16 @@ object srvContratosCliente: TsrvContratosCliente 'IVA, IMPORTE_IVA,'#10' IMPORTE_TOTAL, ID_FORMA_PAGO, ID_TIENDA, ' + 'ID_VENDEDOR, PERSONA_CONTACTO,'#10' RE, IMPORTE_RE, RECARGO_EQUI' + 'VALENCIA, TELEFONO, MOVIL, TIPO_CONTRATO,'#10' REFERENCIA_CLIENT' + - 'E)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_CLIENTE, :NIF_CIF, :NOMBR' + - 'E, :ID_DIRECCION, :CALLE, :POBLACION, :PROVINCIA,'#10' :CODIGO_P' + - 'OSTAL, :REFERENCIA, :FECHA_CONTRATO, :SITUACION, :FORMA_PAGO,'#10' ' + - ' :PLAZO_ENTREGA, :OBSERVACIONES, :INCIDENCIAS, :INCIDENCIAS_AC' + - 'TIVAS, CURRENT_TIMESTAMP,'#10' :USUARIO, :IMPORTE_NETO, :IMPORTE' + - '_PORTE, :DESCUENTO, :IMPORTE_DESCUENTO,'#10' :BASE_IMPONIBLE, :I' + - 'D_TIPO_IVA, :IVA, :IMPORTE_IVA, :IMPORTE_TOTAL, :ID_FORMA_PAGO,'#10 + - ' :ID_TIENDA, :ID_VENDEDOR, :PERSONA_CONTACTO, :RE, :IMPORTE_' + - 'RE, :RECARGO_EQUIVALENCIA,'#10' :TELEFONO, :MOVIL, :TIPO_CONTRAT' + - 'O, :REFERENCIA_CLIENTE)'#10#10 + 'E, PRECIO_PUNTO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :ID_CLIENTE, :N' + + 'IF_CIF, :NOMBRE, :ID_DIRECCION, :CALLE, :POBLACION, :PROVINCIA,'#10 + + ' :CODIGO_POSTAL, :REFERENCIA, :FECHA_CONTRATO, :SITUACION, :' + + 'FORMA_PAGO,'#10' :PLAZO_ENTREGA, :OBSERVACIONES, :INCIDENCIAS, :' + + 'INCIDENCIAS_ACTIVAS, CURRENT_TIMESTAMP,'#10' :USUARIO, :IMPORTE_' + + 'NETO, :IMPORTE_PORTE, :DESCUENTO, :IMPORTE_DESCUENTO,'#10' :BASE' + + '_IMPONIBLE, :ID_TIPO_IVA, :IVA, :IMPORTE_IVA, :IMPORTE_TOTAL, :I' + + 'D_FORMA_PAGO,'#10' :ID_TIENDA, :ID_VENDEDOR, :PERSONA_CONTACTO, ' + + ':RE, :IMPORTE_RE, :RECARGO_EQUIVALENCIA,'#10' :TELEFONO, :MOVIL,' + + ' :TIPO_CONTRATO, :REFERENCIA_CLIENTE, :PRECIO_PUNTO)'#10#10 StatementType = stSQL ColumnMappings = <> end> @@ -1459,6 +1472,11 @@ object srvContratosCliente: TsrvContratosCliente Size = 255 Value = '' end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1488,7 +1506,8 @@ object srvContratosCliente: TsrvContratosCliente 'RE,'#10' IMPORTE_RE = :IMPORTE_RE,'#10' RECARGO_EQUIVALENCIA = :RE' + 'CARGO_EQUIVALENCIA,'#10' TELEFONO = :TELEFONO,'#10' MOVIL = :MOVIL' + ','#10' TIPO_CONTRATO = :TIPO_CONTRATO,'#10' REFERENCIA_CLIENTE = :' + - 'REFERENCIA_CLIENTE'#10' WHERE'#10' (ID = :OLD_ID)'#10#10 + 'REFERENCIA_CLIENTE,'#10' PRECIO_PUNTO = :PRECIO_PUNTO'#10' WHERE'#10' ' + + ' (ID = :OLD_ID)'#10#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas index 5226b65..8c2aa77 100644 --- a/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas +++ b/Source/Modulos/Presupuestos de cliente/Controller/uDetallesPresupuestoClienteController.pas @@ -14,15 +14,21 @@ type procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; function PedirDescuento: Variant; + procedure RecalcularPrecioPuntoDetalles(PrecioPunto: Currency; ADetalles: IDAStronglyTypedDataTable); function DarPropiedades: IBizPropiedades; procedure AnadirCapitulo (const Tipo: String; const Descripcion: String; const Descuento:Boolean; ADetalles: IDAStronglyTypedDataTable); function BuscarCapitulo (const Tipo: String): IBizCapitulo; procedure SetTipoArticulo(ADetalles: IDAStronglyTypedDataTable; ATipo: String); + + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; TDetallesPresupuestoClienteController = class(TControllerDetallesArticulos, IDetallesPresupuestoClienteController) private + FPrecioPunto: Currency; FDataModule : IDataModulePresupuestosCliente; function CreateEditor(const AName : String; const IID: TGUID; out Intf): Boolean; @@ -37,6 +43,10 @@ type procedure ValidarCampos(DataTable: TDADataTable); override; procedure DesglosarPorteDetalles(ImportePorte: Currency; ADetalles: IDAStronglyTypedDataTable); function DarTotalPorteTotal(ADetalles: IDAStronglyTypedDataTable): Double; + procedure RecalcularPrecioPuntoDetalles(PrecioPunto: Currency; ADetalles: IDAStronglyTypedDataTable); + + procedure SetPrecioPunto (const AValue: Currency); + function GetPrecioPunto: Currency; public function PedirDescuento: Variant; @@ -53,6 +63,7 @@ type procedure ValidarDetalles(ADataTable: IDAStronglyTypedDataTable); override; procedure SetTipoArticulo(ADetalles: IDAStronglyTypedDataTable; ATipo: String); + property PrecioPunto : Currency read GetPrecioPunto write SetPrecioPunto; end; implementation @@ -98,6 +109,7 @@ begin end; end; + procedure TDetallesPresupuestoClienteController.AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean; ADetalles: IDAStronglyTypedDataTable); var ACapitulo: IBizCapitulo; @@ -199,6 +211,7 @@ end; constructor TDetallesPresupuestoClienteController.Create; begin inherited; + FPrecioPunto:= AppFactuGES.EmpresaActiva.PRECIO_PUNTO; FDataModule := TDataModulePresupuestosCliente.Create(Nil); end; @@ -229,6 +242,11 @@ begin inherited; end; +function TDetallesPresupuestoClienteController.GetPrecioPunto: Currency; +begin + Result := FPrecioPunto; +end; + procedure TDetallesPresupuestoClienteController.RellenarOtros(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); var ACadena : String; @@ -247,6 +265,12 @@ begin ADetalles.DataTable.FieldByName(CAMPO_DESCUENTO).AsFloat := 0; end; +procedure TDetallesPresupuestoClienteController.SetPrecioPunto(const AValue: Currency); +begin + FPrecioPunto := AValue; + FArticulosController.PrecioPunto := FPrecioPunto; +end; + procedure TDetallesPresupuestoClienteController.SetTipoArticulo( ADetalles: IDAStronglyTypedDataTable; ATipo: String); begin @@ -305,11 +329,48 @@ begin end; end; +procedure TDetallesPresupuestoClienteController.RecalcularPrecioPuntoDetalles(PrecioPunto: Currency; ADetalles: IDAStronglyTypedDataTable); +var + AArticulo: IBizArticulo; + ABookmark : TBookmark; + +begin + ABookmark := ADetalles.DataTable.GetBookMark; + try + ADetalles.DataTable.DisableControls; + ADetalles.DataTable.DisableEventHandlers; + + ADetalles.DataTable.First; + while not ADetalles.DataTable.eof do + begin + if (ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger > 0) then + begin + AArticulo := (FArticulosController.Buscar(ADetalles.DataTable.FieldByName(CAMPO_ID_ARTICULOS).AsInteger) as IBizArticulo); + AArticulo.DataTable.Open; + //Buscamos el punto del articulo y lo recalculamos + ADetalles.DataTable.Edit; + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsCurrency := AArticulo.PRECIO_COSTE * PrecioPunto; + ADetalles.DataTable.Post; + AArticulo := Nil; + end; + + ADetalles.DataTable.Next; + end; + + finally + ADetalles.DataTable.EnableEventHandlers; + ADetalles.DataTable.GotoBookmark(ABookmark); + ADetalles.DataTable.FreeBookmark(ABookmark); + ADetalles.DataTable.EnableControls; + end; + ActualizarTotales(ADetalles); +end; + procedure TDetallesPresupuestoClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); begin if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then if Assigned(AArticulos) then - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := RoundCurrency(AArticulos.PRECIO_COSTE * AppFactuGES.EmpresaActiva.PRECIO_PUNTO) + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := RoundCurrency(AArticulos.PRECIO_COSTE * FPrecioPunto) else ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; end; diff --git a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj index f6e7824..9a97a82 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj +++ b/Source/Modulos/Presupuestos de cliente/Data/PresupuestosCliente_data.dproj @@ -49,7 +49,7 @@ MainSource - +
DataModulePresupuestosCliente
diff --git a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm index 0448cd6..3a8706b 100644 --- a/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Data/uDataModulePresupuestosCliente.dfm @@ -270,6 +270,10 @@ inherited DataModulePresupuestosCliente: TDataModulePresupuestosCliente Size = 255 DisplayLabel = 'Tipo' DictionaryEntry = 'PresupuestosCliente_TIPO_PRESUPUESTO' + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> Params = <> StreamingOptions = [soDisableEventsWhileStreaming] diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas index f366b3f..f4b0135 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -9,12 +9,12 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_Valores = '{0834AA93-E35A-49DC-AF94-E773B6A9CA62}'; - RID_Propiedades = '{17AE7480-03AB-4A41-8EF3-E69A56680E19}'; - RID_ListaAnosPresupuestos = '{70FAE6E3-983F-4DE6-B1E1-413CF42FDF31}'; - RID_PresupuestosCliente = '{1A1E5F0C-CE49-4D41-A724-1983AB59CBDC}'; - RID_CapitulosPresupuesto = '{6661C54C-E40A-4951-B048-96586EE3AA6B}'; - RID_PresupuestosCliente_Detalles = '{97D6EAE0-93C9-4BF4-8E35-B51AB572428B}'; + RID_Valores = '{5F56032E-EEAF-4F35-807F-339687DA4C3D}'; + RID_Propiedades = '{6DAF74B6-95E2-40ED-B7C7-DB4009DB3D03}'; + RID_ListaAnosPresupuestos = '{3FA6E704-A7C6-491C-9C3B-0999E740BC70}'; + RID_PresupuestosCliente = '{139F3889-639B-4A29-BB2A-4B71E8FDF8C6}'; + RID_CapitulosPresupuesto = '{514AC745-5BE2-4BE9-BE2D-1ED90C3E2EAB}'; + RID_PresupuestosCliente_Detalles = '{C3BFA4AA-E2D0-422C-9719-A60174F14E88}'; { Data table names } nme_Valores = 'Valores'; @@ -99,6 +99,7 @@ const fld_PresupuestosClienteREF_CONTRATO = 'REF_CONTRATO'; fld_PresupuestosClienteNO_VALORADO = 'NO_VALORADO'; fld_PresupuestosClienteTIPO_PRESUPUESTO = 'TIPO_PRESUPUESTO'; + fld_PresupuestosClientePRECIO_PUNTO = 'PRECIO_PUNTO'; { PresupuestosCliente field indexes } idx_PresupuestosClienteID = 0; @@ -145,6 +146,7 @@ const idx_PresupuestosClienteREF_CONTRATO = 41; idx_PresupuestosClienteNO_VALORADO = 42; idx_PresupuestosClienteTIPO_PRESUPUESTO = 43; + idx_PresupuestosClientePRECIO_PUNTO = 44; { CapitulosPresupuesto fields } fld_CapitulosPresupuestoID = 'ID'; @@ -215,7 +217,7 @@ const type { IValores } IValores = interface(IDAStronglyTypedDataTable) - ['{D282ECEC-B93F-4EA3-ABFA-A965C3757F91}'] + ['{670D3888-6429-47B8-8455-159086F1ECF7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -310,7 +312,7 @@ type { IPropiedades } IPropiedades = interface(IDAStronglyTypedDataTable) - ['{E198EC3C-9CF6-49F8-B5C3-249BE63015FA}'] + ['{940A23E0-6D21-491D-8E87-88B7883B3C4B}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -357,7 +359,7 @@ type { IListaAnosPresupuestos } IListaAnosPresupuestos = interface(IDAStronglyTypedDataTable) - ['{622A6F88-A7CA-4CEA-BAFD-E442F4381D6B}'] + ['{ACB200CC-9FAD-44BE-8B57-22626A61CC99}'] { Property getters and setters } function GetANOValue: String; procedure SetANOValue(const aValue: String); @@ -392,7 +394,7 @@ type { IPresupuestosCliente } IPresupuestosCliente = interface(IDAStronglyTypedDataTable) - ['{5453A9D9-9D4E-45A0-B568-6230714F144E}'] + ['{58114EC0-EC49-4B46-8FB2-F32EB8833AA9}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -566,6 +568,10 @@ type procedure SetTIPO_PRESUPUESTOValue(const aValue: String); function GetTIPO_PRESUPUESTOIsNull: Boolean; procedure SetTIPO_PRESUPUESTOIsNull(const aValue: Boolean); + function GetPRECIO_PUNTOValue: Currency; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); + function GetPRECIO_PUNTOIsNull: Boolean; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); { Properties } @@ -657,6 +663,8 @@ type property NO_VALORADOIsNull: Boolean read GetNO_VALORADOIsNull write SetNO_VALORADOIsNull; property TIPO_PRESUPUESTO: String read GetTIPO_PRESUPUESTOValue write SetTIPO_PRESUPUESTOValue; property TIPO_PRESUPUESTOIsNull: Boolean read GetTIPO_PRESUPUESTOIsNull write SetTIPO_PRESUPUESTOIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; end; { TPresupuestosClienteDataTableRules } @@ -844,6 +852,10 @@ type procedure SetTIPO_PRESUPUESTOValue(const aValue: String); virtual; function GetTIPO_PRESUPUESTOIsNull: Boolean; virtual; procedure SetTIPO_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID: Integer read GetIDValue write SetIDValue; @@ -934,6 +946,8 @@ type property NO_VALORADOIsNull: Boolean read GetNO_VALORADOIsNull write SetNO_VALORADOIsNull; property TIPO_PRESUPUESTO: String read GetTIPO_PRESUPUESTOValue write SetTIPO_PRESUPUESTOValue; property TIPO_PRESUPUESTOIsNull: Boolean read GetTIPO_PRESUPUESTOIsNull write SetTIPO_PRESUPUESTOIsNull; + property PRECIO_PUNTO: Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull: Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; public constructor Create(aDataTable: TDADataTable); override; @@ -943,7 +957,7 @@ type { ICapitulosPresupuesto } ICapitulosPresupuesto = interface(IDAStronglyTypedDataTable) - ['{00C195F2-9264-45E8-BC16-E58B3A124BF4}'] + ['{18784E71-D92D-4F74-8EBC-D59F926081B3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -1110,7 +1124,7 @@ type { IPresupuestosCliente_Detalles } IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{18A3A177-29EF-45FC-8198-A8BB9F8EAC46}'] + ['{8E8B0B14-5D7E-4923-856C-0A805EA8A85D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -2521,6 +2535,27 @@ begin DataTable.Fields[idx_PresupuestosClienteTIPO_PRESUPUESTO].AsVariant := Null; end; +function TPresupuestosClienteDataTableRules.GetPRECIO_PUNTOValue: Currency; +begin + result := DataTable.Fields[idx_PresupuestosClientePRECIO_PUNTO].AsCurrency; +end; + +procedure TPresupuestosClienteDataTableRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + DataTable.Fields[idx_PresupuestosClientePRECIO_PUNTO].AsCurrency := aValue; +end; + +function TPresupuestosClienteDataTableRules.GetPRECIO_PUNTOIsNull: boolean; +begin + result := DataTable.Fields[idx_PresupuestosClientePRECIO_PUNTO].IsNull; +end; + +procedure TPresupuestosClienteDataTableRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_PresupuestosClientePRECIO_PUNTO].AsVariant := Null; +end; + { TCapitulosPresupuestoDataTableRules } constructor TCapitulosPresupuestoDataTableRules.Create(aDataTable: TDADataTable); diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas index 4e2dcde..58cb7d6 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -9,17 +9,17 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_ValoresDelta = '{28CC51B6-31EB-4D5A-AB3E-BCF14B10D91B}'; - RID_PropiedadesDelta = '{E07D5389-62DE-43D8-BAAE-2F6B04B93095}'; - RID_ListaAnosPresupuestosDelta = '{1E840130-4E9F-4E9D-8029-856D45DB6840}'; - RID_PresupuestosClienteDelta = '{3AADD78B-C307-4D80-8720-66E9EDBD28E8}'; - RID_CapitulosPresupuestoDelta = '{71EB45E6-C9F6-4019-B67C-311A77D7C0B5}'; - RID_PresupuestosCliente_DetallesDelta = '{B1775824-481D-4B82-9DC5-4FC61FE98E4B}'; + RID_ValoresDelta = '{F274CECD-D4A1-4F9E-9984-A9E181EB926C}'; + RID_PropiedadesDelta = '{D0789EF0-033D-42C8-9CF4-8A35D110AA2F}'; + RID_ListaAnosPresupuestosDelta = '{B8F35DF9-1BD8-4AA7-85AA-08D9E3DB0A92}'; + RID_PresupuestosClienteDelta = '{87557135-9370-434A-8914-DAB7F45D282F}'; + RID_CapitulosPresupuestoDelta = '{CAE568BC-6540-432A-854F-547D862130B6}'; + RID_PresupuestosCliente_DetallesDelta = '{6FD0E65A-FEB4-434C-9DDC-0CBC150DE5BD}'; type { IValoresDelta } IValoresDelta = interface(IValores) - ['{28CC51B6-31EB-4D5A-AB3E-BCF14B10D91B}'] + ['{F274CECD-D4A1-4F9E-9984-A9E181EB926C}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -113,7 +113,7 @@ type { IPropiedadesDelta } IPropiedadesDelta = interface(IPropiedades) - ['{E07D5389-62DE-43D8-BAAE-2F6B04B93095}'] + ['{D0789EF0-033D-42C8-9CF4-8A35D110AA2F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldDESCRIPCIONValue : String; @@ -159,7 +159,7 @@ type { IListaAnosPresupuestosDelta } IListaAnosPresupuestosDelta = interface(IListaAnosPresupuestos) - ['{1E840130-4E9F-4E9D-8029-856D45DB6840}'] + ['{B8F35DF9-1BD8-4AA7-85AA-08D9E3DB0A92}'] { Property getters and setters } function GetOldANOValue : String; @@ -193,7 +193,7 @@ type { IPresupuestosClienteDelta } IPresupuestosClienteDelta = interface(IPresupuestosCliente) - ['{3AADD78B-C307-4D80-8720-66E9EDBD28E8}'] + ['{87557135-9370-434A-8914-DAB7F45D282F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -239,6 +239,7 @@ type function GetOldREF_CONTRATOValue : String; function GetOldNO_VALORADOValue : SmallInt; function GetOldTIPO_PRESUPUESTOValue : String; + function GetOldPRECIO_PUNTOValue : Currency; { Properties } property OldID : Integer read GetOldIDValue; @@ -285,6 +286,7 @@ type property OldREF_CONTRATO : String read GetOldREF_CONTRATOValue; property OldNO_VALORADO : SmallInt read GetOldNO_VALORADOValue; property OldTIPO_PRESUPUESTO : String read GetOldTIPO_PRESUPUESTOValue; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; end; { TPresupuestosClienteBusinessProcessorRules } @@ -560,6 +562,12 @@ type function GetOldTIPO_PRESUPUESTOIsNull: Boolean; virtual; procedure SetTIPO_PRESUPUESTOValue(const aValue: String); virtual; procedure SetTIPO_PRESUPUESTOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PUNTOValue: Currency; virtual; + function GetPRECIO_PUNTOIsNull: Boolean; virtual; + function GetOldPRECIO_PUNTOValue: Currency; virtual; + function GetOldPRECIO_PUNTOIsNull: Boolean; virtual; + procedure SetPRECIO_PUNTOValue(const aValue: Currency); virtual; + procedure SetPRECIO_PUNTOIsNull(const aValue: Boolean); virtual; { Properties } property ID : Integer read GetIDValue write SetIDValue; @@ -738,6 +746,10 @@ type property TIPO_PRESUPUESTOIsNull : Boolean read GetTIPO_PRESUPUESTOIsNull write SetTIPO_PRESUPUESTOIsNull; property OldTIPO_PRESUPUESTO : String read GetOldTIPO_PRESUPUESTOValue; property OldTIPO_PRESUPUESTOIsNull : Boolean read GetOldTIPO_PRESUPUESTOIsNull; + property PRECIO_PUNTO : Currency read GetPRECIO_PUNTOValue write SetPRECIO_PUNTOValue; + property PRECIO_PUNTOIsNull : Boolean read GetPRECIO_PUNTOIsNull write SetPRECIO_PUNTOIsNull; + property OldPRECIO_PUNTO : Currency read GetOldPRECIO_PUNTOValue; + property OldPRECIO_PUNTOIsNull : Boolean read GetOldPRECIO_PUNTOIsNull; public constructor Create(aBusinessProcessor: TDABusinessProcessor); override; @@ -747,7 +759,7 @@ type { ICapitulosPresupuestoDelta } ICapitulosPresupuestoDelta = interface(ICapitulosPresupuesto) - ['{71EB45E6-C9F6-4019-B67C-311A77D7C0B5}'] + ['{CAE568BC-6540-432A-854F-547D862130B6}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldPOSICIONValue : Integer; @@ -913,7 +925,7 @@ type { IPresupuestosCliente_DetallesDelta } IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) - ['{B1775824-481D-4B82-9DC5-4FC61FE98E4B}'] + ['{6FD0E65A-FEB4-434C-9DDC-0CBC150DE5BD}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PRESUPUESTOValue : Integer; @@ -2858,6 +2870,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClienteTIPO_PRESUPUESTO] := Null; end; +function TPresupuestosClienteBusinessProcessorRules.GetPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePRECIO_PUNTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePRECIO_PUNTO]); +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPRECIO_PUNTOValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePRECIO_PUNTO]; +end; + +function TPresupuestosClienteBusinessProcessorRules.GetOldPRECIO_PUNTOIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_PresupuestosClientePRECIO_PUNTO]); +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetPRECIO_PUNTOValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePRECIO_PUNTO] := aValue; +end; + +procedure TPresupuestosClienteBusinessProcessorRules.SetPRECIO_PUNTOIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_PresupuestosClientePRECIO_PUNTO] := Null; +end; + { TCapitulosPresupuestoBusinessProcessorRules } constructor TCapitulosPresupuestoBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas index d26cae6..ccadba4 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosCliente.pas @@ -262,6 +262,7 @@ begin USUARIO := AppFactuGES.UsuarioActivo.UserName; // ID_FORMA_PAGO := AppFactuGES.EmpresaActiva.ID_FORMA_PAGO; //En abeto la forma de pago por defecto la da la configuración de tipo de documento ID_TIPO_IVA := AppFactuGES.EmpresaActiva.ID_TIPO_IVA; + PRECIO_PUNTO := AppFactuGES.EmpresaActiva.PRECIO_PUNTO; FECHA_PRESUPUESTO := DateOf(Date); FECHA_VIGENCIA := IncMonth(Date, AppFactuGES.EmpresaActiva.VALIDEZ_PRESUPUESTOS); diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 74fb0d8..a43c5f3 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -328,6 +328,10 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente item DatasetField = 'PROCEDENCIA_CLIENTE' TableField = 'PROCEDENCIA_CLIENTE' + end + item + DatasetField = 'PRECIO_PUNTO' + TableField = 'PRECIO_PUNTO' end> end> Name = 'PresupuestosCliente' @@ -550,6 +554,10 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente DataType = datString Size = 255 DictionaryEntry = 'PresupuestosCliente_TIPO_PRESUPUESTO' + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency end> end item @@ -1054,6 +1062,11 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente DataType = datString Size = 255 Value = '' + end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency + Value = '' end> Statements = < item @@ -1069,17 +1082,17 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente 'ETO, IMPORTE_PORTE,'#10' DESCUENTO, IMPORTE_DESCUENTO, BASE_IMPO' + 'NIBLE, ID_TIPO_IVA, IVA, IMPORTE_IVA,'#10' RE, IMPORTE_RE, RECAR' + 'GO_EQUIVALENCIA, IMPORTE_TOTAL, ID_FORMA_PAGO, ID_TIENDA, ID_VEN' + - 'DEDOR,'#10' ID_CONTRATO, NO_VALORADO, TIPO_PRESUPUESTO)'#10' VALUES' + - #10' (:ID, :ID_EMPRESA,'#10' :FECHA_PRESUPUESTO, :FECHA_VIGENCIA' + - ', :FECHA_DECISION, :REFERENCIA, :REFERENCIA_CLIENTE,'#10' :SITUA' + - 'CION, :ID_CLIENTE, :ID_DIRECCION, :PERSONA_CONTACTO,'#10' :FORMA' + - '_PAGO, :PLAZO_ENTREGA, :OBSERVACIONES, :INCIDENCIAS,'#10' :INCID' + - 'ENCIAS_ACTIVAS, CURRENT_TIMESTAMP, :USUARIO, :IMPORTE_NETO, :IMP' + - 'ORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :BASE_IMPONIBLE' + - ', :ID_TIPO_IVA, :IVA, :IMPORTE_IVA,'#10' :RE, :IMPORTE_RE, :RECA' + - 'RGO_EQUIVALENCIA, :IMPORTE_TOTAL, :ID_FORMA_PAGO, :ID_TIENDA, :I' + - 'D_VENDEDOR,'#10' :ID_CONTRATO, :NO_VALORADO, :TIPO_PRESUPUESTO)'#10 + - ' '#10#10#10#10#10 + 'DEDOR,'#10' ID_CONTRATO, NO_VALORADO, TIPO_PRESUPUESTO, PRECIO_P' + + 'UNTO)'#10' VALUES'#10' (:ID, :ID_EMPRESA,'#10' :FECHA_PRESUPUESTO, :' + + 'FECHA_VIGENCIA, :FECHA_DECISION, :REFERENCIA, :REFERENCIA_CLIENT' + + 'E,'#10' :SITUACION, :ID_CLIENTE, :ID_DIRECCION, :PERSONA_CONTACT' + + 'O,'#10' :FORMA_PAGO, :PLAZO_ENTREGA, :OBSERVACIONES, :INCIDENCIA' + + 'S,'#10' :INCIDENCIAS_ACTIVAS, CURRENT_TIMESTAMP, :USUARIO, :IMPO' + + 'RTE_NETO, :IMPORTE_PORTE,'#10' :DESCUENTO, :IMPORTE_DESCUENTO, :' + + 'BASE_IMPONIBLE, :ID_TIPO_IVA, :IVA, :IMPORTE_IVA,'#10' :RE, :IMP' + + 'ORTE_RE, :RECARGO_EQUIVALENCIA, :IMPORTE_TOTAL, :ID_FORMA_PAGO, ' + + ':ID_TIENDA, :ID_VENDEDOR,'#10' :ID_CONTRATO, :NO_VALORADO, :TIPO' + + '_PRESUPUESTO, :PRECIO_PUNTO)'#10' '#10#10#10#10#10 StatementType = stSQL ColumnMappings = <> end> @@ -1283,6 +1296,11 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente Size = 255 Value = '' end + item + Name = 'PRECIO_PUNTO' + DataType = datCurrency + Value = '' + end item Name = 'OLD_ID' Value = '' @@ -1311,7 +1329,8 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente 'E_TOTAL, '#10' ID_FORMA_PAGO = :ID_FORMA_PAGO,'#10' ID_TIENDA = :I' + 'D_TIENDA,'#10' ID_VENDEDOR = :ID_VENDEDOR,'#10' ID_CONTRATO = :ID_' + 'CONTRATO,'#10' NO_VALORADO = :NO_VALORADO,'#10' TIPO_PRESUPUESTO =' + - ' :TIPO_PRESUPUESTO'#10' WHERE'#10' (ID = :OLD_ID)'#10#10 + ' :TIPO_PRESUPUESTO,'#10' PRECIO_PUNTO = :PRECIO_PUNTO'#10' WHERE'#10' ' + + ' (ID = :OLD_ID)'#10#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm index 5be9d0b..3ec24b0 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorElegirArticulosPresupuestoCliente.dfm @@ -2,13 +2,4 @@ inherited fEditorElegirArticulosPresupuestoCliente: TfEditorElegirArticulosPresu Caption = 'fEditorElegirArticulosPresupuestoCliente' PixelsPerInch = 96 TextHeight = 13 - inherited pnlHeader: TPanel - inherited lblTitle: TLabel - Width = 606 - end - inherited lblComments: TLabel - Width = 581 - Height = 27 - end - end end diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm index 412b9f6..16ac08a 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.dfm @@ -3,19 +3,19 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Top = 147 Caption = 'Nuevo presupuesto de cliente' ClientHeight = 676 - ClientWidth = 848 + ClientWidth = 1003 OnClose = CustomEditorClose - ExplicitWidth = 856 + ExplicitWidth = 1011 ExplicitHeight = 714 PixelsPerInch = 96 TextHeight = 13 inherited JvNavPanelHeader: TJvNavPanelHeader - Width = 848 + Width = 1003 Caption = 'Nuevo presupuesto de cliente' ExplicitTop = 52 - ExplicitWidth = 848 + ExplicitWidth = 1003 inherited Image1: TImage - Left = 821 + Left = 976 Picture.Data = { 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001800 0000180806000000E0773DF80000000970485973000017120000171201679FD2 @@ -127,8 +127,8 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited TBXDock: TTBXDock - Width = 848 - ExplicitWidth = 848 + Width = 1003 + ExplicitWidth = 1003 inherited tbxMain: TTBXToolbar ExplicitWidth = 551 inherited TBXItem2: TTBXItem @@ -156,7 +156,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited tbxMenu: TTBXToolbar - ExplicitWidth = 848 + ExplicitWidth = 1003 object TBXSubmenuItem2: TTBXSubmenuItem [4] Caption = 'A&cciones' object TBXItem34: TTBXItem @@ -167,31 +167,32 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited StatusBar: TJvStatusBar Top = 657 - Width = 848 + Width = 1003 Panels = < item Width = 200 end> ExplicitTop = 657 - ExplicitWidth = 848 + ExplicitWidth = 1003 end inherited pgPaginas: TPageControl - Width = 842 + Width = 997 Height = 314 + ActivePage = pagContenido TabOrder = 1 OnChanging = pgPaginasChanging ExplicitTop = 112 - ExplicitWidth = 842 + ExplicitWidth = 997 ExplicitHeight = 314 inherited pagGeneral: TTabSheet ExplicitLeft = 4 ExplicitTop = 24 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 inline frViewPresupuestoCliente1: TfrViewPresupuestoCliente Left = 0 Top = 0 - Width = 834 + Width = 989 Height = 286 Align = alClient Font.Charset = DEFAULT_CHARSET @@ -202,83 +203,52 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 inherited dxLayoutControl1: TdxLayoutControl - Width = 834 + Width = 989 Height = 286 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 - inherited edtFechaPresupuesto: TcxDBDateEdit - ExplicitWidth = 187 - Width = 187 - end inherited memObservaciones: TcxDBMemo - Left = 399 - ExplicitLeft = 399 - ExplicitWidth = 793 - Width = 793 - end - inherited eReferencia: TcxDBTextEdit - ExplicitWidth = 122 - Width = 122 - end - inherited cbFormaPago: TcxDBLookupComboBox - ExplicitWidth = 122 - Width = 122 + Left = 471 + ExplicitLeft = 471 end inherited bFormasPago: TButton - Left = 237 - ExplicitLeft = 237 + Left = 309 + ExplicitLeft = 309 end inherited edtFechaDecision: TcxDBDateEdit - Left = 281 - ExplicitLeft = 281 - ExplicitWidth = 260 - Width = 260 - end - inherited edtFechaVigencia: TcxDBDateEdit - ExplicitWidth = 260 - Width = 260 - end - inherited cbSituacion: TcxDBImageComboBox - ExplicitWidth = 260 - Width = 260 + Left = 318 + ExplicitLeft = 318 end inherited frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto - Left = 399 - Width = 320 - ExplicitLeft = 399 - ExplicitWidth = 320 + Left = 471 + ExplicitLeft = 471 inherited dxLayoutControl1: TdxLayoutControl - Width = 320 inherited edtlNombre: TcxDBTextEdit ExplicitWidth = 202 Width = 202 end inherited edtNIFCIF: TcxDBTextEdit - Left = 281 - ExplicitLeft = 281 + Left = 364 + ExplicitLeft = 364 end inherited Button3: TBitBtn - Left = 192 - ExplicitLeft = 192 + Left = 275 + ExplicitLeft = 275 end inherited edtPersonaContacto: TcxDBTextEdit ExplicitWidth = 329 Width = 329 end - inherited edtDireccion: TcxMemo - ExplicitWidth = 121 - Width = 121 - end inherited Button4: TButton - Left = 361 - ExplicitLeft = 361 + Left = 444 + ExplicitLeft = 444 end inherited Button5: TButton - Left = 361 - ExplicitLeft = 361 + Left = 444 + ExplicitLeft = 444 end inherited edtTelefonos: TcxTextEdit ExplicitWidth = 193 @@ -286,33 +256,13 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end end - inherited memFormaPago: TcxDBMemo - ExplicitWidth = 475 - ExplicitHeight = 44 - Height = 44 - Width = 475 - end inherited memPlazoEntrega: TcxDBMemo Top = 303 ExplicitTop = 303 - ExplicitWidth = 396 - ExplicitHeight = 100 - Height = 100 - Width = 396 - end - inherited cbVendedor: TcxDBLookupComboBox - ExplicitWidth = 27 - Width = 27 end inherited cbTipoPresupuesto: TcxDBComboBox - Left = 276 - ExplicitLeft = 276 - ExplicitWidth = 186 - Width = 186 - end - inherited edtlReferenciaCliente: TcxDBTextEdit - ExplicitWidth = 204 - Width = 204 + Left = 314 + ExplicitLeft = 314 end end end @@ -323,7 +273,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inline frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente Left = 0 Top = 0 - Width = 834 + Width = 989 Height = 286 Align = alClient BiDiMode = bdLeftToRight @@ -336,16 +286,22 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 inherited ToolBar1: TToolBar - Width = 834 + Width = 989 Height = 24 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 24 - inherited ToolButton14: TToolButton + inherited ToolButton4: TToolButton Wrap = False end + inherited ToolButton14: TToolButton + Left = 334 + Top = 0 + ExplicitLeft = 334 + ExplicitTop = 0 + end inherited FontName: TJvFontComboBox Left = 368 Top = 0 @@ -417,10 +373,10 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited cxGrid: TcxGrid Top = 50 - Width = 834 + Width = 989 Height = 236 ExplicitTop = 50 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 236 inherited cxGridView: TcxGridDBTableView inherited cxGridViewPROPIEDAD: TcxGridDBColumn @@ -430,12 +386,19 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end inherited TBXDock1: TTBXDock Top = 24 - Width = 834 + Width = 989 ExplicitTop = 24 - ExplicitWidth = 834 + ExplicitWidth = 989 inherited TBXToolbar1: TTBXToolbar ExplicitWidth = 753 end + inherited edtPrecioPunto: TcxDBCurrencyEdit + DataBinding.DataSource = dsDataTable + Style.IsFontAssigned = True + end + inherited bRecalcularPrecioPunto: TButton + Action = actRecalcularPrecioPunto + end end inherited cxLookupComboBox1: TcxLookupComboBox Style.IsFontAssigned = True @@ -454,7 +417,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inline frViewIncidenciasCli: TfrViewIncidencias Left = 0 Top = 0 - Width = 834 + Width = 989 Height = 286 Align = alClient Font.Charset = DEFAULT_CHARSET @@ -465,25 +428,25 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 inherited pnlSup: TPanel - Width = 834 - ExplicitWidth = 834 + Width = 989 + ExplicitWidth = 989 inherited eIncidenciaActiva: TcxDBCheckBox ExplicitHeight = 21 end end inherited GroupBox1: TGroupBox - Width = 834 + Width = 989 Height = 258 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 258 inherited eIncidencias: TcxDBMemo - ExplicitWidth = 830 + ExplicitWidth = 985 ExplicitHeight = 241 Height = 241 - Width = 830 + Width = 985 end end end @@ -494,7 +457,7 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente inline frViewDocumentosPresupuestoCliente1: TfrViewDocumentosPresupuestoCliente Left = 0 Top = 0 - Width = 834 + Width = 989 Height = 286 Align = alClient Font.Charset = DEFAULT_CHARSET @@ -505,17 +468,17 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ParentFont = False TabOrder = 0 ReadOnly = False - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 286 inherited TBXDock: TTBXDock - Width = 834 - ExplicitWidth = 834 + Width = 989 + ExplicitWidth = 989 end inherited ListView1: TListView - Width = 834 + Width = 989 Height = 260 ExplicitTop = 26 - ExplicitWidth = 834 + ExplicitWidth = 989 ExplicitHeight = 260 end inherited EditorActionList: TActionList @@ -526,18 +489,18 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente end end inherited PnlComentario: TPanel - Width = 848 + Width = 1003 ExplicitTop = 79 - ExplicitWidth = 848 + ExplicitWidth = 1003 inherited lbComentario: TLabel - Width = 838 + Width = 993 Height = 25 end end inline frViewTotales1: TfrViewTotalesPresupuesto [5] Left = 0 Top = 429 - Width = 848 + Width = 1003 Height = 228 Align = alBottom Font.Charset = DEFAULT_CHARSET @@ -549,43 +512,53 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente TabOrder = 5 ReadOnly = False ExplicitTop = 429 - ExplicitWidth = 848 + ExplicitWidth = 1003 ExplicitHeight = 228 inherited dxLayoutControl1: TdxLayoutControl - Width = 848 + Width = 1003 LookAndFeel = dxLayoutOfficeLookAndFeel1 - ExplicitWidth = 848 + ExplicitWidth = 1003 inherited Bevel3: TBevel - Left = 304 + Left = 379 Top = 57 - ExplicitLeft = 304 + ExplicitLeft = 379 ExplicitTop = 57 end inherited Bevel4: TBevel - Left = 416 + Left = 491 Top = 88 Width = 342 - ExplicitLeft = 416 + ExplicitLeft = 491 ExplicitTop = 88 ExplicitWidth = 342 end + inherited Bevel2: TBevel + Top = 242 + ExplicitTop = 242 + end + inherited Bevel1: TBevel + Left = 398 + Top = 216 + ExplicitLeft = 398 + ExplicitTop = 216 + end inherited ImporteDto: TcxDBCurrencyEdit Top = 84 Style.IsFontAssigned = True ExplicitTop = 84 end inherited ImporteIVA: TcxDBCurrencyEdit - Left = 487 + Left = 562 Top = 108 Style.IsFontAssigned = True - ExplicitLeft = 487 + ExplicitLeft = 562 ExplicitTop = 108 end inherited ImporteTotal: TcxDBCurrencyEdit - Left = 417 + Left = 492 Top = 189 Style.IsFontAssigned = True - ExplicitLeft = 417 + ExplicitLeft = 492 ExplicitTop = 189 end inherited edtDescuento: TcxDBSpinEdit @@ -594,45 +567,45 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitTop = 84 end inherited edtIVA: TcxDBSpinEdit - Left = 416 + Left = 491 Top = 108 Style.IsFontAssigned = True - ExplicitLeft = 416 + ExplicitLeft = 491 ExplicitTop = 108 end inherited ImporteBase: TcxDBCurrencyEdit - Left = 416 + Left = 491 Top = 57 Style.IsFontAssigned = True - ExplicitLeft = 416 + ExplicitLeft = 491 ExplicitTop = 57 end inherited edtRE: TcxDBSpinEdit - Left = 416 + Left = 491 Top = 162 Style.IsFontAssigned = True - ExplicitLeft = 416 + ExplicitLeft = 491 ExplicitTop = 162 end inherited edtIRPF: TcxDBSpinEdit - Left = 416 + Left = 491 Top = 135 Style.IsFontAssigned = True - ExplicitLeft = 416 + ExplicitLeft = 491 ExplicitTop = 135 end inherited ImporteRE: TcxDBCurrencyEdit - Left = 487 + Left = 562 Top = 162 Style.IsFontAssigned = True - ExplicitLeft = 487 + ExplicitLeft = 562 ExplicitTop = 162 end inherited ImporteIRPF: TcxDBCurrencyEdit - Left = 487 + Left = 562 Top = 135 Style.IsFontAssigned = True - ExplicitLeft = 487 + ExplicitLeft = 562 ExplicitTop = 135 end inherited eImporteNeto: TcxDBCurrencyEdit @@ -640,15 +613,6 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente Style.IsFontAssigned = True ExplicitTop = 57 end - inherited ePorte: TcxDBCurrencyEdit - Top = 111 - Style.IsFontAssigned = True - ExplicitTop = 111 - end - inherited eIVA: TcxDBLookupComboBox - Top = 138 - ExplicitTop = 138 - end inherited cbValorado: TcxDBCheckBox Left = 11 Top = 11 @@ -658,17 +622,48 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente ExplicitWidth = 455 Width = 455 end + inherited ePorte: TcxDBCurrencyEdit + Top = 111 + Style.IsFontAssigned = True + ExplicitTop = 111 + end + inherited eIVA: TcxDBLookupComboBox + Top = 138 + ExplicitTop = 138 + end inherited bTiposIVA: TButton - Left = 156 + Left = 231 Top = 138 OnClick = frViewTotales1bTiposIVAClick - ExplicitLeft = 156 + ExplicitLeft = 231 ExplicitTop = 138 end inherited cbRecargoEquivalencia: TcxDBCheckBox Top = 165 ExplicitTop = 165 end + inherited edtRetencion: TcxDBSpinEdit + Left = 491 + Top = 231 + Style.IsFontAssigned = True + ExplicitLeft = 491 + ExplicitTop = 231 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 562 + Top = 231 + Style.IsFontAssigned = True + ExplicitLeft = 562 + ExplicitTop = 231 + end + inherited edtFechaRetencion: TcxDBDateEdit + Top = 257 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + ExplicitTop = 257 + end inherited dxLayoutControl1Group_Root: TdxLayoutGroup inherited cxValorado: TdxLayoutItem Enabled = False @@ -2044,6 +2039,11 @@ inherited fEditorPresupuestoCliente: TfEditorPresupuestoCliente OnExecute = actEnviarPorEMailExecute OnUpdate = actEnviarPorEMailUpdate end + object actRecalcularPrecioPunto: TAction + Category = 'Acciones' + Caption = 'Recalcular precio punto' + OnExecute = actRecalcularPrecioPuntoExecute + end end inherited dsDataTable: TDADataSource [10] Left = 40 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas index b121188..42d20af 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uEditorPresupuestoCliente.pas @@ -20,7 +20,7 @@ uses uViewDocumentos, uViewDocumentosPresupuestoCliente, uViewDatosYSeleccionClientePresupuesto, cxLabel, uBizTiposIVA, uTiposIVAController, uViewTotalesPresupuesto, DBCtrls, - cxGraphics, cxMaskEdit, cxDropDownEdit; + cxGraphics, cxMaskEdit, cxDropDownEdit, cxCurrencyEdit; type TfEditorPresupuestoCliente = class(TfEditorDBItem, IEditorPresupuestoCliente) @@ -40,6 +40,7 @@ type frViewDetallesPresupuestoCliente1: TfrViewDetallesPresupuestoCliente; frViewTotales1: TfrViewTotalesPresupuesto; frViewPresupuestoCliente1: TfrViewPresupuestoCliente; + actRecalcularPrecioPunto: TAction; procedure FormShow(Sender: TObject); procedure CustomEditorClose(Sender: TObject; var Action: TCloseAction); @@ -53,10 +54,16 @@ type procedure frViewTotales1eIVAPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure OnRecargoEquivalenciaPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; - var Error: Boolean); //Importante en este punto se deben de quitar los eventos que puedan afectar a la tabla una vez se cierre el editor. + var Error: Boolean); + procedure actRecalcularPrecioPuntoExecute(Sender: TObject); + procedure OnPrecioPuntoPropertiesEditValueChanged(Sender: TObject); + procedure onPrecioPuntoPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); private procedure RecalcularPortePorUnidad; + procedure frViewDetallesPresupuestoCliente1edtPrecioPuntoPropertiesEditValueChanged( + Sender: TObject); protected FPresupuesto: IBizPresupuestoCliente; @@ -103,7 +110,7 @@ type implementation uses - uDialogOpcionesImpresionPresupuestosCliente, uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, + Dialogs, uDialogOpcionesImpresionPresupuestosCliente, uViewDatosYSeleccionCliente, uDataModuleUsuarios, uClientesController, uBizDireccionesContacto, uDialogUtils, uFactuGES_App, uDataTableUtils; {$R *.dfm} @@ -132,6 +139,21 @@ begin (Sender as TAction).Enabled := HayDatos; end; +procedure TfEditorPresupuestoCliente.actRecalcularPrecioPuntoExecute(Sender: TObject); +begin + inherited; + //Esta lógica se llamará en el editor porque es para facilitar el rellenado de información del documento + //no puede ir en la clase de negocio porque no es una lógica que tenga sentido fuera del editor. + if (Presupuesto.Detalles.Datatable.State <> dsInactive) + and (not Presupuesto.Detalles.DataTable.IsEmpty) + and Assigned(Controller) + and Assigned(Controller.DetallesController) then + begin + Controller.DetallesController.PrecioPunto := FPresupuesto.PRECIO_PUNTO; + Controller.DetallesController.RecalcularPrecioPuntoDetalles(FPresupuesto.PRECIO_PUNTO, FPresupuesto.Detalles) + end; +end; + constructor TfEditorPresupuestoCliente.Create(AOwner: TComponent); begin inherited; @@ -144,6 +166,10 @@ procedure TfEditorPresupuestoCliente.CustomEditorClose(Sender: TObject; var Action: TCloseAction); begin inherited; + frViewTotales1.cbRecargoEquivalencia.Properties.OnValidate := Nil; + frViewDetallesPresupuestoCliente1.edtPrecioPunto.Properties.OnValidate := Nil; + frViewDetallesPresupuestoCliente1.edtPrecioPunto.Properties.OnEditValueChanged := Nil; + //GESTION_DOCUMENTOS //Este método eliminará el directorio temporal si se ha creado frViewDocumentosPresupuestoCliente1.actEliminarTodo.Execute; @@ -181,10 +207,29 @@ begin frViewTotales1.cbRecargoEquivalencia.Properties.OnValidate := OnRecargoEquivalenciaPropertiesValidate; + frViewDetallesPresupuestoCliente1.edtPrecioPunto.Properties.OnValidate := onPrecioPuntoPropertiesValidate; + frViewDetallesPresupuestoCliente1.edtPrecioPunto.Properties.OnEditValueChanged := OnPrecioPuntoPropertiesEditValueChanged; + pgPaginas.ActivePage := pagGeneral; Presupuesto.DataTable.Active := True; end; +procedure TfEditorPresupuestoCliente.frViewDetallesPresupuestoCliente1edtPrecioPuntoPropertiesEditValueChanged( + Sender: TObject); +begin + inherited; + +end; + +procedure TfEditorPresupuestoCliente.onPrecioPuntoPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; + var Error: Boolean); +begin + inherited; + + if (ShowConfirmMessage('Va ha cambiar el precio punto, esto ocasionará el recalculo de todos los artículos del presupuesto que estén en el catálogo, los conceptos libres no se verán afectados', '¿Desea actualizar los importes de todos los articulos del presupuesto, que estén en el catálogo?') = IDNO) then + DisplayValue := frViewDetallesPresupuestoCliente1.edtPrecioPunto.Value; +end; + procedure TfEditorPresupuestoCliente.frViewTotales1bTiposIVAClick( Sender: TObject); begin @@ -315,6 +360,12 @@ begin end; end; +procedure TfEditorPresupuestoCliente.OnPrecioPuntoPropertiesEditValueChanged(Sender: TObject); +begin + + actRecalcularPrecioPunto.Execute; +end; + procedure TfEditorPresupuestoCliente.OnRecargoEquivalenciaPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); @@ -437,6 +488,7 @@ begin ViewPresupuesto.ViewClientePresupuesto.OnClienteChanged := NIL; try FViewPresupuesto.Presupuesto := FPresupuesto; + Controller.DetallesController.PrecioPunto := FPresupuesto.PRECIO_PUNTO; frViewDetallesPresupuestoCliente1.Detalles := FPresupuesto.Detalles; frViewDetallesPresupuestoCliente1.Presupuesto := FPresupuesto; //Para poder sacar los descuento del articulos segun el cliente seleccionado diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm index 1a41402..d878e4d 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.dfm @@ -1,61 +1,89 @@ inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente + Width = 1056 + Height = 588 inherited ToolBar1: TToolBar + Width = 1056 + Height = 24 inherited ToolButton4: TToolButton Wrap = False end inherited ToolButton14: TToolButton Left = 334 Top = 0 - Wrap = True ExplicitLeft = 334 ExplicitTop = 0 end inherited FontName: TJvFontComboBox - Left = 0 - ExplicitLeft = 0 + Left = 368 + Top = 0 + ExplicitLeft = 368 + ExplicitTop = 0 end inherited FontSize: TEdit - Left = 145 - ExplicitLeft = 145 + Left = 513 + Top = 0 + ExplicitLeft = 513 + ExplicitTop = 0 end inherited UpDown1: TUpDown - Left = 187 - ExplicitLeft = 187 + Left = 555 + Top = 0 + ExplicitLeft = 555 + ExplicitTop = 0 end inherited ToolButton13: TToolButton - Left = 204 - ExplicitLeft = 204 + Left = 572 + Top = 0 + ExplicitLeft = 572 + ExplicitTop = 0 end inherited ToolButton6: TToolButton - Left = 212 - ExplicitLeft = 212 + Left = 580 + Top = 0 + ExplicitLeft = 580 + ExplicitTop = 0 end inherited ToolButton7: TToolButton - Left = 246 - ExplicitLeft = 246 + Left = 614 + Top = 0 + ExplicitLeft = 614 + ExplicitTop = 0 end inherited ToolButton8: TToolButton - Left = 280 - ExplicitLeft = 280 + Left = 648 + Top = 0 + ExplicitLeft = 648 + ExplicitTop = 0 end inherited ToolButton12: TToolButton - Left = 314 - ExplicitLeft = 314 + Left = 682 + Top = 0 + ExplicitLeft = 682 + ExplicitTop = 0 end inherited ToolButton9: TToolButton - Left = 322 - ExplicitLeft = 322 + Left = 690 + Top = 0 + ExplicitLeft = 690 + ExplicitTop = 0 end inherited ToolButton10: TToolButton - Left = 356 - ExplicitLeft = 356 + Left = 724 + Top = 0 + ExplicitLeft = 724 + ExplicitTop = 0 end inherited ToolButton11: TToolButton - Left = 390 - ExplicitLeft = 390 + Left = 758 + Top = 0 + ExplicitLeft = 758 + ExplicitTop = 0 end end inherited cxGrid: TcxGrid + Top = 50 + Width = 1056 + Height = 538 inherited cxGridView: TcxGridDBTableView inherited cxGridViewID: TcxGridDBColumn VisibleForCustomization = False @@ -125,8 +153,11 @@ inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente end end inherited TBXDock1: TTBXDock + Top = 24 + Width = 1056 inherited TBXToolbar1: TTBXToolbar DockPos = 0 + ExplicitWidth = 753 object TBXSubmenuItem1: TTBXSubmenuItem [0] Caption = 'A'#241'adir cap'#237'tulo' DisplayMode = nbdmImageAndText @@ -171,6 +202,41 @@ inherited frViewDetallesPresupuestoCliente: TfrViewDetallesPresupuestoCliente Action = actAsignarDescuento end end + object edtPrecioPunto: TcxDBCurrencyEdit + Left = 755 + Top = 5 + AutoSize = False + DataBinding.DataField = 'PRECIO_PUNTO' + ParentFont = False + Properties.Alignment.Horz = taRightJustify + Properties.UseLeftAlignmentOnEditing = False + Properties.UseThousandSeparator = True + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.Font.Charset = DEFAULT_CHARSET + Style.Font.Color = clWindowText + Style.Font.Height = -11 + Style.Font.Name = 'Tahoma' + Style.Font.Style = [fsBold] + Style.HotTrack = False + Style.LookAndFeel.NativeStyle = True + Style.TextColor = clWindowText + Style.IsFontAssigned = True + StyleDisabled.LookAndFeel.NativeStyle = True + StyleDisabled.TextColor = clWindowText + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 1 + Height = 21 + Width = 80 + end + object bRecalcularPrecioPunto: TButton + Left = 837 + Top = 5 + Width = 130 + Height = 21 + TabOrder = 2 + end end object cxLookupComboBox1: TcxLookupComboBox [3] Left = 78 diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas index 6b66329..e62357c 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas @@ -15,7 +15,7 @@ uses Mask, DBCtrls, cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, cxDBLookupComboBox, cxCalc, cxEditRepositoryItems, cxContainer, cxLookupEdit, cxDBLookupEdit, uBizDetallesPresupuestoCliente, - cxMemo; + cxMemo, cxDBEdit; type IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos) @@ -56,6 +56,8 @@ type TBXSeparatorItem11: TTBXSeparatorItem; TBXItem21: TTBXItem; cxLookupComboBox2: TcxLookupComboBox; + edtPrecioPunto: TcxDBCurrencyEdit; + bRecalcularPrecioPunto: TButton; procedure actAsignarDescuentoExecute(Sender: TObject); procedure actAsignarDescuentoUpdate(Sender: TObject); procedure CustomViewShow(Sender: TObject); diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm index 884d58c..c7bbe5b 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.dfm @@ -1,18 +1,41 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto - Height = 247 - ExplicitHeight = 247 + Width = 861 + Height = 446 + ExplicitWidth = 861 + ExplicitHeight = 446 inherited dxLayoutControl1: TdxLayoutControl + Width = 861 ExplicitWidth = 451 inherited Bevel3: TBevel + Left = 405 Top = 55 + Height = 122 + ExplicitLeft = 405 ExplicitTop = 55 + ExplicitHeight = 122 end inherited Bevel4: TBevel + Left = 517 Top = 86 Width = 210 + ExplicitLeft = 517 ExplicitTop = 86 ExplicitWidth = 210 end + inherited Bevel2: TBevel + Top = 214 + Width = 333 + ExplicitTop = 214 + ExplicitWidth = 333 + end + inherited Bevel1: TBevel + Left = 424 + Top = 214 + Width = 332 + ExplicitLeft = 424 + ExplicitTop = 214 + ExplicitWidth = 332 + end inherited ImporteDto: TcxDBCurrencyEdit Top = 82 Style.IsFontAssigned = True @@ -22,17 +45,21 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto Width = 93 end inherited ImporteIVA: TcxDBCurrencyEdit + Left = 588 Top = 106 Style.IsFontAssigned = True - TabOrder = 10 + TabOrder = 11 + ExplicitLeft = 588 ExplicitTop = 106 ExplicitWidth = 137 Width = 137 end inherited ImporteTotal: TcxDBCurrencyEdit + Left = 518 Top = 187 Style.IsFontAssigned = True - TabOrder = 15 + TabOrder = 16 + ExplicitLeft = 518 ExplicitTop = 187 ExplicitWidth = 137 Width = 137 @@ -44,40 +71,56 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto ExplicitTop = 82 end inherited edtIVA: TcxDBSpinEdit + Left = 517 Top = 106 Style.IsFontAssigned = True - TabOrder = 9 + TabOrder = 10 + ExplicitLeft = 517 ExplicitTop = 106 end inherited ImporteBase: TcxDBCurrencyEdit + Left = 517 Top = 55 Style.IsFontAssigned = True - TabOrder = 8 + TabOrder = 9 + ExplicitLeft = 517 ExplicitTop = 55 ExplicitWidth = 92 Width = 92 end inherited edtRE: TcxDBSpinEdit - Top = 160 - Style.IsFontAssigned = True - TabOrder = 13 - ExplicitTop = 160 - end - inherited edtIRPF: TcxDBSpinEdit - Style.IsFontAssigned = True - TabOrder = 11 - end - inherited ImporteRE: TcxDBCurrencyEdit + Left = 517 Top = 160 Style.IsFontAssigned = True TabOrder = 14 + ExplicitLeft = 517 + ExplicitTop = 160 + end + inherited edtIRPF: TcxDBSpinEdit + Left = 517 + Top = 133 + Style.IsFontAssigned = True + TabOrder = 12 + ExplicitLeft = 517 + ExplicitTop = 133 + end + inherited ImporteRE: TcxDBCurrencyEdit + Left = 588 + Top = 160 + Style.IsFontAssigned = True + TabOrder = 15 + ExplicitLeft = 588 ExplicitTop = 160 ExplicitWidth = 56 Width = 56 end inherited ImporteIRPF: TcxDBCurrencyEdit + Left = 588 + Top = 133 Style.IsFontAssigned = True - TabOrder = 12 + TabOrder = 13 + ExplicitLeft = 588 + ExplicitTop = 133 ExplicitWidth = 56 Width = 56 end @@ -89,21 +132,6 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto ExplicitWidth = 147 Width = 147 end - inherited ePorte: TcxDBCurrencyEdit - Top = 109 - Style.IsFontAssigned = True - TabOrder = 4 - ExplicitTop = 109 - ExplicitWidth = 147 - Width = 147 - end - inherited eIVA: TcxDBLookupComboBox - Top = 136 - TabOrder = 5 - ExplicitTop = 136 - ExplicitWidth = 81 - Width = 81 - end object cbValorado: TcxDBCheckBox [15] Left = 10 Top = 10 @@ -130,9 +158,26 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto TabOrder = 0 Width = 207 end + inherited ePorte: TcxDBCurrencyEdit + Top = 109 + Style.IsFontAssigned = True + TabOrder = 4 + ExplicitTop = 109 + ExplicitWidth = 147 + Width = 147 + end + inherited eIVA: TcxDBLookupComboBox + Top = 136 + TabOrder = 5 + ExplicitTop = 136 + ExplicitWidth = 81 + Width = 81 + end inherited bTiposIVA: TButton + Left = 257 Top = 136 TabOrder = 6 + ExplicitLeft = 257 ExplicitTop = 136 end inherited cbRecargoEquivalencia: TcxDBCheckBox @@ -142,6 +187,35 @@ inherited frViewTotalesPresupuesto: TfrViewTotalesPresupuesto ExplicitWidth = 219 Width = 219 end + inherited edtRetencion: TcxDBSpinEdit + Left = 517 + Top = 229 + Style.IsFontAssigned = True + TabOrder = 17 + ExplicitLeft = 517 + ExplicitTop = 229 + end + inherited edtImporteRetencion: TcxDBCurrencyEdit + Left = 588 + Top = 229 + Style.IsFontAssigned = True + TabOrder = 18 + ExplicitLeft = 588 + ExplicitTop = 229 + ExplicitWidth = 342 + Width = 342 + end + inherited edtFechaRetencion: TcxDBDateEdit + Top = 229 + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' + TabOrder = 8 + ExplicitTop = 229 + ExplicitWidth = 333 + Width = 333 + end inherited dxLayoutControl1Group_Root: TdxLayoutGroup object cxValorado: TdxLayoutItem [0] ShowCaption = False diff --git a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas index 4f876fa..f411927 100644 --- a/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas +++ b/Source/Modulos/Presupuestos de cliente/Views/uViewTotalesPresupuesto.pas @@ -7,7 +7,8 @@ uses Dialogs, uViewTotales, cxGraphics, dxLayoutLookAndFeels, DB, uDAInterfaces, uDADataTable, dxLayoutControl, cxCheckBox, cxDBEdit, StdCtrls, cxDropDownEdit, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, cxMaskEdit, cxSpinEdit, - cxContainer, cxEdit, cxTextEdit, cxCurrencyEdit, ExtCtrls, cxControls; + cxContainer, cxEdit, cxTextEdit, cxCurrencyEdit, ExtCtrls, cxControls, + cxCalendar; type TfrViewTotalesPresupuesto = class(TfrViewTotales) diff --git a/Source/Servidor/FactuGES_Server.dpr b/Source/Servidor/FactuGES_Server.dpr index b495235..566b48c 100644 --- a/Source/Servidor/FactuGES_Server.dpr +++ b/Source/Servidor/FactuGES_Server.dpr @@ -135,15 +135,15 @@ uses uNumUtils in '..\Base\Utiles\uNumUtils.pas', schContactosClient_Intf in '..\Modulos\Contactos\Model\schContactosClient_Intf.pas', schContactosServer_Intf in '..\Modulos\Contactos\Model\schContactosServer_Intf.pas', - schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', - schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', - schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', - schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas', schFacturasClienteClient_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteClient_Intf.pas', schFacturasClienteServer_Intf in '..\Modulos\Facturas de cliente\Model\schFacturasClienteServer_Intf.pas', schRecibosClienteClient_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteClient_Intf.pas', schRecibosClienteServer_Intf in '..\Modulos\Recibos de cliente\Model\schRecibosClienteServer_Intf.pas', - uBizReferenciasServer in '..\Modulos\Referencias\Model\uBizReferenciasServer.pas'; + uBizReferenciasServer in '..\Modulos\Referencias\Model\uBizReferenciasServer.pas', + schPresupuestosClienteClient_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteClient_Intf.pas', + schPresupuestosClienteServer_Intf in '..\Modulos\Presupuestos de cliente\Model\schPresupuestosClienteServer_Intf.pas', + schContratosClienteClient_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteClient_Intf.pas', + schContratosClienteServer_Intf in '..\Modulos\Contratos de cliente\Model\schContratosClienteServer_Intf.pas'; {$R *.res} {$R ..\Servicios\RODLFile.res} diff --git a/Source/Servidor/FactuGES_Server.dproj b/Source/Servidor/FactuGES_Server.dproj index abd02d4..9e155e8 100644 --- a/Source/Servidor/FactuGES_Server.dproj +++ b/Source/Servidor/FactuGES_Server.dproj @@ -28,10 +28,7 @@ Delphi.Personality -FalseTrueFalseTrueFalse2710FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.7.1.0FactuGES (Servidor)2.7.1.0jueves, 23 de marzo de 2017 13:09 - - - +FalseTrueFalseTrueFalse2720FalseFalseFalseFalseFalse30821252Rodax Software S.L.2.7.2.0FactuGES (Servidor)2.7.2.0lunes, 26 de marzo de 2018 17:23 File C:\Documents and Settings\All Users\Documentos\RAD Studio\5.0\Bpl\dxPScxScheduler2LnkD11.bpl not found FactuGES_Server.dpr diff --git a/Source/Servidor/FactuGES_Server.res b/Source/Servidor/FactuGES_Server.res index ac3fa94..d7ccfc7 100644 Binary files a/Source/Servidor/FactuGES_Server.res and b/Source/Servidor/FactuGES_Server.res differ