Пример #1
0
        /// <summary>
        /// Xuất ra danh sách các file xml
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="path"></param>
        /// /// <param name="Trang_Thai"> = 0 : xuất dược; 1 : hủy xuất</param>
        /// <returns></returns>
        public static bool ExportXML(int idnhap, string pathFolder, int Trang_Thai)
        {
            bool rs = false;

            QLBVEntities db = new QLBVEntities(DungChung.Bien.StrCon);

            //var NhapD2 = db.NhapDs.Where(p => p.KieuDon == 3 && p.Status == 2).ToList();// kiểu đơn = 3: xuất ngoài BV; Status = 2: xuất tuyến dưới
            // var nhap = (from a in NhapD2 where a.NgayNhap.Value.Date == dt.Date select a).ToList();

            try
            {
                NhapD n = db.NhapDs.Single(p => p.IDNhap == idnhap);


                var nhap = (from a in db.NhapDcts.Where(p => p.IDNhap == idnhap)
                            join dv in db.DichVus on a.MaDV equals dv.MaDV
                            group new { a, dv } by new { a.MaBNhan, a.MaDV, a.DonGia, a.HanDung, a.SoLo, dv.MaQD, dv.MaCC, dv.SoQD, dv.TenDV, dv.TenHC } into kq
                            select new { kq.Key.MaBNhan, kq.Key.MaDV, SoLuongX = kq.Sum(p => p.a.SoLuongX), kq.Key.DonGia, ThanhTienX = kq.Sum(p => p.a.ThanhTienX), kq.Key.HanDung, kq.Key.SoLo, kq.Key.MaQD, kq.Key.MaCC, kq.Key.SoQD, kq.Key.TenDV, kq.Key.TenHC }).ToList();

                List <KPhong> lkp = db.KPhongs.ToList();

                if (n != null)
                {
                    try
                    {
                        var      benhvien = lkp.Where(x => x.MaKP == n.MaKPnx).FirstOrDefault();
                        var      khoxuat  = lkp.Where(x => x.MaKP == n.MaKP).SingleOrDefault();
                        var      canbo    = db.CanBoes.ToList();
                        string   tenFile  = (benhvien == null ? "" : benhvien.MaKP.ToString()) + "_" + n.IDNhap + "_" + (n.NgayNhap == null ? "" : n.NgayNhap.Value.ToString("yyyyMMddHHmm")) + ".xml"; //dt.ToString("yyyyMMddHHmmss") + ".xml";
                        BenhNhan bn       = db.BenhNhans.Where(x => x.MaBNhan == n.MaBNhan).SingleOrDefault();
                        string   dtuong   = "";
                        if (bn != null && bn.SThe != null)
                        {
                            if (bn.SThe != null && bn.SThe.Length == 15)
                            {
                                string maDT = bn.SThe.Substring(0, 2);

                                if (maDT == "TE")
                                {
                                    dtuong = "2";
                                }
                                else if (maDT == "DT" || maDT == "HN" || maDT == "DK")
                                {
                                    dtuong = "3";
                                }
                                else
                                {
                                    dtuong = "1";
                                }
                            }
                            else
                            {
                                dtuong = "4";
                            }
                        }
                        else
                        {
                            dtuong = "4";
                        }
                        int stt   = 1;
                        var xEle1 = new XElement("NXT",
                                                 new XElement("TONGHOP",
                                                              // new XElement("MA_CSKCB", moi.ma_cskcb),
                                                              new XElement("MA_BV", benhvien == null ? "" : benhvien.MaQD.ToString()),
                                                              new XElement("TEN_BV", benhvien == null ? "" : benhvien.TenKP),
                                                              new XElement("MA_LK", n.IDNhap.ToString()),
                                                              new XElement("NGAY_CT", n.NgayNhap == null ? "" : n.NgayNhap.Value.ToString("yyyyMMddHHmm")),
                                                              new XElement("NGUOIGIAO", canbo.Where(p => p.MaCB == n.MaCB).Select(p => p.TenCB).FirstOrDefault()), //benhvien == null ? "" : benhvien.TenKP);
                                                              new XElement("MA_KHO_XUAT", n.MaKP == null ? "" : n.MaKP.ToString()),
                                                              new XElement("TEN_KHO_XUAT", khoxuat == null ? "" : khoxuat.TenKP),
                                                              new XElement("PHAN_LOAI_XUAT", n.KieuDon == null ? "-1" : n.KieuDon.ToString()),
                                                              new XElement("DOI_TUONG", dtuong),
                                                              new XElement("TRANG_THAI", Trang_Thai.ToString()),
                                                              new XElement("PL_GUINHAN", "1"),
                                                              new XElement("NHOM_KIEUSO", "1")),
                                                 new XElement("CHITIET",
                                                              from item in nhap
                                                              select
                                                              new XElement("DICHVU",
                                                                           new XElement("STT", stt++),
                                                                           new XElement("MA_QD", item.MaQD),// lấy mã QD
                                                                           new XElement("MA_DV", item.MaDV),
                                                                           new XElement("SO_QD", item.SoQD),
                                                                           new XElement("HAN_DUNG", item.HanDung == null ? "" : item.HanDung.Value.ToString("yyyyMMdd")),
                                                                           new XElement("NCC", item.MaCC),
                                                                           new XElement("TEN_QD", item.TenHC),
                                                                           new XElement("TEN_DV", item.TenDV),
                                                                           new XElement("DON_GIA", item.DonGia),
                                                                           new XElement("SO_LUONG", item.SoLuongX),
                                                                           new XElement("THANH_TIEN", item.ThanhTienX))));
                        xEle1.Save(pathFolder + "\\" + tenFile);
                        rs = true;
                        if (Trang_Thai == 0)
                        {
                            n.Status = 2;
                        }
                        else
                        {
                            n.Status = 0;
                        }
                        db.SaveChanges();
                    }
                    catch (Exception ex)
                    {
                        return(false);
                    }
                }
            }
            catch
            {
                return(false);
            }

            return(rs);
        }
Пример #2
0
        public bool AddToDB(TongHop th, List <Duoc> lstDuoc, QLBVEntities db, List <DichVu> qdv)
        {
            db = new QLBVEntities(DungChung.Bien.StrCon);
            int  makp   = getMaKP(th.MA_BV);
            int  idNhap = 0;
            bool rs     = false;

            //  var qdv = db.DichVus.ToList();
            if (CheckedAndDel(makp, th.MA_LK))
            {
                #region thêm nhapD
                NhapD nhapDuoc = new NhapD();
                if (ktDateTime(th.NGAY_CT, "yyyyMMddHHmm"))
                {
                    nhapDuoc.NgayNhap = DateTime.ParseExact(th.NGAY_CT, "yyyyMMddHHmm", null);
                }
                nhapDuoc.MaKP       = makp;
                nhapDuoc.TenNguoiCC = th.NGUOIGIAO;
                byte dtuong = (byte)int.Parse(th.DOI_TUONG);

                nhapDuoc.Status  = 3; // nhận tuyến dưới ( lưu thông tin tuyến dưới xuất dược)
                nhapDuoc.KieuDon = Convert.ToInt32(th.PHAN_LOAI_XUAT);
                nhapDuoc.PLoai   = 2; // xuất dược
                nhapDuoc.SoCT    = th.MA_LK;
                // ma_lk = int.Parse(ndTongHop.Element("MA_LK").Value.Trim());// Tạm nhập IDNhap vào trường MaBNhan
                // nhapDuoc.MaBNhan = ma_lk;

                db.NhapDs.AddObject(nhapDuoc);
                int count     = db.SaveChanges();
                var nhapd_new = db.NhapDs.Where(p => p.MaKP == makp && p.PLoai == 2 && p.Status == 3 && p.SoCT == th.MA_LK).OrderByDescending(p => p.IDNhap).FirstOrDefault();
                if (nhapd_new != null)
                {
                    idNhap = nhapd_new.IDNhap;
                }

                #endregion
                #region thêm nhapdct
                if (idNhap > 0)
                {
                    foreach (var a in lstDuoc)
                    {
                        DichVu  dv      = qdv.Where(p => p.MaQD == a.MA_QD).FirstOrDefault();//.Where(p => p.SoQD == a.SO_QD).Where(p => p.TenHC == a.TEN_QD).FirstOrDefault();
                        NhapDct nhapdct = new NhapDct();
                        nhapdct.IDNhap     = idNhap;
                        nhapdct.MaDV       = dv.MaDV; //?
                        nhapdct.DonVi      = dv.DonVi;
                        nhapdct.DonGia     = Convert.ToDouble(a.DON_GIA);
                        nhapdct.SoLuongX   = Convert.ToDouble(a.SO_LUONG);
                        nhapdct.ThanhTienX = Convert.ToDouble(a.THANH_TIEN);
                        nhapdct.IDDTBN     = dtuong; // dùng riêng cho Tam Đường: Đối tượng: 1- BHYT, 2- trẻ em, 3-Đối tượng 139, 4- Khác
                        if (ktDateTime(a.HAN_DUNG, "yyyyMMdd"))
                        {
                            nhapdct.HanDung = DateTime.ParseExact(a.HAN_DUNG, "yyyyMMdd", null);
                        }
                        db.NhapDcts.AddObject(nhapdct);
                    }
                    db.SaveChanges();
                    rs = true;
                }
                #endregion
            }
            return(rs);
        }