This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
LuisLeon_FactuGES/Source/Modulos/Recibos de cliente/Views/uViewRecibosCompensados.pas

194 lines
6.0 KiB
ObjectPascal

unit uViewRecibosCompensados;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList, PngImageList,
uDADataTable, ComCtrls, ToolWin, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, cxImageComboBox, cxCurrencyEdit, uDataModuleRecibosCliente,
uBizRecibosCliente, uRecibosClienteController, Grids, DBGrids, cxSpinEdit,
dxLayoutControl;
type
IViewRecibosCompensados = interface
['{C683669A-002A-432D-BC20-3FA50BEA8721}']
function GetReciboCliente: IBizRecibosCliente;
procedure SetReciboCliente(const Value: IBizRecibosCliente);
property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente;
function GetController : IRecibosClienteController;
procedure SetController (const Value : IRecibosClienteController);
property Controller : IRecibosClienteController read GetController write SetController;
end;
TfrViewRecibosCompensados = class(TfrViewDetallesGenerico, IViewRecibosCompensados)
actExpandir: TAction;
actContraer: TAction;
ToolButton3: TToolButton;
ToolButton8: TToolButton;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
cxGridViewID_RECIBO_COMPENSADO: TcxGridDBColumn;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewFECHA_EMISION: TcxGridDBColumn;
cxGridViewFECHA_VENCIMIENTO: TcxGridDBColumn;
cxGridViewNIF_CIF_CLIENTE: TcxGridDBColumn;
cxGridViewNOMBRE_CLIENTE: TcxGridDBColumn;
cxGridViewIMPORTE: TcxGridDBColumn;
cxGridViewOTROS_GASTOS: TcxGridDBColumn;
cxGridViewRecId: TcxGridDBColumn;
procedure actExpandirExecute(Sender: TObject);
procedure actContraerExecute(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
procedure actExpandirUpdate(Sender: TObject);
procedure actContraerUpdate(Sender: TObject);
procedure actAnadirUpdate(Sender: TObject);
protected
FHayCambios : Boolean;
FReciboCliente : IBizRecibosCliente;
FController : IRecibosClienteController;
procedure AnadirInterno; override;
procedure EliminarInterno; override;
function GetReciboCliente: IBizRecibosCliente;
procedure SetReciboCliente(const Value: IBizRecibosCliente);
function GetModified: Boolean; override;
procedure SetModified(const Value: Boolean); override;
function GetController : IRecibosClienteController;
procedure SetController (const Value : IRecibosClienteController);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property ReciboCliente: IBizRecibosCliente read GetReciboCliente write SetReciboCliente;
property Controller : IRecibosClienteController read GetController write SetController;
end;
implementation
{$R *.dfm}
uses
uCustomView;
{ TfrViewFacturasReciboCliente }
procedure TfrViewRecibosCompensados.actAnadirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ReciboCliente.SITUACION <> CTE_COBRADO);
end;
procedure TfrViewRecibosCompensados.actContraerExecute(Sender: TObject);
begin
inherited;
cxGridView.ViewData.Collapse(True);
end;
procedure TfrViewRecibosCompensados.actContraerUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfrViewRecibosCompensados.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0)
and (cxGridView.Controller.SelectedRows[0].HasCells)
and (ReciboCliente.SITUACION <> CTE_COBRADO));
end;
procedure TfrViewRecibosCompensados.actExpandirExecute(Sender: TObject);
begin
inherited;
cxGridView.ViewData.Expand(True);
end;
procedure TfrViewRecibosCompensados.actExpandirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfrViewRecibosCompensados.AnadirInterno;
begin
//inherited; // No hacer el comportamiento normal
if FController.ElegirRecibosCompensados(ReciboCliente) then
Modified := True;
end;
constructor TfrViewRecibosCompensados.Create(AOwner: TComponent);
begin
inherited;
FHayCambios := False;
end;
procedure TfrViewRecibosCompensados.CustomViewShow(Sender: TObject);
begin
inherited;
cxGridView.OptionsSelection.MultiSelect := False;
end;
destructor TfrViewRecibosCompensados.Destroy;
begin
inherited;
end;
procedure TfrViewRecibosCompensados.EliminarInterno;
begin
if cxGridView.Controller.SelectedRowCount > 0 then
if cxGridView.Controller.SelectedRows[0].HasCells then
// ViewGrid._FocusedView.Controller.SelectedRecordCount
FController.QuitarReciboCompensado(ReciboCliente);
Modified := True;
end;
function TfrViewRecibosCompensados.GetController: IRecibosClienteController;
begin
Result := FController;
end;
function TfrViewRecibosCompensados.GetModified: Boolean;
begin
Result := FHayCambios or inherited GetModified;
end;
function TfrViewRecibosCompensados.GetReciboCliente: IBizRecibosCliente;
begin
Result := FReciboCliente;
end;
procedure TfrViewRecibosCompensados.SetController(
const Value: IRecibosClienteController);
begin
FController := Value;
end;
procedure TfrViewRecibosCompensados.SetModified(const Value: Boolean);
begin
FHayCambios := Value;
inherited;
end;
procedure TfrViewRecibosCompensados.SetReciboCliente(const Value: IBizRecibosCliente);
begin
FReciboCliente := Value;
FHayCambios := False;
if Assigned(FReciboCliente) then
dsDetalles.DataTable := FReciboCliente.RecibosCompensados.DataTable
else
dsDetalles.DataTable := NIL;
actAnchoAutomatico.Execute;
end;
end.