Pular para o conteúdo
Menu
Esta pergunta foi sinalizada
2 Respostas
7505 Visualizações

Hi

I am trying to disable the previous dates at payment of invoice but it doesnt work for me.

Here is my model:

from odoo import models, fields, api

from datetime import datetime

from openerp.tools import DEFAULT_SERVER_DATE_FORMAT

class account_payment(models.Model):

_inherit = 'account.payment'

def onchange_date(self, cr, uid, ids, payment_date, context=None):

if datetime.strptime(payment_date, DEFAULT_SERVER_DATE_FORMAT).date() > datetime.now().date():

return False

return payment_date


Here is my xml file:

<odoo>

<data>

<record model="ir.ui.view" id="view_account_payment_invoice_form">

<field name="name">account.payment.invoice.form</field>

<field name="model">account.payment</field>

<field name="inherit_id" ref="account.view_account_payment_invoice_form"/>

<field name="arch" type="xml">

<xpath expr="//field[@name='payment_date']" position="replace">

<field name="payment_date" on_change="onchange_date(payment_date)"/>

</xpath>

</field>

</record>

</data>

</odoo>

Error:

TypeError: onchange_date() takes at least 5 arguments (2 given)

I am using odoo 10. Could somebody help. Thank You!

Avatar
Cancelar
Melhor resposta

You can use this code of disable past dates.
var DateWidget = require('web.datepicker').DateWidget;
DateWidget.include({

        start: function(parent, options) {

            this._super.apply(this, arguments);

            var self = this;

            var context = {}

            if (this.__parentedParent.options.disable_past_date) {

            self.options['minDate'] = moment(new Date());

                self.picker['minDate'] = moment(new Date());

                self.picker.options['minDate'] = moment(new Date());

            }

        },

Avatar
Cancelar
Publicações relacionadas Respostas Visualizações Atividade
0
set. 21
2767
2
set. 19
35343
1
nov. 23
1537
1
abr. 23
4060
2
set. 21
3017