diff --git a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas index 0aa71f95..cf401e78 100644 --- a/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas +++ b/Source/Modulos/Contratos de cliente/Controller/uContratosClienteController.pas @@ -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 diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm index 87856b6c..95ce7a5e 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.dfm @@ -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 diff --git a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas index 65730715..b3b9fc66 100644 --- a/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uEditorContratosCliente.pas @@ -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; diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm index d8b8b7ca..3a054099 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.dfm @@ -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 diff --git a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas index 266bcb79..fd027e1b 100644 --- a/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas +++ b/Source/Modulos/Contratos de cliente/Views/uViewContratoCliente.pas @@ -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);