protected void ShippingDetailsGrid_RowCommand(object sender, GridViewCommandEventArgs e) { var updateButton = (e.CommandSource as Button); if (updateButton != null) { var currentGridRow = (updateButton.NamingContainer as GridViewRow); if (currentGridRow != null) { switch (e.CommandName) { case "UpdateShippingStatus": long shippingDetailId; if (e.CommandArgument != null && !string.IsNullOrEmpty(e.CommandArgument.ToString()) && Int64.TryParse(e.CommandArgument.ToString(), out shippingDetailId)) { ShippingDetail shippingDetail = UpdateShippingDetail(currentGridRow, shippingDetailId, false); if (shippingDetail != null) { shippingDetail = _shippingDetailRepository.Save(shippingDetail); if (shippingDetail.Id > 0) { MessageBox.ShowSuccessMessage("Shipping Detail updated successfully."); BindDataForFilters(); } } } break; } } } }
/// <summary> /// Negating a provided certain order item ids /// </summary> /// <param name="orderDetailIds"></param> /// <param name="order"></param> /// <param name="dataRecorderCreatorId"></param> public void NegateOrderLineItems(IEnumerable <long> orderDetailIds, Order order, long dataRecorderCreatorId) { if (order == null) { throw new InvalidOperationException("The order can not be null."); } var orderDetailsToBeCancelled = new List <OrderDetail>(); orderDetailsToBeCancelled.AddRange(order.OrderDetails.Where(od => orderDetailIds.Contains(od.Id))); order.OrderDetails.RemoveAll(od => orderDetailIds.Contains(od.Id)); var shippingDetailsToCancelled = new List <ShippingDetail>(); long orderDetailId = 0; foreach (var detailsToBeCancelled in orderDetailsToBeCancelled) { var cancelledOrderDetail = _orderDetailFactory.CreateNewOrderDetail(detailsToBeCancelled, detailsToBeCancelled.ForOrganizationRoleUserId, dataRecorderCreatorId); order.OrderDetails.Add(detailsToBeCancelled); order.OrderDetails.Add(cancelledOrderDetail); if (detailsToBeCancelled.DetailType == OrderItemType.ProductItem) { OrderDetail orderDetail = GetActiveOrderDetail(order); orderDetailId = orderDetail.Id; var shippingDetails = _shippingDetailRepository.GetProductShippingDetailsForCancellation(orderDetail.Id).ToList(); shippingDetails = shippingDetails.Where(sd => sd.Status == ShipmentStatus.Processing).Select(sd => sd).ToList(); var shippingDetail = shippingDetails.FirstOrDefault(); if (shippingDetail != null) { shippingDetailsToCancelled.Add(shippingDetail); shippingDetails.Remove(shippingDetail); } } } //var lineItem = _lineItems.FirstOrDefault(); //OrderItem orderItem = _orderItemRepository.SaveOrderItem(lineItem.SecondValue.Id, lineItem.SecondValue.OrderItemType); //lineItem.FirstValue.OrderItemId = orderItem.Id; //lineItem.FirstValue.OrderId = order.Id; //order.OrderDetails.Add(lineItem.FirstValue); order = _orderRepository.SaveOrder(order); if (shippingDetailsToCancelled.Count > 0) { IShippingDetailOrderDetailRepository shippingDetailOrderDetailRepository = new ShippingDetailOrderDetailRepository(); foreach (var shippingDetail in shippingDetailsToCancelled) { shippingDetailOrderDetailRepository.UpdateStatus(shippingDetail.Id, orderDetailId, false); var shipping = _shippingDetailRepository.GetById(shippingDetail.Id); shipping.Status = ShipmentStatus.Cancelled; _shippingDetailRepository.Save(shipping); } } }
public ShippingDetail OrderShipping(ShippingDetail shippingDetail) { using (var transaction = new TransactionScope(TransactionScopeOption.Required)) { if (shippingDetail.ShippingAddress != null && shippingDetail.ShippingAddress.Id >= 0 ? _addressService.SaveAfterSanitizing(shippingDetail.ShippingAddress).Id > 0 : true) { shippingDetail = _shippingDetailRepository.Save(shippingDetail); } transaction.Complete(); return(shippingDetail); } }
public bool UpdateShippingStatus(long shippingDetailId, ShipmentStatus status, long modifiedByOrgRoleUserId) { var shippingDetail = _shippingDetailRepository.GetById(shippingDetailId); shippingDetail.Status = status; shippingDetail.DataRecorderMetaData.DateModified = DateTime.Now; shippingDetail.DataRecorderMetaData.DataRecorderModifier = new OrganizationRoleUser(modifiedByOrgRoleUserId); if (status == ShipmentStatus.Shipped) { shippingDetail.ShippedByOrgRoleUserId = modifiedByOrgRoleUserId; } shippingDetail = _shippingDetailRepository.Save(shippingDetail); if (shippingDetail.Id > 0) { return(true); } return(false); }
protected void SaveButton_Click(object sender, EventArgs e) { if (BillingAddressSameRadio.Checked) { ListItem itemAlreadySelectedState = StateDropDown.Items.FindByValue(StateIdHidden.Value); if (itemAlreadySelectedState != null) { itemAlreadySelectedState.Selected = true; } CityText.Text = CityHidden.Value; ZipText.Text = ZipHidden.Value; Address1Text.Text = Address1Hidden.Value; } bool isStatusUpdated = false; TotalAmountPayable = 0.0m; var selectedRows = GetSelectedRows(); try { using (var transaction = new TransactionScope()) { if (PaymentMode.SelectedValue != PaymentType.CreditCard.PersistenceLayerId.ToString() || AddressValidation()) { foreach (var row in selectedRows) { if (row == null) { continue; } var orderDetailIdLiteral = row.FindControl("OrderDetailIdLiteral") as Literal; var shippingDetailIdLiteral = row.FindControl("ShippingDetailIdLiteral") as Literal; var actualPrice = row.FindControl("PriceLabel") as Label; if (orderDetailIdLiteral != null && shippingDetailIdLiteral != null) { var orderDetailId = Convert.ToInt64(orderDetailIdLiteral.Text); var shippingDetailId = Convert.ToInt64(shippingDetailIdLiteral.Text); isStatusUpdated = _shippingDetailOrderDetailRepository.UpdateStatus(shippingDetailId, orderDetailId, false); var shippingDetail = _shippingDetailRepository.GetById(shippingDetailId); shippingDetail.Status = ShipmentStatus.Cancelled; _shippingDetailRepository.Save(shippingDetail); var resultShippingDetails = _shippingDetailRepository.GetShippingDetailsForCancellation(orderDetailId).ToList(); var productShippingDetails = _shippingDetailRepository.GetProductShippingDetailsForCancellation(orderDetailId).ToList(); if (productShippingDetails.Count > resultShippingDetails.Count) { var productShippingDetail = productShippingDetails.FirstOrDefault(); if (productShippingDetail != null) { _shippingDetailOrderDetailRepository.UpdateStatus(productShippingDetail.Id, orderDetailId, false); productShippingDetail.Status = ShipmentStatus.Cancelled; _shippingDetailRepository.Save(productShippingDetail); CheckEventCustomerResultStateAndDeleteCdGenTrackRecord(); } } if (actualPrice != null && !string.IsNullOrEmpty(actualPrice.Text)) { TotalAmountPayable += Convert.ToDecimal(actualPrice.Text); } } } if (AmountPaid < (DiscountedTotal - TotalAmountPayable)) { TotalAmountPayable = 0; } else { TotalAmountPayable = AmountPaid - (DiscountedTotal - TotalAmountPayable); } var isRefundQueueEnabled = IoC.Resolve <ISettings>().IsRefundQueueEnabled; if (PaymentMode.SelectedValue == PaymentType.CreditCard.PersistenceLayerId.ToString() && BillingAddressDifferentRadio.Checked && !isRefundQueueEnabled) { var creatorOrganizationRoleUser = GetCreatorOrganizationRoleUser(); UpdateCustomerBillingAddress(creatorOrganizationRoleUser.Id); } if (isStatusUpdated) { if (TotalAmountPayable > 0) { if (isRefundQueueEnabled) { var refundRequest = PrepareRefundRequestObject(); var refundRequestValidator = IoC.Resolve <RefundRequestEditModelValidator>(); var result = refundRequestValidator.Validate(refundRequest); if (result.IsValid) { IoC.Resolve <IRefundRequestService>().SaveRequest(refundRequest); } else { var propertyNames = result.Errors.Select(er => er.PropertyName).Distinct(); var htmlString = propertyNames.Aggregate("", (current, property) => current + (result.Errors.Where(er => er.PropertyName == property).FirstOrDefault().ErrorMessage + " ")); MessageBox.ShowErrorMessage(htmlString); return; } } else { var creatorOrganizationRoleUser = GetCreatorOrganizationRoleUser(); var paymentInstrument = RefundPayment(creatorOrganizationRoleUser, OrderId + "_" + CustomerId); if (paymentInstrument != null && ApplyPaymentToOrder(creatorOrganizationRoleUser, CurrentOrder, paymentInstrument)) { transaction.Complete(); Response.RedirectUser(ReturnUrl); } else { SetAndDisplayErrorMessage("Oops some error occured in the system please try again later."); } } } transaction.Complete(); if (UrlValidator.IsUrlLocalToHost(Request, ReturnUrl)) { Response.RedirectUser(ReturnUrl); } } else { SetAndDisplayErrorMessage("Oops some error occured in the system please try again later."); } } } } catch (InvalidOperationException) { } catch { SetAndDisplayErrorMessage("Oops some error occured in the system please try again later."); } }