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

0
Luigi Di Naro
Il 02/04/20, 12:38

Non ho letto attentamente il codice, quindi una indicazione puntuale sul problema non riesco a dartela.

Pero' ti consiglio un approccio diverso, mettere le fatture scadute sulla form del partner ti costringe a fare quelle query ogni volta che entri nel partner rendendo lentissima la sua apertura all'aumentare delle fatture e sovraccaricando inutilmente il server odoo.

Io metterei uno smart button, usa il codice che gia' c'e' per lo smart di tutte le fatture (o ordini) e modifichi la ricerca ... hai il codice di esempio, non esci scemo ma sopratutto non spacchi odoo.

my 2 cents


La tua risposta


0
Sergio Corato
Il 31/03/20, 21:46

Non usare quel campo così per la stampa sul report, ma filtralo nel report.

Verifica se la soluzione proposta funziona.

Il dominio sul campo funziona ma il python viene eseguito lato server, quindi non è previsto per essere immediato come il codice eseguito lato client (quindi un dominio su dei campi non variabili al volo).


La tua risposta

0
Francesco
Il 01/04/20, 10:45

Ciao Sergio,
ho provato a riportare il domain sulla vista ma non filtra correttamente le fatture.

Nel model ora ho questa definizione:

overdue_invoices_ids = fields.One2many('account.invoice', 'partner_id')


Mentre la vista è questa:

    <record id="view_partner_inherit_overdue_form_id" model="ir.ui.view">
        <field name="name">res.partner.overdue.form.inherit</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="model">res.partner</field>
        <field name="arch" type="xml">
            <page name="accounting" position='after'>
                <page string="Payment Follow-up" groups="account.group_account_invoice" name="overdue_tab">         
                    <separator string="Overdue Invoices" />                                                                               
                    <field name="overdue_invoices_ids"
                            domain="[('state', '=', 'open'), ('type', '=', 'out_invoice'), ('date_due', '&lt;', context_today().strftime('%Y-%m-%d'))]">

                        <tree editable="bottom" create="false"
                            delete="false"
                            colors="red:(not date_due or date_due&lt;=current_date) and residual&gt;0">
                            <field name="state" invisible="1" />
                            <field name="type" invisible="1" />
                            <field name="date" />
                            <field name="number" />
                            <field name="name" />
                            <field name="date_due" />
                            <field name="amount_total" />
                            <field name="residual" />
                        </tree>
                    </field>
                    <separator string="Followup History" />
                    <field name="followup_history">
                        <tree create="false" edit="false" default_order='id desc'>
                            <field name="followup_line"/>
                            <field name="elaboration_date"/>
                            <field name="invoices"/>
                        </tree>
                    </field> 
                </page>
            </page>
        </field>
    </record>
   

 Grazie!


La tua risposta


0
Sergio Corato
Il 31/03/20, 18:50

Ciao Francesco,

una soluzione direi potrebbe essere spostare il dominio nella vista xml, che è aggiornata al volo, invece di metterlo nel campo.


La tua risposta

0
Francesco
Il 31/03/20, 20:06

Ciao Sergio,
grazie per il suggerimento. Quel campo lo utilizzo anche in altri contesti, es. la stampa di un report:

for invoice in self.overdue_invoices_ids:
    ...

In quel caso mi suggerisci di sostituirlo con una search preventiva? Es.

overdue_invoices_ids = self.env['account.invoice'].search([
    ('state', '=', 'open'),
    ('type', '=', 'out_invoice'),
    ('date_due', '<', datetime.today().strftime("%Y-%m-%d"))
])
for invoice in overdue_invoices_ids: 
   ...


A questo punto quando ha senso utilizzare il filtro sul dominio direttamente su un campo? 


Grazie mille


La tua risposta

Resta informato

Informazioni sulla comunità

Forum ufficiale dell'Associazione Odoo Italia Leggi le linee guida

Strumenti di richiesta

47 follower

Statistiche

Richiesta del: 31/03/20, 15:35
Vista: 761 volte
Ultimo aggiornamento: 02/04/20, 12:38