Ejemplo n.º 1
0
        public IActionResult Create_List_Debit()                            // hàm sẽ tạo debit detail từ new first debit, new incurred debit , new last debit của user
        {
            var timenow = DateTime.Parse(DateTime.Now.ToString("MM-yyyy")); // biến string nhập vào là 1 ngày
            var result  = IsAvailable_DebitDetail_Has_Time(timenow);

            if (result == false)
            {
                return(Json(new { success = false, message = "Đã tạo báo cáo của tháng hiện tại rồi, vui lòng không tạo lại" }));
            }
            var         customerlist = _usermanager.GetUsersInRoleAsync("Customer").Result; // tạo 1 list customer role là khách hàng từ list user
            DebitDetail debitdetail  = new DebitDetail();

            foreach (var item in customerlist)
            {
                if (item.new_last_debit != 0 || ((item.new_first_debit + item.new_incurred_debit) == 0 && item.new_first_debit != 0)) // cuối tháng có nợ , hoặc nợ cuối tháng = 0 vì nợ đầu - nợ phát sinh hết( nợ đầu phải khác 0)
                {
                    debitdetail.Id = Guid.NewGuid().ToString();
                    debitdetail.ApplicationUserId = item.Id;
                    debitdetail.TimeRecord        = timenow;
                    debitdetail.FirstDebit        = item.new_first_debit;
                    debitdetail.IncurredDebit     = item.new_incurred_debit;
                    debitdetail.LastDebit         = item.new_last_debit;
                    _db.DebitDetails.Add(debitdetail);
                    _db.SaveChanges();
                    // lưu lại giá trị cũ để update
                    item.old_first_debit    = item.new_first_debit;
                    item.old_incurred_debit = item.new_incurred_debit;
                    item.old_last_debit     = item.new_last_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                    item.new_first_debit    = item.new_last_debit;
                    item.new_incurred_debit = 0;
                    item.new_last_debit     = item.new_first_debit + item.new_incurred_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                }
            }
            return(Json(new { success = true, message = "" }));
        }
Ejemplo n.º 2
0
        public IActionResult Update_List_Debit()
        {
            var timenow = DateTime.Parse(DateTime.Now.ToString("MM-yyyy"));
            var result  = IsAvailable_DebitDetail_Has_Time(timenow);

            if (result == true)
            {
                return(Json(new { success = false, message = "Chưa tạo báo cáo của tháng hiện tại, nên không thể cập nhật báo cáo được" }));
            }
            var         customerlist = _usermanager.GetUsersInRoleAsync("Customer").Result; // tạo 1 list customer role là khách hàng từ list user
            DebitDetail debitdetail  = new DebitDetail();

            // xóa các debit detail cũ của tháng đó đi
            Remove_debit_detail_in_month(timenow);
            foreach (var item in customerlist)
            {
                if (item.old_last_debit != 0 || ((item.old_first_debit + item.old_incurred_debit) == 0 && item.old_first_debit != 0)) // nếu đã tồn tại nợ cũ
                {
                    // cập nhật lại nợ phát sinh , nợ cuối của khách hàng
                    item.old_incurred_debit = item.old_incurred_debit + item.new_incurred_debit;
                    item.old_last_debit     = item.old_first_debit + item.old_incurred_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                    // add lại debit detail cho user với incurred mới
                    debitdetail.Id = Guid.NewGuid().ToString();
                    debitdetail.ApplicationUserId = item.Id;
                    debitdetail.TimeRecord        = timenow;
                    debitdetail.FirstDebit        = item.old_first_debit;
                    debitdetail.IncurredDebit     = item.old_incurred_debit;
                    debitdetail.LastDebit         = item.old_last_debit;
                    _db.DebitDetails.Add(debitdetail);
                    _db.SaveChanges();
                    // reset lại new debit sau khi update
                    item.new_first_debit    = item.new_last_debit;
                    item.new_incurred_debit = 0;
                    item.new_last_debit     = item.new_first_debit + item.new_incurred_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                }
                else if (item.new_last_debit != 0 || ((item.new_first_debit + item.new_incurred_debit) == 0 && item.new_first_debit != 0)) // nếu nợ cũ không tồn tại và nợ mới thì có -> phải tạo mới
                {
                    debitdetail.Id = Guid.NewGuid().ToString();
                    debitdetail.ApplicationUserId = item.Id;
                    debitdetail.TimeRecord        = timenow;
                    debitdetail.FirstDebit        = item.new_first_debit;
                    debitdetail.IncurredDebit     = item.new_incurred_debit;
                    debitdetail.LastDebit         = item.new_last_debit;
                    _db.DebitDetails.Add(debitdetail);
                    _db.SaveChanges();
                    // lưu lại giá trị cũ để update
                    item.old_first_debit    = item.new_first_debit;
                    item.old_incurred_debit = item.new_incurred_debit;
                    item.old_last_debit     = item.new_last_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                    item.new_first_debit    = item.new_last_debit;
                    item.new_incurred_debit = 0;
                    item.new_last_debit     = item.new_first_debit + item.new_incurred_debit;
                    _db.AppUsers.Update(item);
                    _db.SaveChanges();
                }
            }
            return(Json(new { success = true, message = "" }));
        }