unit uEditorElegirDomiciliacion;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit,
  cxDropDownEdit, cxCalendar, ExtCtrls, uEditorBasico, uIEditorElegirDomiciliacion,
  cxGraphics, DB, uDAInterfaces, uDADataTable, cxDBEdit, uEmpresasController;

type
  TfEditorElegirDomiciliacion = class(TfEditorBasico, IEditorElegirDomiciliacion)
    Label1: TLabel;
    bAceptar: TButton;
    bCancelar: TButton;
    Label2: TLabel;
    Panel1: TPanel;
    cbCuentaBancaria: TcxComboBox;
    procedure FormShow(Sender: TObject);

  private
    FCuentaBancaria: String;
    function GetCuentaBancaria: String;
    procedure SetCuentaBancaria(const Value: String);

  public
    property CuentaBancaria: String Read GetCuentaBancaria write SetCuentaBancaria;
  end;

implementation
{$R *.dfm}

uses uFactuGES_App;

procedure TfEditorElegirDomiciliacion.FormShow(Sender: TObject);
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;

  cbCuentaBancaria.ItemIndex := 0;
end;

function TfEditorElegirDomiciliacion.GetCuentaBancaria: String;
begin
  Result := cbCuentaBancaria.EditValue;
end;

procedure TfEditorElegirDomiciliacion.SetCuentaBancaria(const Value: String);
begin
  cbCuentaBancaria.ItemIndex := cbCuentaBancaria.Properties.Items.IndexOfName(Value);
end;


end.
