diff --git a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas index 9aff3dac..da7144ca 100644 --- a/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas +++ b/Source/Modulos/Facturas de cliente/Model/uBizFacturasClienteServer.pas @@ -16,10 +16,9 @@ type function DarReferencia : String; function IncrementarReferencia : Boolean; protected - procedure BeforeProcessDelta(Sender: TDABusinessProcessor; - const aDelta: IDADelta); override; - procedure AfterProcessChange(Sender: TDABusinessProcessor; - aChange: TDADeltaChange; Processed: Boolean; + procedure Delete_Asiento_Factura(aChange: TDADeltaChange); virtual; + procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; + procedure AfterProcessChange(Sender: TDABusinessProcessor; aChange: TDADeltaChange; Processed: Boolean; var CanRemoveFromDelta: Boolean); override; end; @@ -42,6 +41,18 @@ procedure TBizFacturasClienteServer.AfterProcessChange( var CanRemoveFromDelta: Boolean); begin inherited; + case aChange.ChangeType of + ctInsert: begin +// Insert_Asiento_Factura(aChange); + end; + ctUpdate: begin +// Update_Asiento_Factura(aChange); + end; + ctDelete: begin + Delete_Asiento_Factura(aChange); + end; + end; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } CanRemoveFromDelta := False; @@ -88,6 +99,28 @@ begin end; end; +procedure TBizFacturasClienteServer.Delete_Asiento_Factura(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + //Eliminamos los recibos de la factura + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_RecibosFactura'); + try + with ACommand do + begin + ParamByName('ID_FACTURA').Value := aChange.OldValueByName[fld_FacturasClienteID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + function TBizFacturasClienteServer.IncrementarReferencia: Boolean; var ATipo : String; diff --git a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm index ba75d9d6..55f123d7 100644 --- a/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm +++ b/Source/Modulos/Facturas de cliente/Servidor/srvFacturasCliente_Impl.dfm @@ -497,6 +497,24 @@ object srvFacturasCliente: TsrvFacturasCliente JoinDataTables = <> UnionDataTables = <> Commands = < + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'delete from recibos_cliente'#10'where id_factura = :ID_FACTURA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosFactura' + end item Params = < item diff --git a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas index 22ecd8e3..c458cdac 100644 --- a/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas +++ b/Source/Modulos/Facturas de proveedor/Model/uBizFacturasProveedorServer.pas @@ -17,6 +17,7 @@ type function DarReferencia : String; function IncrementarReferencia : Boolean; protected + procedure Delete_Asiento_Factura(aChange: TDADeltaChange); virtual; procedure BeforeProcessDelta(Sender: TDABusinessProcessor; const aDelta: IDADelta); override; procedure AfterProcessChange(Sender: TDABusinessProcessor; @@ -43,6 +44,18 @@ procedure TBizFacturasProveedorServer.AfterProcessChange( var CanRemoveFromDelta: Boolean); begin inherited; + case aChange.ChangeType of + ctInsert: begin +// Insert_Asiento_Factura(aChange); + end; + ctUpdate: begin +// Update_Asiento_Factura(aChange); + end; + ctDelete: begin + Delete_Asiento_Factura(aChange); + end; + end; + { Por defecto, mantenemos los deltas por si alguna tabla hija los necesita } CanRemoveFromDelta := False; @@ -88,6 +101,28 @@ begin end; end; +procedure TBizFacturasProveedorServer.Delete_Asiento_Factura(aChange: TDADeltaChange); +var + ASchema : TDASchema; + ACurrentConn : IDAConnection; + ACommand : IDASQLCommand; +begin + ASchema := BusinessProcessor.Schema; + ACurrentConn := GetBusinessProcessorConnection(BusinessProcessor); + + //Eliminamos los recibos de la factura + ACommand := ASchema.NewCommand(ACurrentConn, 'Delete_RecibosFactura'); + try + with ACommand do + begin + ParamByName('ID_FACTURA').Value := aChange.OldValueByName[fld_FacturasProveedorID]; + Execute; + end; + finally + ACommand := NIL; + end; +end; + function TBizFacturasProveedorServer.IncrementarReferencia: Boolean; var ATipo : String; diff --git a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm index 579b735e..ff1905f4 100644 --- a/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm +++ b/Source/Modulos/Facturas de proveedor/Servidor/srvFacturasProveedor_Impl.dfm @@ -483,6 +483,24 @@ object srvFacturasProveedor: TsrvFacturasProveedor JoinDataTables = <> UnionDataTables = <> Commands = < + item + Params = < + item + Name = 'ID_FACTURA' + Value = '' + end> + Statements = < + item + Connection = 'IBX' + ConnectionType = 'Interbase' + Default = True + Name = 'IBX' + SQL = 'delete from recibos_proveedor'#10'where id_factura = :ID_FACTURA'#10 + StatementType = stSQL + ColumnMappings = <> + end> + Name = 'Delete_RecibosFactura' + end item Params = < item