예제 #1
0
        public static BalanceDetailData ToViewData(this BalanceDetail node, CategoryDictionary suffix = CategoryDictionary.None)
        {
            if (node == null)
            {
                return(null);
            }
            var model = new BalanceDetailData()
            {
                Id                 = node.Id,
                BalanceId          = node.BalanceId,
                EnergyCategory     = node.EnergyCategory,
                Amount             = node.Amount,
                Consumption        = node.Consumption,
                Price              = node.Price,
                EnergyCategoryDict = node.EnergyCategoryDict.ToViewData(),
                ConsumptionTotal   = node.ConsumptionTotal,
                AmountTotal        = node.AmountTotal
            };

            return(model);
        }
예제 #2
0
        public void TestBalanceCRUD()
        {
            // 删除无用的测试数据
            List<Balance> list = Balance.Query("code = 'testcode'");
            foreach (Balance acc in list)
            {
                acc.Destory();
            }

            // 新增
            Balance a = new Balance();
            a.Code = "testcode";
            a.Name = "Name";
            a.CompanyDetailID = CompanyDetail.Query()[0].ID;
            a.Money = 1;
            a.BeginDate = DateTime.Now;
            a.EndDate = DateTime.Now;

            for (int i = 0; i < 10; i++)
            {
                BalanceDetail d = new BalanceDetail();
                d.Money = i;
                d.PayDate = DateTime.Now;
                a.DetailList.Add(d);
            }

            Assert.IsTrue(a.Save());
            Assert.IsTrue(a.ID > 0);

            // 查询
            list = Balance.Query("code = 'testcode'");
            Assert.IsTrue(list.Count == 1);
            Assert.IsTrue(list[0].ID == a.ID);
            Assert.IsTrue(list[0].DetailList.Count == 10);

            // 删除
            Assert.IsTrue(list[0].Destory());
            list = Balance.Query("code = 'testcode'");
            Assert.IsTrue(list.Count == 0);
        }
예제 #3
0
        //CardDetail cardDetailFull;
        //DateTime extractDate;

        public WindowTransactions(ItelUser u1, ItelUser u2)
        {
            InitializeComponent();
            detail1 = new BalanceDetail(u1);
            detail2 = new BalanceDetail(u2);
        }
예제 #4
0
        async Task prepareDetails(BalanceDetail detail, bool updateToday = false)
        {
            detail.TouchBalance    = 0;
            detail.AlfaBalance     = 0;
            detail.GoogleBalance   = 0;
            detail.PsnBalance      = 0;
            detail.FreeFireBalance = 0;
            detail.RazerBalance    = 0;
            detail.OtherBalance    = 0;

            //int i = 0;
            //bool begin = false;

            DateTime toDate = ToDatePicker.SelectedDate.Value;

            do
            {
                await detail.User.GetTransactions(toDate, updateToday);

                toDate = toDate.AddDays(-1);
            } while (toDate >= FromDatePicker.SelectedDate.Value);
            detail.User.SaveTransactions();

            foreach (Transaction trnx in detail.User.Transactions)
            {
                DateTime date = DateTime.Parse(trnx.date.Substring(0, 10));
                if (date <= ToDatePicker.SelectedDate && date >= FromDatePicker.SelectedDate)
                {
                    foreach (MyLogInvoiceResponse invoice in trnx.myLogInvoiceResponses)
                    {
                        foreach (LogDetail log in invoice.logDetails)
                        {
                            double amountInDollar = double.Parse(log.amount);
                            if (amountInDollar > 1000)
                            {
                                amountInDollar = Math.Round(amountInDollar / 15.15) / 100;
                            }
                            if (log.service == "TOUCH")
                            {
                                detail.TouchBalance += amountInDollar;
                            }
                            else if (log.service == "ALFA")
                            {
                                detail.AlfaBalance += amountInDollar;
                            }
                            else if (log.service == "GOOGLE PLAY")
                            {
                                detail.GoogleBalance += amountInDollar;
                            }
                            else if (log.service == "PLAY STATION NETWORK")
                            {
                                detail.PsnBalance += amountInDollar;
                            }
                            else if (log.service == "RAZER")
                            {
                                detail.RazerBalance += amountInDollar;
                            }
                            else if (log.service == "FREE FIRE")
                            {
                                detail.FreeFireBalance += amountInDollar;
                            }
                            else if (log.service == "WHISH COLLECT PAYMENT")
                            {
                                //detail.OtherBalance += double.Parse(log.amount.Remove(log.amount.Length-4));
                            }
                            //else if (log.service == "TOUCH VALIDITY TRANSFER")
                            //    detail.OtherBalance += log.amount;
                            else
                            {
                                detail.OtherBalance += amountInDollar;
                                //if (cardDetailFull == null)
                                //{
                                //    cardDetailFull = CardDetail.Desirialize(File.ReadAllText("details.txt"));
                                //}
                                //foreach (Category category in cardDetailFull.data.categories)
                                //{
                                //    foreach (Service ser in category.services)
                                //    {
                                //        foreach (Denomination1 d1 in ser.denominations)
                                //        {
                                //            if (log.denomination == d1.name)
                                //            {
                                //                if (d1.price.StartsWith("USD"))
                                //                    detail.OtherBalance += double.Parse(d1.price.Substring(4));
                                //                else
                                //                    detail.OtherBalance += double.Parse(d1.price, System.Globalization.NumberStyles.AllowCurrencySymbol | System.Globalization.NumberStyles.AllowDecimalPoint);
                                //                break;
                                //            }
                                //        }
                                //    }
                            }
                        }
                    }
                }
                //}
            }

            //do
            //{
            //    if (begin || transactions[i].date != toDateString)
            //    {
            //        begin = true;
            //        foreach (MyLogInvoiceResponse invoice in transactions[i].myLogInvoiceResponses)
            //        {
            //            foreach (LogDetail log in invoice.logDetails)
            //            {
            //                if (log.service == "TOUCH")
            //                    detail.TouchBalance += log.amount;
            //                else if (log.service == "ALFA")
            //                    detail.AlfaBalance += log.amount;
            //                else
            //                    detail.OtherBalance += log.amount;
            //            }
            //        }
            //    }

            //    i++;
            //} while (transactions[i].date != fromDateString);
            if (detail.User.UniversalAccount)
            {
                detail.TouchBalance    -= detail1.TouchBalance;
                detail.AlfaBalance     -= detail1.AlfaBalance;
                detail.GoogleBalance   -= detail1.GoogleBalance;
                detail.RazerBalance    -= detail1.RazerBalance;
                detail.FreeFireBalance -= detail1.FreeFireBalance;
                detail.PsnBalance      -= detail1.PsnBalance;
                detail.OtherBalance    -= detail1.OtherBalance;
            }
        }
예제 #5
0
        public ActionResult ZYOrderBalance(Enums.Enums.OrderType body, string ordercode, string userID)
        {
            try
            {
                var ordermodel = db.zyorder.FirstOrDefault(s => s.OrderCode == ordercode);//查询订单信息
                if (!db.tb_userinfos.Any(s => s.UserID == userID))
                {
                    return(Json(Comm.ToJsonResult("UserNotFind", "用户不存在"), JsonRequestBehavior.AllowGet));
                }
                if (body != Enums.Enums.OrderType.Recharge && body != Enums.Enums.OrderType.OrderPay)
                {
                    return(Json(Comm.ToJsonResult("Error", "请求参数错误"), JsonRequestBehavior.AllowGet));
                }
                if (ordermodel == null)
                {
                    return(Json(Comm.ToJsonResult("OrderNotFind", "订单不存在"), JsonRequestBehavior.AllowGet));
                }
                var usmodel = db.tb_userinfos.FirstOrDefault(s => s.UserID == userID);
                if (usmodel.Balance < ordermodel.total_fee)
                {
                    return(Json(Comm.ToJsonResult("BalanceShortage", "余额不足"), JsonRequestBehavior.AllowGet));
                }
                usmodel.Balance = usmodel.Balance - ordermodel.total_fee;

                BalanceDetail model = new BalanceDetail();
                model.MoverBalance = ordermodel.total_fee;
                model.MoverTime    = DateTime.Now;
                model.MoverType    = 1;
                model.Remark       = "自营订单支付";
                model.UserID       = ordermodel.User_ID;
                model.CountBalance = usmodel.Balance - ordermodel.total_fee;
                db.BalanceDetail.Add(model);


                //保存下单信息到数据库
                PayOrder paymodel = new PayOrder();
                paymodel.OrderState           = Enums.Enums.OrderState.Success;
                paymodel.out_trade_no         = "";
                paymodel.Paynoncestr          = string.Empty;
                paymodel.PayPrepay_id         = "";
                paymodel.settlement_total_fee = ordermodel.total_fee;
                paymodel.CreateTime           = DateTime.Now;
                paymodel.Sign       = "";
                paymodel.total_fee  = ordermodel.total_fee;
                paymodel.User_ID    = userID;
                paymodel.OrderType  = body;
                paymodel.RelationID = ordermodel.ID;
                db.PayOrders.Add(paymodel);
                int resultrow = db.SaveChanges();
                if (resultrow > 0)
                {
                    return(Json(Comm.ToJsonResult("Success", "成功"), JsonRequestBehavior.AllowGet));
                }
                else
                {
                    return(Json(Comm.ToJsonResult("Error", "下单失败"), JsonRequestBehavior.AllowGet));
                }
            }
            catch (Exception ex)
            {
                return(Json(Comm.ToJsonResult("Error", ex.Message), JsonRequestBehavior.AllowGet));
            }
        }