FactuGES2/Source/Modulos/Presupuestos de cliente/Views/uViewPresupuestoCliente.pas

256 lines
8.9 KiB
ObjectPascal
Raw Blame History

unit uViewPresupuestoCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizPresupuestosCliente, DB, uDADataTable, uCustomView,
AppEvnts, StdCtrls, Mask, DBCtrls,
uViewObservaciones, uViewDatosYSeleccionCliente,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaPresupuestoCliente, Buttons, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces,
uBizFormasPago, uViewTienda, uPresupuestosClienteController, uVendedoresController;
type
IViewPresupuestoCliente = interface(IViewBase)
['{C5385699-C1A4-4AEB-B3D0-EE3BDB322FE2}']
function GetController : IPresupuestosClienteController;
procedure SetController (const Value : IPresupuestosClienteController);
property Controller : IPresupuestosClienteController read GetController write SetController;
function GetPresupuesto: IBizPresupuestoCliente;
procedure SetPresupuesto(const Value: IBizPresupuestoCliente);
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
function GetViewClientePresupuesto: TfrViewDatosYSeleccionCliente;
procedure SetViewClientePresupuesto(const Value: TfrViewDatosYSeleccionCliente);
property ViewClientePresupuesto: TfrViewDatosYSeleccionCliente read GetViewClientePresupuesto write SetViewClientePresupuesto;
end;
TfrViewPresupuestoCliente = class(TfrViewBase, IViewPresupuestoCliente)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaPresupuesto: TcxDBDateEdit;
dxLayoutControl1Group1: TdxLayoutGroup;
dxLayoutControl1Group2: TdxLayoutGroup;
dxLayoutControl1Item6: TdxLayoutItem;
memObservaciones: TcxDBMemo;
dxLayoutControl1Item3: TdxLayoutItem;
eReferencia: TcxDBTextEdit;
dxLayoutControl1Group7: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
frViewClientePresupuesto: TfrViewDatosYSeleccionCliente;
ActionList1: TActionList;
actElegirDireccion: TAction;
dxLayoutControl1Item4: TdxLayoutItem;
cbFormaPago: TcxDBLookupComboBox;
dxLayoutControl1Item5: TdxLayoutItem;
bFormasPago: TButton;
dxLayoutControl1Group5: TdxLayoutGroup;
dsFormaPago: TDADataSource;
dxLayoutControl1Group10: TdxLayoutGroup;
dxLayoutControl1Item7: TdxLayoutItem;
edtFechaDecision: TcxDBDateEdit;
dxLayoutControl1Item15: TdxLayoutItem;
eRefCliente: TcxDBTextEdit;
dxLayoutControl1Item8: TdxLayoutItem;
edtClienteFinal: TcxDBTextEdit;
cbSituacion: TcxDBImageComboBox;
dxLayoutControl1Item10: TdxLayoutItem;
dxLayoutControl1Item9: TdxLayoutItem;
frViewTienda1: TfrViewTienda;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Group4: TdxLayoutGroup;
cbVendedor: TcxDBComboBox;
dxLayoutControl1Item11: TdxLayoutItem;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
procedure frViewClientePresupuestoButton1Click(Sender: TObject);
procedure frViewClientePresupuestoButton2Click(Sender: TObject);
procedure cbVendedorPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
FPresupuesto : IBizPresupuestoCliente;
FController : IPresupuestosClienteController;
FFormasPago : IBizFormaPago;
FFormasPagoController : IFormasPagoController;
FListaVendedores : TStringList;
FViewClientePresupuesto : TfrViewDatosYSeleccionCliente;
function GetPresupuesto: IBizPresupuestoCliente;
procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual;
function GetController : IPresupuestosClienteController;
procedure SetController (const Value : IPresupuestosClienteController);
function GetViewClientePresupuesto: TfrViewDatosYSeleccionCliente;
procedure SetViewClientePresupuesto(const Value: TfrViewDatosYSeleccionCliente);
public
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
property Controller : IPresupuestosClienteController read GetController write SetController;
property ViewClientePresupuesto: TfrViewDatosYSeleccionCliente read GetViewClientePresupuesto;
end;
implementation
{$R *.dfm}
{ TfrViewPresupuestoCliente }
uses
uClientesController, uBizContactos, uBizDireccionesContacto, uFactuGES_App;
procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject);
begin
inherited;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewPresupuestoCliente.cbVendedorPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
var
AIndex : integer;
begin
inherited;
if Assigned(FPresupuesto) and FPresupuesto.Active then
begin
AIndex := StrToInt(FListaVendedores.Values[DisplayValue]);
FPresupuesto.Edit;
FPresupuesto.ID_VENDEDOR := AIndex;
end;
end;
procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject);
var
i : integer;
begin
inherited;
FListaVendedores := NIL;
FFormasPago := NIL;
FFormasPagoController := TFormasPagoController.Create;
FViewClientePresupuesto := frViewClientePresupuesto;
FViewClientePresupuesto.MsgElegirCliente := 'Elija el cliente al que se le realizar<61> el presupuesto.';
with TVendedoresController.Create do
begin
try
FListaVendedores := DarListaVendedores;
with cbVendedor.Properties.Items do
begin
BeginUpdate;
try
Clear;
for i := 0 to FListaVendedores.Count - 1 do
Add(FListaVendedores.Names[i]);
finally
EndUpdate;
end;
end;
finally
Free;
end;
end;
end;
procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject);
begin
FreeAndNIL(FListaVendedores);
FFormasPago := Nil;
FFormasPagoController := NIL;
FViewClientePresupuesto := NIL;
inherited;
end;
procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton1Click(Sender: TObject);
begin
if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and
Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Los descuentos de los art<72>culos del presupuesto ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewClientePresupuesto.actElegirContacto.Execute;
end;
procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton2Click(Sender: TObject);
begin
if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and
Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Los descuentos de los art<72>culos del presupuesto ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewClientePresupuesto.actAnadirContacto.Execute;
end;
function TfrViewPresupuestoCliente.GetController: IPresupuestosClienteController;
begin
Result := FController;
end;
function TfrViewPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente;
begin
Result := FPresupuesto;
end;
function TfrViewPresupuestoCliente.GetViewClientePresupuesto: TfrViewDatosYSeleccionCliente;
begin
Result := FViewClientePresupuesto;
end;
procedure TfrViewPresupuestoCliente.SetController(const Value: IPresupuestosClienteController);
begin
FController := Value;
end;
procedure TfrViewPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente);
var
i : integer;
begin
FPresupuesto := Value;
if Assigned(FPresupuesto) then
begin
DADataSource.DataTable := FPresupuesto.DataTable;
cbVendedor.Text := '';
for i := 0 to FListaVendedores.Count-1 do
begin
if FListaVendedores.ValueFromIndex[i] = IntToStr(FPresupuesto.ID_VENDEDOR) then
begin
cbVendedor.Text := FListaVendedores.Names[i];
Break;
end;
end;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
frViewClientePresupuesto.Cliente := FPresupuesto.Cliente;
frViewTienda1.DataItem := FPresupuesto.DataTable;
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
frViewClientePresupuesto.Cliente := nil;
end;
end;
procedure TfrViewPresupuestoCliente.SetViewClientePresupuesto(const Value: TfrViewDatosYSeleccionCliente);
begin
FViewClientePresupuesto := Value;
end;
end.