Exemplo n.º 1
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;
            }
        }