Skip ke Konten
Menu
Pertanyaan ini telah diberikan tanda
2 Replies
7516 Tampilan

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
Buang
Jawaban Terbai

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
Buang
Post Terkait Replies Tampilan Aktivitas
0
Sep 21
2779
2
Sep 19
35364
1
Nov 23
1557
1
Apr 23
4080
2
Sep 21
3049