protected void Button1_Click(object sender, EventArgs e)
        {
            string macongty = DropCty.SelectedValue.ToString();

            string madonvi = DropDownLDonVi.SelectedValue.ToString();

            string manguoiduyet = txtNguoiDuyet.Text;

            int buocduyet = int.Parse(txtBucoDuyet.Text);

            BDepartment              donvi     = BDepartmentDAO.TimMaDonVi(madonvi, macongty);
            AbDepartmentType         loaidonvi = LoaiDonViDAO.TimMaLoaiDonVi(int.Parse(donvi.DepartmentTypeID.ToString()), macongty);
            QuyTrinhXetDuyetCuaCanBo quytrinh  = new QuyTrinhXetDuyetCuaCanBo();

            //quytrinh.IDQuyTrinh = maquytrinh + (QuyTrinhXetDuyetDAO.DemQuyTrinhXetDuyet() + 1).ToString();
            quytrinh.BADEPID    = madonvi;
            quytrinh.tendonviTW = donvi.DepName;
            quytrinh.GSBH       = macongty;
            //quytrinh.BuocDuyet = buocduyet;

            quytrinh.IDLoaiDonVi          = loaidonvi.DepartmentTypeID;
            quytrinh.DepartmentTypeNameTW = loaidonvi.DepartmentTypeNameTW;

            if (DropDownLoaiPhieu.SelectedValue.ToString().Trim() == "")
            {
                quytrinh.abtype = "PDN1";
                abill timloai = abillBUS.SearchAbillByID(quytrinh.abtype);
                quytrinh.abtypenameTW = timloai.abnameTW;
            }
            else
            {
                quytrinh.abtype = DropDownLoaiPhieu.SelectedValue.ToString();
                abill timloai = abillBUS.SearchAbillByID(DropDownLoaiPhieu.SelectedValue.ToString());
                quytrinh.abtypenameTW = timloai.abnameTW;
            }


            if (CheckThongQuaDonVi.Checked == true)
            {
                quytrinh.DonViThongQua = DropDownDonViThongQua.SelectedValue.ToString();
                BDepartment donvithongqua = BDepartmentDAO.TimMaDonVi(DropDownDonViThongQua.SelectedValue.ToString(), macongty);
                quytrinh.tendonvithongqua = donvithongqua.DepName;
                Busers2 timnguoi = UserDAO.TimMaNhanVienTheoBoPhan(txtNguoiDuyet.Text, donvithongqua.ID, macongty);
                if (timnguoi == null)
                {
                    quytrinh.NguoiDuyet = null;
                }
                else
                {
                    quytrinh.NguoiDuyet = txtNguoiDuyet.Text;
                    quytrinh.USERNAME   = timnguoi.USERNAME;
                    ChucVu chuc = ChucVuDAO.TimMaChucVu(timnguoi.IDChucVu, macongty);
                    quytrinh.IDChucVu         = chuc.IDChucVu;
                    quytrinh.tendonvithongqua = chuc.TenChucVuTiengHoa;
                    quytrinh.IDCapDuyet       = timnguoi.IDCapDuyet;
                }
            }
            else
            {
                quytrinh.DonViThongQua = null;
                quytrinh.NguoiDuyet    = txtNguoiDuyet.Text;
                Busers2 nguoi = UserDAO.TimNhanVienTheoMa(manguoiduyet, macongty);
                quytrinh.USERNAME = nguoi.USERNAME;
                ChucVu chuc = ChucVuDAO.TimMaChucVu(nguoi.IDChucVu, macongty);
                quytrinh.IDChucVu         = chuc.IDChucVu;
                quytrinh.tendonvithongqua = chuc.TenChucVuTiengHoa;
                quytrinh.IDCapDuyet       = nguoi.IDCapDuyet;
            }

            #region ThemQuyTrinh
            List <QuyTrinhXetDuyetCuaCanBo> ListQT1 = QuyTrinhXetDuyetCuaCanBoDAO.LayDanhSachQuyTrinhTheoCapDuyet(quytrinh.BADEPID, quytrinh.GSBH, quytrinh.abtype);
            int max1 = (from ct1 in ListQT1
                        select int.Parse(ct1.BuocDuyet.ToString())).Max();
            quytrinh.BuocDuyet = max1 + 1;


            QuyTrinhXetDuyetCuaCanBo timquynguoi = QuyTrinhXetDuyetCuaCanBoDAO.TimNguoiTrongQuyTrinh(quytrinh.NguoiDuyet, quytrinh.abtype, quytrinh.BADEPID, quytrinh.GSBH);
            Busers2 timnguoiduyettrong           = UserDAO.TimNhanVienTheoMa(quytrinh.NguoiDuyet, quytrinh.GSBH);

            if (timquynguoi == null && quytrinh.NguoiDuyet != null)
            {
                QuyTrinhXetDuyetCuaCanBoDAO.ThemQuyTrinhXetDuyetCuaCanBo(quytrinh);// them quy trinh
                List <QuyTrinhXetDuyetCuaCanBo> ListQT = QuyTrinhXetDuyetCuaCanBoDAO.LayDanhSachQuyTrinhTheoCapDuyet(quytrinh.BADEPID, quytrinh.GSBH, quytrinh.abtype);
                int min = (from ct1 in ListQT
                           select int.Parse(ct1.BuocDuyet.ToString())).Min();
                int min1 = (from ct1 in ListQT
                            select int.Parse(ct1.IDCapDuyet.ToString())).Min();
                foreach (QuyTrinhXetDuyetCuaCanBo qt in ListQT)
                {
                    QuyTrinhXetDuyetCuaCanBo laynguoidautien = QuyTrinhXetDuyetCuaCanBoDAO.TimCapTiepTheoTrongQuyTrinh1(qt.BADEPID, qt.GSBH, qt.abtype, min1);
                    if (qt.NguoiDuyet == laynguoidautien.NguoiDuyet)
                    {
                        QuyTrinhXetDuyetCuaCanBo quy = new QuyTrinhXetDuyetCuaCanBo();
                        quy.BuocDuyet  = 1;
                        quy.IDQuyTrinh = qt.IDQuyTrinh;

                        buoc     = 1;
                        capduyet = int.Parse(qt.IDCapDuyet.ToString());
                        QuyTrinhXetDuyetCuaCanBoDAO.CapNhatQuyTrinh(quy);
                    }
                    else
                    {
                        //QuyTrinhXetDuyet laybuoc= QuyTrinhXetDuyetDAO.TimBuocTiepTheoTrongQuyTrinh1(qt.BADEPID, qt.GSBH, qt.abtype, int.Parse(qt.BuocDuyet.ToString()));
                        if (qt.DonViThongQua == null && capduyet == qt.IDCapDuyet)
                        {
                            QuyTrinhXetDuyetCuaCanBo quy = new QuyTrinhXetDuyetCuaCanBo();
                            quy.BuocDuyet  = buoc;
                            quy.IDQuyTrinh = qt.IDQuyTrinh;

                            buoc     = int.Parse(quy.BuocDuyet.ToString());
                            capduyet = int.Parse(qt.IDCapDuyet.ToString());
                            QuyTrinhXetDuyetCuaCanBoDAO.CapNhatQuyTrinh(quy);
                        }
                        else
                        {
                            QuyTrinhXetDuyetCuaCanBo quy = new QuyTrinhXetDuyetCuaCanBo();
                            quy.BuocDuyet  = buoc + 1;
                            quy.IDQuyTrinh = qt.IDQuyTrinh;

                            buoc     = int.Parse(quy.BuocDuyet.ToString());
                            capduyet = int.Parse(qt.IDCapDuyet.ToString());
                            QuyTrinhXetDuyetCuaCanBoDAO.CapNhatQuyTrinh(quy);
                        }
                    }
                }
            }
            #endregion
            ///////////////////////////////////// code by Mr Tuan
            QuyTrinhXetDuyetCuaCanBo timng = QuyTrinhXetDuyetCuaCanBoDAO.TimNguoiTrongQuyTrinh(manguoiduyet, quytrinh.abtype, madonvi, macongty);
            List <Abcon>             list  = AbconDAO.LayDanhSachPhieuTaiCapDuyetChuaDuyet(madonvi, quytrinh.abtype, macongty, int.Parse(timng.BuocDuyet.ToString()));
            foreach (Abcon l in list)
            {
                buocthemvao = l.abde;
                if (l.IDCapDuyet > timng.IDCapDuyet)
                {
                    List <Abcon> danh = AbconDAO.LayDanhSachPhieuTaiCapDuyetChuaDuyet1(l.from_depart, l.abtype, l.Gsbh, l.pdno, int.Parse(timng.BuocDuyet.ToString()));
                    foreach (Abcon aa in danh)
                    {
                        if (timng.BuocDuyet == aa.Abstep && timng.DonViThongQua == null && timng.IDCapDuyet == aa.IDCapDuyet)
                        {
                            Abcon aabcc = new Abcon();
                            aabcc.abtype = aa.abtype;
                            aabcc.pdno   = aa.pdno;
                            aabcc.Gsbh   = aa.Gsbh;
                            aabcc.IDCT   = aa.IDCT;
                            aabcc.Abstep = aa.Abstep;
                            aabcc.abde   = aa.abde + 1;
                            AbconDAO.CapNhatPhieuChuyen(aabcc);
                        }
                        else
                        {
                            Abcon aabcc = new Abcon();
                            aabcc.abtype = aa.abtype;
                            aabcc.pdno   = aa.pdno;
                            aabcc.Gsbh   = aa.Gsbh;
                            aabcc.IDCT   = aa.IDCT;
                            aabcc.Abstep = aa.Abstep + 1;
                            aabcc.abde   = aa.abde + 1;
                            AbconDAO.CapNhatPhieuChuyen(aabcc);
                        }
                    }
                }
                else
                {
                    if (l.IDCapDuyet == timng.IDCapDuyet && l.Abstep == timng.BuocDuyet)
                    {
                        List <Abcon> danh = AbconDAO.LayDanhSachPhieuTaiCapDuyetChuaDuyet1(l.from_depart, l.abtype, l.Gsbh, l.pdno, int.Parse(timng.BuocDuyet.ToString()));
                        foreach (Abcon aa in danh)
                        {
                            if (timng.BuocDuyet == aa.Abstep && timng.DonViThongQua == null && timng.IDCapDuyet == aa.IDCapDuyet)
                            {
                                Abcon aabcc = new Abcon();
                                aabcc.abtype = aa.abtype;
                                aabcc.pdno   = aa.pdno;
                                aabcc.Gsbh   = aa.Gsbh;
                                aabcc.IDCT   = aa.IDCT;
                                aabcc.Abstep = aa.Abstep;
                                aabcc.abde   = aa.abde + 1;
                                AbconDAO.CapNhatPhieuChuyen(aabcc);
                            }
                            else
                            {
                                Abcon aabcc = new Abcon();
                                aabcc.abtype = aa.abtype;
                                aabcc.pdno   = aa.pdno;
                                aabcc.Gsbh   = aa.Gsbh;
                                aabcc.IDCT   = aa.IDCT;
                                aabcc.Abstep = aa.Abstep + 1;
                                aabcc.abde   = aa.abde + 1;
                                AbconDAO.CapNhatPhieuChuyen(aabcc);
                            }
                        }
                    }
                    else
                    {
                        List <Abcon> danh = AbconDAO.LayDanhSachPhieuTaiCapDuyetChuaDuyet1(l.from_depart, l.abtype, l.Gsbh, l.pdno, int.Parse(timng.BuocDuyet.ToString()));
                        foreach (Abcon aa in danh)
                        {
                            if (timng.BuocDuyet == aa.Abstep && timng.DonViThongQua == null && timng.IDCapDuyet == aa.IDCapDuyet)
                            {
                                Abcon aabcc = new Abcon();
                                aabcc.abtype = aa.abtype;
                                aabcc.pdno   = aa.pdno;
                                aabcc.Gsbh   = aa.Gsbh;
                                aabcc.IDCT   = aa.IDCT;
                                aabcc.Abstep = aa.Abstep;
                                aabcc.abde   = aa.abde + 1;
                                AbconDAO.CapNhatPhieuChuyen(aabcc);
                            }
                            else
                            {
                                Abcon aabcc = new Abcon();
                                aabcc.abtype = aa.abtype;
                                aabcc.pdno   = aa.pdno;
                                aabcc.Gsbh   = aa.Gsbh;
                                aabcc.IDCT   = aa.IDCT;
                                aabcc.Abstep = aa.Abstep + 1;
                                aabcc.abde   = aa.abde + 1;
                                AbconDAO.CapNhatPhieuChuyen(aabcc);
                            }
                        }
                    }
                }
                //them phieu
                //kiemtamaphieu = l.pdno;
                Abcon abco = new Abcon();

                abco.ABC         = l.ABC;
                abco.abde        = buocthemvao;
                abco.ABJOB       = l.ABJOB;
                abco.abmomo      = l.abmomo;
                abco.Abstep      = int.Parse(timng.BuocDuyet.ToString());
                abco.abrult      = false;
                abco.abtype      = l.abtype;
                abco.Auditor     = timng.NguoiDuyet;
                abco.bixoa       = false;
                abco.boqua       = false;
                abco.cothutu     = true;
                abco.from_depart = l.from_depart;
                abco.from_user   = l.from_user;
                abco.Gsbh        = l.Gsbh;
                abco.Id_VB_CD    = l.Id_VB_CD;
                abco.IDCapDuyet  = timng.IDCapDuyet;
                abco.IDChiTiet   = l.IDChiTiet;

                abco.kytoanbo       = true;
                abco.lydokhongduyet = l.lydokhongduyet;
                abco.Maintitle      = l.Maintitle;
                abco.ncancel        = 0;
                abco.Nhom           = l.Nhom;
                abco.Password2      = null;
                abco.pdno           = l.pdno;
                abco.received       = l.received;
                abco.signatue       = null;
                abco.Userdate       = l.Userdate;
                abco.Yn             = 4;
                AbconBUS.ThemChiTiet(abco);
            }
            HienThiDanhSach();
        }
Esempio n. 2
0
        protected void btnTrinhDuyet_Click(object sender, EventArgs e)
        {
            List <Abcon> ctxdlist = new List <Abcon>();
            pdna         phieudn  = new pdna();

            try
            {
                string maloai  = Session["loaiphieu"].ToString();
                string phieu   = Session["maphieu"].ToString();
                string bophan  = Session["bp"].ToString();
                string noidung = Session["noidung"].ToString();
                string tieude  = Session["tieude"].ToString();
                string congty  = Session["congty"].ToString();
                string user    = Session["user"].ToString();


                //string ngaytao = DateTime.Parse(DateTime.Now.ToShortDateString()).ToString("yyyy-MM-dd");
                pdna phieun = new pdna();
                {
                    phieun.GSBH       = congty;
                    phieun.pdno       = phieu;
                    phieun.pddepid    = bophan;
                    phieun.mytitle    = tieude;
                    phieun.pdmemovn   = noidung;
                    phieun.CFMDate0   = DateTime.Parse(DateTime.Now.ToShortDateString());
                    phieun.USERID     = user;
                    phieun.CFMID0     = user;
                    phieun.bixoa      = false;
                    phieun.YN         = 0;
                    phieun.USERDATE   = DateTime.Parse(DateTime.Now.ToShortDateString());
                    phieun.ABC        = Convert.ToInt32(DropUutien.SelectedValue.ToString());
                    phieun.LevelDoing = 1;
                }
                db.pdnas.InsertOnSubmit(phieun);
                db.SubmitChanges();
                for (int i = 0; i < TreeView1.Nodes[0].ChildNodes.Count; i++)
                {
                    TreeNode tn = TreeView1.Nodes[0].ChildNodes[i];
                    tn.Value = (i + 1).ToString();

                    foreach (TreeNode node in tn.ChildNodes)
                    {
                        Abcon vb = new Abcon();
                        if (ctxds.TryGetValue(tn.Text, out vb))
                        {
                            // vb.IDCT = MA_CTXetDuyet + (AbconBUS.DemSoLuongMaVanBan_CapDuyet() + 1).ToString();
                            vb.abde    = int.Parse(tn.Value.ToString());
                            vb.pdno    = phieu;
                            vb.cothutu = true;
                            vb.Abstep  = int.Parse(tn.Value.ToString());
                            AbconBUS.ThemChiTiet(vb);
                            ctxdlist.Add(vb);
                        }
                    }
                }
                foreach (string str in lstIdNguoiNhan)
                {
                    Abcon   temp        = AbconBUS.TimKiemVanBanDenTheoIdVanBan_IdNguoiNhan(phieudn.pdno, str, phieudn.CFMID0, false);
                    string  manguoidung = Session["user"].ToString();
                    string  macongty    = Session["congty"].ToString();
                    Busers2 nguoi       = UserBUS.TimNhanVienTheoMa(manguoidung, macongty);
                    if (temp != null)
                    {
                        continue;
                    }
                    Abcon vbd = new Abcon();
                    vbd.from_user = nguoi.USERID;
                    vbd.Auditor   = str;
                    //vbd.pdnoreceived = phieudn.pdno;
                    vbd.from_depart = phieudn.pddepid;
                    vbd.bixoa       = true;
                    AbconBUS.ThemChiTiet(vbd);
                }
            }
            catch (TimeoutException ex)
            {
                foreach (Abcon ct in ctxdlist)
                {
                    AbconBUS.XoaChiTiet(ct.IDCT, false);
                }
                string  manguoidung = Session["user"].ToString();
                string  macongty    = Session["congty"].ToString();
                Busers2 nguoi       = UserBUS.TimNhanVienTheoMa(manguoidung, macongty);

                pdnaBUS.XoaVanBan(phieudn, false);
                Until.WriteFileLogServer(nguoi.USERNAME + "\tTạo văn bản\t" + phieudn.pdno + "\tThất bại.");
                LbThongBao.Text = "Lỗi trong quá trình xử lý";
            }
            catch (Exception)
            {
                foreach (Abcon ct in ctxdlist)
                {
                    AbconBUS.XoaChiTiet(ct.IDCT, false);
                }

                string  manguoidung = Session["user"].ToString();
                string  macongty    = Session["congty"].ToString();
                Busers2 nguoi       = UserBUS.TimNhanVienTheoMa(manguoidung, macongty);
                pdnaBUS.XoaVanBan(phieudn, false);
                Until.WriteFileLogServer(nguoi.USERNAME + "\tTạo văn bản\t" + phieudn.pdno + "\tThất bại.");
                LbThongBao.Text = "Lỗi trong quá trình xử lý";
            }
        }