/// <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(); }
/// <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); }