/// <summary> /// Searching order by condition. /// </summary> /// <param name="where">Condition for searching.</param> /// <param name="isDelete">True if these orders of oder is deleted, false otherwise.</param> /// <returns>List object of order type.</returns> public List<Order> SearchOrder(String where, bool isDelete) { String query = "SELECT oos.OrderOfService_Id, oos.Company_Id," + " oos.Employee_Id, a.Account_UserName, c.Company_Name," + " oos.OrderOfService_Description,oos.OrderOfService_PaymentMethod," + " oos.OrderOfService_PaymentDate,oos.OrderOfService_BillDate," + " oos.OrderOfService_Status,oos.OrderOfService_IsDelete" + " FROM Account a JOIN Employee e ON e.Employee_Id = a.Employee_Id" + " JOIN OrderOfService oos ON oos.Employee_Id = e.Employee_Id" + " JOIN Company c ON c.Company_Id = oos.Company_Id" + " WHERE oos.OrderOfService_IsDelete = '{0}' {1}"; query = String.Format(query, isDelete, where); DBHelper.Instance.OpenConnection(); SqlDataReader reader = DBHelper.Instance.ExecuteReaderSQL(query); List<Order> list = new List<Order>(); while (reader.Read()) { Order order = new Order(); order.OrderOfService_Id = reader.GetGuid(0); order.Company_Id = reader.GetGuid(1); order.Employee_Id = reader.GetGuid(2); order.Account_UserName = reader.GetString(3); order.Company_Name = reader.GetString(4); order.OrderOfService_Description = reader.GetString(5); order.OrderOfService_PaymentMethod = reader.GetString(6); order.OrderOfService_PaymentDate = reader.GetDateTime(7).ToShortDateString(); order.OrderOfService_BillDate = reader.GetDateTime(8).ToShortDateString(); switch (reader.GetInt32(9)) { case 0: order.OrderOfService_Status = "Pending"; break; case 99: order.OrderOfService_Status = "In Progress"; break; case 1: order.OrderOfService_Status = "Resolved"; break; default: order.OrderOfService_Status = ""; break; } list.Add(order); } DBHelper.Instance.CloseConnection(); return list; }
private void FillDataToOrder(Order order, OrderOfService orderService) { order.OrderOfService_Id = orderService.OrderOfService_Id; order.Company_Id = orderService.Company_Id; order.Employee_Id = orderService.Employee_Id; order.OrderOfService_BillDate = orderService.OrderOfService_BillDate.ToShortDateString(); order.OrderOfService_Description = orderService.OrderOfService_Description; order.OrderOfService_IsDelete = orderService.OrderOfService_IsDelete; order.OrderOfService_PaymentDate = orderService.OrderOfService_PaymentDate.ToShortDateString(); order.OrderOfService_PaymentMethod = orderService.OrderOfService_PaymentMethod; switch (orderService.OrderOfService_Status) { case 0: order.OrderOfService_Status = "Pending"; break; case 99: order.OrderOfService_Status = "In Progress"; break; case 1: order.OrderOfService_Status = "Resolved"; break; default: break; } CompanyBLL CB = new CompanyBLL(); DataRow company = CB.Company_ShowOnewDisplay(orderService.Company_Id.ToString()); order.Company_Name = company["Company_Name"].ToString(); AccountBusiness AB = new AccountBusiness(); Account account = AB.GetAccountOfEmployee(orderService.Employee_Id); order.Account_UserName = account.Account_UserName; CalculateServicesAndCharges(order, order.OrderOfService_IsDelete); }
/// <summary> /// Get all orders in database by employee's id. /// </summary> /// <param name="isDelete">True if these oders is deleted, false otherwise.</param> /// <param name="id">Id of employee.</param> /// <returns>A list object of order type.</returns> public List<Order> GetOrdersByEmployeeId(Guid id, bool isDelete) { try { List<Order> listOrder = new List<Order>(); List<OrderOfService> list = OD.GetOrders(id, "Employee", isDelete); if (list.Count > 0) { foreach (OrderOfService item in list) { Order order = new Order(); FillDataToOrder(order, item); listOrder.Add(order); } } return listOrder; } catch (Exception ex) { throw new Exception(ex.Message); } }
private void CalculateServicesAndCharges(Order order, bool isDelete) { List<OrderOfServiceDetail> listOrderDetail = OD.GetOrderDetails(String.Format("OrderOfService_Id = '{0}' AND ", order.OrderOfService_Id.ToString()), isDelete); if (listOrderDetail.Count == 1) order.Total_Service = "1 service"; else if (listOrderDetail.Count > 1) order.Total_Service = listOrderDetail.Count.ToString() + " services"; double totalPrice = 0; ServiceBusiness SB = new ServiceBusiness(); foreach (OrderOfServiceDetail item in listOrderDetail) { Service service = SB.GetService(item.Service_Id); double days = (item.OrderOfServiceDetail_ToDate - item.OrderOfServiceDetail_FromDate).TotalDays; double charge = Double.Parse(SecurityHelper.Instance.DecryptCryptography(service.Service_Charge, true)); int employee = item.OrderOfServiceDetail_NumberOfEmployee; double price = days * charge * employee; totalPrice += price; } order.Total_Charge = totalPrice.ToString(); }
/// <summary> /// Get an order by order's id. /// </summary> /// <param name="id">Id of order.</param> /// <returns>An order object.</returns> public Order GetOrder(Guid id) { try { Order order = new Order(); OrderOfService orderService = OD.GetOrder(id); FillDataToOrder(order, orderService); return order; } catch (Exception ex) { throw new Exception(ex.Message); } }