Varela_PuntosVenta/Source/Modulos/Stock/Cliente/uViewControGridStockEDIInventario.pas

286 lines
9.5 KiB
ObjectPascal
Raw Blame History

unit uViewControGridStockEDIInventario;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewControlGrid, DB, uDADataTable, cxStyles, cxCustomData,
cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, cxDBData,
cxTextEdit, cxGridLevel, cxGridCustomTableView, cxGridTableView,
cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid,
cxCurrencyEdit, cxCalendar, dxPSGlbl, dxPSUtl, dxPrnPg, dxBkgnd, dxWrap,
dxPrnDev, dxPSEngn, dxPSCompsProvider, dxPSFillPatterns,
dxPSEdgePatterns, dxPSCore, dxPScxCommon, dxPScxGridLnk, dxPgsDlg,
cxDropDownEdit, StdCtrls, cxSpinEdit, uViewGrid, cxMemo,
cxEditRepositoryItems, uDataModuleStock, uDAInterfaces, TBXDkPanels,
uViewParametrosCentro, uCustomView, uViewBase, uViewParametrosControlGrid,
uViewParametrosColeccion, TB2Dock, uBizStock, uViewParametrosFecha;
type
IViewControlGridStockEDIInventario = interface(IViewGrid)
['{38BB8BB9-E15D-4D49-970E-14418C4EB1E4}']
function GetItems: IBizStockEDIInventario;
procedure SetItems(const Value: IBizStockEDIInventario);
property Items: IBizStockEDIInventario read GetItems write SetItems;
end;
TfrViewControlGridStockEDIInventario = class(TfrViewGrid, IViewControlGridStockEDIInventario)
dxComponentPrinterLink1: TdxGridReportLink;
cxEditRepository1: TcxEditRepository;
cxEditDia: TcxEditRepositoryTextItem;
cxEditImporte: TcxEditRepositoryCurrencyItem;
cxGridViewRecID: TcxGridDBColumn;
cxGridViewCENTRO: TcxGridDBColumn;
cxGridViewCODIGO: TcxGridDBColumn;
cxGridViewPRODUCTO: TcxGridDBColumn;
cxGridViewTIPO_PRODUCTO: TcxGridDBColumn;
cxGridViewGRUPO_PRODUCTO: TcxGridDBColumn;
cxGridViewCOLECCION: TcxGridDBColumn;
cxGridViewCOLOR: TcxGridDBColumn;
cxGridViewI38: TcxGridDBColumn;
cxGridViewI40: TcxGridDBColumn;
cxGridViewI42: TcxGridDBColumn;
cxGridViewI44: TcxGridDBColumn;
cxGridViewI46: TcxGridDBColumn;
cxGridViewI48: TcxGridDBColumn;
cxGridViewTI: TcxGridDBColumn;
cxGridViewK38: TcxGridDBColumn;
cxGridViewK40: TcxGridDBColumn;
cxGridViewK42: TcxGridDBColumn;
cxGridViewK44: TcxGridDBColumn;
cxGridViewK46: TcxGridDBColumn;
cxGridViewK48: TcxGridDBColumn;
cxGridViewTK: TcxGridDBColumn;
cxGridViewD38: TcxGridDBColumn;
cxGridViewD40: TcxGridDBColumn;
cxGridViewD42: TcxGridDBColumn;
cxGridViewD44: TcxGridDBColumn;
cxGridViewD46: TcxGridDBColumn;
cxGridViewD48: TcxGridDBColumn;
cxGridViewDT: TcxGridDBColumn;
cxStyleEntrada: TcxStyle;
cxStyleSalida: TcxStyle;
cxStyleRepositoryInforme: TcxStyleRepository;
cxStyleContentInforme: TcxStyle;
cxStyleFooterInforme: TcxStyle;
cxStyleGroupInforme: TcxStyle;
cxStyleHeaderInforme: TcxStyle;
cxStyleSelectionInforme: TcxStyle;
cxStyleTotales: TcxStyle;
TBXDockablePanel1: TTBXDockablePanel;
frViewParametrosColeccion1: TfrViewParametrosColeccion;
frViewParametrosCentro1: TfrViewParametrosCentro;
pnlAgrupaciones: TTBXAlignmentPanel;
TBXButton3: TTBXButton;
TBXLabel1: TTBXLabel;
frViewParametrosFecha1: TfrViewParametrosFecha;
procedure cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView;
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo;
var ADone: Boolean);
procedure cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
procedure cxGridViewI38GetDataText(Sender: TcxCustomGridTableItem;
ARecordIndex: Integer; var AText: String);
procedure cxGridViewTEStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
protected
FItems : IBizStockEDIInventario;
function GetItems: IBizStockEDIInventario;
procedure SetItems(const Value: IBizStockEDIInventario);
public
property Items: IBizStockEDIInventario read GetItems write SetItems;
procedure Preview; override;
procedure Print; override;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
procedure Refresh;
end;
implementation
{$R *.dfm}
uses
uViewGridBase;
{ TfrViewControlGridResumenVentas }
procedure TfrViewControlGridStockEDIInventario.Preview;
begin
inherited;
dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con <20>ltimo inventario de colecci<63>n ' + frViewParametrosColeccion1.ccbColeccion.Text + ' en centro(s) ' + frViewParametrosCentro1.ccbCentro.Text;
dxComponentPrinterLink1.Preview;
end;
procedure TfrViewControlGridStockEDIInventario.Print;
begin
inherited;
dxComponentPrinterLink1.ReportTitle.Text := 'Diferencias con <20>ltimo inventario de colecci<63>n ' + frViewParametrosColeccion1.ccbColeccion.Text + ' en centro(s) ' + frViewParametrosCentro1.ccbCentro.Text;
dxComponentPrinterLink1.Print(True, Nil);
end;
procedure TfrViewControlGridStockEDIInventario.cxGridViewDTCustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas;
AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean);
begin
inherited;
if not VarIsNull(AViewInfo.Value) then
if Pos('-', AViewInfo.Value) > 0 then
ACanvas.Canvas.Font.Color := $000000CC;
end;
constructor TfrViewControlGridStockEDIInventario.Create(AOwner: TComponent);
begin
inherited;
FItems := Nil;
frViewParametrosColeccion1.Refresh;
frViewParametrosCentro1.Refresh;
end;
procedure TfrViewControlGridStockEDIInventario.SetItems(const Value: IBizStockEDIInventario);
begin
FItems := Value;
if Assigned(FItems) then
dsDataSource.DataTable := FItems.DataTable;
end;
procedure TfrViewControlGridStockEDIInventario.cxGridViewStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
inherited;
//
if Assigned(AItem) then
if (AItem.Index = cxGridViewTI.Index) or
(AItem.Index = cxGridViewTK.Index) or
(AItem.Index = cxGridViewDT.Index) then
AStyle := cxStyleTotales;
end;
procedure TfrViewControlGridStockEDIInventario.cxGridViewI38GetDataText(
Sender: TcxCustomGridTableItem; ARecordIndex: Integer;
var AText: String);
begin
inherited;
if AText = '0' then
AText := '';
end;
procedure TfrViewControlGridStockEDIInventario.cxGridViewTEStylesGetContentStyle(
Sender: TcxCustomGridTableView; ARecord: TcxCustomGridRecord;
AItem: TcxCustomGridTableItem; out AStyle: TcxStyle);
begin
inherited;
AStyle := cxStyleTotales;
end;
destructor TfrViewControlGridStockEDIInventario.Destroy;
begin
FItems := Nil;
inherited;
end;
procedure TfrViewControlGridStockEDIInventario.Refresh;
var
AColeccionesList : TStringList;
ACentrosList : TStringList;
AFecha : Variant;
AWhereColeccion : String;
AWhereCentro : String;
AWhereFecha : String;
AWhere : String;
i : integer;
begin
AColeccionesList := Nil;
ACentrosList := Nil;
if Assigned(FItems) then
Items.DataTable.Active := False;
AColeccionesList := frViewParametrosColeccion1.ColeccionesSeleccionadas;
ACentrosList := frViewParametrosCentro1.CodigoCentrosSeleccionados;
AFecha := frViewParametrosFecha1.Fecha;
ShowHourglassCursor;
try
if Assigned(AColeccionesList) then
begin
AWhereColeccion := '';
if AColeccionesList.Count = 0 then
begin
ShowMessage('Debe seleccionar al menos una colecci<63>n en los par<61>metros de la consulta.');
Exit;
end
else begin
AWhereColeccion := AWhereColeccion + ' COLECCION in (';
for i := 0 to AColeccionesList.Count - 1 do
begin
if i > 0 then
AWhereColeccion := AWhereColeccion + ', ';
AWhereColeccion := AWhereColeccion + '''' + AColeccionesList[i] + '''';
end;
AWhereColeccion := AWhereColeccion + ')';
end;
end;
if Assigned(ACentrosList) then
begin
AWhereCentro := '';
if ACentrosList.Count = 0 then
begin
ShowMessage('Debe seleccionar al menos un centro en los par<61>metros de la consulta.');
Exit;
end
else begin
AWhereCentro := AWhereCentro + ' CENTRO in (';
for i := 0 to ACentrosList.Count - 1 do
begin
if i > 0 then
AWhereCentro := AWhereCentro + ', ';
AWhereCentro := AWhereCentro + '''' + ACentrosList[i] + '''';
end;
AWhereCentro := AWhereCentro + ')';
end;
end;
AWhereFecha := '';
if not VarIsNull(AFecha) then
AWhereFecha := '(FECHA >= ''' + VarToStr(AFecha) + ''')';
AWhere := '';
if AWhereColeccion <> '' then
AWhere := AWhere + AWhereColeccion;
if AWhereCentro <> '' then
begin
if AWhere <> '' then
AWhere := AWhere + ' AND ';
AWhere := AWhere + AWhereCentro;
end;
if AWhereFecha <> '' then
begin
if AWhere <> '' then
AWhere := AWhere + ' AND ';
AWhere := AWhere + AWhereFecha;
end;
Items.DataTable.Where.Clear;
Items.DataTable.Where.AddText(AWhere, False);
Items.DataTable.Active := True;
finally
HideHourglassCursor;
FreeAndNIL(AColeccionesList);
FreeAndNIL(ACentrosList);
end;
end;
function TfrViewControlGridStockEDIInventario.GetItems: IBizStockEDIInventario;
begin
Result := FItems;
end;
end.