Exemple #1
0
        public Chuyen_SanPham CheckExistPCC(string lineId, string productId, int morth, int year)
        {
            Chuyen_SanPham csp = null;

            try
            {
                string    strSQL = "Select * From Chuyen_SanPham Where Thang=" + morth + " and Nam=" + year + " and MaChuyen=" + lineId + " and MaSanPham=" + productId + " and IsFinish=0 and IsDelete=0";
                DataTable dt     = dbclass.TruyVan_TraVe_DataTable(strSQL);
                if (dt != null && dt.Rows.Count > 0)
                {
                    csp = new Chuyen_SanPham();
                    DataRow row = dt.Rows[0];
                    csp.STT       = row["STT"].ToString();
                    csp.MaChuyen  = row["MaChuyen"].ToString();
                    csp.MaSanPham = row["MaSanPham"].ToString();
                    int sanLuongKH = 0;
                    int.TryParse(row["SanLuongKeHoach"].ToString(), out sanLuongKH);
                    csp.SanLuongKeHoach = sanLuongKH;
                    int luyKeTH = 0;
                    int.TryParse(row["LuyKeTH"].ToString(), out luyKeTH);
                    csp.LuyKeTH = luyKeTH;
                    float nangXuatSanXuat = 0;
                    float.TryParse(row["NangXuatSanXuat"].ToString(), out nangXuatSanXuat);
                    csp.NangXuatSanXuat = nangXuatSanXuat;
                    csp.Thang           = morth;
                    csp.Nam             = year;
                }
            }
            catch (Exception ex)
            { throw ex; }
            return(csp);
        }
Exemple #2
0
        public Chuyen_SanPham LayLuyKeTHandKeHoachTheoSTT(string STT, DateTime date)
        {
            Chuyen_SanPham chuyenSanPham = null;

            try
            {
                // string sql = "select TOP 1 csp.LuyKeTH, csp.SanLuongKeHoach from Chuyen_SanPham csp Where csp.STT ='" + STT + "' and Thang=" + date.Month + " and Nam =" + date.Year;
                string sql = "select TOP 1 csp.LuyKeTH, csp.SanLuongKeHoach from Chuyen_SanPham csp Where csp.STT ='" + STT + "'";
                var    dt  = dbclass.TruyVan_TraVe_DataTable(sql);
                if (dt != null && dt.Rows.Count > 0)
                {
                    DataRow row = dt.Rows[0];
                    chuyenSanPham = new Chuyen_SanPham();
                    int luyKeThucHien = 0;
                    int.TryParse(row["LuyKeTH"].ToString(), out luyKeThucHien);
                    int sanLuongKeHoach = 0;
                    int.TryParse(row["SanLuongKeHoach"].ToString(), out sanLuongKeHoach);
                    chuyenSanPham.LuyKeTH         = luyKeThucHien;
                    chuyenSanPham.SanLuongKeHoach = sanLuongKeHoach;
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(chuyenSanPham);
        }
Exemple #3
0
 public Chuyen_SanPham GetChuyenSanPham(DateTime Ngay, int sttChuyenSanPham, int lineId)
 {
     try
     {
         var            date          = Ngay.Day + "/" + Ngay.Month + "/" + Ngay.Year;
         Chuyen_SanPham chuyenSanPham = null;
         string         strSQLSelect  = "Select csp.Thang, csp.Nam, csp.MaChuyen, csp.MaSanPham, csp.SanLuongKeHoach, csp.NangXuatSanXuat, (select SUM(ThucHienNgay-ThucHienNgayGiam) from NangXuat where STTChuyen_SanPham=" + sttChuyenSanPham + " and Ngay <= '" + date + "') as LuyKeTH,";
         strSQLSelect += "(select SUM(BTPThoatChuyenNgay-BTPThoatChuyenNgayGiam) from NangXuat where STTChuyen_SanPham=" + sttChuyenSanPham + " and Ngay <= '" + date + "') as LuyKeBTPThoatChuyen, csp.IsFinish, csp.IsFinishNow, csp.IsFinishBTPThoatChuyen, c.Sound,";
         strSQLSelect += "(SELECT SUM(BTPNgay) FROM BTP b WHERE b.STTChuyen_SanPham = '" + sttChuyenSanPham + "' and b.IsEndOfLine=1 and b.CommandTypeId=" + (int)eCommandRecive.BTPIncrease + ") LuyKeBTPTang, ";
         strSQLSelect += "(SELECT SUM(BTPNgay) FROM BTP b WHERE b.STTChuyen_SanPham = '" + sttChuyenSanPham + "' and b.IsEndOfLine=1 and b.CommandTypeId=" + (int)eCommandRecive.BTPReduce + ") LuyKeBTPGiam, ";
         strSQLSelect += "(SELECT COUNT(csp.STT) FROM Chuyen_SanPham csp WHERE csp.MaChuyen = '" + lineId + "' and csp.IsFinish = 0 and csp.IsDelete = 0) SoPhanCong  From Chuyen_SanPham csp, Chuyen c Where csp.STT=" + sttChuyenSanPham + " and csp.MaChuyen=c.MaChuyen";
         dtChuyenSanPham.Clear();
         dtChuyenSanPham = dbclass.TruyVan_TraVe_DataTable(strSQLSelect);
         if (dtChuyenSanPham != null && dtChuyenSanPham.Rows.Count > 0)
         {
             chuyenSanPham = new Chuyen_SanPham();
             DataRow row = dtChuyenSanPham.Rows[0];
             chuyenSanPham.MaChuyen  = row["MaChuyen"].ToString();
             chuyenSanPham.MaSanPham = row["MaSanPham"].ToString();
             int sanLuongKeHoach = 0;
             int.TryParse(row["SanLuongKeHoach"].ToString(), out sanLuongKeHoach);
             chuyenSanPham.SanLuongKeHoach = sanLuongKeHoach;
             float nangSuatSanXuat = 0;
             float.TryParse(row["NangXuatSanXuat"].ToString(), out nangSuatSanXuat);
             chuyenSanPham.NangXuatSanXuat = nangSuatSanXuat;
             int luyKeTH = 0;
             int.TryParse(row["LuyKeTH"].ToString(), out luyKeTH);
             chuyenSanPham.LuyKeTH = luyKeTH;
             int isFinish = 0;
             int.TryParse(row["IsFinish"].ToString(), out isFinish);
             chuyenSanPham.IsFinish = isFinish;
             int isFinishNow = 0;
             int.TryParse(row["IsFinishNow"].ToString(), out isFinishNow);
             chuyenSanPham.IsFinishNow = isFinishNow;
             int luyKeBTPThoatChuyen = 0;
             int.TryParse(row["LuyKeBTPThoatChuyen"].ToString(), out luyKeBTPThoatChuyen);
             chuyenSanPham.LuyKeBTPThoatChuyen = luyKeBTPThoatChuyen;
             bool isFinishBTPThoatChuyen = false;
             bool.TryParse(row["IsFinishBTPThoatChuyen"].ToString(), out isFinishBTPThoatChuyen);
             chuyenSanPham.IsFinishBTPThoatChuyen = isFinishBTPThoatChuyen;
             chuyenSanPham.SoundChuyen            = row["Sound"].ToString();
             int luyKeBTP     = 0;
             int luyKeBTPTang = 0;
             int.TryParse(row["LuyKeBTPTang"].ToString(), out luyKeBTPTang);
             int luyKeBTPGiam = 0;
             int.TryParse(row["LuyKeBTPGiam"].ToString(), out luyKeBTPGiam);
             luyKeBTP = luyKeBTPTang - luyKeBTPGiam;
             chuyenSanPham.LuyKeBTP = luyKeBTP;
             int soPhanCong = 0;
             int.TryParse(row["SoPhanCong"].ToString(), out soPhanCong);
             chuyenSanPham.SoPhanCong = soPhanCong;
         }
         return(chuyenSanPham);
     }
     catch (Exception ex)
     {
         throw ex;
     }
 }
Exemple #4
0
        private void InsertAssignment(Chuyen_SanPham csp)
        {
            var kq = BLLAssignmentForLine.Instance.Insert(csp);

            if (kq.IsSuccess)
            {
                MessageBox.Show("Thêm phân công thành công.");
                LoadPhanCongRaDataGridView();
                ResetForm();
                // if (!frmMainNew.IsStopProcess)
                //       frmMainNew.RunAllProcess();
            }
            MessageBox.Show(kq.Messages[0].msg, kq.Messages[0].Title);
        }
Exemple #5
0
        public int SuaTTLuykeTH(Chuyen_SanPham chuyen_sampham)
        {
            int kq = 0;

            try
            {
                string sql = "Update Chuyen_SanPham set LuyKeTH ='" + chuyen_sampham.LuyKeTH + "', IsFinish='" + chuyen_sampham.IsFinish + "', LuyKeBTPThoatChuyen='" + chuyen_sampham.LuyKeBTPThoatChuyen + "', IsFinishBTPThoatChuyen='" + chuyen_sampham.IsFinishBTPThoatChuyen + "' where STT ='" + chuyen_sampham.STT + "'";
                kq = dbclass.TruyVan_XuLy(sql);
                return(kq);
            }
            catch (Exception)
            {
                MessageBox.Show("Lỗi: Không thể thay đổi thông tin luỹ kế thực hiện của chuyền_Mặt Hàng dưới CSDL", "Lỗi truy vấn CSDL", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(kq);
            }
        }
Exemple #6
0
        public int SuaThongTinPhanCong(Chuyen_SanPham chuyen_sanpham)
        {
            int kq = 0;

            try
            {
                string sql = "update Chuyen_SanPham set STTThucHien=" + chuyen_sanpham.STTThucHien + ", SanLuongKeHoach = '" + chuyen_sanpham.SanLuongKeHoach + "', NangXuatSanXuat = '" + chuyen_sanpham.NangXuatSanXuat + "', IsFinish = '" + chuyen_sanpham.IsFinish + "', IsFinishBTPThoatChuyen='" + chuyen_sanpham.IsFinishBTPThoatChuyen + "', Thang=" + chuyen_sanpham.Thang + ", Nam=" + chuyen_sanpham.Nam + " where STT ='" + chuyen_sanpham.STT + "'";
                kq = dbclass.TruyVan_XuLy(sql);
                return(kq);
            }
            catch (Exception)
            {
                MessageBox.Show("Lỗi: Không thể thay đổi thông tin phân công mặt hàng cho chuyền dưới CSDL", "Lỗi truy vấn CSDL", MessageBoxButtons.OK, MessageBoxIcon.Error);
                return(kq);
            }
        }
Exemple #7
0
        public Chuyen_SanPham GetPCOldOfLineBySTT(string lineId, int sttChuyenSanPhamNow)
        {
            try
            {
                Chuyen_SanPham csp     = null;
                string         strSQL  = "Select  * From Chuyen_SanPham Where IsDelete=0 and MaChuyen=" + lineId + " ORDER BY stt ";
                DataTable      dtTable = dbclass.TruyVan_TraVe_DataTable(strSQL);
                if (dtTable != null && dtTable.Rows.Count > 0)
                {
                    bool isGetSTTOld = false;
                    foreach (DataRow row in dtTable.Rows)
                    {
                        int sttChuyenSamPham = 0;
                        if (row["STT"] != null)
                        {
                            int.TryParse(row["STT"].ToString(), out sttChuyenSamPham);
                        }
                        if (sttChuyenSamPham == sttChuyenSanPhamNow)
                        {
                            isGetSTTOld = true;
                        }

                        if (isGetSTTOld)
                        {
                            csp     = new Chuyen_SanPham();
                            csp.STT = sttChuyenSamPham.ToString();
                            break;
                        }
                    }
                }
                return(csp);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #8
0
        public bool MoveQuantityToMorthNow(int type)
        {
            bool result = false;

            try
            {
                BTPDAO                btpDAO            = new BTPDAO();
                ClusterDAO            clusterDAO        = new ClusterDAO();
                var                   ngay              = DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year;
                var                   dateNow           = DateTime.Now;
                int                   morthNow          = dateNow.Month;
                int                   yearNow           = dateNow.Year;
                var                   dateOld           = dateNow.AddMonths(-1);
                int                   morthOld          = dateOld.Month;
                int                   yearOld           = dateOld.Year;
                string                strSQL            = "Select * From Chuyen_SanPham Where Thang=" + morthOld + " and Nam=" + yearOld + " and MaChuyen in (" + AccountSuccess.strListChuyenId.Trim() + ") and IsFinish=0 and IsDelete=0";
                List <Chuyen_SanPham> listChuyenSanPham = new List <Chuyen_SanPham>();
                DataTable             dtTable           = dbclass.TruyVan_TraVe_DataTable(strSQL);
                if (dtTable != null && dtTable.Rows.Count > 0)
                {
                    int sttThucHien = 1;
                    foreach (DataRow row in dtTable.Rows)
                    {
                        Chuyen_SanPham csp = new Chuyen_SanPham();
                        csp.STT = row["STT"].ToString();
                        int.TryParse(row["STTThucHien"].ToString(), out sttThucHien);
                        csp.STTThucHien = sttThucHien;
                        csp.MaChuyen    = row["MaChuyen"].ToString();
                        csp.MaSanPham   = row["MaSanPham"].ToString();
                        int sanLuongKH = 0;
                        int.TryParse(row["SanLuongKeHoach"].ToString(), out sanLuongKH);
                        csp.SanLuongKeHoach = sanLuongKH;
                        int luyKeTH = 0;
                        int.TryParse(row["LuyKeTH"].ToString(), out luyKeTH);
                        csp.LuyKeTH = luyKeTH;
                        float nangXuatSanXuat = 0;
                        float.TryParse(row["NangXuatSanXuat"].ToString(), out nangXuatSanXuat);
                        csp.NangXuatSanXuat = nangXuatSanXuat;
                        csp.Thang           = morthOld;
                        csp.Nam             = yearOld;
                        listChuyenSanPham.Add(csp);
                    }
                }
                if (listChuyenSanPham.Count > 0)
                {
                    listChuyenSanPham = listChuyenSanPham.OrderBy(c => c.STTThucHien).ToList();
                    int sttThucHien = 0;
                    foreach (var csp in listChuyenSanPham)
                    {
                        if (type == 1)
                        {
                            csp.IsFinish = 1;
                            csp.IsFinishBTPThoatChuyen = true;
                            //    SuaThongTinPhanCong(csp);
                        }
                        else
                        {
                            sttThucHien++;
                            int sumBTPOfLine = 0;
                            var listBTP      = btpDAO.GetListBTPBySTT(csp.STT);
                            if (listBTP != null && listBTP.Count > 0)
                            {
                                sumBTPOfLine = listBTP.Where(c => c.IsEndOfLine).Sum(c => c.BTPNgay);
                            }
                            var     listClusterOfLine = clusterDAO.GetCumOfChuyen(int.Parse(csp.MaChuyen));
                            Cluster clusterEndLine    = null;
                            if (listClusterOfLine != null && listClusterOfLine.Count > 0)
                            {
                                clusterEndLine = listClusterOfLine.First(c => c.IsEndOfLine);
                            }

                            if (csp.LuyKeTH == 0)
                            {
                                var cspNew = new Chuyen_SanPham();
                                Parse.CopyObject(csp, ref cspNew);
                                cspNew.TimeAdd = dateNow;
                                cspNew.Thang   = morthNow;
                                cspNew.Nam     = yearNow;
                                cspNew.IsMoveQuantityFromMorthOld = true;
                                cspNew.STTThucHien = sttThucHien;
                                // var resultAdd = ThemPhanCong(cspNew);
                                //if (resultAdd.IsSuccsess)
                                //{
                                //    csp.IsFinish = 1;
                                //    csp.IsFinishBTPThoatChuyen = true;
                                //    SuaThongTinPhanCong(csp);

                                //    string sttPCC = GetSTTChuyenSanPham(cspNew.MaChuyen, cspNew.MaSanPham, cspNew.Thang, cspNew.Nam);
                                //    if (sumBTPOfLine > 0)
                                //    {
                                //        BTP btp = new BTP();
                                //        btp.STTChuyen_SanPham = sttPCC;
                                //        btp.IsEndOfLine = true;
                                //        btp.Ngay = dateNow.Date;
                                //        btp.STT = 1;
                                //        btp.TimeUpdate = dateNow.TimeOfDay;
                                //        btp.BTPNgay = sumBTPOfLine;
                                //        btp.CommandTypeId = 8;
                                //        btp.CumId = clusterEndLine.Id;
                                //      btpDAO.ThemOBJ(btp);
                                //    }
                                //}
                            }
                            else
                            {
                                int soLuongTon = csp.SanLuongKeHoach - csp.LuyKeTH;
                                var cspExist   = CheckExistPCC(csp.MaChuyen, csp.MaSanPham, morthNow, yearNow);
                                if (cspExist != null)
                                {
                                    cspExist.SanLuongKeHoach += soLuongTon;
                                    var rsMove = SuaThongTinPhanCong(cspExist);
                                    if (rsMove > 0)
                                    {
                                        csp.SanLuongKeHoach        = csp.LuyKeTH;
                                        csp.IsFinish               = 1;
                                        csp.IsFinishBTPThoatChuyen = true;
                                        // SuaThongTinPhanCong(csp);

                                        int btpOnLine = sumBTPOfLine - csp.LuyKeTH;
                                        if (btpOnLine > 0)
                                        {
                                            BTP btp = new BTP();
                                            btp.STTChuyen_SanPham = cspExist.STT;
                                            btp.IsEndOfLine       = true;
                                            btp.Ngay          = ngay;
                                            btp.STT           = 1;
                                            btp.TimeUpdate    = dateNow.TimeOfDay;
                                            btp.BTPNgay       = btpOnLine;
                                            btp.CommandTypeId = 8;
                                            btp.CumId         = clusterEndLine.Id;
                                            //  btpDAO.ThemOBJ(btp);
                                        }
                                    }
                                }
                                else
                                {
                                    var cspNew = new Chuyen_SanPham();
                                    Parse.CopyObject(csp, ref cspNew);
                                    cspNew.TimeAdd                    = dateNow;
                                    cspNew.Thang                      = morthNow;
                                    cspNew.Nam                        = yearNow;
                                    cspNew.SanLuongKeHoach            = soLuongTon;
                                    cspNew.IsMoveQuantityFromMorthOld = true;
                                    cspNew.LuyKeTH                    = 0;
                                    csp.STTThucHien                   = sttThucHien;
                                    //var rsMove = ThemPhanCong(cspNew);
                                    //if (rsMove.IsSuccsess)
                                    //{
                                    //    csp.SanLuongKeHoach = csp.LuyKeTH;
                                    //    csp.IsFinish = 1;
                                    //    csp.IsFinishBTPThoatChuyen = true;
                                    //    SuaThongTinPhanCong(csp);

                                    //    string sttPCC = GetSTTChuyenSanPham(cspNew.MaChuyen, cspNew.MaSanPham, cspNew.Thang, cspNew.Nam);
                                    //    int btpOnLine = sumBTPOfLine - csp.LuyKeTH;
                                    //    if (btpOnLine > 0)
                                    //    {
                                    //        BTP btp = new BTP();
                                    //        btp.STTChuyen_SanPham = sttPCC;
                                    //        btp.IsEndOfLine = true;
                                    //        btp.Ngay = dateNow.Date;
                                    //        btp.STT = 1;
                                    //        btp.TimeUpdate = dateNow.TimeOfDay;
                                    //        btp.BTPNgay = btpOnLine;
                                    //        btp.CommandTypeId = 8;
                                    //        btp.CumId = clusterEndLine.Id;
                                    //        btpDAO.ThemOBJ(btp);
                                    //    }
                                    //}
                                }
                            }
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            return(result);
        }
Exemple #9
0
        public ModelResult ThemPhanCong(Chuyen_SanPham chuyen_sanpham)
        {
            ModelResult modelResult = new ModelResult();

            try
            {
                var dateNow  = DateTime.Now;
                int morthNow = dateNow.Month;
                int yearNow  = dateNow.Year;
                if (chuyen_sanpham.Nam >= yearNow)
                {
                    if (chuyen_sanpham.Nam == yearNow)
                    {
                        if (chuyen_sanpham.Thang >= morthNow)
                        {
                            var cspExist = CheckExistPCC(chuyen_sanpham.MaChuyen, chuyen_sanpham.MaSanPham, chuyen_sanpham.Thang, chuyen_sanpham.Nam);
                            if (cspExist == null)
                            {
                                string sql   = "insert into Chuyen_SanPham(MaChuyen, MaSanPham, SanLuongKeHoach, NangXuatSanXuat, TimeAdd, Thang, Nam, IsMoveQuantityFromMorthOld, STTThucHien) values('" + chuyen_sanpham.MaChuyen + "','" + chuyen_sanpham.MaSanPham + "','" + chuyen_sanpham.SanLuongKeHoach + "','" + chuyen_sanpham.NangXuatSanXuat + "','" + chuyen_sanpham.TimeAdd + "', " + chuyen_sanpham.Thang + ", " + chuyen_sanpham.Nam + ",'" + chuyen_sanpham.IsMoveQuantityFromMorthOld + "'," + chuyen_sanpham.STTThucHien + ")";
                                var    rsAdd = dbclass.TruyVan_XuLy(sql);
                                if (rsAdd > 0)
                                {
                                    modelResult.IsSuccsess = true;
                                }
                            }
                            else
                            {
                                if (cspExist.LuyKeTH == 0)
                                {
                                    if (MessageBox.Show("Bạn đã phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Bạn có muốn cập nhập thông tin này ?", "Cập nhập dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                    {
                                        int reUpdate = SuaThongTinPhanCong(chuyen_sanpham);
                                        if (reUpdate == 0)
                                        {
                                            MessageBox.Show("Cập nhập thông tin phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + "không thành công.");
                                        }
                                        else
                                        {
                                            modelResult.IsSuccsess = true;
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Bạn đã phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Việc phân công có thông tin sản xuất nên không thể chỉnh sửa");
                                }
                            }
                        }
                        else
                        {
                            modelResult.ListError.Add(new ModelError()
                            {
                                ClassName    = this.GetType().Name,
                                MethodName   = "AddListPCC",
                                ErrorContent = "Lỗi: Tháng nhập phân công hàng cho chuyền không được nhỏ hơn tháng hiện tại."
                            });
                        }
                    }
                    else
                    {
                        var cspExist = CheckExistPCC(chuyen_sanpham.MaChuyen, chuyen_sanpham.MaSanPham, chuyen_sanpham.Thang, chuyen_sanpham.Nam);
                        if (cspExist == null)
                        {
                            string sql   = "insert into Chuyen_SanPham(MaChuyen, MaSanPham, SanLuongKeHoach, NangXuatSanXuat, TimeAdd, Thang, Nam, IsMoveQuantityFromMorthOld, STTThucHien) values('" + chuyen_sanpham.MaChuyen + "','" + chuyen_sanpham.MaSanPham + "','" + chuyen_sanpham.SanLuongKeHoach + "','" + chuyen_sanpham.NangXuatSanXuat + "','" + chuyen_sanpham.TimeAdd + "', " + chuyen_sanpham.Thang + ", " + chuyen_sanpham.Nam + ",'" + chuyen_sanpham.IsMoveQuantityFromMorthOld + "'," + chuyen_sanpham.STTThucHien + ")";
                            var    rsAdd = dbclass.TruyVan_XuLy(sql);
                            if (rsAdd > 0)
                            {
                                modelResult.IsSuccsess = true;
                            }
                        }
                        else
                        {
                            if (chuyen_sanpham.LuyKeTH == 0)
                            {
                                if (MessageBox.Show("Bạn đã phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Bạn có muốn cập nhập thông tin này ?", "Cập nhập dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                {
                                    int reUpdate = SuaThongTinPhanCong(chuyen_sanpham);
                                    if (reUpdate == 0)
                                    {
                                        MessageBox.Show("Cập nhập thông tin phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + "không thành công.");
                                    }
                                    else
                                    {
                                        modelResult.IsSuccsess = true;
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("Bạn đã phân công mặt hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Việc phân công có thông tin sản xuất nên không thể chỉnh sửa");
                            }
                        }
                    }
                }
                else
                {
                    modelResult.ListError.Add(new ModelError()
                    {
                        ClassName    = this.GetType().Name,
                        MethodName   = "AddListPCC",
                        ErrorContent = "Lỗi: Năm nhập phân công hàng cho chuyền không được nhỏ hơn năm hiện tại."
                    });
                }
            }
            catch (Exception ex)
            {
                modelResult.ListError.Add(new ModelError()
                {
                    ClassName    = this.GetType().Name,
                    MethodName   = "AddListPCC",
                    ErrorContent = "Lỗi: việc phân công Mặt Hàng " + chuyen_sanpham.TenSanPham + " cho chuyền " + chuyen_sanpham.TenChuyen + " thất bại."
                });
            }
            return(modelResult);
        }
        private ResponseBase Save(Chuyen_SanPham chuyen_sanpham)
        {
            var result = new ResponseBase();

            try
            {
                var dateNow  = DateTime.Now;
                int morthNow = dateNow.Month;
                int yearNow  = dateNow.Year;
                if (chuyen_sanpham.Nam >= yearNow)
                {
                    if (chuyen_sanpham.Nam == yearNow)
                    {
                        if (chuyen_sanpham.Thang >= morthNow)
                        {
                            var cspExist = BLLAssignmentForLine.Instance.Find(chuyen_sanpham.MaChuyen, chuyen_sanpham.MaSanPham);
                            if (cspExist == null)
                            {
                                result = BLLAssignmentForLine.Instance.Insert(chuyen_sanpham);
                            }
                            else
                            {
                                if (cspExist.LuyKeTH == 0)
                                {
                                    if (MessageBox.Show("Bạn đã phân công mặt hàng " + TenSanPham + " cho chuyền " + tenchuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Bạn có muốn cập nhập thông tin này ?", "Cập nhập dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                    {
                                        var reUpdate = BLLAssignmentForLine.Instance.Update(chuyen_sanpham, true, 1);
                                        if (!reUpdate.IsSuccess)
                                        {
                                            MessageBox.Show("Cập nhập thông tin phân công mặt hàng " + TenSanPham + " cho chuyền " + TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + "không thành công.");
                                        }
                                        else
                                        {
                                            result = reUpdate;
                                        }
                                    }
                                }
                                else
                                {
                                    MessageBox.Show("Bạn đã phân công mặt hàng " + TenSanPham + " cho chuyền " + TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Việc phân công có thông tin sản xuất nên không thể chỉnh sửa");
                                }
                            }
                        }
                        else
                        {
                            result.Messages.Add(new PMS.Business.Models.Message()
                            {
                                Title = "AddListPCC",
                                msg   = "Lỗi: Tháng nhập phân công hàng cho chuyền không được nhỏ hơn tháng hiện tại."
                            });
                        }
                    }
                    else
                    {
                        var cspExist = BLLAssignmentForLine.Instance.Find(chuyen_sanpham.MaChuyen, chuyen_sanpham.MaSanPham);
                        if (cspExist == null)
                        {
                            result = BLLAssignmentForLine.Instance.Insert(chuyen_sanpham);
                        }
                        else
                        {
                            if (chuyen_sanpham.LuyKeTH == 0)
                            {
                                if (MessageBox.Show("Bạn đã phân công mặt hàng " + TenSanPham + " cho chuyền " + TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Bạn có muốn cập nhập thông tin này ?", "Cập nhập dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                                {
                                    var reUpdate = BLLAssignmentForLine.Instance.Update(chuyen_sanpham, true, 1);
                                    if (!reUpdate.IsSuccess)
                                    {
                                        MessageBox.Show("Cập nhập thông tin phân công mặt hàng " + TenSanPham + " cho chuyền " + TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + "không thành công.");
                                    }
                                    else
                                    {
                                        result = reUpdate;
                                    }
                                }
                            }
                            else
                            {
                                MessageBox.Show("Bạn đã phân công mặt hàng " + TenSanPham + " cho chuyền " + TenChuyen + " vào thời gian " + chuyen_sanpham.Thang + "/" + chuyen_sanpham.Nam + " rồi. Việc phân công có thông tin sản xuất nên không thể chỉnh sửa");
                            }
                        }
                    }
                }
                else
                {
                    result.Messages.Add(new PMS.Business.Models.Message()
                    {
                        Title = "AddListPCC",
                        msg   = "Lỗi: Năm nhập phân công hàng cho chuyền không được nhỏ hơn năm hiện tại."
                    });
                }
            }
            catch (Exception ex)
            {
                result.Messages.Add(new PMS.Business.Models.Message()
                {
                    Title = "AddListPCC",
                    msg   = "Lỗi: việc phân công Mặt Hàng " + TenSanPham + " cho chuyền " + TenChuyen + " thất bại."
                });
            }
            return(result);
        }
Exemple #11
0
        public ResponseBase InsertOrUpdate(Chuyen_SanPham model)
        {
            var result = new ResponseBase();

            try
            {
                using (var db = new PMSEntities())
                {
                    var csp = db.Chuyen_SanPham.FirstOrDefault(x => !x.IsDelete && x.STT != model.STT && x.MaChuyen == model.MaChuyen && x.MaSanPham == model.MaSanPham && !x.IsFinish);
                    if (csp == null)
                    {
                        if (!CheckOrderIndex(model.STT, model.MaChuyen, model.STTThucHien, db))
                        {
                            if (model.STT == 0)
                            {
                                #region add
                                csp = new Chuyen_SanPham();
                                Parse.CopyObject(model, ref csp);
                                var monthDetail = new P_MonthlyProductionPlans();
                                monthDetail.Chuyen_SanPham   = csp;
                                monthDetail.Month            = DateTime.Now.Month;
                                monthDetail.Year             = DateTime.Now.Year;
                                monthDetail.ProductionPlans  = csp.SanLuongKeHoach;
                                csp.P_MonthlyProductionPlans = new List <P_MonthlyProductionPlans>();
                                csp.P_MonthlyProductionPlans.Add(monthDetail);
                                csp.TimeAdd = DateTime.Now;
                                db.Chuyen_SanPham.Add(csp);
                                db.SaveChanges();
                                result.IsSuccess = true;
                                result.Messages.Add(new Message()
                                {
                                    Title = "Thông Báo", msg = "Lưu Phân công thành công."
                                });

                                #endregion
                            }
                            else
                            {
                                csp = db.Chuyen_SanPham.FirstOrDefault(x => !x.IsDelete && x.STT == model.STT);
                                if (csp != null)
                                {
                                    var mDetail = db.P_MonthlyProductionPlans.FirstOrDefault(x => !x.IsDeleted && x.STT_C_SP == model.STT && x.Month == DateTime.Now.Month && x.Year == DateTime.Now.Year);
                                    if (mDetail != null)
                                    {
                                        if (csp.SanLuongKeHoach > model.SanLuongKeHoach)
                                        {
                                            mDetail.ProductionPlans -= (csp.SanLuongKeHoach - model.SanLuongKeHoach);
                                        }
                                        else
                                        {
                                            mDetail.ProductionPlans += (model.SanLuongKeHoach - csp.SanLuongKeHoach);
                                        }
                                    }

                                    csp.STTThucHien            = model.STTThucHien;
                                    csp.MaSanPham              = model.MaSanPham;
                                    csp.UpdatedDate            = model.UpdatedDate;
                                    csp.SanLuongKeHoach        = model.SanLuongKeHoach;
                                    csp.IsFinish               = csp.SanLuongKeHoach > csp.LuyKeTH ? false : true;
                                    csp.IsFinishBTPThoatChuyen = model.IsFinishBTPThoatChuyen;

                                    // update lai nang suat san suat va dinh muc ngay hien tai
                                    var ngay = DateTime.Now.Day + "/" + DateTime.Now.Month + "/" + DateTime.Now.Year;
                                    var tp   = db.ThanhPhams.FirstOrDefault(x => !x.IsDeleted && x.STTChuyen_SanPham == csp.STT && x.Ngay == ngay);
                                    var nx   = db.NangXuats.FirstOrDefault(x => !x.IsDeleted && x.STTCHuyen_SanPham == csp.STT && x.Ngay == ngay);
                                    if (tp != null && nx != null)
                                    {
                                        var tgLVTrongNgay = (int)BLLShift.GetTotalWorkingHourOfLine(csp.MaChuyen).TotalSeconds;
                                        tp.NangXuatLaoDong = (float)Math.Round((tgLVTrongNgay / csp.SanPham.ProductionTime), 2);

                                        nx.DinhMucNgay    = (float)Math.Round((tp.NangXuatLaoDong * tp.LaoDongChuyen), 1);
                                        nx.NhipDoSanXuat  = (float)Math.Round((csp.SanPham.ProductionTime / tp.LaoDongChuyen), 1);
                                        nx.TimeLastChange = DateTime.Now.TimeOfDay;
                                    }
                                    db.SaveChanges();
                                    //BLLProductivity.ResetNormsDayAndBTPInLine(2, obj.MaChuyen, false);
                                    result.IsSuccess = true;
                                    result.Messages.Add(new Message()
                                    {
                                        Title = "Thông Báo", msg = "Lưu Phân công thành công."
                                    });
                                }
                                else
                                {
                                    result.IsSuccess = false;
                                    result.Messages.Add(new Message()
                                    {
                                        Title = "Lỗi Lưu Phân Công", msg = "không tìm thấy Phân Công.\n"
                                    });
                                }
                            }
                        }
                        else
                        {
                            result.IsSuccess = false;
                            result.Messages.Add(new Message()
                            {
                                Title = "Thông Báo Trùng số thứ tự", msg = "Số thứ tự thực hiện  này được chọn. Vui lòng chọn số thứ tự thực hiện khác."
                            });
                        }
                    }
                    else
                    {
                        result.IsSuccess = false;
                        result.Messages.Add(new Message()
                        {
                            Title = "Lỗi Lưu Phân Công", msg = "Sản phẩm này đã được phân công và đang sản xuất.\n"
                        });
                    }
                }
            }
            catch (Exception ex)
            {
                result.IsSuccess = false;
                result.Messages.Add(new Message()
                {
                    Title = "Lỗi Lưu Phân Công", msg = "Lưu Phân công cho Chuyền bị lỗi.\n" + ex.Message
                });
            }
            return(result);
        }