<?php
header('Access-Control-Allow-Origin: *');
require_once("wp-load.php");
require_once("wp-includes/functions.php");

require "admin/process/conexionIpos.php";
require "admin/process/crud.php";

$postedContent = json_decode(file_get_contents("php://input"));

if (property_exists($postedContent, 'option'))
{
  $option = $postedContent->option;

  if ($option == 'createSale') {
    // $id = $postedContent->id;
    // $arr = $postedContent->arr;
    // $arr2 = json_decode($arr, true);
    // $clave = $arr2[1]['clave'];
    // error_log('Entra a crear venta con id ' . $id . ' arr ' . $arr . ' clave ' . $clave);
    // echo "Bien";

    $id = $postedContent->id;
    $comentarios = $postedContent->comentarios;
    $incluirComentario = $postedContent->incluirComentario;
    $customerId = $postedContent->customerId;
    $customerText = $postedContent->customerText;
    $almacen = $postedContent->almacen;
    $diascredito = $postedContent->diasCredito;
    $almacenText = $postedContent->almacenText;
    $usuarioId = $postedContent->usuarioId;
    $metPago = $postedContent->metPago;
    $metPago = json_decode($metPago, true);
    $tipoVenta = $postedContent->tipoVenta;
    $idTipoFactura = $postedContent->idTipoFactura;
    $totalVenta = $postedContent->totalVenta;
    $totalCosto = $postedContent->totalCosto;
    $autorizacion = $postedContent->autorizacion;
    $digitos = $postedContent->digitos;
    $folio = $postedContent->folio;
    $idCaja = $postedContent->idCaja;
    $pagoCliente = $postedContent->pagoCliente;
    $credito = $postedContent->credito;
    $creditoCli = $postedContent->creditoCli;
    $idSuspended = $postedContent->idSuspended;
    $arrayArt = $postedContent->arrayArt;
    $arrayArt = json_decode($arrayArt, true);
    $APIKEY = $postedContent->APIKEY;
  }

  if ($option == 'updateCaja') {
    $id = $postedContent->id;
    $idUser = $postedContent->idUser;
    $estatus = $postedContent->estatus;
    $idAlmacen = $postedContent->idAlm;
    $monto = $postedContent->monto;
    $tipoCambio = $postedContent->tipoCambio;
  }

  if ($option == 'newCorte') {
		$idUser = $postedContent->idUser;
		$idAlm = $postedContent->idAlm;
		$montoApertura = $postedContent->montoApertura;
		$ventaEfec = $postedContent->ventaEfec;
		$adicionEf = $postedContent->adicionEf;
		$retiroEf = $postedContent->retiroEf;
		$totalEf = $postedContent->totalEf;
		$montoCierre = $postedContent->montoCierre;
		$montoVoucher = $postedContent->montoVoucher;
		$montoCheques = $postedContent->montoCheques;
		$montoTrans = $postedContent->montoTrans;
		$montoAbonos = $postedContent->montoAbonos;
		$notas = $postedContent->notas;
		$n1000 = $postedContent->n1000;
		$n500 = $postedContent->n500;
		$n200 = $postedContent->n200;
		$n100 = $postedContent->n100;
		$n50 = $postedContent->n50;
		$n20 = $postedContent->n20;
		$n10 = $postedContent->n10;
		$n5 = $postedContent->n5;
		$n2 = $postedContent->n2;
		$n1 = $postedContent->n1;
		$n50C = $postedContent->n50C;
		$n25C = $postedContent->n25C;
		$n20C = $postedContent->n20C;
		$n10C = $postedContent->n10C;
		$n5C = $postedContent->n5C;
		$n1C = $postedContent->n1C;
		$nDollar = $postedContent->nDollar;
		$nTipoCambio = $postedContent->nTipoCambio;
		$nOtros = $postedContent->nOtros;
	}

  if ($option == 'createPauseSale') {
    $id = $postedContent->id;
    $comentarios = $postedContent->comentarios;
    $incluirComentario = $postedContent->incluirComentario;
    $customerId = $postedContent->customerId;
    $customerText = $postedContent->customerText;
    $almacen = $postedContent->almacen;
    $diascredito = $postedContent->diasCredito;
    $almacenText = $postedContent->almacenText;
    $usuarioId = $postedContent->usuarioId;
    $metPago = $postedContent->metPago;
    $metPago = json_decode($metPago, true);
    $tipoVenta = $postedContent->tipoVenta;
    $idTipoFactura = $postedContent->idTipoFactura;
    $totalVenta = $postedContent->totalVenta;
    $totalCosto = $postedContent->totalCosto;
    $autorizacion = $postedContent->autorizacion;
    $digitos = $postedContent->digitos;
    $folio = $postedContent->folio;
    $idCaja = $postedContent->idCaja;
    $pagoCliente = $postedContent->pagoCliente;
    $credito = $postedContent->credito;
    $creditoCli = $postedContent->creditoCli;
    $idSuspended = $postedContent->idSuspended;
    $arrayArt = $postedContent->arrayArt;
    $arrayArt = json_decode($arrayArt, true);
    $APIKEY = $postedContent->APIKEY;
  }

  if ($option == 'currentDB') {
    $sql = 'select database() as db';
    $model = new Conexion();
		$conexion = $model->conectar();
    $consulta = $conexion->prepare($sql);
		$consulta->execute();
    $rows = $consulta->fetchAll();
    foreach ($rows as $row)
    {
      error_log('DB APP ' . $row['db']);
    }
  }

}

else if (isset($_POST["option"])) {
  $option = $_POST["option"];

  if ($option == 'createSale') {
    $id = $_POST['id'];
    error_log('Entra a crear venta con id ' . $id);
    echo "Bien";
  }
}
else {
    $option = $_GET["option"];
    if ($option == 'searchProductsSales') {
      $search = $_GET['search'];
      $type = $_GET['type'];
      $idAlm = $_GET['idAlm'];
    }
    if ($option == 'getCajas') {
    }
    if ($option == 'getCajasAlm') {
      $idAlm = $_GET["idAlm"];
    }
    if ($option == 'read_corte_efectivo') {
      $almacen = $_GET["idAlm"];
    }
    if ($option == 'checarCorte') {
      $idUser = $_GET["idUser"];
      $idAlm = $_GET["idAlm"];
      $idCaja = $_GET["idCaja"];
    }
    if ($option == 'getCategories') {

    }
    if ($option == 'getFamilies') {
      $idCat = $_GET["idCat"];
    }
    if ($option == 'getSubFamilies') {
      $idFam = $_GET["idFam"];
    }
    if ($option == 'getCatalog') {
      $idSubFam = $_GET["idSubFam"];
      $idAlm = $_GET['idAlm'];
    }
    if ($option == 'getCatalogMain') {
    }
    if ($option == 'getCatalogRelacionados') {
      $idSubFam = $_GET["idSubFam"];
    }
    if ($option == 'searchApp') {
      $search = $_GET["search"];
      $limite = $_GET["limite"];
    }

    if ($option == 'registerUser') {
      $user = $_GET["user"];
      $pass = $_GET["pass"];
      $name = $_GET["name"];
      $last_name = $_GET["last_name"];
      $email = $_GET["email"];
      $idWP = $_GET["idWP"];
    }
}

switch ($option) {
  case 'searchProductsSales':
    searchProductsSales();
    break;
  case 'createSale':
    createSale();
    break;
  case 'createPauseSale':
    createPauseSale();
    break;
  case 'getCajas':
    getCajas();
    break;
  case 'getCajasAlm':
    getCajasAlm();
    break;
  case 'updateCaja':
    updateCaja();
    break;
  case 'read_corte_efectivo':
    read_corte_efectivo();
    break;
  case 'newCorte':
    newCorte();
    break;
  case 'checarCorte':
    checarCorte();
    break;
  case 'getCategories':
    getCategories();
    break;
  case 'getFamilies':
    getFamilies();
    break;
  case 'getSubFamilies':
    getSubFamilies();
    break;
  case 'getCatalog':
    getCatalog();
    break;
  case 'getCatalogMain':
    getCatalogMain();
    break;
  case 'getCatalogRelacionados':
    getCatalogRelacionados();
    break;
  case 'searchApp':
    searchApp();
    break;
  case 'registerUser':
    registerUser();
    break;
  case 'getDestacados':
    getDestacados();
    break;
}

function registerUser() {
  global $user;
  global $pass;
  global $name;
  global $last_name;
  global $email;
  global $idWP;

  $model = new Crud;
  $model->insertInto = "clientes";
  $model->insertColumns = "seudonimo, nombre, direccion, ciudad, rfc, cp, telefono1, telefono2, telefono3, estado, municipio, localidad, id_user, lim_credito, email, curp, credito, dias_credito, saldo_actual, saldo_vencido, precio_venta, precio_credito, fecha_reg, credito_disp, contacto, idCustomerWP";
  $model->insertValues = "'$user', '$name $last_name', '', '', '', '', '', '', '', '', '', '', 1, 0, '$email', '', 0, 0, '0', '0', '1', '2', now(), 0, '$name $last_name', $idWP";
  $model->CreateId();
  $idUser = $model->message;

  $mensajeJSON = array(
    'status' => "success",
    'message' => "Registrado correctamente",
    'data' => $idUser
  );

  $mensajeJSON = utf8_converter($mensajeJSON);
	echo json_encode($mensajeJSON);

}

function createSale() {
  global $id;
  global $comentarios;
  global $incluirComentario;
  global $customerId;
  global $customerText;
  global $almacen;
  global $diascredito;
  global $almacenText;
  global $usuarioId;
  global $metPago;
  global $tipoVenta;
  global $idTipoFactura;
  global $totalVenta;
  global $totalCosto;
  global $autorizacion;
  global $digitos;
  global $folio;
  global $idCaja;
  global $arrayArt;
  global $pagoCliente;
  global $credito;
  global $creditoCli;
  global $idSuspended;
  global $APIKEY;

  error_log('Entra venta APP ID ' . $id);

  if($idSuspended == null||$idSuspended == "null")
  $idSuspended = '0';
  error_log(print_r($arrayArt, TRUE));
  $almacenText = str_replace(" ", "_", $almacenText);
  $pagosLista = "";
  $yaestro = "1";
  $pagosCantidad = "";
  $pagosCol = "";
  $contador = 0;
  $arraycorto = array();
  if (count($metPago) != 0) {
      for ($i = 0; $i < count($metPago); $i++) {
          $cam = $metPago[$i]['cambio'];
          if (count($metPago) > 0) {
              if ($metPago[$i]['idtipoP'] == "1" || $metPago[$i]['idtipoP'] == "7") {
                  if ($yaestro == "1") {
                      $yaestro = "0";
                      $monto = floatval($metPago[$i]['monto']) - floatval($cam);
                  } else {
                      $monto = $metPago[$i]['monto'];
                  }
              } else {
                  $monto = $metPago[$i]['monto'];
              }
          } else {
              $monto = $metPago[$i]['monto'];
          }
          $idPago = $metPago[$i]['idPago'];
          //$monto = $metPago[$i]['monto'];
          $textPago = $metPago[$i]['textPago'];
          $idp = $metPago[$i]['idtipoP'];
          $arraycorto[] = array(
              'idp' => $idp,
              'nombre' => $textPago,
              'monto' => $monto
          );
          $pagosLista .= $textPago . ",";
          $pagosCantidad .= $monto . ",";
          $pagosCol .= $textPago . ': ' . $monto . ',';
          if ($idTipoFactura == 0 && $idp > 1 && $idp != 7) {
              $contador = 1;
          }
      }
  }
  if ($contador == 1) {
      $idTipoFactura = '5';
  }
  $pagosLista = substr($pagosLista, 0, -1);
  $pagosCantidad = substr($pagosCantidad, 0, -1);
  $pagosCol = substr($pagosCol, 0, -1);
  $model = new    Crud;
  $model->select = "iva";
  $model->from = "iva";
  $model->condition = "habilitado = 1 and tipo = 1";//1 es iva venta
  $model->Read();
  $filas = $model->rows;
  $ivaActual = "";
  if(!empty($filas)){
      foreach($filas as $fila){
          $ivaActual = $fila["iva"];
      }
  }
  $model = new Crud;
  $model->insertInto = "ventas";
  $model->insertColumns = "folio, fecha, id_user, id_caja, id_cliente, id_almacen, id_estatus, total, pago, no_autorizacion, digitos_pago, id_tipo_solic, credito, incluir_comentario, comentario, textPagos, cantPagos, colPagos, totalCosto, tipo_venta, id_vpausa,ivaAplicado";
  $model->insertValues = "'$folio', now(), '$usuarioId', '$idCaja', '$customerId', '$almacen', '1', '$totalVenta', '$pagoCliente', '$autorizacion', '$digitos', '$idTipoFactura', b'$credito', '$incluirComentario', '$comentarios', '$pagosLista', '$pagosCantidad', '$pagosCol', '$totalCosto', '$tipoVenta', '$idSuspended','$ivaActual'";
  $model->CreateId();
  $idVenta = $model->message;
  for ($i = 0; $i < count($arraycorto); $i++) {
      $idp = $arraycorto[$i]['idp'];
      $nom = $arraycorto[$i]['nombre'];
      $mon = $arraycorto[$i]['monto'];
      $idb1 = 0;
      $cargoV = 0;
      $tipoC = 0;
      $model = new    Crud;
      $model->select = "idBanco";
      $model->from = "ventasMetodos_detalle";
      $model->condition = "id_vm = '$idp' and idAlma = '$almacen'"; //1 es iva venta
      $model->Read();
      $filas = $model->rows;
      $ivaActual = "";
      if (!empty($filas)) {
          foreach ($filas as $fila) {
              $idb1 = $fila["idBanco"];
          }
      }
      $model = new    Crud;
      $model->select = "cargo_venta,tipo_cargoV";
      $model->from = "cuentas inner join bancos on bancos.id=cuentas.id_banco";
      $model->condition = "id_almacen = '$almacen' and idmetodo = '$idp'"; //1 es iva venta
      $model->Read();
      $filas = $model->rows;
      $ivaActual = "";
      if (!empty($filas)) {
          foreach ($filas as $fila) {
              $cargoV = $fila["cargo_venta"];
              $tipoC = $fila["tipo_cargoV"];
          }
      }
      $model->insertInto = "Ventas_Tipo_Cuentas";
      $model->insertColumns = "id_venta, metodo, Id_metodo, cantidad, idBanco, comision, tipoComision";
      $model->insertValues = "'$idVenta','$nom','$idp', $mon, '$idb1','$cargoV','$tipoC'";
      $model->Create();
  }
  $model = new Crud;
  $model->select = "id";
  $model->from = "kardex";
  $model->condition = "concepto = 'VENTA' and folio = '$idVenta' ";
  $model->Read();
  $filTemp = $model->rows;
  if (count($filTemp) > 0) {
      error_log('duplicado en ventas kardex: ' . ' folio' . $idCompra);
      return;
  }
  $model->insertInto = "kardex";
  $model->insertColumns = "folio, fecha, id_user, concepto, contacto, id_almacen, total";
  $model->insertValues = "'$idVenta', now(), '$usuarioId', 'VENTA', '$customerText', '$almacen', '$totalVenta'";
  $model->CreateId();
  $idKardex = $model->message;
  $arrActualizarArt = array();
  if ($idVenta != '' && $idVenta != null) {
      if (count($arrayArt) != 0) {
          for ($i = 0; $i < count($arrayArt); $i++) {
              $idArt = $arrayArt[$i]['idProducto'];
              $clave = $arrayArt[$i]['clave'];
              $precio = $arrayArt[$i]['precio'];
              $desc = $arrayArt[$i]['descuento'];
              $total = $arrayArt[$i]['total'];
              $tipoP = $arrayArt[$i]['tipoP'];
              $tp = $arrayArt[$i]['tp'];
              $cantidad = $arrayArt[$i]['cantidad'];
              $arrActualizarArt[] = array(
                  'idArt' => $idArt,
                  'Cantidad' => $cantidad,
                  'idAlmacen' => $almacen
              );
              $costo = $arrayArt[$i]['costo'];
              $costoR = $arrayArt[$i]['costoR'];
              if($costoR == '')$costoR = $costo;
              $model = new Crud;
              $model->select = "id_articulo";
              $model->from = "ventas_detalle";
              $model->condition = "id_articulo = '$idArt' and id_venta = '$idVenta' ";
              $model->Read();
              $filTemp = $model->rows;
              if (count($filTemp) > 0) {
                  // foreach($filTemp as $fila){
                  error_log('duplicado en ventas: ' . ' id_venta' . $idVenta);
                  // }
                  continue;
              }
              $cantidad = $arrayArt[$i]['cantidad'];
              $costo = $arrayArt[$i]['costo'];
              $precios = 'precio' . $tp;
              $model->select = "$precios";
              $model->from = "articulos";
              $model->condition = " id = $idArt ";
              $model->Read();
              $filas = $model->rows;
              $precioSIVA = 0;
              if (!empty($filas)) {
                  foreach ($filas as $fila) {
                      $precioSIVA = $fila[$precios];
                  }
              }
              $model->insertInto = "ventas_detalle";
              $model->insertColumns = "id_venta, id_articulo, cantidad, precioSIVA, precio, tipo_precio, descuento, tipo_producto, costo, costo_real, total";
              $model->insertValues = "'$idVenta', '$idArt', '$cantidad', '$precioSIVA', '$precio', '$tp', '$desc', '$tipoP','$costo','$costoR', '$total'";
              $model->Create();
              // $mensaje = $model->message;
              if ($tipoP != 'kit' && $tipoP != 'wo') {
                  $model->update = "articulos";
                  $model->set = "$almacenText = $almacenText - $cantidad";
                  $model->condition = "id = $idArt";
                  $model->Update();
                  $model->select = "$almacenText AS ALMACENCANTIDAD";
                  $model->from = "articulos";
                  $model->condition = " id = $idArt ";
                  $model->Read();
                  $filas = $model->rows;
                  $cantExistencia = 0;
                  if (!empty($filas)) {
                      foreach ($filas as $fila) {
                          $cantExistencia = $fila['ALMACENCANTIDAD'];
                      }
                  }
                  $model->insertInto = "kardex_detalle";
                  $model->insertColumns = "id_kardex, id_articulo, cantidad, valor, tp, monto, saldo";
                  $model->insertValues = "'$idKardex', '$idArt', '$cantidad', '$precio', '$tp', '$total', '$cantExistencia'";
                  $model->Create();
                  $model->insertInto = "kardex_cli";
                  $model->insertColumns = "folio, id_cliente, id_almacen, id_user, id_art, concepto, cantidad, valor, monto, total";
                  $model->insertValues = "'$idVenta', '$customerId', '$almacen', '$usuarioId', '$idArt', 'VENTA', '$cantidad', '$precio', '$total', '$totalVenta'";
                  $model->Create();
              }
          }
      }
      if (count($metPago) != 0) {
          for ($i = 0; $i < count($metPago); $i++) {
              $idPago = $metPago[$i]['idPago'];
              $monto = $metPago[$i]['monto'];
              $model->insertInto = "ventas_pagos";
              $model->insertColumns = "id_venta, id_pago, monto";
              $model->insertValues = "'$idVenta', '$idPago', '$monto'";
              $model->Create();
              if ($idPago == 5) {
                  $sumaCredito = floatval($monto) + floatval($creditoCli);
                  $model->insertInto = "creditos";
                  $model->insertColumns = "id_venta, id_cliente, monto, dias_venc";
                  $model->insertValues = "'$idVenta', '$customerId', '$monto', '$diascredito'";
                  $model->CreateId();
                  $idCredito = $model->message;
                  $model->insertInto = "historial_saldos";
                  $model->insertColumns = "id_operacion, id_cliente, saldo, concepto";
                  $model->insertValues = "'$idCredito', '$customerId', '$sumaCredito', 'credito'";
                  $model->Create();
                  $model->update = "clientes";
                  $model->set = " saldo_actual = saldo_actual + $monto ";
                  $model->condition = "id = $customerId";
                  $model->Update();
              }
          }
      }
  }

  $mensaje = $model->message;
  $apikey = $APIKEY;
  sendToken($arrActualizarArt,$almacen);
  sendTokenAPP($idVenta, $almacen, $totalVenta, $apikey);
  $mensajeJSON = array(
    'status' => "success",
    'message' => "Realizado correctamente",
    'data' => $idVenta
  );
  $mensajeJSON = utf8_converter($mensajeJSON);
	echo json_encode($mensajeJSON);
  // echo $mensaje . "-" . $idVenta;
}

function sendToken($arrActualizarArt,$idAlma)
{
    $model = new Crud;
    $model->select = "almacen, almacen_corto";
    $model->from = "almacenes";
    $model->condition = "id = $idAlma";
    $model->Read();
    $filas = $model->rows;
    $PrefijoAlma = array();
    if(!empty($filas)){
        foreach($filas as $fila){
            $PrefijoAlma = $fila["almacen_corto"];
        }
    }
    $arrayF = array();
    $arrayF[] = array(
        'ArrArts'=> $arrActualizarArt,
        'PrefijoAlma'=> $PrefijoAlma
    );
    $appContent = json_decode(file_get_contents("php://input"));
    $apikeyGlobal = "/";
    if (isset($_GET["APIKEY"]) || isset($_POST["APIKEY"])) {
        $apikey = "";
        if (isset($_GET["APIKEY"])) {
            $apikey = $_GET["APIKEY"];
            $apikeyGlobal = "/" . $apikey;
        } else if (isset($_POST["APIKEY"])) {
            $apikey = $_POST["APIKEY"];
            $apikeyGlobal = "/" . $apikey;
        }
        else if (property_exists($appContent, 'APIKEY')) {
		        $apikey = $appContent->APIKEY;
		    }
    }
    $message = array(
        "id" => "1", "message" => $arrayF, "icon" => "default", "title" => utf8_encode("NUEVA VENTA"), "sound" => "default",
        "type" => "Notification"
    );
    $firebase = 'AIzaSyBj4rHMLA_4oQhcsYrzV2KlJbOacChuB4U';
    $url = 'https://fcm.googleapis.com/fcm/send';
    $fields = array(
        "to" => "/topics" . $apikeyGlobal,
        'data' => $message,
        'priority' => "high",
        'content_available' => true
    );
    $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $firebase);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    $result = curl_exec($ch);
    if ($result === false) {
        die('Curl failed: ' . curl_error($ch));
    }
    curl_close($ch);
    return $result;
}
function sendTokenAPP($folio, $idAlma, $total, $apikey)
{
    $model = new Crud;
    $model->select = "almacen, almacen_corto";
    $model->from = "almacenes";
    $model->condition = "id = $idAlma";
    $model->Read();
    $filas = $model->rows;
    $PrefijoAlma = "";
    if(!empty($filas)){
        foreach($filas as $fila){
            $PrefijoAlma = $fila["almacen_corto"];
        }
    }
    $titulo = "NUEVA VENTA: " . $folio . "-" . $PrefijoAlma;
    $mensaje = "Total: $" . $total;
    $message = array(
        "id" => "1", "message" => $mensaje, "icon" => "default", "title" => $titulo, "sound" => "default",
        "type" => "Notification", "apikey" => $apikey
    );
    $firebase = 'AIzaSyBj4rHMLA_4oQhcsYrzV2KlJbOacChuB4U';
    $url = 'https://fcm.googleapis.com/fcm/send';
    $fields = array(
        "to" => "/topics/app",
        'data' => $message,
        'priority' => "high",
        'content_available' => true
    );
    $headers = array("Content-Type:" . "application/json", "Authorization:" . "key=" . $firebase);
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_POST, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($fields));
    $result = curl_exec($ch);
    if ($result === false) {
        die('Curl failed: ' . curl_error($ch));
    }
    curl_close($ch);
    // return $result;
}

function searchApp() {
  ini_set('memory_limit', '2048M');
  global $search;
  global $limite;

  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '1'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
  $searchSplit = array();
  $whereProducts = "";
  if ($search != '') {
    $searchSplit = explode(' ', $search);
    if (count($searchSplit) > 1) {
      $desc = "";
      $clave = "";
      $familia = "";
      for ($i = 0; $i < count($searchSplit); $i++) {
        $valor = $searchSplit[$i];
        if ($i == 0) {
          $desc .= " descripcion LIKE '%$valor%'";
          $clave .= " clave LIKE '%$valor%'";
          $familia .= " familia LIKE '%$valor%'";
        }
        else {
          $desc .= " AND descripcion LIKE '%$valor%'";
          $clave .= " AND clave LIKE '%$valor%'";
          $familia .= " AND familia LIKE '%$valor%'";
        }
      }
      $whereProducts = " AND (($desc) OR ($clave) OR ($familia))";
    }
    else {
      $whereProducts = " AND (descripcion LIKE '%$search%' OR clave LIKE '%$search%' OR familia LIKE '%$search%')";
    }
  }

  $model = new Crud;
	$model->select = "articulos.id, articulos.clave, articulos.descripcion, articulos.precio1, articulos.precio2, articulos.precio3, articulos.precio4, articulos.precio7,
   articulos.precio8, articulos.precioE, $listaAlmacenes articulos.imagen, CASE WHEN marcas.id IS NULL THEN 'NINGUNO' ELSE marcas.marca END AS marca, articulos.id_familia, familias.familia, articulos.id_subfamilia, subfamilias.subfamilia, articulos.comentarios, articulos.especificaciones";
	$model->from = "articulos LEFT JOIN marcas ON articulos.id_fabricante = marcas.id
INNER JOIN familias ON articulos.id_familia = familias.id
INNER JOIN subfamilias ON articulos.id_subfamilia = subfamilias.id";
	$model->condition = "articulos.isService = 0 AND articulos.activo = 1 AND articulos.pagina_activo = '1' $whereProducts LIMIT $limite, 20";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
      $idArt = $fila['id'];
      $clave = $fila['clave'];
      $model2 = new Crud;
    	$model2->select = "cantidad, precio";
    	$model2->from = "articulos INNER JOIN mayoreo ON articulos.id = mayoreo.id_articulo";
    	$model2->condition = "articulos.id = $idArt";
    	$model2->Read();
    	$filas2 = $model2->rows;
    	$arrayMayoreo = array();
    	if (!empty($filas2)) {
    		foreach ($filas2 as $fila2) {
    			$arrayMayoreo[] = array(
    				'cantidad' => $fila2['cantidad'],
            'precio' => $fila2['precio']
    			);
    		}
    	}

      $idWP = getIdNoSku($clave);
      if ($idWP == '' || $idWP == null) {
        $idWP = '0';
      }
      // $jsonMayoreo = json_encode($arrayMayoreo);
			$array[] = array(
        'id' => $fila['id'],
				'idWP' => $idWP,
        'clave' => $fila['clave'],
        'descripcion' => $fila['descripcion'],
        'precio1' => $fila['precio1'],
        'precio2' => $fila['precio2'],
        'precio3' => $fila['precio3'],
        'precio4' => $fila['precio4'],
        'precio5' => $fila['precio5'],
        'precio6' => $fila['precio6'],
        'precio7' => $fila['precio7'],
        'precio8' => $fila['precio8'],
        'precioE' => $fila['precioE'],
        'existencia' => $fila['existencia'],
        'imagen' => $fila['imagen'],
        'marca' => $fila['marca'],
        'id_familia' => $fila['id_familia'],
        'familia' => $fila['familia'],
        'id_subfamilia' => $fila['id_subfamilia'],
        'subfamilia' => $fila['subfamilia'],
        'comentarios' => $fila['comentarios'],
        'especificaciones' => $fila['especificaciones'],
				'mayoreo' => $arrayMayoreo
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function searchProductsSales() {
  ini_set('memory_limit', '2048M');
  global $search;
  global $type;
  global $idAlm;

  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '$idAlm'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
  $searchSplit = array();
  $whereProducts = "";
  if ($search != '') {
    $searchSplit = explode(' ', $search);
    if (count($searchSplit) > 1) {
      $desc = "";
      $clave = "";
      $familia = "";
      for ($i = 0; $i < count($searchSplit); $i++) {
        $valor = $searchSplit[$i];
        if ($i == 0) {
          $desc .= " descripcion LIKE '%$valor%'";
          $clave .= " clave LIKE '%$valor%'";
          $familia .= " familia LIKE '%$valor%'";
        }
        else {
          $desc .= " AND descripcion LIKE '%$valor%'";
          $clave .= " AND clave LIKE '%$valor%'";
          $familia .= " AND familia LIKE '%$valor%'";
        }
      }
      $whereProducts = " AND (($desc) OR ($clave) OR ($familia))";
    }
    else {
      $whereProducts = " AND (descripcion LIKE '%$search%' OR clave LIKE '%$search%' OR familia LIKE '%$search%')";
    }
  }

  $model = new Crud;
  $almacen = str_replace(' ', '_', $almacen);
  $model->rows = null;
  if ($type == '0') {
    $model->select = "articulos.mano_obra, articulos.codigoBarras, articulos.id, '' as tipo, id_familia, id_fabricante,articulos.CodigoProveedor, descripcion as label, imagen as image, clave,
    precio1,precio2,precio3,precio4,precio5,precio6,precio7,precio8,precioE, familia, nombre, costo, costo_real, $listaAlmacenes articulos.isService,
    CASE WHEN lunes IS TRUE THEN 1 ELSE 0 END as lunes,
    CASE WHEN martes IS TRUE THEN 1 ELSE 0 END as martes,
    CASE WHEN miercoles IS TRUE THEN 1 ELSE 0 END as miercoles,
    CASE WHEN jueves IS TRUE THEN 1 ELSE 0 END as jueves,
    CASE WHEN viernes IS TRUE THEN 1 ELSE 0 END as viernes,
    CASE WHEN sabado IS TRUE THEN 1 ELSE 0 END as sabado,
    horaIni, horaFin, descEfect, promo_ini, promo_fin, DAYNAME(CURDATE()) AS HOY, mayoreo";

    $model->from = "articulos inner join familias ON articulos.id_familia = familias.id INNER JOIN proveedores on articulos.id_proveedor = proveedores.id
    WHERE articulos.isService = 0 AND articulos.activo = 1 AND clave = '$search'";
  }
  else {
    $model->select = "articulos.mano_obra, articulos.codigoBarras, articulos.id, '' as tipo, id_familia, id_fabricante,articulos.CodigoProveedor, descripcion as label, imagen as image, clave,
    precio1,precio2,precio3,precio4,precio5,precio6,precio7,precio8,precioE, familia, nombre, costo, costo_real, $listaAlmacenes articulos.isService,
    CASE WHEN lunes IS TRUE THEN 1 ELSE 0 END as lunes,
    CASE WHEN martes IS TRUE THEN 1 ELSE 0 END as martes,
    CASE WHEN miercoles IS TRUE THEN 1 ELSE 0 END as miercoles,
    CASE WHEN jueves IS TRUE THEN 1 ELSE 0 END as jueves,
    CASE WHEN viernes IS TRUE THEN 1 ELSE 0 END as viernes,
    CASE WHEN sabado IS TRUE THEN 1 ELSE 0 END as sabado,
    horaIni, horaFin, descEfect, promo_ini, promo_fin, DAYNAME(CURDATE()) AS HOY, mayoreo";

    $model->from = "articulos inner join familias ON articulos.id_familia = familias.id INNER JOIN proveedores on articulos.id_proveedor = proveedores.id
    WHERE articulos.isService = 0 AND articulos.activo = 1 $whereProducts LIMIT 20";
  }
  $model->Read();
  $filas = $model->rows;
  $array = array();
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $cantidadGarantia = "0";
      $idArt = $fila['id'];
      $mayoreo = $fila['mayoreo'];
      $arrMayoreo = array();
      if ($mayoreo == '1') {
        $model = new Crud;
        $model->select = "id, cantidad, precio";
        $model->from = "mayoreo";
        $model->condition = "id_articulo = '$idArt' ORDER BY cantidad ASC";
        $model->Read();
        $arrMayoreo = $model->rows;
      }
      $array[] = array(
      'id' => $fila['id'],
      'clave' => $fila['clave'],
      'label' => $fila['label'],
      'tipo' => $fila['tipo'],
      'costo' => $fila['costo'],
      'costo_real' => $fila['costo_real'],
      'precio1' => $fila['precio1'],
      'precio2' => $fila['precio2'],
      'precio3' => $fila['precio3'],
      'precio4' => $fila['precio4'],
      'precio5' => $fila['precio5'],
      'precio6' => $fila['precio6'],
      'precio7' => $fila['precio7'],
      'precio8' => $fila['precio8'],
      'precioE' => $fila['precioE'],
      'id_familia' => $fila['id_familia'],
      'id_fabricante' => $fila['id_fabricante'],
      'CodigoProveedor' => $fila['CodigoProveedor'],
      'image' => $fila['image'],
      'cantAlmacen' => $fila['existencia'],
      'proveedor' => $fila['nombre'],
      'HOY' => $fila['HOY'],
      'lunes' => $fila['lunes'],
      'martes' => $fila['martes'],
      'miercoles' => $fila['miercoles'],
      'jueves' => $fila['jueves'],
      'viernes' => $fila['viernes'],
      'sabado' => $fila['sabado'],
      'horaIni' => $fila['horaIni'],
      'horaFin' => $fila['horaFin'],
      'descEfect' => $fila['descEfect'],
      'promo_ini' => $fila['promo_ini'],
      'promo_fin' => $fila['promo_fin'],
      'isService' => $fila['isService'],
      'mano_obra' => $fila['mano_obra'],
      'codigoBarras' => $fila['codigoBarras'],
      'mayoreo' => $fila['mayoreo'],
      'arrMayoreo' => $arrMayoreo,
      'garantia' => $cantidadGarantia
      );
    }
  }
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
  ob_start("ob_gzhandler");
  echo json_encode($arrayFinal);
}

function getCajas()
{
	$model = new Crud;
	$model->select = "cajas.id, cajas.caja, cajas.estatus, cajas.localizacion, cajas.iduser, nombre as Usuario";
	$model->from = "cajas LEFT JOIN users ON cajas.iduser = users.id";
	$model->condition = "1=1 order by cajas.caja asc";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array(
				'id' => $fila['id'],
				'caja' => $fila['caja'],
				'estatus' => $fila['estatus'],
        'localizacion' => $fila['localizacion'],
        'idUser' => $fila['iduser'],
				'user' => $fila['Usuario']
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
	echo json_encode($arrayFinal);
}

function getCajasAlm()
{
  global $idAlm;
	$model = new Crud;
	$model->select = "cajas.id, cajas.caja, cajas.estatus, cajas.localizacion, cajas.iduser, nombre as Usuario";
	$model->from = "cajas LEFT JOIN users ON cajas.iduser = users.id";
	$model->condition = "1=1 AND users.id_almacen = '$idAlm' order by cajas.caja asc";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array(
				'id' => $fila['id'],
				'caja' => $fila['caja'],
				'estatus' => $fila['estatus'],
        'localizacion' => $fila['localizacion'],
        'idUser' => $fila['iduser'],
				'user' => $fila['Usuario']
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
	echo json_encode($arrayFinal);
}

function read_corte_efectivo()
{
	ini_set('memory_limit', '64M');
	global $almacen;
	$fechaIni = date("Y-m-d");
	$model = new Crud;
	$model->select = "max(fecha) as fecha";
	$model->from = "corte_caja";
	$model->condition = "id_almacen='$almacen'";
	$model->Read();
	$filas = $model->rows;
	$fechaUltCor = "";
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$fechaIni = $fila['fecha'];
		}
	}
	$model = new Crud;
	$model->select = "cambio";
	$model->from = "cambio_dolar order by id desc limit 1";
	$model->Read();
	$filas = $model->rows;
	$cambio = "";
	$arrTipoCambio = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$arrTipoCambio[] = array(
				'TC' => $fila['cambio']
			);
		}
	}
	$fechaFin = date("Y-m-d");
	$model = new Crud;
	$model->select = "ventas.id, estatus.nombre AS estatus, tipo, ventas.fecha, total, colPagos";
	$model->from = "ventas INNER JOIN users ON ventas.id_user = users.id INNER JOIN clientes ON ventas.id_cliente = clientes.id INNER JOIN estatus ON ventas.id_estatus = estatus.id INNER JOIN tipos_solic ON ventas.id_tipo_solic = tipos_solic.id INNER JOIN almacenes ON ventas.id_almacen = almacenes.id";
	$model->condition = " ventas.fecha BETWEEN '$fechaIni' AND '$fechaFin 23:59' AND id_estatus = 1 AND (ventas.id_almacen = '$almacen' OR '0' = '$almacen') ORDER BY ventas.id DESC";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array('id' => $fila['id'], 'estatus' => $fila['estatus'], 'tipo' => $fila['tipo'], 'fecha' => $fila['fecha'], 'total' => $fila['total'], 'colPagos' => $fila['colPagos']);
		}
	}
	$model = new Crud;
	$model->select = "creditos_abono.id, creditos_abono.total, creditos_abono.fecha, creditos.textPagos, creditos.cantPagos";
	$model->from = "creditos_abono INNER JOIN creditos ON creditos_abono.id_creditos = creditos.id INNER JOIN ventas ON creditos.id_venta = ventas.id";
	$model->condition = " creditos_abono.fecha BETWEEN '$fechaIni' AND '$fechaFin 23:59' AND id_estatus = 1 AND (ventas.id_almacen = '$almacen' OR '0' = '$almacen') ORDER BY creditos_abono.id DESC";
	$model->Read();
	$filas = $model->rows;
	$arrayCreditos = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$arrayCreditos[] = array('id' => $fila['id'], 'total' => $fila['total'], 'fecha' => $fila['fecha'], 'textPagos' => $fila['textPagos'], 'cantPagos' => $fila['cantPagos']);
		}
	}
	$model = new Crud;
	$model->select = "caja_inicial";
	$model->from = "almacenes";
	if ($almacen == '0' || $almacen == 0) {
		$model->condition = " id = 1";
	} else {
		$model->condition = " (id = '$almacen' OR '0' = '$almacen')";
	}
	$model->Read();
	$filas = $model->rows;
	$arrayCajaInicial = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$arrayCajaInicial[] = array('caja_inicial' => $fila['caja_inicial']);
		}
	}
	$model = new Crud;
	$model->select = "IfNull(SUM(total - falta),0) as total";
	$model->from = "abonos";
	$model->condition = " fecha between '$fechaIni' AND '$fechaFin 23:59' AND (id_almacen = '$almacen' OR '0' = '$almacen')";
	$model->Read();
	$filas = $model->rows;
	$arrayAbonos = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$arrayAbonos[] = array('total' => $fila['total']);
		}
	}
	$model = new Crud;
	$model->select = "colPagos";
	$model->from = "abonos";
	$model->condition = " fecha between '$fechaIni' AND '$fechaFin 23:59' AND (id_almacen = '$almacen' OR '0' = '$almacen')";
	$model->Read();
	$filas = $model->rows;
	$arrayAbonosColpagos = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$arrayAbonosColpagos[] = array('colpagos' => $fila['colPagos']);
		}
	}
	$arraySuperior = array();
	array_push($arraySuperior, $array, $arrayCreditos, $arrayCajaInicial, $arrayAbonos, $arrayAbonosColpagos, $arrTipoCambio);
  $arrayFinal = array(
    'status' => "success",
    'message' => "Obtenido correctamente",
    'data' => $arraySuperior
  );
	echo json_encode($arrayFinal);
}

function updateCaja()
{
	global $id;
  global $idUser;
  global $estatus;
  global $idAlmacen;
  global $monto;
  global $tipoCambio;
	$model = new Crud;
	$model->update = "cajas";
	$model->set = "estatus = '$estatus', iduser = '$idUser'";
	$model->condition = "id = '$id'";
	$model->Update();
  $model = new Crud;
	$model->update = "almacenes";
	$model->set = "caja_inicial = '$monto'";
	$model->condition = "id = '$idAlmacen'";
	$model->Update();
  $model = new Crud;
  $model->insertInto = "cambio_dolar";
  $model->insertColumns = "cambio";
  $model->insertValues = "'$tipoCambio'";
  $model->Create();
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Creado correctamente',
    'data' => "1"
  );
	echo json_encode($arrayFinal);
}

function newCorte()
{
	global $idUser;
	global $idAlm;
	global $montoApertura;
	global $ventaEfec;
	global $adicionEf;
	global $retiroEf;
	global $totalEf;
	global $montoCierre;
	global $montoVoucher;
	global $montoCheques;
	global $montoTrans;
	global $montoAbonos;
	global $notas;
	global $n1000;
	global $n500;
	global $n200;
	global $n100;
	global $n50;
	global $n25C;
	global $n20;
	global $n10;
	global $n5;
	global $n2;
	global $n1;
	global $n50C;
	global $n20C;
	global $n10C;
	global $n5C;
	global $n1C;
	global $nDollar;
	global $nTipoCambio;
	global $nOtros;

	$model = new Crud;
	$model->update = "almacenes";
	$model->set = "caja_inicial = 0";
	$model->condition = "id = '$idAlm'";
	$model->update();

	$model = new Crud;
	$model->update = "cajas";
	$model->set = "estatus = 0";
	$model->condition = "iduser = '$idUser'";
	$model->update();

	$model = new Crud;
	$model->select = "almacen";
	$model->from = "almacenes";
	$model->condition = "id = '$idAlm'";
	$model->Read();
	$filas = $model->rows;
	$almacenN = "";
	$almacenCorreo = "";
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$almacenN = $fila['almacen'];
			$almacenCorreo = $fila['almacen'];
		}
	}
	$almacenN = str_replace(' ', '_', $almacenN);

	$model = new Crud;
	$model->select = "IfNull(SUM(costo_real * $almacenN),0) as ia";
	$model->from = "articulos";
	// $model->condition = "id = '$idAlm'";
	$model->Read();
	$filas = $model->rows;
	$invertarioActual = "";
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$invertarioActual = $fila['ia'];
		}
	}

	$model = new Crud;
	$model->update = "cajas";
	$model->set = "estatus = 0";
	$model->condition = "iduser = '$idUser'";
	$model->Update();

	$fechaIni = date("Y-m-d");
	$fechaFin = date("Y-m-d");
	$model = new Crud;
	$model->select = "max(fecha) as fecha";
	$model->from = "corte_caja";
	$model->condition = "id_almacen='$idAlm'";
	$model->Read();
	$filas = $model->rows;
	$fechaUltCor = "";
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$fechaIni = $fila['fecha'];
		}
	}

	$model->select = "(IfNull(SUM((ventas_detalle.precio)),0) - IfNull(SUM(articulos.costo_real),0)) as TickUtilidad";
	$model->from = "articulos inner join ventas_detalle on articulos.id=ventas_detalle.id_articulo inner join ventas on ventas.id=ventas_detalle.id_venta inner join Ventas_Tipo_Cuentas on Ventas_Tipo_Cuentas.id_venta=ventas.id";
	$model->condition = "ventas.fecha BETWEEN '$fechaIni' and '$fechaFin 23:59' AND id_estatus = 1 AND Ventas_Tipo_Cuentas.Id_metodo IN(1,7) and ventas.id_tipo_solic = 0 and (ventas.id_almacen = $idAlm or '$idAlm' = '0')";
	$model->Read();
	$filas = $model->rows;
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$tickUtilidad = $fila['TickUtilidad'];
		}
	}
	$model->select = "(IfNull(SUM(((ventas_detalle.precio) / $ivaSacar) * ventas_detalle.cantidad),0) - IfNull(SUM(ventas_detalle.costo_real * ventas_detalle.cantidad),0)) as FactUtilidad";
	$model->from = "ventas inner join ventas_detalle on ventas.id=ventas_detalle.id_venta inner join articulos on articulos.id=ventas_detalle.id_articulo";
	$model->condition = "ventas.fecha BETWEEN '$fechaIni' and '$fechaFin 23:59' AND id_estatus = 1 and ventas.id_tipo_solic IN(1,2,4,5) and (ventas.id_almacen = $almacen or '$almacen' = '0')";
	$model->Read();
	$filas = $model->rows;
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$factUtilidad = $fila['FactUtilidad'];
		}
	}

	$model = new Crud;
	$model->insertInto = "corte_caja";
	$model->insertColumns = "id_user, id_almacen, c1000, c500, c200, c100, c50, c20, c10, c5, c2, c1, c50c, c25c, c20c, c10c, c5c, c1c, dollars, cambio, otros, apertura, ventas_efec, adiciones_efec,
	retiros_efec, cierre, voucher, transferencias, cheques, abonos, notas, inventActual";
	$model->insertValues = "'$idUser', '$idAlm', '$n1000', '$n500', '$n200', '$n100', '$n50', '$n20', '$n10', '$n5', '$n2', '$n1', '$n50C', '$n25C', '$n20C', '$n10C', '$n5C', '$n1C', '$nDollar', '$nTipoCambio', '$nOtros', '$montoApertura', '$ventaEfec', '$adicionEf',
	'$retiroEf', '$montoCierre', '$montoVoucher', '$montoTrans', '$montoCheques', '$montoAbonos', '$notas', '$invertarioActual'";
	$model->Create();
	$mensaje = $model->message;

	// EnviarEmail($almacenCorreo, $ventaEfec, $montoVoucher, $montoTrans, $montoCheques, $tickUtilidad, $factUtilidad);

  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Cerrado correctamente',
    'data' => "1"
  );
	echo json_encode($arrayFinal);

	// echo $mensaje;
}

function createPauseSale()
{
    global $id;
    global $comentarios;
    global $incluirComentario;
    global $customerId;
    global $customerText;
    global $almacen;
    global $almacenText;
    global $usuarioId;
    global $metPago;
    global $tipoVenta;
    global $idTipoFactura;
    global $totalVenta;
    global $totalCosto;
    global $autorizacion;
    global $digitos;
    global $folio;
    global $idCaja;
    global $arrayArt;
    global $pagoCliente;
    global $credito;
    global $creditoCli;
    error_log("IdCustomer:", $customerId);
    $id = $id != '' ? $id : '0';
    $comentarios = $comentarios != '' ? $comentarios : '';
    $incluirComentario = $incluirComentario != '' ? $incluirComentario : '';
    //$customerId = $customerId != '' ? $customerId : '0';
    $customerText = $customerText != '' ? $customerText : '';
    $almacen = $almacen != '' ? $almacen : '0';
    $almacenText = $almacenText != '' ? $almacenText : '';
    $usuarioId = $usuarioId != '' ? $usuarioId : '0';
    $tipoVenta = $tipoVenta != '' ? $tipoVenta : '0';
    $idTipoFactura = $idTipoFactura != '' ? $idTipoFactura : '0';
    $totalVenta = $totalVenta != '' ? $totalVenta : '0';
    $totalCosto = $totalCosto != '' ? $totalCosto : '0';
    $autorizacion = $autorizacion != '' ? $autorizacion : '';
    $digitos = $digitos != '' ? $digitos : '';
    $folio = $folio != '' ? $folio : '0';
    $idCaja = $idCaja != '' ? $idCaja : '0';
    $pagoCliente = $pagoCliente != '' ? $pagoCliente : '0';
    $credito = $credito != '' ? $credito : '0';
    $creditoCli = $creditoCli != '' ? $creditoCli : '0';
    // DECODE AND SET DATA

    $pagosLista = "";
    $pagosCantidad = "";
    $pagosCol = "";
    if (count($metPago) != 0) {
        for ($i = 0; $i < count($metPago); $i++) {
            $idPago = $metPago[$i]['idPago'];
            $monto = $metPago[$i]['monto'];
            $textPago = $metPago[$i]['textPago'];
            $pagosLista .= $textPago . ",";
            $pagosCantidad .= $monto . ",";
            $pagosCol .= $textPago . ': ' . $monto . ',';
        }
    }

    if ($pagoCliente == "NaN") {
        $pagoCliente = "0";
    }

    $pagosLista = substr($pagosLista, 0, -1);
    $pagosCantidad = substr($pagosCantidad, 0, -1);
    $pagosCol = substr($pagosCol, 0, -1);
    $model = new Crud;
    $model->insertInto = "vpausa";
    if ($_POST["sec_option"] == "insert_pause") {
        $model->insertColumns = "folio, fecha, id_user, id_caja, id_cliente, id_almacen, id_estatus, total, pago, no_autorizacion, digitos_pago, id_tipo_solic, credito, incluir_comentario, comentario, textPagos, cantPagos, colPagos, totalCosto, tipo_venta, isWorkOrder, 'viene_de'";
        $model->insertValues = "'$folio', now(), '$usuarioId', '$idCaja', '$customerId', '$almacen', '1', '$totalVenta', '$pagoCliente', '$autorizacion', '$digitos', '$idTipoFactura', b'$credito', '$incluirComentario', '$comentarios', '$pagosLista', '$pagosCantidad', '$pagosCol', '$totalCosto', '$tipoVenta', '1', 'APP'";
    } else {
        $model->insertColumns = "folio, fecha, id_user, id_caja, id_cliente, id_almacen, id_estatus, total, pago, no_autorizacion, digitos_pago, id_tipo_solic, credito, incluir_comentario, comentario, textPagos, cantPagos, colPagos, totalCosto, tipo_venta, viene_de";
        $model->insertValues = "'$folio', now(), '$usuarioId', '$idCaja', '$customerId', '$almacen', '1', '$totalVenta', '$pagoCliente', '$autorizacion', '$digitos', '$idTipoFactura', b'$credito', '$incluirComentario', '$comentarios', '$pagosLista', '$pagosCantidad', '$pagosCol', '$totalCosto', '$tipoVenta', 'APP'";
    }

    $model->CreateId();
    $idVentaP = $model->message;
    if ($idVentaP != '' && $idVentaP != null) {
        if (count($arrayArt) != 0) {
            for ($i = 0; $i < count($arrayArt); $i++) {
                $idArt = $arrayArt[$i]['idProducto'];

                $model = new Crud;
                $model->select = "isService";
                $model->from = "articulos";
                $model->condition = "id = '$idArt'";
                $model->Read();
                $filasP = $model->rows;
                // error_log('SELECT'. $model->select.' from '.$model->from.' where '.$model->condition);
                $isServicio = 0;
                if (!empty($filasP)) {
                    foreach ($filasP as $filaP) {
                        $isServicio = $filaP['isService'];
                    }
                }
                $clave = $arrayArt[$i]['clave'];
                $precio = $arrayArt[$i]['precio'];
                $desc = $arrayArt[$i]['descuento'];
                $total = $arrayArt[$i]['total'];
                $tipoP = $arrayArt[$i]['tipoP'];
                $tp = $arrayArt[$i]['tp'];
                $cantidad = $arrayArt[$i]['cantidad'];
                $costo = $arrayArt[$i]['costo'];
                $model->insertInto = "vpausa_detalle";
                $model->insertColumns = "id_vpausa, id_articulo, cantidad, precio, tipo_precio, descuento, costo, total, tipo, isService";
                $model->insertValues = "'$idVentaP', '$idArt', '$cantidad', '$precio', '$tp', '$desc', '$costo', '$total', '$tipoP', '$isServicio'";
                $model->Create();
            }
        }

        if (count($metPago) != 0) {
            for ($i = 0; $i < count($metPago); $i++) {
                $idPago = $metPago[$i]['idPago'];
                $monto = $metPago[$i]['monto'];
                $model->insertInto = "vpausa_pagos";
                $model->insertColumns = "id_vpausa, id_pago, monto";
                $model->insertValues = "'$idVentaP', '$idPago', '$monto'";
                $model->Create();
            }
        }
    }

    $mensaje = $model->message;

    $arrRespon = array(
        'status' => "success",
        'message' => 'Pausado correctamente',
        'data' => $idVentaP
    );
    echo json_encode($arrRespon);

}

function checarCorte() {
  global $idUser;
  global $idAlm;
  global $idCaja;
  $model = new Crud;
  // $model->select = "id";
  // $model->from = "corte_caja";
  // $model->condition = "id_user = '$idUser' AND id_almacen = '$idAlm' AND DATE(fecha) = DATE(NOW())";
  $model->select = "id";
  $model->from = "cambio_dolar";
  $model->condition = "DATE(timestamp) = DATE(NOW())";
  $model->Read();
  $filas = $model->rows;
  $have = 0;
  if (!empty($filas)) {
    $have = count($filas) > 0 ? 1 : 0;
  }

  $arrRespon = array(
      'status' => "success",
      'message' => 'Obtenido correctamente',
      'data' => $have
  );
  echo json_encode($arrRespon);
}

function getCategories()
{
	$model = new Crud;
	$model->select = "id, categoria, img";
	$model->from = "categorias";
	$model->condition = "habilitado = '1'";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array(
				'id' => $fila['id'],
				'categoria' => $fila['categoria'],
				'img' => $fila['img']
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getFamilies()
{
  global $idCat;
	$model = new Crud;
	$model->select = "id, familia";
	$model->from = "familias";
	$model->condition = "habilitado = '1' AND id_categoria = '$idCat' ORDER BY familia ASC";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array(
				'id' => $fila['id'],
				'familia' => $fila['familia']
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getSubFamilies()
{
  global $idFam;
	$model = new Crud;
	$model->select = "id, subfamilia";
	$model->from = "subfamilias";
	$model->condition = "habilitado = '1' AND idf = '$idFam' ORDER BY subfamilia ASC";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
			$array[] = array(
				'id' => $fila['id'],
				'subfamilia' => $fila['subfamilia']
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getCatalog()
{
  global $idSubFam;
  global $idAlm;
  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '$idAlm'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
	$model = new Crud;
	$model->select = "articulos.id, articulos.clave, articulos.descripcion, precio1, precio2, precio3, precio4, precio7, precio8, precioE, $listaAlmacenes articulos.imagen, CASE WHEN marcas.id IS NULL THEN 'NINGUNO' ELSE marcas.marca END AS marca, articulos.id_familia, familias.familia, articulos.id_subfamilia, subfamilias.subfamilia, articulos.comentarios, articulos.especificaciones";
	$model->from = "articulos LEFT JOIN marcas ON articulos.id_fabricante = marcas.id
INNER JOIN familias ON articulos.id_familia = familias.id
INNER JOIN subfamilias ON articulos.id_subfamilia = subfamilias.id";
	$model->condition = "articulos.activo = '1' AND articulos.id_subfamilia = '$idSubFam' ORDER BY articulos.clave ASC";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
      $idArt = $fila['id'];
      $clave = $fila['clave'];
      $model2 = new Crud;
    	$model2->select = "cantidad, precio";
    	$model2->from = "articulos INNER JOIN mayoreo ON articulos.id = mayoreo.id_articulo";
    	$model2->condition = "articulos.id = $idArt";
    	$model2->Read();
    	$filas2 = $model2->rows;
    	$arrayMayoreo = array();
    	if (!empty($filas2)) {
    		foreach ($filas2 as $fila2) {
    			$arrayMayoreo[] = array(
    				'cantidad' => $fila2['cantidad'],
            'precio' => $fila2['precio']
    			);
    		}
    	}

      $idWP = getIdNoSku($clave);
      if ($idWP == '' || $idWP == null) {
        $idWP = '0';
      }

			$array[] = array(
        'id' => $fila['id'],
				'idWP' => $idWP,
        'clave' => $fila['clave'],
        'descripcion' => $fila['descripcion'],
        'precio1' => $fila['precio1'],
        'precio2' => $fila['precio2'],
        'precio3' => $fila['precio3'],
        'precio4' => $fila['precio4'],
        'precio5' => $fila['precio5'],
        'precio6' => $fila['precio6'],
        'precio7' => $fila['precio7'],
        'precio8' => $fila['precio8'],
        'precioE' => $fila['precioE'],
        'existencia' => $fila['existencia'],
        'imagen' => $fila['imagen'],
        'marca' => $fila['marca'],
        'id_familia' => $fila['id_familia'],
        'familia' => $fila['familia'],
        'id_subfamilia' => $fila['id_subfamilia'],
        'subfamilia' => $fila['subfamilia'],
        'comentarios' => $fila['comentarios'],
        'especificaciones' => $fila['especificaciones'],
				'mayoreo' => $arrayMayoreo
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getDestacados()
{
  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '1'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
	$model = new Crud;
	$model->select = "articulos.id, articulos.clave, articulos.descripcion, articulos.precio1, articulos.precio2, articulos.precio3, articulos.precio4, articulos.precio7,
   articulos.precio8, articulos.precioE, $listaAlmacenes articulos.imagen, CASE WHEN marcas.id IS NULL THEN 'NINGUNO' ELSE marcas.marca END AS marca, articulos.id_familia, familias.familia, articulos.id_subfamilia, subfamilias.subfamilia, articulos.comentarios, articulos.especificaciones";
	$model->from = "articulos LEFT JOIN marcas ON articulos.id_fabricante = marcas.id
INNER JOIN familias ON articulos.id_familia = familias.id
INNER JOIN subfamilias ON articulos.id_subfamilia = subfamilias.id";
	$model->condition = "destacadoApp = 1 AND articulos.activo = '1' AND articulos.pagina_activo = '1'";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
      $idArt = $fila['id'];
      $clave = $fila['clave'];
      $model2 = new Crud;
    	$model2->select = "cantidad, precio";
    	$model2->from = "articulos INNER JOIN mayoreo ON articulos.id = mayoreo.id_articulo";
    	$model2->condition = "articulos.id = $idArt";
    	$model2->Read();
    	$filas2 = $model2->rows;
    	$arrayMayoreo = array();
    	if (!empty($filas2)) {
    		foreach ($filas2 as $fila2) {
    			$arrayMayoreo[] = array(
    				'cantidad' => $fila2['cantidad'],
            'precio' => $fila2['precio']
    			);
    		}
    	}

      $idWP = getIdNoSku($clave);
      if ($idWP == '' || $idWP == null) {
        $idWP = '0';
      }
      // $jsonMayoreo = json_encode($arrayMayoreo);
			$array[] = array(
        'id' => $fila['id'],
				'idWP' => $idWP,
        'clave' => $fila['clave'],
        'descripcion' => $fila['descripcion'],
        'precio1' => $fila['precio1'],
        'precio2' => $fila['precio2'],
        'precio3' => $fila['precio3'],
        'precio4' => $fila['precio4'],
        'precio5' => $fila['precio5'],
        'precio6' => $fila['precio6'],
        'precio7' => $fila['precio7'],
        'precio8' => $fila['precio8'],
        'precioE' => $fila['precioE'],
        'existencia' => $fila['existencia'],
        'imagen' => $fila['imagen'],
        'marca' => $fila['marca'],
        'id_familia' => $fila['id_familia'],
        'familia' => $fila['familia'],
        'id_subfamilia' => $fila['id_subfamilia'],
        'subfamilia' => $fila['subfamilia'],
        'comentarios' => $fila['comentarios'],
        'especificaciones' => $fila['especificaciones'],
				'mayoreo' => $arrayMayoreo
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getCatalogMain()
{
  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '1'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
	$model = new Crud;
	$model->select = "articulos.id, articulos.clave, articulos.descripcion, articulos.precio1, articulos.precio2, articulos.precio3, articulos.precio4, articulos.precio7,
   articulos.precio8, articulos.precioE, $listaAlmacenes articulos.imagen, CASE WHEN marcas.id IS NULL THEN 'NINGUNO' ELSE marcas.marca END AS marca, articulos.id_familia, familias.familia, articulos.id_subfamilia, subfamilias.subfamilia, articulos.comentarios, articulos.especificaciones";
	$model->from = "articulos INNER JOIN ventas_detalle ON articulos.id = ventas_detalle.id_articulo INNER JOIN ventas ON ventas_detalle.id_venta = ventas.id LEFT JOIN marcas ON articulos.id_fabricante = marcas.id
INNER JOIN familias ON articulos.id_familia = familias.id
INNER JOIN subfamilias ON articulos.id_subfamilia = subfamilias.id";
	$model->condition = "ventas.fecha between SUBDATE(now(), INTERVAL 1 week) AND NOW()GROUP BY id_articulo ORDER BY Cantidad DESC LIMIT 20";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
      $idArt = $fila['id'];
      $model2 = new Crud;
    	$model2->select = "cantidad, precio";
    	$model2->from = "articulos INNER JOIN mayoreo ON articulos.id = mayoreo.id_articulo";
    	$model2->condition = "articulos.id = $idArt";
    	$model2->Read();
    	$filas2 = $model2->rows;
    	$arrayMayoreo = array();
    	if (!empty($filas2)) {
    		foreach ($filas2 as $fila2) {
    			$arrayMayoreo[] = array(
    				'cantidad' => $fila2['cantidad'],
            'precio' => $fila2['precio']
    			);
    		}
    	}
      // $jsonMayoreo = json_encode($arrayMayoreo);
			$array[] = array(
				'id' => $fila['id'],
        'clave' => $fila['clave'],
        'descripcion' => $fila['descripcion'],
        'precio1' => $fila['precio1'],
        'precio2' => $fila['precio2'],
        'precio3' => $fila['precio3'],
        'precio4' => $fila['precio4'],
        'precio5' => $fila['precio5'],
        'precio6' => $fila['precio6'],
        'precio7' => $fila['precio7'],
        'precio8' => $fila['precio8'],
        'precioE' => $fila['precioE'],
        'existencia' => $fila['existencia'],
        'imagen' => $fila['imagen'],
        'marca' => $fila['marca'],
        'id_familia' => $fila['id_familia'],
        'familia' => $fila['familia'],
        'id_subfamilia' => $fila['id_subfamilia'],
        'subfamilia' => $fila['subfamilia'],
        'comentarios' => $fila['comentarios'],
        'especificaciones' => $fila['especificaciones'],
				'mayoreo' => $arrayMayoreo
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getCatalogRelacionados()
{
  global $idSubFam;
  $model1 = new Crud;
  $model1->rows = null;
  $model1->select = "id, almacen, almacen_corto";
  $model1->from = "almacenes";
  $model1->condition = "id = '1'";
  $model1->Read();
  $filas = $model1->rows;
  $arrayFalso = array();
  $listaAlmacenes = "";
  if (!empty($filas)) {
    foreach ($filas as $fila) {
      $valorAlmacen = $fila['almacen'];
      $valorAlmacenId = $fila['id'];
      $valorAlmacenCorto = $fila['almacen_corto'];
      $valorNuevoAlmacen = str_replace(' ', '_', $valorAlmacen);
      $listaAlmacenes .= $valorNuevoAlmacen . ' AS existencia, ';
    }
  }
	$model = new Crud;
	$model->select = "articulos.id, articulos.clave, articulos.descripcion, articulos.precio1, articulos.precio2, articulos.precio3, articulos.precio4, articulos.precio7,
   articulos.precio8, articulos.precioE, $listaAlmacenes articulos.imagen, CASE WHEN marcas.id IS NULL THEN 'NINGUNO' ELSE marcas.marca END AS marca, articulos.id_familia, familias.familia, articulos.id_subfamilia, subfamilias.subfamilia, articulos.comentarios, articulos.especificaciones";
	$model->from = "articulos INNER JOIN ventas_detalle ON articulos.id = ventas_detalle.id_articulo INNER JOIN ventas ON ventas_detalle.id_venta = ventas.id LEFT JOIN marcas ON articulos.id_fabricante = marcas.id
INNER JOIN familias ON articulos.id_familia = familias.id
INNER JOIN subfamilias ON articulos.id_subfamilia = subfamilias.id";
	$model->condition = "subfamilias.id = '$idSubFam' GROUP BY id_articulo ORDER BY Cantidad DESC LIMIT 10";
	$model->Read();
	$filas = $model->rows;
	$array = array();
	if (!empty($filas)) {
		foreach ($filas as $fila) {
      $idArt = $fila['id'];
      $clave = $fila['clave'];
      $model2 = new Crud;
    	$model2->select = "cantidad, precio";
    	$model2->from = "articulos INNER JOIN mayoreo ON articulos.id = mayoreo.id_articulo";
    	$model2->condition = "articulos.id = $idArt";
    	$model2->Read();
    	$filas2 = $model2->rows;
    	$arrayMayoreo = array();
    	if (!empty($filas2)) {
    		foreach ($filas2 as $fila2) {
    			$arrayMayoreo[] = array(
    				'cantidad' => $fila2['cantidad'],
            'precio' => $fila2['precio']
    			);
    		}
    	}

      $idWP = getIdNoSku($clave);
      if ($idWP == '' || $idWP == null) {
        $idWP = '0';
      }

			$array[] = array(
        'id' => $fila['id'],
				'idWP' => $idWP,
        'clave' => $fila['clave'],
        'descripcion' => $fila['descripcion'],
        'precio1' => $fila['precio1'],
        'precio2' => $fila['precio2'],
        'precio3' => $fila['precio3'],
        'precio4' => $fila['precio4'],
        'precio5' => $fila['precio5'],
        'precio6' => $fila['precio6'],
        'precio7' => $fila['precio7'],
        'precio8' => $fila['precio8'],
        'precioE' => $fila['precioE'],
        'existencia' => $fila['existencia'],
        'imagen' => $fila['imagen'],
        'marca' => $fila['marca'],
        'id_familia' => $fila['id_familia'],
        'familia' => $fila['familia'],
        'id_subfamilia' => $fila['id_subfamilia'],
        'subfamilia' => $fila['subfamilia'],
        'comentarios' => $fila['comentarios'],
        'especificaciones' => $fila['especificaciones'],
				'mayoreo' => $arrayMayoreo
			);
		}
	}
  $arrayFinal = array(
    'status' => 'success',
    'message' => 'Obtenido correctamente',
    'data' => $array
  );
  $arrayFinal = utf8_converter($arrayFinal);
	echo json_encode($arrayFinal);
}

function getIdNoSku($clave) {
  $id = wc_get_product_id_by_sku( $clave );
  return $id;
}

function utf8_converter($array)
{
    array_walk_recursive($array, function (&$item, $key) {
        if (!mb_detect_encoding($item, 'utf-8', true)) {
            $item = utf8_encode($item);
        }
    });
    return $array;
}

?>
