Questo sito utilizza cookie per le proprie funzionalità e per inviarti pubblicità e servizi in linea con le tue preferenze. Chiudendo questo banner, scorrendo questa pagina o cliccando qualunque suo elemento acconsenti all’uso dei cookie.

Accedendo al link http://www.odoo-italia.org/index.php/home/cookie-policy puoi leggere in dettaglio le modalità di trattamento dei cookie da parte dell'Associazione Odoo Italia.

Benvenuto, Ospite
Nome utente: Password: Ricordami

ARGOMENTO: Aggiunta del campo provincia nei report

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13567

  • rfasoli
  • Avatar di rfasoli
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Ringraziamenti ricevuti 1
  • Karma: 0
Buongiorno a tutti. Ho installato il modulo l10n_it_base su OE 7.
Questo modulo mi ha aggiunto alcuni campi all'indirizzo tra i quali la provincia.
Come posso fare in modo che la funzione "display_address" utilizzata nei report (sxw) consideri questo campo? Ho provato a modificare la formattazione dell'indirizzo italiano andando in Vendite / Rubrica / Localizzazione / Nazioni ma non riesco a capire come fare riferimento al campo provincia.
Ho provato i seguenti formati:
%(province)s
%(province_id)s
%(province_code)s
%(address.province_id.code)s
ma come risultato ottengo che non viene proprio stampato l'indirizzo (probabilmente si verifica un errore)
Mi potete aiutare?
Grazie
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13581

  • MayerElyashiv
  • Avatar di MayerElyashiv
  • Offline
  • Expert Boarder
  • Messaggi: 96
  • Ringraziamenti ricevuti 6
  • Karma: 0
Ciao rfasoli,
non conosco la funzione display_address, ma puoi provare con:
[[o.partner_id.province.name]]
Ultima modifica: 5 Anni 4 Mesi fa da MayerElyashiv.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13595

  • eLBati
  • Avatar di eLBati
  • Online
  • Platinum Boarder
  • Messaggi: 1766
  • Ringraziamenti ricevuti 186
  • Karma: 38
rfasoli ha scritto:
Buongiorno a tutti. Ho installato il modulo l10n_it_base su OE 7.
Questo modulo mi ha aggiunto alcuni campi all'indirizzo tra i quali la provincia.
Come posso fare in modo che la funzione "display_address" utilizzata nei report (sxw) consideri questo campo? Ho provato a modificare la formattazione dell'indirizzo italiano andando in Vendite / Rubrica / Localizzazione / Nazioni ma non riesco a capire come fare riferimento al campo provincia.
Ho provato i seguenti formati:
%(province)s
%(province_id)s
%(province_code)s
%(address.province_id.code)s
ma come risultato ottengo che non viene proprio stampato l'indirizzo (probabilmente si verifica un errore)
Mi potete aiutare?
Grazie
Prova con
%(province.name)s

Considera che questo potrebbe dare errore se la provincia è vuota.
Lorenzo Battistini
github.com/eLBati

TAKOBI
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13662

  • rfasoli
  • Avatar di rfasoli
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Ringraziamenti ricevuti 1
  • Karma: 0
Ti ringrazio MayerElyashiv per la risposta, la funzione "display_address" è una funzione che ritorna l'indirizzo formattato in base alla nazione e viene utilizzato all'interno dei report per stampare l'indirizzo di un'anagrafica.
Non posso utilizzare o.partner_id.province.name ho la necessità di inserire la provincia all'interno dell'indirizzo e quindi non la posso concatenare alla fine.
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13663

  • rfasoli
  • Avatar di rfasoli
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Ringraziamenti ricevuti 1
  • Karma: 0
Grazie eLBati per la risposta. Ho provato ad aggiungere %(province.name)s ma mi da la seguente eccezione:

Server Traceback (most recent call last):
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\openerp\addons\web\session.py", line 89, in send
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\netsvc.py", line 293, in dispatch_rpc
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\service\web_services.py", line 626, in dispatch
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\osv\osv.py", line 188, in execute_kw
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\osv\osv.py", line 131, in wrapper
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\osv\osv.py", line 197, in execute
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\.\openerp\osv\osv.py", line 185, in execute_cr
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\openerp\addons\base\res\res_partner.py", line 539, in name_get
File "C:\Program Files (x86)\OpenERP 7.0-20130424-232422\Server\server\openerp\addons\base\res\res_partner.py", line 734, in _display_address
KeyError: u'province.name'
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.

Aggiunta del campo provincia nei report 5 Anni 4 Mesi fa #13665

  • rfasoli
  • Avatar di rfasoli
  • Offline
  • Junior Boarder
  • Messaggi: 20
  • Ringraziamenti ricevuti 1
  • Karma: 0
Sono finalmente riuscito a risolvere il problema. Posto la soluzione così magari torna utile a qualcun altro.

Ho modificato nel file addons\base\res\res_partner.py la funzione _display_address aggiungendo le righe evidenziate:

def _display_address(self, cr, uid, address, without_company=False, context=None):

# get the information that will be injected into the display format
# get the address format
address_format = address.country_id and address.country_id.address_format or \
"%(street)s\n%(street2)s\n%(city)s %(state_code)s %(zip)s\n%(country_name)s"
args = {
'state_code': address.state_id and address.state_id.code or '',
'state_name': address.state_id and address.state_id.name or '',
'country_code': address.country_id and address.country_id.code or '',
'country_name': address.country_id and address.country_id.name or '',
'company_name': address.parent_id and address.parent_id.name or '',
'province_code': address.province and address.province.code or address.parent_id and address.parent_id.province and address.parent_id.province.code or '',
'province_name': address.province and address.province.name or address.parent_id and address.parent_id.province and address.parent_id.province.name or '',

}

for field in self._address_fields(cr, uid, context=context):
args[field] = getattr(address, field) or ''

if without_company:
args = ''
elif address.parent_id:
address_format = '%(company_name)s\n' + address_format
return address_format % args

A questo punto è possibile inserire nel template dell'indirizzo i tag %(province_code)s e %(province_name)s

Questa non è sicuramente la soluzione migliore perché in caso di aggiornamento viene persa la modifica. Andrebbe sviluppato un modulo per fare l'override della funzione... ma funziona :lol:
L\'Amministratore ha disattivato l\'accesso in scrittura al pubblico.
Ringraziano per il messaggio: MayerElyashiv
Tempo creazione pagina: 0.143 secondi

Odoo Italia Associazione - C.F: 94200470485 - Sede: Viale dei Cadorna, 83 - Firenze - Italy

Protected by R Antispam