GUIDA PER L'UTILIZZO DEL GATEWAY PHOENIX-OFFICE
Sommario:
  1. Funzioni di connessione:
  2. Funzioni per gestire i clienti:
  3. Funzioni per gestire i prodotti:
  4. Funzioni per gestire gli ordini:
  5. Funzioni per gestire le fatture:
  6. Funzioni ed eventi di debug:

funzione login();
uso string login($username, $password);
parametri $username = nome utente attribuito al bot. Il bot deve essere attivato attraverso il pannello centrale di Phoenix-Office
$password = password per utilizzare il bot.
valori restituiti viene restituita una stringa contenente la sessione di connessione con il database di Phoenix-Office. Questo valore deve essere allegato ad ogni altra funzione per mantenere viva la connessione con Phoenix-Office.
descrizione questa funzione avvia la connessione tra Phoenix-Office e il programma e inizializza una sessione su Phoenix-Office
esempio

$conn = login("1107187770", "pass");

.....

logout($conn);


funzione logout();
uso void logout($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti non viene restituito niente
descrizione questa funzione chiude la connessione tra Phoenix-Office e il programma e cancella la sessione su Phoenix-Office
esempio

$conn = login("1107187770", "pass");

.....

logout($conn);


funzione listCustomer();
uso array listCustomer($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente tutti i clienti e tutti i loro dati
descrizione questa funzione scarica la lista clienti
esempio $conn = login("1107187770", "pass");
$mia_lista_clienti = listCustomer($conn);

print_r($mia_lista_clienti); // mostrerà il seguente output:

Array
(
    [1107018957] => Array
        (
            [cliente] => 1107018957
            [inserito] => 2005-01-29 18:15:57
            [nome] => nome
            [cognome] => cognome
            [denominazione] => cliente spa
            [cod] => partita iva
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20900
            [provincia] => MI
            [paese] => IT - Italy
            [email] => max@phoenixweb.it
            [telefono] => telefono
            [cellulare] =>
            [fax] => fax
            [sito] => www.phoenixweb.it
            [nominativo] => cliente spa
        )

    [1107178060] => Array
        (
            [cliente] => 1107178060
            [inserito] => 2005-01-31 14:27:40
            [nome] => ngfgkjfkgjkjg
            [cognome] => fdgfdgfgfg
            [denominazione] => modifica cliente tramite gateway
            [cod] => gfdgfdgfe
            [indirizzo] => indfgfdgfdgente
            [civico] => ddgfdgfdgente
            [citta] => cittfgfdgdfgfente
            [cap] => 20090
            [provincia] => MI
            [paese] => stato/paese
            [email] => max@phoenixweb.it
            [telefono] => tel
            [cellulare] =>
            [fax] => fax
            [sito] => sito
            [nominativo] => modifica cliente tramite gateway
        )
)

funzione getCustomer();
uso array getCustomer($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del cliente del quale si vogliono scaricare le informazioni
valori restituiti viene restituito un array contenente tutti i dati del cliente
descrizione questa funzione non differisce dalla funzione listCustomer(); in termini di qualità di dati. Tuttavia effettua una query ottimizzata con LIMIT e permette di scaricare le informazioni più velocemente.
esempio $conn = login("1107187770", "pass");
$mio_cliente = getCustomer($conn, 1107018957);

print_r($mio_cliente); // mostrerà il seguente output:

Array
(
    [cliente] => 1107018957
    [inserito] => 2005-01-29 18:15:57
    [nome] => nome
    [cognome] => cognome
    [denominazione] => cliente spa
    [cod] => partita iva
    [indirizzo] => indirizzo
    [civico] => 90
    [citta] => città
    [cap] => 20900
    [provincia] => MI
    [paese] => IT - Italy
    [email] => max@phoenixweb.it
    [telefono] => telefono
    [cellulare] =>
    [fax] => fax
    [sito] => www.phoenixweb.it
    [nominativo] => cliente spa
)

funzione newCustomer();
uso string newCustomer($conn, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$data = array di campi data per il nuovo cliente. La chiave corrisponde al nome del campo.
valori restituiti viene restituita una stringa contenente l'id del nuovo cliente (è generalmente un timestamp)
descrizione

Questa funzione permette di creare un nuovo cliente sul database di Phoenix-Office. Restituisce l'id del cliente generato dal database, in questo modo, si può iniziare ad usare il nuovo account cliente da subito.

Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[denominazione] ="nuovo cliente tramite gateway";
$M[nome] = "nome del cliente";
$M[cognome] = "cognome del cliente";
$M[cod] = "partita iva cliente";
$M[indirizzo] = "indirizzo del cliente";
$M[civico] = "numero civico del cliente";
$M[citta] = "città del cliente";
$M[cap] = "20090";
$M[provincia] = "MI";
$M[paese] = "stato/paese";
$M[telefono] = "tel";
$M[fax] = "fax";
$M[email] = "info@phoenixweb.it";
$M[sito] = "sito";

$nuovo_id_cliente = newCustomer($conn, $M);

funzione modCustomer();
uso void modCustomer($conn, $id, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del cliente che si vuole modificare
$data = array con i nuovi campi data per il cliente. La chiave corrisponde al nome del campo.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di modificare un cliente sul database di Phoenix-Office.

Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[denominazione] ="modifica cliente tramite gateway";
$M[nome] = "nuovo nome";
$M[cognome] = "nuovo cognome ";
$M[cod] = "nuovapartitaiva";
$M[indirizzo] = "nuovo indirizzo ";
$M[civico] = "99";
$M[citta] = "nuova città ";
$M[cap] = "20090";
$M[provincia] = "MI";
$M[paese] = "nuovo stato/paese";
$M[telefono] = "tel";
$M[fax] = "fax";
$M[email] = "nuovo.indirizzo.email@phoenixweb.it";
$M[sito] = "sito";

modCustomer($conn, 1107018957, $M);

funzione delCustomer();
uso void delCustomer($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = l'id del cliente che si vuole cancellare.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di cancellare un cliente sul database di Phoenix-Office.

Come in Phoenix-Office la cancellazione di un cliente è soggetta a limitazioni. Se una di queste limitazione viene violata, la cancellazione non avrà atto e verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

delCustomer($conn, 1107018957);

funzione listUnit();
uso array listUnit($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente le unità di misura valide accettate da Phoenix-Office
descrizione

Questa funzione permette di sapere quali sono gli id validi che identificano una unità di misura corretta su Phoenix-Office.

E' una funzione comoda per creare nuovi prodotti e modificarli senza incappare in errore di compilazione dei dati. Infatti le due funzioni di creazione e modifica prodotto restituiscono errore se il campo 'unità di misura' non è un ID valido. Questa funzione permette di conoscere quali ID vengono accettati e a cosa corrispondono.

esempio $conn = login("1107187770", "pass");
$unita_di_misura = listUnit($conn);

print_r($unita_di_misura); // mostrerà il seguente output:

Array
(
    [0] =>  
    [1] => kg
    [2] => mt
    [3] => Lt
    [4] => nr
    [5] => ore
    [6] => pz
)

funzione listProduct();
uso array listProduct($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente tutti i prodotti e tutti i loro dati
descrizione questa funzione scarica la lista prodotti
esempio $conn = login("1107187770", "pass");
$mia_lista_prodotti = listProduct($conn);

print_r($mia_lista_prodotti); // mostrerà il seguente output:

Array
(
    [1107018334] => Array
        (
            [prodotto] => 1107018334
            [cod] => 1
            [prezzo] => 0
            [setup] => 0
            [iva] => 20
            [unita] => 1
            [marca] => marca
            [linea] => linea
            [versione] => versione
            [nome] => nome
            [fattura] => descrizione sulla fattura
            [moneta] => €
            [prezzo_medio] => 1115
            [prezzo_medio_ponderato] => 910.23622047244
            [quantita] => 381
            [numero_ordini] => 6
            [fatturato] => 100000
        )

    [1107018602] => Array
        (
            [prodotto] => 1107018602
            [cod] => 2
            [prezzo] => 0
            [setup] => 0
            [iva] => 20
            [unita] => 1
            [marca] => marca
            [linea] => linea 2
            [versione] => versione
            [nome] => nome
            [fattura] => descrizione sulla fattura
            [moneta] => €
            [prezzo_medio] => 550
            [prezzo_medio_ponderato] => 550
            [quantita] => 2
            [numero_ordini] => 2
            [fatturato] => 1075
        )

funzione getProduct();
uso array getProduct($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del prodotto del quale si vogliono scaricare le informazioni
valori restituiti viene restituito un array contenente tutti i dati del prodotto
descrizione questa funzione non differisce dalla funzione listProduct(); in termini di qualità di dati. Tuttavia effettua una query ottimizzata con LIMIT e permette di scaricare le informazioni più velocemente.
esempio $conn = login("1107187770", "pass");
$mio_prodotto = getProduct($conn, 1107018334);

print_r($mio_prodotto); // mostrerà il seguente output:

Array
(
    [prodotto] => 1107018334
    [cod] => 1
    [prezzo] => 0
    [setup] => 0
    [iva] => 20
    [unita] => 1
    [marca] => marca
    [linea] => linea
    [versione] => versione
    [nome] => nome
    [fattura] => descrizione sulla fattura
    [moneta] => €
    [prezzo_medio] => 1115
    [prezzo_medio_ponderato] => 910.23622047244
    [quantita] => 381
    [numero_ordini] => 6
    [fatturato] => 100000
)

funzione newProduct();
uso string newProduct($conn, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$data = array di campi data per il nuovo prodotto. La chiave corrisponde al nome del campo.
valori restituiti viene restituita una stringa contenente l'id del nuovo prodotto (è generalmente un timestamp)
descrizione

Questa funzione permette di creare un nuovo prodotto sul database di Phoenix-Office. Restituisce l'id del prodotto generato dal database, in questo modo, si può iniziare ad usare il nuovo prodotto da subito.

ATTENZIONE:
E' vivamente sconsigliato creare prodotti da un programma remoto. La creazione di nuovi prodotti non dovrebbe mai essere una pratica soggetta ad automazione o automatismi. La funzione è stata inclusa per motivi di completezza ma il suo utilizzo è sconsigliato.


Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[cod] = "codice prodotto"; // sarebbe meglio un bel INT
$M[marca] = "marca";
$M[linea] = "linea";
$M[nome] = "prodotto creato tramite gateway";
$M[versione] = "versione";
$M[fattura] = "descrizione sulla fattura";
$M[prezzo] = "0";
$M[setup] = "0";
$M[moneta] = "moneta";
$M[iva] = "20";
$M[unita] = 0; // codice array;

newProduct($conn, $M);


funzione modProduct();
uso void modProductr($conn, $id, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del prodotto che si vuole modificare
$data = array con i nuovi campi data per il prodotto. La chiave corrisponde al nome del campo.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di modificare un prodotto sul database di Phoenix-Office.

ATTENZIONE:
E' vivamente sconsigliato modificare prodotti da un programma remoto. La modifica di prodotti non dovrebbe mai essere una pratica soggetta ad automazione o automatismi. La funzione è stata inclusa per motivi di completezza ma il suo utilizzo è sconsigliato.


Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[cod] = "codice prodotto"; // sarebbe meglio un bel INT
$M[marca] = "ciao ciao ciao ciao ciao ciao ciao";
$M[linea] = "linea";
$M[nome] = "prodotto creato tramite gateway";
$M[versione] = "versione";
$M[fattura] = "descrizione sulla fattura";
$M[prezzo] = "0";
$M[setup] = "0";
$M[moneta] = "moneta";
$M[iva] = "20";
$M[unita] = 0; // codice array;

modProduct($conn, 1107018334, $M);


funzione delProduct();
uso void delProduct($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del prodotto che si vuole cancellare.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di cancellare un prodotto dal database di Phoenix-Office.

ATTENZIONE:
E' vivamente sconsigliato cancellare prodotti da un programma remoto. La cancellazione di prodotti non dovrebbe mai essere una pratica soggetta ad automazione o automatismi. La funzione è stata inclusa per motivi di completezza ma il suo utilizzo è sconsigliato.


Come in Phoenix-Office la cancellazione di un prodotto è soggetta a limitazioni. Se una di queste limitazione viene violata, la cancellazione non avrà atto e verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

delProduct($conn, 1107018334);

funzione listOrder();
uso array listOrder($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente tutti gli ordini e tutti i loro dati
descrizione

Questa funzione scarica la lista ordini.

Per un pannello cliente è inutile in quanto scarica indistintamente gli ordini di tutti i clienti. Per scarica invece solo la lista parziale di un cliente bisogna utilizzare la funzione listCustomerOrder();

ATTENZIONE
Dato il ridondante numero di informazioni che viene scaricato l'utilizzo di questa funzione è sconsigliato. Questa funzione è stata inserita solo a scopo di completezza.

esempio $conn = login("1107187770", "pass");
$mia_lista_ordini = listOrder($conn);

print_r($mia_lista_ordini); // mostrerà il seguente output:

Array
(
    [1107197538] => Array
        (
            [ordine] => 1107197538
            [prezzo] => 900
            [setup] => 11
            [quantita] => 10
            [unita] => 6
            [sconto] => 10
            [iva] => 20
            [creato] => 2005-01-31 19:52:18
            [rinnovo] =>
            [stato] => 5
            [note] => queste sono annotazioni
            [descrizione] => descrizione dell'ordine
            [responsabile] =>
            [id_responsabile] => 0
            [anticipi] => 0
            [saldo] =>
            [cliente] => 1107018957
            [nominativo] => cliente spa
            [denominazione] => cliente spa
            [nome_cliente] => nome
            [cognome_cliente] => cognome
            [prodotto] => 1107018334
            [marca] => marca
            [linea] => linea
            [nome_prodotto] => nome
            [versione] => versione
            [moneta] => €
            [prezzo_prodotto] => 0
            [setup_prodotto] => 0
        )

    [1107197227] => Array
        (
            [ordine] => 1107197227
            [prezzo] => 900
            [setup] => 14341
            [quantita] => 130
            [unita] => 6
            [sconto] => 140
            [iva] => 20
            [creato] => 2005-01-31 19:47:07
            [rinnovo] =>
            [stato] => 5
            [note] => queste sono annotazioni
            [descrizione] => ordine modificato attraverso gateway
            [responsabile] =>
            [id_responsabile] => 0
            [anticipi] => 0
            [saldo] =>
            [cliente] => 1107018957
            [nominativo] => cliente spa
            [denominazione] => cliente spa
            [nome_cliente] => nome
            [cognome_cliente] => cognome
            [prodotto] => 1107018334
            [marca] => marca
            [linea] => linea
            [nome_prodotto] => nome
            [versione] => versione
            [moneta] => €
            [prezzo_prodotto] => 0
            [setup_prodotto] => 0
        )
)

funzione listCustomerOrder();
uso array listCustomerOrder($conn, $id );
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del cliente del quale si vuole scaricare la lista degli ordini
valori restituiti viene restituito un array contenente tutti gli ordini di un particolare cliente e tutti i loro dati
descrizione

Questa funzione scarica la lista ordini di un particolare cliente. In termini qualitativi non differisce da listOrder(); ma utilizza delle ottimizzazioni WHERE e permette di scaricare meno dati e quindi più velocemente.

E' una funzione fondamentale per un pannello clienti remoto.

esempio $conn = login("1107187770", "pass");
$mia_lista_ordini = listCustomerOrder($conn,1107018957);

print_r($mia_lista_ordini); // mostrerà il seguente output:

Array
(
    [1107197538] => Array
        (
            [ordine] => 1107197538
            [prezzo] => 900
            [setup] => 11
            [quantita] => 10
            [unita] => 6
            [sconto] => 10
            [iva] => 20
            [creato] => 2005-01-31 19:52:18
            [rinnovo] =>
            [stato] => 5
            [note] => queste sono annotazioni
            [descrizione] => descrizione dell'ordine
            [responsabile] =>
            [id_responsabile] => 0
            [anticipi] => 0
            [saldo] =>
            [cliente] => 1107018957
            [nominativo] => cliente spa
            [denominazione] => cliente spa
            [nome_cliente] => nome
            [cognome_cliente] => cognome
            [prodotto] => 1107018334
            [marca] => marca
            [linea] => linea
            [nome_prodotto] => nome
            [versione] => versione
            [moneta] => €
            [prezzo_prodotto] => 0
            [setup_prodotto] => 0
        )

    [1107197227] => Array
        (
            [ordine] => 1107197227
            [prezzo] => 900
            [setup] => 14341
            [quantita] => 130
            [unita] => 6
            [sconto] => 140
            [iva] => 20
            [creato] => 2005-01-31 19:47:07
            [rinnovo] =>
            [stato] => 5
            [note] => queste sono annotazioni
            [descrizione] => ordine modificato attraverso gateway
            [responsabile] =>
            [id_responsabile] => 0
            [anticipi] => 0
            [saldo] =>
            [cliente] => 1107018957
            [nominativo] => cliente spa
            [denominazione] => cliente spa
            [nome_cliente] => nome
            [cognome_cliente] => cognome
            [prodotto] => 1107018334
            [marca] => marca
            [linea] => linea
            [nome_prodotto] => nome
            [versione] => versione
            [moneta] => €
            [prezzo_prodotto] => 0
            [setup_prodotto] => 0
        )
)

funzione listStatusOrder();
uso array listStatusOrder($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente i possibili status di un ordine accettati da Phoenix-Office
descrizione

Questa funzione permette di sapere quali sono gli id validi che identificano uno status corretto su Phoenix-Office.

E' una funzione comoda per creare nuovi ordini e modificarli senza incappare in errore di compilazione dei dati. Infatti le due funzioni di creazione e modifica ordini restituiscono errore se il campo 'status' non è un ID valido. Questa funzione permette di conoscere quali ID vengono accettati e a cosa corrispondono.

esempio $conn = login("1107187770", "pass");
$status_ordine = listStatusOrder($conn);

print_r($status_ordine); // mostrerà il seguente output:

Array
(
    [0] => inevaso
    [1] => assegnato
    [2] => in lavorazione
    [3] => bloccato
    [4] => sospeso
    [5] => completato
)

funzione getOrder();
uso array getOrder($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id dell'ordine del quale si vogliono scaricare le informazioni
valori restituiti viene restituito un array contenente tutti i dati dell'ordine specificato
descrizione questa funzione non differisce dalla funzione listOrder(); e listCustomerOrder(); in termini di qualità di dati. Tuttavia effettua una query ottimizzata con LIMIT e permette di scaricare le informazioni più velocemente.
esempio $conn = login("1107187770", "pass");
$mio_ordine = getOrder($conn, 1107197538);

print_r($mio_ordine); // mostrerà il seguente output:

Array
(
    [ordine] => 1107197538
    [prezzo] => 900
    [setup] => 11
    [quantita] => 10
    [unita] => 6
    [sconto] => 10
    [iva] => 20
    [creato] => 2005-01-31 19:52:18
    [rinnovo] =>
    [stato] => 5
    [note] => queste sono annotazioni
    [descrizione] => descrizione dell'ordine
    [responsabile] =>
    [id_responsabile] => 0
    [anticipi] => 0
    [saldo] =>
    [cliente] => 1107018957
    [nominativo] => cliente spa
    [denominazione] => cliente spa
    [nome_cliente] => nome
    [cognome_cliente] => cognome
    [prodotto] => 1107018334
    [marca] => marca
    [linea] => linea
    [nome_prodotto] => nome
    [versione] => versione
    [moneta] => €
    [prezzo_prodotto] => 0
    [setup_prodotto] => 0
)

funzione newOrder();
uso string newProduct($conn, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$data = array di campi data per il nuovo ordine. La chiave corrisponde al nome del campo.
valori restituiti viene restituita una stringa contenente l'id del nuovo ordine (è generalmente un timestamp)
descrizione

Questa funzione permette di creare un nuovo ordine sul database di Phoenix-Office. Restituisce l'id del nuovo ordine generato dal database.

E' una funzione fondamentale per un pannello clienti remoto.

Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[cliente] = "1107018957"; // CODICE CLIENTE VALIDO
$M[prodotto] = "1107018334"; // CODICE PRODOTTI VALIDO
$M[descrizione] = "descrizione dell'ordine";
$M[prezzo] = 900.00; // prezzo
$M[setup] = 11.00; // setup
$M[quantita] = 10; // cartoni di birra
$M[unita] = 0; // codice array; UNITA' DI MISURA
$M[rinnovo] = ""; //DATA
$M[sconto] = 10.00;
$M[iva] = 20;
$M[stato] = 0; //usare valori array possibile stato
$M[responsabile] = 0; // se non si ha un utente valido da specificare settarlo semplicemente a zero, verrà messo: nessun responsabile
$M[note] = "queste sono annotazioni";

newOrder($conn, $M);


funzione modOrder();
uso void modOrder($conn, $id, $data);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id dell'ordine che si vuole modificare
$data = array con i nuovi campi data per l'ordine. La chiave corrisponde al nome del campo.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di modificare un ordine effettuato sul database di Phoenix-Office.

ATTENZIONE:
E' vivamente sconsigliato permettere di modificare ordini che non sono stati generati dallo stesso pannello remoto.


Le voci da inserire nel campo data, possono variare a seconda dell'attuale versione del programma e dagli attuali campi supportati.
Come in Phoenix-Office alcune voci sono soggette a limitazioni di caratteri o sono campi obbligatori. Se questi dati mancano o violano una delle regole allora verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

$M[cliente] = "1107018957"; // CODICE CLIENTE VALIDO
$M[prodotto] = "1107018334"; // CODICE PRODOTTI VALIDO
$M[descrizione] = "ordine modificato attraverso gateway";
$M[prezzo] = 900.00; // prezzo
$M[setup] = 14341.00; // setup
$M[quantita] = 130; // cartoni di birra
$M[unita] = 0; // codice array; UNITA' DI MISURA
$M[rinnovo] = ""; //DATA
$M[sconto] = 10.00;
$M[iva] = 20;
$M[stato] = 0; //usare valori array possibile stato
$M[responsabile] = 0; // se non si ha un utente valido da specificare settarlo semplicemente a zero, verrà messo: nessun responsabile
$M[note] = "queste sono annotazioni";

modOrder($conn, 1107197538, $M);


funzione delOrder();
uso void delOrder($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id dell'ordine che si vuole cancellare.
valori restituiti non viene restituito niente
descrizione

Questa funzione permette di cancellare un ordine dal database di Phoenix-Office.

ATTENZIONE:
E' vivamente sconsigliato cancellare ordini da un programma remoto. La cancellazione di ordini dovrebbe essere sempre moderata e all'attenzione dell'amministratore. La funzione è stata inclusa per motivi di completezza ma il suo utilizzo è sconsigliato.


Come in Phoenix-Office la cancellazione di un ordine è soggetta a limitazioni. Se una di queste limitazione viene violata, la cancellazione non avrà atto e verrà eseguita la funzione evento PXWO_remote_error();

esempio $conn = login("1107187770", "pass");

delOrder($conn, 1107197538);

funzione listInvoiceHeader();
uso array listInvoiceHeader($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente tutte le intestazioni valide per la fatturazione e tutti i loro dati
descrizione

questa funzione scarica la lista delle intestazioni valide per la fatturazione

ATTENZIONE:
Un programma di fatturazione remoto dovrebbe avere delle intestazioni personalizzate sul pannello e non dovrebbe essere necessario conoscere le altre intestazioni esistenti sul database. Le intestazioni andrebbero preimpostate e reimpostate solo in casi eccezionali. La funzione è stata inclusa per motivi di completezza ma il suo utilizzo è sconsigliato.

esempio $conn = login("1107187770", "pass");
$mia_lista_intestazioni = listInvoiceHeader($conn);

print_r($mia_lista_intestazioni); // mostrerà il seguente output:

Array
(
    [5] => Array
        (
            [intestazione] => 5
            [nome] => nome impostazioni
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20090
            [provincia] => MI
            [paese] => ITA
            [tel] => 3434343434343
            [fax] => 34343434343434
            [www] =>
            [email] =>
            [Bnome] => nome
            [Bindirizzo] => indirizzo
            [Babi] => abi
            [Bcab] => cab
            [Bcc] => cc
            [data] => 29 / 01 / 2005
        )

    [6] => Array
        (
            [intestazione] => 6
            [nome] => nome impostazioni
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20090
            [provincia] => MI
            [paese] => ITA
            [tel] => 3434343434343
            [fax] => 34343434343434
            [www] =>
            [email] =>
            [Bnome] => nome
            [Bindirizzo] => indirizzo
            [Babi] => abi
            [Bcab] => cab
            [Bcc] => cc
            [data] => 29 / 01 / 2005
        )

)


funzione getInvoiceHeader();
uso array getInvoiceHeader($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id dell'intestazione del quale si vogliono scaricare le informazioni
valori restituiti viene restituito un array contenente tutti i dati dell'intestazione per la fatturazione
descrizione questa funzione non differisce dalla funzione listInvoiceHeader(); in termini di qualità di dati. Tuttavia effettua una query ottimizzata con LIMIT e permette di scaricare le informazioni più velocemente.
esempio $conn = login("1107187770", "pass");
$intestazione = getInvoiceHeader($conn, 5);

print_r($intestazione); // mostrerà il seguente output:

Array
(
    [intestazione] => 5
    [nome] => nome impostazioni
    [indirizzo] => indirizzo
    [civico] => 90
    [citta] => città
    [cap] => 20090
    [provincia] => MI
    [paese] => ITA
    [tel] => 3434343434343
    [fax] => 34343434343434
    [www] =>
    [email] =>
    [Bnome] => nome
    [Bindirizzo] => indirizzo
    [Babi] => abi
    [Bcab] => cab
    [Bcc] => cc
    [data] => 29 / 01 / 2005
)

funzione listInvoice();
uso array listInvoice($conn);
parametri $conn = sessione di connessione con Phoenix-Office
valori restituiti viene restituito un array contenente tutte le fatture
descrizione

Questa funzione scarica la lista fatture.

Per un pannello cliente è inutile in quanto scarica indistintamente le fatture di tutti i clienti. Per scarica invece solo la lista parziale di un cliente bisogna utilizzare la funzione listCustomerInvoice();

ATTENZIONE
Dato il ridondante numero di informazioni che viene scaricato l'utilizzo di questa funzione è sconsigliato. Questa funzione è stata inserita solo a scopo di completezza.

esempio $conn = login("1107187770", "pass");
$mia_lista_fatture = listInvoice($conn);

print_r($mia_lista_fatture); // mostrerà il seguente output:

Array
(
    [102] => Array
        (
            [anno] => 2005
            [fattura] => 102
            [n_fattura] => 5
            [cliente] => 1107018957
            [data] => 2005-01-30
            [intestazione] => 5
            [intestazione_nome] => nome impostazioni
            [moneta] => €
            [riferimento] => Codice Ordine
            [pagamento] => gh
            [denominazione] => cliente spa
            [cod] => partita iva
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20900
            [provincia] => MI
            [paese] => IT - Italy
            [Dnome] => cliente spa
            [Dindirizzo] => indirizzo
            [Dcivico] => 90
            [Dcitta] => città
            [Dcap] => 20900
            [Dprovincia] => MI
            [Dpaese] => IO - British Indian Ocean Territory
            [ordini] => 1
            [imponibile] => 65
            [imposta] => 13
            [quantita] => 1
        )

    [101] => Array
        (
            [anno] => 2005
            [fattura] => 101
            [n_fattura] => 4
            [cliente] => 1107018957
            [data] => 2005-01-30
            [intestazione] => 5
            [intestazione_nome] => nome impostazioni
            [moneta] => €
            [riferimento] => Codice Ordine
            [pagamento] => pagato
            [denominazione] => cliente spa
            [cod] => partita iva
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20900
            [provincia] => MI
            [paese] => IT - Italy
            [Dnome] =>
            [Dindirizzo] =>
            [Dcivico] =>
            [Dcitta] =>
            [Dcap] =>
            [Dprovincia] =>
            [Dpaese] =>
            [ordini] => 1
            [imponibile] => 10
            [imposta] => 2
            [quantita] => 1
        )
)

funzione listCustomerInvoice();
uso array listCustomerInvoice($conn, $id );
parametri $conn = sessione di connessione con Phoenix-Office
$id = id del cliente del quale si vuole scaricare la lista delle fatture
valori restituiti viene restituito un array contenente tutte le fatture di un particolare cliente e tutti i loro dati
descrizione

Questa funzione scarica la lista fatture di un particolare cliente. In termini qualitativi non differisce da listInvoice(); ma utilizza delle ottimizzazioni WHERE e permette di scaricare meno dati e quindi più velocemente.

E' una funzione fondamentale per un pannello clienti remoto.

esempio $conn = login("1107187770", "pass");
$mia_lista_fatture = listCustomerInvoice($conn,1107018957);

print_r($mia_lista_fatture); // mostrerà il seguente output:

Array
(
    [102] => Array
        (
            [anno] => 2005
            [fattura] => 102
            [n_fattura] => 5
            [cliente] => 1107018957
            [data] => 2005-01-30
            [intestazione] => 5
            [intestazione_nome] => nome impostazioni
            [moneta] => €
            [riferimento] => Codice Ordine
            [pagamento] => gh
            [denominazione] => cliente spa
            [cod] => partita iva
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20900
            [provincia] => MI
            [paese] => IT - Italy
            [Dnome] => cliente spa
            [Dindirizzo] => indirizzo
            [Dcivico] => 90
            [Dcitta] => città
            [Dcap] => 20900
            [Dprovincia] => MI
            [Dpaese] => IO - British Indian Ocean Territory
            [ordini] => 1
            [imponibile] => 65
            [imposta] => 13
            [quantita] => 1
        )

    [101] => Array
        (
            [anno] => 2005
            [fattura] => 101
            [n_fattura] => 4
            [cliente] => 1107018957
            [data] => 2005-01-30
            [intestazione] => 5
            [intestazione_nome] => nome impostazioni
            [moneta] => €
            [riferimento] => Codice Ordine
            [pagamento] => pagato
            [denominazione] => cliente spa
            [cod] => partita iva
            [indirizzo] => indirizzo
            [civico] => 90
            [citta] => città
            [cap] => 20900
            [provincia] => MI
            [paese] => IT - Italy
            [Dnome] =>
            [Dindirizzo] =>
            [Dcivico] =>
            [Dcitta] =>
            [Dcap] =>
            [Dprovincia] =>
            [Dpaese] =>
            [ordini] => 1
            [imponibile] => 10
            [imposta] => 2
            [quantita] => 1
        )
)

funzione getPdfInvoice();
uso array getPdfInvoice($conn, $id);
parametri $conn = sessione di connessione con Phoenix-Office
$id = id della fattura che si vuole scaricare.
valori restituiti viene restituito un array con due chiavi:
array[source] = file binario pdf
array[filename] = nome del file sul database di Phoenix-Office.
descrizione

Questa funzione permette di scaricare una fattura dal database di Phoenix-Office. La fattura può essere scaricata per essere visualizzata o alternativamente per essere salvata su un database locale del programma remoto.

ATTENZIONE: si consiglia di utilizzare sempre il filename corretto per ogni fattura. Questo per evitare che i clienti scarichino più volte lo stesso documento (da pannelli remoti diversi) senza alcun avviso di sovrascrittura file. Mantenendo invariato il filename i programmi di scaricamento avvertiranno della presenza del medesimo file sul computer locale.

esempio $conn = login("1107187770", "pass");

$pdf = getPdfInvoice($conn,102);

//INVIAMO LA FATTURA AL BROWSER PER IL DOWNLOAD
if(headers_sent()) PXWO_error("gli header sono già stati inviati, impossibile inviare file pdf");
Header('Content-Type: application/pdf');
Header('Content-Length: '.strlen($pdf["source"]));
Header('Content-disposition: inline; filename='.$pdf["filename"]);
echo $pdf["source"];

funzione PXWO_debug();
uso void PXWO_debug();
parametri nessuno
valori restituiti viene stampato il debug della connessione tra il programma e Phoenix-Office
descrizione

Questa funzione stampa tutto il processo di invio e ricezione registrato dalla funzione di log tra il server del programma e il server di Phoenix-Office.
Vengono stampati alcuni valori tra cui l'azione richiesta al server, il tempo di download dei dati, il numero di byte inviati dal server di Phoenix-Office e il tempo totale di esecuzione della funzione.

ATTENZIONE: le funzioni di debug dovrebbero essere utilizzate solo in fase di testing del programma.

esempio PXWO_debug(); //mostrerà il seguente output

MOSTRA IL LOG FILE CLIENT-SERVER:
*******************
    AVVIO GATEWAY    
*******************
CLIENT: connessione 1
CLIENT: azione login
CLIENT: inizializzo dati
CLIENT: connessione...
CLIENT: connesso
CLIENT: query server eseguita in 0.22510290145874 secondi
CLIENT: estrazione dati
CLIENT: download 259 byte
CLIENT: dati estratti
CLIENT: inizio parsing dati
CLIENT: parsing dati completato
SERVER: login completato con successo con ip: 207.58.146.50
CLIENT: richiesta eseguita in 0.22538900375366 secondi
*******************
CLIENT: connessione 2
CLIENT: azione listCustomer
CLIENT: inizializzo dati
CLIENT: connessione...
CLIENT: connesso
CLIENT: query server eseguita in 0.01223611831665 secondi
CLIENT: estrazione dati
CLIENT: download 4166 byte
CLIENT: dati estratti
CLIENT: inizio parsing dati
CLIENT: parsing dati completato
SERVER: invio lista clienti
CLIENT: richiesta eseguita in 0.012686014175415 secondi
*******************
CLIENT: connessione 3
CLIENT: azione getCustomer
CLIENT: inizializzo dati
CLIENT: connessione...
CLIENT: connesso
CLIENT: query server eseguita in 0.011757850646973 secondi
CLIENT: estrazione dati
CLIENT: download 1057 byte
CLIENT: dati estratti
CLIENT: inizio parsing dati
CLIENT: parsing dati completato
SERVER: invio dati cliente 1107018957
CLIENT: richiesta eseguita in 0.012057065963745 secondi
*******************

funzione PXWO_error(); //evento
uso void PXWO_error();
parametri nessuno
valori restituiti viene eseguita la funzione PXWO_error();
descrizione

Questa funzione deve essere personalizzata. All'evento "errore di connessione", questa funzione verrà richiamata e il suo contenuto eseguito.

esempio

// DI DEFAULT LA FUNZIONE DI ERRORE E' IMPOSTATA COSI':

function PXWO_error($str) {
        global $PXWO_DEBUG;
        echo $str;
        echo "<br><br>";
        if (PXWO_DEBUG) highlight_string(print_r(PXWO_debug(),1));
        die();
}

//TUTTAVIA SI PUO' REIMPOSTARE FACENDOLA PUNTARE AD UNA PROPRIA FUNZIONE DI ERRORE:

function PXWO_error($str) {
        mia_funzione_di_errore($str);
}


funzione PXWO_remote_error(); //evento
uso void PXWO_remote_error();
parametri nessuno
valori restituiti viene eseguita la funzione PXWO_remote_error();
descrizione

Questa funzione deve essere personalizzata. All'evento "errore sul server remoto", questa funzione verrà richiamata e il suo contenuto eseguito.

Questa funzione differisce perchè non tratta gli errori di connessione, ma gli errori inviati dal server di Phoenix-Office a causa di contenuto inatteso o alla violazione di particolari regole nell'invio di dati.

esempio

// DI DEFAULT LA FUNZIONE DI ERRORE E' IMPOSTATA COSI':

function PXWO_remote_error($str) {
        global $PXWO_DEBUG;
        echo $str;
        echo "<br><br>";
        if (PXWO_DEBUG) highlight_string(print_r(PXWO_debug(),1));
        die();
}

//TUTTAVIA SI PUO' REIMPOSTARE FACENDOLA PUNTARE AD UNA PROPRIA FUNZIONE DI ERRORE:

function PXWO_remote_error($str) {
        mia_funzione_di_errore($str);
}