public bool IniciaEdicion()
        {
            if (iView.PageIdd.Value == String.Empty)
            {
                //cotizacion.CrearNuevo();
                LimpiarFormulario();
                //iView.PageIdd.Text = Tools.CryptoTools.Encrypt(DateTime.Now.ToString() + "\t(NUEVA)");
            }
            else
            {
                String[] cot2Edit = Tools.CryptoTools.Decrypt(iView.PageIdd.Value).Split('\t');
                int      edicoty;
                String   editando = (cot2Edit.Length != 0) ? cot2Edit[1].ToString() : "(NUEVA)";

                if ((int.TryParse(editando, out edicoty)? 0: edicoty) == 0)
                {
                    cotizacion.CrearNuevo();
                }
                else
                {
                    cotizacion.Obtener(edicoty);
                }
                iView.PageIdd.Value = Tools.CryptoTools.Encrypt(DateTime.Now.ToString() + "\t" + editando);
            }
            return(true);
            // iObjQuotView.showGrid.Columns.Clear();
            //iObjQuotView.showGrid.AutoGenerateEditButton = true;
        }
Beispiel #2
0
        public DataTable PackInfo(DataTable dataRel,
                                  String tipoOperacion, String numPersona,
                                  Decimal montoAplica, bool opSimulando)
        //private void PoblarGrilla(int codigoPlantilla, int correlativo)
        {
            short         liResultado;
            Persona       lperPersona    = new Persona(dataConnectionString);
            CotizacionCLE lcotCotizacion = new CotizacionCLE(dataConnectionString);
            Producto      lproProducto   = new Producto(dataConnectionString);
            DataTable     dt             = new DataTable();

            DataRow dr = null;

            dt.Columns.Add("fondo", System.Type.GetType("System.String"));
            dt.Columns.Add("cotizacion", System.Type.GetType("System.String"));
            dt.Columns.Add("fechaIngreso", System.Type.GetType("System.String"));
            dt.Columns.Add("persona", System.Type.GetType("System.String"));
            dt.Columns.Add("tipo", System.Type.GetType("System.String"));
            dt.Columns.Add("aplica", System.Type.GetType("System.String"));
            dt.Columns.Add("operador", System.Type.GetType("System.String"));
            dt.Columns.Add("vencimiento", System.Type.GetType("System.String"));


            if (dataRel != null)
            {
                foreach (DataRow row in dataRel.Rows)
                {
                    //liConsulta = lcotCotizacion.Obtener(Convert.ToInt32(row["nro_ctzcn"]));
                    if (lcotCotizacion.Obtener(Convert.ToInt32(row["nro_ctzcn"])) == 0)
                    {
                        if (Array.Exists((new[] { 1, 3, 6 }),
                                         element => element == lcotCotizacion.CodigoEstado))
                        //    if (lcotCotizacion.CodigoEstado == 1 || lcotCotizacion.CodigoEstado == 3 || lcotCotizacion.CodigoEstado == 6)
                        {                             // Cotizada, Cursada, Aprobada
                            dr                 = dt.NewRow();
                            dr["fondo"]        = "0"; //Color.FromArgb(220, 220, 220);
                            dr["cotizacion"]   = row["nro_ctzcn"].ToString();
                            dr["fechaIngreso"] = lcotCotizacion.FechaIngreso.ToString("dd/MM/yyyy", new CultureInfo("es-ES"));
                            if (lperPersona.Obtener(lcotCotizacion.NumeroPersona) == 0)
                            {
                                dr["persona"] = lperPersona.NombreEstructurado;
                            }
                            else
                            {
                                dr["persona"] = string.Empty;
                            }
                            dr["tipo"]   = lcotCotizacion.TipoProducto;
                            dr["aplica"] = Decimal.Parse(row["rlc_mnt_api"].ToString()).ToString(new System.Globalization.CultureInfo("en-US"));
                            //Usuario lperUsuario;
                            //lperUsuario = new Usuario();
                            liResultado = 0; // lperUsuario.ObtieneOperador(modGlobal.ConvertirRutNro(lcotCotizacion.NumeroFuncionario));
                            if (liResultado == 0)
                            {
                                dr["operador"] = "--..--"; // lperUsuario.Nombre;
                            }
                            else
                            {
                                dr["operador"] = string.Empty;
                            }
                            dr["vencimiento"] = lcotCotizacion.FechaVencimiento.ToString("dd/MM/yyyy", new CultureInfo("es-ES"));

                            dt.Rows.Add(dr);
                        }
                    }
                }
            }
            if (opSimulando)
            {
                dr                 = dt.NewRow();
                dr["fondo"]        = "1";          //Color.FromArgb(220, 220, 220);
                dr["cotizacion"]   = string.Empty; // row["nro_ctzcn"].ToString();
                dr["fechaIngreso"] = DateTime.Now.ToString("dd/MM/yyyy", new CultureInfo("es-ES"));
                if (lperPersona.Obtener(numPersona) == 0)
                {
                    dr["persona"] = lperPersona.NombreEstructurado;
                }
                else
                {
                    dr["persona"] = string.Empty;
                }

                dr["tipo"] = tipoOperacion;

                dr["aplica"]      = Decimal.Parse(montoAplica.ToString()).ToString(new System.Globalization.CultureInfo("en-US"));
                dr["operador"]    = string.Empty;
                dr["vencimiento"] = string.Empty;// lcotCotizacion.FechaVencimiento.ToString();
                dt.Rows.Add(dr);
            }


            dt.AcceptChanges();
            return(dt);
        }
        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);
        }