<?php

  $debugin              = $decoded['debug'];
  $ventas               = $decoded['ventas'];
  $FechaHoy             = date('Y-m-d H:i:s');

  //Ventas
  foreach ($ventas AS $venta) {

    //Documento
    $documento      = $venta['documento'];
    $fecha          = $venta['fecha'];
    $hora           = $venta['hora'];
    $moneda         = $venta['moneda'];
    $impuestos      = $venta['impuestos'];
    $total          = $venta['total'];
    $saldo          = $venta['saldo'];
    $factura        = $venta['factura'];
    $observaciones  = $venta['observaciones'];
    //End Documento

    //Productos
    $productos      = $venta['productos'];
    //End Productos

    //Productos
    $pagos          = $venta['pagos'];
    //End Productos

    if( $pagos ){

      //Cliente
      $cliente_nombre           = $venta['cliente']['nombre'];
      $cliente_rfc              = $venta['cliente']['rfc'];
      $cliente_pasaporte        = $venta['cliente']['pasaporte'];
      $cliente_fecha_nacimiento = $venta['cliente']['fecha_nacimiento'];
      $cliente_email            = $venta['cliente']['email'];
      $cliente_telefono         = $venta['cliente']['telefono'];
      $cliente_telefono         = $venta['cliente']['telefono'];
      $cliente_uso_cfdi         = $venta['cliente']['uso_cfdi'];
      //End Cliente

      //Valida que el documento no este dado de alta
      $Query = "
        SELECT
          ven.Id
        FROM KB_Ventas ven
        WHERE
          ven.Documento = '$documento'
      ";
      $Result = mysqli_query($mysqli, $Query);
      $VenCheck    = mysqli_fetch_assoc($Result);
      if( $VenCheck[Id] ){

        $ErrorVal = 1;

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

        $Errors[] = array(
          'documento'   => $documento,
          'error'       => $Error[error],
          'error_msn'   => $Error[msn]
        );

      }else{


        if( $cliente_rfc ){

          //Valida Cliente
          $Query = "
            SELECT
            cli.Id, cli.Rfc
            FROM KB_Clientes cli
            WHERE
              cli.Rfc = '$cliente_rfc'
          ";
          $Result = mysqli_query($mysqli, $Query);
          $Cli    = mysqli_fetch_assoc($Result);
          if( $Cli[Id] ){
            $cliente_id = $Cli[Id];
          }else{

            //Uso de CFDI
            $Query = "
              SELECT
              uso.Id, uso.Clave
              FROM KB_FacturasUsos uso
              WHERE
                uso.Clave = '$cliente_uso_cfdi'
            ";
            $Result = mysqli_query($mysqli, $Query);
            $Uso    = mysqli_fetch_assoc($Result);

            //Inserta Usuario
            $Query = "
              INSERT INTO KB_Clientes
              (
                Nombre, Rfc, Pasaporte,
                FechaNacimiento,
                Email, Telefono,
                Fk_UsoCfdi,
                Activo, Fk_Usuario
               )
              VALUES
              (
                '$cliente_nombre', '$cliente_rfc', '$cliente_pasaporte',
                '$cliente_fecha_nacimiento',
                '$cliente_email', '$cliente_telefono',
                '$Uso[Id]',
                '1', '0'
              )
            ";
            $Result = mysqli_query($mysqli, $Query);
            $cliente_id = mysqli_insert_id($mysqli);

          }
          //End Valida Cliente

        }else{
          $cliente_id = '0';
        }

        if( $cliente_id || $cliente_id != '0' ){

          $FechaFull = $fecha.' '.$hora;

          //Inserta Venta
          $Query = "
            INSERT INTO KB_Ventas
            (
              FechaCarga,
              Fk_Usuario, Fk_Cliente,
              Pre, Numero, Documento,
              Fecha, Moneda,
              Impuestos, Total, Saldo,
              Factura, Observaciones
             )
            VALUES
            (
              '$FechaHoy',
              '0', '$cliente_id',
              '$pre', '$numero', '$documento',
              '$FechaFull', '$moneda',
              '$impuestos', '$total', '$saldo',
              '$factura', '$observaciones'
            )
          ";
          $Result = mysqli_query($mysqli, $Query);
          $venta_id = mysqli_insert_id($mysqli);

          if( $venta_id ){

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

              $producto_clave   = $pro['producto_clave'];
              $cantidad         = $pro['cantidad'];
              $precio           = $pro['precio'];
              $descuento        = $pro['descuento'];
              $total            = $pro['total'];

              //Producto
              $Query = "
                SELECT
                  pro.Id, pro.Clave, pro.Nombre
                FROM KB_Productos pro
                WHERE
                  pro.Clave = '$producto_clave'
              ";
              $Result = mysqli_query($mysqli, $Query);
              $Pro    = mysqli_fetch_assoc($Result);

              //Insert Producto
              $Query = "
                INSERT INTO KB_VentasProductos
                (
                  Fk_Venta, Documento,
                  Fk_Producto, ProductoClave,
                  Cantidad, Precio, Descuento,
                  Total
                 )
                VALUES
                (
                  '$venta_id', '$documento',
                  '$Pro[Id]', '$producto_clave',
                  '$cantidad', '$precio', '$descuento',
                  '$total'
                )
              ";
              $Result = mysqli_query($mysqli, $Query);
              //End Insert Producto

            }
            //End Productos

            //Pagos
            foreach ($pagos AS $pag) {

              $pago_fecha   = $pag['fecha'];
              $pago_hora    = $pag['hora'];
              $pago_metodo  = $pag['metodo'];
              $pago_pago    = $pag['pago'];

              //Insert
              $Query = "
                INSERT INTO KB_Pagos
                (
                  Fk_Venta, Documento,
                  Fecha, Fk_Metodo,
                  Pago
                 )
                VALUES
                (
                  '$venta_id', '$documento',
                  '$pago_fecha $pago_hora', '$pago_metodo',
                  '$pago_pago'
                )
              ";
              $Result = mysqli_query($mysqli, $Query);

            }
            //End Pagos

            $Oks[] = array(
              'documento'   => $documento,
              'venta_id'    => $venta_id
            );

          }else{

            $ErrorVal = 1;

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

            $Errors[] = array(
              'documento'   => $documento,
              'error'       => $Error[error],
              'error_msn'   => $Error[msn]
            );

          }

        }else{

          $ErrorVal = 1;

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

          $Errors[] = array(
            'documento'   => $documento,
            'error'       => $Error[error],
            'error_msn'   => $Error[msn]
          );

        }

      }

    }else{

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

      $Errors[] = array(
        'documento'   => $documento,
        'error'       => $Error[error],
        'error_msn'   => $Error[msn]
      );

    }

  }
  //End Ventas

  // if( $ErrorVal == 1 ){

    $Data = array(
      'action'       => 'ok',
      'saved'        => $Oks,
      'errors'       => $Errors
    );
    echo json_encode($Data, JSON_UNESCAPED_UNICODE | JSON_PRETTY_PRINT);

  // }

?>
