private void SetTrackingNumber(AOOrder order) { if (_settings.DoPrintLabel) { Thread.Sleep(_settings.GLSStatusFileWaitSeconds * 1000); _trackingNumber = _ftpService.GetTrackingNumber(_settings.FTPTempFolder, _settings.FTPRemoteStatusFilePath, order.Id); if (string.IsNullOrEmpty(_trackingNumber)) { if (_glsStatusFileRetries < _settings.GLSStatusFileRetries) { _glsStatusFileRetries++; SetTrackingNumber(order); } CleanupGLSStatusFiles(); if (string.IsNullOrEmpty(_trackingNumber)) { // This extra check is important! throw new ArgumentException("No tracking number found for orderid: " + order.Id + ". Maybe number of retries should be increased."); } } _orderManagementService.SetTrackingNumberOnShipment(_trackingNumber); _anyChangesDone = true; } }
public IActionResult CompleteOrder(int orderId) { try { _anyChangesDone = false; AOOrder order = _orderManagementService.GetOrder(orderId); HandleGLSLabel(order); Capture(order); SendMails(order); _glsStatusFileRetries = 0; SetTrackingNumber(order); ChangeOrderStatus(orderId); if (_anyChangesDone == false) { return(Json("Warning: No changes done. Maybe change settings for this plugin.")); } } catch (Exception ex) { return(HandleException(ex)); } return(Json("Done")); }
private void SendMails(AOOrder order) { if (_settings.DoSendEmails) { _orderManagementService.SendShipmentMail(order); _anyChangesDone = true; } }
private string GetOrderNotes(AOOrder order) { if (string.IsNullOrEmpty(order.OrderNotes)) { return(" "); } var orderNotes = order.OrderNotes.TrimStart(',').Replace(",", "<hr class='hrSmall' /><br />").Replace("#", "<br />"); return(orderNotes); }
public AOOrder GetOrder(int orderId) { if (orderId <= 0) { throw new ArgumentException("No proper orderId: " + orderId); } _order = _context.AoOrders.Where(o => o.Id == orderId).FirstOrDefault(); if (_order == null) { throw new ArgumentException("No order found with id: " + orderId); } return(_order); }
/// <summary>+ /// Returns a list of string arrays. Each array contains 2 items, 1 with id, 1 with text /// </summary> private List <AOOrderItem> GetProductInfo(AOOrder order) { if (string.IsNullOrEmpty(order.OrderItems)) { List <AOOrderItem> errorItems = new List <AOOrderItem>(); errorItems.Add(new AOOrderItem() { ProductId = 0, ProductName = "No order items found for this order" }); return(errorItems); } List <AOOrderItem> orderItems = GetOrderItems(order.OrderItems); return(orderItems); }
private void Capture(AOOrder order) { if (_settings.DoCapture) { Shipment shipment = _orderManagementService.OrderShipment; if (shipment == null) { throw new ArgumentNullException("Shipment is null in Capture"); } switch (order.PaymentMethodSystemName) { case "Payments.QuickPayV10": { PaymentApiStatus paymentApiStatus = _quickPayService.GetPayment(order.AuthorizationTransactionId); if (paymentApiStatus.Payment == null || paymentApiStatus.HttpResponse.StatusCode != System.Net.HttpStatusCode.OK) { throw new ArgumentException("No payment found with orderid: " + order.Id + " and AuthorizationTransactionId: " + order.AuthorizationTransactionId); } PaymentApiStatus captureStatus = _quickPayService.CapturePayment(order.AuthorizationTransactionId, Convert.ToInt32(order.TotalOrderAmount)); if (captureStatus.HttpResponse.IsSuccessStatusCode == false) { throw new ArgumentException("Error capturing money on orderid: " + order.Id + ", Error: " + captureStatus.HttpResponse.ReasonPhrase); } _eventPublisher.PublishShipmentSent(shipment); break; } case "Payments.KlarnaCheckout": { _eventPublisher.PublishShipmentSent(shipment); break; } default: { throw new ArgumentException("Payment system not recognized: '" + order.PaymentMethodSystemName + "'"); } } _anyChangesDone = true; } }
private void HandleGLSLabel(AOOrder order) { if (_settings.DoPrintLabel) { _ftpService.Initialize( _settings.FTPHost, _settings.FTPUsername, _settings.FTPPassword); string localFilepath = _settings.FTPLocalFilePath + "\\" + _settings.FTPLocalFileName; System.IO.File.WriteAllText(localFilepath, CreateSingleLine(order), Encoding.UTF8); _ftpService.SendFile(localFilepath, _settings.FTPRemoteFolderPath + "/" + _settings.FTPLocalFileName); _anyChangesDone = true; } }
private string GetShippingInfo(AOOrder order) { if (string.IsNullOrEmpty(order.ShippingInfo)) { return(" "); } var shippingInfo = order.ShippingInfo.Replace("#", "<br />"); string ship = order.Shipment; if (string.IsNullOrEmpty(ship) == false) { if (ship.Contains(";")) { shippingInfo += "<br /><br />Admin comment:<br />"; shippingInfo += ship.Substring(ship.IndexOf(";") + 1); } } return(shippingInfo); }
private string CreateSingleLine(AOOrder order) { string glsShopnumber = ""; if (string.IsNullOrEmpty(order.ShippingInfo)) { throw new ArgumentException("No shipping info on order"); } if (order.ShippingInfo.Contains("(")) { glsShopnumber = order.ShippingInfo.Substring(order.ShippingInfo.IndexOf("(") + 1); if (glsShopnumber.Contains(")")) { glsShopnumber = glsShopnumber.Substring(0, glsShopnumber.IndexOf(")")); } } PakkeshopData pakkeshopData = _glsService.GetParcelShopData(glsShopnumber); if (pakkeshopData == null) { throw new ArgumentException("No Parcel shop found with number: '" + glsShopnumber + "'"); } StringBuilder sb = new StringBuilder(); sb.Append("\"" + order.Id.ToString() + "\""); // 1 Order number sb.Append(",\"" + pakkeshopData.CompanyName + "\""); // 2 Consignee name (Name of parcelshop) sb.Append(",\"" + order.CustomerInfo + "\""); // 3 Recipient address sb.Append(",\"" + pakkeshopData.Number + "\""); // 4 Parcelshop number sb.Append(",\"" + pakkeshopData.ZipCode + "\""); // 5 Zipcode of recipient sb.Append(",\"" + pakkeshopData.CityName + "\""); // 6 Postal district of recipient sb.Append(",\"" + pakkeshopData.CountryCode + "\""); // 7 Country of recipient sb.Append(",\"" + DateTime.Now.ToString("dd-MM-yy") + "\""); // 8 Date sb.Append(",\"1\""); // 9 Parcel weight sb.Append(",\"1\""); // 10 Number of parcels sb.Append(",\"\""); // 11 COD Amount (Order amount?) sb.Append(",\"\""); // 12 Parcel value amount (Total parcel value) sb.Append(",\"A\""); // 13 Parcel type sb.Append(",\"Z\""); // 14 Shipment type sb.Append(",\"" + order.UserName + "\""); // 15 Name of recipient to pick up parcel sb.Append(",\"\""); // 16 Customer note (not the one for friliv.dk) sb.Append(",\"90022\""); // 17 Customer number (vores GLS kundenummer) sb.Append(",\"" + order.CustomerEmail + "\""); // 18 Customer mail address sb.Append(",\"" + order.PhoneNumber + "\""); // 19 Customer mobile number sb.Append(",\"\"E"); // 20 Notification: E = Email sb.Append(",\"\"" + _settings.FTPPrinterName + "\""); // 21 Pxx = Printer no sb.Append(",\"\""); // 22 sb.Append(",\"\""); // 23 sb.Append(",\"\""); // 24 sb.Append(",\"\""); // 25 sb.Append(",\"\""); // 26 sb.Append(",\"\""); // 27 sb.Append(",\"\""); // 28 sb.Append(",\"\""); // 29 string info = sb.ToString(); return(info); }
private string GetTotal(AOOrder order) { return(order.TotalOrderAmount.ToString("N2", _workikngCultureInfo) + " " + order.Currency); }
private string GetCustomerInfo(AOOrder order) { return(order.UserName + "<br />" + order.CustomerInfo.Replace("#", "<br />")); }
private string GetCustomerComment(AOOrder order) { return(string.IsNullOrEmpty(order.CheckoutAttributeDescription) ? " " : order.CheckoutAttributeDescription); }
public void SendShipmentMail(AOOrder order) { _workflowMessageService.SendShipmentSentCustomerNotification(OrderShipment, _workContext.WorkingLanguage.Id); }