Beispiel #1
0
        public bool IsDuplicateSRStatus(ProductSREntity product)
        {
            bool result = false;

            foreach (int statusId in product.ToSRStatusIds)
            {
                var cntStatus = _context.TB_C_SR_STATUS_CHANGE.Where(
                    x => x.PRODUCTGROUP_ID == product.ProductGroupId && x.PRODUCT_ID == product.ProductId &&
                    x.CAMPAIGNSERVICE_ID == product.CampaignId && x.TYPE_ID == product.TypeId &&
                    x.AREA_ID == product.AreaId && x.SUBAREA_ID == product.SubAreaId &&
                    x.FROM_SR_STATUS_ID == product.FromSRStatusId &&
                    x.TO_SR_STATUS_ID == statusId).Count();

                result = cntStatus > 0;
                if (result == true)
                {
                    break;
                }
            }

            return(result);
        }
Beispiel #2
0
 public bool SaveSRStatus(ProductSREntity productEntity)
 {
     _productDataAccess = new ProductDataAccess(_context);
     return(_productDataAccess.SaveSRStatus(productEntity));
 }
Beispiel #3
0
 public bool IsDuplicateSRStatus(ProductSREntity product)
 {
     _productDataAccess = new ProductDataAccess(_context);
     return(_productDataAccess.IsDuplicateSRStatus(product));
 }
Beispiel #4
0
        public ActionResult Edit(ProductViewModel productVM)
        {
            Logger.Info(_logMsg.Clear().SetPrefixMsg("Save SR Status").Add("ProductGroupId", productVM.ProductGroupId)
                        .Add("ProductId", productVM.ProductId).Add("CampaignId", productVM.CampaignId)
                        .Add("TypeId", productVM.TypeId).Add("AreaId", productVM.AreaId).Add("SubAreaId", productVM.SubAreaId)
                        .Add("FromSRStatusId", productVM.FromSRStatusId).Add("ToSRStatusId", productVM.ToSRStatusLeftId));

            try
            {
                if (ModelState.IsValid)
                {
                    ProductSREntity product = new ProductSREntity
                    {
                        ProductGroupId = productVM.ProductGroupId,
                        ProductId      = productVM.ProductId,
                        CampaignId     = productVM.CampaignId,
                        TypeId         = productVM.TypeId,
                        AreaId         = productVM.AreaId,
                        SubAreaId      = productVM.SubAreaId,
                        FromSRStatusId = productVM.FromSRStatusId,
                        ToSRStatusIds  = productVM.ToSRStatusRightId,
                        IsEdit         = productVM.IsEdit,
                        CreateUser     = UserInfo,
                        UpdateUser     = UserInfo
                    };

                    _productFacade = new ProductFacade();

                    #region "Check Duplicate"

                    if (productVM.IsEdit == false)
                    {
                        if (_productFacade.IsDuplicateSRStatus(product) == true)
                        {
                            ViewBag.ErrorMessage = Resource.Error_SaveFailedDuplicate;
                            goto Outer;
                        }
                    }

                    #endregion

                    bool success = _productFacade.SaveSRStatus(product);
                    if (success)
                    {
                        return(RedirectToAction("Search", "Product"));
                    }
                    ViewBag.ErrorMessage = Resource.Error_SaveFailed;
                }

Outer:
                TempData["productVM"] = productVM;
                return(InitEdit());
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
                Logger.Info(_logMsg.Clear().SetPrefixMsg("Save SR Status").ToFailLogString());
                return(Error(new HandleErrorInfo(ex, this.ControllerContext.RouteData.Values["controller"].ToString(),
                                                 this.ControllerContext.RouteData.Values["action"].ToString())));
            }
        }
Beispiel #5
0
        public ActionResult InitEdit(string jsonData = "{}")
        {
            ProductViewModel productVM = null;

            _commPoolFacade = new CommPoolFacade();

            var toRTStatuses = new Dictionary <string, string>();
            var fromStatuses = _commPoolFacade.GetSRStatusSelectList();
            var toLFStatuses = new Dictionary <string, string>(fromStatuses);
            ProductSearchFilter searchFilter = JsonConvert.DeserializeObject <ProductSearchFilter>(jsonData);

            if (TempData["productVM"] != null)
            {
                productVM = (ProductViewModel)TempData["productVM"];

                if (productVM.ToSRStatusRightId != null && productVM.ToSRStatusRightId.Count > 0)
                {
                    foreach (var s in productVM.ToSRStatusRightId)
                    {
                        var statusId   = s.ConvertToString();
                        var statusName = toLFStatuses[statusId];
                        toLFStatuses.RemoveByValue(statusId);
                        toRTStatuses.Add(statusId, statusName);
                    }
                }
            }
            else
            {
                productVM = new ProductViewModel(searchFilter);

                if (searchFilter != null)
                {
                    _productFacade = new ProductFacade();
                    ProductSREntity product = _productFacade.GetProduct(searchFilter);

                    if (product != null)
                    {
                        productVM.FromSRStatusId   = product.FromSRStatusId;
                        productVM.ProductGroupId   = product.ProductGroupId;
                        productVM.ProductGroupName = product.ProductGroupName;
                        productVM.ProductId        = product.ProductId;
                        productVM.ProductName      = product.ProductName;
                        productVM.CampaignId       = product.CampaignId;
                        productVM.CampaignName     = product.CampaignName;
                        productVM.TypeId           = product.TypeId;
                        productVM.TypeName         = product.TypeName;
                        productVM.AreaId           = product.AreaId;
                        productVM.AreaName         = product.AreaName;
                        productVM.SubAreaId        = product.SubAreaId;
                        productVM.SubAreaName      = product.SubAreaName;
                        productVM.IsEdit           = product.IsEdit;

                        productVM.CreateUser  = product.CreateUser != null ? product.CreateUser.FullName : "";
                        productVM.CreatedDate = product.CreatedDate.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime);
                        productVM.UpdateDate  = product.Updatedate.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime);
                        productVM.UpdateUser  = product.UpdateUser != null ? product.UpdateUser.FullName : "";

                        toRTStatuses = product.ToSRStatusList.ToDictionary(x => x.SRStatusId.ConvertToString(), x => x.SRStatusName);
                        productVM.ToSRStatusRightList = new MultiSelectList(toRTStatuses, "Key", "Value");

                        foreach (var s in toRTStatuses)
                        {
                            toLFStatuses.RemoveByValue(s.Key);
                        }
                    }
                }
            }

            productVM.FromStatusList      = new SelectList((IEnumerable)fromStatuses, "Key", "Value", string.Empty);
            productVM.ToSRStatusLeftList  = new MultiSelectList(toLFStatuses, "Key", "Value");
            productVM.ToSRStatusRightList = new MultiSelectList(toRTStatuses, "Key", "Value");

            if (productVM.IsEdit == false)
            {
                // default UserLogin
                if (this.UserInfo != null)
                {
                    var today = DateTime.Now;
                    productVM.CreateUser  = this.UserInfo.FullName;
                    productVM.CreatedDate = today.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime);
                    productVM.UpdateDate  = today.FormatDateTime(Constants.DateTimeFormat.DefaultFullDateTime);
                    productVM.UpdateUser  = this.UserInfo.FullName;
                }
            }


            return(View("~/Views/Product/Edit.cshtml", productVM));
        }
Beispiel #6
0
        private void GetToSRStatusList(ProductSREntity product)
        {
            if (product != null)
            {
                var query = from cs in _context.TB_C_SR_STATUS_CHANGE
                            join ts in _context.TB_C_SR_STATUS on cs.TO_SR_STATUS_ID equals ts.SR_STATUS_ID
                            where cs.PRODUCTGROUP_ID == product.ProductGroupId &&
                            cs.PRODUCT_ID == product.ProductId &&
                            cs.CAMPAIGNSERVICE_ID == product.CampaignId &&
                            cs.TYPE_ID == product.TypeId &&
                            cs.AREA_ID == product.AreaId &&
                            cs.SUBAREA_ID == product.SubAreaId &&
                            cs.FROM_SR_STATUS_ID == product.FromSRStatusId
                            select new SRStatusEntity
                {
                    SRStatusId   = ts.SR_STATUS_ID,
                    SRStatusCode = ts.SR_STATUS_CODE,
                    SRStatusName = ts.SR_STATUS_NAME
                };

                product.ToSRStatusList = query.Any() ? query.ToList() : null;

                #region "Get UserCreate"
                // UserInfo
                var queryUserCreate = from cs in _context.TB_C_SR_STATUS_CHANGE
                                      join ts in _context.TB_C_SR_STATUS on cs.TO_SR_STATUS_ID equals ts.SR_STATUS_ID
                                      from ucs in _context.TB_R_USER.Where(o => o.USER_ID == cs.CREATE_USER).DefaultIfEmpty()
                                      from us in _context.TB_R_USER.Where(o => o.USER_ID == cs.UPDATE_USER).DefaultIfEmpty()
                                      where cs.PRODUCTGROUP_ID == product.ProductGroupId &&
                                      cs.PRODUCT_ID == product.ProductId &&
                                      cs.CAMPAIGNSERVICE_ID == product.CampaignId &&
                                      cs.TYPE_ID == product.TypeId &&
                                      cs.AREA_ID == product.AreaId &&
                                      cs.SUBAREA_ID == product.SubAreaId &&
                                      cs.FROM_SR_STATUS_ID == product.FromSRStatusId
                                      select new ProductSREntity
                {
                    CreatedDate = cs.CREATE_DATE,
                    Updatedate  = cs.UPDATE_DATE,
                    CreateUser  = ucs != null
                                              ? new UserEntity
                    {
                        Firstname    = ucs.FIRST_NAME,
                        Lastname     = ucs.LAST_NAME,
                        PositionCode = ucs.POSITION_CODE
                    }
                                              : null,
                    UpdateUser = us != null
                                              ? new UserEntity
                    {
                        Firstname    = us.FIRST_NAME,
                        Lastname     = us.LAST_NAME,
                        PositionCode = us.POSITION_CODE
                    }
                                              : null
                };

                var userObj = queryUserCreate.Any() ? queryUserCreate.FirstOrDefault() : null;
                if (userObj != null)
                {
                    product.CreatedDate = userObj.CreatedDate;
                    product.Updatedate  = userObj.Updatedate;
                    product.CreateUser  = userObj.CreateUser;
                    product.UpdateUser  = userObj.UpdateUser;
                }

                #endregion
            }
        }
Beispiel #7
0
        public bool SaveSRStatus(ProductSREntity product)
        {
            try
            {
                var today = DateTime.Now;

                using (var transaction = _context.Database.BeginTransaction(IsolationLevel.ReadCommitted))
                {
                    _context.Configuration.AutoDetectChangesEnabled = false;

                    try
                    {
                        if (product.IsEdit == true)
                        {
                            var statusChanges = _context.TB_C_SR_STATUS_CHANGE.Where(
                                x => x.PRODUCTGROUP_ID == product.ProductGroupId && x.PRODUCT_ID == product.ProductId &&
                                x.CAMPAIGNSERVICE_ID == product.CampaignId && x.TYPE_ID == product.TypeId &&
                                x.AREA_ID == product.AreaId && x.SUBAREA_ID == product.SubAreaId &&
                                x.FROM_SR_STATUS_ID == product.FromSRStatusId);

                            if (statusChanges.Any())
                            {
                                _context.TB_C_SR_STATUS_CHANGE.RemoveRange(statusChanges);
                                this.Save();
                            }
                        }

                        if (product.ToSRStatusIds != null && product.ToSRStatusIds.Count > 0)
                        {
                            foreach (int statusId in product.ToSRStatusIds)
                            {
                                var statusChange = new TB_C_SR_STATUS_CHANGE();
                                statusChange.PRODUCTGROUP_ID    = product.ProductGroupId;
                                statusChange.PRODUCT_ID         = product.ProductId;
                                statusChange.CAMPAIGNSERVICE_ID = product.CampaignId;
                                statusChange.TYPE_ID            = product.TypeId;
                                statusChange.AREA_ID            = product.AreaId;
                                statusChange.SUBAREA_ID         = product.SubAreaId;
                                statusChange.FROM_SR_STATUS_ID  = product.FromSRStatusId;
                                statusChange.TO_SR_STATUS_ID    = statusId;
                                statusChange.CREATE_USER        = product.CreateUser.UserId;
                                statusChange.UPDATE_USER        = product.UpdateUser.UserId;
                                statusChange.CREATE_DATE        = today;
                                statusChange.UPDATE_DATE        = today;

                                _context.TB_C_SR_STATUS_CHANGE.Add(statusChange);
                            }
                            this.Save();
                        }

                        transaction.Commit();
                        return(true);
                    }
                    catch (Exception ex)
                    {
                        transaction.Rollback();
                        Logger.Error("Exception occur:\n", ex);
                    }
                    finally
                    {
                        _context.Configuration.AutoDetectChangesEnabled = true;
                    }
                }
            }
            catch (Exception ex)
            {
                Logger.Error("Exception occur:\n", ex);
            }

            return(false);
        }