unit uViewDetallesAlbaranCliente; 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, uControllerDetallesArticulos, uBizAlbaranesCliente, cxDropDownEdit, cxCalendar, cxDBEdit, dxLayoutControl, cxContainer, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uDAInterfaces, cxMemo; 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(TfrViewDetallesArticulos, IViewDetallesAlbaranCliente) cxRichEdit1: TcxRichEdit; BAnadirCapitulo: TTBXSubmenuItem; TBXItem14: TTBXItem; actCapituloVarios: TAction; procedure cxGridViewDESCRIPCIONGetPropertiesForEdit( Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AProperties: TcxCustomEditProperties); procedure actCapituloVariosExecute(Sender: TObject); private procedure AnadirCapitulo(const Tipo: String;const Descripcion: String; const Descuento:Boolean = false); 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; { TfrViewDetallesAlbaranProveedor } procedure TfrViewDetallesAlbaranCliente.actCapituloVariosExecute( Sender: TObject); begin inherited; // AnadirCapitulo(TIPO_CAPITULO_V, 'VARIOS '); end; 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); 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); end; procedure TfrViewDetallesAlbaranCliente.AnadirCapitulo(const Tipo, Descripcion: String; const Descuento: Boolean); var bEsMultiSelect : Boolean; begin { // Debo quitar el multiselect porque provoca que se quede seleccionado // el registro actual y no el nuevo registro que voy a aņadir bEsMultiSelect := _FocusedView.OptionsSelection.MultiSelect; if bEsMultiSelect then _FocusedView.OptionsSelection.MultiSelect := False; ShowHourglassCursor; _FocusedView.BeginUpdate; try if _FocusedView.Controller.EditingController.IsEditing then _FocusedView.Controller.EditingController.Edit.PostEditValue; if Assigned(Controller) and Assigned(Detalles) then (Controller as IDetallesContratoClienteController).AnadirCapitulo(Tipo, Descripcion, Descuento, Detalles) finally _FocusedView.EndUpdate; HideHourglassCursor; // Dejo la propiedad MultiSelect como estaba if bEsMultiSelect then _FocusedView.OptionsSelection.MultiSelect := bEsMultiSelect; end; } end; procedure TfrViewDetallesAlbaranCliente.cxGridViewDESCRIPCIONGetPropertiesForEdit( Sender: TcxCustomGridTableItem; ARecord: TcxCustomGridRecord; var AProperties: TcxCustomEditProperties); begin inherited; AProperties := cxRichEdit1.Properties; end; function TfrViewDetallesAlbaranCliente.GetAlbaran: IBizAlbaranCliente; begin Result := FAlbaran; 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); end; procedure TfrViewDetallesAlbaranCliente.SetAlbaran(const Value: IBizAlbaranCliente); begin FAlbaran := Value; end; end.