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, uViewDatosYSeleccionClienteContrato, uBizContactos, uVendedoresController; type IViewContratoCliente = interface(IViewBase) ['{3DE0231D-760E-437B-88E5-144B88024797}'] function GetContrato: IBizContratoCliente; procedure SetContrato(const Value: IBizContratoCliente); property Contrato: IBizContratoCliente read GetContrato write SetContrato; function GetViewClienteContrato: IViewDatosYSeleccionClienteContrato; property ViewClienteContrato: IViewDatosYSeleccionClienteContrato read GetViewClienteContrato; 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; dsFormaPago: TDADataSource; cbSituacion: TcxDBImageComboBox; dxLayoutControl1Item10: TdxLayoutItem; dxLayoutControl1Group8: TdxLayoutGroup; frViewDatosYSeleccionClienteContrato1: TfrViewDatosYSeleccionClienteContrato; 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; 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; FViewClienteContrato : IViewDatosYSeleccionClienteContrato; function GetContrato: IBizContratoCliente; procedure SetContrato(const Value: IBizContratoCliente); virtual; function GetViewClienteContrato: IViewDatosYSeleccionClienteContrato; public property Contrato: IBizContratoCliente read GetContrato write SetContrato; property ViewClienteContrato: IViewDatosYSeleccionClienteContrato read GetViewClienteContrato; end; implementation {$R *.dfm} { TfrViewContratoCliente } uses uClientesController, uBizDireccionesContacto, uContratosClienteController; 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; FViewClienteContrato := frViewDatosYSeleccionClienteContrato1; end; procedure TfrViewContratoCliente.CustomViewDestroy(Sender: TObject); begin inherited; FFormasPago := Nil; FFormasPagoController := NIL; FVendedor := Nil; FVendedoresController := NIL; FViewClienteContrato := NIL; 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; frViewDatosYSeleccionClienteContrato1.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; frViewDatosYSeleccionClienteContrato1.actAnadirContacto.Execute; end; function TfrViewContratoCliente.GetContrato: IBizContratoCliente; begin Result := FContrato; end; function TfrViewContratoCliente.GetViewClienteContrato: IViewDatosYSeleccionClienteContrato; begin Result := FViewClienteContrato; 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; FViewClienteContrato.Contrato := FContrato; end else begin DADataSource.DataTable := NIL; dsFormaPago.DataTable := NIL; dsVendedor.DataTable := NIL; FViewClienteContrato.Contrato := Nil; end; end; end.