Bienvenido a los foros %s

Foro comunidad hispana Dolibarr

Identificarse Registrarse

Como automatizar la creación de una linea fija en el pedido que informe del numero de pedido y la fecha de creación

Cuestiones sobre cómo utilizar Dolibarr, ayudas sobre las funcionalidades o cualquier cuestión que no está relacionada con un error.
Apolo
Novato
Mensajes: 30
Registrado: Lun, 29/05/2017, 10:49

Como automatizar la creación de una linea fija en el pedido que informe del numero de pedido y la fecha de creación

Mensaje por Apolo »

Hola,

Pues eso, tal y como pongo en el asunto, busco la forma de como automatizar la creación de una primera linea fija en el pedido que informe del numero de pedido y la fecha de creación de dicho pedido cada vez que se crea un pedido. La razón de porqué quiero automatizarlo es simple, cuando se crea una única factura de pedidos facturables, quiero que queden nombrados en la factura automaticamente los pedidos y la fecha de creación. Actualmente lo hacemos a mano con cada pedido. Una forma sería tocar codigo en el pdf_einstein.modules.com, otra foram seria en la funcion que crea la propia factura de los pedidos pendientes de facturar, pero aún no estoy preparado para eso o lo enfocariais como una tarea programada, que también lo estoy estudiando?

Alguien me arroja alguna luz...?

Gracias de antemano.

Jesús

Avatar de Usuario
ferran
Jedi
Mensajes: 544
Registrado: Vie, 18/01/2013, 16:31
Ubicación: Gandia, Valencia

Mensaje por ferran »

Hola Jesús,

con este módulo puedes facturar masivamente y añade un línea con la referencia del pedido y la fecha del pedido al crear la factura.

https://www.2byte.es/index.php/producto ... massorders

Un saludo.
2byte.es Preferred Partner de Dolibarr.
¿Quieres soporte profesional? Contacta con nosotros

Apolo
Novato
Mensajes: 30
Registrado: Lun, 29/05/2017, 10:49

Mensaje por Apolo »

Gracias por la info,

Logré descubrir que hasta la versión 12, Dolibarr, al facturar en una unica factura varios pedidos dejó de funcionar como hasta entonces agupaba las lineas por pedidos, por alguna razón que desconozco, cambiaron parte del codigo del archivo actions_massactions.inc.php, concretamente una sola linea que desordenaba todas las lineas de cada pedido a proposito por el rango, sospecho que haciendo pruebas se olvidaron de hacer que eso volviera a funcionar hasta la versión, 12.0.4, justo en la versión 13.0.0 cambió o lo cambiaron para adaptar alguna funcion que desconozco provocando ese mal funcionamiento que hasta la versión anterior habia funcionado bie, que yo tenga conocimiento por haberlo usado, desde la versión 4.0 por lo menos .

Volver a hacer que funcione como hasta entonces se resuelve facilmente cambiando esa linea como describo en lo que creo que es un bug por olvido o por el uso que se le quisiera dar, la cuestión es que provocaron que desordenara las lineas de cada pedido, ordenando la primera linea de cada pedido, luego la segunda, despues, la tercera, total, provocando que si optabas por la opción de facturar todos los pedidos en una unica factura, hiciera a la practica, incomprensible entender la factura, un error que se puede entender como que se les pasó y que espero vuelvan a arreglarlo en las nuevas versiones. Tal como les puse en conocimiento:

https://github.com/Dolibarr/dolibarr/issues/17556

Una vez resuelto el funcionamiento que hasta ahora hacia Dolibarr, quiero lograr que añada esa primera linea de cada pedido en la factura resultante automaticamente, ahora lo resuelvo, creandola a mano en cada pedido. Seguiré investigando.

Saludos.

Jesus

Apolo
Novato
Mensajes: 30
Registrado: Lun, 29/05/2017, 10:49

Mensaje por Apolo »

Buenas,


Pues seguimos, he localizado y modificado el archivo card.php de la carpeta raiz commande, ahora añade una primera linea con la palabra Pedido y el número de pedido + 1, pues al crear un pedido , Dolibarr crea primero, un borrador provisional, y no es hasta que se valida, cuando se asigna el numero de albarán/pedido definitivo, sabiendo eso, para que no haya confusión, hay que validar siempre antes de crear otro pedido, pues si dejase este pedido en borrador y crease otro sin validar este primero, no coincidirian los numeros de pedidos asignados y en la primera linea.
Mi nivel de PHP aún deja mucho que desear, pero funcionar, funciona esta pseudoautomatización.

Mi primera traba ha sido que sólo se cree esa primera linea una única vez y no cada vez que entraba o salia del borrador. Lo siguiente, añadir el numero de pedido. Y en lo que aún estoy, en dar el formato de ddmmyy en la creación de la fecha del pedido.

Os añado las lineas de codigo modificado por si alguno puede o sabe mejorarlo, no he logrado aún añadir tambien la fecha del de la creación del pedido correctamente, obtengo lo que creo que es la suma o un numero entero en vez de la fecha de creación, cuando lo hago no logro mantener el formato de la fecha, seguiré investigando como lograrlo.

Inserto el codigo justo antes de // End of object creation, we show it, con esto consigo que sólo se cree una única vez.

Código: Seleccionar todo

			//addline albaran 
			$albaran_num = $langs->trans('Order');
			$numfactura = $object->getNextNumRef($soc);
			$date_xus = date('d/m/y');
			$result = $object->addline($desc, $pu_ht, $qty, $tva_tx, $localtax1_tx, $localtax2_tx, $idprod, $remise_percent, $info_bits, 0, $price_base_type, $pu_ttc, $date_start, $date_end, $type, - 1, 0, GETPOST('fk_parent_line'), $fournprice, $buyingprice, '<b>'.$albaran_xus.' '.$numfactura.' '.$date_xus.'</b>', $array_options, $fk_unit, '', 0, $pu_ht_devise);
			
			// End of object creation, we show it
Soy consciente que no es la forma más elegante de crear una linea, en el pedido, pero funciona. En mi caso, sólo necesitaba esto. Supongo que el módulo que nombra Ferran, tendrá más configuraciones, en mi caso, solo era automatizar la creación de la primera linea.
Con ese codigo se crea la nueva linea automaticamente, en bold, Con la palabra Albarán, el próximo numero de pedido (pues aún es borrador) y la fecha actual, que es lo que buscaba.
Hay que ser consciente, que siempre se debe Validar el pedido, ya que si no se hace y se deja provisional y se crea el siguiente pedido, puede causar confusion, en el numero de pedido. sabiendolo se actua en consecuencia.

Saludos.


Jesus.
Última edición por Apolo el Sab, 10/07/2021, 09:43, editado 1 vez en total.

Avatar de Usuario
aduart
Yoda
Mensajes: 1064
Registrado: Mié, 06/06/2012, 19:37

Mensaje por aduart »

Hola como va,

Me da la idea que para este tipo de tarea, podrías incursionar por el tema de los trigger.
Por cada accion sobre distintos tipos de objeto como factura, pedido, presupuesto, etc, se puede
interceptar esa acción, y alli programar algo.
Lo que si, para que se corra una sola vez, supongo tendras que hacer alguna progunta sobre
el objeto en cuestion, si es el unico, si tiene un cierto numero de orden, no se el detalle.
O, programar el trigger sobre la accion de la creacion, igual eso hay que estudiarlo bien.

Saludos y exitos en el proyecto.
Eduardo.

Apolo
Novato
Mensajes: 30
Registrado: Lun, 29/05/2017, 10:49

Mensaje por Apolo »

aduart escribió: Mar, 08/06/2021, 20:18 Hola como va,

Me da la idea que para este tipo de tarea, podrías incursionar por el tema de los trigger.
Por cada accion sobre distintos tipos de objeto como factura, pedido, presupuesto, etc, se puede
interceptar esa acción, y alli programar algo.
Lo que si, para que se corra una sola vez, supongo tendras que hacer alguna progunta sobre
el objeto en cuestion, si es el unico, si tiene un cierto numero de orden, no se el detalle.
O, programar el trigger sobre la accion de la creacion, igual eso hay que estudiarlo bien.

Saludos y exitos en el proyecto.
Eduardo.
Gracias, solucionado el codigo.investigaré sobre los triggers. :roll:
saludos
Jesus