public IViewComponentResult Invoke(int id) { try { var allBank = _bankService.GetBankAlls(); var listaBancos = new List <SelectListItem>(); var allBankReceiver = _bankService.GetBankReceiver(); var listaBancosReceiver = new List <SelectListItem>(); // verificamos que la orden no tenga transferencia registrada var transfer = _transferService.GetPaymentTransferByOrderId(id); var model = new PaymentInfoModel(); if (transfer != null) { // preparamos el modelo para el mostrar. listaBancosReceiver.Clear(); listaBancos.Clear(); //var bank = allBankReceiver.Cast<Bank>().SingleOrDefault(i => i.Id.Equals(Convert.ToInt32(transfer.ReceiverBankId))); //if (bank != null){ // listaBancosReceiver.Add(new SelectListItem { Text = bank.Name +" - "+ bank.AccountNumber, Value = bank.Id.ToString()}); //} //var bank2 = allBank.Cast<Bank>().SingleOrDefault(i => i.Id.Equals(Convert.ToInt32(transfer.IssuingBankId))); //{ // listaBancos.Add(new SelectListItem { Text = bank2.Name, Value = bank2.Id.ToString() }); //} foreach (var bank in allBankReceiver) { listaBancosReceiver.Add(new SelectListItem { Text = bank.Name + " - " + bank.AccountNumber, Value = bank.Id.ToString() }); } foreach (var bank in allBank) { listaBancos.Add(new SelectListItem { Text = bank.Name, Value = bank.Id.ToString() }); } model = new PaymentInfoModel { IdPayment = transfer.Id, NroOrden = transfer.OrderId, BancoEmisor = listaBancos, BancoReceptor = listaBancosReceiver, BancoEmisorId = transfer.IssuingBankId.ToString(), BancoReceptorId = transfer.ReceiverBankId.ToString(), Referencia = transfer.ReferenceNumber, StatusPayment = transfer.PaymentStatusOrder }; } else { // Creamos el modelo para el registrar. listaBancosReceiver.Clear(); listaBancos.Clear(); foreach (var bank in allBankReceiver) { listaBancosReceiver.Add(new SelectListItem { Text = bank.Name + " - " + bank.AccountNumber, Value = bank.Id.ToString() }); } foreach (var bank in allBank) { listaBancos.Add(new SelectListItem { Text = bank.Name, Value = bank.Id.ToString() }); } model.BancoEmisor = listaBancos; model.BancoReceptor = listaBancosReceiver; model.NroOrden = id; } return(View("~/Plugins/Payments.ConsolidatePayment/Views/RegisterPaymentTransfer.cshtml", model)); } catch (Exception ex) { throw new NopException(ex.Message, ex); } }
public void InsertPayment(Consolidate payment) { try { if (payment == null) { throw new ArgumentNullException(nameof(payment)); } var order2 = _orderService.GetOrderById(payment.OrdenId); if (order2 == null) { throw new ArgumentNullException(nameof(payment.OrdenId)); } // datos de la orden payment.MetodoPago = order2.PaymentMethodSystemName; payment.CodigoMoneda = order2.CustomerCurrencyCode; payment.TiendaId = order2.StoreId; payment.ClienteId = order2.CustomerId; payment.StatusPaymentOrder = order2.PaymentStatusId; switch (payment.MetodoPago) { case "Payments.Transfer": { try { var paymentTransfer = _transferServices.GetPaymentTransferByOrderId(payment.OrdenId); payment.BancoEmisor = _bankServices.GetBankById(payment.BancoEmisorId).Name; payment.BancoReceptor = payment.BancoEmisor; var mnt = order2.OrderTotal; payment.MontoTotalOrden = mnt.ToString("N", new CultureInfo("es-VE")); if (paymentTransfer == null) { var model = new PaymentTransfer { IssuingBankId = payment.BancoEmisorId, OrderId = payment.OrdenId, ReceiverBankId = payment.BancoReceptorId, ReferenceNumber = payment.Referencia, OrderTotal = order2.OrderTotal }; _transferServices.InsertPaymentTransfer(model); } else { UpdatePayment(payment); } } catch (Exception ex) { throw new NopException("Error en insert transferencia: " + ex.Message, ex); } break; } default: { try { var paymentZelle = _zelleServices.GetPaymentZelleByOrderId(payment.OrdenId); if (paymentZelle == null) { var model = new PaymentZelle { IssuingEmail = payment.EmailEmisor, OrderId = payment.OrdenId, ReferenceNumber = payment.Referencia, OrderTotal = order2.OrderTotal * order2.CurrencyRate }; _zelleServices.InsertPaymentZelle(model); } else { UpdatePayment(payment); } var mnto = order2.OrderTotal * order2.CurrencyRate; payment.MontoTotalOrden = mnto.ToString("N", new CultureInfo("es-VE")); //paymentZelle.PaymentStatusOrder = (int)order2.PaymentStatus; //_zelleServices.UpdatePaymentZelle(paymentZelle); } catch (Exception ex) { throw new NopException("Error en insert zelle: " + ex.Message, ex); } break; } } if (payment.Id == 0) { _paymentRepository.Insert(payment); } _cacheManager.RemoveByPattern(PAYMENT_PATTERN_KEY); } catch (Exception ex) { throw new NopException("Error al insertar el pago: " + ex.Message, ex); } }