2007-11-15 19:56:08 +00:00
|
|
|
|
unit uViewPedidosProveedor;
|
|
|
|
|
|
|
|
|
|
|
|
interface
|
|
|
|
|
|
|
|
|
|
|
|
uses
|
|
|
|
|
|
uViewGrid, cxStyles, cxCustomData, cxGraphics, cxFilter,
|
|
|
|
|
|
cxData, cxDataStorage, cxEdit, DB, cxDBData, dxPSGlbl, dxPSUtl, dxPSEngn,
|
|
|
|
|
|
dxPrnPg, dxBkgnd, dxWrap, dxPrnDev, dxPSCompsProvider, dxPSFillPatterns,
|
|
|
|
|
|
dxPSEdgePatterns, cxImageComboBox, ImgList, Controls, PngImageList,
|
|
|
|
|
|
cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
|
2008-01-04 11:16:59 +00:00
|
|
|
|
cxGridCustomPopupMenu, cxGridPopupMenu, dxPSCore, dxPScxCommon, dxPScxGrid6Lnk,
|
2007-11-15 19:56:08 +00:00
|
|
|
|
uDADataTable, cxGridLevel, cxClasses, cxControls, cxGridCustomView, Classes,
|
|
|
|
|
|
cxGrid,
|
|
|
|
|
|
uBizPedidosProveedor, cxCurrencyEdit, Forms, uViewFiltroBase, ActnList,
|
|
|
|
|
|
TB2Item, TBX, TB2Toolbar, TBXDkPanels, TB2Dock, dxPgsDlg, uDAInterfaces;
|
|
|
|
|
|
|
|
|
|
|
|
type
|
|
|
|
|
|
IViewPedidosProveedor = interface(IViewGrid)
|
|
|
|
|
|
['{DF3B0989-5449-4F3A-8EF3-69CE35A62AAA}']
|
|
|
|
|
|
function GetPedidos: IBizPedidoProveedor;
|
|
|
|
|
|
procedure SetPedidos(const Value: IBizPedidoProveedor);
|
|
|
|
|
|
property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
TfrViewPedidosProveedor = class(TfrViewGrid, IViewPedidosProveedor)
|
|
|
|
|
|
cxGridDBTableView1: TcxGridDBTableView;
|
|
|
|
|
|
cxGridLevel1: TcxGridLevel;
|
|
|
|
|
|
cxGridLevel2: TcxGridLevel;
|
|
|
|
|
|
cxGridLevel3: TcxGridLevel;
|
|
|
|
|
|
PngImageList: TPngImageList;
|
|
|
|
|
|
cxGridViewCODIGO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewREFERENCIA: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewINCIDENCIASACTIVAS: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewNOMBRE: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewFECHA_PEDIDO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewFECHA_CONFIRMACION: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewFECHA_ENTREGA: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewCALLE: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewPOBLACION: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewPROVINCIA: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewCODIGO_POSTAL: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewPERSONA_CONTACTO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewTELEFONO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewFECHA_ENVIO: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewNOMBRE_ALMACEN: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewREF_PED_CLIENTE: TcxGridDBColumn;
|
|
|
|
|
|
cxGridViewSITUACION: TcxGridDBColumn;
|
|
|
|
|
|
cxStylePendientes: TcxStyle;
|
|
|
|
|
|
cxStyleParciales: TcxStyle;
|
|
|
|
|
|
cxStyleRecibidos: TcxStyle;
|
|
|
|
|
|
cxGridViewIMPORTE_TOTAL: TcxGridDBColumn;
|
|
|
|
|
|
actProveedor: TAction;
|
|
|
|
|
|
actAlmacen: TAction;
|
|
|
|
|
|
TBXItem2: TTBXItem;
|
|
|
|
|
|
TBXSeparatorItem1: TTBXSeparatorItem;
|
|
|
|
|
|
TBXItem3: TTBXItem;
|
|
|
|
|
|
TBXSeparatorItem2: TTBXSeparatorItem;
|
|
|
|
|
|
procedure cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel:
|
|
|
|
|
|
TcxGridLevel);
|
|
|
|
|
|
procedure cxGridViewCODIGOCustomDrawCell(Sender: TcxCustomGridTableView;
|
|
|
|
|
|
ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var
|
|
|
|
|
|
ADone: Boolean);
|
|
|
|
|
|
procedure cxGridViewStylesGetContentStyle(Sender: TcxCustomGridTableView;
|
|
|
|
|
|
ARecord: TcxCustomGridRecord; AItem: TcxCustomGridTableItem; out
|
|
|
|
|
|
AStyle: TcxStyle);
|
|
|
|
|
|
procedure actProveedorExecute(Sender: TObject);
|
|
|
|
|
|
procedure actProveedorUpdate(Sender: TObject);
|
|
|
|
|
|
procedure actAlmacenExecute(Sender: TObject);
|
|
|
|
|
|
procedure actAlmacenUpdate(Sender: TObject);
|
|
|
|
|
|
procedure cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X,
|
|
|
|
|
|
Y: Integer);
|
|
|
|
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
//Filtros relativos a la vista
|
|
|
|
|
|
procedure AnadirFiltroSituaciones;
|
|
|
|
|
|
procedure AnadirFiltroFechas;
|
|
|
|
|
|
|
|
|
|
|
|
protected
|
|
|
|
|
|
FPedidos: IBizPedidoProveedor;
|
|
|
|
|
|
function GetPedidos: IBizPedidoProveedor;
|
|
|
|
|
|
procedure SetPedidos(const Value: IBizPedidoProveedor);
|
|
|
|
|
|
public
|
|
|
|
|
|
procedure AnadirOtrosFiltros; override;
|
|
|
|
|
|
property Pedidos: IBizPedidoProveedor read GetPedidos write SetPedidos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
implementation
|
|
|
|
|
|
|
|
|
|
|
|
uses SysUtils, variants, windows, uDataModulePedidosProveedor, schPedidosProveedorClient_Intf;
|
|
|
|
|
|
|
|
|
|
|
|
{$R *.dfm}
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.actAlmacenExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridViewNOMBRE_ALMACEN.GroupIndex := cxGridView.GroupedColumnCount;
|
|
|
|
|
|
cxGridViewNOMBRE_ALMACEN.Visible := False;
|
|
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridViewNOMBRE_ALMACEN.GroupIndex := -1;
|
|
|
|
|
|
cxGridViewNOMBRE_ALMACEN.Visible := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.actAlmacenUpdate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
(Sender as TAction).Checked := not (cxGridViewNOMBRE_ALMACEN.GroupIndex < 0);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.actProveedorExecute(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
if (cxGridViewNOMBRE.GroupIndex < 0) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridViewNOMBRE.GroupIndex := cxGridView.GroupedColumnCount;
|
|
|
|
|
|
cxGridViewNOMBRE.Visible := False;
|
|
|
|
|
|
end
|
|
|
|
|
|
else
|
|
|
|
|
|
begin
|
|
|
|
|
|
cxGridViewNOMBRE.GroupIndex := -1;
|
|
|
|
|
|
cxGridViewNOMBRE.Visible := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.actProveedorUpdate(Sender: TObject);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
(Sender as TAction).Checked := not (cxGridViewNOMBRE.GroupIndex < 0);
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.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_PEDIDO');
|
|
|
|
|
|
FFiltro.AddItem(Columna, foBetween, varArrayOf([Fecha1, Fecha2]), VarToStr(Fecha1) + ' and ' + VarToStr(Fecha2));
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.AnadirFiltroSituaciones;
|
|
|
|
|
|
var
|
|
|
|
|
|
FFiltro : TcxFilterCriteriaItemList;
|
|
|
|
|
|
begin
|
|
|
|
|
|
FFiltro := AddFilterGrid(fboAnd);
|
|
|
|
|
|
|
|
|
|
|
|
case cxGrid.ActiveLevel.Index of
|
|
|
|
|
|
1 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PENDIENTE, SITUACION_PEDIDO_PENDIENTE);
|
|
|
|
|
|
2 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_PARCIAL, SITUACION_PEDIDO_PARCIAL);
|
|
|
|
|
|
3 : FFiltro.AddItem(cxGridViewSITUACION, foEqual, SITUACION_PEDIDO_RECIBIDO, SITUACION_PEDIDO_RECIBIDO);
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.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 TfrViewPedidosProveedor.cxGridActiveTabChanged(Sender: TcxCustomGrid; ALevel: TcxGridLevel);
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
RefrescarFiltro;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.cxGridViewCODIGOCustomDrawCell(Sender:
|
|
|
|
|
|
TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo:
|
|
|
|
|
|
TcxGridTableDataCellViewInfo; var ADone: Boolean);
|
|
|
|
|
|
var
|
|
|
|
|
|
R: TRect;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
R := AViewInfo.ContentBounds;
|
|
|
|
|
|
ACanvas.FillRect(R);
|
|
|
|
|
|
ACanvas.DrawImage(PngImageList, R.Left, R.Top, 2);
|
|
|
|
|
|
ADone := True;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.cxGridViewMouseMove(Sender: TObject; Shift: TShiftState; X, Y: Integer);
|
|
|
|
|
|
var
|
|
|
|
|
|
Site : TcxGridSite;
|
|
|
|
|
|
HitTest : TcxCustomGridHitTest;
|
|
|
|
|
|
Item : TcxCustomGridTableItem;
|
|
|
|
|
|
Rec : TcxCustomGridRecord;
|
|
|
|
|
|
sNewHint : string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
{Este m<>todo desaparecer<65> cuando se migre la aplicaci<63>n, es para sacar la causa de la incidencia sin necesidad de entrar en el documento}
|
|
|
|
|
|
Site := Sender as TcxGridSite;
|
|
|
|
|
|
HitTest := Site.GridView.ViewInfo.GetHitTest(X, Y);
|
|
|
|
|
|
if HitTest is TcxGridRecordCellHitTest then begin
|
|
|
|
|
|
Item := TcxGridRecordCellHitTest(HitTest).Item;
|
|
|
|
|
|
Rec := TcxGridRecordCellHitTest(HitTest).GridRecord;
|
|
|
|
|
|
|
|
|
|
|
|
if (Item.Index = cxGridView.GetColumnByFieldName(fld_PedidosProveedorINCIDENCIAS_ACTIVAS).Index)
|
|
|
|
|
|
and (Rec.Selected)
|
|
|
|
|
|
and (Pedidos.DataTable.FieldByName(fld_PedidosProveedorINCIDENCIAS_ACTIVAS).AsInteger = 1) then begin
|
|
|
|
|
|
sNewHint := Pedidos.DataTable.FieldByName(fld_PedidosProveedorINCIDENCIAS).AsString;
|
|
|
|
|
|
if (cxGrid.Hint <> sNewHint) then begin
|
|
|
|
|
|
cxGrid.ShowHint := false;
|
|
|
|
|
|
cxGrid.Hint := sNewHint;
|
|
|
|
|
|
end
|
|
|
|
|
|
else cxGrid.ShowHint := true;
|
|
|
|
|
|
end
|
|
|
|
|
|
else begin
|
|
|
|
|
|
cxGrid.ShowHint := false;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.cxGridViewStylesGetContentStyle(Sender:
|
|
|
|
|
|
TcxCustomGridTableView; ARecord: TcxCustomGridRecord; AItem:
|
|
|
|
|
|
TcxCustomGridTableItem; out AStyle: TcxStyle);
|
|
|
|
|
|
var
|
|
|
|
|
|
IndiceCol: Integer;
|
|
|
|
|
|
ASituacion: string;
|
|
|
|
|
|
begin
|
|
|
|
|
|
inherited;
|
|
|
|
|
|
if Assigned(ARecord) then
|
|
|
|
|
|
begin
|
|
|
|
|
|
IndiceCol := (Sender as TcxGridDBTableView).GetColumnByFieldName(fld_PedidosProveedorSITUACION).Index;
|
|
|
|
|
|
ASituacion := UPPERCASE(VarToStr(ARecord.DisplayTexts[IndiceCol]));
|
|
|
|
|
|
if (ASituacion = SITUACION_PEDIDO_PENDIENTE) then
|
|
|
|
|
|
AStyle := cxStylePendientes
|
|
|
|
|
|
else if (ASituacion = SITUACION_PEDIDO_PARCIAL) then
|
|
|
|
|
|
AStyle := cxStyleParciales
|
|
|
|
|
|
else if (ASituacion = SITUACION_PEDIDO_RECIBIDO) then
|
|
|
|
|
|
AStyle := cxStyleRecibidos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
function TfrViewPedidosProveedor.GetPedidos: IBizPedidoProveedor;
|
|
|
|
|
|
begin
|
|
|
|
|
|
Result := FPedidos;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
procedure TfrViewPedidosProveedor.SetPedidos(const Value: IBizPedidoProveedor);
|
|
|
|
|
|
begin
|
|
|
|
|
|
FPedidos := Value;
|
|
|
|
|
|
if Assigned(FPedidos) then
|
|
|
|
|
|
dsDataSource.DataTable := FPedidos.DataTable;
|
|
|
|
|
|
end;
|
|
|
|
|
|
|
|
|
|
|
|
end.
|