<?php

  $debugin              = $decoded['debug'];
  $almacen_salida       = $decoded['almacen_salida'];
  $almacen_entrada      = $decoded['almacen_entrada'];
  $fecha_alta           = date('Y-m-d H:i:s');
  $fecha                = $decoded['fecha'];
  $productos            = $decoded['productos'];

  //Valida almacen salida
  $Query = "
    SELECT
      bo.Id
    FROM KB_Almacenes bo
    WHERE
      bo.Id = '$almacen_salida'
  ";
  $Result = mysqli_query($mysqli, $Query);
  $BodSal = mysqli_fetch_assoc($Result);
  if( $BodSal[Id] ){

    //Valida almacen entrada
    $Query = "
      SELECT
        bo.Id
      FROM KB_Almacenes bo
      WHERE
        bo.Id = '$almacen_entrada'
    ";
    $Result = mysqli_query($mysqli, $Query);
    $BodEnt = mysqli_fetch_assoc($Result);
    if( $BodEnt[Id] ){

      //Upadate Inventarios
      if( $productos ){

        //Insert Transpaso
        $Query = "
          INSERT INTO KB_Traspasos
          (
            Fk_AlmacenSalida,
            Fk_AlmacenEntrada,
            FechaAlta, Fecha,
            Fk_Usuario
          )
          VALUES (
            '$BodSal[Id]',
            '$BodEnt[Id]',
            '$fecha_alta', '$fecha',
            '0'
          )
        ";
        $Result = mysqli_query($mysqli, $Query);
        $IdTrans = mysqli_insert_id($mysqli);

        //If Id Transpaso
        if( $IdTrans ){

          //Insert Salida
          $Query = "
            INSERT INTO KB_Salidas
            (
              Fk_Almacen,
              FechaAlta, Fecha,
              Fk_Usuario, Fk_Tipo
            )
            VALUES (
              '$BodSal[Id]',
              '$fecha_alta', '$fecha',
              '0', '3'
            )
          ";
          $Result = mysqli_query($mysqli, $Query);
          $IdSal = mysqli_insert_id($mysqli);

          //Update Transpaso
            $Query = "
              UPDATE KB_Traspasos
              SET
                Fk_Salida = '$IdSal'
              WHERE Id = '$IdTrans'
            ";
            $Result = mysqli_query($mysqli, $Query);
          //End Update Transpaso

          //If Id Salida
          if( $IdSal ){

            //foreach
            foreach( $productos AS $pro ){

              $clave               = $pro['clave'];
              $cantidad            = $pro['cantidad'];

              //Valida Clave de Producto
              $Query = "
                SELECT
                  pro.Id, pro.Clave
                FROM KB_Productos pro
                WHERE
                  pro.Clave = '$clave'
              ";
              $Result = mysqli_query($mysqli, $Query);
              $Pro = mysqli_fetch_assoc($Result);
              if( $Pro[Id] ){

                //Inserta Entrada de Producto
                  $Query = "
                    INSERT INTO KB_ProductosSalidas
                    (
                      Fk_Salida,
                      Fk_Producto, ClaveProducto,
                      Cantidad,
                      Fk_Almacen,
                      FechaAlta, Fecha,
                      Fk_Usuario
                    )
                    VALUES (
                      '$IdSal',
                      '$Pro[Id]', '$Pro[Clave]',
                      '$cantidad',
                      '$BodSal[Id]',
                      '$fecha_alta', '$fecha',
                      '0'
                    )
                  ";
                  $Result = mysqli_query($mysqli, $Query);
                  $IdSalPro = mysqli_insert_id($mysqli);
                //End Inserta Entrda de Producto

                //Check Producto en Inventario
                  $Query = "
                    SELECT
                      pro.Id
                    FROM KB_ProductosInventario pro
                    WHERE
                      pro.Fk_Producto = '$Pro[Id]'
                      AND pro.Fk_Almacen = '$BodSal[Id]'
                  ";
                  $Result = mysqli_query($mysqli, $Query);
                  $ProInv = mysqli_fetch_assoc($Result);
                  if( $ProInv[Id] ){

                    //Actualiza Existencia en Inventario
                      $Query = "
                        UPDATE KB_ProductosInventario
                        SET
                          Existencia = Existencia - $cantidad
                        WHERE Id = '$ProInv[Id]'
                      ";
                      $Result = mysqli_query($mysqli, $Query);
                    //End Actualiza Existencia en Inventario

                    //Insert Entrada
                    //Upadate Inventario
                    if( $productos ){

                      //Insert Entrada
                      $Query = "
                        INSERT INTO KB_Entradas
                        (
                          Fk_Almacen, Fk_Compra,
                          FechaAlta, Fecha,
                          Fk_Usuario, Fk_Tipo
                        )
                        VALUES (
                          '$BodEnt[Id]', '$compra',
                          '$fecha_alta', '$fecha',
                          '0', '5'
                        )
                      ";
                      $Result = mysqli_query($mysqli, $Query);
                      $IdEnt = mysqli_insert_id($mysqli);

                      //Update Transpaso
                        $Query = "
                          UPDATE KB_Traspasos
                          SET
                            Fk_Entrada = '$IdEnt'
                          WHERE Id = '$IdTrans'
                        ";
                        $Result = mysqli_query($mysqli, $Query);
                      //End Update Transpaso

                      //If
                      if( $IdEnt ){

                        //foreach
                        foreach( $productos AS $pro ){

                          $clave               = $pro['clave'];
                          $cantidad            = $pro['cantidad'];

                          //Valida Clave de Producto
                          $Query = "
                            SELECT
                              pro.Id, pro.Clave
                            FROM KB_Productos pro
                            WHERE
                              pro.Clave = '$clave'
                          ";
                          $Result = mysqli_query($mysqli, $Query);
                          $Pro = mysqli_fetch_assoc($Result);
                          if( $Pro[Id] ){

                            //Inserta Entrada de Producto
                            $Query = "
                              INSERT INTO KB_ProductosEntradas
                              (
                                Fk_Entrada,
                                Fk_Compra, Fk_Producto, ClaveProducto,
                                Cantidad,
                                Fk_Almacen,
                                FechaAlta, Fecha,
                                Fk_Usuario
                              )
                              VALUES (
                                '$IdEnt',
                                '$compra', '$Pro[Id]', '$Pro[Clave]',
                                '$cantidad',
                                '$BodEnt[Id]',
                                '$fecha_alta', '$fecha',
                                '0'
                              )
                            ";
                            $Result = mysqli_query($mysqli, $Query);
                            $IdEntPro = mysqli_insert_id($mysqli);
                            //End Inserta Entrda de Producto

                            //Check Producto en Inventario
                            $Query = "
                              SELECT
                                pro.Id
                              FROM KB_ProductosInventario pro
                              WHERE
                                pro.Fk_Producto = '$Pro[Id]'
                                AND pro.Fk_Almacen = '$BodEnt[Id]'
                            ";
                            $Result = mysqli_query($mysqli, $Query);
                            $ProInv = mysqli_fetch_assoc($Result);
                            if( $ProInv[Id] ){

                              //Actualiza Existencia en Inventario
                                $Query = "
                                  UPDATE KB_ProductosInventario
                                  SET
                                    Existencia = Existencia + $cantidad
                                  WHERE Id = '$ProInv[Id]'
                                ";
                                $Result = mysqli_query($mysqli, $Query);
                              //End Actualiza Existencia en Inventario

                            }else{

                              //Inserta Existencia en Inventario
                                $Query = "
                                  INSERT INTO KB_ProductosInventario
                                  (
                                    Fk_Producto, ClaveProducto,
                                    Fk_Almacen, Existencia
                                  )
                                  VALUES (
                                    '$Pro[Id] ', '$Pro[Clave] ',
                                    '$BodEnt[Id]', '$cantidad'
                                  )
                                ";
                                $Result = mysqli_query($mysqli, $Query);
                              //End Inserta Existencia en Inventario

                            }



                          }
                          //End Valida Clave de Producto

                        }
                        //End foreach

                      }
                      //End If

                      $Data = array(
                        'action'    => 'ok',
                        'msn'       => "Productos cargads con exito."
                      );
                      echo json_encode($Data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

                    }
                    //Upadate Inventario

                  }
                //End Check Producto en Inventario

              }
              //End Valida Clave de Producto

            }
            //End foreach

          }
          //End If Id Salida

        }
        //End If Id Transpaso

      }
      //Upadate Inventarios

    }
    //End Valida almacen entrada

  }
  //End Valida almacen salida
  else{

    //Error
    $Query = "
      SELECT
        err.Id, err.error, err.msn
      FROM KB_Api_Errores err
      WHERE err.error = 'bod-1'
    ";
    $Result = mysqli_query($mysqli, $Query);
    $Error = mysqli_fetch_assoc($Result);

    $Data = array(
      'action'      => 'error',
      'error'       => $Error[error],
      'error_msn'   => $Error[msn]
    );
    echo json_encode($Data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

  }
?>
