Ejemplo n.º 1
0
        protected void gridTraHang_RowUpdating(object sender, DevExpress.Web.Data.ASPxDataUpdatingEventArgs e)
        {
            using (var scope = new TransactionScope())
            {
                try
                {
                    if (e.NewValues["DuyetDonHang"] == "0")
                    {
                        return;
                    }
                    int IDPhieuTraHang = int.Parse(e.Keys["IDPhieuTraHang"].ToString());
                    int DaiLyID        = int.Parse(gridTraHang.GetRowValuesByKeyValue(e.Keys["IDPhieuTraHang"], "DaiLyID").ToString());
                    int pheduyet       = Int32.Parse(e.NewValues["DuyetDonHang"].ToString());

                    var KH           = DBDataProvider.DB.khKhachHangs.Where(x => x.IDKhachHang == DaiLyID).FirstOrDefault();
                    var PhieuTraHang = DBDataProvider.DB.kPhieuTraHangs.Where(x => x.IDPhieuTraHang == IDPhieuTraHang).FirstOrDefault();
                    if (pheduyet == 1)
                    {
                        // hoàn tất
                        if (KH != null && PhieuTraHang != null)
                        {
                            #region nhật ký công nợ
                            khNhatKyCongNo nhatky = new khNhatKyCongNo();
                            nhatky.NgayNhap    = DateTime.Now;
                            nhatky.DienGiai    = "Khách trả hàng ";
                            nhatky.NoDau       = KH.CongNo;
                            nhatky.NhapHang    = 0;
                            nhatky.TraHang     = PhieuTraHang.TongTienHang;
                            nhatky.GiamGia     = 0;
                            nhatky.NoCuoi      = KH.CongNo - PhieuTraHang.ConLai;
                            nhatky.ThanhToan   = -PhieuTraHang.ThanhToan;
                            nhatky.MaPhieu     = DBDataProvider.STTPhieuTraHang_DaiLy(DaiLyID);
                            nhatky.NhanVienID  = Formats.IDUser();
                            nhatky.SoPhieu     = PhieuTraHang.MaPhieu;
                            nhatky.IDKhachHang = DaiLyID;
                            DBDataProvider.DB.khNhatKyCongNos.InsertOnSubmit(nhatky);
                            DBDataProvider.DB.SubmitChanges();
                            #endregion

                            if (PhieuTraHang.HinhThucTT == 1)
                            {
                                KH.CongNo -= PhieuTraHang.ConLai; // giảm công nợ
                            }
                            KH.TienTraHang   += PhieuTraHang.TongTienHang;
                            KH.LanCuoiMuaHang = DateTime.Now;

                            PhieuTraHang.DuyetDonHang = 1;// duyệt thành công
                            PhieuTraHang.STTDonHang   = DBDataProvider.STTPhieuTraHang_DaiLy(DaiLyID);
                            // + tồn kho
                            var PhieuTraHangChiTiet = DBDataProvider.DB.kPhieuTraHangChiTiets.Where(x => x.PhieuTraHangNCCID == IDPhieuTraHang).ToList();
                            foreach (var prod in PhieuTraHangChiTiet)
                            {
                                var HH = DBDataProvider.DB.hhHangHoas.Where(x => x.IDHangHoa == prod.HangHoaID).FirstOrDefault();
                                HH.TonKho += prod.SoLuong;
                                // ghi thẻ kho
                                #region ghi thẻ kho
                                kTheKho thekho = new kTheKho();
                                thekho.NgayNhap    = DateTime.Now;
                                thekho.DienGiai    = "Trả hàng #" + PhieuTraHang.MaPhieu;
                                thekho.Nhap        = prod.SoLuong;
                                thekho.Xuat        = 0;
                                thekho.GiaThoiDiem = prod.TienTra;
                                thekho.Ton         = prod.SoLuong + prod.TonKho;
                                thekho.HangHoaID   = HH.IDHangHoa;
                                thekho.NhanVienID  = Formats.IDUser();
                                DBDataProvider.DB.kTheKhos.InsertOnSubmit(thekho);
                                #endregion
                            }
                        }
                    }
                    else
                    {
                        // hủy đơn hàng
                        if (KH != null && PhieuTraHang != null)
                        {
                            PhieuTraHang.DuyetDonHang = 2;// hủy đơn hàng
                            PhieuTraHang.STTDonHang   = 0;
                        }
                    }
                    PhieuTraHang.NgayDuyet = DateTime.Now;
                    DBDataProvider.DB.SubmitChanges();
                    scope.Complete();
                    gridTraHang.CancelEdit();
                    e.Cancel = true;
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
        }