Пример #1
0
        //public void SaveCotizacionTransporteCuota(double prima, int cotizacionID)
        //{
        //    //Grabar Cotizacion
        //    IUnitOfWork unitOfWork = _cotizacionRepository.UnitOfWork as IUnitOfWork;
        //    Cotizacion cotDatos = _cotizacionRepository.FindCotizacionTransporte(cotizacionID);
        //    //double? newCuota;

        //    if (cotDatos.isNew)
        //    {
        //        cotDatos.bk_te_CotizacionTrans.primaNetaNuevo = prima;
        //        cotDatos.bk_te_CotizacionTrans.CuotaNuevo = prima / cotDatos.bk_te_CotizacionTrans.EstimadoAnual;
        //        //newCuota = cotDatos.bk_te_CotizacionTrans.CuotaNuevo;
        //    }
        //    else
        //    {
        //        cotDatos.bk_te_CotizacionTrans.primaNetaRenovacion = prima;
        //        cotDatos.bk_te_CotizacionTrans.CuotaRenovacion = prima / cotDatos.bk_te_CotizacionTrans.EstimadoAnual;
        //        //newCuota = cotDatos.bk_te_CotizacionTrans.CuotaRenovacion;
        //    }

        //    _cotizacionRepository.Modify(cotDatos);

        //    unitOfWork.Commit();
        //    //return newCuota;
        //}

        //#region CotizacionCobertura

        //public List<CotizacionCobertura> FindCotizacionCoberturasbyID(int cotizacionID)
        //{
        //    Domain.MainModule.CotizacionCoberturas.CotizacionIDSpecification cotizacionCobSpec = new Domain.MainModule.CotizacionCoberturas.CotizacionIDSpecification(cotizacionID);
        //    return _cotizacionCoberturaRepository.FindCotizacionCoberturas(cotizacionCobSpec);
        //}

        //public void SaveCotizacionCobertura(int cotizacionID, string[] incendio, string[] terremoto, string[] hidro)
        //{
        //    Domain.MainModule.CotizacionCoberturas.CotizacionIDSpecification cotizacionCobSpec = new Domain.MainModule.CotizacionCoberturas.CotizacionIDSpecification(cotizacionID);
        //    List<CotizacionCobertura> listaInicial = _cotizacionCoberturaRepository.FindCotizacionCoberturas(cotizacionCobSpec);

        //    IUnitOfWork unitOfWork = _cotizacionCoberturaRepository.UnitOfWork as IUnitOfWork;

        //    int id = _cotizacionCoberturaRepository.LastCotizacionCoberturaID();
        //    //Eliminar los que no se encuentran
        //    listaInicial.Where(t => t.LineaNegocioID == 1).Where(t => !incendio.Contains(t.CoberturaID.ToString())).ToList().ForEach(x => { _cotizacionCoberturaRepository.Remove(x); });
        //    listaInicial.Where(t => t.LineaNegocioID == 6).Where(t => !terremoto.Contains(t.CoberturaID.ToString())).ToList().ForEach(x => { _cotizacionCoberturaRepository.Remove(x); });
        //    listaInicial.Where(t => t.LineaNegocioID == 7).Where(t => !hidro.Contains(t.CoberturaID.ToString())).ToList().ForEach(x => { _cotizacionCoberturaRepository.Remove(x); });

        //    //Insertar los que faltan
        //    incendio.Where(t => !listaInicial.Where(x => x.LineaNegocioID == 1).Select(y => y.CoberturaID).Contains(Convert.ToInt32(t))).ToList().ForEach(x => { id++;  _cotizacionCoberturaRepository.Add(new CotizacionCobertura() { CotizacionCoberturaID = id, CotizacionID = cotizacionID, LineaNegocioID = 1, CoberturaID = Convert.ToInt32(x) }); });
        //    terremoto.Where(t => !listaInicial.Where(x => x.LineaNegocioID == 6).Select(y => y.CoberturaID).Contains(Convert.ToInt32(t))).ToList().ForEach(x => { id++; _cotizacionCoberturaRepository.Add(new CotizacionCobertura() { CotizacionCoberturaID = id, CotizacionID = cotizacionID, LineaNegocioID = 6, CoberturaID = Convert.ToInt32(x) }); });
        //    hidro.Where(t => !listaInicial.Where(x => x.LineaNegocioID == 7).Select(y => y.CoberturaID).Contains(Convert.ToInt32(t))).ToList().ForEach(x => { id++; _cotizacionCoberturaRepository.Add(new CotizacionCobertura() { CotizacionCoberturaID = id, CotizacionID = cotizacionID, LineaNegocioID = 7, CoberturaID = Convert.ToInt32(x) }); });

        //    unitOfWork.Commit();

        //    //Actualizamos campos de valores
        //    _cotizacionCoberturaRepository.execUpdateCotizacionCoberturaUbicacion(cotizacionID);
        //}

        //public List<CotizacionCoberturaUbicacion> FindCotizacionCoberturaUbicacionesbyID(int cotizacionID)
        //{
        //    Domain.MainModule.CotizacionCoberturaUbicaciones.CotizacionIDSpecification cotizacionCobSpec = new Domain.MainModule.CotizacionCoberturaUbicaciones.CotizacionIDSpecification(cotizacionID);
        //    return _cotizacionCoberturaUbicacionRepository.FindCotizacionCoberturaUbicaciones(cotizacionCobSpec);
        //}

        //#endregion

        public Presentacion FindPresentacionCotizacionbyID(int cotizacionID, int usuarioID, bool isRC)
        {
            Presentacion presentacion = new Presentacion();

            presentacion.DatosGenerales = _cotizacionRepository.GetCotizacionPresentacion(cotizacionID);

            if (presentacion.DatosGenerales.Count() > 0)
            {
                int diasRetro = Convert.ToInt32(_catalogoRepository.GetGlobalParam((int)globalParam.DiasRetro));

                //Validacion retroactividad
                if (_cotizacionRepository.GetActivoCotizacion(cotizacionID) && (DateTime.Now - presentacion.DatosGenerales[0].VigenciaInicio).Days > diasRetro)
                {
                    presentacion.MensajeError = (new Cotizacion()).ErrorRetroactividad(diasRetro);
                }
                else
                {
                    List <string> mensajesLimite = _cotizacionRepository.GetMensajeLimite(cotizacionID, usuarioID); //Limite por Suscriptor
                    mensajesLimite.AddRange(_cotizacionRepository.GetMensajeLimiteReaseguro(cotizacionID));

                    if (mensajesLimite.Count() > 0)
                    {
                        mensajesLimite.ForEach(x => { presentacion.MensajeError += x + "<br>"; });
                    }
                    else
                    {
                        presentacion.Primas = _cotizacionRepository.GetCotizacionPresentacionPrimas(cotizacionID);

                        if (isRC)
                        {
                            presentacion.TextosRC         = _cotizacionRepository.GetCotizacionPresentacionTextosRC(cotizacionID);
                            presentacion.DatosGeneralesRC = _cotizacionRepository.GetCotizacionPresentacionRC(cotizacionID);
                        }
                        else
                        {
                            presentacion.Textos  = _cotizacionRepository.GetCotizacionPresentacionTextos(cotizacionID);
                            presentacion.Equipos = _cotizacionRepository.GetCotizacionPresentacionEquipo(cotizacionID);
                        }

                        presentacion.Resumen = _cotizacionRepository.GetCotizacionPresentacionResumen(cotizacionID);
                    }
                }
            }

            return(presentacion);
        }
        public string ProcessSISE(int cotizacionID, int usuarioID)
        {
            IUnitOfWork unitOfWork = _cotizacionRepository.UnitOfWork as IUnitOfWork;

            //Verificar si ya se ha mandado
            Cotizacion cot = _cotizacionRepository.FindCotizacionLogSISE(cotizacionID);

            if (cot.bk_te_CotizacionLog.ToList().Exists(x => x.isOK.Value))
            {
                return(cot.ErrorSISE());
            }


            //Este ID sería el id_pv
            int cotizacionLogID = _cotizacionRepository.LastCotizacionLogID() + 1;

            WsCotizador sise    = new WsCotizador();
            string      mensaje = sise.GrabarCotizacion(_workFlowRepository.GetSISEPol(cotizacionID, cotizacionLogID), _workFlowRepository.GetSISEAge(cotizacionID, cotizacionLogID),
                                                        _workFlowRepository.GetSISECob(cotizacionID, cotizacionLogID), _workFlowRepository.GetSISEInc(cotizacionID, cotizacionLogID),
                                                        _workFlowRepository.GetSISETransporte(cotizacionID, cotizacionLogID), _workFlowRepository.GetSISEObs(cotizacionID, cotizacionLogID),
                                                        _workFlowRepository.GetSISEDetalle(cotizacionID, cotizacionLogID), _workFlowRepository.GetSISEAne(cotizacionID, cotizacionLogID),
                                                        _cotizacionRepository.GetCotizacionPresentacionTextos(cotizacionID));

            CotizacionLog log = new CotizacionLog()
            {
                CotizacionLogID = cotizacionLogID,
                cotizacionID    = cotizacionID,
                mensaje         = mensaje,
                usuarioID       = usuarioID,
                LogTime         = DateTime.Now,
                isOK            = Function.IsOKSISE(mensaje)
            };

            cot.nroPoliza = Function.NroPolizaSISE(mensaje);
            cot.bk_te_CotizacionLog.Add(log);

            cot.Fecha    = DateTime.Now;
            cot.isActivo = !log.isOK.Value;
            unitOfWork.Commit();

            return(mensaje);
        }