<?php

  $debugin              = $decoded['debug'];
  $clave                = $decoded['clave'];
  $nombre               = $decoded['nombre'];
  $descripcion          = $decoded['descripcion'];
  $categoria_clave      = $decoded['categoria_clave'];
  $subcategoria_clave   = $decoded['subcategoria_clave'];
  $unidad_clave         = $decoded['unidad_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'];

  $precios              = $decoded['precios'];
  $impuestos            = $decoded['impuestos'];
  $empaques             = $decoded['empaques'];

  //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] ){

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

  }
  //Valida Existencia de Producto
  else{

    //Valida los campos a insretar
    if(
      isset($clave) && isset($nombre) && isset($descripcion)
      && isset($existencia)
      && isset($unidades_completas)
      && isset($alto) && isset($ancho) && isset($largo) && isset($peso)
      && isset($precio)
      && isset($venta_app) && isset($activo)
    ){

      //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{
        $CatId    = '0';
        $CatClave = '';
      }
      //End Categoria

      //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 = '';
      }
      //End Subcategoria

      //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 = '';
      }
      //End Marca

      //Unidad
      $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 = '';
      }
      //End Unidad

      //Inserta Producto
      $Query = "
        INSERT INTO KB_Productos
        (
          Clave, Nombre, Descripcion,
          Fk_Categoria, ClaveCategoria,
          Fk_Subcategoria, ClaveSubCategoria,
          Fk_Marca, ClaveMarca,
          Fk_Unidad, ClaveUnidad,
          Existencia,
          UnidadesCompletas,
          Alto, Ancho, Largo, Peso,
          Precio, Descuento,
          Barcode, VentaApp, Activo
        )
        VALUES (
          '$clave', '$nombre', '$descripcion',
          '$CatId', '$CatClave',
          '$SubCatId', '$SubCatClave',
          '$MarId', '$MarClave',
          '$UniId', '$UniClave',
          '$existencia',
          '$unidades_completas',
          '$alto', '$ancho', '$largo', '$peso',
          '$precio', '$Descuento',
          '$barcode', '$venta_app', '$activo'
        )
      ";
      $Result = mysqli_query($mysqli, $Query);
      $Id = mysqli_insert_id($mysqli);

      if( $Id ){

        //Precios
        foreach ($precios AS $precio) {

          $rango_a = $precio['rango_a'];
          $rango_b = $precio['rango_b'];
          $precio  = $precio['precio'];

          if( $rango_a && $rango_b && $precio ){

            //Insert Precios
            $Query = "
              INSERT INTO KB_Productos_Precios
              (
                Fk_Producto, ClaveProducto,
                Precio, RangoA, RangoB
              )
              VALUES (
                '$Id', '$clave',
                '$precio', '$rango_a', '$rango_b'
              )
            ";
            $Result = mysqli_query($mysqli, $Query);

          }

        }
        //End Precios

        //Impuestos
        foreach ($impuestos AS $impuesto) {

          $tipo_impuesto  = $impuesto['tipo_impuesto'];
          $impuesto       = $impuesto['impuesto'];

          if( $tipo_impuesto && $impuesto ){

            //Insert Impuesto
            $Query = "
              INSERT INTO KB_Productos_Impuestos
              (
                Fk_Producto, ClaveProducto,
                TipoImpuesto, Impuesto
              )
              VALUES (
                '$Id', '$clave',
                '$tipo_impuesto', '$impuesto'
              )
            ";
            $Result = mysqli_query($mysqli, $Query);

          }

        }
        //End Impuestos

        //Empaques
        foreach ($empaques AS $empaque) {

          $clave_empaque  = $empaque['clave_empaque'];
          $cantidad       = $empaque['cantidad'];
          $precios        = $empaque['precios'];

          if( $clave_empaque && $cantidad ){

            //Tipo de Empaque
            $Query = "
              SELECT
                emp.Id, emp.Clave, emp.Empaque
              FROM KB_Empaques emp
              WHERE emp.Clave = '$clave_empaque'
            ";
            $Result = mysqli_query($mysqli, $Query);
            $TipoEmpaque = mysqli_fetch_assoc($Result);

            //Insert Impuesto
            $Query = "
              INSERT INTO KB_Productos_Empaques
              (
                Fk_Producto, ClaveProducto,
                Fk_Empaque, ClaveEmpaque,
                Cantidad
              )
              VALUES (
                '$Id', '$clave',
                '$TipoEmpaque[Id]', '$TipoEmpaque[Clave]',
                '$cantidad'
              )
            ";
            $Result = mysqli_query($mysqli, $Query);
            $IdEmpaque = mysqli_insert_id($mysqli);

            //Precios de Empaques
            foreach ($precios AS $precio) {

              $rango_a = $precio['rango_a'];
              $rango_b = $precio['rango_b'];
              $precio  = $precio['precio'];

              if( $rango_a && $rango_b && $precio ){

                //Insert Precios
                $Query = "
                  INSERT INTO KB_Productos_Empaques_Precios
                  (
                    Fk_Producto, ClaveProducto,
                    Fk_Producto_Empaque,
                    Precio, RangoA, RangoB
                  )
                  VALUES (
                    '$Id', '$clave',
                    '$IdEmpaque',
                    '$precio', '$rango_a', '$rango_b'
                  )
                ";
                $Result = mysqli_query($mysqli, $Query);

              }

            }
            //End Precios de Empaques

          }

        }
        //End Empaques


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

      }else{

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

      }

    }//End Valida los campos a insretar
    else{

      if( $debugin == 1 ){
        echo "\nClave: ".$clave;
        echo "\nNombre: ".$nombre;
        echo "\nDescripcion: ".$descripcion;
        echo "\nExistencia: ".$existencia;
        echo "\nUnidadesCompletas: ".$unidades_completas;
        echo "\nAlto: ".$alto;
        echo "\nAncho: ".$ancho;
        echo "\nLargo: ".$largo;
        echo "\nPeso: ".$peso;
        echo "\nPrecio: ".$precio;
        echo "\nDescuento: ".$Descuento;
        echo "\nVentaApp: ".$venta_app;
        echo "\nActivo ".$activo;
        echo "\n\n";
      }

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

    }

  }
?>
