private DepositDetail QueryCashScoreFromRecharge(int storeId, DateTime startDate, DateTime endDate)
        {
            var startTime = startDate.Date;
            var endTime   = endDate.Date.AddDays(1).AddSeconds(-1);
            // 统计时间段内储值的构成(现金,刷卡,赠送)
            var depositQuery = _memberDepositContract.MemberDeposits
                               .Where(r => !r.IsDeleted && r.IsEnabled)
                               .Where(r => r.Member.StoreId.Value == storeId)
                               .Where(r => r.CreatedTime >= startTime && r.CreatedTime <= endTime);
            var rechargeBalanceQuery = depositQuery.Where(r => r.MemberActivityType == MemberActivityFlag.Recharge);
            var data = rechargeBalanceQuery.Select(r => new
            {
                r.Cash,
                r.Card,
                r.Coupon
            }).ToList();

            if (data == null || data.Count <= 0)
            {
                return(new DepositDetail());
            }

            var res = new DepositDetail()
            {
                Cash   = data.Sum(r => r.Cash),
                Card   = data.Sum(r => r.Card),
                Coupon = data.Sum(r => r.Coupon)
            };

            return(res);
        }
예제 #2
0
 public PaymentServiceFixture()
 {
     _fixture              = new Fixture();
     _paymentRepository    = A.Fake <IPaymentRepository>();
     _submitPaymentService = new PaymentService(_paymentRepository);
     _account              = _fixture.Create <BankAccount>();
     _depositDetail        = _fixture.Create <DepositDetail>();
 }
예제 #3
0
        public async Task <UserManagerResponse> MakeDeposit(string id, DepositDetail dd)
        {
            var localDP = DepositPlanDetail.CurrentPlans.FirstOrDefault(d => d.Id == dd.Id);

            //return new UserManagerResponse()
            //{
            //    IsSuccess =  false,
            //    Message=  JsonConvert.SerializeObject(localDP)
            //};

            var response = new UserManagerResponse()
            {
                IsSuccess = false
            };

            if (localDP == null)
            {
                response.Message = "Plan not found!";
                return(response);
            }

            if (!(dd.Amount >= localDP.Min && dd.Amount <= localDP.Max))
            {
                response.Message = "Amount can't be greater than or less than package ";
                return(response);
            }

            var user = await _userManager.FindByIdAsync(id);

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

            var investment = new Investment()
            {
                PlanId    = dd.Id,
                Confirmed = false,
                UserId    = user.Id.ToString()
            };

            await _db.Investments.AddAsync(investment);

            await _db.SaveChangesAsync();

            response.Message = await _bitCoinService.GetAddressToDeposit(user.Id.ToString(), investment.Id) + "|" + investment.Id;

            response.IsSuccess = true;

            return(response);
        }
예제 #4
0
        public long InvoicePaymentDepositeCreateDAL(DepositDetail invoiceDetail)
        {
            var date       = DateTime.Now.ToString("yyyy-MM-dd") + " " + CommonUtility.PersonFlagsClearingTime();
            var parameters = new[] { ParamBuilder.Par("ID", 0) };

            return(ExecuteInt64withOutPutparameterSp("INO_Get_InvoicePayment_Create", parameters,
                                                     ParamBuilder.Par("@InoID", invoiceDetail.Invoice_ID),
                                                     ParamBuilder.Par("@PaymentType", invoiceDetail.Payment_Type),
                                                     ParamBuilder.Par("@detail", invoiceDetail.Detail),
                                                     ParamBuilder.Par("@payment", invoiceDetail.Payment),
                                                     ParamBuilder.Par("@createdBy", invoiceDetail.Created_By),
                                                     ParamBuilder.Par("@createdDate", invoiceDetail.Created_Date),
                                                     ParamBuilder.Par("@organizationId", invoiceDetail.Organization_ID)
                                                     ));
        }
예제 #5
0
        public string Submit(BankAccount account, DepositDetail depositDetail)
        {
            var id = Guid.NewGuid().ToString();

            var entity = new PaymentDataEntity
            {
                Id            = id,
                AccountName   = account.AccountName,
                AccountNumber = account.AccountNumber,
                Bsb           = account.Bsb,
                Amount        = depositDetail.Amount,
                Reference     = depositDetail.Reference
            };

            _paymentRepository.Add(entity);

            return(id);
        }
예제 #6
0
        public void Post_Should_Call_SubmitPayment_Service_With_BankDetail()
        {
            BankAccount   capturedBankAccount   = null;
            DepositDetail capturedDepositDetail = null;

            A.CallTo(() => _fakePaymentService.Submit(A <BankAccount> .Ignored, A <DepositDetail> .Ignored))
            .Invokes((BankAccount ba, DepositDetail da) =>
            {
                capturedBankAccount   = ba;
                capturedDepositDetail = da;
            });

            var account       = Mapper.Map <PaymentDataDto, BankAccount>(_paymentDataDto);
            var depositDetail = Mapper.Map <PaymentDataDto, DepositDetail>(_paymentDataDto);

            _controller.Post(_paymentDataDto);

            capturedBankAccount.Should().BeEquivalentTo(account);
            capturedDepositDetail.Should().BeEquivalentTo(depositDetail);
        }
예제 #7
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="customerId"></param>
        /// <returns></returns>
        public static List <DepositDetail> GetDepositDetail(string customerId)
        {
            List <DepositDetail> list = new List <DepositDetail>();
            var       sql             = @"SELECT CustomerId,Detail,ItemSalesId,UpdateTime FROM DepositDetail
                        WHERE CustomerId = @CustomerId
                        ORDER BY UpdateTime DESC";
            DataTable dt = new DataTable();

            using (SqlCeConnection conn = new SqlCeConnection(SQLCONN))
            {
                conn.Open();
                SqlCeCommand command    = new SqlCeCommand(sql, conn);
                var          parameters = new[]
                {
                    new SqlCeParameter("CustomerId", SqlDbType.NVarChar, 50)
                    {
                        Value = customerId
                    }
                };
                command.Parameters.AddRange(parameters);
                using (SqlCeDataReader dataReader = command.ExecuteReader())
                {
                    dt.Load(dataReader);
                }
                conn.Close();
            }
            foreach (DataRow dr in dt.Rows)
            {
                var item = new DepositDetail();
                item.CustomerId  = dr["CustomerId"].ToString();
                item.Detail      = dr["Detail"].ToString();
                item.ItemSalesId = dr["ItemSalesId"].ToString();
                item.UpdateTime  = DateTime.Parse(dr["UpdateTime"].ToString());
                list.Add(item);
            }
            return(list);
        }
예제 #8
0
        public async Task <IActionResult> MakeDeposit([FromBody] DepositDetail dd)
        {
            var result = await _userService.MakeDeposit(GetUserId(), dd);

            return(Ok(result));
        }
예제 #9
0
 public long InvoicePaymentDepositeCreateBAL(DepositDetail depositDetail)
 {
     return(DAL.InvoicePaymentDepositeCreateDAL(depositDetail));
 }
예제 #10
0
 public object InvoiceGrossTotalCheckBAL(DepositDetail depositDetail)
 {
     return(DAL.InvoiceGrossTotalCheckDAL(depositDetail));
 }
예제 #11
0
 public object InvoiceBalanceCheckBAL(DepositDetail depositDetail)
 {
     return(DAL.InvoiceBalanceCheckDAL(depositDetail));
 }
 public ExternalReqInHospitalRegistration()
 {
     DepositDetail = new DepositDetail();
 }
예제 #13
0
 public object InvoiceGrossTotalCheckDAL(DepositDetail depositDetail)
 {
     return(ExecuteScalarwithSP("INO_Get_InvoicePaymentGrossTotalCheck",
                                ParamBuilder.Par("@InoID", depositDetail.Invoice_ID)
                                ));
 }
예제 #14
0
        public ActionResult InvoiceDeposit_Create([DataSourceRequest] DataSourceRequest request, DepositDetail _DepositDetail, string PersonID)
        {
            if (ModelState.IsValid)
            {
                var json = new JavaScriptSerializer().Serialize(_DepositDetail);
                _UserBAL.LogInsert(DateTime.Now.ToString(), "10", Logs.Insert_Success.ToString(), System.Environment.MachineName, "User tried to create Courses at" + DateTime.UtcNow + " with user id =" + CurrentUser.NameIdentifierInt64, "", 0, this.ControllerContext.RouteData.Values["controller"].ToString(), this.ControllerContext.RouteData.Values["action"].ToString(), json.ToString(), CurrentUser.CompanyID);
                var data = _CustomerBAL.Read_InvoiceByIDBAL(PersonID);
                if (data.Invoice_Status == InvoiceStatus.InvoiceCancled)
                {
                    ModelState.AddModelError(lr.InvoiceCancledOut, lr.InvoiceCancledOut);
                }
                else
                {
                    InvoiceHistory invoiceHistory = new InvoiceHistory();
                    invoiceHistory.History_Name    = "Invoice Deposit";
                    invoiceHistory.Type            = InvoiceStatus.InvoiceDeposit;
                    invoiceHistory.Description     = "";
                    invoiceHistory.Invoice_Number  = Convert.ToInt64(PersonID);
                    invoiceHistory.User_ID         = CurrentUser.NameIdentifierInt64;
                    invoiceHistory.Organization_ID = CurrentUser.CompanyID;
                    invoiceHistory.Date_TIME       = DateTime.Now;
                    _CustomerBAL.create_InvoiceHistoryBAL(invoiceHistory);
                    _DepositDetail.Invoice_ID = PersonID;
                    var    x  = this._CustomerBAL.InvoiceBalanceCheckBAL(_DepositDetail);
                    var    xx = this._CustomerBAL.InvoiceGrossTotalCheckBAL(_DepositDetail);
                    double invoiceTotalPayment = Convert.ToDouble(x);
                    double invoiceGrossTotal   = Convert.ToDouble(xx);
                    double balance             = Math.Round(invoiceGrossTotal, 2) - Math.Round(invoiceTotalPayment, 2);
                    balance = Math.Round(balance, 3);
                    if (balance == 0)
                    {
                        ModelState.AddModelError(lr.BalanceZero, lr.BalanceZero);
                    }
                    else if (balance >= _DepositDetail.Payment)
                    {
                        _DepositDetail.Created_By      = CurrentUser.NameIdentifierInt64;
                        _DepositDetail.Created_Date    = DateTime.Now;
                        _DepositDetail.Organization_ID = CurrentUser.CompanyID;
                        _DepositDetail.ID = this._CustomerBAL.InvoicePaymentDepositeCreateBAL(_DepositDetail);
                    }
                    else
                    {
                        ModelState.AddModelError(lr.BalanceMustBeEqual, lr.BalanceMustBeEqual);
                    }
                }
            }

            var resultData = new[] { _DepositDetail };

            return(Json(resultData.ToDataSourceResult(request, ModelState)));
        }