Exemplo n.º 1
0
        public CreditPayment GetEDCPaymentObject(int EDCCreditID, string createdBy, DateTime logDate)
        {
            var result = new CreditPayment();

            using (DBClass = new MSSQLDatabase())
            {
                var cmd = DBClass.GetStoredProcedureCommand("APP_GET_EDC_PAYMENT") as SqlCommand;
                DBClass.AddSimpleParameter(cmd, "@SalesCreditId", EDCCreditID);
                var reader = DBClass.ExecuteReader(cmd);
                while (reader.Read())
                {
                    result.BankLogObject = new BankLogObject
                    {
                        CashBankID   = int.Parse(reader[0].ToString()),
                        Description  = string.Format("Pelunasan pembayaran via EDC oleh {0}", reader[3]),
                        Deposit      = decimal.Parse(reader[1].ToString()),
                        Withdraw     = 0,
                        SalesVoucher = reader[2].ToString(),
                        Note         = "",
                        CreatedBy    = createdBy,
                        CreatedDate  = logDate
                    };
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        public IEnumerable <CreditPayment> GetSalesCreditPayment(int salesID)
        {
            var result = new List <CreditPayment>();

            using (DBClass = new MSSQLDatabase())
            {
                var cmd = DBClass.GetStoredProcedureCommand("APP_GET_SALES_CREDIT_PAYMENT") as SqlCommand;
                DBClass.AddSimpleParameter(cmd, "@SalesId", salesID);
                var reader = DBClass.ExecuteReader(cmd);
                while (reader.Read())
                {
                    var payment = new CreditPayment
                    {
                        CreditPaymentID   = int.Parse(reader[0].ToString()),
                        CreditPaymentType = int.Parse(reader[1].ToString()),
                        CashLogObject     = new CashLogObject
                        {
                            DepartementID = int.Parse(reader[2].ToString()),
                            CashID        = string.IsNullOrEmpty(reader[3].ToString()) ? 0 : int.Parse(reader[3].ToString()),
                            SalesVoucher  = reader[5].ToString(),
                            CreatedDate   = DateTime.Parse(reader[6].ToString())
                        },
                        BankLogObject = new BankLogObject
                        {
                            CashBankID   = string.IsNullOrEmpty(reader[4].ToString()) ? 0 : int.Parse(reader[4].ToString()),
                            SalesVoucher = reader[5].ToString(),
                            CreatedDate  = DateTime.Parse(reader[6].ToString())
                        }
                    };
                    result.Add(payment);
                }
            }
            return(result);
        }
 public void CreatePayment(CreditPayment creditPayment)
 {
     using (var context = new FinanceEntities())
     {
         context.CreditPayment.Add(creditPayment);
         context.SaveChanges();
     }
 }
Exemplo n.º 4
0
        private void OpenCreditDialog()
        {
            CreditPayment cp = Dialogs.GetCreditPayment(double.Parse(LeftToPay.ToString()));

            if (cp != null)
            {
            }
        }
Exemplo n.º 5
0
 /// <summary>
 /// Конструктор
 /// </summary>
 /// <param name="creditPayment">Оплата</param>
 public PaymentRow(CreditPayment creditPayment)
 {
     this.Guid         = creditPayment.Guid;
     this.PaymentDate  = creditPayment.PaymentDate;
     this.Type         = ControllerResources.OrderPayControl_CreditPaymentType;
     this.Amount       = creditPayment.Amount;
     this.DocumentName = creditPayment.DocumentName;
 }
Exemplo n.º 6
0
        public async Task <PaymentResponceDto> SubmitPaymentAsync(CreditPayment body)
        {
            try
            {
                var currency = await _currenciesRepository.FirstOrDefaultAsync(body.UserData.UserPaymentData.CurrencyId);

                if (currency == null)
                {
                    throw new UserFriendlyException(L("CurrencyNotFound"));
                }

                StripeConfiguration.SetApiKey(StripeApiKey);


                var chargeOptions = new StripeChargeCreateOptions()
                {
                    Amount = Convert.ToInt32(body.UserData.UserPaymentData.Amount) * 100,
                    //TODO old Currency = body.UserData.UserPaymentData.CurrentType,
                    Currency    = currency.Code,
                    Description = "Charge for " + body.UserData.FirstName + " " + body.UserData.LastName,
                    SourceTokenOrExistingSourceId = body.PaymentData.Id
                };

                var transaction = _transactionRepository.GetAll().LastOrDefault(tran => tran.AmountDue == body.UserData.UserPaymentData.Amount &&
                                                                                tran.TransactionStatus == TransactionStatusEnum.Commited &&
                                                                                tran.UserId == body.UserData.UserPaymentData.UserId);

                var          chargeService = new StripeChargeService();
                StripeCharge charge        = chargeService.Create(chargeOptions);
                if (charge.Status.Equals("succeeded"))
                {
                    if (transaction != null)
                    {
                        transaction.TransactionStatus = TransactionStatusEnum.Paid;
                        await _transactionRepository.UpdateAsync(transaction);
                    }
                    await SavePaymentDataAsync(charge, body.UserData.UserPaymentData.UserId);
                }
                return(new PaymentResponceDto
                {
                    Status = charge.Status
                });
            }
            catch (StripeException ex)
            {
                throw new UserFriendlyException(ex.Message);
            }
            catch (Exception ex)
            {
                throw new UserFriendlyException(ex.Message);
            }
        }
 public void SetUp()
 {
     _invalidCreditPayment = new CreditPayment();
     _validCreditPayment   = new CreditPayment
     {
         Amount        = 10,
         Currency      = "EUR",
         PaymentDate   = DateTime.Now,
         PaymentType   = PaymentType.AgencyAccount,
         Status        = PaymentStatus.Pending,
         Credit        = 100,
         AccountNumber = "41275323"
     };
 }
        public Task Process(string method, decimal amount)
        {
            var tEvent = new PaymentCreatedEvent();

            switch (method)
            {
            case "Cash":
                BasePayment cashPayment = new CashPayment();
                cashPayment.Execute(tEvent);
                break;

            case "Credit":
                BasePayment creditPayment = new CreditPayment();
                creditPayment.Execute(tEvent);
                break;
            }
            return(Task.CompletedTask);
        }
Exemplo n.º 9
0
        public static void CheckOut()
        {
            int userSelection = Validate.ParseIntFromString("How are you paying for your items today?\n1.Credit Card\n2.Cash\n3.PayPal\n4.Check\n", 1, 4);

            switch (userSelection)
            {
                case 1:
                    // credit card method
                    CreditPayment payment = new CreditPayment();
                    payment.GetPayment();
                    receipt.PaymentType = payment;
                    break;
                case 2:
                    // cash method
                    CashPayment cash = new CashPayment();
                    cash.GetPayment();
                    if(cash.Input < receipt.Total)
                    {
                        Console.WriteLine("Insufficient funds!");
                        CheckOut();
                        break;
                    }
                    cash.Change = cash.Input - receipt.Total;
                    receipt.PaymentType = cash;
                    break;
                case 3:
                    // paypal method
                    PayPalPayment payPal = new PayPalPayment();
                    payPal.GetPayment();
                    receipt.PaymentType = payPal;
                    break;
                case 4:
                    //check method
                    CheckPayment check = new CheckPayment();
                    check.GetPayment();
                    receipt.PaymentType = check;
                    break;
                default:
                    Validate.GetInput("Please select a valid payment method");
                    break;
            }
            
        }
Exemplo n.º 10
0
        /// <summary>
        /// Добавить оплату кредитом
        /// </summary>
        public void AddNewCreditPayment()
        {
            var creditPayment = new CreditPayment()
            {
                Guid            = Guid.NewGuid(),
                PaymentDate     = DateTime.Now,
                Amount          = _orderPayView.CreditAmount,
                BankId          = 1,
                BankProductId   = 1,
                BankOrderNumber = _orderPayView.CreditBankOrderNumber,
                CreditAmount    = _orderPayView.CreditAmount,
                InitialFee      = _orderPayView.CreditInitialFee,
                NameInOrder     = _orderPayView.CreditNameInOrder,
                DocumentName    = _orderPayView.CreditPathToFile
            };

            _creditPayments.Add(creditPayment);

            if (!string.IsNullOrWhiteSpace(creditPayment.DocumentName))
            {
                _orderDocuments.Add(new OrderDocument(creditPayment.DocumentName, _orderPayView.CreditFileStream));
            }

            var paymentRow = new PaymentRow(creditPayment);

            _orderPayView.AddPaymentToGrid(paymentRow);

            _orderPayView.CreditAmount          = 0;
            _orderPayView.CreditBank            = string.Empty;
            _orderPayView.CreditBankProduct     = string.Empty;
            _orderPayView.CreditBankOrderNumber = string.Empty;
            _orderPayView.CreditAmount          = 0;
            _orderPayView.CreditInitialFee      = 0;
            _orderPayView.CreditNameInOrder     = string.Empty;
            _orderPayView.CreditPathToFile      = string.Empty;
            _orderPayView.CreditScannerCode     = string.Empty;

            MainController.RecalculatePayment();
        }
Exemplo n.º 11
0
 public void SaveEDCPayment(CreditPayment payment, string createdBy)
 {
     using (DBClass = new MSSQLDatabase())
     {
         using (DbTransaction txn = DBClass.BeginTransaction())
         {
             try
             {
                 var cmd = DBClass.GetStoredProcedureCommand("APP_EDC_CREDIT_PAYMENT") as SqlCommand;
                 DBClass.AddSimpleParameter(cmd, "@SalesCreditId", payment.SalesCreditID);
                 DBClass.AddSimpleParameter(cmd, "@CreatedBy", createdBy);
                 DBClass.AddSimpleParameter(cmd, "@PaymentDate", payment.CreditPaymentDate);
                 DBClass.ExecuteNonQuery(cmd, txn);
                 txn.Commit();
             }
             catch (Exception)
             {
                 txn.Rollback();
                 throw;
             }
         }
     }
 }
Exemplo n.º 12
0
 public void SavePayment(CreditPayment payment, string createdBy)
 {
     using (DBClass = new MSSQLDatabase())
     {
         using (DbTransaction txn = DBClass.BeginTransaction())
         {
             try
             {
                 var cmd = DBClass.GetStoredProcedureCommand("APP_SAVE_NEW_SALES_CREDIT_PAYMENT") as SqlCommand;
                 DBClass.AddSimpleParameter(cmd, "@SalesCreditId", payment.SalesCreditID);
                 DBClass.AddSimpleParameter(cmd, "@SalesId", payment.SalesId);
                 DBClass.AddSimpleParameter(cmd, "@VoucherCode", payment.VoucherCode);
                 DBClass.AddSimpleParameter(cmd, "@PaymentType", payment.CreditPaymentType);
                 DBClass.AddSimpleParameter(cmd, "@Nominal", payment.Nominal);
                 DBClass.AddSimpleParameter(cmd, "@Note", payment.Note);
                 DBClass.AddSimpleParameter(cmd, "@PaymentDate", payment.CreditPaymentDate);
                 if (payment.CashBankID != null)
                 {
                     DBClass.AddSimpleParameter(cmd, "@CashBankId", payment.CashBankID);
                 }
                 if (payment.DepositSalesID != null)
                 {
                     DBClass.AddSimpleParameter(cmd, "@DepositSalesId", payment.DepositSalesID);
                 }
                 DBClass.AddSimpleParameter(cmd, "@CreatedBy", createdBy);
                 DBClass.ExecuteNonQuery(cmd, txn);
                 txn.Commit();
             }
             catch (Exception)
             {
                 txn.Rollback();
                 throw;
             }
         }
     }
 }
Exemplo n.º 13
0
        public IEnumerable <CreditPayment> GetSalesCreditPayments(int salesCreditID)
        {
            var result = new List <CreditPayment>();

            using (DBClass = new MSSQLDatabase())
            {
                var cmd = DBClass.GetStoredProcedureCommand("APP_GET_SALES_CREDIT_PAYMENTS") as SqlCommand;
                DBClass.AddSimpleParameter(cmd, "@SalesCreditId", salesCreditID);
                var reader = DBClass.ExecuteReader(cmd);
                while (reader.Read())
                {
                    var payment = new CreditPayment();
                    payment.VoucherCode       = reader[0].ToString();
                    payment.PaymentTypeString = reader[1].ToString();
                    payment.AccountNumber     = reader[2].ToString();
                    payment.VoucherCode       = reader[3].ToString();
                    payment.Nominal           = decimal.Parse(reader[4].ToString());
                    payment.CreditPaymentDate = DateTime.Parse(reader[5].ToString());
                    payment.Note = reader[6].ToString();
                    result.Add(payment);
                }
            }
            return(result);
        }
        /// <summary>Resolve current card entries to the rebuilt grid. Substitute for ViewState - can't use it for adding cards</summary>
        /// <param name="payments">List of current user entered payments</param>
        private void ResolvePayments()
        {
            var payments = GetPaymentInformation();

            if (null != payments && payments.Count > 0)
            {
                decimal totalDue = GetTotals().AmountDue;
                decimal runTotal = totalDue;
                PaymentInfoControl_KS thisItem = null;
                CreditPayment         pi       = null;
                foreach (DataListItem item in dataListCardInfo.Items)
                {
                    thisItem  = item.FindControl("creditPaymentInfo") as PaymentInfoControl_KS;
                    pi        = thisItem.PaymentInfo;
                    runTotal -= (!string.IsNullOrEmpty(pi.AuthorizationCode)) ? pi.Amount : 0;

                    if (pi.Amount > totalDue)
                    {
                        if (string.IsNullOrEmpty(pi.AuthorizationCode))
                        {
                            pi.Amount = 0;
                        }
                        else
                        {
                            thisItem.FlagAsOverage();
                        }
                    }
                }
                if (runTotal > 0)
                {
                    pi.Amount = runTotal;
                    thisItem.DisplayCard(dataListCardInfo.Items.Count ==
                                         HLConfigManager.Configurations.PaymentsConfiguration.MaxCardsToDisplay);
                }
            }
        }
 public async Task <bool> DeleteCreditPaymentAsync(CreditPayment payment)
 {
     return(await _baseRepository.DeleteEntityAsync(payment));
 }
Exemplo n.º 16
0
        public override bool Credit()
        {
            IPaymentCreditor creditor = new CreditPayment(null, _paymentManager);

            return(creditor.Credit(this));
        }
 public override bool Credit()
 {
     IPaymentCreditor creditor = new CreditPayment(null, _paymentManager);
     return creditor.Credit(this);
 }
        protected void OnAuthorizeAttempt(object sender, EventArgs e)
        {
            string xid        = XID.Value;
            string eci        = ECI.Value;
            string cavv       = CAVV.Value;
            string sessionKey = SessionKey.Value;
            string encData    = EncryptedData.Value;
            string cardNumber = CardNumber.Value;

            var item              = dataListCardInfo.Items[dataListCardInfo.Items.Count - 1].FindControl("creditPaymentInfo") as PaymentInfoControl_KS;
            var txtId             = item.FindControl("txtId") as TextBox;
            var txtAmount         = item.FindControl("txtAmount") as TextBox;
            var txtCardholderName = item.FindControl("txtCardholderName") as TextBox;
            var txtPaymentMethod  = item.FindControl("txtPaymentMethodType") as TextBox;
            var ddlCardType       = item.FindControl("ddlCardType") as DropDownList;
            var ddlInstallments   = item.FindControl("ddlInstallments") as DropDownList;
            var ddlBCPoints       = item.FindControl("ddlBCPoint") as DropDownList;

            CreditPayment thePayment = null;

            if (txtPaymentMethod.Text == "XMPI")
            {
                if (!string.IsNullOrEmpty((xid + eci + cavv)))
                {
                    var payment = new KoreaMPIPayment_V01();
                    payment.Amount = decimal.Parse(txtAmount.Text);
                    payment.AuthorizationMethod = AuthorizationMethodType.Online;
                    payment.Card = new CreditCard();
                    payment.Card.AccountNumber = cardNumber;
                    payment.Card.NameOnCard    = txtCardholderName.Text;
                    payment.Card.Expiration    = new DateTime(2049, 12, 31);
                    payment.Currency           = CurrencyType.KRW.Key;
                    payment.XID  = xid;
                    payment.CAVV = cavv;
                    payment.ECI  = eci;
                    var options = new PaymentOptions_V01();
                    options.NumberOfInstallments = int.Parse(ddlInstallments.SelectedValue);
                    payment.PaymentOptions       = options;
                    payment.AuthorizationCode    = "123456";
                    thePayment = payment;
                }
            }
            else
            {
                if (!string.IsNullOrEmpty((sessionKey + encData)))
                {
                    var payment = new KoreaISPPayment_V01();
                    payment.LineID = txtId.Text;
                    payment.Amount = decimal.Parse(txtAmount.Text);
                    payment.AuthorizationMethod = AuthorizationMethodType.Online;
                    payment.Card = new CreditCard();
                    payment.Card.AccountNumber = PaymentInfoProvider.VisaCardNumber;
                    payment.Card.NameOnCard    = txtCardholderName.Text;
                    payment.Card.Expiration    = new DateTime(2049, 12, 31);
                    payment.Currency           = HL.Common.ValueObjects.CurrencyType.KRW.Key;
                    payment.KvpEncryptedData   = encData;
                    // "sdfsdfhsdfgsdgfsdfgsdfgsdfgsdfgsdfgsdfgsdfg;jtrtgowrhgiwerhgifhgldkfjgvs;dofgjvsdfvhdfvhsldihvrlserhgew;jgdfgnkfvnkdzs,n.x,cbn"; // encData;
                    payment.KvpSessionKey = sessionKey;
                    // "yaoieyrboacryserivnpeiorugnpxm,posijfpxfbjzx;cvzx;c mzclvk nzkchvado;fjivga'dfivhjadofvhad;fvha;uisdvhasdcbx.vlkc;'vndgtohuwpsrotuywpergynbsactyserngisrcuyudrfhxonzisudhfbxaiufheowrhcfisdfuhvsdofihjv"; // sessionKey;
                    payment.BCTopPoints = int.Parse(ddlBCPoints.SelectedValue);
                    ;
                    var options = new PaymentOptions_V01();
                    options.NumberOfInstallments = int.Parse(ddlInstallments.SelectedValue) + payment.BCTopPoints;
                    payment.PaymentOptions       = options;
                    payment.AuthorizationCode    = "123456";
                    thePayment = payment;
                }
            }

            if (null != thePayment)
            {
                thePayment.Card.IssuingBankID = ddlCardType.SelectedItem.Text;
                thePayment.Address            = new Address_V01();

                if (string.IsNullOrEmpty(thePayment.AuthorizationCode))
                {
                    //lblCreditCardMessage.Text = GetLocalResourceObject("ValidateCardPaymentAuthFailedMessage") as string;
                }
                else
                {
                    var items = GetPaymentInformation();
                    var p     = (from c in items where c.LineID == thePayment.LineID select c);

                    if (p.Count() > 0)
                    {
                        int index = items.IndexOf(p.First());
                        items.RemoveAt(index);
                        items.Insert(index, thePayment);
                    }
                    else
                    {
                        items.Insert(0, thePayment);
                    }
                    SetPaymentInformation(items);

                    _CurrentPaymentsList        = GetCurrentCardsList();
                    dataListCardInfo.DataSource = _CurrentPaymentsList;
                    dataListCardInfo.DataBind();
                    ResolvePayments();
                    SetupGridRows();

                    var status = OrderCoveredStatus.PartiallyCovered;
                    var tot    =
                        (from c in _CurrentPaymentsList where !string.IsNullOrEmpty(c.AuthorizationCode) select c.Amount)
                        .Sum();
                    if (null != _orderTotals && tot == _orderTotals.AmountDue)
                    {
                        status = OrderCoveredStatus.FullyCovered;
                    }
                    OnCreditCardAuthenticated(thePayment, new CreditCardAuthenticationCompletedEventArgs(status));
                }
            }
        }
        public override List <Payment> GetPayments(ServiceProvider.OrderSvc.Address_V01 shippingAddress)
        {
            var paymentList = new List <Payment>();

            CheckForPaymentGatewayResponse();
            var choice = GetCurrentPaymentOption();

            switch (choice)
            {
            case PaymentOptionChoice.DirectDeposit:
            case PaymentOptionChoice.WireTransfer:
            case PaymentOptionChoice.PaymentGateway:
            {
                paymentList.Add(CreateDummyPayment(shippingAddress));
                break;
            }

            case PaymentOptionChoice.CreditCard:
            {
                var paymentInfo = GetCurrentPaymentInformation(_locale, _distributorId);

                foreach (GridViewRow row in gridViewCardInfo.Rows)
                {
                    var cardType       = row.FindControl("lblCardType") as Label;
                    var lblIssueNumber = row.FindControl("lblIssueNumber") as TextBox;
                    var txtCVV         = row.FindControl("txtCVV") as TextBox;
                    var txtAmount      = row.FindControl("txtAmount") as TextBox;
                    var id             = row.FindControl("cardID") as TextBox;
                    var payOption      = row.FindControl("txtOption") as TextBox;
                    var choice1        = row.FindControl("txtChoice1") as TextBox;
                    var choice2        = row.FindControl("txtChoice2") as TextBox;
                    var ddInstallments = (DropDownList)row.FindControl("drpInstallments");
                    var currentOptions = row.FindControl("lnkPaymentOptions") as LinkButton;
                    int cardID         = int.Parse(id.Text);
                    var ddBCPoints     = row.FindControl("drpUsePoints") as DropDownList;

                    decimal cardAmount;
                    if (decimal.TryParse(txtAmount.Text, out cardAmount) && cardID > 0)
                    {
                        var info = paymentInfo.Find(p => p.ID == cardID);

                        var thePayment = new CreditPayment();
                        if (info.CardType.Trim() == "국민카드" || info.CardType.Trim() == "비씨카드")
                        {
                            var payment = new KoreaISPPayment_V01();
                            payment.Amount = cardAmount;
                            payment.AuthorizationMethod = AuthorizationMethodType.Online;
                            payment.Card = new CreditCard();
                            payment.Card.AccountNumber = info.CardNumber;
                            payment.Card.NameOnCard    = (info.CardHolder.First.Trim() + " " + info.CardHolder.Last.Trim()).Trim();
                            payment.Card.Expiration    = info.Expiration;
                            payment.Card.CVV           = txtCVV.Text.Trim();
                            payment.Currency           = HLConfigManager.Configurations.CheckoutConfiguration.Currency.Trim();
                            payment.Address            = (null != info.BillingAddress) ? info.BillingAddress : shippingAddress;
                            payment.BCTopPoints        = info.CardType.Trim() == "국민카드" ? int.Parse(ddBCPoints.SelectedValue) : 0;
                            var options = new PaymentOptions_V01();
                            options.NumberOfInstallments = int.Parse(ddInstallments.SelectedValue) + payment.BCTopPoints;
                            payment.PaymentOptions       = options;
                            payment.KvpEncryptedData     = info.IssueNumber;
                            payment.Card.IssuingBankID   = info.CardType;
                            payment.KvpSessionKey        = "FA";

                            thePayment = payment;
                        }
                        else
                        {
                            var payment = new KoreaMPIPayment_V01();
                            payment.Amount = cardAmount;
                            payment.AuthorizationMethod = AuthorizationMethodType.Online;
                            payment.Card = new CreditCard();
                            payment.Card.AccountNumber = info.CardNumber;
                            payment.Card.NameOnCard    = (info.CardHolder.First.Trim() + " " + info.CardHolder.Last.Trim()).Trim();
                            payment.Card.Expiration    = info.Expiration;
                            payment.Card.CVV           = txtCVV.Text.Trim();
                            payment.Currency           = HLConfigManager.Configurations.CheckoutConfiguration.Currency.Trim();
                            payment.Address            = (null != info.BillingAddress) ? info.BillingAddress : shippingAddress;
                            var options = new PaymentOptions_V01();
                            options.NumberOfInstallments = int.Parse(ddInstallments.SelectedValue);
                            payment.PaymentOptions       = options;
                            payment.CAVV = info.IssueNumber;
                            payment.Card.IssuingBankID = info.CardType;
                            payment.ECI = "";
                            payment.XID = "FA";

                            thePayment = payment;
                        }

                        thePayment.ReferenceID = currentOptions.Text;
                        paymentList.Add(thePayment);
                    }
                }
                break;
            }
            }

            string currentKey = PaymentsConfiguration.GetCurrentPaymentSessionKey(_locale, _distributorId);

            Session[currentKey] = paymentList;
            return(paymentList);
        }