Se arreglan las remesas para que cuando añadimos recibos, la lista de recibos a seleccionar no aparezcan los que tenemos ya asignadoe en la remesa
git-svn-id: https://192.168.0.254/svn/Proyectos.LuisLeon_FactuGES/trunk@315 c93665c3-c93d-084d-9b98-7d5f4a9c3376
This commit is contained in:
parent
72c7795cb3
commit
3d656d4e2b
@ -59,7 +59,7 @@ type
|
||||
function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente;
|
||||
function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente;
|
||||
function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente;
|
||||
function BuscarRecibosARemesar: IBizRecibosCliente;
|
||||
function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente;
|
||||
|
||||
procedure VerTodos(ARecibosCliente: IBizRecibosCliente);
|
||||
procedure Ver(ARecibosCliente: IBizRecibosCliente);
|
||||
@ -131,7 +131,7 @@ type
|
||||
function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosCliente;
|
||||
function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosCliente;
|
||||
function BuscarRecibosACompensar(const Recibo: IBizRecibosCliente): IBizRecibosCliente;
|
||||
function BuscarRecibosARemesar: IBizRecibosCliente;
|
||||
function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente;
|
||||
|
||||
procedure VerTodos(ARecibosCliente: IBizRecibosCliente);
|
||||
procedure Ver(ARecibosCliente: IBizRecibosCliente);
|
||||
@ -371,7 +371,9 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRecibosClienteController.BuscarRecibosARemesar: IBizRecibosCliente;
|
||||
function TRecibosClienteController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosCliente;
|
||||
var
|
||||
i: Integer;
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
@ -390,7 +392,23 @@ begin
|
||||
OpenBraket;
|
||||
AddText(fld_RecibosClienteSITUACION + ' <> ''' + CTE_COBRADO + '''');
|
||||
CloseBraket;
|
||||
|
||||
//En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos
|
||||
//añadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD
|
||||
for i := 0 to AListaNoVisibles.Count - 1 do
|
||||
begin
|
||||
AddOperator(opAND);
|
||||
OpenBraket;
|
||||
AddText(fld_RecibosClienteID + ' <> ''' + AListaNoVisibles.Strings[i] + '''');
|
||||
CloseBraket;
|
||||
end;
|
||||
|
||||
//En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa
|
||||
//y sin guardar los cambios damos a añadir el recibo todavia está cobrado y no se que efectos
|
||||
//secundarios puede provocar
|
||||
//AListaVisibles
|
||||
end;
|
||||
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
end;
|
||||
|
||||
@ -55,7 +55,7 @@ type
|
||||
function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor;
|
||||
function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor;
|
||||
function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor;
|
||||
function BuscarRecibosARemesar: IBizRecibosProveedor;
|
||||
function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor;
|
||||
|
||||
procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor);
|
||||
procedure Ver(ARecibosProveedor: IBizRecibosProveedor);
|
||||
@ -118,7 +118,7 @@ type
|
||||
function BuscarRecibosRemesa(const ID_REMESA: Integer): IBizRecibosProveedor;
|
||||
function BuscarRecibosFactura(const ID_FACTURA: Integer): IBizRecibosProveedor;
|
||||
function BuscarRecibosACompensar(const Recibo: IBizRecibosProveedor): IBizRecibosProveedor;
|
||||
function BuscarRecibosARemesar: IBizRecibosProveedor;
|
||||
function BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor;
|
||||
|
||||
procedure VerTodos(ARecibosProveedor: IBizRecibosProveedor);
|
||||
procedure Ver(ARecibosProveedor: IBizRecibosProveedor);
|
||||
@ -336,7 +336,10 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
function TRecibosProveedorController.BuscarRecibosARemesar: IBizRecibosProveedor;
|
||||
function TRecibosProveedorController.BuscarRecibosARemesar(const AListaVisibles, AListaNoVisibles: TStringList): IBizRecibosProveedor;
|
||||
var
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
try
|
||||
@ -354,6 +357,22 @@ begin
|
||||
OpenBraket;
|
||||
AddText(fld_RecibosProveedorSITUACION + ' <> ''' + CTE_PAGADO + '''');
|
||||
CloseBraket;
|
||||
|
||||
//En este caso vamos a quitar de la lista de recibos pendientes aquellos que ya hemos
|
||||
//añadido a la remesa pero que estan en memoria ya que todavia no se ha guarado en BD
|
||||
for i := 0 to AListaNoVisibles.Count - 1 do
|
||||
begin
|
||||
AddOperator(opAND);
|
||||
OpenBraket;
|
||||
AddText(fld_RecibosProveedorID + ' <> ''' + AListaNoVisibles.Strings[i] + '''');
|
||||
CloseBraket;
|
||||
end;
|
||||
|
||||
//En el caso contrario no hacemos nada, porque si se elimina un recibo de la remesa
|
||||
//y sin guardar los cambios damos a añadir el recibo todavia está cobrado y no se que efectos
|
||||
//secundarios puede provocar
|
||||
//AListaVisibles
|
||||
|
||||
end;
|
||||
finally
|
||||
HideHourglassCursor;
|
||||
|
||||
@ -28,7 +28,7 @@ type
|
||||
function EsModificable(ARemesaProveedor : IBizRemesaCliente): Boolean;
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean;
|
||||
|
||||
function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean;
|
||||
function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean;
|
||||
procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente);
|
||||
function GetRecibosClienteController: IRecibosClienteController;
|
||||
property RecibosClienteController: IRecibosClienteController read GetRecibosClienteController;
|
||||
@ -82,7 +82,7 @@ type
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaCliente): Boolean;
|
||||
|
||||
function ExtraerSeleccionados(ARemesasCliente: IBizRemesaCliente; Const ViewGrid: IViewGridBase = Nil) : IBizRemesaCliente; virtual;
|
||||
function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente): Boolean;
|
||||
function ElegirRecibosCliente(ARemesaCliente : IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean;
|
||||
procedure EliminarReciboCliente(ARemesaCliente : IBizRemesaCliente);
|
||||
|
||||
function DarListaAnosRemesas: TStringList;
|
||||
@ -300,14 +300,40 @@ begin
|
||||
ARemesaCliente := NIL;
|
||||
end;
|
||||
|
||||
function TRemesasClienteController.ElegirRecibosCliente(ARemesaCliente: IBizRemesaCliente): Boolean;
|
||||
function TRemesasClienteController.ElegirRecibosCliente(ARemesaCliente: IBizRemesaCliente; AListaRecibosIniciales: TStringList): Boolean;
|
||||
var
|
||||
ARecibosRemesa : IBizRecibosCliente;
|
||||
ARecibosSeleccionados : IBizRecibosCliente;
|
||||
ListaRecibosVisibles: TStringList;
|
||||
ListaRecibosNoVisibles: TStringList;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarRecibosARemesar, 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosCliente);
|
||||
ListaRecibosVisibles := TStringList.Create;
|
||||
ListaRecibosNoVisibles := TStringList.Create;
|
||||
|
||||
//Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion
|
||||
ARemesaCliente.Recibos.DataTable.First;
|
||||
while not ARemesaCliente.Recibos.DataTable.eof do
|
||||
begin
|
||||
ListaRecibosNoVisibles.Add(IntToStr(ARemesaCliente.Recibos.ID));
|
||||
ARemesaCliente.Recibos.DataTable.Next;
|
||||
end;
|
||||
ARemesaCliente.Recibos.DataTable.First;
|
||||
|
||||
//Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la
|
||||
//remesa que tenemos en memoria dicho recibo debería verse por lo que lo añadimos a la lista de visibles
|
||||
for i := 0 to AListaRecibosIniciales.Count - 1 do
|
||||
begin
|
||||
ARemesaCliente.Recibos.DataTable.First;
|
||||
if not ARemesaCliente.Recibos.DataTable.Locate(fld_RecibosClienteID, AListaRecibosIniciales.strings[i], []) then
|
||||
ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]);
|
||||
end;
|
||||
ARemesaCliente.Recibos.DataTable.First;
|
||||
|
||||
ARecibosSeleccionados := (FRecibosClienteController.ElegirRecibos(FRecibosClienteController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosCliente);
|
||||
if Assigned(ARecibosSeleccionados) then
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
@ -323,6 +349,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
ListaRecibosVisibles.Free;
|
||||
ListaRecibosNoVisibles.Free;
|
||||
ARecibosRemesa := Nil;
|
||||
ARecibosSeleccionados := Nil;
|
||||
end;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
inherited frViewRecibosRemesaCliente: TfrViewRecibosRemesaCliente
|
||||
Width = 549
|
||||
Height = 376
|
||||
OnShow = CustomViewShow
|
||||
ExplicitWidth = 549
|
||||
ExplicitHeight = 376
|
||||
inherited cxGrid: TcxGrid
|
||||
|
||||
@ -28,10 +28,12 @@ type
|
||||
cxGridViewIMPORTE: TcxGridDBColumn;
|
||||
cxGridViewOTROS_GASTOS: TcxGridDBColumn;
|
||||
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
|
||||
procedure CustomViewShow(Sender: TObject);
|
||||
protected
|
||||
FHayCambios : Boolean;
|
||||
FRemesa : IBizRemesaCliente;
|
||||
FController : IRemesasClienteController;
|
||||
FListaRecibosIniciales: TStringList;
|
||||
|
||||
procedure AnadirInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
@ -64,7 +66,7 @@ uses
|
||||
procedure TfrViewRecibosRemesaCliente.AnadirInterno;
|
||||
begin
|
||||
//inherited; // No hacer el comportamiento normal
|
||||
if FController.ElegirRecibosCliente(RemesaCliente) then
|
||||
if FController.ElegirRecibosCliente(RemesaCliente, FListaRecibosIniciales) then
|
||||
begin
|
||||
Modified := True;
|
||||
end;
|
||||
@ -74,10 +76,25 @@ constructor TfrViewRecibosRemesaCliente.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
FHayCambios := False;
|
||||
FListaRecibosIniciales := TStringList.Create;
|
||||
end;
|
||||
|
||||
procedure TfrViewRecibosRemesaCliente.CustomViewShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
FRemesa.Recibos.DataTable.First;
|
||||
while not FRemesa.Recibos.DataTable.eof do
|
||||
begin
|
||||
FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID));
|
||||
FRemesa.Recibos.DataTable.next;
|
||||
end;
|
||||
FRemesa.Recibos.DataTable.First;
|
||||
end;
|
||||
|
||||
destructor TfrViewRecibosRemesaCliente.Destroy;
|
||||
begin
|
||||
FListaRecibosIniciales.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
|
||||
@ -28,7 +28,7 @@ type
|
||||
function EsModificable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean;
|
||||
procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor);
|
||||
function GetRecibosProveedorController: IRecibosProveedorController;
|
||||
property RecibosProveedorController: IRecibosProveedorController read GetRecibosProveedorController;
|
||||
@ -82,7 +82,7 @@ type
|
||||
function EsEliminable(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
|
||||
function ExtraerSeleccionados(ARemesasProveedor: IBizRemesaProveedor; Const ViewGrid: IViewGridBase = Nil) : IBizRemesaProveedor; virtual;
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor): Boolean;
|
||||
function ElegirRecibosProveedor(ARemesaProveedor : IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean;
|
||||
procedure EliminarReciboProveedor(ARemesaProveedor : IBizRemesaProveedor);
|
||||
|
||||
function DarListaAnosRemesas: TStringList;
|
||||
@ -300,14 +300,40 @@ begin
|
||||
ARemesaProveedor := NIL;
|
||||
end;
|
||||
|
||||
function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor): Boolean;
|
||||
function TRemesasProveedorController.ElegirRecibosProveedor(ARemesaProveedor: IBizRemesaProveedor; AListaRecibosIniciales: TStringList): Boolean;
|
||||
var
|
||||
ARecibosRemesa : IBizRecibosProveedor;
|
||||
ARecibosSeleccionados : IBizRecibosProveedor;
|
||||
ListaRecibosVisibles: TStringList;
|
||||
ListaRecibosNoVisibles: TStringList;
|
||||
i: Integer;
|
||||
|
||||
begin
|
||||
Result := False;
|
||||
|
||||
ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar, 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor);
|
||||
ListaRecibosVisibles := TStringList.Create;
|
||||
ListaRecibosNoVisibles := TStringList.Create;
|
||||
|
||||
//Todos los recibos que tenga la remesa no deben de visualizarse en la lista de seleccion
|
||||
ARemesaProveedor.Recibos.DataTable.First;
|
||||
while not ARemesaProveedor.Recibos.DataTable.eof do
|
||||
begin
|
||||
ListaRecibosNoVisibles.Add(IntToStr(ARemesaProveedor.Recibos.ID));
|
||||
ARemesaProveedor.Recibos.DataTable.Next;
|
||||
end;
|
||||
ARemesaProveedor.Recibos.DataTable.First;
|
||||
|
||||
//Si de la lista inicial hay alguno que no se encuentre en la lista de recibos de la
|
||||
//remesa que tenemos en memoria dicho recibo debería verse por lo que lo añadimos a la lista de visibles
|
||||
for i := 0 to AListaRecibosIniciales.Count - 1 do
|
||||
begin
|
||||
ARemesaProveedor.Recibos.DataTable.First;
|
||||
if not ARemesaProveedor.Recibos.DataTable.Locate(fld_RecibosProveedorID, AListaRecibosIniciales.strings[i], []) then
|
||||
ListaRecibosVisibles.Add(AListaRecibosIniciales.strings[i]);
|
||||
end;
|
||||
ARemesaProveedor.Recibos.DataTable.First;
|
||||
|
||||
ARecibosSeleccionados := (FRecibosProveedorController.ElegirRecibos(FRecibosProveedorController.BuscarRecibosARemesar(ListaRecibosVisibles, ListaRecibosNoVisibles), 'Elija uno o más recibos para incluirlos en esta remesa', True) as IBizRecibosProveedor);
|
||||
if Assigned(ARecibosSeleccionados) then
|
||||
begin
|
||||
ShowHourglassCursor;
|
||||
@ -323,6 +349,8 @@ begin
|
||||
end;
|
||||
end;
|
||||
|
||||
ListaRecibosVisibles.Free;
|
||||
ListaRecibosNoVisibles.Free;
|
||||
ARecibosRemesa := Nil;
|
||||
ARecibosSeleccionados := Nil;
|
||||
end;
|
||||
|
||||
@ -1,6 +1,7 @@
|
||||
inherited frViewRecibosRemesaProveedor: TfrViewRecibosRemesaProveedor
|
||||
Width = 549
|
||||
Height = 376
|
||||
OnShow = CustomViewShow
|
||||
ExplicitWidth = 549
|
||||
ExplicitHeight = 376
|
||||
inherited cxGrid: TcxGrid
|
||||
|
||||
@ -28,10 +28,12 @@ type
|
||||
cxGridViewIMPORTE: TcxGridDBColumn;
|
||||
cxGridViewOTROS_GASTOS: TcxGridDBColumn;
|
||||
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
|
||||
procedure CustomViewShow(Sender: TObject);
|
||||
protected
|
||||
FHayCambios : Boolean;
|
||||
FRemesa : IBizRemesaProveedor;
|
||||
FController : IRemesasProveedorController;
|
||||
FListaRecibosIniciales: TStringList;
|
||||
|
||||
procedure AnadirInterno; override;
|
||||
procedure EliminarInterno; override;
|
||||
@ -64,7 +66,7 @@ uses
|
||||
procedure TfrViewRecibosRemesaProveedor.AnadirInterno;
|
||||
begin
|
||||
//inherited; // No hacer el comportamiento normal
|
||||
if FController.ElegirRecibosProveedor(RemesaProveedor) then
|
||||
if FController.ElegirRecibosProveedor(RemesaProveedor, FListaRecibosIniciales) then
|
||||
begin
|
||||
Modified := True;
|
||||
end;
|
||||
@ -74,10 +76,25 @@ constructor TfrViewRecibosRemesaProveedor.Create(AOwner: TComponent);
|
||||
begin
|
||||
inherited;
|
||||
FHayCambios := False;
|
||||
FListaRecibosIniciales := TStringList.Create;
|
||||
end;
|
||||
|
||||
procedure TfrViewRecibosRemesaProveedor.CustomViewShow(Sender: TObject);
|
||||
begin
|
||||
inherited;
|
||||
|
||||
FRemesa.Recibos.DataTable.First;
|
||||
while not FRemesa.Recibos.DataTable.eof do
|
||||
begin
|
||||
FListaRecibosIniciales.Add(IntToStr(FRemesa.Recibos.ID));
|
||||
FRemesa.Recibos.DataTable.next;
|
||||
end;
|
||||
FRemesa.Recibos.DataTable.First;
|
||||
end;
|
||||
|
||||
destructor TfrViewRecibosRemesaProveedor.Destroy;
|
||||
begin
|
||||
FListaRecibosIniciales.Free;
|
||||
inherited;
|
||||
end;
|
||||
|
||||
|
||||
@ -16,7 +16,7 @@ BEGIN
|
||||
VALUE "FileVersion", "3.3.1.0\0"
|
||||
VALUE "ProductName", "FactuGES Server\0"
|
||||
VALUE "ProductVersion", "3.3.1.0\0"
|
||||
VALUE "CompileDate", "viernes, 19 de junio de 2009 10:44\0"
|
||||
VALUE "CompileDate", "miércoles, 08 de julio de 2009 12:22\0"
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
|
||||
Binary file not shown.
Reference in New Issue
Block a user