Exemple #1
0
 public virtual void SaveOrUpdateMo(WorkOrder workOrder, string workOrderNo)
 {
     try
     {
         using (var trans = RF.TransactionScope(WMSEntityDataProvider.ConnectionStringName))
         {
             var existWorkOrder = DomainControllerFactory.Create <WorkOrderController>()
                                  .GetWorkOrderByWo(workOrder.WorkOrderNo) ?? workOrder;
             OrganizationList list = new OrganizationList();
             if (workOrder.Workshop.Code.IsNotEmpty())
             {
                 list = DomainControllerFactory.Create <OrganizationController>().GetOrganizationList(new OrganizationCriteria()
                 {
                     Code = workOrder.Workshop.Code
                 }) as OrganizationList;
             }
             Organization org = list.Concrete().FirstOrDefault() as Organization ?? workOrder.Workshop;
             //if (org == null)
             //{
             //    throw new ValidationException("找不到车间[{0}]".Translate().FormatArgs(workOrder.Workshop.Code));
             //}
             Item item = DomainControllerFactory.Create <ItemController>().GetByCode(workOrder.Item.Code);
             if (item == null)
             {
                 //单个下载就报错
                 if (workOrderNo.IsNotEmpty())
                 {
                     throw new ValidationException("找不到物料[{0}]".Translate().FormatArgs(workOrder.Item.Code));
                 }
                 else
                 {
                     return;
                 }
             }
             Warehouse house = DomainControllerFactory.Create <WarehouseController>().GetWarehouse(workOrder.ReceiptWarehouse.Code);
             if (house == null)
             {
                 existWorkOrder.ReceiptWarehouseId = null;
                 ////单个下载就报错
                 //if (workOrderNo.IsNotEmpty())
                 //{
                 //    throw new ValidationException("找不到收货库存地点[{0}]".Translate().FormatArgs(workOrder.ReceiptWarehouse.Code));
                 //}
                 //else { return; }
             }
             else
             {
                 existWorkOrder.ReceiptWarehouseId = house.Id;
             }
             existWorkOrder.Factory        = workOrder.Factory;
             existWorkOrder.Item           = item;
             existWorkOrder.WorkshopId     = org?.Id;
             existWorkOrder.WorkOrderNo    = workOrder.WorkOrderNo;
             existWorkOrder.OrderQty       = workOrder.OrderQty;
             existWorkOrder.PlanBeginDate  = workOrder.PlanBeginDate;
             existWorkOrder.ActuFinishDate = workOrder.ActuFinishDate;
             existWorkOrder.S_Type         = workOrder.S_Type;
             existWorkOrder.ProductVersion = workOrder.ProductVersion;
             existWorkOrder.CreateDate     = workOrder.CreateDate;
             existWorkOrder.IsClosed       = workOrder.IsClosed;
             existWorkOrder.Remark         = workOrder.Remark;
             existWorkOrder.Status         = workOrder.Status;
             RF.Save(existWorkOrder);
             trans.Complete();
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }