unit uContratosFacturaProveedorController;

interface

uses
  uControllerBase, uBizDetallesFacturaProveedor;

type
  IContratosFacturaProveedorController = interface(IControllerBase)
  ['{44A70A63-4A6D-4255-9F8F-0EDBF0B4E9CC}']
    procedure AnadirContratos(const AContratosFacturaProveedor : IBizContratosFacturaProveedor);
  end;

  TContratosFacturaProveedorController = class(TControllerBase, IContratosFacturaProveedorController)
  public
    procedure AnadirContratos(const AContratosFacturaProveedor : IBizContratosFacturaProveedor);
  end;


implementation

uses
  Dialogs, uBizContratosCliente, uContratosClienteController;





{ TContratosFacturaProveedorController }

procedure TContratosFacturaProveedorController.AnadirContratos(const AContratosFacturaProveedor: IBizContratosFacturaProveedor);
var
  AContratosCliente: IBizContratoCliente;
  AContratosClienteController: IContratosClienteController;

begin
  AContratosClienteController := TContratosClienteController.Create;
  AContratosCliente := AContratosClienteController.ElegirContratos(AContratosClienteController.BuscarTodos,
                  'Elija el contrato o contratos de cliente que desea utilizar para desglosar la factura.', True);

  if assigned(AContratosCliente) then
  begin
    if not AContratosCliente.DataTable.Active then
       AContratosCliente.DataTable.Active := True;

    AContratosCliente.DataTable.First;
    while not AContratosCliente.DataTable.EOF do
    begin
      AContratosFacturaProveedor.Insert;
      AContratosFacturaProveedor.ID_CONTRATO := AContratosCliente.ID;
      AContratosFacturaProveedor.REFERENCIA := AContratosCliente.REFERENCIA;
      AContratosFacturaProveedor.NIF_CIF := AContratosCliente.NIF_CIF;
      AContratosFacturaProveedor.NOMBRE := AContratosCliente.NOMBRE;
      AContratosFacturaProveedor.Post;
      AContratosCliente.DataTable.next;
    end;
  end;

  AContratosCliente := Nil;
  AContratosClienteController := Nil;
end;

end.
