git-svn-id: https://192.168.0.254/svn/Proyectos.Noviseda_FactuGES2/trunk@4 f33bb606-9f5c-448d-9c99-757f00063c96
120 lines
4.4 KiB
ObjectPascal
120 lines
4.4 KiB
ObjectPascal
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.
|