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..."; } } } }
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); }
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(); } }
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."); } } } } }
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']); } } } } }
/** * 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; } }
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); }
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); }
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(); } } }
/** * 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; } }
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.'); } }
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); }
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'; } } }
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.'); } } } } }
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 . "!"); } } }
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); }
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.'); } } } } } }
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'); }
/** * 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; } }
/** * 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; }
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.'); } } } } } }
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(); } }