'Vendite'));
}
// Funzione per la preparazione dei campi da visualizzare
// e la query SQL principale che deve essere eseguita
function prepare_items()
{
//controllo azioni
//annullo ordine
if( $_GET['action'] == 'trash' ){
//cestino la riga metto state = -1
$nonce = @esc_attr($_REQUEST['_wpnonce']);
if(!wp_verify_nonce($nonce, 'adv_trash_sale')){
die('Weird: Plugin is resolving itself');
}
global $wpdb;
$save_update_adv = $wpdb->update( 'wp_adv_sales',
array(
'state' => '-1'
),
array('ID' => $_GET['sale'])
);
//informo l'utente se l'operazione è andata a buon fine o meno
//salvataggio non andato a buon fine
if($save_update_adv == false) {
?>
Errore nel salvataggio: si prega di riprovare
delete( 'wp_adv_sales',
array('ID' => $_GET['sale'])
);
//informo l'utente se l'operazione è andata a buon fine o meno
//salvataggio non andato a buon fine
if($delete_sale_adv == false) {
?>
Errore nel salvataggio: si prega di riprovare
prefix.'adv_sales';
$per_page = 25; // Numero dei record presenti in una pagina
// Calcolo elenco de dei campi per le differenti
// sezioni e memorizzo tutto in array separati
$columns = $this->get_columns();
$hidden = $this->get_columns_hidden();
$sortable = $this->get_columns_sortable();
// Bisogna memorizzare tre array che devono contenere i campi da
// visualizzare, quelli nascosti e quelli per eseguire l'ordinamento
$this->_column_headers = array($columns,$hidden,$sortable);
// Preparazione delle variabili che devono essere utilizzate
// nella preparazione della query con gli ordinamenti e la posizione
if (!isset($_REQUEST['paged'])) $paged = 0;
else $paged = max(0,(intval($_REQUEST['paged'])-1)*25);
if (isset($_REQUEST['orderby'])
and in_array($_REQUEST['orderby'],array_keys($sortable)))
$orderby = $_REQUEST['orderby']; else $orderby = 'saledate';
if (isset($_REQUEST['order'])
and in_array($_REQUEST['order'],array('asc','desc')))
$order = $_REQUEST['order']; else $order = 'asc';
// Calcolo le variabili che contengono il numero dei record totali
// e l'elenco dei record da visualizzare per una singola pagina
$total_items = $wpdb->get_var(
"SELECT COUNT(name) FROM $table_name");
$this->items = $wpdb->get_results($wpdb->prepare(
"SELECT * FROM $table_name ".
"ORDER BY $orderby $order ".
"LIMIT %d OFFSET %d",$per_page, $paged), ARRAY_A);
$this->set_pagination_args(array(
'total_items' => $total_items,
'per_page' => $per_page,
'total_pages' => ceil($total_items/$per_page)
));
}
// Funzione per la definizione dei campi che devono
// essere visualizzati nella lista da visualizzare
function get_columns()
{
$columns = array(
'ID' => 'ID',
'state' => 'Stato',
'saledate' => 'Data vendita',
'customerID' => 'Cliente',
'advertisingID' => 'Articolo',
'totalprice' => 'Totale',
'invoice' => 'Richiesta fattura',
'datefinish' => 'Data chiusura annuncio',
);
return $columns;
}
// Funzione per la definizione dei campi che possono
// essere utilizzati per eseguire la funzione di ordinamento
function get_columns_sortable()
{
$sortable_columns = array(
'name' => array('name',true),
'price' => array('price',false),
'activeted' => array('activeted',false),
);
return $sortable_columns;
}
// Funzione per la definizione dei campi che devono
// essere calcolati dalla query ma non visualizzati
function get_columns_hidden() {
return array();
}
// Funzione per reperire il valore di un campo in
// maniera standard senza una personalizzazione di output
function column_default($item,$column_name) {
return $item[$column_name];
}
// Dato che alcuni campi hanno bisogno di output
// personalizzato bisogna creare una funzione per campo
function column_state($item){
if( $item['state'] == '3' && $item['pay'] == '1' ){
return "Completato";
}else if( $item['state'] == '3' && $item['pay'] == '0' ){
return "Transazione fallita";
}else if( $item['state'] == '-1' ){
return "Annullato";
}else{
return "Non completato";
}
}
function column_totalprice($item) {
return number_format(floatval($item['totalprice']),2,',','.').' ' . get_option('advertising_management_currencySymbol');
}
function column_invoice($item) {
if($item['invoice'] == '1')
return "SI";
return "NO";
}
//inserisco nome e cognome cliente con link
function column_customerID($item) {
global $wpdb;
$table_name = $wpdb->prefix.'adv_customers';
//ricavo i dati dal cliente dal DB
$customer = $wpdb->get_row( $wpdb->prepare(
"SELECT * FROM $table_name WHERE ID= %d",
intval($item['customerID'] )
));
//nonce
$nonceEdit = wp_create_nonce('adv_edit_customer');
return sprintf('' . $customer->name . ' ' . $customer->surname . '',
'edit', absint($item['customerID']),$nonceEdit);
}
//inserisco nome annuncio con link
function column_advertisingID($item) {
global $wpdb;
$table_name = $wpdb->prefix.'adv_advertising';
//ricavo i dati dal cliente dal DB
$advertising = $wpdb->get_row( $wpdb->prepare(
"SELECT * FROM $table_name WHERE ID= %d",
intval($item['advertisingID'])
));
//nonce
$nonceEdit = wp_create_nonce('adv_edit_adv');
return sprintf('' . $advertising->name . '',
'edit', absint($item['advertisingID']), $nonceEdit);
}
//FUNZIONE CAMPO ID CON AZIONI
function column_ID($item) {
//nonce
$nonceEdit = wp_create_nonce('adv_edit_sale');
$nonceTrash = wp_create_nonce('adv_trash_sale');
$nonceDelete = wp_create_nonce('adv_delete_sale');
// Definizioni azioni che devo comparire sotto la
// tessera quando andiamo in hover con il mouse
if($item['state'] != '-1' ){
$actions = array(
'edit' => sprintf('Modifica',
esc_attr($_REQUEST['page']), 'edit', absint($item['ID']),
$nonceEdit),
'trash' => sprintf('Annulla ordine',
esc_attr($_REQUEST['page']), 'trash', absint($item['ID']),
$nonceTrash),
);
} else {
$actions = array(
'edit' => sprintf('Modifica',
esc_attr($_REQUEST['page']), 'edit', absint($item['ID']),
$nonceEdit),
'delete' => sprintf('Elimina definitivamente',
esc_attr($_REQUEST['page']), 'delete', absint($item['ID']),
$nonceDelete),
);
}
// Ritorno il valore della colonna tessera e
// richiamo il metodo row_actions per le azioni
return sprintf('%1$s %2$s',$item['ID'],
$this->row_actions($actions));
}
}
function adv_SelectSaleEdit(){
/*
*In questa funzione creo un form dove l'utente può modificare i dati
*ed aggiornare il DB
*/
//RICAVO I DATI DAL DB
global $wpdb;
$sql_row_sale = $wpdb->get_row( $wpdb->prepare(
"SELECT * FROM wp_adv_sales WHERE ID= %d",
intval($_GET['sale'])
));
//converto la data
$date= date("d-m-Y", strtotime($sql_row_sale->datefinish));
//ricavo i dati dal cliente dal DB
$customer = $wpdb->get_row(
"SELECT * FROM wp_adv_customers WHERE ID=" . $sql_row_sale->customerID
);
//ricavo i dati dal cliente dal DB
$advertising = $wpdb->get_row(
"SELECT * FROM wp_adv_advertising WHERE ID=" . $sql_row_sale->advertisingID
);
?>
Vendita:
" class="btn-primary">Torna all'elenco