public Prt_Response realizarBalanceo(Prt_Request obj) { try { return(portafolioService.realizarBalanceo(obj)); } catch (Exception) { throw; } }
public Prt_Response realizarBalanceo(Prt_Request obj) { try { Prt_Response retorno = new Prt_Response(); Portafolio_Request param = new Portafolio_Request(); param.codigo_portafolio = int.Parse(obj.portafolio); List <Prt_Solicitud> solicitudes = portafolioDA.BuscarSolicitudes(param); List <Prt_Recurso> recursos = portafolioDA.BuscarRecursos(param); List <Prt_BalanceoTmp> balanceotmp = new List <Prt_BalanceoTmp>(); List <Prt_Solicitud> solicitudes_tmp = new List <Prt_Solicitud>(); Prt_BalanceoTmp objtemp = new Prt_BalanceoTmp(); string msj = ""; int x = 0; while (x < obj.lista_parametros.Count) { objtemp = new Prt_BalanceoTmp(); objtemp.solicitud = int.Parse(obj.lista_parametros[x]); x++; objtemp.configurado = int.Parse(obj.lista_parametros[x]); x++; balanceotmp.Add(objtemp); } int numero = 0; foreach (Prt_Recurso rec in recursos) { solicitudes_tmp = solicitudes.Where(y => y.nid_recurso.Equals(rec.nid_recurso)).ToList <Prt_Solicitud>(); numero = 0; foreach (Prt_Solicitud sol in solicitudes_tmp) { foreach (Prt_BalanceoTmp tmp in balanceotmp) { if (tmp.solicitud.Equals(sol.nid_solicitud)) { if (tmp.configurado > sol.nu_solicitado) { msj = "Se esta asignando, mas de lo solicitado para: " + sol.co_solicitud; break; } if (sol.nid_solicitud.Equals(tmp.solicitud)) { numero += tmp.configurado; } } } } if (solicitudes_tmp.Count > 0) { if (rec.nu_recursodisponible < numero) { msj = "No existen Recursos Disponibles para recurso: " + rec.no_nombre; break; } } } if (msj.Equals("")) { int pk = portafolioDA.RegistrarBalanceo(int.Parse(obj.id_user)); foreach (Prt_BalanceoTmp tmp in balanceotmp) { portafolioDA.RegistrarBalanceoDetalle(tmp, pk, int.Parse(obj.id_user)); } retorno.resultado = 1; retorno.mensaje = "La Propuesta de Balanceo se realizó correctamente"; } else { retorno.resultado = 0; retorno.mensaje = msj; } return(retorno); } catch (Exception) { throw; } }