private void PopulateOrderDetails(IrregularOrder order) { if (order != null) { tbSenderName.Text = order.sender_name; tbSenderPhoneNumber.Text = order.sender_phone; tbSenderIDCardNo.Text = order.sender_id_card_no; tbSenderAddress.Text = order.sender_address; tbRecipientName.Text = order.recipient_name; tbRecipientPhoneNumber.Text = order.recipient_phone; tbRecipientIDCardNo.Text = order.recipient_id_card_no; tbRecipientAddress.Text = order.recipient_address; lblOrderIdText.Text = order.id; lblCreatedDateText.Text = order.created_date.ToString("dd-MM-yyyy hh:mm:ss"); lblCreatedByText.Text = order.created_by; lblClosedDateText.Text = order.closed_date.HasValue ? order.closed_date.Value.ToString("dd-MM-yyyy hh:mm:ss") : string.Empty; cboTour.SelectedValue = order.tour_id; Constants.DeliveryStatus deliveryStatus; bool parseResult = Enum.TryParse <Constants.DeliveryStatus>(order.order_status, out deliveryStatus); if (parseResult) { CurrentDeliveryStatus = deliveryStatus; } Constants.PaymentStatus paymentStatus; parseResult = Enum.TryParse <Constants.PaymentStatus>(order.payment_status, out paymentStatus); if (parseResult) { CurrentPaymentStatus = paymentStatus; } Collection <OrderItem> items = (new OrderItemBusiness()).GetByOrderId(order.id); tbItemsQuantity.Text = items.Sum(item => item.quantity).ToString(); decimal totalCost = items.Sum(item => item.cost); tbTotalCost.Text = totalCost.ToString("N0"); this.ucItemsList.OrderID = order.id; this.ucItemsList.OrderItems = items; } }
public override bool HandleSaveTask() { bool success = false; try { IrregularOrder order = SelectedOrder; if (order != null && ValidateInput()) { Constants.PaymentStatus currentPaymentStatus = EnumHelper.Parse <Constants.PaymentStatus>(order.payment_status); // Collects order information Collection <OrderItem> orderItems = new Collection <OrderItem>(); order.sender_name = tbSenderName.Text; order.sender_phone = tbSenderPhoneNumber.Text; order.sender_id_card_no = tbSenderIDCardNo.Text; order.sender_address = tbSenderAddress.Text; order.recipient_name = tbRecipientName.Text; order.recipient_phone = tbRecipientPhoneNumber.Text; order.recipient_id_card_no = tbRecipientIDCardNo.Text; order.recipient_address = tbRecipientAddress.Text; order.tour_id = cboTour.SelectedValue.ToString(); order.order_status = CurrentDeliveryStatus.ToString(); order.payment_status = CurrentPaymentStatus.ToString(); int totalQuantity = 0; decimal totalValue = 0; decimal totalCost = 0; foreach (var item in ucItemsList.OrderItems) { OrderItem newOrderItem = new OrderItem() { id = IDGenerator.NewOrderItemId(order.id, orderItems.Count + 1), order_id = order.id, name = item.name, weight = item.weight, size = item.size, quantity = item.quantity, value = item.value, description = item.description, cost = item.cost, order_item_number = item.order_item_number }; orderItems.Add(newOrderItem); totalQuantity += item.quantity; totalValue += item.value * item.quantity; totalCost += item.cost; } order.total_quantity = totalQuantity; order.total_value = totalValue; order.total_cost = decimal.Parse(tbTotalCost.Text); if (rbtnDeliveryStatus_Closed.Checked) { order.closed_date = DateTime.Now; } if (currentPaymentStatus == Constants.PaymentStatus.Unpaid && rbtnPaymentStatus_Paid.Checked && (new IrregularOrderPaymentView(order, orderItems)).ShowDialog() != DialogResult.OK) { return(false); } string result = _business.Update(order, orderItems); if (string.IsNullOrEmpty(result)) { MessageBox.Show("Đơn hàng đã cập nhật thành công.", string.Empty, MessageBoxButtons.OK, MessageBoxIcon.None); ChangeOrderDetailsEditingStatus(false); _isEditing = false; success = true; DataBind(); PopulateOrderDetails(order); } else { MessageBox.Show(result, Constants.Messages.ERROR_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); } } } catch (Exception ex) { AppLogger.logError(this.ToString(), "Error occurs when saving order changes.", ex); MessageBox.Show("Có lỗi xảy ra trong khi cập nhập đơn hàng.", Constants.Messages.ERROR_CAPTION, MessageBoxButtons.OK, MessageBoxIcon.Error); } return(success); }