AlonsoYSal_FactuGES2/Source/Modulos/Contratos de cliente/Views/uViewContratosClienteBeneficios.pas
2019-11-18 10:36:42 +00:00

133 lines
4.5 KiB
ObjectPascal

unit uViewContratosClienteBeneficios;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg,
dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, ImgList, PngImageList, ActnList, cxGridCustomPopupMenu,
cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uDAInterfaces,
uDADataTable, TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, uCustomView,
uViewBase, uViewFiltroBase, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView,
cxGrid, uBizContratosCliente, cxCalendar, cxCurrencyEdit;
type
TfrViewContratosClienteBeneficios = class(TfrViewGrid)
cxGridViewID: TcxGridDBColumn;
cxGridViewREFERENCIA: TcxGridDBColumn;
cxGridViewFECHA_CONTRATO: TcxGridDBColumn;
cxGridViewNOMBRE: TcxGridDBColumn;
cxGridViewNIF_CIF: TcxGridDBColumn;
cxGridViewIMPORTE_NETO: TcxGridDBColumn;
cxGridViewIMPORTE_DESCUENTO: TcxGridDBColumn;
cxGridViewBASE_IMPONIBLE: TcxGridDBColumn;
cxGridViewIMPORTE_FACTURAS_PROVEEDOR: TcxGridDBColumn;
cxGridViewIMPORTE_BENEFICIO: TcxGridDBColumn;
cxGridViewPORCENTAJE_BENEFICIO: TcxGridDBColumn;
cxGridPendientes: TcxGridLevel;
cxGridTerminados: TcxGridLevel;
cxGridViewSITUACION: TcxGridDBColumn;
cxGridViewVENDEDOR: TcxGridDBColumn;
cxGridViewREF_CONTENIDO: TcxGridDBColumn;
procedure CustomViewDestroy(Sender: TObject);
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid;
ALevel: TcxGridLevel);
private
FContratos: IBizContratosClienteBeneficios;
function GetContratos: IBizContratosClienteBeneficios;
procedure SetContratos(const Value: IBizContratosClienteBeneficios);
//Filtros relativos a la vista
procedure AnadirFiltroSituaciones;
procedure AnadirFiltroFechas;
public
procedure AnadirOtrosFiltros; override;
property Contratos: IBizContratosClienteBeneficios read GetContratos write SetContratos;
end;
var
frViewContratosClienteBeneficios: TfrViewContratosClienteBeneficios;
implementation
{$R *.dfm}
{ TfrViewContratosClienteBeneficios }
procedure TfrViewContratosClienteBeneficios.AnadirFiltroFechas;
var
Columna: TcxGridDBColumn;
Fecha1, Fecha2: Variant;
FFiltro : TcxFilterCriteriaItemList;
begin
Fecha1 := frViewFiltroBase1.edtFechaIniFiltro.EditValue;
Fecha2 := frViewFiltroBase1.edtFechaFinFiltro.EditValue;
if not VarIsNull(Fecha1)
and not VarIsNull(Fecha2) then
begin
cxGridView.DataController.Filter.Options := [fcoCaseInsensitive, fcoSoftCompare];
FFiltro := AddFilterGrid(fboAnd);
Columna := (cxGridView as TcxGridDBTableView).GetColumnByFieldName('FECHA_CONTRATO');
FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
end;
end;
procedure TfrViewContratosClienteBeneficios.AnadirFiltroSituaciones;
var
FFiltro : TcxFilterCriteriaItemList;
begin
FFiltro := AddFilterGrid(fboAnd);
case cxGrid.ActiveLevel.Index of
1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_CONTRATO_PENDIENTE, SITUACION_CONTRATO_PENDIENTE);
2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_CONTRATO_TERMINADO, SITUACION_CONTRATO_TERMINADO);
end;
end;
procedure TfrViewContratosClienteBeneficios.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroSituaciones;
AnadirFiltroFechas;
//Finalmente activamos el filtro si tenemos algo
if cxGridView.DataController.Filter.IsEmpty then
cxGridView.DataController.Filter.Active := False
else
cxGridView.DataController.Filter.Active := True;
cxGrid.ActiveLevel.GridView := cxGridView;
end;
procedure TfrViewContratosClienteBeneficios.CustomViewDestroy(Sender: TObject);
begin
FContratos := NIL;
inherited;
end;
procedure TfrViewContratosClienteBeneficios.cxGridActiveTabChanged(
Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
function TfrViewContratosClienteBeneficios.GetContratos: IBizContratosClienteBeneficios;
begin
Result := FContratos;
end;
procedure TfrViewContratosClienteBeneficios.SetContratos(const Value: IBizContratosClienteBeneficios);
begin
FContratos := Value;
dsDataSource.DataTable := FContratos.DataTable;
end;
end.