diff --git a/Source/Base/Base.dproj b/Source/Base/Base.dproj
index 88e218eb..1d93673a 100644
--- a/Source/Base/Base.dproj
+++ b/Source/Base/Base.dproj
@@ -65,56 +65,56 @@
MainSource
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
TForm
diff --git a/Source/Cliente/FactuGES.dproj b/Source/Cliente/FactuGES.dproj
index ffdc963e..f52282ba 100644
--- a/Source/Cliente/FactuGES.dproj
+++ b/Source/Cliente/FactuGES.dproj
@@ -52,8 +52,7 @@
Delphi.Personality
VCLApplication
-FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse5220FalseFalseFalseFalseFalse30821252Rodax Software S.L.5.2.2.0FactuGESFactuGES5.2.2.0
-
+FalseTrueFalseC:\Archivos de programa\Borland\Delphi7\Bin\TrueFalse5240FalseFalseFalseFalseFalse30821252Rodax Software S.L.5.2.4.0FactuGESFactuGES5.2.4.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.rc b/Source/Cliente/FactuGES.rc
index 354d35f8..4d8869cf 100644
--- a/Source/Cliente/FactuGES.rc
+++ b/Source/Cliente/FactuGES.rc
@@ -1,7 +1,7 @@
MAINICON ICON "C:\Codigo Acana\Resources\Iconos\Factuges.ico"
1 VERSIONINFO
-FILEVERSION 5,2,2,0
-PRODUCTVERSION 5,2,2,0
+FILEVERSION 5,2,4,0
+PRODUCTVERSION 5,2,4,0
FILEFLAGSMASK 0x3FL
FILEFLAGS 0x00L
FILEOS 0x40004L
@@ -13,10 +13,10 @@ BEGIN
BLOCK "0C0A04E4"
BEGIN
VALUE "CompanyName", "Rodax Software S.L.\0"
- VALUE "FileVersion", "5.2.2.0\0"
+ VALUE "FileVersion", "5.2.4.0\0"
VALUE "InternalName", "FactuGES\0"
VALUE "ProductName", "FactuGES\0"
- VALUE "ProductVersion", "5.2.2.0\0"
+ VALUE "ProductVersion", "5.2.4.0\0"
END
END
BLOCK "VarFileInfo"
diff --git a/Source/Cliente/FactuGES.res b/Source/Cliente/FactuGES.res
index 7cd60e24..a7f583f0 100644
Binary files a/Source/Cliente/FactuGES.res and b/Source/Cliente/FactuGES.res differ
diff --git a/Source/GUIBase/GUIBase.res b/Source/GUIBase/GUIBase.res
index 8b251f31..1641339f 100644
Binary files a/Source/GUIBase/GUIBase.res and b/Source/GUIBase/GUIBase.res differ
diff --git a/Source/Informes/5/3/InfFacturaCliente.fr3 b/Source/Informes/5/3/InfFacturaCliente.fr3
index 38f9c772..8a450d97 100644
--- a/Source/Informes/5/3/InfFacturaCliente.fr3
+++ b/Source/Informes/5/3/InfFacturaCliente.fr3
@@ -1,5 +1,5 @@
-
+
@@ -17,7 +17,7 @@
-
+
@@ -34,7 +34,7 @@
-
+
@@ -70,7 +70,7 @@
-
+
diff --git a/Source/Informes/5/3/InfPedidoProveedor.fr3 b/Source/Informes/5/3/InfPedidoProveedor.fr3
index 46f0b825..f6b0b639 100644
--- a/Source/Informes/5/3/InfPedidoProveedor.fr3
+++ b/Source/Informes/5/3/InfPedidoProveedor.fr3
@@ -1,43 +1,46 @@
-
+
-
-
-
-
-
+
+
+
+
+
-
+
-
+
-
+
-
-
-
+
+
+
-
+
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
diff --git a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas
index 7ffae155..ffec5573 100644
--- a/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas
+++ b/Source/Modulos/Albaranes de proveedor/Controller/uAlbaranesProveedorController.pas
@@ -4,7 +4,7 @@ interface
uses
- SysUtils, uDADataTable, uEditorDBItem,
+ SysUtils, uDADataTable, uEditorDBItem, Classes,
uControllerBase, uIDataModuleAlbaranesProveedor, uProveedoresController,
uDetallesAlbaranProveedorController, uBizAlbaranesProveedor,
uBizDireccionesContacto, uBizPedidosProveedor;
@@ -56,6 +56,9 @@ type
procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
+
+ function DarListaAnosAlbaranes: TStringList;
+ procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
end;
TAlbaranesProveedorController = class(TControllerBase, IAlbaranesProveedorController)
@@ -122,6 +125,9 @@ type
procedure Preview(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
procedure Print(AAlbaran : IBizAlbaranProveedor; AllItems: Boolean = false);
+ function DarListaAnosAlbaranes: TStringList;
+ procedure FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
+
end;
implementation
@@ -136,7 +142,7 @@ uses
schContactosClient_Intf, Forms, schPedidosProveedorClient_Intf, uFactuGES_App,
uPedidosProveedorController, uBizDetallesPedidoProveedor,
// schInventarioClient_Intf,
- uArticulosController, uBizArticulos, uControllerDetallesBase, Classes,
+ uArticulosController, uBizArticulos, uControllerDetallesBase,
schArticulosClient_Intf, uControllerDetallesArticulos, Variants, uDialogUtils,
uIEditorAlbaranDevProveedor, uAlbaranesProveedorReportController;
@@ -756,6 +762,11 @@ begin
Result := Supports(EditorRegistry.CreateEditor(AName), IID, Intf);
end;
+function TAlbaranesProveedorController.DarListaAnosAlbaranes: TStringList;
+begin
+ Result := FDataModule.GetAnosItems;
+end;
+
procedure TAlbaranesProveedorController.DescartarCambios(AAlbaran: IBizAlbaranProveedor);
begin
if not Assigned(AAlbaran) then
@@ -1151,6 +1162,35 @@ begin
Result := ASeleccionados;
end;
+procedure TAlbaranesProveedorController.FiltrarAno(AAlbaran: IBizAlbaranProveedor; ADynWhereDataTable: WideString; const Ano: String);
+var
+ Condicion: TDAWhereExpression;
+ FechaIni: String;
+ FechaFin: String;
+
+begin
+ AAlbaran.DataTable.DynamicWhere.Clear;
+ AAlbaran.DataTable.DynamicWhere.Xml := ADynWhereDataTable;
+
+ if (Ano <> 'Todos') then
+ begin
+ // Filtrar las facturas actuales por empresa
+ FechaIni := '01/01/' + Ano;
+ FechaFin := '31/12/' + Ano;
+ with AAlbaran.DataTable.DynamicWhere do
+ begin
+ // (FECHA_INICIO between FECHA_FIN)
+ Condicion := NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaIni, datString), dboGreaterOrEqual);
+ Condicion := NewBinaryExpression(NewBinaryExpression(NewField('', fld_AlbaranesProveedorFECHA_ALBARAN), NewConstant(FechaFin, datString), dboLessOrEqual), Condicion, dboAnd);
+
+ if IsEmpty then
+ Expression := Condicion
+ else
+ Expression := NewBinaryExpression(Condicion, Expression, dboAnd);
+ end;
+ end;
+end;
+
procedure TAlbaranesProveedorController.FiltrarEmpresa(AAlbaran: IBizAlbaranProveedor);
var
Condicion: TDAWhereExpression;
diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm
index 7eefca3f..fe7e4253 100644
--- a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm
+++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.dfm
@@ -1,5 +1,6 @@
inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor
OnCreate = DAClientDataModuleCreate
+ Height = 294
Width = 462
object RORemoteService: TRORemoteService
Message = dmConexion.ROMessage
@@ -398,4 +399,26 @@ inherited DataModuleAlbaranesProveedor: TDataModuleAlbaranesProveedor
Left = 328
Top = 40
end
+ object tbl_ListaAnosAlbaranes: TDAMemDataTable
+ RemoteUpdatesOptions = []
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datString
+ Size = 255
+ end>
+ Params = <>
+ StreamingOptions = [soDisableEventsWhileStreaming]
+ RemoteDataAdapter = rda_AlbaranesProveedor
+ LogicalName = 'ListaAnosAlbaranes'
+ IndexDefs = <>
+ Left = 240
+ Top = 200
+ end
+ object ds_ListaAnosAlbaranes: TDADataSource
+ DataSet = tbl_ListaAnosAlbaranes.Dataset
+ DataTable = tbl_ListaAnosAlbaranes
+ Left = 240
+ Top = 152
+ end
end
diff --git a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
index 3a99d753..347fefaf 100644
--- a/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
+++ b/Source/Modulos/Albaranes de proveedor/Data/uDataModuleAlbaranesProveedor.pas
@@ -20,6 +20,8 @@ type
ds_AlbaranesProveedor: TDADataSource;
tbl_AlbaranesProveedor_Detalles: TDAMemDataTable;
ds_AlbaranesProveedor_Detalles: TDADataSource;
+ tbl_ListaAnosAlbaranes: TDAMemDataTable;
+ ds_ListaAnosAlbaranes: TDADataSource;
procedure DAClientDataModuleCreate(Sender: TObject);
private
@@ -29,6 +31,7 @@ type
procedure AsignarClaseNegocio(var APedido: TDAMemDataTable); virtual;
public
+ function GetAnosItems : TStringList;
function GetItems : IBizAlbaranProveedor; virtual;
function GetItem(const ID : Integer) : IBizAlbaranProveedor;
function NewItem : IBizAlbaranProveedor;
@@ -86,6 +89,30 @@ begin
end;
end;
+function TDataModuleAlbaranesProveedor.GetAnosItems: TStringList;
+var
+ AListaAnos: TStringList;
+begin
+ AListaAnos := TStringList.Create;
+ ShowHourglassCursor;
+ try
+ with tbl_ListaAnosAlbaranes do
+ begin
+ Open;
+ First;
+ while not eof do
+ begin
+ AListaAnos.Add(Format('%s=%s', [Fields[0].AsString, Fields[0].AsString]));
+ Next;
+ end;
+ Close;
+ end;
+ Result := AListaAnos;
+ finally
+ HideHourglassCursor;
+ end;
+end;
+
function TDataModuleAlbaranesProveedor.GetItem(const ID: Integer): IBizAlbaranProveedor;
var
Condicion: TDAWhereExpression;
diff --git a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas
index 169b0e0f..4cb08f38 100644
--- a/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas
+++ b/Source/Modulos/Albaranes de proveedor/Model/Data/uIDataModuleAlbaranesProveedor.pas
@@ -3,11 +3,12 @@ unit uIDataModuleAlbaranesProveedor;
interface
uses
- uBizAlbaranesProveedor;
+ Classes, uBizAlbaranesProveedor;
type
IDataModuleAlbaranesProveedor = interface
['{2BAD8B3B-B57D-475C-B528-F82B320B2332}']
+ function GetAnosItems : TStringList;
function GetItems: IBizAlbaranProveedor;
function GetItem(const ID : Integer) : IBizAlbaranProveedor;
function NewItem : IBizAlbaranProveedor;
diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas
index 14cd1f60..58af0b0d 100644
--- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas
+++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas
@@ -9,13 +9,21 @@ 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_AlbaranesProveedor = '{8BE31A69-3F96-4428-A51C-774590E24FA1}';
- RID_AlbaranesProveedor_Detalles = '{87E2A4FF-4130-4DA0-BCBC-EFED39A33D83}';
+ RID_ListaAnosAlbaranes = '{857403FF-F05F-49ED-90E6-ADCAAA5AB48D}';
+ RID_AlbaranesProveedor = '{E29E5C9B-5EC8-4005-8662-DB5944C8A0A1}';
+ RID_AlbaranesProveedor_Detalles = '{9A1F1517-1524-4C14-9620-B043565B76FC}';
{ Data table names }
+ nme_ListaAnosAlbaranes = 'ListaAnosAlbaranes';
nme_AlbaranesProveedor = 'AlbaranesProveedor';
nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles';
+ { ListaAnosAlbaranes fields }
+ fld_ListaAnosAlbaranesANO = 'ANO';
+
+ { ListaAnosAlbaranes field indexes }
+ idx_ListaAnosAlbaranesANO = 0;
+
{ AlbaranesProveedor fields }
fld_AlbaranesProveedorID = 'ID';
fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA';
@@ -133,9 +141,44 @@ const
idx_AlbaranesProveedor_DetallesID_PEDIDO = 14;
type
+ { IListaAnosAlbaranes }
+ IListaAnosAlbaranes = interface(IDAStronglyTypedDataTable)
+ ['{1928B838-B4EA-4496-827E-9D63EABBDAE7}']
+ { Property getters and setters }
+ function GetANOValue: String;
+ procedure SetANOValue(const aValue: String);
+ function GetANOIsNull: Boolean;
+ procedure SetANOIsNull(const aValue: Boolean);
+
+
+ { Properties }
+ property ANO: String read GetANOValue write SetANOValue;
+ property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
+ end;
+
+ { TListaAnosAlbaranesDataTableRules }
+ TListaAnosAlbaranesDataTableRules = class(TIntfObjectDADataTableRules, IListaAnosAlbaranes)
+ private
+ protected
+ { Property getters and setters }
+ function GetANOValue: String; virtual;
+ procedure SetANOValue(const aValue: String); virtual;
+ function GetANOIsNull: Boolean; virtual;
+ procedure SetANOIsNull(const aValue: Boolean); virtual;
+
+ { Properties }
+ property ANO: String read GetANOValue write SetANOValue;
+ property ANOIsNull: Boolean read GetANOIsNull write SetANOIsNull;
+
+ public
+ constructor Create(aDataTable: TDADataTable); override;
+ destructor Destroy; override;
+
+ end;
+
{ IAlbaranesProveedor }
IAlbaranesProveedor = interface(IDAStronglyTypedDataTable)
- ['{E272858C-E2C0-4D50-AD8C-16F07C262B1A}']
+ ['{A2303506-30C8-4485-BFF0-ECE18AB355EC}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -626,7 +669,7 @@ type
{ IAlbaranesProveedor_Detalles }
IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable)
- ['{80D018EE-3C58-4900-93BF-5571F03F2DD6}']
+ ['{AB431777-BD0A-44A9-A7B4-87BE4C2FEC34}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -831,6 +874,39 @@ implementation
uses Variants, uROBinaryHelpers;
+{ TListaAnosAlbaranesDataTableRules }
+constructor TListaAnosAlbaranesDataTableRules.Create(aDataTable: TDADataTable);
+begin
+ inherited;
+end;
+
+destructor TListaAnosAlbaranesDataTableRules.Destroy;
+begin
+ inherited;
+end;
+
+function TListaAnosAlbaranesDataTableRules.GetANOValue: String;
+begin
+ result := DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString;
+end;
+
+procedure TListaAnosAlbaranesDataTableRules.SetANOValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ListaAnosAlbaranesANO].AsString := aValue;
+end;
+
+function TListaAnosAlbaranesDataTableRules.GetANOIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ListaAnosAlbaranesANO].IsNull;
+end;
+
+procedure TListaAnosAlbaranesDataTableRules.SetANOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ListaAnosAlbaranesANO].AsVariant := Null;
+end;
+
+
{ TAlbaranesProveedorDataTableRules }
constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable);
var
@@ -2002,6 +2078,7 @@ end;
initialization
+ RegisterDataTableRules(RID_ListaAnosAlbaranes, TListaAnosAlbaranesDataTableRules);
RegisterDataTableRules(RID_AlbaranesProveedor, TAlbaranesProveedorDataTableRules);
RegisterDataTableRules(RID_AlbaranesProveedor_Detalles, TAlbaranesProveedor_DetallesDataTableRules);
diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas
index 066fe252..00135942 100644
--- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas
+++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas
@@ -9,13 +9,48 @@ 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_AlbaranesProveedorDelta = '{77DA50AC-7040-4020-9694-EC017C25527D}';
- RID_AlbaranesProveedor_DetallesDelta = '{EF2BF457-C37A-4FBE-8014-2F3A298125C8}';
+ RID_ListaAnosAlbaranesDelta = '{9953F25F-4C3F-4AB3-B6F7-F3B6BE9FC6B1}';
+ RID_AlbaranesProveedorDelta = '{E8BAFAD8-0AE9-4773-B7AB-707958D400E3}';
+ RID_AlbaranesProveedor_DetallesDelta = '{ABC18C65-391D-4535-9A05-F8D9D6517970}';
type
+ { IListaAnosAlbaranesDelta }
+ IListaAnosAlbaranesDelta = interface(IListaAnosAlbaranes)
+ ['{9953F25F-4C3F-4AB3-B6F7-F3B6BE9FC6B1}']
+ { Property getters and setters }
+ function GetOldANOValue : String;
+
+ { Properties }
+ property OldANO : String read GetOldANOValue;
+ end;
+
+ { TListaAnosAlbaranesBusinessProcessorRules }
+ TListaAnosAlbaranesBusinessProcessorRules = class(TDABusinessProcessorRules, IListaAnosAlbaranes, IListaAnosAlbaranesDelta)
+ private
+ protected
+ { Property getters and setters }
+ function GetANOValue: String; virtual;
+ function GetANOIsNull: Boolean; virtual;
+ function GetOldANOValue: String; virtual;
+ function GetOldANOIsNull: Boolean; virtual;
+ procedure SetANOValue(const aValue: String); virtual;
+ procedure SetANOIsNull(const aValue: Boolean); virtual;
+
+ { Properties }
+ property ANO : String read GetANOValue write SetANOValue;
+ property ANOIsNull : Boolean read GetANOIsNull write SetANOIsNull;
+ property OldANO : String read GetOldANOValue;
+ property OldANOIsNull : Boolean read GetOldANOIsNull;
+
+ public
+ constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
+ destructor Destroy; override;
+
+ end;
+
{ IAlbaranesProveedorDelta }
IAlbaranesProveedorDelta = interface(IAlbaranesProveedor)
- ['{77DA50AC-7040-4020-9694-EC017C25527D}']
+ ['{E8BAFAD8-0AE9-4773-B7AB-707958D400E3}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -507,7 +542,7 @@ type
{ IAlbaranesProveedor_DetallesDelta }
IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles)
- ['{EF2BF457-C37A-4FBE-8014-2F3A298125C8}']
+ ['{ABC18C65-391D-4535-9A05-F8D9D6517970}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_ALBARANValue : Integer;
@@ -712,6 +747,49 @@ implementation
uses
Variants, uROBinaryHelpers, uDAInterfaces;
+{ TListaAnosAlbaranesBusinessProcessorRules }
+constructor TListaAnosAlbaranesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
+begin
+ inherited;
+end;
+
+destructor TListaAnosAlbaranesBusinessProcessorRules.Destroy;
+begin
+ inherited;
+end;
+
+function TListaAnosAlbaranesBusinessProcessorRules.GetANOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO];
+end;
+
+function TListaAnosAlbaranesBusinessProcessorRules.GetANOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO]);
+end;
+
+function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO];
+end;
+
+function TListaAnosAlbaranesBusinessProcessorRules.GetOldANOIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ListaAnosAlbaranesANO]);
+end;
+
+procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := aValue;
+end;
+
+procedure TListaAnosAlbaranesBusinessProcessorRules.SetANOIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ListaAnosAlbaranesANO] := Null;
+end;
+
+
{ TAlbaranesProveedorBusinessProcessorRules }
constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
var
@@ -2425,6 +2503,7 @@ end;
initialization
+ RegisterBusinessProcessorRules(RID_ListaAnosAlbaranesDelta, TListaAnosAlbaranesBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules);
RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules);
diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm
index d9acfb28..8dfd2011 100644
--- a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm
+++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm
@@ -12,6 +12,32 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor
ConnectionManager = dmServer.ConnectionManager
DataDictionary = DADataDictionary
Datasets = <
+ item
+ Params = <>
+ Statements = <
+ item
+ ConnectionType = 'Interbase'
+ Default = True
+ Name = 'IBX'
+ SQL =
+ 'select ANO from'#10'(select distinct(substr(FECHA_ALBARAN, 1,4)) as ' +
+ 'ANO'#10'from albaranes_proveedor'#10'order by 1 desc)'#10#10'UNION ALL'#10#10'select' +
+ ' distinct '#39'Todos'#39' as ANO'#10'from empresas'#10
+ StatementType = stSQL
+ ColumnMappings = <
+ item
+ DatasetField = 'ANO'
+ TableField = 'ANO'
+ end>
+ end>
+ Name = 'ListaAnosAlbaranes'
+ Fields = <
+ item
+ Name = 'ANO'
+ DataType = datString
+ Size = 255
+ end>
+ end
item
Params = <>
Statements = <
diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm
index 977b1dac..4cc2209c 100644
--- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm
+++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.dfm
@@ -1,7 +1,7 @@
inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
Caption = 'Lista de albaranes de proveedor'
ClientWidth = 606
- ExplicitWidth = 614
+ ExplicitWidth = 622
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
@@ -126,12 +126,24 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
inherited tbxMain: TTBXToolbar
ExplicitWidth = 606
end
+ inherited tbxFiltro: TTBXToolbar
+ ExplicitWidth = 362
+ inherited lblAno: TTBXLabelItem
+ Visible = True
+ end
+ inherited cbxListaAnos: TTBXComboBoxItem
+ Visible = True
+ end
+ inherited sepAno: TTBXSeparatorItem
+ Visible = True
+ end
+ end
inherited tbxMenu: TTBXToolbar
ExplicitWidth = 606
end
inherited TBXTMain2: TTBXToolbar
- Visible = True
- ExplicitWidth = 117
+ Left = 362
+ ExplicitLeft = 362
object TBXItem39: TTBXItem
Action = actGenerarFactura
DisplayMode = nbdmImageAndText
@@ -160,7 +172,9 @@ inherited fEditorAlbaranesProveedor: TfEditorAlbaranesProveedor
end
object actGenerarFactura: TAction
Caption = 'Generar factura'
+ Enabled = False
ImageIndex = 23
+ Visible = False
OnExecute = actGenerarFacturaExecute
OnUpdate = actGenerarFacturaUpdate
end
diff --git a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas
index 22803dac..93316bdf 100644
--- a/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas
+++ b/Source/Modulos/Albaranes de proveedor/Views/uEditorAlbaranesProveedor.pas
@@ -23,6 +23,7 @@ type
TBXItem39: TTBXItem;
JsListaAlbaranesNoEliminados: TJSDialog;
procedure FormShow(Sender: TObject);
+ procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actGenerarFacturaExecute(Sender: TObject);
procedure actGenerarFacturaUpdate(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
@@ -43,6 +44,7 @@ type
procedure DuplicarInterno; override;
procedure PrevisualizarInterno; override;
procedure ImprimirInterno; override;
+ procedure RefrescarInterno; override;
//Si queremos crear otra vista para el editor heredado solo tendriamos que
//sobreescribir este metodo
@@ -79,11 +81,9 @@ end;
procedure TfEditorAlbaranesProveedor.actGenerarFacturaExecute(Sender: TObject);
begin
-{
inherited;
// GenerarFacturaProv(Albaranes.ID);
- actRefrescar.Execute;
-}
+// actRefrescar.Execute;
end;
procedure TfEditorAlbaranesProveedor.actGenerarFacturaUpdate(Sender: TObject);
@@ -179,6 +179,8 @@ end;
procedure TfEditorAlbaranesProveedor.FormShow(Sender: TObject);
begin
+ cbxListaAnos.OnChange := OnListaAnosChange; //OJO SIEMPRE ANTES DEL INHERITED
+
inherited;
if not Assigned(ViewGrid) then
@@ -275,6 +277,13 @@ begin
end;
end;
+procedure TfEditorAlbaranesProveedor.OnListaAnosChange(Sender: TObject; const Text: string);
+begin
+ Controller.FiltrarAno(Albaranes, DynWhereDataTable, Text);
+ if Albaranes.DataTable.Active then
+ RefrescarInterno;
+end;
+
procedure TfEditorAlbaranesProveedor.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
@@ -330,17 +339,37 @@ begin
}
end;
+procedure TfEditorAlbaranesProveedor.RefrescarInterno;
+begin
+ //Volvemos a cargar los años de las facturas
+ if Assigned(FController) then
+ ListaAnos := FController.DarListaAnosAlbaranes;
+
+ inherited;
+end;
+
procedure TfEditorAlbaranesProveedor.SetController(const Value: IAlbaranesProveedorController);
begin
FController := Value;
+
+ if Assigned(FController) then
+ ListaAnos := FController.DarListaAnosAlbaranes;
end;
procedure TfEditorAlbaranesProveedor.SetAlbaranes(const Value: IBizAlbaranProveedor);
begin
FAlbaranes := Value;
- dsDataTable.DataTable := FAlbaranes.DataTable;
- if Assigned(ViewGrid) then
- (ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes;
+
+ if Assigned(FAlbaranes) then
+ begin
+ //Se guarda el where de la sentencia origen, por si el editor tiene filtros que
+ //afecten a este where y en un futuro se desea volver al where origen (filtro de año))
+ DynWhereDataTable := FAlbaranes.DataTable.DynamicWhere.Xml;
+
+ dsDataTable.DataTable := FAlbaranes.DataTable;
+ if Assigned(ViewGrid) then
+ (ViewGrid as IViewAlbaranesProveedor).Albaranes := Albaranes;
+ end;
end;
end.
diff --git a/Source/Modulos/Articulos/Controller/uArticulosController.pas b/Source/Modulos/Articulos/Controller/uArticulosController.pas
index ed6a4f71..26afe176 100644
--- a/Source/Modulos/Articulos/Controller/uArticulosController.pas
+++ b/Source/Modulos/Articulos/Controller/uArticulosController.pas
@@ -24,7 +24,7 @@ type
function Nuevo : IBizArticulo;
procedure Anadir(AArticulo : IBizArticulo);
function Eliminar(const ID : Integer): Boolean; overload;
- function Eliminar(AArticulo : IBizArticulo): Boolean; overload;
+ function Eliminar(AArticulo : IBizArticulo; AllItems: Boolean = false): Boolean; overload;
function Guardar(AArticulo : IBizArticulo): Boolean;
procedure DescartarCambios(AArticulo : IBizArticulo);
function Existe(const ID: Integer) : Boolean;
@@ -32,6 +32,8 @@ type
procedure Preview(AArticulo : IBizArticulo);
procedure Print(AArticulo : IBizArticulo);
+ function EsEliminable(AArticulo : IBizArticulo): Boolean;
+ function EsModificable(AArticulo : IBizArticulo): Boolean;
procedure ElegirProveedor(AArticulo : IBizArticulo);
procedure AnadirProveedor(AArticulo : IBizArticulo);
procedure VerProveedor(AArticulo : IBizArticulo);
@@ -71,7 +73,7 @@ type
destructor Destroy; override;
function Eliminar(const ID : Integer): Boolean; overload;
- function Eliminar(AArticulo : IBizArticulo): Boolean; overload;
+ function Eliminar(AArticulo : IBizArticulo; AllItems: Boolean = false): Boolean; overload;
function Guardar(AArticulo : IBizArticulo): Boolean;
procedure DescartarCambios(AArticulo : IBizArticulo); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
@@ -95,6 +97,8 @@ type
function ElegirArticulos(AArticulos : IBizArticulo; AMensaje: String; AMultiSelect: Boolean): IBizArticulo; virtual;
procedure CalcularPrecioNeto(AArticulos: IBizArticulo);
+ function EsEliminable(AArticulo : IBizArticulo): Boolean;
+ function EsModificable(AArticulo : IBizArticulo): Boolean;
procedure ElegirProveedor(AArticulo : IBizArticulo);
procedure AnadirProveedor(AArticulo : IBizArticulo);
procedure VerProveedor(AArticulo : IBizArticulo);
@@ -521,23 +525,59 @@ begin
AProveedor := Nil;
end;
-function TArticulosController.Eliminar(AArticulo: IBizArticulo): Boolean;
+function TArticulosController.Eliminar(AArticulo: IBizArticulo; AllItems: Boolean = false): Boolean;
+//En el caso de eliminar almenos un elemento del conjunto se devuelve true
+var
+ bEliminado: Boolean;
+
begin
- Result := False;
+ bEliminado := False;
if not Assigned(AArticulo) then
- raise Exception.Create ('Articulo no asignada');
+ raise Exception.Create ('AArticulo no asignado');
ShowHourglassCursor;
try
+ if not AArticulo.DataTable.Active then
+ AArticulo.DataTable.Active := True;
+
if (AArticulo.State in dsEditModes) then
AArticulo.Cancel;
- AArticulo.Delete;
- AArticulo.DataTable.ApplyUpdates;
- HideHourglassCursor;
- Result := True;
- except
+ //Siempre eliminaremos el seleccionado
+ if EsEliminable(AArticulo) then
+ begin
+ AArticulo.Delete;
+ bEliminado := True;
+ end;
+
+ //En el caso de querer eliminar todos los items del objeto AContrato
+ if AllItems then
+ begin
+ with AArticulo.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ if EsEliminable(AArticulo) then
+ begin
+ AArticulo.Delete;
+ bEliminado := True
+ end
+ else Next;
+ end;
+ end;
+ end;
+
+ if bEliminado then
+ begin
+ AArticulo.DataTable.ApplyUpdates;
+ Result := True;
+ end
+ else
+ Result := False;
+
+{ except
on E: Exception do
begin
AArticulo.DataTable.CancelUpdates;
@@ -545,10 +585,15 @@ begin
if (Pos('FOREIGN KEY', E.Message) > 0) then
MessageBox(0, 'No se puede borrar este artículo porque tiene artículos', 'Atención', MB_ICONWARNING or MB_OK);
end;
+ end
+ }
+ finally
+ HideHourglassCursor;
end;
end;
-procedure TArticulosController.RecibirAviso(ASujeto: ISujeto; ADataTable: IDAStronglyTypedDataTable);
+procedure TArticulosController.RecibirAviso(ASujeto: ISujeto;
+ ADataTable: IDAStronglyTypedDataTable);
begin
inherited;
//
@@ -556,7 +601,24 @@ end;
procedure TArticulosController.RecuperarObjetos(AArticulo: IBizArticulo);
begin
- //
+//
+end;
+
+function TArticulosController.EsEliminable(AArticulo: IBizArticulo): Boolean;
+begin
+ if not Assigned(AArticulo) then
+ raise Exception.Create ('AArticulo no asignado: EsEliminable');
+
+ Result := True;
+end;
+
+
+function TArticulosController.EsModificable(AArticulo: IBizArticulo): Boolean;
+begin
+ if not Assigned(AArticulo) then
+ raise Exception.Create ('Articulo no asignado (EsModificable)');
+
+ Result := True;
end;
function TArticulosController.SalvarImagen(AArticulo: IBizArticulo): Boolean;
diff --git a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
index eddac3cc..e764c639 100644
--- a/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
+++ b/Source/Modulos/Articulos/Data/uDataModuleArticulos.dfm
@@ -144,6 +144,11 @@ inherited DataModuleArticulos: TDataModuleArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
@@ -361,6 +366,11 @@ inherited DataModuleArticulos: TDataModuleArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
diff --git a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
index 4206fd92..cb08801f 100644
--- a/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
+++ b/Source/Modulos/Articulos/Model/schArticulosClient_Intf.pas
@@ -9,10 +9,10 @@ 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_ExisteImagen = '{6C2F7E0E-E90A-4B6C-8533-E31599B007B4}';
- RID_Articulos = '{AA24A4FF-2391-46FE-8233-F324AF19B184}';
- RID_ArticulosParaCliente = '{176B4C13-BE2D-4DF7-9A24-AF7793F1DE0F}';
- RID_ArticulosParaCompra = '{08613735-CEA3-4201-9E60-E09CC051DF7E}';
+ RID_ExisteImagen = '{3AD233F0-E79E-4E31-882D-43BAE44A2158}';
+ RID_Articulos = '{2F0FDE8A-B8A4-46BF-BAF7-046B4AAA8A03}';
+ RID_ArticulosParaCliente = '{195AB374-2B0F-4747-8C7A-B01C0A0793E7}';
+ RID_ArticulosParaCompra = '{7D256ACD-F7D1-46AF-9451-E43EFEF4DAC2}';
{ Data table names }
nme_ExisteImagen = 'ExisteImagen';
@@ -47,6 +47,7 @@ const
fld_ArticulosID_PROVEEDOR = 'ID_PROVEEDOR';
fld_ArticulosNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
fld_ArticulosELIMINADO = 'ELIMINADO';
+ fld_ArticulosNOTAS = 'NOTAS';
{ Articulos field indexes }
idx_ArticulosID = 0;
@@ -69,6 +70,7 @@ const
idx_ArticulosID_PROVEEDOR = 17;
idx_ArticulosNOMBRE_PROVEEDOR = 18;
idx_ArticulosELIMINADO = 19;
+ idx_ArticulosNOTAS = 20;
{ ArticulosParaCliente fields }
fld_ArticulosParaClienteID = 'ID';
@@ -135,6 +137,7 @@ const
fld_ArticulosParaCompraID_PROVEEDOR = 'ID_PROVEEDOR';
fld_ArticulosParaCompraNOMBRE_PROVEEDOR = 'NOMBRE_PROVEEDOR';
fld_ArticulosParaCompraELIMINADO = 'ELIMINADO';
+ fld_ArticulosParaCompraNOTAS = 'NOTAS';
{ ArticulosParaCompra field indexes }
idx_ArticulosParaCompraID = 0;
@@ -157,11 +160,12 @@ const
idx_ArticulosParaCompraID_PROVEEDOR = 17;
idx_ArticulosParaCompraNOMBRE_PROVEEDOR = 18;
idx_ArticulosParaCompraELIMINADO = 19;
+ idx_ArticulosParaCompraNOTAS = 20;
type
{ IExisteImagen }
IExisteImagen = interface(IDAStronglyTypedDataTable)
- ['{874B7ED1-AAA1-44E0-B59D-EA38F57AB696}']
+ ['{749AADD1-83B8-48EB-A064-49602BFF17AD}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -196,7 +200,7 @@ type
{ IArticulos }
IArticulos = interface(IDAStronglyTypedDataTable)
- ['{0225A8BE-488D-4E3E-9F29-F20D572DB3AC}']
+ ['{C7114081-6A85-4579-A1BB-1BA1D5A37528}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -277,6 +281,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt);
function GetELIMINADOIsNull: Boolean;
procedure SetELIMINADOIsNull(const aValue: Boolean);
+ function GetNOTASValue: String;
+ procedure SetNOTASValue(const aValue: String);
+ function GetNOTASIsNull: Boolean;
+ procedure SetNOTASIsNull(const aValue: Boolean);
{ Properties }
@@ -320,6 +328,8 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull;
end;
{ TArticulosDataTableRules }
@@ -408,6 +418,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
function GetELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetNOTASIsNull: Boolean; virtual;
+ procedure SetNOTASIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -450,6 +464,8 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -459,7 +475,7 @@ type
{ IArticulosParaCliente }
IArticulosParaCliente = interface(IDAStronglyTypedDataTable)
- ['{E71B995E-B1A3-46EB-B6C2-500411054A5C}']
+ ['{3879CF1A-00FB-4CD5-A2B4-5AFA21731234}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -722,7 +738,7 @@ type
{ IArticulosParaCompra }
IArticulosParaCompra = interface(IDAStronglyTypedDataTable)
- ['{8029B31F-8C96-457B-B9A5-944E16A3BE2C}']
+ ['{9E50D976-2A70-4B10-ABD0-82D86C23BD36}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -803,6 +819,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt);
function GetELIMINADOIsNull: Boolean;
procedure SetELIMINADOIsNull(const aValue: Boolean);
+ function GetNOTASValue: String;
+ procedure SetNOTASValue(const aValue: String);
+ function GetNOTASIsNull: Boolean;
+ procedure SetNOTASIsNull(const aValue: Boolean);
{ Properties }
@@ -846,6 +866,8 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull;
end;
{ TArticulosParaCompraDataTableRules }
@@ -934,6 +956,10 @@ type
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
function GetELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetNOTASValue: String; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ function GetNOTASIsNull: Boolean; virtual;
+ procedure SetNOTASIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -976,6 +1002,8 @@ type
property NOMBRE_PROVEEDORIsNull: Boolean read GetNOMBRE_PROVEEDORIsNull write SetNOMBRE_PROVEEDORIsNull;
property ELIMINADO: SmallInt read GetELIMINADOValue write SetELIMINADOValue;
property ELIMINADOIsNull: Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
+ property NOTAS: String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull: Boolean read GetNOTASIsNull write SetNOTASIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -1462,6 +1490,27 @@ begin
DataTable.Fields[idx_ArticulosELIMINADO].AsVariant := Null;
end;
+function TArticulosDataTableRules.GetNOTASValue: String;
+begin
+ result := DataTable.Fields[idx_ArticulosNOTAS].AsString;
+end;
+
+procedure TArticulosDataTableRules.SetNOTASValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ArticulosNOTAS].AsString := aValue;
+end;
+
+function TArticulosDataTableRules.GetNOTASIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ArticulosNOTAS].IsNull;
+end;
+
+procedure TArticulosDataTableRules.SetNOTASIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ArticulosNOTAS].AsVariant := Null;
+end;
+
{ TArticulosParaClienteDataTableRules }
constructor TArticulosParaClienteDataTableRules.Create(aDataTable: TDADataTable);
@@ -2348,6 +2397,27 @@ begin
DataTable.Fields[idx_ArticulosParaCompraELIMINADO].AsVariant := Null;
end;
+function TArticulosParaCompraDataTableRules.GetNOTASValue: String;
+begin
+ result := DataTable.Fields[idx_ArticulosParaCompraNOTAS].AsString;
+end;
+
+procedure TArticulosParaCompraDataTableRules.SetNOTASValue(const aValue: String);
+begin
+ DataTable.Fields[idx_ArticulosParaCompraNOTAS].AsString := aValue;
+end;
+
+function TArticulosParaCompraDataTableRules.GetNOTASIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_ArticulosParaCompraNOTAS].IsNull;
+end;
+
+procedure TArticulosParaCompraDataTableRules.SetNOTASIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_ArticulosParaCompraNOTAS].AsVariant := Null;
+end;
+
initialization
RegisterDataTableRules(RID_ExisteImagen, TExisteImagenDataTableRules);
diff --git a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
index 018096ea..5e811d48 100644
--- a/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
+++ b/Source/Modulos/Articulos/Model/schArticulosServer_Intf.pas
@@ -9,15 +9,15 @@ 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_ExisteImagenDelta = '{B5A896BC-5ED5-4B7B-9396-00A8DB188F84}';
- RID_ArticulosDelta = '{1BECC0A2-1504-4295-854F-19BE88F4B763}';
- RID_ArticulosParaClienteDelta = '{97D0F613-D68C-4EAE-A832-E936284A664D}';
- RID_ArticulosParaCompraDelta = '{0500756A-6CF4-4EE5-8A82-C3409D6C69AC}';
+ RID_ExisteImagenDelta = '{394E1C02-44F5-4370-AB37-58AB68E6F75A}';
+ RID_ArticulosDelta = '{3D55AF84-A384-48E7-A570-7D4A14EE4B9D}';
+ RID_ArticulosParaClienteDelta = '{A6BBA92D-0313-47A2-9C8C-DC429B161D37}';
+ RID_ArticulosParaCompraDelta = '{1CB7CDD3-8EF0-44BA-976B-CF992ABF4D00}';
type
{ IExisteImagenDelta }
IExisteImagenDelta = interface(IExisteImagen)
- ['{B5A896BC-5ED5-4B7B-9396-00A8DB188F84}']
+ ['{394E1C02-44F5-4370-AB37-58AB68E6F75A}']
{ Property getters and setters }
function GetOldIDValue : Integer;
@@ -51,7 +51,7 @@ type
{ IArticulosDelta }
IArticulosDelta = interface(IArticulos)
- ['{1BECC0A2-1504-4295-854F-19BE88F4B763}']
+ ['{3D55AF84-A384-48E7-A570-7D4A14EE4B9D}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -73,6 +73,7 @@ type
function GetOldID_PROVEEDORValue : Integer;
function GetOldNOMBRE_PROVEEDORValue : String;
function GetOldELIMINADOValue : SmallInt;
+ function GetOldNOTASValue : String;
{ Properties }
property OldID : Integer read GetOldIDValue;
@@ -95,6 +96,7 @@ type
property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
+ property OldNOTAS : String read GetOldNOTASValue;
end;
{ TArticulosBusinessProcessorRules }
@@ -223,6 +225,12 @@ type
function GetOldELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetNOTASValue: String; virtual;
+ function GetNOTASIsNull: Boolean; virtual;
+ function GetOldNOTASValue: String; virtual;
+ function GetOldNOTASIsNull: Boolean; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ procedure SetNOTASIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@@ -305,6 +313,10 @@ type
property ELIMINADOIsNull : Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
property OldELIMINADOIsNull : Boolean read GetOldELIMINADOIsNull;
+ property NOTAS : String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property OldNOTASIsNull : Boolean read GetOldNOTASIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -314,7 +326,7 @@ type
{ IArticulosParaClienteDelta }
IArticulosParaClienteDelta = interface(IArticulosParaCliente)
- ['{97D0F613-D68C-4EAE-A832-E936284A664D}']
+ ['{A6BBA92D-0313-47A2-9C8C-DC429B161D37}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -577,7 +589,7 @@ type
{ IArticulosParaCompraDelta }
IArticulosParaCompraDelta = interface(IArticulosParaCompra)
- ['{0500756A-6CF4-4EE5-8A82-C3409D6C69AC}']
+ ['{1CB7CDD3-8EF0-44BA-976B-CF992ABF4D00}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -599,6 +611,7 @@ type
function GetOldID_PROVEEDORValue : Integer;
function GetOldNOMBRE_PROVEEDORValue : String;
function GetOldELIMINADOValue : SmallInt;
+ function GetOldNOTASValue : String;
{ Properties }
property OldID : Integer read GetOldIDValue;
@@ -621,6 +634,7 @@ type
property OldID_PROVEEDOR : Integer read GetOldID_PROVEEDORValue;
property OldNOMBRE_PROVEEDOR : String read GetOldNOMBRE_PROVEEDORValue;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
+ property OldNOTAS : String read GetOldNOTASValue;
end;
{ TArticulosParaCompraBusinessProcessorRules }
@@ -749,6 +763,12 @@ type
function GetOldELIMINADOIsNull: Boolean; virtual;
procedure SetELIMINADOValue(const aValue: SmallInt); virtual;
procedure SetELIMINADOIsNull(const aValue: Boolean); virtual;
+ function GetNOTASValue: String; virtual;
+ function GetNOTASIsNull: Boolean; virtual;
+ function GetOldNOTASValue: String; virtual;
+ function GetOldNOTASIsNull: Boolean; virtual;
+ procedure SetNOTASValue(const aValue: String); virtual;
+ procedure SetNOTASIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@@ -831,6 +851,10 @@ type
property ELIMINADOIsNull : Boolean read GetELIMINADOIsNull write SetELIMINADOIsNull;
property OldELIMINADO : SmallInt read GetOldELIMINADOValue;
property OldELIMINADOIsNull : Boolean read GetOldELIMINADOIsNull;
+ property NOTAS : String read GetNOTASValue write SetNOTASValue;
+ property NOTASIsNull : Boolean read GetNOTASIsNull write SetNOTASIsNull;
+ property OldNOTAS : String read GetOldNOTASValue;
+ property OldNOTASIsNull : Boolean read GetOldNOTASIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -1529,6 +1553,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosELIMINADO] := Null;
end;
+function TArticulosBusinessProcessorRules.GetNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOTAS];
+end;
+
+function TArticulosBusinessProcessorRules.GetNOTASIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOTAS]);
+end;
+
+function TArticulosBusinessProcessorRules.GetOldNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosNOTAS];
+end;
+
+function TArticulosBusinessProcessorRules.GetOldNOTASIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosNOTAS]);
+end;
+
+procedure TArticulosBusinessProcessorRules.SetNOTASValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOTAS] := aValue;
+end;
+
+procedure TArticulosBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosNOTAS] := Null;
+end;
+
{ TArticulosParaClienteBusinessProcessorRules }
constructor TArticulosParaClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
@@ -2817,6 +2872,37 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraELIMINADO] := Null;
end;
+function TArticulosParaCompraBusinessProcessorRules.GetNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOTAS];
+end;
+
+function TArticulosParaCompraBusinessProcessorRules.GetNOTASIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOTAS]);
+end;
+
+function TArticulosParaCompraBusinessProcessorRules.GetOldNOTASValue: String;
+begin
+ result := BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraNOTAS];
+end;
+
+function TArticulosParaCompraBusinessProcessorRules.GetOldNOTASIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_ArticulosParaCompraNOTAS]);
+end;
+
+procedure TArticulosParaCompraBusinessProcessorRules.SetNOTASValue(const aValue: String);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOTAS] := aValue;
+end;
+
+procedure TArticulosParaCompraBusinessProcessorRules.SetNOTASIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_ArticulosParaCompraNOTAS] := Null;
+end;
+
initialization
RegisterBusinessProcessorRules(RID_ExisteImagenDelta, TExisteImagenBusinessProcessorRules);
diff --git a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm
index 3118cf1c..c2d73e84 100644
--- a/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm
+++ b/Source/Modulos/Articulos/Plugin/uPluginArticulos.dfm
@@ -53,7 +53,7 @@ object PluginArticulos: TPluginArticulos
Left = 40
Top = 16
object N1: TMenuItem
- Caption = 'Datos'
+ Caption = 'Log'#237'stica'
object Articulos1: TMenuItem
Tag = 1000
Action = actArticulos
diff --git a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
index 0b6ed8df..0a1a8f15 100644
--- a/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
+++ b/Source/Modulos/Articulos/Servidor/srvArticulos_Impl.dfm
@@ -234,6 +234,10 @@ object srvArticulos: TsrvArticulos
item
DatasetField = 'PRECIO_PVP'
TableField = 'PRECIO_PVP'
+ end
+ item
+ DatasetField = 'NOTAS'
+ TableField = 'NOTAS'
end>
end>
Name = 'Articulos'
@@ -346,6 +350,11 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
end>
end
item
@@ -565,9 +574,9 @@ object srvArticulos: TsrvArticulos
'CUENTO,'#10' V_ARTICULOS.PRECIO_NETO,'#10' V_ARTICULOS.PRECI' +
'O_PVP,'#10' V_ARTICULOS.INVENTARIABLE,'#10' V_ARTICULOS.ID_P' +
'ROVEEDOR,'#10' V_ARTICULOS.NOMBRE_PROVEEDOR as NOMBRE_PROVEEDO' +
- 'R,'#10' V_ARTICULOS.ELIMINADO'#10'FROM V_ARTICULOS'#10'LEFT JOIN PROVE' +
- 'EDORES_DATOS'#10'ON (PROVEEDORES_DATOS.ID_PROVEEDOR = V_ARTICULOS.ID' +
- '_PROVEEDOR)'#10'where {where}'#10
+ 'R,'#10' V_ARTICULOS.ELIMINADO,'#10' V_ARTICULOS.NOTAS'#10'FROM V' +
+ '_ARTICULOS'#10'LEFT JOIN PROVEEDORES_DATOS'#10'ON (PROVEEDORES_DATOS.ID_' +
+ 'PROVEEDOR = V_ARTICULOS.ID_PROVEEDOR)'#10'where {where}'#10
StatementType = stSQL
ColumnMappings = <
item
@@ -649,6 +658,10 @@ object srvArticulos: TsrvArticulos
item
DatasetField = 'PRECIO_PVP'
TableField = 'PRECIO_PVP'
+ end
+ item
+ DatasetField = 'NOTAS'
+ TableField = 'NOTAS'
end>
end>
Name = 'ArticulosParaCompra'
@@ -741,6 +754,11 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
DisplayLabel = 'Eliminado'
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
end>
end>
JoinDataTables = <>
@@ -833,6 +851,12 @@ object srvArticulos: TsrvArticulos
Name = 'ELIMINADO'
DataType = datSmallInt
Value = ''
+ end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
+ Value = ''
end>
Statements = <
item
@@ -842,12 +866,12 @@ object srvArticulos: TsrvArticulos
'INSERT'#10' INTO ARTICULOS'#10' (ID, ID_EMPRESA, REFERENCIA, DESCRIP' +
'CION, FAMILIA,'#10' COMISIONABLE, FECHA_ALTA, USUARIO,'#10' PREC' +
'IO_COSTE, PRECIO_PORTE, DESCUENTO, ID_PROVEEDOR, '#10' PRECIO_NE' +
- 'TO, PRECIO_PVP, REFERENCIA_PROV, INVENTARIABLE, ELIMINADO)'#10' VAL' +
- 'UES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCRIPCION, :FAMILIA, ' +
- #10' :COMISIONABLE, CURRENT_TIMESTAMP,'#10' :USUARIO, :PRECIO_C' +
- 'OSTE, :PRECIO_PORTE, :DESCUENTO, '#10' :ID_PROVEEDOR, :PRECIO_NE' +
- 'TO, :PRECIO_PVP, :REFERENCIA_PROV,'#10' :INVENTARIABLE, :ELIMINA' +
- 'DO)'#10
+ 'TO, PRECIO_PVP, REFERENCIA_PROV, INVENTARIABLE, ELIMINADO, NOTAS' +
+ ')'#10' VALUES'#10' (:ID, :ID_EMPRESA, :REFERENCIA, :DESCRIPCION, :FA' +
+ 'MILIA, '#10' :COMISIONABLE, CURRENT_TIMESTAMP,'#10' :USUARIO, :P' +
+ 'RECIO_COSTE, :PRECIO_PORTE, :DESCUENTO, '#10' :ID_PROVEEDOR, :PR' +
+ 'ECIO_NETO, :PRECIO_PVP, :REFERENCIA_PROV,'#10' :INVENTARIABLE, :' +
+ 'ELIMINADO, :NOTAS)'#10
StatementType = stSQL
ColumnMappings = <>
end>
@@ -994,6 +1018,12 @@ object srvArticulos: TsrvArticulos
DataType = datSmallInt
Value = ''
end
+ item
+ Name = 'NOTAS'
+ DataType = datString
+ Size = 255
+ Value = ''
+ end
item
Name = 'OLD_ID'
Value = ''
@@ -1011,7 +1041,8 @@ object srvArticulos: TsrvArticulos
'DESCUENTO = :DESCUENTO, '#10' ID_PROVEEDOR = :ID_PROVEEDOR, '#10' ' +
'PRECIO_NETO = :PRECIO_NETO,'#10' PRECIO_PVP = :PRECIO_PVP,'#10' IN' +
'VENTARIABLE = :INVENTARIABLE,'#10' REFERENCIA_PROV = :REFERENCIA_' +
- 'PROV,'#10' ELIMINADO = :ELIMINADO'#10' WHERE'#10' (ID = :OLD_ID)'#10
+ 'PROV,'#10' ELIMINADO = :ELIMINADO,'#10' NOTAS = :NOTAS'#10' WHERE'#10' ' +
+ ' (ID = :OLD_ID)'#10
StatementType = stSQL
ColumnMappings = <>
end>
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm
index c5a685f1..768c5735 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulo.dfm
+++ b/Source/Modulos/Articulos/Views/uEditorArticulo.dfm
@@ -4,20 +4,20 @@ inherited fEditorArticulo: TfEditorArticulo
HorzScrollBar.Visible = False
VertScrollBar.Visible = False
Caption = 'Ficha de art'#237'culo'
- ClientHeight = 480
- ClientWidth = 624
+ ClientHeight = 646
+ ClientWidth = 972
Scaled = False
OnClose = CustomEditorClose
- ExplicitWidth = 632
- ExplicitHeight = 514
+ ExplicitWidth = 988
+ ExplicitHeight = 684
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
- Width = 624
+ Width = 972
Caption = 'Art'#237'culo'
- ExplicitWidth = 624
+ ExplicitWidth = 972
inherited Image1: TImage
- Left = 597
+ Left = 945
Picture.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
00001C0806000000720DDF940000000970485973000017120000171201679FD2
@@ -34,12 +34,18 @@ inherited fEditorArticulo: TfEditorArticulo
4495BD38333E3DC0F0B71000FEC966E74A55381F0000000049454E44AE426082}
ExplicitLeft = 607
end
+ inherited lblDesbloquear: TcxLabel
+ Left = 847
+ ExplicitLeft = 847
+ AnchorX = 892
+ AnchorY = 14
+ end
end
inherited TBXDock: TTBXDock
- Width = 624
- ExplicitWidth = 624
+ Width = 972
+ ExplicitWidth = 972
inherited tbxMain: TTBXToolbar
- ExplicitWidth = 400
+ ExplicitWidth = 423
inherited TBXItem2: TTBXItem
Visible = False
end
@@ -61,7 +67,7 @@ inherited fEditorArticulo: TfEditorArticulo
end
inherited tbxMenu: TTBXToolbar
DockPos = 0
- ExplicitWidth = 624
+ ExplicitWidth = 972
inherited TBXSubmenuItem4: TTBXSubmenuItem
inherited TBXItem8: TTBXItem
Visible = False
@@ -96,32 +102,34 @@ inherited fEditorArticulo: TfEditorArticulo
end
end
inherited StatusBar: TJvStatusBar
- Top = 461
- Width = 624
+ Top = 627
+ Width = 972
Panels = <
item
Width = 200
end>
- ExplicitTop = 461
- ExplicitWidth = 624
+ ExplicitTop = 627
+ ExplicitWidth = 972
end
inherited pgPaginas: TPageControl
- Width = 618
- Height = 349
- ExplicitWidth = 618
- ExplicitHeight = 349
+ Width = 966
+ Height = 513
+ ExplicitTop = 111
+ ExplicitWidth = 966
+ ExplicitHeight = 513
inherited pagGeneral: TTabSheet
ExplicitLeft = 4
ExplicitTop = 24
- ExplicitWidth = 610
- ExplicitHeight = 321
+ ExplicitWidth = 958
+ ExplicitHeight = 485
end
end
inherited PnlComentario: TPanel
- Width = 624
- ExplicitWidth = 624
+ Width = 972
+ ExplicitTop = 78
+ ExplicitWidth = 972
inherited lbComentario: TLabel
- Width = 614
+ Width = 962
Height = 25
end
end
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulo.pas b/Source/Modulos/Articulos/Views/uEditorArticulo.pas
index f3159831..c0bc7021 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulo.pas
+++ b/Source/Modulos/Articulos/Views/uEditorArticulo.pas
@@ -13,7 +13,8 @@ uses
JvAppStorage, JvAppRegistryStorage, JvFormPlacement, JvComponentBase,
uViewArticulos, uIEditorArticulo, uArticulosController, JvExComCtrls,
- JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces;
+ JvStatusBar, dxLayoutLookAndFeels, uDAInterfaces, cxControls, cxContainer,
+ cxEdit, cxLabel;
type
TfEditorArticulo = class(TfEditorDBItem, IEditorArticulo)
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
index 88875677..651760ac 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uEditorArticulos.dfm
@@ -26,7 +26,7 @@ inherited fEditorArticulos: TfEditorArticulos
end
inherited TBXDock: TTBXDock
inherited tbxFiltro: TTBXToolbar
- ExplicitWidth = 319
+ ExplicitWidth = 320
inherited tbxEditFiltro: TTBXEditItem
EditOptions = [tboUseEditWhenVertical]
end
@@ -39,9 +39,9 @@ inherited fEditorArticulos: TfEditorArticulos
end
end
inherited TBXTMain2: TTBXToolbar
- Left = 319
+ Left = 320
DockPos = 275
- ExplicitLeft = 319
+ ExplicitLeft = 320
end
end
inherited EditorActionList: TActionList
@@ -1422,4 +1422,306 @@ inherited fEditorArticulos: TfEditorArticulos
end>
Bitmap = {}
end
+ object JsListaArticulosNoEliminados: TJSDialog
+ Glyph.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
+ 00001C0806000000720DDF940000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14
+ 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD
+ 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2
+ 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD
+ B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010
+ 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3
+ 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045
+ A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8
+ 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281
+ 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87
+ A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F
+ 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B
+ EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F
+ 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8
+ 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10
+ 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8
+ CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF
+ 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32
+ F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF
+ 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165
+ 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF
+ 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2
+ ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312
+ FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312
+ 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA
+ 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082}
+ Instruction.Text =
+ 'Los siguientes pedidos no han podido ser eliminados, porque tien' +
+ 'en albaranes asociados'
+ Instruction.Glyph.Data = {
+ 0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
+ 00001C0806000000720DDF940000000970485973000017120000171201679FD2
+ 520000000467414D410000B18E7CFB5193000003104944415478DAAD96FB4B14
+ 5114C7CFE463DC1E606444BFF54424D3DC55CA52B1CCD7165A219905054182FD
+ 1452FD5810FD100406610A669A998FC4F5BDB6266265DAB60F5DD15E58FE03B2
+ 3F99D29ABBA7B9779C71C61D9D6177CFCE70CFDCB97B3EF7DCF3BD33C38082FD
+ B502B2B300CC656020048688A24F036233A0671F40D43160BA87BF62AEEE1010
+ 60D7AE293AD8B835815E9B625C80DC8F1E88D4A7C1E8C1FB8F9FD6C3C44035B3
+ 21500A65F6D700FE2EA580A5EC551F4A50359316B31D76EFDC0EE5F72A645045
+ A067AE0623074B8140891108F1057064CC0D556053DF173812B707E6DCF332A8
+ 225080D201DB4AF99BF335B4D502F371415BCC364833C4C29F458F0C2A031281
+ 081734AB0B3C88403C1E6E3E2E7960F6A8FFD27A7D3EF07A11DA2C76C84A8D87
+ A57FCB32E8B8A54A4C8C21B59365C9015996EF2240B6634DF435B51460A46D1F
+ 70C093AA46BF09C980C12CA914E6F371ADD707EF1DB3B0B0B8006EB79B8EA96B
+ EA5106121851245129118FD8BFA2DC5C53C6BAF5EBBBBA97C2D64EC064195B1F
+ 286C76E956A0EA5C51AEB4764A9929F5750D5A9581D2274B9B651C0BA2F514A8
+ 6F28E36B70AD9A4253EF97A9AA55B0CEBA87D03B645B3F43C1DE589C58186D10
+ 81150FCAC57B11E161B04517099BB953C78643141B01BA28EEE4DAB0B04DE2B8
+ CA460B9C399902E661BB3AB0F5AD038BF30CD4D7E7DD14815A61023027DD00EF
+ 469C1A80FD1C307F1578FD4A81E665945AD68924181A9D5007B6F4DBF1527E32
+ F5C9D3632351F8F549AEE916B14EAA039BCD362C31A6040D23E7887D4A03B0CF
+ 86C5C6641A24BB7646D3F2D51A77F8C1BCDCFFC79CD3EAC0D7BD56AE86294165
+ 4660CB5C6B737DD3062CCA31D00069E76E05241862CF1EDD05E7D40F756063CF
+ 673C7F5A4F679A59541EF03E4C8C3B0893DF67D481AFBAC7B0F05412CD30EBE2
+ ED80F7617CEC0198FEF94B1BF06C6622AD4B4EC99D80F7A1666043D7281A3312
+ FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312
+ 82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA
+ 1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082}
+ Instruction.Icon = tdiCustom
+ ButtonBar.Buttons = [cbOK]
+ ButtonBar.Cancel = cbOK
+ ButtonBar.UseCancel = False
+ MainIcon = tdiCustom
+ Title = 'FactuGES'
+ Position = dpMainFormCenter
+ Icon.Data = {
+ 0000010003002020100001000400E8020000360000002020000001000800A808
+ 00001E0300002020000001002000A8100000C60B000028000000200000004000
+ 0000010004000000000000020000000000000000000000000000000000000000
+ 000000008000008000000080800080000000800080008080000080808000C0C0
+ C0000000FF0000FF000000FFFF00FF000000FF00FF00FFFF0000FFFFFF000000
+ 0000000000000000000000000000000008777777777777777777777700000000
+ 0877767777677776777767760000000008F88888888888888888888700000000
+ 08F8FF8F8F888888888888860000000008FF8F8F88F8F8888888888C00000000
+ 08F88888F8888888888888860000000008F8688878E8888E88E8788700000000
+ 08F8688888F8F8FFFFFF88760000000008FF4888888F8FFFFFFF788700000000
+ 08F8676767677677677658E50000000008FF8888888887878787888700000000
+ 08FF8887887E8888888888860000000008FFE8E8E788C8E8FF8F8F8600000000
+ 08FFF8F8F8F8FF8F88F8F8870000000008FFFFFF8FF8F8F8F88F888600000000
+ 0FF8477878787878788788860000000008FF68888888F8FF8F8F788700000000
+ 08B7588888FF8FFFFFFF78860000083008BB47887776777777776F86000000B7
+ 8B9B73BB88788787E87878870000008BB8B9BB78888888EFF8F8FF8600000087
+ B8BB8B888E8E8E88FFF8F886000000088BBB888FFFFFFFFFF8F877770000B9BB
+ B8FFBB9B9BFFFFFFF87466460000BBB9BB8FBBBBB8FFFFFFF88F888700000008
+ B8BB88888FFFFFFFF88F8F7700000008BBBBBB8FFFFFFFFFFF8887700000007B
+ B7B98BB8FFFFFFFFF8887700000000B78B9B87B888F88F88F8877000000007B0
+ 08BB883B78888788787700000000000000B9000000000000000000000000FFFF
+ FFFFF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000F9800000FC000000FC000000FC000000FE000000F0000
+ 000F0000000FE000000FE000001FC000003FC000007F980000FFFCFFFFFF2800
+ 0000200000004000000001000800000000000004000000000000000000000001
+ 00000001000000000000694731007C5D49007E604C0081635000826451008567
+ 540085685500886B5900896D5B008A6E5D008B705F008E715F008B7260008C72
+ 61008E74640084766C00957A6900977D6D00887B72009A8171009D8272009C84
+ 76009D8778009F897B00A28A7900A08B7D00A18C7E00E1B06E00E1B67D003E7A
+ 970073A0A5007AA2B70074AFBD007BB2BB003CAACE0028A5DB0020ADDF000D9A
+ E500209EE3000DA6E2001AA4EF0000A6FF000CABFE0009ACFE0010A4F10015AC
+ FA0000B5FB0000B0FD000CB6FC0000BFF90000BAFD0004BAFD0009BBFB0013B6
+ F40015BFFA001CBDFB0026B7FD00589EC50040A4CD0040ABCC0050A2C7005DAE
+ C00060A3C20062A4C60060B7CB006AB0CD007BB6C80077BAC80061BADD0044AD
+ E50000C3F80007C6FB0000CAF80000CFFB0000D4F90026C8FA0026CDF8002BCC
+ F90039C4FB0039C2FC0039CAFA003FCFFB0024D6F80030D2F80039D5F80000F8
+ F8001FF8F8002CF6F8003EF4F8005AC6DC0070CDDF0052C0E40054C9E3004DCE
+ FA005FC7FF004FD2FB004DD9F8005FD9FB006ED3E70063CDFE0060D1FB0060D8
+ F90060DDF80046F8F90056F0F8005FFAFA0073E3F80073E4F90073EEF80060F1
+ F800958A84009A918C0081999500A68F8200AD968500A3968C00AE988900AD9A
+ 8D00B19A8B00AF9C9000B09E9200B59F9200B7A29300B2A19600B5A19400B7A4
+ 9700BDA79700B4A39800B1A59D00B4A79F00BAA69800BCA79900B4A89F00BCA8
+ 9900BAA89C00BDAA9D00BEAC9E0083ADBD00B5A9A100BDABA000BEADA100BFAF
+ A500A0BABE00C0AB9E00C1AC9E00C6AE9F00E2B98100E4BA8300E4BB8400E5BC
+ 8500E1BD8E00E3BF9000C0ADA000C2B0A300C2B1A500C4B2A600C1B2A800C3B5
+ AB00C8B4A800CCB9AD00CEBCB100D0BEB200D1BFB400E4C19300E5C29400E6C4
+ 9600E8C69900D0C9A300CFC1B800D2C1B600D3C3B800D5C4B900D6C6BC00D8C6
+ BC00D6C8BE00DAC9BF00ECD3B000EDD4B200EFD6B500E7D1B800E7D3BD00F0D8
+ B6008CB7C40080BEC70097C3C70099C3C900ABD7CF00AFD9DD0086E3F90086E7
+ F90086ECF8009EE5FB0090E8F900ACEDFC00BCEAFD00BCF1FB00BFF1FD00D7C9
+ C000D9CAC100DCCBC200DACCC200DDCCC300DACCC400DDCEC400DED0C600DED1
+ C900DED3CC00DFD4CD00E1D1C900E2D5CD00F0DCC200E3D8D200E5D9D200E2DA
+ D500E6DBD400E5DCD500E8DDD600E6DDD800E9DFD900E6E0DB00EAE0DA00EAE2
+ DD00ECE3DE00EBE4DE00ECE4DE00F3E7D900C6E1EF00C9EFFD00D7F6FD00DFF3
+ FF00DFFEFE00EBE7E300EDE6E100EFE7E400EEE8E400F0EAE600F2EDE900F2EE
+ EC00F4EFEC00F5F0EE00F9F4ED00E7FAFD00EBF8FF00F6F2F000F7F4F100F8F4
+ F200F9F7F500FAF8F600FBF9F900FCFBFA00FCFCFB00FEFEFE00000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000000000000000000007D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D0D
+ 0D0D0000000000000000009C9C19191919191919191919191919191919191919
+ 1903000000000000000000ABDECBCBC7C7AFABABABABAAA3A2A2A0A0A0A0A0A0
+ 8607000000000000000000ABECEAE9DEDEDEDED7D5D2D2D2CBCBCBCBB0CBB0CB
+ 9007000000000000000000ABEDECEAE9DEDEDBD7D7D5D2D2D2CDCDCBB0B0B0B0
+ 9007000000000000000000AFEDE9A9CFD2CFD2CDCBCBCBB0B0ABACA3A3A3A3B0
+ 9007000000000000000000AFF0D5017783838386868686869099909999907BB0
+ 9007000000000000000000B0F4D501A0B0CBD2D5DEECEDF7FAFAFAFAFAF77BAA
+ 9007000000000000000000CBF4DC01A0B0B0B0D2D5DBEAEDF7FAFAFAFAF47BB0
+ 9007000000000000000000CBF8DC010404070604090909090D0D110D110D02A3
+ 9007000000000000000000CBFAED9E9E9E9C999E8C8C8C868683837E7D7D7ACB
+ 9007000000000000000000CBFAF1A7A7A6A6A6A69898989898B5DBDBD5D5D2D2
+ 9907000000000000000000CDFAF796969696961D961D931D1DB4DEDBD7D5D5D2
+ 9C07000000000000000000CFFAFAFAFAF8F7F0F0EDEDEDECE9E9DEDEDED7D5D5
+ 9907000000000000000000CDFAFAEAF0EDEDECEAEAE9DEDEDBDCD5D5D5D5D2D5
+ 9C07000000000000000000D2FAEC01737D7D7B7D7D7B7D7B7D7B7B7B7D7B7DD2
+ 9907000000000000000000CFFAEC019EABB0CBD2D5DCDEECEDF4F4F4F4EA7BD2
+ 9C07000000000000000000B9524601A0B0B0CBB5D5DEEAEDF7FAFAFAFAF47DD5
+ 9C070000000000213F0000B83226010C3F5C1F111214141616191B1B1B1807D2
+ 9C07000000000000253D8A5B322D711E2860BA7E7E7A7E797A797979767676D5
+ 9E0700000000000041375E662F2B65314EBBB6B6B6B6B4B4B1E2F4EDEDEDECEA
+ 9C070000000000008F5D66663232394EC1A81C1C1C1C1C1C1CD3F7F4EDDED7D5
+ 9C0700000000000000B7BE6E5758BEBDE4E6E6F3FAFAFAFAFAFAF7F4D5928675
+ 7304000000002A2A2A2A4A6AFAE7562F2A2A2A5FFAFAFAFAFAFAF8D577010101
+ 0101000000004747472F4A59C5E7564A32474766FAFAFAFAFAFAFADCA0D2CFB0
+ A20C00000000000000436C6958686D6BC2C5C5E7FAFAFAFAFAFAFADEAADEDBCB
+ 1470000000000000004551534A4A5250C0E7FAFAFAFAFAFAFAFAFADEAAD7B514
+ 700000000000000042384C54472B613550C3FAFAFAFAFAFAFAFAFADEA1B0196F
+ 000000000000000024234463322EBC5A3664E3ECE9E9E9E9E9E9E9CF90731300
+ 000000000000003A3C00002232298B8B3E3B207E8B7E8B7E827E817E74100000
+ 0000000000000000000000003227000000000000000000000000000000000000
+ 000000000000FFFFFFFFF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000FF800000FF800000FF800000FF800
+ 000FF800000FF800000FF800000FF800000F9800000FC000000FC000000FC000
+ 000FE000000F0000000F0000000FE000000FE000001FC000003FC000007F9800
+ 00FFFCFFFFFF2800000020000000400000000100200000000000801000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000007067
+ 5F70AA9382E570513CE3735540E3735540E3735540E3735540E3735540E37355
+ 40E3735540E3735540E3735540E3735540E3735540E3735540E3735540E37355
+ 40E3735540E3735540E3735540E3735540E3735540E3735540E372533EE5BAAB
+ A070000000000000000000000000000000000000000000000000000000005E54
+ 4C7FCAB7ABFFC5B5AAFFA18877FFA28A78FFA28A79FFA28A79FFA28A79FFA28A
+ 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A
+ 79FFA28A79FFA28A79FFA28A79FFA28A79FFA28A79FFA58D7CFF7A5B46FFB2A1
+ 967F000000000000000000000000000000000000000000000000000000006055
+ 4D7ED7C6BBFFEDE4E0FFD9CCC4FFD9CCC4FFD9CBC3FFD8CAC1FFD7C9BFFFD6C7
+ BDFFD5C6BBFFD4C4BAFFD3C3B8FFD2C1B7FFD1C0B5FFD0BEB3FFCFBDB2FFCEBC
+ B0FFCEBBAFFFCEBBAFFFCEBBAFFFCEBBAFFFCEBCB0FFBEAA9CFF82644FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006056
+ 4D7ED7C8BCFFF2EBE8FFEFE9E5FFEEE7E2FFECE5E0FFEBE2DEFFEAE0DBFFE9DE
+ D8FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCDC4FFDCCB
+ C2FFDBC9BFFFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC1FFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006155
+ 4E7ED8C9BDFFF3EDE9FFF1EAE6FFF0E9E6FFEEE6E1FFECE4DFFFEBE2DDFFEAE0
+ DAFFE9DED7FFE7DBD4FFE5D9D1FFE3D7CFFFE2D4CCFFE1D2C9FFDFD0C7FFDDCD
+ C4FFDCCBC2FFDBC9BFFFDBC9BFFFDBC9BFFFDCCAC0FFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006157
+ 4E7ED9C9BFFFF4EFEDFFEFE8E3FFD0C2B9FFDFD5CEFFE0D5CEFFE0D4CCFFDED3
+ CBFFDDD1C8FFDCCFC6FFDACCC4FFD9CBC1FFD8C9BFFFD7C7BDFFD6C5BBFFD5C4
+ B9FFD3C2B7FFD2C0B5FFD2BFB4FFD2BFB4FFDAC8BEFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDACCC0FFF5F2EFFFE5DDD9FF5C3821FFB0998AFFB8A394FFB8A394FFB9A3
+ 94FFB8A495FFB9A597FFB9A698FFBAA698FFBBA799FFBBA89AFFBBA89BFFBCA8
+ 9BFFBCA89BFFBCA89BFFBBA89AFFB49E8FFFD8C6BBFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDBCBC1FFF8F4F3FFE7E0DBFF5F3C24FFD0BDB2FFDCCBC1FFDDCCC3FFE2D2
+ CBFFE7DBD4FFEDE2DEFFF0E8E6FFF5F0EDFFF9F7F4FFFDFDFDFFFFFFFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFAF8F7FFB39D8DFFD8C6BBFFC1AC9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006256
+ 4F7EDCCEC3FFFAF6F5FFE9E2DDFF5F3C24FFD2BFB5FFDFCDC4FFDECCC3FFE0CE
+ C6FFE4D4CDFFE9DDD6FFEFE4E0FFF1EAE8FFF7F1EFFFFBF8F6FFFFFEFFFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFCFBFAFFB5A090FFD9C7BEFFC1AD9FFF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006257
+ 4F7EDDCFC4FFFCF9F9FFE9E4E0FF5F3A23FF7C5D49FF7F5F4CFF7E5F4CFF7E60
+ 4DFF7F614DFF816350FF826552FF836654FF846856FF856A57FF866B59FF876C
+ 5BFF876D5BFF876D5BFF866B59FF72523DFFD5C3B9FFC1AFA1FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006357
+ 507EDECFC6FFFCFCFBFFF4F1F0FFC3B6AEFFC3B5ADFFC1B4ACFFC0B3AAFFBFB1
+ A9FFBEB0A6FFBDAEA5FFBDACA3FFBCABA2FFBBAAA0FFBAA99FFFB8A69AFFB8A4
+ 98FFB6A396FFB5A194FFB49F93FFB39D90FFDCCDC4FFC2AEA1FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006357
+ 507EDFD2C7FFFEFEFDFFF9F5EFFFE8C696FFE9C799FFE8C697FFE7C596FFE7C4
+ 95FFE6C394FFE5C293FFE4C091FFE4C090FFE3BF8FFFE2BD8CFFE9D5BFFFEBE1
+ DCFFEADFD8FFE7DCD5FFE5DAD3FFE4D8D0FFE3D4CCFFC2AFA2FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006458
+ 517EE0D3C8FFFFFFFFFFFAF5EFFFE3B77CFFE4B97FFFE2B87EFFE3B77DFFE2B7
+ 7CFFE2B67BFFE1B57AFFE1B479FFE0B478FFE0B377FFDFB174FFE6D0B7FFEBE1
+ DCFFE8DFD9FFE8DDD6FFE6D9D2FFE3D8D1FFE4D7CFFFC3AFA2FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006458
+ 517EE1D2C9FFFFFFFFFFFEFEFDFFFEFFFFFFFCFDFEFFFBFBFBFFF9F7F8FFF8F5
+ F6FFF7F3F2FFF5F1F0FFF4EFEEFFF1EDEBFFF0EBE9FFEEE9E6FFEDE6E2FFECE3
+ DEFFEBE1DBFFE9DFD9FFE8DDD6FFE6DAD3FFE5D9D2FFC3B0A3FF81634FFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006459
+ 517EE1D4CAFFFFFFFFFFFDFDFCFFEEEBE8FFF5F2F0FFF4F0EFFFF3EFECFFF2ED
+ EAFFF1EBE8FFEEE9E5FFEFE7E3FFECE5E1FFEAE4DEFFEAE1DCFFE8E0DAFFE7DE
+ D8FFE6DDD6FFE5DBD4FFE4D8D1FFE2D6CEFFE6DBD4FFC3B1A4FF81634EFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006559
+ 527EE2D4CAFFFFFFFFFFF0ECEAFF5B361EFFAB9383FFB39D8EFFB39D8DFFB39D
+ 8DFFB29D8DFFB29C8DFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C8CFFB29C
+ 8CFFB29C8CFFB29C8CFFB29C8DFFB39D8EFFE3D8D0FFC4B1A4FF81634EFFB2A1
+ 967E000000000000000000000000000000000000000000000000000000006559
+ 527EE5D4CAFFFFFFFFFFF7F0EBFF5F3B24FFCCB8ADFFD7C5BAFFD9C7BDFFDCCC
+ C3FFE1D4CCFFE5DAD4FFE8E0DBFFEDE5E1FFF1EBE9FFF5F2EFFFF7F5F3FFF8F6
+ F4FFF8F5F4FFF8F6F4FFF1EEEAFFB29C8DFFE6DAD3FFC4B2A5FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000000000000000000000685A
+ 527E9AC6C9FF35CFFEFF3DAEEBFF663E24FFD2BFB4FFE0CBBFFFE0C9BDFFE1CD
+ C4FFE4D5CDFFE9DED7FFEEE5E0FFF2EBE8FFF6F2F0FFFCF8F8FFFFFFFEFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFCFAF9FFB49E8FFFE7DED7FFC5B3A6FF81634EFFB2A1
+ 967E00000000000000000000000000000000007792910072A7A3001E33366957
+ 4C7C86C1C8FF00BFFBFF079AEBFF6A3E23FF926D57FF5FA3C8FF4AC1E8FF6C9C
+ A2FF917260FF927767FF947A69FF957C6CFF977E6FFF998171FF9A8374FF9B85
+ 76FF9C8678FF9C8678FF998274FF7D5E49FFE3D9D4FFC5B3A7FF81634EFFB2A1
+ 967E00000000000000000000000000000000005A6F7000A9E5E40075AEAE5C90
+ A5BD75D0E0FF00BFFAFF0CA3F4FF8A9A91FF3C7492FF03A4E4FF4AD5FFFF98C4
+ CBFFB3A196FFB1A197FFB0A096FFB09F95FFAF9D92FFAF9C91FFAD9A8EFFAC99
+ 8CFFAB988AFFAB9789FFAA9688FFA99386FFE8E0DAFFC5B4A7FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000002DA5BFC110C2FFFF4DD0
+ FDFF64DBF9FF00B3FAFF09A8FEFF68D7FFFF04B5FFFF24CCFBFFAFD8CEFFF7DA
+ B8FFF3DBBBFFF3DBBAFFF2D9B9FFF1D8B7FFF0D7B4FFEED5B2FFF6EADDFFF9F6
+ F4FFF7F3F1FFF5F1EEFFF5EFECFFF4EDEAFFF1EBE7FFC6B4A8FF81634EFFB2A1
+ 967E00000000000000000000000000000000000000005F8A909142C7E4E960DE
+ F8FF64D7FAFF00B6FDFF00B8FDFF21B2FDFF1ECCF7FF93EBFCFFD2C69BFFE1AB
+ 63FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDFAC66FFDEA961FFEFDBC0FFF8F6
+ F5FFF6F2F0FFF3EDEBFFECE2DCFFE9DFD9FFE5DBD6FFC2B1A4FF81634FFFB2A1
+ 967E000000000000000000000000000E171A000E171A00040B145994A4A990EB
+ FCFF61F1F7FF13FAF7FF23F9F7FF93EDF7FF8CE5F8FFD5F2FDFFE9F8FFFFE7F8
+ FFFFF0FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFFFFFFFDFEFFFFFAFAF9FFF9F7
+ F5FFF7F2F0FFE8DFD8FFC7AE9FFFBEA998FFAF9888FFB09A8AFF7F604DFFB2A1
+ 967E00000000000000000000000000AAFFFF00AAFFFF00AAFFFF00A4FFFF00CD
+ FAFF5DFCF9FFFFFFFFFFEEFEFEFF00FBF7FF00AAFEFF00A1FFFF00A1FFFF00A0
+ FFFF56C3FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFCFDFBFFFCFBFAFFFBFA
+ F8FFE6DDD6FFAA9180FF5D3922FF603D26FF613E27FF613E28FF634029FFB4A3
+ 987E00000000000000000000000000CAFFFF00CAFFFF00CBFFFF00B0FFFF00CD
+ FBFF38F5F7FFC3EFFAFFF0FFFEFF00FAF7FF00C8F7FF00C2F7FF00C2F7FF00C1
+ F7FF57D7FAFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFEFEFFFDFDFCFFFCFC
+ FBFFE7DED8FFCCB9ACFFE6DBD5FFE2D7D0FFDCCFC5FFD7C5BBFF8E705DFFB4A2
+ 9680000000000000000000000000002E383C002E383C00252F364C99B0B57DE8
+ FBFF59F1F7FF25F7F7FF41FAF8FF7CEEF7FF77E4F7FFB5EFFCFFC6F2FDFFC3F2
+ FDFFD9F6FCFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFDFEFEFFFEFE
+ FEFFE9E1DAFFCEBCAFFFF1E9E3FFEADFD8FFE4D5CCFF9D816FFF3A291F868985
+ 831C00000000000000000000000000000000000000004E7073774AB0DADC37C9
+ FBFF22D5F7FF00D3F9FF02C3FBFF37D5F7FF34BEFCFFA2E6FAFFECFBFDFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFEFF
+ FFFFEAE2DCFFCDBBADFFEADFD8FFE3D5CBFF9F8271FF3E2D2386050100200000
+ 000000000000000000000000000000000000000000003E9CC4C219C0FFFF23C9
+ FCFF30D3F8FF00BEF8FF06A8FEFF4FDCF8FF00B8FCFF32C2FBFFC0EBFCFFFFFF
+ FFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFF
+ FFFFEAE3DEFFCDB9ABFFDDCEC4FFA58979FF3E2C1F8F0905041B000000000000
+ 000000000000000000000000000000000000003451510099DDDB0091C0C35DAD
+ BCCF76D7E9FF00BEF9FF10A9FBFFBDDEDEFF5AC8DDFF0AB5F7FF62CEFFFFCBE4
+ F1FFF1E7E0FFEFE7E1FFEEE6E1FFEEE6E1FFEEE6E0FFEDE6E0FFEDE5E0FFEEE6
+ E1FFE1D4CCFFC5AE9FFFA68D7FF53E2718A10402000E00000000000000000000
+ 0000000000000000000000000000000000000075B7AF0099C7C500323E425442
+ 3B5C6BA8B1DA00C1FCFF0EA1F3F8A98E80C0AB9081C12698B1C10088C4C14C85
+ A3C1A18D80C19E8D81C19E8B81C19D8C80C19B8C7FC19B8A7FC19C897FC19A89
+ 7EC19B8B7EC1897769C2432B1BAC000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 00000045565A00C5FFFF0094E6E2000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000000000000000000000000000000000000000
+ 0000000000000000000000000000FFFFFFFFF0000007F0000007F0000007F000
+ 0007F0000007F0000007F0000007F0000007F0000007F0000007F0000007F000
+ 0007F0000007F0000007F0000007F0000007F0000007F0000007800000078000
+ 0007C0000007C000000700000007000000070000000700000007C000000FC000
+ 001F8000003F800000FFF8FFFFFF}
+ Width = 450
+ Left = 184
+ Top = 112
+ end
end
diff --git a/Source/Modulos/Articulos/Views/uEditorArticulos.pas b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
index f8b1594d..64503242 100644
--- a/Source/Modulos/Articulos/Views/uEditorArticulos.pas
+++ b/Source/Modulos/Articulos/Views/uEditorArticulos.pas
@@ -12,13 +12,15 @@ uses
JvAppRegistryStorage, JvFormPlacement, ExtCtrls, uCustomView, uViewBase,
uViewBarraSeleccion, pngimage, uIEditorArticulos, uEditorGridBase,
JvComponentBase, uViewGridBase, uArticulosController, JvExComCtrls,
- JvStatusBar, uDAInterfaces;
+ JvStatusBar, uDAInterfaces, JSDialog;
type
TfEditorArticulos = class(TfEditorGridBase, IEditorArticulos)
actFamilias: TAction;
+ JsListaArticulosNoEliminados: TJSDialog;
procedure FormShow(Sender: TObject);
procedure actFamiliasExecute(Sender: TObject);
+ procedure actModificarUpdate(Sender: TObject);
private
FArticulos: IBizArticulo;
FController : IArticulosController;
@@ -52,7 +54,7 @@ implementation
uses
uCustomEditor, uDataModuleArticulos, uDataModuleUsuarios, uFactuGES_App,
uEditorArticulo, uEditorDBBase, uBizFamilias, uFamiliasController,
- cxGrid, cxGridCustomTableView; //, uListaArticulos;
+ cxGrid, uGridUtils, uDBSelectionListUtils, cxGridCustomTableView; //, uListaArticulos;
{$R *.dfm}
@@ -152,15 +154,52 @@ begin
end;
procedure TfEditorArticulos.EliminarInterno;
+var
+ AArticulos: IBizArticulo;
+ AllItems: Boolean;
begin
- if (Application.MessageBox('¿Desea borrar este artículo?, si hay unidades de este articulo en el almacén serán borradas.', 'Atención', MB_YESNO) = IDYES) then
+ AArticulos := Nil;
+ AllItems := False;
+
+ if MultiSelect and Assigned(ViewGrid) then
+ AllItems := (ViewGrid.NumSeleccionados > 1);
+
+ if AllItems then
begin
- inherited;
- //Para que en el caso de no poderse realizar la operación se refresquen
- //los datos y no nos permita eliminar un registro a la segunda
- if not FController.Eliminar(Articulos) then
- actRefrescar.Execute;
+ if (Application.MessageBox('¿Desea borrar los artículos seleccionados?, , si hay unidades de estos articulos en el almacén serán borradas.', 'Atención', MB_YESNO) = IDYES) then
+ begin
+ SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Articulos as ISeleccionable).SelectedRecords);
+ AArticulos := (Controller as IArticulosController).ExtraerSeleccionados(Articulos) as IBizArticulo;
+ end
+ end
+ else begin
+ if (Application.MessageBox('¿Desea borrar este artículo?, si hay unidades de este articulo en el almacén serán borradas.', 'Atención', MB_YESNO) = IDYES) then
+ AArticulos := Articulos;
end;
+
+ if Assigned(AArticulos) then
+ begin
+ FController.Eliminar(AArticulos, AllItems);
+ if AllItems then
+ begin
+ if (AArticulos.DataTable.RecordCount > 0) then
+ begin
+ with AArticulos.DataTable do
+ begin
+ First;
+ while not EOF do
+ begin
+ JsListaArticulosNoEliminados.Content.Add('Ref. articulo: ' + AArticulos.REFERENCIA + ' ' + AArticulos.DESCRIPCION);
+ Next;
+ end;
+ end;
+ JsListaArticulosNoEliminados.Execute;
+ end;
+ actRefrescar.Execute;
+ end;
+ end;
+
+ ViewGrid.GotoFirst;
end;
procedure TfEditorArticulos.actFamiliasExecute(Sender: TObject);
@@ -178,6 +217,14 @@ begin
end;
end;
+procedure TfEditorArticulos.actModificarUpdate(Sender: TObject);
+begin
+ inherited;
+ if (ViewGrid.NumSeleccionados <> 1)
+ or (not Controller.EsModificable(FArticulos)) then
+ (Sender as TAction).Enabled := False;
+end;
+
procedure TfEditorArticulos.AsignarVista;
begin
ViewGrid := CreateView(TfrViewArticulos) as IViewArticulos;
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.dfm b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
index f32db3e4..359da2f6 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.dfm
@@ -1,6 +1,6 @@
inherited frViewArticulo: TfrViewArticulo
- Width = 814
- Height = 450
+ Width = 1412
+ Height = 634
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
@@ -10,19 +10,20 @@ inherited frViewArticulo: TfrViewArticulo
object dxLayoutControlArticulo: TdxLayoutControl
Left = 0
Top = 0
- Width = 814
- Height = 393
- Align = alTop
+ Width = 1412
+ Height = 634
+ Align = alClient
ParentBackground = True
TabOrder = 0
TabStop = False
- AutoContentSizes = [acsWidth]
+ AutoContentSizes = [acsWidth, acsHeight]
ExplicitWidth = 451
+ ExplicitHeight = 304
DesignSize = (
- 814
- 393)
+ 1412
+ 634)
object PngSpeedButton2: TPngSpeedButton
- Left = 752
+ Left = 1321
Top = 28
Width = 23
Height = 22
@@ -49,8 +50,8 @@ inherited frViewArticulo: TfrViewArticulo
PngOptions = [pngBlendOnDisabled, pngGrayscaleOnDisabled]
end
object PngSpeedButton1: TPngSpeedButton
- Left = 752
- Top = 56
+ Left = 1350
+ Top = 28
Width = 23
Height = 22
Action = actEliminar
@@ -98,8 +99,8 @@ inherited frViewArticulo: TfrViewArticulo
Width = 108
end
object eNoComisionable: TcxDBCheckBox
- Left = 103
- Top = 136
+ Left = 424
+ Top = 109
Caption = 'Art'#237'culo no comisionable'
DataBinding.DataField = 'COMISIONABLE'
DataBinding.DataSource = dsViewArticulo
@@ -122,8 +123,10 @@ inherited frViewArticulo: TfrViewArticulo
Width = 144
end
object eImagen: TcxImage
- Left = 477
- Top = 28
+ Left = 708
+ Top = 56
+ Align = alClient
+ AutoSize = True
Properties.GraphicClassName = 'TJPEGImage'
Properties.PopupMenuLayout.MenuItems = []
Properties.Stretch = True
@@ -138,9 +141,9 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 5
- Height = 100
- Width = 140
+ TabOrder = 13
+ Height = 553
+ Width = 500
end
object cbFamilia: TcxDBComboBox
Left = 103
@@ -168,21 +171,29 @@ inherited frViewArticulo: TfrViewArticulo
Width = 70
end
inline frViewDatosYSeleccionProveedor1: TfrViewDatosYSeleccionProveedor
- Left = 425
+ Left = 22
Top = 193
- Width = 350
- Height = 202
+ Width = 656
+ Height = 277
+ Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
Font.Name = 'Tahoma'
Font.Style = []
ParentFont = False
- TabOrder = 12
+ TabOrder = 6
ReadOnly = False
- ExplicitLeft = 425
+ ExplicitLeft = 22
ExplicitTop = 193
+ ExplicitWidth = 656
+ ExplicitHeight = 277
inherited dxLayoutControl1: TdxLayoutControl
+ Width = 656
+ Height = 277
+ Align = alClient
+ ExplicitWidth = 656
+ ExplicitHeight = 277
inherited edtNIFCIF: TcxDBTextEdit
ExplicitWidth = 562
Width = 562
@@ -199,11 +210,31 @@ inherited frViewArticulo: TfrViewArticulo
ExplicitWidth = 327
Width = 327
end
+ inherited edtCodigoPostal: TcxDBTextEdit
+ Left = 564
+ ExplicitLeft = 564
+ end
+ inherited Button1: TBitBtn
+ Width = 140
+ ExplicitWidth = 140
+ end
+ inherited Button2: TBitBtn
+ Left = 156
+ Width = 160
+ ExplicitLeft = 156
+ ExplicitWidth = 160
+ end
+ inherited Button3: TBitBtn
+ Left = 436
+ Width = 210
+ ExplicitLeft = 436
+ ExplicitWidth = 210
+ end
end
end
object eReferenciaProv: TcxDBTextEdit
Left = 103
- Top = 193
+ Top = 506
Anchors = [akLeft, akTop, akRight]
DataBinding.DataField = 'REFERENCIA_PROV'
DataBinding.DataSource = dsViewArticulo
@@ -215,12 +246,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleDisabled.LookAndFeel.NativeStyle = True
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 6
+ TabOrder = 7
Width = 86
end
object ePrecioCoste: TcxDBCurrencyEdit
Left = 103
- Top = 220
+ Top = 533
DataBinding.DataField = 'PRECIO_COSTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -235,12 +266,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 7
+ TabOrder = 8
Width = 86
end
object eDescuento: TcxDBSpinEdit
Left = 103
- Top = 247
+ Top = 560
DataBinding.DataField = 'DESCUENTO'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -258,12 +289,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 8
+ TabOrder = 9
Width = 86
end
object ePrecioNeto: TcxDBCurrencyEdit
Left = 103
- Top = 274
+ Top = 587
DataBinding.DataField = 'PRECIO_NETO'
DataBinding.DataSource = dsViewArticulo
Enabled = False
@@ -283,12 +314,12 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.TextColor = clWindowText
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 9
+ TabOrder = 10
Width = 86
end
object ePrecioPorte: TcxDBCurrencyEdit
Left = 103
- Top = 301
+ Top = 614
DataBinding.DataField = 'PRECIO_PORTE'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -303,7 +334,7 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 10
+ TabOrder = 11
Width = 86
end
object cbNoInventariable: TcxDBCheckBox
@@ -332,7 +363,7 @@ inherited frViewArticulo: TfrViewArticulo
end
object ePrecioPVP: TcxDBCurrencyEdit
Left = 103
- Top = 328
+ Top = 641
DataBinding.DataField = 'PRECIO_PVP'
DataBinding.DataSource = dsViewArticulo
Properties.Alignment.Horz = taRightJustify
@@ -347,17 +378,38 @@ inherited frViewArticulo: TfrViewArticulo
StyleFocused.LookAndFeel.NativeStyle = True
StyleHot.LookAndFeel.Kind = lfStandard
StyleHot.LookAndFeel.NativeStyle = True
- TabOrder = 11
+ TabOrder = 12
Width = 400
end
+ object eNotas: TcxDBTextEdit
+ Left = 103
+ Top = 136
+ DataBinding.DataField = 'NOTAS'
+ DataBinding.DataSource = dsViewArticulo
+ Style.BorderColor = clWindowFrame
+ Style.BorderStyle = ebs3D
+ Style.Color = 14745599
+ 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 = 5
+ Width = 575
+ end
object dxLayoutControlArticuloGroup_Root: TdxLayoutGroup
ShowCaption = False
Hidden = True
+ LayoutDirection = ldHorizontal
ShowBorder = False
- object dxLayoutControlArticuloGroup7: TdxLayoutGroup
+ object dxLayoutGrupoIzquierda: TdxLayoutGroup
+ AutoAligns = []
+ Caption = 'izquierda'
ShowCaption = False
- Hidden = True
- LayoutDirection = ldHorizontal
ShowBorder = False
object dxLayoutControlArticuloGroup1: TdxLayoutGroup
AutoAligns = []
@@ -393,61 +445,46 @@ inherited frViewArticulo: TfrViewArticulo
Control = cbFamilia
ControlOptions.ShowBorder = False
end
- object dxLayoutControlArticuloItem7: TdxLayoutItem
- AutoAligns = [aaVertical]
- AlignHorz = ahClient
- Caption = ' '
- Control = cbNoInventariable
- ControlOptions.ShowBorder = False
+ object dxLayoutControlArticuloGroup2: TdxLayoutGroup
+ ShowCaption = False
+ Hidden = True
+ LayoutDirection = ldHorizontal
+ ShowBorder = False
+ object dxLayoutControlArticuloItem7: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = ' '
+ Control = cbNoInventariable
+ ControlOptions.ShowBorder = False
+ end
+ object dxLayoutControlArticuloItem1: TdxLayoutItem
+ AutoAligns = [aaVertical]
+ AlignHorz = ahClient
+ Caption = ' '
+ Visible = False
+ Control = eNoComisionable
+ ControlOptions.ShowBorder = False
+ end
end
- object dxLayoutControlArticuloItem1: TdxLayoutItem
- AutoAligns = [aaVertical]
- AlignHorz = ahClient
- Caption = ' '
- Visible = False
- Control = eNoComisionable
+ object dxLayoutControlArticuloItem10: TdxLayoutItem
+ Caption = 'Notas:'
+ Control = eNotas
ControlOptions.ShowBorder = False
end
end
end
end
- object dxLayoutControlArticuloGroup2: TdxLayoutGroup
+ object dxLayoutControlArticuloGroup12: TdxLayoutGroup
AutoAligns = []
AlignHorz = ahClient
AlignVert = avClient
- Caption = 'Imagen'
- LayoutDirection = ldHorizontal
- object dxLayoutControlArticuloItem6: TdxLayoutItem
- AutoAligns = []
- AlignHorz = ahClient
- AlignVert = avClient
- Control = eImagen
+ Caption = 'Proveedor para el art'#237'culo'
+ object dxLayoutControlArticuloItem14: TdxLayoutItem
+ Control = frViewDatosYSeleccionProveedor1
+ ControlOptions.AutoColor = True
ControlOptions.ShowBorder = False
end
- object dxLayoutControlArticuloGroup5: TdxLayoutGroup
- AutoAligns = [aaVertical]
- AlignHorz = ahRight
- ShowCaption = False
- Hidden = True
- ShowBorder = False
- object dxLayoutControlArticuloItem2: TdxLayoutItem
- ShowCaption = False
- Control = PngSpeedButton2
- ControlOptions.ShowBorder = False
- end
- object dxLayoutControlArticuloItem5: TdxLayoutItem
- ShowCaption = False
- Control = PngSpeedButton1
- ControlOptions.ShowBorder = False
- end
- end
end
- end
- object dxLayoutControlArticuloGroup3: TdxLayoutGroup
- Caption = 'New Group'
- ShowCaption = False
- LayoutDirection = ldHorizontal
- ShowBorder = False
object dxLayoutControlArticuloGroup11: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahClient
@@ -485,15 +522,38 @@ inherited frViewArticulo: TfrViewArticulo
ControlOptions.ShowBorder = False
end
end
- object dxLayoutControlArticuloGroup12: TdxLayoutGroup
+ end
+ object dxLayoutGrupoDerecha: TdxLayoutGroup
+ AutoAligns = []
+ AlignHorz = ahClient
+ AlignVert = avClient
+ Caption = 'Imagen'
+ object dxLayoutControlArticuloGroup5: TdxLayoutGroup
AutoAligns = [aaVertical]
AlignHorz = ahRight
- Caption = 'Proveedor para el art'#237'culo'
- object dxLayoutControlArticuloItem14: TdxLayoutItem
- Control = frViewDatosYSeleccionProveedor1
- ControlOptions.AutoColor = True
+ ShowCaption = False
+ Hidden = True
+ LayoutDirection = ldHorizontal
+ ShowBorder = False
+ object dxLayoutControlArticuloItem2: TdxLayoutItem
+ AutoAligns = [aaHorizontal]
+ ShowCaption = False
+ Control = PngSpeedButton2
ControlOptions.ShowBorder = False
end
+ object dxLayoutControlArticuloItem5: TdxLayoutItem
+ AutoAligns = [aaHorizontal]
+ ShowCaption = False
+ Control = PngSpeedButton1
+ ControlOptions.ShowBorder = False
+ end
+ end
+ object dxLayoutControlArticuloItem6: TdxLayoutItem
+ AutoAligns = []
+ AlignHorz = ahClient
+ AlignVert = avClient
+ Control = eImagen
+ ControlOptions.ShowBorder = False
end
end
end
diff --git a/Source/Modulos/Articulos/Views/uViewArticulo.pas b/Source/Modulos/Articulos/Views/uViewArticulo.pas
index 2880b16f..9db9d265 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulo.pas
+++ b/Source/Modulos/Articulos/Views/uViewArticulo.pas
@@ -33,7 +33,7 @@ type
eReferencia: TcxDBTextEdit;
dxLayoutControlArticuloItem8: TdxLayoutItem;
eDescripcion: TcxDBTextEdit;
- dxLayoutControlArticuloGroup2: TdxLayoutGroup;
+ dxLayoutGrupoDerecha: TdxLayoutGroup;
dxLayoutControlArticuloItem1: TdxLayoutItem;
eNoComisionable: TcxDBCheckBox;
dxLayoutControlArticuloGroup4: TdxLayoutGroup;
@@ -46,8 +46,6 @@ type
PngSpeedButton2: TPngSpeedButton;
dxLayoutControlArticuloItem5: TdxLayoutItem;
PngSpeedButton1: TPngSpeedButton;
- dxLayoutControlArticuloGroup3: TdxLayoutGroup;
- dxLayoutControlArticuloGroup7: TdxLayoutGroup;
eImagen: TcxImage;
dxLayoutControlArticuloItem6: TdxLayoutItem;
dxLayoutControlArticuloGroup5: TdxLayoutGroup;
@@ -72,6 +70,10 @@ type
cbNoInventariable: TcxDBCheckBox;
dxLayoutControlArticuloItem9: TdxLayoutItem;
ePrecioPVP: TcxDBCurrencyEdit;
+ dxLayoutGrupoIzquierda: TdxLayoutGroup;
+ dxLayoutControlArticuloItem10: TdxLayoutItem;
+ eNotas: TcxDBTextEdit;
+ dxLayoutControlArticuloGroup2: TdxLayoutGroup;
procedure actEliminarExecute(Sender: TObject);
procedure actAnadirExecute(Sender: TObject);
procedure cbFamiliaPropertiesInitPopup(Sender: TObject);
diff --git a/Source/Modulos/Articulos/Views/uViewArticulos.dfm b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
index 282ec4c1..96fec4fb 100644
--- a/Source/Modulos/Articulos/Views/uViewArticulos.dfm
+++ b/Source/Modulos/Articulos/Views/uViewArticulos.dfm
@@ -16,6 +16,7 @@ inherited frViewArticulos: TfrViewArticulos
end>
OptionsBehavior.PullFocusing = True
OptionsCustomize.ColumnHidingOnGrouping = False
+ OptionsSelection.MultiSelect = True
OptionsView.GroupFooters = gfAlwaysVisible
object cxGridViewINVENTARIABLE: TcxGridDBColumn
Caption = #191'Inventariable?'
@@ -160,18 +161,32 @@ inherited frViewArticulos: TfrViewArticulos
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 250
+ Width = 250
end
inherited edtFechaIniFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 250
+ Width = 250
end
inherited edtFechaFinFiltro: TcxDateEdit
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 250
+ Width = 250
+ end
+ inherited txtFiltroTodo2: TcxTextEdit
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitWidth = 250
+ Width = 250
end
end
end
diff --git a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
index 32ecb6bb..605dfde8 100644
--- a/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
+++ b/Source/Modulos/Facturas de cliente/Controller/uFacturasClienteController.pas
@@ -1042,7 +1042,7 @@ begin
AFactura.Cancel;
//Siempre modificaremos el seleccionado tanto si es una lista de facturas a eliminar como si es la propia lista del editor.
- if AFactura.VERIFACTU = 0 then
+ if AFactura.VERIFACTU <> 1 then
begin
if not AFactura.DataTable.Editing then
AFactura.DataTable.Edit;
diff --git a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
index 4224e90d..05efa234 100644
--- a/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Data/uDataModuleFacturasCliente.dfm
@@ -334,6 +334,10 @@ inherited DataModuleFacturasCliente: TDataModuleFacturasCliente
item
Name = 'VERIFACTU'
DataType = datSmallInt
+ end
+ item
+ Name = 'VERIFACTU_NOTES'
+ DataType = datMemo
end>
Params = <>
StreamingOptions = [soDisableEventsWhileStreaming]
diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas
index 76a19201..3afbdab7 100644
--- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas
+++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas
@@ -9,9 +9,9 @@ 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_ListaAnosFacturas = '{B69B55BD-5E55-4B54-A51B-42A78E3A7CE9}';
- RID_FacturasCliente = '{138DC6B2-AE65-442B-A817-DAF8B232F651}';
- RID_FacturasCliente_Detalles = '{D46B6B5D-729B-483E-BE25-99E1C9A4479B}';
+ RID_ListaAnosFacturas = '{71FE2674-173D-4709-B902-4C7DFDF34522}';
+ RID_FacturasCliente = '{B6C04111-8712-48BF-983D-3DA435302F3B}';
+ RID_FacturasCliente_Detalles = '{05038E0E-9ECA-47C3-95A8-9E6BD9762D18}';
{ Data table names }
nme_ListaAnosFacturas = 'ListaAnosFacturas';
@@ -78,6 +78,7 @@ const
fld_FacturasClienteTIPO_FACTURA = 'TIPO_FACTURA';
fld_FacturasClienteLISTA_NOMBRES = 'LISTA_NOMBRES';
fld_FacturasClienteVERIFACTU = 'VERIFACTU';
+ fld_FacturasClienteVERIFACTU_NOTES = 'VERIFACTU_NOTES';
{ FacturasCliente field indexes }
idx_FacturasClienteID = 0;
@@ -133,6 +134,7 @@ const
idx_FacturasClienteTIPO_FACTURA = 50;
idx_FacturasClienteLISTA_NOMBRES = 51;
idx_FacturasClienteVERIFACTU = 52;
+ idx_FacturasClienteVERIFACTU_NOTES = 53;
{ FacturasCliente_Detalles fields }
fld_FacturasCliente_DetallesID = 'ID';
@@ -169,7 +171,7 @@ const
type
{ IListaAnosFacturas }
IListaAnosFacturas = interface(IDAStronglyTypedDataTable)
- ['{0A78F7B9-733E-4E29-A0AD-C80889316AF8}']
+ ['{3C4BE188-2809-4428-8CCB-6EAAEABFDDB1}']
{ Property getters and setters }
function GetANOValue: String;
procedure SetANOValue(const aValue: String);
@@ -204,7 +206,7 @@ type
{ IFacturasCliente }
IFacturasCliente = interface(IDAStronglyTypedDataTable)
- ['{6D58B4D9-9AA3-4552-99A9-27A1BB728D85}']
+ ['{0554ED96-C35C-4516-8681-82A0B77D9339}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -417,6 +419,9 @@ type
procedure SetVERIFACTUValue(const aValue: SmallInt);
function GetVERIFACTUIsNull: Boolean;
procedure SetVERIFACTUIsNull(const aValue: Boolean);
+ function GetVERIFACTU_NOTESValue: IROStrings;
+ function GetVERIFACTU_NOTESIsNull: Boolean;
+ procedure SetVERIFACTU_NOTESIsNull(const aValue: Boolean);
{ Properties }
@@ -526,13 +531,17 @@ type
property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull;
property VERIFACTU: SmallInt read GetVERIFACTUValue write SetVERIFACTUValue;
property VERIFACTUIsNull: Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
+ property VERIFACTU_NOTES: IROStrings read GetVERIFACTU_NOTESValue;
+ property VERIFACTU_NOTESIsNull: Boolean read GetVERIFACTU_NOTESIsNull write SetVERIFACTU_NOTESIsNull;
end;
{ TFacturasClienteDataTableRules }
TFacturasClienteDataTableRules = class(TIntfObjectDADataTableRules, IFacturasCliente)
private
f_OBSERVACIONES: IROStrings;
+ f_VERIFACTU_NOTES: IROStrings;
procedure OBSERVACIONES_OnChange(Sender: TObject);
+ procedure VERIFACTU_NOTES_OnChange(Sender: TObject);
protected
{ Property getters and setters }
function GetIDValue: Integer; virtual;
@@ -746,6 +755,9 @@ type
procedure SetVERIFACTUValue(const aValue: SmallInt); virtual;
function GetVERIFACTUIsNull: Boolean; virtual;
procedure SetVERIFACTUIsNull(const aValue: Boolean); virtual;
+ function GetVERIFACTU_NOTESValue: IROStrings; virtual;
+ function GetVERIFACTU_NOTESIsNull: Boolean; virtual;
+ procedure SetVERIFACTU_NOTESIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID: Integer read GetIDValue write SetIDValue;
@@ -854,6 +866,8 @@ type
property LISTA_NOMBRESIsNull: Boolean read GetLISTA_NOMBRESIsNull write SetLISTA_NOMBRESIsNull;
property VERIFACTU: SmallInt read GetVERIFACTUValue write SetVERIFACTUValue;
property VERIFACTUIsNull: Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
+ property VERIFACTU_NOTES: IROStrings read GetVERIFACTU_NOTESValue;
+ property VERIFACTU_NOTESIsNull: Boolean read GetVERIFACTU_NOTESIsNull write SetVERIFACTU_NOTESIsNull;
public
constructor Create(aDataTable: TDADataTable); override;
@@ -863,7 +877,7 @@ type
{ IFacturasCliente_Detalles }
IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable)
- ['{C9F165D5-5856-41F6-A5BF-9139520624DC}']
+ ['{2F96F605-C1B7-4D77-8688-9EEAF8BB15D0}']
{ Property getters and setters }
function GetIDValue: Integer;
procedure SetIDValue(const aValue: Integer);
@@ -1099,6 +1113,10 @@ begin
StrList := TStringList.Create;
StrList.OnChange := OBSERVACIONES_OnChange;
f_OBSERVACIONES := NewROStrings(StrList,True);
+
+ StrList := TStringList.Create;
+ StrList.OnChange := VERIFACTU_NOTES_OnChange;
+ f_VERIFACTU_NOTES := NewROStrings(StrList,True);
end;
destructor TFacturasClienteDataTableRules.Destroy;
@@ -1111,6 +1129,11 @@ begin
if DataTable.Editing then DataTable.Fields[idx_FacturasClienteOBSERVACIONES].AsVariant := TStringList(Sender).Text;
end;
+procedure TFacturasClienteDataTableRules.VERIFACTU_NOTES_OnChange(Sender: TObject);
+begin
+ if DataTable.Editing then DataTable.Fields[idx_FacturasClienteVERIFACTU_NOTES].AsVariant := TStringList(Sender).Text;
+end;
+
function TFacturasClienteDataTableRules.GetIDValue: Integer;
begin
result := DataTable.Fields[idx_FacturasClienteID].AsInteger;
@@ -2220,6 +2243,23 @@ begin
DataTable.Fields[idx_FacturasClienteVERIFACTU].AsVariant := Null;
end;
+function TFacturasClienteDataTableRules.GetVERIFACTU_NOTESValue: IROStrings;
+begin
+ result := f_VERIFACTU_NOTES;
+ result.Text := DataTable.Fields[idx_FacturasClienteVERIFACTU_NOTES].AsString;
+end;
+
+function TFacturasClienteDataTableRules.GetVERIFACTU_NOTESIsNull: boolean;
+begin
+ result := DataTable.Fields[idx_FacturasClienteVERIFACTU_NOTES].IsNull;
+end;
+
+procedure TFacturasClienteDataTableRules.SetVERIFACTU_NOTESIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ DataTable.Fields[idx_FacturasClienteVERIFACTU_NOTES].AsVariant := Null;
+end;
+
{ TFacturasCliente_DetallesDataTableRules }
constructor TFacturasCliente_DetallesDataTableRules.Create(aDataTable: TDADataTable);
diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas
index 0d2a8eef..8ca7c048 100644
--- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas
+++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas
@@ -9,14 +9,14 @@ 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_ListaAnosFacturasDelta = '{8684B20C-9A58-4343-ACBF-6E788A6D9342}';
- RID_FacturasClienteDelta = '{F6D07436-A868-46A4-AF86-357F3FB7A074}';
- RID_FacturasCliente_DetallesDelta = '{904B050A-78E2-4159-AD88-28EB0F6F6F69}';
+ RID_ListaAnosFacturasDelta = '{753DC6A9-0D33-44D6-AC73-56B24BD7B037}';
+ RID_FacturasClienteDelta = '{C3660EB7-FB02-49EF-8909-756D1320539A}';
+ RID_FacturasCliente_DetallesDelta = '{339CC635-252E-414D-AFD0-10BB5CBECBB7}';
type
{ IListaAnosFacturasDelta }
IListaAnosFacturasDelta = interface(IListaAnosFacturas)
- ['{8684B20C-9A58-4343-ACBF-6E788A6D9342}']
+ ['{753DC6A9-0D33-44D6-AC73-56B24BD7B037}']
{ Property getters and setters }
function GetOldANOValue : String;
@@ -50,7 +50,7 @@ type
{ IFacturasClienteDelta }
IFacturasClienteDelta = interface(IFacturasCliente)
- ['{F6D07436-A868-46A4-AF86-357F3FB7A074}']
+ ['{C3660EB7-FB02-49EF-8909-756D1320539A}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_EMPRESAValue : Integer;
@@ -105,6 +105,7 @@ type
function GetOldTIPO_FACTURAValue : String;
function GetOldLISTA_NOMBRESValue : String;
function GetOldVERIFACTUValue : SmallInt;
+ function GetOldVERIFACTU_NOTESValue : IROStrings;
{ Properties }
property OldID : Integer read GetOldIDValue;
@@ -160,13 +161,16 @@ type
property OldTIPO_FACTURA : String read GetOldTIPO_FACTURAValue;
property OldLISTA_NOMBRES : String read GetOldLISTA_NOMBRESValue;
property OldVERIFACTU : SmallInt read GetOldVERIFACTUValue;
+ property OldVERIFACTU_NOTES : IROStrings read GetOldVERIFACTU_NOTESValue;
end;
{ TFacturasClienteBusinessProcessorRules }
TFacturasClienteBusinessProcessorRules = class(TDABusinessProcessorRules, IFacturasCliente, IFacturasClienteDelta)
private
f_OBSERVACIONES: IROStrings;
+ f_VERIFACTU_NOTES: IROStrings;
procedure OBSERVACIONES_OnChange(Sender: TObject);
+ procedure VERIFACTU_NOTES_OnChange(Sender: TObject);
protected
{ Property getters and setters }
function GetIDValue: Integer; virtual;
@@ -486,6 +490,11 @@ type
function GetOldVERIFACTUIsNull: Boolean; virtual;
procedure SetVERIFACTUValue(const aValue: SmallInt); virtual;
procedure SetVERIFACTUIsNull(const aValue: Boolean); virtual;
+ function GetVERIFACTU_NOTESValue: IROStrings; virtual;
+ function GetVERIFACTU_NOTESIsNull: Boolean; virtual;
+ function GetOldVERIFACTU_NOTESValue: IROStrings; virtual;
+ function GetOldVERIFACTU_NOTESIsNull: Boolean; virtual;
+ procedure SetVERIFACTU_NOTESIsNull(const aValue: Boolean); virtual;
{ Properties }
property ID : Integer read GetIDValue write SetIDValue;
@@ -700,6 +709,10 @@ type
property VERIFACTUIsNull : Boolean read GetVERIFACTUIsNull write SetVERIFACTUIsNull;
property OldVERIFACTU : SmallInt read GetOldVERIFACTUValue;
property OldVERIFACTUIsNull : Boolean read GetOldVERIFACTUIsNull;
+ property VERIFACTU_NOTES : IROStrings read GetVERIFACTU_NOTESValue;
+ property VERIFACTU_NOTESIsNull : Boolean read GetVERIFACTU_NOTESIsNull write SetVERIFACTU_NOTESIsNull;
+ property OldVERIFACTU_NOTES : IROStrings read GetOldVERIFACTU_NOTESValue;
+ property OldVERIFACTU_NOTESIsNull : Boolean read GetOldVERIFACTU_NOTESIsNull;
public
constructor Create(aBusinessProcessor: TDABusinessProcessor); override;
@@ -709,7 +722,7 @@ type
{ IFacturasCliente_DetallesDelta }
IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles)
- ['{904B050A-78E2-4159-AD88-28EB0F6F6F69}']
+ ['{339CC635-252E-414D-AFD0-10BB5CBECBB7}']
{ Property getters and setters }
function GetOldIDValue : Integer;
function GetOldID_FACTURAValue : Integer;
@@ -955,6 +968,10 @@ begin
StrList := TStringList.Create;
StrList.OnChange := OBSERVACIONES_OnChange;
f_OBSERVACIONES := NewROStrings(StrList,True);
+
+ StrList := TStringList.Create;
+ StrList.OnChange := VERIFACTU_NOTES_OnChange;
+ f_VERIFACTU_NOTES := NewROStrings(StrList,True);
end;
destructor TFacturasClienteBusinessProcessorRules.Destroy;
@@ -967,6 +984,11 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteOBSERVACIONES] := TStringList(Sender).Text;
end;
+procedure TFacturasClienteBusinessProcessorRules.VERIFACTU_NOTES_OnChange(Sender: TObject);
+begin
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU_NOTES] := TStringList(Sender).Text;
+end;
+
function TFacturasClienteBusinessProcessorRules.GetIDValue: Integer;
begin
result := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteID];
@@ -2607,6 +2629,34 @@ begin
BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU] := Null;
end;
+function TFacturasClienteBusinessProcessorRules.GetVERIFACTU_NOTESValue: IROStrings;
+begin
+ result := f_VERIFACTU_NOTES;
+ result.Text := BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU_NOTES];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetVERIFACTU_NOTESIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU_NOTES]);
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldVERIFACTU_NOTESValue: IROStrings;
+begin
+ result := NewROStrings();
+ result.Text := BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteVERIFACTU_NOTES];
+end;
+
+function TFacturasClienteBusinessProcessorRules.GetOldVERIFACTU_NOTESIsNull: Boolean;
+begin
+ result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_FacturasClienteVERIFACTU_NOTES]);
+end;
+
+procedure TFacturasClienteBusinessProcessorRules.SetVERIFACTU_NOTESIsNull(const aValue: Boolean);
+begin
+ if aValue then
+ BusinessProcessor.CurrentChange.NewValueByName[fld_FacturasClienteVERIFACTU_NOTES] := Null;
+end;
+
{ TFacturasCliente_DetallesBusinessProcessorRules }
constructor TFacturasCliente_DetallesBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor);
diff --git a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm
index 23dc28a3..a7281112 100644
--- a/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Plugin/uPluginFacturasCliente.dfm
@@ -46,7 +46,7 @@ object PluginFacturasCliente: TPluginFacturasCliente
Top = 72
object actFacturasCliente: TAction
Category = 'Ventas'
- Caption = 'Facturas de cliente'
+ Caption = 'Facturas proforma de cliente'
ImageIndex = 0
OnExecute = actFacturasClienteExecute
end
diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
index 7decb043..2201c79d 100644
--- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
+++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm
@@ -259,6 +259,10 @@ object srvFacturasCliente: TsrvFacturasCliente
item
DatasetField = 'VERIFACTU'
TableField = 'VERIFACTU'
+ end
+ item
+ DatasetField = 'VERIFACTU_NOTES'
+ TableField = 'VERIFACTU_NOTES'
end>
end>
Name = 'FacturasCliente'
@@ -537,6 +541,10 @@ object srvFacturasCliente: TsrvFacturasCliente
item
Name = 'VERIFACTU'
DataType = datSmallInt
+ end
+ item
+ Name = 'VERIFACTU_NOTES'
+ DataType = datMemo
end>
end
item
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorElegirSituacion.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorElegirSituacion.dfm
index 37c29715..da1f273e 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorElegirSituacion.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorElegirSituacion.dfm
@@ -4,7 +4,7 @@ object fEditorElegirSituacion: TfEditorElegirSituacion
BorderStyle = bsDialog
Caption = 'Elegir situaci'#243'n'
ClientHeight = 140
- ClientWidth = 392
+ ClientWidth = 403
Color = clWindow
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -33,7 +33,7 @@ object fEditorElegirSituacion: TfEditorElegirSituacion
object PnlComentario: TPanel
Left = 0
Top = 0
- Width = 392
+ Width = 403
Height = 45
Align = alTop
Alignment = taLeftJustify
@@ -42,29 +42,30 @@ object fEditorElegirSituacion: TfEditorElegirSituacion
ParentBackground = False
TabOrder = 0
VerticalAlignment = taAlignTop
+ ExplicitWidth = 392
object lbComentario: TLabel
AlignWithMargins = True
Left = 6
Top = 4
- Width = 382
+ Width = 393
Height = 40
Margins.Left = 5
Align = alClient
Caption =
- 'Seleccione la situaci'#243'n que quiere para la/s factura/s seleccion' +
- 'ada/s:'
+ 'Seleccione la situaci'#243'n que quiere para la/s factura/s proforma/' +
+ 's seleccionada/s:'
WordWrap = True
- ExplicitHeight = 39
+ ExplicitHeight = 21
end
end
object Panel1: TPanel
Left = 0
Top = 99
- Width = 392
+ Width = 403
Height = 41
Align = alBottom
TabOrder = 1
- ExplicitTop = 138
+ ExplicitWidth = 392
object bAceptar: TButton
Left = 188
Top = 8
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm
index 7d02e26d..de240b12 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.dfm
@@ -1,18 +1,18 @@
inherited fEditorFacturaCliente: TfEditorFacturaCliente
Left = 454
Top = 208
- Caption = 'Nueva factura de cliente'
+ Caption = 'Nueva factura proforma de cliente'
ClientHeight = 662
ClientWidth = 860
Position = poScreenCenter
OnClose = CustomEditorClose
- ExplicitWidth = 868
- ExplicitHeight = 696
+ ExplicitWidth = 876
+ ExplicitHeight = 700
PixelsPerInch = 96
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 860
- Caption = 'Nueva factura de cliente'
+ Caption = 'Nueva factura proforma de cliente'
ExplicitWidth = 860
inherited Image1: TImage
Left = 833
@@ -48,7 +48,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Width = 860
ExplicitWidth = 860
inherited tbxMain: TTBXToolbar
- ExplicitWidth = 488
+ ExplicitWidth = 518
inherited TBXItem2: TTBXItem
Visible = False
end
@@ -86,20 +86,20 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
end
inherited pgPaginas: TPageControl
Width = 854
- Height = 368
+ Height = 366
OnChanging = pgPaginasChanging
ExplicitWidth = 854
- ExplicitHeight = 368
+ ExplicitHeight = 366
inherited pagGeneral: TTabSheet
ExplicitLeft = 4
ExplicitTop = 24
ExplicitWidth = 846
- ExplicitHeight = 340
+ ExplicitHeight = 338
inline frViewFacturaCliente1: TfrViewFacturaCliente
Left = 0
Top = 0
Width = 846
- Height = 340
+ Height = 338
Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
@@ -110,12 +110,12 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
TabOrder = 0
ReadOnly = False
ExplicitWidth = 846
- ExplicitHeight = 340
+ ExplicitHeight = 338
inherited dxLayoutControl1: TdxLayoutControl
Width = 846
- Height = 340
+ Height = 338
ExplicitWidth = 846
- ExplicitHeight = 340
+ ExplicitHeight = 338
inherited eReferencia: TcxDBTextEdit
ExplicitWidth = 159
Width = 159
@@ -218,7 +218,7 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
Left = 0
Top = 0
Width = 846
- Height = 340
+ Height = 338
Align = alClient
BiDiMode = bdLeftToRight
Font.Charset = DEFAULT_CHARSET
@@ -231,105 +231,120 @@ inherited fEditorFacturaCliente: TfEditorFacturaCliente
TabOrder = 0
ReadOnly = False
ExplicitWidth = 846
- ExplicitHeight = 340
+ ExplicitHeight = 338
inherited ToolBar1: TToolBar
Width = 846
Height = 24
+ ButtonWidth = 123
ExplicitWidth = 846
ExplicitHeight = 24
+ inherited ToolButton1: TToolButton
+ ExplicitWidth = 119
+ end
+ inherited ToolButton2: TToolButton
+ Left = 119
+ ExplicitLeft = 119
+ ExplicitWidth = 127
+ end
+ inherited ToolButton3: TToolButton
+ Left = 246
+ ExplicitLeft = 246
+ ExplicitWidth = 58
+ end
inherited ToolButton4: TToolButton
+ Left = 304
Wrap = False
+ ExplicitLeft = 304
+ ExplicitWidth = 57
end
inherited ToolButton14: TToolButton
- Left = 334
+ Left = 361
Top = 0
- ExplicitLeft = 334
+ ExplicitLeft = 361
ExplicitTop = 0
end
inherited FontName: TJvFontComboBox
- Left = 368
+ Left = 395
Top = 0
- ExplicitLeft = 368
+ ExplicitLeft = 395
ExplicitTop = 0
end
- inherited FontSize: TEdit
- Left = 513
+ inherited ToolButton13: TToolButton [6]
+ Left = 540
Top = 0
- Width = 57
- ExplicitLeft = 513
- ExplicitTop = 0
- ExplicitWidth = 57
- end
- inherited UpDown1: TUpDown
- Left = 586
- Top = 0
- ExplicitLeft = 586
+ ExplicitLeft = 540
ExplicitTop = 0
end
- inherited ToolButton13: TToolButton
- Left = 603
+ inherited ToolButton6: TToolButton [7]
+ Left = 548
Top = 0
- ExplicitLeft = 603
+ ExplicitLeft = 548
ExplicitTop = 0
end
- inherited ToolButton6: TToolButton
- Left = 611
+ inherited ToolButton7: TToolButton [8]
+ Left = 582
Top = 0
- ExplicitLeft = 611
+ ExplicitLeft = 582
ExplicitTop = 0
end
- inherited ToolButton7: TToolButton
- Left = 645
+ inherited ToolButton8: TToolButton [9]
+ Left = 616
Top = 0
- ExplicitLeft = 645
+ ExplicitLeft = 616
ExplicitTop = 0
end
- inherited ToolButton8: TToolButton
- Left = 679
+ inherited ToolButton12: TToolButton [10]
+ Left = 650
Top = 0
- ExplicitLeft = 679
+ ExplicitLeft = 650
ExplicitTop = 0
end
- inherited ToolButton12: TToolButton
- Left = 713
+ inherited ToolButton9: TToolButton [11]
+ Left = 658
Top = 0
- ExplicitLeft = 713
+ ExplicitLeft = 658
ExplicitTop = 0
end
- inherited ToolButton9: TToolButton
- Left = 721
+ inherited ToolButton10: TToolButton [12]
+ Left = 692
Top = 0
- ExplicitLeft = 721
+ ExplicitLeft = 692
ExplicitTop = 0
end
- inherited ToolButton10: TToolButton
- Left = 755
+ inherited ToolButton11: TToolButton [13]
+ Left = 726
Top = 0
- ExplicitLeft = 755
+ ExplicitLeft = 726
ExplicitTop = 0
end
- inherited ToolButton11: TToolButton
- Left = 789
+ inherited FontSize: TEdit [14]
+ Left = 760
Top = 0
- ExplicitLeft = 789
+ Width = 73
+ ExplicitLeft = 760
+ ExplicitTop = 0
+ ExplicitWidth = 73
+ end
+ inherited UpDown1: TUpDown [15]
+ Left = 833
+ Top = 0
+ ExplicitLeft = 833
ExplicitTop = 0
end
end
inherited cxGrid: TcxGrid
Top = 50
Width = 846
- Height = 290
- ExplicitTop = 50
+ Height = 288
ExplicitWidth = 846
- ExplicitHeight = 290
+ ExplicitHeight = 288
end
inherited TBXDock1: TTBXDock
Top = 24
Width = 846
- ExplicitTop = 24
ExplicitWidth = 846
inherited TBXToolbar1: TTBXToolbar
- ExplicitWidth = 548
+ ExplicitWidth = 597
end
end
end
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas
index bda79f4b..2b8d02a0 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturaCliente.pas
@@ -397,18 +397,18 @@ begin
begin
if Factura.EsNuevo then
if Factura.TIPO = CTE_TIPO_ABONO then
- FTitulo := 'Nuevo abono a cliente'
+ FTitulo := 'Nuevo abono proforma a cliente'
else if Factura.TIPO = CTE_TIPO_PROFORMA then
FTitulo := 'Nueva factura proforma de cliente'
else
- FTitulo := 'Nueva factura de cliente'
+ FTitulo := 'Nueva factura proforma de cliente'
else
if Factura.TIPO = CTE_TIPO_ABONO then
- FTitulo := 'Abono a cliente' + ' - ' + FFactura.Cliente.Nombre
+ FTitulo := 'Abono a proforma cliente' + ' - ' + FFactura.Cliente.Nombre
else if Factura.TIPO = CTE_TIPO_PROFORMA then
FTitulo := 'Factura proforma de cliente' + ' - ' + FFactura.Cliente.Nombre
else
- FTitulo := 'Factura de cliente' + ' - ' + FFactura.Cliente.Nombre
+ FTitulo := 'Factura proforma de cliente' + ' - ' + FFactura.Cliente.Nombre
end;
inherited PonerTitulos(FTitulo);
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
index 98ea0fee..2df12f0c 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.dfm
@@ -1,5 +1,5 @@
inherited fEditorFacturasCliente: TfEditorFacturasCliente
- Caption = 'Lista de facturas de cliente'
+ Caption = 'Lista de facturas proforma de cliente'
ClientHeight = 666
ClientWidth = 640
ExplicitWidth = 656
@@ -8,7 +8,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
TextHeight = 13
inherited JvNavPanelHeader: TJvNavPanelHeader
Width = 640
- Caption = 'Lista de facturas de cliente'
+ Caption = 'Lista de facturas proforma de cliente'
ExplicitWidth = 640
inherited Image1: TImage
Left = 613
@@ -46,11 +46,11 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Images = SmallImages
object TBXItem39: TTBXItem
Action = actNuevaFactura
- Caption = 'Nueva factura...'
+ Caption = 'Nueva factura proforma'
end
object TBXItem38: TTBXItem
Action = actNuevoAbono
- Caption = 'Nuevo abono...'
+ Caption = 'Nuevo abono proforma'
end
object TBXItem43: TTBXItem
Action = actNuevaProforma
@@ -300,13 +300,13 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
object actNuevaFactura: TAction
Category = 'Archivo'
- Caption = 'Factura'
+ Caption = 'Factura proforma'
ImageIndex = 23
OnExecute = actNuevaFacturaExecute
end
object actNuevoAbono: TAction
Category = 'Archivo'
- Caption = 'Abono'
+ Caption = 'Abono proforma'
ImageIndex = 24
OnExecute = actNuevoAbonoExecute
end
@@ -332,7 +332,9 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
object actNuevaProforma: TAction
Category = 'Archivo'
Caption = 'Proforma'
+ Enabled = False
ImageIndex = 22
+ Visible = False
OnExecute = actNuevaProformaExecute
end
object actConvertirEnFactura: TAction
@@ -2000,7 +2002,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
end
object JsNuevaFacturaDialog: TJSDialog
Content.Strings = (
- #191'C'#243'mo desea dar de alta la factura?')
+ #191'C'#243'mo desea dar de alta la factura proforma?')
DialogOptions = [doCommandLinks, doModal]
Glyph.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
@@ -2031,7 +2033,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
FD84C20B8417C3AA789405239826E0CBCE4F98979E10344C33B0BE630473D312
82866906D6993E62F6F1C3F45D160A5305BE68FF8095CF5B4302134CFE1185EA
1FB8A1B4FF4FE32FF6FADB8B5E0000000049454E44AE426082}
- Instruction.Text = 'Nueva factura de cliente'
+ Instruction.Text = 'Nueva factura proforma de cliente'
Instruction.Glyph.Data = {
0A54504E474F626A65637489504E470D0A1A0A0000000D494844520000001C00
00001C0806000000720DDF940000000970485973000017120000171201679FD2
@@ -2064,7 +2066,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Instruction.Icon = tdiCustom
CustomButtons = <
item
- Caption = 'Factura nueva vac'#237'a.'
+ Caption = 'Factura proforma nueva vac'#237'a.'
Value = 100
Default = True
end
@@ -2074,7 +2076,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Info.Strings = (
'Puede utilizar uno o m'#225's albaranes existentes para dar de alta l' +
- 'a factura nueva.')
+ 'a factura proforma nueva.')
end>
ButtonBar.Buttons = [cbCancel]
MainIcon = tdiCustom
@@ -3309,7 +3311,7 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Instruction.Icon = tdiCustom
CustomButtons = <
item
- Caption = 'Abono nuevo vac'#237'o.'
+ Caption = 'Abono proforma nuevo vac'#237'o.'
Value = 100
Default = True
end
@@ -3318,8 +3320,8 @@ inherited fEditorFacturasCliente: TfEditorFacturasCliente
Value = 200
Info.Strings = (
- 'Puede utilizar una factura de cliente para dar de alta el nuevo ' +
- 'abono.')
+ 'Puede utilizar una factura proforma de cliente para dar de alta ' +
+ 'el nuevo abono proforma.')
end>
ButtonBar.Buttons = [cbCancel]
MainIcon = tdiCustom
diff --git a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
index ddf4907d..222c314c 100644
--- a/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Views/uEditorFacturasCliente.pas
@@ -70,6 +70,7 @@ type
private
FFacturas: IBizFacturaCliente;
FController : IFacturasClienteController;
+
protected
function GetFacturas: IBizFacturaCliente;
procedure SetFacturas(const Value: IBizFacturaCliente);
@@ -307,14 +308,14 @@ begin
if AllItems then
begin
- if (Application.MessageBox('¿Desea mandar a verifactu los borradores seleccionados?, ya no podrá modificarlos', 'Atención', MB_YESNO) = IDYES) then
+ if (Application.MessageBox('¿Desea mandar a VERIFACTU los borradores seleccionados, para que se conviertan en FACTURAS DEFINITIVAS EN LA AEAT?, ya no podrá modificarlos', 'Atención', MB_YESNO) = IDYES) then
begin
SeleccionarFilasDesdeGrid(ViewGrid._FocusedView, (Facturas as ISeleccionable).SelectedRecords);
AFacturas := (Controller as IFacturasClienteController).ExtraerSeleccionados(Facturas) as IBizFacturaCliente;
end
end
else begin
- if (Application.MessageBox('¿Desea mandar a verifactu el borrador seleccionado?, ya no podrá modificarlo', 'Atención', MB_YESNO) = IDYES) then
+ if (Application.MessageBox('¿Desea mandar a VERIFACTU el borrador seleccionado, para que se convierta en FACTURA DEFINITIVA EN LA AEAT?, ya no podrá modificarlo', 'Atención', MB_YESNO) = IDYES) then
AFacturas := Facturas;
end;
@@ -357,15 +358,13 @@ begin
inherited;
(Sender as TAction).Enabled := False;
-
-{Quitar al activar verifactu
+
if HayDatos and Assigned(ViewGrid) then
(Sender as TAction).Enabled := ViewGrid.EsSeleccionCeldaDatos
and (ViewGrid.NumSeleccionados > 0)
- and (FFacturas.VERIFACTU < 1)
+ and (FFacturas.VERIFACTU <> 1)
else
(Sender as TAction).Enabled := False;
-}
end;
procedure TfEditorFacturasCliente.actNuevaFacturaExecute(Sender: TObject);
@@ -672,7 +671,7 @@ procedure TfEditorFacturasCliente.PonerTitulos(const ATitulo: string);
var
FTitulo : String;
begin
- FTitulo := 'Lista de facturas de cliente - ' + AppFactuGES.EmpresaActiva.NOMBRE;
+ FTitulo := 'Lista de facturas proforma de cliente - ' + AppFactuGES.EmpresaActiva.NOMBRE;
inherited PonerTitulos(FTitulo);
end;
diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
index daf577e1..298c3e13 100644
--- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
+++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.dfm
@@ -174,21 +174,33 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
object cxGridViewVERIFACTU: TcxGridDBColumn
DataBinding.FieldName = 'VERIFACTU'
PropertiesClassName = 'TcxImageComboBoxProperties'
+ Properties.Alignment.Horz = taCenter
Properties.Images = PngImageList
Properties.Items = <
item
- Description = 'Verifactu'
+ Value = 0
+ end
+ item
+ Description = 'VERIFACTU'
ImageIndex = 0
Value = 1
end
item
- Value = 0
+ Description = 'INCIDENCIA'
+ ImageIndex = 4
+ Value = 2
end>
+ OnGetCellHint = cxGridViewVERIFACTUGetCellHint
FooterAlignmentHorz = taCenter
GroupSummaryAlignment = taCenter
HeaderAlignmentHorz = taCenter
HeaderGlyphAlignmentHorz = taCenter
end
+ object cxGridViewVERIFACTU_NOTES: TcxGridDBColumn
+ DataBinding.FieldName = 'VERIFACTU_NOTES'
+ Visible = False
+ VisibleForCustomization = False
+ end
end
inherited cxGridLevel: TcxGridLevel
Caption = 'Todas'
@@ -241,12 +253,14 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
Width = 273
end
inherited txtFiltroTodo2: TcxTextEdit
- Left = 559
+ Left = 541
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
- ExplicitLeft = 559
+ ExplicitLeft = 541
+ ExplicitWidth = 250
+ Width = 250
end
end
inherited TBXAlignmentPanel1: TTBXAlignmentPanel
@@ -429,6 +443,34 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
00004B6D80F047EC10D30000000049454E44AE426082}
Name = 'PngImage1'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA
+ 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440
+ A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450
+ 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3
+ C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE
+ FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78
+ 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D
+ BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB
+ 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF
+ D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E
+ 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A
+ C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611
+ E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF
+ 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5
+ D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0
+ 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68
+ 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075
+ 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346
+ 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462
+ 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54
+ 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51
+ CF0000000049454E44AE426082}
+ Name = 'PngImage2'
+ Background = clWindow
end>
Bitmap = {}
end
@@ -713,6 +755,34 @@ inherited frViewFacturasCliente: TfrViewFacturasCliente
064200A70120096201BA0100A6C62916A56F74520000000049454E44AE426082}
Name = 'PngImage3'
Background = clWindow
+ end
+ item
+ PngImage.Data = {
+ 89504E470D0A1A0A0000000D49484452000000100000001008060000001FF3FF
+ 61000000097048597300000AEB00000AEB01828B0D5A0000027F4944415478DA
+ 95926D48535118C79FDB268AA54485D62C4C50962CDC87F5416D9AB966CEA440
+ A4E84D828C304C89B217DB87D00F65252B69422F9A4161D6A0507C6D595A6450
+ 83CC55787129CE19949B6DD3DDEDDE9D73BABB561835D3030FCF39E739FFDFF3
+ C2A1608EF5A1467A415632783A589C100254B0A0EB5A623A9392DCD365B89DBE
+ FF3CBC5830C0DD9DD726922B34EFDAEB5B53F75972170470D4C8E461DB724D78
+ 091139AC66F4FC5E9BA24007FDF3064C75E6DE7DE94BD8DBDC4A834615014B5D
+ BD8D6985E37BE6056074D2B544934357DCFA1CD2FBEA1B6C908742E96EAFBFFB
+ 7E5FE2A15A18FA2FC0F978B35E9CBAE94895EE2DB474D82053B918CA4BA2A1BF
+ D37823B3D879784E80BB36298ADA98368C97937043F3185CACA1E164F12AD89E
+ 1509132316E659BB39A14807B6A000E74365A5282D43EB67BFC020FD1D76159A
+ C0502785D8984580B8691830BEA9561F634EFC1340AAA4111E55C60817859611
+ E4038EF34256FE6BE86C5A0F807D4010035F2DA3EE1EA32DEEA81EEC7F0126EF
+ 288E87A8D597389F8DC28280858ACB9FE06C690CBFF702E60DB153E463EF70C5
+ D632EEDC1F00FA6A7CA824397D888B46AB671EF300CC826DDC092B5710411CB0
+ 406C62D86EEFEA72C69DAA07F76FC0645DD241B15A7D93E3C6A85FE2471D5E68
+ 6872C1CE1C2FE46BF0AC2A1842F7B9CBB2CFF8AB05007900A26949819995E075
+ 184D43A0FF400B95575CD0FED4010A9907AAB5E1BC9801EC9FA9C261656D0346
+ 7FFC8106E2A55C7A591EA551197CC84A1121BB4FC8346AF540CB1307A8950462
+ 25E8670B8CD01E6611B198C445D9E5DC75EABD7E4DA32B322C05630F3F15BE54
+ 82788F788FF9E9FB679D9110C781FBC077B753433BB478CB0F7C3B8CF0987D51
+ CF0000000049454E44AE426082}
+ Name = 'PngImage4'
+ Background = clWindow
end>
Left = 56
Top = 48
diff --git a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
index 96163f1c..0128bdfd 100644
--- a/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
+++ b/Source/Modulos/Facturas de cliente/Views/uViewFacturasCliente.pas
@@ -72,6 +72,7 @@ type
TBXItem4: TTBXItem;
cxGridProforma: TcxGridLevel;
cxGridViewVERIFACTU: TcxGridDBColumn;
+ cxGridViewVERIFACTU_NOTES: TcxGridDBColumn;
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem;
out AStyle: TcxStyle);
@@ -82,6 +83,10 @@ type
procedure actClienteUpdate(Sender: TObject);
procedure actTiendaExecute(Sender: TObject);
procedure actTiendaUpdate(Sender: TObject);
+ procedure cxGridViewVERIFACTUGetCellHint(Sender: TcxCustomGridTableItem;
+ ARecord: TcxCustomGridRecord; ACellViewInfo: TcxGridTableDataCellViewInfo;
+ const AMousePos: TPoint; var AHintText: TCaption;
+ var AIsHintMultiLine: Boolean; var AHintTextRect: TRect);
private
//Filtros relativos a la vista
@@ -287,6 +292,21 @@ begin
end;
end;
+procedure TfrViewFacturasCliente.cxGridViewVERIFACTUGetCellHint(
+ Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord;
+ ACellViewInfo: TcxGridTableDataCellViewInfo; const AMousePos: TPoint;
+ var AHintText: TCaption; var AIsHintMultiLine: Boolean;
+ var AHintTextRect: TRect);
+begin
+ inherited;
+ if (ARecord.DisplayTexts[Sender.Index] = 'INCIDENCIA') then
+ begin
+ AIsHintMultiLine := True;
+ if not VarIsNull(ARecord.Values[cxGridViewVERIFACTU_NOTES.Index]) then
+ AHintText := ARecord.Values[cxGridViewVERIFACTU_NOTES.Index];
+ end;
+end;
+
function TfrViewFacturasCliente.GetFacturas: IBizFacturaCliente;
begin
Result := FFacturas;
diff --git a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm
index 5723ca5b..e5d9c80d 100644
--- a/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm
+++ b/Source/Modulos/Facturas de proveedor/Views/uViewFacturaProveedor.dfm
@@ -1,6 +1,6 @@
inherited frViewFacturaProveedor: TfrViewFacturaProveedor
- Width = 451
- Height = 304
+ Width = 1227
+ Height = 559
Align = alClient
OnCreate = CustomViewCreate
OnDestroy = CustomViewDestroy
@@ -9,17 +9,19 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
object dxLayoutControl1: TdxLayoutControl
Left = 0
Top = 0
- Width = 451
- Height = 304
+ Width = 1227
+ Height = 559
Align = alClient
ParentBackground = True
TabOrder = 0
TabStop = False
AutoContentSizes = [acsWidth, acsHeight]
LookAndFeel = dxLayoutOfficeLookAndFeel1
+ ExplicitWidth = 451
+ ExplicitHeight = 304
DesignSize = (
- 451
- 304)
+ 1227
+ 559)
object eReferencia: TcxDBTextEdit
Left = 124
Top = 30
@@ -95,7 +97,7 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
Width = 169
end
object bFormasPago: TButton
- Left = 150
+ Left = 733
Top = 135
Width = 132
Height = 23
@@ -171,10 +173,11 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
Width = 158
end
inline frViewProveedorFactura1: TfrViewProveedorFactura
- Left = 310
+ Left = 893
Top = 30
Width = 312
- Height = 260
+ Height = 265
+ Align = alClient
Font.Charset = DEFAULT_CHARSET
Font.Color = clWindowText
Font.Height = -11
@@ -183,12 +186,14 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
ParentFont = False
TabOrder = 7
ReadOnly = False
- ExplicitLeft = 310
+ ExplicitLeft = 893
ExplicitTop = 30
ExplicitWidth = 312
- ExplicitHeight = 260
+ ExplicitHeight = 265
inherited dxLayoutControl1: TdxLayoutControl
Width = 312
+ Height = 265
+ Align = alClient
ExplicitWidth = 312
inherited Bevel1: TBevel
Width = 242
@@ -230,7 +235,7 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
end
inline frViewObservaciones1: TfrViewObservaciones
Left = 22
- Top = 320
+ Top = 325
Width = 521
Height = 228
Font.Charset = DEFAULT_CHARSET
@@ -242,7 +247,7 @@ inherited frViewFacturaProveedor: TfrViewFacturaProveedor
TabOrder = 8
ReadOnly = False
ExplicitLeft = 22
- ExplicitTop = 320
+ ExplicitTop = 325
ExplicitHeight = 228
inherited memObservaciones: TcxDBMemo
DataBinding.DataField = 'OBSERVACIONES'
diff --git a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm
index 51a30d1b..1b52aae1 100644
--- a/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm
+++ b/Source/Modulos/Familias/Plugin/uPluginFamilias.dfm
@@ -33,7 +33,7 @@ object PluginFamilias: TPluginFamilias
Left = 40
Top = 16
object Ventas1: TMenuItem
- Caption = 'Datos'
+ Caption = 'Log'#237'stica'
object Familias1: TMenuItem
Tag = 900
Action = actFamilias
diff --git a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm
index ea190e64..98bb6bdf 100644
--- a/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm
+++ b/Source/Modulos/Historico de movimientos/Views/uViewHistoricoMovimientos.dfm
@@ -58,6 +58,7 @@ inherited frViewHistoricoMovimientos: TfrViewHistoricoMovimientos
DataBinding.FieldName = 'REFERENCIA_PROV'
end
object cxGridViewDESCRIPCION: TcxGridDBColumn
+ Caption = 'Descripci'#243'n'
DataBinding.FieldName = 'DESCRIPCION'
end
object cxGridViewCANTIDAD: TcxGridDBColumn
@@ -68,6 +69,7 @@ inherited frViewHistoricoMovimientos: TfrViewHistoricoMovimientos
HeaderAlignmentHorz = taRightJustify
end
object cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn
+ Caption = 'Almac'#233'n'
DataBinding.FieldName = 'NOMBRE_ALMACEN'
end
object cxGridViewCAUSA: TcxGridDBColumn
@@ -105,13 +107,25 @@ inherited frViewHistoricoMovimientos: TfrViewHistoricoMovimientos
Width = 121
end
inherited edtFechaFinFiltro: TcxDateEdit
+ Left = 344
Style.LookAndFeel.SkinName = ''
StyleDisabled.LookAndFeel.SkinName = ''
StyleFocused.LookAndFeel.SkinName = ''
StyleHot.LookAndFeel.SkinName = ''
+ ExplicitLeft = 344
ExplicitWidth = 121
Width = 121
end
+ inherited txtFiltroTodo2: TcxTextEdit
+ Left = 329
+ Style.LookAndFeel.SkinName = ''
+ StyleDisabled.LookAndFeel.SkinName = ''
+ StyleFocused.LookAndFeel.SkinName = ''
+ StyleHot.LookAndFeel.SkinName = ''
+ ExplicitLeft = 329
+ ExplicitWidth = 250
+ Width = 250
+ end
end
end
end
diff --git a/Source/Modulos/Inventario/Data/Inventario_data.dproj b/Source/Modulos/Inventario/Data/Inventario_data.dproj
index 68664cb3..aa25219a 100644
--- a/Source/Modulos/Inventario/Data/Inventario_data.dproj
+++ b/Source/Modulos/Inventario/Data/Inventario_data.dproj
@@ -39,61 +39,20 @@
Delphi.Personality
Package
-
- False
- True
- False
-
-
- True
- False
- False
-
-
- True
- False
- 1
- 0
- 0
- 0
- False
- False
- False
- False
- False
- 3082
- 1252
-
-
-
-
- 1.0.0.0
-
-
-
-
-
- 1.0.0.0
-
-
-
- Inventario_data.dpk
-
-
+FalseTrueFalseFalseFalseFalseTrueFalse1000FalseFalseFalseFalseFalse308212521.0.0.01.0.0.0Inventario_data.dpk
MainSource
-
-
+
+
-