public void TakeAction(DataModels.Warehouse.ProductionOrder dataObject, long actionId, string choice, string comment) { using (IDAL dal = this.DAL) { dal.BeginTransaction(); try { // var originalObject = dal.Read<DataModels.Warehouse.ProductReturn>(dataObject.ProductReturnId); IActionOperations actionOperations = new Overtech.API.BPM.ActionOperations(OTApplication.Context.User.Id); var actionInfo = actionOperations.GetActionInfo(actionId); IAction action = new Overtech.API.BPM.Action(actionId, OTApplication.Context.User.Id); if (choice != "İptal") { switch (actionInfo.ActivityName) { case "Uretim mal gonderim adımı": dataObject.StatusCode = 2; waybillFromMainWHtoProductionWH(dal, dataObject); break; case "Uretim Grubu Adımı": if (choice == "Tamamlandı") { dataObject.StatusCode = 4; if (dataObject.PartialCompletion > 0) { waybillProduction(dal, dataObject); } waybillProductionCompleted(dal, dataObject); } else { dataObject.StatusCode = 3; waybillProduction(dal, dataObject); } break; } } else { dataObject.StatusCode = 7; } dal.Update(dataObject); action.Commit(choice, comment); dal.CommitTransaction(); } catch { dal.RollbackTransaction(); throw; } } }
private void startProductionOrderProcess(DataModels.Warehouse.ProductionOrder dataModel, IDAL dal) { int processDefinitionId = _parameterReader.ReadPublicParameter <int>("UretimFisiSureci", 2017); GroupOperations gop = new GroupOperations(dal); Group g = gop.FindGroup("Depo Sorumlusu"); Group g2 = gop.FindGroup("Uretim Grubu"); IProcessInstance processInstance = new ProcessInstance(processDefinitionId, OTApplication.Context.User.Id); //Set Process Variables processInstance.AddProcessVariable("user", OTApplication.Context.User.Id); processInstance.AddProcessVariable("screenReference", "Warehouse#ProductionOrderListComponent#" + dataModel.ProductionOrderId); processInstance.AddProcessVariable("requestId", dataModel.ProductionOrderId); processInstance.AddProcessVariable("acceptanceGroup", g.GroupId); processInstance.AddProcessVariable("productionGroup", g2.GroupId); //Set Action Varibles processInstance.AddActionVariable("user", OTApplication.Context.User.Id); //processInstance.AddActionVariable("description", dataModel.Description); //Start Process var processId = processInstance.Start(dataModel.ProductionOrderId.ToString()); dataModel.ProcessInstance = processId; dataModel.StatusCode = 1; dal.Update(dataModel); }
public void TakeAction([FromBody] ViewModels.Warehouse.ProductionOrder viewModel) { if (ModelState.IsValid) { try { var mapperConfig = MapperConfig.Init(); mapperConfig.CreateMap <DataModels.Warehouse.ProductionOrder, ViewModels.Warehouse.ProductionOrder>(); DataModels.Warehouse.ProductionOrder dataModel = viewModel.Map <DataModels.Warehouse.ProductionOrder, ViewModels.Warehouse.ProductionOrder>(mapperConfig); _dataService.TakeAction(dataModel, viewModel.action, viewModel.actionChoice, viewModel.actionComment); } catch (Exception ex) { _logger.Error(PrepareExceptionMessage(MethodBase.GetCurrentMethod().Name), ex); throw CreateUserException(ex); } } else { var errors = ModelState.Values.SelectMany(value => value.Errors).Select(error => error.ErrorMessage); throw CreateUserException(new OTException(OTErrors.ModelStateInvalid, true, null, errors)); } }