La función no existe después de actualizar versión de dependencia en package.json

Estoy desarrollando un módulo que es usado por varios proyectos. Mi módulo usa polished para funciones relacionadas con los colores, en concreto la versión 2.3.1 como se indica en el package.json:

{   ...   "peerDependencies": {     ...     "polished": "2.3.1"   },   ... } 

Ahora quiero usar una versión más moderna de polished (3.4.0) porque incluye una función nueva que me interesa. Actualicé el número de versión en mi package.json, realicé el cambio, comprobé que funcionaba y mandé el nuevo paquete al repositorio.

En dos de los proyectos funciona bien. Pero en el tercero, cuando actualizó a la última versión de mi módulo, éste deja de funcionar. En concreto muestra este mensaje en la consola y termina la ejecución:

Possible Unhandled Promise Rejection: TypeError: Object(…) is not a function

Siguiendo el stack trace, llegó a la raíz del problema que es la nueva función que he añadido (meetsContrastGuidelines).

Mirando el package.json del proyecto (no el de mi módulo), veo que no tiene ninguna referencia a polished. Pero incluye otra dependencia que a su vez incluía una versión antigua de polished que contenía todas los métodos que usamos (básicamente funcionaba de rebote).

Entonces en ese package.json añadí la nueva versión de mi módulo y de polished como dependencia (los comentarios son sólo aquí):

{   ...   "dependencies": {     ...     "mimodulo": "0.4.0",  // la última versión de mi módulo     "polished": "3.4.0"   // la versión de polished que necesito   },   ... } 

También borré node_modules, instalé los paquetes usando yarn install, compilé y corrí el proyecto… y me sigue dando el mismo fallo.

He comprobado en node_modules y la versión de polished es 3.4.0 (la correcta). Pero parece como si no se tomara la correcta y se siguiese tomando la antigua.

Probé a borrar la caché de npm y yarn y repetir el proceso, pero el resultado es el mismo. ¿Qué puede estar pasando y cómo puedo resolverlo?

Como pasar funcion de Javascript a Jquery

Queria pasar esta funcion a jquery para colocar las animaciones a mi acordion, utilizo los parametros para seleccionar el elemento del acordion que quiero que se abra pero me da error, sino sleeciono el elemento del array entonces si sirve pero alo darle click para que se abra un elemento se abren todo, y yo quiero que se abra solo al que le de click, el codigo funciona con javascript nativo el problema es cuando lo quiero pasar a jquery, si no se puede diganme como se pueden usar las animaciones de jquery en javascript nativo lo estado buscando pero no encuentro nada

	var	lista = document.getElementsByClassName('lista'); 	var icon = document.getElementsByClassName('fas');  	var clic = 1;  	function abrirCerrar(num){  		if(clic==1){ 			lista[num].style.height = 'auto'; 		    lista[num].style.opacity = '1'; 		    icon[num].style.transform = 'rotate(180deg)';  			clic = 0; 		}else{ 			lista[num].style.height = '0px'; 			lista[num].style.opacity = '0'; 			icon[num].style.transform = 'rotate(0deg)';  			clic = 1; 		} 	}
	*{ 		margin: 0px; 		padding: 0px; 		font-family: 'Roboto', sans-serif; 	}  		html{ 			scroll-behavior: smooth; 		}  		body{ 			background: #53CDE2; 		}  		a{ 			text-decoration: none; 		}  		ul{ 			list-style: none; 		}          header{         	background: #005792;         	display: flex;         	flex-flow: row nowrap;         	align-items: center;         	justify-content: space-between;         }  		.logo{ 			background: #fff; 		}  		.menu{ 			padding: 20px; 		}  			.menu li{ 				list-style: none; 	        	display: inline-flex; 	        }  		        .menu a{ 		        	color: #EDF9FC; 		        	font-family: 'Roboto', sans-serif; 		        	font-size: 20px; 		        	margin: 0px 20px; 		        	transition: 0.3s; 		        }  		        .menu a:hover{ 		        	opacity: 0.1; 		        }         footer{ 			background: #005792; 			text-align: center; 			width: 100%; 			padding: 20px 0px; 		}  			footer a{ 				color: #EDF9FC; 				font-size: 15px; 			}  			footer a:hover{ 				opacity: 0.5; 			}  /*______________________Inicio________________________*/  		.texto-principal{ 			display: flex; 			justify-content: center; 			align-items: center; 			flex-flow: column nowrap; 			background: url(imagenes/Pueblo_Paleta.png); 			background-position: center; 			background-attachment: contain; 			background-size: cover; 			height: 550px; 			text-align: center; 		} 			.texto-principal h1{ 				color: #EDF9FC; 				font-size: 70px; 				font-family: 'Roboto Condensed', sans-serif; 			}  			.texto-principal h3{ 				color: #EDF9FC; 				font-size: 40px; 				font-family: 'Roboto Condensed', sans-serif; 				opacity: 0.8; 			}  			.texto-principal .fas{ 				cursor: pointer; 				padding: 20px; 				font-size: 80px; 				color: #fff; 				margin: 120px 0px 0px; 			}  		.romemu{ 			width: 90%; 			display: flex; 			flex-flow: row nowrap; 			justify-content: center; 			align-items: center; 			margin: 30px auto; 			background: rgba(209, 244, 250, 0.5); 			border-radius: 2px; 		}  			#roms{ 				background: #D1F4FA; 				width: 600px; 				min-height: 450px; 				padding: 10px; 				margin: 20px; 				position: relative; 				display: flex; 				flex-flow: row wrap; 				justify-content: space-around; 				align-items: center; 				opacity: 0; 				transition: all 0.8s; 			}  			#emuladores{ 				background: #D1F4FA; 				width: 600px; 				min-height: 450px; 				padding: 10px; 				margin: 20px; 				position: relative; 				display: flex; 				flex-flow: row wrap; 				justify-content: space-around; 				align-items: center; 				opacity: 0; 				transition: all 0.8s; 			}  				.titulor, .tituloe{ 					width: 100%; 					background: #005792; 					color: #EDF9FC; 					text-align: center; 					position: absolute; 					top: 0; 					padding: 10px 0; 					font-size: 22px; 				}  				.imgr{ 					width: 65%; 					margin-top: 50px; 					padding: 20px; 					filter: drop-shadow(-12px 12px 5px #222); 					transition: all 0.5s ease; 				}  				.imgr:hover{ 					filter: drop-shadow(-5px 5px 5px #222); 					opacity: 0.85; 				}  				.imge{ 					width: 65%; 					margin-top: 50px; 					padding: 20px; 					filter: drop-shadow(12px 12px 5px #222); 					transition: all 0.5s ease; 				}  				.imge:hover{ 					filter: drop-shadow(5px 5px 5px #222); 					opacity: 0.85; 				}  					.rom, .emulador{ 						width: 20%; 						margin: 60px 5px 5px 5px; 						padding: 5px; 						display: none; 					}  					.irom{ 						width: 70%; 						position: relative; 						top: 25%; 						left: 15%; 						filter: drop-shadow(-13px 13px 5px #222); 						opacity: 0.8; 						transition: 0.5s; 					}  					.irom:hover{ 						filter: drop-shadow(-5px 5px 5px #222); 						opacity: 1; 					}  					.iemu{ 						width: 70%; 						position: relative; 						top: 25%; 						left: 15%; 						filter: drop-shadow(13px 13px 5px #222); 						opacity: 0.8; 						transition: 0.5s; 					}  					.iemu:hover{ 						filter: drop-shadow(5px 5px 5px #222); 						opacity: 1; 					}  /*____________________Roms_y_Emuladores____________________*/          .list{         	background: rgba(209, 244, 250, 0.5);         	width: 90%; 			margin: 20px auto; 			display: flex; 			flex-flow: row wrap; 			justify-content: center; 			align-items: center; 			border-radius: 5px;         }  	        .separador{ 	        	width: 100%; 	        	height: 100%; 	        	margin: 20px; 	        	border-radius: 10px; 	        }  		        .list-label{ 		        	cursor: pointer; 		        }  		        .separador h2{ 		        	color: #EDF9FC; 		        	font-size: 35px; 		        	background: #005792; 		        	margin: 0; 		        	padding: 15px; 		        	border-radius: 5px; 		        	transition: 0.3s; 		        }  		        .separador h2:hover{ 		        	opacity: 0.9; 		        }  		        .separador .fas{ 		        	color: #EDF9FC; 		        	padding: 5px; 		        	transform: rotate(360deg); 		        	transition: 0.5s; 		        }  		        .list-selector{ 		        	display: none; 		        }  			        .lista{ 			        	background: #D1F4FA; 			        	list-style: none; 			        	margin: auto; 			        	padding: 10px;                 opacity: 0;                 height: 0; 			        	overflow: hidden; 			        	text-align: center; 			        	transition: 0.75s; 			        }  				        .list li{ 				        	background: #005792; 				        	margin: 20px 10px; 				        	padding: 10px; 				        	border-radius: 5px; 				        }  					        .list a{ 					        	color: #EDF9FC; 					        	font-size: 22px; 					        	transition: 0.4s; 					        }  					        .list a:hover{ 					        	opacity: 0.3; 					        }  /*__________________________Entradas____________________________*/          .content{         	display: flex;         	flex-flow: row nowrap;         	align-items: center;         	justify-content: space-around;         	margin: 20px;         	padding: 20px;         }  	        .content_left{ 	        	display: flex; 	        	flex-flow: column wrap; 	        	align-items: center; 	        	justify-content: space-around; 	        	width: 75%; 	        	margin: 10px; 	        }  		        .content_left h1{ 		        	position: relative; 		        	text-align: center; 		        	font-size: 40px; 		        	margin: 10px; 		        	color: #EDF9FC; 		        }  		        .content_left hr{ 		        	color: #D1F4FA; 		        	width: 100%; 		        }  		        .content_left .product{ 		        	display: flex; 		        	flex-flow: row nowrap; 		        	align-items: center; 		        	justify-content: center; 		        	margin: 10px; 		        }  			        .product img{ 			        	width: 35%; 			        	margin: 10px; 			        }  			        .product table{ 			        	margin: 10px; 			           	font-size: 22px; 			        	color: #D1F4FA; 			        }  			        .info{ 			        	display: flex; 			        	flex-flow: column nowrap; 			        	align-items: center; 			        	justify-content: space-around; 			        	margin: 10px; 			        	padding: 30px; 			        }  					        #dowrom, #dowemu{ 					        	padding: 20px; 					        	margin: 17px; 					           	border-radius: 5px; 					        }  					        #dowrom{ 					        	background: #005792; 					        	color: #EDF9FC; 					        	font-size: 25px; 					        	transition: 0.3s; 					        }  					        #dowrom:hover{ 					        	background: #D1F4FA; 					        	color: #005792; 					        }  					        #dowemu{ 					        	background: #D1F4FA; 					        	color: #005792; 					        	font-size: 20px; 					        	transition: 0.3s; 					        }  					        #dowemu:hover{ 					        	background: #005792; 					        	color: #D1F4FA; 					        }  			.content_right{ 				display: flex; 	        	flex-flow: column nowrap; 	        	align-items: center; 	        	justify-content: center; 				width: 25%; 				margin: 20px; 			}  			.content h2{ 				font-size: 25px; 				text-align: center; 				color: #D1F4FA; 			}  				.content .sub_product{ 					height: 20%; 					margin: 10px; 					text-align: center; 					color: #005792; 				}  					.sub_product li{ 						padding: 10px; 						background: #D1F4FA; 						margin: 10px; 						border-radius: 10px; 						transition: 0.3s; 					}  					.sub_product li:hover{ 						background: #005792; 					}  					.sub_product li:hover a{ 						color: #D1F4FA; 					}  						.sub_product a{ 							font-size: 17px; 							color: #005792; 							transition: 0.3s; 						}   		@media all and (max-width: 1000px){ 			.romemu{ 				flex-flow: column wrap; 			} 			.roms, .emuladores{ 				width: 90%; 				margin: 15px auto; 			} 			.rom, .emulador{ 				width: 45%; 			} 			.content{ 				flex-flow: column nowrap; 			} 			.content_left{ 				width: 100%; 				margin: 25px; 			} 			.content_right{ 				width: 100%; 				margin: 25px; 			} 			.sub_product{ 				flex-flow: row nowrap; 			} 			.sub_product li{ 				display: inline-flex; 			} 		}
<!DOCTYPE html> <html lang="es"> <head> 	<meta charset="utf-8"> 	<title>PokeRoms - Todas las Roms de Pokemon GB, GBC, GBA, N64, GC, NDS, WII, 3DS.</title> 	<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> 	<script src="https://code.jquery.com/jquery-3.3.1.min.js"integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8="crossorigin="anonymous"></script> 	<script src="https://code.jquery.com/ui/1.12.1/jquery-ui.js"></script> 	<link href="https://fonts.googleapis.com/css?family=Roboto|Roboto+Condensed:700" rel="stylesheet"> 	<link rel="stylesheet" href="https://use.fontawesome.com/releases/v5.8.1/css/all.css" integrity="sha384-50oBUHEmvpQ+1lW4y57PTFmhCaXp0ML5d60M1M7uH2+nqUivzIebhndOJK28anvf" crossorigin="anonymous"> 	<link rel="stylesheet" type="text/css" href="estilo.css"> 	<script type="text/javascript" src="codigo.js"></script> </head> <body> 	<header> 		<div class="logo"> 			<a href=""></a> 		</div> 		<div class="menu"> 			<nav> 				<ul> 					<li><a href="inicio.html">Inicio</a></li> 					<li><a href="roms.html">Roms</a></li> 					<li><a href="emuladores.html">Emuladores</a></li> 				</ul> 			</nav> 		</div> 	</header> 		<section class="list"> 			<div class="separador" id="gb-roms"> 				<label for="gb" class="list-label"><h2>GameBoy/GB Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="gb" onclick="abrirCerrar(0)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(GB) - Pokemon Azul</strong></a> 						</li> 						<li> 							<a href=""><strong>(GB) - Pokemon Amarrilla</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="gbc-roms"> 				<label for="gbc" class="list-label"><h2>GameBoy Color/GBC Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="gbc" onclick="abrirCerrar(1)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(GBC) - Pokemon Cristal</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokemon Plata</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokemon Oro</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokemon Pinball</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokémon Puzzle Challenge</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokémon Trading Card Game</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBC) - Pokémon Trading Card Game 2</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="gba-roms" > 				<label for="gba" class="list-label"><h2>GameBoy Advance/GBA Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="gba" onclick="abrirCerrar(2)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(GBA) - Pokemon Rojo</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokemon Verde</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokemon Esmeralda</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokemon Zafiro</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokémon Rubi</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokémon Equipo Misterioso: Equipo de Rescate Rojo</strong></a> 						</li> 						<li> 							<a href=""><strong>(GBA) - Pokémon Pinball: Rubi y Zafiro</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="n64-roms"> 				<label for="n64" class="list-label"><h2>Nintendo 64/N64 Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="n64" onclick="abrirCerrar(3)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(N64) - Pokemon Puzzle League</strong></a> 						</li> 						<li> 							<a href=""><strong>(N64) - Pokemon Snap</strong></a> 						</li> 						<li> 							<a href=""><strong>(N64) - Pokemon Stadium</strong></a> 						</li> 						<li> 							<a href=""><strong>(N64) - Pokemon Stadium 2</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="gc-roms"> 				<label for="gc" class="list-label"><h2>Nintendo GameCube/GC Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="gc" onclick="abrirCerrar(4)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(GC) - Pokemon Colosseum</strong></a> 						</li> 						<li> 							<a href=""><strong>(GC) - Pokemon Channel</strong></a> 						</li> 						<li> 							<a href=""><strong>(GC) - Pokemon XD: Tempestad Oscura</strong></a> 						</li> 						<li> 							<a href=""><strong>(GC) - Pokemon Box: Rubi y Zafiro</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="nds-roms"> 				<label for="nds" class="list-label"><h2>Nintendo DS/NDS Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="nds" onclick="abrirCerrar(5)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(NDS) - Pokemon Diamante</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokemon Perla</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokemon Platino</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokemon Oro HeartGold</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Plata SoulSilver</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Mundo Misterioso: Equipo de Rescate Azul</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Mundo Misterioso: Exploradores del Tiempo</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) Pokémon Mundo Misterioso: Exploradores de la Oscuridad</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Mundo Misterioso: Exploradores del Cielo</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Ranger</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Sombras de Almia</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Trazos de Luz</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Dash</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Link!</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Negro</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Blanco</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Negro 2</strong></a> 						</li> 						<li> 							<a href=""><strong>(NDS) - Pokémon Blanco 2</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="wii-roms"> 				<label for="wii" class="list-label"><h2>Nintendo Wii/Wii Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="wii" onclick="abrirCerrar(6)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(Wii) - PokePark Wii: La gran aventura de Pikachu</strong></a> 						</li> 						<li> 							<a href=""><strong>(Wii) - PokePark 2: Un mundo de ilusiones</strong></a> 						</li> 						<li> 							<a href=""><strong>(Wii) - Pokemon Battle Revolution</strong></a> 						</li> 					</ul> 			</div> 			<div class="separador" id="3ds-roms"> 				<label for="3ds" class="list-label"><h2>Nintendo 3DS/3DS Roms <i class="fas fa-angle-down"></i></h2></label> 				<input type="checkbox" name="list" class="list-selector" id="3ds" onclick="abrirCerrar(7)"> 					<ul class="lista"> 						<li> 							<a href=""><strong>(3DS) - Pokemon Omega Ruby</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Omega Zafiro</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon X</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Y</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Sol</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Luna</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Ultra Sol</strong></a> 						</li> 						<li> 							<a href=""><strong>(3DS) - Pokemon Ultra Luna</strong></a> 						</li> 					</ul> 			</div> 		</section> 	<footer> 		<nav class="pie"> 			<a href="">Desarrollado por Felix Lozada</a> 		</nav> 	</footer> </body> </html>

Esta seria la funcion si la paso a jquery

	var	lista = $  ('.lista'); 	var icon = $  ('.fas');  	var clic = 1;  	$  ('.list-selector').click(function abrirCerrar(num){  		if(clic==1){ 			lista[num].slideDown(1000);  			clic = 0; 		}else{ 			lista[num].slideUp(1000);  			clic = 1; 		} 	})  var	lista = $  ('.lista'); var icon = $  ('.fas');  var clic = 1;  $  ('.list-selector').click(function abrirCerrar(num){  	if(clic==1){ 		lista[num].slideDown(1000);  		clic = 0; 	}else{ 		lista[num].slideUp(1000);  		clic = 1; 	} })

funcion PHP selectById me devuelve ‘root’ cuando le paso un $id que no existe

tengo esta funcion que me devuelve un familiar.

  function familiar_obtenerPorId($  id){     include_once 'procedimientos/conexion.php';      if ($  con) {         $  sql = "SELECT * FROM familiares WHERE id =".$  id.";";         $  result = mysqli_query($  con,$  sql);         if ($  result) {             while ($  row = mysqli_fetch_assoc($  result)) {             $  usuario = $  row;           }            if ($  usuario) {             return $  usuario;           }           else{             return null;           }         }      }       return null;      } 

y lo compruebo de la siguiente manera:

  $  result = familiar_obtenerPorId(21);    var_dump($  result); 

Entonces si le paso un $ id que existe me retorna sin problema con el var_dump(). Pero si le paso un $ id que no existe me retorna : 'root' en vez de retorname null como le indico.

¿Por que me retorna root y que significa que retorne eso?

¿Existe alguna función en java para registrar los parámetros de un SP cuando lo mando llamar?

Estoy haciendo la llamada de un sp que tiene los siguientes parámetros de entrada y salida. NOMBRE IN EDAD IN SEXO IN COLONIA IN ESTADO IN DADO_ALTA OUT

El problema es que no quiero declarar cada parámetro uno por uno ya que son muchos.¿Hay alguna función que permita obtener automáticamente todos los parámetros de entrada para no tener que declararlos uno por uno? Este es mi código

StoredProcedureQuery query = this.getEntityManager().createStoredProcedureQuery("NAME_SP")                 .registerStoredProcedureParameter(1, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(2, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(3, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(4, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(5, Class.class, ParameterMode.IN)                 .registerStoredProcedureParameter(6, Long.class,  ParameterMode.OUT);              query.execute(); 

utilizar funcion SUM dos veces al mismo tiempo sql

trabajo sql management estudio 2018 Buen día tengo un problema, a ver si me pueden ayudar ando sumando cantidades de los id’s que son iguales utilizo la funcion sum y no tengo ningun problema (Sacos los subtotales). Ahora lo que necesito que los resultados que me salieron los vuelva a sumar y saque el total final. pero no se como hacer ya que utilice el sum alguna idea estes mi codigo

    `SELECT fac.ID_Solicitud ,      sum (fac.importePendientePago) as pago ,       div.descripcion      FROM LIT_Factura fac      inner join LIT_SRCartera RC on RC.Id_solicitud=fac.ID_Solicitud      inner join CAT_Subsidiaria sub on sub.ID_Subsidiaria=RC.ID_Sociedad      inner  join CAT_Division div on div.ID_Division=sub.ID_Division      where div.ID_Division=2      group by fac.ID_Solicitud,  div.descripcion` 

mi resultado de mi quuery, quiero que pago lo vuelva a sumar y saque el total final

Es posible hacer esto? funcion return

def EnPartida(tablero_disparos,tablero_posicion,turno):

global hundido1 global hundido2 global hundido  if turno== True:     print("Es tu turno.")     tiro, hundido=disparo(tablero_disparos)     hundido1= hundido1 + hundido     if tiro== True:         return tiro, hundido1;  if turno== False or tiro== False:     print("Es turno del rival.")     tiro2, hundido=disparo(tablero_posicion)     hundido2= hundido2 + hundido     if tiro2== True:         tiro2 = False         return tiro2, hundido2; 

~

Pregunto porque me tira error y creo que es porque no es posible hacerlo como yo quiero.

Traceback (most recent call last): File “C:/Users/Lucho/Desktop/Batalla Naval/Batalla Naval.py”, line 109, in hundido1, turno = EnPartida(tablero_disparos,tablero_posicion,turno) TypeError: cannot unpack non-iterable NoneType object

¿Cómo realizar una función para un indice y obtener resultados según los valores de su fila?

Tengo un df, con portafolios aleatorios, se muestran de la siguiente manera

>>> random_portafolios      AAPL weight  MSFT weight  XOM weight  JNJ weight  JPM weight  AMZN weight  GE weight  FB weight T weight 0     0.188478     0.068795    0.141632    0.147974    0.178185     0.040370   0.020516   0.047275  0.166774 1     0.236818     0.008540    0.082680    0.088380    0.453573     0.021001   0.014043   0.089811  0.005155 2     0.179750     0.071711    0.050107    0.089424    0.080108     0.106136   0.155139   0.073487  0.194138 3     0.214392     0.015681    0.034284    0.276342    0.118263     0.002101   0.057484   0.000317  0.281137 4     0.301469     0.099750    0.046454    0.093279    0.020095     0.073545   0.178752   0.146486  0.040168 5     0.132916     0.006199    0.305137    0.032262    0.090356     0.169671   0.205602   0.003686  0.054172 

los portafolios aleatorios, tienen diferentes ponderaciones

Ademas tengo los rendimientos de un año de dichas acciones

>>> RetornosAcciones.head()                  AAPL      MSFT       XOM      TWTR       JPM      AMZN        GE        FB         T    Date   2017-01-04 -0.001164 -0.004356 -0.011069  0.025547  0.001838  0.004657  0.000355  0.015660 -0.005874   2017-01-05  0.005108  0.000000 -0.014883  0.013642 -0.009174  0.030732 -0.005674  0.016682 -0.002686   2017-01-06  0.011146  0.008582 -0.000499  0.004681  0.000123  0.019912  0.002853  0.022707 -0.019930   2017-01-09  0.009171 -0.003170 -0.016490  0.019220  0.000741  0.001168 -0.004979  0.012074 -0.012641   2017-01-10  0.001049 -0.000335 -0.012829 -0.007429  0.002837 -0.001280 -0.002859 -0.004404  0.000278 

Ahora quiero agregar dos columnas “Retornos” y “Volatilidad” a ese df. Lo que se me ocurrió hacer fue lo siguiente:

arr = random_portafolios.iloc[0].values.copy() 
 >>> print(arr)   array([0.188478, 0.068795, 0.141632, 0.147974, 0.178185, 0.040370, 0.020516, 0.047275, 0.166774]) 
RetornosPonderaciones = RetornosAcciones.mul(arr, axis=1) RetornosDiarios= RetornosPonderaciones.sum(axis=1) media_Retornos_Diarios = np.mean(RetornosDiarios) Retornos = ((1+media_Retornos_Diarios)**252)-1 cov_mat =RetornosAcciones.cov() cov_mat_annual = cov_mat*252 Volatilidad= np.sqrt(np.dot(arr.T, np.dot(cov_mat_annual, arr))) 
>>> print(Volatilidad) 0.25967808307660656 >>> print(Retornos) 0.10572928906753858 

Genero la columna para los rendimientos y y la volatilidad como sigue

random_portafolios['Retornos']=Retornos random_portafolios['Volatilidad']=Volatilidad 
>>> random_portafolios       AAPL weight  MSFT weight  XOM weight  JNJ weight  JPM weight  AMZN weight GE weight  FB weight  T weight  Retornos   Volatilidad   0     0.188478     0.068795    0.141632    0.147974    0.178185     0.040370   0.020516   0.047275  0.166774  0.259678     0.105729   1     0.236818     0.008540    0.082680    0.088380    0.453573     0.021001   0.014043   0.089811  0.005155  0.259678     0.105729   2     0.179750     0.071711    0.050107    0.089424    0.080108     0.106136   0.155139   0.073487  0.194138  0.259678     0.105729   3     0.214392     0.015681    0.034284    0.276342    0.118263     0.002101   0.057484   0.000317  0.281137  0.259678     0.105729   4     0.301469     0.099750    0.046454    0.093279    0.020095     0.073545   0.178752   0.146486  0.040168  0.259678     0.105729   5     0.132916     0.006199    0.305137    0.032262    0.090356     0.169671   0.205602   0.003686  0.054172  0.259678     0.105729 

Lo que busco es que ese resultado me aparezca en fila que le corresponde (fila 0, en este caso), y realizar lo mismo para las siguientes filas que se tengan.

Pienso que quizás con un for pueda lograr generar los resultados que necesito, pero no estoy seguro y estoy muy perdido.

Ayuda por favor

¿Cómo seria la función para obtener el numero máximo,mínimo y posición de una matriz?

En si, el programa pide valores desde teclado y crea una matriz de 5 por 5,suma las filas y las columnas pero ahora me pide una función para obtener el valor mínimo, máximo y la posición de estos mediante una función.

valmax(int matriz[5][5]) {     int d, t, aux;     aux = matriz[0][0];     for (d = 0; d < 5; d++) {         for (t = 0; t < 5; t++) {             if (matriz[d][t] > matriz[d + 1][t + 1]) {                 aux = matriz[d][t];             }         }     }     return aux; }  int main() {     aux = valmax(matriz);     for (d = 0; d < 5; d++) {         for (t = 0; t < 5; t++) {             if (matriz[d][t] == aux)                 break;         }     }     fprintf(recibo, "posicion[%d][%d] y valor maximo es: %d", d, t, aux);     return 0; } 

Ésto es solo para el valor maximo,me falta el valor minimo,espero me puedan ayudar.

usar flags en una funcion

Estoy intentando sincronizar unos players, tengo 2 en mi sitio. Estuve viendo que la mejor manera es tener un servicio que reciba los eventos y de acuerdo a de donde viene ejecute un player u otro, esas acciones de play las tengo en otras funciones. Lo que no me esta saliendo es la funcion que estaria en ese servicio, tengo un flag que arranca como falso y si apreto algun play, pasa a verdadero y si es verdades tiene que ejecutar la funcion de ese player..

Estoy segura que debe ser algo sencillo, pero no se porque estoy tan trabado.. agredezco cualquier ayudita, gracias! este es mi codigo:

serviceHandle = (data) => {     var flag = false     if(data === undefined) {         console.log('llego desde el float')         flag = true         if(flag == true) {  // esto me genera un loop infinito             this.playerUno()         }       } else {         console.log('llega desde el mp3')     } }