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); }
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); }