コード例 #1
0
            public static string Calculator(DateTime dt)
            {
                try
                {
                    var thang = dt.Month;
                    var nam   = dt.Year;

                    var list_sl_ngay = db.TongSanLuong_Ngay.Where(x => x.Ngay.Month == thang && x.Ngay.Year == nam).Select(x => x.GiaTri);
                    if (list_sl_ngay != null && list_sl_ngay.Count() != 0)
                    {
                        var sum = 0.0;
                        foreach (var item in list_sl_ngay)
                        {
                            if (item.HasValue)
                            {
                                sum += item.Value;
                            }
                        }

                        var rs = db.TongSanLuong_Thang.Where(x => x.Thang == thang && x.Nam == nam).FirstOrDefault();
                        if (rs == null)
                        {
                            TongSanLuong_Thang tsnl = new TongSanLuong_Thang();
                            tsnl.Thang  = dt.Month;
                            tsnl.Nam    = dt.Year;
                            tsnl.GiaTri = sum;
                            db.TongSanLuong_Thang.Add(tsnl);
                        }
                        else
                        {
                            rs.GiaTri = sum;
                        }
                        db.SaveChanges();
                        return("success");
                    }
                    else
                    {
                        return("failed");
                    }
                }
                catch
                {
                    return("failed");
                }
            }
コード例 #2
0
 public static string Update(TongSanLuong_Thang tslt)
 {
     tslt.GiaTri = Convert.ToDouble(string.Format("{0:0.##}", tslt.GiaTri.ToString()));
     try
     {
         var rs = db.TongSanLuong_Thang.Find(tslt.ID);
         if (rs == null)
         {
             return("Không tìm thấy TongSanLuong_Thang tương ứng");
         }
         rs.GiaTri = tslt.GiaTri;
         db.SaveChanges();
         return("success");
     }
     catch (Exception ex)
     {
         return(ex.Message);
     }
 }
コード例 #3
0
            public static string Insert(TongSanLuong_Thang tslt)
            {
                tslt.GiaTri = Convert.ToDouble(string.Format("{0:0.##}", tslt.GiaTri.ToString()));

                try
                {
                    var rs = db.TongSanLuong_Thang.Where(x => x.Thang == tslt.Thang && x.Nam == tslt.Nam).FirstOrDefault();
                    if (rs != null)
                    {
                        return("Bản ghi TongSanLuong_Thang đã tồn tại");
                    }
                    db.TongSanLuong_Thang.Add(tslt);
                    db.SaveChanges();
                    return("success");
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }
            }
コード例 #4
0
        public void OnCreatedSanLuong(object source, FileSystemEventArgs e)
        {
            while (true)
            {
                try
                {
                    DbContextService db = new DbContextService();
                    // get cong thuc
                    DateTime date       = DateTime.Now.AddDays(-1);
                    string   congThuc   = db.CongThucTongSanLuongs.Where(x => x.ThoiGianBatDau <date && x.ThoiGianKetThuc> date).Select(x => x.CongThuc).First();
                    int      congThucID = db.CongThucTongSanLuongs.Where(x => x.ThoiGianBatDau <date && x.ThoiGianKetThuc> date).Select(x => x.ID).First();
                    string[] divided    = congThuc.Split(' ');// tach cac phan tu trong cong thuc
                    // add Phan Tu trong cong thuc
                    List <PhanTu> listPhanTu = new List <PhanTu>();
                    for (int i = 0; i < divided.Length; i++)
                    {
                        if (divided[i].Length > 1) // divice la phan tu
                        {
                            string[] temp      = divided[i].Split('~');
                            var      tenDiemDo = temp[0];
                            var      tenKenh   = temp[1];
                            PhanTu   pt        = new PhanTu();
                            pt.DiemDoID = db.DiemDoes.Where(x => x.TenDiemDo == tenDiemDo).Select(x => x.ID).FirstOrDefault();
                            if (pt.DiemDoID == 0)
                            {
                                ShowNotificationMessage(50, "Error", "Điểm đo trong Công thức không tồn tại !!!", ToolTipIcon.Error);
                                return;
                            }
                            pt.KenhID = db.Kenhs.Where(x => x.Ten == tenKenh).Select(x => x.ID).FirstOrDefault();
                            if (pt.KenhID == 0)
                            {
                                ShowNotificationMessage(50, "Error", "Kênh trong Công thức không tồn tại !!!", ToolTipIcon.Error);
                                return;
                            }
                            pt.index = i;
                            listPhanTu.Add(pt);
                        }
                    }
                    bool checkDiemDoTSLN = true;

                    //Console.WriteLine("Try to access file !!!");
                    StreamReader reader = new StreamReader(e.FullPath);
                    //Console.WriteLine("Access file successfully !!!");
                    string fileName = e.Name;
                    // get DiemDoID
                    int get_DiemDoID = DiemDoDAO.GetDiemDoID(int.Parse(fileName.Split('.')[0].Substring(5)));
                    if (get_DiemDoID == 0)
                    {
                        ShowNotificationMessage(50, "Error", "Điểm đo không tồn tại !!!", ToolTipIcon.Error);
                        reader.Close();
                        return;
                    }
                    // check điểm đo có trong công thức hay không
                    int indexPhanTu = 0;
                    foreach (var i in listPhanTu)
                    {
                        if (i.DiemDoID == get_DiemDoID)
                        {
                            checkDiemDoTSLN = true;
                            indexPhanTu     = listPhanTu.IndexOf(i);
                            ShowNotificationMessage(50, "Thông báo", "Điểm đo có trong công thức !!!", ToolTipIcon.Info);
                            break;
                        }
                    }
                    if (!checkDiemDoTSLN)
                    {
                        ShowNotificationMessage(50, "Thông báo", "Điểm đo không có trong công thức !!!", ToolTipIcon.Info);
                        checkDiemDoTSLN = false;
                    }


                    string day   = fileName.Substring(0, 2);
                    string month = fileName.Substring(2, 2);
                    //fix year
                    string   year = (DateTime.Now.Year).ToString();
                    DateTime time = DateTime.Parse(month + "/" + day + "/" + year);
                    // read file
                    string line;
                    int    count = 1;
                    while ((line = reader.ReadLine()) != null)
                    {
                        if (count == 1 || count == 2 || count == 8 || count == 9)
                        {
                            string[] word       = line.Split(',');
                            int      get_KenhID = KenhDAO.GetKenhID(word[1]);
                            if (get_KenhID == 0)
                            {
                                ShowNotificationMessage(50, "Error", "Kênh không tồn tại !!!", ToolTipIcon.Error);
                                reader.Close();
                                return;
                            }
                            //check kenh
                            bool checkKenhTSLN = false;
                            if (listPhanTu[indexPhanTu].KenhID == get_KenhID)
                            {
                                checkKenhTSLN = true;
                            }


                            for (int i = 2; i < word.Length; i++)
                            {
                                SanLuong sl = new SanLuong
                                {
                                    Ngay     = time,
                                    DiemDoID = get_DiemDoID,
                                    KenhID   = get_KenhID
                                };
                                sl.ChuKy = short.Parse((i - 1).ToString());
                                /*sl.GiaTri = Convert.ToDouble(string.Format("{0:0.##}", word[i]) );*/
                                sl.GiaTri = Convert.ToDouble(word[i]);
                                if (!SanLuongDAO.checkExistSL(sl))
                                {
                                    var rs = SanLuongDAO.InsertSanLuong(sl);
                                    if (rs != "success")
                                    {
                                        ShowNotificationMessage(50, "Error", rs, ToolTipIcon.Error);
                                        reader.Close();
                                        return;
                                    }

                                    // tinh luy ke
                                    if (checkDiemDoTSLN && checkKenhTSLN)
                                    {
                                        // tinh tong san luong ngay
                                        bool checkInsertDay         = false;
                                        bool checkInsertMonth       = false;
                                        bool checkInsertYear        = false;
                                        bool checkInsertMonthYear   = false;
                                        TongSanLuong_Ngay     tslng = TongSanLuong_NgayDAO.GetByNgayAndChuKy(time, i - 1);
                                        TongSanLuong_Thang    tslt  = TongSanLuong_ThangDAO.GetByTime(time);
                                        TongSanLuong_Nam      tsln  = TongSanLuong_NamDAO.GetByTime(time);
                                        TongSanLuong_ThangNam tsltn = TongSanLuong_ThangNamDAO.GetByTime(time);
                                        if (tslng == null)
                                        {
                                            // create new tslng
                                            tslng = new TongSanLuong_Ngay()
                                            {
                                                Ngay       = sl.Ngay,
                                                ChuKy      = sl.ChuKy,
                                                CongThucID = congThucID,
                                                GiaTri     = 0
                                            };
                                            checkInsertDay = true;
                                        }
                                        if (tslt == null)
                                        {
                                            // create new tslt
                                            tslt = new TongSanLuong_Thang()
                                            {
                                                Thang  = time.Month,
                                                Nam    = time.Year,
                                                GiaTri = 0
                                            };
                                            checkInsertMonth = true;
                                        }
                                        if (tsln == null)
                                        {
                                            // create new tsln
                                            tsln = new TongSanLuong_Nam()
                                            {
                                                Nam    = time.Year,
                                                GiaTri = 0
                                            };
                                            checkInsertYear = true;
                                        }
                                        if (tsltn == null)
                                        {
                                            // create new tsltn
                                            tsltn = new TongSanLuong_ThangNam()
                                            {
                                                Ngay        = time,
                                                GiaTriNam   = TongSanLuong_ThangNamDAO.GetClosestYearValue(time),
                                                GiaTriThang = TongSanLuong_ThangNamDAO.GetClosestMonthValue(time)
                                            };
                                            checkInsertMonthYear = true;
                                        }
                                        //tinh toan gia tri
                                        if (listPhanTu[indexPhanTu].index == 0 || divided[listPhanTu[indexPhanTu].index - 1].Equals("+"))
                                        {
                                            tslng.GiaTri += sl.GiaTri;
                                            tslt.GiaTri  += sl.GiaTri;
                                            tsln.GiaTri  += sl.GiaTri;

                                            tsltn.GiaTriThang += sl.GiaTri.Value;
                                            tsltn.GiaTriNam   += sl.GiaTri.Value;
                                        }
                                        else
                                        {
                                            tslng.GiaTri -= sl.GiaTri;
                                            tslt.GiaTri  -= sl.GiaTri;
                                            tsln.GiaTri  -= sl.GiaTri;

                                            tsltn.GiaTriThang -= sl.GiaTri.Value;
                                            tsltn.GiaTriNam   -= sl.GiaTri.Value;
                                        }

                                        // insert or update ngay
                                        if (checkInsertDay)
                                        {
                                            var rs_checkInsertDay = TongSanLuong_NgayDAO.Insert(tslng);
                                            if (rs_checkInsertDay != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertDay, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            var rs_checkUpdateDay = TongSanLuong_NgayDAO.Update(tslng);
                                            if (rs_checkUpdateDay != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkUpdateDay, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        // insert or update thang
                                        if (checkInsertMonth)
                                        {
                                            var rs_checkInsertMon = TongSanLuong_ThangDAO.Insert(tslt);
                                            if (rs_checkInsertMon != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertMon, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            var rs_checkInsertMon = TongSanLuong_ThangDAO.Update(tslt);
                                            if (rs_checkInsertMon != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertMon, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        // insert or update nam
                                        if (checkInsertYear)
                                        {
                                            var rs_checkInsertYear = TongSanLuong_NamDAO.Insert(tsln);
                                            if (rs_checkInsertYear != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertYear, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            var rs_checkInsertYear = TongSanLuong_NamDAO.Update(tsln);
                                            if (rs_checkInsertYear != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertYear, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        // insert or update thang-nam
                                        if (checkInsertMonthYear)
                                        {
                                            var rs_checkInsertYear = TongSanLuong_ThangNamDAO.Insert(tsltn);
                                            if (rs_checkInsertYear != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertYear, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                        else
                                        {
                                            var rs_checkInsertYear = TongSanLuong_ThangNamDAO.Update(tsltn);
                                            if (rs_checkInsertYear != "success")
                                            {
                                                ShowNotificationMessage(50, "Error", rs_checkInsertYear, ToolTipIcon.Error);
                                                reader.Close();
                                                return;
                                            }
                                        }
                                    }
                                }
                            }
                        }
                        count++;
                    }
                    ShowNotificationMessage(50, "Success", "Reading file 'Sản Lượng' finished!!!!", ToolTipIcon.Info);
                    reader.Close();
                    break;
                }
                catch (IOException)
                {
                    //Console.WriteLine("Wait to access file !!!");
                    ShowNotificationMessage(50, "Error", "Wait to access file !!!", ToolTipIcon.Error);
                    Thread.Sleep(100);
                }
                catch (Exception ex)
                {
                    //Console.WriteLine(ex.Message);
                    ShowNotificationMessage(50, "Error", ex.Message, ToolTipIcon.Error);
                    break;
                }
                finally
                {
                    try
                    {
                        string fileName   = e.Name;
                        string sourcePath = conf.ThuMucQuet;
                        string targetPath = conf.ThuMucChuyen;
                        //Combine file và đường dẫn
                        string sourceFile = System.IO.Path.Combine(sourcePath, fileName);
                        string destFile   = System.IO.Path.Combine(targetPath, fileName);
                        //Copy file từ file nguồn đến file đích
                        System.IO.File.Copy(sourceFile, destFile, true);
                        ShowNotificationMessage(50, "Di chuyển file !!!", "Thành công", ToolTipIcon.None);
                    }
                    catch (Exception ex)
                    {
                        ShowNotificationMessage(50, "Error !!!", ex.Message, ToolTipIcon.Error);
                    }
                }
            }
        }