diff --git a/Build/Build.fbpInf b/Build/Build.fbpInf index 2a3bdc4a..36e7b215 100644 --- a/Build/Build.fbpInf +++ b/Build/Build.fbpInf @@ -14,8 +14,8 @@ - 00:00:00 - 30/12/1899 + 00:03:10 + 11/04/2012 12:05:34 True diff --git a/Build/Build.fbz6 b/Build/Build.fbz6 index 07fa0948..56f97843 100644 Binary files a/Build/Build.fbz6 and b/Build/Build.fbz6 differ diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 59cee29a..f9813da8 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -570,6 +570,7 @@ CREATE TABLE ARTICULOS ( DESCUENTO TIPO_PORCENTAJE, PRECIO_NETO TIPO_IMPORTE, PRECIO_PORTE TIPO_IMPORTE, + PRECIO_PVP TIPO_IMPORTE, FECHA_ALTA TIMESTAMP, FECHA_MODIFICACION TIMESTAMP, USUARIO TIPO_USUARIO, @@ -1824,6 +1825,7 @@ CREATE VIEW V_ARTICULOS( PRECIO_PORTE, DESCUENTO, PRECIO_NETO, + PRECIO_PVP, INVENTARIABLE, ID_PROVEEDOR, NOMBRE_PROVEEDOR, @@ -1837,6 +1839,7 @@ SELECT ARTICULOS.ID, ARTICULOS.ID_EMPRESA, ARTICULOS.REFERENCIA, ARTICULOS.DESCR ARTICULOS.PRECIO_PORTE, ARTICULOS.DESCUENTO, ARTICULOS.PRECIO_NETO, + ARTICULOS.PRECIO_PVP, ARTICULOS.INVENTARIABLE, ARTICULOS.ID_PROVEEDOR, CONTACTOS.NOMBRE AS NOMBRE_PROVEEDOR, diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj index 426db58c..ec64903e 100644 --- a/Source/Base/Base.dproj +++ b/Source/Base/Base.dproj @@ -58,55 +58,55 @@ MainSource + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
fConfigurarConexion
TForm diff --git a/Source/Base/Base.res b/Source/Base/Base.res index 8b251f31..1641339f 100644 Binary files a/Source/Base/Base.res and b/Source/Base/Base.res differ diff --git a/Source/FactuGES.inc b/Source/FactuGES.inc index 72603a0d..bf434910 100644 --- a/Source/FactuGES.inc +++ b/Source/FactuGES.inc @@ -1,4 +1,4 @@ {$DEFINE MULTIEMPRESA} -{DEFINE ALMACEN} +{$DEFINE ALMACEN} {DEFINE PEDIDOSPROVEEDOR} {$DEFINE CONTABILIDAD} \ No newline at end of file diff --git a/Source/GUIBase/GUIBase.dproj b/Source/GUIBase/GUIBase.dproj index f44e3be7..e1b15b8e 100644 --- a/Source/GUIBase/GUIBase.dproj +++ b/Source/GUIBase/GUIBase.dproj @@ -58,34 +58,34 @@ MainSource - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + +
fDialogBase
diff --git a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj index 2451b83c..6480e68e 100644 --- a/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj +++ b/Source/Modulos/Albaranes de cliente/AlbaranesCliente_Group.groupproj @@ -12,6 +12,7 @@ + @@ -141,14 +142,23 @@ + + + + + + + + + - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas index f9dc9107..1d17cd80 100644 --- a/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas +++ b/Source/Modulos/Albaranes de cliente/Controller/uDetallesAlbaranClienteController.pas @@ -149,8 +149,9 @@ end; procedure TDetallesAlbaranClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); begin +//Para acana el importa a cargar en la lista será siempre el precio PVP if Assigned(AArticulos) then - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP else ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; end; diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm index 82ceb37b..3109609c 100644 --- a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm +++ b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.dfm @@ -1,26 +1,28 @@ inherited frViewElegirArticulosAlbaranesCliente: TfrViewElegirArticulosAlbaranesCliente - inherited cxGrid: TcxGrid - inherited cxGridView: TcxGridDBTableView - inherited cxGridViewPRECIO_NETO: TcxGridDBColumn - Visible = False - end - inherited cxGridViewPRECIO_PORTE: TcxGridDBColumn - Visible = False - end - end - end inherited frViewFiltroBase1: TfrViewFiltroBase - inherited TBXDockablePanel1: TTBXDockablePanel + inherited TBXDockablePanel1: TTBXDockablePanel inherited dxLayoutControl1: TdxLayoutControl inherited txtFiltroTodo: TcxTextEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 273 Width = 273 end inherited edtFechaIniFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 121 Width = 121 end inherited edtFechaFinFiltro: TcxDateEdit + Style.LookAndFeel.SkinName = '' + StyleDisabled.LookAndFeel.SkinName = '' + StyleFocused.LookAndFeel.SkinName = '' + StyleHot.LookAndFeel.SkinName = '' ExplicitWidth = 121 Width = 121 end diff --git a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas index 8bbb1964..e9bb88cc 100644 Binary files a/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas and b/Source/Modulos/Albaranes de cliente/Views/uViewElegirArticulosAlbaranesCliente.pas differ diff --git a/Source/Modulos/Articulos/Articulos_Group.groupproj b/Source/Modulos/Articulos/Articulos_Group.groupproj index 3f402ca4..ae024535 100644 --- a/Source/Modulos/Articulos/Articulos_Group.groupproj +++ b/Source/Modulos/Articulos/Articulos_Group.groupproj @@ -9,6 +9,7 @@ + @@ -48,6 +49,15 @@ + + + + + + + + + @@ -112,13 +122,13 @@ - + - + - + \ No newline at end of file diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas index 6be3eb06..c4b0d127 100644 --- a/Source/Modulos/Articulos/Controller/uArticulosController.pas +++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas @@ -4,7 +4,7 @@ interface uses - Classes, SysUtils, uDADataTable, uControllerBase, uEditorDBItem, + Classes, uDADataTable, uControllerBase, uEditorDBItem, uIDataModuleArticulos, uBizArticulos, uProveedoresController, uBizContactos; @@ -41,6 +41,10 @@ type function GetProveedoresController: IProveedoresController; property ProveedoresController: IProveedoresController read GetProveedoresController; + + procedure QuitarImagen(AArticulo : IBizArticulo); + procedure PonerImagen(AArticulo : IBizArticulo; const AFileName: String); + function SalvarImagen(AArticulo : IBizArticulo): Boolean; end; TArticulosController = class(TControllerBase, IArticulosController) @@ -67,7 +71,7 @@ type function Eliminar(const ID : Integer): Boolean; overload; function Eliminar(AArticulo : IBizArticulo): Boolean; overload; - function Guardar(AArticulo : IBizArticulo): Boolean; + function Guardar(AArticulo : IBizArticulo): Boolean; procedure DescartarCambios(AArticulo : IBizArticulo); virtual; function Existe(const ID: Integer) : Boolean; virtual; procedure Anadir(AArticulo : IBizArticulo); virtual; @@ -92,15 +96,19 @@ type procedure ElegirProveedor(AArticulo : IBizArticulo); procedure AnadirProveedor(AArticulo : IBizArticulo); procedure VerProveedor(AArticulo : IBizArticulo); + + procedure QuitarImagen(AArticulo : IBizArticulo); + procedure PonerImagen(AArticulo : IBizArticulo; const AFileName: String); + function SalvarImagen(AArticulo : IBizArticulo): Boolean; end; implementation uses - cxControls, DB, uEditorRegistryUtils, schArticulosClient_Intf, uFactuGES_App, - uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos, + SysUtils, cxControls, uDataTableUtils, DB, uEditorRegistryUtils, schArticulosClient_Intf, uFactuGES_App, + uIEditorArticulos, uIEditorArticulo, uIEditorElegirArticulos, uSistemaFunc, uDataModuleArticulos, uDataModuleUsuarios, uDAInterfaces, - uDataTableUtils, uDateUtils, uROTypes, DateUtils, Controls, Windows; + uDateUtils, uROTypes, DateUtils, Controls, Windows; { TArticulosController } @@ -537,6 +545,21 @@ begin // end; +function TArticulosController.SalvarImagen(AArticulo: IBizArticulo): Boolean; +var + aAux : String; +begin + if not AArticulo.HayImagen then + Result := FDataModule.EliminarImagen(AArticulo.ID) + else + begin + aAux := DarFicheroJPGTemporal; + AArticulo.DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(aAux); + if FDataModule.AnadirImagen(AArticulo.ID, aAux) then + SysUtils.DeleteFile(aAux); + end; +end; + function TArticulosController.Existe(const ID: Integer): Boolean; var AArticulo : IBizArticulo; @@ -594,7 +617,7 @@ begin ShowHourglassCursor; try AArticulo.DataTable.ApplyUpdates; - + SalvarImagen(AArticulo); Result := True; finally HideHourglassCursor; @@ -613,6 +636,19 @@ begin Result := AArticulo; end; +procedure TArticulosController.PonerImagen(AArticulo: IBizArticulo; const AFileName: String); +begin + if FileExists(AFileName) then + begin + DesconectarTabla(AArticulo.DataTable); + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.DataTable.FieldByName(fld_ArticulosIMAGEN).LoadFromFile(AFileName); + AArticulo.Post; + ConectarTabla(AArticulo.DataTable); + end; +end; + procedure TArticulosController.Preview(AArticulo: IBizArticulo); //var // AReportController : IArticulosReportController; @@ -639,4 +675,14 @@ begin } end; +procedure TArticulosController.QuitarImagen(AArticulo : IBizArticulo); +begin + DesconectarTabla(AArticulo.DataTable); + if not AArticulo.DataTable.Editing then + AArticulo.Edit; + AArticulo.IMAGENIsNull := True; + AArticulo.Post; + ConectarTabla(AArticulo.DataTable); +end; + end. diff --git a/Source/Modulos/Articulos/Data/Articulos_data.dproj b/Source/Modulos/Articulos/Data/Articulos_data.dproj index 126ef528..6f5c6a79 100644 --- a/Source/Modulos/Articulos/Data/Articulos_data.dproj +++ b/Source/Modulos/Articulos/Data/Articulos_data.dproj @@ -54,7 +54,7 @@ MainSource - +
DataModuleArticulos
diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm index edf41a27..f94095a1 100644 --- a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm @@ -14,12 +14,12 @@ inherited DataModuleArticulos: TDataModuleArticulos Top = 84 end object rda_Articulos: TDARemoteDataAdapter + DataStreamer = Bin2DataStreamer GetSchemaCall.RemoteService = RORemoteService GetDataCall.RemoteService = RORemoteService UpdateDataCall.RemoteService = RORemoteService GetScriptsCall.RemoteService = RORemoteService RemoteService = RORemoteService - DataStreamer = Bin2DataStreamer Left = 51 Top = 151 end @@ -64,8 +64,8 @@ inherited DataModuleArticulos: TDataModuleArticulos item Name = 'IMAGEN' DataType = datBlob + BlobType = dabtGraphic DisplayLabel = 'Foto' - DictionaryEntry = 'Articulos_IMAGEN' end item Name = 'COMISIONABLE' @@ -119,6 +119,10 @@ inherited DataModuleArticulos: TDataModuleArticulos DataType = datCurrency DictionaryEntry = 'Articulos_PRECIO_NETO' end + item + Name = 'PRECIO_PVP' + DataType = datCurrency + end item Name = 'INVENTARIABLE' DataType = datSmallInt @@ -143,8 +147,6 @@ inherited DataModuleArticulos: TDataModuleArticulos Params = <> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Articulos - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'Articulos' IndexDefs = <> Left = 232 @@ -225,6 +227,10 @@ inherited DataModuleArticulos: TDataModuleArticulos Name = 'PRECIO_NETO' DataType = datCurrency end + item + Name = 'PRECIO_PVP' + DataType = datCurrency + end item Name = 'INVENTARIABLE' DataType = datSmallInt @@ -251,8 +257,6 @@ inherited DataModuleArticulos: TDataModuleArticulos end> StreamingOptions = [soDisableEventsWhileStreaming] RemoteDataAdapter = rda_Articulos - DetailOptions = [dtCascadeOpenClose, dtCascadeApplyUpdates, dtAutoFetch, dtCascadeDelete, dtCascadeUpdate, dtDisableLogOfCascadeDeletes, dtDisableLogOfCascadeUpdates, dtIncludeInAllInOneFetch] - MasterOptions = [moCascadeOpenClose, moCascadeApplyUpdates, moCascadeDelete, moCascadeUpdate, moDisableLogOfCascadeDeletes, moDisableLogOfCascadeUpdates] LogicalName = 'ArticulosParaCliente' IndexDefs = <> Left = 400 diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas index b7ac930d..1c10c47e 100644 --- a/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas +++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.pas @@ -29,6 +29,8 @@ type function GetItems (IDCliente: Integer) : IBizArticulo; overload; function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo; function NewItem : IBizArticulo; + function EliminarImagen(const ID: Integer): Boolean; + function AnadirImagen(const ID: Integer; const AFileName: String): Boolean; end; implementation @@ -41,6 +43,11 @@ uses { TdmArticulos } +function TDataModuleArticulos.AnadirImagen(const ID: Integer; const AFileName: String): Boolean; +begin + Result := (RORemoteService as IsrvArticulos).AnadirImagen(ID, AFileName); +end; + procedure TDataModuleArticulos.AsignarClaseNegocio(AArticulo: TDADataTable); begin AArticulo.BusinessRulesID := BIZ_CLIENT_ARTICULO; @@ -52,6 +59,11 @@ begin RORemoteService.Message := dmConexion.Message; end; +function TDataModuleArticulos.EliminarImagen(const ID: Integer): Boolean; +begin + Result := (RORemoteService as IsrvArticulos).EliminarImagen(ID); +end; + function TDataModuleArticulos.NewItem: IBizArticulo; begin Result := GetItem(ID_NULO) diff --git a/Source/Modulos/Articulos/Model/Articulos_model.RES b/Source/Modulos/Articulos/Model/Articulos_model.RES index 8b251f31..1641339f 100644 Binary files a/Source/Modulos/Articulos/Model/Articulos_model.RES and b/Source/Modulos/Articulos/Model/Articulos_model.RES differ diff --git a/Source/Modulos/Articulos/Model/Articulos_model.dproj b/Source/Modulos/Articulos/Model/Articulos_model.dproj index a28e6795..cb1ddfab 100644 --- a/Source/Modulos/Articulos/Model/Articulos_model.dproj +++ b/Source/Modulos/Articulos/Model/Articulos_model.dproj @@ -54,8 +54,8 @@ MainSource - - + + diff --git a/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas index dc6976eb..7789526e 100644 --- a/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas +++ b/Source/Modulos/Articulos/Model/Data/uIDataModuleArticulos.pas @@ -12,6 +12,8 @@ type function GetItems (IDCliente: Integer) : IBizArticulo; overload; function GetItem(const ID : Integer; AClienteID: Integer = -1) : IBizArticulo; function NewItem : IBizArticulo; + function EliminarImagen(const ID: Integer): Boolean; + function AnadirImagen(const ID: Integer; const AFileName: String): Boolean; end; implementation diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas index cce2efba..c829ea7c 100644 --- a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas +++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas @@ -3,14 +3,14 @@ unit schArticulosClient_Intf; interface uses - Classes, DB, schBase_Intf, SysUtils, uROClasses, uDADataTable, FmtBCD, uROXMLIntf; + Classes, DB, SysUtils, uROClasses, uDAInterfaces, uDADataTable, FmtBCD, uROXMLIntf; 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_Articulos = '{9F6189A0-1B2F-4ED3-8DCC-540C38366485}'; - RID_ArticulosParaCliente = '{84BC0DB1-97F7-438D-B161-7564778ED6D8}'; + RID_Articulos = '{F53C14ED-C343-42D8-8A25-6BB3A141FD22}'; + RID_ArticulosParaCliente = '{B1D54489-E268-483E-AF01-6E441FBF6DC0}'; { Data table names } nme_Articulos = 'Articulos'; @@ -32,6 +32,7 @@ const fld_ArticulosPRECIO_PORTE = 'PRECIO_PORTE'; fld_ArticulosDESCUENTO = 'DESCUENTO'; fld_ArticulosPRECIO_NETO = 'PRECIO_NETO'; + fld_ArticulosPRECIO_PVP = 'PRECIO_PVP'; fld_ArticulosINVENTARIABLE = 'INVENTARIABLE'; fld_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR'; fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; @@ -53,10 +54,11 @@ const idx_ArticulosPRECIO_PORTE = 12; idx_ArticulosDESCUENTO = 13; idx_ArticulosPRECIO_NETO = 14; - idx_ArticulosINVENTARIABLE = 15; - idx_ArticulosID_PROVEEDOR = 16; - idx_ArticulosNOMBRE_PROVEEDOR = 17; - idx_ArticulosELIMINADO = 18; + idx_ArticulosPRECIO_PVP = 15; + idx_ArticulosINVENTARIABLE = 16; + idx_ArticulosID_PROVEEDOR = 17; + idx_ArticulosNOMBRE_PROVEEDOR = 18; + idx_ArticulosELIMINADO = 19; { ArticulosParaCliente fields } fld_ArticulosParaClienteID = 'ID'; @@ -74,6 +76,7 @@ const fld_ArticulosParaClientePRECIO_PORTE = 'PRECIO_PORTE'; fld_ArticulosParaClienteDESCUENTO = 'DESCUENTO'; fld_ArticulosParaClientePRECIO_NETO = 'PRECIO_NETO'; + fld_ArticulosParaClientePRECIO_PVP = 'PRECIO_PVP'; fld_ArticulosParaClienteINVENTARIABLE = 'INVENTARIABLE'; fld_ArticulosParaClienteID_PROVEEDOR = 'ID_PROVEEDOR'; fld_ArticulosParaClienteNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR'; @@ -95,15 +98,16 @@ const idx_ArticulosParaClientePRECIO_PORTE = 12; idx_ArticulosParaClienteDESCUENTO = 13; idx_ArticulosParaClientePRECIO_NETO = 14; - idx_ArticulosParaClienteINVENTARIABLE = 15; - idx_ArticulosParaClienteID_PROVEEDOR = 16; - idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 17; - idx_ArticulosParaClienteELIMINADO = 18; + idx_ArticulosParaClientePRECIO_PVP = 15; + idx_ArticulosParaClienteINVENTARIABLE = 16; + idx_ArticulosParaClienteID_PROVEEDOR = 17; + idx_ArticulosParaClienteNOMBRE_PROVEEDOR = 18; + idx_ArticulosParaClienteELIMINADO = 19; type { IArticulos } IArticulos = interface(IDAStronglyTypedDataTable) - ['{55AA5752-BC15-4FD7-A39A-97867A837A69}'] + ['{7AB1F398-443E-4F30-BBD4-AA8BD49A1C0B}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -164,6 +168,10 @@ type procedure SetPRECIO_NETOValue(const aValue: Currency); function GetPRECIO_NETOIsNull: Boolean; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); + function GetPRECIO_PVPValue: Currency; + procedure SetPRECIO_PVPValue(const aValue: Currency); + function GetPRECIO_PVPIsNull: Boolean; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); function GetINVENTARIABLEValue: SmallInt; procedure SetINVENTARIABLEValue(const aValue: SmallInt); function GetINVENTARIABLEIsNull: Boolean; @@ -213,6 +221,8 @@ type property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; @@ -224,7 +234,7 @@ type end; { TArticulosDataTableRules } - TArticulosDataTableRules = class(TIntfObjectDADataTableRules, IArticulos) + TArticulosDataTableRules = class(TDADataTableRules, IArticulos) private f_IMAGEN: IROStream; procedure IMAGEN_OnChange(Sender: TObject); @@ -289,6 +299,10 @@ type procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; function GetPRECIO_NETOIsNull: Boolean; virtual; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVPValue: Currency; virtual; + procedure SetPRECIO_PVPValue(const aValue: Currency); virtual; + function GetPRECIO_PVPIsNull: Boolean; virtual; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual; function GetINVENTARIABLEValue: SmallInt; virtual; procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; function GetINVENTARIABLEIsNull: Boolean; virtual; @@ -337,6 +351,8 @@ type property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; @@ -354,7 +370,7 @@ type { IArticulosParaCliente } IArticulosParaCliente = interface(IDAStronglyTypedDataTable) - ['{F46994FF-67BE-4892-BE35-890D5A779CB9}'] + ['{358932C8-FF5E-41C2-B0C9-A4C7423A57B8}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -415,6 +431,10 @@ type procedure SetPRECIO_NETOValue(const aValue: Currency); function GetPRECIO_NETOIsNull: Boolean; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); + function GetPRECIO_PVPValue: Currency; + procedure SetPRECIO_PVPValue(const aValue: Currency); + function GetPRECIO_PVPIsNull: Boolean; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); function GetINVENTARIABLEValue: SmallInt; procedure SetINVENTARIABLEValue(const aValue: SmallInt); function GetINVENTARIABLEIsNull: Boolean; @@ -464,6 +484,8 @@ type property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; @@ -475,7 +497,7 @@ type end; { TArticulosParaClienteDataTableRules } - TArticulosParaClienteDataTableRules = class(TIntfObjectDADataTableRules, IArticulosParaCliente) + TArticulosParaClienteDataTableRules = class(TDADataTableRules, IArticulosParaCliente) private f_IMAGEN: IROStream; procedure IMAGEN_OnChange(Sender: TObject); @@ -540,6 +562,10 @@ type procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; function GetPRECIO_NETOIsNull: Boolean; virtual; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVPValue: Currency; virtual; + procedure SetPRECIO_PVPValue(const aValue: Currency); virtual; + function GetPRECIO_PVPIsNull: Boolean; virtual; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual; function GetINVENTARIABLEValue: SmallInt; virtual; procedure SetINVENTARIABLEValue(const aValue: SmallInt); virtual; function GetINVENTARIABLEIsNull: Boolean; virtual; @@ -588,6 +614,8 @@ type property DESCUENTOIsNull: Boolean read GetDESCUENTOIsNull write SetDESCUENTOIsNull; property PRECIO_NETO: Currency read GetPRECIO_NETOValue write SetPRECIO_NETOValue; property PRECIO_NETOIsNull: Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; + property PRECIO_PVP: Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull: Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; property INVENTARIABLE: SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull: Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property ID_PROVEEDOR: Integer read GetID_PROVEEDORValue write SetID_PROVEEDORValue; @@ -944,6 +972,27 @@ begin DataTable.Fields[idx_ArticulosPRECIO_NETO].AsVariant := Null; end; +function TArticulosDataTableRules.GetPRECIO_PVPValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP].AsCurrency; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVPValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosPRECIO_PVP].AsCurrency := aValue; +end; + +function TArticulosDataTableRules.GetPRECIO_PVPIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosPRECIO_PVP].IsNull; +end; + +procedure TArticulosDataTableRules.SetPRECIO_PVPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosPRECIO_PVP].AsVariant := Null; +end; + function TArticulosDataTableRules.GetINVENTARIABLEValue: SmallInt; begin result := DataTable.Fields[idx_ArticulosINVENTARIABLE].AsSmallInt; @@ -1366,6 +1415,27 @@ begin DataTable.Fields[idx_ArticulosParaClientePRECIO_NETO].AsVariant := Null; end; +function TArticulosParaClienteDataTableRules.GetPRECIO_PVPValue: Currency; +begin + result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsCurrency; +end; + +procedure TArticulosParaClienteDataTableRules.SetPRECIO_PVPValue(const aValue: Currency); +begin + DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsCurrency := aValue; +end; + +function TArticulosParaClienteDataTableRules.GetPRECIO_PVPIsNull: boolean; +begin + result := DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].IsNull; +end; + +procedure TArticulosParaClienteDataTableRules.SetPRECIO_PVPIsNull(const aValue: Boolean); +begin + if aValue then + DataTable.Fields[idx_ArticulosParaClientePRECIO_PVP].AsVariant := Null; +end; + function TArticulosParaClienteDataTableRules.GetINVENTARIABLEValue: SmallInt; begin result := DataTable.Fields[idx_ArticulosParaClienteINVENTARIABLE].AsSmallInt; diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas index 34c79f0e..f9318e63 100644 --- a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas +++ b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas @@ -9,13 +9,13 @@ 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_ArticulosDelta = '{82298E75-82C9-4852-A33B-491F6C1C22B6}'; - RID_ArticulosParaClienteDelta = '{CD4567F1-5B6C-4215-BED9-48EC27CE653D}'; + RID_ArticulosDelta = '{EF3BCE84-BF72-4D25-B5C4-02DC99E2C0B2}'; + RID_ArticulosParaClienteDelta = '{E180507C-4070-490C-A07F-A5047BD0F477}'; type { IArticulosDelta } IArticulosDelta = interface(IArticulos) - ['{82298E75-82C9-4852-A33B-491F6C1C22B6}'] + ['{EF3BCE84-BF72-4D25-B5C4-02DC99E2C0B2}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -32,6 +32,7 @@ type function GetOldPRECIO_PORTEValue : Currency; function GetOldDESCUENTOValue : Float; function GetOldPRECIO_NETOValue : Currency; + function GetOldPRECIO_PVPValue : Currency; function GetOldINVENTARIABLEValue : SmallInt; function GetOldID_PROVEEDORValue : Integer; function GetOldNOMBRE_PROVEEDORValue : String; @@ -53,6 +54,7 @@ type property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; property OldDESCUENTO : Float read GetOldDESCUENTOValue; property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_PVP : Currency read GetOldPRECIO_PVPValue; property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; @@ -155,6 +157,12 @@ type function GetOldPRECIO_NETOIsNull: Boolean; virtual; procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVPValue: Currency; virtual; + function GetPRECIO_PVPIsNull: Boolean; virtual; + function GetOldPRECIO_PVPValue: Currency; virtual; + function GetOldPRECIO_PVPIsNull: Boolean; virtual; + procedure SetPRECIO_PVPValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual; function GetINVENTARIABLEValue: SmallInt; virtual; function GetINVENTARIABLEIsNull: Boolean; virtual; function GetOldINVENTARIABLEValue: SmallInt; virtual; @@ -241,6 +249,10 @@ type property PRECIO_NETOIsNull : Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; property OldPRECIO_NETOIsNull : Boolean read GetOldPRECIO_NETOIsNull; + property PRECIO_PVP : Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull : Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; + property OldPRECIO_PVP : Currency read GetOldPRECIO_PVPValue; + property OldPRECIO_PVPIsNull : Boolean read GetOldPRECIO_PVPIsNull; property INVENTARIABLE : SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull : Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; @@ -266,7 +278,7 @@ type { IArticulosParaClienteDelta } IArticulosParaClienteDelta = interface(IArticulosParaCliente) - ['{CD4567F1-5B6C-4215-BED9-48EC27CE653D}'] + ['{E180507C-4070-490C-A07F-A5047BD0F477}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -283,6 +295,7 @@ type function GetOldPRECIO_PORTEValue : Currency; function GetOldDESCUENTOValue : Float; function GetOldPRECIO_NETOValue : Currency; + function GetOldPRECIO_PVPValue : Currency; function GetOldINVENTARIABLEValue : SmallInt; function GetOldID_PROVEEDORValue : Integer; function GetOldNOMBRE_PROVEEDORValue : String; @@ -304,6 +317,7 @@ type property OldPRECIO_PORTE : Currency read GetOldPRECIO_PORTEValue; property OldDESCUENTO : Float read GetOldDESCUENTOValue; property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; + property OldPRECIO_PVP : Currency read GetOldPRECIO_PVPValue; property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue; property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue; @@ -406,6 +420,12 @@ type function GetOldPRECIO_NETOIsNull: Boolean; virtual; procedure SetPRECIO_NETOValue(const aValue: Currency); virtual; procedure SetPRECIO_NETOIsNull(const aValue: Boolean); virtual; + function GetPRECIO_PVPValue: Currency; virtual; + function GetPRECIO_PVPIsNull: Boolean; virtual; + function GetOldPRECIO_PVPValue: Currency; virtual; + function GetOldPRECIO_PVPIsNull: Boolean; virtual; + procedure SetPRECIO_PVPValue(const aValue: Currency); virtual; + procedure SetPRECIO_PVPIsNull(const aValue: Boolean); virtual; function GetINVENTARIABLEValue: SmallInt; virtual; function GetINVENTARIABLEIsNull: Boolean; virtual; function GetOldINVENTARIABLEValue: SmallInt; virtual; @@ -492,6 +512,10 @@ type property PRECIO_NETOIsNull : Boolean read GetPRECIO_NETOIsNull write SetPRECIO_NETOIsNull; property OldPRECIO_NETO : Currency read GetOldPRECIO_NETOValue; property OldPRECIO_NETOIsNull : Boolean read GetOldPRECIO_NETOIsNull; + property PRECIO_PVP : Currency read GetPRECIO_PVPValue write SetPRECIO_PVPValue; + property PRECIO_PVPIsNull : Boolean read GetPRECIO_PVPIsNull write SetPRECIO_PVPIsNull; + property OldPRECIO_PVP : Currency read GetOldPRECIO_PVPValue; + property OldPRECIO_PVPIsNull : Boolean read GetOldPRECIO_PVPIsNull; property INVENTARIABLE : SmallInt read GetINVENTARIABLEValue write SetINVENTARIABLEValue; property INVENTARIABLEIsNull : Boolean read GetINVENTARIABLEIsNull write SetINVENTARIABLEIsNull; property OldINVENTARIABLE : SmallInt read GetOldINVENTARIABLEValue; @@ -539,7 +563,7 @@ end; procedure TArticulosBusinessProcessorRules.IMAGEN_OnChange(Sender: TObject); begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN] := VariantBinaryFromBinary((TROStream(Sender) as IROStream).Stream); + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN] := BinaryToBlobVariant((TROStream(Sender) as IROStream).Stream); end; function TArticulosBusinessProcessorRules.GetIDValue: Integer; @@ -702,7 +726,7 @@ begin result := f_IMAGEN; result.Position := 0; if not Result.InUpdateMode then begin - WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN], result.Stream); + BlobVariantToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosIMAGEN], result.Stream); result.Position := 0; end; end; @@ -715,7 +739,7 @@ end; function TArticulosBusinessProcessorRules.GetOldIMAGENValue: IROStream; begin result := NewROStream(); - WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosIMAGEN], result.Stream); + BlobVariantToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosIMAGEN], result.Stream); end; function TArticulosBusinessProcessorRules.GetOldIMAGENIsNull: Boolean; @@ -1008,6 +1032,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_NETO] := Null; end; +function TArticulosBusinessProcessorRules.GetPRECIO_PVPValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP]; +end; + +function TArticulosBusinessProcessorRules.GetPRECIO_PVPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP]); +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVPValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP]; +end; + +function TArticulosBusinessProcessorRules.GetOldPRECIO_PVPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosPRECIO_PVP]); +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVPValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP] := aValue; +end; + +procedure TArticulosBusinessProcessorRules.SetPRECIO_PVPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosPRECIO_PVP] := Null; +end; + function TArticulosBusinessProcessorRules.GetINVENTARIABLEValue: SmallInt; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosINVENTARIABLE]; @@ -1152,7 +1207,7 @@ end; procedure TArticulosParaClienteBusinessProcessorRules.IMAGEN_OnChange(Sender: TObject); begin - BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN] := VariantBinaryFromBinary((TROStream(Sender) as IROStream).Stream); + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN] := BinaryToBlobVariant((TROStream(Sender) as IROStream).Stream); end; function TArticulosParaClienteBusinessProcessorRules.GetIDValue: Integer; @@ -1315,7 +1370,7 @@ begin result := f_IMAGEN; result.Position := 0; if not Result.InUpdateMode then begin - WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); + BlobVariantToBinary(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); result.Position := 0; end; end; @@ -1328,7 +1383,7 @@ end; function TArticulosParaClienteBusinessProcessorRules.GetOldIMAGENValue: IROStream; begin result := NewROStream(); - WriteVariantBinaryToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); + BlobVariantToBinary(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClienteIMAGEN], result.Stream); end; function TArticulosParaClienteBusinessProcessorRules.GetOldIMAGENIsNull: Boolean; @@ -1621,6 +1676,37 @@ begin BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_NETO] := Null; end; +function TArticulosParaClienteBusinessProcessorRules.GetPRECIO_PVPValue: Currency; +begin + result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PVP]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetPRECIO_PVPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PVP]); +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldPRECIO_PVPValue: Currency; +begin + result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClientePRECIO_PVP]; +end; + +function TArticulosParaClienteBusinessProcessorRules.GetOldPRECIO_PVPIsNull: Boolean; +begin + result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaClientePRECIO_PVP]); +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetPRECIO_PVPValue(const aValue: Currency); +begin + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PVP] := aValue; +end; + +procedure TArticulosParaClienteBusinessProcessorRules.SetPRECIO_PVPIsNull(const aValue: Boolean); +begin + if aValue then + BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClientePRECIO_PVP] := Null; +end; + function TArticulosParaClienteBusinessProcessorRules.GetINVENTARIABLEValue: SmallInt; begin result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaClienteINVENTARIABLE]; diff --git a/Source/Modulos/Articulos/Model/uBizArticulos.pas b/Source/Modulos/Articulos/Model/uBizArticulos.pas index 9ad2485f..015dd5d1 100644 --- a/Source/Modulos/Articulos/Model/uBizArticulos.pas +++ b/Source/Modulos/Articulos/Model/uBizArticulos.pas @@ -15,7 +15,7 @@ type function HayImagen: Boolean; procedure SalvarImagen(const AFileName: String); procedure CargarImagen(const AFileName: String); - procedure QuitarImagen; +// procedure QuitarImagen; end; TBizArticulo = class(TArticulosDataTableRules, IBizArticulo, ISeleccionable) @@ -23,11 +23,11 @@ type FSeleccionableInterface : ISeleccionable; procedure OnNewRecord(Sender: TDADataTable); override; public - procedure IniciarValoresArticuloNuevo; virtual; + procedure IniciarValoresArticuloNuevo; virtual; function HayImagen: Boolean; procedure SalvarImagen(const AFileName: String); procedure CargarImagen(const AFileName: String); - procedure QuitarImagen; +// procedure QuitarImagen; function EsNuevo : Boolean; constructor Create(aDataTable: TDADataTable); override; destructor Destroy; override; @@ -44,10 +44,10 @@ uses procedure TBizArticulo.CargarImagen(const AFileName: String); begin -{ inherited; + inherited; DataTable.Edit; DataTable.FieldByName(fld_ArticulosIMAGEN).LoadFromFile(AFileName); - DataTable.Post;} + DataTable.Post; end; constructor TBizArticulo.Create(aDataTable: TDADataTable); @@ -68,11 +68,11 @@ begin end; function TBizArticulo.HayImagen: Boolean; -{var +var AStream : TMemoryStream; - AROStream : IROStream;} + AROStream : IROStream; begin -{ AStream := TMemoryStream.Create; + AStream := TMemoryStream.Create; AROStream := TROStream.Create(AStream, False); try DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToStream(AROStream); @@ -80,7 +80,7 @@ begin finally AROStream := NIL; FreeAndNIL(AStream); - end;} + end; end; procedure TBizArticulo.IniciarValoresArticuloNuevo; @@ -103,16 +103,16 @@ begin IniciarValoresArticuloNuevo; end; -procedure TBizArticulo.QuitarImagen; +{procedure TBizArticulo.QuitarImagen; begin -{ DataTable.Edit; - DataTable.Fields[idx_ArticulosIMAGEN].Clear; - DataTable.Post;} -end; +// DataTable.Edit; +// DataTable.Fields[idx_ArticulosIMAGEN].Clear; +// DataTable.Post; +end;} procedure TBizArticulo.SalvarImagen(const AFileName: String); begin -// DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(AFileName); + DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(AFileName); end; initialization diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm index 4144b60d..3118cf1c 100644 --- a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm +++ b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm @@ -53,9 +53,9 @@ object PluginArticulos: TPluginArticulos Left = 40 Top = 16 object N1: TMenuItem - Caption = 'Log'#237'stica' + Caption = 'Datos' object Articulos1: TMenuItem - Tag = 101 + Tag = 1000 Action = actArticulos end end diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm index 1ddce252..1dc6eaaa 100644 --- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm @@ -120,6 +120,33 @@ object srvArticulos: TsrvArticulos DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < + item + Params = < + item + Name = 'id' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'select id'#10'from articulos'#10'where id = :id'#10 + StatementType = stSQL + ColumnMappings = < + item + DatasetField = 'ID' + TableField = 'ID' + end> + end> + Name = 'ExisteImagen' + Fields = < + item + Name = 'ID' + DataType = datInteger + end> + end item Params = <> Statements = < @@ -203,6 +230,10 @@ object srvArticulos: TsrvArticulos item DatasetField = 'ELIMINADO' TableField = 'ELIMINADO' + end + item + DatasetField = 'PRECIO_PVP' + TableField = 'PRECIO_PVP' end> end> Name = 'Articulos' @@ -241,7 +272,8 @@ object srvArticulos: TsrvArticulos item Name = 'IMAGEN' DataType = datBlob - DictionaryEntry = 'Articulos_IMAGEN' + BlobType = dabtGraphic + DisplayLabel = 'Foto' end item Name = 'COMISIONABLE' @@ -290,6 +322,10 @@ object srvArticulos: TsrvArticulos DataType = datCurrency DictionaryEntry = 'Articulos_PRECIO_NETO' end + item + Name = 'PRECIO_PVP' + DataType = datCurrency + end item Name = 'INVENTARIABLE' DataType = datSmallInt @@ -330,11 +366,12 @@ object srvArticulos: TsrvArticulos ' V_ARTICULOS.REFERENCIA_PROV,'#10' V_ARTICULOS.PRECIO_COST' + 'E,'#10' V_ARTICULOS.PRECIO_PORTE,'#10' CLIENTES_DTOS_PROVEED' + 'ORES.DESCUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICUL' + - 'OS.INVENTARIABLE,'#10' V_ARTICULOS.ID_PROVEEDOR,'#10' V_ARTI' + - 'CULOS.NOMBRE_PROVEEDOR,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTI' + - 'CULOS'#10'LEFT OUTER JOIN CLIENTES_DTOS_PROVEEDORES'#10'ON ((CLIENTES_DT' + - 'OS_PROVEEDORES.ID_PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'AND (CLI' + - 'ENTES_DTOS_PROVEEDORES.ID_CLIENTE = :ID_CLIENTE))'#10'where {where}'#10 + 'OS.PRECIO_PVP,'#10' V_ARTICULOS.INVENTARIABLE,'#10' V_ARTICU' + + 'LOS.ID_PROVEEDOR,'#10' V_ARTICULOS.NOMBRE_PROVEEDOR,'#10' V_' + + 'ARTICULOS.ELIMINADO'#10'FROM V_ARTICULOS'#10'LEFT OUTER JOIN CLIENTES_DT' + + 'OS_PROVEEDORES'#10'ON ((CLIENTES_DTOS_PROVEEDORES.ID_PROVEEDOR = V_A' + + 'RTICULOS.ID_PROVEEDOR)'#10'AND (CLIENTES_DTOS_PROVEEDORES.ID_CLIENTE' + + ' = :ID_CLIENTE))'#10'where {where}'#10 StatementType = stSQL ColumnMappings = < item @@ -413,6 +450,10 @@ object srvArticulos: TsrvArticulos item DatasetField = 'ELIMINADO' TableField = 'ELIMINADO' + end + item + DatasetField = 'PRECIO_PVP' + TableField = 'PRECIO_PVP' end> end> Name = 'ArticulosParaCliente' @@ -483,6 +524,10 @@ object srvArticulos: TsrvArticulos Name = 'PRECIO_NETO' DataType = datCurrency end + item + Name = 'PRECIO_PVP' + DataType = datCurrency + end item Name = 'INVENTARIABLE' DataType = datSmallInt @@ -515,70 +560,92 @@ object srvArticulos: TsrvArticulos end item Name = 'ID_EMPRESA' + DataType = datInteger Value = '' end item Name = 'REFERENCIA' + DataType = datString + Size = 255 Value = '' end item Name = 'DESCRIPCION' + DataType = datString + Size = 255 Value = '' end item Name = 'FAMILIA' - Value = '' - end - item - Name = 'IMAGEN' + DataType = datString + Size = 255 Value = '' end item Name = 'COMISIONABLE' + DataType = datSmallInt Value = '' end item Name = 'FECHA_ALTA' + DataType = datDateTime Value = '' end item Name = 'FECHA_MODIFICACION' + DataType = datDateTime Value = '' end item Name = 'USUARIO' + DataType = datString + Size = 30 Value = '' end item Name = 'PRECIO_COSTE' + DataType = datCurrency Value = '' end item Name = 'PRECIO_PORTE' + DataType = datCurrency Value = '' end item Name = 'DESCUENTO' + DataType = datFloat Value = '' end item Name = 'ID_PROVEEDOR' + DataType = datInteger Value = '' end item Name = 'PRECIO_NETO' + DataType = datCurrency + Value = '' + end + item + Name = 'PRECIO_PVP' + DataType = datCurrency Value = '' end item Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 Value = '' end item Name = 'INVENTARIABLE' + DataType = datSmallInt Value = '' end item Name = 'ELIMINADO' + DataType = datSmallInt Value = '' end> Statements = < @@ -587,19 +654,60 @@ object srvArticulos: TsrvArticulos TargetTable = 'ARTICULOS' SQL = 'INSERT'#10' INTO ARTICULOS'#10' (ID, ID_EMPRESA, REFERENCIA, DESCRIP' + - 'CION, FAMILIA, IMAGEN, '#10' COMISIONABLE, FECHA_ALTA, FECHA_MOD' + - 'IFICACION, USUARIO, '#10' PRECIO_COSTE, PRECIO_PORTE, DESCUENTO,' + - ' ID_PROVEEDOR, '#10' PRECIO_NETO, REFERENCIA_PROV, INVENTARIABLE' + - ', ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCR' + - 'IPCION, :FAMILIA, '#10' :IMAGEN, :COMISIONABLE, :FECHA_ALTA, :FE' + - 'CHA_MODIFICACION, '#10' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, ' + - ':DESCUENTO, '#10' :ID_PROVEEDOR, :PRECIO_NETO, :REFERENCIA_PROV,' + - #10' :INVENTARIABLE, :ELIMINADO)' + 'CION, FAMILIA,'#10' COMISIONABLE, FECHA_ALTA, FECHA_MODIFICACION' + + ', USUARIO, '#10' PRECIO_COSTE, PRECIO_PORTE, DESCUENTO, ID_PROVE' + + 'EDOR, '#10' PRECIO_NETO, PRECIO_PVP, REFERENCIA_PROV, INVENTARIA' + + 'BLE, ELIMINADO)'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DE' + + 'SCRIPCION, :FAMILIA, '#10' :COMISIONABLE, :FECHA_ALTA, :FECHA_MO' + + 'DIFICACION,'#10' :USUARIO, :PRECIO_COSTE, :PRECIO_PORTE, :DESCUE' + + 'NTO, '#10' :ID_PROVEEDOR, :PRECIO_NETO, :PRECIO_PVP, :REFERENCIA' + + '_PROV,'#10' :INVENTARIABLE, :ELIMINADO)'#10 StatementType = stSQL ColumnMappings = <> end> Name = 'Insert_Articulos' end + item + Params = < + item + Name = 'IMAGEN' + DataType = datBlob + Value = '' + end + item + Name = 'ID' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'update articulos'#10'set IMAGEN = :IMAGEN'#10'where ID = :ID'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'ModificarImagen' + end + item + Params = < + item + Name = 'id' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'update articulos'#10'set imagen = null'#10'where id = :id'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'EliminarImagen' + end item Params = < item @@ -622,70 +730,92 @@ object srvArticulos: TsrvArticulos Params = < item Name = 'ID_EMPRESA' + DataType = datInteger Value = '' end item Name = 'REFERENCIA' + DataType = datString + Size = 255 Value = '' end item Name = 'DESCRIPCION' + DataType = datString + Size = 255 Value = '' end item Name = 'FAMILIA' - Value = '' - end - item - Name = 'IMAGEN' + DataType = datString + Size = 255 Value = '' end item Name = 'COMISIONABLE' + DataType = datSmallInt Value = '' end item Name = 'FECHA_ALTA' + DataType = datDateTime Value = '' end item Name = 'FECHA_MODIFICACION' + DataType = datDateTime Value = '' end item Name = 'USUARIO' + DataType = datString + Size = 30 Value = '' end item Name = 'PRECIO_COSTE' + DataType = datCurrency Value = '' end item Name = 'PRECIO_PORTE' + DataType = datCurrency Value = '' end item Name = 'DESCUENTO' + DataType = datFloat Value = '' end item Name = 'ID_PROVEEDOR' + DataType = datInteger Value = '' end item Name = 'PRECIO_NETO' + DataType = datCurrency + Value = '' + end + item + Name = 'PRECIO_PVP' + DataType = datCurrency Value = '' end item Name = 'INVENTARIABLE' + DataType = datSmallInt Value = '' end item Name = 'REFERENCIA_PROV' + DataType = datString + Size = 255 Value = '' end item Name = 'ELIMINADO' + DataType = datSmallInt Value = '' end item @@ -699,14 +829,14 @@ object srvArticulos: TsrvArticulos SQL = 'UPDATE ARTICULOS'#10' SET '#10' ID_EMPRESA = :ID_EMPRESA,'#10' REFERE' + 'NCIA = :REFERENCIA, '#10' DESCRIPCION = :DESCRIPCION, '#10' FAMILI' + - 'A = :FAMILIA, '#10' IMAGEN = :IMAGEN, '#10' COMISIONABLE = :COMISI' + - 'ONABLE, '#10' FECHA_ALTA = :FECHA_ALTA, '#10' FECHA_MODIFICACION =' + - ' :FECHA_MODIFICACION, '#10' USUARIO = :USUARIO, '#10' PRECIO_COSTE' + - ' = :PRECIO_COSTE, '#10' PRECIO_PORTE = :PRECIO_PORTE, '#10' DESCUE' + - 'NTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' PRECIO' + - '_NETO = :PRECIO_NETO,'#10' INVENTARIABLE = :INVENTARIABLE,'#10' RE' + - 'FERENCIA_PROV = :REFERENCIA_PROV,'#10' ELIMINADO = :ELIMINADO'#10' W' + - 'HERE'#10' (ID = :OLD_ID)'#10 + 'A = :FAMILIA, '#10' COMISIONABLE = :COMISIONABLE,'#10' FECHA_ALTA ' + + '= :FECHA_ALTA, '#10' FECHA_MODIFICACION = :FECHA_MODIFICACION, '#10' ' + + ' USUARIO = :USUARIO, '#10' PRECIO_COSTE = :PRECIO_COSTE, '#10' P' + + 'RECIO_PORTE = :PRECIO_PORTE, '#10' DESCUENTO = :DESCUENTO, '#10' I' + + 'D_PROVEEDOR = :ID_PROVEEDOR, '#10' PRECIO_NETO = :PRECIO_NETO,'#10' ' + + ' PRECIO_PVP = :PRECIO_PVP,'#10' INVENTARIABLE = :INVENTARIABLE,'#10 + + ' REFERENCIA_PROV = :REFERENCIA_PROV,'#10' ELIMINADO = :ELIMINA' + + 'DO'#10' WHERE'#10' (ID = :OLD_ID)'#10 StatementType = stSQL ColumnMappings = <> end> diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas index a4d19a39..a56f5a08 100644 --- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas +++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.pas @@ -31,13 +31,15 @@ type procedure DARemoteServiceCreate(Sender: TObject); procedure DataAbstractServiceBeforeAcquireConnection(aSender: TObject; var aConnectionName: string); + function EliminarImagen(const ID_ARTICULO: Integer): Boolean; + function AnadirImagen(const ID_ARTICULO: Integer; const AFileName: AnsiString): Boolean; end; implementation {$R *.dfm} uses - {Generated:} FactuGES_Invk, uDataModuleServer, + {Generated:} FactuGES_Invk, uDataModuleServer, uROClasses, uDatabaseUtils, schArticulosClient_Intf, uRestriccionesUsuarioUtils; procedure Create_srvArticulos(out anInstance : IUnknown); @@ -46,6 +48,50 @@ begin end; { srvArticulos } +function TsrvArticulos.AnadirImagen(const ID_ARTICULO: Integer; const AFileName: AnsiString): Boolean; +var + AConn : IDAConnection; + dsData: IDADataset; + dsCommand: IDASQLCommand; + +begin + Result := False; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + try + dsData := schArticulos.NewDataset(AConn, 'ExisteImagen', ['ID'], [ID_ARTICULO]); + dsData.Active := True; + Result := (dsData.FieldValues[0] > 0); + AConn.CommitTransaction; + except + RaiseError('Error al buscar articulo con imagen'); + AConn.RollbackTransaction; + end; + finally + dsData := NIL; + end; + + if Result then + begin + try + try + dsCommand := schArticulos.NewCommand(AConn, 'ModificarImagen'); + dsCommand.ParamByName('ID').AsInteger := ID_ARTICULO; + dsCommand.ParamByName('IMAGEN').LoadFromFile(AFileName); + dsCommand.Execute; + AConn.CommitTransaction; + Result := True; + except + RaiseError('Error al modificar la imagen'); + AConn.RollbackTransaction; + end; + finally + dsCommand := NIL; + end; + end; +end; + procedure TsrvArticulos.DARemoteServiceBeforeGetDatasetData( const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); @@ -70,6 +116,32 @@ begin ConnectionName := dmServer.ConnectionName; end; +function TsrvArticulos.EliminarImagen(const ID_ARTICULO: Integer): Boolean; +var + AConn : IDAConnection; + dsCommand: IDASQLCommand; + +begin + Result := False; + AConn := dmServer.ConnectionManager.NewConnection(dmServer.ConnectionManager.GetDefaultConnectionName); + + try + try + dsCommand := schArticulos.NewCommand(AConn, 'EliminarImagen'); + with dsCommand do + ParamByName('ID').AsInteger := ID_ARTICULO; + dsCommand.Execute; + AConn.CommitTransaction; + Result := True; + except + RaiseError('Error al eliminar la imagen'); + AConn.RollbackTransaction; + end; + finally + dsCommand := NIL; + end; +end; + initialization TROClassFactory.Create('srvArticulos', Create_srvArticulos, TsrvArticulos_Invoker); diff --git a/Source/Modulos/Articulos/Views/Articulos_view.RES b/Source/Modulos/Articulos/Views/Articulos_view.RES index 8b251f31..1641339f 100644 Binary files a/Source/Modulos/Articulos/Views/Articulos_view.RES and b/Source/Modulos/Articulos/Views/Articulos_view.RES differ diff --git a/Source/Modulos/Articulos/Views/Articulos_view.dproj b/Source/Modulos/Articulos/Views/Articulos_view.dproj index 328f09de..acac828b 100644 --- a/Source/Modulos/Articulos/Views/Articulos_view.dproj +++ b/Source/Modulos/Articulos/Views/Articulos_view.dproj @@ -54,11 +54,11 @@ MainSource - - - - - + + + + +
fEditorArticulo
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm index b4c51fda..7129d576 100644 --- a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm @@ -39,7 +39,7 @@ inherited fEditorArticulo: TfEditorArticulo Width = 624 ExplicitWidth = 624 inherited tbxMain: TTBXToolbar - ExplicitWidth = 394 + ExplicitWidth = 400 inherited TBXItem2: TTBXItem Visible = False end @@ -95,18 +95,6 @@ inherited fEditorArticulo: TfEditorArticulo end end end - inherited pgPaginas: TPageControl - Width = 624 - Height = 385 - ExplicitWidth = 624 - ExplicitHeight = 385 - inherited pagGeneral: TTabSheet - ExplicitLeft = 4 - ExplicitTop = 24 - ExplicitWidth = 616 - ExplicitHeight = 357 - end - end inherited StatusBar: TJvStatusBar Top = 461 Width = 624 @@ -117,6 +105,25 @@ inherited fEditorArticulo: TfEditorArticulo ExplicitTop = 461 ExplicitWidth = 624 end + inherited pgPaginas: TPageControl + Width = 618 + Height = 349 + ExplicitWidth = 618 + ExplicitHeight = 349 + inherited pagGeneral: TTabSheet + ExplicitLeft = 4 + ExplicitTop = 24 + ExplicitWidth = 610 + ExplicitHeight = 321 + end + end + inherited PnlComentario: TPanel + Width = 624 + inherited lbComentario: TLabel + Width = 614 + Height = 25 + end + end inherited EditorActionList: TActionList Top = 128 object actFamilias: TAction @@ -127,7 +134,18 @@ inherited fEditorArticulo: TfEditorArticulo OnExecute = actFamiliasExecute end end - inherited SmallImages: TPngImageList + inherited dsDataTable: TDADataSource [6] + Left = 168 + Top = 120 + end + inherited LargeImages: TPngImageList + Top = 112 + end + inherited JvFormStorage: TJvFormStorage + Left = 400 + Top = 152 + end + inherited SmallImages: TPngImageList [9] PngImages = < item PngImage.Data = { @@ -633,17 +651,6 @@ inherited fEditorArticulo: TfEditorArticulo Top = 112 Bitmap = {} end - inherited dsDataTable: TDADataSource [6] - Left = 168 - Top = 120 - end - inherited LargeImages: TPngImageList [7] - Top = 112 - end - inherited JvFormStorage: TJvFormStorage [8] - Left = 400 - Top = 152 - end inherited JvAppRegistryStorage: TJvAppRegistryStorage Left = 432 Top = 152 diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas index 86965f34..0f190eb6 100644 --- a/Source/Modulos/Articulos/Views/uEditorArticulo.pas +++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas @@ -13,7 +13,7 @@ uses JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase, uViewArticulos, uIEditorArticulo, uArticulosController, JvExComCtrls, - JvStatusBar, dxLayoutLookAndFeels; + JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces; type TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo) @@ -46,6 +46,7 @@ type //sobreescribir este metodo procedure AsignarVista; virtual; procedure PonerTitulos(const ATitulo: string = ''); override; + function GetModified: Boolean; override; public property Articulo: IBizArticulo read GetArticulo write SetArticulo; @@ -74,6 +75,14 @@ begin Result := FController; end; +function TfEditorArticulo.GetModified: Boolean; +begin + Result := inherited GetModified; + //COMPROBAMOS SI EN LA VISTA HA HABIDO CAMBIOS EN LA IMAGEN + if not Result then + Result := Result or ViewArticulo.Modified; +end; + function TfEditorArticulo.GetViewArticulo: IViewArticulo; begin Result := FViewArticulo; @@ -83,6 +92,7 @@ procedure TfEditorArticulo.GuardarInterno; begin inherited; FController.Guardar(FArticulo); + ViewArticulo.Modified := False; Modified := False; end; diff --git a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm index 2fc6b872..84869f51 100644 --- a/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uEditorElegirArticulos.dfm @@ -10,6 +10,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Width = 656 Caption = 'Lista de art'#237'culos' Visible = False + ExplicitTop = 64 ExplicitWidth = 656 inherited Image1: TImage Left = 629 @@ -20,6 +21,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Top = 91 Width = 656 Height = 49 + ExplicitTop = 91 ExplicitWidth = 656 ExplicitHeight = 49 inherited tbxMain: TTBXToolbar @@ -130,7 +132,7 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos AlignWithMargins = True Left = 25 Top = 8 - Width = 606 + Width = 131 Height = 13 Margins.Left = 0 Margins.Top = 0 @@ -144,20 +146,17 @@ inherited fEditorElegirArticulos: TfEditorElegirArticulos Font.Name = 'Tahoma' Font.Style = [fsBold] ParentFont = False - ExplicitWidth = 131 end object lblComments: TLabel AlignWithMargins = True Left = 50 Top = 29 - Width = 581 - Height = 27 + Width = 3 + Height = 13 Margins.Left = 25 Margins.Top = 0 Margins.Right = 0 Align = alClient - ExplicitLeft = 34 - ExplicitTop = -6 end end inherited EditorActionList: TActionList [5] diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm index da1eae46..c869fff5 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm @@ -177,7 +177,7 @@ inherited frViewArticulo: TfrViewArticulo Font.Name = 'Tahoma' Font.Style = [] ParentFont = False - TabOrder = 11 + TabOrder = 12 ReadOnly = False ExplicitLeft = 219 ExplicitTop = 166 @@ -329,6 +329,26 @@ inherited frViewArticulo: TfrViewArticulo TabOrder = 4 Width = 144 end + object ePrecioPVP: TcxDBCurrencyEdit + Left = 103 + Top = 301 + DataBinding.DataField = 'PRECIO_PVP' + DataBinding.DataSource = dsViewArticulo + Properties.Alignment.Horz = taRightJustify + Style.BorderColor = clWindowFrame + Style.BorderStyle = ebs3D + Style.HotTrack = False + Style.LookAndFeel.Kind = lfStandard + Style.LookAndFeel.NativeStyle = True + StyleDisabled.LookAndFeel.Kind = lfStandard + StyleDisabled.LookAndFeel.NativeStyle = True + StyleFocused.LookAndFeel.Kind = lfStandard + StyleFocused.LookAndFeel.NativeStyle = True + StyleHot.LookAndFeel.Kind = lfStandard + StyleHot.LookAndFeel.NativeStyle = True + TabOrder = 11 + Width = 400 + end object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup ShowCaption = False Hidden = True @@ -381,6 +401,7 @@ inherited frViewArticulo: TfrViewArticulo AutoAligns = [aaVertical] AlignHorz = ahClient Caption = ' ' + Visible = False Control = eNoComisionable ControlOptions.ShowBorder = False end @@ -389,6 +410,7 @@ inherited frViewArticulo: TfrViewArticulo AlignHorz = ahClient Caption = ' ' ShowCaption = False + Visible = False Control = cbNoInventariable ControlOptions.ShowBorder = False end @@ -401,7 +423,6 @@ inherited frViewArticulo: TfrViewArticulo AlignHorz = ahClient AlignVert = avClient Caption = 'Imagen' - Visible = False LayoutDirection = ldHorizontal object dxLayoutControlArticuloItem6: TdxLayoutItem AutoAligns = [] @@ -440,34 +461,44 @@ inherited frViewArticulo: TfrViewArticulo Caption = 'Datos del proveedor para el art'#237'culo' object dxLayoutControlArticuloItem15: TdxLayoutItem Caption = 'Ref. del prov:' + Visible = False Control = eReferenciaProv ControlOptions.ShowBorder = False end object dxLayoutControlArticuloItem16: TdxLayoutItem - Caption = 'Precio:' + Caption = 'Precio coste:' Control = ePrecioCoste ControlOptions.ShowBorder = False end object dxLayoutControlArticuloItem17: TdxLayoutItem Caption = 'Dto (%):' + Visible = False Control = eDescuento ControlOptions.ShowBorder = False end object dxLayoutControlArticuloItem18: TdxLayoutItem Caption = 'Precio neto:' + Visible = False Control = ePrecioNeto ControlOptions.ShowBorder = False end object dxLayoutControlArticuloItem19: TdxLayoutItem Caption = 'Coste de envio:' + Visible = False Control = ePrecioPorte ControlOptions.ShowBorder = False end + object dxLayoutControlArticuloItem9: TdxLayoutItem + Caption = 'Precio PVP:' + Control = ePrecioPVP + ControlOptions.ShowBorder = False + end end object dxLayoutControlArticuloGroup12: TdxLayoutGroup AutoAligns = [aaVertical] AlignHorz = ahRight Caption = 'Proveedor para el art'#237'culo' + Visible = False object dxLayoutControlArticuloItem14: TdxLayoutItem Control = frViewDatosYSeleccionProveedor1 ControlOptions.AutoColor = True diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas index 772381f8..d0de5e5b 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulo.pas +++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas @@ -71,6 +71,8 @@ type dxLayoutControlArticuloItem7: TdxLayoutItem; cbNoInventariable: TcxDBCheckBox; dxLayoutControlArticuloGroup8: TdxLayoutGroup; + dxLayoutControlArticuloItem9: TdxLayoutItem; + ePrecioPVP: TcxDBCurrencyEdit; procedure actEliminarExecute(Sender: TObject); procedure actAnadirExecute(Sender: TObject); procedure cbFamiliaPropertiesInitPopup(Sender: TObject); @@ -82,24 +84,28 @@ type procedure PrecioNetoChanged(Sender: TObject); private procedure CargarImagen; - procedure SalvarImagen; + protected FFamiliasController: IFamiliasController; FController: IArticulosController; FArticulo: IBizArticulo; + FImagenModificada: Boolean; function GetArticulo: IBizArticulo; procedure SetArticulo(const Value: IBizArticulo); virtual; function GetController : IArticulosController; procedure SetController (const Value : IArticulosController); procedure OnProveedorChanged(Sender: TObject); + public + function GetModified: Boolean; override; + procedure SetModified(const Value: Boolean); override; property Articulo: IBizArticulo read GetArticulo write SetArticulo; property Controller : IArticulosController read GetController write SetController; end; implementation -uses uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos; +uses uDataModuleArticulos, uSistemaFunc, schArticulosClient_Intf, uBizFamilias, uBizContactos; {$R *.dfm} @@ -111,40 +117,54 @@ uses uDataModuleArticulos, uSistemaFunc, uBizFamilias, uBizContactos; } procedure TfrViewArticulo.actAnadirExecute(Sender: TObject); +var + aAux : String; begin -{ eImagen.LoadFromFile; + eImagen.LoadFromFile; if Assigned(eImagen.Picture) then - SalvarImagen;} -end; - -procedure TfrViewArticulo.actEliminarExecute(Sender: TObject); -begin -{ inherited; - eImagen.Clear; - FArticulo.QuitarImagen;} -end; - -procedure TfrViewArticulo.CargarImagen; -{var - aAux : String;} -begin -{ if FArticulo.HayImagen then begin ShowHourglassCursor; try aAux := DarFicheroJPGTemporal; - FArticulo.SalvarImagen(aAux); + eImagen.Picture.SaveToFile(aAux); + FController.PonerImagen(Articulo, aAux); + FImagenModificada := True; + finally + DeleteFile(aAux); + HideHourglassCursor; + end; + end; +end; + +procedure TfrViewArticulo.actEliminarExecute(Sender: TObject); +begin + inherited; + eImagen.Clear; + FController.QuitarImagen(Articulo); + FImagenModificada := True; +end; + +procedure TfrViewArticulo.CargarImagen; +var + aAux : String; +begin + if FArticulo.HayImagen then + begin + ShowHourglassCursor; + try + aAux := DarFicheroJPGTemporal; + Articulo.DataTable.FieldByName(fld_ArticulosIMAGEN).SaveToFile(aAux); try eImagen.Picture.LoadFromFile(aAux); except on EInvalidGraphic do - ShowMessage('error'); + ShowMessage('error de imagen en el articulo'); end; finally DeleteFile(aAux); HideHourglassCursor; end; - end;} + end; end; procedure TfrViewArticulo.cbFamiliaPropertiesInitPopup(Sender: TObject); @@ -192,6 +212,7 @@ end; procedure TfrViewArticulo.CustomViewCreate(Sender: TObject); begin inherited; + FImagenModificada := False; FFamiliasController := TFamiliasController.Create; end; @@ -220,6 +241,14 @@ begin Result := FController; end; +function TfrViewArticulo.GetModified: Boolean; +begin + Result := inherited GetModified; + //COMPROBAMOS SI EN LA VISTA HA HABIDO CAMBIOS EN LA IMAGEN + if not Result then + Result := Result or FImagenModificada; +end; + procedure TfrViewArticulo.OnProveedorChanged(Sender: TObject); begin if Assigned(FArticulo) then @@ -236,22 +265,6 @@ begin FController.CalcularPrecioNeto(FArticulo); end; -procedure TfrViewArticulo.SalvarImagen; -{var - aAux : String;} -begin -{ ShowHourglassCursor; - try - aAux := DarFicheroJPGTemporal; - eImagen.Picture.SaveToFile(aAux); - FArticulo.CargarImagen(aAux); - Self.Modified := True; - finally - DeleteFile(aAux); - HideHourglassCursor; - end;} -end; - procedure TfrViewArticulo.SetArticulo(const Value: IBizArticulo); begin FArticulo := Value; @@ -264,7 +277,7 @@ begin frViewDatosYSeleccionProveedor1.Proveedor := (FController.ProveedoresController.Buscar(FArticulo.ID_PROVEEDOR) as IBizProveedor); frViewDatosYSeleccionProveedor1.OnProveedorChanged := OnProveedorChanged; -// CargarImagen; + CargarImagen; end else begin dsViewArticulo.DataTable := NIL; @@ -278,5 +291,12 @@ begin FController := Value; end; +procedure TfrViewArticulo.SetModified(const Value: Boolean); +begin + inherited; + if not Value then + FImagenModificada := False; +end; + end. diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm index 00c97801..27da9d20 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm @@ -31,9 +31,11 @@ inherited frViewArticulos: TfrViewArticulos Tag = 1 Value = 1 end> + Visible = False BestFitMaxWidth = 22 MinWidth = 22 Options.HorzSizing = False + VisibleForCustomization = False Width = 22 end object cxGridViewCOMISIONABLE: TcxGridDBColumn @@ -63,9 +65,11 @@ inherited frViewArticulos: TfrViewArticulos end> Properties.PostPopupValueOnTab = True Properties.ShowDescriptions = False + Visible = False BestFitMaxWidth = 22 MinWidth = 22 Options.HorzSizing = False + VisibleForCustomization = False Width = 22 end object cxGridViewREFERENCIA: TcxGridDBColumn @@ -89,13 +93,17 @@ inherited frViewArticulos: TfrViewArticulos object cxGridViewNOMBRE_PROVEEDOR: TcxGridDBColumn Caption = 'Proveedor' DataBinding.FieldName = 'NOMBRE_PROVEEDOR' + Visible = False BestFitMaxWidth = 120 + VisibleForCustomization = False Width = 120 end object cxGridViewREFERENCIA_PROV: TcxGridDBColumn Caption = 'Ref. proveedor' DataBinding.FieldName = 'REFERENCIA_PROV' + Visible = False BestFitMaxWidth = 60 + VisibleForCustomization = False Width = 60 end object cxGridViewPRECIO_COSTE: TcxGridDBColumn @@ -112,24 +120,39 @@ inherited frViewArticulos: TfrViewArticulos PropertiesClassName = 'TcxSpinEditProperties' Properties.Alignment.Horz = taRightJustify Properties.DisplayFormat = ',0.00 %;-,0.00 %' + Visible = False FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False end object cxGridViewPRECIO_NETO: TcxGridDBColumn Caption = 'Precio neto' DataBinding.FieldName = 'PRECIO_NETO' PropertiesClassName = 'TcxCurrencyEditProperties' Properties.Alignment.Horz = taRightJustify + Visible = False FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False end object cxGridViewPRECIO_PORTE: TcxGridDBColumn Caption = 'Precio porte' DataBinding.FieldName = 'PRECIO_PORTE' PropertiesClassName = 'TcxCurrencyEditProperties' Properties.Alignment.Horz = taRightJustify + Visible = False FooterAlignmentHorz = taRightJustify HeaderAlignmentHorz = taRightJustify + VisibleForCustomization = False + end + object cxGridViewPRECIO_PVP: TcxGridDBColumn + Caption = 'Precio PVP' + DataBinding.FieldName = 'PRECIO_PVP' + PropertiesClassName = 'TcxCurrencyEditProperties' + Properties.Alignment.Horz = taRightJustify + FooterAlignmentHorz = taRightJustify + GroupSummaryAlignment = taRightJustify + HeaderAlignmentHorz = taRightJustify end end end @@ -159,7 +182,6 @@ inherited frViewArticulos: TfrViewArticulos end inherited pnlAgrupaciones: TTBXDockablePanel Visible = True - ExplicitWidth = 128 inherited TBXAlignmentPanel1: TTBXAlignmentPanel inherited TBXToolbar1: TTBXToolbar object TBXSeparatorItem1: TTBXSeparatorItem diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.pas b/Source/Modulos/Articulos/Views/uViewArticulos.pas index e24f2e6d..38216176 100644 --- a/Source/Modulos/Articulos/Views/uViewArticulos.pas +++ b/Source/Modulos/Articulos/Views/uViewArticulos.pas @@ -37,6 +37,7 @@ type TBXSeparatorItem1: TTBXSeparatorItem; TBXSeparatorItem2: TTBXSeparatorItem; cxGridViewINVENTARIABLE: TcxGridDBColumn; + cxGridViewPRECIO_PVP: TcxGridDBColumn; procedure cxGridViewIDCustomDrawCell( Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); diff --git a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm index 05ff8da3..9d711ec5 100644 --- a/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm +++ b/Source/Modulos/Articulos/Views/uViewDetallesArticulos.dfm @@ -117,6 +117,7 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos end inherited TBXDock1: TTBXDock inherited TBXToolbar1: TTBXToolbar + ExplicitWidth = 451 object TBXItem12: TTBXItem [0] Action = actAnadirArticulos DisplayMode = nbdmImageAndText @@ -127,9 +128,7 @@ inherited frViewDetallesArticulos: TfrViewDetallesArticulos object actAnadirArticulos: TAction Category = 'Operaciones' Caption = 'A'#241'adir art'#237'culos' - Enabled = False ImageIndex = 12 - Visible = False OnExecute = actAnadirArticulosExecute OnUpdate = actAnadirArticulosUpdate end diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas index cf401e78..704f8470 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas @@ -741,7 +741,7 @@ begin AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_COCINA)); AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_COCINA)); AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_COCINA)); - (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_C_VACIO, 'MUEBLES DE COCINA ', False, AContrato.Detalles); + (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_C, 'MUEBLES DE COCINA ', False, AContrato.Detalles); (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, AContrato.Detalles); (Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR ', False, AContrato.Detalles); end; diff --git a/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas index 3f8990e1..32ca61ae 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uDetallesContratoClienteController.pas @@ -224,11 +224,10 @@ end; procedure TDetallesContratoClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); begin -//Como en tecsitel no hay descuento por linea de detalle, solo recuperamos nuevamente el valor del articulo cuando el detalle no tenga niguno -//de esta forma evitamos que al cambiar de cliente se quiten los importes que se hubiesen establecido para los articulos. +//Para acana el importa a cargar en la lista será siempre el precio PVP if ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).IsNull then if Assigned(AArticulos) then - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_NETO + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP else ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; end; diff --git a/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas index 35b3e767..5801ac4b 100644 --- a/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas +++ b/Source/Modulos/Facturas de cliente/Controller/uDetallesFacturaClienteController.pas @@ -158,8 +158,9 @@ end; procedure TDetallesFacturaClienteController.RellenarImportes(ADetalles: IDAStronglyTypedDataTable; AArticulos: IBizArticulo); begin +//Para acana el importa a cargar en la lista será siempre el precio PVP if Assigned(AArticulos) then - ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_COSTE + ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := AArticulos.PRECIO_PVP else ADetalles.DataTable.FieldByName(CAMPO_IMPORTE_UNIDAD).AsVariant := Null; end; diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm index 54d891a0..51a30d1b 100644 --- a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm +++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm @@ -35,7 +35,7 @@ object PluginFamilias: TPluginFamilias object Ventas1: TMenuItem Caption = 'Datos' object Familias1: TMenuItem - Tag = 19000 + Tag = 900 Action = actFamilias end end diff --git a/Source/Modulos/Inventario/Controller/Inventario_controller.rc b/Source/Modulos/Inventario/Controller/Inventario_controller.rc index e69de29b..153736af 100644 --- a/Source/Modulos/Inventario/Controller/Inventario_controller.rc +++ b/Source/Modulos/Inventario/Controller/Inventario_controller.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Controller/uInventarioController.pas b/Source/Modulos/Inventario/Controller/uInventarioController.pas index 007c135e..f51d4981 100644 --- a/Source/Modulos/Inventario/Controller/uInventarioController.pas +++ b/Source/Modulos/Inventario/Controller/uInventarioController.pas @@ -680,11 +680,11 @@ begin exit; try - APresupuesto := FPresupuestosClienteController.BuscarPendientes; - APresupuesto := FPresupuestosClienteController.ElegirPresupuestos(APresupuesto, '', False); +// APresupuesto := FPresupuestosClienteController.BuscarPendientes; +// APresupuesto := FPresupuestosClienteController.ElegirPresupuestos(APresupuesto, '', False); - if Assigned(APresupuesto) then - Reservar(AInventario, False, APresupuesto); +// if Assigned(APresupuesto) then +// Reservar(AInventario, False, APresupuesto); finally APresupuesto := Nil; diff --git a/Source/Modulos/Inventario/Data/Inventario_data.rc b/Source/Modulos/Inventario/Data/Inventario_data.rc index e69de29b..153736af 100644 --- a/Source/Modulos/Inventario/Data/Inventario_data.rc +++ b/Source/Modulos/Inventario/Data/Inventario_data.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Model/Inventario_model.rc b/Source/Modulos/Inventario/Model/Inventario_model.rc index e69de29b..153736af 100644 --- a/Source/Modulos/Inventario/Model/Inventario_model.rc +++ b/Source/Modulos/Inventario/Model/Inventario_model.rc @@ -0,0 +1,22 @@ +1 VERSIONINFO +FILEVERSION 1,0,0,0 +PRODUCTVERSION 1,0,0,0 +FILEFLAGSMASK 0x3FL +FILEFLAGS 0x00L +FILEOS 0x40004L +FILETYPE 0x1L +FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "0C0A04E4" + BEGIN + VALUE "FileVersion", "1.0.0.0\0" + VALUE "ProductVersion", "1.0.0.0\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x0C0A, 1252 + END +END diff --git a/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj index 303b9c99..7ca4a406 100644 --- a/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj +++ b/Source/Modulos/Inventario/Plugin/Inventario_plugin.dproj @@ -41,20 +41,19 @@ Delphi.Personality Package -FalseTrueFalseTrueFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_plugin.dpk +FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_plugin.dpk MainSource - - - + + + -