// GET: phieuxuats/Details/5
 public ActionResult Details(string id)
 {
     if (id == null)
     {
         return new HttpStatusCodeResult(HttpStatusCode.BadRequest);
     }
     phieuxuat phieuxuat = db.phieuxuats.Find(id);
     if (phieuxuat == null)
     {
         return HttpNotFound();
     }
     phieuxuatVM phieuxuatVM = new phieuxuatVM();
     phieuxuatVM.phieuxuat = phieuxuat;
     var ctphieuxuats = db.ctphieuxuats.Include(p => p.phieuxuat).Where(s => s.maso == id);
     phieuxuatVM.ctphieuxuat = ctphieuxuats.ToList();
     phieuxuatVM.daily = db.dailies.Find(phieuxuatVM.phieuxuat.madl);
     return View(phieuxuatVM);
 }
Beispiel #2
0
        public ActionResult Phieuxuat(phieuxuatVM p)
        {
            try
            {
                if (string.IsNullOrEmpty(p.phieuxuat.nguoinhan.Trim()))
                    ModelState.AddModelError("phieuxuat.nguoinhan", "Người nhận không được để trống");
                if (string.IsNullOrEmpty(p.daily.madl.Trim()))
                    ModelState.AddModelError("daily.madl", "Mã đại lý không được để trống");
                if (string.IsNullOrEmpty(p.daily.tendl.Trim()))
                    ModelState.AddModelError("daily.tendl", "Tên đại lý không được để trống");
                if (string.IsNullOrEmpty(p.daily.sdt.Trim()))
                    ModelState.AddModelError("daily.sdt", "Số điện thoại không được để trống");
                if (string.IsNullOrEmpty(p.daily.dchi.Trim()))
                    ModelState.AddModelError("daily.dchi", "Địa chỉ không được để trống");
                if (p.ctphieuxuat == null)
                    ModelState.AddModelError("ctphieuxuat", "Không có dữ liệu để nhập");
                foreach (var i in p.ctphieuxuat)
                {
                    ctphieunhap temp = db.ctphieunhaps.FirstOrDefault<ctphieunhap>(ct => (ct.masach == i.masach) && (ct.maso == i.maphieunhap));
                    if ((i.gia < temp.gia)||(i.soluong>temp.ton))
                    {
                        ModelState.AddModelError("ctphieuxuat", "Mã sách "+temp.masach+" phải có số lượng nhỏ hơn "+temp.ton+",giá lớn hơn "+temp.gia);
                    }
            }

                if (ModelState.IsValid)
                {
                    ///daily
                    daily _daily = db.dailies.FirstOrDefault<daily>(daily => daily.madl == p.daily.madl.Trim());
                    if (_daily == null)
                    {
                        _daily = new daily { madl = p.daily.madl.Trim(), tendl = p.daily.tendl.Trim(), sdt = p.daily.sdt.Trim(), dchi = p.daily.dchi.Trim(), tonkho = p.daily.tonkho };
                        db.dailies.Add(_daily);
                    }
                    else
                    {
                        _daily.tendl = p.daily.tendl.Trim();
                        _daily.sdt = p.daily.sdt.Trim();
                        _daily.dchi = p.daily.dchi.Trim();
                        _daily.tonkho = p.daily.tonkho + _daily.tonkho;
                        db.Entry(_daily).State = System.Data.Entity.EntityState.Modified;
                    }
                    ///phieuxuat
                    phieuxuat _phieuxuat = new phieuxuat { maso = p.phieuxuat.maso.Trim(), madl = p.phieuxuat.madl.Trim(), nguoinhan = p.phieuxuat.nguoinhan.Trim(), tgian = p.phieuxuat.tgian, tongtien = p.phieuxuat.tongtien };
                    db.phieuxuats.Add(_phieuxuat);
                    foreach (var j in p.ctphieuxuat)
                    {
                        j.tienno = j.thanhtien;
                        db.ctphieuxuats.Add(j);
                        ctphieunhap _ct = db.ctphieunhaps.FirstOrDefault<ctphieunhap>(ct => (ct.masach == j.masach) && (ct.maso == j.maphieunhap));
                        _ct.ton = _ct.ton - j.soluong;
                        db.Entry(_ct).State = System.Data.Entity.EntityState.Modified;
                        sach _sach = db.saches.FirstOrDefault<sach>(sach=>sach.masach==j.masach);
                        _sach.sluong = _sach.sluong - j.soluong;
                         db.Entry(_sach).State = System.Data.Entity.EntityState.Modified;
                    }
                    db.SaveChanges();
                    return RedirectToAction("Success");
                }
                ViewBag.maso = DateTime.Now.ToString("yyyMMddhhmm");
                ViewBag.tgian = DateTime.Now.ToShortDateString();
                ViewBag.linhvuc = new SelectList(db.linhvucs, "malv", "tenlv");
                ViewBag.masach = from ct in db.ctphieunhaps
                                 join s in db.saches on ct.masach equals s.masach
                                 select new SelectListItem
                                 {
                                     Text = s.tensach,
                                     Value = ct.masach + "|" + ct.maso + "|" + ct.gia
                                 };
                return View(p);
            }
            catch (Exception e)
            {
                return RedirectToAction("Error");
            }
        }