<?php
@ini_set("display_errors","1");
@ini_set("display_startup_errors","1");

require_once("include/dbcommon.php");
require_once("classes/button.php");

//	CSRF protection
if( !isPostRequest() )
	return;

$params = (array)my_json_decode(postvalue('params'));

if( $params["_base64fields"] ) {
	foreach( $params["_base64fields"] as $f ) {
		$params[$f] = base64_str2bin( $params[$f] );
	}
}

$buttId = $params['buttId'];
$eventId = postvalue('event');
$table = $params['table'];
if( !GetTableURL( $table ) ) {
	exit;
}
$page = $params['page'];
if( !Security::userCanSeePage($table, $page ) ) {
	exit;
}

$pSet = new ProjectSettings( $table, "", $page );
if( $buttId ) {
	$pageButtons = $pSet->customButtons();
	if( array_search( $buttId , $pageButtons ) === false ) {
		exit;
	}
}

$params["masterTable"] = postValue("masterTable");;
$params["masterKeys"] = array();
// RunnerPage::readMasterKeysFromRequest
$i = 1;
while( isset( $_REQUEST["masterkey".$i] ) ) {
	$params["masterKeys"][ $i ] = $_REQUEST["masterkey".$i];
	$i++;
}


if($buttId=='Email')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Email($params);
}
if($buttId=='New_Button')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button($params);
}
if($buttId=='New_Button1')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button1($params);
}
if($buttId=='New_Button2')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button2($params);
}
if($buttId=='New_Button3')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button3($params);
}
if($buttId=='New_Button4')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button4($params);
}
if($buttId=='New_Button5')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button5($params);
}
if($buttId=='PACKINGlIST_SEND_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_PACKINGlIST_SEND_($params);
}
if($buttId=='Send_PackingList_data')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Send_PackingList_data($params);
}
if($buttId=='Send_Pak_View_7')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Send_Pak_View_7($params);
}
if($buttId=='email_PL_7')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_email_PL_7($params);
}
if($buttId=='New_Button6')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button6($params);
}
if($buttId=='Client_1_email')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Client_1_email($params);
}
if($buttId=='Button_8__Send_emal_PDF_view_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Button_8__Send_emal_PDF_view_($params);
}
if($buttId=='Button7_b_invia_attachement_interattivo')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Button7_b_invia_attachement_interattivo($params);
}
if($buttId=='Button7_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Button7_($params);
}
if($buttId=='Button9')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_Button9($params);
}
if($buttId=='_11')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__11($params);
}
if($buttId=='_12')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__12($params);
}
if($buttId=='_14')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__14($params);
}
if($buttId=='_15_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__15_($params);
}
if($buttId=='_15_B14')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__15_B14($params);
}
if($buttId=='_15_B15')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__15_B15($params);
}
if($buttId=='_16_email_to_USER')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__16_email_to_USER($params);
}
if($buttId=='_17_email_modello_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__17_email_modello_($params);
}
if($buttId=='_18_email_invia_con_dialogbox')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__18_email_invia_con_dialogbox($params);
}
if($buttId=='_18bis_email_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__18bis_email_($params);
}
if($buttId=='_20_email')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__20_email($params);
}
if($buttId=='_30_Model_')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__30_Model_($params);
}
if($buttId=='_18_email_banner')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__18_email_banner($params);
}
if($buttId=='_18_Email_Banner_3')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler__18_Email_Banner_3($params);
}
if($buttId=='New_Button7')
{
	//  for login page users table can be turned off
	if( $table != GLOBAL_PAGES )
	{
		require_once("include/". GetTableURL( $table ) ."_variables.php");
		$cipherer = new RunnerCipherer( $table );
	}
	buttonHandler_New_Button7($params);
}





// create table and non table handlers
function buttonHandler_Email($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
// Evento del pulsante personalizzato - Server
global $dal;

// Ottieni l'ID del record e l'email dal valore dei campi
$record_id = $values["id_listPak"]; // Assumi che "id" sia il campo chiave
$email = $values["Email"];  // Assumi che "Email" sia il campo email

// Genera il link con l'ID del record
$link = "http://localhost:8086/pakinglist_view.php?editid1=" . $record_id;


// Corpo dell'email
$subject = "Visualizza la tua QUOTATION";
$message = "Clicca sul seguente link per visualizzare LA tua fattura proforma: " . $link;

// Invia l'email
mail($email, $subject, $message);

// Messaggio di successo
$result["message"] = "Email inviata , spero con  con successo a " . $email;


	//$result["txt"] = $params["txt"]." world!";
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
// $result["txt"] = $params["txt"]." world!";


// Codice per inviare l'email quando il pulsante viene cliccato
if(isset($_POST['btnInviaEmail'])) {
    $to = $_POST['emailDestinatario']; // Indirizzo email del destinatario
    $subject = "Visualizza il record selezionato"; // Oggetto dell'email

    // URL della pagina di dettaglio del record selezionato
    $recordID = $_POST['recordID'];
    // $recordDetailURL = "http://tuo_sito/pagina_dettaglio.php?id=$recordID";
$recordDetailURL = "https://ksit.co.za/Packing8/pakinglist_view.php?editid1=$id_listPak";
    // Corpo dell'email con il link per visualizzare il record
    $message = "Clicca sul seguente link per visualizzare il record selezionato: $recordDetailURL";

    // Invia l'email
    mail($to, $subject, $message);
}

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button1($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
$result["txt"] = $params["txt"]." world!";
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button2($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
$result["txt"] = $params["txt"]." world!";
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button3($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
$result["txt"] = $params["txt"]." world!";
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button4($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
//$result["txt"] = $params["txt"]." world!";
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button5($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	//**********  Send email with new data  ************

$email="massimo.tomaselli@gmail.com";
$from="lisertrading@ksit.co.za";
$msg="";
$subject=" 1 New data record 1 ";

$msg.= "Name: ".$values["id_listPak]"]."\r\n";
$msg.= "Email: ".$values["ID_Client]"]."\r\n";
$msg.= "Age: ".$values["ID_LM]"]."\r\n";

$ret=runner_mail(array('to' => $email, 'subject' => $subject, 'body' => $msg, 'from'=>$from));
if(!$ret["mailed"])
	echo $ret["message"];

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_PACKINGlIST_SEND_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	//**********  Send email with new data  ************

$data = $button->getCurrentRecord();
$id_ListPak = $data["id_ListPak"];
$email = $data["email"];
$to = $email;  // Sostituisci con l'email del cliente


$from="lisertrading@ksit.co.za";
$msg="";
//$message .="";
// $subject="PULSANTE 1 c -  PACKINGLIST SEND";
$subject = "PULSANTE 1 d - PL1 #Prova ATTACHEMENT ! PDF and Email:  " .$data["id_listPak"];

while($data = $button->getNextSelectedRecord())

$msg = "ID List Pak: " .$id_listPak."\r\n";
$msg = "Client : " .$data["ID_Client"]."\r\n";
$msg = "LM : " .$data["ID_LM"]."\r\n";
$msg = "email:" .$email."\n\r"; 

// Ottieni i dati del record selezionato
$record_id = $data['id_listPak'];  // Sostituisci con il campo chiave primaria del tuo database

// Crea il link alla view del record (se necessario)
$view_link = "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$record_id; // Modifica secondo il tuo dominio e percorso
$view_link = "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$data['id_list_Pak']; // Modifica secondo il tuo dominio e percorso
$view_link = "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$data["id_list_Pak"]; // Modifica secondo il tuo dominio e percorso
$view_link = "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$id_list_Pak ; // Modifica secondo il tuo dominio e percorso


// Recupera altri campi del record (esempio)

$attachment = array(
  "path" => $path,
"name" => $filename ,

);



// $campo1 = $data['id_listPak']; // Sostituisci con il nome del campo
// $campo2 = $data['ID_Ship']; // Sostituisci con il nome del campo
// $campo3 = $data['Job_No']; // Sostituisci con il nome del campo
// $campo4 = $data['ID_Client']; // Sostituisci con il nome del campo
// $campo5 = $data['ID_LM']; // Sostituisci con il nome del campo
// Aggiungi altri campi se necessario

// Configura i dettagli dell'email
// $to = "massimo.tomaselli@gmail.com";  // Sostituisci con l'email del cliente
// $subject = "Record selezionato 1 " . "Campo1 ID Listing: " . $campo1 . "\n";
// $msg .= "Ciao,\n\n Ecco i dettagli del record selezionato:\n\n";
// $msg .= "Campo1: " . $campo1 . "\n";
// $msg .= "Campo2: " . $campo2 . "\n";
//$msg .= "Campo2: " . $campo3 . "\n";
//$msg .= "Campo2: " . $campo4 . "\n";
// $msg .= "Campo2: " . $campo5 . "\n";

// Aggiungi altri campi se necessario
$msg .= "\nPuoi visualizzare maggiori dettagli al seguente link: " . $view_link;
$msg .= "\n\nCordiali saluti,\n[Maxime]\r\n";
$headers = "From: lisertrading@ksit.co.za";  // Sostituisci con l'indirizzo email del mittente

// ----------------
$msg.= "ID List Pak: " .$data["id_listPak"]."\r\n";
$msg.= "Client : " .$data["ID_Client"]."\r\n";
$msg.= "LM : " .$data["ID_LM"]."\r\n";
$msg.= "email:" .$data["email"]."\n\r"; 

$ret=runner_mail(array('to' => $email, 'subject' => $subject, 'body' => $msg, 'from'=>$from));
if(!$ret["mailed"])
	echo $ret["message"];

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Send_PackingList_data($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	

	//---------Questo codice PRENDE l'EMAIL dalla TABELLA UTENTE PER GLI ACCESSI !!!! -----------------

// Put your code here.



$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();
$UserData = Security::currentUserData();
$email = $UserData["email"];
$id_ListPak = $values["id_listPak"]; // Ottieni l'ID del record
$filename = "Packing List num. ".$data['id_listPak'].".pdf";


$msg.= " questo é un test di invio email per il cliente "."\r\n";
$msg.=	"-------Body message-PL2 ----v8--Ottobre 2024 ---------" ."\r\n";

$msg.=	"Prezado cliente "."\r\n";
$msg.= " com a presente enviamo a PackingList numero ".$data['id_listPak']."\r\n";
$msg.= " referida a sua encommenda pelo fornecimento dos items que estão especificado "."\r\n";
$msg.= " na descrição no ficheiro pdf anexados a presente email "."\r\n";

$msg.=	"-------Body message-PL2 ----v8--Ottobre 2024 ---------" ."\r\n";

$msg.= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg.= "Num Client : ".$data["ID_Client"]."\r\n"; 
$msg.= "LM  ".$data["ID_LM"]."\r\n";
$msg.= "Date Packing List ".$data["Date"]."\r\n";
$msg.= "email : ".$data['email']."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.=	"-----  Link 0 -------------------------" ."\r\n";

// Ottieni i dati del record selezionato
$record_id = $data['id_listPak'];  // Sostituisci con il campo chiave primaria del tuo database

// Crea il link alla view del record (se necessario)
$msg.=	"-----  Link 1 -------------------------" ."\r\n";
$msg.= "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$record_id."\r\n";
 
// Modifica secondo il tuo dominio e percorso
$msg.=	"----- Link 2-------------------------" ."\r\n";
$msg.= "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$data['id_listPak']."\r\n"; 
$msg.=	"-----  Link 3 -------------------------" ."\r\n";

$msg.= "http://localhost:8086/pakinglist_view.php?editid1=".$data['id_listPak']."&page=view1Ext"."\r\n";



$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = " PL2 # v3 ATTACHEMENT ! PDF and Email:  " .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
"name" => $filename ,

);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
}


 
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Send_Pak_View_7($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Includi la libreria TCPDF
require_once('tcpdf/tcpdf.php');

// Ottieni i dati del record corrente
$data = $button->getCurrentRecord();
$UserData = Security::currentUserData();
$email = $UserData["email"];
$from = "lisertrading@ksit.co.za";
$subject = "Bottone 7 Dettagli del record selezionato in formato PDF";

// Crea una nuova istanza di TCPDF
$pdf = new TCPDF();
$pdf->AddPage();

// Contenuto del PDF
$html = '<h1>Dettagli del Record</h1>';
$html .= '<p>ID Packing List: ' . $data['id_listPak'] . '</p>';
$html .= '<p>Num Client: ' . $data["ID_Client"] . '</p>';
$html .= '<p>LM: ' . $data["ID_LM"] . '</p>';
$html .= '<p>Date Packing List: ' . $data["Date"] . '</p>';
$html .= '<p>Email: ' . $data['email'] . '</p>';
$html .= '<p>Name Client: ' . $data["Name_Client"] . '</p>';
// Aggiungi altri campi se necessario

$pdf->writeHTML($html, true, false, true, false, '');

// Salva il PDF in una stringa
$pdf_content = $pdf->Output('', 'S');

// Configura i dettagli dell'email
$headers = "From: " . $from . "\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: multipart/mixed; boundary=\"boundary\"\r\n";

$message = "--boundary\r\n";
$message .= "Content-Type: text/plain; charset=UTF-8\r\n\r\n";
$message .= "Ciao,\n\nEcco i dettagli del record selezionato in formato PDF.\n\n";
$message .= "--boundary\r\n";
$message .= "Content-Type: application/pdf; name=\"record_details.pdf\"\r\n";
$message .= "Content-Transfer-Encoding: base64\r\n";
$message .= "Content-Disposition: attachment; filename=\"record_details.pdf\"\r\n\r\n";
$message .= chunk_split(base64_encode($pdf_content));
$message .= "--boundary--";

// Invia l'email
if (mail($email, $subject, $message, $headers)) {
    echo "Email inviata con successo!";
} else {
    echo "Errore nell'invio dell'email.";
}

// Aggiorna il risultato per visualizzare un messaggio di conferma
$result["txt"] = $params["txt"] . " Email con PDF inviata.";;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_email_PL_7($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	//**********  Send email with new data  ************

while($data = $button->getNextSelectedRecord())

{
		$emailMsg		.= "-------- emailMSG ---$data------------" ."\r\n";
		$emailMsg		.= "ID PL : ".$data["id_listPak"]."\r\n"; 
		$emailMsg 	.= "SHIP : ".$data["ID_Ship"]."\r\n";
		$emailMsg		.= "JOB : ".$data["Job_No"]."\r\n";
		$emailMsg		.= "LM: ".$data["ID_LMo"]."\r\n";
		$emailMsg		.= "Client: ".$data["ID_Client"]."\r\n";
		$emailMsg		.= "Invoice: ".$data["Invoice_Number"]."\r\n";
		$emailMsg		.= "\r\n";
		$emailMsg		.= "email: ".$data["email"]."\r\n";
		$emailMsg		.= "-----------------------" ."\r\n";
}

// $email="massimo.tomaselli@gmail.com";
$email= "".$data["email"] ; 

// $email = " ".$data["email"];

$from = "lisertrading@ksit.co.za";
$msg = "";
$subject="PULSANTE 3 - verif  " ; 


	
// Ottieni i dati del record selezionato
// $record_id = $values['id_listPak'];  // Sostituisci con il campo chiave primaria del tuo database
// $record_id = $values["id_listPak"];  // Sostituisci con il campo chiave primaria del tuo database
// $record_id = $data['id_listPak'];
// Crea il link alla view del record (se necessario)

// $view_link = "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=". $record_id; // Modifica secondo il tuo dominio e percorso
//$view_link = "http://localhost:8086/pakinglist_view.php?editid1=". $record_id; // Modifica secondo il tuo dominio e percorso

$msg	.= "MSG Cazzo : 	".$values["ID_Client"]."\r\n ";
$msg	.= "Job: 			".$datas['Job_No'];
$msg	.= "ID PL: 	".$data["id_listPak"]."\r\n";
$msg	.= "Client : ".$data["ID_Client"]."\r\n";
$msg	.= "LM : 			".$values["ID_LM"]."\r\n";
		



$msg .= "\nCiao adesso puoi visualizzare maggiori dettagli al seguente link: " . $view_link;

$ret=runner_mail(array('to' => $email, 'subject' => $subject, 'body' => $emailMsg, 'from'=>$from));
if(!$ret["mailed"])
	echo $ret["message"];

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button6($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	
//**********  Send email with new data  ************

$data = $button->getCurrentRecord();
//$email="massimo.tomaselli@gmail.com";
$UserData = Security::currentUserData();
$email = $UserData["email"];
$from="lisertrading@ksit.co.za";
$msg="";
$subject=" Botton 6 View PL - dinamico v4 ";

$msg.=	"-------Body message----------------" ."\r\n";
$msg.= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg.= "Num Client : ".$data["ID_Client"]."\r\n";
$msg.= "LM  ".$data["ID_LM"]."\r\n";
$msg.= "Date Packing List ".$data["Date"]."\r\n";
$msg.= "email : ".$data['email']."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.=	"------------------------------" ."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.= "Data1 :".$data["Data1"]."\r\n";
$msg.= "Data2 :".$data["Data2"]."\r\n";
$msg.= "Data3 :".$data["Data3"]."\r\n";
$msg.= "Data4 :".$data["Data4"]."\r\n";
$msg.= "Data5 :".$data["Data5"]."\r\n";
$msg.= "Data6 :".$data["Data6"]."\r\n";
$msg.= "Data7 :".$data["Data7"]."\r\n";
$msg.= "Data8 :".$data["Dta8"]."\r\n";

$msg.=	"-------The and----------------" ."\r\n";

//$msg.= $values['Date']; 

$ret=runner_mail(array('to' => $email, 'subject' => $subject, 'body' => $msg, 'from'=>$from));
if(!$ret["mailed"])
	echo $ret["message"];


// Put your code here.
$result["txt"] = $params["txt"]." Email sended ";;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Client_1_email($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
$result["txt"] = $params["txt"]." world!";

//**********  Send email with new data  ************

$email="massimo.tomaselli@gmail.com";
$from="lisertrading@ksit.co.za";
$msg="";
$subject=" Client data record 1 - botton Clien ";

$msg.= "Name Client: ".$values["Name_Client]"]."\r\n";
$msg.= "ID : ".$values["ID_Client]"]."\r\n";
$msg.= "email : ".$values["email]"]."\r\n";

$ret=runner_mail(array('to' => $email, 'subject' => $subject, 'body' => $msg, 'from'=>$from));
if(!$ret["mailed"])
	echo $ret["message"];

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Button_8__Send_emal_PDF_view_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();
$id_ListPak = $values["id_ListPak"]; // Ottieni l'ID del record
$filename = "PL_TEST ".$data['id_listPak'].".pdf";

$msg.=	"-------Body message----------------" ."\r\n";
$msg.= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg.= "Num Client : ".$data["ID_Client"]."\r\n";
$msg.= "LM  ".$data["ID_LM"]."\r\n";
$msg.= "Date Packing List ".$data["Date"]."\r\n";
$msg.= "email : ".$data['email']."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.=	"------------------------------" ."\r\n";


$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = "B 8 # ATTACHEMENT 8.6 ! attachment PDF and Email:  " .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
"name" => $filename ,

);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
};
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Button7_b_invia_attachement_interattivo($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$path = $button->saveTempFile( $params["pdf"] );
 
$mail = array();
$mail["to"] = $params["email"];
$mail["subject"] = "PHP PDF and Email attachement PachingList View (boton 7b)";
$mail["body"] = "Hello, this email from KSIT Solution Check the results of scripts automatics sender with interactif dialogbox(botton 7b) ";
$attachment = array(
  "path" => $path,
"name" => $params ("filename")
);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
};
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Button7_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();

$msg.=	"-------Body message----------------" ."\r\n";
$msg.= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg.= "Num Client : ".$data["ID_Client"]."\r\n";
$msg.= "LM  ".$data["ID_LM"]."\r\n";
$msg.= "Date Packing List ".$data["Date"]."\r\n";
$msg.= "email : ".$data['email']."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.=	"------------------------------" ."\r\n";


$mail = array();
$mail["to"] = $params["email"];
$mail["subject"] = "ATTACHEMENT 7+  ! PHPRunner PDF and Email demo" .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
"name" => $params["filename"]
);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
};
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_Button9($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
// Includi le librerie necessarie
// use PHPMailer\PHPMailer\PHPMailer;
// use PHPMailer\PHPMailer\Exception;

// require 'path/to/PHPMailer/src/Exception.php';
// require 'path/to/PHPMailer/src/PHPMailer.php';
// require 'path/to/PHPMailer/src/SMTP.php';
// require 'path/to/fpdf.php';

// Genera il PDF
// $pdf = new FPDF();
// $pdf->AddPage();
// $pdf->SetFont('Arial', 'B', 16);

// Recupera i dati della vista corrente
$record = $button->getCurrentRecord();
foreach ($record as $key => $value) {
    $pdf->Cell(40, 10, "$key: $value");
    $pdf->Ln();
}

// Salva il PDF in una cartella temporanea
$pdfFile = 'temp/' . uniqid() . '.pdf';
$pdf->Output($pdfFile, 'F');

// Invia l'email con allegato
$mail = new PHPMailer();
$mail->setFrom('your-email@example.com');
$mail->addAddress($record['email']); // Campo email dal record
$mail->Subject = 'Your PDF';
$mail->Body = 'PL 10 # Please find the attached PDF.';
$mail->addAttachment($pdfFile);

if ($mail->send()) {
    echo 'Email sent successfully';
} else {
    echo 'Email sending failed: ' . $mail->ErrorInfo;
}

// Cancella il file PDF temporaneo
unlink($pdfFile);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__11($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	file_put_contents( "file.pdf", $params["pdf"] );;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__12($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Put your code here.
$result["txt"] = $params["txt"]." Ok !";


$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();
$id_ListPak = $values["id_ListPak"]; // Ottieni l'ID del record
$filename = "Packing List num. ".$data['id_listPak'].".pdf";




$msg.= "Prezado(a) cliente, ".$data["Name_Client"]."\r\n";
$msg.= "Com o presente, a ".$data["LM_LiserMoz"]. " envia a Packing List número ".$data['id_listPak']."\r\n";
$msg.= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" ."\r\n";
$msg.= "Para qualquer necessidade, estamos à disposição. 
Em caso de dúvidas ou para esclarecimentos, não hesite em contactar-nos através do email : vendas@lisermoz.com " ."\r\n";

$msg.= "
Agradecemos pela sua atenção.

Atenciosamente"."\r\n";
$msg.= " ".$data["LM_LiserMoz"]."\r\n";


$msg.= "------------------------------------------------"."\r\n";
$msg.= "[".$data["lm_bis_address"]. "] 
\r\n";

$msg.=	"-----------------Body message----------------" ."\r\n";
$msg.= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg.= "Date Packing List   ".$data["Date"]."\r\n";
$msg.= "Customer : ".$data["Name_Client"]."\r\n";
$msg.= "Email : ".$data['email']."\r\n";

$msg.=	"---------------------------------------------" ."\r\n";


$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = "".$data["LM_LiserMoz"]." : PackingList num :  " .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
"name" => $filename ,

);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
}
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__14($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$msg.= "email : ".$data['email']."\r\n";
$msg.= "Name Clint ".$data["Name_Client"]."\r\n";
$msg.=	"-----  Link 0 -------------------------" ."\r\n";

// Ottieni i dati del record selezionato
$record_id = $data['id_listPak'];  // Sostituisci con il campo chiave primaria del tuo database

// Crea il link alla view del record (se necessario)
$msg.=	"-----  Link 1 -------------------------" ."\r\n";
$msg.= "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$record_id."\r\n";
 
// Modifica secondo il tuo dominio e percorso
$msg.=	"----- Link 2-------------------------" ."\r\n";
$msg.= "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$data['id_listPak']."\r\n"; 
$msg.=	"-----  Link 3 -------------------------" ."\r\n";

$msg.= "http://localhost:8086/pakinglist_view.php?editid1=".$data['id_listPak']."&page=view1Ext"."\r\n";



$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = " PL 14  # v1 ATTACHEMENT ! PDF and Email:  " .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
"name" => $filename ,

);
$mail["attachments"] = array( $attachment );
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
}


 ;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__15_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$record = $button->getCurrentRecord();
$result["email"]=$record["email"];;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__15_B14($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$result["txt"] = $params["txt"]." Ok !";

$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();
$id_ListPak = $values["id_ListPak"]; // Ottieni l'ID del record
$filename = "Packing List num. ".$data['id_listPak'].".pdf";

// Controlla il valore di ID_LM1
if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, ".$data["Name_Client"]."\r\n";
    $msg .= "Com o presente, a ".$data["LM_LiserMoz"]. " envia a Packing List número ".$data['id_listPak']."\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" ."\r\n";
    $msg .= "A data de entrega da mercadoria, de acordo com a PackingList em anexo, deverá ser entregue no dia " .$data["Dta8"]."\r\n";
		$msg .= "Para qualquer necessidade, estamos à disposição "."\r\n"; 
		$msg .= "Em caso de dúvidas ou para esclarecimentos, não hesite em contactar-nos através do email : vendas@lisermoz.com " ."\r\n";
    $msg .= "Agradecemos pela sua atenção.\r\n";
    $msg .= "Atenciosamente\r\n";
    $msg .= " ".$data["LM_LiserMoz"]."\r\n";
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg = "Dear customer, ".$data["Name_Client"]."\r\n";
    $msg .= "With this, ".$data["LM_LiserMoz"]. " sends the Packing List number ".$data['id_listPak']."\r\n";
    $msg .= "related to your order, containing the items specified in the description of the PDF file attached to this email" ."\r\n";
    $msg .= "The delivery date of the goods, in accordance with the attached PackingList, should be delivered on the day " .$data["Dta8"]."\r\n";
    $msg .= "For any needs, we are at your disposal. 
In case of doubts or clarifications, do not hesitate to contact us via email: vendas@lisermoz.com " ."\r\n";
    $msg .= "Thank you for your attention.\r\n";
    $msg .= "Sincerely\r\n";
    $msg .= " ".$data["LM_LiserMoz"]."\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "------------------------------------------------"."\r\n";
$msg .= "[".$data["lm_bis_address"]. "] \r\n";
$msg .= "-----------------Body message----------------" ."\r\n";
$msg .= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg .= "Date Packing List   ".$data["Date"]."\r\n";
$msg .= "Customer : ".$data["Name_Client"]."\r\n";
$msg .= "Email : ".$data['email']."\r\n";
$msg .= "---------------------------------------------" ."\r\n";

$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = "".$data["LM_LiserMoz"]." : PackingList num :  " .$data["id_listPak"];
$mail["body"] = $msg ;
$attachment = array(
  "path" => $path,
  "name" => $filename,
);
$mail["attachments"] = array( $attachment );

$ret = runner_mail( $mail );

if( $ret["mailed"] ) {
  $result["success"] = true;
} else {
  $result["message"] = $ret["message"];
  $result["success"] = false;
}
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__15_B15($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$result["txt"] = $params["txt"]." Ok !";

$path = $button->saveTempFile( $params["pdf"] );
$data = $button->getCurrentRecord();
$id_ListPak = $values["id_ListPak"]; // Ottieni l'ID del record
$filename = "Packing List num. ".$data['id_listPak'].".pdf";



// Converti la data in formato timestamp
$timestamp = strtotime($data["Dta8"]);

// Controlla il valore di ID_LM1
if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, ".$data["Name_Client"]."\r\n";
    $msg .= "Com o presente, a ".$data["LM_LiserMoz"]. " envia a Packing List número ".$data['id_listPak']."\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" ."\r\n";
    
    // Formattazione data in portoghese (es: 20 de outubro 2024)
    setlocale(LC_TIME, 'pt_PT.UTF-8');
    $data_pt = strftime('%d de %B %Y', $timestamp);
    $msg .= "A data de entrega da mercadoria, de acordo com a PackingList em anexo, deverá ser entregue no dia " .$data_pt."\r\n";
    
    $msg .= "Para qualquer necessidade, estamos à disposição "."\r\n"; 
    $msg .= "Em caso de dúvidas ou para esclarecimentos, não hesite em contactar-nos através do email : vendas@lisermoz.com " ."\r\n";
    $msg .= "Agradecemos pela sua atenção.\r\n";
    $msg .= "Atenciosamente\r\n";
    $msg .= " ".$data["LM_LiserMoz"]."\r\n";

} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg = "Dear customer, ".$data["Name_Client"]."\r\n";
    $msg .= "With this, ".$data["LM_LiserMoz"]. " sends the Packing List number ".$data['id_listPak']."\r\n";
    $msg .= "related to your order, containing the items specified in the description of the PDF file attached to this email" ."\r\n";
    
    // Formattazione data in inglese (es: 15 May 2024)
    setlocale(LC_TIME, 'en_US.UTF-8');
    $data_en = strftime('%d %B %Y', $timestamp);
    $msg .= "The goods can be collected from, in accordance with the attached PackingList, on the day " .$data_en."\r\n";
    
    $msg .= "For any needs, we are at your disposal. In case of doubts or clarifications, do not hesitate to contact us via email: vendas@lisermoz.com " ."\r\n";
    $msg .= "Thank you for your attention.\r\n";
    $msg .= "Sincerely\r\n";
    $msg .= " ".$data["LM_LiserMoz"]."\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "------------------------------------------------"."\r\n";
$msg .= "[".$data["lm_bis_address"]. "] \r\n";
$msg .= "-----------------Body message----------------" ."\r\n";
$msg .= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg .= "Date Packing List   ".$data["Date"]."\r\n";
$msg .= "Customer : ".$data["Name_Client"]."\r\n";
$msg .= "Email : ".$data['email']."\r\n";
$msg .= "---------------------------------------------" ."\r\n";

$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = "".$data["LM_LiserMoz"]." : PackingList num :  " .$data["id_listPak"];
$mail["body"] = $msg;
$attachment = array(
  "path" => $path,
  "name" => $filename,
);
$mail["attachments"] = array( $attachment );

$ret = runner_mail( $mail );

if( $ret["mailed"] ) {
  $result["success"] = true;
} else {
  $result["message"] = $ret["message"];
  $result["success"] = false;
}

;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__16_email_to_USER($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$UserData = Security::currentUserData();
$email = $UserData["email"];
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record
$filename = "View2 Formattata num. " . $data['id_listPak'] . ".pdf";

// Salva il PDF della View2 generato dal compilatore PDF esistente
$pdfFilePath = $button->saveTempFile($params["pdf"]); // Usa il PDF generato dal client

// Testo dell'email
$msg = " questo é un test di invio email per il cliente "."\r\n";
$msg .= "-------Body message-PL2 ----v8--Ottobre 2024 ---------" ."\r\n";
$msg .= "Prezado cliente "."\r\n";
$msg .= " com a presente enviamo a View2 formattata numero ".$data['id_listPak']."\r\n";
$msg .= " referida a sua encommenda pelo fornecimento dos items que estão especificado "."\r\n";
$msg .= " na descrição no ficheiro pdf anexados a presente email "."\r\n";
$msg .= "-------Body message-PL2 ----v8--Ottobre 2024 ---------" ."\r\n";
$msg .= "ID Packing List: ".$data['id_listPak']."\r\n";
$msg .= "Num Client : ".$data["ID_Client"]."\r\n"; 
$msg .= "LM  ".$data["ID_LM"]."\r\n";
$msg .= "Date Packing List ".$data["Date"]."\r\n";
$msg .= "email : ".$data['email']."\r\n";
$msg .= "Name Client ".$data["Name_Client"]."\r\n";
$msg .= "-----  Link 0 -------------------------" ."\r\n";

// Aggiungi il link alla *View2* (se necessario)
$msg .= "-----  Link 1 -------------------------" ."\r\n";
$msg .= "http://ksit.co.za/P8.1/pakinglist_view.php?editid1=".$id_ListPak."\r\n";

// Email array
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = "View2 Formattata # v3 ATTACHEMENT ! PDF and Email: " . $data["id_listPak"];
$mail["body"] = $msg;
$attachment = array(
    "path" => $pdfFilePath,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__17_email_modello_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
$filename = "PackingList Num " . $data['id_listPak'] . ".pdf";

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla

if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, " . $data["Name_Client"] . "\r\n";
    $msg .= "Com o presente, a " . $data["LM_LiserMoz"] . " envia a Packing List número " . $data['id_listPak'] . "\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" . "\r\n";

    // Formattazione data in portoghese
    setlocale(LC_TIME, 'pt_PT.UTF-8');
    $data_pt = strftime('%d de %B %Y', $timestamp);
    $msg .= "A data de entrega da mercadoria deverá ser entregue no dia " . $data_pt . "\r\n";
    $msg .= "Em caso de dúvidas, contacte-nos através do email: vendas@lisermoz.com " . "\r\n";
    $msg .= "Atenciosamente,\r\n" . $data["LM_LiserMoz"] . "\r\n";
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg = "Dear customer, " . $data["Name_Client"] . "\r\n";
    $msg .= $data["LM_LiserMoz"] . " sends the Packing List number " . $data['id_listPak'] . "\r\n";
    $msg .= "related to your order. The PDF file is attached." . "\r\n";

    // Formattazione data in inglese
    setlocale(LC_TIME, 'en_US.UTF-8');
    $data_en = strftime('%d %B %Y', $timestamp);
    $msg .= "The goods should be delivered on " . $data_en . "\r\n";
    $msg .= "For any inquiries, contact us at: vendas@lisermoz.com " . "\r\n";
    $msg .= "Sincerely,\r\n" . $data["LM_LiserMoz"] . "\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "---------------------------------------------" . "\r\n";
$msg .= "ID Packing List: " . $data['id_listPak'] . "\r\n";
$msg .= "Date Packing List: " . $data["Date"] . "\r\n";
$msg .= "Customer: " . $data["Name_Client"] . "\r\n";
$msg .= "Email: " . $data['email'] . "\r\n";

// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["body"] = $msg;

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__18_email_invia_con_dialogbox($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
$filename = "PackingList Num " . $data['id_listPak'] . ".pdf";

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla

if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, " . $data["Name_Client"] . "\r\n";
    $msg .= "Com o presente, a " . $data["LM_LiserMoz"] . " envia a Packing List número " . $data['id_listPak'] . "\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" . "\r\n";

    // Formattazione data in portoghese
    setlocale(LC_TIME, 'pt_PT.UTF-8');
    $data_pt = strftime('%d de %B %Y', $timestamp);
    $msg .= "A data de entrega da mercadoria deverá ser no dia " . $data_pt . "\r\n";
    $msg .= "Em caso de dúvidas, contacte-nos através do email: vendas@lisermoz.com " . "\r\n";
    $msg .= "Atenciosamente,\r\n" . $data["LM_LiserMoz"] . "\r\n";
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg = "Dear customer, " . $data["Name_Client"] . "\r\n";
    $msg .= $data["LM_LiserMoz"] . " sends the Packing List number " . $data['id_listPak'] . "\r\n";
    $msg .= "related to your order. The PDF file is attached." . "\r\n";

    // Formattazione data in inglese
    setlocale(LC_TIME, 'en_US.UTF-8');
    $data_en = strftime('%d %B %Y', $timestamp);
    $msg .= "The goods should be delivered on " . $data_en . "\r\n";
    $msg .= "For any inquiries, contact us at: info@lisertrading.co.za " . "\r\n";
    $msg .= "Sincerely,\r\n" . $data["LM_LiserMoz"] . "\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "---------------------------------------------" . "\r\n";
$msg .= "ID Packing List: " . $data['id_listPak'] . "\r\n";
$msg .= "Date Packing List: " . $data["Date"] . "\r\n";
$msg .= "Customer: " . $data["Name_Client"] . "\r\n";
$msg .= "Email: " . $data['email'] . "\r\n";




// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["body"] = $msg;

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__18bis_email_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
$filename = "PackingList Num " . $data['id_listPak'] . ".pdf";

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla

if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, " . $data["Name_Client"] . "\r\n";
    $msg .= "Com o presente, a " . $data["LM_LiserMoz"] . " transmite a Packing List número " . $data['id_listPak'] . "\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" . "\r\n";

    // Formattazione data in portoghese
    setlocale(LC_TIME, 'pt_PT.UTF-8');
    $data_pt = strftime('%d de %B %Y', $timestamp);
    $msg .= "A data de entrega da mercadoria poderá ser no dia " . $data_pt . "\r\n";
    $msg .= "Em caso de dúvidas, não esite, contacte-nos através do email: " .$data['LM_email']. " \r\n";
    $msg .= "Atenciosamente,\r\n" ;
		$msg .= "Melhores Cumprimentos,\r\n"  . $data["LM_LiserMoz"] . "\r\n";

} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg .= "Dear customer, " . $data["Name_Client"] . "\r\n";
    $msg .= "With this. "  .$data["LM_LiserMoz"] . " sends the Packing List number " . $data['id_listPak'] . "\r\n";
    $msg .= "related to your order, containing the items specified in the description of the PDF file attached to this email." . "\r\n";

    // Formattazione data in inglese
    setlocale(LC_TIME, 'en_US.UTF-8');
    $data_en = strftime('%d %B %Y', $timestamp);
    $msg .= "The goods can be collected from, in accordance with the attached PackingList, on the day " . $data_en . "\r\n";
    $msg .= "For any needs, we are at your disposal. In case of doubts or clarifications, do not hesitate to contact us via email: " .$data['LM_email']. " \r\n";
		$msg .= "Thank you for your attention.". " \r\n";
    $msg .= "Sincerely,\r\n" . $data["LM_LiserMoz"] . "\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "---------------------------------------------" . "\r\n";
$msg .= "ID Packing List: " . $data['id_listPak'] . "\r\n";
$msg .= "Date Packing List: " . $data["Date"] . "\r\n";
$msg .= "Customer: " . $data["Name_Client"] . "\r\n";
$msg .= "Email: " . $data['email'] . "\r\n";
$msg .= "The goods can be collected from " . $data_en . "\r\n";
$msg .= "Contact Email " .$data['LM_email']. " \r\n";



// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["body"] = $msg;

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__20_email($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Definisci il PDF da generare in base a ID_LM1
$pdfParams = array();
if ($data['ID_LM1'] == 1) {
    // Genera PDF usando view1
    $pdfParams['pageType'] = 'view1'; // Assicurati di avere una vista chiamata view1
    $filename = "PackingList_Num_" . $data['id_listPak'] . "_View1.pdf"; // Nome del file per view1
} else if ($data['ID_LM1'] == 2) {
    // Genera PDF usando view2
    $pdfParams['pageType'] = 'view2'; // Assicurati di avere una vista chiamata view2
    $filename = "PackingList_Num_" . $data['id_listPak'] . "_View2.pdf"; // Nome del file per view2
}

// Prepara i parametri per il PDF
$pdfParams['keys'] = array($id_ListPak); // Passa l'ID del record per generare il PDF

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($pdfParams); // Salva il PDF generato in una cartella temporanea

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla
if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese
    $msg = "Prezado(a) cliente, " . $data["Name_Client"] . "\r\n";
    $msg .= "Com o presente, a " . $data["LM_LiserMoz"] . " envia a Packing List número " . $data['id_listPak'] . "\r\n";
    $msg .= "referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail" . "\r\n";
    setlocale(LC_TIME, 'pt_PT.UTF-8');
    $data_pt = strftime('%d de %B %Y', $timestamp);
    $msg .= "A data de entrega da mercadoria deverá ser no dia " . $data_pt . "\r\n";
    $msg .= "Em caso de dúvidas, contacte-nos através do email: vendas@lisermoz.com " . "\r\n";
    $msg .= "Atenciosamente,\r\n" . $data["LM_LiserMoz"] . "\r\n";
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese
    $msg = "Dear customer, " . $data["Name_Client"] . "\r\n";
    $msg .= $data["LM_LiserMoz"] . " sends the Packing List number " . $data['id_listPak'] . "\r\n";
    $msg .= "related to your order. The PDF file is attached." . "\r\n";
    setlocale(LC_TIME, 'en_US.UTF-8');
    $data_en = strftime('%d %B %Y', $timestamp);
    $msg .= "The goods should be delivered on " . $data_en . "\r\n";
    $msg .= "For any inquiries, contact us at: info@lisertrading.co.za " . "\r\n";
    $msg .= "Sincerely,\r\n" . $data["LM_LiserMoz"] . "\r\n";
}

// Aggiungi le informazioni comuni in fondo al messaggio
$msg .= "---------------------------------------------" . "\r\n";
$msg .= "ID Packing List: " . $data['id_listPak'] . "\r\n";
$msg .= "Date Packing List: " . $data["Date"] . "\r\n";
$msg .= "Customer: " . $data["Name_Client"] . "\r\n";
$msg .= "Email: " . $data['email'] . "\r\n";

// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["body"] = $msg;

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__30_Model_($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$attachments = array();
for( $i=0; $i< $params["recordCount"]; ++$i ) {
  $attachments[] = array(
    "path" => $button->saveTempFile( $params["pdf" . $i] ),
    "name" => $params["filenames"][$i]
  );
}
$mail = array();
$mail["to"] = $params["email"];
$mail["subject"] = $params["subject"];
$mail["body"] = $params["body"];
$mail["attachments"] = $attachments;
 
$ret = runner_mail( $mail );
 
if( $ret["mailed"] )
{
  $result["success"] = true;
}
else
{
  $result["message"] = $ret["message"];
$result["success"] = false;
};
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__18_email_banner($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	/// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
$filename = "PackingList Num " . $data['id_listPak'] . ".pdf";

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla

if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese con banner
    $msg = '
        <html>
            <body>
                <!-- Banner in alto -->
                <img src="https://www.ksit.co.za/banner/PackingList_banner5_LM.jpg" alt="Banner" width="600" height="120">
                
                <p>Prezado(a) cliente, ' . $data["Name_Client"] . '</p>
                <p>Com o presente, a ' . $data["LM_LiserMoz"] . ' envia a Packing List número ' . $data['id_listPak'] . '</p>
                <p>Referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail.</p>
                
                <!-- Formattazione della data in portoghese -->
                <p>A data de entrega da mercadoria deverá ser no dia ' . strftime('%d de %B %Y', $timestamp) . '.</p>
                
                <p>Em caso de dúvidas, contacte-nos através do email: ' . $data['LM_email'] . '</p>
                <p>Atenciosamente,<br>' . $data["LM_LiserMoz"] . '</p>
                
                <!-- Informazioni comuni -->
                <hr>
                <p>ID Packing List: ' . $data['id_listPak'] . '</p>
                <p>Date Packing List: ' . $data["Date"] . '</p>
                <p>Customer: ' . $data["Name_Client"] . '</p>
                <p>Email: ' . $data['email'] . '</p>
            </body>
        </html>
    ';
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese con banner
    $msg = '
        <html>
            <body>
                <!-- Banner in alto -->
                <img src="https://www.ksit.co.za/banner/PackingList_banner4.jpg" alt="Banner" width="600" height="120">
                
                <p>Dear customer, ' . $data["Name_Client"] . '</p>
                <p>' . $data["LM_LiserMoz"] . ' sends the Packing List number ' . $data['id_listPak'] . ' related to your order.</p>
                <p>The PDF file is attached, containing the items specified in the description.</p>
                
                <!-- Formattazione della data in inglese -->
                <p>The goods should be delivered on ' . strftime('%d %B %Y', $timestamp) . '.</p>
                
                <p>For any inquiries, contact us at: ' . $data['LM_email'] . '</p>
                <p>Sincerely,<br>' . $data["LM_LiserMoz"] . '</p>
                
                <!-- Informazioni comuni -->
                <hr>
                <p>ID Packing List: ' . $data['id_listPak'] . '</p>
                <p>Date Packing List: ' . $data["Date"] . '</p>
                <p>Customer: ' . $data["Name_Client"] . '</p>
                <p>Email: ' . $data['email'] . '</p>
            </body>
        </html>
    ';
}

// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["htmlbody"] = $msg; // Utilizza "htmlbody" invece di "body" per contenuti HTML

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler__18_Email_Banner_3($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	// Ottieni il record corrente e l'ID
$data = $button->getCurrentRecord();
$id_ListPak = $data["id_listPak"]; // Ottieni l'ID del record

// Genera il PDF della View predefinita debitamente formattata
$path = $button->saveTempFile($params["pdf"]); // Il PDF generato viene salvato in una cartella temporanea
$filename = "PackingList Num " . $data['id_listPak'] . ".pdf";

// Controlla il valore di ID_LM1 per la lingua del messaggio
$timestamp = strtotime($data["Date"]); // Converte la data per formattarla

if ($data['ID_LM1'] == 1) {
    // Messaggio in portoghese con banner
    $msg = '
        <html>
            <body>
                <!-- Banner in alto -->
                <img src="https://www.ksit.co.za/banner/PackingList_banner4.jpg" alt="Banner" width="600" height="150">
                
                <p>Prezado(a) cliente, ' . $data["Name_Client"] . '</p>
                <p>Com o presente, a ' . $data["LM_LiserMoz"] . ' envia a Packing List número ' . $data['id_listPak'] . '</p>
                <p>Referente à sua encomenda, contendo os itens especificados na descrição do arquivo PDF anexado a este e-mail.</p>
                
                <!-- Formattazione della data in portoghese -->
                <p>A data de entrega da mercadoria deverá ser no dia ' . strftime('%d de %B %Y', $timestamp) . '.</p>
                
                <p>Em caso de dúvidas, contacte-nos através do email: ' . $data['LM_email'] . '</p>
                <p>Atenciosamente,<br>' . $data["LM_LiserMoz"] . '</p>
                
                <!-- Informazioni comuni -->
                <hr>
                <p>ID Packing List: ' . $data['id_listPak'] . '</p>
                <p>Date Packing List: ' . $data["Date"] . '</p>
                <p>Customer: ' . $data["Name_Client"] . '</p>
                <p>Email: ' . $data['email'] . '</p>
            </body>
        </html>
    ';
} else if ($data['ID_LM1'] == 2) {
    // Messaggio in inglese con banner
    $msg = '
        <html>
            <body>
                <!-- Banner in alto -->
                <img src="https://www.ksit.co.za/banner/PackingList_banner4.jpg" alt="Banner" width="600" height="150">
                
                <p>Dear customer, ' . $data["Name_Client"] . '</p>
                <p>' . $data["LM_LiserMoz"] . ' sends the Packing List number ' . $data['id_listPak'] . ' related to your order.</p>
                <p>The PDF file is attached, containing the items specified in the description.</p>
                
                <!-- Formattazione della data in inglese -->
                <p>The goods should be delivered on ' . strftime('%d %B %Y', $timestamp) . '.</p>
                
                <p>For any inquiries, contact us at: ' . $data['LM_email'] . '</p>
                <p>Sincerely,<br>' . $data["LM_LiserMoz"] . '</p>
                
                <!-- Informazioni comuni -->
                <hr>
                <p>ID Packing List: ' . $data['id_listPak'] . '</p>
                <p>Date Packing List: ' . $data["Date"] . '</p>
                <p>Customer: ' . $data["Name_Client"] . '</p>
                <p>Email: ' . $data['email'] . '</p>
            </body>
        </html>
    ';
}

// Imposta i dettagli dell'email
$mail = array();
$mail["to"] = $data["email"];
$mail["subject"] = $data["LM_LiserMoz"] . " : PackingList num : " . $data["id_listPak"];
$mail["body"] = $msg;
$mail["isHtml"] = true; // Imposta il formato HTML per l'email

// Aggiungi il PDF come allegato
$attachment = array(
    "path" => $path,
    "name" => $filename,
);
$mail["attachments"] = array($attachment);

// Invia l'email
$ret = runner_mail($mail);

// Verifica se l'email è stata inviata
if ($ret["mailed"]) {
    $result["success"] = true;
} else {
    $result["message"] = $ret["message"];
    $result["success"] = false;
}

// Rimuovi il file PDF temporaneo
unlink($path);
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}
function buttonHandler_New_Button7($params)
{
	global $strTableName;
	$result = array();

	// create new button object for get record data
	$params["keys"] = (array)my_json_decode(postvalue('keys'));
	$params["isManyKeys"] = postvalue('isManyKeys');
	$params["location"] = postvalue('location');

	$button = new Button($params);
	$ajax = $button; // for examle from HELP
	$keys = $button->getKeys();

	$masterData = false;
	if ( isset($params['masterData']) && count($params['masterData']) > 0 )
	{
		$masterData = $params['masterData'];
	}
	else if ( isset($params["masterTable"]) )
	{
		$masterData = $button->getMasterData($params["masterTable"]);
	}
	
	$contextParams = array();
	if ( $params["location"] == PAGE_VIEW )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == PAGE_EDIT )
	{
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else if ( $params["location"] == "grid" )
	{	
		$params["location"] = "list";
		$contextParams["data"] = $button->getRecordData();
		$contextParams["newData"] = $params['fieldsData'];
		$contextParams["masterData"] = $masterData;
	}
	else 
	{
		$contextParams["masterData"] = $masterData;
	}

	RunnerContext::push( new RunnerContextItem( $params["location"], $contextParams));
	$attachments = array();
for( $i = 0; $i < $params["recordCount"]; ++$i ) {
  $attachments[] = array(
    "path" => $button->saveTempFile( $params["pdf" . $i] ),
    "name" => $params["filenames"][$i]
  );
}

$mail = array();
$mail["to"] = $params["email"];
$mail["subject"] = $params["subject"];

// Aggiunta del banner all'inizio del corpo dell'email
$mail["htmlbody"] = '
  <html>
    <body>
      <img src="https://www.ksit.co.za/banner/PackingList_banner4.jpg" alt="Banner" width="600" height="120">
      <p>' . $params["body"] . '</p>
    </body>
  </html>
';

$mail["attachments"] = $attachments;

$ret = runner_mail( $mail );

if( $ret["mailed"] ) {
  $result["success"] = true;
} else {
  $result["message"] = $ret["message"];
  $result["success"] = false;
}
;
	RunnerContext::pop();
	echo my_json_encode($result);
	$button->deleteTempFiles();
}


		
?>