Tecsitel_FactuGES2/Source/Modulos/Pedidos a proveedor/Views/uViewDetallesPedidoProveedor.pas
2011-05-05 14:54:31 +00:00

144 lines
5.2 KiB
ObjectPascal
Raw Blame History

unit uViewDetallesPedidoProveedor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewDetallesArticulos, cxStyles, cxCustomData, cxGraphics, cxFilter,
cxData, cxDataStorage, cxEdit, DB, cxDBData, ImgList, PngImageList,
uDADataTable, ActnList, ComCtrls, ToolWin, cxGridLevel, cxClasses, cxControls,
cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
cxGrid, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit,
Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns,
JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, TBX, TB2Dock, TB2Toolbar,
uArticulosController, uBizPedidosProveedor, uDAInterfaces,
cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, cxGridPopupMenu,
cxEditRepositoryItems;
type
IViewDetallesPedidoProveedor = interface(IViewDetallesArticulos)
['{4C82AADF-7FE2-47BC-88F1-2F2DA6DF0B57}']
function GetPedido: IBizPedidoProveedor;
procedure SetPedido(const Value: IBizPedidoProveedor);
property Pedido: IBizPedidoProveedor read GetPedido write SetPedido;
end;
TfrViewDetallesPedidoProveedor = class(TfrViewDetallesArticulos, IViewDetallesPedidoProveedor)
TBXItem18: TTBXItem;
Artculosdelcatlogo1: TMenuItem;
N2: TMenuItem;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure OnValidateReferencia(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); override;
procedure OnValidateReferenciaProveedor(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); virtual;
protected
FPedido: IBizPedidoProveedor;
function GetPedido: IBizPedidoProveedor;
procedure SetPedido(const Value: IBizPedidoProveedor);
procedure AnadirArticulosInterno; override;
procedure RellenarArticulosInterno; override;
function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override;
public
property Pedido: IBizPedidoProveedor read GetPedido write SetPedido;
end;
implementation
{$R *.dfm}
uses uDetallesPedidoProveedorController;
{ TfrViewDetallesPedidoProveedor }
procedure TfrViewDetallesPedidoProveedor.AnadirArticulosInterno;
begin
//No s<> porque est<73> en este m<>dulo hecho as<61>, supongo que por seguridad.
if Assigned(Pedido) and Assigned(Pedido.Proveedor)
then (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, Pedido.Proveedor)
else (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles);
end;
procedure TfrViewDetallesPedidoProveedor.CustomViewCreate(Sender: TObject);
begin
inherited;
cxGridViewREFERENCIA.Properties.OnValidate := OnValidateReferencia;
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := OnValidateReferenciaProveedor;
end;
procedure TfrViewDetallesPedidoProveedor.CustomViewDestroy(Sender: TObject);
begin
FPedido := Nil;
cxGridViewREFERENCIA.Properties.OnValidate := Nil;
cxGridViewREFERENCIA_PROVEEDOR.Properties.OnValidate := Nil;
inherited;
end;
procedure TfrViewDetallesPedidoProveedor.OnValidateReferencia(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
var
lsReferencia : String;
begin
//En el caso de cadena vacia no validamos
if (VarIsNull(DisplayValue)) then
Exit;
lsReferencia := VarToStr(DisplayValue);
if (length(trim(lsReferencia)) = 0) then
Exit;
if not AnadirArticulo(lsReferencia, tReferenciaParaCompras) then
begin
ErrorText := 'La referencia introducida no exite en el cat<61>logo del proveedor';
Error := True;
end;
end;
procedure TfrViewDetallesPedidoProveedor.OnValidateReferenciaProveedor(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
var
lsReferencia : String;
begin
//En el caso de cadena vacia no validamos
if (VarIsNull(DisplayValue)) then
Exit;
lsReferencia := VarToStr(DisplayValue);
if (length(trim(lsReferencia)) = 0) then
Exit;
if not AnadirArticulo(lsReferencia, tRefProveedorParaCompras) then
begin
ErrorText := 'La referencia introducida no exite en el cat<61>logo del proveedor';
Error := True;
end;
end;
function TfrViewDetallesPedidoProveedor.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean;
begin
Result := (Controller as IDetallesPedidoProveedorController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Pedido.ID_PROVEEDOR);
end;
function TfrViewDetallesPedidoProveedor.GetPedido: IBizPedidoProveedor;
begin
Result := FPedido;
end;
procedure TfrViewDetallesPedidoProveedor.RellenarArticulosInterno;
begin
//No s<> porque est<73> en este m<>dulo hecho as<61>, supongo que por seguridad.
if Assigned(Pedido) and Assigned(Pedido.Proveedor)
then (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, Pedido.Proveedor, False)
else (Controller as IDetallesPedidoProveedorController).AnadirArticulos(Detalles, False);
end;
procedure TfrViewDetallesPedidoProveedor.SetPedido(const Value: IBizPedidoProveedor);
begin
FPedido := Value;
end;
end.