Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        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);
            }
        }