コード例 #1
0
        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));
        }
コード例 #2
0
        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);
        }