unit uViewDetallesAlbaranCliente; 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, cxImageComboBox, cxTextEdit, cxMaskEdit, cxCheckBox, cxCurrencyEdit, Grids, DBGrids, StdCtrls, ExtCtrls, cxRichEdit, ExtActns, StdActns, JvExStdCtrls, JvCombobox, JvColorCombo, TB2Item, SpTBXItem, TB2Dock, TB2Toolbar, uControllerDetallesArticulos, uBizAlbaranesCliente, cxDropDownEdit, cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uDAInterfaces, cxButtonEdit, uViewDetallesArticulos, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, uViewDetallesArticulosParaVenta, cxEditRepositoryItems, cxLookAndFeels, cxLookAndFeelPainters; type IViewDetallesAlbaranCliente = interface(IViewDetallesArticulos) ['{9326E1A0-BD5E-4BE1-BB3B-6A52C3394118}'] function GetAlbaran: IBizAlbaranCliente; procedure SetAlbaran(const Value: IBizAlbaranCliente); property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; end; TfrViewDetallesAlbaranCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesAlbaranCliente) N2: TMenuItem; Aadirartculos1: TMenuItem; TBXItem18: TSpTBXItem; cxGridViewCANTIDAD2: TcxGridDBColumn; cxGridViewIR_ARTICULO_REEMPLAZADO: TcxGridDBColumn; cxGridViewREFERENCIA_ART_REEMPLAZADO: TcxGridDBColumn; procedure cxGridViewCANTIDAD2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure cxGridViewREFERENCIA_ART_REEMPLAZADOPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure OnValidateReferencia_ART_REEMPLAZADO(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); protected FAlbaran: IBizAlbaranCliente; function GetAlbaran: IBizAlbaranCliente; procedure SetAlbaran(const Value: IBizAlbaranCliente); procedure AnadirArticulosInterno; override; procedure RellenarArticulosInterno; override; function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; public property Albaran: IBizAlbaranCliente read GetAlbaran write SetAlbaran; end; implementation {$R *.dfm} uses uDetallesAlbaranClienteController, uViewDetallesBase, uDialogUtils; { TfrViewDetallesAlbaranProveedor } function TfrViewDetallesAlbaranCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; begin if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, -1) else Result := (Controller as IDetallesAlbaranClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Albaran.Cliente.ID, 0); end; procedure TfrViewDetallesAlbaranCliente.AnadirArticulosInterno; begin if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, -1) else (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, true, 0); end; procedure TfrViewDetallesAlbaranCliente.CustomViewCreate(Sender: TObject); begin inherited; cxGridViewREFERENCIA_ART_REEMPLAZADO.Properties.OnValidate := OnValidateReferencia_ART_REEMPLAZADO; end; procedure TfrViewDetallesAlbaranCliente.CustomViewDestroy(Sender: TObject); begin cxGridViewREFERENCIA_ART_REEMPLAZADO.Properties.OnValidate := Nil; inherited; end; procedure TfrViewDetallesAlbaranCliente.cxGridViewCANTIDAD2PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin inherited; (Controller as IDetallesAlbaranClienteController).ModificarCantidadColores(Detalles); end; procedure TfrViewDetallesAlbaranCliente.cxGridViewREFERENCIA_ART_REEMPLAZADOPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin inherited; // end; function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente; begin Result := FAlbaran; end; procedure TfrViewDetallesAlbaranCliente.OnValidateReferencia_ART_REEMPLAZADO(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, tClienteReemplazo) then begin ErrorText := 'La referencia introducida no exite en el catálogo'; Error := True; end; end; procedure TfrViewDetallesAlbaranCliente.RellenarArticulosInterno; begin if (Albaran.TIPO = CTE_TIPO_ALBARAN_DEV) then (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, -1) else (Controller as IDetallesAlbaranClienteController).AnadirArticulos(Detalles, Albaran.Cliente, False, 0); end; procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); begin FAlbaran := Value; end; end.