示例#1
0
        /// <summary>
        /// new method date : 14/9/2016 - Hai
        /// </summary>
        /// <param name="sttChuyen_SanPham"></param>
        /// <param name="thoiGianCheTaoSanPham"></param>
        /// <param name="maChuyen"></param>
        private void SaveData(int sttChuyen_SanPham, double thoiGianCheTaoSanPham, int maChuyen)
        {
            try
            {
                // Kiem tra tinh trang cap nhap trang thai IsFinishBTPThoatChuyen
                // Update nhung row cap nhap sai hoac khong cap nhap
                chuyen_sanphamDAO.UpdateIsFinishBTPChuyen();
                if (maChuyen != 0)
                {
                    var thanhpham = new ThanhPhamModel();
                    thanhpham.Id   = dailyWorkerInfoId;
                    thanhpham.Ngay = selectedDate;
                    thanhpham.STTChuyen_SanPham = sttChuyen_SanPham;
                    thanhpham.CreatedDate       = DateTime.Now;
                    thanhpham.ShowLCD           = chkbShowLCD.Checked;
                    thanhpham.HieuSuat          = double.Parse(numHieuSuat.Text);

                    double nangSuatLaoDong = 0;
                    double.TryParse(txtNangSuatLaoDong.Text, out nangSuatLaoDong);
                    thanhpham.NangXuatLaoDong = nangSuatLaoDong;

                    nangSuatLaoDong = 0;
                    double.TryParse(txtLean.Text, out nangSuatLaoDong);
                    thanhpham.LeanKH        = nangSuatLaoDong;
                    thanhpham.LaoDongChuyen = (int)txtLaoDongChuyen.Value;
                    thanhpham.LDOff         = (int)numOff.Value;
                    thanhpham.LDNew         = (int)numNew.Value;
                    thanhpham.LDPregnant    = (int)numPregnant.Value;
                    thanhpham.LDVacation    = (int)numVacation.Value;
                    thanhpham.LineId        = maChuyen;

                    // Thông tin nang xuat
                    var nangxuat = new NangXuat();
                    nangxuat.Ngay = selectedDate;
                    nangxuat.STTCHuyen_SanPham = thanhpham.STTChuyen_SanPham;
                    nangxuat.DinhMucNgay       = (double)numDinhMucNgay.Value; // (float)Math.Round((thanhpham.NangXuatLaoDong * thanhpham.LaoDongChuyen), 1);
                    nangxuat.NhipDoSanXuat     = (float)Math.Round((((thoiGianCheTaoSanPham * 100) / double.Parse(numHieuSuat.Text)) / thanhpham.LaoDongChuyen), 1);
                    nangxuat.TimeLastChange    = DateTime.Now.TimeOfDay;
                    nangxuat.IsStopOnDay       = chkIsStopOnDay.Checked;
                    if (nangxuat.IsStopOnDay)
                    {
                        nangxuat.TimeStopOnDay = DateTime.Now.TimeOfDay;
                    }

                    var  chuyenSanPham = BLLAssignmentForLine.Instance.LayLuyKeTHandKeHoachTheoSTT(sttChuyen_SanPham);
                    bool isEndDate     = false;
                    int  soLuongConLai = chuyenSanPham.SanLuongKeHoach - chuyenSanPham.LuyKeTH;
                    if (chuyenSanPham != null && soLuongConLai <= nangxuat.DinhMucNgay)
                    {
                        /// check lai DMNgay
                        isEndDate            = true;
                        nangxuat.DinhMucNgay = soLuongConLai;
                        // thanhpham.NangXuatLaoDong = nangxuat.DinhMucNgay / thanhpham.LaoDongChuyen;
                    }
                    nangxuat.IsEndDate = isEndDate;

                    nangxuat.TGCheTaoSP   = (int)((thoigianchetao * 100) / thanhpham.HieuSuat);
                    thanhpham.NangSuatObj = nangxuat;
                    if (thanhpham.NangXuatLaoDong > 0 && thanhpham.LaoDongChuyen > 0)
                    {
                        var rs = BLLProductivity.InsertOrUpdate_TP(thanhpham, frmMainNew.getBTPInLineByType, frmMainNew.calculateNormsdayType, frmMainNew.TypeOfCaculateDayNorms);
                        if (rs.IsSuccess)
                        {
                            GetDayInformationToGridView();
                            ResetForm();
                            dailyWorkerInfoId = 0;
                            SetProductivityWorker();
                            HelperControl.ResetKeypad(maChuyen, false, frmMainNew);
                        }
                        MessageBox.Show(rs.Messages[0].msg, rs.Messages[0].Title);
                    }
                    else
                    {
                        MessageBox.Show("Lỗi: Bạn chưa nhập đúng thông tin Năng Suất Lao Động hoặc Số Lao Động", "Lỗi thao tác", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Bạn chưa chọn chuyền sản xuất. Vui lòng thực hiện thao tác này...", "Lỗi thao tác", MessageBoxButtons.OK, MessageBoxIcon.Error);
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi: " + ex.Message);
            }
        }
示例#2
0
        /// <summary>
        ///
        /// </summary>
        private void Save_N()
        {
            try
            {
                // Kiem tra tinh trang cap nhap trang thai IsFinishBTPThoatChuyen
                // Update nhung row cap nhap sai hoac khong cap nhap
                string strError = string.Empty;
                chuyen_sanphamDAO.UpdateIsFinishBTPChuyen();
                SanPham         sanPham          = (SanPham)lueSanPham.GetSelectedDataRow();
                Chuyen          chuyen           = ((Chuyen)cbbChuyen.SelectedItem);
                ModelSelectItem size             = ((ModelSelectItem)cbSize.SelectedItem);
                ModelSelectItem color            = ((ModelSelectItem)cbColor.SelectedItem);
                ModelSelect     modelSelectMorth = (ModelSelect)cbbMorth.SelectedItem;
                ModelSelect     modelSelectYear  = (ModelSelect)cbbYear.SelectedItem;
                if (chuyen == null)
                {
                    MessageBox.Show("Bạn chưa chọn chuyền sản xuất. Vui lòng thực hiện thao tác này...", "Lỗi nhập liệu");
                }
                else if (sanPham == null)
                {
                    MessageBox.Show("Bạn chưa chọn Mặt Hàng để phân cho chuyền. Vui lòng thực hiện thao tác này...\n", "Lỗi nhập liệu");
                }
                else if (string.IsNullOrEmpty(txtSTTThucHien.Text))
                {
                    MessageBox.Show("Bạn chưa nhập thứ tự thực hiện mặt hàng của chuyền.\n", "Lỗi nhập liệu");
                }
                else if (modelSelectMorth == null)
                {
                    MessageBox.Show("Bạn chưa chọn thông tin tháng thực hiện.\n", "Lỗi nhập liệu");
                }
                else if (modelSelectYear == null)
                {
                    MessageBox.Show("Bạn chưa chọn thông tin năm thực hiện.\n", "Lỗi nhập liệu");
                }
                //  else if (string.IsNullOrEmpty(txtNangXuatSanXuat.Text))
                // MessageBox.Show("Bạn chưa nhập thời gian chế tạo mặt hàng.\n", "Lỗi nhập liệu");
                //  else if (string.IsNullOrEmpty(txtNangXuatSanXuat.Text))
                //     MessageBox.Show("Vui lòng nhập năng suất sản xuất", "Lỗi nhập liệu");
                else if (txtSanLuongKeHoach.Value <= 0)
                {
                    MessageBox.Show("Sản lượng kế hoạch của mặt hàng phải lớn hơn 0, hoặc bạn nhập sai định dạng dữ liệu.\n", "Lỗi nhập liệu");
                }
                else
                {
                    var csp = new PMS.Data.Chuyen_SanPham();
                    csp.MaChuyen        = chuyen.MaChuyen;
                    csp.MaSanPham       = sanPham.MaSanPham;
                    csp.Thang           = modelSelectMorth.Value;
                    csp.Nam             = modelSelectYear.Value;
                    csp.STTThucHien     = int.Parse(txtSTTThucHien.Text);
                    csp.SanLuongKeHoach = (int)txtSanLuongKeHoach.Value;
                    csp.STT             = sttChuyenSanPham;
                    csp.HideForever     = cbStopForever.Checked;
                    csp.DateInput       = dtInput.Value;
                    csp.DateOutput      = dtOutput.Value;
                    if (size != null)
                    {
                        csp.SizeId = size.Id;
                    }
                    if (color != null)
                    {
                        csp.ColorId = color.Id;
                    }

                    #region ADD
                    var oldObj = BLLAssignmentForLine.Instance.CheckExists(sttChuyenSanPham, csp.MaChuyen, csp.MaSanPham);
                    if (oldObj != null)
                    {
                        #region
                        if (!oldObj.IsFinish)
                        {
                            #region  chưa ket thuc update binh thuong
                            if (MessageBox.Show("Thông tin phân công đã tồn tại, bạn có muốn thay đổi thông tin", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                            {
                                if (csp.SanLuongKeHoach <= oldObj.LuyKeTH)
                                {
                                    csp.IsFinish = true;
                                    csp.IsFinishBTPThoatChuyen = true;
                                }
                                csp.STT         = oldObj.STT;
                                csp.UpdatedDate = DateTime.Now;
                                csp.HideForever = cbStopForever.Checked;
                                var kq = BLLAssignmentForLine.Instance.Update(csp, false, frmMainNew.getBTPInLineByType);
                                if (kq.IsSuccess)
                                {
                                    LoadPhanCongRaDataGridView();
                                    ResetForm();
                                    // if (!frmMainNew.IsStopProcess)
                                    //     frmMainNew.RunAllProcess();

                                    if (csp.IsFinish)
                                    {
                                        #region kết thúc đơn hàng update lại thông tin keypad
                                        var rs = BLLDayInfo.CreateNewDayInfoAfterFinishAssignment(csp.MaChuyen);
                                        if (!rs.IsSuccess && rs.Messages[0] != null)
                                        {
                                            MessageBox.Show(rs.Messages[0].msg, rs.Messages[0].Title, MessageBoxButtons.OK, MessageBoxIcon.Error);
                                        }
                                        else
                                        {
                                            BLLProductivity.ResetNormsDayAndBTPInLine(frmMainNew.getBTPInLineByType, frmMainNew.calculateNormsdayType, frmMainNew.TypeOfCaculateDayNorms, csp.MaChuyen, false, frmMainNew.todayStr);
                                        }

                                        Helper.HelperControl.ResetKeypad(csp.MaChuyen, false, frmMainNew);
                                        #endregion
                                    }
                                }
                                MessageBox.Show(kq.Messages[0].msg, kq.Messages[0].Title);
                            }
                            #endregion
                        }
                        else
                        {
                            if (MessageBox.Show("Bạn đã phân công mặt hàng " + sanPham.TenSanPham + " cho chuyền " + chuyen.TenChuyen + " vào thời gian " + oldObj.TimeAdd.ToShortDateString() + " với Sản lượng kế hoạch : " + oldObj.SanLuongKeHoach + "(sp) và đã sản xuất được :" + oldObj.LuyKeTH + "(sp).Kết thúc vào ngày " + dateNow + ". Bạn có muốn cập nhập thông tin cho phân công này không ?", "Cập nhập dữ liệu", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {
                                #region da ket thuc update lai san luong ke hoach de san xuat tiep
                                if (csp.SanLuongKeHoach < oldObj.SanLuongKeHoach)
                                {
                                    MessageBox.Show("Sản lượng kế hoạch của Phân công mới không được nhỏ hơn Sản lượng kế hoạch của Phân công cũ.\nVui lòng nhập lại sản lượng kế hoạch.", "Lỗi nhập liệu");
                                }
                                else
                                {
                                    // update lai san luong ke hoach san xuat tiep
                                    csp.IsFinish = csp.SanLuongKeHoach > oldObj.SanLuongKeHoach ? false : true;
                                    csp.IsFinishBTPThoatChuyen = csp.IsFinish;
                                    csp.IsFinishNow            = csp.IsFinish;
                                    csp.STT         = oldObj.STT;
                                    csp.HideForever = cbStopForever.Checked;
                                    csp.UpdatedDate = DateTime.Now;
                                    var kq = BLLAssignmentForLine.Instance.Update(csp, true, frmMainNew.getBTPInLineByType);
                                    if (kq.IsSuccess)
                                    {
                                        LoadPhanCongRaDataGridView();
                                        ResetForm();
                                        //  if (!frmMainNew.IsStopProcess)
                                        //     frmMainNew.RunAllProcess();
                                    }
                                    MessageBox.Show(kq.Messages[0].msg, kq.Messages[0].Title);
                                }
                                #endregion
                            }
                            else
                            {
                                //tao phan cong moi
                                csp.TimeAdd     = DateTime.Now;
                                csp.HideForever = false;
                                InsertAssignment(csp);
                            }
                        }
                        #endregion
                    }
                    else
                    {
                        #region
                        csp.TimeAdd     = DateTime.Now;
                        csp.HideForever = false;
                        InsertAssignment(csp);
                        #endregion
                    }
                    #endregion
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Lỗi Exception: " + ex.Message, "Lỗi Ngoại Lệ");
            }
        }