Allora Felice, io cerco di darti un po’ di ingredienti in base a quello che ho
capito siano le tue esigenze.
Intanto tu puoi mettere relativamente ad una table N contatori ai quali saranno
associati N metodi col prefisso counter_
quindi tu avrai nel tuo ordine un qualcosa del tipo
tbl.column(‘protocollo’,…)
col suo
def counter_protocollo(self,record=None):
….
e potresti avere tranquillamente anche il campo
tbl.column(’n_fattura’,…)
col suo
def counter_n_fattura(self,record=None):
….
tenendo due serie in parallelo. Ovviamente però tu vuoi che il contatore della
fattura venga assegnato quando l’ordine viene fatturato
nel qualcaso dovrai sfruttare il fatto che nel metodo counter_n_fattura venga
passato il record.
Infatti se il metodo contatore non torna nulla il contatore NON viene
assegnato. Quindi tu potresti mettere un campo in più nell’ordine che si chiama
timestamp_fatturazione (potrebbe essere un booleano come un timestamp) e ti
limiti a marcare il record con appunto il valore di questo campo.
A questo punto nel metodo counter_n_fattura che viene chiamato durante i
trigger tu fai così
def counter_n_fattura(self,record=None):
if not record['timestamp_fatturazione’]:
return
#altrimenti vai e procedi con il ritornare i parametri del contatore
return dict(…)
Per quello che riguarda la stampa abbiamo la possibilità O di generare un pdf
“volante” ossia tu chiami una rpc tramite un url che costruisce il file pdf
in un file temp e ritorni direttamente l’handler pdf questo provoca il download
del file. È però anche possibile procedere con una stampa html
chiamando sempre un url nel qualcaso farai venir fuori una finestra del browser
con l’html che verrà stampato o stampato come pdf da scaricare.
Per maggiori dettagli ti posso anche seguire via teamviewer
Ciao
Francesco