protected function process() { $this->show_fs_toolbar = FALSE; $fsvar = new fs_var(); $cron_vars = $fsvar->array_get(array('cron_exists' => FALSE, 'cron_lock' => FALSE, 'cron_error' => FALSE)); if (isset($_GET['fix'])) { $cron_vars['cron_error'] = FALSE; $cron_vars['cron_lock'] = FALSE; $fsvar->array_save($cron_vars); } if (!$cron_vars['cron_exists']) { $this->new_advice('Nunca se ha ejecutado el cron, te perderás algunas características interesantes de FacturaScripts.'); } else { if ($cron_vars['cron_error']) { $this->new_error_msg('Parece que ha habido un error con el cron. Haz clic <a href="' . $this->url() . '&fix=TRUE">aquí</a> para corregirlo.'); } else { if ($cron_vars['cron_lock']) { $this->new_advice('Se está ejecutando el cron.'); } } } if (isset($_GET['clean_cache'])) { /// borramos los archivos php del directorio tmp foreach (scandir(getcwd() . '/tmp') as $f) { if (substr($f, -4) == '.php') { unlink('tmp/' . $f); } } if ($this->cache->clean()) { $this->new_message("Cache limpiada correctamente."); } } if (FS_LCD != '') { $fpt = new fs_printer(FS_LCD); $fpt->add(chr(12) . $fpt->center_text('The cake is', 20)); $fpt->add($fpt->center_text('a lie!', 20)); $fpt->imprimir(); } }
private function imprimir_ticket($albaran, $num_tickets = 1, $cajon = TRUE) { $fpt = new fs_printer(); if ($cajon) { $fpt->abrir_cajon(); } while ($num_tickets > 0) { $linea = "\nTicket: " . $albaran->codigo; $linea .= " " . $albaran->fecha; $linea .= " " . $albaran->show_hora(FALSE) . "\n"; $fpt->add($linea); $fpt->add("Cliente: " . $albaran->nombrecliente . "\n"); $fpt->add("Empleado: " . $albaran->codagente . "\n\n"); if ($this->imprimir_observaciones) { $fpt->add('Observaciones: ' . $albaran->observaciones . "\n\n"); } $fpt->add(sprintf("%3s", "Ud.") . " " . sprintf("%-25s", "Articulo") . " " . sprintf("%10s", "TOTAL") . "\n"); $fpt->add(sprintf("%3s", "---") . " " . sprintf("%-25s", "-------------------------") . " " . sprintf("%10s", "----------") . "\n"); foreach ($albaran->get_lineas() as $col) { if ($this->imprimir_descripciones) { $linea = sprintf("%3s", $col->cantidad) . " " . sprintf("%-25s", substr($col->descripcion, 0, 24)) . " " . sprintf("%10s", $this->show_numero($col->total_iva())) . "\n"; } else { $linea = sprintf("%3s", $col->cantidad) . " " . sprintf("%-25s", $col->referencia) . " " . sprintf("%10s", $this->show_numero($col->total_iva())) . "\n"; } $fpt->add($linea); } $linea = "----------------------------------------\n" . $fpt->center_text("IVA: " . $this->show_precio($albaran->totaliva, $albaran->coddivisa, FALSE) . ' ' . "Total: " . $this->show_precio($albaran->total, $albaran->coddivisa, FALSE)) . "\n\n\n\n"; $fpt->add($linea); $fpt->add_big($fpt->center_text($this->empresa->nombre, 16) . "\n"); if ($this->empresa->lema != '') { $fpt->add($fpt->center_text($this->empresa->lema) . "\n\n"); } else { $fpt->add("\n"); } $fpt->add($fpt->center_text($this->empresa->direccion . " - " . $this->empresa->ciudad) . "\n"); $fpt->add($fpt->center_text("CIF: " . $this->empresa->cifnif) . chr(27) . chr(105) . "\n\n"); /// corta el papel if ($this->empresa->horario != '') { $fpt->add($fpt->center_text($this->empresa->horario) . "\n"); } $fpt->imprimir(); $num_tickets--; } }
private function imprimir_ticket($num_tickets = 2) { $fpt = new fs_printer(); $fpt->abrir_cajon(); while ($num_tickets > 0) { $linea = "\nTicket: " . $this->albaran->codigo; $linea .= " " . $this->albaran->fecha; $linea .= " " . $this->albaran->show_hora(FALSE) . "\n"; $fpt->add($linea); $fpt->add("Cliente: " . $this->albaran->nombrecliente . "\n"); $fpt->add("Agente: " . $this->albaran->codagente . "\n\n"); $fpt->add(sprintf("%3s", "Ud.") . " " . sprintf("%-25s", "Articulo") . " " . sprintf("%10s", "TOTAL") . "\n"); $fpt->add(sprintf("%3s", "---") . " " . sprintf("%-25s", "-------------------------") . " " . sprintf("%10s", "----------") . "\n"); foreach ($this->albaran->get_lineas() as $col) { $linea = sprintf("%3s", $col->cantidad) . " " . sprintf("%-25s", $col->referencia) . " " . sprintf("%10s", $this->show_numero($col->total_iva())) . "\n"; $fpt->add($linea); } $linea = "----------------------------------------\n" . $fpt->center_text("IVA: " . $this->show_precio($this->albaran->totaliva, $this->albaran->coddivisa, FALSE) . " " . "Total: " . $this->show_precio($this->albaran->total, $this->albaran->coddivisa, FALSE)) . "\n\n"; if (isset($_POST['efectivo'])) { $linea .= $fpt->center_text("Efectivo..........: " . sprintf("%12s", $this->show_precio($_POST['efectivo'], $this->albaran->coddivisa, FALSE))) . "\n"; } if (isset($_POST['cambio'])) { $linea .= $fpt->center_text("Cambio............: " . sprintf("%12s", $this->show_precio($_POST['cambio'], $this->albaran->coddivisa, FALSE))) . "\n"; } $linea .= "\n\n\n"; $fpt->add($linea); $fpt->add_big($fpt->center_text($this->empresa->nombre, 16) . "\n"); $fpt->add($fpt->center_text($this->empresa->lema) . "\n\n"); $fpt->add($fpt->center_text($this->empresa->direccion . " - " . $this->empresa->ciudad) . "\n"); $fpt->add($fpt->center_text("CIF: " . $this->empresa->cifnif) . chr(27) . chr(105) . "\n\n"); /// corta el papel $fpt->add($fpt->center_text($this->empresa->horario) . "\n"); $fpt->imprimir(); $num_tickets--; } }
private function cerrar_caja() { $this->caja->fecha_fin = Date('d-m-Y H:i:s'); if ($this->caja->save()) { $fpt = new fs_printer(); $fpt->add_big("\nCIERRE DE CAJA:\n"); $fpt->add("Empleado: " . $this->user->codagente . " " . $this->agente->get_fullname() . "\n"); $fpt->add("Caja: " . $this->caja->fs_id . "\n"); $fpt->add("Fecha inicial: " . $this->caja->fecha_inicial . "\n"); $fpt->add("Dinero inicial: " . $this->show_precio($this->caja->dinero_inicial, FALSE, FALSE) . "\n"); $fpt->add("Fecha fin: " . $this->caja->show_fecha_fin() . "\n"); $fpt->add("Dinero fin: " . $this->show_precio($this->caja->dinero_fin, FALSE, FALSE) . "\n"); $fpt->add("Diferencia: " . $this->show_precio($this->caja->diferencia(), FALSE, FALSE) . "\n"); $fpt->add("Tickets: " . $this->caja->tickets . "\n\n"); $fpt->add("Dinero pesado:\n\n\n"); $fpt->add("Observaciones:\n\n\n\n"); $fpt->add("Firma:\n\n\n\n\n\n\n"); /// encabezado común para los tickets $fpt->add_big($fpt->center_text($this->empresa->nombre, 16) . "\n"); $fpt->add($fpt->center_text($this->empresa->lema) . "\n\n"); $fpt->add($fpt->center_text($this->empresa->direccion . " - " . $this->empresa->ciudad) . "\n"); $fpt->add($fpt->center_text("CIF: " . $this->empresa->cifnif) . chr(27) . chr(105) . "\n\n"); /// corta el papel $fpt->add($fpt->center_text($this->empresa->horario) . "\n"); $fpt->imprimir(); $fpt->abrir_cajon(); /// recargamos la página header('location: ' . $this->url()); } else { $this->new_error_msg("¡Imposible cerrar la caja!"); } }
private function borrar_ticket() { $albaran = new albaran_cliente(); $alb = $albaran->get_by_codigo($_GET['delete']); if ($alb) { if ($alb->ptefactura) { /// imprimimos $fpt = new fs_printer(); $fpt->add(chr(27) . chr(64)); $fpt->add("----------------------------------------\n"); $fpt->add($fpt->center_text('*** TICKET BORRADO ***', 42) . "\n"); $fpt->add("----------------------------------------\n"); $fpt->imprimir(); unset($fpt); $this->imprimir_ticket($alb); /// actualizamos el stock $articulo = new articulo(); foreach ($alb->get_lineas() as $linea) { $art0 = $articulo->get($linea->referencia); if ($art0) { $art0->sum_stock($alb->codalmacen, $linea->cantidad); $art0->save(); } } if ($alb->delete()) { $this->new_message("Ticket " . $_GET['delete'] . " borrado correctamente."); /// actualizamos la caja $this->caja->dinero_fin -= $alb->total; $this->caja->tickets -= 1; if (!$this->caja->save()) { $this->new_error_msg("¡Imposible actualizar la caja!"); } } else { $this->new_error_msg("¡Imposible borrar el ticket " . $_GET['delete'] . "!"); } } else { $this->new_error_msg('No se ha podido borrar este ' . FS_ALBARAN . ' porque ya está facturado.'); } } else { $this->new_error_msg("Ticket no encontrado."); } }