AbetoDesign_FactuGES2/Source/Modulos/Inventario/Views/uViewDetalleReservas.pas

193 lines
6.1 KiB
ObjectPascal
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

unit uViewDetalleReservas;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, frxClass, frxPreview, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB,
cxDBData, ActnList, uDADataTable, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxGrid, StdCtrls, ExtCtrls, cxLabel, dxPSGlbl, dxPSUtl,
dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, cxImage,
cxImageComboBox, ImgList, PngImageList, cxTextEdit, Grids, DBGrids, cxDBLookupComboBox,
cxButtonEdit, cxGridCustomPopupMenu, cxGridPopupMenu, uViewGrid,
uBizInventario, uBizAlmacenes, cxSpinEdit, uViewFiltroBase, TB2Item, TBX,
TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, cxCurrencyEdit, uAlmacenesController,
uDAInterfaces;
type
IViewDetalleReservas = interface(IViewGrid)
['{4417F53A-5BB1-4B99-8760-4C0E1D449582}']
function GetDetalleReservas: IBizDetalleReservas;
procedure SetDetalleReservas(const Value: IBizDetalleReservas);
property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
end;
TfrViewDetalleReservas = class(TfrViewGrid, IViewDetalleReservas)
cxGridDBTableView1: TcxGridDBTableView;
PngImageList: TPngImageList;
cxStyleArticuloSinStock: TcxStyle;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewREFERENCIA_ALB: TcxGridDBColumn;
cxGridViewSITUACION_ALB: TcxGridDBColumn;
cxGridViewFECHA_PREVISTA_ENVIO_ALB: TcxGridDBColumn;
cxGridViewID_ALMACEN_ALB: TcxGridDBColumn;
cxGridViewALMACEN_ALB: TcxGridDBColumn;
cxGridViewCLIENTE_ALB: TcxGridDBColumn;
cxGridViewFAMILIA_ART: TcxGridDBColumn;
cxGridViewREFERENCIA_ART: TcxGridDBColumn;
cxGridViewREFERENCIA_PROV_ART: TcxGridDBColumn;
cxGridViewDESCRIPCION_ART: TcxGridDBColumn;
cxGridViewCANTIDAD_ART: TcxGridDBColumn;
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
AStyle: TcxStyle);
private
FAlmacenesController: IAlmacenesController;
FAlmacenes: IBizAlmacen;
function GetAlmacenes: IBizAlmacen;
procedure SetAlmacenes(const Value: IBizAlmacen);
//Filtros relativos a la vista
procedure AnadirFiltroAlmacenes;
protected
FDetalleReservas: IBizDetalleReservas;
function GetDetalleReservas: IBizDetalleReservas;
procedure SetDetalleReservas(const Value: IBizDetalleReservas);
procedure AnadirOtrosFiltros; override;
public
property Almacenes: IBizAlmacen read GetAlmacenes write SetAlmacenes;
property DetalleReservas: IBizDetalleReservas read GetDetalleReservas write SetDetalleReservas;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
uses uDataModuleInventario, schInventarioClient_Intf;
procedure TfrViewDetalleReservas.AnadirFiltroAlmacenes;
var
FFiltro : TcxFilterCriteriaItemList;
CodigoAlmacen: String;
begin
FFiltro := AddFilterGrid(fboAnd);
CodigoAlmacen := IntToStr(cxGrid.Levels.Items[cxGrid.ActiveLevel.Index].Tag);
if CodigoAlmacen <> '-1' then
begin
FFiltro.AddItem(cxGridViewID_ALMACEN_ALB, foEqual, CodigoAlmacen, CodigoAlmacen);
cxGridViewALMACEN_ALB.Visible := False;
end
else
cxGridViewALMACEN_ALB.Visible := True;
end;
procedure TfrViewDetalleReservas.AnadirOtrosFiltros;
begin
inherited;
AnadirFiltroAlmacenes;
//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;
constructor TfrViewDetalleReservas.Create(AOwner: TComponent);
begin
inherited;
FAlmacenesController := TAlmacenesController.Create;
Almacenes := FAlmacenesController.BuscarTodos;
end;
procedure TfrViewDetalleReservas.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
begin
inherited;
RefrescarFiltro;
end;
procedure TfrViewDetalleReservas.cxGridViewStylesGetContentStyle(Sender:
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
TcxCustomGridTableItem; out AStyle: TcxStyle);
var
IndiceCol: Integer;
AStock: Variant;
begin
inherited;
{
if Assigned(ARecord) then
begin
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_DetalleReservasSTOCK).Index;
AStock := ARecord.DisplayTexts[IndiceCol];
if (AStock < 0) then
AStyle := cxStyleArticuloSinStock;
end;
}
end;
destructor TfrViewDetalleReservas.Destroy;
begin
FAlmacenesController := Nil;
FAlmacenes := Nil;
FDetalleReservas := Nil;
inherited;
end;
function TfrViewDetalleReservas.GetAlmacenes: IBizAlmacen;
begin
Result := FAlmacenes;
end;
function TfrViewDetalleReservas.GetDetalleReservas: IBizDetalleReservas;
begin
Result := FDetalleReservas;
end;
procedure TfrViewDetalleReservas.SetAlmacenes(const Value: IBizAlmacen);
var
Nivel: TcxGridLevel;
begin
FAlmacenes := Value;
if Assigned(FAlmacenes) then
begin
if not FAlmacenes.DataTable.Active then
FAlmacenes.DataTable.Active := True;
FAlmacenes.First;
while not FAlmacenes.EOF do
begin
Nivel := cxGrid.Levels.Add;
Nivel.Caption := FAlmacenes.NOMBRE;
Nivel.Tag := FAlmacenes.ID;
FAlmacenes.Next;
end;
end;
end;
procedure TfrViewDetalleReservas.SetDetalleReservas(const Value: IBizDetalleReservas);
begin
FDetalleReservas := Value;
if Assigned(FDetalleReservas) then
dsDataSource.DataTable := FDetalleReservas.DataTable
else
dsDataSource.DataTable := Nil;
end;
end.