/// <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 FlujoAprobacionEntity RegistrarFlujoAprobacion(FlujoAprobacionRequest data) { FlujoAprobacionEntity flujoAprobacionEntity = new FlujoAprobacionEntity(); if (data.CodigoFlujoAprobacion != null) { flujoAprobacionEntity.CodigoFlujoAprobacion = new Guid(data.CodigoFlujoAprobacion); } else { Guid code; code = Guid.NewGuid(); flujoAprobacionEntity.CodigoFlujoAprobacion = code; } //flujoAprobacionEntity.CodigoFlujoAprobacion = data.CodigoFlujoAprobacion; flujoAprobacionEntity.CodigoUnidadOperativa = new Guid(data.CodigoUnidadOperativa); //flujoAprobacionEntity.CodigoTipoServicio = null;//data.CodigoTipoServicio; flujoAprobacionEntity.IndicadorAplicaMontoMinimo = data.IndicadorAplicaMontoMinimo.Value; flujoAprobacionEntity.EstadoRegistro = data.EstadoRegistro; flujoAprobacionEntity.CodigoPrimerFirmante = new Guid(data.CodigoPrimerFirmante); flujoAprobacionEntity.CodigoPrimerFirmanteOriginal = flujoAprobacionEntity.CodigoPrimerFirmante; if (data.CodigoSegundoFirmante != null) { flujoAprobacionEntity.CodigoSegundoFirmante = new Guid(data.CodigoSegundoFirmante); flujoAprobacionEntity.CodigoSegundoFirmanteOriginal = flujoAprobacionEntity.CodigoSegundoFirmante; } if (data.CodigoPrimerFirmanteVinculada != null) { flujoAprobacionEntity.CodigoPrimerFirmanteVinculada = new Guid(data.CodigoPrimerFirmanteVinculada); } if (data.CodigoSegundoFirmanteVinculada != null) { flujoAprobacionEntity.CodigoSegundoFirmanteVinculada = new Guid(data.CodigoSegundoFirmanteVinculada); } return(flujoAprobacionEntity); }
/// <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); }