//UpdateStatementInvoice
        public JsonExecuteResult UpdateStatementInvoice(long invoice_id, int commissionrate_id, bool ispaid)
        {
            try
            {
                Invoice invoice = GetInvoice(invoice_id);
                if (invoice == null)
                {
                    throw new Exception("The invoice doesn't exist.");
                }
                CommissionRate cr = dataContext.CommissionRates.SingleOrDefault(CR => CR.RateID == commissionrate_id);
                if (cr == null)
                {
                    throw new Exception("The commission rate doesn't exist.");
                }

                Auction auction = dataContext.Auctions.SingleOrDefault(q => q.ID == invoice.Auction_ID);
                if (auction == null)
                {
                    throw new Exception("The lot doesn't exist.");
                }
                auction.CommissionRate_ID = cr.RateID;
                GeneralRepository.SubmitChanges(dataContext);

                invoice.Cost     = invoice.Amount - dataContext.GetComissionForItem(invoice.Auction_ID, invoice.Amount).GetPrice();
                invoice.IsPaid   = ispaid;
                invoice.Shipping = invoice.Tax = invoice.LateFee = 0;
                GeneralRepository.SubmitChanges(dataContext);
            }
            catch (Exception ex)
            {
                return(new JsonExecuteResult(JsonExecuteResultTypes.ERROR, ex.Message));
            }
            return(new JsonExecuteResult(JsonExecuteResultTypes.SUCCESS));
        }