Calculated Field

alessapan

Member
You are using DaDaBIK version 10.3-Manarola enterprise, installed on 27/08/2020 ), the latest version of DaDaBIK is 10.3-Manarola released on 26/08/2020

System info
PHP Version: 7.2.33
mysql version: 5.7.29-32-log
Web server: Apache
Client: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.121 Safari/537.36

Buongiorno,
ho creato 3 funzione semplici per il calcolo di analoghi campi.
Di seguito il codice:
// CALCULATED FIELDS FUNCTIONS
function dadabik_totale_cedole($Ncedole){
return ($Ncedole['ore_a_cedola'] *4);
}

function dadabik_rimb_km($km){
return ($km['nkm'] *0.4);
}

function dadabik_tot_rimb($tot){
return ($tot['rimb_km'] +$tot['autostrada_parcheggio'] +$tot['Taxi_treno_bus_aereo'] +$tot['vitto_alloggio'] +$tot['alloggio'] );
}

Le funzioni in modalità inserimento di un NUOVO record non visualizzano il risultato nel campo associato durante la digitazione ma lo memorizzano correttamente dopo aver salvato il record.
In modalità MODIFICA invece viene visualizzato correttamente il calcolo in "diretta".
Qualcuno mi sa dire cosa non ho fatto bene?

Grazie


Alessandro
 

eugenio

Administrator
Staff member
Inserimento e modifica dovrebbero funzionare allo stesso modo, es. nel primo caso, prova ad inserire il valore nel campo ore_a_cedola e poi a premere il tasto tab, non succede nulla?

Aprirei anche la javascript console del browser per vedere se viene segnalato un errore javascript dopo aver premuto tab.

Prova infine la stessa operazione sul nostro demo n.1 -> products, aggiungendo un nuovo prodotto e inserendo il prezzo, dopo aver premuto tab dovrebbe automaticamente impostarsi prezzo+iva.

Saluti,
 

alessapan

Member
Ho trovato l'errore. Riporto la funzione:
function dadabik_rimb_km($km){
return ($km['nkm'] *0.4);
}

function dadabik_tot_rimb($tot){
return ($tot['rimb_km'] +$tot['autostrada_parcheggio'] +$tot['Taxi_treno_bus_aereo'] +$tot['vitto_alloggio'] +$tot['alloggio'] );
}

Ho capito che NON posso fare RIFERIMENTO per il calcolo ad un campo calcolato in questo caso rimb_km.
Per risolvere ho sostituito la formula che genera quel risultato.
Evidentemente nel caso del redord EDITATO il valore era caricato e non calcolato, ecco il motivo del suo funzionamento.

Grazie
 

eugenio

Administrator
Staff member
In generale i campi calcolati non possono usare altri campi calcolati (vedere documentazione), il fatto che funzioni in edit non mi è chiaro ma non è garantito che funzioni correttamente quindi lo eviterei comunque.

Saluti,
 
Top