public async Task <PlanAccionVM> Handle(GetPlanAccionDocReferenciaQuery request, CancellationToken cancellationToken) { PlanAccionVM planes = new PlanAccionVM(); var result = _context.TAccion.Include(i => i.RespPlanAccion).Where(i => i.DocReferencia == request.DocReferencia && (string.IsNullOrEmpty(request.DocSubReferencia) || i.DocSubReferencia.Equals(request.DocSubReferencia)) && (string.IsNullOrEmpty(request.TablaReferencia) || i.CodTablaRef.Equals(request.TablaReferencia))).Where(i => i.Estado);//.Distinct().OrderBy(x => x);*//*.Skip(0).Take(10);*/ //PlanAccionMaestroDto acciones; PlanVM acciones; foreach (var item in result) { acciones = new PlanVM(); ResponsablesDto accionRes; int count = 0; foreach (var it in item.RespPlanAccion) { if (it.Estado) { accionRes = new ResponsablesDto(); accionRes.codAccion = it.CodAccion; accionRes.codPersona = it.CodPersona; accionRes.estado = it.Estado; PersonaVM respVM = new PersonaVM(); //respVM = await _persons.RequestNombApellidos(it.CodPersona); respVM = await _mediator.Send(new GetPersonaQuery() { CodPersona = it.CodPersona }); if (respVM != null) { accionRes.nombres = respVM.Nombres; accionRes.apellidoPaterno = respVM.ApellidoPaterno; accionRes.apellidoMaterno = respVM.ApellidoMaterno; } else { accionRes.nombres = "no se encontro dicha persona !!"; } var _porcentajes = _context.TLevantamientoPlan.Where(i => i.CodAccion == it.CodAccion && i.CodPersona == it.CodPersona); if (_porcentajes.Count() > 0) { accionRes.porcentajeMayor = _porcentajes.Max(i => i.PorcentajeAvance); } //accionRes.porcentajeMayor = _context.TLevantamientoPlan.Where(i => i.CodAccion == it.CodAccion && i.CodPersona == it.CodPersona).Max(i => i.PorcentajeAvance); acciones.RespPlanAccion.Add(accionRes); count++; } } acciones.codAccion = item.CodAccion; //acciones.codEstadoAccion = item.CodEstadoAccion; acciones.codAreaHsec = item.CodAreaHsec; acciones.codTipoAccion = item.CodTipoAccion; acciones.fechaSolicitud = item.FechaSolicitud; acciones.codActiRelacionada = item.CodActiRelacionada; acciones.codSolicitadoPor = item.CodSolicitadoPor; List <String> solPers = new List <String>(); solPers.Add(item.CodSolicitadoPor); acciones.nombreSolicitadoPor = "no se encontro dicha persona !!"; //solPers = await _persons.Request(solPers); solPers = await _mediator.Send(new GetCode2NameQuery() { data = solPers }); if (solPers.Count() > 0) { acciones.nombreSolicitadoPor = solPers[0]; } acciones.docReferencia = item.DocReferencia; acciones.docSubReferencia = item.DocSubReferencia; acciones.codNivelRiesgo = item.CodNivelRiesgo; acciones.tarea = item.Tarea; acciones.fechaInicial = item.FechaInicial; acciones.fechaFinal = item.FechaFinal; acciones.estado = item.Estado; acciones.codTablaRef = item.CodTablaRef; acciones.codEstadoAccion = item.CodEstadoAccion; acciones.Aprobador = item.Aprobador; acciones.EstadoAprobacion = item.EstadoAprobacion; planes.count = acciones.RespPlanAccion.Count(); planes.data.Add(acciones); } return(planes); }
public async Task <PlanCompVM> Handle(CreateLevTareaCommand request, CancellationToken cancellationToken) { PlanCompVM planVM = new PlanCompVM(); TFile file; var cabeceraDTO = IService.imgUpload(request.File); int codAccion = cabeceraDTO.codAccion; string codPersona = cabeceraDTO.codPersona; var validandoRespLevTarea = _context.TResponsable.Where(i => i.CodAccion == codAccion && i.CodPersona == codPersona && i.Estado); if (validandoRespLevTarea.Count() > 0) { TLevantamientoPlan levan = new TLevantamientoPlan(); levan.CodAccion = codAccion; levan.CodPersona = codPersona; //lev.Correlativo = cabeceraDTO.correlativo; levan.Descripcion = cabeceraDTO.descripcion; levan.Fecha = cabeceraDTO.fecha; levan.PorcentajeAvance = cabeceraDTO.porcentajeAvance; levan.Rechazado = false; //levan.Creado = DateTime.Now; //levan.CreadoPor = "admin"; //levan.Modificado = DateTime.Now; //levan.ModificadoPor = "admin"; int verificador = _context.TLevantamientoPlan.Count(); var ultCodCorrelativo = 1; if (verificador != 0) { ultCodCorrelativo = _context.TLevantamientoPlan.Max(p => p.Correlativo) + 1; } IFormFileCollection files = request.File.Files; foreach (var fil in files) { file = new TFile(); if (fil.Length < 0) { throw new GeneralFailureException("Imagen no valida"); } file.ArchivoData = trans(fil); file.TipoArchivo = fil.ContentType; file.Estado = true; file.Nombre = fil.FileName; file.Descripcion = fil.Name; //file.NroDocReferencia = ultCodCorrelativo.ToString(); ////file.NroSubDocReferencia = cabeceraDTO.nroSubDocReferencia; file.NroDocReferencia = codAccion.ToString(); file.NroSubDocReferencia = ultCodCorrelativo.ToString(); file.CodTablaRef = "TACME"; _context.TFile.Add(file); } _context.TLevantamientoPlan.Add(levan); await _context.SaveChangesAsync(cancellationToken); var planAccionList = _context.TAccion.Include(i => i.RespPlanAccion).FirstOrDefault(i => i.CodAccion == codAccion && i.Estado); //PlanRespVM plan = planAccionList.AsQueryable() //.ProjectTo<PlanRespVM>(_mapper.ConfigurationProvider) //.ToList().First(); PlanRespVM plan = new PlanRespVM(); plan.codAccion = planAccionList.CodAccion; ResponsablesDto planRespDto; foreach (var it in planAccionList.RespPlanAccion) { if (it.Estado) { var datos = _context.TLevantamientoPlan.Where(i => i.CodAccion == it.CodAccion && i.CodPersona == it.CodPersona && i.Estado); planRespDto = new ResponsablesDto(); planRespDto.codAccion = it.CodAccion; planRespDto.codPersona = it.CodPersona; planRespDto.porcentajeMayor = 0; planRespDto.estado = it.Estado; if (datos.Count() > 0) { var max = datos.Max(i => i.PorcentajeAvance); planRespDto.porcentajeMayor = max; } PersonaVM respVM = new PersonaVM(); if (!String.IsNullOrEmpty(it.CodPersona)) { //respVM = await _persons.RequestNombApellidos(it.CodPersona); respVM = await _mediator.Send(new GetPersonaQuery() { CodPersona = it.CodPersona }); } if (respVM != null) { planRespDto.nombres = respVM.Nombres; planRespDto.apellidoPaterno = respVM.ApellidoPaterno; planRespDto.apellidoMaterno = respVM.ApellidoMaterno; } else { planRespDto.nombres = ""; planRespDto.apellidoPaterno = ""; planRespDto.apellidoMaterno = ""; } plan.RespPlanAccion.Add(planRespDto); } } var sumaDiv = (plan.RespPlanAccion.Sum(i => i.porcentajeMayor) / plan.RespPlanAccion.Count()); var accion = _context.TAccion.FirstOrDefault(i => i.CodAccion == codAccion && i.Estado); //double sumatoria = 0; if (sumaDiv > 0 && sumaDiv < 100) { accion.CodEstadoAccion = "03"; } else if (sumaDiv >= 100) { accion.CodEstadoAccion = "02"; } else { accion.CodEstadoAccion = "01"; } plan.codEstadoAccion = accion.CodEstadoAccion; _context.TAccion.Update(accion); await _context.SaveChangesAsync(cancellationToken); LevTareasFilesVM levTareasVM; var levs = _context.TLevantamientoPlan.Where(i => i.CodAccion == codAccion && i.Estado); List <String> codPersonas; List <TFile> result; foreach (var item in levs) { result = new List <TFile>(); codPersonas = new List <String>(); codPersonas.Add(item.CodPersona); //List<String> nombPerson = await _persons.Request(codPersonas); List <String> nombPerson = await _mediator.Send(new GetCode2NameQuery() { data = codPersonas }); levTareasVM = new LevTareasFilesVM(); levTareasVM.codAccion = item.CodAccion; levTareasVM.codPersona = item.CodPersona; levTareasVM.correlativo = item.Correlativo; levTareasVM.descripcion = item.Descripcion; levTareasVM.estado = item.Estado; levTareasVM.fecha = item.Fecha; levTareasVM.porcentajeAvance = item.PorcentajeAvance; levTareasVM.nombres = ""; levTareasVM.Rechazado = item.Rechazado; if (nombPerson.Count != 0) { levTareasVM.nombres = nombPerson[0]; } //result = _context.TFile.Where(i => i.NroDocReferencia == item.Correlativo.ToString()).ToList(); result = _context.TFile.Where(i => i.NroDocReferencia == item.CodAccion.ToString() && i.NroSubDocReferencia == item.Correlativo.ToString()).ToList(); FilesDto filesDto; foreach (var it in result) { if (item.Estado == true) { filesDto = new FilesDto(); filesDto.size = it.ArchivoData.Length; filesDto.correlativoArchivos = it.CorrelativoArchivos; filesDto.descripcion = it.Descripcion; filesDto.grupoPertenece = it.GrupoPertenece; filesDto.nombre = it.Nombre; filesDto.nroDocReferencia = it.NroDocReferencia; filesDto.nroSubDocReferencia = it.NroSubDocReferencia; filesDto.tipoArchivo = it.TipoArchivo; filesDto.estado = it.Estado; levTareasVM.files.Add(filesDto); } } plan.registros.Add(levTareasVM); } plan.count = plan.registros.Count; planVM.plan.Add(plan); return(planVM); } else { throw new GeneralFailureException("ERROR !! su levantamiento de tarea no esta ligado resposable !!"); } }
public async Task <PlanCompVM> Handle(UpdateLevTareaCommand request, CancellationToken cancellationToken) { PlanCompVM planVM = new PlanCompVM(); var cabeceraDTO = IService.imgUpload(request.File); var correlativo = cabeceraDTO.correlativo; var descripcion = cabeceraDTO.descripcion; var estadoNew = cabeceraDTO.estado; var porcentaje = cabeceraDTO.porcentajeAvance; var fecha = cabeceraDTO.fecha; var levTarea = _context.TLevantamientoPlan.FirstOrDefault(i => i.Correlativo == correlativo && i.Estado); levTarea.Descripcion = descripcion; levTarea.Estado = estadoNew; levTarea.PorcentajeAvance = porcentaje; levTarea.Fecha = fecha; if (!estadoNew) { List <TFile> fil = _context.TFile.Where(I => I.NroDocReferencia == correlativo.ToString() && I.Estado).ToList(); foreach (var item in fil) { item.Estado = false; _context.TFile.Update(item); } } _context.TLevantamientoPlan.Update(levTarea); await _context.SaveChangesAsync(cancellationToken); // Se muestra el resultado como si fuera GET var planAccionList = _context.TAccion.Include(i => i.RespPlanAccion).FirstOrDefault(i => i.CodAccion == levTarea.CodAccion && i.Estado); PlanRespVM plan = new PlanRespVM(); plan.codAccion = planAccionList.CodAccion; ResponsablesDto planRespDto; foreach (var it in planAccionList.RespPlanAccion) { if (it.Estado) { var datos = _context.TLevantamientoPlan.Where(i => i.CodAccion == it.CodAccion && i.CodPersona == it.CodPersona && i.Estado); planRespDto = new ResponsablesDto(); planRespDto.codAccion = it.CodAccion; planRespDto.codPersona = it.CodPersona; planRespDto.porcentajeMayor = 0; planRespDto.estado = it.Estado; if (datos.Count() > 0) { var max = datos.Max(i => i.PorcentajeAvance); planRespDto.porcentajeMayor = max; } PersonaVM respVM = new PersonaVM(); if (!String.IsNullOrEmpty(it.CodPersona)) { //respVM = await _persons.RequestNombApellidos(it.CodPersona); respVM = await _mediator.Send(new GetPersonaQuery() { CodPersona = it.CodPersona }); } if (respVM != null) { planRespDto.nombres = respVM.Nombres; planRespDto.apellidoPaterno = respVM.ApellidoPaterno; planRespDto.apellidoMaterno = respVM.ApellidoMaterno; } else { planRespDto.nombres = ""; planRespDto.apellidoPaterno = ""; planRespDto.apellidoMaterno = ""; } plan.RespPlanAccion.Add(planRespDto); } } var sumaDiv = (plan.RespPlanAccion.Sum(i => i.porcentajeMayor) / plan.RespPlanAccion.Count()); var accion = _context.TAccion.FirstOrDefault(i => i.CodAccion == levTarea.CodAccion && i.Estado); //double sumatoria = 0; if (sumaDiv > 0 && sumaDiv < 100) { accion.CodEstadoAccion = "03"; } else if (sumaDiv >= 100) { accion.CodEstadoAccion = "02"; } else { accion.CodEstadoAccion = "01"; } plan.codEstadoAccion = accion.CodEstadoAccion; _context.TAccion.Update(accion); await _context.SaveChangesAsync(cancellationToken); LevTareasFilesVM levTareasVM; var levs = _context.TLevantamientoPlan.Where(i => i.CodAccion == levTarea.CodAccion && i.Estado); List <String> codPersonas; List <TFile> result; foreach (var item in levs) { result = new List <TFile>(); codPersonas = new List <String>(); codPersonas.Add(item.CodPersona); //List<String> nombPerson = await _persons.Request(codPersonas); List <String> nombPerson = await _mediator.Send(new GetCode2NameQuery() { data = codPersonas }); levTareasVM = new LevTareasFilesVM(); levTareasVM.codAccion = item.CodAccion; levTareasVM.codPersona = item.CodPersona; levTareasVM.correlativo = item.Correlativo; levTareasVM.descripcion = item.Descripcion; levTareasVM.estado = item.Estado; levTareasVM.fecha = item.Fecha; levTareasVM.porcentajeAvance = item.PorcentajeAvance; levTareasVM.nombres = ""; if (nombPerson.Count != 0) { levTareasVM.nombres = nombPerson[0]; } result = _context.TFile.Where(i => i.NroDocReferencia == item.Correlativo.ToString()).ToList(); FilesDto filesDto; foreach (var it in result) { if (item.Estado == true) { filesDto = new FilesDto(); filesDto.size = it.ArchivoData.Length; filesDto.correlativoArchivos = it.CorrelativoArchivos; filesDto.descripcion = it.Descripcion; filesDto.grupoPertenece = it.GrupoPertenece; filesDto.nombre = it.Nombre; filesDto.nroDocReferencia = it.NroDocReferencia; filesDto.nroSubDocReferencia = it.NroSubDocReferencia; filesDto.tipoArchivo = it.TipoArchivo; filesDto.estado = it.Estado; levTareasVM.files.Add(filesDto); } } plan.registros.Add(levTareasVM); } plan.count = plan.registros.Count; planVM.plan.Add(plan); return(planVM); }