| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119 | using System.Collections.Generic;using InABox.Core;namespace Comal.Classes{    public static class DeliveryItemExtensions    {        public static DeliveryItem CreateDeliveryItem(this PurchaseOrderItem item)        {            var result = new DeliveryItem();            result.OrderItem.ID = item.ID;            result.JobLink.ID = item.Job.ID;            result.JobLink.Synchronise(item.Job);            result.DueDate = item.ReceivedDate;            result.Description = string.Format("{0} x {1}", item.Qty, item.Description);            result.Title = result.Description;            result.Piece = result.Description;            result.Cost = item.Cost;            return result;        }        public static DeliveryItem CreateDeliveryItem(this RequisitionItem item, Requisition requisition)        {            var result = new DeliveryItem();            result.RequisitionLink.ID = requisition.ID;            result.JobLink.ID = requisition.JobLink.ID;            result.JobLink.Synchronise(requisition.JobLink);            result.Delivery.ID = requisition.Delivery.ID;            result.Delivery.Synchronise(requisition.Delivery);            result.DueDate = requisition.Due;            result.Description = string.Format("{0} ({1} off)", item.Description, item.Quantity);            result.Title = item.Code;            result.Piece = item.Code;            return result;        }        public static IEnumerable<DeliveryItem> CreateDeliveryItems(this ManufacturingPacket entity, int From)        {            var result = new List<DeliveryItem>();            // If the (new system) barcode qty is set, always use that - otherwise use the old system (Grouped/individual/none)            var iCount = entity.BarcodeQty > 0 ? entity.BarcodeQty :                entity.BarcodeType == BarcodeType.None ? 0 :                entity.BarcodeType == BarcodeType.Grouped ? 1 : entity.Quantity;            for (var iSeq = 1; iSeq <= iCount; iSeq++)            {                var item = new DeliveryItem();                item.ManufacturingPacketLink.ID = entity.ID;                //item.CustomAttributes = entity.CustomAttributes;                //if (item.CustomAttributes != null)                //{                //    StringBuilder sb = new StringBuilder();                //    if (item.CustomAttributes != null)                //    {                //        foreach (var attribute in item.CustomAttributes)                //            sb.AppendLine(String.Format("{0}={1}", attribute.Name, attribute.Value));                //    }                //    item.Attributes = sb.ToString();                //}                item.SetoutLink.ID = entity.SetoutLink.ID;                item.SetoutLink.Synchronise(entity.SetoutLink);                item.JobLink.ID = entity.SetoutLink.JobLink.ID;                item.JobLink.Synchronise(entity.SetoutLink.JobLink);                item.DueDate = entity.DueDate;                if (iCount > 1)                {                    item.Piece = string.Format("{0}{1:D2}", entity.ManufacturingTemplateLink.Code, iSeq);                    item.Title = string.Format("{0} ({1}/{2})", CoreUtils.StripHTML(entity.SetoutLink.Description), iSeq, iCount);                    item.Description = string.Format("{0} ({1}/{2})", entity.Title, iSeq, iCount);                }                else                {                    item.Piece = entity.ManufacturingTemplateLink.Code;                    item.Title = string.Format("{0} ({1} unit{2})", entity.SetoutLink.Description, entity.Quantity, entity.Quantity > 1 ? "s" : "");                    item.Description = string.Format("{0} ({1} unit{2})", entity.Title, entity.Quantity, entity.Quantity > 1 ? "s" : "");                }                item.Sequence = From + iSeq;                item.Height = entity.Height;                item.Width = entity.Width;                item.Length = entity.Length;                var props = entity.UserProperties.AsDictionary;                foreach (var key in props.Keys)                    if (item.UserProperties.ContainsKey(key))                        item.UserProperties[key] = props[key];                result.Add(item);            }            return result;        }    }}
 |