Example #1
0
        public object Update([FromBody] FundAccEntryModel data)
        {
            var msg = new JMessage()
            {
                Error = false
            };

            try
            {
                var userName = User.Identity.Name;

                var checkRole = _context.Users.FirstOrDefault(x => x.UserName.ToLower() == userName.ToLower());
                if (checkRole != null)
                {
                    var type        = checkRole.UserType;
                    var role        = string.Empty;
                    var userInGroup = _context.AdUserInGroups.FirstOrDefault(x => x.UserId == checkRole.Id && x.IsMain == true);
                    var obj         = _context.FundAccEntrys.FirstOrDefault(x => x.AetCode.ToLower() == data.AetCode.ToLower());
                    if (userInGroup != null)
                    {
                        var roleId   = userInGroup.RoleId;
                        var userRole = _context.Roles.FirstOrDefault(x => x.Id == roleId);
                        role = userRole.Code;
                    }
                    if (type == 10 || role == "001")
                    {
                        msg.Error = true;
                        msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_NO_RIGHT_EDIT"));//"Bạn không có quyền hạn để sửa phiếu thu / chi !";
                    }
                    else if (obj.Status == "APPROVED" || obj.Status == "REFUSE")
                    {
                        msg.Error = true;
                        msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_NOT_EDIT_FAE_APPROVAL"));//"Không được sửa phiếu thu chi đã được xét duyệt !";
                    }
                    else
                    {
                        if (obj != null)
                        {
                            var deadLine = !string.IsNullOrEmpty(data.DeadLine) ? DateTime.ParseExact(data.DeadLine, "dd/MM/yyyy", CultureInfo.InvariantCulture) : (DateTime?)null;
                            if (deadLine <= DateTime.Now)
                            {
                                obj.IsPlan = false;
                            }
                            else
                            {
                                obj.IsPlan = true;
                            }
                            obj.AetCode         = data.AetCode;
                            obj.AetDescription  = data.AetDescription;
                            obj.AetRelative     = data.AetRelative;
                            obj.AetRelativeType = data.AetRelativeType;
                            obj.AetType         = data.AetType;
                            obj.CatCode         = data.CatCode;
                            obj.UpdatedBy       = User.Identity.Name;
                            obj.UpdatedTime     = DateTime.Now;

                            obj.Payer      = data.Payer;
                            obj.Receiptter = data.Receiptter;
                            obj.Title      = data.Title;
                            obj.Total      = data.Total;
                            obj.DeadLine   = deadLine;
                            obj.Status     = data.Status;
                            obj.GoogleMap  = data.GoogleMap;
                            obj.Address    = data.Address;

                            _context.FundAccEntrys.Update(obj);
                            _context.SaveChanges();

                            var updateTracking = false;
                            var objTracking    = _context.FundAccEntryTrackings.LastOrDefault(x => x.AetCode.Equals(obj.AetCode));
                            if (objTracking != null)
                            {
                                if (objTracking.Action != obj.Status)
                                {
                                    updateTracking = true;
                                }
                            }

                            if (updateTracking)
                            {
                                var entryTracking = new FundAccEntryTracking
                                {
                                    AetCode     = obj.AetCode,
                                    CreatedBy   = User.Identity.Name,
                                    CreatedTime = DateTime.Now,
                                    Action      = obj.Status,
                                    Note        = obj.AetDescription
                                };

                                _context.FundAccEntryTrackings.Add(entryTracking);
                                _context.SaveChanges();
                            }

                            if (data.ListFileAccEntry.Count > 0)
                            {
                                foreach (var item in data.ListFileAccEntry)
                                {
                                    var fundFileObj = _context.FundFiless.FirstOrDefault(x => x.Id == item.Id);
                                    if (fundFileObj == null)
                                    {
                                        var fundFile = new FundFiles
                                        {
                                            AetCode     = obj.AetCode,
                                            FileName    = item.FileName,
                                            FilePath    = item.FilePath,
                                            FileType    = item.FileType,
                                            CreatedBy   = User.Identity.Name,
                                            CreatedTime = DateTime.Now,
                                        };

                                        _context.FundFiless.Add(fundFile);
                                    }
                                    _context.SaveChanges();
                                }
                            }

                            if (data.ListFileAccEntryRemove.Count > 0)
                            {
                                foreach (var item in data.ListFileAccEntryRemove)
                                {
                                    var funFileRemove = _context.FundFiless.FirstOrDefault(x => x.Id == item.Id);
                                    if (funFileRemove != null)
                                    {
                                        _context.FundFiless.Remove(funFileRemove);
                                    }
                                }

                                _context.SaveChanges();
                            }
                            else
                            {
                                msg.Error = true;
                                msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_UPDATE_ERROR"));//"Cập nhật phiếu thu chi thất bại !";
                            }

                            msg.Object = obj;
                            msg.Title  = String.Format(CommonUtil.ResourceValue("FAE_MSG_UPDATE_SUCCESS"));//"Cập nhật phiếu thu chi thành công !";
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                msg.Error = true;
                msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_UPDATE_FAIL"));//"Có lỗi xảy ra khi cập nhật!";
            }
            return(Json(msg));
        }
Example #2
0
        public JsonResult InsertAccEntryTracking(string aetCode, string status, string note)
        {
            var msg = new JMessage()
            {
                Error = false
            };

            try
            {
                var userName = User.Identity.Name;

                var checkRole = _context.Users.FirstOrDefault(x => x.UserName.ToLower() == userName.ToLower());
                if (checkRole != null)
                {
                    var type        = checkRole.UserType;
                    var role        = string.Empty;
                    var userInGroup = _context.AdUserInGroups.FirstOrDefault(x => x.UserId == checkRole.Id && x.IsMain == true);
                    if (userInGroup != null)
                    {
                        var roleId   = userInGroup.RoleId;
                        var userRole = _context.Roles.FirstOrDefault(x => x.Id == roleId);
                        role = userRole.Code;
                    }
                    if (type == 10 || role == "001")
                    {
                        var entryTracking = new FundAccEntryTracking
                        {
                            AetCode     = aetCode,
                            CreatedBy   = User.Identity.Name,
                            CreatedTime = DateTime.Now,
                            Action      = status,
                            Note        = note
                        };
                        _context.FundAccEntryTrackings.Add(entryTracking);
                        _context.SaveChanges();

                        var obj = _context.FundAccEntrys.FirstOrDefault(x => x.AetCode.Equals(aetCode));
                        if (obj != null)
                        {
                            obj.Status = status;
                            _context.FundAccEntrys.Update(obj);
                            _context.SaveChanges();
                            var Notif1 = (from a in _context.FundAccEntrys.Where(x => x.IsDeleted == false && x.IsPlan == false && x.AetType == obj.AetType)
                                          join b in _context.FundAccEntryTrackings.Where(x => x.IsDeleted == false && x.Action == "APPROVED")
                                          on a.AetCode equals b.AetCode
                                          select new
                            {
                                a.CatCode,
                                a.AetType,
                                a.AetCode,
                                a.DeadLine,
                                a.Payer,
                                a.Receiptter,
                                a.Total,
                            }).ToList();
                            var Notif2 = (from a in Notif1.Where(x => x.CatCode == obj.CatCode)
                                          join b in _context.ParamForWarnings.Where(x => x.isDeleted == false && x.aetType == obj.AetType && x.catCode == obj.CatCode)
                                          on a.CatCode equals b.catCode
                                          where a.DeadLine >= b.fromTime && a.DeadLine <= b.toTime
                                          group a by new { a.CatCode, a.AetType }
                                          into list
                                          orderby list.Key.CatCode
                                          select new
                            {
                                list,
                                total = list.Sum(x => x.Total),
                                catCode = list.Key.CatCode,
                                aetType = list.Key.AetType,
                                maxDate = list.Max(x => x.DeadLine),
                                minDate = list.Min(x => x.DeadLine),
                            }).ToList();
                            var queryNotif = (from a in Notif2.Where(x => x.aetType == obj.AetType)
                                              join b in _context.ParamForWarnings.Where(x => x.isDeleted == false && x.aetType == obj.AetType)
                                              on a.catCode equals b.catCode
                                              where a.maxDate <= b.toTime && a.minDate >= b.fromTime && a.total >= b.total
                                              select new
                            {
                                id = b.id,
                                maxTotal = b.total,
                                fromDate = b.fromTime,
                                toDate = b.toTime,
                                aetType = b.aetType,
                                catCode = b.catCode,
                                currency = b.currency,
                                total = a.total,
                            }).ToList();
                            int count = queryNotif.Count();
                            if (count > 0)
                            {
                                SendPushNotification("Có một danh mục thu chi vượt hạn mức");
                            }
                        }

                        msg.Title = "Cập nhật trạng thái thành công !";
                    }
                    else
                    {
                        msg.Error = true;
                        msg.Title = "Bạn không có quyền để thực hiện nghiệp vụ này !";
                    }
                }
                else
                {
                    msg.Title = "Thêm phiếu thu chi thành công !";
                }
            }
            catch (Exception ex)
            {
                msg.Error = true;
                msg.Title = "Có lỗi xảy ra khi thêm !";
            }
            return(Json(msg));
        }
Example #3
0
        public JsonResult Insert([FromBody] FundAccEntryModel data)
        {
            var msg = new JMessage()
            {
                Error = false
            };


            try
            {
                var checkExist = _context.FundAccEntrys.FirstOrDefault(x => x.AetCode.ToLower() == data.AetCode.ToLower());
                if (checkExist != null)
                {
                    msg.Error = true;
                    msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_FAE"));//"Đã tồn tại phiếu thu chi !";
                }
                else
                {
                    var isplan   = true;
                    var deadLine = !string.IsNullOrEmpty(data.DeadLine) ? DateTime.ParseExact(data.DeadLine, "dd/MM/yyyy", CultureInfo.InvariantCulture) : (DateTime?)null;
                    if (deadLine <= DateTime.Now)
                    {
                        isplan = false;
                    }

                    var obj = new FundAccEntry
                    {
                        AetCode         = data.AetCode,
                        AetDescription  = data.AetDescription,
                        AetRelative     = data.AetRelative,
                        AetRelativeType = data.AetRelativeType,
                        AetType         = data.AetType,
                        CatCode         = data.CatCode,
                        CreatedTime     = DateTime.Now,
                        Currency        = data.Currency,
                        DeadLine        = deadLine,
                        IsDeleted       = false,
                        Payer           = data.Payer,
                        Receiptter      = data.Receiptter,
                        Title           = data.Title,
                        Total           = data.Total,
                        Status          = "CREATED",
                        GoogleMap       = data.GoogleMap,
                        Address         = data.Address,
                        IsPlan          = isplan,
                    };
                    _context.FundAccEntrys.Add(obj);
                    _context.SaveChanges();
                    var entryTracking = new FundAccEntryTracking
                    {
                        AetCode     = obj.AetCode,
                        CreatedBy   = User.Identity.Name,
                        CreatedTime = DateTime.Now,
                        Action      = obj.Status,
                        Note        = obj.AetDescription
                    };
                    _context.FundAccEntryTrackings.Add(entryTracking);
                    _context.SaveChanges();

                    if (data.ListFileAccEntry.Count > 0)
                    {
                        foreach (var item in data.ListFileAccEntry)
                        {
                            var fundFile = new FundFiles
                            {
                                AetCode     = obj.AetCode,
                                FileName    = item.FileName,
                                FilePath    = item.FilePath,
                                FileType    = item.FileType,
                                CreatedBy   = User.Identity.Name,
                                CreatedTime = DateTime.Now,
                            };

                            _context.FundFiless.Add(fundFile);
                        }

                        _context.SaveChanges();
                    }

                    msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_ADD_FAE_SUCCESS"));//"Thêm phiếu thu chi thành công !";
                }
            }
            catch (Exception ex)
            {
                msg.Error = true;
                msg.Title = String.Format(CommonUtil.ResourceValue("FAE_MSG_ADD_FAE_ERROR"));//"Có lỗi xảy ra khi thêm !";
            }
            return(Json(msg));
        }