Exemple #1
0
        public ActionResult DeleteWorkOrderItem(LaborPartsModel model)
        {
            var workOrderItemId = model.WorkOrderItem;
            var workOrder       = repository.SearchFor <SageWorkOrder>(x => x.WorkOrder == model.WorkOrder).SingleOrDefault();

            if (workOrder == null)
            {
                return(Error("WorkOrder doesn't exists", $"There is no workorders with id {model.WorkOrder}. workOrder==null"));
            }

            var item             = workOrder.WorkOrderItems.SingleOrDefault(x => x.WorkOrderItem == workOrderItemId);
            var dBworkOrderItems = workOrder.WorkOrderItems.ToList();

            var result = sageApiProxy.DeleteWorkOrderItems(model.WorkOrder, new List <long> {
                model.WorkOrderItem
            });

            if (result != null && result.IsSucceed)
            {
                dBworkOrderItems.Remove(item);
                workOrder.WorkOrderItems = dBworkOrderItems;
                repository.Update(workOrder);
                _hub.UpdateSageWorkOrder(workOrder);
            }
            else
            {
                _log.ErrorFormat("Was not able to update workorderItem to sage. !result.IsSucceed");
                return(Error("Was not able to update workorderItem to sage",
                             $"DeleteWorkOrderItems method IsSucceed==false. {(result != null ? result.ErrorMassage : string.Empty)}"));
            }
            return(Json(Success(), JsonRequestBehavior.AllowGet));
        }
Exemple #2
0
        private void ResolveWorkOrderItems(WorkOrderModel model)
        {
            var workOrderItems     = Mapper.Map <IEnumerable <SageWorkOrderItem> >(model.PartsAndLabors);
            var workOrderFromMongo = _repository.SearchFor <SageWorkOrder>(x => x.WorkOrder == model.WorkOrder).Single();

            if (workOrderItems != null)
            {
                foreach (var workOrderItem in workOrderItems)
                {
                    if ((workOrderFromMongo.WorkOrderItems != null && workOrderFromMongo.WorkOrderItems.Contains(workOrderItem)))
                    {
                        _sageApiProxy.EditWorkOrderItem(workOrderItem);
                    }
                    else
                    {
                        workOrderItem.WorkOrder = Convert.ToInt32(model.WorkOrder);
                        workOrderItem.TotalSale = workOrderItem.Quantity * workOrderItem.UnitSale;
                        if (workOrderItem.ItemType == "Parts")
                        {
                            workOrderItem.PartsSale = workOrderItem.UnitSale;
                        }
                        else
                        {
                            workOrderItem.LaborSale = workOrderItem.UnitSale;
                        }
                        if (workOrderItem.WorkOrderItem == 0)
                        {
                            _sageApiProxy.AddWorkOrderItem(workOrderItem);
                        }
                        else
                        {
                            _sageApiProxy.EditWorkOrderItem(workOrderItem);
                        }
                    }
                }


                if (workOrderFromMongo.WorkOrderItems != null)
                {
                    var idsToRemove = new List <long>();

                    foreach (var woItem in workOrderFromMongo.WorkOrderItems)
                    {
                        if (!workOrderItems.Select(x => x.WorkOrderItem).Contains(woItem.WorkOrderItem))
                        {
                            idsToRemove.Add(woItem.WorkOrderItem);
                        }
                    }

                    if (idsToRemove.Any())
                    {
                        _sageApiProxy.DeleteWorkOrderItems(Convert.ToInt32(workOrderFromMongo.WorkOrder), idsToRemove);
                    }
                }
            }
            else
            {
                if (workOrderFromMongo.WorkOrderItems != null)
                {
                    var idsToRemove = workOrderFromMongo.WorkOrderItems.Select(x => x.WorkOrderItem);

                    if (idsToRemove.Any())
                    {
                        _sageApiProxy.DeleteWorkOrderItems(Convert.ToInt32(workOrderFromMongo.WorkOrder), idsToRemove);
                    }
                }
            }
        }