public void UpdateHasAttachmentsString(SaleOrder so) { int currentHash = so.Attachments.GetHashCode(); // do nothing if there is no update if (this.HashAttachmentsText != currentHash) { this.HasAttachmentBeenUpdated = true; this.HashAttachmentsText = currentHash; this.Status = PaymentUpdateReminderStatus.Pending; } }
/// <summary> /// Due to SKUNumber is also represent to a field in database /// so we create this.GetSKUNumber() function for retreiving SKU logic /// </summary> /// <returns></returns> public string GetSKUNumber(SaleOrder saleOrder) { if (this.Attributes != null && this.Attributes is JObject) { var attr = (JObject)this.Attributes; var fieldName = "compositeSkus"; if (attr.ContainsKey(fieldName)) { var productVariations = JArray.Parse(attr.Value <string>(fieldName)); foreach (var item in saleOrder.ItemsDetail.Where(i => i.Id != this.Id && i.Attributes.Qty == 1)) { var variation = productVariations.Where(i => i.Value <int>("ProductId") == item.Id).FirstOrDefault(); if (variation != null) { return(variation.Value <string>("Sku")); } } } } return(this.SKUNumber); }
public void SetStatus(SaleOrder so, PaymentUpdateReminderStatus status) { this.HasAttachmentBeenUpdated = status == PaymentUpdateReminderStatus.Pending; this.Status = status; this.HashAttachmentsText = so.Attachments.GetHashCode(); }