<?php

  $debugin              = $decoded['debug'];
  $clave                = $decoded['clave'];
  $nombre               = $decoded['nombre'];
  $descripcion          = $decoded['descripcion'];
  $categoria_clave      = $decoded['categoria_clave'];
  $subcategoria_clave   = $decoded['subcategoria_clave'];
  $marca_clave          = $decoded['marca_clave'];
  $existencia           = $decoded['existencia'];
  $unidades_clave       = $decoded['unidades_clave'];
  $unidades_completas   = $decoded['unidades_completas'];
  $alto                 = $decoded['alto'];
  $ancho                = $decoded['ancho'];
  $largo                = $decoded['largo'];
  $peso                 = $decoded['peso'];
  $precio               = $decoded['precio'];
  $descuento            = $decoded['descuento'];
  $barcode              = $decoded['barcode'];
  $venta_app            = $decoded['venta_app'];
  $activo               = $decoded['activo'];

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

    //Cambios de Variables
    $Vars = "";

    //Nombre
    if( $nombre ){
      $Vars .= "Nombre   = '$nombre',";
    }
    //End Nombre

    //Descripcion
    if( $descripcion ){
      $Vars .= "Descripcion = '$descripcion',";
    }
    //End Descripcion

    //Categoria
    if( $categoria_clave ){
      //Categoria
      $Query = "
        SELECT
          cat.Id, cat.Clave
        FROM KB_Productos_Categorias cat
        WHERE
          cat.Clave = '$categoria_clave'
      ";
      $Result = mysqli_query($mysqli, $Query);
      $Cat = mysqli_fetch_assoc($Result);
      if( $Cat[Id] ){
        $CatId    = $Cat[Id];
        $CatClave = $Cat[Clave];
      }else{

        //Inserta Categoria en caso de no existir
        $Query = "
          INSERT INTO KB_Productos_Categorias
          (
            Clave, Nombre
          )
          VALUES (
            '$categoria_clave', '$categoria_clave'
          )
        ";
        $Result = mysqli_query($mysqli, $Query);
        $IdCat = mysqli_insert_id($mysqli);

        $CatId    = $IdCat;
        $CatClave = $categoria_clave;
      }

      $Vars .= "
        Fk_Categoria   = '$CatId',
        ClaveCategoria = '$CatClave',
      ";

    }
    //End Categoria

    //Subcategoria
    if( $subcategoria_clave ){
      //Subcategoria
      $Query = "
        SELECT
          sub.Id, sub.Clave
        FROM KB_Productos_SubCategorias sub
        WHERE
          sub.Clave = '$subcategoria_clave'
      ";
      $Result = mysqli_query($mysqli, $Query);
      $SubCat = mysqli_fetch_assoc($Result);
      if( $SubCat[Id] ){
        $SubCatId    = $SubCat[Id];
        $SubCatClave = $SubCat[Clave];
      }else{
        $SubCatId    = '0';
        $SubCatClave = '';
      }

      $Vars .= "Fk_Subcategoria   = '$SubCatId',ClaveSubCategoria = '$SubCatClave',";

    }
    //End Subcategoria

    //Marca
    if( $marca_clave ){
      //Marca
      $Query = "
        SELECT
          mar.Id, mar.Clave
        FROM KB_Marcas mar
        WHERE
          mar.Clave = '$marca_clave'
      ";
      $Result = mysqli_query($mysqli, $Query);
      $Mar = mysqli_fetch_assoc($Result);
      if( $Mar[Id] ){
        $MarId    = $Mar[Id];
        $MarClave = $Mar[Clave];
      }else{
        $MarId    = '0';
        $MarClave = '';
      }

      $Vars .= "Fk_Marca   = '$MarId',ClaveMarca = '$MarClave',";

    }
    //End Marca

    //Unidad
    if( $unidades_clave ){
      $Query = "
        SELECT
          uni.Id, uni.Clave
        FROM KB_Unidades uni
        WHERE
          uni.Clave = '$unidad_clave'
      ";
      $Result = mysqli_query($mysqli, $Query);
      $Uni = mysqli_fetch_assoc($Result);
      if( $Uni[Id] ){
        $UniId    = $Uni[Id];
        $UniClave = $Uni[Clave];
      }else{
        $UniId    = '0';
        $UniClave = '';
      }

      $Vars .= "Fk_Unidad   = '$UniId',ClaveUnidad = '$UniClave',";

    }
    //End Unidad

    //Existencia
    if( $existencia ){
      $Vars .= "
        Existencia = '$existencia',
      ";
    }
    //End Existencia

    //UnidadesCompletas
    if( $unidades_completas ){
      $Vars .= "UnidadesCompletas = '$unidades_completas',";
    }
    //End UnidadesCompletas

    //Alto
    if( $alto ){
      $Vars .= "Alto = '$alto',";
    }
    //End Alto

    //Ancho
    if( $ancho ){
      $Vars .= "Ancho = '$ancho',";
    }
    //End Ancho

    //Largo
    if( $largo ){
      $Vars .= "Largo = '$largo',";
    }
    //End Largo

    //Peso
    if( $peso ){
      $Vars .= "Peso = '$peso',";
    }
    //End Peso

    //Precio
    if( $precio ){
      $Vars .= "Precio = '$precio',";
    }
    //End Precio

    //Descuento
    if( $descuento ){
      $Vars .= "Descuento = '$descuento',";
    }
    //End Descuento

    //Barcode
    if( $barcode ){
      $Vars .= "Barcode = '$barcode',";
    }
    //End Barcode

    //VentaApp
    if( $venta_app || $venta_app == '0' ){
      $Vars .= "VentaApp = '$venta_app',";
    }
    //End VentaApp

    //Activo
    if( $activo || $activo == '0' ){
      $Vars .= "Activo = '$activo',";
    }
    //End Activo


    //Upadte
    if( $Vars ){

      $Vars = rtrim($Vars,',');

      $Query = "
        UPDATE KB_Productos
        SET
          $Vars
        WHERE Id = '$Pro[Id]'
      ";
      $Result = mysqli_query($mysqli, $Query);

      $Data = array(
        'action'      => 'ok',
        'clave'       => "$clave"
      );
      echo json_encode($Data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

    }

  }
  //Valida Existencia de Producto
  else{

    //Error
    $Query = "
      SELECT
        err.Id, err.error, err.msn
      FROM KB_Api_Errores err
      WHERE err.error = 'pro-3'
    ";
    $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);

  }
?>
