예제 #1
0
        public List <SalespersonsPerDeal> GetSalespersons(DealRecord deal)
        {
            List <SalespersonsPerDeal> salespersons = new List <SalespersonsPerDeal>();

            if (deal.salesperson1 != null)
            {
                salespersons.Add(new SalespersonsPerDeal
                {
                    dorID         = deal.DORid,
                    Salesperson   = context.SalesPersons.Where(sp => sp.ID == deal.salesperson1).FirstOrDefault(),
                    PercentofDeal = deal.salesperson1per
                });
            }
            else if (deal.salesperson2 != null)
            {
                salespersons.Add(new SalespersonsPerDeal
                {
                    dorID         = deal.DORid,
                    Salesperson   = context.SalesPersons.Where(sp => sp.ID == deal.salesperson2).FirstOrDefault(),
                    PercentofDeal = deal.salesperson2per
                });
            }
            else if (deal.salesperson3 != null)
            {
                salespersons.Add(new SalespersonsPerDeal
                {
                    dorID         = deal.DORid,
                    Salesperson   = context.SalesPersons.Where(sp => sp.ID == deal.salesperson3).FirstOrDefault(),
                    PercentofDeal = deal.salesperson3per
                });
            }

            return(salespersons);
        }
예제 #2
0
        public async Task CreateDeviceByAgentAsync(CreateDeviceByAgentInput input)
        {
            var device = input.Device.MapTo <Device>();
            //获取或者创建所有的领域对象 所有的参数验证 已经在DTO中验证
            //设备类型
            var deviceType = await _deviceTypeRepository.GetAsync(device.BDeviceTypeId);

            //租户
            var tenant = await _tenantRepository.GetAsync(AbpSession.GetTenantId());

            //交易记录
            var dealRecord = DealRecord.CreateInstallDeviceDealRecord(AbpSession.GetTenantId(), AbpSession.GetUserId(), deviceType.ServiceCharge);

            //设置默认参数
            device.BIconType = "PlaneCar";
            //生成设备Code
            device.BCode = await _deviceTypeManager.CreateCodeAsync(device, deviceType);

            //数据节点
            device.BNodeId = await _nodeManager.GetNodeIdAsync(device);

            //默认超速
            device.SLimitSpeed = SpartanConsts.DefaultLimitSpeed;
            //添加设备
            CheckErrors(await _deviceManager.CreateAsync(device));
            await CurrentUnitOfWork.SaveChangesAsync();

            //从租户中扣款
            CheckErrors(await _tenantManager.DeductMoneyByInstallDeviceAsync(tenant, device, deviceType));
            //添加交易记录
            await _dealRecordRepository.InsertAsync(dealRecord);

            await CurrentUnitOfWork.SaveChangesAsync();
        }
예제 #3
0
        public void AddDealRecord(DealRecord deal)
        {
            MasterFI            mFI       = new MasterFI();
            IList <PropertyMap> propItems = GetPropertyMap(deal.GetType(), mFI.GetType());

            foreach (var prop in propItems)
            {
                var sourceValue = prop.DealProperty.GetValue(deal, null);
                prop.MasterProperty.SetValue(mFI, sourceValue, null);
            }

            context.MasterFIs.Add(mFI);
            try
            {
                context.SaveChanges();
            }
            catch (DbEntityValidationException e)
            {
                foreach (var eve in e.EntityValidationErrors)
                {
                    Console.WriteLine("Entity of type \"{0}\" in state \"{1}\" has the following validation errors:",
                                      eve.Entry.Entity.GetType().Name, eve.Entry.State);
                    foreach (var ve in eve.ValidationErrors)
                    {
                        Console.WriteLine("- Property: \"{0}\", Error: \"{1}\"",
                                          ve.PropertyName, ve.ErrorMessage);
                    }
                }
                throw;
            }
        }
예제 #4
0
        public ActionResult Update(UpdateDealViewModel vModel)
        {
            DealRecord deal = vModel.Deal;

            if (ModelState.IsValid)
            {
                deal.UpdatedDt = DateTime.Now;
                vModel.UpdateDealRecord();

                return(View("Index"));
            }
            TempData["Postback"] = "true";
            return(View(vModel));
        }
예제 #5
0
        public void UpdateDealRecord(DealRecord deal)
        {
            MasterFI mFI = context.MasterFIs.Where(m => m.MasterFiId == deal.MasterFiId).FirstOrDefault();

            foreach (var prop in deal.GetType().GetProperties())
            {
                if (mFI.GetType().GetProperty(prop.Name) != null)
                {
                    var sourceValue = mFI.GetType().GetProperty(prop.Name).GetValue(deal, null);
                    prop.SetValue(mFI, sourceValue, null);
                }
            }
            context.SaveChanges();
        }
예제 #6
0
        public List <DealTradeObject> GetTrades(DealRecord deal)
        {
            List <DealTradeObject> trades = new List <DealTradeObject>();
            DealTradeObject        trade;

            if (deal.trade1status == true)
            {
                trade = new DealTradeObject
                {
                    Status     = deal.trade1status,
                    Make       = deal.trade1make,
                    Model      = deal.trade1model,
                    OtherMake  = deal.trade1makeother,
                    OtherModel = deal.trade1modelother,
                    Year       = deal.trade1year,
                    Mileage    = deal.trade1mileage,
                    Intent     = deal.trade1intent,
                    Title      = deal.trade1title,
                    LienHolder = deal.trade1lien,
                    ACV        = deal.trade1acv,
                    Payoff     = deal.trade1payoff,
                    Equity     = deal.trade1equity
                };

                trades.Add(trade);
            }
            if (deal.trade2status == true)
            {
                trade = new DealTradeObject
                {
                    Status     = deal.trade2status,
                    Make       = deal.trade2make,
                    Model      = deal.trade2model,
                    OtherMake  = deal.trade2makeother,
                    OtherModel = deal.trade2modelother,
                    Year       = deal.trade2year,
                    Mileage    = deal.trade2mileage,
                    Intent     = deal.trade2intent,
                    Title      = deal.trade2title,
                    LienHolder = deal.trade2lien,
                    ACV        = deal.trade2acv,
                    Payoff     = deal.trade2payoff,
                    Equity     = deal.trade2equity
                };
                trades.Add(trade);
            }
            return(trades);
        }
예제 #7
0
        //public MasterFI GetDealRecord(int dorID)
        //{
        //    MasterFI record = context.MasterFIs.Where(m => m.DORid == dorID).FirstOrDefault();
        //    return record;
        //}

        public DealRecord GetDealRecord(int dorID)
        {
            DealRecord record = new DealRecord();
            MasterFI   mFI    = context.MasterFIs.Where(m => m.DORid == dorID).FirstOrDefault();

            foreach (var prop in record.GetType().GetProperties())
            {
                if (mFI.GetType().GetProperty(prop.Name) != null)
                {
                    var sourceValue = mFI.GetType().GetProperty(prop.Name).GetValue(mFI, null);
                    prop.SetValue(record, sourceValue, null);
                }
            }

            return(record);
        }
예제 #8
0
        public async Task CreateDeviceByCustomerAsync(CreateDeviceByCustomerInput input)
        {
            //检查当前客户所属的租户库存是否有该设备号
            CheckErrors(await _deviceStockManager.CheckIsHaveDeviceNoAsync(input.Device.BNo));

            var device = input.Device.MapTo <Device>();
            //获取或者创建所有的领域对象 所有的参数验证 已经在DTO中验证
            //设备类型
            var deviceType = await _deviceTypeRepository.GetAsync(device.BDeviceTypeId);

            //租户
            var tenant = await _tenantRepository.GetAsync(AbpSession.GetTenantId());

            //交易记录
            var dealRecord = DealRecord.CreateInstallDeviceDealRecord(AbpSession.GetTenantId(), AbpSession.GetUserId(), deviceType.ServiceCharge);

            //设置默认参数
            device.BIconType = "PlaneCar";
            //所属用户
            device.UserId = AbpSession.GetUserId();
            //过期时间
            device.BExpireTime = DateTime.Now.AddYears(SettingManager.GetSettingValueForTenant <int>(SpartanSettingKeys.Tenant_Customer_InstallDevice_ExpireYear, AbpSession.GetTenantId()));
            //生成设备Code
            device.BCode = await _deviceTypeManager.CreateCodeAsync(device, deviceType);

            //数据节点
            device.BNodeId = await _nodeManager.GetNodeIdAsync(device);

            //默认超速
            device.SLimitSpeed = SpartanConsts.DefaultLimitSpeed;
            //添加设备
            CheckErrors(await _deviceManager.CreateAsync(device));
            await CurrentUnitOfWork.SaveChangesAsync();

            //从租户中扣款
            CheckErrors(await _tenantManager.DeductMoneyByInstallDeviceAsync(tenant, device, deviceType));
            //添加交易记录
            await _dealRecordRepository.InsertAsync(dealRecord);

            await CurrentUnitOfWork.SaveChangesAsync();
        }
예제 #9
0
 /// <summary>
 /// 处理
 /// </summary>
 /// <param name="id"></param>
 /// <param name="result"></param>
 /// <returns></returns>
 public ActionResult CompanyDeal(int id, int result)
 {
     try
     {
         var company = db.Companies.Find(id);
         company.StatuAsInt = 2;
         company.DealResultAsInt = result;
         var record = new DealRecord();
         record = db.DealRecords.Where(r => r.CompanyID == id).FirstOrDefault();
         if (record == null)
         {
             record = new DealRecord();
             record.UID = CurrentUser.ID;
             record.CompanyID = id;
             record.Time = DateTime.Now;
             record.DealResultAsInt = result;
             db.DealRecords.Add(record);
         }
         else
         {
             var _record = new DealRecord();
             _record.UID = CurrentUser.ID;
             _record.DealResultAsInt = result;
             _record.CompanyID = id;
             _record.Time = DateTime.Now;
             _record.Hint = "修改";
             db.DealRecords.Add(record);
         }
         db.SaveChanges();
         return Content("ok");
     }
     catch
     {
         return Content("处理出错!");
     }
 }
예제 #10
0
 //修改交易信息
 public int UpdDeal(DealRecord deal)
 {
     return(GetBll <DealRecord> .createDal().Upd(deal));
 }