public String SolveQuest(HttpContext context) { context.Request.InputStream.Position = 0; var jsonString = String.Empty; using (var inputStream = new StreamReader(context.Request.InputStream)) { jsonString = inputStream.ReadToEnd(); } JavaScriptSerializer deserializer = new JavaScriptSerializer(); Dictionary <String, Object> contenido = deserializer.Deserialize <Dictionary <String, Object> >(jsonString); String accion = contenido["accion"].ToString(); if (accion == "paridad") { int curmone; if (!int.TryParse(contenido["pointer"].ToString(), out curmone)) { pageComm.Add("fail", "Moneda no identificada:" + contenido["pointer"].ToString() + "."); } else { DateTime fecha; if (!DateTime.TryParse(contenido["fecha"].ToString(), out fecha)) { pageComm.Add("fail", "Fecha en Malas Condiciones: " + contenido["fecha"].ToString() + "."); } else { Moneda mone = new Moneda(dataConnectionString); Double parity = mone.ParidadMoneda(curmone, fecha, 1); pageComm.Add("paridad", parity.ToString(CultureInfo.CreateSpecificCulture("en-US"))); } } return(Modelos.Library.JsonInform.PageCommentsToJson(pageComm)); } else if (accion == "relacionlimitecotizacion") { short success = 0; String[] conte = Tools.CryptoTools.Decrypt(contenido["pointer"].ToString()).Split('\t'); int codigo = int.Parse(conte[1]); int correl = int.Parse(conte[2]); String numPersona = conte[3]; Decimal montoAplica = Decimal.Parse(conte[4], NumberStyles.Number, new System.Globalization.CultureInfo("en-US")); String tipOper = conte[5]; DateTime fecha = DateTime.Today; Dictionary <String, Object> answer = new Dictionary <string, object>(); answer.Add("fecha", fecha.ToShortDateString()); answer.Add("targkey", contenido["pointer"].ToString()); if (codigo == 2) { answer.Add("nombre", "Límites Capítulo IIIB5"); answer.Add("moneda", "DOLAR AMERICANO"); } else { Limite limite = new Limite(dataConnectionString); if (limite.Obtener(codigo, correl, fecha) == 0) { answer.Add("nombre", limite.Nombre); Moneda mon = new Moneda(dataConnectionString); if (mon.Obtener(limite.Moneda) == 0) { answer.Add("moneda", mon.Nombre); } } } RelacionLimiteCotizacion rela = new RelacionLimiteCotizacion(dataConnectionString); DataTable dRel = rela.GetList(ref success, codigo, correl); if (success == 0) { DataTable infor = rela.PackInfo(dRel, tipOper, numPersona, montoAplica, true); answer.Add("lista", infor); } else if (success == 3) { answer.Add("vacio", "No Existen Cotizaciones para este Límite"); } String result = JsonConvert.SerializeObject(answer); return(result); } else if (accion == "listaclientes") { short success = 0; String numPersona = contenido["numcli"].ToString(); String nomPersona = contenido["nomcli"].ToString(); short rowsppage = 14; short currpage = Convert.ToInt16(contenido["pointer"].ToString() == string.Empty ? "0" : contenido["pointer"].ToString()); if (currpage == 0) { currpage = 1; } Persona per = new Persona(dataConnectionString); DataTable dt = per.GetList(ref success, 0); string filter = (nomPersona != "")? "nom_prsna_etcdo like '%" + nomPersona + "%'": ""; string sort = "nom_prsna_etcdo ASC"; IEnumerable <DataRow> qry = dt.Select(filter, sort); short rowstotal = (short)qry.ToList().Count(); DataTable ndt = new DataTable("clientes"); ndt = dt.Clone(); int toma = rowsppage; int eskip = (rowsppage) * (currpage - 1); if (eskip > rowstotal) { currpage--; eskip = (rowsppage) * (currpage - 1); } if (qry.Count() > 0) { ndt = qry.Skip(eskip).Take(toma).CopyToDataTable <DataRow>(); } DataTable pdt = new DataTable("paginacion"); pdt.Columns.Add("actual", typeof(short)); pdt.Columns.Add("total", typeof(short)); pdt.Columns.Add("totalpages", typeof(short)); int totpages = rowstotal / rowsppage; if (totpages * rowsppage < rowstotal) { totpages++; } pdt.Rows.Add(currpage, rowstotal, totpages); DataSet nds = new DataSet(); ndt.TableName = "clientes"; nds.Tables.Add(ndt); nds.Tables.Add(pdt); String result = JsonConvert.SerializeObject(nds); return(result); } else { pageComm.Add("fail", "Accion No Identificada: " + accion + "."); } return(Modelos.Library.JsonInform.PageCommentsToJson(pageComm)); }
public bool ObtenerSimulador(bool rechaze) { string ltMensaje; List <string> errs = new List <string>(); int nroCot = 0; nroCot = int.TryParse(iView.NumeroCotizacion.Text, out nroCot) ? nroCot : 0; if (nroCot == 0) { ltMensaje = "Es Nueva"; } else { ltMensaje = "Es Antigua"; } // Verifica el ingreso de los datos basicos if (iView.RutCliente.Text.Trim().Length == 0) { ltMensaje = "Falta identificar el Cliente"; if (rechaze) { errs.Add(ltMensaje); } } if (Array.Exists((new[] { 0, -1 }), element => element == iView.TipoOperacion.SelectedIndex)) { ltMensaje = "Falta establecer El Tipo de Operación"; if (rechaze) { errs.Add(ltMensaje); } } if (iView.TipoCredito.SelectedIndex == -1) { ltMensaje = "Debe elegir un Tipo De Crédito"; if (rechaze) { errs.Add(ltMensaje); } } int test = -1; if (!int.TryParse(iView.PlazoMaxResidualCtg.Text, out test) || test == 0) { ltMensaje = "Falta indicar el Plazo de la Operación"; if (rechaze) { errs.Add(ltMensaje); } } Decimal parMoneda = Decimal.TryParse(iView.Paridad.Value, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out parMoneda) ? parMoneda : 0; if (parMoneda == 0) { ltMensaje = "No Existe Paridad para la Moneda de la Operación"; if (rechaze) { errs.Add(ltMensaje); } } if (iView.Moneda.SelectedIndex == -1) { ltMensaje = "Se necesita identificar la Moneda"; if (rechaze) { errs.Add(ltMensaje); } } double montOp = double.TryParse(iView.MontoOperacion.Text, out montOp) ? montOp : 0; //if (montOp==0 && iView.NroCotizacionAjustar.Text.Trim()=="-") { if (montOp == 0) { ltMensaje = "Debe ingresar el Monto que va a afectar Línea"; if (rechaze) { errs.Add(ltMensaje); } //return false; } simu = new SimulacionCLE(dataConnectionString); simu.tNumeroOperacion = iView.NroOperacion.Text.Trim(); simu.tNumeroCliente = iView.RutCliente.Text.Trim(); simu.iCargoCasaMatriz = 0; if (iView.CasaMatriz.Attributes["data-tag"] != null && iView.CasaMatriz.Attributes["data-tag"].ToString().Trim() != string.Empty) { simu.iCargoCasaMatriz = 1; simu.tNumeroCasaMatriz = iView.CasaMatriz.Attributes["data-tag"].ToString().Trim(); } if (iView.Nota.Checked) { if (iView.NomSuby.Attributes["data-tag"] == null || iView.NomSuby.Attributes["data-tag"].ToString().Trim() == string.Empty) { ltMensaje = "Debe Indicar El Deudor Indirecto, Garante o Subyacente"; if (rechaze) { errs.Add(ltMensaje); } } if (Array.Exists((new[] { 0, -1 }), element => element == iView.TipoOperSuby.SelectedIndex)) { ltMensaje = "Debe Indicar El Tipo Operacion Subyacente"; if (rechaze) { errs.Add(ltMensaje); } //return false; } } if (errs.Count > 0) { errores.Add("faltainfo", errs); return(false); } String famcod = iView.TipoOperacion.SelectedValue;// Items[iView.TipoOperacion.SelectedIndex].ToString(); famcod = famcod.Split('-')[0]; simu.tTipoProducto = famcod; // frmLCEDatosSimulacion.TipoOperacion.List(frmLCEDatosSimulacion.TipoOperacion.ListIndex) if (iView.Producto.SelectedIndex >= 0) { simu.iCodigoProducto = int.Parse(iView.Producto.SelectedValue); // Support.GetItemData(iView.Producto, iView.Producto.SelectedIndex); } else { simu.iCodigoProducto = 0; } simu.tCodigoFamilia = iView.CodigoTipoOperacion.Text; simu.iCodigoMoneda = int.Parse(iView.Moneda.SelectedValue); // Support.GetItemData(iView.Moneda, iView.Moneda.SelectedIndex); //Decimal parMoneda = Decimal.TryParse(iView.Paridad.Value, NumberStyles.Number, // CultureInfo.CreateSpecificCulture("en-US"), out parMoneda) ? parMoneda : 0; ; Decimal toleranc = Decimal.TryParse(iView.PorcentajeTolerancia.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out toleranc) ? toleranc : 0;; Decimal montOpe = Decimal.TryParse(iView.MontoOperacion.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out montOpe) ? montOpe : 0;; Decimal lMontOrigen; lMontOrigen = Decimal.TryParse(iView.Monto.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out lMontOrigen) ? lMontOrigen : 0; lMontOrigen = (montOpe * (1 + toleranc / 100)); simu.dMontoOrigen = Convert.ToDouble(lMontOrigen); // tes = double.TryParse(iView.Monto.Text, out tes) ? tes : 0; // ojo: simular solo la diferencia entre la cotizacion original y la modificada CotizacionCLE oldCot = new CotizacionCLE(dataConnectionString); Decimal lMontAplica, lMontGarant; NumberStyles style; style = NumberStyles.AllowDecimalPoint; //number = Decimal.Parse(value, style); // lMontAplica = Decimal.Parse(iView.MontoEquivalente.Text, NumberStyles.Number); //, out lMontAplica) ? lMontAplica : 0; lMontAplica = Decimal.TryParse(iView.MontoEquivalente.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out lMontAplica) ? lMontAplica : 0; lMontAplica = (montOpe * (1 + toleranc / 100)) * parMoneda; Decimal porGar = Decimal.TryParse(iView.PorcenGarantia.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out porGar) ? porGar : 0; lMontGarant = Decimal.TryParse(iView.MontoGarantia.Text, NumberStyles.Number, CultureInfo.CreateSpecificCulture("en-US"), out lMontGarant) ? lMontGarant : 0; lMontGarant = porGar / 100 * lMontAplica; simu.iNroCotizacion = 0; if (nroCot > 0) { if (oldCot.Obtener(nroCot) == 0) { lMontAplica = Decimal.Parse(iView.MontoEquivalente.Text) - (Decimal)oldCot.MontoDolares; simu.iNroCotizacion = nroCot; } else { errores.Add("ObtenerSimulador.1", oldCot.errlist); } oldCot = null; } simu.dMontoDolares = (double)lMontAplica; // CvNum(frmCotizacionCLE.MontoEquivalente.Text) simu.dMontoAfecta = (double)lMontAplica; simu.iCodigoPais = Convert.ToInt16(iView.Pais.Attributes["data-tag"].ToString().Trim()); // As Integer simu.iCodigoCateg = Convert.ToInt16(iView.Categoria.Attributes["data-tag"].ToString().Trim()); // As Integer simu.iEsNotaEstruct = iView.Nota.Checked; simu.iEsOperPuntual = iView.OperPuntual.Checked; if (simu.iEsNotaEstruct) { famcod = iView.TipoOperSuby.SelectedValue.Split('-')[0]; //.Items[iView.TipoOperSuby.SelectedIndex].ToString(); //famcod = Strings.Trim(Strings.Left(famcod, Strings.InStr(famcod, " > ", CompareMethod.Text/*?*/) - 1)); simu.tTipoProdSuby = famcod; // As String if (iView.ProdSuby.SelectedIndex >= 0) { simu.iCodigoProductoSby = Convert.ToInt32(iView.ProdSuby.SelectedValue); // Support.GetItemData(iView.ProdSuby, iView.ProdSuby.SelectedIndex); } else { } simu.tNumeroPerSuby = Convert.ToString(iView.NomSuby.Attributes["data-tag"].ToString().Trim()); // As String simu.iCodigoPaisSuby = Convert.ToInt16(iView.PaisSuby.Attributes["data-tag"].ToString().Trim()); // As Integer simu.iCodigoCategSuby = Convert.ToInt16(iView.CategSuby.Attributes["data-tag"].ToString().Trim()); // As Integer float pork; simu.sPorcGarantia = (float.TryParse(iView.PorcenGarantia.Text, NumberStyles.Number, new CultureInfo("en-US"), out pork) ? pork : 0) / 100; simu.dMontoGarantia = (double)(lMontGarant); // double.Parse(iView.MontoGarantia.Text); //if (Strings.Trim(Convert.ToString(iView.CasaMatrizSuby.Tag)) != string.Empty) //{ // // gSimulacion.iCargoCasaMatrizSuby = 1 // // gSimulacion.tNumeroCasaMatrizSuby = lperPersona.Obtener(frmCotizacionCLE.CasaMatrizSuby.Tag) //} //else //{ // // gSimulacion.iCargoCasaMatrizSuby = 0 //} } else { simu.sPorcGarantia = 0; simu.dMontoGarantia = 0; } simu.iDiasPlazo = (int)Math.Round(Convert.ToSingle(iView.PlazoMaxResidualCtg.Text)); short ok; String lblCodigoFamilia_Text = simu.tCodigoFamilia; Persona per = new Persona(dataConnectionString); simu.nombreCliente = (per.Obtener(simu.tNumeroCliente) == 0) ? per.NombreEstructurado : string.Empty; per = null; Pais pai = new Pais(dataConnectionString); simu.nombrePaisCliente = (pai.Obtener(simu.iCodigoPais) == 0) ? pai.Nombre : string.Empty; pai = null; TipoProducto tipo = new TipoProducto(dataConnectionString); if (tipo.Obtener(simu.tTipoProducto) == 0) { simu.nombreTipoProducto = tipo.Nombre; } tipo = null; Producto pro = new Producto(dataConnectionString); if (pro.Obtener(simu.iCodigoProducto) == 0) { simu.nombreProducto = pro.Nombre; } pro = null; Moneda mon = new Moneda(dataConnectionString); if (mon.Obtener(simu.iCodigoMoneda) == 0) { simu.nombreMonedaMonto = mon.Nombre; } mon = null; if (simu.iCargoCasaMatriz == 1) { Persona matriz = new Persona(dataConnectionString); if (matriz.Obtener(simu.tNumeroCasaMatriz) == 0) { simu.nombreMatriz = matriz.NombreEstructurado; } matriz = null; } String MontoAfecta_Text = simu.dMontoOrigen.ToString(); String MontoEquivalente_Text = simu.dMontoDolares.ToString(); if (simu.tNumeroPerSuby != null && simu.tNumeroPerSuby != "") { Persona sub = new Persona(dataConnectionString); if (sub.Obtener(simu.tNumeroPerSuby) == 0) { simu.nombreDeudorSubyace = sub.NombreEstructurado; } sub = null; Pais spai = new Pais(dataConnectionString); if (spai.Obtener(simu.iCodigoPaisSuby) == 0) { simu.nombrePaisSubyace = spai.Nombre; } spai = null; TipoProducto stipo = new TipoProducto(dataConnectionString); if (stipo.Obtener(simu.tTipoProdSuby) == 0) { simu.nombreTipoProductoSubyace = stipo.Nombre; } stipo = null; Producto spro = new Producto(dataConnectionString); if (spro.Obtener(simu.iCodigoProductoSby) == 0) { simu.nombreProductoSubyace = spro.Nombre; } spro = null; String sprPorcenGarantia = simu.sPorcGarantia.ToString(); String sprMontoGarantia = simu.dMontoGarantia.ToString(); } else { simu.tNumeroPerSuby = string.Empty; } return(true); }