unit uViewDetallesPresupuestoCliente; 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, uBizPresupuestosCliente, uDAInterfaces, Buttons, Mask, DBCtrls, cxButtonEdit, cxDropDownEdit, Menus, cxGridCustomPopupMenu, cxGridPopupMenu, cxDBLookupComboBox, cxCalc, cxEditRepositoryItems, uViewDetallesArticulosParaVenta; type IViewDetallesPresupuestoCliente = interface(IViewDetallesArticulos) ['{3AF39FF4-291E-4E87-AF9A-93C240A744CD}'] function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; end; TfrViewDetallesPresupuestoCliente = class(TfrViewDetallesArticulosParaVenta, IViewDetallesPresupuestoCliente) actAsignarDescuento: TAction; TBXItem18: TTBXItem; TBXSeparatorItem9: TTBXSeparatorItem; procedure actAsignarDescuentoExecute(Sender: TObject); procedure actAsignarDescuentoUpdate(Sender: TObject); protected FPresupuesto: IBizPresupuestoCliente; function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); procedure AnadirArticulosInterno; override; procedure RellenarArticulosInterno; override; function AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; override; public property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; end; implementation {$R *.dfm} uses uControllerDetallesBase, uDetallesPresupuestoClienteController; { TfrViewDetallesPresupuestoProveedor } procedure TfrViewDetallesPresupuestoCliente.actAsignarDescuentoExecute(Sender: TObject); var AuxTop, AuxRow:Integer; ADescuento: Variant; begin ADescuento := (Controller as IDetallesPresupuestoClienteController).PedirDescuento; ShowHourglassCursor; _FocusedView.BeginUpdate; try if Assigned(Controller) and Assigned(FPresupuesto.Detalles) then begin AuxTop := cxGridView.Controller.TopRowIndex; AuxRow := cxGridView.DataController.FocusedRowIndex; (Controller as IDetallesPresupuestoClienteController).AsignarDescuento(FPresupuesto.Detalles, darListaSeleccionados, ADescuento); _FocusedView.DataController.SelectRows(AuxRow,AuxRow); _FocusedView.Controller.TopRowIndex := AuxTop; end finally _FocusedView.EndUpdate; HideHourglassCursor; end; end; procedure TfrViewDetallesPresupuestoCliente.actAsignarDescuentoUpdate(Sender: TObject); begin inherited; if not DADataSource.DataTable.IsEmpty then (Sender as TAction).Enabled := not (DADataSource.DataTable.State in dsEditModes) and (_FocusedView.DataController.GetSelectedCount > 0) and (FPresupuesto.Detalles.TIPO_DETALLE = TIPO_DETALLE_CONCEPTO) else (Sender as TAction).Enabled := False; end; function TfrViewDetallesPresupuestoCliente.AnadirArticulo(pReferencia: String; TipoReferencia: TEnumReferencia): Boolean; begin Result := (Controller as IDetallesPresupuestoClienteController).AnadirArticulo(Detalles, pReferencia, TipoReferencia, Presupuesto.Cliente.ID); end; procedure TfrViewDetallesPresupuestoCliente.AnadirArticulosInterno; begin (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente); end; function TfrViewDetallesPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; begin Result := FPresupuesto; end; procedure TfrViewDetallesPresupuestoCliente.RellenarArticulosInterno; begin (Controller as IDetallesPresupuestoClienteController).AnadirArticulos(Detalles, Presupuesto.Cliente, False); end; procedure TfrViewDetallesPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); begin FPresupuesto := Value; end; end.