Se añade en el pago del recibo la columna remesa para guardar la remesa a la que estuvo asociado el recibo en un determinado momento, en el caso de quitar el recibo de la remesa manualmente no queda reflejado porque es como si se hubiera equivocado al hacer la remesa, solo queda reflejado en el caso de añadir un pago (en este caso devolución) para poderlo añadir atra remesa

git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES2/trunk@165 b2cfbe5a-eba1-4a0c-8b32-7feea0a119f2
This commit is contained in:
roberto 2012-07-27 09:41:51 +00:00
parent d161401f25
commit 82f10e77f4
5 changed files with 32 additions and 21 deletions

View File

@ -32,8 +32,8 @@ uses
type type
IPagosClienteController = interface(ISujeto) IPagosClienteController = interface(ISujeto)
['{1864471E-74FA-4E96-BA8D-21357DA38B0F}'] ['{1864471E-74FA-4E96-BA8D-21357DA38B0F}']
function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const Remesa: String = ''): Boolean;
procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String; Const Remesa: String = '');
function Eliminar(APagoCliente : IBizPagosCliente): Boolean; function Eliminar(APagoCliente : IBizPagosCliente): Boolean;
function EliminarTodo(APagossCliente : IBizPagosCliente): Boolean; function EliminarTodo(APagossCliente : IBizPagosCliente): Boolean;
end; end;
@ -47,8 +47,8 @@ type
public public
constructor Create; override; constructor Create; override;
destructor Destroy; override; destructor Destroy; override;
function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; function Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const Remesa: String = ''): Boolean;
procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String); procedure Modificar(APagosCliente: IBizPagosCliente; Const Fecha: String; Const Remesa: String = '');
function Eliminar(APagoCliente : IBizPagosCliente): Boolean; function Eliminar(APagoCliente : IBizPagosCliente): Boolean;
function EliminarTodo(APagosCliente : IBizPagosCliente): Boolean; function EliminarTodo(APagosCliente : IBizPagosCliente): Boolean;
end; end;
@ -63,7 +63,7 @@ uses
{ TPagosClienteController } { TPagosClienteController }
function TPagosClienteController.Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''): Boolean; function TPagosClienteController.Anadir(APagosCliente: IBizPagosCliente; Const Fecha: String = ''; Const Remesa: String = ''): Boolean;
{ Si el pago introducido es un pago y no una devolución devolvemos true en caso de ser { Si el pago introducido es un pago y no una devolución devolvemos true en caso de ser
una devolución devolvemos false} una devolución devolvemos false}
begin begin
@ -73,6 +73,9 @@ begin
else else
APagosCliente.FECHA_PAGO := StrToDate(Fecha); APagosCliente.FECHA_PAGO := StrToDate(Fecha);
if Length(Remesa) <> 0 then
APagosCliente.TITULAR := Remesa;
if (APagosCliente.DataTable.RecordCount = 0) if (APagosCliente.DataTable.RecordCount = 0)
or ((APagosCliente.DataTable.RecordCount mod 2) = 0) then or ((APagosCliente.DataTable.RecordCount mod 2) = 0) then
APagosCliente.TIPO := CTE_PAGO APagosCliente.TIPO := CTE_PAGO
@ -135,10 +138,14 @@ begin
end; end;
end; end;
procedure TPagosClienteController.Modificar(APagosCliente: IBizPagosCliente; const Fecha: String); procedure TPagosClienteController.Modificar(APagosCliente: IBizPagosCliente; const Fecha: String; Const Remesa: String = '');
begin begin
APagosCliente.DataTable.Edit; APagosCliente.DataTable.Edit;
APagosCliente.FECHA_PAGO := StrToDate(Fecha); APagosCliente.FECHA_PAGO := StrToDate(Fecha);
if Length(Remesa) <> 0 then
APagosCliente.TITULAR := Remesa;
APagosCliente.DataTable.Post; APagosCliente.DataTable.Post;
end; end;

View File

@ -41,7 +41,7 @@ type
procedure Anadir(ARecibosCliente : IBizRecibosCliente); procedure Anadir(ARecibosCliente : IBizRecibosCliente);
function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean; function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean;
function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''): Boolean; function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''; Remesa: String=''): Boolean;
procedure ModificarPago(ARecibosCliente : IBizRecibosCliente); procedure ModificarPago(ARecibosCliente : IBizRecibosCliente);
function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean; function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean;
function EliminarTodo(ARecibosCliente : IBizRecibosCliente): Boolean; function EliminarTodo(ARecibosCliente : IBizRecibosCliente): Boolean;
@ -71,7 +71,7 @@ type
function ExtraerSeleccionados(ARecibosCliente: IBizRecibosCliente) : IBizRecibosCliente; function ExtraerSeleccionados(ARecibosCliente: IBizRecibosCliente) : IBizRecibosCliente;
function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente;
procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer); procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer; Referencia: String);
procedure QuitarRemesa(ARecibos : IBizRecibosCliente); procedure QuitarRemesa(ARecibos : IBizRecibosCliente);
procedure SetSituacionCobrados(ARecibos : IBizRecibosCliente; WithDeltas: Boolean=False); procedure SetSituacionCobrados(ARecibos : IBizRecibosCliente; WithDeltas: Boolean=False);
@ -122,7 +122,7 @@ type
procedure RecuperarCliente(AReciboCliente : IBizRecibosCliente); procedure RecuperarCliente(AReciboCliente : IBizRecibosCliente);
procedure Anadir(ARecibosCliente : IBizRecibosCliente); procedure Anadir(ARecibosCliente : IBizRecibosCliente);
function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''): Boolean; function AnadirPago(ARecibosCliente : IBizRecibosCliente; FechaPago: String =''; Remesa: String=''): Boolean;
procedure ModificarPago(ARecibosCliente : IBizRecibosCliente); procedure ModificarPago(ARecibosCliente : IBizRecibosCliente);
function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean; function Eliminar(ARecibosCliente : IBizRecibosCliente): Boolean;
function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean; function EliminarPago(ARecibosCliente : IBizRecibosCliente): Boolean;
@ -151,7 +151,7 @@ type
function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente; function ElegirRecibos(ARecibos : IBizRecibosCliente; AMensaje: String; AMultiSelect: Boolean): IBizRecibosCliente;
function ElegirRecibosCompensados(ARecibo : IBizRecibosCliente): Boolean; function ElegirRecibosCompensados(ARecibo : IBizRecibosCliente): Boolean;
procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer); procedure AsignarRemesa(ARecibos : IBizRecibosCliente; ID_REMESA: Integer; Referencia: String);
procedure QuitarRemesa(ARecibos : IBizRecibosCliente); procedure QuitarRemesa(ARecibos : IBizRecibosCliente);
procedure QuitarReciboCompensado(ARecibo : IBizRecibosCliente); procedure QuitarReciboCompensado(ARecibo : IBizRecibosCliente);
@ -189,7 +189,7 @@ begin
ARecibosCliente.Insert; ARecibosCliente.Insert;
end; end;
function TRecibosClienteController.AnadirPago(ARecibosCliente: IBizRecibosCliente; FechaPago: String =''): Boolean; function TRecibosClienteController.AnadirPago(ARecibosCliente: IBizRecibosCliente; FechaPago: String =''; Remesa: String=''): Boolean;
var var
AEditor : IEditorFechaPago; AEditor : IEditorFechaPago;
begin begin
@ -229,7 +229,7 @@ begin
Exit; Exit;
//Finalmente añadimos el pago (cobro o devolucion) //Finalmente añadimos el pago (cobro o devolucion)
if PagosController.Anadir(ARecibosCliente.Pagos, FechaPago) then if PagosController.Anadir(ARecibosCliente.Pagos, FechaPago, Remesa) then
begin begin
ARecibosCliente.Edit; ARecibosCliente.Edit;
ARecibosCliente.SITUACION := CTE_COBRADO; ARecibosCliente.SITUACION := CTE_COBRADO;
@ -249,7 +249,7 @@ begin
FDataModule := TDataModuleRecibosCliente.Create(Nil); FDataModule := TDataModuleRecibosCliente.Create(Nil);
end; end;
procedure TRecibosClienteController.AsignarRemesa(ARecibos: IBizRecibosCliente; ID_REMESA: Integer); procedure TRecibosClienteController.AsignarRemesa(ARecibos: IBizRecibosCliente; ID_REMESA: Integer; Referencia: String);
begin begin
if Assigned(ARecibos) then if Assigned(ARecibos) then
begin begin
@ -263,7 +263,7 @@ begin
ARecibos.Edit; ARecibos.Edit;
//Añadimos el cobro automatico por la remesa y volvemos a asignar ID //Añadimos el cobro automatico por la remesa y volvemos a asignar ID
//para que asigne un ID nuevo para el pago, porque aqui si hay maestro-detalle //para que asigne un ID nuevo para el pago, porque aqui si hay maestro-detalle
AnadirPago(ARecibos, DateToStr(Date)); //->Ojo el orden es importante AnadirPago(ARecibos, DateToStr(Date), Referencia); //->Ojo el orden es importante
ARecibos.ID_REMESA := ID_REMESA; ARecibos.ID_REMESA := ID_REMESA;
end; end;
Next; Next;

View File

@ -57,7 +57,7 @@ inherited fEditorReciboCliente: TfEditorReciboCliente
inherited pgPaginas: TPageControl inherited pgPaginas: TPageControl
Width = 685 Width = 685
Height = 329 Height = 329
ActivePage = pagCompensados ActivePage = pagPagos
ExplicitWidth = 685 ExplicitWidth = 685
ExplicitHeight = 329 ExplicitHeight = 329
inherited pagGeneral: TTabSheet inherited pagGeneral: TTabSheet
@ -279,6 +279,9 @@ inherited fEditorReciboCliente: TfEditorReciboCliente
OnUpdate = frViewPagosCliente1actEliminarUpdate OnUpdate = frViewPagosCliente1actEliminarUpdate
end end
end end
inherited ContenidoImageList: TPngImageList
Top = 136
end
end end
end end
object pagCompensados: TTabSheet object pagCompensados: TTabSheet
@ -422,8 +425,8 @@ inherited fEditorReciboCliente: TfEditorReciboCliente
OnRestorePlacement = JvFormStorageRestorePlacement OnRestorePlacement = JvFormStorageRestorePlacement
end end
inherited dsDataTable: TDADataSource [9] inherited dsDataTable: TDADataSource [9]
Left = 8 Left = 16
Top = 168 Top = 208
end end
inherited JvAppRegistryStorage: TJvAppRegistryStorage [10] inherited JvAppRegistryStorage: TJvAppRegistryStorage [10]
end end

View File

@ -137,7 +137,7 @@ inherited frViewPagosCliente: TfrViewPagosCliente
Value = 'Devoluci'#243'n' Value = 'Devoluci'#243'n'
end> end>
Options.Focusing = False Options.Focusing = False
Width = 389 Width = 295
IsCaptionAssigned = True IsCaptionAssigned = True
end end
object ListaPagosClienteDBTableView1FECHA_PAGO: TcxGridDBColumn object ListaPagosClienteDBTableView1FECHA_PAGO: TcxGridDBColumn
@ -145,11 +145,12 @@ inherited frViewPagosCliente: TfrViewPagosCliente
DataBinding.FieldName = 'FECHA_PAGO' DataBinding.FieldName = 'FECHA_PAGO'
PropertiesClassName = 'TcxDateEditProperties' PropertiesClassName = 'TcxDateEditProperties'
Options.Focusing = False Options.Focusing = False
Width = 231 Width = 220
end end
object ListaPagosClienteDBTableView1TITULAR: TcxGridDBColumn object ListaPagosClienteDBTableView1TITULAR: TcxGridDBColumn
Caption = 'Remesa'
DataBinding.FieldName = 'TITULAR' DataBinding.FieldName = 'TITULAR'
Visible = False Width = 103
end end
object ListaPagosClienteDBTableView1ENTIDAD: TcxGridDBColumn object ListaPagosClienteDBTableView1ENTIDAD: TcxGridDBColumn
DataBinding.FieldName = 'ENTIDAD' DataBinding.FieldName = 'ENTIDAD'

View File

@ -554,7 +554,7 @@ begin
//Si todo ha ido bien, asignamos la remesa a los recibos asociados //Si todo ha ido bien, asignamos la remesa a los recibos asociados
//Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros //Como no están declarados como maestro-detalles debemos hacer el applyupdates nosotros
RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, ARemesaCliente.ID); RecibosClienteController.AsignarRemesa(ARemesaCliente.Recibos, ARemesaCliente.ID, ARemesaCliente.REFERENCIA);
ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarán todos los cambios acumulados sobre los recibos asociados (EliminarReciboCliente/ ElegirRecibosCliente) ARemesaCliente.Recibos.DataTable.ApplyUpdates; //En este applyupdates tambien se realizarán todos los cambios acumulados sobre los recibos asociados (EliminarReciboCliente/ ElegirRecibosCliente)
//Es necesario ya que no se refrescan bien los deltas y despues del applyupdates siguen //Es necesario ya que no se refrescan bien los deltas y despues del applyupdates siguen