AlonsoYSal_FactuGES2/Source/Modulos/Recibos de proveedor/Views/uViewRecibosProvCompensados.pas
2019-11-18 10:36:42 +00:00

194 lines
6.2 KiB
ObjectPascal

unit uViewRecibosProvCompensados;
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, uDataModuleRecibosProveedor,
uBizRecibosProveedor, uRecibosProveedorController, Grids, DBGrids, cxSpinEdit,
dxLayoutControl, uDAInterfaces;
type
IViewRecibosCompensados = interface
['{C683669A-002A-432D-BC20-3FA50BEA8721}']
function GetReciboProveedor: IBizRecibosProveedor;
procedure SetReciboProveedor(const Value: IBizRecibosProveedor);
property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor;
function GetController : IRecibosProveedorController;
procedure SetController (const Value : IRecibosProveedorController);
property Controller : IRecibosProveedorController read GetController write SetController;
end;
TfrViewRecibosProvCompensados = 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_PROVEEDOR: TcxGridDBColumn;
cxGridViewNOMBRE_PROVEEDOR: 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;
FReciboProveedor : IBizRecibosProveedor;
FController : IRecibosProveedorController;
procedure AnadirInterno; override;
procedure EliminarInterno; override;
function GetReciboProveedor: IBizRecibosProveedor;
procedure SetReciboProveedor(const Value: IBizRecibosProveedor);
function GetModified: Boolean; override;
procedure SetModified(const Value: Boolean); override;
function GetController : IRecibosProveedorController;
procedure SetController (const Value : IRecibosProveedorController);
public
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
property ReciboProveedor: IBizRecibosProveedor read GetReciboProveedor write SetReciboProveedor;
property Controller : IRecibosProveedorController read GetController write SetController;
end;
implementation
{$R *.dfm}
uses
uCustomView;
{ TfrViewFacturasReciboProveedor }
procedure TfrViewRecibosProvCompensados.actAnadirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := (ReciboProveedor.SITUACION <> CTE_PAGADO);
end;
procedure TfrViewRecibosProvCompensados.actContraerExecute(Sender: TObject);
begin
inherited;
cxGridView.ViewData.Collapse(True);
end;
procedure TfrViewRecibosProvCompensados.actContraerUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfrViewRecibosProvCompensados.actEliminarUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := ((cxGridView.Controller.SelectedRowCount > 0)
and (cxGridView.Controller.SelectedRows[0].HasCells)
and (ReciboProveedor.SITUACION <> CTE_PAGADO));
end;
procedure TfrViewRecibosProvCompensados.actExpandirExecute(Sender: TObject);
begin
inherited;
cxGridView.ViewData.Expand(True);
end;
procedure TfrViewRecibosProvCompensados.actExpandirUpdate(Sender: TObject);
begin
inherited;
(Sender as TAction).Enabled := HayDatos;
end;
procedure TfrViewRecibosProvCompensados.AnadirInterno;
begin
//inherited; // No hacer el comportamiento normal
if FController.ElegirRecibosCompensados(ReciboProveedor) then
Modified := True;
end;
constructor TfrViewRecibosProvCompensados.Create(AOwner: TComponent);
begin
inherited;
FHayCambios := False;
end;
procedure TfrViewRecibosProvCompensados.CustomViewShow(Sender: TObject);
begin
inherited;
cxGridView.OptionsSelection.MultiSelect := False;
end;
destructor TfrViewRecibosProvCompensados.Destroy;
begin
inherited;
end;
procedure TfrViewRecibosProvCompensados.EliminarInterno;
begin
if cxGridView.Controller.SelectedRowCount > 0 then
if cxGridView.Controller.SelectedRows[0].HasCells then
// ViewGrid._FocusedView.Controller.SelectedRecordCount
FController.QuitarReciboCompensado(ReciboProveedor);
Modified := True;
end;
function TfrViewRecibosProvCompensados.GetController: IRecibosProveedorController;
begin
Result := FController;
end;
function TfrViewRecibosProvCompensados.GetModified: Boolean;
begin
Result := FHayCambios or inherited GetModified;
end;
function TfrViewRecibosProvCompensados.GetReciboProveedor: IBizRecibosProveedor;
begin
Result := FReciboProveedor;
end;
procedure TfrViewRecibosProvCompensados.SetController(
const Value: IRecibosProveedorController);
begin
FController := Value;
end;
procedure TfrViewRecibosProvCompensados.SetModified(const Value: Boolean);
begin
FHayCambios := Value;
inherited;
end;
procedure TfrViewRecibosProvCompensados.SetReciboProveedor(const Value: IBizRecibosProveedor);
begin
FReciboProveedor := Value;
FHayCambios := False;
if Assigned(FReciboProveedor) then
dsDetalles.DataTable := FReciboProveedor.RecibosCompensados.DataTable
else
dsDetalles.DataTable := NIL;
actAnchoAutomatico.Execute;
end;
end.