public async Task <JsonResult> Save(SettlementModel settlement)
        {
            var settlementToSend = new SettlementCatalog
            {
                ID           = settlement.ID.Value,
                CASUSMO      = settlement.CASUSMO,
                CASISR86     = settlement.CASISR86,
                CalDirecPerc = settlement.CalDirecPerc,
                Indem90      = settlement.Indem90,
                Indem20      = settlement.Indem20,
                PrimaAntig   = settlement.PrimaAntig,
                ValidityDate = settlement.Validity,

                //Common
                Active       = true,
                company      = SessionModel.CompanyID,
                InstanceID   = SessionModel.InstanceID,
                CreationDate = DateTime.Now,
                StatusID     = 1,
                user         = SessionModel.IdentityID,
                Timestamp    = DateTime.Now,
            };

            //Just update
            await client.UpdateAsync(new List <SettlementCatalog>() { settlementToSend }, SessionModel.CompanyID);

            return(Json(settlement.ID));
        }
Beispiel #2
0
        /// <summary>
        /// 得到会员发票信息
        /// </summary>
        /// <returns></returns>
        protected virtual void SetInvoices(SettlementModel model)
        {
            var query = new QueryInfo();

            query.Query <InvoiceEntity>().Select(it => new object[] { it, it.Title, it.Type, it.GeneralType, it.Content });
            model.Invoices = this.GetEntitiesByIdentity <InvoiceEntity>(query);
        }
Beispiel #3
0
        /// <summary>
        /// 得到会员地址信息
        /// </summary>
        /// <returns></returns>
        protected virtual void SetAddresses(SettlementModel model)
        {
            var query = new QueryInfo();

            query.Query <AddressEntity>();
            model.Addresses = this.GetEntitiesByIdentity <AddressEntity>(query);
        }
Beispiel #4
0
        public void ModelFactory_ConvertFrom_SettlementModel_ModelIsNull_ModelConverted()
        {
            ModelFactory       factory  = new ModelFactory();
            SettlementModel    model    = null;
            SettlementResponse response = factory.ConvertFrom(model);

            response.ShouldBeNull();
        }
        /// <summary>
        /// 结算
        /// </summary>
        /// <returns></returns>
        public async Task <bool> Settlement(SettlementModel settlement)
        {
            var client = await _clientCreater.CreateClient();

            var guid            = Guid.Parse(settlement.SettlementID);
            var settlementGrain = client.GetGrain <ISettlementGrain>(guid);

            return(await settlementGrain.Settlement(settlement));
        }
Beispiel #6
0
        public async Task <SettlementModel> GetSettlement(Guid estateId,
                                                          Guid?merchantId,
                                                          Guid settlementId,
                                                          CancellationToken cancellationToken)
        {
            SettlementModel model = await this.RepositoryForReports.GetSettlement(estateId, merchantId, settlementId, cancellationToken);

            return(model);
        }
Beispiel #7
0
        /// <summary>
        /// 得到会员优惠券信息
        /// </summary>
        /// <returns></returns>
        protected virtual void SetCoupons(SettlementModel model)
        {
            var query = new QueryInfo();

            query.Query <CouponEntity>()
            .Where(it => it.EndDate >= DateTime.Now.Date && !it.IsUsed)
            .Select(it => new object[] { it.Id, it.Name, it.Amount });
            model.Coupons = this.GetEntitiesByIdentity <CouponEntity>(query);
        }
        public async Task <IActionResult> GetSettlement([FromRoute] Guid estateId,
                                                        [FromQuery] Guid?merchantId,
                                                        [FromRoute] Guid settlementId,
                                                        CancellationToken cancellationToken)
        {
            SettlementModel model = await this.ReportingManager.GetSettlement(estateId, merchantId, settlementId, cancellationToken);

            return(this.Ok(this.ModelFactory.ConvertFrom(model)));
        }
        private void GetTotalProfits()
        {
            SettlementModel report = new SettlementModel();

            report.ShowTotalProfits();

            profitsTotalBindingSource.DataSource = report;
            profitsTotalBindingSource.DataSource = report.reportSetlementPTotal;
            this.ReportViewerSettlement.RefreshReport();
        }
        private void GetTotalVault()
        {
            SettlementModel report = new SettlementModel();

            report.ShowTotalVault();

            vaultTotalBindingSource.DataSource = report;
            vaultTotalBindingSource.DataSource = report.reportSetlementVTotal;
            this.ReportViewerSettlement.RefreshReport();
        }
        private void GetReport()
        {
            SettlementModel report = new SettlementModel();

            report.ShowReport();

            settlementSummaryBindingSource.DataSource = report;
            settlementSummaryBindingSource.DataSource = report.reportSetlementVault;
            this.ReportViewerSettlement.RefreshReport();
        }
Beispiel #12
0
        /// <summary>
        /// 请求
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        protected virtual ActionResult Settlement(SettlementDto dto)
        {
            dto.IsGenerate = false;
            var model = new SettlementModel();

            SetAddresses(model);
            SetCoupons(model);
            SetInvoices(model);
            model.SettlementDto = Ioc.Resolve <IOrderApplicationService>().Create(dto);
            SetPartners(model);
            return(View("Settlement", model));
        }
 public ActionResult AuditSettlement(SettlementModel model)
 {
     try
     {
         model.AuditUser = CurrentUser.Id;
         return(Json(new JsonMessage(service.AuditSettlement(model))));
     }
     catch (Exception e)
     {
         return(Json(new JsonMessage(false, e.Message)));
     }
 }
Beispiel #14
0
        /// <summary>
        /// Initializes a new instance of the <see cref="RobinHoodBrokerModel"/> class.
        /// </summary>
        /// <param name="accounttype">The accounttype.</param>
        /// <param name="latencymodel">The latencymodel.</param>
        /// <param name="slippagemodel">The slippagemodel.</param>
        public RobinHoodBrokerModel(
            AccountType accounttype,
            LatencyModel latencymodel,
            SlippageModel slippagemodel)
            : base(accounttype, new RobinhoodFeeModel(), new ImmediateFillBehaviour(), latencymodel, new GenericMarginCallModel(),
                   new EquityMarginModel(0m, 0m), new ImmediateSettlementModel(), slippagemodel,
                   new FloatingMarketSpreadModel())
        {
            //Set delayed settlement model
            _delayedSettlementModel = new DelayedSettlementModel(3, TimeSpan.FromHours(4));

            //Set compatible currencies
            CompatibleBaseCurrencies = new[] { CurrencyType.USD };
        }
        /// <summary>
        /// Gets the settlement.
        /// </summary>
        /// <param name="estateId">The estate identifier.</param>
        /// <param name="merchantId">The merchant identifier.</param>
        /// <param name="settlementId">The settlement identifier.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        /// <returns></returns>
        public async Task <SettlementModel> GetSettlement(Guid estateId,
                                                          Guid?merchantId,
                                                          Guid settlementId,
                                                          CancellationToken cancellationToken)
        {
            EstateReportingGenericContext context = await this.DbContextFactory.GetContext(estateId, cancellationToken);

            IQueryable <SettlementView> query = context.SettlementsView.Where(t => t.EstateId == estateId && t.SettlementId == settlementId).AsQueryable();

            if (merchantId.HasValue)
            {
                query = query.Where(t => t.MerchantId == merchantId);
            }

            var result = query.AsEnumerable().GroupBy(t => new {
                t.SettlementId,
                t.SettlementDate,
                t.IsCompleted
            }).SingleOrDefault();

            if (result == null)
            {
                return(null);
            }

            SettlementModel model = new SettlementModel {
                SettlementDate      = result.Key.SettlementDate,
                SettlementId        = result.Key.SettlementId,
                NumberOfFeesSettled = result.Count(),
                ValueOfFeesSettled  = result.Sum(x => x.CalculatedValue),
                IsCompleted         = result.Key.IsCompleted
            };

            result.ToList().ForEach(f => model.SettlementFees.Add(new SettlementFeeModel {
                SettlementDate     = f.SettlementDate,
                SettlementId       = f.SettlementId,
                CalculatedValue    = f.CalculatedValue,
                MerchantId         = f.MerchantId,
                MerchantName       = f.MerchantName,
                FeeDescription     = f.FeeDescription,
                IsSettled          = f.IsSettled,
                TransactionId      = f.TransactionId,
                OperatorIdentifier = f.OperatorIdentifier
            }));

            return(model);
        }
Beispiel #16
0
        /// <summary>
        /// 下单
        /// </summary>
        /// <param name="dto"></param>
        /// <returns></returns>
        public virtual ActionResult Order(SettlementDto dto)
        {
            dto.IsGenerate = true;
            Ioc.Resolve <IOrderApplicationService>().Create(dto);
            if (dto.IsSaveSuccess)
            {
                return(RedirectToAction("Sucessful"));
            }
            var model = new SettlementModel {
                SettlementDto = dto
            };

            SetAddresses(model);
            SetCoupons(model);
            SetPartners(model);
            return(View("Settlement", model));
        }
Beispiel #17
0
        /// <summary>
        /// 得到会员发票信息
        /// </summary>
        /// <returns></returns>
        protected virtual void SetPartners(SettlementModel model)
        {
            if (model.SettlementDto == null || model.SettlementDto.Products == null)
            {
                return;
            }
            var accountIds =
                model.SettlementDto.Products.Where(
                    it => it.Product != null && it.Product.Goods != null && it.Product.Goods.Account != null)
                .Select(it => it.Product.Goods.Account.Id)
                .ToArray();
            var query = new QueryInfo();

            query.Query <PartnerEntity>().Where(it => accountIds.Contains(it.Account.Id)).Select(it => new object[] { it.Account.Id, it.Name });
            model.Partners = this.GetEntities <PartnerEntity>(query);
            model.Partners.Add(new PartnerEntity {
                Id = 0
            });
        }
        public async Task ReportingManager_GetSettlement_DataReturned()
        {
            Mock <IEstateReportingRepository>           repository           = new Mock <IEstateReportingRepository>();
            Mock <IEstateReportingRepositoryForReports> repositoryForReports = new Mock <IEstateReportingRepositoryForReports>();

            repositoryForReports.Setup(r => r.GetSettlement(It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <Guid>(), It.IsAny <CancellationToken>()))
            .ReturnsAsync(TestData.SettlementModel);

            ReportingManager manager = new ReportingManager(repository.Object, repositoryForReports.Object);

            SettlementModel model = await manager.GetSettlement(TestData.EstateId, TestData.MerchantId, TestData.SettlementId, CancellationToken.None);

            model.ShouldNotBeNull();
            model.ShouldSatisfyAllConditions(p => p.SettlementDate.ShouldBe(TestData.SettlementModel.SettlementDate),
                                             p => p.IsCompleted.ShouldBe(TestData.SettlementModel.IsCompleted),
                                             p => p.NumberOfFeesSettled.ShouldBe(TestData.SettlementModel.NumberOfFeesSettled),
                                             p => p.SettlementId.ShouldBe(TestData.SettlementModel.SettlementId),
                                             p => p.ValueOfFeesSettled.ShouldBe(TestData.SettlementModel.ValueOfFeesSettled));
        }
Beispiel #19
0
        public SettlementResponse ConvertFrom(SettlementModel model)
        {
            if (model == null)
            {
                return(null);
            }

            SettlementResponse response = new SettlementResponse
            {
                SettlementDate      = model.SettlementDate,
                IsCompleted         = model.IsCompleted,
                NumberOfFeesSettled = model.NumberOfFeesSettled,
                SettlementId        = model.SettlementId,
                ValueOfFeesSettled  = model.ValueOfFeesSettled,
            };

            model.SettlementFees.ForEach(f => response.SettlementFees.Add(this.ConvertFrom(f)));

            return(response);
        }
Beispiel #20
0
 /// <summary>
 /// Create brokerage model for internal usage
 /// </summary>
 /// <param name="accounttype"></param>
 /// <param name="feemodel"></param>
 /// <param name="fillmodel"></param>
 /// <param name="latencymodel"></param>
 /// <param name="margincallmodel"></param>
 /// <param name="marginmodel"></param>
 /// <param name="settlementmodel"></param>
 /// <param name="slippagemodel"></param>
 /// <param name="spreadmodel"></param>
 protected GenericBrokerModel(
     AccountType accounttype,
     FeeModel feemodel,
     FillModel fillmodel,
     LatencyModel latencymodel,
     MarginCallModel margincallmodel,
     MarginModel marginmodel,
     SettlementModel settlementmodel,
     SlippageModel slippagemodel,
     SpreadModel spreadmodel)
 {
     //Set given values
     AccountType     = accounttype;
     FeeModel        = feemodel;
     FillModel       = fillmodel;
     LatencyModel    = latencymodel;
     MarginCallModel = margincallmodel;
     SettlementModel = settlementmodel;
     SlippageModel   = slippagemodel;
     MarginModel     = marginmodel;
     SpreadModel     = spreadmodel;
 }
 public ActionResult SubmitSettlement(SettlementModel model)
 {
     model.UpdateUser = CurrentUser.Id;
     return(Json(new JsonMessage(service.SaveSettlement(model, true))));
 }
        private void ListarMiembros()
        {
            SettlementModel members = new SettlementModel();

            DataGridMembers.DataSource = members.ShowMembers();
        }
        private void ListarLiquidacion()
        {
            SettlementModel liquidation = new SettlementModel();

            DataGridSettlement.DataSource = liquidation.ShowSettlement();
        }