示例#1
0
        public Cotizacion SaveCotizacionRC(Cotizacion cotizacion)
        {
            //Grabar Cotizacion
            IUnitOfWork unitOfWork = _cotizacionRepository.UnitOfWork as IUnitOfWork;

            Cotizacion cotDatos = _cotizacionRepository.FindCotizacionRC(cotizacion.CotizacionID);

            cotDatos.bk_te_CotizacionRCActInm = cotizacion.bk_te_CotizacionRCActInm;
            //cotDatos.bk_te_CotizacionRCProducto = cotizacion.bk_te_CotizacionRCProducto;
            cotDatos.bk_te_CotizacionRCTrabajoTerm     = cotizacion.bk_te_CotizacionRCTrabajoTerm;
            cotDatos.bk_te_CotizacionRCTaller          = cotizacion.bk_te_CotizacionRCTaller;
            cotDatos.bk_te_CotizacionRCEstacionamiento = cotizacion.bk_te_CotizacionRCEstacionamiento;
            cotDatos.bk_te_CotizacionRCVehiculoExc     = cotizacion.bk_te_CotizacionRCVehiculoExc;
            cotDatos.bk_te_CotizacionRCConstruccion    = cotizacion.bk_te_CotizacionRCConstruccion;
            cotDatos.bk_te_CotizacionRCHoteleria       = cotizacion.bk_te_CotizacionRCHoteleria;
            cotDatos.bk_te_CotizacionRCAdicional       = cotizacion.bk_te_CotizacionRCAdicional;

            if (cotDatos.bk_te_CotizacionDeducible != null)
            {
                CotizacionDeducible cotDeduc;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 9).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.DeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.DeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.DeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.DeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.DeducibleUnidadIDMin;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 30).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.ArrendatarioDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.ArrendatarioDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.ArrendatarioDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.ArrendatarioDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.ArrendatarioDeducibleUnidadIDMin;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 31).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.BienesDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.BienesDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.BienesDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.BienesDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.BienesDeducibleUnidadIDMin;

                switch (cotDatos.bk_te_CotizacionRCActInm.RCActInmCruzadaID)
                {
                case 1: cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 24).FirstOrDefault(); break;

                case 2: cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 25).FirstOrDefault(); break;

                case 3: cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 26).FirstOrDefault(); break;

                case 4: cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 27).FirstOrDefault(); break;
                }

                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.CruzadaDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.CruzadaDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.CruzadaDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.CruzadaDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.CruzadaDeducibleUnidadIDMin;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 32).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.ContaminacionDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.ContaminacionDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.ContaminacionDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.ContaminacionDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.ContaminacionDeducibleUnidadIDMin;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 33).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.AsumidaDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.AsumidaDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.AsumidaDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.AsumidaDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.AsumidaDeducibleUnidadIDMin;

                cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.SubLineaNegocioID == 34).FirstOrDefault();
                cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCActInm.ContIndependienteDeducibleValorID;
                cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCActInm.ContIndependienteDeducibleUnidadID;
                cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCActInm.ContIndependienteDeducibleAplicaID;
                cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCActInm.ContIndependienteDeducibleValorIDMin;
                cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCActInm.ContIndependienteDeducibleUnidadIDMin;

                if (cotDatos.bk_te_CotizacionRCTrabajoTerm != null)
                {
                    cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 28).FirstOrDefault();
                    cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCTrabajoTerm.DeducibleValorID;
                    cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCTrabajoTerm.DeducibleUnidadID;
                    cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCTrabajoTerm.DeducibleAplicaID;
                    cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCTrabajoTerm.DeducibleValorIDMin;
                    cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCTrabajoTerm.DeducibleUnidadIDMin;

                    cotDeduc = cotDatos.bk_te_CotizacionDeducible.Where(x => x.TarifaID == 29).FirstOrDefault();
                    cotDeduc.DeducibleValorID        = cotDatos.bk_te_CotizacionRCTrabajoTerm.UnionMezclaDeducibleValorID;
                    cotDeduc.UnidadDeducibleID       = cotDatos.bk_te_CotizacionRCTrabajoTerm.UnionMezclaDeducibleUnidadID;
                    cotDeduc.DeducibleAplicaID       = cotDatos.bk_te_CotizacionRCTrabajoTerm.UnionMezclaDeducibleAplicaID;
                    cotDeduc.DeducibleValorIDMinimo  = cotDatos.bk_te_CotizacionRCTrabajoTerm.UnionMezclaDeducibleValorIDMin;
                    cotDeduc.UnidadDeducibleIDMinimo = cotDatos.bk_te_CotizacionRCTrabajoTerm.UnionMezclaDeducibleUnidadIDMin;
                }
            }

            _cotizacionRepository.Modify(cotDatos);

            unitOfWork.Commit();

            _cotizacionRepository.execProcesarRC(cotizacion.CotizacionID, false); //Procesamos para obtener cuota y prima

            if (cotDatos.bk_te_CotizacionRCAdicional.isPrimaMinima.Value)
            {
                _cotizacionRepository.execProcesarRC(cotizacion.CotizacionID, true);
            }

            if (cotDatos.bk_te_CotizacionRCActInm != null)
            {
                ResultadoPrima rcActInm = _cotizacionRepository.GetPrimaCuota((int)enumTableCotizacion.RCActInm, cotizacion.CotizacionID);
                cotDatos.bk_te_CotizacionRCActInm.Cuota = rcActInm.Cuota;
                cotDatos.bk_te_CotizacionRCActInm.Prima = rcActInm.Prima;
            }

            return(cotDatos);
        }
示例#2
0
        public Cotizacion SaveCotizacionDiversos(Cotizacion cotizacion)
        {
            //Grabar Cotizacion
            IUnitOfWork unitOfWork = _cotizacionRepository.UnitOfWork as IUnitOfWork;

            //Cotizacion cotDatos = _cotizacionRepository.FindCotizacion(cotizacion.CotizacionID);

            Cotizacion cotDatos = _cotizacionRepository.FindCotizacionDiversos(cotizacion.CotizacionID);

            cotDatos.bk_te_CotizacionCristal         = cotizacion.bk_te_CotizacionCristal;
            cotDatos.bk_te_CotizacionAnuncio         = cotizacion.bk_te_CotizacionAnuncio;
            cotDatos.bk_te_CotizacionRobo            = cotizacion.bk_te_CotizacionRobo;
            cotDatos.bk_te_CotizacionDinVal          = cotizacion.bk_te_CotizacionDinVal;
            cotDatos.bk_te_CotizacionCaldera         = cotizacion.bk_te_CotizacionCaldera;
            cotDatos.bk_te_CotizacionCalderaPC       = cotizacion.bk_te_CotizacionCalderaPC;
            cotDatos.bk_te_CotizacionRotMaq          = cotizacion.bk_te_CotizacionRotMaq;
            cotDatos.bk_te_CotizacionRotMaqPC        = cotizacion.bk_te_CotizacionRotMaqPC;
            cotDatos.bk_te_CotizacionEqContratista   = cotizacion.bk_te_CotizacionEqContratista;
            cotDatos.bk_te_CotizacionRCEqContratista = cotizacion.bk_te_CotizacionRCEqContratista;
            cotDatos.bk_te_CotizacionEqElec          = cotizacion.bk_te_CotizacionEqElec;
            cotDatos.bk_te_CotizacionEqElecPortExt   = cotizacion.bk_te_CotizacionEqElecPortExt;
            cotDatos.bk_te_CotizacionEqElecCostoOper = cotizacion.bk_te_CotizacionEqElecCostoOper;
            cotDatos.bk_te_CotizacionEqElecMovil     = cotizacion.bk_te_CotizacionEqElecMovil;

            //Deducibles generales
            cotDatos.bk_te_CotizacionDeducible.Clear();
            cotizacion.bk_te_CotizacionDeducible.ToList().ForEach(x => {
                cotDatos.bk_te_CotizacionDeducible.Add(x);
            });



            if (cotizacion.bk_tw_EqContratistaEquipo != null)
            {
                if (cotizacion.bk_tw_EqContratistaEquipo.Where(x => x.Visible).Count() > 0)
                {
                    EqContratistaEquipo equipo;
                    int inciso = 1;
                    int maxID  = _cotizacionRepository.LastCotizacionEqContratistaEquipoID() + 1;
                    cotizacion.bk_tw_EqContratistaEquipo.Where(x => x.Visible && x.Valor.HasValue).ToList().ForEach(x =>
                    {
                        x.Inciso = inciso;
                        inciso++;

                        if (x.EqContratistaEquipoID == 0)
                        {
                            x.EqContratistaEquipoID = maxID;
                            maxID++;
                            cotDatos.bk_tw_EqContratistaEquipo.Add(x);
                        }
                        else
                        {
                            equipo = cotDatos.bk_tw_EqContratistaEquipo.Where(y => y.EqContratistaEquipoID == x.EqContratistaEquipoID).SingleOrDefault();
                            equipo.CotizacionID = x.CotizacionID;
                            equipo.Descripcion  = x.Descripcion;
                            equipo.Inciso       = x.Inciso;
                            equipo.Marca        = x.Marca;
                            equipo.nroSerie     = x.nroSerie;
                            equipo.Valor        = x.Valor;
                        }
                    });
                }

                cotizacion.bk_tw_EqContratistaEquipo.Where(x => x.Eliminado).ToList().ForEach(x =>
                {
                    cotDatos.bk_tw_EqContratistaEquipo.Remove(cotDatos.bk_tw_EqContratistaEquipo.Where(y => y.EqContratistaEquipoID == x.EqContratistaEquipoID).FirstOrDefault());
                });
            }


            _cotizacionRepository.Modify(cotDatos);

            unitOfWork.Commit();

            //Deducibles aplica si no es CMIC para eq contratista (se insertan por default los valores)
            if (cotDatos.bk_te_CotizacionEqContratista != null)
            {
                if (cotDatos.bk_te_CotizacionEqContratista.isCMICDeduc)
                {
                    _cotizacionRepository.execUpdateCMICDeducibles(cotizacion.CotizacionID);
                }
            }

            _cotizacionRepository.execDeleteCotizacionEqContratistaEquipo();     //Eliminar de la BD los que no tienen cotizacionID
            AddCotizacionEquipo(cotDatos);                                       //Agregamos adicionales para la parte visual no para la BD

            _cotizacionRepository.execProcesarDiversos(cotizacion.CotizacionID); //Procesamos para obtener cuota y prima

            if (cotDatos.bk_te_CotizacionEqContratista != null)
            {
                ResultadoPrima eq = _cotizacionRepository.GetPrimaCuota((int)enumTableCotizacion.EqContratista, cotizacion.CotizacionID);
                cotDatos.bk_te_CotizacionEqContratista.Cuota = eq.Cuota;
                cotDatos.bk_te_CotizacionEqContratista.Prima = eq.Prima;
            }


            if (cotDatos.bk_te_CotizacionRCEqContratista != null)
            {
                ResultadoPrima rcEq = _cotizacionRepository.GetPrimaCuota((int)enumTableCotizacion.RCEqContratista, cotizacion.CotizacionID);
                cotDatos.bk_te_CotizacionRCEqContratista.Cuota = rcEq.Cuota;
                cotDatos.bk_te_CotizacionRCEqContratista.Prima = rcEq.Prima;
            }

            return(cotDatos);
        }