public ActionResult DeleteConfirmed(int id)
        {
            PhoneCallDetail phoneCallDetail = db.PhoneCallDetails.Find(id);

            db.PhoneCallDetails.Remove(phoneCallDetail);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
 public ActionResult Edit([Bind(Include = "KeyId,PhoneNumberFK,TimeStart,TimeFinish,SubTotal")] PhoneCallDetail phoneCallDetail)
 {
     if (ModelState.IsValid)
     {
         db.Entry(phoneCallDetail).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(phoneCallDetail));
 }
Exemple #3
0
 private void LoadPhoneCallDetail(PhoneCallDetail phoneCallDetail)
 {
     if (phoneCallDetail != null)
     {
         int n = grvPhoneCallDetail.Rows.Add();
         grvPhoneCallDetail.Rows[n].Cells[0].Value = phoneCallDetail.PhoneNumberFKNavigation.PhoneNo;
         grvPhoneCallDetail.Rows[n].Cells[1].Value = phoneCallDetail.TimeStart;
         grvPhoneCallDetail.Rows[n].Cells[2].Value = phoneCallDetail.TimeFinish;
         grvPhoneCallDetail.Rows[n].Cells[3].Value = phoneCallDetail.SubTotal;
     }
 }
        public ActionResult Create([Bind(Include = "KeyId,PhoneNumberFK,TimeStart,TimeFinish,SubTotal")] PhoneCallDetail phoneCallDetail)
        {
            if (ModelState.IsValid)
            {
                db.PhoneCallDetails.Add(phoneCallDetail);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(phoneCallDetail));
        }
        // GET: PhoneCallDetail/Delete/5
        public ActionResult Delete(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            PhoneCallDetail phoneCallDetail = db.PhoneCallDetails.Find(id);

            if (phoneCallDetail == null)
            {
                return(HttpNotFound());
            }
            return(View(phoneCallDetail));
        }
        public List <PhoneCallDetail> RandomPhoneCallDetail(int lines, List <PhoneNumber> availableNumbers, DateTime dateStart, DateTime dateEnd)
        {
            List <PhoneCallDetail> phoneCallDetails = new List <PhoneCallDetail>();

            for (int i = 0; i < lines; i++)
            {
                PhoneCallDetail phoneCallDetail = new PhoneCallDetail();
                PhoneNumber     phoneNumber     = RandomPhoneNumber(availableNumbers);
                phoneCallDetail.KeyId         = 0;
                phoneCallDetail.PhoneNumberFK = phoneNumber.KeyId;
                phoneCallDetail.TimeStart     = RandomDateRange(dateStart, dateEnd);
                phoneCallDetail.TimeFinish    = RandomDateEnd(phoneCallDetail.TimeStart);
                phoneCallDetail.SubTotal      = 0;

                phoneCallDetails.Add(phoneCallDetail);
            }

            return(phoneCallDetails.OrderBy(x => x.TimeStart).ToList());
        }
        public void CalculatePhoneCallDetails(int Year, int Month)
        {
            DateTime dateStartOfMonth = new DateTime(Year, Month, 1);

            if (postageBUS.GetTheLastPostage() == null)
            {
                MessageBox.Show("Không có dữ liệu tính giá cước");
            }
            else if (periodBUS.GetByDate(dateStartOfMonth) != null)
            {
                MessageBox.Show($"Dữ liệu cước tháng {dateStartOfMonth.Month}/{dateStartOfMonth.Year} đã được tính");
            }
            else if (!CheckExistPhoneCallLog(dateStartOfMonth))
            {
                MessageBox.Show($"Dữ liệu chi tiết cuộc gọi tháng {dateStartOfMonth.Month}/{dateStartOfMonth.Year} chưa có");
            }
            else
            {
                string fileName = Month.ToString() + Year.ToString() + ".txt";

                string dirRoot   = Path.GetDirectoryName(Path.GetDirectoryName(System.IO.Directory.GetCurrentDirectory()));
                string dirOfFile = dirRoot + Const.PhoneCallDirection;
                string dirToFile = Path.Combine(dirOfFile, fileName);

                string                 message = "";
                List <PhoneNumber>     availablePhoneNumber = phoneNumberBUS.GetAvailablePhoneNumber(dateStartOfMonth);
                List <PhoneCallDetail> phoneCallDetails     = new List <PhoneCallDetail>();

                using (StreamReader sr = new StreamReader(dirToFile))
                {
                    string line;
                    int    lineNo = 0;
                    while ((line = sr.ReadLine()) != null)
                    {
                        var      data  = line.Split('\t');
                        DateTime Start = new DateTime();
                        DateTime End   = new DateTime();
                        if (!(DateTime.TryParse(data[1], out Start) && DateTime.TryParse(data[2], out End)))
                        {
                            message += $"Dòng thứ {lineNo} có lỗi: Ngày tháng bắt đầu hoặc kết thúc bị sai\n";
                        }
                        else if (Start > End)
                        {
                            message += $"Dòng thứ {lineNo} có lỗi: Ngày bắt đầu sau ngày kết thúc\n";
                        }
                        else if (!availablePhoneNumber.Any(x => x.KeyId == Convert.ToInt32(data[0])))
                        {
                            message += $"Dòng thứ {lineNo} có lỗi: SĐT chưa đóng tiền hoặc điện thoại này không có hiệu lực\n";
                        }
                        else
                        {
                            PhoneCallDetail phoneCallDetail = new PhoneCallDetail();
                            phoneCallDetail.PhoneNumberFK = Convert.ToInt32(data[0]);
                            phoneCallDetail.TimeStart     = Start;
                            phoneCallDetail.TimeFinish    = End;
                            phoneCallDetail.SubTotal      = ChargePhoneCallDetail(Start, End);
                            phoneCallDetails.Add(phoneCallDetail);

                            lineNo++;
                        }
                    }
                }

                if (message != "")
                {
                    message += "Các dòng này sẽ không được ghi";
                    MessageBox.Show(message);
                }

                Period period = new Period();
                period.PeriodPayment = dateStartOfMonth;
                Period periodRs = periodBUS.SaveEntities(period);

                phoneCallDetailDAL.Add(phoneCallDetails);

                List <InvoicePostage> result = phoneCallDetails
                                               .GroupBy(c => c.PhoneNumberFK)
                                               .Select(cl => new InvoicePostage
                {
                    PeriodFK      = periodRs.KeyId,
                    PhoneNumberFK = cl.First().PhoneNumberFK,
                    Total         = cl.Sum(c => c.SubTotal),
                    PaidPostage   = false,
                }).ToList();

                invoicePostageBUS.SaveEntities(result);

                MessageBox.Show($"Tính cước tháng {dateStartOfMonth.Month}/{dateStartOfMonth.Year} thành công");
            }
        }