Ticket #487 -> Poder indicar el tipo de contrato al dar de alta uno nuevo

git-svn-id: https://192.168.0.254/svn/Proyectos.Acana_FactuGES2/trunk@541 f4e31baf-9722-1c47-927c-6f952f962d4b
This commit is contained in:
David Arranz 2010-10-13 15:21:16 +00:00
parent 19dd1b4e86
commit 3e80c298f6
5 changed files with 135 additions and 8 deletions

View File

@ -11,6 +11,8 @@ uses
uIntegerListUtils;
type
TEnumTiposContrato = (teCocina, teArmario, teBano, teElectrodomestico, teVarios);
IContratosClienteController = interface(IControllerBase)
['{D6544299-A233-4FF0-BDA4-328DA06DCFD8}']
function GetClienteController: IClientesController;
@ -36,7 +38,7 @@ type
const AVerModal : Boolean = False; const AWindowCaption: String = '';
const AHeaderText: String = '');
function Nuevo : IBizContratoCliente;
function Anadir(AContrato : IBizContratoCliente) : Boolean;
function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean;
function Eliminar(const ID : Integer): Boolean; overload;
function Eliminar(AContrato : IBizContratoCliente; AllItems: Boolean = false): Boolean; overload;
function Guardar(AContrato : IBizContratoCliente): Boolean;
@ -88,6 +90,7 @@ type
procedure FiltrarEmpresa(AContrato: IBizContratoCliente);
function _Vacio : IBizContratoCliente;
function ValidarContrato(AContrato: IBizContratoCliente): Boolean;
procedure RellenarValoresDefecto(AContrato: IBizContratoCliente; ATipo: TEnumTiposContrato);
public
property ClienteController: IClientesController read GetClienteController write SetClienteController;
property DetallesController: IDetallesContratoClienteController read GetDetallesController write SetDetallesController;
@ -104,7 +107,7 @@ type
function Guardar(AContrato : IBizContratoCliente): Boolean;
procedure DescartarCambios(AContrato : IBizContratoCliente); virtual;
function Existe(const ID: Integer) : Boolean; virtual;
function Anadir(AContrato : IBizContratoCliente) : Boolean;
function Anadir(AContrato : IBizContratoCliente; const ATipo: TEnumTiposContrato = teVarios) : Boolean;
function Buscar(const ListaID: TIntegerList): IBizContratoCliente; overload;
function Buscar(const ID: Integer): IBizContratoCliente; overload;
function BuscarTodos: IBizContratoCliente; overload;
@ -143,15 +146,18 @@ uses
uIEditorElegirContratosCliente, uIEditorDireccionEntregaContratoCliente,
schContactosClient_Intf, uContratosClienteReportController,
uSistemaFunc, uEMailUtils, uDialogElegirEMail, Dialogs, uStringsUtils,
uIEditorContratosClienteBeneficios;
uIEditorContratosClienteBeneficios, uPresupuestosClienteController,
uConfiguracionController, uBizDetallesPresupuestoCliente;
{ TContratosClienteController }
function TContratosClienteController.Anadir(AContrato: IBizContratoCliente): Boolean;
function TContratosClienteController.Anadir(AContrato : IBizContratoCliente;
const ATipo: TEnumTiposContrato = teVarios) : Boolean;
begin
if not Assigned(AContrato) then
raise Exception.Create ('Contrato no asignado (Anadir)');
AContrato.Insert;
RellenarValoresDefecto(AContrato, ATipo);
Result := True;
end;
@ -725,6 +731,57 @@ begin
RecuperarCliente(AContrato);
end;
procedure TContratosClienteController.RellenarValoresDefecto(
AContrato: IBizContratoCliente; ATipo: TEnumTiposContrato);
begin
case ATipo of
teCocina:
begin
AContrato.TIPO_CONTRATO := CTE_COCINA;
AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_COCINA));
AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_COCINA));
AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_COCINA));
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_C_VACIO, 'MUEBLES DE COCINA ', False, AContrato.Detalles);
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, AContrato.Detalles);
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'AUMENTO POR ', False, AContrato.Detalles);
end;
teArmario:
begin
AContrato.TIPO_CONTRATO := CTE_ARMARIO;
AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_ARMARIO));
AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_ARMARIO));
AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_ARMARIO));
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_AF, 'FRENTE DE ARMARIO Nº ', False, AContrato.Detalles);
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_AI, 'INTERIOR DE ARMARIO Nº ', False, AContrato.Detalles);
end;
teBano:
begin
AContrato.TIPO_CONTRATO := CTE_BANO;
AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_BANO));
AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_BANO));
AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_BANO));
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_B, 'MUEBLE DE BAÑO Nº ', False, AContrato.Detalles);
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'IMPORTES ', True, AContrato.Detalles);
end;
teElectrodomestico:
begin
AContrato.TIPO_CONTRATO := CTE_ELECTRODOMESTICO;
AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_ELECTRODOMESTICO));
AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_ELECTRODOMESTICO));
AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_ELECTRODOMESTICO));
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_E, 'ELECTRODOMÉSTICOS ', False, AContrato.Detalles);
end;
teVarios:
begin
AContrato.TIPO_CONTRATO := CTE_VARIOS;
AContrato.FORMA_PAGO.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_FORMA_PAGO_VARIOS));
AContrato.PLAZO_ENTREGA.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_PLAZOS_ENTREGA_VARIOS));
AContrato.OBSERVACIONES.Add(AppFactuGES.Configuracion.GetSettingAsString(teBD, CTE_OBSERVACIONES_VARIOS));
(Self.DetallesController as IDetallesContratoClienteController).AnadirCapitulo(TIPO_CAPITULO_V, 'VARIOS ', False, AContrato.Detalles);
end;
end;
end;
procedure TContratosClienteController.RecuperarCliente(
AContrato: IBizContratoCliente);
begin

View File

@ -125,7 +125,35 @@ inherited fEditorContratosCliente: TfEditorContratosCliente
ExplicitWidth = 805
inherited tbxMain: TTBXToolbar
ExplicitWidth = 775
object TBXItem47: TTBXItem [13]
object TBXSubmenuItem3: TTBXSubmenuItem [0]
Caption = 'Nuevo'
DisplayMode = nbdmImageAndText
ImageIndex = 22
object bCocina: TTBXItem
Caption = 'Contrato de cocina'
OnClick = bCocinaClick
end
object bArmario: TTBXItem
Caption = 'Contrato de armario'
OnClick = bArmarioClick
end
object bBano: TTBXItem
Caption = 'Contrato de ba'#241'o'
OnClick = bBanoClick
end
object bElectrodomestico: TTBXItem
Caption = 'Contrato de electrodom'#233'stico'
OnClick = bElectrodomesticoClick
end
object bVarios: TTBXItem
Caption = 'Contrato de varios'
OnClick = bVariosClick
end
end
inherited TBXItem2: TTBXItem
Visible = False
end
object TBXItem47: TTBXItem [14]
Action = actEnviarEMail
DisplayMode = nbdmImageAndText
end

View File

@ -42,6 +42,7 @@ type
TBXItem47: TTBXItem;
actListadoBeneficios: TAction;
TBXItem42: TTBXItem;
TBXSubmenuItem3: TTBXSubmenuItem;
procedure FormShow(Sender: TObject);
procedure actGenerarAlbaranCliExecute(Sender: TObject);
procedure actEliminarUpdate(Sender: TObject);
@ -58,6 +59,11 @@ type
procedure actInformesExecute(Sender: TObject);
procedure OnListaAnosChange(Sender: TObject; const Text: string);
procedure actListadoBeneficiosExecute(Sender: TObject);
procedure bCocinaClick(Sender: TObject);
procedure bArmarioClick(Sender: TObject);
procedure bBanoClick(Sender: TObject);
procedure bElectrodomesticoClick(Sender: TObject);
procedure bVariosClick(Sender: TObject);
protected
FContratos: IBizContratoCliente;
@ -323,6 +329,42 @@ begin
ViewGrid := CreateView(TfrViewContratosCliente) as IViewContratosCliente;
end;
procedure TfEditorContratosCliente.bArmarioClick(Sender: TObject);
begin
inherited;
if FController.Anadir(Contratos, teArmario) then
FController.Ver(Contratos);
end;
procedure TfEditorContratosCliente.bBanoClick(Sender: TObject);
begin
inherited;
if FController.Anadir(Contratos, teBano) then
FController.Ver(Contratos);
end;
procedure TfEditorContratosCliente.bCocinaClick(Sender: TObject);
begin
inherited;
if FController.Anadir(Contratos, teCocina) then
FController.Ver(Contratos);
end;
procedure TfEditorContratosCliente.bElectrodomesticoClick(Sender: TObject);
begin
inherited;
if FController.Anadir(Contratos, teElectrodomestico) then
FController.Ver(Contratos);
end;
procedure TfEditorContratosCliente.bVariosClick(Sender: TObject);
begin
inherited;
if FController.Anadir(Contratos, teVarios) then
FController.Ver(Contratos);
end;
constructor TfEditorContratosCliente.Create(AOwner: TComponent);
begin
inherited;

View File

@ -281,7 +281,7 @@ inherited frViewContratoCliente: TfrViewContratoCliente
TabOrder = 6
Width = 27
end
object cbTipoPresupuesto: TcxDBComboBox
object cbTipoContrato: TcxDBComboBox
Left = 271
Top = 55
DataBinding.DataField = 'TIPO_CONTRATO'
@ -344,7 +344,7 @@ inherited frViewContratoCliente: TfrViewContratoCliente
AutoAligns = [aaVertical]
AlignHorz = ahClient
Caption = 'Tipo contrato:'
Control = cbTipoPresupuesto
Control = cbTipoContrato
ControlOptions.ShowBorder = False
end
end

View File

@ -62,7 +62,7 @@ type
cbVendedor: TcxDBLookupComboBox;
dsVendedor: TDADataSource;
dxLayoutControl1Item7: TdxLayoutItem;
cbTipoPresupuesto: TcxDBComboBox;
cbTipoContrato: TcxDBComboBox;
dxLayoutControl1Group11: TdxLayoutGroup;
procedure CustomViewCreate(Sender: TObject);
procedure CustomViewDestroy(Sender: TObject);