Example #1
0
        private void DefaultCalculos(ref ResumenCotizar rCtz)
        {
            try
            {
                rCtz.Descripcion2Pago = "1 Pago(s) de:";
                rCtz.VehiculosInfo = new List<ClsVehiculo>();
                rCtz.OpcionesPagoInfo = new List<ClsOpcionesPago>();

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 1,
                    DescripcionRubro = "Pago Inicial:",
                    PagoContado = string.Format("{0:C2}", 0),
                    PagoSemestral = string.Format("{0:C2}", 0),
                    PagoTrimestral = string.Format("{0:C2}", 0),
                    PagoMensual = string.Format("{0:C2}", 0)
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 2,
                    DescripcionRubro = "Pagos Subsecuentes:",
                    PagoContado = string.Format("{0}", ""),
                    PagoSemestral = string.Format("{0:C2}", 0),
                    PagoTrimestral = string.Format("{0:C2}", 0),
                    PagoMensual = string.Format("{0:C2}", 0),
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 3,
                    DescripcionRubro = "Número de Pagos Subsecuentes:",
                    PagoContado = string.Format("{0}", ""),
                    PagoSemestral = string.Format("{0:C2}", 0),
                    PagoTrimestral = string.Format("3"),
                    PagoMensual = string.Format("{0:C2}", 0),
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 4,
                    DescripcionRubro = "<strong><i>Total:</i></strong>",
                    PagoContado = string.Format("<strong><i>{0:C2}</i></strong>", 0),
                    PagoSemestral = string.Format("<strong><i>{0:C2}</i></strong>", 0),
                    PagoTrimestral = string.Format("<strong><i>{0:C2}</i></strong>", 0),
                    PagoMensual = string.Format("<strong><i>{0:C2}</i></strong>", 0)
                });
            }
            catch (Exception err) {
                throw err;
            }
        }
Example #2
0
        public ActionResult CalculoCotizacionCedida(bool ejecutaCalculo)
        {
            try
            {
                MensajesError.ErroresCalculo = new List<string>();
                ResumenCotizar rCtz = new ResumenCotizar();
                rCtz.calculos = new List<ClsCalculo>();
                rCtz.Origen = (string)Session["RsmClc"];
                GenericoViewModel model = new GenericoViewModel();
                model = (GenericoViewModel)Session["ModeloEnUso"];
                if (model.nQuitarPorPrima != 0)
                {
                    rCtz.QuiereCederComision = model.QuiereCederComision = false;
                    rCtz.porcentajeCede = model.nQuitarPorPrima;
                    //model.porcentajecomision = model.nQuitarPorPrima;
                }
                rCtz.PorcentajeComisionSource = new Dictionary<int, string>();
                for (int i = 0; i < 21; i++)
                {
                    rCtz.PorcentajeComisionSource.Add(i, i.ToString());
                }

                //rCtz.PorcentajeComisionSource = model.PorcentajeComisionSource;
                if (!ejecutaCalculo)
                {
                    DefaultCalculos(ref rCtz);

                    model.CalculoCotizacion = rCtz;
                    Session["ModeloEnUso"] = model;
                    return PartialView("_CotizarPartial", rCtz);
                }
                // Realiza el calculo
                string modulo = "C";
                Calculo(ref model, modulo);
                if (!CedeComision.cargado)
                {
                    CedeComision.ProcarOriginal = model.control;
                    CedeComision.primanetaOriginal = model.ObjCalculo.PrimaNetaInicial;
                    CedeComision.subtotalOriginal = model.ObjCalculo.mSubtotal;
                    CedeComision.totaloriginal = model.ObjCalculo.mTotal;
                    CedeComision.cargado = true;
                }

                ClsCotizacion cot = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(model);
                rCtz.QuiereCederComision = model.QuiereCederComision = true;
                double nvoprocar = 0;
                double quitarprima = 0;
                VarProcAMC objVarProcAMC = new VarProcAMC();
                objVarProcAMC.CedeComision(CedeComision.ProcarOriginal, CedeComision.primanetaOriginal, nvoprocar, ref quitarprima, rCtz.porcentajeCede, "C", cot);
                cot.control = Math.Round(cot.control, 2);
                string ModulodeTrabajo = model.ModulodeTrabajo;
                model = CentralAgentesMvc.App_Start.CastObject.Cast<GenericoViewModel>(cot);
                model.ModulodeTrabajo = ModulodeTrabajo;

                Calculo(ref model, modulo);
                if (model.formaPago == 0) model.formaPago = 1;
                ClsCalculo ObjCalculoRes = (ClsCalculo)model.calculos[model.formaPago - 1];
                rCtz.DerechoPoliza = decimal.Parse(ObjCalculoRes.dchosPoliza.ToString());
                rCtz.ExtensionRC = decimal.Parse(ObjCalculoRes.mcurExtRC.ToString());
                rCtz.AccidentesPersonales = decimal.Parse(ObjCalculoRes.mAP.ToString());
                rCtz.Recargos = decimal.Parse(ObjCalculoRes.RecPagFrac.ToString());
                rCtz.SubTotal = decimal.Parse(ObjCalculoRes.mSubtotal.ToString());
                rCtz.IVA = ObjCalculoRes.IVA;
                rCtz.PorcentajeIVA = ObjCalculoRes.PorcentajeIVA;
                rCtz.TotalCotizacion = decimal.Parse(ObjCalculoRes.mTotal.ToString());

                rCtz.mPago1de = (model.formaPago == 1 ? ObjCalculoRes.mTotal : ObjCalculoRes.mPago1de);
                rCtz.Descripcion2Pago = (model.formaPago == 3 ? "3" : ObjCalculoRes.nPago2de.ToString().Trim()) + " Pago(s) de.:";
                rCtz.mPago2de = (model.formaPago == 3 ? ObjCalculoRes.mPago1de : ObjCalculoRes.mPago2de);

                rCtz.OpcionesPagoInfo = new List<ClsOpcionesPago>();
                rCtz.VehiculosInfo = new List<ClsVehiculo>();

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 1,
                    DescripcionRubro = "Pago Inicial:",
                    PagoContado = string.Format("{0:C2}", ((ClsCalculo)model.calculos[0]).mTotal),
                    PagoSemestral = string.Format("{0:C2}", ((ClsCalculo)model.calculos[1]).mPago1de),
                    PagoTrimestral = string.Format("{0:C2}", ((ClsCalculo)model.calculos[2]).mPago1de),
                    PagoMensual = string.Format("{0:C2}", ((ClsCalculo)model.calculos[3]).mPago1de)
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 2,
                    DescripcionRubro = "Pagos Subsecuentes:",
                    PagoContado = string.Format("{0}", ""),
                    PagoSemestral = string.Format("{0:C2}", ((ClsCalculo)model.calculos[1]).mPago2de),
                    PagoTrimestral = string.Format("{0:C2}", ((ClsCalculo)model.calculos[2]).mPago1de),
                    PagoMensual = string.Format("{0:C2}", ((ClsCalculo)model.calculos[3]).mPago2de)
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 3,
                    DescripcionRubro = "Número de Pagos Subsecuentes:",
                    PagoContado = string.Format("{0}", ""),
                    PagoSemestral = string.Format("{0}", ((ClsCalculo)model.calculos[1]).nPago2de),
                    PagoTrimestral = string.Format("3"),
                    PagoMensual = string.Format("{0}", ((ClsCalculo)model.calculos[3]).nPago2de)
                });

                rCtz.OpcionesPagoInfo.Add(new ClsOpcionesPago()
                {
                    OpcionPagoID = 4,
                    DescripcionRubro = "<strong><i>Total:</i></strong>",
                    PagoContado = string.Format("<strong><i>{0:C2}</i></strong>", ((ClsCalculo)model.calculos[0]).mTotal),
                    PagoSemestral = string.Format("<strong><i>{0:C2}</i></strong>", ((ClsCalculo)model.calculos[1]).mTotal),
                    PagoTrimestral = string.Format("<strong><i>{0:C2}</i></strong>", ((ClsCalculo)model.calculos[2]).mTotal),
                    PagoMensual = string.Format("<strong><i>{0:C2}</i></strong>", ((ClsCalculo)model.calculos[3]).mTotal)
                });

                foreach (ClsVehiculo vehiculoCal in model.ObjCalculo.vehiculos)
                {
                    rCtz.VehiculosInfo.Add(new ClsVehiculo()
                    {
                        subRamo = vehiculoCal.subRamo,
                        nNumVehi = vehiculoCal.nNumVehi,
                        tpoEspecifAuto = vehiculoCal.DescripcionTipo.Trim(),
                        mSUVA = vehiculoCal.mSUVA,
                        mRespCivil = vehiculoCal.mRespCivil,
                        mAyDLegal = vehiculoCal.mAyDLegal,
                        mDañosMateria = vehiculoCal.mDañosMateria,
                        mRoboTot = vehiculoCal.mRoboTot,
                        mEquiEspec = vehiculoCal.mEquiEspec,
                        mAsisViaje = vehiculoCal.mAsisViaje,
                        mVehiSustitu = vehiculoCal.mVehiSustitu,
                        mTotCoberturas = vehiculoCal.mTotCoberturas,
                        mSA = vehiculoCal.mSA,
                        mcurExtRC = vehiculoCal.mcurExtRC,
                        mSubtotal = vehiculoCal.mSubtotal,
                        PorcentajeIVA = vehiculoCal.PorcentajeIVA,
                        mTotal = vehiculoCal.mTotal,
                    });
                }

                if (MensajesError.ErroresCalculo != null)
                {
                    if (MensajesError.ErroresCalculo.Count() > 0)
                        rCtz.WarningCalculoInfo = MensajesError.ErroresCalculo;
                }

                model.CalculoCotizacion = rCtz;
                Session["ModeloEnUso"] = model;
                return PartialView("_CotizarPartial", rCtz);
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                return Json("ErrInterno");
            }
        }
Example #3
0
        public JsonResult ResultadoCotizacion(CotizaExpressModel model)
        {
            try
            {
                if (model.OrigenCotExp == "Clientes")
                {
                    if (model.CaptchaText == HttpContext.Session["captchastring"].ToString())
                        ViewBag.Message = "CAPTCHA correcto!";
                    else
                    {
                        ViewBag.Message = "CAPTCHA incorrecto!";

                        ModelState["CaptchaText"].Errors.Add("CAPTCHA incorrecto!");
                    }
                }

                if (!ModelState.IsValid)
                {
                    return Json(new { success = false, errores = GetElementsFromModelState(), validaciones = "", view = model });
                }

                model.conductor.sexo = (model.EsHombre ? 0 : 1);
                model.conductor.nNumCond = 1;
                model.conductor.nombre = model.cotizacion.apellidoPaterno + " " + model.cotizacion.apellidoMaterno + " " + model.cotizacion.nombres;
                model.cotizacion.sexo = model.conductor.sexo;
                model.cotizacion.titulo = "C.";
                model.cotizacion.nombreAsegurado = model.conductor.nombre;

                model.cotizacion.conductores.Add(model.conductor);
                model.cotizacion.meses = 12;
                model.cotizacion.cobertura = 12;
                model.cotizacion.cEra = "N";
                model.cotizacion.conductorRestringido = 1;
                model.cotizacion.oficinaID = 1;
                model.cotizacion.agente = 4;
                model.cotizacion.clienteID = 1;
                var client = VarProcInterfazX.arrClientes.First(c => c.lngClave == 1);
                model.cotizacion.ClienteInfo = new ClsCliente()
                {
                    ClienteID = client.lngClave,
                    RazonSocial = client.strDescrip,
                };
                model.cotizacion.nomTitular = client.strDescrip;

                model.vehiculo.nNumVehi = 1;
                model.vehiculo.conducAsign = model.conductor.nNumCond = 1;
                model.vehiculo.cCOBER100SN = "";
                if (model.cotizacion.telefono.Count == 0)
                {
                    if (model.Telefonos == null)
                    {
                        model.Telefonos = new ClsTelefono();
                        model.Telefonos.cTel = "0";
                        model.Telefonos.cLada = "0";
                        model.Telefonos.cCelular = "0";
                    }
                    model.cotizacion.telefono.Add(model.Telefonos);
                    model.cotizacion.telefono[0].cLada = "55";
                    model.cotizacion.telefono[0].cCelular = "5555555555";
                    model.Telefonos.cHistorial = "";
                    model.Telefonos.cTpo1 = "";
                }

                if (model.vehiculo.subRamo == "L")
                {
                    model.vehiculo.modelo = 999;
                    model.vehiculo.DescripcionTipo = VarProcInterfazX.arrModelos.FirstOrDefault(t => t.lngClave == model.vehiculo.modelo).strModelo;
                    model.vehiculo.VIN = model.tipoVeh;
                }
                else
                {
                    model.vehiculo.modelo = int.Parse(model.tipoVeh);
                    model.vehiculo.DescripcionTipo = VarProcInterfazX.arrModelos.FirstOrDefault(t => t.lngClave == model.vehiculo.modelo).strModelo;
                }
                model.vehiculo.tpoEspecifAuto = model.vehiculo.DescripcionTipo;
                model.vehiculo.codigoPostal = model.cotizacion.codigoPostal;
                model.cotizacion.vehiculos.Add(model.vehiculo);
                model.cotizacion.numConductores = model.cotizacion.conductores.Count;
                model.cotizacion.numVehiculos = model.cotizacion.vehiculos.Count;
                model.cotizacion.meses = 12;
                model.cotizacion.cFormaPago = "T";
                model.cotizacion.tipoPago = "C";
                // poner aqui el valor que depende de donde vienen dirigidos

                string modulo = "C";
                ResumenCotizar rCtz = new ResumenCotizar();
                TempData.Keep("RsmClc");
                modulo = "C";
                GenericoViewModel ModeloGenerico = new GenericoViewModel();
                ModeloGenerico = CentralAgentesMvc.App_Start.CastObject.Cast<GenericoViewModel>(model.cotizacion);
                DataSet TpCober = MnInf.CargaTipoCotizaciones(model.OrigenCotExp);
                DataTable tblCoberturas = new DataTable("Cotizaciones");
                tblCoberturas.Columns.Add("TipoCobertura", typeof(string));
                tblCoberturas.Columns.Add("Contado", typeof(string));
                tblCoberturas.Columns.Add("Semestral", typeof(string));
                tblCoberturas.Columns.Add("Trimestral", typeof(string));
                tblCoberturas.Columns.Add("Mensual", typeof(string));
                switch (model.OrigenCotExp)
                {
                    #region clientes
                    case "Clientes":
                        CotizaExpressModel.coberturas = new List<CoberturasModel>();
                        model.vehiculo.sumAsegFija = "S";

                        int pvtCalculos = -1;

                        ModeloGenerico.tblCotizacionesCober = new DataTable("CotizacionesCober");
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("nOrdenCobertura", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("Cobertura", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("nFormaPago", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("desFormaPago", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("PagoIni", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("PagoSub", typeof(string));
                        ModeloGenerico.tblCotizacionesCober.Columns.Add("Total", typeof(string));

                        foreach (DataRow cobertura in TpCober.Tables[0].Rows)
                        {
                            CoberturasModel CalculoCober = new CoberturasModel();
                            CalculoCober.OrdenCobertura = int.Parse(cobertura["OrdenCobertura"].ToString());
                            CalculoCober.Nombre = cobertura["Nombre"].ToString();
                            CalculoCober.Descripcion = cobertura["Descripcion"].ToString();
                            CalculoCober.DM = int.Parse(cobertura["DM"].ToString());
                            CalculoCober.RT = int.Parse(cobertura["RT"].ToString());
                            CalculoCober.Cober100 = cobertura["Cober100"].ToString();
                            CalculoCober.Terssa = cobertura["Terssa"].ToString();
                            CalculoCober.ExtensionRC = cobertura["ExtensionRC"].ToString();
                            CalculoCober.GarageCasa = cobertura["GarageCasa"].ToString();
                            CalculoCober.GarageTrabajo = cobertura["GarageTrabajo"].ToString();
                            CalculoCober.Usotrabajo = cobertura["Usotrabajo"].ToString();
                            CalculoCober.RC = int.Parse(cobertura["RC"].ToString());
                            CalculoCober.RCcatastrofica = int.Parse(cobertura["RCcatastrofica"].ToString());
                            CalculoCober.AseLegal = cobertura["AseLegal"].ToString();
                            CalculoCober.SumaAseg = cobertura["SumaAseg"].ToString();
                            CalculoCober.VehSus = cobertura["VehSus"].ToString();
                            CalculoCober.Aviaje = cobertura["Aviaje"].ToString();
                            CalculoCober.BajoRiesgo = cobertura["BajoRiesgo"].ToString();
                            CalculoCober.MasAutos = cobertura["MasAutos"].ToString();
                            CalculoCober.Procar = int.Parse(cobertura["Procar"].ToString());
                            CalculoCober.Campaña = int.Parse(cobertura["Campaña"].ToString());
                            CalculoCober.DetalleCobertura = cobertura["DetalleCobertura"].ToString();
                            CalculoCober.GM = int.Parse(cobertura["GastosMedicos"].ToString());
                            CalculoCober.ExDedu = cobertura["ExenDeducible"].ToString();

                            ModeloGenerico.vehiculos[0].ExcenDedu = CalculoCober.ExDedu;
                            ModeloGenerico.vehiculos[0].coberGtoMed = CalculoCober.GM;
                            ModeloGenerico.vehiculos[0].deducDañMat = CalculoCober.DM;
                            ModeloGenerico.vehiculos[0].deducRobTot = CalculoCober.RT;
                            ModeloGenerico.vehiculos[0].cober100 = CalculoCober.Cober100;
                            ModeloGenerico.tersa = CalculoCober.Terssa == "N" ? 0 : 1;
                            ModeloGenerico.vehiculos[0].estacionaCasa = CalculoCober.GarageCasa;
                            ModeloGenerico.vehiculos[0].estacionaTrab = CalculoCober.GarageTrabajo;
                            ModeloGenerico.vehiculos[0].usoTrabajo = CalculoCober.Usotrabajo;
                            ModeloGenerico.vehiculos[0].coberRepCiv = CalculoCober.RC;
                            ModeloGenerico.vehiculos[0].coberRepCivCat = CalculoCober.RCcatastrofica;
                            ModeloGenerico.vehiculos[0].proliber = CalculoCober.AseLegal;
                            ModeloGenerico.vehiculos[0].sumAsegFija = CalculoCober.SumaAseg;
                            ModeloGenerico.vehiculos[0].vehSus = CalculoCober.VehSus;
                            ModeloGenerico.vehiculos[0].asistenciaViaje = CalculoCober.Aviaje;
                            ModeloGenerico.vehiculos[0].EsConductorBajoRiesgo = CalculoCober.BajoRiesgo;
                            ModeloGenerico.vehiculos[0].puertas = 4;
                            ModeloGenerico.vehiculos[0].cilindros = 4;
                            ModeloGenerico.vehiculos[0].validaSerie = "S";
                            ModeloGenerico.vehiculos[0].SUVA = "S";
                            ModeloGenerico.complemento.telefono = ModeloGenerico.telefono[0].cTel;
                            ModeloGenerico.conductorRestringido = CalculoCober.BajoRiesgo == "S" ? 0 : 1;
                            ModeloGenerico.conductores[0].extRespCivil = CalculoCober.Cober100 == "S" ? 1 : 0;
                            ModeloGenerico.cobertura100 = CalculoCober.Cober100 == "S" ? 1 : 0;
                            ModeloGenerico.masAutos = CalculoCober.MasAutos;
                            ModeloGenerico.control = CalculoCober.Procar;
                            //CtExp.cotizacion.campaña = 1549;
                            ValidaParaCotizara(ModeloGenerico);

                            Calculo(ref ModeloGenerico, modulo);
                            CotizaExpressModel.coberturas.Add(CalculoCober);
                            DataRow fila = tblCoberturas.NewRow();

                            fila["TipoCobertura"] = "<div class='col-xs-4 text-right'>" +
                                "<a id='popoverH" + CalculoCober.OrdenCobertura + "'" +
                                "   class='btn btn-sm btn-primary qtip-content'" +
                                "   role='button' onmouseover=\"tooltips(\'popoverH" + CalculoCober.OrdenCobertura + "\',\'" + CalculoCober.DetalleCobertura + "\',\'" + CalculoCober.Nombre + "\')\" > ?" +
                                "</a>" +
                                "</div><strong>" + CalculoCober.Nombre + "</strong>" + "</br>" + CalculoCober.Descripcion;

                            pvtCalculos++;
                            fila["Contado"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|1' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong> </br> Pago único";

                            /**********************************************************************************/
                            DataRow cotCoberFila = ModeloGenerico.tblCotizacionesCober.NewRow();
                            cotCoberFila["nOrdenCobertura"] = CalculoCober.OrdenCobertura;
                            cotCoberFila["Cobertura"] = CalculoCober.Nombre;
                            cotCoberFila["nFormaPago"] = "1";
                            cotCoberFila["desFormaPago"] = "Contado";
                            cotCoberFila["PagoIni"] = ModeloGenerico.calculos[pvtCalculos].mTotal;
                            cotCoberFila["PagoSub"] = "Pago único";
                            cotCoberFila["Total"] = ModeloGenerico.calculos[pvtCalculos].mTotal;
                            ModeloGenerico.tblCotizacionesCober.Rows.Add(cotCoberFila);
                            /***********************************************************************************/
                            pvtCalculos++;
                            fila["Semestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|2' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> primer pago de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de) + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago2de);
                            /************************************************************************************/
                            DataRow cotCoberFila2 = ModeloGenerico.tblCotizacionesCober.NewRow();
                            cotCoberFila2["nOrdenCobertura"] = CalculoCober.OrdenCobertura;
                            cotCoberFila2["Cobertura"] = CalculoCober.Nombre;
                            cotCoberFila2["nFormaPago"] = "2";
                            cotCoberFila2["desFormaPago"] = "Semestral";
                            cotCoberFila2["PagoIni"] = ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            cotCoberFila2["PagoSub"] = ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de " +
                                                                    ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            cotCoberFila2["Total"] = ModeloGenerico.calculos[pvtCalculos].mTotal;
                            ModeloGenerico.tblCotizacionesCober.Rows.Add(cotCoberFila2);
                            /******************************************************************************/
                            pvtCalculos++;
                            fila["Trimestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|3' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> cuatro pagos de  " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de);
                            /**********************************************************************************/
                            DataRow cotCoberFila3 = ModeloGenerico.tblCotizacionesCober.NewRow();
                            cotCoberFila3["nOrdenCobertura"] = CalculoCober.OrdenCobertura;
                            cotCoberFila3["Cobertura"] = CalculoCober.Nombre;
                            cotCoberFila3["nFormaPago"] = "3";
                            cotCoberFila3["desFormaPago"] = "Trimestral";
                            cotCoberFila3["PagoIni"] = ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            cotCoberFila3["PagoSub"] = "cuatro pagos de  " +
                                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            cotCoberFila3["Total"] = ModeloGenerico.calculos[pvtCalculos].mTotal;
                            ModeloGenerico.tblCotizacionesCober.Rows.Add(cotCoberFila3);
                            /**********************************************************************************/
                            pvtCalculos++;
                            fila["Mensual"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|4' type='radio'" + (CalculoCober.OrdenCobertura == 1 ? "checked='checked'" : "") + "> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> primer pago  de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de) + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de  " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago2de);
                            /**********************************************************************************/
                            DataRow cotCoberFila4 = ModeloGenerico.tblCotizacionesCober.NewRow();
                            cotCoberFila4["nOrdenCobertura"] = CalculoCober.OrdenCobertura;
                            cotCoberFila4["Cobertura"] = CalculoCober.Nombre;
                            cotCoberFila4["nFormaPago"] = "4";
                            cotCoberFila4["desFormaPago"] = "Mensual";
                            cotCoberFila4["PagoIni"] = ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            cotCoberFila4["PagoSub"] = ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de  " +
                                                                ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            cotCoberFila4["Total"] = ModeloGenerico.calculos[pvtCalculos].mTotal;
                            ModeloGenerico.tblCotizacionesCober.Rows.Add(cotCoberFila4);
                            /**************************************************************************************/
                            tblCoberturas.Rows.Add(fila);
                        }
                        ModeloGenerico.ObjCalculo = ModeloGenerico.calculos[1];
                        //var responsa                                        = VarProcInterfazX.arrAgentes.Where(a => a.lngAgente == long.Parse(agentID)).First().cresponsa;
                        //ModeloGenerico.responsable              = responsa == "" ? "XX" : responsa;
                        ModeloGenerico.agente = 0;
                        ModeloGenerico.formaPago = 4;
                        ModeloGenerico.complemento.primaNeta = ModeloGenerico.ObjCalculo.primaNeta;
                        ModeloGenerico.complemento.interes = "COB";
                        CoberturasModel cbrSeleccionada = CotizaExpressModel.coberturas[0];
                        Dictionary<string, object> resultado = new Dictionary<string, object>();

                        ModeloGenerico.cEra = VarProcInterfazX.arrPago[1].strEra;

                        ModeloGenerico.vehiculos = ModeloGenerico.calculos[0].vehiculos;

                        ModeloGenerico.vehiculos[0].ExcenDedu = cbrSeleccionada.ExDedu;
                        ModeloGenerico.vehiculos[0].coberGtoMed = cbrSeleccionada.GM;
                        ModeloGenerico.vehiculos[0].deducDañMat = cbrSeleccionada.DM;
                        ModeloGenerico.vehiculos[0].deducRobTot = cbrSeleccionada.RT;
                        ModeloGenerico.vehiculos[0].cober100 = cbrSeleccionada.Cober100;
                        ModeloGenerico.tersa = cbrSeleccionada.Terssa == "N" ? 0 : 1;
                        ModeloGenerico.vehiculos[0].estacionaCasa = cbrSeleccionada.GarageCasa;
                        ModeloGenerico.vehiculos[0].estacionaTrab = cbrSeleccionada.GarageTrabajo;
                        ModeloGenerico.vehiculos[0].usoTrabajo = cbrSeleccionada.Usotrabajo;
                        ModeloGenerico.vehiculos[0].coberRepCiv = cbrSeleccionada.RC;
                        ModeloGenerico.vehiculos[0].coberRepCivCat = cbrSeleccionada.RCcatastrofica;
                        ModeloGenerico.vehiculos[0].proliber = cbrSeleccionada.AseLegal;
                        ModeloGenerico.vehiculos[0].sumAsegFija = cbrSeleccionada.SumaAseg;
                        ModeloGenerico.vehiculos[0].vehSus = cbrSeleccionada.VehSus;
                        ModeloGenerico.vehiculos[0].asistenciaViaje = cbrSeleccionada.Aviaje;
                        ModeloGenerico.vehiculos[0].EsConductorBajoRiesgo = cbrSeleccionada.BajoRiesgo;
                        ModeloGenerico.conductorRestringido = cbrSeleccionada.BajoRiesgo == "S" ? 0 : 1;
                        ModeloGenerico.masAutos = cbrSeleccionada.MasAutos;
                        ModeloGenerico.control = cbrSeleccionada.Procar;

                        ModeloGenerico.conductores[0].extRespCivil = cbrSeleccionada.ExtensionRC == "S" ? 1 : 0;
                        ModeloGenerico.cobertura100 = cbrSeleccionada.Cober100 == "S" ? 1 : 0;

                        ModeloGenerico.conductores[0].DescripcionExRespCivil = ModeloGenerico.conductores[0].extRespCivil == 1 ? "Sí" : "No";
                        ModeloGenerico.estatus = "H";
                        ModeloGenerico.cVendida = "I";
                        ModeloGenerico.responsable = "XX";
                        ModeloGenerico.fechaCotizacion = DateTime.Now;
                        ModeloGenerico.inicioVigencia = DateTime.Now.ToShortDateString();
                        ModeloGenerico.finVigencia = DateTime.Now.AddYears(1).ToShortDateString();
                        ModeloGenerico.persona = "F";
                        ModeloGenerico.contraEntrega = "";
                        ModeloGenerico.entregaPol = "N";
                        ModeloGenerico.entregaComen = " ";
                        ModeloGenerico.campaña = 1549;
                        ModeloGenerico.subRamo = "1";
                        ModeloGenerico.ramo = 1;
                        ModeloGenerico.comentariosV = "Cotización generada en línea por cotizador exprés";
                        ModeloGenerico.observaciones = "";
                        CotizaExpressModel.CotComp = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(ModeloGenerico);
                        resultado = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(ModeloGenerico).GuardaCotizacionWeb(CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(ModeloGenerico), "A", "");
                        ModeloGenerico.cotizacionID = int.Parse(resultado["ID"].ToString());
                        ModeloGenerico.ModulodeTrabajo = "Cotizaciones";
                        ViewBag.idCotizacion = ModeloGenerico.cotizacionID;
                        //CotizaExpressModel.CotComp = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(ModeloGenerico);

                        break;
                    #endregion

                    #region Agentes
                    case "Agentes":
                        ModeloGenerico.vehiculos[0].sumAsegFija = model.vehiculo.sumAsegFija.Substring(0, 1) == "V" ? "F" : model.vehiculo.sumAsegFija.Substring(0, 1);
                        CotizaExpressModel.coberturas = new List<CoberturasModel>();
                        pvtCalculos = -1;
                        foreach (DataRow cobertura in TpCober.Tables[0].Rows)
                        {
                            CoberturasModel CalculoCober = new CoberturasModel();
                            CalculoCober.OrdenCobertura = int.Parse(cobertura["OrdenCobertura"].ToString());
                            CalculoCober.Nombre = cobertura["Nombre"].ToString();
                            CalculoCober.Descripcion = cobertura["Descripcion"].ToString();

                            ModeloGenerico.vehiculos[0].ExcenDedu = CalculoCober.ExDedu = CalculoCober.ExDedu = cobertura["ExenDeducible"].ToString();
                            ModeloGenerico.vehiculos[0].coberGtoMed = CalculoCober.GM = int.Parse(cobertura["GastosMedicos"].ToString());
                            ModeloGenerico.vehiculos[0].deducDañMat = CalculoCober.DM = int.Parse(cobertura["DM"].ToString());
                            ModeloGenerico.vehiculos[0].deducRobTot = CalculoCober.RT = int.Parse(cobertura["RT"].ToString());
                            ModeloGenerico.vehiculos[0].cober100 = CalculoCober.Cober100 = cobertura["Cober100"].ToString();
                            ModeloGenerico.vehiculos[0].estacionaTrab = CalculoCober.GarageTrabajo = cobertura["GarageTrabajo"].ToString();
                            ModeloGenerico.vehiculos[0].estacionaCasa = CalculoCober.GarageCasa = cobertura["GarageCasa"].ToString();
                            //ModeloGenerico.vehiculos[0].usoTrabajo = CalculoCober.Usotrabajo = cobertura["Usotrabajo"].ToString();
                            ModeloGenerico.masAutos = CalculoCober.MasAutos = cobertura["MasAutos"].ToString();
                            CalculoCober.Procar = int.Parse(cobertura["Procar"].ToString());
                            ModeloGenerico.cobertura100 = CalculoCober.Cober100 == "S" ? 1 : 0;
                            if (ModeloGenerico.cobertura100 == 0)
                            {
                                ModeloGenerico.conductores[0].extRespCivil = 0;
                                ModeloGenerico.vehiculos[0].cober100 = "N";
                            }
                            ValidaParaCotizara(ModeloGenerico);
                            Calculo(ref ModeloGenerico, modulo);
                            CotizaExpressModel.coberturas.Add(CalculoCober);
                            DataRow fila = tblCoberturas.NewRow();
                            fila["TipoCobertura"] = "<strong>" + CalculoCober.Nombre + "</strong>" + "</br>" + CalculoCober.Descripcion;

                            pvtCalculos++;
                            fila["Contado"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|1' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong> </br> Pago único";
                            pvtCalculos++;
                            fila["Semestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|2' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> primer pago de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de) + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago2de);
                            pvtCalculos++;
                            fila["Trimestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|3' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> cuatro pagos de  " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de);
                            pvtCalculos++;
                            fila["Mensual"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|4' type='radio'> <strong>" +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mTotal) + "</strong></br> primer pago  de " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago1de) + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de  " +
                                                    string.Format("{0:C2}", ModeloGenerico.calculos[pvtCalculos].mPago2de);
                            tblCoberturas.Rows.Add(fila);
                        }
                        break;
                    #endregion

                    #region Servidores
                    case "Servidores":
                        modulo = "C";

                        CotizaExpressModel.coberturas = new List<CoberturasModel>();
                        pvtCalculos = -1;
                        foreach (DataRow cobertura in TpCober.Tables[0].Rows)
                        {
                            CoberturasModel CalculoCober = new CoberturasModel();
                            CalculoCober.OrdenCobertura = int.Parse(cobertura["OrdenCobertura"].ToString());
                            CalculoCober.Nombre = cobertura["Nombre"].ToString();
                            CalculoCober.Descripcion = cobertura["Descripcion"].ToString();
                            ModeloGenerico.vehiculos[0].cober100 = CalculoCober.Cober100 = cobertura["Cober100"].ToString();
                            ModeloGenerico.vehiculos[0].deducDañMat = CalculoCober.DM = int.Parse(cobertura["DM"].ToString());
                            model.cotizacion.vehiculos[0].deducRobTot = CalculoCober.RT = int.Parse(cobertura["RT"].ToString());
                            CalculoCober.Terssa = cobertura["Terssa"].ToString();
                            CalculoCober.ExtensionRC = cobertura["ExtensionRC"].ToString();
                            Calculo(ref ModeloGenerico, modulo);
                            CotizaExpressModel.coberturas.Add(CalculoCober);
                            DataRow fila = tblCoberturas.NewRow();
                            fila["TipoCobertura"] = "<strong>" + CalculoCober.Nombre + "</strong>" + "</br>" + CalculoCober.Descripcion;

                            pvtCalculos++;
                            fila["Contado"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|1' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong> </br>  Pago único";
                            pvtCalculos++;
                            fila["Semestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|2' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> primer pago de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            pvtCalculos++;
                            fila["Trimestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|3' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> cuatro pagos de  " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            pvtCalculos++;
                            fila["Mensual"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|4' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> primer pago  de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de  " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            tblCoberturas.Rows.Add(fila);
                        }
                        break;
                    #endregion

                    #region Prestadinero
                    case "Prestadinero":
                        modulo = "C";

                        CotizaExpressModel.coberturas = new List<CoberturasModel>();
                        pvtCalculos = -1;
                        foreach (DataRow cobertura in TpCober.Tables[0].Rows)
                        {
                            CoberturasModel CalculoCober = new CoberturasModel();
                            CalculoCober.OrdenCobertura = int.Parse(cobertura["OrdenCobertura"].ToString());
                            CalculoCober.Nombre = cobertura["Nombre"].ToString();
                            CalculoCober.Descripcion = cobertura["Descripcion"].ToString();
                            ModeloGenerico.vehiculos[0].cober100 = CalculoCober.Cober100 = cobertura["Cober100"].ToString();
                            ModeloGenerico.vehiculos[0].deducDañMat = CalculoCober.DM = int.Parse(cobertura["DM"].ToString());
                            model.cotizacion.vehiculos[0].deducRobTot = CalculoCober.RT = int.Parse(cobertura["RT"].ToString());
                            CalculoCober.Terssa = cobertura["Terssa"].ToString();
                            CalculoCober.ExtensionRC = cobertura["ExtensionRC"].ToString();
                            Calculo(ref ModeloGenerico, modulo);
                            CotizaExpressModel.coberturas.Add(CalculoCober);
                            DataRow fila = tblCoberturas.NewRow();
                            fila["TipoCobertura"] = "<strong>" + CalculoCober.Nombre + "</strong>" + "</br>" + CalculoCober.Descripcion;

                            pvtCalculos++;
                            fila["Contado"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|1' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong> </br>  Pago único";
                            pvtCalculos++;
                            fila["Semestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|2' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> primer pago de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            pvtCalculos++;
                            fila["Trimestral"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|3' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> cuatro pagos de  " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de;
                            pvtCalculos++;
                            fila["Mensual"] = "<input name='savecoti' value='" + CalculoCober.OrdenCobertura + "|4' type='radio'> <strong>" +
                                                    ModeloGenerico.calculos[pvtCalculos].mTotal + "</strong></br> primer pago  de " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago1de + " y " +
                                                    ModeloGenerico.calculos[pvtCalculos].nPago2de + " pagos de  " +
                                                    ModeloGenerico.calculos[pvtCalculos].mPago2de;
                            tblCoberturas.Rows.Add(fila);
                        }
                        break;
                    #endregion
                }

                Session["ModeloEnUso"] = ModeloGenerico;
                CotizaExpressModel.CotComp = new ClsCotizacion();
                CotizaExpressModel.CotComp = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(ModeloGenerico);

                int totalRows = 0;

                var data = tblCoberturas;

                ClearErrors();
                return Json(from g in data.Select()
                            select new
                            {
                                //chkSelect = false,
                                TipoCobertura = g["TipoCobertura"],
                                Contado = g["Contado"],
                                Semestral = g["Semestral"],
                                Trimestral = g["Trimestral"],
                                Mensual = g["Mensual"],
                                IdCoti = "Cotización No: " + ModeloGenerico.cotizacionID,
                                total = totalRows,
                            }, JsonRequestBehavior.AllowGet);
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                return Json("ErrInterno");
            }
        }