Ejemplos Básicos

Ejemplos para el desarrollo de módulos o funcionalidades específicas

Unir archivos PDF

El framework incorpora una librería php que permite UNIR archivos PDF.  Solo es necesario utilizar el archivo lib/pdf/mergepdf.php y enviarle por variable GET los archivos a unir.


Enlace:

https://sistema.soemgroup.com.ar/lib/pdf/mergepdf.php?get=all&$files


Tambien puede ser utilizado como fuente de una etiqueta embed (para mostrar el pdf en dentro de la ventana principal del sistema)



Enlazar flexCombo con un flexForm

Para habilitar la opción de agregar un boton al lado de un flexcombo que permita acceder al formulario relacionado al mismo (por ejemplo, en un flexCombo de clientes, que permite acceder al formulario de alta y/o modificación de un cliente) es necesario establecer la variable "urlInterfaz".


En el formulario (php), es necesario agregar la siguiente modificación (al código de la plantilla general)

$fflex = $ _POST['fflex']; if($fflex=="")    $fflex = "grid";

$reloadCallback=" {id: '$id_refresh',url:false, fflex:'$fflex', method:'post',vars:''}, ";

 

Envio de Correos

Utilizando el modelo de módulos "envio de correos" se generan los archivos necesarios para realizar envios de correo con una plantilla básica. 


Una vez generada la carpeta con los achivos básicos, solo es necesario agregar archivos nuevos por cada envio de correo de nuevo que se desee hacer.


Para realizar un envio de correo solo se deben setear las siguientes variables:


  1. Asunto: es el asunto que tendrá el correo
  2. titulo: es lo que se visualizar en la parte superior del correo (como encabezado)
  3. cuerpo: es lo que se visualizar como CUERPO del correo. La idea es que este texto (string) se arme de acuerdo a lo que se quiere enviar, con información recuperada de la base de datos. Por ejemplo: información de una venta, información de una compra, información del recibo de mercaderías, etc.
  4. firma: aquí se hace un file_get_contents del archivo html que contiene la firma

Notese que abajo de estas variables include ("bodymail.php"); Este archivo contiene el diseño (planitilla) del correo y utilizar las variables definidas mas arriba. Esta plantilla puede ser editada para cambiar colores, estructura, etc.



Luego, se debe completar los posibles contactos (cuentas de correo) a los que se le puede enviar el correo electrónico. Por ejemplo: listar contactos de un cliente o proveedor. Mas abajo se listan los usuarios del sistema para enviar una copia del mensaje a sus cuentas de correo.


Por ultimo, se deberá definir la cuenta que realiza el envio y el nombre del remitente. Tener en cuenta que esta cuenta deberá estar configurada en el modulo "Cuentas de Correo" del sistema en cuestión (para versiones > 3.4) o configurada en el config.php (para versiones <= 3.3)


Si se desea enviar un archivo adjunto en el mensaje, solo se debe cambiar la variable sysname_adjunto por el nombre de la variable que contenga la dirección relativa del archivo a enviar (por lo general, en media/uploads/...)

Generar archivo PDF

Para generar archivos PDF se puede utilizar alguna de las siguientes librerias:

  • FPDF: http://www.fpdf.org/
    Se debe incluir la librería de la siguiente forma: include_once "../../../lib/pdf/fpdf.php";

  • TCPDF: https://tcpdf.org/
    Se debe incluir la librería de la siguiente forma: include_once "../../../lib/TCPDF/tcpdf.php";



Exportar Excel con formato

Para exportar archivo Excel con formato se debe utilizar la libreria PHPExcel

  • PHPExcel: https://github.com/PHPOffice/PHPExcel
    Se debe incluir la librería de la siguiente forma:
    require_once "../../../lib/PHPExcel/PHPExcel.php";
    require_once "../../../lib/PHPExcel/PHPExcel/IOFactory.php";

Barcode

define('IN_CB',true);
include_once "../../../lib/barcode/index.php";
include_once "../../../lib/barcode/FColor.php";
include_once "../../../lib/barcode/BarCode.php";
include_once "../../../lib/barcode/FDrawing.php";
// barcode technology
include_once "../../../lib/barcode/code128.barcode.php";
$color_black = new FColor(0,0,0);
$color_white = new FColor(255,255,255);


$code_generated = new code128(20,$color_black,$color_white,1,$codigo_barra_numero,2);
$drawing = new FDrawing(1024,1024,'../../../media/barcodes/barcode_'.$codigo_barra_numero.'.png',$color_white);

Bloquear un módulo según una variable global

Incluir el archivo php en cada archivo php inicial de un modulo.

En el archivo exampleBockMod.php, se deberá ejecutar el control (de acuerdo a las necesidades)



<?php
	

	
// file exampleBockMod.php
	

	
$idMod=$_POST["idMod"]; // ID DEL MODULO
	
$sessionIdMenu=$_SESSION['sessionIdMenu']; // ID del cliente/organismo/efector generado en MENU.PHP
	

	
// consulta a la BD (tabla propia a generar en cada sistema segun necesidades)
	
$qr="select * from table_config_mod
	
where sessionIdMenu=$sessionIdMenu and
	
rela_flxcore01=$idMod";
	
$result = flex_query($qr,$link_msq);
	
if(!$row = flex_fetch_assoc($result)) // si el modulo NO esta habilitado
	
{
	
echo "<div class='notification error'>
	
<span class='strong'>Error:</span> El módulo no se encuentra habilitado para el cliente/organismo/efector
	
</div>";
	
exit;
	
}
	

	

	
?>