Como activar una azure sql database cuando se activa un pipeline de Data Factory

Actualmente me encuentro en la carga de una dimensión a una base de datos Azure Sql Database, el problema esta en que cuando se ejecuta el trigger a las 12 de la noche por ejemplo, la BD esta en pausa por inactividad y la ejecución del pipeline lanza el siguiente error
'svrexample.database.windows.net' is not currently available. Please retry the connection later.
Alguna idea de que pueda hacer?…

Saludos!!

el código funcionaba solo cuando era orientado a funcion, lo cambié a clases y no ejecuta

users.js // controller

‘use strict’;

const user = require(‘../models/user’);
const User = require(‘../models/user’)

                class Usuarios{

                    constructor(req,res){
                        this.req= req;
                        this.res= res;
                        this.usuarios()
                        }
                        
                async usuarios(req, res){
                        
                    const us = await User.find();
                     const data = {
                        title: 'Users',
                        us
                       };
                       console.log(us)
                    //  res.status(200).json(us);
                       }
                
                       usuarios(users= String) {
                        this(users);
                    }                       
                }
                
                 const classUsuarios = users => {
                     return (req, res, next)=>{
                         const us = new Usuarios();
                         us.usuarios(users);
                     }
                 }

         
                 
                 module.exports = classUsuarios ;
                

models

‘use srtict’

const mongoose = require(‘mongoose’)
const Schema = mongoose.Schema

const UserSchema = Schema({
name:String,
})

module.exports = mongoose.model(‘User’, UserSchema)

users.js // router
‘use strict’
const express = require(‘express’);
const classUsuarios = require(‘../controllers/user’); /mediante class/

const api = express.Router();

api.get(‘/users’,classUsuarios(‘usuarios’));
module.exports = api

android – Puede bajar la precisión del GPS cuando la batería esta baja

Si una aplicación fue desarrollada para android anterior a 7.1.1 ¿es posible que cuando el nivel de batería es bajo comience a capturar las coordenadas con menor precisión o de forma incorrecta?

¿El modo de captura que se establece en la configuración de android para la ubicación (precisión alta, ahorro de batería, solo dispositivo) queda fija sin importar el nivel de bateria del telefono?

Gracias de antemano, saludos

php – insertar registros cuando tenga modificación en remoto

tengo una centralita que me guarda las llamadas en json (proveedor) y ellos me dejan realizar peticiones al servidor y me devuelve un json.

He estado mirando y he visto que existen librerías tipo AMPHP o ReactPHP, pero no se si es lo que necesito. Alguien ha realizado esto algo parecido en PHP? Creo que se llaman PROMISES (creo), la idea es que cuando mi app detecte un cambio en la base datos remota me lo baje.

Y el problema es que tengo que integrarlo en php. El cliente me solicita que sea en PHP, para su manejo (supongo).

Ahora mismo lo que tengo es que cada 5 min se ejecute el script por cron, pero claro los problemas vienen cuando se reciben un aluvión de llamadas y has múltiples registros.

Tengo que empezar a tirar de arrays y “me ensucia” bastante el código…

Alguien me puede echar una mano? Gracias

php – ¿Cómo guardar la información de un select sin que pierdan los datos cuándo se actualiza la página?

tengo una tabla de productos en él cuál recibo por método GET la “ID” del producto para después mostrar su información e ir modificándolo.

Código de cómo recojo la ID del producto

    if (isset($_SESSION('carrito'))){
    //si existe buscamos si ya estaba agregado ese producto
    if (isset($_GET('id'))){
      $arreglo = $_SESSION('carrito');
      $encontro = false;
      $numero = 0;
      for ($i=0;$i<count($arreglo);$i++){
        if ($arreglo($i)('Id') == $_GET('id')){
          $encontro = true;
          $numero=$i;
        }
      }
      if ($encontro == true){
        $arreglo($numero)('Cantidad')=$arreglo($numero)('Cantidad')+1;
        $_SESSION('carrito')=$arreglo;
      }else{
            //No estaba el registro
        $tipo = "";
        $nombre = "";
        $descripcion = "";
        $res = $conexion->query('SELECT * FROM productos WHERE id='.$_GET('id'))or die($conexion->error);
        $fila = mysqli_fetch_row($res);
        $tipo = $fila(1);
        $nombre = $fila(2);
        $descripcion = $fila(3);
        $arregloNuevo = array(
          'Id' => $_GET('id'),
          'Tipo' => $tipo,
          'Nombre' => $nombre,
          'Descripcion' => $descripcion,
          'Bodega' => 'Sin asignar',
          'Cantidad' => 1,
          'ValorUnitario' => 0,
          'Descuento' => 0,
          'Impuesto' => 0,
          'ValorCargos' => 0,
          'ImpuestosRetencion' => 0,
          'Total' => 0
        );
        array_push($arreglo, $arregloNuevo);
        $_SESSION('carrito')=$arreglo;
      }
    }
  }else{
    //creamos la variable de sesion
    if (isset($_GET('id'))){
      $tipo = "";
      $nombre = "";
      $descripcion = "";
      $res = $conexion->query('SELECT * FROM productos WHERE id='.$_GET('id'))or die($conexion->error);
      $fila = mysqli_fetch_row($res);
      $tipo = $fila(1);
      $nombre = $fila(2);
      $descripcion = $fila(3);
      $arreglo() = array(
        'Id' => $_GET('id'),
        'Tipo' => $tipo,
        'Nombre' => $nombre,
        'Descripcion' => $descripcion,
        'Bodega' => 'Sin asignar',
        'Cantidad' => 1,
        'ValorUnitario' => 0,
        'Descuento' => 0,
        'Impuesto' => 0,
        'ValorCargos' => 0,
        'ImpuestosRetencion' => 0,
        'Total' => 0
      );
      $_SESSION('carrito')=$arreglo;
    }
  }

Anexo código de la tabla en la cuál muestro los productos

<table class="table table-sm" id="tablaContenido">
                    <thead>
                      <tr>
                        <th>#</th>
                        <th>Tipo</th>
                        <th>Ítem</th>
                        <th>Descripción</th>
                        <th>Bodegas</th>
                        <th>Cant.</th>
                        <th>Vr. Unitario</th>
                        <th>Descuento</th>
                        <th>Imp Cargo</th>
                        <th>Vr.+Cargos</th>
                        <th>Imp Retención</th>
                        <th>Valor</th>
                      </tr>
                    </thead>
                    <tbody>
                      <?php
                      $total= 0;
                      $cont = 1;
                      if (isset($_SESSION('carrito'))){
                        $arregloCarrito = $_SESSION('carrito');
                        for ($i=0;$i<count($arregloCarrito);$i++){
                          $total = $total + ($arregloCarrito($i)('ValorUnitario') * $arregloCarrito($i)('Cantidad'));
                          ?>
                          <tr>
                            <td><?php echo $cont; ?></td>
                            <td>
                              <select class="form-control form-control-sm">
                                <option>Producto</option>
                                <option>Activo Fijo</option>
                                <option>Gasto / Cuenta Contable</option>
                              </select>
                            </td>
                            <td><p><?php echo $arregloCarrito($i)('Nombre'); ?></p></td>
                            <td><p><?php echo $arregloCarrito($i)('Descripcion'); ?></p></td>
                            <td>
                              <select class="form-control form-control-sm" id="bodegas">
                                <?php 
                                $query = $conexion->query("SELECT * FROM bodegas")or die("Error en la consulta"); 
                                if ($arregloCarrito($i)('Bodega') == 'Sin asignar') {
                                  echo '<option selected>Sin asignar</option>';
                                  while ($campo = $query->fetch_array()) {
                                    echo '<option>'.$campo('nombre').'</option>';
                                  } }else{
                                    echo '<option>Sin asignar</option>';
                                    echo '<option selected data-id='.$arregloCarrito($i)("Id").'>'.$arregloCarrito($i)('Bodega').'</option>';
                                  } ?>
                                </select>
                              </td>
                              <td>
                                <div class="input-group mb-3" style="max-width: 120px;">
                                  <input type="text" class="form-control text-center txtCantidad"
                                  data-precio="<?php echo $arregloCarrito($i)('ValorUnitario'); ?>"
                                  data-id="<?php echo $arregloCarrito($i)('Id'); ?>"
                                  value="<?php echo $arregloCarrito($i)('Cantidad'); ?>" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1">
                                </div>
                              </td>
                              <td><?php echo $arregloCarrito($i)('ValorUnitario'); ?></td>
                              <td><?php echo $arregloCarrito($i)('Descuento'); ?></td>
                              <td><?php echo $arregloCarrito($i)('Impuesto'); ?></td>
                              <td><?php echo $arregloCarrito($i)('ValorCargos'); ?></td>
                              <td><?php echo $arregloCarrito($i)('ImpuestosRetencion'); ?></td>
                              <td class="cant<?php echo $arregloCarrito($i)('Id'); ?>">
                                $<?php echo $arregloCarrito($i)('ValorUnitario') * $arregloCarrito($i)('Cantidad'); ?>
                              </td>
                              <td><a href="#" class="btn btn-primary btn-sm btnEliminar" data-id="<?php echo $arregloCarrito($i)('Id'); ?>">X</a></td>
                            </tr>
                            <?php
                            $cont++;
                          } 
                        } ?>

                      </tbody>
                    </table>

Tengo un problema con la parte de las bodegas ya que yo necesito que se guarde la información por productos de cada bodega que selecciona la persona que guarda la información

introducir la descripción de la imagen aquí

Pero cada vez que selecciono la bodega para el producto con ID = 1, automáticamente también se selecciona para la bodega con ID = 2

introducir la descripción de la imagen aquí

introducir la descripción de la imagen aquí

Tengo una parte del código con las cantidades, que SÍ funciona independientemente, si cambio la cantidad del producto con ID=1 lo hace y se queda guardado sólo para ese ID=1

<td>
                                    <div class="input-group mb-3" style="max-width: 120px;">
                                      <input type="text" class="form-control text-center txtCantidad"
                                      data-precio="<?php echo $arregloCarrito($i)('ValorUnitario'); ?>"
                                      data-id="<?php echo $arregloCarrito($i)('Id'); ?>"
                                      value="<?php echo $arregloCarrito($i)('Cantidad'); ?>" placeholder="" aria-label="Example text with button addon" aria-describedby="button-addon1">
                                    </div>
                                  </td>

AJAX

$(".txtCantidad").keyup(function(){
       var cantidad = $(this).val();
       var precio = $(this).data('precio');
       var id = $(this).data('id');
       incrementar(cantidad,precio,id);
     });
      function incrementar(cantidad,precio,id){
       var mult = parseFloat(cantidad)* parseFloat(precio);
       $(".cant"+id).text("$"+mult);
       $.ajax({
         method:'POST',
         url:'./php/actualizar_carrito.php',
         data:{
           id:id,
           cantidad:cantidad
         }
       }).done(function(respuesta){
        $('#contenidoTotal').load('./ventas/total_compra.php');
      });
     }

actualizar_carrito

session_start();
error_reporting(0);
if ($_SESSION('id_user') == "") {
  echo "<script>alert('Por favor inicie sesión primero!');
  window.location.href='../'</script>";
}
$arreglo = $_SESSION('carrito');
for ($i=0; $i<count($arreglo); $i++){
    //$arreglo($i)('Bodega') = $_POST('bodega');
    if ($arreglo($i)('Id') == $_POST('id')){
        $arreglo($i)('Cantidad')=$_POST('cantidad');
        $_SESSION('carrito') = $arreglo;
        break;
    }
    //$_SESSION('carrito') = $arreglo;
}

Lo que quiero hacer es que así cómo la cantidad de cada producto queda guardado para el mismo, lo haga con el de las bodegas, si selecciono la bodega principal para la ID = 1 quede guardado para esa ID = 1 y no intervenga con el otro producto con ID = 2 y que trabajen por separado así sucesivamente dependiendo de los productos que incluya el cliente… ¿Me podrían ayudar?

python – exe cuando se ejecuta no encuentra el script

cree un ejecutable con pyinstaller y cuando ejecuto el exe con la consola me sale este error ModuleNotFoundError: No module named nombreArchivo mi programa consta de dos scripts, aunque le pase el script con --add-data me sigue generando el mismo error, pero si meto todo en un script me funciona perfecto alguien sabe a que se debe esto ?

así tengo importado el script donde ReproductorDeMusica es la carpeta y MP3 es script

from ReproductorDeMusica import MP3

php – ¿Cómo puedo evitar la inserción SQL a la BD cuando recargo la página?

Estoy creando una cesta y cuando guardo su nombre, paso a la página en la que realizo la inserción con mysql_query() y me enseña el contenido en una tabla. El problema está en que cuando refresco la página, la inserción se realiza de nuevo. He probado esto:

introducir la descripción de la imagen aquí

$producto es la descripción y $x es la cantidad que queremos de un mismo producto. ¿Cómo he de tratar $sqlLinea y $resposeLinea respecto al condicional? Almacenándolos fuera no evita la inserción sql al hacer refresh en la página.

python – ¿ por que se pega la ventana cuando presiono el botón?

el problema que tengo es que cada vez que presiono el botón primero se queda hundido(presionado) y la ventana no responde no se a que se debe esto.

sospecho a que se debe a los multiprocesos, investigue un poco pero no entiendo como implementarlo al código.

root = Tk()
root.geometry("250x250")

def texto_a_voz(texto):
   """
   Esta funcion nos permite pasar un texto(string) a voz
   :param texto:
   :return:
   """
   engine = pyttsx3.init()
   engine.setProperty("rate", 130)
   voces = engine.getProperty("voices")
   engine.setProperty("voice", voces(0).id)

   engine.say(texto)
   engine.runAndWait()


def reconocimiento_de_voz():
   r = sr.Recognizer()

   with sr.Microphone() as source:
   audio = r.listen(source)

   try:
       texto = r.recognize_google(audio, language="es-ES")
       print(texto)
       return texto
   except:
       pass

Button(root, text="Click", command=reconocimiento_de_voz).pack()

root.mainloop()

Detener prompt cuando el número no sea igual al valor de este Javascript

estaba haciendo esta simple calculadora con prompts, tengo un problema y es que cuando el valor del prompt no sea igual a 1, 2, 3 y 4, debe dejar de mostrarme el mensaje pidiendo que ingrese números para operar, creo que esto se debe a que muestro las variables primer_valor y segundo_valor fuera del if y de los else if adyacentes, y dentro del bloque else if (select_operation) en el que también hay un else donde muestra una alerta, por eso que primero se muestra el prompt y luego la alerta, una solución a esto, es establecer varios prompt en cada if y else if donde te pida algo como: Ingrese primer número para sumar, restar, etc. Pero no quiero establecer varios prompt, solo dos propmt al principio y luego operar sus valores.

const button = document.getElementById('iniciar-calculadora');

button.addEventListener('click', ()=>{
calculatorInit();
});
    
const calculatorInit = () =>{

    alert('Iniciando calculadora....');

    alert('Por favor selecciona un número:');

    var select_operation = prompt("1. Suma 2. Resta 3. Multiplicación 4. División");

    if (select_operation === ''){

    alert('Por favor ingrese un número');
    alert('La calculadora se reiniciará....')

    return calculatorInit();

    } else if (select_operation){

    var primer_valor = parseInt(prompt('Ingrese el primer número para operar')),
    segundo_valor = parseInt(prompt('Ingrese el segundo número para operar'));

    if(select_operation === '1'){

    alert(`La suma de ${primer_valor} y ${segundo_valor} es ${primer_valor + segundo_valor}`);
    
    } else if (select_operation === '2'){

    alert(`La resta de ${primer_valor} y ${segundo_valor} es ${primer_valor - segundo_valor}`);

    } else if (select_operation === '3'){

    alert(`La multiplicación de ${primer_valor} y ${segundo_valor} es ${primer_valor * segundo_valor}`);

    } else if (select_operation === '4'){

    alert(`La división entre ${primer_valor} y ${segundo_valor} es ${primer_valor / segundo_valor}`);

    } 

    else {

    primer_valor, segundo_valor = null;

    alert('No es un número válido');

    }
        }

    else {

    alert('Cerrando calculadora....');

    }
}
body{
margin: 0;
padding: 0;
}
#iniciar-calculadora{
padding: 0 45px;
line-height: 3.5;
position: absolute;
top: 50%;
left: 40%;
background: rgba(76,26,36,1);
color: white;
font-weight: bold;
font-family: system-ui, sans-serif;
text-transform: uppercase;
border: none;
border-radius: 10px;
}
#iniciar-calculadora:hover{
cursor: pointer;
}
#iniciar-calculadora:active{
transform: scale(0.85);
}
<button id="iniciar-calculadora">Iniciar calculadora</button>

Además tengo una duda, porque no puedo retornar la variable select_operation para volver a preguntar el tipo de operación a ejecutar, he retornado la function calculatorInit() para volver a iniciar la funcion, si quiero solo retornar la variable ¿Cómo hago para que me retorne select_operation para no ejecutar de nuevo la funcion?. Volviendo a la pregunta principal, ¿Cómo evitar que se muestre ambos prompt cuando ejecuto la alert('No es un número válido')?, Gracias.

¿Por qué Django devuelve los comandos para acceder a la base de datos cuando añado una plantilla a una función de visualización?

Queria ser capaz de modificar un articulo, entonces modifiqué views.py:

def viewtodo(request, todo_pk):
    # grab the todo from the primary key
    todo = get_object_or_404(Todo, pk=todo_pk)
    form = TodoForm(instance=Todo)
    return render(request, 'todo/viewtodo.html', {'todo':todo, 'form':form})

Pero me dedevuelve cosas extranas:

introducir la descripción de la imagen aquí