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; }
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()); } }
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(); } } }