예제 #1
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");
            }
        }
예제 #2
0
 private void ValidaParaCotizara(GenericoViewModel modeloEvalua)
 {
     //VldVeh.validaMarca(modeloEvalua.vehiculos[0].modelo, modeloEvalua.vehiculos[0].DescripcionTipo);
     //ValidaVehiculos(modeloEvalua.tipo);
     //ValidaVehiculos(modeloEvalua.formaPago.ToString());
     //modeloEvalua.vehiculos[0].ValidaConductorMenorDe25(
 }
예제 #3
0
        public void Calculo(ref GenericoViewModel model, string Tipo)
        {
            try
            {
                model.conductores.Remove(model.conductores.FirstOrDefault(x => x.nombre == "-- Seleccione un conductor asignado --"));
                switch (Tipo)
                {
                    case "C":
                        /************************************************************/
                        if (model.vehiculos.Count == model.numVehiculos && model.conductores.Count == model.numConductores)
                        {
                            var logged = (DataSet)Session["UserObj"];
                            ClsComplemento Modi = new ClsComplemento();
                            VarProcAMC objVarProcAMC = new VarProcAMC();
                            model.periodo = VarProcAMC.strPeriodo;
                            double curDerechoEndoso = 0;
                            if (!string.IsNullOrEmpty(model.ModulodeTrabajo))
                            {
                                model.calculos = new List<ClsCalculo>();
                            }
                            //rCtz.cotizacion.CalculaCotizacion(rCtz.cotizacion, logged.Tables["catAgentes"].Rows[0]["nAgenteID"].ToString(), MnInf.ConvierteCobertura100(rCtz.cotizacion, "C"), MnInf.ConvierteTersa(rCtz.cotizacion, "C"), false);
                            //MnInf.LlenarlvCot(FrmDetalleGeneral.objCotizacion, strOrigen, "lvCot");
                            if (model.calculos == null)
                                model.calculos = new List<ClsCalculo>();
                            else
                            {
                                if (model.nQuitarPorPrima != 0)
                                {
                                    model.calculos.Clear();
                                }
                            }

                            for (int i = 1; i < 5; )
                            {
                                ClsCalculo ObjCalculo = new ClsCalculo();
                                int contCober = 0;
                                int contCond = 0;
                                int cobertura100 = VldVeh.ValidaConvierteCobertura100(ref contCober, ref contCond, model.cobertura100, model.vehiculos, model.conductores, "C");
                                int contTerssa = 0;
                                int terssa = VldVeh.ValidaConvierteTerssa(ref contTerssa, model.tersa, model.vehiculos, "C");
                                MnInf.LlenaObjetoCalculo(CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(model), "C", ref ObjCalculo, i);
                                if (objVarProcAMC.CalculaPrimas(ref ObjCalculo, ref curDerechoEndoso, VarProcAMC.strPeriodo, 0, "A", true, 0, 0, contCober, contTerssa, "") == true)
                                {
                                    model.ObjCalculo = ObjCalculo;
                                    model.complemento.precioAguila = ObjCalculo.mTotal;
                                }
                                else
                                {
                                    //MessageBox.Show("Error en cálculo");
                                    //return;
                                }
                                model.calculos.Add(ObjCalculo);
                                i++;
                            }
                            if (model.formaPago > 0)
                            {
                                model.ObjCalculo = model.calculos[model.formaPago - 1];
                                objVarProcAMC = new VarProcAMC();
                                model.RevisaCedeComision(CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(model), model.QuiereCederComision, model.ObjCalculo.primaNeta, "C");
                                model.vehiculos = model.ObjCalculo.vehiculos;
                            }
                        }
                        else
                        {
                            if (model.vehiculos.Count != model.numVehiculos)
                                MensajesError.ErroresCalculo.Add("No se han capturado todos los vehiculos especificados.");

                            if (model.conductores.Count != model.numConductores)
                                MensajesError.ErroresCalculo.Add("No se han capturado todos los conductores especificados.");
                        }
                        /************************************************************************/
                        break;
                    case "R":
                        break;
                }
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #4
0
 private void GuardaEnMemoria(GenericoViewModel gm)
 {
     try
     {
         var ctz = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(gm);
         GuardaEnMemoria(gm, ctz);
     }
     catch (Exception err)
     {
         throw err;
     }
 }
예제 #5
0
 private void GuardaEnMemoria(GenericoViewModel gm, ClsCotizacion ctz)
 {
     try
     {
         // Guardo el modelo
         Session["ModeloEnUso"] = gm;
         ctz.calculos = new List<ClsCalculo>();
         Session["objACotizar"] = ctz;
     }
     catch (Exception err)
     {
         throw err;
     }
 }
예제 #6
0
        /// <summary>
        /// GET Accion para crear un nuevo documento
        /// </summary>
        /// <param name="modulo">Modulo que se esta trabajando:
        ///                         Cotizaciones
        ///                         Reovaciones
        ///                         Polizas
        /// </param>
        /// <returns></returns>
        public ActionResult CreateDocumento(string modulo)
        {
            try
            {
                GenericoViewModel gm = new GenericoViewModel();
                gm.VendidaPor = "Internet";
                gm.cVendida = "I";
                ViewBag.IsNew = gm.IsNew = true;

                // Seteo las propiedades de lista
                SetCotizacionListProperties(ref gm);

                // Seteo los valores por defecto
                var logged = (DataSet)Session["UserObj"];
                gm.ModulodeTrabajo = modulo;
                gm.meses = 12;
                gm.cobertura = 12;
                gm.AplicaTERSSA = true;
                gm.AplicaCobertura100 = false;
                gm.AplicaERA = false;
                gm.conductorRestringido = 1;
                gm.EsHombre = true;
                gm.EsPersonaFisica = true;
                gm.QuiereCederComision = false;
                gm.strchkCedeComision = "N";
                gm.chkCedeComision = "N";
                gm.porcentajecomision = 0;
                gm.cEndosoCancela = "N";
                gm.control = 30;
                gm.fechaCotizacion = DateTime.Now;
                gm.oficinaID = Convert.ToInt32(logged.Tables["catAgentes"].Rows[0]["nOficinaID"]);
                gm.agente = Convert.ToInt32(logged.Tables["catAgentes"].Rows[0]["nAgenteID"]);
                gm.clienteID = 1;
                gm.tipoPago = "C";

                // Seteo los datos relacionados
                SetRelatedData(ref gm);

                // Default nFormaPago = 1
                gm.formaPago = 1;
                gm.cFormaPago = "T";
                gm.ValidaFormaPago(gm.formaPago.ToString());

                //Agente Responsable
                var agenteResponsable = VarProcInterfazX.arrAgentes.Where(agente => agente.lngAgente == gm.agente).First().cresponsa;
                gm.responsable = agenteResponsable == "" ? "XX" : agenteResponsable;

                var descOfc = "agentes " + (gm.oficinaID == 1 ? "df" : gm.OficinasSource.First(o => o.strCve == gm.oficinaID.ToString()).strDesc.ToLower());
                var campain = gm.CampañasSource.FirstOrDefault(c => c.strDesc.ToLower().Trim() == descOfc);
                if (campain != null)
                    gm.campaña = Convert.ToInt32(campain.strCve);

                // Guardo el modelo
                GuardaEnMemoria(gm);

                // Retorno la vista
                return PartialView("DatosGenerales", gm);
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                return Json("ErrInterno");
            }
        }
예제 #7
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");
            }
        }
예제 #8
0
 private void SetPorcentajeComisionList(ref GenericoViewModel model)
 {
     try
     {
         model.PorcentajeComisionSource = new Dictionary<int, string>();
         for (int i = 0; i < 21; i++)
         {
             model.PorcentajeComisionSource.Add(i, i.ToString());
         }
     }
     catch (Exception err)
     {
         Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
         LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
         throw err;
     }
 }
예제 #9
0
        private void SetRelatedData(ref GenericoViewModel model)
        {
            try
            {
                var prmID = model.promocion;
                var promo = VarProcInterfazX.arrPromocion.FirstOrDefault(p => p.nPromocionId == prmID);
                if (promo != null)
                {
                    model.nomPromocion = promo.cNombre;
                }

                var clieID = model.clienteID == 0 ? 1 : model.clienteID;
                model.clienteID = clieID;
                var client = VarProcInterfazX.arrClientes.First(c => c.lngClave == clieID);
                model.ClienteInfo = new ClsCliente()
                {
                    ClienteID = client.lngClave,
                    RazonSocial = client.strDescrip,
                };
                model.nomTitular = client.strDescrip;
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #10
0
 private void SetHerenciaProperties(ref VehiculoModel car, GenericoViewModel modelComplete)
 {
     try
     {
         // Datos heredados de póliza
         car.titulo = modelComplete.titulo;
         car.apellidoPaterno = modelComplete.apellidoPaterno;
         car.apellidoMaterno = modelComplete.apellidoMaterno;
         car.nombres = modelComplete.nombres;
         car.campaña = modelComplete.campaña;
         car.numConductores = modelComplete.numConductores;
         car.numVehiculos = modelComplete.numVehiculos;
     }
     catch (Exception err)
     {
         Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
         LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
         throw err;
     }
 }
예제 #11
0
        private void SetMediosDePago(ref GenericoViewModel d)
        {
            try
            {
                // Cargo los pagos en una unica colección
                d.DocumentosPago = new List<DesglosePagoModel>();
                if (d.TarjetCredito != null)
                {
                    foreach (var tc in d.TarjetCredito)
                    {
                        var dp = new DesglosePagoModel()
                        {
                            TipoPagoDesc = "TARJETA DE CREDITO",
                            ID = tc.ID,
                            cTpoTarjeta = tc.cTpoTarjeta,
                            cBancoDesc = tc.cBancoDesc,
                            mMonto = tc.mMonto,
                            mMontoSig = tc.mMontoSig,
                            cNoTarjeta = tc.cNoTarjeta,
                            dfVigtarjeta = tc.dfVigtarjeta.Substring(3),
                            VigenciaMonth = tc.dfVigtarjeta.Substring(3, 2),
                            VigenciaYear = tc.dfVigtarjeta.Substring(6),
                            cTitular = tc.cTitular,
                            cCodNegro = tc.cCodNegro,
                        };

                        d.DocumentosPago.Add(dp);
                    }
                }
                if (d.TarjetaDebito != null)
                {
                    foreach (var td in d.TarjetaDebito)
                    {
                        var dp = new DesglosePagoModel()
                        {
                            TipoPagoDesc = "TARJETA DE DEBITO",
                            ID = td.ID,
                            cTpoTarjeta = td.cTpoTarjeta,
                            cBancoDesc = td.cBancoDesc,
                            mMonto = td.mMonto,
                            mMontoSig = td.mMontoSig,
                            cNoTarjeta = td.cNoTarjeta,
                            dfVigtarjeta = td.dfVigtarjeta.Substring(3),
                            VigenciaMonth = td.dfVigtarjeta.Substring(3, 2),
                            VigenciaYear = td.dfVigtarjeta.Substring(6),
                            cTitular = td.cTitular,
                            cCodNegro = "",
                        };
                        d.DocumentosPago.Add(dp);
                    }
                }
                if (d.pagos != null)
                {
                    if (d.pagos.pagoOtro != null)
                    {
                        foreach (var op in d.pagos.pagoOtro)
                        {
                            var dp = new DesglosePagoModel()
                            {
                                TipoPagoDesc = op.nFormaPagoIDDesc,
                                ID = op.ID,
                                cTpoTarjeta = "",
                                cBancoDesc = "",
                                mMonto = op.mMonto,
                                mMontoSig = op.mMontoSig,
                                cNoTarjeta = "",
                                dfVigtarjeta = "",
                                VigenciaMonth = "",
                                VigenciaYear = "",
                                cTitular = "",
                                cCodNegro = "",
                            };
                            d.DocumentosPago.Add(dp);
                        }
                    }
                }
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #12
0
        /// <summary>
        /// Método que llena las listas de los dropdown
        /// </summary>
        /// <param name="model">Model en ejecución</param>
        private void SetCotizacionListProperties(ref GenericoViewModel model)
        {
            try
            {
                DropDownList ddlRiesgo = new DropDownList();
                ctlg.CargaCmbCondRestWeb(ddlRiesgo);
                Dictionary<int, string> riesgos = new Dictionary<int, string>();
                for (int i = 0; i < ddlRiesgo.Items.Count; i++)
                {
                    int idx = (ddlRiesgo.Items[i].Text.ToLower() == "no" ? 1 : (ddlRiesgo.Items[i].Text.ToLower() == "sí" ? 0 : 2));
                    riesgos.Add(idx, ddlRiesgo.Items[i].Text);
                }

                DropDownList ddlCobr = new DropDownList();
                ctlg.CargaCmbCoberturaWeb(ddlCobr);

                model.OficinasSource = VarProcInterfazX.arrCatOfic;
                model.CampañasSource = VarProcInterfazX.arrCampañas;
                model.AgentesSource = VarProcInterfazX.arrAgentes;
                model.PromocionesSource = VarProcInterfazX.arrPromocion;
                model.FormaPagoSource = VarProcInterfazX.arrTipoPago;
                model.TipoPagoSource = VarProcInterfazX.arrPago;
                model.RiesgoConductorSource = riesgos;
                model.CoberturaSource = ddlCobr.Items;
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #13
0
        private void GuardaEnMemoria(GenericoViewModel gm, ClsCotizacion ctz)
        {
            try
            {
                // Guardo el modelo
                Session["ModeloEnUso"] = gm;

                ctz.calculos = new List<ClsCalculo>();
                Session["objACotizar"] = ctz;
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #14
0
        private void GuardaEnMemoria(GenericoViewModel gm)
        {
            try
            {
                if (gm.ModulodeTrabajo == "Cotizaciones")
                {
                    var ctz = CentralAgentesMvc.App_Start.CastObject.Cast<ClsCotizacion>(gm);
                    GuardaEnMemoria(gm, ctz);
                }
                else
                {
                    var rnv = CentralAgentesMvc.App_Start.CastObject.Cast<ClsRenovaciones>(gm);

                    // Guardo el modelo
                    Session["ModeloEnUso"] = gm;

                }
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #15
0
        private GenericoViewModel GetDataObject(string id, string modulo)
        {
            try
            {
                var logged = ((DataSet)Session["UserObj"]).Tables["catAgentes"].Rows[0]["nAgenteID"].ToString();
                GenericoViewModel model = new GenericoViewModel();

                switch (modulo.ToLower())
                {
                    case "cotizaciones":
                        {
                            #region //regresar todo action como estaba
                            string usuarioEnCotizacion = "";
                            ClsCotizacion cotizacion = ClsCotizacion.CargaCotiza(ref usuarioEnCotizacion, id, VarProcAMC.strPeriodo, logged, "Si");

                            if (logged != usuarioEnCotizacion)
                            {
                                Logear loginUsu = new Logear();
                                var nombreUsuario = loginUsu.NombrePosesionCotizacion(usuarioEnCotizacion);
                            }
                            #endregion

                            ViewBag.Title = "Detalle Cotización";
                            ViewBag.SubTitle = "cotización";
                            model = CentralAgentesMvc.App_Start.CastObject.Cast<GenericoViewModel>(cotizacion);
                            if (!string.IsNullOrEmpty(model.nSolicitud))
                            {
                                model.dataExtraPoliza = CentralAgentesMvc.App_Start.CastObject.Cast<CentralAgentesMvc.Models.DataExtraPoliza>(cotizacion.getExtraCotiza(long.Parse(model.nSolicitud),1));
                            }
                            else {
                                model.dataExtraPoliza = new Models.DataExtraPoliza();
                            }
                        }
                        break;

                    case "renovaciones":
                        {
                            ViewBag.Title = "Detalle Renovación";
                            ViewBag.SubTitle = "renovación";
                            ClsRenovaciones renovacion = ClsRenovaciones.CargaRenovacion(Convert.ToInt64(id), 0, logged, "");
                            //renovacion.SeguimientoPol.Hora = renovacion.SeguimientoPol.Hora.Substring(11);
                            ClsCotizacion cotizacion = new ClsCotizacion();
                            if (renovacion.complemento == null) renovacion.complemento = new ClsComplemento();

                            model = CentralAgentesMvc.App_Start.CastObject.Cast<GenericoViewModel>(renovacion);
                            model.dataExtraPoliza = CentralAgentesMvc.App_Start.CastObject.Cast<CentralAgentesMvc.Models.DataExtraPoliza>(cotizacion.getExtraCotiza(renovacion.solicitudID,2));
                        }
                        break;
                }

                return model;
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                throw err;
            }
        }
예제 #16
0
        public ActionResult UpdateDatosGenerales(GenericoViewModel model)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return Json(new { success = false, errores = GetElementsFromModelState(), validaciones = "" });
                }

                // Recupero el modelo
                GenericoViewModel modelComplete = (GenericoViewModel)Session["ModeloEnUso"];
                model.QuiereCederComision = false;
                CedeComision.cargado = false;
                model.conductores = modelComplete.conductores;
                model.vehiculos = modelComplete.vehiculos;
                model.complemento = modelComplete.complemento;
                model.prospectos = modelComplete.prospectos;
                model.direcciones = modelComplete.direcciones;
                model.telefono = modelComplete.telefono;
                model.SeguimientoPol = modelComplete.SeguimientoPol;
                model.TarjetCredito = modelComplete.TarjetCredito;
                model.TarjetaDebito = modelComplete.TarjetaDebito;
                model.pagos = modelComplete.pagos;
                model.sexo = (model.EsHombre ? 0 : 1);
                model.DescripcionSexo = (model.EsHombre ? "Masculino" : "Femenino");
                model.persona = (model.EsPersonaFisica ? "0" : "1");
                model.recomienda = modelComplete.recomienda;

                //model.control         = modelComplete.procarinicial;

                // Valido Cobertura 100
                if ((model.vehiculos != null) && (model.conductores != null))
                {
                    ValidaVehiculos vv = new ValidaVehiculos();
                    int contCober = 0;
                    int contCond = 0;
                    model.cobertura100 = vv.ValidaConvierteCobertura100Siempre(ref contCober
                                                                             , ref contCond
                                                                             , model.cobertura100
                                                                             , model.vehiculos
                                                                             , model.conductores
                                                                             , "C");
                }

                //Mandar Tipo Pago 1 Default
                modelComplete.ValidaFormaPago(model.formaPago.ToString());

                //Responsable
                model.responsable = modelComplete.responsable;

                if (model.telefono == null)
                {
                    if ((model.PrimerTelefono.Length > 0) && (model.PrimerTelefono != null))
                    {
                        model.telefono = new List<ClsTelefono>();
                        ClsTelefono phone = new ClsTelefono(model.PrimerTelefono);
                        phone.cLada = phone.cCelular = phone.cExtension = phone.cFax = phone.cHistorial = phone.cOficina = phone.cOtro1 = phone.cRadio = phone.cRadioID = "";
                        phone.cTpo1 = "O";
                        model.telefono.Add(phone);
                    }
                }

                if (model.IsNew)
                {
                    SetRelatedData(ref model);
                }
                if (model.cNombreFinanciamiento == null)
                {
                    model.cNombreFinanciamiento = "";
                }
                // Guardo el modelo
                model.subRamo = modelComplete.subRamo;
                GuardaEnMemoria(model);
                ClearErrors();

                // Redirecciono
                return RedirectToAction("CreateConductor");
            }
            catch (Exception err)
            {
                Response.StatusCode = (int)(System.Net.HttpStatusCode.InternalServerError);
                LogDeErrores.RegistroErrorWeb(err, DatoUsuario.idAgente, DatoUsuario.nomAgente, DatoUsuario.sIp, DatoUsuario.sHostName);
                return Json("ErrInterno");
            }
        }