Ejemplo n.º 1
0
        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;
                }
            }
        }
Ejemplo n.º 2
0
        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);
        }
Ejemplo n.º 3
0
        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));
            }
        }