Example #1
0
 /// <summary>
 /// Hàm tạo thông báo gửi đến nhóm tài khoản quản lý
 /// </summary>
 /// <param name="maNguyenLieu"></param>
 private void taoThongBaoDieuChinhGia(int maNguyenLieu)
 {
     try
     {
         qlCaPheEntities db = new qlCaPheEntities();
         //---------Lấy danh sách sản phẩm cập nhật giá
         List <NguyenLieuOfSanPham> listSanPhamCapNhat = new bNguyenLieu().laySanPhamSuDungNguyenLieu(maNguyenLieu);
         //---------Lấy danh sách tài khoản cần tạo thông báo
         List <taiKhoan> listTaiKhoan = db.taiKhoans.Where(t => t.nhomTaiKhoan.quyenHan.Contains(":402")).ToList();
         foreach (NguyenLieuOfSanPham itemSanPham in listSanPhamCapNhat)
         {
             foreach (taiKhoan taiKhoanNhanThongBao in listTaiKhoan)
             {
                 thongBao tbAdd = new thongBao();
                 tbAdd.daXem      = false;
                 tbAdd.ghiChu     = "Thông báo đổi giá cả sản phẩm";
                 tbAdd.ndThongBao = "Đơn giá nhập nguyên liệu cho sản phẩm " + itemSanPham.tenSanPham + " đã thay đổi.";
                 tbAdd.ngayTao    = DateTime.Now;
                 tbAdd.taiKhoan   = taiKhoanNhanThongBao.tenDangNhap;
                 db.thongBaos.Add(tbAdd);
                 db.SaveChanges();
             }
         }
     }
     catch (Exception ex)
     {
         xulyFile.ghiLoi("Class: NhapKhoController - Function: taoThongBaoDieuChinhGia", ex.Message);
     }
 }
        /// <summary>
        /// hàm thực hiện lấy tổng số tiền xuất nguyên liệu có trong session
        /// </summary>
        /// <returns></returns>
        public double getTotalPrice()
        {
            double kq = 0; bNguyenLieu bNguyenLieu = new bNguyenLieu();

            foreach (ctPhieuXuatKho i in this.Item.Values)
            {
                //--------Chuyển đổi ra đơn vị chính để tính tiền
                double soLuongXuat = (double)bNguyenLieu.chuyenDoiDonViNhoSangLon((double)i.soLuongXuat, i.nguyenLieu);
                kq += i.donGiaXuat * soLuongXuat;
            }
            return(kq);
        }
Example #3
0
        /// <summary>
        /// hàm thực hiện lấy tổng  số tiền nhập nguyên liệu có trong session
        /// </summary>
        /// <returns></returns>
        public long getTotalPrice()
        {
            long kq = 0;

            foreach (ctPhieuNhapKho i in this.Item.Values)
            {
                //kq += i.donGiaNhap * (int)(i.soLuongNhap / i.nguyenLieu.tyLeChuyenDoi);  //------tổng tiền = đơn giá * số lượng gốc (đơn vị hiển thị kg, lit....)
                double soLuongNhap = new bNguyenLieu().chuyenDoiDonViNhoSangLon(i.soLuongNhap, i.nguyenLieu);
                kq += (long)(i.donGiaNhap * soLuongNhap);
            }
            return(kq);
        }
Example #4
0
        /// <summary>
        /// hàm thực hiện lấy tổng số tiền của nguyên liệu tại thời điểm lập công thứccó trong session
        /// </summary>
        /// <returns></returns>
        public long getTotalPriceNguyenLieu()
        {
            long kq = 0;

            foreach (ctCongThuc i in this.Item.Values)
            {
                if (i.maNguyenLieu > 0) //--Nếu bước này có dùng nguyên liêu
                {
                    qlCaPheEntities db = new qlCaPheEntities();
                    //--------Sửa lại khi có bNhapKho
                    double donGiaNguyenLieu = new bNhapKho().tinhTienBinhQuanNguyenLieuNhap(i.maNguyenLieu);
                    //----Cộng dồn tổng tiền nguyên liệu = Số lượng sử dụng (với đơn vị lớn nhất (kg, lit)) * với đơn giá nguyên liệu
                    double soLuongSuDung = new bNguyenLieu().chuyenDoiDonViNhoSangLon(i.soLuongNguyenLieu, i.nguyenLieu);
                    kq += (long)(soLuongSuDung * donGiaNguyenLieu);
                }
            }
            return(kq);
        }
Example #5
0
    /// <summary>
    /// Hàm thực hiện cập nhật lại tổng tiền tồn kho.
    /// </summary>
    /// <param name="ct">Object chi tiết tồn kho để lấy các thuộc tính cần thiết</param>
    /// <param name="db"></param>
    /// <returns>1: Cập nhật thành công - 2: thất bại</returns>
    public int capNhatTongTienTonKho(ctTonKho ct, qlCaPheEntities db)
    {
        int kq = 0;

        try
        {
            TonKho tkUpdate = db.TonKhoes.SingleOrDefault(s => s.maSoKy == ct.maSoKy);
            if (tkUpdate != null)
            {
                ct.nguyenLieu = db.nguyenLieux.SingleOrDefault(s => s.maNguyenLieu == ct.maNguyenLieu);
                double soLuongTinh = new bNguyenLieu().chuyenDoiDonViNhoSangLon(ct.soLuongThucTe, ct.nguyenLieu);
                tkUpdate.tongTien       += (long)(ct.donGia * soLuongTinh);
                db.Entry(tkUpdate).State = System.Data.Entity.EntityState.Modified;
                kq = db.SaveChanges();
            }
        }
        catch (Exception ex)
        {
            xulyFile.ghiLoi("Class: bKiemKho  - Function: capNhatTongTienTonKho", ex.Message);
        }
        return(kq);
    }
        /// <summary>
        /// Hàm thêm dữ liệu từ giao diện cho object ctPhieuXuatKho
        /// </summary>
        /// <param name="chiTiet"></param>
        /// <param name="duLieu">Chuỗi dữ liệu được lấy khi ajax gửi về. Dữ liệu là các giá trị trong textbox nhập vào chi tiết
        /// có dạng: maNguyenLieu|maNhaCungCap|soLuongNhap|donGiaNhap|ghiChu</param>
        private void layDuLieuTuViewChiTiet(ctPhieuXuatKho chiTiet, string duLieu)
        {
            string loi = ""; qlCaPheEntities db = new qlCaPheEntities();
            //------Thực hiện xử lý cắt chuỗi duLieu để lấy giá trị của các thuộc tính
            int  maNguyenLieu = xulyDuLieu.doiChuoiSangInteger(duLieu.Split('|')[0]); double soLuong = xulyDuLieu.doiChuoiSangDouble(duLieu.Split('|')[1]);
            long donGia = xulyDuLieu.doiChuoiSangLong(duLieu.Split('|')[2]); string ghiChu = xulyDuLieu.xulyKyTuHTML(duLieu.Split('|')[3]);

            //--Gán giá trị cho các thuộc tính
            chiTiet.maNguyenLieu = maNguyenLieu;
            if (chiTiet.maNguyenLieu <= 0)
            {
                loi += "Vui lòng chọn nguyên liệu cần nhập <br/>";
            }
            //------Gán các giá trị references nguyenLieu, nhaCungCap cho chi tiết
            chiTiet.nguyenLieu = db.nguyenLieux.SingleOrDefault(s => s.maNguyenLieu == chiTiet.maNguyenLieu);
            //---------Chuyển đổi số lượng ra đơn vị pha chế: VD: 1 kg = 1000g (soLuongNhapVao * tyLeChuyenDoi)
            double soLuongXuatChuyenDoi = new bNguyenLieu().chuyenDoiDonViTuLonSangNho(soLuong, chiTiet.nguyenLieu);
            double soLuongTon           = new bTonKho().laySoLuongNguyenLieuTonThucTeTrongKho(chiTiet.maNguyenLieu, db);

            chiTiet.soLuongXuat = soLuongXuatChuyenDoi;
            if (chiTiet.soLuongXuat <= 0 || soLuongXuatChuyenDoi > soLuongTon)
            {
                loi += "Số lượng nguyên liệu xuất kho không hợp lệ hoặc số lượng xuất lớn hơn số lượng tồn kho <br/>";
            }

            chiTiet.donGiaXuat = donGia;
            if (chiTiet.donGiaXuat <= 0)
            {
                loi += "Vui lòng nhập đơn giá của nguyên liệu tại thời điểm nhập vào phiếu <br/>";
            }

            chiTiet.ghiChu = ghiChu;
            if (loi.Length > 0)
            {
                throw new Exception(loi);
            }
        }