//确定 private void btnOk_Click(object sender, EventArgs e) { if (cardId.Text == "" || money.Text == "" || money.Text == "0") { GeneralClass.printErrorMsg("需要输入必填信息"); return; } if (name.Text == "") { GeneralClass.printErrorMsg("不存在此会员卡"); return; } CardCharge cc = new CardCharge(); cc.CC_CardNo = cardId.Text; //cc.CC_AccountNo = account.id.ToString(); cc.CC_ItemExplain = "会员扣卡"; cc.CC_LenderSum = Convert.ToDouble(money.Text); //cc.expense = account_money; cc.CC_InputOperator = LogIn.m_User.id.ToString(); cc.CC_InputDate = DateTime.Now; db.CardCharge.InsertOnSubmit(cc); //Deducted deduct = new Deducted(); //deduct.memberId = cardId.Text; //deduct.money = Convert.ToDouble(money.Text); //deduct.date = BathClass.Now(LogIn.connectionString); //deduct.processed = false; //db.Deducted.InsertOnSubmit(deduct); db.SubmitChanges(); this.DialogResult = DialogResult.OK; }
//插入会员消费记录 private void insert_member_infor(Account account) { double account_money = BathClass.get_account_money(account); if (m_promotion_Member != null) { CardCharge cc = new CardCharge(); cc.CC_CardNo = m_promotion_Member.CI_CardNo; cc.CC_AccountNo = account.id.ToString(); cc.CC_ItemExplain = "会员打折"; cc.expense = account_money; cc.CC_InputOperator = LogIn.m_User.id.ToString(); cc.CC_InputDate = DateTime.Now; db.CardCharge.InsertOnSubmit(cc); } if (m_Member != null) { CardCharge cc = new CardCharge(); cc.CC_CardNo = m_Member.CI_CardNo; cc.CC_AccountNo = account.id.ToString(); cc.CC_ItemExplain = "会员刷卡"; cc.CC_LenderSum = account.creditCard; cc.expense = account_money; cc.CC_InputOperator = LogIn.m_User.id.ToString(); cc.CC_InputDate = DateTime.Now; db.CardCharge.InsertOnSubmit(cc); db.SubmitChanges(); } //db.SubmitChanges(); }
/// <summary> /// Creates a charge with full card details. /// </summary> public HttpResponse <Charge> ChargeWithCard(CardCharge requestModel) { var request = new RestRequest(Endpoints.CardCharge, Method.POST); request.RequestFormat = DataFormat.Json; request.AddBody(requestModel); return(Execute <Charge>(request)); }
public void CreateZeroAuthorisationCharge() { CardCharge cardChargeRequestModel = TestHelper.GetCardChargeCreateModel(customerEmail: TestHelper.RandomData.Email); var response = CheckoutClient.ChargeService.ChargeWithCard(cardChargeRequestModel); response.HttpStatusCode.Should().Be(HttpStatusCode.OK); response.Model.Id.Should().StartWith("charge_test_"); response.Model.Used.Should().Be(false); }
//确定 private void btnOk_Click(object sender, EventArgs e) { if (btnOk.Text == "读卡") { get_member(); } else if (btnOk.Text == "充值" && money.Text != "") { CardCharge cardCharge = new CardCharge(); cardCharge.CC_CardNo = m_member.CI_CardNo; cardCharge.CC_DebitSum = Convert.ToDouble(money.Text); cardCharge.CC_ItemExplain = "会员卡充值-收"; cardCharge.CC_InputOperator = LogIn.m_User.id.ToString(); cardCharge.CC_InputDate = GeneralClass.Now; cardCharge.systemId = m_Seat.systemId; db.CardCharge.InsertOnSubmit(cardCharge); int sale_money = find_card_sale(); if (sale_money != 0) { CardCharge cardChargeSale = new CardCharge(); cardChargeSale.CC_CardNo = m_member.CI_CardNo; cardChargeSale.CC_ItemExplain = "优惠送"; cardChargeSale.CC_DebitSum = sale_money; cardChargeSale.CC_LenderSum = 0; cardChargeSale.CC_InputOperator = LogIn.m_User.id.ToString(); cardChargeSale.CC_InputDate = GeneralClass.Now; cardChargeSale.systemId = m_Seat.systemId; db.CardCharge.InsertOnSubmit(cardChargeSale); BathClass.printInformation("送" + sale_money + "元"); } //var menu = db.Menu.FirstOrDefault(x => x.name == type.Text+"充值"); Orders order = new Orders(); order.menu = "储值卡充值"; order.text = m_Seat.text; order.systemId = m_Seat.systemId; order.number = 1; order.inputTime = BathClass.Now(LogIn.connectionString); order.inputEmployee = LogIn.m_User.id.ToString(); order.paid = false; order.money = Convert.ToDouble(money.Text); db.Orders.InsertOnSubmit(order); db.SubmitChanges(); this.DialogResult = DialogResult.OK; } }
//插入会员消费记录 private void insert_member_infor() { double account_money = BathClass.get_account_money(account); if (m_promotion_Member != null) { CardCharge cc = new CardCharge(); cc.CC_CardNo = m_promotion_Member.CI_CardNo; cc.CC_AccountNo = account.id.ToString(); cc.CC_ItemExplain = "会员打折"; cc.expense = account_money; cc.CC_InputOperator = LogIn.m_User.id.ToString(); cc.CC_InputDate = GeneralClass.Now; db.CardCharge.InsertOnSubmit(cc); send_sms(m_promotion_Member.CI_CardNo); } if (m_Member_List != null) { foreach (string cardNo in m_Member_List.Keys) { CardCharge cc = new CardCharge(); cc.CC_CardNo = cardNo; cc.CC_AccountNo = account.id.ToString(); cc.CC_ItemExplain = "会员刷卡"; cc.CC_LenderSum = m_Member_List[cardNo]; cc.expense = account_money; cc.CC_InputOperator = LogIn.m_User.id.ToString(); cc.CC_InputDate = GeneralClass.Now; db.CardCharge.InsertOnSubmit(cc); send_sms(cardNo); } //db.SubmitChanges(); } //db.SubmitChanges(); }
/// <summary> /// Creates a charge with full card details. /// </summary> public HttpResponse <Charge> ChargeWithCard(CardCharge requestModel) { return(new ApiHttpClient().PostRequest <Charge>(ApiUrls.CardCharge, AppSettings.SecretKey, requestModel)); }
public void Execute(IJobExecutionContext context) { try { AutoSubscribJob autosubscr = new AutoSubscribJob(); autosubscr.Execute(null); } catch (Exception ex) { } int coeff = 30;// DateTime.DaysInMonth(DateTime.Now.Year, DateTime.Now.Month); using (DataContext _db = new DataContext()) { _db.Database.CommandTimeout = 10000; using (DbContextTransaction tran = _db.Database.BeginTransaction(System.Data.IsolationLevel.Serializable)) { try { var _params = _db.Params.ToList(); string[] charge_vals = _params.First(c => c.Name == "CardCharge").Value.Split(':'); string[] address = _params.Where(c => c.Name == "CASAddress").Select(c => c.Value).First().Split(':'); int closed_card_days = int.Parse(_params.First(c => c.Name == "ClosedCardDays").Value); decimal closed_daily_amount = decimal.Parse(_params.First(c => c.Name == "CloseCardDailyAmount").Value); int closed_daily_amount_limit = int.Parse(_params.First(c => c.Name == "CloseCardDailyAmountLimit").Value); decimal jurid_limit_months = decimal.Parse(_params.First(c => c.Name == "JuridLimitMonths").Value); int service_days = int.Parse(_params.First(c => c.Name == "ServiceDays").Value); decimal close_amount = decimal.Parse(_params.First(p => p.Name == "CloseCardAmount").Value); int free_days = Convert.ToInt32(_params.First(p => p.Name == "FreeDays").Value); int block_card_days = Convert.ToInt32(_params.First(p => p.Name == "BlockCardDays").Value); coeff = Convert.ToInt32(_db.Params.First(p => p.Name == "ServiceDays").Value); int?closed_card_limit = Convert.ToInt32(_db.Params.First(p => p.Name == "ClosedCardsLimit").Value); if (closed_card_limit == null) { closed_card_limit = 60; } File.AppendAllText(@"C:\DigitalTV\log.txt", "start: " + DateTime.Now.ToString() + "\r\n"); DateTime today = new DateTime(DateTime.Now.Year, DateTime.Now.Month, DateTime.Now.Day, int.Parse(charge_vals[0]), int.Parse(charge_vals[1]), 0); //DateTime.Parse("2016-12-16 00:01:00", CultureInfo.InvariantCulture);// //if (_db.CardCharges.Any(c => c.Tdate == today)) //{ // File.AppendAllText(@"C:\TVMobile\log.txt", "return "); // return; //} var _blocked_cards = _db.Customers.Select(c => new { Cards = c.Cards.Where(p => p.CardStatus != CardStatus.Canceled && p.CardStatus != CardStatus.Blocked) }) .Where(c => c.Cards.Any(s => (s.Payments.Select(p => p.Amount).DefaultIfEmpty().Sum() - s.CardCharges.Select(p => p.Amount).DefaultIfEmpty().Sum() < 0 && c.Cards.Any(p => p.CardStatus == CardStatus.Closed)))) .SelectMany(c => c.Cards).GroupBy(c => c.CustomerId).ToList(); SendMiniSMS sendMiniSMS = new SendMiniSMS(); CASSocket _socket = new CASSocket() { IP = address[0], Port = int.Parse(address[1]) }; //_socket.Connect(); //foreach (var group in _blocked_cards) //{ // if (!group.Any(g => g.CardStatus == CardStatus.Closed && (today - g.CloseDate).Days == block_card_days)) // continue; // foreach (Card _card in group) // { // if (_card.CardStatus == CardStatus.Active) // { // //original code // //decimal amount = (decimal)(_db.Subscribtions.Include("SubscriptionPackages.Package").Where(s => s.CardId == _card.Id).FirstOrDefault(s => s.Status).Amount / coeff); // decimal amount = (decimal)(_db.Subscribtions.Include("SubscriptionPackages.Package").Where(s => s.CardId == _card.Id).FirstOrDefault(s => s.Status).Amount / coeff/ Utils.Utils.divide_card_charge_interval); // amount -= (amount * (decimal)_card.Discount / 100); // if (amount <= 0) // continue; // _db.CardCharges.Add(new CardCharge() { CardId = _card.Id, Amount = amount, Tdate = today, Status = CardChargeStatus.Daily }); // } // _db.CardLogs.Add(new CardLog() { CardId = _card.Id, Date = today, Status = CardLogStatus.BlockToMinusBalance, UserId = 1, CardStatus = _card.CardStatus }); // _card.CardStatus = CardStatus.Blocked; // _db.Entry(_card).State = System.Data.Entity.EntityState.Modified; // if (!_socket.SendCardStatus(Convert.ToInt32(_card.CardNum), false, DateTime.SpecifyKind(today, DateTimeKind.Utc))) // { // _db.ChargeCrushLogs.Add(new ChargeCrushLog // { // Date = today, // CardNum = _card.CardNum, // ChargeCrushLogType = Models.ChargeCrushLogType.Block, // Text = "ბარათი: " + _card.CardNum + ";" + _card.AbonentNum // }); // } // } //} _db.SaveChanges(); //_socket.Disconnect(); var _cards = _db.Cards.Where(c => c.CardStatus != CardStatus.Canceled).Select(c => new CardDetailData { CustomerType = c.Customer.Type, IsBudget = c.Customer.IsBudget, SubscribAmount = c.Subscribtions.FirstOrDefault(s => s.Status).Amount, CasIds = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Select(sp => (short)sp.Package.CasId), PaymentAmount = c.Payments.Sum(p => (decimal?)p.Amount) ?? 0, ChargeAmount = c.CardCharges.Select(s => (decimal?)s.Amount).Sum() ?? 0, Card = c, MinPrice = c.Subscribtions.FirstOrDefault(s => s.Status).SubscriptionPackages.Sum(p => p.Package.MinPrice), ServiceAmount = c.CardCharges.Where(s => s.Status == CardChargeStatus.Service).Select(s => (decimal?)s.Amount).Sum() ?? 0, WithoutServiceAmount = c.CardCharges.Where(s => s.Status != CardChargeStatus.Service).Select(s => (decimal?)s.Amount).Sum() ?? 0, CardServices = c.CardServices.ToList() }).ToList(); _socket.Connect(); foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.Closed)) { //if(_card.Card.ClosedIsPen != null) //if ((bool)_card.Card.ClosedIsPen) //{ // if (!(_card.CustomerType == CustomerType.Juridical && _card.IsBudget)) // { // if (closed_daily_amount > 0) // { // if ((today - _card.Card.CloseDate).Days <= closed_daily_amount_limit) // { // _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = closed_daily_amount, Tdate = today, Status = CardChargeStatus.PenDaily }); // } // } // } // if ((today - _card.Card.CloseDate).Days == closed_card_days) // { // _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = close_amount, Tdate = today, Status = CardChargeStatus.Pen }); // } //} Subscribtion sb = _db.Subscribtions.Where(s => s.CardId == _card.Card.Id && s.Status == true).First(); List <SubscriptionPackage> sbp = _db.SubscriptionPackages.Include("Package").Where(s => s.SubscriptionId == sb.Id).ToList(); //Package package = _db.Packages.Where(p => p.Id == sbp.PackageId).First(); //if (_card.CustomerType != CustomerType.Juridical) { //Subscribtion subscribe = _card.Card.Subscribtions.Where(s => s.Status == true).FirstOrDefault(); //if(subscribe != null) //{ // if(subscribe.SubscriptionPackages.Any(s => s.Package.Name.Contains("აქცია 8")) && (subscribe.Tdate.Day == today.Day && subscribe.Tdate.Month == today.Month && subscribe.Tdate.Year == today.Year)) // { // continue; // } //} if (sbp.Any(p => p.Package.RentType == RentType.rent)) { if ((today - _card.Card.CloseDate).Days <= closed_card_limit) { _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = Math.Round((decimal)0.10, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); } else { //this.AddLoging(_db, // LogType.Card, // LogMode.CardDeal, // user_id, // _card.Card.Id, // _card.Card.AbonentNum + " - ბარათი დაიბლოკა", // new List<LoggingData>() { new LoggingData { field = "", new_val = "ბარათი დაიბლოკა", old_val = "" } } // ); if (!_socket.SendCardStatus(Convert.ToInt32(_card.Card.CardNum), false, DateTime.SpecifyKind(DateTime.Now, DateTimeKind.Utc))) { //throw new Exception(_card.Card.CardNum + ": ბარათი ვერ დაიბლოკა!"); _db.ChargeCrushLogs.Add(new ChargeCrushLog { Date = today, CardNum = _card.Card.CardNum, ChargeCrushLogType = ChargeCrushLogType.Block, Text = _card.Card.CardNum + ": ბარათი ვერ დაიბლოკა! Cas შეცდომის კოდი: " + _socket.error_code + " , Exeption Message: " + _socket.ErrorEx }); } else { CardLog _log = new CardLog() { CardId = _card.Card.Id, Date = DateTime.Now, Status = CardLogStatus.Blocked, UserId = 1, CardStatus = _card.Card.CardStatus }; _db.CardLogs.Add(_log); _card.Card.CardStatus = CardStatus.Blocked; _db.Entry(_card.Card).State = EntityState.Modified; Logging _logging = new Logging { Tdate = DateTime.Now, Type = LogType.Card, UserId = 1, Mode = LogMode.CardDeal, TypeId = _card.Card.Id, TypeValue = _card.Card.AbonentNum + " - ბარათი დაიბლოკა(სისტემა)" }; _db.Loggings.Add(_logging); _db.SaveChanges(); _db.LoggingItems.AddRange(new List <LoggingData>() { new LoggingData { field = "", new_val = "ბარათი დაიბლოკა(სისტემა)", old_val = "" } }.Where(c => c.field != null).Select(c => new LoggingItem { LoggingId = _logging.Id, ColumnDisplay = c.field.Replace(':', ' ').Trim(), NewValue = c.new_val, OldValue = c.old_val })); decimal balance = (_card.PaymentAmount - _card.ChargeAmount); string phone = _db.Customers.Where(c => c.Id == _card.Card.CustomerId).First().Phone1; //MessageTemplate message = _db.MessageTemplates.Single(m => m.Name == "OnBlock"); //string message_desc = message.Desc; // String.Format(message.Desc, Math.Round((balance), 2)); //Task.Run(async () => { await Utils.Utils.sendMessage(phone, message_desc); }).Wait(); } } } } } _db.SaveChanges(); foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.Rent)) { if (_card.Card.RentFinishDate <= today && _card.CustomerType != CustomerType.Technic) { _card.Card.CardStatus = CardStatus.Closed; _card.Card.CloseDate = today; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = Math.Round((decimal)0.10, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Close, UserId = 1 }); } else { RentAccrualsPresentation rentAccrualsPresentation = new RentAccrualsPresentation(_db); if (rentAccrualsPresentation.RentBalance(_card.Card.Id) >= rentAccrualsPresentation.RentDayAmount()) { rentAccrualsPresentation.CardAccruals(_card); } } } _db.SaveChanges(); //paused_cards foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.Paused)) { if (_card.Card.PauseDate.AddDays(_card.Card.PauseDays) <= today) { bool status_sign = (_card.PaymentAmount - _card.ChargeAmount) >= (decimal)_card.MinPrice / 30m; _card.Card.CardStatus = status_sign ? CardStatus.Active : CardStatus.Closed; _card.Card.PauseDays = 0; CardLog _log = new CardLog(); /*{ CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Open, UserId = 1 };*/ RentAccrualsPresentation rentAccrualsPresentation = new RentAccrualsPresentation(_db); if (_card.Card.CardStatus == CardStatus.Closed && rentAccrualsPresentation.RentBalance(_card.Card.Id) >= rentAccrualsPresentation.RentDayAmount()) { rentAccrualsPresentation.CardAccruals(_card); rentAccrualsPresentation.RentFinishDat(_card); } if (_card.Card.CardStatus == CardStatus.Closed) { _log.CardId = _card.Card.Id; _log.Date = today; _log.Status = CardLogStatus.Close; _log.UserId = 1; _card.Card.CloseDate = today; } else if (_card.Card.CardStatus == CardStatus.Active) { _log.CardId = _card.Card.Id; _log.Date = today; _log.Status = CardLogStatus.Open; _log.UserId = 1; } _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.CardLogs.Add(_log); if (!_socket.SendCardStatus(Convert.ToInt32(_card.Card.CardNum), true, DateTime.SpecifyKind(today, DateTimeKind.Utc))) { _db.ChargeCrushLogs.Add(new ChargeCrushLog { Date = today, CardNum = _card.Card.CardNum, ChargeCrushLogType = Models.ChargeCrushLogType.Open, Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum }); } //if (status_sign) //{ // if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.SpecifyKind(_card.Card.CasDate, DateTimeKind.Utc), false)) // { // _db.ChargeCrushLogs.Add(new ChargeCrushLog // { // Date = today, // CardNum = _card.Card.CardNum, // ChargeCrushLogType = Models.ChargeCrushLogType.EntitlementClose, // Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum // }); // } // System.Threading.Thread.Sleep(2000); // if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.SpecifyKind(_card.Card.CasDate, DateTimeKind.Utc), true)) // { // _db.ChargeCrushLogs.Add(new ChargeCrushLog // { // Date = today, // CardNum = _card.Card.CardNum, // ChargeCrushLogType = Models.ChargeCrushLogType.EntitlementOpen, // Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum // }); // } //} } } _db.SaveChanges(); //montaged c foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.FreeDays)) { bool is_open = true; if (_card.Card.Tdate.AddDays(free_days) < today) { decimal balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); double amount = _card.SubscribAmount - (_card.SubscribAmount * (double)_card.Card.Discount / 100); if ((double)balance >= amount || _card.IsBudget || _card.CustomerType == CustomerType.Technic) { _card.Card.CardStatus = CardStatus.Active; _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Open, UserId = 1 }); _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; Utils.Utils.SetFinishDate(_db, jurid_limit_months, _card.Card.Id); //original code //if (!_socket.SendCardStatus(Convert.ToInt32(_card.Card.CardNum), true, DateTime.Now)) //{ //} } else { is_open = false; _card.Card.CardStatus = CardStatus.Closed; _card.Card.CloseDate = today; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Close, UserId = 1 }); } if (is_open) { if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.Now.AddHours(-4), _card.Card.FinishDate.AddHours(-4), true)) { //throw new Exception("ბარათი ვერ გააქტიურდა:" + _card.Card.CardNum); _db.ChargeCrushLogs.Add(new ChargeCrushLog { Date = today, CardNum = _card.Card.CardNum, ChargeCrushLogType = is_open ? ChargeCrushLogType.EntitlementOpen : ChargeCrushLogType.EntitlementClose, Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum }); } //if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.SpecifyKind(_card.Card.CasDate, DateTimeKind.Utc), false)) //{ // _db.ChargeCrushLogs.Add(new ChargeCrushLog // { // Date = today, // CardNum = _card.Card.CardNum, // ChargeCrushLogType = is_open ? ChargeCrushLogType.EntitlementOpen : ChargeCrushLogType.EntitlementClose, // Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum // }); //} } } else { foreach (var c_s in _card.CardServices) { if (c_s.IsActive || Utils.Utils.GetServiceBalance(_card.PaymentAmount, _card.ServiceAmount, _card.WithoutServiceAmount) < 0) { if (c_s.Date.AddDays(service_days).Date <= today.Date) { decimal balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); if (c_s.IsActive) { CardCharge _charge = new CardCharge { Tdate = today, CardId = _card.Card.Id, Status = CardChargeStatus.Service, Amount = c_s.Amount }; balance -= _charge.Amount; _db.CardCharges.Add(_charge); c_s.IsActive = false; _db.Entry(c_s).State = EntityState.Modified; } if (balance < 0) { _card.Card.CardStatus = CardStatus.Blocked; _db.Entry(_card.Card).State = EntityState.Modified; _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.BlockToService, UserId = 1 }); if (!_socket.SendCardStatus(Convert.ToInt32(_card.Card.CardNum), false, DateTime.SpecifyKind(today, DateTimeKind.Utc))) { _db.ChargeCrushLogs.Add(new ChargeCrushLog { Date = today, CardNum = _card.Card.CardNum, ChargeCrushLogType = ChargeCrushLogType.Block, Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum }); } } break; } } } } } _db.SaveChanges(); //active cards foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.Active)) { bool has_s = false; foreach (var c_s in _card.CardServices.Where(c => c.IsActive)) { if (c_s.Date.AddDays(service_days).Date <= today.Date) { _db.CardCharges.Add(new CardCharge { Tdate = today, CardId = _card.Card.Id, Status = CardChargeStatus.Service, Amount = c_s.Amount }); c_s.IsActive = false; _db.Entry(c_s).State = EntityState.Modified; } has_s = true; } _db.SaveChanges(); if (has_s) { Utils.Utils.SetFinishDate(_db, jurid_limit_months, _card.Card.Id); } if (_card.CustomerType != CustomerType.Juridical) { if (_card.Card.FinishDate <= today && _card.CustomerType != CustomerType.Technic) //&& _card.CustomerType != CustomerType.Technic { RentAccrualsPresentation rentAccrualsPresentation = new RentAccrualsPresentation(_db); if (rentAccrualsPresentation.RentBalance(_card.Card.Id) >= rentAccrualsPresentation.RentDayAmount()) { rentAccrualsPresentation.CardAccruals(_card); rentAccrualsPresentation.RentFinishDat(_card); } else { if (_card.SubscribAmount != 12) { _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = Math.Round((decimal)0.10, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); } _card.Card.CardStatus = CardStatus.Closed; _card.Card.CloseDate = today; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; foreach (var c_s in _card.CardServices.Where(c => c.IsActive)) { if (c_s.Date.AddDays(service_days).Date > today.Date) { _db.CardCharges.Add(new CardCharge { Tdate = today, CardId = _card.Card.Id, Status = CardChargeStatus.Service, Amount = c_s.Amount }); _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.CloseToService, UserId = 1 }); c_s.IsActive = false; _db.Entry(c_s).State = EntityState.Modified; } } _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Close, UserId = 1 }); //if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), _card.Card.FinishDate.AddHours(-4), _card.Card.FinishDate.AddHours(-4), true)) ////if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.SpecifyKind(_card.Card.CasDate, DateTimeKind.Utc), false)) //{ // _db.ChargeCrushLogs.Add(new ChargeCrushLog // { // Date = today, // CardNum = _card.Card.CardNum, // ChargeCrushLogType = ChargeCrushLogType.EntitlementClose, // Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum // }); //} } } if (_card.Card.CardStatus == CardStatus.Active && _card.CustomerType != CustomerType.Technic) //&& _card.CustomerType != CustomerType.Technic { //original code //decimal amount = (decimal)(_card.SubscribAmount / coeff); decimal amount = (decimal)(_card.SubscribAmount / coeff / Utils.Utils.divide_card_charge_interval); amount -= (amount * (decimal)_card.Card.Discount / 100); if (amount <= 0) { continue; } _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = amount, Tdate = today, Status = CardChargeStatus.Daily }); } } else { bool has_inough = false; int pay_count = _db.Payments.Where(p => p.CardId == _card.Card.Id).Count(); double min_price = pay_count == 1 ? _card.SubscribAmount : _card.MinPrice; min_price -= (min_price * (double)_card.Card.Discount / 100); decimal balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); DateTime _dt = DateTime.Now; if ((double)balance >= min_price) { has_inough = true; } if (_dt.Day == 1) { balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); if (balance >= 0) { Utils.Utils.SetJuridFinishDate(_db, jurid_limit_months, _card.Card.Id); } } int diff_days = (_card.Card.FinishDate - _dt).Days; if (_dt.Day > 1 && _dt.Day < 10 /*6*/) { if (diff_days < 25) { balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); if (balance >= 0) { Utils.Utils.SetJuridFinishDate(_db, jurid_limit_months, _card.Card.Id); } } } if (_dt.Day == 10 /*6*/) { if (diff_days < 25) { DateTime f_datefrom = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 1, 0, 0, 0); DateTime f_dateto = new DateTime(DateTime.Now.Year, DateTime.Now.Month, 10, 0, 0, 0); var CardCahrge_Balance = _db.CardCharges.Where(c => c.CardId == _card.Card.Id && c.Tdate >= f_datefrom && c.Tdate <= f_dateto).Select(s => s.Amount).Sum(); balance = Utils.Utils.GetBalance(_card.PaymentAmount, _card.ChargeAmount); balance = balance + CardCahrge_Balance; if (balance >= 0) { Utils.Utils.SetJuridFinishDate(_db, jurid_limit_months, _card.Card.Id); } else { RentAccrualsPresentation rentAccrualsPresentation = new RentAccrualsPresentation(_db); // ijara daricxva qartuli arxebi if (rentAccrualsPresentation.RentBalance(_card.Card.Id) >= rentAccrualsPresentation.RentDayAmount()) { rentAccrualsPresentation.CardAccruals(_card); rentAccrualsPresentation.RentFinishDat(_card); } else { if (_card.SubscribAmount != 12) { _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = Math.Round((decimal)0.10, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); } _card.Card.CardStatus = CardStatus.Closed; _card.Card.CloseDate = today; _db.Entry(_card.Card).State = System.Data.Entity.EntityState.Modified; _db.CardLogs.Add(new CardLog() { CardId = _card.Card.Id, Date = today, Status = CardLogStatus.Close, UserId = 1 }); } } } } if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), _card.Card.CloseDate.AddHours(-4), _card.Card.FinishDate.AddHours(-4), true)) //if (!_socket.SendEntitlementRequest(Convert.ToInt32(_card.Card.CardNum), _card.CasIds.ToArray(), DateTime.SpecifyKind(_card.Card.CasDate, DateTimeKind.Utc), false)) { _db.ChargeCrushLogs.Add(new ChargeCrushLog { Date = today, CardNum = _card.Card.CardNum, ChargeCrushLogType = ChargeCrushLogType.EntitlementClose, Text = "ბარათი: " + _card.Card.CardNum + ";" + _card.Card.AbonentNum }); } //miniSMS sendMiniSMS.SaveMiniSMSData(Convert.ToInt32(_card.Card.CardNum), _card.Card.Id, _card.CasIds.ToArray(), _card.Card.CloseDate.AddHours(-4), _card.Card.FinishDate.AddHours(-4), (int)CardStatus.Active, true, (int)StatusMiniSMS.Charges); if (_card.Card.CardStatus == CardStatus.Active && _card.CustomerType != CustomerType.Technic) //&& _card.CustomerType != CustomerType.Technic { //original code //decimal amount = (decimal)(_card.SubscribAmount / coeff); decimal amount = (decimal)(_card.SubscribAmount / coeff / Utils.Utils.divide_card_charge_interval); amount -= (amount * (decimal)_card.Card.Discount / 100); if (amount <= 0) { continue; } _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = amount, Tdate = today, Status = CardChargeStatus.Daily }); } } //if (has_s) //{ // Utils.Utils.SetFinishDate(_db, jurid_limit_months, _card.Card.Id); //} } _db.SaveChanges(); foreach (CardDetailData _card in _cards.Where(c => c.Card.CardStatus == CardStatus.Blocked)) { Subscribtion sb = _db.Subscribtions.Where(s => s.CardId == _card.Card.Id && s.Status == true).First(); List <SubscriptionPackage> sbp = _db.SubscriptionPackages.Include("Package").Where(s => s.SubscriptionId == sb.Id).ToList(); //Package package = _db.Packages.Where(p => p.Id == sbp.PackageId).First(); //if (_card.CustomerType != CustomerType.Juridical) { if (sbp.Any(p => p.Package.RentType == RentType.rent)) { _db.CardCharges.Add(new CardCharge() { CardId = _card.Card.Id, Amount = Math.Round((decimal)0.10, 2), Tdate = DateTime.Now, Status = CardChargeStatus.PenDaily }); } } } _db.SaveChanges(); _socket.Disconnect(); tran.Commit(); Task.Run(async() => { await Utils.Utils.sendMessage(_db.Customers.Where(c => c.Code == "01025019391").FirstOrDefault().Phone1, "daricxva - " + DateTime.Now.ToString()); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("598733767", "daricxva - " + DateTime.Now.ToString()); }).Wait(); Task.Run(async() => { await Utils.Utils.sendMessage("593668668", "daricxva - " + DateTime.Now.ToString()); }).Wait(); //Utils.Utils.OnSendAutorizeSMS("599610949", "shesrulda", _params.First(p => p.Name == "SMSUsername").Value, _params.First(p => p.Name == "SMSPassword").Value); //Utils.Utils.OnSendAutorizeSMS("598894533", "shesrulda", _params.First(p => p.Name == "SMSUsername").Value, _params.First(p => p.Name == "SMSPassword").Value); } catch (Exception ex) { tran.Rollback(); Utils.Utils.ErrorLogging(ex, @"C:\DigitalTV\ChargeCardLog.txt"); File.AppendAllText(@"C:\DigitalTV\log.txt", "\r\n" + (ex.Message != null?ex.Message:"null") + "\r\n"); File.AppendAllText(@"C:\DigitalTV\log.txt", (ex.InnerException != null ? ex.InnerException.Message : "null") + "\r\n"); File.AppendAllText(@"C:\DigitalTV\log.txt", (ex.InnerException != null && ex.InnerException.InnerException != null ? ex.InnerException.InnerException.Message : "null") + ": Rollback at - " + DateTime.Now.ToString() + "\r\n"); File.AppendAllText(@"C:\DigitalTV\log.txt", "\r\n" + (ex.StackTrace != null ? ex.StackTrace : "null") + "\r\n"); using (DataContext _db_log = new DataContext()) { _db_log.ChargeCrushLogs.Add(new ChargeCrushLog { Date = DateTime.Now, CardNum = "", ChargeCrushLogType = ChargeCrushLogType.Crush, Text = (ex.Message != null ? ex.Message : "null") }); _db_log.SaveChanges(); } } } File.AppendAllText(@"C:\DigitalTV\log.txt", "\r\n end: " + DateTime.Now.ToString() + "\r\n"); } }
protected void but_chargeUsingCardId_Click(object sender, EventArgs e) { // determines selected card switch (dropdown_testCard.SelectedValue) { case "Visa01": expiryMonth = "06"; expiryYear = "2018"; cvv = "100"; cardNum = "4242424242424242"; break; case "Visa02": expiryMonth = "06"; expiryYear = "2017"; cvv = "956"; cardNum = "4543474002249996"; break; case "Master01": expiryMonth = "06"; expiryYear = "2017"; cvv = "257"; cardNum = "5436031030606378"; break; case "Amex01": expiryMonth = "06"; expiryYear = "2017"; cvv = "1051"; cardNum = "345678901234564"; break; case "Amex02": expiryMonth = "06"; expiryYear = "2018"; cvv = "1000"; cardNum = "378282246310005"; break; case "Diners01": expiryMonth = "06"; expiryYear = "2017"; cvv = "257"; cardNum = "30123456789019"; break; case "Jcb01": expiryMonth = "06"; expiryYear = "2018"; cvv = "100"; cardNum = "3530111333300000"; break; case "Discover01": expiryMonth = "06"; expiryYear = "2018"; cvv = "100"; cardNum = "6011111111111117"; break; default: expiryMonth = "06"; expiryYear = "2018"; cvv = "100"; cardNum = "4242424242424242"; break; } // Creates payload var cardRequestModel = new CardCharge() { AutoCapture = cb_autocap.Checked?"Y":"N", AutoCapTime = 0, Currency = tb_currency.Text, TrackId = "TRK12345", TransactionIndicator = "1", CustomerIp = "82.23.168.254", Description = "Ipad for Ebs travel", Value = tb_value.Text, Email = tb_custEmail.Text, Card = new CardCreate() { ExpiryMonth = expiryMonth, ExpiryYear = expiryYear, Cvv = cvv, Number = cardNum, Name = tb_custName.Text, BillingDetails = new Address() { AddressLine1 = "Flat 1", AddressLine2 = "Glading Fields", Postcode = "N16 2BR", City = "London", State = "Hackney", Country = "GB", Phone = new Phone() { CountryCode = "65", Number = "12345678" } } }, Descriptor = new BillingDescriptor() { City = tb_descriptorCity.Text, Name = tb_descriptorName.Text }, Products = new List <Product> { new Product() { Description = "item 1", Name = "item 1", Price = 33.5M, Quantity = 3, ShippingCost = 5.5M, Sku = "sku123" }, new Product() { Description = "item 2", Name = "item 2", Price = 31.5M, Quantity = 3, ShippingCost = 4.5M, Sku = "sku456" } }, Metadata = new Dictionary <string, string>() { { "extraInformation", "EBS travel" } }, Udf1 = "udf1 string", Udf2 = "udf2 string", Udf3 = "udf3 string", Udf4 = "udf4 string", Udf5 = "udf5 string" }; try { // Create APIClient instance with your secret key ckoAPIClient = new APIClient(); // Submit your request and receive an apiResponse HttpResponse <Charge> apiResponse = ckoAPIClient.ChargeService.ChargeWithCard(cardRequestModel); if (!apiResponse.HasError) { // Access the response object retrieved from the api var charge = apiResponse.Model; tb_chargeRsp.Text = String.Format("Status:\n {0}! \n\nCharge ID:\n {1} \n\nCustomerId:\n {2} \n\nCard Id:\n {3} \n\nLast 4 Card Numbers:\n {4} \n\nCharge Response:\n {5} \n\nJSON Response: \n {6}", charge.Status, charge.Id, charge.Card.CustomerId, charge.Card.Id, charge.Card.Last4, charge.ResponseMessage, apiResponse.FullJsonResponse); } else { // Api has returned an error object. You can access the details in the error property of the apiResponse. // apiResponse.error tb_chargeRsp.Text = string.Format("Event ID:\n{0} \n\nMessage:\n{1} \n\nError Code:\n{2} \n\nErrors:\n{3}", apiResponse.Error.EventId, apiResponse.Error.Message, apiResponse.Error.ErrorCode, apiResponse.Error.Errors); } } catch (Exception exc) { //... Handle exception } }
//确定 private void btnOk_Click(object sender, EventArgs e) { if (db.CardInfo.FirstOrDefault(x => x.CI_CardNo == id.Text) != null) { BathClass.printErrorMsg("已经发行卡号为" + id.Text + "的卡"); return; } bool st = false; var ct = db.MemberSetting.FirstOrDefault().cardType; if (ct == "SLE4442") { st = ICCard.destribute_card_4442(company_code, id.Text); } else if (ct == "M1") { st = ICCard.destribute_card_M1(company_code, id.Text); } else if (ct == "CT") { st = true; } if (!st) { return; } CardInfo m_Element = new CardInfo(); m_Element.CI_CardNo = id.Text; m_Element.CI_CardTypeNo = db.MemberType.FirstOrDefault(x => x.name == memberType.Text).id; m_Element.state = "入库"; db.CardInfo.InsertOnSubmit(m_Element); CardCharge cardCharge = new CardCharge(); cardCharge.CC_CardNo = m_Element.CI_CardNo; cardCharge.CC_ItemExplain = "售卡收"; if (money.Text != "") { cardCharge.CC_DebitSum = Convert.ToDouble(money.Text); } cardCharge.CC_LenderSum = 0; cardCharge.CC_InputOperator = LogIn.m_User.id.ToString(); cardCharge.CC_InputDate = DateTime.Now; db.CardCharge.InsertOnSubmit(cardCharge); //if (money.Text != "") //{ // int sale_money = find_card_sale(); // if (sale_money != 0) // { // //CardCharge cardChargeSale = new CardCharge(); // //cardChargeSale.CC_CardNo = m_Element.CI_CardNo; // //cardChargeSale.CC_ItemExplain = "优惠送"; // //cardChargeSale.CC_DebitSum = sale_money; // //cardChargeSale.CC_LenderSum = 0; // //cardChargeSale.CC_InputOperator = LogIn.m_User.id.ToString(); // //cardChargeSale.CC_InputDate = GeneralClass.Now; // //cardChargeSale.systemId = m_Seat.systemId; // //db.CardCharge.InsertOnSubmit(cardChargeSale); // BathClass.printInformation("送" + sale_money + "元"); // } // //CardSale cardSale = new CardSale(); // //cardSale.memberId = m_Element.CI_CardNo; // //cardSale.balance = 0; // //if (payType.Text == "现金") // //cardSale.cash = Convert.ToDouble(money.Text); // //else if (payType.Text == "银联") // //cardSale.bankUnion = Convert.ToDouble(money.Text); // //cardSale.payTime = GeneralClass.Now; // //cardSale.payEmployee = LogIn.m_User.id.ToString(); // //cardSale.macAddress = PCUtil.getMacAddr_Local(); // //db.CardSale.InsertOnSubmit(cardSale); // //var menu = db.Menu.FirstOrDefault(x => x.name == memberType.Text); // //Orders order = new Orders(); // //order.menu = menu.name; // //order.text = m_Seat.text; // //order.systemId = m_Seat.systemId; // //order.number = 1; // //order.inputTime = BathClass.Now(LogIn.connectionString); // //order.inputEmployee = LogIn.m_User.id.ToString(); // //order.paid = false; // //if (money.Text == "") // // order.money = menu.price; // //else // //order.money = Convert.ToDouble(money.Text); // //db.Orders.InsertOnSubmit(order); //} db.SubmitChanges(); //this.DialogResult = DialogResult.OK; id.Text = ""; money.Text = ""; }
public Task <HttpResponse <Charge> > ChargeWithCardAsync(CardCharge requestModel) { return(_apiHttpClient.PostRequest <Charge>(_configuration.ApiUrls.CardCharge, _configuration.SecretKey, requestModel)); }
// GET: RegulatorController public ActionResult Index(int?page) { if (!Utils.Utils.GetPermission("REGULATOR_SHOW")) { return(new RedirectResult("/abonent")); } DateTime dateFrom = DateTime.Now; DateTime dateTo = DateTime.Now; dateFrom = Utils.Utils.GetRequestDate(Request["dt_from"], true); dateTo = Utils.Utils.GetRequestDate(Request["dt_to"], false); ViewBag.dtFrom = dateFrom; ViewBag.dtTo = dateTo; DateTime dateFromDay = DateTime.Now; dateFromDay = dateFrom.AddHours((double)1); List <int> intss = new List <int>(); Double Dagger = 1.18; Double Dagger_018 = 0.18; PacksChargesRent packs_charges_rent = new PacksChargesRent(); using (DataContext _db = new DataContext()) { ViewBag.ReCardAbonentPackgulatorActive = "active"; var CardAbonentPack = _db.Cards.Include("CardLogs").Include("CardCharges").Include("Customer").Include("Subscribtions.SubscriptionPackages.Package").Where(c => c.CardCharges.Any(cc => cc.Tdate >= dateFrom && cc.Tdate <= dateTo)).ToList(); decimal share15price = (decimal)_db.Packages.Where(s => s.Price == 15).FirstOrDefault().Price; decimal share12price = (decimal)_db.Packages.Where(s => s.Name == "სტანდარტი").FirstOrDefault().Price; decimal share8price = (decimal)_db.Packages.Where(p => p.Name == "აქცია 8").FirstOrDefault().Price; decimal share6price = (decimal)_db.Packages.Where(p => p.Name == "თანამშრომელი").FirstOrDefault().Price; int service_days = Convert.ToInt32(_db.Params.First(p => p.Name == "ServiceDays").Value); decimal Caharges15 = Math.Round((decimal)(share15price / (decimal)service_days), 2); decimal Caharges12 = Math.Round((decimal)(share12price / (decimal)service_days), 2); decimal Caharges8 = Math.Round((decimal)(share8price / (decimal)service_days), 2); decimal Caharges6 = Math.Round((decimal)(share6price / (decimal)service_days), 2); var pack15BackActive = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges15 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Physical).ToList(); var pack12BackActive = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges12 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Physical).ToList(); var pack8BackActive = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges8 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Physical).ToList(); var pack6BackActive = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges6 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Physical).ToList(); int Repetition = 0; var AbonentPack = CardAbonentPack.Where(c => c.CardLogs.Any(cc => cc.Date >= dateFrom && cc.Date <= dateTo && cc.Status == CardLogStatus.Open) && c.Customer.Type == CustomerType.Physical).ToList(); var newabonent = CardAbonentPack.Where(c => c.CardLogs.Any(cc => cc.Date >= dateFrom && cc.Date <= dateTo && cc.Status == CardLogStatus.Montage) && c.Customer.Type == CustomerType.Physical).ToList(); int count15 = 0, count12 = 0, count6 = 0, count8 = 0; var packs8 = pack15BackActive.Where(c => c.Subscribtions.Any(sb => sb.Tdate >= dateFrom && sb.Tdate <= dateTo && sb.SubscriptionPackages.Any(s => s.Package.Id == 304085))).ToList(); count8 += packs8.Count; int _count8 = packs8.Count; List <Card> CardsAbonent = new List <Card>(); foreach (var item in AbonentPack) { var pack = item.CardLogs.Where(c => c.Date >= dateFrom && c.Date <= dateTo).OrderBy(l => l.Date).ToList(); if (pack != null && pack.Count() > 0) { if (pack[pack.Count() - 1].Status == CardLogStatus.Open) { if (pack15BackActive.Contains(item) || pack12BackActive.Contains(item) || pack8BackActive.Contains(item) || pack6BackActive.Contains(item)) { } else { CardsAbonent.Add(item); DateTime chargetime = new DateTime(pack[pack.Count() - 1].Date.Year, pack[pack.Count() - 1].Date.Month, pack[pack.Count() - 1].Date.Day, 0, 1, 0); chargetime = chargetime.AddDays(1); CardCharge charge = item.CardCharges.Where(c => c.Tdate == chargetime).FirstOrDefault(); if (charge != null) { decimal chargeCoeff = Math.Round(charge.Amount, 2); if (chargeCoeff == Caharges15) { if (item.Subscribtions.Any(sb => sb.Tdate >= dateFrom && sb.Tdate <= dateTo && sb.SubscriptionPackages.Any(s => s.Package.Id == 304085))) { count8++; } else { count15++; } } if (chargeCoeff == Caharges12) { count12++; } if (chargeCoeff == Caharges6) { count6++; } if (chargeCoeff == Caharges8) { count8++; } } else { decimal packprice = (decimal)item.Subscribtions.Where(s => s.Status == true).FirstOrDefault().SubscriptionPackages.Sum(s => s.Package.Price); decimal coeff = Math.Round((decimal)(packprice / (decimal)service_days), 2); if (coeff == Caharges15) { count15++; } if (coeff == Caharges12) { count12++; } if (coeff == Caharges6) { count6++; } if (coeff == Caharges8) { count8++; } } } } } } ViewBag.StandardNewAbonent = newabonent.Count();// pack15newAbonent.Count() + pack12newAbonent.Count()+ pack6newAbonent.Count(); ViewBag.RegionNewAbonent = 0; // იურდიული var pack15BackActiveJuridical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges15 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Juridical).ToList(); var pack12BackActiveJuridical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges12 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Juridical).ToList(); var pack8BackActiveJuridical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges8 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Juridical).ToList(); // var pack6BackActiveJuridical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => Math.Round(cc.Amount, 2) == Caharges6 && cc.Tdate >= dateFrom && cc.Tdate <= dateFromDay && cc.Status == CardChargeStatus.Daily) && c.Customer.Type == CustomerType.Juridical).ToList(); var AbonentPackJuridical = CardAbonentPack.Where(c => c.CardLogs.Any(cc => cc.Date >= dateFrom && cc.Date <= dateTo && cc.Status == CardLogStatus.Open) && c.Customer.Type == CustomerType.Juridical).ToList(); var newabonentJuridical = CardAbonentPack.Where(c => c.CardLogs.Any(cc => cc.Date >= dateFrom && cc.Date <= dateTo && cc.Status == CardLogStatus.Montage) && c.Customer.Type == CustomerType.Juridical).ToList(); int count15Juridical = 0, count12Juridical = 0, count8Juridical = 0; var packs8Juridical = pack15BackActiveJuridical.Where(c => c.Subscribtions.Any(sb => sb.Tdate >= dateFrom && sb.Tdate <= dateTo && sb.SubscriptionPackages.Any(s => s.Package.Id == 304085))).ToList(); count8Juridical += packs8Juridical.Count; int _count8Juridical = packs8Juridical.Count; List <Card> CardsAbonentJuridical = new List <Card>(); foreach (var item in AbonentPackJuridical) { var pack = item.CardLogs.Where(c => c.Date >= dateFrom && c.Date <= dateTo).OrderBy(l => l.Date).ToList(); if (pack != null && pack.Count() > 0) { if (pack[pack.Count() - 1].Status == CardLogStatus.Open) { if (pack15BackActiveJuridical.Contains(item) || pack12BackActiveJuridical.Contains(item) || pack8BackActiveJuridical.Contains(item)) { } else { //CardsAbonent.Add(item); DateTime chargetime = new DateTime(pack[pack.Count() - 1].Date.Year, pack[pack.Count() - 1].Date.Month, pack[pack.Count() - 1].Date.Day, 0, 1, 0); chargetime = chargetime.AddDays(1); CardCharge charge = item.CardCharges.Where(c => c.Tdate == chargetime).FirstOrDefault(); if (charge != null) { decimal chargeCoeff = Math.Round(charge.Amount, 2); if (chargeCoeff == Caharges15) { if (item.Subscribtions.Any(sb => sb.Tdate >= dateFrom && sb.Tdate <= dateTo && sb.SubscriptionPackages.Any(s => s.Package.Id == 304085))) { count8Juridical++; } else { count15Juridical++; } } if (chargeCoeff == Caharges12) { count12Juridical++; } if (chargeCoeff == Caharges8) { count8Juridical++; } } else { decimal packprice = (decimal)item.Subscribtions.Where(s => s.Status == true).FirstOrDefault().SubscriptionPackages.Sum(s => s.Package.Price); decimal coeff = Math.Round((decimal)(packprice / (decimal)service_days), 2); if (coeff == Caharges15) { count15Juridical++; } if (coeff == Caharges12) { count12Juridical++; } if (coeff == Caharges8) { count8Juridical++; } } } } } } foreach (var item in AbonentPackJuridical) { var pack = item.CardLogs.Where(c => c.Date >= dateFrom && c.Date <= dateTo).OrderBy(l => l.Date).ToList(); if (pack != null && pack.Count() > 0) { if (pack[pack.Count() - 1].Status == CardLogStatus.Open) { if (pack15BackActiveJuridical.Contains(item) || pack12BackActiveJuridical.Contains(item) || pack8BackActiveJuridical.Contains(item)) { } else { CardsAbonentJuridical.Add(item); } } } } var pack15Juridical = CardsAbonentJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Price == 15)).Select(c => c).ToList(); var pack12Juridical = CardsAbonentJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "სტანდარტი")).Select(c => c).ToList(); var pack8Juridical = CardsAbonentJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "აქცია 8")).Select(c => c).ToList(); //var pack6Juridical = CardsAbonentJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "თანამშრომელი")).Select(c => c).ToList(); ViewBag.Standard = pack15BackActive.Count() - _count8 + pack12BackActive.Count() + pack6BackActive.Count() + count15 + count12 + count6; ViewBag.StandardNewAbonent = newabonent.Count(); ViewBag.Region = pack8BackActive.Count() + count8; ViewBag.RegionJuridical = pack8BackActiveJuridical.Count() + count8Juridical; ViewBag.StandardJuridical = pack15BackActiveJuridical.Count() - _count8Juridical + pack12BackActiveJuridical.Count() + count15Juridical + count12Juridical; ViewBag.StandardNewAbonentJuridical = newabonentJuridical.Count(); List <Card> cardsPhysical = null; List <Card> cardsJuridical = null; PacksCharges packs_charges = new PacksCharges(); PacksChargesCoeff packs_charges_coeff = new PacksChargesCoeff(); PacksExcept packs_execept = new PacksExcept(); cardsPhysical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => cc.Tdate >= dateFrom && cc.Tdate <= dateTo) && c.Customer.Type == CustomerType.Physical).ToList(); var packemployee = cardsPhysical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "თანამშრომელი")).Select(c => c).ToList(); var pack12 = cardsPhysical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "სტანდარტი")).Select(c => c).ToList(); var pack8 = cardsPhysical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "აქცია 8")).Select(c => c).ToList(); var pack15 = cardsPhysical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Price == 15)).Select(c => c).ToList(); var packexpect = packs_execept.Packs_Except_Charges(pack8, pack15, dateTo); pack8 = packexpect.packs8; pack15 = packexpect.packs15; var employee6 = packs_charges_coeff.PacksCardsChargesCoeff(packemployee, dateFrom, dateTo, share6price, service_days);//packs_charges.PacksCardsCharges(packemployee, dateFrom, dateTo); var paketphysical_8 = packs_charges.PacksCardsCharges(pack8, dateFrom, dateTo); var pack8charg = packs_charges_coeff.PacksCardsChargesCoeff(pack8, dateFrom, dateTo, share8price, service_days); var pack8sum15 = paketphysical_8 - pack8charg; var pack12charg = packs_charges.PacksCardsCharges(pack12, dateFrom, dateTo); var pack15charg = packs_charges.PacksCardsCharges(pack15, dateFrom, dateTo); var pack15coeffcharg = packs_charges_coeff.PacksCardsChargesCoeff(pack15, dateFrom, dateTo, share15price, service_days); pack8charg = pack8charg + (pack15charg - pack15coeffcharg); pack15charg = pack15coeffcharg + pack8sum15; var PhysicalContraqt = pack12.Where(c => c.CardLogs.Any(cc => cc.Status == CardLogStatus.Montage && cc.Date >= dateFrom && cc.Date <= dateTo)).ToList(); // იურდიული პირები cardsJuridical = CardAbonentPack.Where(c => c.CardCharges.Any(cc => cc.Tdate >= dateFrom && cc.Tdate <= dateTo) && c.Customer.Type == CustomerType.Juridical).ToList(); var pack8_Juridical = cardsJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "აქცია 8")).Select(c => c).ToList(); var pack15_Juridical = cardsJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Price == 15)).Select(c => c).ToList(); var packexpectJuridical = packs_execept.Packs_Except_Charges(pack8_Juridical, pack15_Juridical, dateTo); pack8_Juridical = packexpectJuridical.packs8; pack15_Juridical = packexpectJuridical.packs15; var packsphysical_8Juridical = packs_charges.PacksCardsCharges(pack8_Juridical, dateFrom, dateTo); var pack8chargJuridical = packs_charges_coeff.PacksCardsChargesCoeff(pack8_Juridical, dateFrom, dateTo, share8price, service_days); var pack8sum15Juridical = packsphysical_8Juridical - pack8chargJuridical; var pack12_Juridical = cardsJuridical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "სტანდარტი")).Select(c => c).ToList(); var pack12chargJuridical = packs_charges.PacksCardsCharges(pack12_Juridical, dateFrom, dateTo); var pack15chargJuridical = packs_charges.PacksCardsCharges(pack15_Juridical, dateFrom, dateTo); //pack15statusJuridical.Select(c => c.Where(cc => cc.Tdate >= dateFrom && cc.Tdate <= dateTo).Select(s => s.Amount).Sum()).Sum(); var pack15coeffchargJuridical = packs_charges_coeff.PacksCardsChargesCoeff(pack15_Juridical, dateFrom, dateTo, share15price, service_days); //pack15coeffJuridical.Select(c => c.Where(cc => cc.Tdate >= dateFrom && cc.Tdate <= dateTo).Select(s => s.Amount).Sum()).Sum(); pack8chargJuridical = pack8chargJuridical + (pack15chargJuridical - pack15coeffchargJuridical); pack15chargJuridical = pack15coeffchargJuridical + pack8sum15Juridical; var JuridicalContraqt = pack12_Juridical.Where(c => c.CardLogs.Any(cc => cc.Status == CardLogStatus.Montage && cc.Date >= dateFrom && cc.Date <= dateTo)).ToList(); //ViewBag.StandardPacks_income = Math.Round((double)((pack12charg) + (pack15charg - (pack15charg * (20m / 100m))) + ((employee6 - (employee6 * (50m / 100m))) * 3)) / Dagger, 2); //ViewBag.StandardPacks_incomeDagger = Math.Round((double)ViewBag.StandardPacks_income * Dagger_018, 2); //ViewBag.RegionPacks = Math.Round((double)(pack8charg - (pack8charg * (37.5m / 100m))) / Dagger, 2); //ViewBag.RegionPacksDangger = Math.Round((double)ViewBag.RegionPacks * Dagger_018, 2); //ViewBag.StandardPacks_income_Jurdical = Math.Round((double)((pack12chargJuridical) + (pack15chargJuridical - (pack15chargJuridical * (20m / 100m)))) / Dagger, 2); //ViewBag.StandardPacks_income_JurdicalDagger = Math.Round((double)ViewBag.StandardPacks_income_Jurdical * Dagger_018, 2); //ViewBag.RegionPacksJuridical = Math.Round((double)(pack8chargJuridical - (pack8chargJuridical * (37.5m / 100m))) / Dagger, 2); //ViewBag.RegionPacksJuridicalDangger = Math.Round((double)ViewBag.RegionPacksJuridical * Dagger_018, 2); //////////////////////////////////////////////////////////////////////////////////////////////////////// //თანამშრომელი //var packemployee = cardsPhysical.Where(c => c.Subscribtions.Where(s => s.Status == true).First().SubscriptionPackages.Any(s => s.Package.Name == "თანამშრომელი")).Select(c => c).ToList(); //var employee6 = packs_charges_coeff.PacksCardsChargesCoeff(packemployee, dateFrom, dateTo, share6price, service_days); //var packsRent6Sum = packs_charges_rent.PacksCardsChargesRent(packemployee, dateFrom, dateTo); //employee6 = (employee6 - packsRent6Sum); var emploe6 = (employee6 - (employee6 * (50m / 100m))) + ((employee6 - (employee6 * (50m / 100m))) * 4); ViewBag.StandardPacks_income = Math.Round((double)((pack12charg) + (pack15charg) + (emploe6) + (PhysicalContraqt.Count() * 87)) / Dagger, 2); ViewBag.StandardPacks_incomeDagger = Math.Round((double)ViewBag.StandardPacks_income * Dagger_018, 2); ViewBag.RegionPacks = Math.Round((double)(pack8charg) / Dagger, 2); ViewBag.RegionPacksDangger = Math.Round((double)ViewBag.RegionPacks * Dagger_018, 2); ViewBag.StandardPacks_income_Jurdical = Math.Round((double)((pack12chargJuridical) + (pack15chargJuridical) + (JuridicalContraqt.Count() * 87)) / Dagger, 2); ViewBag.StandardPacks_income_JurdicalDagger = Math.Round((double)ViewBag.StandardPacks_income_Jurdical * Dagger_018, 2); ViewBag.RegionPacksJuridical = Math.Round((double)(pack8chargJuridical) / Dagger, 2); ViewBag.RegionPacksJuridicalDangger = Math.Round((double)ViewBag.RegionPacksJuridical * Dagger_018, 2); } return(View()); }
public HttpResponse <Charge> ChargeWithCard(CardCharge requestModel) { return(_chargeServiceAsync.ChargeWithCardAsync(requestModel).Result); }