|
|
@@ -21,22 +21,49 @@ use Mike42\Escpos\Printer;
|
|
|
use Mike42\Escpos\PrintConnectors\WindowsPrintConnector;
|
|
|
use Mike42\Escpos\EscposImage;
|
|
|
|
|
|
-$dataComanda = json_decode($_POST["dataComanda"]);
|
|
|
+// Recibir datos - puede venir como JSON string o como objeto serializado por jQuery
|
|
|
+$dataComanda = null;
|
|
|
+
|
|
|
+if(isset($_POST["dataComanda"])){
|
|
|
+ if(is_string($_POST["dataComanda"])){
|
|
|
+ $dataComanda = json_decode($_POST["dataComanda"]);
|
|
|
+ } else {
|
|
|
+ $dataComanda = json_decode(json_encode($_POST["dataComanda"]));
|
|
|
+ }
|
|
|
+} elseif(isset($_POST["dataPrint"])){
|
|
|
+ if(is_string($_POST["dataPrint"])){
|
|
|
+ $dataComanda = json_decode($_POST["dataPrint"]);
|
|
|
+ } else {
|
|
|
+ $dataComanda = json_decode(json_encode($_POST["dataPrint"]));
|
|
|
+ }
|
|
|
+}
|
|
|
|
|
|
if($dataComanda){
|
|
|
+ // Verificar si tiene productos_cocina ya generados
|
|
|
+ if(isset($dataComanda->productos_cocina) && is_array($dataComanda->productos_cocina) && count($dataComanda->productos_cocina) > 0){
|
|
|
+ $productosPorCocina = $dataComanda->productos_cocina;
|
|
|
+ } else {
|
|
|
+ // Si no tiene productos_cocina, retornar error silencioso (no hay nada que imprimir en cocina)
|
|
|
+ echo json_encode(array('status' => 'success', 'message' => 'No hay productos para cocina'));
|
|
|
+ exit;
|
|
|
+ }
|
|
|
+
|
|
|
// Datos generales
|
|
|
- $fecha = $dataComanda->fecha;
|
|
|
- $numeroOrden = $dataComanda->numero_orden ?? "N/A";
|
|
|
- $mesa = $dataComanda->mesa ?? "N/A";
|
|
|
- $mesero = $dataComanda->mesero ?? "";
|
|
|
+ $fecha = $dataComanda->fecha ?? date("d-m-Y H:i:s");
|
|
|
+ $numeroOrden = $dataComanda->numero_orden ?? ($dataComanda->referencia ?? "N/A");
|
|
|
+
|
|
|
+ // Extraer número de orden si viene con formato V-, C-, D-
|
|
|
+ if(isset($numeroOrden) && is_string($numeroOrden)){
|
|
|
+ $numeroOrden = str_replace(array("V-", "C-", "D-"), "", $numeroOrden);
|
|
|
+ }
|
|
|
+
|
|
|
+ $mesa = $dataComanda->mesa_orden ?? ($dataComanda->mesa ?? "N/A");
|
|
|
+ $mesero = $dataComanda->mesero ?? ($dataComanda->vendedor ?? "");
|
|
|
$cliente = $dataComanda->cliente ?? "";
|
|
|
$servicio = $dataComanda->servicio ?? "";
|
|
|
$notas = $dataComanda->notas ?? "";
|
|
|
$observaciones = $dataComanda->observaciones ?? "";
|
|
|
|
|
|
- // Productos agrupados por cocina
|
|
|
- $productosPorCocina = $dataComanda->productos_cocina; // Array de objetos con: cocina, impresor, ancho, productos[]
|
|
|
-
|
|
|
$resultados = [];
|
|
|
|
|
|
// Imprimir una comanda por cada cocina
|