private void dataActores_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            int posicion;

            try
            {
                //Activamos el evento para saber los datos de la celda
                posicion = dataPeliculas.CurrentRow.Index;

                tID.Text             = dataPeliculas[0, posicion].Value.ToString();
                tTituloPelicula.Text = dataPeliculas[1, posicion].Value.ToString();

                dateFechaPelicula.Value = DateTime.Parse(dataPeliculas[3, posicion].Value.ToString());

                //Traemos la foto desde la base de datos utilizando como parametro el ID de la celda donde se hizo el click
                string  query = string.Format("Select * From Peliculas Where ID='{0}'", dataPeliculas[0, posicion].Value);
                DataSet data  = OperacionesBD.Ejecutar(query);

                byte[]       img          = (byte[])data.Tables[0].Rows[0]["Foto"];
                MemoryStream memoryStream = new MemoryStream(img);
                ComponenteImagenPeliculas.Image = Image.FromStream(memoryStream);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrio un error mientras se cargaban los datos, " +
                                "asegurese de que todos esten completos a la hora de seleccionarlos");
            }
        }
Exemplo n.º 2
0
        public ActionResult RetirarContrato()
        {
            System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Request.InputStream);
            string rawSendGridJSON        = reader.ReadToEnd();

            //Convertimos a json el resultado para facilitar el acceso
            //a sus propiedades
            JObject json = JObject.Parse(rawSendGridJSON);

            string idContrato = json.Properties().FirstOrDefault().Value.ToString();

            // Borrar los movimientos obtenidos de mambu en la BD Devengados
            OperacionesBD.BorrarMovimientosContratos(idContrato);

            //Borrar las amortizaciones obtenidas de mambu en la BD Devengados
            OperacionesBD.BorrarAmortizacionesContrato(idContrato);

            //Obtener cliente asociado al contrato
            string idCliente = OperacionesBD.ObtenerClienteContrato(idContrato);

            //Borrar el cliente
            OperacionesBD.BorrarCliente(idCliente);

            //Borrar el contrato
            OperacionesBD.BorrarContrato(idContrato);

            return(new HttpStatusCodeResult(200));
        }
        //Este metodo es para cuando hacemos click en una de las celdas, se llenen los textbox con los valores de dicha celda, es como un especie de seleccion
        private void dataActores_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            try
            {
                int posicion;
                posicion = dataActores.CurrentRow.Index;

                tID.Text             = dataActores[0, posicion].Value.ToString();
                tNombreActor.Text    = dataActores[1, posicion].Value.ToString();
                dateFechaActor.Value = DateTime.Parse(dataActores[2, posicion].Value.ToString());

                //Hacemos un query para traer la imagen desde la base de datos
                string  query = string.Format("Select * From Actores Where ID='{0}'", dataActores[0, posicion].Value);
                DataSet data  = OperacionesBD.Ejecutar(query);

                //Convertimos dicha imagen en un arreglo de bytes, y la mostramos.
                byte[]       img          = (byte[])data.Tables[0].Rows[0]["Foto"];
                MemoryStream memoryStream = new MemoryStream(img);
                ComponenteImagen.Image = Image.FromStream(memoryStream);
            }
            catch (Exception ex)
            {
                MessageBox.Show("Ocurrio un error mientras se cargaban los datos, " +
                                "asegurese de que todos esten completos a la hora de seleccionarlos");
            }
        }
Exemplo n.º 4
0
        private int EvaluarPeliculaGenero()
        {
            //Guardamos el indice del sexo seleccionado en el comboBox
            int    indiceComboBox     = cGeneroPelicula.SelectedIndex;
            string GeneroSeleccionado = cGeneroPelicula.GetItemText(cGeneroPelicula.Items[indiceComboBox]);

            //hacemos una consulta a la base de datos para saber el ID del genero que el usuario selecciono
            string  query = string.Format("Select * From Generos Where NombreGenero='{0}'", GeneroSeleccionado);
            DataSet data  = OperacionesBD.Ejecutar(query);
            int     ID    = Convert.ToInt32(data.Tables[0].Rows[0]["ID"]);

            return(ID);
        }
Exemplo n.º 5
0
        public string validarInicioSesion(Usuario usuario)
        {
            OperacionesBD bd       = new OperacionesBD();
            bool          consulta = bd.iniciarSesion(usuario);

            if (consulta)
            {
                return("../Formularios/VistaUsuario.aspx");
            }
            else
            {
                return("Login.aspx");
            }
        }
        private int EvaluarPeliculaGenero()
        {
            //Guardamos el indice del genero seleccionado en el comboBox
            int    indiceComboBox     = cGeneroPelicula.SelectedIndex;
            string GeneroSeleccionado = cGeneroPelicula.GetItemText(cGeneroPelicula.Items[indiceComboBox]);

            //Seleccionamos el Genero que el usuario selecciono, para enviarlo a la base de datos, debemos hacerlo asi
            //ya que lo que recibe la tabla es una fk del genero
            string  query = string.Format("Select * From Generos Where NombreGenero='{0}'", GeneroSeleccionado);
            DataSet data  = OperacionesBD.Ejecutar(query);
            int     ID    = Convert.ToInt32(data.Tables[0].Rows[0]["ID"]);

            return(ID);
        }
Exemplo n.º 7
0
        private async void btnNuevaPelicula_Click(object sender, EventArgs e)
        {
            try
            {
                //Hacemos una consulta nuevamente, para validar que no se ingrese una pelicula que ya existe
                string  comando          = string.Format($"select count(Titulo) as Conteo from Peliculas where Titulo='{tTituloPelicula.Text}'");
                DataSet data             = OperacionesBD.Ejecutar(comando);
                string  PeliculaRepetida = data.Tables[0].Rows[0]["Conteo"].ToString().Trim();

                if (int.Parse(PeliculaRepetida) > 0)
                {
                    //En caso de que exista
                    MessageBox.Show("El nombre de la pelicula que intenta ingresar ya existe");
                }
                else
                {
                    //Procesamos la imagen para enviarla a la base de datos como un arreglo de bytes
                    byte[] fotografia = ProcesarFoto.ProcesarImagen(ComponenteImagenPelicula);

                    //Mandamos los valores al metodo correspondiente
                    await ManejoPeliculas.NuevaPelicula(tTituloPelicula.Text, EvaluarPeliculaGenero(), dateFechaPelicula.Value, fotografia);

                    MessageBox.Show("Pelicula Agregada Correctamente");

                    //Limpiamos los campos y actualizamos los datos.
                    this.LimpiarCampos();
                    this.MostrarDatosPeliculas();
                }
            }
            catch (Exception ex)
            {
                errorProvider1.SetError(tTituloPelicula, "Ingresa el Titulo");
                errorProvider1.SetError(dateFechaPelicula, "Ingresa la fecha");
                errorProvider1.SetError(cGeneroPelicula, "Ingresa el Genero");
                errorProvider1.SetError(ComponenteImagenPelicula, "Ingresa la Foto");
                MessageBox.Show("NO Campos Vacios");
            }
        }
Exemplo n.º 8
0
        public ActionResult CancelarPagos()
        {
            System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Request.InputStream);
            string rawSendGridJSON        = reader.ReadToEnd();

            //Convertimos a json el resultado para facilitar el acceso
            //a sus propiedades
            JObject json = JObject.Parse(rawSendGridJSON);

            string idContrato = json.Properties().FirstOrDefault().Value.ToString();

            long contador = 0;

            List <Transaccion> transaccions = Operaciones.ObtenerTransacciones(idContrato);

            var contratosAgrupados = (from x in transaccions
                                      group x by new
            {
                x.parentAccountKey
            } into campos
                                      select new
            {
                idContrato = campos.Key.parentAccountKey
            });

            foreach (var valor in contratosAgrupados)
            {
                int numeroPago = 1;

                Loan contrato = Operaciones.ObtenerCuentaPrestamo(valor.idContrato);

                OperacionesBD.BorrarMovimientosContratos(contrato.id);

                // obtiene nuevamente las transacciones del contrato
                List <Transaccion> transaccionesNuevas = Operaciones.ObtenerTransacciones(Constantes.TRANSACTIONS_TYPE_DISBURSMENT, valor.idContrato).ToList();
                transaccionesNuevas.AddRange(Operaciones.ObtenerTransacciones(Constantes.TRANSACTIONS_TYPE_REPAYMENT, valor.idContrato).ToList());

                foreach (Transaccion transaccion in transaccionesNuevas)
                {
                    Movimiento movimiento = new Movimiento();

                    string existeMovimiento = Negocio.OperacionesBD.ExisteTransaccion(transaccion.transactionId);

                    if (transaccion.type.Equals("REPAYMENT"))
                    {
                        movimiento.codigo = "PAGO";
                    }
                    else if (transaccion.type.Equals("DISBURSMENT"))
                    {
                        movimiento.codigo = "DESEMBOLSO";
                    }
                    else if (transaccion.type.Equals(Negocio.Globales.Constantes.ESTATUS_WRITE_OFF))
                    {
                        movimiento.codigo = "CASTIGO";
                    }
                    else
                    {
                        movimiento.codigo = "";
                    }
                    movimiento.fechaMovimiento = DateTime.Parse(transaccion.creationDate);
                    movimiento.fechaValor      = DateTime.Parse(transaccion.entryDate);
                    movimiento.idContrato      = contrato.id;
                    movimiento.idTransaccion   = transaccion.transactionId;
                    movimiento.montoCapital    = transaccion.principalPaid;
                    movimiento.montoInteres    = transaccion.interestPaid;
                    movimiento.montoTotal      = transaccion.amount;
                    movimiento.saldo           = transaccion.principalBalance;

                    if (existeMovimiento.Equals("0"))
                    {
                        OperacionesBD.InsertarMovimiento(movimiento);
                    }

                    movimiento = null;
                }

                // amortizaciones del contrato
                OperacionesBD.BorrarAmortizacionesContrato(contrato.id);

                List <Repayment> amortizaciones = Operaciones.ObtenerAmortizaciones(contrato.id).OrderBy(x => x.dueDate).ToList();

                // inserta el calendario de pagos
                foreach (Repayment amortizacion in amortizaciones)
                {
                    Pago pago = new Pago();

                    pago.numeroCuota     = numeroPago;
                    pago.idContrato      = contrato.id;
                    pago.estatus         = amortizacion.state;
                    pago.fechaPago       = DateTime.Parse(amortizacion.dueDate);
                    pago.fechaPagado     = DateTime.Parse(amortizacion.repaidDate == null ? amortizacion.repaidDate = "01/01/1900" : amortizacion.repaidDate);
                    pago.capitalEsperado = decimal.Parse(amortizacion.principalDue);
                    pago.interesEsperado = decimal.Parse(amortizacion.interestDue);
                    pago.capitalPagado   = decimal.Parse(amortizacion.principalPaid);
                    pago.interesPagado   = decimal.Parse(amortizacion.interestPaid);


                    // inserta las Amortizaciones
                    OperacionesBD.InsertarAmortizaciones(pago);

                    numeroPago += 1;
                }

                // actualiza los datos del contrato
                Dictionary <string, object> parametros = new Dictionary <string, object>();

                parametros.Add("saldo", contrato.principalBalance);
                parametros.Add("capitalPagado", contrato.principalPaid.ToString());
                parametros.Add("interesPagado", contrato.interestPaid.ToString());
                parametros.Add("estatus", contrato.accountState);
                parametros.Add("idContrato", contrato.id);

                OperacionesBD.ActualizarContrato(parametros);

                contador += 1;
            }
            return(new HttpStatusCodeResult(200));
        }
Exemplo n.º 9
0
        public ActionResult AplicarPagos()
        {
            //Se inicia el contrato pero unicamente se tendra la propiedad de idContrato
            //Obtendremos las demas propiedades para actualizarlas
            ContratoWebHookMambu contratoWebHook = new ContratoWebHookMambu();

            System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Request.InputStream);
            string rawSendGridJSON        = reader.ReadToEnd();

            contratoWebHook = new JavaScriptSerializer().Deserialize <ContratoWebHookMambu>(rawSendGridJSON);
            long contador = 0;

            if (contratoWebHook != null)
            {
                ////Obtenemos el contrato(s) asociado
                List <Loan> loans = Operaciones.ObtenerCuentasPrestamo(contratoWebHook.IdContrato);

                if (loans.Count > 0)
                {
                    List <Transaccion> transacciones = Operaciones.ObtenerTransacciones(Constantes.TRANSACTIONS_TYPE_REPAYMENT, loans.FirstOrDefault().encodedKey).ToList();
                    foreach (var transaccion in transacciones)
                    {
                        int    numeroPago = 1;
                        string existe     = OperacionesBD.ExisteTransaccion(transaccion.transactionId);

                        Loan contrato = Operaciones.ObtenerCuentaPrestamo(transaccion.parentAccountKey);

                        Movimiento movimiento = new Movimiento();

                        movimiento.codigo          = Constantes.MOVIMIENTO_PAGO;
                        movimiento.fechaMovimiento = DateTime.Parse(transaccion.creationDate);
                        movimiento.fechaValor      = DateTime.Parse(transaccion.entryDate);
                        movimiento.idContrato      = contrato.id;
                        movimiento.idTransaccion   = transaccion.transactionId;
                        movimiento.montoCapital    = transaccion.principalPaid;
                        movimiento.montoInteres    = transaccion.interestPaid;
                        movimiento.montoTotal      = transaccion.amount;
                        movimiento.saldo           = transaccion.principalBalance;

                        if (existe.Equals("0"))
                        {
                            long insertado = OperacionesBD.InsertarMovimiento(movimiento);

                            // amortizaciones del contrato
                            OperacionesBD.BorrarAmortizacionesContrato(contrato.id);

                            List <Repayment> amortizaciones = Operaciones.ObtenerAmortizaciones(contrato.id).OrderBy(x => x.dueDate).ToList();

                            // inserta el calendario de pagos
                            foreach (Repayment amortizacion in amortizaciones)
                            {
                                Pago pago = new Pago();

                                pago.numeroCuota     = numeroPago;
                                pago.idContrato      = contrato.id;
                                pago.estatus         = amortizacion.state;
                                pago.fechaPago       = DateTime.Parse(amortizacion.dueDate);
                                pago.fechaPagado     = DateTime.Parse(amortizacion.repaidDate == null ? amortizacion.repaidDate = "01/01/1900" : amortizacion.repaidDate);
                                pago.capitalEsperado = decimal.Parse(amortizacion.principalDue);
                                pago.interesEsperado = decimal.Parse(amortizacion.interestDue);
                                pago.capitalPagado   = decimal.Parse(amortizacion.principalPaid);
                                pago.interesPagado   = decimal.Parse(amortizacion.interestPaid);

                                // inserta las Amortizaciones
                                OperacionesBD.InsertarAmortizaciones(pago);

                                pago = null;

                                numeroPago += 1;
                            }
                            // actualiza los datos del contrato
                            Dictionary <string, object> parametros = new Dictionary <string, object>();

                            parametros.Add("saldo", contrato.principalBalance);
                            parametros.Add("capitalPagado", contrato.principalPaid.ToString());
                            parametros.Add("interesPagado", contrato.interestPaid.ToString());
                            parametros.Add("estatus", contrato.accountState);
                            parametros.Add("idContrato", contrato.id);

                            OperacionesBD.ActualizarContrato(parametros);
                        }

                        movimiento = null;

                        contador += 1;
                    }
                    return(new HttpStatusCodeResult(200));
                }
                else
                {
                    return(new HttpStatusCodeResult(404));
                }
            }
            else
            {
                return(new HttpStatusCodeResult(404));
            }
        }
Exemplo n.º 10
0
        public ActionResult NuevoContrato()
        {
            ContratoWebHookMambu contratoWebHook = new ContratoWebHookMambu();

            System.IO.StreamReader reader = new System.IO.StreamReader(HttpContext.Request.InputStream);
            string rawSendGridJSON        = reader.ReadToEnd();

            contratoWebHook = new JavaScriptSerializer().Deserialize <ContratoWebHookMambu>(rawSendGridJSON);


            if (contratoWebHook != null)
            {
                Dictionary <string, object> parametros = new Dictionary <string, object>();
                parametros.Add("idContrato", contratoWebHook.IdContrato);

                //Consulta para validar si el contrato ya existe.
                //Ya que la petición del webhook ha estado enviando valores duplicados
                string existe       = OperacionesBD.ValidaExisteContrato(parametros);
                string existeCadena = (existe == "1" ? " existe" : " no existe");

                //Una vez que se valide que el contrato que esta por crearse no existe
                //se procede a obtener informacion de mambu para posteriormente agregar
                //la informacion concentrada en la BD de VFMéxico
                if (existe.Equals("0"))
                {
                    //Obtenemos las transacciones del contrato
                    List <Loan> loans = Operaciones.ObtenerCuentasPrestamo(contratoWebHook.IdContrato);

                    long contador = 0;

                    log.Info("Contrato Nuevo :" + contador.ToString() + " DE: " + loans.Count().ToString());

                    if (loans != null && loans.Count > 0)
                    {
                        Dictionary <string, string> datos = new Dictionary <string, string>();

                        foreach (var loan in loans)
                        {
                            int numeroPago = 1;

                            Dictionary <string, object> parametrosExisteCredito = new Dictionary <string, object>();
                            parametrosExisteCredito.Add("idCredito", contratoWebHook.IdCredito);

                            //Creamos instancias de los objetos que se obtendra información
                            Credito  credito          = new Credito();
                            Cliente  cliente          = new Cliente();
                            Contrato contratoInsertar = new Contrato();

                            string keyGrupo = string.Empty;

                            credito.diasVencidos = 0;
                            credito.idCredito    = contratoWebHook.IdCredito;

                            //Obtenemos las amortizaciones de contrato
                            List <Repayment> amortizaciones = Operaciones.ObtenerAmortizaciones(loan.id);

                            // datos de Sucursal
                            //Validar que el id de sucursal de contratowebhook sea el mismo
                            datos = Operaciones.ObtenerDatosSucursal(loan.assignedBranchKey);

                            credito.idSucursal     = datos.Where(z => z.Key.Equals("idSucursal")).FirstOrDefault().Value.ToString();
                            credito.nombreSucursal = datos.Where(z => z.Key.Equals("nombreSucursal")).FirstOrDefault().Value.ToString();

                            Dictionary <string, string> datosCliente = new Dictionary <string, string>();
                            //Se obtiene el cliente y su informacion faltante
                            datosCliente = Operaciones.ObtenerDatosCliente(loan.accountHolderKey);

                            try
                            {
                                contratoWebHook.Cliente.nombre           = datosCliente.Where(z => z.Key.Equals("nombreCliente")).FirstOrDefault().Value.ToString();
                                contratoWebHook.Cliente.apellidoPaterno  = datosCliente.Where(z => z.Key.Equals("paternoCliente")).FirstOrDefault().Value.ToString();
                                contratoWebHook.Cliente.apellidoMaterno  = datosCliente.Where(z => z.Key.Equals("maternoCliente")).FirstOrDefault().Value.ToString();
                                contratoWebHook.Cliente.fechaNacimiento  = Convert.ToDateTime(datosCliente.Where(z => z.Key.Equals("fechaNacimiento")).FirstOrDefault().Value.ToString());
                                contratoWebHook.Cliente.sexo             = datosCliente.Where(z => z.Key.Equals("sexo")).FirstOrDefault().Value.ToString();
                                contratoWebHook.Cliente.coloniaPoblacion = datosCliente.Where(z => z.Key.Equals("coloniaPoblacion")).FirstOrDefault().Value.ToString();

                                credito.keyGrupo = datosCliente.Where(z => z.Key.Equals("keyGrupo")).FirstOrDefault().Value.ToString();
                            }
                            catch
                            {
                                credito.keyGrupo = loan.accountHolderKey;
                            }

                            credito.idCliente = contratoWebHook.Cliente.idCliente;

                            Cliente clienteCamposPersonalizados = new Cliente();

                            clienteCamposPersonalizados = Operaciones.ObtenerDatosClienteActualiza(loan.accountHolderKey);

                            //Obtenemos los datos de la identificacion capturada
                            contratoWebHook.Cliente.tipoDocumento     = clienteCamposPersonalizados.idDocuments[0].issuingAuthority;
                            contratoWebHook.Cliente.vigenciaDocumento = clienteCamposPersonalizados.idDocuments[0].validUntil;

                            var customFields = clienteCamposPersonalizados.customInformation.Where(x => x.customFieldID.Equals("Edad_Clientes") && Convert.ToInt32(x.value) < 19).ToList().Count.ToString();

                            if (customFields == null)
                            {
                                contratoWebHook.Cliente.numeroDependientes = "0";
                            }
                            else
                            {
                                contratoWebHook.Cliente.numeroDependientes = customFields;
                            }

                            // datos del Producto
                            credito.nombreProducto = contratoWebHook.NombreDelProducto;
                            credito.keyProducto    = loan.productTypeKey;

                            // si no es individual entonces va a buscar los datos del Grupo
                            if (!loan.accountHolderKey.Equals(credito.keyGrupo))
                            {
                                Dictionary <string, string> datosGrupo = Operaciones.ObtenerDatosGrupo(credito.keyGrupo);

                                credito.idGrupo     = datosGrupo.Where(z => z.Key.Equals("idGrupo")).FirstOrDefault().Value.ToString();
                                credito.nombreGrupo = datosGrupo.Where(z => z.Key.Equals("nombreGrupo")).FirstOrDefault().Value.ToString();
                            }
                            else
                            {
                                credito.idGrupo     = contratoWebHook.Cliente.idCliente;
                                credito.nombreGrupo = cliente.nombre + " " + cliente.apellidoPaterno + " " + cliente.apellidoMaterno;
                            }

                            credito.metodologia = contratoWebHook.Metodologia;

                            // la última fecha de las amortizaciones es la Fecha Esperada de Liquidación
                            credito.fechaEsperadaLiquidacion = DateTime.Parse(amortizaciones.LastOrDefault().dueDate);
                            credito.fechaContrato            = DateTime.Parse(loan.fechaDeCreacion);
                            credito.fechaDesembolso          = DateTime.Parse(DateTimeOffset.Parse(loan.disbursementDetails.expectedDisbursementDate).ToString("yyyy-MM-dd"));
                            credito.fechaBaja        = DateTime.Parse("01/01/1900");
                            credito.fechaLiquidacion = DateTime.Parse("01/01/1900");

                            credito.frecuenciaPagoNumero = loan.repaymentPeriodCount;
                            credito.frecuenciaPagoUnidad = loan.repaymentPeriodUnit;

                            credito.numeroPagos = amortizaciones.Count();

                            credito.tasaAnual   = loan.interestRate;
                            credito.tasaMensual = credito.tasaAnual / 12;
                            credito.tasaDiaria  = credito.tasaAnual / 360;

                            credito.estatus = loan.accountState;

                            Dictionary <string, string> datosProducto = Negocio.Operaciones.ObtenerDatosProducto(loan.productTypeKey);
                            credito.idProducto = datosProducto.Where(z => z.Key.Equals("idProducto")).FirstOrDefault().Value.ToString();

                            if (loans.Count > 0)
                            {
                                credito.tipoCredito = Negocio.Globales.Constantes.TIPO_CREDITO_GRUPAL;
                            }
                            else
                            {
                                credito.tipoCredito = Negocio.Globales.Constantes.TIPO_CREDITO_INDIVIDUAL;
                            }

                            //Obtener los datos de oficial de credito
                            List <CustomFieldValue> campo = Operaciones.ObtenerCampoPersonalizadoContrato(contratoWebHook.IdContrato, "Oficial_de_Credito_Asignado_Cuen", string.Empty);

                            var userKey = campo.FirstOrDefault(x => x.customFieldKey == ConstantesMambu.KEY_CAMPO_OFICIAL_CREDITO).linkedEntityKeyValue;

                            Usuario userMambu = Operaciones.ObtenerUsuarioMambu(userKey);


                            // datos del contrato
                            contratoInsertar.idCliente            = contratoWebHook.Cliente.idCliente;
                            contratoInsertar.idContrato           = loan.id;
                            contratoInsertar.idCredito            = contratoWebHook.IdCredito;
                            contratoInsertar.montoCapital         = loan.loanAmount;
                            contratoInsertar.montoComisiones      = loan.feesPaid;
                            contratoInsertar.saldo                = loan.principalBalance;
                            contratoInsertar.capitalPagado        = loan.principalPaid;
                            contratoInsertar.interesPagado        = loan.interestPaid;
                            contratoInsertar.estatus              = loan.accountState;
                            contratoInsertar.subEstatus           = loan.accountSubState;
                            contratoInsertar.beneficiario         = contratoWebHook.Beneficiario;
                            contratoInsertar.pda                  = contratoWebHook.PDA;
                            contratoInsertar.sector               = contratoWebHook.Sector;
                            contratoInsertar.subSector            = contratoWebHook.SubSector;
                            contratoInsertar.propositoCredito     = contratoWebHook.PropositoCredito;
                            contratoInsertar.empleosCreados       = contratoWebHook.EmpleadosCreadosTC.ToString();
                            contratoInsertar.empleosSostenidos    = contratoWebHook.EmpleadosSostenidosTC.ToString();
                            contratoInsertar.fuenteFondeo         = contratoWebHook.FuenteFondeo;
                            contratoInsertar.valorBien            = contratoWebHook.ValorBien;
                            contratoInsertar.formaDesembolso      = contratoWebHook.FormaDesembolso;
                            contratoInsertar.nombreOficialCredito = contratoWebHook.NombreOficialCredito;
                            contratoInsertar.numeroOficialCredito = userMambu.id;
                            contratoInsertar.fechaCierre          = Convert.ToDateTime(loan.closeDate.Year == 1 ? "01/01/1900" : loan.closeDate.ToString());

                            foreach (Repayment amortizacion in amortizaciones)
                            {
                                Pago pago = new Pago();

                                pago.numeroCuota     = numeroPago;
                                pago.idContrato      = loan.id;
                                pago.estatus         = amortizacion.state;
                                pago.fechaPago       = DateTime.Parse(amortizacion.dueDate);
                                pago.fechaPagado     = DateTime.Parse(amortizacion.repaidDate == null ? amortizacion.repaidDate = "01/01/1900" : amortizacion.repaidDate);
                                pago.capitalEsperado = decimal.Parse(amortizacion.principalDue);
                                pago.interesEsperado = decimal.Parse(amortizacion.interestDue);
                                pago.capitalPagado   = decimal.Parse(amortizacion.principalPaid);
                                pago.interesPagado   = decimal.Parse(amortizacion.interestPaid);


                                // inserta las Amortizaciones
                                OperacionesBD.InsertarAmortizaciones(pago);


                                numeroPago += 1;
                            }

                            List <Transaccion> transacciones = Operaciones.ObtenerTransacciones(Constantes.TRANSACTIONS_TYPE_DISBURSMENT, loan.encodedKey).ToList();

                            transacciones.AddRange(Operaciones.ObtenerTransacciones(Constantes.TRANSACTIONS_TYPE_REPAYMENT, loan.encodedKey).ToList());

                            foreach (Transaccion transaccion in transacciones)
                            {
                                Movimiento movimiento = new Movimiento();

                                string existeMovimiento = Negocio.OperacionesBD.ExisteTransaccion(transaccion.transactionId);

                                if (transaccion.type.Equals("REPAYMENT"))
                                {
                                    movimiento.codigo = "PAGO";
                                }
                                else if (transaccion.type.Equals("DISBURSMENT"))
                                {
                                    movimiento.codigo = "DESEMBOLSO";
                                }
                                else if (transaccion.type.Equals(Negocio.Globales.Constantes.ESTATUS_WRITE_OFF))
                                {
                                    movimiento.codigo = "CASTIGO";
                                }
                                else
                                {
                                    movimiento.codigo = "";
                                }
                                movimiento.fechaMovimiento = DateTime.Parse(transaccion.creationDate);
                                movimiento.fechaValor      = DateTime.Parse(transaccion.entryDate);
                                movimiento.idContrato      = loan.id;
                                movimiento.idTransaccion   = transaccion.transactionId;
                                movimiento.montoCapital    = transaccion.principalPaid;
                                movimiento.montoInteres    = transaccion.interestPaid;
                                movimiento.montoTotal      = transaccion.amount;
                                movimiento.saldo           = transaccion.principalBalance;

                                if (existeMovimiento.Equals("0"))
                                {
                                    OperacionesBD.InsertarMovimiento(movimiento);
                                }
                            }

                            List <AnidaFee> comitions = loan.disbursementDetails.fees;

                            //Validacion para comision
                            foreach (var comition in comitions)
                            {
                                if (comition.fee.name.ToUpper().Contains("COMISIÓN") || comition.fee.name.ToUpper().Contains("COMISION"))
                                {
                                    Movimiento movimiento = new Movimiento();

                                    movimiento.codigo          = "COMISIÓN";
                                    movimiento.fechaMovimiento = Convert.ToDateTime(comition.fee.creationDate);
                                    movimiento.fechaValor      = Convert.ToDateTime(loan.disbursementDetails.disbursementDate);
                                    movimiento.idContrato      = loan.id;
                                    movimiento.idTransaccion   = -1;
                                    movimiento.montoCapital    = 0;
                                    movimiento.montoInteres    = 0;
                                    movimiento.montoTotal      = Convert.ToDecimal(comition.fee.amount);
                                    movimiento.saldo           = 0;

                                    OperacionesBD.InsertarMovimiento(movimiento);
                                }
                                else if (comition.fee.name.ToUpper().Contains("GASTO"))
                                {
                                    Movimiento movimiento = new Movimiento();

                                    movimiento.codigo          = "SEGURO";
                                    movimiento.fechaMovimiento = Convert.ToDateTime(comition.fee.creationDate);
                                    movimiento.fechaValor      = Convert.ToDateTime(loan.disbursementDetails.disbursementDate);
                                    movimiento.idContrato      = loan.id;
                                    movimiento.idTransaccion   = -1;
                                    movimiento.montoCapital    = 0;
                                    movimiento.montoInteres    = 0;
                                    movimiento.montoTotal      = Convert.ToDecimal(comition.fee.amount);
                                    movimiento.saldo           = 0;

                                    OperacionesBD.InsertarMovimiento(movimiento);
                                }
                            }

                            //Validamos que no exista el crédito
                            string existeCredito = string.Empty;
                            existeCredito = OperacionesBD.ExisteCredito(parametrosExisteCredito);

                            if (existeCredito.Equals("0"))
                            {
                                OperacionesBD.InsertarCredito(credito);
                            }
                            else
                            {
                            }

                            Dictionary <string, object> parametrosGrupo = new Dictionary <string, object>();
                            parametrosGrupo.Add("idGrupo", credito.idGrupo);
                            parametrosGrupo.Add("nombreGrupo", credito.nombreGrupo);
                            //Validamos que el grupo no exista
                            string existeGrupo = Negocio.OperacionesBD.ExisteGrupo(credito.idGrupo);

                            if (existeGrupo.Equals("0"))
                            {
                                Negocio.OperacionesBD.InsertarGrupo(parametrosGrupo);
                            }

                            //Validar que el cliente exista en la BD, en caso de que ya se encuentre no se inserta
                            Dictionary <string, object> parametrosCliente = new Dictionary <string, object>();
                            parametrosCliente.Add("idCliente", contratoWebHook.Cliente.idCliente);
                            string existeCliente = OperacionesBD.ExisteCliente(parametrosCliente);

                            if (existeCliente.Equals("0"))
                            {
                                OperacionesBD.InsertarCliente(contratoWebHook.Cliente);
                            }


                            OperacionesBD.InsertarContrato(contratoInsertar);

                            transacciones.Clear();
                            transacciones = null;

                            amortizaciones.Clear();
                            amortizaciones = null;

                            datos.Clear();
                            datos = null;
                            datos = new Dictionary <string, string>();

                            cliente         = null;
                            credito         = null;
                            contratoWebHook = null;
                        }
                    }
                    else
                    {
                    }
                }
                else
                {
                }
            }
            else
            {
            }
            return(new HttpStatusCodeResult(200));
        }
Exemplo n.º 11
0
 public int EscribirEnBd(string procedimientoAlmacenado, string[] valoresParametros, params string[] parametros)
 {
     operacionesBD = new OperacionesBD();
     return(operacionesBD.EscribirEnBd(procedimientoAlmacenado, valoresParametros, parametros));
 }
Exemplo n.º 12
0
 public DataTable CargarDatosBD(string procedimientoAlmacenado, string[] valoresParametros, params string[] parametros)
 {
     operacionesBD = new OperacionesBD();
     return(operacionesBD.CargarDatosBD(procedimientoAlmacenado, valoresParametros, parametros));
 }