FactuGES2/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas

253 lines
9.4 KiB
ObjectPascal
Raw Blame History

unit uViewContratoCliente;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, uViewBase, uBizContratosCliente, DB, uDADataTable, uCustomView,
AppEvnts, StdCtrls, Mask, DBCtrls,
uViewObservaciones, uViewDatosYSeleccionCliente,
cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit,
cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo,
uViewDireccionEntregaContratoCliente, Buttons, ActnList, cxLookupEdit,
cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces,
uBizFormasPago, cxButtonEdit, uBizContactos, uContratosClienteController,
uVendedoresController, uViewClienteContrato, uViewTienda,
uViewDatosYSeleccionInstalador;
type
IViewContratoCliente = interface(IViewBase)
['{3DE0231D-760E-437B-88E5-144B88024797}']
function GetController : IContratosClienteController;
procedure SetController (const Value : IContratosClienteController);
property Controller : IContratosClienteController read GetController write SetController;
function GetContrato: IBizContratoCliente;
procedure SetContrato(const Value: IBizContratoCliente);
property Contrato: IBizContratoCliente read GetContrato write SetContrato;
end;
TfrViewContratoCliente = class(TfrViewBase, IViewContratoCliente)
DADataSource: TDADataSource;
dxLayoutControl1Group_Root: TdxLayoutGroup;
dxLayoutControl1: TdxLayoutControl;
dxLayoutControl1Item2: TdxLayoutItem;
edtFechaContrato: 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;
dxLayoutControl1Group5: TdxLayoutGroup;
dsFormaPago: TDADataSource;
cbSituacion: TcxDBImageComboBox;
dxLayoutControl1Item10: TdxLayoutItem;
dxLayoutControl1Group8: TdxLayoutGroup;
dxLayoutControl1Item1: TdxLayoutItem;
dxLayoutControl1Item8: TdxLayoutItem;
memFormaPago: TcxDBMemo;
dxLayoutControl1Group3: TdxLayoutGroup;
dxLayoutControl1Item9: TdxLayoutItem;
memPlazoEntrega: TcxDBMemo;
dxLayoutControl1Group4: TdxLayoutGroup;
dxLayoutControl1Group6: TdxLayoutGroup;
dxLayoutControl1Item11: TdxLayoutItem;
dxLayoutControl1Group9: TdxLayoutGroup;
cbVendedor: TcxDBLookupComboBox;
dsVendedor: TDADataSource;
dxLayoutControl1Item7: TdxLayoutItem;
cbTipoContrato: TcxDBComboBox;
dxLayoutControl1Group11: TdxLayoutGroup;
dxLayoutControl1Item12: TdxLayoutItem;
edtlREF_CLIENTE: TcxDBTextEdit;
frViewClienteContrato1: TfrViewClienteContrato;
dxLayoutControl1Item13: TdxLayoutItem;
frViewTienda1: TfrViewTienda;
dxLayoutControl1Group10: TdxLayoutGroup;
dxLayoutControl1Item14: TdxLayoutItem;
edtFechaUltRevision: TcxDBDateEdit;
dxLayoutControl1Item15: TdxLayoutItem;
frViewDatosYSeleccionInstalador1: TfrViewDatosYSeleccionInstalador;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);
procedure bFormasPagoClick(Sender: TObject);
procedure frViewClienteContratoButton1Click(Sender: TObject);
procedure frViewClienteContratoButton2Click(Sender: TObject);
protected
FContrato : IBizContratoCliente;
FFormasPago : IBizFormaPago;
FVendedor : IBizVendedor;
FFormasPagoController : IFormasPagoController;
FVendedoresController : IVendedoresController;
FController : IContratosClienteController;
function GetContrato: IBizContratoCliente;
procedure SetContrato(const Value: IBizContratoCliente); virtual;
function GetController : IContratosClienteController;
procedure SetController (const Value : IContratosClienteController);
procedure OnInstaladorChanged(Sender : TObject);
public
property Controller : IContratosClienteController read GetController write SetController;
property Contrato: IBizContratoCliente read GetContrato write SetContrato;
end;
implementation
{$R *.dfm}
{ TfrViewContratoCliente }
uses
uFactuGES_App, uClientesController, uBizDireccionesContacto, uPresupuestosClienteController;
procedure TfrViewContratoCliente.bFormasPagoClick(Sender: TObject);
begin
inherited;
if Assigned(FFormasPago) then
FFormasPagoController.VerTodos(FFormasPago);
end;
procedure TfrViewContratoCliente.CustomViewCreate(Sender: TObject);
begin
inherited;
FFormasPago := Nil;
FVendedor := Nil;
FFormasPagoController := TFormasPagoController.Create;
FVendedoresController := TVendedoresController.Create;
cbTipoContrato.Properties.Items.Clear;
cbTipoContrato.Properties.Items.Add(CTE_COCINA);
cbTipoContrato.Properties.Items.Add(CTE_BANO);
cbTipoContrato.Properties.Items.Add(CTE_ARMARIO);
cbTipoContrato.Properties.Items.Add(CTE_SALON);
cbTipoContrato.Properties.Items.Add(CTE_DORMITORIO);
cbTipoContrato.Properties.Items.Add(CTE_JARDIN);
cbTipoContrato.Properties.Items.Add(CTE_ELECTRODOMESTICO);
cbTipoContrato.Properties.Items.Add(CTE_OBRA);
cbTipoContrato.Properties.Items.Add(CTE_VARIOS);
cbTipoContrato.Properties.Items.Add(CTE_MAMPARAS);
cbTipoContrato.Properties.Items.Add(CTE_PUERTAS);
cbTipoContrato.Properties.Items.Add(CTE_CERAMICA);
cbTipoContrato.Properties.Items.Add(CTE_TARIMAS);
cbTipoContrato.Properties.Items.Add(CTE_PAPEL);
cbTipoContrato.Properties.Items.Add(CTE_VENTANAS);
cbTipoContrato.Properties.Items.Add(CTE_CERRAJERIA);
cbTipoContrato.Properties.Items.Add(CTE_VARIOSEXT);
//Victor nos solicita que quitemos el cambio de fecha porque van a empezar a dar las comisiones cuando se acepta un contrato
//El usuario administrador y gerencia ver<65>n todo
if ((AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PERFIL_ADMINISTRADOR)
OR (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA_COMUN)
OR (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA_ACANA)
OR (AppFactuGES.UsuarioActivo.ID_PERFIL = CTE_PREFIL_GERENCIA_CRISTINA)
) then
dxLayoutControl1Item2.Enabled := True
//todos los dem<65>s ser<65>n restringidos
else
dxLayoutControl1Item2.Enabled := False;
end;
procedure TfrViewContratoCliente.CustomViewDestroy(Sender: TObject);
begin
frViewDatosYSeleccionInstalador1.OnInstaladorChanged := Nil;
FFormasPago := Nil;
FFormasPagoController := NIL;
FVendedor := Nil;
FVendedoresController := NIL;
inherited;
end;
procedure TfrViewContratoCliente.frViewClienteContratoButton1Click(Sender: TObject);
begin
if Assigned(Contrato) and Assigned(Contrato.Cliente) and
Assigned (Contrato.Detalles) and (Contrato.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Los descuentos de los art<72>culos del Contrato ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewClienteContrato1.actElegirContacto.Execute;
end;
procedure TfrViewContratoCliente.frViewClienteContratoButton2Click(Sender: TObject);
begin
if Assigned(Contrato) and Assigned(Contrato.Cliente) and
Assigned (Contrato.Detalles) and (Contrato.Detalles.RecordCount > 0) then
begin
if (Application.MessageBox('Los descuentos de los art<72>culos del Contrato ser<65>n actualizados con los del nuevo cliente seleccionado, <20>Desea continuar?', 'Atenci<63>n', MB_YESNO) = IDNO) then
Exit;
end;
frViewClienteContrato1.actAnadirContacto.Execute;
end;
function TfrViewContratoCliente.GetContrato: IBizContratoCliente;
begin
Result := FContrato;
end;
function TfrViewContratoCliente.GetController: IContratosClienteController;
begin
Result := FController;
end;
procedure TfrViewContratoCliente.OnInstaladorChanged(Sender: TObject);
begin
if Assigned(FContrato) then
begin
FController.CambiarInstalador(FContrato, frViewDatosYSeleccionInstalador1.Instalador);
end;
end;
procedure TfrViewContratoCliente.SetContrato(const Value: IBizContratoCliente);
begin
FContrato := Value;
if Assigned(FContrato) then
begin
DADataSource.DataTable := FContrato.DataTable;
frViewTienda1.DataItem := FContrato.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;
frViewDatosYSeleccionInstalador1.ID_Instalador := FContrato.ID_INSTALADOR;
frViewDatosYSeleccionInstalador1.OnInstaladorChanged := OnInstaladorChanged;
frViewClienteContrato1.MsgElegirCliente := 'Elija el cliente al que se le realizar<61> el contrato.';
end
else begin
DADataSource.DataTable := NIL;
dsFormaPago.DataTable := NIL;
dsVendedor.DataTable := NIL;
frViewClienteContrato1.Cliente := Nil;
end;
end;
procedure TfrViewContratoCliente.SetController(
const Value: IContratosClienteController);
begin
FController := Value;
if Assigned(FController) then
frViewClienteContrato1.Controller := FController.ClienteController;
end;
end.