unit uViewFacturaCliente; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, uViewBase, DB, uDADataTable, uCustomView, uViewDatosYSeleccionCliente, uBizFacturasCliente, cxControls, cxContainer, cxEdit, cxTextEdit, cxDBEdit, dxLayoutControl, cxMemo, cxMaskEdit, cxDropDownEdit, cxCalendar, cxSpinEdit, StdCtrls, Mask, DBCtrls, cxGraphics, dxLayoutLookAndFeels, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox, uFormasPagoController, uDAInterfaces, uBizFormasPago; type IViewFacturaCliente = interface(IViewBase) ['{3A95930C-20B3-41E9-93CB-21138ADB5B70}'] function GetFactura: IBizFacturaCliente; procedure SetFactura(const Value: IBizFacturaCliente); property Factura: IBizFacturaCliente read GetFactura write SetFactura; end; TfrViewFacturaCliente = class(TfrViewBase, IViewFacturaCliente) DADataSource: TDADataSource; dxLayoutControl1Group_Root: TdxLayoutGroup; dxLayoutControl1: TdxLayoutControl; dxLayoutControl1Item1: TdxLayoutItem; eReferencia: TcxDBTextEdit; dxLayoutControl1Item2: TdxLayoutItem; edtFecha: TcxDBDateEdit; dxLayoutControl1Group1: TdxLayoutGroup; dxLayoutControl1Group2: TdxLayoutGroup; dxLayoutControl1Item5: TdxLayoutItem; memObservaciones: TcxDBMemo; dxLayoutControl1Group5: TdxLayoutGroup; dxLayoutControl1Item6: TdxLayoutItem; frViewClienteFactura: TfrViewDatosYSeleccionCliente; dxLayoutLookAndFeelList1: TdxLayoutLookAndFeelList; dxLayoutOfficeLookAndFeel1: TdxLayoutOfficeLookAndFeel; dsFormaPago: TDADataSource; dxLayoutControl1Item4: TdxLayoutItem; cbFormaPago: TcxDBLookupComboBox; dxLayoutControl1Item10: TdxLayoutItem; bFormasPago: TButton; dxLayoutControl1Group3: TdxLayoutGroup; dxLayoutControl1Group6: TdxLayoutGroup; dxLayoutControl1Item3: TdxLayoutItem; cbCuentaBancaria: TcxDBComboBox; dxLayoutControl1Group4: TdxLayoutGroup; procedure bFormasPagoClick(Sender: TObject); procedure CustomViewDestroy(Sender: TObject); procedure CustomViewCreate(Sender: TObject); protected FFactura : IBizFacturaCliente; FFormasPago : IBizFormaPago; FFormasPagoController : IFormasPagoController; function GetFactura: IBizFacturaCliente; procedure SetFactura(const Value: IBizFacturaCliente); procedure RellenarCuentasBancarias; public property Factura: IBizFacturaCliente read GetFactura write SetFactura; end; implementation uses uDataModuleContactos, schFacturasClienteClient_Intf, uFactuGES_App, uEmpresasController; {$R *.dfm} { TfrViewFacturaCliente } procedure TfrViewFacturaCliente.bFormasPagoClick(Sender: TObject); begin inherited; if Assigned(FFormasPago) then FFormasPagoController.VerTodos(FFormasPago); end; procedure TfrViewFacturaCliente.CustomViewCreate(Sender: TObject); begin inherited; FFormasPago := Nil; FFormasPagoController := TFormasPagoController.Create; end; procedure TfrViewFacturaCliente.CustomViewDestroy(Sender: TObject); begin inherited; FFormasPago := Nil; FFormasPagoController := NIL; end; function TfrViewFacturaCliente.GetFactura: IBizFacturaCliente; begin Result := FFactura; end; procedure TfrViewFacturaCliente.RellenarCuentasBancarias; var AController : IEmpresasController; ALista : TStringList; AListaIBAN : TStringList; i : integer; begin AController := TEmpresasController.Create; try ALista := AController.DarListaCuentasBancarias(AppFactuGES.EmpresaActiva); AListaIBAN := AController.DarListaCuentasBancariasIBAN(AppFactuGES.EmpresaActiva); try with cbCuentaBancaria.Properties.Items do begin BeginUpdate; try Clear; Add(''); for i := 0 to ALista.Count - 1 do Add(ALista.Names[i]); if AListaIBAN.Count > 0 then begin Add('--------------'); for i := 0 to AListaIBAN.Count - 1 do Add(AListaIBAN.Names[i]); end; finally EndUpdate; end; end; finally FreeANDNIL(ALista); FreeANDNIL(AListaIBAN); end; finally AController := NIL; end; end; procedure TfrViewFacturaCliente.SetFactura(const Value: IBizFacturaCliente); var ACadena : String; begin FFactura := Value; RellenarCuentasBancarias; if Assigned(FFactura) then begin DADataSource.DataTable := FFactura.DataTable; FFormasPago := FFormasPagoController.BuscarTodos; dsFormaPago.DataTable := FFormasPago.DataTable; dsFormaPago.DataTable.Active := True; if FFactura.TIPO = CTE_TIPO_ABONO then begin dxLayoutControl1Group1.Caption := 'Datos del abono:'; dxLayoutControl1Item2.Caption := 'Fecha del abono:'; ACadena := 'Elija el cliente al que se le realizará el abono.'; end else ACadena := 'Elija el cliente al que se le realizará la factura.'; frViewClienteFactura.MsgElegirCliente := ACadena; end else begin DADataSource.DataTable := NIL; dsFormaPago.DataTable := NIL; frViewClienteFactura.Cliente := NIL end; end; end.