Tecsitel_FactuGES2/Source/Modulos/Articulos/Views/uViewArticulosProveedores.pas

133 lines
4.2 KiB
ObjectPascal

unit uViewArticulosProveedores;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uViewDetallesGenerico, cxStyles, cxCustomData, cxGraphics,
cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ActnList, ImgList,
PngImageList, uDADataTable, ComCtrls, ToolWin, cxGridLevel,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses,
cxControls, cxGridCustomView, cxGrid, cxDBLookupComboBox, cxSpinEdit,
uBizContactos, uProveedoresController, uDAInterfaces,
uBizArticulos, uArticulosController,
cxTextEdit, cxCalendar;
type
IViewArticulosProveedores = interface(IViewBase)
['{65206152-786D-47AE-A037-5EF480BC056C}']
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
property Controller : IArticulosController read GetController write SetController;
end;
TfrViewArticulosProveedores = class(TfrViewDetallesGenerico, IViewArticulosProveedores)
dsProveedores: TDADataSource;
cxGridViewPROVEEDOR: TcxGridDBColumn;
cxGridViewDESCUENTO: TcxGridDBColumn;
cxGridViewREFERENCIA_PROV: TcxGridDBColumn;
cxGridViewPRECIO_COSTE: TcxGridDBColumn;
cxGridViewPRECIO_NETO: TcxGridDBColumn;
cxGridViewPRECIO_PORTE: TcxGridDBColumn;
cxGridViewPRECIO_PVP_VENTA: TcxGridDBColumn;
cxGridViewPRECIO_PVP_TOTAL: TcxGridDBColumn;
cxGridViewID_PROVEEDOR: TcxGridDBColumn;
cxGridViewID_ARTICULO: TcxGridDBColumn;
cxGridViewFECHA_ACTUALIZACION: TcxGridDBColumn;
procedure cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject);
procedure CustomViewShow(Sender: TObject);
protected
FArticulo: IBizArticulo;
FController: IArticulosController;
FProvController : IProveedoresController;
FProveedores : IBizProveedor;
function GetArticulo: IBizArticulo;
procedure SetArticulo(const Value: IBizArticulo);
function GetController : IArticulosController;
procedure SetController (const Value : IArticulosController);
procedure AnadirInterno; override;
public
property Articulo: IBizArticulo read GetArticulo write SetArticulo;
property Controller : IArticulosController read GetController write SetController;
constructor Create(AOwner: TComponent); override;
destructor Destroy; override;
end;
implementation
{$R *.dfm}
procedure TfrViewArticulosProveedores.AnadirInterno;
begin
dsDetalles.DataTable.Append;
end;
constructor TfrViewArticulosProveedores.Create(AOwner: TComponent);
begin
inherited;
FProvController := TProveedoresController.Create;
FProveedores := (FProvController.BuscarTodos as IBizProveedor);
dsProveedores.DataTable := FProveedores.DataTable;
if not dsProveedores.DataTable.Active then
dsProveedores.DataTable.Active := True;
end;
procedure TfrViewArticulosProveedores.CustomViewShow(Sender: TObject);
begin
inherited;
cxGridView.ApplyBestFit;
end;
procedure TfrViewArticulosProveedores.cxGridViewPROVEEDORPropertiesEditValueChanged(Sender: TObject);
begin
inherited;
//Signamos el descuento del proveedor seleccionado
if not Articulo.Proveedores.DataTable.Editing then
Articulo.Proveedores.DataTable.Edit;
Articulo.Proveedores.DESCUENTO := FProveedores.DESCUENTO;
end;
destructor TfrViewArticulosProveedores.Destroy;
begin
if dsProveedores.DataTable.Active then
dsProveedores.DataTable.Active := False;
FProveedores := NIL;
FProvController := NIL;
inherited;
end;
function TfrViewArticulosProveedores.GetArticulo: IBizArticulo;
begin
Result := FArticulo;
end;
function TfrViewArticulosProveedores.GetController: IArticulosController;
begin
Result := FController;
end;
procedure TfrViewArticulosProveedores.SetArticulo(const Value: IBizArticulo);
begin
FArticulo := Value;
dsDetalles.DataTable := FArticulo.Proveedores.DataTable;
end;
procedure TfrViewArticulosProveedores.SetController(const Value: IArticulosController);
begin
FController := Value;
end;
end.