Exemplo n.º 1
0
 protected function public_core()
 {
     $this->template = 'inme_public/picar';
     $this->page_title = $this->page_description = 'Picar noticias.';
     $fsvar = new fs_var();
     $this->analytics = $fsvar->simple_get('inme_analytics');
     $this->modrewrite = $fsvar->simple_get('inme_modrewrite');
     $this->buscar = '';
     $this->log = array();
     $this->noticia = new inme_noticia_fuente();
     $this->tema = new inme_tema();
     if (isset($_GET['hidden'])) {
         $this->template = FALSE;
         if (function_exists('curl_init')) {
             $this->picar();
         } else {
             echo 'ERROR: No se encuentra la extensión php-curl, tienes que instalarla.';
         }
     } else {
         if (!function_exists('curl_init')) {
             $this->new_error_msg('No se encuentra la extensión php-curl, tienes que instalarla.');
         } else {
             if (isset($_GET['picar'])) {
                 $this->picar();
             } else {
                 $this->log[] = "Para estar <b>bien informados</b> primero debemos estar informados.";
                 $this->log[] = "Pica un poco para obtener noticias.";
                 $this->log[] = "Después las agrupamos, calculamos su popularidad y podemos pasar al siguiente paso...";
             }
         }
     }
 }
Exemplo n.º 2
0
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->share_extensions();
     $this->estado = new estado_sat();
     /// leemos la API key de google maps de la base de datos o del formulario
     $fsvar = new fs_var();
     if (isset($_POST['maps_api_key'])) {
         $this->maps_api_key = $_POST['maps_api_key'];
         $fsvar->simple_save('maps_api_key', $this->maps_api_key);
     } else {
         $this->maps_api_key = $fsvar->simple_get('maps_api_key');
     }
     /// cargamos la configuración
     $this->sat_setup = $fsvar->array_get(array('sat_col_modelo' => 0, 'sat_col_posicion' => 0, 'sat_col_accesorios' => 0, 'sat_col_prioridad' => 0, 'sat_col_fecha' => 1, 'sat_col_fechaini' => 0, 'sat_col_fechafin' => 0), FALSE);
     if (isset($_POST['sat_setup'])) {
         $this->sat_setup['sat_col_modelo'] = isset($_POST['col_modelo']) ? 1 : 0;
         $this->sat_setup['sat_col_posicion'] = isset($_POST['col_posicion']) ? 1 : 0;
         $this->sat_setup['sat_col_accesorios'] = isset($_POST['col_accesorios']) ? 1 : 0;
         $this->sat_setup['sat_col_prioridad'] = isset($_POST['col_prioridad']) ? 1 : 0;
         $this->sat_setup['sat_col_fecha'] = isset($_POST['col_fecha']) ? 1 : 0;
         $this->sat_setup['sat_col_fechaini'] = isset($_POST['col_fechaini']) ? 1 : 0;
         $this->sat_setup['sat_col_fechafin'] = isset($_POST['col_fechafin']) ? 1 : 0;
         if ($fsvar->array_save($this->sat_setup)) {
             $this->new_message('Datos guardados correctamente.');
         } else {
             $this->new_error_msg('Error al guardar los datos.');
         }
     } else {
         if (isset($_GET['delete_estado'])) {
             $estado = $this->estado->get($_GET['delete_estado']);
             if ($estado) {
                 if ($estado->delete()) {
                     $this->new_message('Estado eliminado correctamente.');
                 } else {
                     $this->new_error_msg('Error al eliminar el estado.');
                 }
             } else {
                 $this->new_error_msg('Estado no encontrado.');
             }
         } else {
             if (isset($_POST['id_estado'])) {
                 $estado = $this->estado->get($_POST['id_estado']);
                 if (!$estado) {
                     $estado = new estado_sat();
                     $estado->id = intval($_POST['id_estado']);
                 }
                 $estado->descripcion = $_POST['descripcion'];
                 $estado->color = $_POST['color'];
                 $estado->activo = isset($_POST['activo']);
                 if ($estado->save()) {
                     $this->new_message('Estado guardado correctamente.');
                 } else {
                     $this->new_error_msg('Error al guardar el estado.');
                 }
             }
         }
     }
 }
 protected function process()
 {
     $this->show_fs_toolbar = FALSE;
     $this->demo_warnign_showed = FALSE;
     $fsvar = new fs_var();
     $this->first_time = !$fsvar->simple_get('first_time');
     if (isset($_POST['modpages'])) {
         $this->first_time = FALSE;
         $fsvar->simple_save('first_time', '1');
         foreach ($this->all_pages() as $p) {
             if (!$p->exists) {
                 if ($p->delete()) {
                     $this->new_message('Se ha eliminado automáticamente la página ' . $p->name . ' ya que no tiene un controlador asociado en la carpeta controller.');
                 }
             } else {
                 if (!isset($_POST['enabled'])) {
                     $this->disable_page($p);
                 } else {
                     if (!$p->enabled and in_array($p->name, $_POST['enabled'])) {
                         $this->enable_page($p);
                     } else {
                         if ($p->enabled and !in_array($p->name, $_POST['enabled'])) {
                             $this->disable_page($p);
                         }
                     }
                 }
             }
         }
         $this->new_message('Datos guardados correctamente.');
         $this->new_message('Ahora es el momento de <a href="index.php?page=admin_empresa">
         introducir los datos de tu empresa</a>, si todavía no lo has hecho.');
     }
     $this->paginas = $this->all_pages();
     $this->load_menu(TRUE);
 }
Exemplo n.º 4
0
 protected function public_core()
 {
     $this->template = 'inme_public/stats';
     $this->page_title = $this->empresa->nombrecorto;
     $this->page_description = 'Portal de noticias colaborativo, para los que huyen de la mafia de menéame.' . ' Exploramos la web para mostrarte los temas de actualidad.';
     $this->buscar = '';
     $fsvar = new fs_var();
     $this->analytics = $fsvar->simple_get('inme_analytics');
     $this->modrewrite = $fsvar->simple_get('inme_modrewrite');
     if (isset($_GET['ok_cookies'])) {
         setcookie('ok_cookies', 'TRUE', time() + FS_COOKIES_EXPIRE, '/');
         $fslog = new fs_log();
         $fslog->tipo = 'cookies';
         $fslog->detalle = 'Se han aceptado las cookies';
         $fslog->ip = $_SERVER['REMOTE_ADDR'];
         $fslog->save();
     }
 }
Exemplo n.º 5
0
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $eje = new ejercicio();
     $this->ejercicios = $eje->all();
     $this->serie = new serie();
     $fsvar = new fs_var();
     if (isset($_GET['num_personalizada'])) {
         $this->num_personalizada = TRUE;
         $fsvar->simple_save('numeracion_personalizada', $this->num_personalizada);
     } else {
         $this->num_personalizada = $fsvar->simple_get('numeracion_personalizada');
     }
     if (isset($_POST['codserie'])) {
         $serie = $this->serie->get($_POST['codserie']);
         if (!$serie) {
             $serie = new serie();
             $serie->codserie = $_POST['codserie'];
         }
         $serie->descripcion = $_POST['descripcion'];
         $serie->siniva = isset($_POST['siniva']);
         $serie->irpf = floatval($_POST['irpf']);
         if ($this->num_personalizada) {
             $serie->codejercicio = NULL;
             $serie->numfactura = 1;
             if ($_POST['codejercicio'] != '') {
                 $serie->codejercicio = $_POST['codejercicio'];
                 $serie->numfactura = intval($_POST['numfactura']);
             }
         }
         if ($serie->save()) {
             $this->new_message("Serie " . $serie->codserie . " guardada correctamente");
         } else {
             $this->new_error_msg("¡Imposible guardar la serie!");
         }
     } else {
         if (isset($_GET['delete'])) {
             if (!$this->user->admin) {
                 $this->new_error_msg('Sólo un administrador puede eliminar series.');
             } else {
                 $serie = $this->serie->get($_GET['delete']);
                 if ($serie) {
                     if ($serie->delete()) {
                         $this->new_message('Serie eliminada correctamente.');
                     } else {
                         $this->new_error_msg("¡Imposible eliminar la serie!");
                     }
                 } else {
                     $this->new_error_msg("Serie no encontrada.");
                 }
             }
         }
     }
 }
Exemplo n.º 6
0
 private function sitemap()
 {
     $this->template = FALSE;
     $fsvar = new fs_var();
     $modrewrite = $fsvar->simple_get('inme_modrewrite');
     header("Content-type: text/xml");
     echo '<?xml version="1.0" encoding="UTF-8"?>';
     echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">';
     $noti = new inme_noticia_fuente();
     foreach ($noti->all(0, 'editada DESC, publicada DESC') as $no) {
         if ($no->editada) {
             echo '<url><loc>', $this->empresa->web, '/', $no->url($modrewrite), '</loc><lastmod>', Date('Y-m-d', strtotime($no->fecha)), '</lastmod><changefreq>always</changefreq><priority>0.8</priority></url>';
         }
     }
     echo '</urlset>';
 }
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $eje = new ejercicio();
     $this->ejercicios = $eje->all();
     $this->serie = new serie();
     $fsvar = new fs_var();
     if (isset($_GET['num_personalizada'])) {
         if ($_GET['num_personalizada'] == 'TRUE') {
             $this->num_personalizada = TRUE;
             $fsvar->simple_save('numeracion_personalizada', $this->num_personalizada);
         } else {
             $this->num_personalizada = FALSE;
             $fsvar->simple_delete('numeracion_personalizada');
         }
     } else {
         $this->num_personalizada = $fsvar->simple_get('numeracion_personalizada');
     }
     if (isset($_POST['codserie'])) {
         $this->modificar_serie();
     } else {
         if (isset($_GET['delete'])) {
             if (!$this->user->admin) {
                 $this->new_error_msg('Sólo un administrador puede eliminar ' . FS_SERIES . '.');
             } else {
                 $serie = $this->serie->get($_GET['delete']);
                 if ($serie) {
                     if ($serie->delete()) {
                         $this->new_message('Datos eliminados correctamente: ' . FS_SERIE . ' ' . $_GET['delete'], TRUE);
                     } else {
                         $this->new_error_msg("¡Imposible eliminar " . FS_SERIE . ' ' . $_GET['delete'] . "!");
                     }
                 } else {
                     $this->new_error_msg('Datos no encontrados: ' . FS_SERIE . ' ' . $_GET['delete']);
                 }
             }
         }
     }
 }
Exemplo n.º 8
0
 /**
  * Devuelve el total de pedidos de Woocommerce.
  * Como las consultas a la API son lentas, se almacena el resultado en la
  * base de datos y se consulta a la API de vez en cuando.
  * @return type
  */
 private function get_total_pedidos()
 {
     $fsvar = new fs_var();
     $aux = $fsvar->simple_get('wooc_total_pedidos');
     if ($aux and mt_rand(0, 9) != 0) {
         return intval($aux);
     } else {
         $total = 0;
         $data = $this->wcapi->get_orders_count();
         if (isset($data->count)) {
             $this->conectado = TRUE;
             $total = intval($data->count);
             $fsvar->simple_save('wooc_total_pedidos', $total);
         }
         return $total;
     }
 }
Exemplo n.º 9
0
 private function new_search()
 {
     /// desactivamos la plantilla HTML
     $this->template = FALSE;
     $fsvar = new fs_var();
     $multi_almacen = $fsvar->simple_get('multi_almacen');
     $stock = new stock();
     $articulo = new articulo();
     $codfamilia = '';
     if (isset($_REQUEST['codfamilia'])) {
         $codfamilia = $_REQUEST['codfamilia'];
     }
     $codfabricante = '';
     if (isset($_REQUEST['codfabricante'])) {
         $codfabricante = $_REQUEST['codfabricante'];
     }
     $con_stock = isset($_REQUEST['con_stock']);
     $this->results = $articulo->search($this->query, 0, $codfamilia, $con_stock, $codfabricante);
     /// añadimos la busqueda, el descuento, la cantidad, etc...
     foreach ($this->results as $i => $value) {
         $this->results[$i]->query = $this->query;
         $this->results[$i]->dtopor = 0;
         $this->results[$i]->cantidad = 1;
         $this->results[$i]->stockalm = $this->results[$i]->stockfis;
         if ($multi_almacen and isset($_REQUEST['codalmacen'])) {
             $this->results[$i]->stockalm = $stock->total_from_articulo($this->results[$i]->referencia, $_REQUEST['codalmacen']);
         }
     }
     /// ejecutamos las funciones de las extensiones
     foreach ($this->extensions as $ext) {
         if ($ext->type == 'function' and $ext->params == 'new_search') {
             $name = $ext->text;
             $name($this->db, $this->results);
         }
     }
     /// buscamos el grupo de clientes y la tarifa
     if (isset($_REQUEST['codcliente'])) {
         $cliente = $this->cliente->get($_REQUEST['codcliente']);
         if ($cliente) {
             if ($cliente->codgrupo) {
                 $grupo0 = new grupo_clientes();
                 $tarifa0 = new tarifa();
                 $grupo = $grupo0->get($cliente->codgrupo);
                 if ($grupo) {
                     $tarifa = $tarifa0->get($grupo->codtarifa);
                     if ($tarifa) {
                         $tarifa->set_precios($this->results);
                     }
                 }
             }
         }
     }
     header('Content-Type: application/json');
     echo json_encode($this->results);
 }
Exemplo n.º 10
0
 private function get_download_list()
 {
     /**
      * Esta es la lista de plugins fijos, los imprescindibles.
      */
     $this->download_list = array('facturacion_base' => array('url' => 'https://github.com/NeoRazorX/facturacion_base/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/facturacion_base', 'description' => 'Permite la gestión básica de una empresa: gestión de ventas, de compras y contabilidad básica.'), 'argentina' => array('url' => 'https://github.com/FacturaScripts/argentina/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/argentina', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Argentina</b>.'), 'colombia' => array('url' => 'https://github.com/salvaWEBco/colombia/archive/master.zip', 'url_repo' => 'https://github.com/salvaWEBco/colombia', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Colombia</b>.'), 'ecuador' => array('url' => 'https://github.com/FacturaScripts/ecuador/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/ecuador', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Ecuador</b>.'), 'panama' => array('url' => 'https://github.com/NeoRazorX/panama/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/panama', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Panamá</b>.'), 'peru' => array('url' => 'https://github.com/NeoRazorX/peru/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/peru', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Perú</b>.'), 'republica_dominicana' => array('url' => 'https://github.com/joenilson/republica_dominicana/archive/master.zip', 'url_repo' => 'https://github.com/joenilson/republica_dominicana', 'description' => 'Plugin de adaptación de FacturaScripts a <b>República Dominicana</b>.'));
     $fsvar = new fs_var();
     $this->step = $fsvar->simple_get('install_step');
     /**
      * Usamos last_download_check para almacenar la última vez que vimos las descargas.
      * Así podemos saber qué descargas son nuevas.
      */
     $this->last_download_check = $fsvar->simple_get('last_download_check');
     if (!$this->last_download_check) {
         $this->last_download_check = Date('d-m-Y', strtotime('-1week'));
     }
     $this->new_downloads = 0;
     /**
      * Download_list2 es la lista de plugins de la comunidad, se descarga de Internet.
      */
     $this->download_list2 = $this->cache->get('download_list');
     if (!$this->download_list2) {
         $json = @$this->curl_get_contents('https://www.facturascripts.com/comm3/index.php?page=community_plugins&json=TRUE', 5);
         if ($json) {
             $this->download_list2 = json_decode($json);
             $this->cache->set('download_list', $this->download_list2);
         } else {
             $this->new_error_msg('Error al descargar la lista de plugins.');
             $this->download_list2 = array();
         }
     }
     foreach ($this->download_list2 as $i => $di) {
         $this->download_list2[$i]->nuevo = FALSE;
         if (strtotime($di->creado) > strtotime($this->last_download_check)) {
             $this->new_downloads++;
             $this->download_list2[$i]->nuevo = TRUE;
         }
     }
     /// ahora nos guardamos last_download_check
     $this->last_download_check = Date('d-m-Y', strtotime('-1week'));
     $fsvar->simple_save('last_download_check', $this->last_download_check);
 }
Exemplo n.º 11
0
 private function get_download_list()
 {
     /**
      * Esta es la lista de plugins fijos, los imprescindibles.
      */
     $this->download_list = array('facturacion_base' => array('url' => 'https://github.com/NeoRazorX/facturacion_base/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/facturacion_base', 'description' => 'Permite la gestión básica de una empresa: gestión de ventas, de compras y contabilidad básica.'), 'argentina' => array('url' => 'https://github.com/FacturaScripts/argentina/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/argentina', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Argentina</b>.'), 'chile' => array('url' => 'https://github.com/FacturaScripts/chile/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/chile', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Chile</b>.'), 'colombia' => array('url' => 'https://github.com/FacturaScripts/colombia/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/colombia', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Colombia</b>.'), 'ecuador' => array('url' => 'https://github.com/FacturaScripts/ecuador/archive/master.zip', 'url_repo' => 'https://github.com/FacturaScripts/ecuador', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Ecuador</b>.'), 'panama' => array('url' => 'https://github.com/NeoRazorX/panama/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/panama', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Panamá</b>.'), 'peru' => array('url' => 'https://github.com/NeoRazorX/peru/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/peru', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Perú</b>.'), 'republica_dominicana' => array('url' => 'https://github.com/joenilson/republica_dominicana/archive/master.zip', 'url_repo' => 'https://github.com/joenilson/republica_dominicana', 'description' => 'Plugin de adaptación de FacturaScripts a <b>República Dominicana</b>.'), 'venezuela' => array('url' => 'https://github.com/ConsultoresTecnologicos/FS-LocalizacionVenezuela/archive/master.zip', 'url_repo' => 'https://github.com/ConsultoresTecnologicos/FS-LocalizacionVenezuela', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Venezuela</b>.'));
     $fsvar = new fs_var();
     $this->step = $fsvar->simple_get('install_step');
     /**
      * Download_list2 es la lista de plugins de la comunidad, se descarga de Internet.
      */
     $this->download_list2 = $this->cache->get('download_list');
     if (!$this->download_list2) {
         $json = @$this->curl_get_contents('https://www.facturascripts.com/comm3/index.php?page=community_plugins&json=TRUE', 5);
         if ($json) {
             $this->download_list2 = json_decode($json);
             $this->cache->set('download_list', $this->download_list2);
         } else {
             $this->new_error_msg('Error al descargar la lista de plugins.');
             $this->download_list2 = array();
         }
     }
 }
Exemplo n.º 12
0
 /**
  * Devuelve TRUE si hay actualizaciones pendientes (sólo si eres admin).
  * @return boolean
  */
 public function check_for_updates()
 {
     if ($this->user->admin) {
         $fsvar = new fs_var();
         return $fsvar->simple_get('updates');
     } else {
         return FALSE;
     }
 }
Exemplo n.º 13
0
 protected function public_core()
 {
     $this->template = 'inme_public/editar_noticia';
     $this->page_description = 'Detalle de la noticia.';
     $this->buscar = '';
     $fsvar = new fs_var();
     $this->analytics = $fsvar->simple_get('inme_analytics');
     $this->modrewrite = $fsvar->simple_get('inme_modrewrite');
     if (isset($_GET['ok_cookies'])) {
         setcookie('ok_cookies', 'TRUE', time() + FS_COOKIES_EXPIRE, '/');
         $fslog = new fs_log();
         $fslog->tipo = 'cookies';
         $fslog->detalle = 'Se han aceptado las cookies';
         $fslog->ip = $_SERVER['REMOTE_ADDR'];
         $fslog->save();
     }
     $this->noticia = FALSE;
     $this->relacionada = FALSE;
     $this->temas = array();
     $noti0 = new inme_noticia_fuente();
     if (isset($_REQUEST['id'])) {
         $this->noticia = $noti0->get($_REQUEST['id']);
     } else {
         if (isset($_REQUEST['permalink'])) {
             $this->noticia = $noti0->get_by_permalink($_REQUEST['permalink']);
         }
     }
     if ($this->noticia) {
         $this->page_title = $this->noticia->titulo;
         $this->page_description = $this->true_text_break($this->noticia->resumen, 140);
         if (!is_null($this->noticia->id_relacionada)) {
             $this->relacionada = $noti0->get($this->noticia->id_relacionada);
         }
         $tema0 = new inme_tema();
         foreach ($this->noticia->keywords() as $key) {
             $tema = $tema0->get($key);
             if ($tema) {
                 if ($tema->activo) {
                     $this->temas[] = $tema;
                     /// si no hay una preview, usamos la de un tema
                     if ($tema->imagen and !$this->noticia->preview) {
                         $this->noticia->preview = $tema->imagen;
                         $this->noticia->save();
                     }
                 }
             } else {
                 $this->new_error_msg('Tema ' . $key . ' no encontrado.');
             }
         }
     } else {
         $this->new_error_msg('Noticia no encontrada.');
     }
 }
Exemplo n.º 14
0
 protected function private_core()
 {
     $this->download_list = array('facturacion_base' => array('url' => 'https://github.com/NeoRazorX/facturacion_base/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/facturacion_base', 'description' => 'Permite la gestión básica de una empresa: gestión de ventas, de compras y contabilidad básica.'), 'colombia' => array('url' => 'https://github.com/salvaWEBco/colombia/archive/master.zip', 'url_repo' => 'https://github.com/salvaWEBco/colombia', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Colombia</b>.'), 'panama' => array('url' => 'https://github.com/NeoRazorX/panama/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/panama', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Panamá</b>.'), 'peru' => array('url' => 'https://github.com/NeoRazorX/peru/archive/master.zip', 'url_repo' => 'https://github.com/NeoRazorX/peru', 'description' => 'Plugin de adaptación de FacturaScripts a <b>Perú</b>.'));
     $fsvar = new fs_var();
     $this->step = $fsvar->simple_get('install_step');
     /**
      * Pestaña avanzado
      */
     $guardar = FALSE;
     foreach ($GLOBALS['config2'] as $i => $value) {
         if (isset($_POST[$i])) {
             $GLOBALS['config2'][$i] = $_POST[$i];
             $guardar = TRUE;
         }
     }
     /**
      * Pestaña descargas
      */
     if (!isset($_GET['check4updates'])) {
         /**
          * Usamos last_download_check para almacenar la última vez que vimos las descargas.
          * Así podemos saber qué descargas son nuevas.
          */
         $this->last_download_check = $fsvar->simple_get('last_download_check');
         if (!$this->last_download_check) {
             $this->last_download_check = Date('d-m-Y', strtotime('-1day'));
         }
         $this->new_downloads = 0;
         $this->download_list2 = $this->cache->get('download_list');
         if (!$this->download_list2) {
             $this->download_list2 = json_decode(@$this->curl_get_contents('https://www.facturascripts.com/comm3/index.php?page=community_plugins&json=TRUE', 5));
             if ($this->download_list2) {
                 $this->cache->set('download_list', $this->download_list2);
             } else {
                 $this->download_list2 = array();
             }
         }
         foreach ($this->download_list2 as $i => $di) {
             $this->download_list2[$i]->nuevo = FALSE;
             if (strtotime($di->creado) > strtotime($this->last_download_check)) {
                 $this->new_downloads++;
                 $this->download_list2[$i]->nuevo = TRUE;
             }
         }
         /// ahora nos guardamos last_download_check
         $this->last_download_check = Date('d-m-Y', strtotime('-1day'));
         $fsvar->simple_save('last_download_check', $this->last_download_check);
     }
     if (isset($_GET['check4updates'])) {
         $this->template = FALSE;
         if ($this->check_for_updates2()) {
             echo 'Hay actualizaciones disponibles.';
         } else {
             echo 'No hay actualizaciones.';
         }
     } else {
         if (isset($_GET['updated'])) {
             /// el sistema ya se ha actualizado
             $fsvar->name = 'updates';
             $fsvar->delete();
         } else {
             if (FS_DEMO) {
                 $this->new_advice('En el modo demo no se pueden hacer cambios en esta página.');
                 $this->new_advice('Si te gusta FacturaScripts y quieres saber más, consulta la ' . '<a href="https://www.facturascripts.com/comm3/index.php?page=community_questions">sección preguntas</a>.');
             } else {
                 if (!$this->user->admin) {
                     $this->new_error_msg('Sólo un administrador puede hacer cambios en esta página.');
                 } else {
                     if (isset($_POST['modpages'])) {
                         if (!$this->step) {
                             $this->step = '1';
                             $fsvar->simple_save('install_step', $this->step);
                         }
                         foreach ($this->all_pages() as $p) {
                             if (!$p->exists) {
                                 if ($p->delete()) {
                                     $this->new_message('Se ha eliminado automáticamente la página ' . $p->name . ' ya que no tiene un controlador asociado en la carpeta controller.');
                                 }
                             } else {
                                 if (!isset($_POST['enabled'])) {
                                     $this->disable_page($p);
                                 } else {
                                     if (!$p->enabled and in_array($p->name, $_POST['enabled'])) {
                                         $this->enable_page($p);
                                     } else {
                                         if ($p->enabled and !in_array($p->name, $_POST['enabled'])) {
                                             $this->disable_page($p);
                                         }
                                     }
                                 }
                             }
                         }
                         $this->new_message('Datos guardados correctamente.');
                     } else {
                         if (isset($_GET['enable'])) {
                             $this->enable_plugin($_GET['enable']);
                             if ($this->step == '1') {
                                 $this->step = '2';
                                 $fsvar->simple_save('install_step', $this->step);
                             }
                         } else {
                             if (isset($_GET['disable'])) {
                                 $this->disable_plugin($_GET['disable']);
                             } else {
                                 if (isset($_GET['delete_plugin'])) {
                                     if (is_writable('plugins/' . $_GET['delete_plugin'])) {
                                         if ($this->delTree('plugins/' . $_GET['delete_plugin'])) {
                                             $this->new_message('Plugin ' . $_GET['delete_plugin'] . ' eliminado correctamente.');
                                         } else {
                                             $this->new_error_msg('Imposible eliminar el plugin ' . $_GET['delete_plugin']);
                                         }
                                     } else {
                                         $this->new_error_msg('No tienes permisos de escritura sobre la carpeta plugins/' . $_GET['delete_plugin']);
                                     }
                                 } else {
                                     if (isset($_POST['install'])) {
                                         if (is_uploaded_file($_FILES['fplugin']['tmp_name'])) {
                                             $zip = new ZipArchive();
                                             $res = $zip->open($_FILES['fplugin']['tmp_name']);
                                             if ($res === TRUE) {
                                                 $zip->extractTo('plugins/');
                                                 $zip->close();
                                                 $this->new_message('Plugin ' . $_FILES['fplugin']['name'] . ' añadido correctamente. Ya puedes activarlo.');
                                             } else {
                                                 $this->new_error_msg('Error al abrir el archivo ZIP. Código: ' . $res);
                                             }
                                         }
                                     } else {
                                         if (isset($_GET['download'])) {
                                             $this->download1();
                                         } else {
                                             if (isset($_GET['download2'])) {
                                                 $this->download2();
                                             } else {
                                                 if (isset($_GET['reset'])) {
                                                     if (file_exists('tmp/' . FS_TMP_NAME . 'config2.ini')) {
                                                         unlink('tmp/' . FS_TMP_NAME . 'config2.ini');
                                                         $this->new_message('Configuración reiniciada correctamente, pulsa <a href="' . $this->url() . '#avanzado">aquí</a> para continuar.');
                                                     }
                                                 } else {
                                                     if ($guardar) {
                                                         $file = fopen('tmp/' . FS_TMP_NAME . 'config2.ini', 'w');
                                                         if ($file) {
                                                             foreach ($GLOBALS['config2'] as $i => $value) {
                                                                 if (is_numeric($value)) {
                                                                     fwrite($file, $i . " = " . $value . ";\n");
                                                                 } else {
                                                                     fwrite($file, $i . " = '" . $value . "';\n");
                                                                 }
                                                             }
                                                             fclose($file);
                                                         }
                                                         $this->new_message('Datos guardados correctamente.');
                                                     }
                                                 }
                                             }
                                         }
                                     }
                                 }
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->paginas = $this->all_pages();
     $this->load_menu(TRUE);
 }
Exemplo n.º 15
0
 protected function private_core()
 {
     $this->almacen = new almacen();
     $this->cuenta_banco = new cuenta_banco();
     $this->divisa = new divisa();
     $this->ejercicio = new ejercicio();
     $this->forma_pago = new forma_pago();
     $this->serie = new serie();
     $this->pais = new pais();
     $fsvar = new fs_var();
     /// obtenemos los datos de configuración del email
     $this->mail = array('mail_host' => 'smtp.gmail.com', 'mail_port' => '465', 'mail_enc' => 'ssl', 'mail_user' => '', 'mail_low_security' => FALSE);
     $this->mail = $fsvar->array_get($this->mail, FALSE);
     /// obtenemos los datos de configuración de impresión
     $this->impresion = array('print_ref' => '1', 'print_dto' => '1', 'print_alb' => '0', 'print_formapago' => '1');
     $this->impresion = $fsvar->array_get($this->impresion, FALSE);
     if (isset($_POST['cifnif'])) {
         /// guardamos los datos de la empresa
         $this->empresa->nombre = $_POST['nombre'];
         $this->empresa->nombrecorto = $_POST['nombrecorto'];
         $this->empresa->cifnif = $_POST['cifnif'];
         $this->empresa->administrador = $_POST['administrador'];
         $this->empresa->codpais = $_POST['codpais'];
         $this->empresa->provincia = $_POST['provincia'];
         $this->empresa->ciudad = $_POST['ciudad'];
         $this->empresa->direccion = $_POST['direccion'];
         $this->empresa->codpostal = $_POST['codpostal'];
         $this->empresa->telefono = $_POST['telefono'];
         $this->empresa->fax = $_POST['fax'];
         $this->empresa->web = $_POST['web'];
         $this->empresa->email = $_POST['email'];
         $this->empresa->email_firma = $_POST['email_firma'];
         $this->empresa->email_password = $_POST['email_password'];
         $this->empresa->lema = $_POST['lema'];
         $this->empresa->horario = $_POST['horario'];
         $this->empresa->contintegrada = isset($_POST['contintegrada']);
         $this->empresa->codejercicio = $_POST['codejercicio'];
         $this->empresa->codserie = $_POST['codserie'];
         $this->empresa->coddivisa = $_POST['coddivisa'];
         $this->empresa->codpago = $_POST['codpago'];
         $this->empresa->codalmacen = $_POST['codalmacen'];
         $this->empresa->pie_factura = $_POST['pie_factura'];
         $this->empresa->recequivalencia = isset($_POST['recequivalencia']);
         if ($this->empresa->save()) {
             /// guardamos las opciones por defecto de almacén y forma de pago
             $this->save_codalmacen($_POST['codalmacen']);
             $this->save_codpago($_POST['codpago']);
             $this->new_message('Datos guardados correctamente.');
             if (!$this->empresa->contintegrada) {
                 $this->new_message('¿Quieres activar la <b>contabilidad integrada</b>?' . ' Haz clic en la sección <a href="#facturacion">facturación</a>.');
             }
             $step = $fsvar->simple_get('install_step');
             if ($step == 2) {
                 $step = 3;
                 $fsvar->simple_save('install_step', $step);
             }
             if ($step == 3 and $this->empresa->contintegrada) {
                 $this->new_message('Recuerda que tienes que <a href="index.php?page=contabilidad_ejercicio&cod=' . $this->empresa->codejercicio . '">importar los datos del ejercicio</a>.');
             }
         } else {
             $this->new_error_msg('Error al guardar los datos.');
         }
         /// guardamos los datos del email
         if (isset($_POST['mail_host'])) {
             $this->mail['mail_host'] = 'smtp.gmail.com';
             if ($_POST['mail_host'] != '') {
                 $this->mail['mail_host'] = $_POST['mail_host'];
             }
             $this->mail['mail_port'] = '465';
             if ($_POST['mail_port'] != '') {
                 $this->mail['mail_port'] = $_POST['mail_port'];
             }
             $this->mail['mail_enc'] = strtolower($_POST['mail_enc']);
             $this->mail['mail_user'] = $_POST['mail_user'];
             $this->mail['mail_low_security'] = isset($_POST['mail_low_security']);
             $fsvar->array_save($this->mail);
             $this->mail_test();
         }
         /// guardamos los datos de impresión
         $this->impresion['print_ref'] = isset($_POST['print_ref']) ? 1 : 0;
         $this->impresion['print_dto'] = isset($_POST['print_dto']) ? 1 : 0;
         $this->impresion['print_alb'] = isset($_POST['print_alb']) ? 1 : 0;
         $this->impresion['print_formapago'] = isset($_POST['print_formapago']) ? 1 : 0;
         $fsvar->array_save($this->impresion);
     } else {
         if (isset($_POST['nombre'])) {
             /// guardamos solamente lo básico, ya que facturacion_base no está activado
             $this->empresa->nombre = $_POST['nombre'];
             $this->empresa->nombrecorto = $_POST['nombrecorto'];
             $this->empresa->web = $_POST['web'];
             $this->empresa->email = $_POST['email'];
             $this->empresa->email_firma = $_POST['email_firma'];
             $this->empresa->email_password = $_POST['email_password'];
             if ($this->empresa->save()) {
                 $this->new_message('Datos guardados correctamente.');
             } else {
                 $this->new_error_msg('Error al guardar los datos.');
             }
             /// guardamos los datos del email
             if (isset($_POST['mail_host'])) {
                 $this->mail['mail_host'] = 'smtp.gmail.com';
                 if ($_POST['mail_host'] != '') {
                     $this->mail['mail_host'] = $_POST['mail_host'];
                 }
                 $this->mail['mail_port'] = '465';
                 if ($_POST['mail_port'] != '') {
                     $this->mail['mail_port'] = $_POST['mail_port'];
                 }
                 $this->mail['mail_enc'] = strtolower($_POST['mail_enc']);
                 $this->mail['mail_user'] = $_POST['mail_user'];
                 $this->mail['mail_low_security'] = isset($_POST['mail_low_security']);
                 $fsvar->array_save($this->mail);
                 $this->mail_test();
             }
         } else {
             if (isset($_POST['logo'])) {
                 if (is_uploaded_file($_FILES['fimagen']['tmp_name'])) {
                     $this->delete_logo();
                     if (substr(strtolower($_FILES['fimagen']['name']), -3) == 'png') {
                         copy($_FILES['fimagen']['tmp_name'], "tmp/" . FS_TMP_NAME . "logo.png");
                     } else {
                         copy($_FILES['fimagen']['tmp_name'], "tmp/" . FS_TMP_NAME . "logo.jpg");
                     }
                     $this->new_message('Logotipo guardado correctamente.');
                 }
             } else {
                 if (isset($_GET['delete_logo'])) {
                     $this->delete_logo();
                 } else {
                     if (isset($_GET['delete_cuenta'])) {
                         $cuenta = $this->cuenta_banco->get($_GET['delete_cuenta']);
                         if ($cuenta) {
                             if ($cuenta->delete()) {
                                 $this->new_message('Cuenta bancaria eliminada correctamente.');
                             } else {
                                 $this->new_error_msg('Imposible eliminar la cuenta bancaria.');
                             }
                         } else {
                             $this->new_error_msg('Cuenta bancaria no encontrada.');
                         }
                     } else {
                         if (isset($_POST['iban'])) {
                             if (isset($_POST['codcuenta'])) {
                                 $cuentab = $this->cuenta_banco->get($_POST['codcuenta']);
                             } else {
                                 $cuentab = new cuenta_banco();
                             }
                             $cuentab->descripcion = $_POST['descripcion'];
                             $cuentab->iban = $_POST['iban'];
                             $cuentab->swift = $_POST['swift'];
                             if (isset($_POST['codsubcuenta'])) {
                                 $cuentab->codsubcuenta = $_POST['codsubcuenta'];
                             }
                             if ($cuentab->save()) {
                                 $this->new_message('Cuenta bancaria guardada correctamente.');
                             } else {
                                 $this->new_error_msg('Imposible guardar la cuenta bancaria.');
                             }
                         }
                     }
                 }
             }
         }
     }
     $this->facturacion_base = in_array('facturacion_base', $GLOBALS['plugins']);
     $this->logo = FALSE;
     if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png')) {
         $this->logo = 'tmp/' . FS_TMP_NAME . 'logo.png';
     } else {
         if (file_exists('tmp/' . FS_TMP_NAME . 'logo.jpg')) {
             $this->logo = 'tmp/' . FS_TMP_NAME . 'logo.jpg';
         }
     }
 }
Exemplo n.º 16
0
 protected function private_core()
 {
     /// ¿El usuario tiene permiso para eliminar en esta página?
     $this->allow_delete = $this->user->allow_delete_on(__CLASS__);
     $this->share_extensions();
     $this->estado = new estado_sat();
     /// leemos la API key de google maps de la base de datos o del formulario
     $fsvar = new fs_var();
     if (isset($_POST['maps_api_key'])) {
         $this->maps_api_key = $_POST['maps_api_key'];
         $fsvar->simple_save('maps_api_key', $this->maps_api_key);
     } else {
         $this->maps_api_key = $fsvar->simple_get('maps_api_key');
     }
     /// cargamos la configuración
     $this->sat_setup = $fsvar->array_get(array('sat_col_modelo' => 0, 'sat_col_posicion' => 0, 'sat_col_accesorios' => 0, 'sat_col_prioridad' => 0, 'sat_col_fecha' => 1, 'sat_col_fechaini' => 0, 'sat_col_fechafin' => 0, 'sat_condiciones' => "Condiciones del deposito:\nLos presupuestos realizados tienen una" . " validez de 15 días.\nUna vez avisado al cliente para que recoja el producto este dispondrá" . " de un plazo máximo de 2 meses para recogerlo, de no ser así y no haber aviso por parte del" . " cliente se empezará a cobrar 1 euro al día por gastos de almacenaje.\nLos accesorios y" . " productos externos al equipo no especificados en este documento no podrán ser reclamados en" . " caso de disconformidad con el técnico."), FALSE);
     if (isset($_POST['sat_setup'])) {
         $this->sat_setup['sat_col_modelo'] = isset($_POST['col_modelo']) ? 1 : 0;
         $this->sat_setup['sat_col_posicion'] = isset($_POST['col_posicion']) ? 1 : 0;
         $this->sat_setup['sat_col_accesorios'] = isset($_POST['col_accesorios']) ? 1 : 0;
         $this->sat_setup['sat_col_prioridad'] = isset($_POST['col_prioridad']) ? 1 : 0;
         $this->sat_setup['sat_col_fecha'] = isset($_POST['col_fecha']) ? 1 : 0;
         $this->sat_setup['sat_col_fechaini'] = isset($_POST['col_fechaini']) ? 1 : 0;
         $this->sat_setup['sat_col_fechafin'] = isset($_POST['col_fechafin']) ? 1 : 0;
         $this->sat_setup['sat_condiciones'] = $fsvar->no_html($_POST['condiciones']);
         if ($fsvar->array_save($this->sat_setup)) {
             $this->new_message('Datos guardados correctamente.');
         } else {
             $this->new_error_msg('Error al guardar los datos.');
         }
     } else {
         if (isset($_GET['delete_estado'])) {
             $estado = $this->estado->get($_GET['delete_estado']);
             if ($estado) {
                 if ($estado->delete()) {
                     $this->new_message('Estado eliminado correctamente.');
                 } else {
                     $this->new_error_msg('Error al eliminar el estado.');
                 }
             } else {
                 $this->new_error_msg('Estado no encontrado.');
             }
         } else {
             if (isset($_POST['id_estado'])) {
                 $estado = $this->estado->get($_POST['id_estado']);
                 if (!$estado) {
                     $estado = new estado_sat();
                     $estado->id = intval($_POST['id_estado']);
                 }
                 $estado->descripcion = $_POST['descripcion'];
                 $estado->color = $_POST['color'];
                 $estado->activo = isset($_POST['activo']);
                 if ($estado->save()) {
                     $this->new_message('Estado guardado correctamente.');
                 } else {
                     $this->new_error_msg('Error al guardar el estado.');
                 }
             }
         }
     }
 }
Exemplo n.º 17
0
 private function nuevo_presupuesto_cliente()
 {
     $continuar = TRUE;
     $cliente = $this->cliente->get($_POST['cliente']);
     if (!$cliente) {
         $this->new_error_msg('Cliente no encontrado.');
         $continuar = FALSE;
     }
     $almacen = $this->almacen->get($_POST['almacen']);
     if ($almacen) {
         $this->save_codalmacen($_POST['almacen']);
     } else {
         $this->new_error_msg('Almacén no encontrado.');
         $continuar = FALSE;
     }
     $eje0 = new ejercicio();
     $ejercicio = $eje0->get_by_fecha($_POST['fecha'], FALSE);
     if (!$ejercicio) {
         $this->new_error_msg('Ejercicio no encontrado.');
         $continuar = FALSE;
     }
     $serie = $this->serie->get($_POST['serie']);
     if (!$serie) {
         $this->new_error_msg('Serie no encontrada.');
         $continuar = FALSE;
     }
     $forma_pago = $this->forma_pago->get($_POST['forma_pago']);
     if ($forma_pago) {
         $this->save_codpago($_POST['forma_pago']);
     } else {
         $this->new_error_msg('Forma de pago no encontrada.');
         $continuar = FALSE;
     }
     $divisa = $this->divisa->get($_POST['divisa']);
     if (!$divisa) {
         $this->new_error_msg('Divisa no encontrada.');
         $continuar = FALSE;
     }
     $presupuesto = new presupuesto_cliente();
     if ($this->duplicated_petition($_POST['petition_id'])) {
         $this->new_error_msg('Petición duplicada. Has hecho doble clic sobre el botón guardar
            y se han enviado dos peticiones. Mira en <a href="' . $presupuesto->url() . '">Presupuestos</a>
            para ver si el presupuesto se ha guardado correctamente.');
         $continuar = FALSE;
     }
     if ($continuar) {
         $presupuesto->fecha = $_POST['fecha'];
         $presupuesto->codalmacen = $almacen->codalmacen;
         $presupuesto->codejercicio = $ejercicio->codejercicio;
         $presupuesto->codserie = $serie->codserie;
         $presupuesto->codpago = $forma_pago->codpago;
         $presupuesto->coddivisa = $divisa->coddivisa;
         $presupuesto->tasaconv = $divisa->tasaconv;
         /// establecemos la fecha de finoferta
         $presupuesto->finoferta = date("Y-m-d", strtotime($_POST['fecha'] . " +1 month"));
         $fsvar = new fs_var();
         $dias = $fsvar->simple_get('presu_validez');
         if ($dias) {
             $presupuesto->finoferta = date("Y-m-d", strtotime($_POST['fecha'] . " +" . intval($dias) . " days"));
         }
         if ($_POST['tasaconv'] != '') {
             $presupuesto->tasaconv = floatval($_POST['tasaconv']);
         }
         $presupuesto->codagente = $this->agente->codagente;
         $presupuesto->observaciones = $_POST['observaciones'];
         $presupuesto->numero2 = $_POST['numero2'];
         $presupuesto->porcomision = $this->agente->porcomision;
         $presupuesto->codcliente = $cliente->codcliente;
         $presupuesto->cifnif = $_POST['cifnif'];
         $presupuesto->nombrecliente = $_POST['nombrecliente'];
         $presupuesto->ciudad = $_POST['ciudad'];
         $presupuesto->codpais = $_POST['codpais'];
         $presupuesto->codpostal = $_POST['codpostal'];
         $presupuesto->direccion = $_POST['direccion'];
         $presupuesto->provincia = $_POST['provincia'];
         if ($presupuesto->save()) {
             $art0 = new articulo();
             $n = floatval($_POST['numlineas']);
             for ($i = 0; $i <= $n; $i++) {
                 if (isset($_POST['referencia_' . $i])) {
                     $linea = new linea_presupuesto_cliente();
                     $linea->idpresupuesto = $presupuesto->idpresupuesto;
                     $linea->descripcion = $_POST['desc_' . $i];
                     if (!$serie->siniva and $cliente->regimeniva != 'Exento') {
                         $imp0 = $this->impuesto->get_by_iva($_POST['iva_' . $i]);
                         if ($imp0) {
                             $linea->codimpuesto = $imp0->codimpuesto;
                             $linea->iva = floatval($_POST['iva_' . $i]);
                             $linea->recargo = floatval($_POST['recargo_' . $i]);
                         } else {
                             $linea->iva = floatval($_POST['iva_' . $i]);
                             $linea->recargo = floatval($_POST['recargo_' . $i]);
                         }
                     }
                     $linea->irpf = floatval($_POST['irpf_' . $i]);
                     $linea->pvpunitario = floatval($_POST['pvp_' . $i]);
                     $linea->cantidad = floatval($_POST['cantidad_' . $i]);
                     $linea->dtopor = floatval($_POST['dto_' . $i]);
                     $linea->pvpsindto = $linea->pvpunitario * $linea->cantidad;
                     $linea->pvptotal = floatval($_POST['neto_' . $i]);
                     $articulo = $art0->get($_POST['referencia_' . $i]);
                     if ($articulo) {
                         $linea->referencia = $articulo->referencia;
                     }
                     if ($linea->save()) {
                         $presupuesto->neto += $linea->pvptotal;
                         $presupuesto->totaliva += $linea->pvptotal * $linea->iva / 100;
                         $presupuesto->totalirpf += $linea->pvptotal * $linea->irpf / 100;
                         $presupuesto->totalrecargo += $linea->pvptotal * $linea->recargo / 100;
                         if ($linea->irpf > $presupuesto->irpf) {
                             $presupuesto->irpf = $linea->irpf;
                         }
                     } else {
                         $this->new_error_msg("¡Imposible guardar la linea con referencia: " . $linea->referencia);
                         $continuar = FALSE;
                     }
                 }
             }
             if ($continuar) {
                 /// redondeamos
                 $presupuesto->neto = round($presupuesto->neto, FS_NF0);
                 $presupuesto->totaliva = round($presupuesto->totaliva, FS_NF0);
                 $presupuesto->totalirpf = round($presupuesto->totalirpf, FS_NF0);
                 $presupuesto->totalrecargo = round($presupuesto->totalrecargo, FS_NF0);
                 $presupuesto->total = $presupuesto->neto + $presupuesto->totaliva - $presupuesto->totalirpf + $presupuesto->totalrecargo;
                 if (abs(floatval($_POST['atotal']) - $presupuesto->total) >= 0.02) {
                     $this->new_error_msg("El total difiere entre el controlador y la vista (" . $presupuesto->total . " frente a " . $_POST['atotal'] . "). Debes informar del error.");
                     $presupuesto->delete();
                 } else {
                     if ($presupuesto->save()) {
                         $this->new_message("<a href='" . $presupuesto->url() . "'>" . ucfirst(FS_PRESUPUESTO) . "</a> guardado correctamente.");
                         $this->new_change(ucfirst(FS_PRESUPUESTO) . ' a Cliente ' . $presupuesto->codigo, $presupuesto->url(), TRUE);
                         if ($_POST['redir'] == 'TRUE') {
                             header('Location: ' . $presupuesto->url());
                         }
                     } else {
                         $this->new_error_msg("¡Imposible actualizar el <a href='" . $presupuesto->url() . "'>" . FS_PRESUPUESTO . "</a>!");
                     }
                 }
             } else {
                 if ($presupuesto->delete()) {
                     $this->new_message(ucfirst(FS_PRESUPUESTO) . " eliminado correctamente.");
                 } else {
                     $this->new_error_msg("¡Imposible eliminar el <a href='" . $presupuesto->url() . "'>" . FS_PRESUPUESTO . "</a>!");
                 }
             }
         } else {
             $this->new_error_msg("¡Imposible guardar el " . FS_PRESUPUESTO . "!");
         }
     }
 }
Exemplo n.º 18
0
 private function new_search()
 {
     /// desactivamos la plantilla HTML
     $this->template = FALSE;
     $fsvar = new fs_var();
     $multi_almacen = $fsvar->simple_get('multi_almacen');
     $stock = new stock();
     $this->results = $this->search_from_proveedor();
     /// completamos los datos de la búsqueda
     foreach ($this->results as $i => $value) {
         $this->results[$i]->query = $this->query;
         $this->results[$i]->coste = $value->preciocoste();
         $this->results[$i]->dtopor = 0;
         $this->results[$i]->cantidad = 1;
         $this->results[$i]->coddivisa = $this->empresa->coddivisa;
         /// si tenemos un codproveedor, ahí que buscar el coste para este proveedor
         if (isset($_REQUEST['codproveedor'])) {
             $ap = $this->articulo_prov->get_by($value->referencia, $_REQUEST['codproveedor']);
             if ($ap) {
                 $this->results[$i]->coste = $ap->precio;
                 $this->results[$i]->dtopor = $ap->dto;
             }
         }
         /// añadimos el stock del almacén y el general
         $this->results[$i]->stockalm = $this->results[$i]->stockfis;
         if ($multi_almacen and isset($_REQUEST['codalmacen'])) {
             $this->results[$i]->stockalm = $stock->total_from_articulo($this->results[$i]->referencia, $_REQUEST['codalmacen']);
         }
         /// convertimos la divisa
         if (isset($_REQUEST['coddivisa'])) {
             if ($_REQUEST['coddivisa'] != $this->empresa->coddivisa) {
                 $this->results[$i]->coddivisa = $_REQUEST['coddivisa'];
                 $this->results[$i]->coste = $this->divisa_convert($value->coste, $this->empresa->coddivisa, $_REQUEST['coddivisa']);
                 $this->results[$i]->pvp = $this->divisa_convert($value->pvp, $this->empresa->coddivisa, $_REQUEST['coddivisa']);
             }
         }
     }
     /// ejecutamos las funciones de las extensiones
     foreach ($this->extensions as $ext) {
         if ($ext->type == 'function' and $ext->params == 'new_search') {
             $name = $ext->text;
             $name($this->db, $this->results);
         }
     }
     header('Content-Type: application/json');
     echo json_encode($this->results);
 }
Exemplo n.º 19
0
 protected function private_core()
 {
     $this->check_menu();
     $this->almacen = new almacen();
     $this->bad_password = FALSE;
     $this->divisa = new divisa();
     $this->ejercicio = new ejercicio();
     $this->forma_pago = new forma_pago();
     $this->pais = new pais();
     $this->serie = new serie();
     /// ¿Hay errores? Usa informes > Errores
     if ($this->get_errors()) {
         $this->new_message('Puedes solucionar la mayoría de errores en la base de datos ejecutando el ' . '<a href="index.php?page=informe_errores" target="_blank">informe de errores</a> ' . 'sobre las tablas.');
     }
     if ($this->user->password == sha1('admin')) {
         $this->bad_password = TRUE;
     }
     $fsvar = new fs_var();
     $this->step = $fsvar->simple_get('install_step');
     if ($this->step < 2 or isset($_GET['restart'])) {
         $this->step = 2;
     }
     if (FS_DEMO) {
         $this->new_advice('En el modo demo no se pueden hacer cambios en esta página.');
         $this->new_advice('Si te gusta FacturaScripts y quieres saber más, consulta la ' . '<a href="https://www.facturascripts.com/comm3/index.php?page=community_questions">sección preguntas</a>.');
     } else {
         if (isset($_POST['nombrecorto'])) {
             /// guardamos los datos de la empresa
             $this->empresa->nombre = $_POST['nombre'];
             $this->empresa->nombrecorto = $_POST['nombrecorto'];
             $this->empresa->cifnif = $_POST['cifnif'];
             $this->empresa->administrador = $_POST['administrador'];
             $this->empresa->codpais = $_POST['codpais'];
             $this->empresa->provincia = $_POST['provincia'];
             $this->empresa->ciudad = $_POST['ciudad'];
             $this->empresa->direccion = $_POST['direccion'];
             $this->empresa->codpostal = $_POST['codpostal'];
             $this->empresa->telefono = $_POST['telefono'];
             $this->empresa->fax = $_POST['fax'];
             $this->empresa->web = $_POST['web'];
             $continuar = TRUE;
             if (isset($_POST['npassword'])) {
                 if ($_POST['npassword'] != '') {
                     if ($_POST['npassword'] == $_POST['npassword2']) {
                         $this->user->set_password($_POST['npassword']);
                         $this->user->save();
                     } else {
                         $this->new_error_msg('Las contraseñas no coinciden.');
                         $continuar = FALSE;
                     }
                 }
             }
             if (!$continuar) {
                 /// no hacemos nada
             } else {
                 if ($this->empresa->save()) {
                     $this->new_message('Datos guardados correctamente.');
                     /// avanzamos el asistente
                     $this->step = 3;
                     if ($this->empresa->codpais == 'ESP' or $this->empresa->codpais == 'ES') {
                         /// si es España nos podemos ahorrar un paso
                         $this->empresa->coddivisa = 'EUR';
                         $this->empresa->save();
                         $this->step = 4;
                     }
                     $fsvar->simple_save('install_step', $this->step);
                 } else {
                     $this->new_error_msg('Error al guardar los datos.');
                 }
             }
         } else {
             if (isset($_POST['coddivisa'])) {
                 $this->empresa->coddivisa = $_POST['coddivisa'];
                 if ($this->empresa->save()) {
                     foreach ($GLOBALS['config2'] as $i => $value) {
                         if (isset($_POST[$i])) {
                             $GLOBALS['config2'][$i] = $_POST[$i];
                         }
                     }
                     $file = fopen('tmp/' . FS_TMP_NAME . 'config2.ini', 'w');
                     if ($file) {
                         foreach ($GLOBALS['config2'] as $i => $value) {
                             if (is_numeric($value)) {
                                 fwrite($file, $i . " = " . $value . ";\n");
                             } else {
                                 fwrite($file, $i . " = '" . $value . "';\n");
                             }
                         }
                         fclose($file);
                     }
                     $this->new_message('Datos guardados correctamente.');
                     /// avanzamos el asistente
                     $this->step = 4;
                     $fsvar->simple_save('install_step', $this->step);
                 } else {
                     $this->new_error_msg('Error al guardar los datos.');
                 }
             } else {
                 if (isset($_POST['codejercicio'])) {
                     $this->empresa->contintegrada = isset($_POST['contintegrada']);
                     $this->empresa->codejercicio = $_POST['codejercicio'];
                     $this->empresa->codserie = $_POST['codserie'];
                     $this->empresa->codpago = $_POST['codpago'];
                     $this->empresa->codalmacen = $_POST['codalmacen'];
                     $this->empresa->recequivalencia = isset($_POST['recequivalencia']);
                     if ($this->empresa->save()) {
                         /// guardamos las opciones por defecto de almacén y forma de pago
                         $this->save_codalmacen($_POST['codalmacen']);
                         $this->save_codpago($_POST['codpago']);
                         foreach ($GLOBALS['config2'] as $i => $value) {
                             if (isset($_POST[$i])) {
                                 $GLOBALS['config2'][$i] = $_POST[$i];
                             }
                         }
                         $file = fopen('tmp/' . FS_TMP_NAME . 'config2.ini', 'w');
                         if ($file) {
                             foreach ($GLOBALS['config2'] as $i => $value) {
                                 if (is_numeric($value)) {
                                     fwrite($file, $i . " = " . $value . ";\n");
                                 } else {
                                     fwrite($file, $i . " = '" . $value . "';\n");
                                 }
                             }
                             fclose($file);
                         }
                         $this->new_message('Datos guardados correctamente.');
                         /// avanzamos el asistente
                         $this->step = 5;
                         $fsvar->simple_save('install_step', $this->step);
                     } else {
                         $this->new_error_msg('Error al guardar los datos.');
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 20
0
 protected function process()
 {
     $this->almacen = new almacen();
     $this->cuenta_banco = new cuenta_banco();
     $this->divisa = new divisa();
     $this->ejercicio = new ejercicio();
     $this->forma_pago = new forma_pago();
     $this->serie = new serie();
     $this->pais = new pais();
     /// obtenemos los datos de configuración del email
     $this->mail = array('mail_host' => 'smtp.gmail.com', 'mail_port' => '465', 'mail_enc' => 'ssl', 'mail_user' => '');
     $fsvar = new fs_var();
     $this->mail = $fsvar->array_get($this->mail, FALSE);
     if (isset($_POST['nombre'])) {
         /*
          * Guardamos los elementos por defecto
          */
         $this->save_codalmacen($_POST['codalmacen']);
         $this->save_coddivisa($_POST['coddivisa']);
         $this->save_codejercicio($_POST['codejercicio']);
         $this->save_codpago($_POST['codpago']);
         $this->save_codserie($_POST['codserie']);
         $this->save_codpais($_POST['codpais']);
         /// guardamos los datos de la empresa
         $this->empresa->nombre = $_POST['nombre'];
         $this->empresa->nombrecorto = $_POST['nombrecorto'];
         $this->empresa->cifnif = $_POST['cifnif'];
         $this->empresa->administrador = $_POST['administrador'];
         $this->empresa->codpais = $_POST['codpais'];
         $this->empresa->provincia = $_POST['provincia'];
         $this->empresa->ciudad = $_POST['ciudad'];
         $this->empresa->direccion = $_POST['direccion'];
         $this->empresa->codpostal = $_POST['codpostal'];
         $this->empresa->telefono = $_POST['telefono'];
         $this->empresa->fax = $_POST['fax'];
         $this->empresa->web = $_POST['web'];
         $this->empresa->email = $_POST['email'];
         $this->empresa->email_firma = $_POST['email_firma'];
         $this->empresa->email_password = $_POST['email_password'];
         $this->empresa->lema = $_POST['lema'];
         $this->empresa->horario = $_POST['horario'];
         $this->empresa->contintegrada = isset($_POST['contintegrada']);
         $this->empresa->codejercicio = $_POST['codejercicio'];
         $this->empresa->codserie = $_POST['codserie'];
         $this->empresa->coddivisa = $_POST['coddivisa'];
         $this->empresa->codpago = $_POST['codpago'];
         $this->empresa->codalmacen = $_POST['codalmacen'];
         $this->empresa->pie_factura = $_POST['pie_factura'];
         $this->empresa->recequivalencia = isset($_POST['recequivalencia']);
         if ($this->empresa->save()) {
             $this->new_message('Datos guardados correctamente.');
             $step = $fsvar->simple_get('install_step');
             if ($step == 2) {
                 if (in_array('facturacion_base', $GLOBALS['plugins'])) {
                     $this->new_message('Y por último tienes que <a href="index.php?page=contabilidad_ejercicio&cod=' . $this->empresa->codejercicio . '">importar los datos del ejercicio</a>.');
                 }
                 $fsvar->simple_save('install_step', 3);
             }
         } else {
             $this->new_error_msg('Error al guardar los datos.');
         }
         /// guardamos los datos del email
         if (isset($_POST['mail_host'])) {
             if ($_POST['mail_host'] == '') {
                 $this->mail['mail_host'] = 'smtp.gmail.com';
             } else {
                 $this->mail['mail_host'] = $_POST['mail_host'];
             }
             if ($_POST['mail_port'] == '') {
                 $this->mail['mail_port'] = '465';
             } else {
                 $this->mail['mail_port'] = $_POST['mail_port'];
             }
             $this->mail['mail_enc'] = strtolower($_POST['mail_enc']);
             $this->mail['mail_user'] = $_POST['mail_user'];
             $fsvar->array_save($this->mail);
             $this->mail_test();
         }
     } else {
         if (isset($_POST['logo'])) {
             if (is_uploaded_file($_FILES['fimagen']['tmp_name'])) {
                 copy($_FILES['fimagen']['tmp_name'], "tmp/" . FS_TMP_NAME . "logo.png");
                 $this->new_message('Logotipo guardado correctamente.');
             }
         } else {
             if (isset($_GET['delete_logo'])) {
                 if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png')) {
                     unlink('tmp/' . FS_TMP_NAME . 'logo.png');
                     $this->new_message('Logotipo borrado correctamente.');
                 }
             } else {
                 if (isset($_GET['delete_cuenta'])) {
                     $cuenta = $this->cuenta_banco->get($_GET['delete_cuenta']);
                     if ($cuenta) {
                         if ($cuenta->delete()) {
                             $this->new_message('Cuenta bancaria eliminada correctamente.');
                         } else {
                             $this->new_error_msg('Imposible eliminar la cuenta bancaria.');
                         }
                     } else {
                         $this->new_error_msg('Cuenta bancaria no encontrada.');
                     }
                 } else {
                     if (isset($_POST['iban'])) {
                         if (isset($_POST['codcuenta'])) {
                             $cuentab = $this->cuenta_banco->get($_POST['codcuenta']);
                         } else {
                             $cuentab = new cuenta_banco();
                         }
                         $cuentab->descripcion = $_POST['descripcion'];
                         if ($_POST['ciban'] != '') {
                             $cuentab->iban = $cuentab->calcular_iban($_POST['ciban']);
                         } else {
                             $cuentab->iban = $_POST['iban'];
                         }
                         $cuentab->swift = $_POST['swift'];
                         if ($cuentab->save()) {
                             $this->new_message('Cuenta bancaria guardada correctamente.');
                         } else {
                             $this->new_error_msg('Imposible guardar la cuenta bancaria.');
                         }
                     }
                 }
             }
         }
     }
     $this->logo = file_exists('tmp/' . FS_TMP_NAME . 'logo.png');
 }
Exemplo n.º 21
0
 /**
  * Devuelve TRUE si hay actualizaciones pendientes (sólo si eres admin).
  * @return boolean
  */
 public function check_for_updates()
 {
     if ($this->user->admin) {
         $desactivado = FALSE;
         if (defined('FS_DISABLE_MOD_PLUGINS')) {
             $desactivado = FS_DISABLE_MOD_PLUGINS;
         }
         if ($desactivado) {
             return FALSE;
         } else {
             $fsvar = new fs_var();
             return $fsvar->simple_get('updates');
         }
     } else {
         return FALSE;
     }
 }
Exemplo n.º 22
0
 /**
  * Devuelve un array con los regimenes de iva disponibles.
  * @return type
  */
 public function regimenes_iva()
 {
     if (!isset(self::$regimenes_iva)) {
         /// Si hay usa lista personalizada en fs_vars, la usamos
         $fsvar = new fs_var();
         $data = $fsvar->simple_get('proveedor::regimenes_iva');
         if ($data) {
             self::$regimenes_iva = array();
             foreach (explode(',', $data) as $d) {
                 self::$regimenes_iva[] = trim($d);
             }
         } else {
             /// sino usamos estos
             self::$regimenes_iva = array('General', 'Exento');
         }
         /// además de los que haya en la base de datos
         $data = $this->db->select("SELECT DISTINCT regimeniva FROM proveedores ORDER BY regimeniva ASC;");
         if ($data) {
             foreach ($data as $d) {
                 if (!in_array($d['regimeniva'], self::$regimenes_iva)) {
                     self::$regimenes_iva[] = $d['regimeniva'];
                 }
             }
         }
     }
     return self::$regimenes_iva;
 }
Exemplo n.º 23
0
 protected function private_core()
 {
     $this->check_menu();
     $this->almacen = new almacen();
     $this->divisa = new divisa();
     $this->ejercicio = new ejercicio();
     $this->forma_pago = new forma_pago();
     $this->pais = new pais();
     $this->serie = new serie();
     $fsvar = new fs_var();
     $this->step = $fsvar->simple_get('install_step');
     if ($this->step < 2 or isset($_GET['restart'])) {
         $this->step = 2;
     }
     if (FS_DEMO) {
         $this->new_advice('En el modo demo no se pueden hacer cambios en esta página.');
         $this->new_advice('Si te gusta FacturaScripts y quieres saber más, consulta la ' . '<a href="https://www.facturascripts.com/comm3/index.php?page=community_questions">sección preguntas</a>.');
     } else {
         if (isset($_POST['nombrecorto'])) {
             /// guardamos los datos de la empresa
             $this->empresa->nombre = $_POST['nombre'];
             $this->empresa->nombrecorto = $_POST['nombrecorto'];
             $this->empresa->cifnif = $_POST['cifnif'];
             $this->empresa->administrador = $_POST['administrador'];
             $this->empresa->codpais = $_POST['codpais'];
             $this->empresa->provincia = $_POST['provincia'];
             $this->empresa->ciudad = $_POST['ciudad'];
             $this->empresa->direccion = $_POST['direccion'];
             $this->empresa->codpostal = $_POST['codpostal'];
             $this->empresa->telefono = $_POST['telefono'];
             $this->empresa->fax = $_POST['fax'];
             $this->empresa->web = $_POST['web'];
             if ($this->empresa->save()) {
                 $this->new_message('Datos guardados correctamente.');
                 /// avanzamos el asistente
                 $this->step = 3;
                 if ($this->empresa->codpais == 'ESP' or $this->empresa->codpais == 'ES') {
                     /// si es España nos podemos ahorrar un paso
                     $this->empresa->coddivisa = 'EUR';
                     $this->empresa->save();
                     $this->step = 4;
                 }
                 $fsvar->simple_save('install_step', $this->step);
             } else {
                 $this->new_error_msg('Error al guardar los datos.');
             }
         } else {
             if (isset($_POST['coddivisa'])) {
                 $this->empresa->coddivisa = $_POST['coddivisa'];
                 if ($this->empresa->save()) {
                     foreach ($GLOBALS['config2'] as $i => $value) {
                         if (isset($_POST[$i])) {
                             $GLOBALS['config2'][$i] = $_POST[$i];
                         }
                     }
                     $file = fopen('tmp/' . FS_TMP_NAME . 'config2.ini', 'w');
                     if ($file) {
                         foreach ($GLOBALS['config2'] as $i => $value) {
                             if (is_numeric($value)) {
                                 fwrite($file, $i . " = " . $value . ";\n");
                             } else {
                                 fwrite($file, $i . " = '" . $value . "';\n");
                             }
                         }
                         fclose($file);
                     }
                     $this->new_message('Datos guardados correctamente.');
                     /// avanzamos el asistente
                     $this->step = 4;
                     $fsvar->simple_save('install_step', $this->step);
                 } else {
                     $this->new_error_msg('Error al guardar los datos.');
                 }
             } else {
                 if (isset($_POST['codejercicio'])) {
                     $this->empresa->contintegrada = isset($_POST['contintegrada']);
                     $this->empresa->codejercicio = $_POST['codejercicio'];
                     $this->empresa->codserie = $_POST['codserie'];
                     $this->empresa->codpago = $_POST['codpago'];
                     $this->empresa->codalmacen = $_POST['codalmacen'];
                     $this->empresa->recequivalencia = isset($_POST['recequivalencia']);
                     if ($this->empresa->save()) {
                         foreach ($GLOBALS['config2'] as $i => $value) {
                             if (isset($_POST[$i])) {
                                 $GLOBALS['config2'][$i] = $_POST[$i];
                             }
                         }
                         $file = fopen('tmp/' . FS_TMP_NAME . 'config2.ini', 'w');
                         if ($file) {
                             foreach ($GLOBALS['config2'] as $i => $value) {
                                 if (is_numeric($value)) {
                                     fwrite($file, $i . " = " . $value . ";\n");
                                 } else {
                                     fwrite($file, $i . " = '" . $value . "';\n");
                                 }
                             }
                             fclose($file);
                         }
                         $this->new_message('Datos guardados correctamente.');
                         /// avanzamos el asistente
                         $this->step = 5;
                         $fsvar->simple_save('install_step', $this->step);
                     } else {
                         $this->new_error_msg('Error al guardar los datos.');
                     }
                 }
             }
         }
     }
 }
Exemplo n.º 24
0
 private function configurar_validez()
 {
     $fsvar = new fs_var();
     if (isset($_POST['setup_validez'])) {
         $this->setup_validez = intval($_POST['setup_validez']);
         $fsvar->simple_save('presu_validez', $this->setup_validez);
         $this->new_message('Configuración modificada correctamente.');
     } else {
         $dias = $fsvar->simple_get('presu_validez');
         if ($dias) {
             $this->setup_validez = intval($dias);
         }
     }
 }
 public function generar_pdf($archivomail = FALSE, $archivodownload = FALSE)
 {
     ///// INICIO - Factura Detallada
     /// Creamos el PDF y escribimos sus metadatos
     if ($this->traduccion) {
         ob_end_clean();
         $pdf_doc = new PDF_MC_Table('P', 'mm', 'A4');
         $pdf_doc->abreviatura = utf8_decode($this->traduccion->abreviatura);
         $pdf_doc->etiquetaneto = utf8_decode($this->traduccion->neto);
         $pdf_doc->etiquetatelefono = utf8_decode($this->traduccion->telefono);
         $pdf_doc->etiquetafecha = utf8_decode($this->traduccion->fecha);
         $pdf_doc->etiquetancliente = utf8_decode($this->traduccion->ncliente);
         $pdf_doc->etiquetapagina = utf8_decode($this->traduccion->pagina);
         $pdf_doc->etiquetarecequiv = utf8_decode($this->traduccion->recequiv);
         $pdf_doc->etiquetaimporte = utf8_decode($this->traduccion->importe);
         $pdf_doc->etiquetaformadepago = utf8_decode($this->traduccion->formadepago);
         $pdf_doc->etiquetatotal = utf8_decode($this->traduccion->total);
         define('EEURO', chr(128));
         $lineas = $this->factura->get_lineas();
         if ($this->impresion['print_dto']) {
             $this->impresion['print_dto'] = FALSE;
             /// leemos las líneas para ver si de verdad mostramos los descuentos
             foreach ($lineas as $lin) {
                 if ($lin->dtopor != 0) {
                     $this->impresion['print_dto'] = TRUE;
                     break;
                 }
             }
         }
         $pdf_doc->SetTitle('Factura: ' . $this->factura->codigo . " " . $this->factura->numero2);
         $pdf_doc->SetSubject('Factura del cliente: ' . $this->factura->nombrecliente);
         $pdf_doc->SetAuthor($this->empresa->nombre);
         $pdf_doc->SetCreator('FacturaSctipts V_' . $this->version());
         // Definimos el color de relleno (gris, rojo, verde, azul)
         /// cargamos la configuración
         $fsvar = new fs_var();
         $color = $fsvar->simple_get("f_detallada_color");
         if ($color) {
             $pdf_doc->SetColorRelleno($color);
         } else {
             $pdf_doc->SetColorRelleno('azul');
         }
         // Definimos el color de relleno (gris, rojo, verde, azul)
         /// cargamos la configuración
         $fsvar = new fs_var();
         $color = $fsvar->simple_get("f_detallada_color");
         if ($color) {
             $pdf_doc->SetColorRelleno($color);
         } else {
             $pdf_doc->SetColorRelleno('azul');
         }
         /// Definimos todos los datos de la cabecera de la factura
         /// Datos de la empresa
         $pdf_doc->fde_nombre = $this->empresa->nombre;
         $pdf_doc->fde_FS_CIFNIF = FS_CIFNIF;
         $pdf_doc->fde_cifnif = $this->empresa->cifnif;
         $pdf_doc->fde_direccion = $this->empresa->direccion;
         $pdf_doc->fde_codpostal = $this->empresa->codpostal;
         $pdf_doc->fde_ciudad = $this->empresa->ciudad;
         $pdf_doc->fde_provincia = $this->empresa->provincia;
         $pdf_doc->fde_telefono = 'Teléfono: ' . $this->empresa->telefono;
         $pdf_doc->fde_fax = 'Fax: ' . $this->empresa->fax;
         $pdf_doc->fde_email = $this->empresa->email;
         $pdf_doc->fde_web = $this->empresa->web;
         $pdf_doc->fde_piefactura = $this->empresa->pie_factura;
         /// Insertamos el Logo y Marca de Agua
         if (file_exists('tmp/' . FS_TMP_NAME . 'logo.png') or file_exists('tmp/' . FS_TMP_NAME . 'logo.jpg')) {
             $pdf_doc->fdf_verlogotipo = '1';
             // 1/0 --> Mostrar Logotipo
             $pdf_doc->fdf_Xlogotipo = '15';
             // Valor X para Logotipo
             $pdf_doc->fdf_Ylogotipo = '35';
             // Valor Y para Logotipo
             $pdf_doc->fdf_vermarcaagua = '1';
             // 1/0 --> Mostrar Marca de Agua
             $pdf_doc->fdf_Xmarcaagua = '25';
             // Valor X para Marca de Agua
             $pdf_doc->fdf_Ymarcaagua = '110';
             // Valor Y para Marca de Agua
         } else {
             $pdf_doc->fdf_verlogotipo = '0';
             $pdf_doc->fdf_Xlogotipo = '0';
             $pdf_doc->fdf_Ylogotipo = '0';
             $pdf_doc->fdf_vermarcaagua = '0';
             $pdf_doc->fdf_Xmarcaagua = '0';
             $pdf_doc->fdf_Ymarcaagua = '0';
         }
         // Fecha, Codigo Cliente y observaciones de la factura
         $pdf_doc->fdf_fecha = $this->factura->fecha;
         $pdf_doc->fdf_codcliente = $this->factura->codcliente;
         $pdf_doc->fdf_observaciones = iconv("UTF-8", "CP1252", $this->fix_html($this->factura->observaciones));
         // Fecha, Codigo Cliente y observaciones de la factura
         $pdf_doc->fdf_fecha = $this->factura->fecha;
         $pdf_doc->fdf_codcliente = $this->factura->codcliente;
         $pdf_doc->fdf_observaciones = iconv("UTF-8", "CP1252", $this->fix_html($this->factura->observaciones));
         // Datos del Cliente
         $pdf_doc->fdf_nombrecliente = $this->fix_html($this->factura->nombrecliente);
         $pdf_doc->fdf_FS_CIFNIF = FS_CIFNIF;
         $pdf_doc->fdf_cifnif = $this->factura->cifnif;
         $pdf_doc->fdf_direccion = $this->fix_html($this->factura->direccion);
         $pdf_doc->fdf_codpostal = $this->factura->codpostal;
         $pdf_doc->fdf_ciudad = $this->factura->ciudad;
         $pdf_doc->fdf_provincia = $this->factura->provincia;
         $pdf_doc->fdc_telefono1 = $this->cliente->telefono1;
         $pdf_doc->fdc_telefono2 = $this->cliente->telefono2;
         $pdf_doc->fdc_fax = $this->cliente->fax;
         $pdf_doc->fdc_email = $this->cliente->email;
         // Forma de Pago de la Factura
         $formapago = $this->_genera_formapago();
         $pdf_doc->fdf_epago = $formapago;
         // Forma de Pago de la Factura
         $pago = new forma_pago();
         $epago = $pago->get($this->factura->codpago);
         if ($epago) {
             $pdf_doc->fdf_epago = $epago->descripcion;
         }
         // Divisa de la Factura
         $divisa = new divisa();
         $edivisa = $divisa->get($this->factura->coddivisa);
         if ($edivisa) {
             $pdf_doc->fdf_divisa = $edivisa->descripcion;
         }
         // Pais de la Factura
         $pais = new pais();
         $epais = $pais->get($this->factura->codpais);
         if ($epais) {
             $pdf_doc->fdf_pais = $epais->nombre;
         }
         // Cabecera Titulos Columnas
         if ($this->impresion['print_dto']) {
             $pdf_doc->Setdatoscab(array(utf8_decode($this->traduccion->albaranabre), utf8_decode($this->traduccion->descripcion), utf8_decode($this->traduccion->cantidadabre), utf8_decode($this->traduccion->precio), utf8_decode($this->traduccion->descuentoabre), FS_IVA, utf8_decode($this->traduccion->importe)));
             $pdf_doc->SetWidths(array(16, 102, 10, 20, 10, 10, 22));
             $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R', 'R'));
             $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
         } else {
             $pdf_doc->Setdatoscab(array(utf8_decode($this->traduccion->albaranabre), utf8_decode($this->traduccion->descripcion), utf8_decode($this->traduccion->cantidadabre), utf8_decode($this->traduccion->precio), FS_IVA, utf8_decode($this->traduccion->importe)));
             $pdf_doc->SetWidths(array(16, 107, 10, 20, 15, 22));
             $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R'));
             $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
         }
         /// Definimos todos los datos del PIE de la factura
         /// Lineas de IVA
         $lineas_iva = $this->factura->get_lineas_iva();
         if (count($lineas_iva) > 3) {
             $pdf_doc->fdf_lineasiva = $lineas_iva;
         } else {
             $filaiva = array();
             $i = 0;
             foreach ($lineas_iva as $li) {
                 $i++;
                 $filaiva[$i][0] = $li->iva ? FS_IVA . $li->iva : '';
                 $filaiva[$i][1] = $li->neto ? $this->ckeckEuro($li->neto) : '';
                 $filaiva[$i][2] = $li->iva ? $li->iva . "%" : '';
                 $filaiva[$i][3] = $li->totaliva ? $this->ckeckEuro($li->totaliva) : '';
                 $filaiva[$i][4] = $li->recargo ? $li->recargo . "%" : '';
                 $filaiva[$i][5] = $li->totalrecargo ? $this->ckeckEuro($li->totalrecargo) : '';
                 $filaiva[$i][6] = '';
                 //// POR CREARRRRRR
                 $filaiva[$i][7] = '';
                 //// POR CREARRRRRR
                 $filaiva[$i][8] = $li->totallinea ? $this->ckeckEuro($li->totallinea) : '';
             }
             if ($filaiva) {
                 $filaiva[1][6] = $this->factura->irpf . ' %';
                 $filaiva[1][7] = $this->ckeckEuro(0 - $this->factura->totalirpf);
             }
             $pdf_doc->fdf_lineasiva = $filaiva;
         }
         // Total factura numerico
         $pdf_doc->fdf_numtotal = $this->ckeckEuro($this->factura->total);
         // Total factura numeros a texto
         $pdf_doc->fdf_textotal = $this->factura->total;
         /// Agregamos la pagina inicial de la factura
         $pdf_doc->AddPage();
         // Lineas de la Factura
         //$lineas = $this->factura->get_lineas();
         if ($lineas) {
             $neto = 0;
             for ($i = 0; $i < count($lineas); $i++) {
                 $neto += $lineas[$i]->pvptotal;
                 $pdf_doc->neto = $this->ckeckEuro($neto);
                 $articulo = new articulo();
                 $art = $articulo->get($lineas[$i]->referencia);
                 if ($art) {
                     $observa = "\n" . utf8_decode($this->fix_html($art->observaciones));
                 } else {
                     // $observa = null; // No mostrar mensaje de error
                     $observa = "\n";
                 }
                 if ($this->impresion['print_dto']) {
                     $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->dtopor, 0) . " %"), '5' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '6' => $this->ckeckEuro($lineas[$i]->total_iva()));
                 } else {
                     $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '5' => $this->ckeckEuro($lineas[$i]->total_iva()));
                 }
                 $pdf_doc->Row($lafila, '1');
                 // Row(array, Descripcion del Articulo -- ultimo valor a imprimir)
             }
             $pdf_doc->piepagina = true;
         }
         // Damos salida al archivo PDF
         if ($archivomail) {
             if (!file_exists('tmp/' . FS_TMP_NAME . 'enviar')) {
                 mkdir('tmp/' . FS_TMP_NAME . 'enviar');
             }
             $pdf_doc->Output('tmp/' . FS_TMP_NAME . 'enviar/' . $archivomail, 'F');
         } elseif ($archivodownload) {
             $pdf_doc->Output($archivodownload, 'I');
         } else {
             $pdf_doc->Output();
         }
     }
     // Cabecera Titulos Columnas
     if ($this->impresion['print_dto']) {
         $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', 'DTO', FS_IVA, 'IMPORTE'));
         $pdf_doc->SetWidths(array(16, 102, 10, 20, 10, 10, 22));
         $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R', 'R'));
         $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
     } else {
         $pdf_doc->Setdatoscab(array('ALB', 'DESCRIPCION', 'CANT', 'PRECIO', FS_IVA, 'IMPORTE'));
         $pdf_doc->SetWidths(array(16, 107, 10, 20, 15, 22));
         $pdf_doc->SetAligns(array('C', 'L', 'R', 'R', 'R', 'R'));
         $pdf_doc->SetColors(array('6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109', '6|47|109'));
     }
     /// Definimos todos los datos del PIE de la factura
     /// Lineas de IVA
     $lineas_iva = $this->factura->get_lineas_iva();
     if (count($lineas_iva) > 3) {
         $pdf_doc->fdf_lineasiva = $lineas_iva;
     } else {
         $filaiva = array();
         $i = 0;
         foreach ($lineas_iva as $li) {
             $i++;
             $filaiva[$i][0] = $li->iva ? FS_IVA . $li->iva : '';
             $filaiva[$i][1] = $li->neto ? $this->ckeckEuro($li->neto) : '';
             $filaiva[$i][2] = $li->iva ? $li->iva . "%" : '';
             $filaiva[$i][3] = $li->totaliva ? $this->ckeckEuro($li->totaliva) : '';
             $filaiva[$i][4] = $li->recargo ? $li->recargo . "%" : '';
             $filaiva[$i][5] = $li->totalrecargo ? $this->ckeckEuro($li->totalrecargo) : '';
             $filaiva[$i][6] = '';
             //// POR CREARRRRRR
             $filaiva[$i][7] = '';
             //// POR CREARRRRRR
             $filaiva[$i][8] = $li->totallinea ? $this->ckeckEuro($li->totallinea) : '';
         }
         if ($filaiva) {
             $filaiva[1][6] = $this->factura->irpf . ' %';
             $filaiva[1][7] = $this->ckeckEuro(0 - $this->factura->totalirpf);
         }
         $pdf_doc->fdf_lineasiva = $filaiva;
     }
     // Total factura numerico
     $pdf_doc->fdf_numtotal = $this->ckeckEuro($this->factura->total);
     // Total factura numeros a texto
     $pdf_doc->fdf_textotal = $this->factura->total;
     /// Agregamos la pagina inicial de la factura
     $pdf_doc->AddPage();
     // Lineas de la Factura
     //$lineas = $this->factura->get_lineas();
     if ($lineas) {
         $neto = 0;
         for ($i = 0; $i < count($lineas); $i++) {
             $neto += $lineas[$i]->pvptotal;
             $pdf_doc->neto = $this->ckeckEuro($neto);
             $articulo = new articulo();
             $art = $articulo->get($lineas[$i]->referencia);
             if ($art) {
                 $observa = "\n" . utf8_decode($this->fix_html($art->observaciones));
             } else {
                 // $observa = null; // No mostrar mensaje de error
                 $observa = "\n";
             }
             if ($this->impresion['print_dto']) {
                 $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($lineas[$i]->descripcion)) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->dtopor, 0) . " %"), '5' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '6' => $this->ckeckEuro($lineas[$i]->total_iva()));
             } else {
                 $lafila = array('0' => utf8_decode($lineas[$i]->albaran_numero()), '1' => utf8_decode(strtoupper($this->fix_html($lineas[$i]->descripcion))) . $observa, '2' => utf8_decode($lineas[$i]->cantidad), '3' => $this->ckeckEuro($lineas[$i]->pvpunitario), '4' => utf8_decode($this->show_numero($lineas[$i]->iva, 0) . " %"), '5' => $this->ckeckEuro($lineas[$i]->total_iva()));
             }
             $pdf_doc->Row($lafila, '1');
             // Row(array, Descripcion del Articulo -- ultimo valor a imprimir)
         }
         $pdf_doc->piepagina = true;
     }
     // Damos salida al archivo PDF
     if ($archivomail) {
         if (!file_exists('tmp/' . FS_TMP_NAME . 'enviar')) {
             mkdir('tmp/' . FS_TMP_NAME . 'enviar');
         }
         $pdf_doc->Output('tmp/' . FS_TMP_NAME . 'enviar/' . $archivomail, 'F');
     } elseif ($archivodownload) {
         $pdf_doc->Output($archivodownload, 'I');
     } else {
         $pdf_doc->Output();
     }
 }