public ActionResult Create([Bind(Prefix = "danhmucsachdaban")] danhmucsachdaban danhmucsachdaban, [Bind(Prefix = "ct")] ctdmsdb[] ctdmsdb) { danhmucsachdabanviewmodel dmvm = new danhmucsachdabanviewmodel(); if (ModelState.IsValid) { danhmucsachdaban.tinhtrang = "Waiting"; danhmucsachdaban.sotiendathanhtoan = 0; int iddmsdb = 1; if (db.danhmucsachdaban.Any()) { iddmsdb = db.danhmucsachdaban.Max(o => o.iddmsdb) + 1; } int idct = 1; decimal tongtien = 0; foreach (ctdmsdb ct in ctdmsdb) { ct.iddmsdb = iddmsdb; ct.idctdmsdb = idct; idct++; hangtoncuadaily htdl = db.hangtoncuadaily.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); //kiem tra xem so luong sach đã bán có lớn hơn số lượng sách xuất cho dai ly do if (htdl != null && htdl.soluongchuaban >= ct.soluong) { htdl.soluongchuaban = htdl.soluongchuaban - ct.soluong; db.Entry(htdl).State = EntityState.Modified; } else { ModelState.AddModelError("", "số sách đã bán lớn hơn số sách xuất cho đại lý"); ViewBag.idsach = new SelectList(db.sach, "idsach", "tensach"); ViewBag.iddl = new SelectList(db.daily, "iddl", "tendl", danhmucsachdaban.iddl); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } tongtien += (decimal)(ct.soluong * htdl.sach.giaxuat); //tim nxb cua cuon sach da duoc ban nay sach s = db.sach.Find(ct.idsach); nxb n = db.nxb.Find(s.idnxb); n.sotienphaitra += ct.soluong * s.gianhap; } danhmucsachdaban.sotienconno = tongtien; danhmucsachdaban.ctdmsdb = ctdmsdb; db.danhmucsachdaban.Add(danhmucsachdaban); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.idsach = new SelectList(db.sach, "idsach", "tensach"); ViewBag.iddl = new SelectList(db.daily, "iddl", "tendl", danhmucsachdaban.iddl); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); }
public ActionResult Edit([Bind(Prefix = "danhmucsachdaban")] danhmucsachdaban danhmucsachdaban, [Bind(Prefix = "ct")] ctdmsdb[] ctdmsdb) { ViewBag.iddl = new SelectList(db.daily, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.sach, "idsach", "tensach"); danhmucsachdabanviewmodel dmvm = new danhmucsachdabanviewmodel(); if (ModelState.IsValid) { int iddmsdb = danhmucsachdaban.iddmsdb; int idct = 1; //xoa chi tiet cu trong database table hangtoncuadaily var ctcudmsdb = db.ctdmsdb.Where(o => o.iddmsdb == danhmucsachdaban.iddmsdb); foreach (ctdmsdb ct in ctcudmsdb) { hangtoncuadaily ht = db.hangtoncuadaily.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); int hangtondaily = (int)(ht.soluongchuaban + ct.soluong); } decimal tongtien = 0; //thêm chi tiết sửa vào database table hangtoncuadaily foreach (ctdmsdb ct in ctdmsdb) { ct.iddmsdb = iddmsdb; ct.idctdmsdb = idct; idct++; hangtoncuadaily ht = db.hangtoncuadaily.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); ht.soluongchuaban = (int)(ht.soluongchuaban - ct.soluong); if (ht.soluongchuaban < 0) { danhmucsachdaban.ctdmsdb = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } sach s = db.sach.Find(ct.idsach); nxb n = db.nxb.Find(s.idnxb); n.sotienphaitra += ct.soluong * s.gianhap; tongtien += (decimal)(ct.soluong * s.giaxuat); } foreach (ctdmsdb ct in ctcudmsdb) { nxb n = db.nxb.Find(ct.sach.idnxb); n.sotienphaitra -= ct.soluong * ct.sach.gianhap; if (n.sotienphaitra < 0) { danhmucsachdaban.ctdmsdb = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } db.ctdmsdb.Remove(ct); } foreach (ctdmsdb ct in ctdmsdb) { db.ctdmsdb.Add(ct); } danhmucsachdaban.sotienconno = tongtien; danhmucsachdaban.sotiendathanhtoan = 0; danhmucsachdaban.tinhtrang = "Waiting"; db.Entry(danhmucsachdaban).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } danhmucsachdaban.ctdmsdb = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); }
public ActionResult Create([Bind(Prefix = "phieuxuat")] phieuxuat phieuxuat, [Bind(Prefix = "ct")] ctpx[] ctpx) { if (ModelState.IsValid) { decimal tongtien = 0; int idpx = 1; if (db.phieuxuats.Any()) { idpx = db.phieuxuats.Max(o => o.idpx) + 1; } int idct = 1; foreach (ctpx ct in ctpx) { ct.idpx = idpx; ct.idctpx = idct; idct++; //cap nhat ton kho hien tai tonkho tk = new tonkho(); tk.thoidiem = DateTime.Now; tonkho tkht = db.tonkhoes.OrderByDescending(o => o.idtk).FirstOrDefault(o => o.idsach == (int)ct.idsach); //kiem tra xem cuon sach du so luong de xuat ko if (tkht != null && tkht.soluongton >= ct.soluong) { tk.idsach = (int)ct.idsach; tk.soluongton = tkht.soluongton - ct.soluong; db.tonkhoes.Add(tk); } else { ModelState.AddModelError("", "Không đủ số lượng hoặc chưa nhập sách về"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl"); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); return(View()); } //cap nhat so sach da gui cho dai ly hangtoncuadaily htdl = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == phieuxuat.iddl && o.idsach == ct.idsach); if (htdl != null) { htdl.soluongchuaban = htdl.soluongchuaban + ct.soluong; db.Entry(htdl).State = EntityState.Modified; } else { htdl = new hangtoncuadaily(); htdl.iddl = phieuxuat.iddl; htdl.idsach = ct.idsach; htdl.soluongchuaban = ct.soluong; db.hangtoncuadailies.Add(htdl); } // tạo mới công nợ tongtien += (decimal)(ct.soluong * db.saches.Find(ct.idsach).giaxuat); } congnotheothoigian cn = new congnotheothoigian(); cn.thoidiem = (DateTime)phieuxuat.ngayxuat; congnotheothoigian cnht = db.congnotheothoigians.OrderByDescending(o => o.id).FirstOrDefault(o => o.iddl == phieuxuat.iddl); if (cnht.congno > 0 && tongtien > cnht.congno) { ModelState.AddModelError("", "Tổng tiền lớn hơn công nợ"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl"); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); return(View()); } if (cnht.congno != null) { cn.iddl = phieuxuat.iddl; System.Diagnostics.Debug.WriteLine("Tổng tiền là : " + tongtien); cn.congno = cnht.congno + tongtien; System.Diagnostics.Debug.WriteLine("Công nợ là : " + cn.congno); db.congnotheothoigians.Add(cn); } else { cn.iddl = phieuxuat.iddl; cn.congno = tongtien; db.congnotheothoigians.Add(cn); } phieuxuat.ctpxes = ctpx; db.phieuxuats.Add(phieuxuat); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl"); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); return(View()); }
public ActionResult Edit([Bind(Prefix = "phieuxuat")] phieuxuat phieuxuat, [Bind(Prefix = "ct")] ctpx[] ctpx) { if (ModelState.IsValid) { int idpx = phieuxuat.idpx; int idct = 1; //xóa chi tiết cũ trong database table sach //tinh tong tien cu int tongtiencu = 0; var ctpxcu = db.ctpxes.Where(ct => ct.idpx == phieuxuat.idpx).ToList(); foreach (var ct in ctpxcu) { sach s = db.saches.Find(ct.idsach); tonkho tkht = db.tonkhoes.OrderByDescending(o => o.idtk).FirstOrDefault(o => o.idsach == (int)ct.idsach); int soluonghientai = (int)(tkht.soluongton + ct.soluong); tkht.soluongton = soluonghientai; tongtiencu += (int)(ct.soluong * s.giaxuat); } //thêm chi tiết sửa vào database table hangtoncuadaily foreach (ctpx ct in ctpx) { ct.idpx = idpx; ct.idctpx = idct; idct++; hangtoncuadaily ht = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == phieuxuat.iddl && o.idsach == ct.idsach); ht.soluongchuaban = (int)(ht.soluongchuaban + ct.soluong); } //xoa chi tiet cu trong database table hangtoncuadaily foreach (ctpx ct in ctpxcu) { hangtoncuadaily ht = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == phieuxuat.iddl && o.idsach == ct.idsach); int hangtondaily = (int)(ht.soluongchuaban - ct.soluong); if (hangtondaily < 0) { ModelState.AddModelError("", "so sach nay da duoc ban" + hangtondaily); phieuxuat.ctpxes = ctpx; return(re(phieuxuat)); } db.ctpxes.Remove(ct); } //tinh tong tien moi int tongtien = 0; //thêm chi tiết sửa vào database table sach foreach (ctpx ct in ctpx) { sach s = db.saches.Find(ct.idsach); tonkho tkht = db.tonkhoes.OrderByDescending(o => o.idtk).FirstOrDefault(o => o.idsach == (int)ct.idsach); if (tkht.soluongton != null) { tkht.soluongton = tkht.soluongton - ct.soluong; } if (tkht.soluongton < 0) { ModelState.AddModelError("", "so luong hien tai khong du de xuat " + tkht.soluongton + " vui long kiem tra lai"); phieuxuat.ctpxes = ctpx; return(re(phieuxuat)); } tongtien += (int)(ct.soluong * s.giaxuat); } //cap nhat cong no daily dl = db.dailies.Find(phieuxuat.iddl); congnotheothoigian cnht = db.congnotheothoigians.OrderByDescending(o => o.id).FirstOrDefault(o => o.iddl == phieuxuat.iddl); if (cnht.congno > 0 && tongtien > cnht.congno) { ModelState.AddModelError("", "tong tien phieu xuat lon hon cong no hien tai cua dai ly"); phieuxuat.ctpxes = ctpx; return(re(phieuxuat)); } if (cnht.congno != null) { cnht.congno = cnht.congno + tongtien - tongtiencu; } if (cnht.congno < 0) { ModelState.AddModelError("", "cong no dai ly la so am => co sach da ban trong phieu chua sua"); phieuxuat.ctpxes = ctpx; return(re(phieuxuat)); } foreach (ctpx ct in ctpx) { db.ctpxes.Add(ct); } db.Entry(phieuxuat).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index"));; } phieuxuat.ctpxes = ctpx; return(re(phieuxuat)); }
public ActionResult Create([Bind(Prefix = "danhmucsachdaban")] danhmucsachdaban danhmucsachdaban, [Bind(Prefix = "ct")] ctdmsdb[] ctdmsdb) { danhmucsachdabanviewmodel dmvm = new danhmucsachdabanviewmodel(); if (ModelState.IsValid) { danhmucsachdaban.tinhtrang = "Waiting"; danhmucsachdaban.sotiendathanhtoan = 0; decimal tongtien = 0; decimal tongtienbanduoc = 0; int iddm = 1; if (db.danhmucsachdabans.Any()) { iddm = db.danhmucsachdabans.Max(a => a.iddmsdb) + 1; } int idct = 1; foreach (ctdmsdb ct in ctdmsdb) { ct.iddmsdb = iddm; ct.idctdmsdb = idct; idct++; hangtoncuadaily htdl = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); if (htdl == null) { ModelState.AddModelError("", "Không tìm thấy hàng tồn . Chọn sai đại lý hoặc là chọn sai tên sách ở chi tiết"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } if (htdl != null && htdl.soluongchuaban >= ct.soluong) { htdl.soluongchuaban = htdl.soluongchuaban - ct.soluong; db.Entry(htdl).State = EntityState.Modified; } else { ModelState.AddModelError("", "Số lượng sách đã bán lớn hơn số sách xuất cho đại lý"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } tongtien += (decimal)(ct.soluong * db.saches.Find(ct.idsach).giaxuat); //cập nhật số tiền phải tra cho nhà xuất bản sach s = db.saches.Find(ct.idsach); System.Diagnostics.Debug.WriteLine("Id sách " + ct.idsach); nxb n = db.nxbs.Find(s.idnxb); System.Diagnostics.Debug.WriteLine("Id nhà xuất bản : " + n.idnxb); System.Diagnostics.Debug.WriteLine("Nhà xuất bản : " + n.tennxb); sotienphaitrachonxb st = new sotienphaitrachonxb(); st.thoidiem = (DateTime)danhmucsachdaban.thoigian; sotienphaitrachonxb stht = db.sotienphaitrachonxbs.OrderByDescending(o => o.id).FirstOrDefault(o => o.idnxb == n.idnxb); System.Diagnostics.Debug.WriteLine("Id nhà xuất bản sau khi lấy : " + stht.idnxb); System.Diagnostics.Debug.WriteLine("Số tiền phải trả cho nhà xuất bản : " + stht.sotienphaitra); tongtienbanduoc = (decimal)(ct.soluong * s.gianhap); System.Diagnostics.Debug.WriteLine(tongtienbanduoc); if (stht != null) { st.idnxb = n.idnxb; st.sotienphaitra = (ct.soluong * s.gianhap); System.Diagnostics.Debug.WriteLine("Đây là số tiền phải trả : " + st.sotienphaitra); db.sotienphaitrachonxbs.Add(st); } else { ModelState.AddModelError("", "Không lấy được số tiền phải trả cho nhà xuất bản"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } } /*congnotheothoigian cn = new congnotheothoigian(); * cn.thoidiem = (DateTime)danhmucsachdaban.thoigian; * congnotheothoigian cnht = db.congnotheothoigians.OrderByDescending(o => o.id).FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl); * if(cnht.congno!=null) * { * cn.iddl = danhmucsachdaban.iddl; * cn.congno = cnht.congno - tongtien; * db.congnotheothoigians.Add(cn); * } * else * { * cn.iddl = danhmucsachdaban.iddl; * cn.congno = tongtien; * db.congnotheothoigians.Add(cn); * } */ danhmucsachdaban.sotienconno = tongtien; danhmucsachdaban.ctdmsdbs = ctdmsdb; db.danhmucsachdabans.Add(danhmucsachdaban); db.SaveChanges(); return(RedirectToAction("Index")); } ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); }
public ActionResult Edit([Bind(Prefix = "danhmucsachdaban")] danhmucsachdaban danhmucsachdaban, [Bind(Prefix = "ct")] ctdmsdb[] ctdmsdb) { ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); danhmucsachdabanviewmodel dmvm = new danhmucsachdabanviewmodel(); if (ModelState.IsValid) { decimal tongtien = 0; decimal tongtienmoi = 0; int iddmsdb = danhmucsachdaban.iddmsdb; int idct = 1; //xoa chi tiet cu trong database table hangtoncuadaily var ctcudmsdb = db.ctdmsdbs.Where(o => o.iddmsdb == danhmucsachdaban.iddmsdb); foreach (ctdmsdb ct in ctcudmsdb) { hangtoncuadaily ht = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); int hangtondaily = (int)(ht.soluongchuaban + ct.soluong); ht.soluongchuaban = hangtondaily; db.Entry(ht).State = EntityState.Modified; System.Diagnostics.Debug.WriteLine("Hàng tồn đại lý return : " + hangtondaily); } //thêm chi tiết sửa vào database table hangtoncuadaily foreach (ctdmsdb ct in ctdmsdb) { ct.iddmsdb = iddmsdb; ct.idctdmsdb = idct; idct++; hangtoncuadaily ht = db.hangtoncuadailies.FirstOrDefault(o => o.iddl == danhmucsachdaban.iddl && o.idsach == ct.idsach); ht.soluongchuaban = (int)(ht.soluongchuaban - ct.soluong); if (ht.soluongchuaban < 0) { ModelState.AddModelError("", "Hàng tồn của đại lý sau khi sửa bé hơn 0"); danhmucsachdaban.ctdmsdbs = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } sach s = db.saches.Find(ct.idsach); nxb n = db.nxbs.Find(s.idnxb); sotienphaitrachonxb st = new sotienphaitrachonxb(); st.thoidiem = (DateTime)danhmucsachdaban.thoigian; sotienphaitrachonxb stht = db.sotienphaitrachonxbs.OrderByDescending(o => o.id).FirstOrDefault(o => o.idnxb == n.idnxb); if (stht != null) { st.idnxb = n.idnxb; st.sotienphaitra = (ct.soluong * s.gianhap); db.sotienphaitrachonxbs.Add(st); } else { ModelState.AddModelError("", "Không lấy được số tiền phải trả cho nhà xuất bản"); ViewBag.iddl = new SelectList(db.dailies, "iddl", "tendl", danhmucsachdaban.iddl); ViewBag.idsach = new SelectList(db.saches, "idsach", "tensach"); dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } tongtien += (decimal)(ct.soluong * s.giaxuat); } foreach (ctdmsdb ct in ctcudmsdb) { nxb n = db.nxbs.Find(ct.sach.idnxb); sotienphaitrachonxb stht = db.sotienphaitrachonxbs.OrderByDescending(o => o.id).FirstOrDefault(o => o.idnxb == n.idnxb); tongtienmoi = (decimal)(stht.sotienphaitra - (ct.soluong * ct.sach.gianhap)); System.Diagnostics.Debug.WriteLine("Số tiền phải trả cũ là : " + stht.sotienphaitra); System.Diagnostics.Debug.WriteLine("số tiền phải trả mới là : " + tongtienmoi); if (tongtienmoi < 0) { ModelState.AddModelError("", "Tổng tiền sau khi sửa nhỏ hơn 0 "); danhmucsachdaban.ctdmsdbs = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); } db.ctdmsdbs.Remove(ct); } foreach (ctdmsdb ct in ctdmsdb) { db.ctdmsdbs.Add(ct); } danhmucsachdaban.sotienconno = tongtien; danhmucsachdaban.sotiendathanhtoan = 0; danhmucsachdaban.tinhtrang = "Waiting"; db.Entry(danhmucsachdaban).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Index")); } danhmucsachdaban.ctdmsdbs = ctdmsdb; dmvm.danhmucsachdaban = danhmucsachdaban; return(View(dmvm)); }
public ActionResult Create([Bind(Prefix = "phieuxuat")] phieuxuat phieuxuat, [Bind(Prefix = "ct")] ctpx[] ctpx) { if (ModelState.IsValid) { decimal tongtien = 0; int idpx = 1; if (db.phieuxuat.Any()) { idpx = db.phieuxuat.Max(o => o.idpx) + 1; } int idct = 1; foreach (ctpx ct in ctpx) { ct.idpx = idpx; ct.idctpx = idct; idct++; //cap nhat ton kho hien tai sach a = db.sach.Find(ct.idsach); //kiem tra xem cuon sach du so luong de xuat ko if (a.soluongton > ct.soluong) { a.soluongton = a.soluongton - ct.soluong; } else { ModelState.AddModelError("", "Không đủ số lượng hoặc chưa nhập sách về"); phieuxuat.ctpx = ctpx; return(re(phieuxuat)); } //cap nhat so sach da gui cho dai ly hangtoncuadaily htdl = db.hangtoncuadaily.FirstOrDefault(o => o.iddl == phieuxuat.iddl && o.idsach == ct.idsach); if (htdl != null && htdl.soluongchuaban != null) { htdl.soluongchuaban = htdl.soluongchuaban + ct.soluong; } else { htdl = new hangtoncuadaily(); htdl.iddl = phieuxuat.iddl; htdl.idsach = ct.idsach; htdl.soluongchuaban = ct.soluong; db.hangtoncuadaily.Add(htdl); } tongtien += (decimal)(ct.soluong * db.sach.Find(ct.idsach).giaxuat); } //cap nhat cong no daily dl = db.daily.Find(phieuxuat.iddl); if (dl.congno > 0 && tongtien > dl.congno) { ModelState.AddModelError("", "tong tien phieu xuat lon hon cong no hien tai cua dai ly"); phieuxuat.ctpx = ctpx; return(re(phieuxuat)); } if (dl.congno != null) { dl.congno = dl.congno + tongtien; } else { dl.congno = tongtien; } phieuxuat.ctpx = ctpx; db.phieuxuat.Add(phieuxuat); db.SaveChanges(); return(RedirectToAction("Index")); } phieuxuat.ctpx = ctpx; return(re(phieuxuat)); }