private void update_menu()
        {
            F001_Main v_frm = new F001_Main();
            DevExpress.XtraBars.Ribbon.RibbonControl m_rc_menu = v_frm.m_rc_menu;
            List<HT_QUYEN> v_lst_menu = new List<HT_QUYEN>();
            //1. Get list menu
            //Level RibbonPage
            foreach (DevExpress.XtraBars.Ribbon.RibbonPage rp in m_rc_menu.Pages)
            {
                //Level RibbonPageGroup
                foreach (DevExpress.XtraBars.Ribbon.RibbonPageGroup rpg in rp.Groups)
                {
                    //Level BarButtonItem
                    foreach (DevExpress.XtraBars.BarItemLink bbl in rpg.ItemLinks)
                    {
                        HT_QUYEN v_q = new HT_QUYEN()
                        {
                            RIBBON_PAGE_NAME = rp.Name
                            ,
                            RIBBON_PAGE_TEXT = rp.Text
                            ,
                            RIBBON_PAGE_GROUP_NAME = rpg.Name
                            ,
                            RIBBON_PAGE_GROUP_TEXT = rpg.Text
                            ,
                            BAR_BUTTON_ITEM_NAME = bbl.Item.Name
                            ,
                            BAR_BUTTON_ITEM_CAPTION = bbl.Item.Caption
                        };
                        v_lst_menu.Add(v_q);
                    }
                }
            }
            //2. Update database
            using (QuanLyKhoEntities db = new QuanLyKhoEntities())
            {

                List<HT_QUYEN> v_lst_ht_quyen = db.HT_QUYEN.ToList();
                //2.1 Xoa bo di menu trong database ma khong co trong form
                foreach (var q in v_lst_ht_quyen)
                {
                    HT_QUYEN v_q = v_lst_menu.Where(x => x.RIBBON_PAGE_GROUP_NAME == q.RIBBON_PAGE_GROUP_NAME
                        && x.RIBBON_PAGE_NAME == q.RIBBON_PAGE_NAME
                        && x.BAR_BUTTON_ITEM_NAME == q.BAR_BUTTON_ITEM_NAME)
                        .FirstOrDefault();
                    //Neu khong tim thay menu trong form thi xoa menu trong database
                    if (v_q == null)
                    {
                        //Remove ht_phan_quyen
                        List<HT_PHAN_QUYEN> v_lst_phan_quyen = db.HT_PHAN_QUYEN
                            .Where(x => x.ID_QUYEN == q.ID)
                            .ToList();
                        foreach (var pq in v_lst_phan_quyen)
                        {
                            db.HT_PHAN_QUYEN.Remove(pq);
                            db.SaveChanges();
                        }
                        //Remove ht_quyen
                        db.HT_QUYEN.Remove(q);
                        db.SaveChanges();
                        v_lst_ht_quyen = db.HT_QUYEN.ToList();
                    }
                    else
                    {
                        //Neu tim thay thi cap nhat lai caption, text
                        q.RIBBON_PAGE_TEXT = v_q.RIBBON_PAGE_TEXT;
                        q.RIBBON_PAGE_GROUP_TEXT = v_q.RIBBON_PAGE_GROUP_TEXT;
                        q.BAR_BUTTON_ITEM_CAPTION = v_q.BAR_BUTTON_ITEM_CAPTION;
                        db.SaveChanges();
                    }
                }
                v_lst_ht_quyen = db.HT_QUYEN.ToList();
                //2.2 Them vao database nhung menu co trong form nhung chua co trong database
                foreach (var q in v_lst_menu)
                {
                    if (!v_lst_ht_quyen.Exists(x => x.RIBBON_PAGE_GROUP_NAME == q.RIBBON_PAGE_GROUP_NAME
                        && x.RIBBON_PAGE_NAME == q.RIBBON_PAGE_NAME
                        && x.BAR_BUTTON_ITEM_NAME == q.BAR_BUTTON_ITEM_NAME))
                    {
                        db.HT_QUYEN.Add(q);
                        db.SaveChanges();
                        v_lst_ht_quyen = db.HT_QUYEN.ToList();
                    }
                }
            }
        }
Ejemplo n.º 2
0
        public static void TinhLaiGiaThanh(QuanLyKhoEntities db, GD_SO_DU ip_sd, GD_CHI_TIET_GIAO_DICH ip_ctgd, bool isThemMoiSoDu, bool isXoaBanGhi)
        {
            //Luu y: Function nay chi tinh gia thanh cho giao dich: NHAP KHO hoac XUAT KHO
            GD_SO_DU v_gd_so_su_tai_thoi_diem = db.GD_SO_DU
                .Where(x => (x.ID_KHO == ip_ctgd.ID_KHO)
                                && x.ID_VAT_TU_HANG_HOA == ip_ctgd.ID_VAT_TU_HANG_HOA
                                && x.THOI_DIEM_PHAT_SINH <= ip_ctgd.GD_GIAO_DICH.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();
            decimal v_dc_so_luong = SoDu.quy_doi_so_luong(ip_ctgd.ID_VAT_TU_HANG_HOA ?? -1, ip_ctgd.ID_DON_VI_TINH ?? -1, ip_ctgd.DM_VAT_TU_HANG_HOA.ID_DON_VI_TINH_CO_SO ?? -1, ip_ctgd.SO_LUONG ?? 0);
            if (isThemMoiSoDu)
            {
                ip_sd.ID_CHI_TIET_GIAO_DICH = ip_ctgd.ID;
                ip_sd.ID_DON_VI_TINH = ip_ctgd.DM_VAT_TU_HANG_HOA.ID_DON_VI_TINH_CO_SO ?? -1;
                ip_sd.ID_KHO = ip_ctgd.ID_KHO ?? -1;
                ip_sd.ID_VAT_TU_HANG_HOA = ip_ctgd.ID_VAT_TU_HANG_HOA ?? -1;
                ip_sd.THOI_DIEM_PHAT_SINH = ip_ctgd.GD_GIAO_DICH.NGAY_GIAO_DICH;
                ip_sd.SO_LUONG = SoDu.quy_doi_so_luong(ip_ctgd.ID_VAT_TU_HANG_HOA??-1, ip_ctgd.ID_DON_VI_TINH??-1, ip_ctgd.DM_VAT_TU_HANG_HOA.ID_DON_VI_TINH_CO_SO??-1, ip_ctgd.SO_LUONG??0);
            }

            //Cap nhat gia thanh
            if (v_gd_so_su_tai_thoi_diem == null)
            {

                ip_sd.GIA_THANH = ip_ctgd.GIA_THANH ?? 0;
            }
            else
            {
                if (ip_ctgd.GD_GIAO_DICH.ID_LOAI_GIAO_DICH == LOAI_GIAO_DICH.NHAP_KHO)
                {
                    ip_sd.SO_LUONG = v_gd_so_su_tai_thoi_diem.SO_LUONG + v_dc_so_luong;
                    ip_sd.GIA_THANH = (Int32)((v_gd_so_su_tai_thoi_diem.SO_LUONG * v_gd_so_su_tai_thoi_diem.GIA_THANH + (ip_ctgd.GIA_THANH ?? 0) * ip_sd.SO_LUONG) / (v_gd_so_su_tai_thoi_diem.SO_LUONG + ip_sd.SO_LUONG));
                }
                else if (ip_ctgd.GD_GIAO_DICH.ID_LOAI_GIAO_DICH == LOAI_GIAO_DICH.XUAT_KHO)
                {
                    ip_sd.SO_LUONG = v_gd_so_su_tai_thoi_diem.SO_LUONG - v_dc_so_luong;
                    ip_sd.GIA_THANH = v_gd_so_su_tai_thoi_diem.GIA_THANH;
                }

            }
            if (isThemMoiSoDu)
            {
                db.GD_SO_DU.Add(ip_sd);
            }
            if (isXoaBanGhi)
            {
                db.GD_SO_DU.Remove(ip_sd);
            }
            db.SaveChanges();
        }