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; 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; edtFechaDecision: TcxDBDateEdit; dxLayoutControl1Item14: TdxLayoutItem; edtFechaPrevMontaje: TcxDBDateEdit; dxLayoutControl1Item15: TdxLayoutItem; edtFechaUltPresentacion: TcxDBDateEdit; dxLayoutControl1Group10: TdxLayoutGroup; 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); public property Controller : IContratosClienteController read GetController write SetController; property Contrato: IBizContratoCliente read GetContrato write SetContrato; end; implementation {$R *.dfm} { TfrViewContratoCliente } uses 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_ARMARIO); cbTipoContrato.Properties.Items.Add(CTE_BANO); cbTipoContrato.Properties.Items.Add(CTE_ELECTRODOMESTICO); cbTipoContrato.Properties.Items.Add(CTE_OBRA); cbTipoContrato.Properties.Items.Add(CTE_VARIOS); end; procedure TfrViewContratoCliente.CustomViewDestroy(Sender: TObject); begin 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ículos del Contrato serán actualizados con los del nuevo cliente seleccionado, ¿Desea continuar?', 'Atenció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ículos del Contrato serán actualizados con los del nuevo cliente seleccionado, ¿Desea continuar?', 'Atenció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.SetContrato(const Value: IBizContratoCliente); begin FContrato := Value; if Assigned(FContrato) then begin DADataSource.DataTable := 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; frViewClienteContrato1.MsgElegirCliente := 'Elija el cliente al que se le realizará 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.