Esta web utiliza cookies propias y de terceros para su funcionamiento. ¿Aceptas? Leer más
Esta consulta es de hace 2 años. Tenga eso en cuenta.
jmoreno_ae4482
jmoreno_ae4482
Pregunta cerrado

Hola a todos. Estoy aprendiendo programación con...

Hola a todos. Estoy aprendiendo programación con Facturascripts, así que me temo que mi consulta es de un nivel muy básico, como mis conocimientos.

El caso es que después de verme los vídeos de programación, revisar la documentación e intentar replicar el código existente, no consigo hacer funcionar las cosas más básicas, como el listado de registros. Me da vergüenza deciros las horas que le he dedicado sin progresar...

Intento realizar un plugin para almacenar una base del conocimiento en FS (Knowledgebase).
La primera fase sería que mostrara todos los registros de la base de datos en pantalla, para después hacer búsquedas por síntoma.
Después de muchos intentos, el listado básico al entrar en el menú sale en blanco, con las cabeceras de las columnas pero sin contenido.

He seguido los siguientes pasos:
1. Creo una tabla nueva en MySQL, sin relaciones con las demás, llamada kdb. Con los campos "idkdb" y "sintomas"
2. Creo un nuevo plugin con el modelo MVC llamado KDB. Me funciona Ok y me carga la entrada en el menú.

3. Este es mi archivo controller/kdb.php:
<?php
require_once 'plugins/facturacion_base/extras/fbase_controller.php';
class kdb extends fs_controller{
public $resultados;
public function __construct() {
parent::__construct(__CLASS__, 'Entradas', 'KDB');
}
protected function private_core() {
$data = $this->db->select("SELECT * FROM kdb;");
if($data) {
foreach($data as $d) {
$this->resultados[] = new kdb($d);
}
}
}
}

4. Y este view/kdb.html
{include="header"}
<div class="table-responsive">
<table class="table table-hover">
<thead>
<tr>
<th class="text-left">Código</th>
<th class="text-left">Síntoma</th>
</tr>
</thead>
{loop="$fsc->resultados"}
<tr>
<td>{$value->idkdb}</td>
<td>{$value->sintoma}</td>
</tr>
{/loop}
</table>
</div>
{include="footer"}

Gracias desde ya.

España   26-11-2017 13:58:42   27-11-2017 09:42:57   17   [shawe]

shawe
Buenas

Antes de nada, puedes usar las etiquetas code para hacer esto:
aquí tu codigo

Y que lo que pegues de código sea más legible para cualquiera ;) Si escribes desde el PC, en la zona de la derecha te salen las etiquetas que puedes usar.

De lo que hayas invertido tantas horas que te dé vergüenza decirlo, si no quieres leer un libro de POO para que te permita aprender más directamente, es totalmente normal.

Desde el controlador, aunque sea posible hacerlo, mentalízate que no debes escribir consultas SQL, salvo casos muy puntuales, tan concretos que como normal no lo debes hacer nunca.

Por lo que tu mismo explicas, entiendes que funciona con el patrón MVC, pero sin embargo en tu código veo que sólo usas VC (es el fallo típico cuando nunca se ha trabajado así). El concepto de separarlo y relacionarlo, cuando se pasan a usar objetos, parece muy complejo, pero realmente es cambiar la forma de pensar (divide y vencerás) y cuando te defiendas mínimamente, te darás cuenta de que obtienes un código mucho más claro y legible.

Para empezar con algo sencillo, coge un modelo pequeño como el de país, y asegúrate que entiendes como funciona, e intenta hacer lo que pretendes de la misma forma como este de ejemplo.

Para resumirlo y tal vez un poco a lo bestia:
- El modelo es el que lee/guarda/elimina datos en la DB, tu lo estás haciendo en el controlador.
- El controlador es el que gestiona las acciones que quiere hacer el usuario, ver un listado, obtener un listado filtrado, editar un registro, ...
- La vista, muestra el resultado de las acciones y permite ejecutar nuevas acciones.

En tu caso, tu kdb modeliza algún tipo de datos, desconozco lo que porqué no hay información suficiente, pero el código que tu has metido en el private_core, debería estar debidamente fraccionado dentro del modelo, de forma que sean acciones más concretas. En particular, lo que has hecho, sería el equivalente a lo que usamos en la función all(), y en tu private_core debería quedar tan solo algo como esto:


$kbd = new kbd();
$this->resultados = $kbd->all();


Así que para empezar a mejorar tu código y que te familiarices mejor, añade-te un modelo para representar tus datos, usa pais.php como ejemplo y obvía estas partes por ahora:
- Función install, que sólo tenga un return ''
- Funciones is_default, get_by_iso, test y clean_cache, por ahora puedes prescindir de ellas, y como mucho, necesitaras test y clean_cache, pero por ahora necesitas lo básico.

Así que en resumen, te queda crear tu modelo y rellenar, __construct, url, get, exists, save, delete y all.

Una vez tengas eso, ya puedes usarlo como te dije desde el controlador.

Para terminar, y que tengas un ejemplo completo, estos son los archivos con los que te recomiendo partir (aunque puede que no sean un ejemplo directo a lo que quieres, te permitirán aprender con mayor facilidad por tener menos datos):
- facturascripts_2015: model/core/pais.php y model/table/paises.xml
- facturacion_base: controller/admin_paises.php
- facturacion_base: view/admin_paises.html

Y a partir de que te quede claro como se usa lo básico, ya podrás ir ampliándolo a tus necesidades y a tu ritmo.
jmoreno_ae4482
Hola Shawe. Con respecto a lo del código, ni me había fijado, apuntado para la próxima.
Estoy acabando de leer mi primer libro de programación, y se ve que he sido más valiente que realista al lanzarme con un plugin. ¿puedes aconsejarme otro libro para brutos como yo?
Me había basado en la parte de los agentes para "inspirarme" y, efectivamente, me había saltado toda la parte del model.
He intentado revisarlo rápidamente, pero aún estoy verde. De todas formas, volveré a la carga siguiendo tus consejos. Gracias.
shawe
La idea es la misma, aunque esa clase tiene más datos.

Sobre los libros, no soy el más indicado para recomendarte alguno, porqué aprendo con tu misma (mala) metodología (así que ya ves que no eres el único bruto ;) ) y a la vez voy consultando la información relacionada con ello.

Cualquier libro que veas que trate estos temas:
https://www.youtube.com/playlist?list=PLpOqH6AE0tNh2Hu2KWoXxTbhHzRgCaHxH

Ten en cuenta que FacturaScripts se está re-escribiendo para 2018 y todo lo que aprendas ahora te servirá de base para el nuevo código, que a la vez, cumple más con lo que se ve en esos vídeos.
-
[[Cerrado por inactividad]]
Cerrado
Título Tipo
jmoreno_ae4482 jmoreno_ae4482
En la versión 3 se han cambiado los campos varchar por text. Esto quiere decir que ahora podemos introducir mucha más información.
15-05-2019 07:12:55
Actualización 3
infoestrella infoestrella
Hola. Necesitamos que en la factura aparezca el número2 del albarán en vez del número "normal". He hecho innumerables pruebas, sin resultado. Estoy atascado en de dónde sale...
cerrado 29-10-2018 18:26:05
Pregunta 1
infoestrella infoestrella
Hola. ¿Es posible configurar el formato de las facturas del plugin para que imprima las cantidades con 3 decimales? He leído en la descripción que se adapta pero no he conseguido hacerlo...
cerrado 08-10-2018 10:22:00
Pregunta 6
infoestrella infoestrella
Hola a todos. He estado investigando y creo que no hay solución, pero por si acaso... ¿Es posible introducir varios descuentos por línea y/o descuentos en el pie en compras? En ventas tiene los...
cerrado 04-10-2018 10:22:52
Pregunta 2
infoestrella NeoRazorX
Hola. He tenido un problema que, aparentemente, está resuelto. Pero no tengo ni idea de lo que ha pasado, así que opto por reportarlo: 1. Me llama el cliente informando que se le han descuadrado...
cerrado 20-06-2018 20:44:37
Error 1
infoestrella dilmix
Plugin: beneficios Hola. He instalado y activado el plugin beneficios en mi instalación de facturascripts. En los documentos y los listados aparece la nueva información, pero el precio de coste...
cerrado 08-05-2018 12:22:02
Error 7
infoestrella infoestrella
Hola a todos. ¿Tenemos algún sistema para sacar inventarios valorados?. Le he instalado el plugin Kardex a un cliente (ya sé que es inestable, pero no tenía más opciones). De todas formas me da...
cerrado 22-01-2018 17:03:24
Pregunta 2
jmoreno_ae4482
Establecer un sistema para evitar duplicados. Como hay veces que hay que dar de alta registros similares, el sistema avisaría y daría 2 opciones: Ir al registro existente o confirmar el alta....
cerrado 16-12-2017 10:57:45
Idea 0
jmoreno_ae4482 jmoreno_ae4482
Hola a todos. He desarrollado mi primer plugin para Facturascripts (es también mi primer desarrollo en PHP) y quería conocer vuestra opinión: 1. Ya sé que FS2018 está a punto de nacer, y no tiene...
cerrado 11-12-2017 17:21:06
Pregunta 6
jmoreno_ae4482 infoestrella
Hola a todos. En el listado de facturas emitidas, en la columna de IVA, a veces aparece el 21 y otras no. La cuota si es correcta. He revisado el listado por el resto de campos para sacar una...
cerrado 29-12-2017 08:42:00
Error 5
jmoreno_ae4482 jmoreno_ae4482
Creo que ha habido un cambio con alguna actualización en la contabilización de remesas: - Antes, cuando pasabas una remesa al estado "Realizada" se marcaban todos los recibos como...
cerrado 10-11-2017 09:45:29
Pregunta 4
jmoreno_ae4482 jmoreno_ae4482
Hola a todos. Tenemos varias instalaciones independientes en el hosting CdMon. En todas ellas nos falla la exportación a xlsx de los informes, parece ser por una configuración en los permisos del...
cerrado 24-10-2017 18:58:53
Pregunta 4
jmoreno_ae4482 zapasoft
Plugin: facturas_pdf Hola. Acabo de adquirir el plugin facturas_pdf. Lo he instalado y activado con la clave en el entorno de producción y el de pruebas. Me ha instalado la versión 2. Intento...
cerrado 22-08-2017 20:39:26
Error 3
jmoreno_ae4482
Plugin: facturas_pdf Hola. Acabo de adquirir el plugin facturas_pdf. Lo he instalado y activado con la clave en el entorno de producción y el de pruebas. Me ha instalado la versión 2. Intento...
cerrado 21-08-2017 14:10:48
Error 0
jmoreno_ae4482 emailforos.es_f74d39
Canon digital: Propongo la idea tal y como la usa Factu-sol. Ya sé que las comparaciones son odiosas, pero soluciona el tema bastante bien: Todos los artículos tienen la posibilidad de configurar...
cerrado 29-08-2017 19:25:13
Idea 2
jmoreno_ae4482 NeoRazorX
Plugin: facturacion_base Ojo, acabo de intentar instalar la aplicación en 2 equipos Windows distintos y me da el error: Fatal error: Class FacturaScripts\model\linea_iva_factura_cliente contains 1...
cerrado 16-07-2017 14:23:19
Error 3
jmoreno_ae4482
Tengo una duda. Este calor afecta al código de Facturascripts?. Escrito desde Badajoz. No hace falta que nadie conteste ;)
cerrado 14-06-2017 22:51:23
Pregunta 0
jmoreno_ae4482 NeoRazorX
Buenos días. Ha desaparecido de la lista el plugin gestion_acceso_clientes, que considero interesantísimo. Entiendo que se ha descontinuado. ¿Alguien prodría pasarme un enlace para descargarlo?...
cerrado 27-05-2017 10:56:20
Pregunta 1
jmoreno_ae4482 jmoreno_ae4482
Plugin: tesorería 3/3 Nuestro cliente pretende realizar el pago de varias facturas a proveedores con un pagaré o transferencia. Contablemente esto se hace con un apunte de banco a varios de...
cerrado 01-06-2017 08:21:40
Pregunta 3
jmoreno_ae4482
Plugin: tesorería 2/3 He adquirido el plugin a nombre de nuestra empresa, pero se lo he puesto a un cliente. ¿Es posible refacturárselo (legalmente)? He leído que el plugin de tesorería se puede...
cerrado 19-05-2017 09:23:00
Pregunta 0
jmoreno_ae4482 nextsoftware
Plugin: tesorería 1/3 Buenos días. Acabo de adquirir el plugin y tengo varias dudas (las pongo en comentarios distintos para facilitar el seguimiento, no sé si es la forma correcta) He instalado...
cerrado 19-05-2017 16:28:22
Pregunta 1
jmoreno_ae4482
Plugin: tesorería 1/3 Buenos días. Acabo de adquirir el plugin y tengo varias dudas (las pongo en comentarios distintos para facilitar el seguimiento, no sé si es la forma correcta) He instalado...
cerrado 19-05-2017 09:19:32
Pregunta 0
jmoreno_ae4482 NeoRazorX
Buenas tardes. He hecho una pequeña modificación en la línea 179 del archivo asiento_factura.php (ahora el asiento se guarda con el número de factura del proveedor). Ahora quisiera...
cerrado 22-05-2017 11:56:12
Pregunta 4
jmoreno_ae4482 NeoRazorX
Plugin: facturacion_base Buenas tardes. He hecho una pequeña modificación en la línea 179 del archivo asiento_factura.php (ahora el asiento se guarda con el número de factura del proveedor)....
cerrado 16-05-2017 17:20:45
Pregunta 3
jmoreno_ae4482 NeoRazorX
Plugin: facturacion_base Buenos días a todos. Esta es mi primera consulta, además para la implantación en un cliente. Al introducir facturas y pagos de compra se generan los asientos...
cerrado 02-05-2017 18:31:40
Pregunta 6