예제 #1
0
 public static decimal TinhGiaThanhXuatKho(QuanLyKhoEntities db, GD_GIAO_DICH ip_gd, decimal ip_dc_id_vat_tu_hang_hoa, decimal ip_dc_id_kho)
 {
     GD_SO_DU v_gd_so_su_tai_thoi_diem = db.GD_SO_DU
         .Where(x => (x.ID_KHO == ip_dc_id_kho)
                         && x.ID_VAT_TU_HANG_HOA == ip_dc_id_vat_tu_hang_hoa
                         && x.THOI_DIEM_PHAT_SINH <= ip_gd.NGAY_GIAO_DICH)
         .GroupBy(x => new { x.ID_VAT_TU_HANG_HOA, x.ID_KHO })
         .Select(x => x.OrderByDescending(y => y.THOI_DIEM_PHAT_SINH).FirstOrDefault())
         .FirstOrDefault();
     if (v_gd_so_su_tai_thoi_diem==null)
     {
         return 0;
     }
     return v_gd_so_su_tai_thoi_diem.GIA_THANH;
 }
예제 #2
0
        void m_cmd_update_Click(object sender, EventArgs e)
        {
            try
            {
                if (!check_validate_data_is_ok()) return;
                GD_GIAO_DICH gd;
                if (m_cmd_update.Text == "Cập nhật")
                {
                    F301Grid row = (F301Grid)m_gv_danh_sach_giao_dich.GetRow(m_gv_danh_sach_giao_dich.FocusedRowHandle);
                    gd = db.GD_GIAO_DICH.Where(x => x.ID == row.ID).FirstOrDefault();
                }
                else
                {
                    gd = new GD_GIAO_DICH();
                }

                gd.MA_GIAO_DICH = m_txt_ma_giao_dich.Text;
                gd.NGAY_GIAO_DICH = m_dat_ngay_giao_dich.Value;
                gd.GHI_CHU = m_txt_ghi_chu.Text;
                gd.ID_LOAI_GIAO_DICH = Convert.ToDecimal(m_cbo_loai_giao_dich.SelectedValue);

                if (m_lci_tinh_trang.ContentVisible == true)
                {
                    gd.ID_TRANG_THAI = Convert.ToDecimal(m_cbo_tinh_trang.SelectedValue);
                }
                if (m_lci_loai_chung_tu.ContentVisible == true)
                {
                    gd.ID_LOAI_CHUNG_TU = Convert.ToDecimal(m_cbo_loai_chung_tu.SelectedValue);
                }
                if (m_lci_doi_tuong.ContentVisible == true)
                {
                    gd.ID_DOI_TUONG = Convert.ToDecimal(m_cbo_doi_tuong.SelectedValue);
                }
                if (m_lci_nguoi_giao_hang.ContentVisible == true)
                {
                    gd.NGUOI_GIAO_HANG = m_txt_nguoi_giao_hang.Text;
                }
                if (m_lci_nguoi_nhan.ContentVisible == true)
                {
                    gd.NGUOI_NHAN = m_txt_nguoi_nhan.Text;
                }
                if (m_lci_dia_chi_nguoi_nhan.ContentVisible == true)
                {
                    gd.DIA_CHI_NGUOI_NHAN = m_txt_dia_chi_nguoi_nhan.Text;
                }

                if (m_cmd_update.Text != "Cập nhật")
                {
                    db.GD_GIAO_DICH.Add(gd);
                }
                db.SaveChanges();
                update_ma_tu_tang();
                load_data_to_grid();
                //load_data_to_combobox_cap_tren();
                MessageBox.Show("Bạn đã cập nhật dữ liệu thành công!", "Thông báo");
                m_cmd_xoa_trang_Click(null, null);

            }
            catch (Exception v_e)
            {
                MessageBox.Show(v_e.ToString());
            }
        }
예제 #3
0
        private void lap_phieu_xu_ly_kiem_ke(decimal ip_dc_id_kiem_ke_kho, LOAI_XU_LY_CHENH_LECH ip_loai_xu_ly_chenh_lech)
        {
            using (var trans = db.Database.BeginTransaction())
            {
                try
                {
                    var kk = db.GD_KIEM_KE_KHO.Where(x => x.ID == ip_dc_id_kiem_ke_kho).FirstOrDefault();
                    //Hien tai he thong chi xu ly duoc 1 loai tien te la VND;
                    var v_tien_te = db.DM_DON_VI_TINH.Where(x => x.ID_LOAI_DON_VI_TINH == LOAI_DON_VI_TINH.DON_VI_TIEN_TE).FirstOrDefault();

                    //Them moi Phieu nhap kho Nguyen vat lieu do dang
                    GD_GIAO_DICH v_gd = new GD_GIAO_DICH();
                    decimal v_dc_id_loai_giao_dich = QuanLyKho.LOAI_GIAO_DICH.NHAP_KHO;
                    decimal v_dc_id_loai_chung_tu = CHUNG_TU_NHAP_KHO.KHAC;
                    if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.XUAT_KHO)
                    {
                        v_dc_id_loai_chung_tu = CHUNG_TU_XUAT_KHO.KHAC;
                        v_dc_id_loai_giao_dich = QuanLyKho.LOAI_GIAO_DICH.XUAT_KHO;
                    }

                    v_gd.ID_LOAI_GIAO_DICH = v_dc_id_loai_giao_dich;
                    v_gd.ID_LOAI_CHUNG_TU = v_dc_id_loai_chung_tu;
                    DateTime v_dat_tu_ngay = (kk.NGAY_THANG ?? DateTime.Now).Date;
                    DateTime v_dat_den_ngay = v_dat_tu_ngay.AddHours(23);
                    var v_lst_giao_dich = db.GD_GIAO_DICH.Where(x => x.ID_LOAI_GIAO_DICH == v_dc_id_loai_giao_dich
                                                && x.ID_LOAI_CHUNG_TU == v_dc_id_loai_chung_tu
                                                && x.NGAY_GIAO_DICH > v_dat_tu_ngay
                                                && x.NGAY_GIAO_DICH < v_dat_den_ngay)
                                            .ToList();
                    v_gd.MA_GIAO_DICH = F301_Giao_dich.gen_ma_giao_dich(v_dc_id_loai_giao_dich, v_dc_id_loai_chung_tu, (kk.NGAY_THANG ?? DateTime.Now).Date, v_lst_giao_dich);
                    v_gd.NGAY_GIAO_DICH = kk.NGAY_THANG ?? DateTime.Now;
                    v_gd.GHI_CHU = "Xử lý chênh lệnh biên bản kiểm kê " + kk.MA_SO;
                    db.GD_GIAO_DICH.Add(v_gd);
                    db.SaveChanges();
                    //Tao list vat lieu cua Phieu nhap kho Nguyen vat lieu do dang
                    List<GD_CHI_TIET_KIEM_KE_KHO> v_lst_ctkk = new List<GD_CHI_TIET_KIEM_KE_KHO>();
                    if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.XUAT_KHO)
                    {
                        v_lst_ctkk = db.GD_CHI_TIET_KIEM_KE_KHO
                        .Where(x => x.ID_KIEM_KE_KHO == ip_dc_id_kiem_ke_kho
                        && x.SO_LUONG_THEO_KIEM_KE < x.SO_LUONG_THEO_SO_KE_TOAN).
                        ToList();
                    }
                    else if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.NHAP_KHO)
                    {
                        v_lst_ctkk = db.GD_CHI_TIET_KIEM_KE_KHO
                        .Where(x => x.ID_KIEM_KE_KHO == ip_dc_id_kiem_ke_kho
                        && x.SO_LUONG_THEO_KIEM_KE > x.SO_LUONG_THEO_SO_KE_TOAN).
                        ToList();
                    }
                    List<QuanLyKho.NghiepVu.U301_CHI_TIET_NGHIEP_VU.GridU301> v_lst_item = new List<QuanLyKho.NghiepVu.U301_CHI_TIET_NGHIEP_VU.GridU301>();
                    foreach (var ctkk in v_lst_ctkk)
                    {
                        QuanLyKho.NghiepVu.U301_CHI_TIET_NGHIEP_VU.GridU301 v_item = new QuanLyKho.NghiepVu.U301_CHI_TIET_NGHIEP_VU.GridU301();
                        v_item.ID_DON_VI_TINH = ctkk.ID_DON_VI_TINH;
                        v_item.ID_GIAO_DICH = v_gd.ID;
                        v_item.ID_KHO = ctkk.ID_KHO;
                        var v_so_du = NghiepVu.SoDu.getRecordTonKho(db, ctkk.ID_VAT_TU_HANG_HOA ?? -1, ctkk.ID_KHO ?? -1, v_gd.NGAY_GIAO_DICH);

                        v_item.ID_LOAI_TIEN_TE = v_tien_te.ID;

                        v_item.ID_VAT_TU_HANG_HOA = ctkk.ID_VAT_TU_HANG_HOA ?? -1;
                        if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.NHAP_KHO)
                        {
                            v_item.SO_LUONG = (ctkk.SO_LUONG_THEO_KIEM_KE - ctkk.SO_LUONG_THEO_SO_KE_TOAN) ?? 0;
                        }
                        else if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.XUAT_KHO)
                        {
                            v_item.SO_LUONG = (-ctkk.SO_LUONG_THEO_KIEM_KE + ctkk.SO_LUONG_THEO_SO_KE_TOAN) ?? 0;
                        }
                        v_item.GIA_THANH = v_so_du.GIA_THANH;
                        v_item.ID_GIAO_DICH = v_gd.ID;
                        v_lst_item.Add(v_item);
                        ctkk.DA_XU_LY_CHENH_LECH_YN = true;
                        db.SaveChanges();
                    }
                    var v_lst_ctgd = db.GD_CHI_TIET_GIAO_DICH
                        .Where(x => x.ID_GIAO_DICH == v_gd.ID).ToList();
                    U301_CHI_TIET_NGHIEP_VU.LOAI_GIAO_DICH v_loai_giao_dich = U301_CHI_TIET_NGHIEP_VU.LOAI_GIAO_DICH.NHAP_KHO_KHAC;
                    if (ip_loai_xu_ly_chenh_lech == LOAI_XU_LY_CHENH_LECH.XUAT_KHO)
                    {
                        v_loai_giao_dich = U301_CHI_TIET_NGHIEP_VU.LOAI_GIAO_DICH.XUAT_KHO_KHAC;
                    }
                    U301_CHI_TIET_NGHIEP_VU.cap_nhat_chi_tiet_giao_dich_va_so_du(db, v_lst_ctgd, v_lst_item, v_gd.ID, v_gd, v_loai_giao_dich);

                    trans.Commit();
                }
                catch (Exception v_e)
                {
                    db.Dispose();
                    db = new QuanLyKhoEntities();
                    trans.Rollback();
                }

            }
        }