unit uViewPresupuestoCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, uBizPresupuestosCliente, DB, uDADataTable, uCustomView, AppEvnts, StdCtrls, Mask, DBCtrls, uViewObservaciones, uViewDatosYSeleccionCliente, cxGraphics, cxDropDownEdit, cxImageComboBox, cxDBEdit, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxCalendar, dxLayoutControl, cxControls, cxMemo, uViewDireccionEntregaPresupuestoCliente, Buttons, ActnList, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces, uBizFormasPago, cxButtonEdit, uViewDatosYSeleccionClientePresupuesto, uBizContactos, uVendedoresController, uViewTienda, uViewDatosYSeleccionComercial, uPresupuestosClienteController; type IViewPresupuestoCliente = interface(IViewBase) ['{A970B43E-E542-40F5-B265-41B7EFA613F9}'] function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; function GetController : IPresupuestosClienteController; procedure SetController (const Value : IPresupuestosClienteController); function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto; end; TfrViewPresupuestoCliente = class(TfrViewBase, IViewPresupuestoCliente) DADataSource: TDADataSource; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item2: TdxLayoutItem; edtFechaPresupuesto: 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; dxLayoutControl1Item7: TdxLayoutItem; edtFechaDecision: TcxDBDateEdit; dxLayoutControl1Item15: TdxLayoutItem; edtFechaVigencia: TcxDBDateEdit; cbSituacion: TcxDBImageComboBox; dxLayoutControl1Item10: TdxLayoutItem; dxLayoutControl1Group8: TdxLayoutGroup; frViewDatosYSeleccionClientePresupuesto1: TfrViewDatosYSeleccionClientePresupuesto; dxLayoutControl1Item1: TdxLayoutItem; dxLayoutControl1Item8: TdxLayoutItem; memFormaPago: TcxDBMemo; dxLayoutControl1Group3: TdxLayoutGroup; dxLayoutControl1Item9: TdxLayoutItem; memPlazoEntrega: TcxDBMemo; dxLayoutControl1Group4: TdxLayoutGroup; dxLayoutControl1Group6: TdxLayoutGroup; dxLayoutControl1Item11: TdxLayoutItem; dxLayoutControl1Group9: TdxLayoutGroup; cbVendedor: TcxDBLookupComboBox; dsVendedor: TDADataSource; dxLayoutControl1Group10: TdxLayoutGroup; dxLayoutControl1Item12: TdxLayoutItem; cbTipoPresupuesto: TcxDBComboBox; dxLayoutControl1Group11: TdxLayoutGroup; dxLayoutControl1Item13: TdxLayoutItem; edtlReferenciaCliente: TcxDBTextEdit; dxLayoutControl1Item14: TdxLayoutItem; frViewTienda1: TfrViewTienda; dxLayoutControl1Item16: TdxLayoutItem; frViewDatosYSeleccionComercial1: TfrViewDatosYSeleccionComercial; dxLayoutControl1Group5: TdxLayoutGroup; procedure CustomViewCreate(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure bFormasPagoClick(Sender: TObject); procedure frViewClientePresupuestoButton1Click(Sender: TObject); procedure frViewClientePresupuestoButton2Click(Sender: TObject); procedure cbFormaPagoPropertiesValidate(Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); protected FPresupuesto : IBizPresupuestoCliente; FController : IPresupuestosClienteController; FFormasPago : IBizFormaPago; FVendedor : IBizVendedor; FFormasPagoController : IFormasPagoController; FVendedoresController : IVendedoresController; FViewClientePresupuesto : IViewDatosYSeleccionClientePresupuesto; function GetController : IPresupuestosClienteController; procedure SetController (const Value : IPresupuestosClienteController); function GetPresupuesto: IBizPresupuestoCliente; procedure SetPresupuesto(const Value: IBizPresupuestoCliente); virtual; function GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; procedure OnComercialChanged(Sender : TObject); public property Presupuesto: IBizPresupuestoCliente read GetPresupuesto write SetPresupuesto; property Controller : IPresupuestosClienteController read GetController write SetController; property ViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto read GetViewClientePresupuesto; end; implementation {$R *.dfm} { TfrViewPresupuestoCliente } uses schPresupuestosClienteClient_Intf, uClientesController, uBizDireccionesContacto, uTypesConstConfiguration, uFactuGES_App; procedure TfrViewPresupuestoCliente.bFormasPagoClick(Sender: TObject); begin inherited; if Assigned(FFormasPago) then FFormasPagoController.VerTodos(FFormasPago); end; procedure TfrViewPresupuestoCliente.cbFormaPagoPropertiesValidate( Sender: TObject; var DisplayValue: Variant; var ErrorText: TCaption; var Error: Boolean); begin inherited; Presupuesto.DataTable.FieldByName(fld_PresupuestosClienteFORMA_PAGO).AsString := FFormasPago.DESCRIPCION; end; procedure TfrViewPresupuestoCliente.CustomViewCreate(Sender: TObject); begin inherited; FFormasPago := Nil; FVendedor := Nil; FFormasPagoController := TFormasPagoController.Create; FVendedoresController := TVendedoresController.Create; FViewClientePresupuesto := frViewDatosYSeleccionClientePresupuesto1; cbTipoPresupuesto.Properties.Items.Clear; cbTipoPresupuesto.Properties.Items.Add(CTE_COCINA); cbTipoPresupuesto.Properties.Items.Add(CTE_ARMARIO); cbTipoPresupuesto.Properties.Items.Add(CTE_BANO); cbTipoPresupuesto.Properties.Items.Add(CTE_ELECTRODOMESTICO); cbTipoPresupuesto.Properties.Items.Add(CTE_VARIOS); //FILTRO DE EMPRESAS if (AppFactuGES.EmpresaActiva.ID = CTE_EMPRESA_ABETO) then begin frViewTienda1.Visible := false; frViewTienda1.dxLayoutControl1.Visible :=false; dxLayoutControl1Group5.Visible := true; end else begin frViewTienda1.Visible := true; frViewTienda1.dxLayoutControl1.Visible :=true; dxLayoutControl1Group5.Visible := false; end; end; procedure TfrViewPresupuestoCliente.CustomViewDestroy(Sender: TObject); begin frViewDatosYSeleccionComercial1.OnComercialChanged := Nil; FFormasPago := Nil; FFormasPagoController := NIL; FVendedor := Nil; FVendedoresController := NIL; FViewClientePresupuesto := NIL; inherited; end; procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton1Click(Sender: TObject); begin if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then begin if (Application.MessageBox('Los descuentos de los artículos del presupuesto serán actualizados con los del nuevo cliente seleccionado, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then Exit; end; frViewDatosYSeleccionClientePresupuesto1.actElegirContacto.Execute; end; procedure TfrViewPresupuestoCliente.frViewClientePresupuestoButton2Click(Sender: TObject); begin if Assigned(Presupuesto) and Assigned(Presupuesto.Cliente) and Assigned (Presupuesto.Detalles) and (Presupuesto.Detalles.RecordCount > 0) then begin if (Application.MessageBox('Los descuentos de los artículos del presupuesto serán actualizados con los del nuevo cliente seleccionado, ¿Desea continuar?', 'Atención', MB_YESNO) = IDNO) then Exit; end; frViewDatosYSeleccionClientePresupuesto1.actAnadirContacto.Execute; end; function TfrViewPresupuestoCliente.GetController: IPresupuestosClienteController; begin Result := FController; end; function TfrViewPresupuestoCliente.GetPresupuesto: IBizPresupuestoCliente; begin Result := FPresupuesto; end; function TfrViewPresupuestoCliente.GetViewClientePresupuesto: IViewDatosYSeleccionClientePresupuesto; begin Result := FViewClientePresupuesto; end; procedure TfrViewPresupuestoCliente.OnComercialChanged(Sender: TObject); begin if Assigned(FPresupuesto) then begin FController.CambiarComercial(FPresupuesto, frViewDatosYSeleccionComercial1.Comercial); end; end; procedure TfrViewPresupuestoCliente.SetController(const Value: IPresupuestosClienteController); begin FController := Value; end; procedure TfrViewPresupuestoCliente.SetPresupuesto(const Value: IBizPresupuestoCliente); begin FPresupuesto := Value; if Assigned(FPresupuesto) then begin DADataSource.DataTable := FPresupuesto.DataTable; frViewTienda1.DataItem := FPresupuesto.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; FViewClientePresupuesto.Presupuesto := FPresupuesto; frViewDatosYSeleccionComercial1.ID_Comercial := FPresupuesto.ID_AGENTE; frViewDatosYSeleccionComercial1.OnComercialChanged := OnComercialChanged; end else begin DADataSource.DataTable := NIL; dsFormaPago.DataTable := NIL; dsVendedor.DataTable := NIL; FViewClientePresupuesto.Presupuesto := Nil; end; end; end.