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.