예제 #1
0
        /// <summary>
        /// Adds a FMPart to a work order as a workorderpart db entry
        /// </summary>
        /// <param name="partId"></param>
        /// <param name="workOrderId"></param>
        /// <param name="notes"></param>
        public void AddPartToWorkOrder(long partId, long workOrderId, string notes)
        {
            //get the part
            var fmPart = MaintenanceEntities.FMParts.FirstOrDefault(x => x.PartId == partId);

            if (fmPart == null)
            {
                return;
            }

            //we only add unique when the part is notht he"Other" part. if it is other, then we want to add it with new notes no matter what
            if (fmPart.PartName != Constants.FieldMaintenance.OtherPartName)
            {
                //if they are adding a part that already exist, just increment it by one
                //check to see if the work order part isnt already part of this work order.
                //if it exist, get it from the maint entities, increment once, then save
                var fmwoPart = MaintenanceEntities.FMWorkOrderParts.FirstOrDefault(x => x.PartId == partId && x.WorkOrderId == workOrderId);
                if (fmwoPart != null)
                {
                    fmwoPart.Quantity = fmwoPart.Quantity + 1;
                    //update the notes as well, only if htere is a value for it. we dont want to override the existing notes
                    if (!string.IsNullOrEmpty(notes))
                    {
                        fmwoPart.Notes = notes;
                    }
                    MaintenanceEntities.SaveChanges();
                    return;
                }
            }

            //now create a work order part if is doesnt already exist for this work order.
            var fmWordOrderPart = new FMWorkOrderPart
            {
                Notes       = notes ?? string.Empty,
                PartId      = partId,
                Quantity    = 1,
                WorkOrderId = workOrderId
            };

            MaintenanceEntities.FMWorkOrderParts.Add(fmWordOrderPart);
            MaintenanceEntities.SaveChanges();
        }
예제 #2
0
        /// <summary>
        /// Make a work order part based on the db version
        /// </summary>
        /// <param name="dbItem"></param>
        /// <returns></returns>
        protected WorkOrderPart MakeWorkOrderPart(FMWorkOrderPart dbItem)
        {
            //check for null
            if (dbItem == null)
            {
                return(null);
            }

            var item = new WorkOrderPart
            {
                Notes           = dbItem.Notes,
                PartId          = dbItem.PartId,
                Quantity        = dbItem.Quantity,
                WorkOrderId     = dbItem.WorkOrderId,
                WorkOrderPartId = dbItem.WorkOrderPartId,
                PartDesc        = dbItem.Part.PartDesc,
                PartName        = dbItem.Part.PartName,
                CostInCents     = dbItem.Part.CostInCents
            };

            return(item);
        }