From 72b1fcf24cf2704ee54771188b8193004025b546 Mon Sep 17 00:00:00 2001 From: david Date: Sun, 16 Dec 2007 14:25:07 +0000 Subject: [PATCH] =?UTF-8?q?-=20Usar=20el=20nuevo=20servicio=20de=20gesti?= =?UTF-8?q?=C3=B3n=20de=20referencias=20en=20los=20m=C3=B3dulos=20de=20la?= =?UTF-8?q?=20aplicaci=C3=B3n=20-=20En=20la=20BD,=20a=C3=B1adir=20clave=20?= =?UTF-8?q?primario=20ID=20y=20generador=20para=20la=20table=20REFERENCIAS?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: https://192.168.0.254/svn/Proyectos.Tecsitel_FactuGES2/trunk@170 0c75b7a4-871f-7646-8a2f-f78d34cc349f --- Database/FACTUGES.FDB | Bin 2482176 -> 2482176 bytes Database/scripts/factuges.sql | 53 ++++--- Database/scripts/factuges_sysdata.sql | 34 ++--- .../Model/schAlbaranesClienteClient_Intf.pas | 85 +---------- .../Model/schAlbaranesClienteServer_Intf.pas | 87 +----------- .../Model/uBizAlbaranClienteServer.pas | 123 ++++++++++------ .../Servidor/srvAlbaranesCliente_Impl.dfm | 60 -------- .../schAlbaranesProveedorClient_Intf.pas | 85 +---------- .../schAlbaranesProveedorServer_Intf.pas | 87 +----------- .../Model/uBizAlbaranProveedorServer.PAS | 125 ++++++++++------ .../Servidor/srvAlbaranesProveedor_Impl.dfm | 60 -------- .../Contactos/Model/uBizClientesServer.pas | 31 +++- .../Contactos/Model/uBizContactosServer.pas | 53 ++++++- .../Contactos/Model/uBizEmpleadosServer.pas | 28 +++- .../Contactos/Model/uBizProveedoresServer.pas | 28 +++- .../Contactos/Servidor/srvContactos_Impl.dfm | 32 +++-- .../Model/schFacturasClienteClient_Intf.pas | 85 +---------- .../Model/schFacturasClienteServer_Intf.pas | 87 +----------- .../Model/uBizFacturasClienteServer.pas | 134 +++++++++++------- .../Servidor/srvFacturasCliente_Impl.dfm | 61 -------- .../Model/schFacturasProveedorClient_Intf.pas | 85 +---------- .../Model/schFacturasProveedorServer_Intf.pas | 87 +----------- .../Model/uBizFacturasProveedorServer.pas | 130 ++++++++++------- .../Servidor/srvFacturasProveedor_Impl.dfm | 61 -------- .../Model/schPedidosProveedorClient_Intf.pas | 89 +----------- .../Model/schPedidosProveedorServer_Intf.pas | 91 +----------- .../Model/uBizPedidosProveedorServer.pas | 102 ++++++++----- .../Servidor/srvPedidosProveedor_Impl.dfm | 60 -------- .../schPresupuestosClienteClient_Intf.pas | 85 +---------- .../schPresupuestosClienteServer_Intf.pas | 87 +----------- .../Model/uBizPresupuestosClienteServer.pas | 102 ++++++++----- .../Servidor/srvPresupuestosCliente_Impl.dfm | 65 --------- .../Servidor/srvPresupuestosCliente_Impl.pas | 1 - .../Model/schRemesasClienteClient_Intf.pas | 81 +---------- .../Model/schRemesasClienteServer_Intf.pas | 83 +---------- .../Model/uBizRemesasClienteServer.pas | 101 ++++++++----- .../Servidor/srvRemesasCliente_Impl.dfm | 62 -------- .../Servidor/srvRemesasCliente_Impl.pas | 2 +- .../Model/schRemesasProveedorClient_Intf.pas | 81 +---------- .../Model/schRemesasProveedorServer_Intf.pas | 83 +---------- .../Model/uBizRemesasProveedorServer.pas | 103 +++++++++----- .../Servidor/srvRemesasProveedor_Impl.dfm | 62 -------- .../Servidor/srvRemesasProveedor_Impl.pas | 2 +- 43 files changed, 844 insertions(+), 2199 deletions(-) diff --git a/Database/FACTUGES.FDB b/Database/FACTUGES.FDB index 36ed5e77f26eda94bf0be6cd7a0eddf6cb686ff1..f431786215b0cdc15035c9db76a97388813abc4e 100644 GIT binary patch delta 31548 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 delta 16689 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 bzI8gtebj|KIIB?}-!bcyRjqovpxgX^AMU)c diff --git a/Database/scripts/factuges.sql b/Database/scripts/factuges.sql index 76893ad1..d25eee95 100644 --- a/Database/scripts/factuges.sql +++ b/Database/scripts/factuges.sql @@ -85,25 +85,25 @@ CREATE GENERATOR GEN_AGENTES_COMISIONES_ID; SET GENERATOR GEN_AGENTES_COMISIONES_ID TO 0; CREATE GENERATOR GEN_ALBARANES_CLI_DETALLES_ID; -SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 4; +SET GENERATOR GEN_ALBARANES_CLI_DETALLES_ID TO 7; CREATE GENERATOR GEN_ALBARANES_CLI_ID; -SET GENERATOR GEN_ALBARANES_CLI_ID TO 7; +SET GENERATOR GEN_ALBARANES_CLI_ID TO 10; CREATE GENERATOR GEN_ALBARANES_PRO_DETALLES_ID; -SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 3; +SET GENERATOR GEN_ALBARANES_PRO_DETALLES_ID TO 4; CREATE GENERATOR GEN_ALBARANES_PRO_ID; -SET GENERATOR GEN_ALBARANES_PRO_ID TO 2; +SET GENERATOR GEN_ALBARANES_PRO_ID TO 3; CREATE GENERATOR GEN_ALMACENES_ID; -SET GENERATOR GEN_ALMACENES_ID TO 3; +SET GENERATOR GEN_ALMACENES_ID TO 4; CREATE GENERATOR GEN_ARTICULOS_ID; -SET GENERATOR GEN_ARTICULOS_ID TO 5; +SET GENERATOR GEN_ARTICULOS_ID TO 6; CREATE GENERATOR GEN_CATEGORIAS_ID; -SET GENERATOR GEN_CATEGORIAS_ID TO 0; +SET GENERATOR GEN_CATEGORIAS_ID TO 4; CREATE GENERATOR GEN_CLIENTES_DTOS_PROV_ID; SET GENERATOR GEN_CLIENTES_DTOS_PROV_ID TO 0; @@ -115,10 +115,10 @@ CREATE GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID; SET GENERATOR GEN_CONTACTOS_DATOS_BANCO_ID TO 0; CREATE GENERATOR GEN_CONTACTOS_DIR_ID; -SET GENERATOR GEN_CONTACTOS_DIR_ID TO 5; +SET GENERATOR GEN_CONTACTOS_DIR_ID TO 8; CREATE GENERATOR GEN_CONTACTOS_ID; -SET GENERATOR GEN_CONTACTOS_ID TO 2001; +SET GENERATOR GEN_CONTACTOS_ID TO 29; CREATE GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID; SET GENERATOR GEN_EMPRESAS_DATOS_BANCO_ID TO 0; @@ -130,7 +130,7 @@ CREATE GENERATOR GEN_FACTURAS_CLIENTE_ID; SET GENERATOR GEN_FACTURAS_CLIENTE_ID TO 23; CREATE GENERATOR GEN_FACTURAS_PROVEEDOR_ID; -SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 0; +SET GENERATOR GEN_FACTURAS_PROVEEDOR_ID TO 1; CREATE GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID; SET GENERATOR GEN_FACTURA_CLIENTE_DETALLES_ID TO 20; @@ -148,7 +148,7 @@ CREATE GENERATOR GEN_F_PERFILES_ID; SET GENERATOR GEN_F_PERFILES_ID TO 0; CREATE GENERATOR GEN_INFORMES_ID; -SET GENERATOR GEN_INFORMES_ID TO 0; +SET GENERATOR GEN_INFORMES_ID TO 11; CREATE GENERATOR GEN_MOVIMIENTOS_ID; SET GENERATOR GEN_MOVIMIENTOS_ID TO 0; @@ -166,16 +166,16 @@ CREATE GENERATOR GEN_PEDIDOS_CLI_ID; SET GENERATOR GEN_PEDIDOS_CLI_ID TO 0; CREATE GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID; -SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 7; +SET GENERATOR GEN_PEDIDOS_PROV_DETALLES_ID TO 9; CREATE GENERATOR GEN_PEDIDOS_PROV_ID; -SET GENERATOR GEN_PEDIDOS_PROV_ID TO 2; +SET GENERATOR GEN_PEDIDOS_PROV_ID TO 4; CREATE GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID; -SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 50; +SET GENERATOR GEN_PRESUPUESTOS_CLI_DETALLE_ID TO 60; CREATE GENERATOR GEN_PRESUPUESTOS_CLI_ID; -SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 30; +SET GENERATOR GEN_PRESUPUESTOS_CLI_ID TO 34; CREATE GENERATOR GEN_RECIBOS_CLIENTE_ID; SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 6; @@ -183,6 +183,9 @@ SET GENERATOR GEN_RECIBOS_CLIENTE_ID TO 6; CREATE GENERATOR GEN_RECIBOS_PROVEEDOR_ID; SET GENERATOR GEN_RECIBOS_PROVEEDOR_ID TO 0; +CREATE GENERATOR GEN_REFERENCIAS_ID; +SET GENERATOR GEN_REFERENCIAS_ID TO 17; + CREATE GENERATOR GEN_REMESAS_CLIENTE_ID; SET GENERATOR GEN_REMESAS_CLIENTE_ID TO 0; @@ -193,7 +196,7 @@ CREATE GENERATOR GEN_TIENDA_WEB_ID; SET GENERATOR GEN_TIENDA_WEB_ID TO 0; CREATE GENERATOR GEN_TIPOS_IVA_ID; -SET GENERATOR GEN_TIPOS_IVA_ID TO 9; +SET GENERATOR GEN_TIPOS_IVA_ID TO 5; CREATE GENERATOR GEN_USUARIOS_ID; SET GENERATOR GEN_USUARIOS_ID TO 0; @@ -1037,9 +1040,10 @@ CREATE TABLE RECIBOS_PROVEEDOR ( CREATE TABLE REFERENCIAS ( + ID TIPO_ID NOT NULL, + ID_EMPRESA TIPO_ID, CODIGO VARCHAR(50) NOT NULL, VALOR VARCHAR(255) NOT NULL, - ID_EMPRESA TIPO_ID, DESCRIPCION VARCHAR(255) COLLATE ES_ES ); @@ -2498,6 +2502,7 @@ ALTER TABLE PRESUPUESTOS_CLIENTE_DETALLES ADD CONSTRAINT PK_PRESUPUESTOS_CLIENTE ALTER TABLE PROVEEDORES_DATOS ADD CONSTRAINT PK_PROVEEDORES_DATOS PRIMARY KEY (ID_PROVEEDOR); ALTER TABLE RECIBOS_CLIENTE ADD CONSTRAINT PK_RECIBOS_CLIENTE PRIMARY KEY (ID); ALTER TABLE RECIBOS_PROVEEDOR ADD CONSTRAINT PK_RECIBOS_PROVEEDOR PRIMARY KEY (ID); +ALTER TABLE REFERENCIAS ADD CONSTRAINT PK_REFERENCIAS PRIMARY KEY (ID); ALTER TABLE REMESAS_CLIENTE ADD CONSTRAINT PK_REMESAS_CLIENTE PRIMARY KEY (ID); ALTER TABLE REMESAS_PROVEEDOR ADD CONSTRAINT PK_REMESAS_PROVEEDOR PRIMARY KEY (ID); ALTER TABLE TIENDA_WEB ADD CONSTRAINT PK_TIENDA_WEB PRIMARY KEY (ID); @@ -2616,22 +2621,24 @@ RETURNS ( IMPORTE_TOTAL NUMERIC(11,2), VISIBLE SMALLINT) AS -declare variable num_capitulos integer; +declare variable num_filas integer; +declare variable contador integer; declare variable existe numeric(11,2); declare variable total_acumulado numeric(11,2); begin - num_capitulos = 0; existe = 0; total_acumulado = 0.0; + contador = 0; + num_filas = 0; /* żExiste el presupuesto? */ for select count(*) from presupuestos_cliente_detalles where id_presupuesto = :AID - into :EXISTE + into :num_filas do begin - if (existe = 0) then + if (num_filas = 0) then suspend; end @@ -2650,6 +2657,7 @@ begin if (existe = 1) then begin + contador = 0; /* Existen conceptos sin capitulo */ for select tipo_detalle, importe_total, coalesce(visible, 1) from presupuestos_cliente_detalles @@ -2658,7 +2666,8 @@ begin into :TIPO_DETALLE, :IMPORTE_TOTAL, :VISIBLE do begin - if (tipo_detalle <> 'Concepto') then + contador = contador + 1; + if ((tipo_detalle <> 'Concepto') or (contador = num_filas)) then begin importe_total = total_acumulado; tipo_detalle = 'Titulo'; diff --git a/Database/scripts/factuges_sysdata.sql b/Database/scripts/factuges_sysdata.sql index da21b376..026f0c4f 100644 --- a/Database/scripts/factuges_sysdata.sql +++ b/Database/scripts/factuges_sysdata.sql @@ -22,24 +22,26 @@ SET GENERATOR GEN_INFORMES_ID TO 11; COMMIT WORK; -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_FACTURAS_CLIENTE', '00001', 1, 'Ref. facturas de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PEDIDOS_CLIENTE', '00001', 1, 'Ref. pedidos de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PEDIDOS_PROVEEDOR', '00001', 1, 'Ref. pedidos de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_CLIENTE', '00001', 1, 'Ref. albaranes de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_PROVEEDOR', '00001', 1, 'Ref. albaranes de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_REMESAS_CLIENTE', '00001', 1, 'Ref. remesas de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_COMISIONES', '00001', 1, 'Ref. liquidaciones de comision'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_FACTURAS_PROVEEDOR', '00001', 1, 'Ref. facturas de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_DEV_CLIENTE', '00001', 1, 'Ref. ordenes de devolucion de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ALBARANES_DEV_PROVEEDOR', '00001', 1, 'Ref. ordenes de devolucion de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_REMESAS_PROVEEDOR', '00001', 1, 'Ref. remesas de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ABONOS_CLIENTE', '00001', 1, 'Ref. abonos de cliente'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_ABONOS_PROVEEDOR', '00001', 1, 'Ref. abonos de proveedor'); -INSERT INTO REFERENCIAS (CODIGO, VALOR, ID_EMPRESA, DESCRIPCION) VALUES ('REF_PRESUPUESTOS_CLIENTE', '000001', 1, 'Ref. presupuestos de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (0, 1, 'REF_FACTURAS_CLIENTE', '00001', 'Ref. facturas de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (1, 1, 'REF_PEDIDOS_CLIENTE', '00001', 'Ref. pedidos de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (2, 1, 'REF_PEDIDOS_PROVEEDOR', '00003', 'Ref. pedidos de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (3, 1, 'REF_ALBARANES_CLIENTE', '00004', 'Ref. albaranes de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (4, 1, 'REF_ALBARANES_PROVEEDOR', '00002', 'Ref. albaranes de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (5, 1, 'REF_REMESAS_CLIENTE', '00001', 'Ref. remesas de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (6, 1, 'REF_COMISIONES', '00001', 'Ref. liquidaciones de comision'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (7, 1, 'REF_FACTURAS_PROVEEDOR', '00001', 'Ref. facturas de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (8, 1, 'REF_ALBARANES_DEV_CLIENTE', '00001', 'Ref. ordenes de devolucion de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (9, 1, 'REF_ALBARANES_DEV_PROVEEDOR', '00001', 'Ref. ordenes de devolucion de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (10, 1, 'REF_REMESAS_PROVEEDOR', '00001', 'Ref. remesas de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (11, 1, 'REF_ABONOS_CLIENTE', '00001', 'Ref. abonos de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (12, 1, 'REF_ABONOS_PROVEEDOR', '00001', 'Ref. abonos de proveedor'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (13, 1, 'REF_PRESUPUESTOS_CLIENTE', '000004', 'Ref. presupuestos de cliente'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (14, NULL, 'REF_CLIENTES', '00001', 'Ref. clientes'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (15, NULL, 'REF_PROVEEDORES', '00001', 'Ref. proveedores'); +INSERT INTO REFERENCIAS (ID, ID_EMPRESA, CODIGO, VALOR, DESCRIPCION) VALUES (16, NULL, 'REF_EMPLEADOS', '000001', 'Ref. empleados'); +SET GENERATOR GEN_REFERENCIAS_ID TO 17; COMMIT WORK; - - INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (1, 'IVA16', 'IVA16', 16, 4); INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (2, 'IVA4', 'IVA4', 4, 0.5); INSERT INTO TIPOS_IVA (ID, REFERENCIA, DESCRIPCION, IVA, RE) VALUES (3, 'IVA7', 'IVA7', 7, 1); diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas index 87a05131..e5aae73b 100644 --- a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteClient_Intf.pas @@ -9,21 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{A693E269-BAF7-46A1-84E5-DBC746856BE3}'; - RID_AlbaranesCliente = '{1D19F302-9D09-4E86-9602-98B88C9FF5E7}'; - RID_AlbaranesCliente_Detalles = '{DFBF54C4-E8F9-47BA-9920-89709FB21148}'; + RID_AlbaranesCliente = '{4C4AED7E-9AD2-4F22-B68E-AD7B8F338052}'; + RID_AlbaranesCliente_Detalles = '{1F13B20A-918D-41E3-970E-3AC9E0E6BB9B}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_AlbaranesCliente = 'AlbaranesCliente'; nme_AlbaranesCliente_Detalles = 'AlbaranesCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { AlbaranesCliente fields } fld_AlbaranesClienteID = 'ID'; fld_AlbaranesClienteID_EMPRESA = 'ID_EMPRESA'; @@ -139,44 +131,9 @@ const idx_AlbaranesCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{15B4231D-DD94-42A2-9AC2-4C32AFB4B267}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IAlbaranesCliente } IAlbaranesCliente = interface(IDAStronglyTypedDataTable) - ['{26F46D95-DBBE-40FD-BB99-EEC4B6EE75CD}'] + ['{CC452DE4-1563-4ECC-B92C-60D8F9E3350A}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -667,7 +624,7 @@ type { IAlbaranesCliente_Detalles } IAlbaranesCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{C442C7DF-32BE-4A00-8446-3DA2F08508AC}'] + ['{CD3C0BC2-392C-4937-885E-7396FEC8D6CC}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -860,39 +817,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TAlbaranesClienteDataTableRules } constructor TAlbaranesClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -2043,7 +1967,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_AlbaranesCliente, TAlbaranesClienteDataTableRules); RegisterDataTableRules(RID_AlbaranesCliente_Detalles, TAlbaranesCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas index d9a95d41..64fa159b 100644 --- a/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas +++ b/Source/Modulos/Albaranes de cliente/Model/schAlbaranesClienteServer_Intf.pas @@ -9,48 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{95530CA0-F6C5-439B-ACE3-8DD1B50D65AC}'; - RID_AlbaranesClienteDelta = '{9E1A105B-7BE6-4100-BED9-9EB5E4517371}'; - RID_AlbaranesCliente_DetallesDelta = '{4FD893A0-294F-4ACF-8656-9DC37A524688}'; + RID_AlbaranesClienteDelta = '{14AC5B6B-A7CC-4A17-846D-4029E0864BF7}'; + RID_AlbaranesCliente_DetallesDelta = '{A1C938B1-881C-4020-8257-2103E228E798}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{95530CA0-F6C5-439B-ACE3-8DD1B50D65AC}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IAlbaranesClienteDelta } IAlbaranesClienteDelta = interface(IAlbaranesCliente) - ['{9E1A105B-7BE6-4100-BED9-9EB5E4517371}'] + ['{14AC5B6B-A7CC-4A17-846D-4029E0864BF7}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -542,7 +507,7 @@ type { IAlbaranesCliente_DetallesDelta } IAlbaranesCliente_DetallesDelta = interface(IAlbaranesCliente_Detalles) - ['{4FD893A0-294F-4ACF-8656-9DC37A524688}'] + ['{A1C938B1-881C-4020-8257-2103E228E798}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -735,49 +700,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TAlbaranesClienteBusinessProcessorRules } constructor TAlbaranesClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2460,7 +2382,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesClienteDelta, TAlbaranesClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesCliente_DetallesDelta, TAlbaranesCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas index d4c7e8f7..d9dc2a49 100644 --- a/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas +++ b/Source/Modulos/Albaranes de cliente/Model/uBizAlbaranClienteServer.pas @@ -8,73 +8,110 @@ uses const BIZ_SERVER_ALBARAN_CLIENTE = 'Server.AlbaranCliente'; - REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; - REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; type TBizAlbaranClienteServer = class(TAlbaranesClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schAlbaranesClienteClient_Intf; + schAlbaranesClienteClient_Intf, srvReferencias_Impl, JclStrings; + +const + REF_ALBARANES_CLIENTE = 'REF_ALBARANES_CLIENTE'; + REF_ALBARANES_DEV_CLIENTE = 'REF_ALBARANES_DEV_CLIENTE'; { TBizAlbaranClienteServer } -procedure TBizAlbaranClienteServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - CodigoReferencia: String; - +procedure TBizAlbaranClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizAlbaranClienteServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteID_EMPRESA]; - if (Sender.CurrentChange.NewValueByName[fld_AlbaranesClienteIMPORTE_TOTAL] < 0) then - CodigoReferencia := REF_ALBARANES_DEV_CLIENTE - else - CodigoReferencia := REF_ALBARANES_CLIENTE; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [CodigoReferencia, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizAlbaranClienteServer.DarReferencia: String; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizAlbaranClienteServer.IncrementarReferencia: Boolean; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_CLIENTE + else + ACodigoReferencia := REF_ALBARANES_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ACodigoReferencia, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_CLIENTE, TBizAlbaranClienteServer); diff --git a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm index 6502ed78..62353d58 100644 --- a/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm +++ b/Source/Modulos/Albaranes de cliente/Servidor/srvAlbaranesCliente_Impl.dfm @@ -14,40 +14,6 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -591,32 +557,6 @@ object srvAlbaranesCliente: TsrvAlbaranesCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas index d7a3411a..a3a3442f 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorClient_Intf.pas @@ -9,21 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{E264DAAA-A65A-4F97-8399-054CD6715754}'; - RID_AlbaranesProveedor = '{8070DE55-5BC2-4DCA-B26F-B6E77353CD13}'; - RID_AlbaranesProveedor_Detalles = '{B5916447-B176-439A-8E99-A6CDA1527B86}'; + RID_AlbaranesProveedor = '{B3C84E57-4911-483C-BF95-BC529DBB583C}'; + RID_AlbaranesProveedor_Detalles = '{F665A12E-A0DC-4E29-A620-593A4192A81D}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_AlbaranesProveedor = 'AlbaranesProveedor'; nme_AlbaranesProveedor_Detalles = 'AlbaranesProveedor_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { AlbaranesProveedor fields } fld_AlbaranesProveedorID = 'ID'; fld_AlbaranesProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -133,44 +125,9 @@ const idx_AlbaranesProveedor_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{87BCEB3E-3FAF-44FF-A992-70B549FF79CE}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IAlbaranesProveedor } IAlbaranesProveedor = interface(IDAStronglyTypedDataTable) - ['{91E3DC89-DDB4-4727-88A3-1931B49B7F08}'] + ['{E60D9CCD-626B-4506-B2ED-69DC12E34AC7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -625,7 +582,7 @@ type { IAlbaranesProveedor_Detalles } IAlbaranesProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{A644C742-27E7-449C-9A6B-ED24143E13CD}'] + ['{EEB82A6C-B78D-4D5E-A152-218B7BC3E9DF}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -818,39 +775,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TAlbaranesProveedorDataTableRules } constructor TAlbaranesProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -1938,7 +1862,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); 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 678de95e..0fe653d3 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas +++ b/Source/Modulos/Albaranes de proveedor/Model/schAlbaranesProveedorServer_Intf.pas @@ -9,48 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{AD9EC61F-92A8-4757-A729-430A9C0F1014}'; - RID_AlbaranesProveedorDelta = '{6120285E-A519-4B85-96C3-9568FD81A17F}'; - RID_AlbaranesProveedor_DetallesDelta = '{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'; + RID_AlbaranesProveedorDelta = '{262D0052-9D3B-419A-B2F4-B52A68D8D3DB}'; + RID_AlbaranesProveedor_DetallesDelta = '{A33E831D-4454-40E5-BBBD-B367628D4A88}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{AD9EC61F-92A8-4757-A729-430A9C0F1014}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IAlbaranesProveedorDelta } IAlbaranesProveedorDelta = interface(IAlbaranesProveedor) - ['{6120285E-A519-4B85-96C3-9568FD81A17F}'] + ['{262D0052-9D3B-419A-B2F4-B52A68D8D3DB}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -506,7 +471,7 @@ type { IAlbaranesProveedor_DetallesDelta } IAlbaranesProveedor_DetallesDelta = interface(IAlbaranesProveedor_Detalles) - ['{CEDDEB44-9AE4-468F-A241-3235B7D100D6}'] + ['{A33E831D-4454-40E5-BBBD-B367628D4A88}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_ALBARANValue : Integer; @@ -699,49 +664,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TAlbaranesProveedorBusinessProcessorRules } constructor TAlbaranesProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2331,7 +2253,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesProveedorDelta, TAlbaranesProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_AlbaranesProveedor_DetallesDelta, TAlbaranesProveedor_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS index e4ef8edd..01989528 100644 --- a/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS +++ b/Source/Modulos/Albaranes de proveedor/Model/uBizAlbaranProveedorServer.PAS @@ -8,73 +8,110 @@ uses const BIZ_SERVER_ALBARAN_PROVEEDOR = 'Server.AlbaranProveedor'; - REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; - REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; type TBizAlbaranProveedorServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses - Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, DARemoteService_Impl, - schAlbaranesProveedorClient_Intf, uBusinessUtils, uReferenciasUtils, uROClasses; + Dialogs, SysUtils, Variants, uDataModuleServer, uDAClasses, + schAlbaranesProveedorClient_Intf, uBusinessUtils, uROClasses, + srvReferencias_Impl; + +const + REF_ALBARANES_PROVEEDOR = 'REF_ALBARANES_PROVEEDOR'; + REF_ALBARANES_DEV_PROVEEDOR = 'REF_ALBARANES_DEV_PROVEEDOR'; + { TBizFacturasClienteServer } -procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - CodigoReferencia: String; - +procedure TBizAlbaranProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizAlbaranProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorID_EMPRESA]; - if Sender.CurrentChange.NewValueByName[fld_AlbaranesProveedorIMPORTE_TOTAL] < 0 then - CodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR - else - CodigoReferencia := REF_ALBARANES_PROVEEDOR; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [CodigoReferencia, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + CodigoReferencia + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [CodigoReferencia, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizAlbaranProveedorServer.DarReferencia: String; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ACodigoReferencia, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizAlbaranProveedorServer.IncrementarReferencia: Boolean; +var + ACodigoReferencia : String; +begin + if (IMPORTE_TOTAL < 0) then + ACodigoReferencia := REF_ALBARANES_DEV_PROVEEDOR + else + ACodigoReferencia := REF_ALBARANES_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ACodigoReferencia, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_ALBARAN_PROVEEDOR, TBizAlbaranProveedorServer); diff --git a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm index edda8c75..f980ffd1 100644 --- a/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm +++ b/Source/Modulos/Albaranes de proveedor/Servidor/srvAlbaranesProveedor_Impl.dfm @@ -14,40 +14,6 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -565,32 +531,6 @@ object srvAlbaranesProveedor: TsrvAlbaranesProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Contactos/Model/uBizClientesServer.pas b/Source/Modulos/Contactos/Model/uBizClientesServer.pas index ccb98631..9903cb77 100644 --- a/Source/Modulos/Contactos/Model/uBizClientesServer.pas +++ b/Source/Modulos/Contactos/Model/uBizClientesServer.pas @@ -12,6 +12,9 @@ const type TBizClienteServer = class(TBizContactosServer) protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; @@ -20,11 +23,25 @@ type implementation uses - uDataModuleServer, uDAClasses, - schContactosClient_Intf, uBusinessUtils; + uDataModuleServer, uDAClasses, + schContactosClient_Intf, uBusinessUtils, srvReferencias_Impl; + +const + REF_CLIENTES = 'REF_CLIENTES'; + { TBizClienteServer } +function TBizClienteServer.DarReferenciaContacto: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_CLIENTES) + finally + Free; + end; +end; + procedure TBizClienteServer.Delete_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; @@ -48,6 +65,16 @@ begin end; end; +function TBizClienteServer.IncrementarReferenciaContacto: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_CLIENTES, Self.REFERENCIA) + finally + Free; + end; +end; + procedure TBizClienteServer.Insert_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; diff --git a/Source/Modulos/Contactos/Model/uBizContactosServer.pas b/Source/Modulos/Contactos/Model/uBizContactosServer.pas index e339a702..98d8a837 100644 --- a/Source/Modulos/Contactos/Model/uBizContactosServer.pas +++ b/Source/Modulos/Contactos/Model/uBizContactosServer.pas @@ -11,7 +11,12 @@ const type TBizContactosServer = class(TContactosBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; protected + function DarReferenciaContacto : String; virtual; abstract; + function IncrementarReferenciaContacto : Boolean; virtual; abstract; + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); virtual; procedure Update_Datos_Contacto(aChange: TDADeltaChange); virtual; procedure Delete_Datos_Contacto(aChange: TDADeltaChange); virtual; @@ -20,6 +25,9 @@ type procedure Update_Categoria_Contacto(aChange: TDADeltaChange); virtual; procedure Delete_Categoria_Contacto(aChange: TDADeltaChange); virtual; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); override; @@ -28,14 +36,13 @@ type aChangeType: TDAChangeType; aChange: TDADeltaChange; const aCommand: IDASQLCommand; var CanRemoveFromDelta: Boolean; Error: Exception); override; - end; implementation uses - Dialogs, uDataModuleServer, uDAClasses, - schContactosClient_Intf, uBusinessUtils; + Dialogs, uDataModuleServer, uDAClasses, Variants, + schContactosClient_Intf, uBusinessUtils, srvReferencias_Impl; { TBizContactosServer } @@ -43,15 +50,36 @@ procedure TBizContactosServer.AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; case aChange.ChangeType of ctInsert: begin Insert_Categoria_Contacto(aChange); Insert_Datos_Contacto(aChange); + if FReferenciaAutomatica then + begin + IncrementarReferenciaContacto; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; end; ctUpdate: begin Update_Categoria_Contacto(aChange); Update_Datos_Contacto(aChange); + if FReferenciaAutomatica then + begin + IncrementarReferenciaContacto; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; end; ctDelete: begin Delete_Categoria_Contacto(aChange); @@ -59,7 +87,24 @@ begin end; end; - CanRemoveFromDelta := True; + +end; + +procedure TBizContactosServer.BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); +begin + inherited; + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of + ctInsert, ctUpdate: begin + // Si la referencia no ha sido asignada le asignamos una nosotros + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then + begin + FReferenciaAutomatica := True; + REFERENCIA := DarReferenciaContacto; + end; + end; + end; end; procedure TBizContactosServer.Delete_Categoria_Contacto( diff --git a/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas index 191fc2a6..97e284d4 100644 --- a/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas +++ b/Source/Modulos/Contactos/Model/uBizEmpleadosServer.pas @@ -12,6 +12,9 @@ const type TBizEmpleadoServer = class(TBizContactosServer) protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; @@ -21,10 +24,23 @@ implementation uses uDataModuleServer, uDAClasses, - schContactosClient_Intf, uBusinessUtils; + schContactosClient_Intf, uBusinessUtils, srvReferencias_Impl; + +const + REF_EMPLEADOS = 'REF_EMPLEADOS'; { TBizEmpleadoServer } +function TBizEmpleadoServer.DarReferenciaContacto: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_EMPLEADOS) + finally + Free; + end; +end; + procedure TBizEmpleadoServer.Delete_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; @@ -48,6 +64,16 @@ begin end; end; +function TBizEmpleadoServer.IncrementarReferenciaContacto: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_EMPLEADOS, Self.REFERENCIA) + finally + Free; + end; +end; + procedure TBizEmpleadoServer.Insert_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; diff --git a/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas index f91c580b..92d5426d 100644 --- a/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas +++ b/Source/Modulos/Contactos/Model/uBizProveedoresServer.pas @@ -12,6 +12,9 @@ const type TBizProveedorServer = class(TBizContactosServer) protected + function DarReferenciaContacto : String; override; + function IncrementarReferenciaContacto : Boolean; override; + procedure Insert_Datos_Contacto(aChange: TDADeltaChange); override; procedure Update_Datos_Contacto(aChange: TDADeltaChange); override; procedure Delete_Datos_Contacto(aChange: TDADeltaChange); override; @@ -21,10 +24,23 @@ implementation uses uDataModuleServer, uDAClasses, - schContactosClient_Intf, uBusinessUtils; + schContactosClient_Intf, uBusinessUtils, srvReferencias_Impl; + +const + REF_PROVEEDORES = 'REF_PROVEEDORES'; { TBizProveedorServer } +function TBizProveedorServer.DarReferenciaContacto: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_PROVEEDORES) + finally + Free; + end; +end; + procedure TBizProveedorServer.Delete_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; @@ -48,6 +64,16 @@ begin end; end; +function TBizProveedorServer.IncrementarReferenciaContacto: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_PROVEEDORES, Self.REFERENCIA) + finally + Free; + end; +end; + procedure TBizProveedorServer.Insert_Datos_Contacto(aChange: TDADeltaChange); var ASchema : TDASchema; diff --git a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm index 4742c75c..52b7b89c 100644 --- a/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm +++ b/Source/Modulos/Contactos/Servidor/srvContactos_Impl.dfm @@ -249,6 +249,7 @@ object srvContactos: TsrvContactos Name = 'REFERENCIA' DataType = datString Size = 255 + ServerAutoRefresh = True DictionaryEntry = 'Contactos_REFERENCIA' end> end @@ -652,6 +653,7 @@ object srvContactos: TsrvContactos Name = 'REFERENCIA' DataType = datString Size = 255 + ServerAutoRefresh = True DictionaryEntry = 'Clientes_REFERENCIA' end item @@ -989,6 +991,7 @@ object srvContactos: TsrvContactos Name = 'REFERENCIA' DataType = datString Size = 255 + ServerAutoRefresh = True DictionaryEntry = 'Proveedores_REFERENCIA' end item @@ -1309,6 +1312,7 @@ object srvContactos: TsrvContactos Name = 'REFERENCIA' DataType = datString Size = 255 + ServerAutoRefresh = True DictionaryEntry = 'Agentes_REFERENCIA' end item @@ -4049,24 +4053,24 @@ object srvContactos: TsrvContactos Top = 82 DiagramData = ''#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' ' + ' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13 + + 'Top="200" Width="400" Height="300">'#13#10' '#13#10' '#13#10' '#13#10' '#13#10''#13 + #10 end object bpContactos: TDABusinessProcessor diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas index 2d65ae18..38b62538 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteClient_Intf.pas @@ -9,21 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{CC46C1A7-C6CE-4ABE-B1A8-4C2BABFB5C93}'; - RID_FacturasCliente = '{51E6C07A-D580-46D7-9032-1838AF4D4B07}'; - RID_FacturasCliente_Detalles = '{8A70D0F2-F09E-4166-A792-00012AA7C35A}'; + RID_FacturasCliente = '{95C2DDE4-5EF1-40A4-87CD-E29B422E222D}'; + RID_FacturasCliente_Detalles = '{010F12C4-9C39-4203-B705-9D757B685A11}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_FacturasCliente = 'FacturasCliente'; nme_FacturasCliente_Detalles = 'FacturasCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { FacturasCliente fields } fld_FacturasClienteID = 'ID'; fld_FacturasClienteID_EMPRESA = 'ID_EMPRESA'; @@ -127,44 +119,9 @@ const idx_FacturasCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{3338E715-B18C-4550-BE4C-C92B071770B4}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IFacturasCliente } IFacturasCliente = interface(IDAStronglyTypedDataTable) - ['{0ACBE344-A040-4AD4-8037-DA9382B4D9CF}'] + ['{F5184C4A-3061-4D25-A4A7-9B93249B7D92}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -583,7 +540,7 @@ type { IFacturasCliente_Detalles } IFacturasCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{E62E97AD-C08F-4BB6-A6EF-21BF966630A0}'] + ['{777CB660-EDDA-4CEE-9992-604ED4D8A2D7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -776,39 +733,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TFacturasClienteDataTableRules } constructor TFacturasClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -1828,7 +1752,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_FacturasCliente, TFacturasClienteDataTableRules); RegisterDataTableRules(RID_FacturasCliente_Detalles, TFacturasCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas index 00c491af..c6cb4aef 100644 --- a/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas +++ b/Source/Modulos/Facturas de cliente/Model/schFacturasClienteServer_Intf.pas @@ -9,48 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{E8B8EB94-54CB-49B3-879C-1CF0319BCBBD}'; - RID_FacturasClienteDelta = '{EC7543D0-B0B5-48F9-9401-DEEE0D0BEFF2}'; - RID_FacturasCliente_DetallesDelta = '{A1C5C789-FF93-491C-82C6-A49EF37F27A3}'; + RID_FacturasClienteDelta = '{A8659C85-51C8-44A3-9790-F3A3C50AA03D}'; + RID_FacturasCliente_DetallesDelta = '{BEF54047-703B-4F62-9C73-0F2DB7BF03B4}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{E8B8EB94-54CB-49B3-879C-1CF0319BCBBD}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IFacturasClienteDelta } IFacturasClienteDelta = interface(IFacturasCliente) - ['{EC7543D0-B0B5-48F9-9401-DEEE0D0BEFF2}'] + ['{A8659C85-51C8-44A3-9790-F3A3C50AA03D}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -469,7 +434,7 @@ type { IFacturasCliente_DetallesDelta } IFacturasCliente_DetallesDelta = interface(IFacturasCliente_Detalles) - ['{A1C5C789-FF93-491C-82C6-A49EF37F27A3}'] + ['{BEF54047-703B-4F62-9C73-0F2DB7BF03B4}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -662,49 +627,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TFacturasClienteBusinessProcessorRules } constructor TFacturasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2195,7 +2117,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasClienteDelta, TFacturasClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasCliente_DetallesDelta, TFacturasCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas index b1c2bcd2..21e5caf0 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -8,80 +8,112 @@ uses const BIZ_SERVER_FACTURAS_CLIENTE = 'Server.FacturasCliente'; - REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; - REF_ABONOS_CLIENTE = 'REF_ABONOS_CLIENTE'; - CTE_TIPO_ABONO = 'A'; - CTE_TIPO_FACTURA = 'F'; type TBizFacturasClienteServer = class(TFacturasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses - Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schFacturasClienteClient_Intf; + Variants, uDAClasses, srvReferencias_Impl, uBusinessUtils, uROClasses, + uDataModuleServer, schFacturasClienteClient_Intf; + +const + REF_FACTURAS_CLIENTE = 'REF_FACTURAS_CLIENTE'; + REF_ABONOS_CLIENTE = 'REF_ABONOS_CLIENTE'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + { TBizFacturasClienteServer } -procedure TBizFacturasClienteServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - Tipo : Variant; - +procedure TBizFacturasClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizFacturasClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_FacturasClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_FacturasClienteID_EMPRESA]; - Tipo := Sender.CurrentChange.NewValueByName[fld_FacturasClienteTIPO]; - - if Tipo = CTE_TIPO_FACTURA then - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_CLIENTE, Empresa]) - else - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_ABONOS_CLIENTE, Empresa]); - - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_CLIENTE + ' / ' + REF_ABONOS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - if Tipo = CTE_TIPO_FACTURA then - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_FACTURAS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]) - else - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_ABONOS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizFacturasClienteServer.DarReferencia: String; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_CLIENTE + else + ATipo := REF_ABONOS_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ATipo, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizFacturasClienteServer.IncrementarReferencia: Boolean; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_CLIENTE + else + ATipo := REF_ABONOS_CLIENTE; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ATipo, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_CLIENTE, TBizFacturasClienteServer); diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm index 14f3e134..f85f9f12 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -15,42 +15,6 @@ object srvFacturasCliente: TsrvFacturasCliente DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -534,31 +498,6 @@ object srvFacturasCliente: TsrvFacturasCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas index af4442ac..716422eb 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorClient_Intf.pas @@ -9,21 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{5C2671F2-30A9-40DF-85EB-DAC3E5798C81}'; - RID_FacturasProveedor = '{EB88CFA6-A4F3-44A5-99AC-CEEF636BBC0F}'; - RID_FacturasProveedor_Detalles = '{794BFE28-FCFA-451E-809D-4B3204729DB8}'; + RID_FacturasProveedor = '{88E29988-90B3-4F11-BDD5-725B135C5155}'; + RID_FacturasProveedor_Detalles = '{B8192582-A958-4BCC-A261-5608584C2B67}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_FacturasProveedor = 'FacturasProveedor'; nme_FacturasProveedor_Detalles = 'FacturasProveedor_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { FacturasProveedor fields } fld_FacturasProveedorID = 'ID'; fld_FacturasProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -123,44 +115,9 @@ const idx_FacturasProveedor_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{2CD8615C-AC9E-463D-A28B-9DF7EA71C261}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IFacturasProveedor } IFacturasProveedor = interface(IDAStronglyTypedDataTable) - ['{19ADA8D8-BA53-426F-9AFA-700B29166843}'] + ['{E152D3B2-9282-492A-8E11-DDBE597C9FB1}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -555,7 +512,7 @@ type { IFacturasProveedor_Detalles } IFacturasProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{8C420A12-5489-4872-A3A6-9DE83225D778}'] + ['{97403572-2108-4BF9-BD7B-4359FD2F8C8D}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -748,39 +705,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TFacturasProveedorDataTableRules } constructor TFacturasProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -1758,7 +1682,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_FacturasProveedor, TFacturasProveedorDataTableRules); RegisterDataTableRules(RID_FacturasProveedor_Detalles, TFacturasProveedor_DetallesDataTableRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas index 19f97ec2..371391ed 100644 --- a/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas +++ b/Source/Modulos/Facturas de proveedor/Model/schFacturasProveedorServer_Intf.pas @@ -9,48 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{29799EE8-6169-4A26-9C4C-02C33D658D97}'; - RID_FacturasProveedorDelta = '{90E2FE05-93D9-4478-B54E-73618BD635BF}'; - RID_FacturasProveedor_DetallesDelta = '{9215693E-0AA6-46A8-AD7B-3EAE75F51EFE}'; + RID_FacturasProveedorDelta = '{E53CF4C8-D5FB-42BC-AA69-3E77733F61F0}'; + RID_FacturasProveedor_DetallesDelta = '{6CC27603-B23C-40C4-9D22-8CFC5E1B738F}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{29799EE8-6169-4A26-9C4C-02C33D658D97}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IFacturasProveedorDelta } IFacturasProveedorDelta = interface(IFacturasProveedor) - ['{90E2FE05-93D9-4478-B54E-73618BD635BF}'] + ['{E53CF4C8-D5FB-42BC-AA69-3E77733F61F0}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -445,7 +410,7 @@ type { IFacturasProveedor_DetallesDelta } IFacturasProveedor_DetallesDelta = interface(IFacturasProveedor_Detalles) - ['{9215693E-0AA6-46A8-AD7B-3EAE75F51EFE}'] + ['{6CC27603-B23C-40C4-9D22-8CFC5E1B738F}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_FACTURAValue : Integer; @@ -638,49 +603,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TFacturasProveedorBusinessProcessorRules } constructor TFacturasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2109,7 +2031,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedorDelta, TFacturasProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_FacturasProveedor_DetallesDelta, TFacturasProveedor_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas index 1a28edd4..780f2d00 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas @@ -8,80 +8,112 @@ uses const BIZ_SERVER_FACTURAS_PROVEEDOR = 'Server.FacturasProveedor'; - REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; - REF_ABONOS_PROVEEDOR = 'REF_ABONOS_PROVEEDOR'; - CTE_TIPO_ABONO = 'A'; - CTE_TIPO_FACTURA = 'F'; type TBizFacturasProveedorServer = class(TFacturasProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schFacturasProveedorClient_Intf; + schFacturasProveedorClient_Intf, srvReferencias_Impl; + +const + REF_FACTURAS_PROVEEDOR = 'REF_FACTURAS_PROVEEDOR'; + REF_ABONOS_PROVEEDOR = 'REF_ABONOS_PROVEEDOR'; + CTE_TIPO_ABONO = 'A'; + CTE_TIPO_FACTURA = 'F'; + { TBizFacturasProveedorServer } -procedure TBizFacturasProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - Tipo : Variant; - +procedure TBizFacturasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizFacturasProveedorServer.BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_FacturasProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_FacturasProveedorID_EMPRESA]; - Tipo := Sender.CurrentChange.NewValueByName[fld_FacturasProveedorTIPO]; - - if Tipo = CTE_TIPO_FACTURA then - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_FACTURAS_PROVEEDOR, Empresa]) - else - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_ABONOS_PROVEEDOR, Empresa]); - - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_FACTURAS_PROVEEDOR + ' / ' + REF_ABONOS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - if Tipo = CTE_TIPO_FACTURA then - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_FACTURAS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]) - else - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_ABONOS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizFacturasProveedorServer.DarReferencia: String; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_PROVEEDOR + else + ATipo := REF_ABONOS_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(ATipo, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizFacturasProveedorServer.IncrementarReferencia: Boolean; +var + ATipo : String; +begin + if TIPO = CTE_TIPO_FACTURA then + ATipo := REF_FACTURAS_PROVEEDOR + else + ATipo := REF_ABONOS_PROVEEDOR; + + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(ATipo, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_FACTURAS_PROVEEDOR, TBizFacturasProveedorServer); diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm index 7a90cfb2..579b735e 100644 --- a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -15,42 +15,6 @@ object srvFacturasProveedor: TsrvFacturasProveedor DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -519,31 +483,6 @@ object srvFacturasProveedor: TsrvFacturasProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas index eabb8b47..03ef4eb2 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorClient_Intf.pas @@ -9,23 +9,15 @@ 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_DarReferencia = '{CA7994DB-6CC3-4494-8CDA-4D8411DB5D2D}'; - RID_PedidosProveedor = '{684C5776-911B-490A-9C71-D4EDCCAD631E}'; - RID_PedidosProveedor_Detalles = '{FCF3DE95-4073-4679-92C0-87B7E7C46108}'; - RID_PedidosProveedor_Articulos_Pendientes = '{EA978B2E-441A-49F8-AF4D-76517D74CF10}'; + RID_PedidosProveedor = '{58DE490F-21E7-46A0-8553-F18015CAF07E}'; + RID_PedidosProveedor_Detalles = '{1F8FEB94-42A3-4DC3-BB9B-33D96BAB6B5E}'; + RID_PedidosProveedor_Articulos_Pendientes = '{0864581D-D5D3-441D-9296-22C2CFB6DE3B}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_PedidosProveedor = 'PedidosProveedor'; nme_PedidosProveedor_Detalles = 'PedidosProveedor_Detalles'; nme_PedidosProveedor_Articulos_Pendientes = 'PedidosProveedor_Articulos_Pendientes'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { PedidosProveedor fields } fld_PedidosProveedorID = 'ID'; fld_PedidosProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -149,44 +141,9 @@ const idx_PedidosProveedor_Articulos_PendientesREFERENCIA_PROVEEDOR = 5; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{04456888-5D38-48BB-8CED-95617D1F2BB9}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IPedidosProveedor } IPedidosProveedor = interface(IDAStronglyTypedDataTable) - ['{4E3D9B42-CF76-460B-8136-2D0C2B3417D4}'] + ['{045CE31C-5F13-4365-94D8-09C247E0B609}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -629,7 +586,7 @@ type { IPedidosProveedor_Detalles } IPedidosProveedor_Detalles = interface(IDAStronglyTypedDataTable) - ['{127BE3FD-DEF4-4C58-ABC5-5A54DCE0608D}'] + ['{10B7129B-0AD0-476C-AA42-807F150AA7B3}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -820,7 +777,7 @@ type { IPedidosProveedor_Articulos_Pendientes } IPedidosProveedor_Articulos_Pendientes = interface(IDAStronglyTypedDataTable) - ['{34BDDF31-970F-4F58-923B-1C0E66F27A5F}'] + ['{0F474AE2-91D1-4747-B9B7-3825145A2CE3}'] { Property getters and setters } function GetID_PEDIDOValue: Integer; procedure SetID_PEDIDOValue(const aValue: Integer); @@ -917,39 +874,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TPedidosProveedorDataTableRules } constructor TPedidosProveedorDataTableRules.Create(aDataTable: TDADataTable); var @@ -2154,7 +2078,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_PedidosProveedor, TPedidosProveedorDataTableRules); RegisterDataTableRules(RID_PedidosProveedor_Detalles, TPedidosProveedor_DetallesDataTableRules); RegisterDataTableRules(RID_PedidosProveedor_Articulos_Pendientes, TPedidosProveedor_Articulos_PendientesDataTableRules); diff --git a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas index 662cc9b0..b2a6d50d 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/schPedidosProveedorServer_Intf.pas @@ -9,49 +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_DarReferenciaDelta = '{A1F1C534-FD91-42C1-856B-0CAE9DE48B68}'; - RID_PedidosProveedorDelta = '{349D50BE-57FD-468A-8751-0374A571AAA4}'; - RID_PedidosProveedor_DetallesDelta = '{E924668B-8D1B-44C3-9DA2-D033F8C44E06}'; - RID_PedidosProveedor_Articulos_PendientesDelta = '{0B859C3A-9F82-4451-A206-24CEF18A61E9}'; + RID_PedidosProveedorDelta = '{6B35580D-7178-4FFA-B9D7-5267221E9EC2}'; + RID_PedidosProveedor_DetallesDelta = '{D3FC4AC8-B811-4DEF-B9E5-7EDF82012F3D}'; + RID_PedidosProveedor_Articulos_PendientesDelta = '{CACE01FB-F88B-48FB-9693-CF3432BAF0D6}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{A1F1C534-FD91-42C1-856B-0CAE9DE48B68}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IPedidosProveedorDelta } IPedidosProveedorDelta = interface(IPedidosProveedor) - ['{349D50BE-57FD-468A-8751-0374A571AAA4}'] + ['{6B35580D-7178-4FFA-B9D7-5267221E9EC2}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -495,7 +460,7 @@ type { IPedidosProveedor_DetallesDelta } IPedidosProveedor_DetallesDelta = interface(IPedidosProveedor_Detalles) - ['{E924668B-8D1B-44C3-9DA2-D033F8C44E06}'] + ['{D3FC4AC8-B811-4DEF-B9E5-7EDF82012F3D}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PEDIDOValue : Integer; @@ -685,7 +650,7 @@ type { IPedidosProveedor_Articulos_PendientesDelta } IPedidosProveedor_Articulos_PendientesDelta = interface(IPedidosProveedor_Articulos_Pendientes) - ['{0B859C3A-9F82-4451-A206-24CEF18A61E9}'] + ['{CACE01FB-F88B-48FB-9693-CF3432BAF0D6}'] { Property getters and setters } function GetOldID_PEDIDOValue : Integer; function GetOldREFERENCIAValue : String; @@ -782,49 +747,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TPedidosProveedorBusinessProcessorRules } constructor TPedidosProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2581,7 +2503,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedorDelta, TPedidosProveedorBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedor_DetallesDelta, TPedidosProveedor_DetallesBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PedidosProveedor_Articulos_PendientesDelta, TPedidosProveedor_Articulos_PendientesBusinessProcessorRules); diff --git a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas index 5c128d8e..dad96e76 100644 --- a/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas +++ b/Source/Modulos/Pedidos a proveedor/Model/uBizPedidosProveedorServer.pas @@ -8,67 +8,95 @@ uses const BIZ_SERVER_PEDIDOS_PROVEEDOR = 'Server.PedidosProveedor'; - REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; type TBizPedidosProveedorServer = class(TPedidosProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schPedidosProveedorClient_Intf; + schPedidosProveedorClient_Intf, srvReferencias_Impl; + +const + REF_PEDIDOS_PROVEEDOR = 'REF_PEDIDOS_PROVEEDOR'; + { TBizPedidosProveedorServer } -procedure TBizPedidosProveedorServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizPedidosProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizPedidosProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_PedidosProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_PedidosProveedorID_EMPRESA]; - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_PEDIDOS_PROVEEDOR, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_PEDIDOS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_PEDIDOS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizPedidosProveedorServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_PEDIDOS_PROVEEDOR, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizPedidosProveedorServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_PEDIDOS_PROVEEDOR, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_PEDIDOS_PROVEEDOR, TBizPedidosProveedorServer); diff --git a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm index aab23622..6de36cf8 100644 --- a/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm +++ b/Source/Modulos/Pedidos a proveedor/Servidor/srvPedidosProveedor_Impl.dfm @@ -14,40 +14,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT'#10' VALOR'#10'FROM'#10' REFERENCIAS'#10'WHERE'#10' CODIGO = :COD' + - 'IGO'#10'AND ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -619,32 +585,6 @@ object srvPedidosProveedor: TsrvPedidosProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas index bad4852d..f6c27602 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteClient_Intf.pas @@ -9,21 +9,13 @@ const { Data table rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferencia = '{6594B31A-A292-486E-A784-AF4659E1A953}'; - RID_PresupuestosCliente = '{13857C95-50E8-4EF5-8544-ABFCE393A83E}'; - RID_PresupuestosCliente_Detalles = '{FE4E1E48-710A-404F-B2DD-4547549B420D}'; + RID_PresupuestosCliente = '{07B92F91-B78B-48C3-A022-A9DFF963F681}'; + RID_PresupuestosCliente_Detalles = '{52E490B1-0AFF-4BBA-BA6A-CF8B547AFC33}'; { Data table names } - nme_DarReferencia = 'DarReferencia'; nme_PresupuestosCliente = 'PresupuestosCliente'; nme_PresupuestosCliente_Detalles = 'PresupuestosCliente_Detalles'; - { DarReferencia fields } - fld_DarReferenciaVALOR = 'VALOR'; - - { DarReferencia field indexes } - idx_DarReferenciaVALOR = 0; - { PresupuestosCliente fields } fld_PresupuestosClienteID = 'ID'; fld_PresupuestosClienteID_EMPRESA = 'ID_EMPRESA'; @@ -117,44 +109,9 @@ const idx_PresupuestosCliente_DetallesREFERENCIA_PROVEEDOR = 13; type - { IDarReferencia } - IDarReferencia = interface(IDAStronglyTypedDataTable) - ['{D7753D57-71A2-4C4D-A580-8D58520FCFD3}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TDarReferenciaDataTableRules } - TDarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IDarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IPresupuestosCliente } IPresupuestosCliente = interface(IDAStronglyTypedDataTable) - ['{4FCC9A5F-7A94-4A3A-940A-4CA0D4176EDB}'] + ['{89129FA5-5437-4FC5-A5F5-C5B6D0E115B1}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -513,7 +470,7 @@ type { IPresupuestosCliente_Detalles } IPresupuestosCliente_Detalles = interface(IDAStronglyTypedDataTable) - ['{5B7F200F-3962-455D-98BB-A24DE98BD18B}'] + ['{5037407C-23C9-4C3D-A12B-66E966AAEB3A}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -706,39 +663,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TDarReferenciaDataTableRules } -constructor TDarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TDarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].AsString; -end; - -procedure TDarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_DarReferenciaVALOR].AsString := aValue; -end; - -function TDarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_DarReferenciaVALOR].IsNull; -end; - -procedure TDarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_DarReferenciaVALOR].AsVariant := Null; -end; - - { TPresupuestosClienteDataTableRules } constructor TPresupuestosClienteDataTableRules.Create(aDataTable: TDADataTable); var @@ -1668,7 +1592,6 @@ end; initialization - RegisterDataTableRules(RID_DarReferencia, TDarReferenciaDataTableRules); RegisterDataTableRules(RID_PresupuestosCliente, TPresupuestosClienteDataTableRules); RegisterDataTableRules(RID_PresupuestosCliente_Detalles, TPresupuestosCliente_DetallesDataTableRules); diff --git a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas index d13a8bcd..a18ff859 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/schPresupuestosClienteServer_Intf.pas @@ -9,48 +9,13 @@ const { Delta rules ids Feel free to change them to something more human readable but make sure they are unique in the context of your application } - RID_DarReferenciaDelta = '{0B34135E-0FB6-4CBA-AF23-A26B88542C10}'; - RID_PresupuestosClienteDelta = '{847B43BF-5186-406F-92E6-2135D35EF01F}'; - RID_PresupuestosCliente_DetallesDelta = '{1DA22D38-0DB5-450C-AF43-3F7F4D2EA56E}'; + RID_PresupuestosClienteDelta = '{33FBE0A4-6909-4581-81D2-E8717839296B}'; + RID_PresupuestosCliente_DetallesDelta = '{F84CCA1D-138D-4516-818D-EE1757D249B1}'; type - { IDarReferenciaDelta } - IDarReferenciaDelta = interface(IDarReferencia) - ['{0B34135E-0FB6-4CBA-AF23-A26B88542C10}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TDarReferenciaBusinessProcessorRules } - TDarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IDarReferencia, IDarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IPresupuestosClienteDelta } IPresupuestosClienteDelta = interface(IPresupuestosCliente) - ['{847B43BF-5186-406F-92E6-2135D35EF01F}'] + ['{33FBE0A4-6909-4581-81D2-E8717839296B}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -412,7 +377,7 @@ type { IPresupuestosCliente_DetallesDelta } IPresupuestosCliente_DetallesDelta = interface(IPresupuestosCliente_Detalles) - ['{1DA22D38-0DB5-450C-AF43-3F7F4D2EA56E}'] + ['{F84CCA1D-138D-4516-818D-EE1757D249B1}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_PRESUPUESTOValue : Integer; @@ -605,49 +570,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TDarReferenciaBusinessProcessorRules } -constructor TDarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TDarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR]); -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]; -end; - -function TDarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_DarReferenciaVALOR]); -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := aValue; -end; - -procedure TDarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_DarReferenciaVALOR] := Null; -end; - - { TPresupuestosClienteBusinessProcessorRules } constructor TPresupuestosClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); var @@ -2001,7 +1923,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_DarReferenciaDelta, TDarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PresupuestosClienteDelta, TPresupuestosClienteBusinessProcessorRules); RegisterBusinessProcessorRules(RID_PresupuestosCliente_DetallesDelta, TPresupuestosCliente_DetallesBusinessProcessorRules); diff --git a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas index dc0784b0..82b5b7d9 100644 --- a/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas +++ b/Source/Modulos/Presupuestos de cliente/Model/uBizPresupuestosClienteServer.pas @@ -8,68 +8,96 @@ uses const BIZ_SERVER_PRESUPUESTOS_CLIENTE = 'Server.PresupuestosCliente'; - REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; type TBizPresupuestosClienteServer = class(TPresupuestosClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schPresupuestosClienteClient_Intf; + schPresupuestosClienteClient_Intf, srvReferencias_Impl; + +const + REF_PRESUPUESTOS_CLIENTE = 'REF_PRESUPUESTOS_CLIENTE'; { TBizPresupuestosClienteServer } -procedure TBizPresupuestosClienteServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizPresupuestosClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizPresupuestosClienteServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + inherited; + + FReferenciaAutomatica := False; case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_PresupuestosClienteID_EMPRESA]; - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_PRESUPUESTOS_CLIENTE, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_PRESUPUESTOS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName(fld_DarReferenciaVALOR).AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'EMPRESA'], [REF_PRESUPUESTOS_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizPresupuestosClienteServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_PRESUPUESTOS_CLIENTE, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizPresupuestosClienteServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_PRESUPUESTOS_CLIENTE, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_PRESUPUESTOS_CLIENTE, TBizPresupuestosClienteServer); diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm index 4e84330e..cba8a404 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.dfm @@ -12,43 +12,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente ConnectionManager = dmServer.ConnectionManager DataDictionary = DADataDictionary Datasets = < - item - Params = < - item - Name = 'CODIGO' - Value = '' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - ConnectionType = 'Interbase' - Default = True - TargetTable = 'REFERENCIAS' - Name = 'IBX' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'DarReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -486,34 +449,6 @@ object srvPresupuestosCliente: TsrvPresupuestosCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - ConnectionType = 'Interbase' - Default = True - Name = 'IBX' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas index 2dbe8d20..d70cc2c5 100644 --- a/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas +++ b/Source/Modulos/Presupuestos de cliente/Servidor/srvPresupuestosCliente_Impl.pas @@ -31,7 +31,6 @@ type procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); procedure DARemoteServiceCreate(Sender: TObject); - private protected { IsrvPresupuestosCliente methods } function GenerateReport(const ID: String): Binary; diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas index 2a892638..84b3d55b 100644 --- a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteClient_Intf.pas @@ -9,19 +9,11 @@ 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_darReferencia = '{2A669FBE-2DE4-4257-8CA5-518E3E7FE0A3}'; - RID_RemesasCliente = '{6AD59CC0-CB4B-4B42-87E9-0C30BF117732}'; + RID_RemesasCliente = '{A3A37A96-7559-4E50-8495-1079545939AD}'; { Data table names } - nme_darReferencia = 'darReferencia'; nme_RemesasCliente = 'RemesasCliente'; - { darReferencia fields } - fld_darReferenciaVALOR = 'VALOR'; - - { darReferencia field indexes } - idx_darReferenciaVALOR = 0; - { RemesasCliente fields } fld_RemesasClienteID = 'ID'; fld_RemesasClienteID_EMPRESA = 'ID_EMPRESA'; @@ -63,44 +55,9 @@ const idx_RemesasClienteIMPORTE_TOTAL = 17; type - { IdarReferencia } - IdarReferencia = interface(IDAStronglyTypedDataTable) - ['{41ABA49E-1EC4-40B5-8174-E851C8735EF6}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TdarReferenciaDataTableRules } - TdarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IdarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IRemesasCliente } IRemesasCliente = interface(IDAStronglyTypedDataTable) - ['{2DFC502B-A484-4565-BFCB-F4A172BBF594}'] + ['{DB8F46E9-380C-4C70-ABE6-04E5B22CF7A7}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -341,39 +298,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TdarReferenciaDataTableRules } -constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TdarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].AsString; -end; - -procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; -end; - -function TdarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].IsNull; -end; - -procedure TdarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_darReferenciaVALOR].AsVariant := Null; -end; - - { TRemesasClienteDataTableRules } constructor TRemesasClienteDataTableRules.Create(aDataTable: TDADataTable); begin @@ -765,7 +689,6 @@ end; initialization - RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); RegisterDataTableRules(RID_RemesasCliente, TRemesasClienteDataTableRules); end. diff --git a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas index e2782673..81095927 100644 --- a/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas +++ b/Source/Modulos/Remesas de cliente/Model/schRemesasClienteServer_Intf.pas @@ -9,47 +9,12 @@ 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_darReferenciaDelta = '{93BE415A-B388-496F-B435-1AA6D4F3535C}'; - RID_RemesasClienteDelta = '{090FFD4E-3541-40D8-9577-9A6BBB35ECEB}'; + RID_RemesasClienteDelta = '{DF92284D-DA6F-4B1B-9E11-B808478A1CBD}'; type - { IdarReferenciaDelta } - IdarReferenciaDelta = interface(IdarReferencia) - ['{93BE415A-B388-496F-B435-1AA6D4F3535C}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TdarReferenciaBusinessProcessorRules } - TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IRemesasClienteDelta } IRemesasClienteDelta = interface(IRemesasCliente) - ['{090FFD4E-3541-40D8-9577-9A6BBB35ECEB}'] + ['{DF92284D-DA6F-4B1B-9E11-B808478A1CBD}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -290,49 +255,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TdarReferenciaBusinessProcessorRules } -constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TdarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]); -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]); -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := Null; -end; - - { TRemesasClienteBusinessProcessorRules } constructor TRemesasClienteBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); begin @@ -904,7 +826,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_RemesasClienteDelta, TRemesasClienteBusinessProcessorRules); end. diff --git a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas index f2307e12..f878a177 100644 --- a/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas +++ b/Source/Modulos/Remesas de cliente/Model/uBizRemesasClienteServer.pas @@ -8,69 +8,94 @@ uses const BIZ_SERVER_REMESAS_CLIENTE = 'Server.RemesasCliente'; - REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; type TBizRemesasClienteServer = class(TRemesasClienteBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schRemesasClienteClient_Intf; - + schRemesasClienteClient_Intf, srvReferencias_Impl; +const + REF_REMESAS_CLIENTE = 'REF_REMESAS_CLIENTE'; + { TBizRemesasClienteServer } +procedure TBizRemesasClienteServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); +begin + inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + procedure TBizRemesasClienteServer.BeforeProcessDelta( Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - begin - inherited; + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_RemesasClienteREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_RemesasClienteID_EMPRESA]; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_REMESAS_CLIENTE, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_REMESAS_CLIENTE + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_Remesas_CLIENTE, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizRemesasClienteServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_REMESAS_CLIENTE, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizRemesasClienteServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_REMESAS_CLIENTE, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_CLIENTE, TBizRemesasClienteServer); diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm index 5e3e1323..366efbd5 100644 --- a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.dfm @@ -136,42 +136,6 @@ object srvRemesasCliente: TsrvRemesasCliente DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = 'REF_REMESAS_CLIENTE' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '1' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'darReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -363,32 +327,6 @@ object srvRemesasCliente: TsrvRemesasCliente JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas index e7e7f001..bc6edc92 100644 --- a/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas +++ b/Source/Modulos/Remesas de cliente/Servidor/srvRemesasCliente_Impl.pas @@ -23,9 +23,9 @@ type TsrvRemesasCliente = class(TDataAbstractService, IsrvRemesasCliente) Diagrams: TDADiagrams; bpRemesasCliente: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; schRemesasCliente: TDASchema; DataDictionary: TDADataDictionary; - Bin2DataStreamer: TDABin2DataStreamer; procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer); diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas index 933b8deb..3aa6be2a 100644 --- a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorClient_Intf.pas @@ -9,19 +9,11 @@ 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_darReferencia = '{60F91383-6F77-4AD3-9E84-B27C782A1482}'; - RID_RemesasProveedor = '{044A9E1D-90AB-4E1C-BFCB-98772BB603BE}'; + RID_RemesasProveedor = '{2EB3551B-D75C-4B29-8F57-BCF984FDBFC8}'; { Data table names } - nme_darReferencia = 'darReferencia'; nme_RemesasProveedor = 'RemesasProveedor'; - { darReferencia fields } - fld_darReferenciaVALOR = 'VALOR'; - - { darReferencia field indexes } - idx_darReferenciaVALOR = 0; - { RemesasProveedor fields } fld_RemesasProveedorID = 'ID'; fld_RemesasProveedorID_EMPRESA = 'ID_EMPRESA'; @@ -63,44 +55,9 @@ const idx_RemesasProveedorIMPORTE_TOTAL = 17; type - { IdarReferencia } - IdarReferencia = interface(IDAStronglyTypedDataTable) - ['{3EC7EB36-5C81-4D96-924C-BFBAD8D38041}'] - { Property getters and setters } - function GetVALORValue: String; - procedure SetVALORValue(const aValue: String); - function GetVALORIsNull: Boolean; - procedure SetVALORIsNull(const aValue: Boolean); - - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - end; - - { TdarReferenciaDataTableRules } - TdarReferenciaDataTableRules = class(TIntfObjectDADataTableRules, IdarReferencia) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - procedure SetVALORValue(const aValue: String); virtual; - function GetVALORIsNull: Boolean; virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR: String read GetVALORValue write SetVALORValue; - property VALORIsNull: Boolean read GetVALORIsNull write SetVALORIsNull; - - public - constructor Create(aDataTable: TDADataTable); override; - destructor Destroy; override; - - end; - { IRemesasProveedor } IRemesasProveedor = interface(IDAStronglyTypedDataTable) - ['{33E0651A-D061-431F-9EAD-9B9B0458B888}'] + ['{C0DCF223-5495-4B6F-98BC-7C51719E7D34}'] { Property getters and setters } function GetIDValue: Integer; procedure SetIDValue(const aValue: Integer); @@ -341,39 +298,6 @@ implementation uses Variants, uROBinaryHelpers; -{ TdarReferenciaDataTableRules } -constructor TdarReferenciaDataTableRules.Create(aDataTable: TDADataTable); -begin - inherited; -end; - -destructor TdarReferenciaDataTableRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaDataTableRules.GetVALORValue: String; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].AsString; -end; - -procedure TdarReferenciaDataTableRules.SetVALORValue(const aValue: String); -begin - DataTable.Fields[idx_darReferenciaVALOR].AsString := aValue; -end; - -function TdarReferenciaDataTableRules.GetVALORIsNull: boolean; -begin - result := DataTable.Fields[idx_darReferenciaVALOR].IsNull; -end; - -procedure TdarReferenciaDataTableRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - DataTable.Fields[idx_darReferenciaVALOR].AsVariant := Null; -end; - - { TRemesasProveedorDataTableRules } constructor TRemesasProveedorDataTableRules.Create(aDataTable: TDADataTable); begin @@ -765,7 +689,6 @@ end; initialization - RegisterDataTableRules(RID_darReferencia, TdarReferenciaDataTableRules); RegisterDataTableRules(RID_RemesasProveedor, TRemesasProveedorDataTableRules); end. diff --git a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas index d742efd4..c3a84386 100644 --- a/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas +++ b/Source/Modulos/Remesas de proveedor/Model/schRemesasProveedorServer_Intf.pas @@ -9,47 +9,12 @@ 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_darReferenciaDelta = '{654CD172-ED14-43A0-85CD-7D5714EF6CA6}'; - RID_RemesasProveedorDelta = '{66615F2E-3E7A-49C6-AE86-A922790A3D92}'; + RID_RemesasProveedorDelta = '{8EF544D2-A579-49C7-A4AF-220B10067DE0}'; type - { IdarReferenciaDelta } - IdarReferenciaDelta = interface(IdarReferencia) - ['{654CD172-ED14-43A0-85CD-7D5714EF6CA6}'] - { Property getters and setters } - function GetOldVALORValue : String; - - { Properties } - property OldVALOR : String read GetOldVALORValue; - end; - - { TdarReferenciaBusinessProcessorRules } - TdarReferenciaBusinessProcessorRules = class(TDABusinessProcessorRules, IdarReferencia, IdarReferenciaDelta) - private - protected - { Property getters and setters } - function GetVALORValue: String; virtual; - function GetVALORIsNull: Boolean; virtual; - function GetOldVALORValue: String; virtual; - function GetOldVALORIsNull: Boolean; virtual; - procedure SetVALORValue(const aValue: String); virtual; - procedure SetVALORIsNull(const aValue: Boolean); virtual; - - { Properties } - property VALOR : String read GetVALORValue write SetVALORValue; - property VALORIsNull : Boolean read GetVALORIsNull write SetVALORIsNull; - property OldVALOR : String read GetOldVALORValue; - property OldVALORIsNull : Boolean read GetOldVALORIsNull; - - public - constructor Create(aBusinessProcessor: TDABusinessProcessor); override; - destructor Destroy; override; - - end; - { IRemesasProveedorDelta } IRemesasProveedorDelta = interface(IRemesasProveedor) - ['{66615F2E-3E7A-49C6-AE86-A922790A3D92}'] + ['{8EF544D2-A579-49C7-A4AF-220B10067DE0}'] { Property getters and setters } function GetOldIDValue : Integer; function GetOldID_EMPRESAValue : Integer; @@ -290,49 +255,6 @@ implementation uses Variants, uROBinaryHelpers, uDAInterfaces; -{ TdarReferenciaBusinessProcessorRules } -constructor TdarReferenciaBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); -begin - inherited; -end; - -destructor TdarReferenciaBusinessProcessorRules.Destroy; -begin - inherited; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR]); -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORValue: String; -begin - result := BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]; -end; - -function TdarReferenciaBusinessProcessorRules.GetOldVALORIsNull: Boolean; -begin - result := VarIsNull(BusinessProcessor.CurrentChange.OldValueByName[fld_darReferenciaVALOR]); -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORValue(const aValue: String); -begin - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := aValue; -end; - -procedure TdarReferenciaBusinessProcessorRules.SetVALORIsNull(const aValue: Boolean); -begin - if aValue then - BusinessProcessor.CurrentChange.NewValueByName[fld_darReferenciaVALOR] := Null; -end; - - { TRemesasProveedorBusinessProcessorRules } constructor TRemesasProveedorBusinessProcessorRules.Create(aBusinessProcessor: TDABusinessProcessor); begin @@ -904,7 +826,6 @@ end; initialization - RegisterBusinessProcessorRules(RID_darReferenciaDelta, TdarReferenciaBusinessProcessorRules); RegisterBusinessProcessorRules(RID_RemesasProveedorDelta, TRemesasProveedorBusinessProcessorRules); end. diff --git a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas index dee5a38a..7298acf8 100644 --- a/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas +++ b/Source/Modulos/Remesas de proveedor/Model/uBizRemesasProveedorServer.pas @@ -8,68 +8,95 @@ uses const BIZ_SERVER_REMESAS_Proveedor = 'Server.RemesasProveedor'; - REF_REMESAS_PROVEEDOR = 'REF_REMESAS_PROVEEDOR'; + type TBizRemesasProveedorServer = class(TRemesasProveedorBusinessProcessorRules) + private + FReferenciaAutomatica : Boolean; + function DarReferencia : String; + function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; + const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; + aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); override; end; implementation uses Variants, uDAClasses, uReferenciasUtils, uBusinessUtils, uROClasses, uDataModuleServer, - schRemesasProveedorClient_Intf; + schRemesasProveedorClient_Intf, srvReferencias_Impl; + +const + REF_REMESAS_PROVEEDOR = 'REF_REMESAS_PROVEEDOR'; { TBizRemesasProveedorServer } -procedure TBizRemesasProveedorServer.BeforeProcessDelta( - Sender: TDABusinessProcessor; const aDelta: IDADelta); -var - ASchema : TDASchema; - ACurrentConn : IDAConnection; - dsData: IDADataset; - Empresa : Variant; - +procedure TBizRemesasProveedorServer.AfterProcessChange( + Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; + var CanRemoveFromDelta: Boolean); begin inherited; + { Por defecto, no es necesario mantener los deltas una vez + procesados los cambios. } + CanRemoveFromDelta := True; + + case aChange.ChangeType of + ctInsert, ctUpdate: begin + if FReferenciaAutomatica then + begin + IncrementarReferencia; + FReferenciaAutomatica := False; + { En este caso no debemos quitar los deltas porque + el cliente tiene que enterarse de la referencia que + ha rellenado el servidor. } + CanRemoveFromDelta := False; + end; + end; + end; +end; + +procedure TBizRemesasProveedorServer.BeforeProcessDelta( + Sender: TDABusinessProcessor; const aDelta: IDADelta); +begin + FReferenciaAutomatica := False; + case Sender.CurrentChange.ChangeType of ctInsert, ctUpdate: begin //Si la referencia no ha sido asignada le asignamos una nosotros - if (VarIsNull(Sender.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA])) - or (VarToStr(Sender.CurrentChange.NewValueByName[fld_RemesasProveedorREFERENCIA]) = '') then + if REFERENCIAIsNull or (Length(REFERENCIA) = 0) then begin - ASchema := BusinessProcessor.Schema; - ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); - - try - //Siempre va a estar rellena - Empresa := Sender.CurrentChange.NewValueByName[fld_RemesasProveedorID_EMPRESA]; - - dsData := ASchema.NewDataset(ACurrentConn, 'DarReferencia', ['CODIGO', 'EMPRESA'], [REF_REMESAS_PROVEEDOR, Empresa]); - except - RaiseError('No existe la tabla REFERENCIAS'); - end; - - dsData.Active := True; - - if dsData.IsEmpty then - RaiseError('NO HAY REFERENCIA ' + REF_REMESAS_PROVEEDOR + ' DECLARADA EN TABLA REFERENCIAS'); - - REFERENCIA := dsData.FieldByName('VALOR').AsString; - - try - ASchema.NewCommand(ACurrentConn, 'ModificarReferencia', ['CODIGO', 'VALOR', 'ID_EMPRESA'], [REF_REMESAS_PROVEEDOR, DarReferenciaSiguiente(REFERENCIA), Empresa]); - except - RaiseError('Error al asignar la nueva ' + REFERENCIA + ' referencia en tabla'); - end; - + FReferenciaAutomatica := True; + REFERENCIA := DarReferencia; end; end; end; end; +function TBizRemesasProveedorServer.DarReferencia: String; +begin + with TsrvReferencias.Create(NIL) do + try + Result := DarNuevaReferencia(REF_REMESAS_PROVEEDOR, ID_EMPRESA) + finally + Free; + end; +end; + +function TBizRemesasProveedorServer.IncrementarReferencia: Boolean; +begin + with TsrvReferencias.Create(NIL) do + try + Result := IncrementarValorReferencia(REF_REMESAS_PROVEEDOR, + Self.REFERENCIA, ID_EMPRESA) + finally + Free; + end; +end; + initialization RegisterBusinessProcessorRules(BIZ_SERVER_REMESAS_Proveedor, TBizRemesasProveedorServer); diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm index 304f26a5..eb66b629 100644 --- a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.dfm @@ -136,42 +136,6 @@ object srvRemesasProveedor: TsrvRemesasProveedor DataDictionary = DataDictionary Diagrams = Diagrams Datasets = < - item - Params = < - item - Name = 'CODIGO' - DataType = datString - Size = 50 - Value = 'REF_REMESAS_CLIENTE' - ParamType = daptInput - end - item - Name = 'EMPRESA' - Value = '1' - ParamType = daptInput - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'SELECT VALOR'#10'FROM REFERENCIAS'#10'WHERE CODIGO = :CODIGO'#10'AND ID_EMPR' + - 'ESA = :EMPRESA' - StatementType = stSQL - ColumnMappings = < - item - DatasetField = 'VALOR' - TableField = 'VALOR' - end> - end> - Name = 'darReferencia' - Fields = < - item - Name = 'VALOR' - DataType = datString - Size = 255 - end> - end item Params = <> Statements = < @@ -363,32 +327,6 @@ object srvRemesasProveedor: TsrvRemesasProveedor JoinDataTables = <> UnionDataTables = <> Commands = < - item - Params = < - item - Name = 'VALOR' - Value = '' - end - item - Name = 'CODIGO' - Value = '' - end - item - Name = 'EMPRESA' - Value = '' - end> - Statements = < - item - Connection = 'IBX' - TargetTable = 'REFERENCIAS' - SQL = - 'UPDATE REFERENCIAS SET'#10' VALOR = :VALOR'#10'WHERE CODIGO = :COD' + - 'IGO AND'#10' ID_EMPRESA = :EMPRESA'#10 - StatementType = stSQL - ColumnMappings = <> - end> - Name = 'ModificarReferencia' - end item Params = < item diff --git a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas index a8f1ef13..b9ab33ac 100644 --- a/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas +++ b/Source/Modulos/Remesas de proveedor/Servidor/srvRemesasProveedor_Impl.pas @@ -23,9 +23,9 @@ type TsrvRemesasProveedor = class(TDataAbstractService, IsrvRemesasProveedor) Diagrams: TDADiagrams; bpRemesasProveedor: TDABusinessProcessor; + Bin2DataStreamer: TDABin2DataStreamer; schRemesasProveedor: TDASchema; DataDictionary: TDADataDictionary; - Bin2DataStreamer: TDABin2DataStreamer; procedure DARemoteServiceCreate(Sender: TObject); procedure DARemoteServiceBeforeGetDatasetData(const Dataset: IDADataset; const IncludeSchema: Boolean; const MaxRecords: Integer);