public ActionResult ThanhToan()
        {
            var sessionCart = (ShoppingCart)Session[CommonConstant.CartSession];
            var sessionUser = (UserLogin)Session[CommonConstant.USER_SESSION];
            ApplicationDbContext  context    = new ApplicationDbContext();
            List <ChiTietXuatKho> lstXuatKho = new List <ChiTietXuatKho>();

            foreach (ShoppingCartItem x in sessionCart.lstItems)
            {
                ChiTietXuatKho chiTietXuatKho = new ChiTietXuatKho();
                chiTietXuatKho.ChiTietXuatKhoID = 0;
                chiTietXuatKho.SanPhamID        = x.SanPhamID;
                chiTietXuatKho.SoLuong          = x.SoLuong;
                chiTietXuatKho.TongTien         = x.ThanhTien();
                lstXuatKho.Add(chiTietXuatKho);
            }
            XuatKho xuatKho = new XuatKho()
            {
                XuatKhoID        = 0,
                UserID           = (int)sessionUser.UserID,
                ChiTietXuatKhoes = lstXuatKho,
                NgayXuat         = DateTime.UtcNow
            };

            context.XuatKhoes.Add(xuatKho);
            context.SaveChanges();
            context.Dispose();
            sessionCart.EmtyCart();
            return(RedirectToAction("Index", "Home"));
        }
示例#2
0
 private void button7_Click(object sender, EventArgs e)
 {
     try
     {
         int     number = Convert.ToInt32(textBox22.Text);
         XuatKho xk     = new XuatKho();
         xk.MaQuay      = textBox10.Text;
         xk.TenQuay     = textBox9.Text;
         xk.MaSP        = textBox8.Text;
         xk.SoLuongXuat = number;
         db.XuatKhos.InsertOnSubmit(xk);
         db.SubmitChanges();
         xuatkho();
         // Update số lượng kho
         // DataClasses3DataContext db2 = new DataClasses3DataContext();
         //var update = db2.NhapKhos.Single(p => p.MaSP == textBox8.Text);
         // update.SoLuongNhap = update.SoLuongNhap - number;
         // db2.SubmitChanges();
         //loadkho();
     }
     catch (SqlException ex)
     {
         if (ex.Number == 2627)
         {
             MessageBox.Show("Mã SP đã tồn tại");
         }
         if (ex.Number == 2601) // Cannot insert duplicate key row in object error
         {
             MessageBox.Show("Mã SP đã tồn tại");
             // handle duplicate key error
             return;
         }
     }
 }
示例#3
0
 public void HienXuatKho(List <XuatKho> list)
 {
     Console.WriteLine("|{0,-20}|{1,-20}|{2,-20}|{3,-20}|{4,-20}|", "Mã báo cáo", "Ngày nhập", "Tên mặt hàng", "Số lượng", "Giá bán");
     foreach (XuatKho XuatKho in list)
     {
         XuatKho.Display();
     }
 }
示例#4
0
        public ActionResult DeleteConfirmed(int id)
        {
            XuatKho xuatKho = db.XuatKhoes.Find(id);

            db.XuatKhoes.Remove(xuatKho);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
示例#5
0
        public void GhiFile(List <XuatKho> list)
        {
            StreamWriter streamWriter = new StreamWriter(path);

            foreach (XuatKho XuatKho in list)
            {
                streamWriter.WriteLine(XuatKho.ToString());
            }
            streamWriter.Close();
        }
 public ActionResult Edit([Bind(Include = "STT,MaPhieuXuat,MaHangHoa,SoLuong,NgayXuat,MaKhachHang")] XuatKho xuatKho)
 {
     if (ModelState.IsValid)
     {
         db.Entry(xuatKho).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     return(View(xuatKho));
 }
        public ActionResult Create([Bind(Include = "STT,MaPhieuXuat,MaHangHoa,SoLuong,NgayXuat,MaKhachHang")] XuatKho xuatKho)
        {
            if (ModelState.IsValid)
            {
                db.XuatKhos.Add(xuatKho);
                db.SaveChanges();
                return(RedirectToAction("Index"));
            }

            return(View(xuatKho));
        }
示例#8
0
 public ActionResult Edit([Bind(Include = "Id,IdQuanLiKho,NguoiXuatKho,NgayXuat,SoLuong")] XuatKho xuatKho)
 {
     if (ModelState.IsValid)
     {
         db.Entry(xuatKho).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IdQuanLiKho  = new SelectList(db.QuanLiKhoes, "Id", "Id", xuatKho.IdQuanLiKho);
     ViewBag.NguoiXuatKho = new SelectList(db.QuanTris, "Id", "HoVaTen", xuatKho.NguoiXuatKho);
     return(View(xuatKho));
 }
示例#9
0
        public async Task <ResponseData> LayTatCaPhieuXuatKho()
        {
            try
            {
                string url     = string.Format("{0}/api/export/get-all", Config.HOST);
                var    client  = new RestSharp.RestClient(url);
                var    request = new RestSharp.RestRequest(Method.GET);
                request.AddHeader("content-type", "application/json; charset=utf-8");
                request.AddHeader("x-access-token", UserResponse.AccessToken);

                var response = await client.ExecuteTaskAsync(request);

                var responseParse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(response.Content);
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var            data = responseParse["data"];
                    var            listPhieuNhapJson = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(data.ToString());
                    List <XuatKho> listXuatKho       = new List <XuatKho>();
                    foreach (var item in listPhieuNhapJson)
                    {
                        XuatKho xuatKho = Newtonsoft.Json.JsonConvert.DeserializeObject <XuatKho>(item.ToString());
                        Kho     kho     = new Kho()
                        {
                            Id  = item["IdKho"],
                            Ten = item["TenKho"]
                        };
                        NhanVien nhanVien = new NhanVien()
                        {
                            Id  = item["IdNhanVien"],
                            Ten = item["TenNhanVien"]
                        };
                        xuatKho.NhanVien = nhanVien;
                        xuatKho.Kho      = kho;
                        listXuatKho.Add(xuatKho);
                    }
                    return(new ResponseData()
                    {
                        Status = Config.CODE_OK,
                        Data = listXuatKho,
                        Message = ""
                    });
                }
                else
                {
                    return(Util.GenerateErrorResponse(response, responseParse));
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
示例#10
0
        public void Sua(List <XuatKho> list)
        {
            XuatKho XuatKho = TimXuatKho(list);

            if (XuatKho == null)
            {
                Console.WriteLine("Không tìm thấy báo cáo");
            }
            else
            {
                XuatKho.Nhap(list);
            }
        }
示例#11
0
        public void TimKiem(List <XuatKho> list)
        {
            XuatKho XuatKho = TimXuatKho(list);

            if (XuatKho == null)
            {
                Console.WriteLine("Không tìm thấy báo cáo");
            }
            else
            {
                XuatKho.Display();
            }
        }
示例#12
0
        public void Xoa(List <XuatKho> list)
        {
            XuatKho XuatKho = TimXuatKho(list);

            if (XuatKho == null)
            {
                Console.WriteLine("Không tìm thấy báo cáo");
            }
            else
            {
                list.Remove(XuatKho);
            }
        }
示例#13
0
        /* public ActionResult Index()
         * {
         *   var xuatKhoes = db.XuatKhoes.Include(x => x.QuanLiKho).Include(x => x.QuanTri);
         *   return View(xuatKhoes.ToList());
         * }*/

        // GET: admin/XuatKhoes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            XuatKho xuatKho = db.XuatKhoes.Find(id);

            if (xuatKho == null)
            {
                return(HttpNotFound());
            }
            return(View(xuatKho));
        }
示例#14
0
 public void NhapXuatKho(List <XuatKho> list)
 {
     while (true)
     {
         XuatKho XuatKho = new XuatKho();
         XuatKho.Nhap(list);
         list.Add(XuatKho);
         Console.WriteLine("Bạn muốn nhập tiếp không?C/K");
         string chon = Console.ReadLine();
         if (chon == "k" || chon == "K")
         {
             break;
         }
     }
 }
示例#15
0
        // GET: admin/XuatKhoes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            XuatKho xuatKho = db.XuatKhoes.Find(id);

            if (xuatKho == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IdQuanLiKho  = new SelectList(db.QuanLiKhoes, "Id", "Id", xuatKho.IdQuanLiKho);
            ViewBag.NguoiXuatKho = new SelectList(db.QuanTris, "Id", "HoVaTen", xuatKho.NguoiXuatKho);
            return(View(xuatKho));
        }
示例#16
0
        public void ThongKeXuat(List <XuatKho> list)
        {
            int     dem     = 0;
            XuatKho xuatKho = TimXuatKho(list);

            if (xuatKho == null)
            {
                Console.WriteLine("Không tìm thấy báo cáo");
            }
            else
            {
                dem += xuatKho.Soluong;
                xuatKho.Display();
            }
            Console.WriteLine("Số lượng xuất là: " + dem);
        }
示例#17
0
        public XuatKho TimXuatKho(List <XuatKho> list)
        {
            XuatKho XuatKho = null;

            Console.WriteLine("Nhập từ khóa: ");
            string tukhoa = Console.ReadLine();

            foreach (XuatKho sp in list)
            {
                if (tukhoa.Equals(sp.Mabaocao) || tukhoa.Equals(sp.Tenmathang))
                {
                    XuatKho = sp;
                }
            }
            return(XuatKho);
        }
示例#18
0
        public bool InsertXuatKho(XuatKho obj)
        {
            try
            {
                string idLog     = Guid.NewGuid().ToString();
                string idXuatKho = Guid.NewGuid().ToString(); DAL.ConnectData.getInstance().InsertCommand(tableXuatKho,
                                                                                                          "id", SqlDbType.UniqueIdentifier, new Guid(idXuatKho),
                                                                                                          "id_hdn", SqlDbType.UniqueIdentifier, new Guid(obj.IdHdn),
                                                                                                          "id_kho", SqlDbType.UniqueIdentifier, new Guid(obj.IdKho),
                                                                                                          "id_ticket_hospital", SqlDbType.NVarChar, obj.IdTicketHospital,
                                                                                                          "id_luutru", SqlDbType.NVarChar, obj.IdLuutru,
                                                                                                          "id_xuatkho_log", SqlDbType.NVarChar, idLog,
                                                                                                          "create_date", SqlDbType.DateTime, obj.CreateDate,
                                                                                                          "create_by", SqlDbType.NVarChar, obj.CreateBy,
                                                                                                          "thoigian_xuattam", SqlDbType.Int, obj.ThoigiangXuattam,
                                                                                                          "thoigian_tra_dukien", SqlDbType.DateTime, obj.ThoigianTraDukien,
                                                                                                          "nguoitiepnhan", SqlDbType.NVarChar, obj.Nguoitiepnhan,
                                                                                                          "description", SqlDbType.NVarChar, obj.Description,
                                                                                                          "soct", SqlDbType.NVarChar, obj.Soct,
                                                                                                          "is_used", SqlDbType.Int, 1
                                                                                                          );

                DAL.ConnectData.getInstance().InsertCommand(tableXuatKhoLog,
                                                            "id", SqlDbType.UniqueIdentifier, new Guid(idLog),
                                                            "id_xuat_kho", SqlDbType.UniqueIdentifier, new Guid(idXuatKho),
                                                            "create_date", SqlDbType.DateTime, obj.CreateDate,
                                                            "create_by", SqlDbType.NVarChar, obj.CreateBy,
                                                            "thoigian_xuattam", SqlDbType.Int, obj.ThoigiangXuattam,
                                                            "thoigian_tra_dukien", SqlDbType.DateTime, obj.ThoigianTraDukien,
                                                            "nguoitiepnhan", SqlDbType.NVarChar, obj.Nguoitiepnhan,
                                                            "description", SqlDbType.NVarChar, obj.Description
                                                            );

                DAL.ConnectData.getInstance().UpdateCommand(tableNhapKho,
                                                            "id", SqlDbType.UniqueIdentifier, new Guid(obj.IdHdn),
                                                            "id_hdx", SqlDbType.NVarChar, idXuatKho,
                                                            "flag", SqlDbType.Int, 0
                                                            );
            }
            catch (Exception ex)
            {
                return(false);
            }
            return(true);
        }
示例#19
0
        public async Task <ResponseData> CapNhatPhieuXuatKho(XuatKho phieuXuat, List <VatTuNhapXuat> listVatTu)
        {
            try
            {
                string url     = string.Format("{0}/api/export/update-receipt", Config.HOST);
                var    client  = new RestSharp.RestClient(url);
                var    request = new RestSharp.RestRequest(Method.PUT);
                request.AddHeader("content-type", "application/json; charset=utf-8");
                request.AddHeader("x-access-token", UserResponse.AccessToken);
                request.AddJsonBody(new
                {
                    Ma          = phieuXuat.Ma,
                    NgayXuat    = phieuXuat.NgayXuat,
                    DiaChi      = phieuXuat.DiaChi,
                    IdNhanVien  = phieuXuat.NhanVien.Id,
                    IdKho       = phieuXuat.Kho.Id,
                    Id          = phieuXuat.Id,
                    GhiChu      = phieuXuat.GhiChu,
                    listProduct = listVatTu.Select(x => new { x.Id, x.SoLuong, x.GhiChu }).ToList()
                });

                var response = await client.ExecuteTaskAsync(request);

                var responseParse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(response.Content);
                if (response.StatusCode == System.Net.HttpStatusCode.OK)
                {
                    var data       = responseParse["data"];
                    var totalPrice = (decimal)data["totalPrice"];
                    return(new ResponseData()
                    {
                        Status = Config.CODE_OK,
                        Data = totalPrice,
                        Message = ""
                    });
                }
                else
                {
                    return(Util.GenerateErrorResponse(response, responseParse));
                }
            }
            catch (Exception ex)
            {
                return(null);
            }
        }
示例#20
0
        private async void LoadChiTietPhieuXuat(int Id)
        {
            var result = await XuatKhoService.LayChiTietPhieuXuatKho(Id);

            if (result != null && result.Status == Config.CODE_OK)
            {
                listChiTietXuatKho = (List <ChiTietXuatKho>)result.Data;
                xuatKho            = listChiTietXuatKho[0].XuatKho;
                txtMa.Text         = xuatKho.Ma;
                txtGhiChu.Text     = xuatKho.GhiChu;
                txtTongTien.Text   = xuatKho.TongTien.ToString();
                dtpNgayNhap.Value  = xuatKho.NgayXuat;
                cboKho.Text        = xuatKho.Kho.Ten;
                txtDiaChi.Text     = xuatKho.DiaChi;
                cboNhanVien.Text   = xuatKho.NhanVien.Ten;

                LoadDanhSachVatTu(xuatKho.Kho.Id);
            }
        }
示例#21
0
 public bool DeleteXuatKho(XuatKho obj)
 {
     try
     {
         DAL.ConnectData.getInstance().UpdateCommand(tableXuatKho,
                                                     "id", SqlDbType.UniqueIdentifier, new Guid(obj.Id),
                                                     "is_used", SqlDbType.Int, 0,
                                                     "update_date", SqlDbType.DateTime, obj.UpdateDate,
                                                     "update_by", SqlDbType.NVarChar, obj.UpdateBy
                                                     );
         //Cập nhật thông tin bên HDN
         DAL.ConnectData.getInstance().UpdateCommand(tableNhapKho,
                                                     "id", SqlDbType.UniqueIdentifier, new Guid(obj.IdHdn),
                                                     "id_hdx", SqlDbType.NVarChar, DBNull.Value
                                                     );
     }
     catch (Exception ex)
     {
         return(false);
     }
     return(true);
 }
        private void initData()
        {
            switch (mode)
            {
            case 0:
                break;

            case 1:
                if (ds1 != null)
                {
                    DetailReport detailRPT = new DetailReport();
                    detailRPT.DataSource = ds1;
                    this.Text            = "Bao cao chi tiet";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    detailRPT.PrintingSystem = printingSystem1;
                    detailRPT.CreateDocument();
                }
                break;

            case 2:
                if (ds2 != null)
                {
                    TienVonReport rpt = new TienVonReport();
                    rpt.DataSource = ds2;
                    this.Text      = "Báo cáo tiền vốn";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 3:
                if (ds3 != null)
                {
                    TonKhoReport rpt = new TonKhoReport();
                    rpt.DataSource = ds3;
                    this.Text      = "Báo cáo tồn kho";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 4:
                if (ds4 != null)
                {
                    Hoadon rpt = new Hoadon();
                    rpt.DataSource = ds4;
                    this.Text      = "Hóa đơn";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 5:
                if (ds5 != null)
                {
                    DetailReportDSBH rpt = new DetailReportDSBH();
                    rpt.DataSource = ds5;
                    this.Text      = "Doanh số bán hàng";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 6:
                if (ds6 != null)
                {
                    ThongKeHoaDon rpt = new ThongKeHoaDon();
                    rpt.DataSource = ds6;
                    this.Text      = "Thống kê hóa đơn xuất";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 7:
                if (ds7 != null)
                {
                    Hoadonbep rpt = new Hoadonbep();
                    rpt.DataSource = ds7;
                    this.Text      = "Phiếu gọi món";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 8:
                if (ds8 != null)
                {
                    DetailThongKeVanDe rpt = new DetailThongKeVanDe();
                    rpt.DataSource = ds8;
                    this.Text      = "Thống kê hóa đơn xuất";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            case 9:
                if (ds7 != null)
                {
                    XuatKho rpt = new XuatKho();
                    rpt.DataSource = ds7;
                    this.Text      = "Phiếu Xuất Kho";
                    this.printingSystem1.ClearContent();
                    Invalidate();
                    Update();
                    rpt.PrintingSystem = printingSystem1;
                    rpt.CreateDocument();
                }
                break;

            default:
                break;
            }
        }
        public IHttpActionResult PutKHO_XUAT_KHO(XuatKho kho_xuatkho)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }

            //Lưu thông tin nhập kho
            var xk = db.KHO_XUAT_KHO.Where(x => x.SO_CHUNG_TU == kho_xuatkho.SO_CHUNG_TU).FirstOrDefault();

            xk.NGAY_CHUNG_TU   = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_CHUNG_TU);
            xk.NGAY_HACH_TOAN  = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_HACH_TOAN);
            xk.SO_CHUNG_TU     = kho_xuatkho.SO_CHUNG_TU;
            xk.NGUOI_NHAN      = kho_xuatkho.NGUOI_NHAN;
            xk.KHACH_HANG      = kho_xuatkho.KHACH_HANG;
            xk.NGUOI_LAP_PHIEU = kho_xuatkho.NGUOI_LAP_PHIEU;
            xk.TRUC_THUOC      = kho_xuatkho.TRUC_THUOC;
            xk.LOAI_XUAT_KHO   = kho_xuatkho.LOAI_XUAT_KHO;

            //Lưu thông tin tham chiếu
            if (kho_xuatkho.ThamChieu.Count > 0)
            {
                foreach (ThamChieu item in kho_xuatkho.ThamChieu)
                {
                    var newItem = db.XL_THAM_CHIEU_CHUNG_TU.Where(x => x.SO_CHUNG_TU_GOC == xk.SO_CHUNG_TU).FirstOrDefault();
                    if (newItem != null)
                    {
                        //newItem.SO_CHUNG_TU_GOC = xk.SO_CHUNG_TU;
                        newItem.SO_CHUNG_TU_THAM_CHIEU = item.SO_CHUNG_TU;
                    }
                }
            }
            //Lưu chi tiết
            decimal tongtien = 0;

            //TONKHO_HOPLONG HHTon = new TONKHO_HOPLONG();
            //HH_NHOM_VTHH NhomHang = new HH_NHOM_VTHH();
            if (kho_xuatkho.ChiTietPX != null && kho_xuatkho.ChiTietPX.Count > 0)
            {
                foreach (ChiTietPhieuXuatKho item in kho_xuatkho.ChiTietPX)
                {
                    var newItem = db.KHO_CT_XUAT_KHO.Where(x => x.SO_CHUNG_TU == xk.SO_CHUNG_TU).FirstOrDefault();
                    int sl_cu   = newItem.SO_LUONG;
                    if (newItem != null)
                    {
                        newItem.SO_CHUNG_TU = xk.SO_CHUNG_TU;
                        newItem.MA_HANG     = item.MA_HANG;
                        newItem.TK_CO       = item.TK_CO;
                        newItem.TK_NO       = item.TK_NO;
                        newItem.DVT         = item.DVT;
                        newItem.DON_GIA_BAN = Convert.ToDecimal(item.DON_GIA_BAN);
                        newItem.DON_GIA_VON = Convert.ToDecimal(item.DON_GIA_VON);
                        newItem.SO_LUONG    = Convert.ToInt32(item.SO_LUONG);
                        newItem.THANH_TIEN  = newItem.DON_GIA_BAN * newItem.SO_LUONG;
                        tongtien           += newItem.THANH_TIEN;
                        newItem.TK_KHO      = item.TK_KHO;
                    }

                    //Cập nhật hàng tồn
                    TONKHO_HOPLONG newHangTon = db.TONKHO_HOPLONG.Where(x => x.MA_HANG == item.MA_HANG).FirstOrDefault();
                    newHangTon.SL_HOPLONG = newHangTon.SL_HOPLONG + sl_cu;
                    if (newHangTon == null || newHangTon.SL_HOPLONG < item.SO_LUONG)
                    {
                        return(BadRequest("Hàng không có trong kho hoặc SL tồn không đủ"));
                    }
                    else
                    {
                        newHangTon.SL_HOPLONG -= Convert.ToInt32(item.SO_LUONG);
                    }
                    //if (newHangTon == null)
                    //{
                    //    db.TONKHO_HOPLONG.Add(newHangTon);
                    //}
                    ////Cập nhật nhóm hàng
                    //TONKHO_HANG hangton = NhomHang.GetNhomHang(item.MaHang);
                    //if (hangton != null)
                    //{
                    //    hangton.SL_HANG = Convert.ToInt32(item.SoLuong);
                    //}
                }
            }

            xk.TONG_TIEN = tongtien;


            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateConcurrencyException)
            {
                throw;
            }

            return(Ok(xk.SO_CHUNG_TU));
        }
        public IHttpActionResult PostKHO_XUAT_KHO(XuatKho kho_xuatkho)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            //Lưu thông tin nhập kho
            KHO_XUAT_KHO xk = new KHO_XUAT_KHO();

            xk.NGAY_CHUNG_TU  = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_CHUNG_TU);
            xk.NGAY_HACH_TOAN = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_HACH_TOAN);
            xk.SO_CHUNG_TU    = GeneralChungTu();
            xk.NGUOI_NHAN     = kho_xuatkho.NGUOI_NHAN;
            xk.KHACH_HANG     = kho_xuatkho.KHACH_HANG;

            xk.NGUOI_LAP_PHIEU = kho_xuatkho.NGUOI_LAP_PHIEU;
            xk.TRUC_THUOC      = kho_xuatkho.TRUC_THUOC;

            xk.LOAI_XUAT_KHO = kho_xuatkho.LOAI_XUAT_KHO;
            db.KHO_XUAT_KHO.Add(xk);

            //Lưu thông tin tham chiếu
            if (kho_xuatkho.ThamChieu.Count > 0)
            {
                foreach (ThamChieu item in kho_xuatkho.ThamChieu)
                {
                    XL_THAM_CHIEU_CHUNG_TU newItem = new XL_THAM_CHIEU_CHUNG_TU();
                    newItem.SO_CHUNG_TU_GOC        = xk.SO_CHUNG_TU;
                    newItem.SO_CHUNG_TU_THAM_CHIEU = item.SO_CHUNG_TU;
                    db.XL_THAM_CHIEU_CHUNG_TU.Add(newItem);
                }
            }
            //Lưu chi tiết
            decimal tongtien = 0;

            //TONKHO_HOPLONG HHTon = new TONKHO_HOPLONG();
            //HH_NHOM_VTHH NhomHang = new HH_NHOM_VTHH();
            if (kho_xuatkho.ChiTiet != null && kho_xuatkho.ChiTiet.Count > 0)
            {
                foreach (ChiTietXuatKho item in kho_xuatkho.ChiTiet)
                {
                    KHO_CT_XUAT_KHO newItem = new KHO_CT_XUAT_KHO();
                    newItem.SO_CHUNG_TU = xk.SO_CHUNG_TU;
                    newItem.MA_HANG     = item.MaHang;
                    newItem.TK_CO       = item.TKCo;
                    newItem.TK_NO       = item.TKNo;
                    newItem.DVT         = item.DVT;
                    newItem.DON_GIA_BAN = Convert.ToDecimal(item.DonGia);
                    newItem.DON_GIA_VON = Convert.ToDecimal(item.DonGiaVon);
                    newItem.SO_LUONG    = Convert.ToInt32(item.SoLuong);
                    newItem.THANH_TIEN  = newItem.DON_GIA_BAN * newItem.SO_LUONG;
                    tongtien           += newItem.THANH_TIEN;
                    newItem.TK_KHO      = item.TKKho;
                    db.KHO_CT_XUAT_KHO.Add(newItem);
                    //Cập nhật hàng tồn
                    TONKHO_HOPLONG newHangTon = db.TONKHO_HOPLONG.Where(x => x.MA_HANG == item.MaHang).FirstOrDefault();
                    if (newHangTon == null || newHangTon.SL_HOPLONG < item.SoLuong)
                    {
                        return(BadRequest("Hàng không có trong kho hoặc SL tồn không đủ"));
                    }
                    newHangTon.SL_HOPLONG -= Convert.ToInt32(item.SoLuong);
                    //if (newHangTon == null)
                    //{
                    //    db.TONKHO_HOPLONG.Add(newHangTon);
                    //}
                    ////Cập nhật nhóm hàng
                    //TONKHO_HANG hangton = NhomHang.GetNhomHang(item.MaHang);
                    //if (hangton != null)
                    //{
                    //    hangton.SL_HANG = Convert.ToInt32(item.SoLuong);
                    //}
                }
            }

            xk.TONG_TIEN = tongtien;
            db.SaveChanges();

            return(Ok(xk.SO_CHUNG_TU));
            //try
            //{
            //    db.SaveChanges();
            //}
            //catch (DbUpdateException)
            //{
            //    if (KHO_XUAT_KHOExists(kho_xuatkho.SO_CHUNG_TU))
            //    {
            //        return Conflict();
            //    }
            //    else
            //    {
            //        throw;
            //    }
            //}

            //return Ok(xk.SO_CHUNG_TU);
        }
示例#25
0
        private async void btnLuu_Click(object sender, EventArgs e)
        {
            XuatKho xuatKho = new XuatKho()
            {
                Ma       = txtMa.Text,
                NgayXuat = dtpNgayNhap.Value,
                GhiChu   = txtGhiChu.Text,
                DiaChi   = txtDiaChi.Text,
                NhanVien = new NhanVien()
                {
                    Id = (int)cboNhanVien.SelectedValue
                },
                Kho = new Kho()
                {
                    Id = (int)cboKho.SelectedValue
                },
                Id = idPhieuXuat,
            };
            List <VatTuNhapXuat> listVatTu = new List <VatTuNhapXuat>();

            for (int i = 0; i < dgvVatTu.Rows.Count; i++)
            {
                var           dr    = dgvVatTu.Rows[i];
                VatTuNhapXuat vatTu = new VatTuNhapXuat()
                {
                    Id      = (int)dr.Cells["Id"].Value,
                    GhiChu  = (string)dr.Cells["GhiChu"].Value,
                    SoLuong = (int)dr.Cells["SoLuong"].Value
                };
                if (vatTu.SoLuong > 0)
                {
                    listVatTu.Add(vatTu);
                }
            }

            if (xuatKho.Id != 0)
            {
                // Call update
                var result = await XuatKhoService.CapNhatPhieuXuatKho(xuatKho, listVatTu);

                if (result != null && result.Status == Config.CODE_OK)
                {
                    MessageBoxEx.Show("Cập nhật phiếu xuất kho thành công", "Thông báo");
                    txtTongTien.Text = ((decimal)result.Data).ToString();
                    LoadChiTietPhieuXuat(idPhieuXuat);
                    LoadDanhSachVatTu(xuatKho.Kho.Id);
                }
                else
                {
                    MessageBoxEx.Show("Cập nhật phiếu xuất kho thất bại", "Thông báo");
                    ChiTietXuatKho chiTiet = listChiTietXuatKho.SingleOrDefault(x => x.XuatKho.Id == ucXuatKho.idPhieuXuat);
                    if (chiTiet != null)
                    {
                        xuatKho           = chiTiet.XuatKho;
                        txtMa.Text        = xuatKho.Ma;
                        txtGhiChu.Text    = xuatKho.GhiChu;
                        txtTongTien.Text  = xuatKho.TongTien.ToString();
                        dtpNgayNhap.Value = xuatKho.NgayXuat;
                        cboKho.Text       = xuatKho.Kho.Ten;
                        txtDiaChi.Text    = xuatKho.DiaChi;
                        cboNhanVien.Text  = xuatKho.NhanVien.Ten;
                        LoadDanhSachVatTu(xuatKho.Kho.Id);
                    }
                }
            }
            else
            {
                // Caal add new
                var result = await XuatKhoService.ThemMoiPhieuXuatKho(xuatKho, listVatTu);

                if (result != null && result.Status == Config.CODE_OK)
                {
                    MessageBoxEx.Show("Thêm mới phiếu xuất kho thành công", "Thông báo");
                    InforXuatKho infor = (InforXuatKho)result.Data;
                    txtTongTien.Text = ((decimal)infor.totalPrice).ToString();
                    LoadChiTietPhieuXuat(infor.receiptId);
                    LoadDanhSachVatTu(xuatKho.Kho.Id);
                    idPhieuXuat = infor.receiptId;
                }
                else
                {
                    MessageBoxEx.Show("Thêm mới phiếu xuất kho thất bại", "Thông báo");
                    LoadDanhSachVatTu(xuatKho.Kho.Id);
                }
            }
        }
示例#26
0
 public static Task <ResponseData> CapNhatPhieuXuatKho(XuatKho phieuXuat, List <VatTuNhapXuat> listVatTu)
 {
     return(XuatKhoRepository.Instance.CapNhatPhieuXuatKho(phieuXuat, listVatTu));
 }
        public IHttpActionResult PostKHO_XUAT_KHO(XuatKho kho_xuatkho)
        {
            if (!ModelState.IsValid)
            {
                return(BadRequest(ModelState));
            }


            //Lưu thông tin nhập kho
            KHO_XUAT_KHO xk = new KHO_XUAT_KHO();

            xk.NGAY_CHUNG_TU  = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_CHUNG_TU);
            xk.NGAY_HACH_TOAN = GeneralFunction.ConvertToTime(kho_xuatkho.NGAY_HACH_TOAN);
            xk.SO_CHUNG_TU    = GeneralChungTu();
            xk.NGUOI_NHAN     = kho_xuatkho.NGUOI_NHAN;
            xk.KHACH_HANG     = kho_xuatkho.KHACH_HANG;

            xk.LY_DO_XUAT         = kho_xuatkho.LY_DO_XUAT;
            xk.NHAN_VIEN_BAN_HANG = kho_xuatkho.NHAN_VIEN_BAN_HANG;

            xk.NGUOI_LAP_PHIEU = kho_xuatkho.NGUOI_LAP_PHIEU;
            xk.TRUC_THUOC      = "HOPLONG";
            xk.LOAI_XUAT_KHO   = kho_xuatkho.LOAI_XUAT_KHO;
            db.KHO_XUAT_KHO.Add(xk);

            //Lưu thông tin tham chiếu
            if (kho_xuatkho.ThamChieu.Count > 0)
            {
                foreach (ThamChieu item in kho_xuatkho.ThamChieu)
                {
                    XL_THAM_CHIEU_CHUNG_TU newItem = new XL_THAM_CHIEU_CHUNG_TU();
                    newItem.SO_CHUNG_TU_GOC        = xk.SO_CHUNG_TU;
                    newItem.SO_CHUNG_TU_THAM_CHIEU = item.SO_CHUNG_TU;
                    db.XL_THAM_CHIEU_CHUNG_TU.Add(newItem);
                }
            }
            //Lưu chi tiết
            decimal tongtien = 0;

            //TONKHO_HOPLONG HHTon = new TONKHO_HOPLONG();
            //HH_NHOM_VTHH NhomHang = new HH_NHOM_VTHH();
            if (kho_xuatkho.ChiTiet != null && kho_xuatkho.ChiTiet.Count > 0)
            {
                foreach (ChiTietXuatKho item in kho_xuatkho.ChiTiet)
                {
                    KHO_CT_XUAT_KHO newItem = new KHO_CT_XUAT_KHO();
                    newItem.SO_CHUNG_TU = xk.SO_CHUNG_TU;
                    newItem.MA_HANG     = item.MA_HANG;

                    newItem.MA_DIEU_CHINH = item.MA_DIEU_CHINH;

                    newItem.MA_KHO_CON  = item.MA_KHO_CON;
                    newItem.TK_CO       = item.TK_CO;
                    newItem.TK_NO       = item.TK_NO;
                    newItem.DVT         = item.DVT;
                    newItem.DON_GIA_BAN = Convert.ToDecimal(item.DON_GIA);
                    newItem.DON_GIA_VON = Convert.ToDecimal(item.DON_GIA_VON);
                    newItem.SO_LUONG    = Convert.ToInt32(item.SO_LUONG);
                    newItem.THANH_TIEN  = newItem.DON_GIA_BAN * newItem.SO_LUONG;
                    tongtien           += newItem.THANH_TIEN;
                    newItem.TK_KHO      = item.TK_KHO;
                    db.KHO_CT_XUAT_KHO.Add(newItem);
                    //Cập nhật hàng tồn
                    TONKHO_HOPLONG newHangTon = db.TONKHO_HOPLONG.Where(x => x.MA_HANG == item.MA_HANG && x.MA_KHO_CON == item.MA_KHO_CON).FirstOrDefault();
                    if (newHangTon == null || newHangTon.SL_HOPLONG < item.SO_LUONG)
                    {
                        return(Ok("Hàng không có trong kho hoặc SL tồn không đủ"));
                    }
                    newHangTon.SL_HOPLONG -= Convert.ToInt32(item.SO_LUONG);
                    //if (newHangTon == null)
                    //{
                    //    db.TONKHO_HOPLONG.Add(newHangTon);
                    //}
                    ////Cập nhật nhóm hàng
                    //TONKHO_HANG hangton = NhomHang.GetNhomHang(item.MA_HANG);
                    //if (hangton != null)
                    //{
                    //    hangton.SL_HANG = Convert.ToInt32(item.SO_LUONG);
                    //}
                    // Lưu Nhật ký
                    KT_SO_NHAT_KY_CHUNG sonhatky = new KT_SO_NHAT_KY_CHUNG();
                    sonhatky.SO_CHUNG_TU    = newItem.SO_CHUNG_TU;
                    sonhatky.NGAY_CHUNG_TU  = xk.NGAY_CHUNG_TU;
                    sonhatky.NGAY_HACH_TOAN = xk.NGAY_HACH_TOAN;
                    if (xk.NGUOI_NHAN == null)
                    {
                        sonhatky.DOI_TUONG = xk.KHACH_HANG;
                    }
                    else
                    {
                        sonhatky.DOI_TUONG = xk.NGUOI_NHAN;
                    }

                    sonhatky.TRUC_THUOC          = "HOPLONG";
                    sonhatky.DIEN_GIAI_CHUNG     = xk.LY_DO_XUAT;
                    sonhatky.DIEN_GIAI_CHI_TIET  = xk.LY_DO_XUAT;
                    sonhatky.TAI_KHOAN_HACH_TOAN = newItem.TK_NO;
                    sonhatky.TAI_KHOAN_DOI_UNG   = newItem.TK_CO;
                    sonhatky.PHAT_SINH_NO        = tongtien;
                    sonhatky.PHAT_SINH_CO        = 0;
                    db.KT_SO_NHAT_KY_CHUNG.Add(sonhatky);
                    KT_SO_NHAT_KY_CHUNG sonhatky1 = new KT_SO_NHAT_KY_CHUNG();
                    sonhatky1.SO_CHUNG_TU    = newItem.SO_CHUNG_TU;
                    sonhatky1.NGAY_CHUNG_TU  = xk.NGAY_CHUNG_TU;
                    sonhatky1.NGAY_HACH_TOAN = xk.NGAY_HACH_TOAN;
                    if (xk.NGUOI_NHAN == null)
                    {
                        sonhatky1.DOI_TUONG = xk.KHACH_HANG;
                    }
                    else
                    {
                        sonhatky1.DOI_TUONG = xk.NGUOI_NHAN;
                    }
                    sonhatky1.TRUC_THUOC          = "HOPLONG";
                    sonhatky1.DIEN_GIAI_CHUNG     = xk.LY_DO_XUAT;
                    sonhatky1.DIEN_GIAI_CHI_TIET  = xk.LY_DO_XUAT;
                    sonhatky1.TAI_KHOAN_HACH_TOAN = newItem.TK_CO;
                    sonhatky1.TAI_KHOAN_DOI_UNG   = newItem.TK_NO;
                    sonhatky1.PHAT_SINH_NO        = 0;
                    sonhatky1.PHAT_SINH_CO        = tongtien;
                    db.KT_SO_NHAT_KY_CHUNG.Add(sonhatky1);
                }
            }

            xk.TONG_TIEN = tongtien;



            try
            {
                db.SaveChanges();
            }
            catch (DbUpdateException)
            {
                if (KHO_XUAT_KHOExists(kho_xuatkho.SO_CHUNG_TU))
                {
                    return(Conflict());
                }
                else
                {
                    throw;
                }
            }

            return(Ok("Chứng từ " + xk.SO_CHUNG_TU + "đã được tạo"));
        }