feat: Implement invoice generation and emailing functionality

- Added invoice generation logic using DomPDF.
- Integrated invoice data retrieval from the API.
- Implemented language determination for invoices based on customer data.
- Added options to email invoices to customers and admin.
- Included HTML output option for direct viewing in the browser.
- Ensured proper redirection and error handling throughout the process.
This commit is contained in:
“VeLiTi”
2026-01-07 14:36:48 +01:00
parent 543f0b3cac
commit 08263c7933
46 changed files with 4982 additions and 151 deletions

View File

@@ -319,6 +319,21 @@ $firmwaretool_step_5 = 'Cuando el firmware esté disponible: La barra de estado
$firmwaretool_step_6 = 'Cuando el firmware esté disponible: Asegúrese de que el SN y el HW se lean del dispositivo y confirme esto seleccionando la casilla "Confirmo que el SN y el HW se han leído del dispositivo"';
$firmwaretool_step_7 = 'Presione el botón <i>"Actualizar firmware"</i> para iniciar el diálogo de actualización de firmware y siga las instrucciones en pantalla';
$firmwaretool_step_8 = '<b>Tenga en cuenta: Este proceso no se puede detener y debe finalizar.</b>';
$softwaretool_h2 = 'Herramienta de actualización de software';
$softwaretool_p = 'Opciones de actualización de software.';
$softwaretool_step = 'Instrucciones';
$softwaretool_step_1 = 'Conecte el dispositivo a la computadora por USB. (Se encuentra debajo de la tapa de la batería)';
$softwaretool_step_2 = 'Presione el botón "<i>conectar</i>"';
$softwaretool_step_3 = 'Aparecerá una ventana emergente pidiendo seleccionar un dispositivo. Seleccione el dispositivo haciendo clic en él y luego presione el botón conectar.';
$softwaretool_step_4 = 'Después de que desaparezca la ventana emergente, el dispositivo será leído, la barra de estado mostrará el progreso';
$softwaretool_step_5 = 'Las actualizaciones de software disponibles se mostrarán con Nombre, Descripción y Precio';
$softwaretool_step_6 = 'Seleccione una versión de software';
$softwaretool_step_7 = 'Para actualizaciones de pago, siga el proceso de pago';
$softwaretool_step_8 = '<b>Tenga en cuenta: Este proceso no se puede detener y debe finalizar.</b>';
$softwaretool_no_updates = 'No se encontraron actualizaciones de software';
$softwaretool_checking = 'Buscando actualizaciones de software...';
$softwaretool_available = 'Actualizaciones de software disponibles';
$softwaretool_select_upgrade = 'Seleccione una opción de actualización:';
$newuser_subject = 'Usuario de CustomerPortal creado';
$newuser_header = 'Estimado usuario de CustomerPortal';
$newuser_text = 'Su administrador de CustomerPortal ha proporcionado acceso al CustomerPortal. Para completar su cuenta, debe actualizar su contraseña a través del siguiente enlace.';