/// <summary> /// Realiza la adaptación de campos para registrar o actualizar /// </summary> /// <param name="data">Datos a registrar o actualizar</param> /// <returns>Entidad Datos a registrar</returns> public static FlujoAprobacionEstadioEntity RegistrarFlujoAprobacionEstadio(FlujoAprobacionEstadioRequest data) { FlujoAprobacionEstadioEntity flujoAprobacionEstadioEntity = new FlujoAprobacionEstadioEntity(); if (data.CodigoFlujoAprobacionEstadio != null) { flujoAprobacionEstadioEntity.CodigoFlujoAprobacionEstadio = new Guid(data.CodigoFlujoAprobacionEstadio); } else { Guid code; code = Guid.NewGuid(); flujoAprobacionEstadioEntity.CodigoFlujoAprobacionEstadio = code; } flujoAprobacionEstadioEntity.CodigoFlujoAprobacion = new Guid(data.CodigoFlujoAprobacion); flujoAprobacionEstadioEntity.Orden = data.Orden; flujoAprobacionEstadioEntity.Descripcion = data.Descripcion; flujoAprobacionEstadioEntity.TiempoAtencion = data.TiempoAtencion; flujoAprobacionEstadioEntity.HorasAtencion = data.HorasAtencion; flujoAprobacionEstadioEntity.IndicadorVersionOficial = data.IndicadorVersionOficial; flujoAprobacionEstadioEntity.IndicadorPermiteCarga = data.IndicadorPermiteCarga; flujoAprobacionEstadioEntity.IndicadorNumeroContrato = data.IndicadorNumeroContrato; flujoAprobacionEstadioEntity.EstadoRegistro = data.EstadoRegistro; flujoAprobacionEstadioEntity.IndicadorIncluirVisto = data.IndicadorIncluirVisto; return(flujoAprobacionEstadioEntity); }
/// <summary> /// Registra / Edita Flujo Aprobacion Estadios /// </summary> /// <param name="data">Datos de estadio</param> /// <param name="responsable">Responsable de estadio</param> /// <param name="informados">Informados de estadio</param> /// <param name="responsableVinculadas">Responsable de vinculadas</param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <FlujoAprobacionEstadioRequest> RegistrarFlujoAprobacionEstadio(FlujoAprobacionEstadioRequest data, List <FlujoAprobacionEstadioRequest> responsable, List <FlujoAprobacionEstadioRequest> informados, List <FlujoAprobacionEstadioRequest> responsableVinculadas) { ProcessResult <FlujoAprobacionEstadioRequest> resultado = new ProcessResult <FlujoAprobacionEstadioRequest>(); string flagRegistrar = "I"; try { string codigoResponsable = ""; FlujoAprobacionEstadioEntity entidad = FlujoAprobacionEstadioAdapter.RegistrarFlujoAprobacionEstadio(data); var resultadoRepetidoOrden = flujoAprobacionLogicRepository.RepiteFlujoAprobacionEstadioOrden( new Guid(data.CodigoFlujoAprobacion), data.Orden ); bool existeRepetidoOrden = resultadoRepetidoOrden.Any(e => e.CodigoFlujoAprobacionEstadio != entidad.CodigoFlujoAprobacionEstadio); var numeroOrden = resultadoRepetidoOrden.Select(e => e.Orden); var resultadoRepetidoDescripcion = flujoAprobacionLogicRepository.RepiteFlujoAprobacionEstadioDescripcion( new Guid(data.CodigoFlujoAprobacion), data.Descripcion ); bool existeRepetidoDescripcion = resultadoRepetidoDescripcion.Any(e => e.CodigoFlujoAprobacionEstadio != entidad.CodigoFlujoAprobacionEstadio); if (data.IndicadorVersionOficial) { flujoAprobacionEstadioEntityRepository.ActualizaIndicadorVersionOficial( entidad.CodigoFlujoAprobacion ); } if (data.IndicadorNumeroContrato) { flujoAprobacionEstadioEntityRepository.ActualizaIndicadorNumeroContrato( entidad.CodigoFlujoAprobacion ); } if (existeRepetidoDescripcion) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionEstadioDescripcionExiste); return(resultado); } if (data.CodigoFlujoAprobacionEstadio == null) { if (numeroOrden.FirstOrDefault() == 1) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionOrdenIgualUno); return(resultado); } flujoAprobacionEstadioEntityRepository.DesplazarOrden( entidad, flagRegistrar ); flujoAprobacionEstadioEntityRepository.Insertar(entidad); } else { if (numeroOrden.FirstOrDefault() >= 1) { flagRegistrar = "U"; flujoAprobacionEstadioEntityRepository.DesplazarOrden( entidad, flagRegistrar ); var entidadSincronizar = flujoAprobacionEstadioEntityRepository.GetById(entidad.CodigoFlujoAprobacionEstadio); entidadSincronizar.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion; entidadSincronizar.Orden = entidad.Orden; entidadSincronizar.Descripcion = entidad.Descripcion; entidadSincronizar.TiempoAtencion = entidad.TiempoAtencion; entidadSincronizar.HorasAtencion = entidad.HorasAtencion; entidadSincronizar.IndicadorNumeroContrato = entidad.IndicadorNumeroContrato; entidadSincronizar.IndicadorPermiteCarga = entidad.IndicadorPermiteCarga; entidadSincronizar.IndicadorVersionOficial = entidad.IndicadorVersionOficial; entidadSincronizar.EstadoRegistro = entidad.EstadoRegistro; entidadSincronizar.IndicadorIncluirVisto = entidad.IndicadorIncluirVisto; flujoAprobacionEstadioEntityRepository.Editar(entidadSincronizar); } if (existeRepetidoOrden) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionOrdenIgualUno); return(resultado); } } flujoAprobacionLogicRepository.EliminaParticipante( entidad.CodigoFlujoAprobacionEstadio ); //Registrar Participante Responsable (R) if (responsable.Count > 0) { foreach (var item in responsable) { codigoResponsable = item.Responsable; } this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest() { CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(), CodigoTrabajador = codigoResponsable, CodigoTipoParticipante = DatosConstantes.FlujoAprobacionTipoParticipante.Responsable }); } //Registrar Participante Informador (I) if (informados.Count > 0) { foreach (var item in informados) { this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest() { CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(), CodigoTrabajador = item.Informados, CodigoTipoParticipante = DatosConstantes.FlujoAprobacionTipoParticipante.Informado }); } } //Registrar Participante Responsable de Vinculadas (V) if (responsableVinculadas != null) { foreach (var item in responsableVinculadas) { this.RegistrarFlujoAprobacionParticipante(new FlujoAprobacionParticipanteRequest() { CodigoFlujoAprobacionEstadio = entidad.CodigoFlujoAprobacionEstadio.ToString(), CodigoTrabajador = item.Responsable, CodigoTipoParticipante = DatosConstantes.FlujoAprobacionTipoParticipante.ResponsableVinculadas }); } } flujoAprobacionEstadioEntityRepository.GuardarCambios(); resultado.Result = data; } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(e); } return(resultado); }
/// <summary> /// Registra / Edita Flujo Aprobacion /// </summary> /// <param name="data"></param> /// <returns>Indicador con el resultado de la operación</returns> public ProcessResult <FlujoAprobacionRequest> RegistrarFlujoAprobacion(FlujoAprobacionRequest data) { ProcessResult <FlujoAprobacionRequest> resultado = new ProcessResult <FlujoAprobacionRequest>(); try { FlujoAprobacionEntity entidad = FlujoAprobacionAdapter.RegistrarFlujoAprobacion(data); //var resultadoRepetido = flujoAprobacionLogicRepository.RepiteFlujoAprobacion( // new Guid(data.CodigoUnidadOperativa), // data.CodigoFormaEdicion, // data.CodigoTipoServicio, // data.CodigoTipoRequerimiento //); bool existeRepetido = false; //resultadoRepetido.Any(e => e.CodigoFlujoAprobacion != entidad.CodigoFlujoAprobacion); if (existeRepetido) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(MensajesSistema.FlujoAprobacionExiste); } else { if (data.CodigoFlujoAprobacion == null) { flujoAprobacionEntityRepository.Insertar(entidad); flujoAprobacionEntityRepository.GuardarCambios(); foreach (var item in data.ListaTipoServicio) { //FlujoAprobacionTipoServicioEntity entidadFlujoAprobacionTipoServicio = new FlujoAprobacionTipoServicioEntity(); //entidadFlujoAprobacionTipoServicio.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion; //entidadFlujoAprobacionTipoServicio.CodigoFlujoAprobacionTipoServicio = Guid.NewGuid(); //entidadFlujoAprobacionTipoServicio.CodigoTipoServicio = item; //flujoAprobacionTipoServicioEntityRepository.Insertar(entidadFlujoAprobacionTipoServicio); //flujoAprobacionTipoServicioEntityRepository.GuardarCambios(); FlujoAprobacionTipoContratoEntity entidadFlujoAprobacionTipoContrato = new FlujoAprobacionTipoContratoEntity(); entidadFlujoAprobacionTipoContrato.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion; entidadFlujoAprobacionTipoContrato.CodigoFlujoAprobacionTipoContrato = Guid.NewGuid(); entidadFlujoAprobacionTipoContrato.CodigoTipoContrato = item; flujoAprobacionTipoContratoEntityRepository.Insertar(entidadFlujoAprobacionTipoContrato); flujoAprobacionTipoContratoEntityRepository.GuardarCambios(); } var datosDefecto = new FlujoAprobacionEstadioEntity() { CodigoFlujoAprobacionEstadio = Guid.NewGuid(), CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion, Orden = 1, Descripcion = "Edición", TiempoAtencion = 1, HorasAtencion = 0, IndicadorVersionOficial = false, IndicadorPermiteCarga = false, IndicadorNumeroContrato = false, EstadoRegistro = "1" }; flujoAprobacionEstadioEntityRepository.Insertar(datosDefecto); //flujoAprobacionEstadioEntityRepository.GuardarCambios(); } else { var entidadSincronizar = flujoAprobacionEntityRepository.GetById(entidad.CodigoFlujoAprobacion); entidadSincronizar.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion; entidadSincronizar.CodigoUnidadOperativa = entidad.CodigoUnidadOperativa; entidadSincronizar.CodigoPrimerFirmante = entidad.CodigoPrimerFirmante; entidadSincronizar.CodigoPrimerFirmanteOriginal = entidad.CodigoPrimerFirmante; if (entidad.CodigoSegundoFirmante != null) { entidadSincronizar.CodigoSegundoFirmante = entidad.CodigoSegundoFirmante; entidadSincronizar.CodigoSegundoFirmanteOriginal = entidad.CodigoSegundoFirmante; } entidadSincronizar.CodigoPrimerFirmanteVinculada = entidad.CodigoPrimerFirmanteVinculada; entidadSincronizar.CodigoSegundoFirmanteVinculada = entidad.CodigoSegundoFirmanteVinculada; //Detalle Flujo Aprobación Tipo de Contrato List <FlujoAprobacionTipoContratoLogic> listadoFlujoAprobacionTipoContrato = flujoAprobacionLogicRepository.BuscarFlujoAprobacionTipoContrato( null, entidad.CodigoFlujoAprobacion, null, null ); //Eliminar los tipos de contrato foreach (var item in listadoFlujoAprobacionTipoContrato.Where(item => item.EstadoRegistro == DatosConstantes.EstadoRegistro.Activo).ToList()) { flujoAprobacionTipoContratoEntityRepository.Eliminar(item.CodigoFlujoAprobacionTipoContrato); flujoAprobacionTipoContratoEntityRepository.GuardarCambios(); } //Editar o registrar tipos de contrato foreach (var item in data.ListaTipoServicio) { FlujoAprobacionTipoContratoEntity entidadFlujoAprobacionTipoContrato = new FlujoAprobacionTipoContratoEntity(); var flujoAprobacionTipoContratoEditar = listadoFlujoAprobacionTipoContrato.Where(itemWhere => itemWhere.CodigoTipoContrato == item).FirstOrDefault(); if (flujoAprobacionTipoContratoEditar != null) { entidadFlujoAprobacionTipoContrato = flujoAprobacionTipoContratoEntityRepository.GetById(flujoAprobacionTipoContratoEditar.CodigoFlujoAprobacionTipoContrato); entidadFlujoAprobacionTipoContrato.EstadoRegistro = DatosConstantes.EstadoRegistro.Activo; flujoAprobacionTipoContratoEntityRepository.Editar(entidadFlujoAprobacionTipoContrato); } else { entidadFlujoAprobacionTipoContrato.CodigoFlujoAprobacion = entidad.CodigoFlujoAprobacion; entidadFlujoAprobacionTipoContrato.CodigoFlujoAprobacionTipoContrato = Guid.NewGuid(); entidadFlujoAprobacionTipoContrato.CodigoTipoContrato = item; flujoAprobacionTipoContratoEntityRepository.Insertar(entidadFlujoAprobacionTipoContrato); } flujoAprobacionTipoServicioEntityRepository.GuardarCambios(); } entidadSincronizar.IndicadorAplicaMontoMinimo = entidad.IndicadorAplicaMontoMinimo; entidadSincronizar.EstadoRegistro = entidad.EstadoRegistro; flujoAprobacionEntityRepository.Editar(entidadSincronizar); } flujoAprobacionEstadioEntityRepository.GuardarCambios(); } resultado.Result = data; } catch (Exception e) { resultado.IsSuccess = false; resultado.Exception = new ApplicationLayerException <FlujoAprobacionService>(e); } return(resultado); }