Beispiel #1
0
        private void startReturnOrderProcess(DataModels.Warehouse.ReturnOrder dataModel, IDAL dal)
        {
            int              processDefinitionId = _parameterReader.ReadPublicParameter <int>("UrunIadeSureci", 2009);
            var              store           = dal.Read <Store>(dataModel.Store);
            var              branch          = dal.Read <Branch>(store.OrganizationBranch);
            GroupOperations  gop             = new GroupOperations(dal);
            Group            g               = gop.FindGroup("Ürün İade Kullanıcıları");
            IProcessInstance processInstance = new ProcessInstance(processDefinitionId, OTApplication.Context.User.Id);

            //Set Process Variables
            processInstance.AddProcessVariable("user", OTApplication.Context.User.Id);
            processInstance.AddProcessVariable("screenReference", "Warehouse#ReturnOrderListComponent#" + dataModel.ReturnOrderId);
            processInstance.AddProcessVariable("branch", store.OrganizationBranch);
            processInstance.AddProcessVariable("region", branch.Parent);
            processInstance.AddProcessVariable("requestId", dataModel.ReturnOrderId);
            processInstance.AddProcessVariable("accountingGroup", g.GroupId);

            //Set Action Varibles
            processInstance.AddActionVariable("user", OTApplication.Context.User.Id);
            //processInstance.AddActionVariable("description", dataModel.Description);

            //Start Process
            var processId = processInstance.Start(dataModel.ReturnOrderId.ToString());

            dataModel.ProcessInstance = processId;
            dal.Update(dataModel);
        }
Beispiel #2
0
        public void TakeAction([FromBody] ViewModels.Warehouse.ReturnOrder viewModel)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    var mapperConfig = MapperConfig.Init();

                    mapperConfig.CreateMap <DataModels.Warehouse.ReturnOrder, ViewModels.Warehouse.ReturnOrder>();
                    DataModels.Warehouse.ReturnOrder dataModel = viewModel.Map <DataModels.Warehouse.ReturnOrder, ViewModels.Warehouse.ReturnOrder>(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));
            }
        }
Beispiel #3
0
        public void TakeAction(DataModels.Warehouse.ReturnOrder dataObject, long actionId, string choice, string comment)
        {
            using (IDAL dal = this.DAL)
            {
                dal.BeginTransaction();
                try
                {
                    var originalObject = dal.Read <DataModels.Warehouse.ReturnOrder>(dataObject.ReturnOrderId);

                    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 == "Onay" || choice == "Gönder" || choice == "Tamamlandı")
                    {
                        switch (actionInfo.ActivityName)
                        {
                        case "Şube Adımı": originalObject.Status = 2; break;

                        case "Bölge Sorumlusu Adımı": originalObject.Status = 3; break;

                        case "Merkez Adımı": originalObject.Status = 4; break;

                        case "Şube Sevk Adımı": originalObject.Status = 5; break;

                        case "Merkez Statu Belirleme Adımı": originalObject.Status = 6; break;
                        }
                    }
                    else if (choice == "Revize")
                    {
                        originalObject.Status = 1;
                    }
                    else if (choice == "İptal")
                    {
                        originalObject.Status = 7;
                    }

                    /*
                     * var planNote = new PurchaseOrderNote
                     * {
                     *  Event = dataObject.Event,
                     *  Organization = dataObject.Organization,
                     *  PurchaseOrder = dataObject.PurchaseOrderId,
                     *  Message = $"Alınan aksiyon: {choice}. Açıklama: {comment}"
                     *
                     * };
                     * dal.Create(planNote);
                     */

                    dal.Update(originalObject);

                    //if (actionInfo.ActivityName == "Şube Revizyon")
                    //{
                    //    IUniParameter prmPurchaseOrder = dal.CreateParameter("PurchaseOrder", dataObject.PurchaseOrderId);
                    //    var orderItemList = dal.List<PurchaseOrderItem>("POR_LST_PURCHASEORDERITEM_SP", prmPurchaseOrder).ToList();
                    //    action.AddProcessVariable("orderItems", orderItemList);
                    //}

                    action.Commit(choice, comment);
                    // Update via DAL

                    dal.CommitTransaction();

                    /*
                     * if (choice == "Onay" || choice == "Red" || choice == "Reddet")
                     * {
                     *  SendRequesterOrderMail(dataObject.ReturnOrderId, choice);
                     * }
                     */
                }
                catch
                {
                    dal.RollbackTransaction();
                    throw;
                }
            }
        }