maskaro commited on
Commit
4e2be87
·
verified ·
1 Parent(s): 0a13ba8

Update script.js

Browse files
Files changed (1) hide show
  1. script.js +21 -20
script.js CHANGED
@@ -55,9 +55,8 @@ function render() {
55
  mesaDiv.style.cursor = 'pointer';
56
  mesaDiv.onclick = () => gestionarMesa(index);
57
 
58
- // Añadir listener para el botón de eliminar
59
  mesaDiv.querySelector('.delete-mesa').onclick = (event) => {
60
- event.stopPropagation(); // Evitar que se abra la mesa al eliminar
61
  if (confirm(`¿Estás seguro de que quieres eliminar la Mesa ${mesa.numero}?`)) {
62
  mesas.splice(index, 1);
63
  render();
@@ -70,7 +69,6 @@ function render() {
70
  app.appendChild(mesasContainer);
71
  }
72
 
73
-
74
  function gestionarMesa(index) {
75
  const mesa = mesas[index];
76
  app.innerHTML = '';
@@ -116,7 +114,6 @@ function gestionarMesa(index) {
116
  `;
117
  opcionesContainer.appendChild(opcionDiv);
118
 
119
- // Añadimos los listeners dentro del bucle, para cada grupo de botones
120
  const cantidadControls = opcionDiv.querySelector('.cantidad-controls');
121
  const cantidadSpan = cantidadControls.querySelector('.cantidad');
122
  cantidadControls.querySelector('.decrease').onclick = () => {
@@ -184,39 +181,45 @@ function gestionarMesa(index) {
184
  app.appendChild(finalizarButton);
185
  }
186
 
187
- // Generación del QR usando la API externa con descarga
188
  function generarTicket(index, total) {
189
  const mesa = mesas[index];
190
- let qrContent = `Mesa ${mesa.numero}\n`;
191
 
 
 
 
 
 
 
192
  mesa.pedidos.forEach(pedido => {
193
- qrContent += `${pedido.item} (${pedido.opcion || ''}) x${pedido.cantidad} - €${(pedido.precio * pedido.cantidad).toFixed(2)}\n`;
 
194
  });
 
195
 
196
- qrContent += `\nTotal: €${total.toFixed(2)}`;
197
-
198
- console.log('QR Content:', qrContent);
 
 
199
 
200
- app.innerHTML = '';
 
201
 
 
202
  const qrContainer = document.createElement('div');
203
  qrContainer.className = 'text-center';
204
  app.appendChild(qrContainer);
205
 
 
206
  const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(qrContent)}&size=256x256`;
207
 
208
- // Crear enlace de descarga
209
- const downloadLink = document.createElement('a');
210
- downloadLink.href = qrUrl;
211
- downloadLink.download = `qr-mesa-${mesa.numero}.png`;
212
- downloadLink.textContent = 'Descargar QR';
213
- qrContainer.appendChild(downloadLink);
214
-
215
  const qrImage = document.createElement('img');
216
  qrImage.src = qrUrl;
217
  qrImage.alt = 'QR Code';
218
  qrContainer.appendChild(qrImage);
219
 
 
220
  const volverButton = document.createElement('button');
221
  volverButton.textContent = '← Volver';
222
  volverButton.className = 'btn btn-outline-danger btn-block';
@@ -226,5 +229,3 @@ function generarTicket(index, total) {
226
 
227
  // Inicializar la aplicación
228
  render();
229
-
230
-
 
55
  mesaDiv.style.cursor = 'pointer';
56
  mesaDiv.onclick = () => gestionarMesa(index);
57
 
 
58
  mesaDiv.querySelector('.delete-mesa').onclick = (event) => {
59
+ event.stopPropagation();
60
  if (confirm(`¿Estás seguro de que quieres eliminar la Mesa ${mesa.numero}?`)) {
61
  mesas.splice(index, 1);
62
  render();
 
69
  app.appendChild(mesasContainer);
70
  }
71
 
 
72
  function gestionarMesa(index) {
73
  const mesa = mesas[index];
74
  app.innerHTML = '';
 
114
  `;
115
  opcionesContainer.appendChild(opcionDiv);
116
 
 
117
  const cantidadControls = opcionDiv.querySelector('.cantidad-controls');
118
  const cantidadSpan = cantidadControls.querySelector('.cantidad');
119
  cantidadControls.querySelector('.decrease').onclick = () => {
 
181
  app.appendChild(finalizarButton);
182
  }
183
 
184
+ // Generación del PDF con jsPDF
185
  function generarTicket(index, total) {
186
  const mesa = mesas[index];
 
187
 
188
+ // Crear un nuevo documento PDF
189
+ const doc = new jsPDF();
190
+
191
+ // Agregar contenido al PDF
192
+ doc.text(`Mesa ${mesa.numero}`, 10, 10);
193
+ let yOffset = 20;
194
  mesa.pedidos.forEach(pedido => {
195
+ doc.text(`${pedido.item} (${pedido.opcion || ''}) x${pedido.cantidad} - €${(pedido.precio * pedido.cantidad).toFixed(2)}`, 10, yOffset);
196
+ yOffset += 10;
197
  });
198
+ doc.text(`Total: €${total.toFixed(2)}`, 10, yOffset);
199
 
200
+ // Mostrar el total debajo del QR
201
+ const totalText = document.createElement('p');
202
+ totalText.textContent = `Total: €${total.toFixed(2)}`;
203
+ totalText.className = 'text-center';
204
+ app.appendChild(totalText);
205
 
206
+ // Generar el PDF y descargarlo
207
+ doc.save(`ticket-mesa-${mesa.numero}.pdf`);
208
 
209
+ // Mostrar el QR
210
  const qrContainer = document.createElement('div');
211
  qrContainer.className = 'text-center';
212
  app.appendChild(qrContainer);
213
 
214
+ const qrContent = `Mesa ${mesa.numero}\n${mesa.pedidos.map(p => `${p.item} (${p.opcion || ''}) x${p.cantidad} - €${(p.precio * p.cantidad).toFixed(2)}`).join('\n')}\nTotal: €${total.toFixed(2)}`;
215
  const qrUrl = `https://api.qrserver.com/v1/create-qr-code/?data=${encodeURIComponent(qrContent)}&size=256x256`;
216
 
 
 
 
 
 
 
 
217
  const qrImage = document.createElement('img');
218
  qrImage.src = qrUrl;
219
  qrImage.alt = 'QR Code';
220
  qrContainer.appendChild(qrImage);
221
 
222
+ // Botón "Volver"
223
  const volverButton = document.createElement('button');
224
  volverButton.textContent = '← Volver';
225
  volverButton.className = 'btn btn-outline-danger btn-block';
 
229
 
230
  // Inicializar la aplicación
231
  render();