Exemplo n.º 1
0
        public List <NvGiaoDichQuayVm.DataDetails> DataDetails(NvGiaoDichQuayVm.DataDto instance)
        {
            var data =
                UnitOfWork.Repository <NvGiaoDichQuayChiTiet>()
                .DbSet.Where(x => x.MaGDQuayPK == instance.MaGiaoDichQuayPk)
                .ToList();
            var dataDetails = AutoMapper.Mapper.Map <List <NvGiaoDichQuayChiTiet>, List <NvGiaoDichQuayVm.DataDetails> >(data);

            return(dataDetails);
        }
Exemplo n.º 2
0
        public NvGiaoDichQuayVm.DataDto SetCustomer(NvGiaoDichQuayVm.DataDto instance)
        {
            var customer = UnitOfWork.Repository <MdCustomer>().DbSet.FirstOrDefault(x => x.MaKH == instance.MaKhachHang);

            if (customer != null)
            {
                instance.DiaChi       = customer.DiaChi;
                instance.DienThoai    = customer.DienThoai;
                instance.NgaySinh     = customer.NgaySinh;
                instance.NgayDacBiet  = customer.NgayDacBiet;
                instance.Email        = customer.Email;
                instance.TenKhachHang = customer.TenKH;
                instance.TenKhac      = customer.TenKhac;
                instance.MaThe        = customer.MaThe;
                instance.QuenThe      = customer.QuenThe;
            }
            return(instance);
        }
Exemplo n.º 3
0
        public NvGiaoDichQuay InsertPhieu(NvGiaoDichQuayVm.DataDto instance)
        {
            decimal tyLeKhuyenMai = 0, tienKhuyenMai = 0;
            var     unitCode = GetCurrentUnitCode();
            var     item     = AutoMapper.Mapper.Map <NvGiaoDichQuayVm.DataDto, NvGiaoDichQuay>(instance);

            item.Id               = Guid.NewGuid().ToString();
            item.MaGiaoDich       = instance.MaGiaoDich;
            item.MaGiaoDichQuayPK = unitCode + '.' + instance.MaGiaoDich;
            item.MaDonVi          = unitCode;
            item.LoaiGiaoDich     = instance.LoaiGiaoDich;
            item.NgayTao          = DateTime.Now;
            item.NgayPhatSinh     = instance.NgayPhatSinh;
            item.MaNguoiTao       = instance.MaNhanVien;
            item.NguoiTao         = instance.TenNhanVien;
            item.MaVoucher        = instance.Voucher;
            item.TienKhachDua     = instance.TienKhachDua;
            item.TienVoucher      = instance.TienVoucher;
            item.TienTheVip       = instance.TienTheVip;
            item.TienTraLai       = instance.TienThua;
            item.TienThe          = instance.TienThe;
            item.TienMat          = instance.TienMat;
            item.TienCOD          = instance.TienCOD;
            item.TTienCoVat       = instance.SumTienHang;
            item.ThoiGian         = DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString();
            item.MaKhachHang      = instance.Makh;
            item.UnitCode         = unitCode;
            item.IState           = "Complete";
            item.ICreateDate      = DateTime.Now;
            item.ICreateBy        = instance.UserName;
            item.MaQuayBan        = "QUAYBANLE";
            //tính tỷ lệ khuyến mại voucher ra phần trăm theo tỷ lệ các mặt hàng trong danh sách bán
            if (item.TienVoucher > 0)
            {
                decimal tTienMin  = 0;
                decimal tTienTemp = 0;
                int     number    = instance.DataDetails.Count;
                if (number > 0)
                {
                    //tỷ lệ từng mặt hàng
                    decimal.TryParse(instance.DataDetails[0].TTienCoVat.ToString(), out tTienMin);
                    foreach (var record in instance.DataDetails)
                    {
                        decimal.TryParse(record.TTienCoVat.ToString(), out tTienTemp);
                        if (tTienTemp < tTienMin)
                        {
                            tTienMin = tTienTemp;
                        }
                    }
                    //lấy được tiền nhỏ nhất rồi thì đem chia giá từng mặt hàng để ra tỷ lệ theo %
                    foreach (var record in instance.DataDetails)
                    {
                        decimal tTyLeKhuyenMaiVoucher = 0;
                        decimal.TryParse((100 * (record.TTienCoVat.Value / tTienMin) / number).ToString(), out tTyLeKhuyenMaiVoucher);
                        record.TyLeVoucher = tTyLeKhuyenMaiVoucher;
                    }
                }
            }
            var result = item;

            Insert(result);
            var dataDetails = AutoMapper.Mapper.Map <List <NvGiaoDichQuayVm.DataDetails>, List <NvGiaoDichQuayChiTiet> >(instance.DataDetails);

            dataDetails.ForEach(x =>
            {
                decimal.TryParse(x.TyLeKhuyenMai.ToString(), out tyLeKhuyenMai);
                decimal.TryParse(x.TienKhuyenMai.ToString(), out tienKhuyenMai);
                x.Id                     = Guid.NewGuid().ToString();
                x.MaGDQuayPK             = item.MaGiaoDichQuayPK;
                x.MaKhoHang              = unitCode + "-K2";
                x.MaDonVi                = unitCode;
                x.MaVatTu                = x.MaVatTu;
                x.Barcode                = x.Barcode;
                x.TenDayDu               = x.TenDayDu;
                x.NguoiTao               = item.NguoiTao;
                x.MaBoPK                 = x.MaBoPK;
                x.NgayTao                = DateTime.Now;
                x.NgayPhatSinh           = item.NgayPhatSinh;
                x.SoLuong                = x.SoLuong;
                x.TTienCoVat             = x.TTienCoVat;
                x.VatBan                 = x.VatBan;
                x.GiaBanLeCoVat          = x.GiaBanLeCoVat;
                x.MaKhachHang            = instance.Makh;
                x.MaChuongTrinhKhuyenMai = x.MaChuongTrinhKhuyenMai;
                x.TyLeLaiLe              = x.TyLeLaiLe;
                x.GiaVon                 = x.GiaVon;
                x.LoaiKhuyenMai          = x.LoaiKhuyenMai;
                x.TienKhuyenMai          = tienKhuyenMai;
                x.TyLeKhuyenMai          = tyLeKhuyenMai;
                x.TienVoucher            = (item.TienVoucher * x.TyLeVoucher) / 100;
            });
            UnitOfWork.Repository <NvGiaoDichQuayChiTiet>().InsertRange(dataDetails);
            return(result);
        }