unit uViewEntradaSalidaArticulos; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList, uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls, cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid, cxDBLookupComboBox, uViewGrid, StdCtrls, dxPSGlbl, dxPSUtl, dxPSEngn, dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns, dxPSEdgePatterns, cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk, uAlmacenesController, uBizAlmacenes, TB2Item, SpTBXItem, TB2Dock, TB2Toolbar, uDataModuleInventario, cxRichEdit, cxTextEdit, dxPgsDlg, SpTBXDkPanels, uViewFiltroBase, cxSpinEdit, uDAInterfaces, cxLookAndFeels, cxLookAndFeelPainters, dxPSPDFExportCore, dxPSPDFExport, cxDrawTextUtils, dxPSPrVwStd, dxPSPrVwAdv, dxPScxEditorProducers, dxPScxExtEditorProducers, dxPScxPageControlProducer, uCustomView, uViewBase, cxButtonEdit, uInventarioController, uArticulosInventarioController, uBizInventario, Grids, DBGrids; type IViewViewEntradaSalidaArticulos = interface(IViewGrid) ['{C195FC01-604A-484E-A809-0ED49890DBBE}'] // function GetAlmacenes: IBizAlmacen; // property Almacenes: IBizAlmacen read GetAlmacenes; function GetInventario: IBizInventario; procedure SetInventario(const Value: IBizInventario); property Inventario: IBizInventario read GetInventario write SetInventario; end; TfrViewEntradaSalidaArticulos = class(TfrViewGrid, IViewViewEntradaSalidaArticulos) DADataSourceAlmacenes: TDADataSource; cxGridViewRecID: TcxGridDBColumn; cxGridViewID: TcxGridDBColumn; cxGridViewID_ARTICULO: TcxGridDBColumn; cxGridViewCANTIDAD: TcxGridDBColumn; cxGridViewID_PEDIDO_PROVEEDOR: TcxGridDBColumn; cxGridViewID_PEDIDO_CLIENTE: TcxGridDBColumn; cxGridViewREFERENCIA_PED_CLI: TcxGridDBColumn; cxGridViewDESCRIPCION: TcxGridDBColumn; cxGridViewID_EMPRESA: TcxGridDBColumn; cxGridViewREFERENCIA: TcxGridDBColumn; cxGridViewREFERENCIA_PROV: TcxGridDBColumn; cxGridViewSTOCK: TcxGridDBColumn; cxStyle_CANTIDAD_IMPAR: TcxStyle; cxStyle_CANTIDAD_PAR: TcxStyle; cxGridViewCANTIDAD2: TcxGridDBColumn; procedure cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); procedure cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure CustomViewDestroy(Sender: TObject); procedure CustomViewCreate(Sender: TObject); private FInventarioController : IInventarioController; FInventario: IBizInventario; function GetInventario: IBizInventario; procedure SetInventario(const Value: IBizInventario); //Es para cuando el almacen destino sea relativo a cada artículo, como lo vamos a //hacer relativo al conjunto esto sobra // FController: IAlmacenesController; // FAlmacenes: IBizAlmacen; // function GetAlmacenes: IBizAlmacen; public // property Almacenes: IBizAlmacen read GetAlmacenes; // constructor Create(AOwner : TComponent); override; // destructor destroy; override; property Inventario: IBizInventario read GetInventario write SetInventario; end; implementation {$R *.dfm} uses uDataModuleAlmacenes; { TfrViewEntradaArticulosInventario } {constructor TfrViewEntradaSalidaArticulos.Create(AOwner: TComponent); begin inherited; FController := TAlmacenesController.Create; FAlmacenes := FController.BuscarTodos; DADataSourceAlmacenes.DataTable := FAlmacenes.DataTable; DADataSourceAlmacenes.DataTable.Active := True; end; destructor TfrViewEntradaSalidaArticulos.destroy; begin FController := Nil; inherited; end; function TfrViewEntradaSalidaArticulos.getAlmacenes: IBizAlmacen; begin Result := FAlmacenes; end;} { TfrViewEntradaSalidaArticulos } { TfrViewEntradaSalidaArticulos } procedure TfrViewEntradaSalidaArticulos.CustomViewCreate(Sender: TObject); begin inherited; FInventarioController := TInventarioController.Create; end; procedure TfrViewEntradaSalidaArticulos.CustomViewDestroy(Sender: TObject); begin FInventario := Nil; FInventarioController := Nil; inherited; end; procedure TfrViewEntradaSalidaArticulos.cxGridViewCANTIDAD2PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin inherited; (FInventarioController as IInventarioController).ModificarCantidadColores(FInventario); end; procedure TfrViewEntradaSalidaArticulos.cxGridViewStylesGetContentStyle( Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out AStyle: TcxStyle); begin inherited; if Assigned(AItem) then begin if AItem.Index = cxGridViewCANTIDAD.Index then begin if Odd(ARecord.Index) then AStyle := cxStyle_NORMAL_PAR else AStyle := cxStyle_NORMAL_IMPAR; AStyle.Font.Style := [fsBold]; end else begin if Odd(ARecord.Index) then AStyle := cxStyle_ORDENADO_PAR else AStyle := cxStyle_ORDENADO_IMPAR; end; end; end; function TfrViewEntradaSalidaArticulos.GetInventario: IBizInventario; begin Result := FInventario; end; procedure TfrViewEntradaSalidaArticulos.SetInventario(const Value: IBizInventario); begin FInventario := Value; dsDataSource.DataTable := FInventario.DataTable; end; end.