public List <Order> GetInvoicableOrdersByAccount(int company_key, int account_key)
        {
            if (company_key == 0)
            {
                throw new InvalidOperationException(nameof(company_key));
            }
            if (account_key == 0)
            {
                throw new InvalidOperationException(nameof(account_key));
            }

            return(ExecuteFaultHandledOperation(() =>
            {
                var order_headers = new List <Order>();
                var orders_data = _order_header_repo.GetForInvoice(company_key, account_key);

                foreach (OrderHeaderData order_data in orders_data)
                {
                    var order_header = Map(order_data);
                    order_header.Account = _account_be.GetAccountByID(order_header.AccountKey, false);
                    order_header.OrderItems = GetOrderItemsByOrder(order_header);
                    order_headers.Add(order_header);
                }
                return order_headers;
            }));
        }