unit uViewFacturaProveedor; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, DB, uDADataTable, uCustomView, uViewDatosYSeleccionContacto, uViewDatosFacturaProveedor, uViewObservaciones, uViewFormaPago, AppEvnts, uBizFacturasProveedor, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit; type IViewFacturaProveedor = interface(IViewBase) ['{B3E29576-9318-4EA7-B778-AFDA6CA3A716}'] function GetFacturaProveedor: IBizFacturasProveedor; procedure SetFacturaProveedor(const Value: IBizFacturasProveedor); property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write SetFacturaProveedor; end; TfrViewFacturaProveedor = class(TfrViewBase, IViewFacturaProveedor) DADataSource: TDADataSource; frViewDatosYSeleccionContacto1: TfrViewDatosYSeleccionContacto; frViewObservaciones1: TfrViewObservaciones; frViewFormaPago1: TfrViewFormaPago; frViewDatosFacturaProveedor1: TfrViewDatosFacturaProveedor; procedure frViewDatosYSeleccionContacto1actElegirContactoExecute( Sender: TObject); procedure frViewDatosYSeleccionContacto1actAnadirContactoExecute( Sender: TObject); procedure frViewDatosYSeleccionContacto1actVerContactoExecute( Sender: TObject); procedure frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged( Sender: TObject); private FFacturaProveedor : IBizFacturasProveedor; procedure OnContactoChanged (Sender : TObject); protected function GetFacturaProveedor: IBizFacturasProveedor; procedure SetFacturaProveedor(const Value: IBizFacturasProveedor); public property FacturaProveedor: IBizFacturasProveedor read GetFacturaProveedor write SetFacturaProveedor; end; var frViewFacturaProveedor: TfrViewFacturaProveedor; implementation uses uBizContacto, uExceptions, uDataModuleContactos; {$R *.dfm} { TfrViewFacturaProveedor } function TfrViewFacturaProveedor.GetFacturaProveedor: IBizFacturasProveedor; begin Result := FFacturaProveedor; end; procedure TfrViewFacturaProveedor.OnContactoChanged(Sender: TObject); begin FFacturaProveedor.Proveedor := (frViewDatosYSeleccionContacto1.Contacto as IBizProveedor); end; procedure TfrViewFacturaProveedor.SetFacturaProveedor( const Value: IBizFacturasProveedor); begin FFacturaProveedor := Value; if Assigned(FFacturaProveedor) then DADataSource.DataTable := FFacturaProveedor.DataTable else DADataSource.DataTable := NIL; frViewDatosFacturaProveedor1.DADataSource.DataTable := DADataSource.DataTable; frViewObservaciones1.DADataSource.DataTable := DADataSource.DataTable; frViewFormaPago1.DADataSource.DataTable := DADataSource.DataTable; frViewDatosYSeleccionContacto1.Contacto := FFacturaProveedor.Proveedor; frViewDatosYSeleccionContacto1.OnContactoChanged := OnContactoChanged; // frViewPresupuestoFactura1.FacturaProveedor := FFacturaProveedor; end; procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actElegirContactoExecute( Sender: TObject); begin inherited; frViewDatosYSeleccionContacto1.actElegirContactoExecute(Sender); end; procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actAnadirContactoExecute( Sender: TObject); begin inherited; frViewDatosYSeleccionContacto1.actAnadirContactoExecute(Sender); end; procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1actVerContactoExecute( Sender: TObject); var AContacto : IBizProveedor; begin inherited; AContacto := dmContactos.GetProveedor(FFacturaProveedor.CODIGOPROVEEDOR); try if Assigned(AContacto) then begin AContacto.DataTable.Open; if (AContacto.DataTable.RecordCount = 0) or (AContacto.BAJA_LOGICA = 1) then ShowMessage('La ficha ha sido eliminada de programa.') else AContacto.Show; end; finally AContacto := NIL; end; end; procedure TfrViewFacturaProveedor.frViewDatosYSeleccionContacto1edtlNombrePropertiesEditValueChanged( Sender: TObject); begin inherited; with (Sender as TcxDBTextEdit) do Enabled := (FFacturaProveedor.CODIGOPROVEEDOR <> 0) end; end.