This repository has been archived on 2024-11-28. You can view files and clone it, but cannot push or open issues or pull requests.
Noviseda_FactuGES2/Source/Modulos/Presupuestos de cliente/Views/uViewDetallesPresupuestoCliente.pas
2009-12-16 17:16:54 +00:00

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.