private string CompleteTickets(List <Ticket> tickets) { string result = string.Empty; decimal totalPayment = 0; decimal totalExpense = CurrencyUtil.ToDecimal(tbExpense.Text); decimal adjustment = CurrencyUtil.ToDecimal(tbAdjustmentAmount.Text); string adjustmentReason = tbAdjustmentReason.Text; Revenue revenue = new Revenue(); revenue.id = IDGenerator.RevenueId(); revenue.type = Constants.RevenueType.Ticket.ToString(); revenue.name = "Bán vé"; revenue.description = string.Empty; revenue.created_date = DateTime.Now; revenue.created_by = SystemParam.CurrentUser.id; List <RevenueDetail> revenueDetails = new List <RevenueDetail>(); foreach (var ticket in tickets) { ticket.status = Constants.TicketStatus.Closed.ToString(); // Updates tickets result = _ticketBusiness.CompleteTicket(ticket.id); RevenueDetail detail = new RevenueDetail(); detail.id = IDGenerator.RevenueDetailId(); detail.revenue_id = revenue.id; detail.object_id = ticket.id; detail.title = "Bán vé"; detail.type = Constants.RevenueType.Ticket.ToString(); detail.amount = ticket.cost; totalPayment += ticket.cost; detail.description = string.Empty; detail.created_date = DateTime.Now; detail.created_by = SystemParam.CurrentUser.id; revenueDetails.Add(detail); } revenue.amount = totalPayment; // Inserts revenue & details if (string.IsNullOrEmpty(result)) { result = _revenueBusiness.Insert(revenue, revenueDetails); } // Inserts expense if (string.IsNullOrEmpty(result)) { if (totalExpense != 0) { Expense expense = new Expense(); expense.id = IDGenerator.RevenueId(); expense.type = Constants.RevenueType.Ticket.ToString(); expense.name = "Bán vé"; expense.amount = totalExpense; expense.description = string.Empty; expense.created_date = DateTime.Now; expense.created_by = SystemParam.CurrentUser.id; result = _expenseBusiness.Insert(expense); } } // Inserts adjustment if (string.IsNullOrEmpty(result)) { if (adjustment > 0) { Revenue adjustmentRevenue = new Revenue(); adjustmentRevenue.id = IDGenerator.RevenueId(); adjustmentRevenue.type = Constants.RevenueType.Adjustment.ToString(); adjustmentRevenue.name = "Điều chỉnh - Bán vé"; adjustmentRevenue.amount = Math.Abs(adjustment); adjustmentRevenue.description = adjustmentReason; adjustmentRevenue.created_date = DateTime.Now; adjustmentRevenue.created_by = SystemParam.CurrentUser.id; result = _revenueBusiness.Insert(adjustmentRevenue); } else if (adjustment < 0) { Expense adjustmentExpense = new Expense(); adjustmentExpense.id = IDGenerator.RevenueId(); adjustmentExpense.type = Constants.RevenueType.Adjustment.ToString(); adjustmentExpense.name = "Điều chỉnh - Bán vé"; adjustmentExpense.amount = Math.Abs(adjustment); adjustmentExpense.description = adjustmentReason; adjustmentExpense.created_date = DateTime.Now; adjustmentExpense.created_by = SystemParam.CurrentUser.id; result = _expenseBusiness.Insert(adjustmentExpense); } } return(result); }