Benvenuto!

Questo è il forum ufficiale dell'Associazione Odoo Italia. Dopo esserti registrato potrai partecipare ponendo domande o rispondendo a quelle esistenti. Non scordarti di compilare il tuo profilo e consultare le linee guida prima di iniziare a scrivere.

0

1
Avatar

Alex Comba

--Alex Comba--
1610
| 2 0 5
Olgiate Olona, Italia
--Alex Comba--

Laureato in Matematica all'Università di Torino, FLOSS entusiasta, è tra i fondatori del LUG della sua città natale e nel 2007 fa dello sviluppo software il suo mestiere per approdare ad OpenERP nel 2012. Membro delegato Odoo Community Association, è altresì membro di diversi PSC all'interno della stessa associazione. Felice papà di due piccoli Ctrl+C Ctrl+V!

Alex Comba
Il 02/03/20, 08:30

Buongiorno,

premesso che non mi è molto chiaro il perché vuoi realizzare una funzionalità simile, tramite codice, la potresti realizzare ad esempio come segue:

  • fai l'override del metodo invoice_validate di account.invoice

  • al suo interno, prima di chiamare il super, ti crei una copia con il metodo copy


La tua risposta


0
Davide Ercole
Il 08/03/20, 19:56

Volevo scrivere qua per condividere il codice che ho creato, magari potrebbe servire a qualcuno in futuro.Lo faccio perché noto che questa è una ottima comunità da cui possiamo prendere tutti spunto e darci una mano a vicenda.

questo è il codice che ho fatto:

#creazione invoice se c'è multirata
class AccountInvoice(models.Model):
    _inherit='account.invoice'
    x_plurianno_check_invoicing = fields.Boolean(string="Corso di Laurea pluriennale")

@api.multi
    def invoice_validate(self):
        # Clean context from default_type to avoid making attachment
        # with wrong values in subsequent operations
        cleaned_ctx = dict(self.env.context)
        cleaned_ctx.pop('default_type', None)
        self = self.with_context(cleaned_ctx)
        self.copy({'self.invoice_line_ids.x_numerorata_invoicing': '2'})
            
super(AccountInvoice, self).invoice_validate()
for invoice in self:
if invoice.company_id.country_id != self.env.ref('base.it'):
continue
if invoice.type == 'in_invoice' or invoice.type == 'in_refund':
invoice.l10n_it_send_state = "other"
continue
invoice._check_before_xml_exporting()
invoice.invoice_generate_xml()
if len(invoice.commercial_partner_id.l10n_it_pa_index or '') == 6:
invoice.message_post(
body=(_(
"Invoices for PA are not managed by Odoo, you can download the document and send it on your own."))
)
invoice.l10n_it_send_state = "other"
continue
invoice.l10n_it_send_state = "to_send"
invoice.send_pec_mail()


Grazie a tutti



La tua risposta


0
Davide Ercole
Il 02/03/20, 09:54

Grazie mille, effettivamente così va bene, dopo provo con calma..

in pratica il mio problema è come gestire le fatture su prodotti pluriennali, dove viene creata una fattura per ogni anno.

Il prodotto è un servizio che dura 5 anni, si genera la fattura in stato di open per il primo anno, mentre si creano in stato di draft le altre 4 fatture. Poi se avete altri consigli li accetto volentieri.

Grazie ancora


La tua risposta

0
Avatar

Alex Comba

--Alex Comba--
1610
| 2 0 5
Olgiate Olona, Italia
--Alex Comba--

Laureato in Matematica all'Università di Torino, FLOSS entusiasta, è tra i fondatori del LUG della sua città natale e nel 2007 fa dello sviluppo software il suo mestiere per approdare ad OpenERP nel 2012. Membro delegato Odoo Community Association, è altresì membro di diversi PSC all'interno della stessa associazione. Felice papà di due piccoli Ctrl+C Ctrl+V!

Alex Comba
Il 02/03/20, 10:19

La tua risposta

Resta informato

Informazioni sulla comunità

Forum ufficiale dell'Associazione Odoo Italia Leggi le linee guida

Strumenti di richiesta

45 follower

Statistiche

Richiesta del: 02/03/20, 08:13
Vista: 1734 volte
Ultimo aggiornamento: 08/03/20, 19:56

 Entra in contatto diretto con la comunità.

Unisciti alla chat Discord.