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

268 lines
9.9 KiB
ObjectPascal
Raw Normal View 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, cxButtonEdit, uViewDatosYSeleccionClientePresupuesto, uBizContactos,
uVendedoresController, uViewTienda, uViewDatosYSeleccionComercial, uPresupuestosClienteController;
type
IViewPresupuestoCliente = interface(IViewBase)
['{A970B43E-E542-40F5-B265-41B7EFA613F9}']
function GetPresupuesto: IBizPresupuestoCliente;
procedure SetPresupuesto(const Value: IBizPresupuestoCliente);
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
function GetController : IPresupuestosClienteController;
procedure SetController (const Value : IPresupuestosClienteController);
function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto;
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;
ActionList1: TActionList;
dxLayoutControl1Item4: TdxLayoutItem;
cbFormaPago: TcxDBLookupComboBox;
dxLayoutControl1Item5: TdxLayoutItem;
bFormasPago: TButton;
dsFormaPago: TDADataSource;
dxLayoutControl1Item7: TdxLayoutItem;
edtFechaDecision: TcxDBDateEdit;
dxLayoutControl1Item15: TdxLayoutItem;
edtFechaVigencia: TcxDBDateEdit;
cbSituacion: TcxDBImageComboBox;
dxLayoutControl1Item10: TdxLayoutItem;
dxLayoutControl1Group8: TdxLayoutGroup;
frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item8: TdxLayoutItem;
memFormaPago: TcxDBMemo;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item9: TdxLayoutItem;
memPlazoEntrega: TcxDBMemo;
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group6: TdxLayoutGroup;
dxLayoutControl1Item11: TdxLayoutItem;
dxLayoutControl1Group9: TdxLayoutGroup;
cbVendedor: TcxDBLookupComboBox;
dsVendedor: TDADataSource;
dxLayoutControl1Group10: TdxLayoutGroup;
dxLayoutControl1Item12: TdxLayoutItem;
cbTipoPresupuesto: TcxDBComboBox;
dxLayoutControl1Group11: TdxLayoutGroup;
dxLayoutControl1Item13: TdxLayoutItem;
edtlReferenciaCliente: TcxDBTextEdit;
dxLayoutControl1Item14: TdxLayoutItem;
frViewTienda1: TfrViewTienda;
dxLayoutControl1Item16: TdxLayoutItem;
frViewDatosYSeleccionComercial1: TfrViewDatosYSeleccionComercial;
dxLayoutControl1Group5: TdxLayoutGroup;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
procedure frViewClientePresupuestoButton1Click(Sender: TObject);
procedure frViewClientePresupuestoButton2Click(Sender: TObject);
procedure cbFormaPagoPropertiesValidate(Sender: TObject;
var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean);
protected
FPresupuesto : IBizPresupuestoCliente;
FController : IPresupuestosClienteController;
FFormasPago : IBizFormaPago;
FVendedor : IBizVendedor;
FFormasPagoController : IFormasPagoController;
FVendedoresController : IVendedoresController;
FViewClientePresupuesto : IViewDatosYSeleccionClientePresupuesto;
function GetController : IPresupuestosClienteController;
procedure SetController (const Value : IPresupuestosClienteController);
function GetPresupuesto: IBizPresupuestoCliente;
procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual;
function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
procedure OnComercialChanged(Sender : TObject);
public
property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto;
property Controller : IPresupuestosClienteController read GetController write SetController;
property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto;
end;
implementation
{$R *.dfm}
{ TfrViewPresupuestoCliente }
uses
schPresupuestosClienteClient_Intf, uClientesController, uBizDireccionesContacto,
uTypesConstConfiguration, uFactuGES_App;
procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject);
begin
inherited;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewPresupuestoCliente.cbFormaPagoPropertiesValidate(
Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption;
var Error: Boolean);
begin
inherited;
Presupuesto.DataTable.FieldByName(fld_PresupuestosClienteFORMA_PAGO).AsString := FFormasPago.DESCRIPCION;
end;
procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject);
begin
inherited;
FFormasPago := Nil;
FVendedor := Nil;
FFormasPagoController := TFormasPagoController.Create;
FVendedoresController := TVendedoresController.Create;
FViewClientePresupuesto := frViewDatosYSeleccionClientePresupuesto1;
cbTipoPresupuesto.Properties.Items.Clear;
cbTipoPresupuesto.Properties.Items.Add(CTE_COCINA);
cbTipoPresupuesto.Properties.Items.Add(CTE_ARMARIO);
cbTipoPresupuesto.Properties.Items.Add(CTE_BANO);
cbTipoPresupuesto.Properties.Items.Add(CTE_ELECTRODOMESTICO);
cbTipoPresupuesto.Properties.Items.Add(CTE_VARIOS);
//FILTRO DE EMPRESAS
if (AppFactuGES.EmpresaActiva.ID = CTE_EMPRESA_ABETO) then
begin
frViewTienda1.Visible := false;
frViewTienda1.dxLayoutControl1.Visible :=false;
dxLayoutControl1Group5.Visible := true;
end
else
begin
frViewTienda1.Visible := true;
frViewTienda1.dxLayoutControl1.Visible :=true;
dxLayoutControl1Group5.Visible := false;
end;
end;
procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject);
begin
frViewDatosYSeleccionComercial1.OnComercialChanged := Nil;
FFormasPago := Nil;
FFormasPagoController := NIL;
FVendedor := Nil;
FVendedoresController := 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;
frViewDatosYSeleccionClientePresupuesto1.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;
frViewDatosYSeleccionClientePresupuesto1.actAnadirContacto.Execute;
end;
function TfrViewPresupuestoCliente.GetController: IPresupuestosClienteController;
begin
Result := FController;
end;
function TfrViewPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente;
begin
Result := FPresupuesto;
end;
function TfrViewPresupuestoCliente.GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto;
begin
Result := FViewClientePresupuesto;
end;
procedure TfrViewPresupuestoCliente.OnComercialChanged(Sender: TObject);
begin
if Assigned(FPresupuesto) then
begin
FController.CambiarComercial(FPresupuesto, frViewDatosYSeleccionComercial1.Comercial);
end;
end;
procedure TfrViewPresupuestoCliente.SetController(const Value: IPresupuestosClienteController);
begin
FController := Value;
end;
procedure TfrViewPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente);
begin
FPresupuesto := Value;
if Assigned(FPresupuesto) then
begin
DADataSource.DataTable := FPresupuesto.DataTable;
frViewTienda1.DataItem := FPresupuesto.DataTable;
FFormasPago := FFormasPagoController.BuscarTodos;
dsFormaPago.DataTable := FFormasPago.DataTable;
dsFormaPago.DataTable.Active := True;
FVendedor := (FVendedoresController.BuscarTodos as IBizVendedor);
dsVendedor.DataTable := FVendedor.DataTable;
dsVendedor.DataTable.Active := True;
FViewClientePresupuesto.Presupuesto := FPresupuesto;
frViewDatosYSeleccionComercial1.ID_Comercial := FPresupuesto.ID_AGENTE;
frViewDatosYSeleccionComercial1.OnComercialChanged := OnComercialChanged;
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
dsVendedor.DataTable := NIL;
FViewClientePresupuesto.Presupuesto := Nil;
end;
end;
end.