Skip to Content
Odoo เมนู
  • ลงชื่อเข้าใช้
  • ทดลองใช้ฟรี
  • แอป
    การเงิน
    • ระบบบัญชี
    • ระบบการออกใบแจ้งหนี้
    • ระบบบัญชีรายจ่าย
    • ระบบการจัดการข้อมูลผ่านสเปรดชีต (BI)
    • เอกสาร
    • ระบบลงลายเซ็น
    การขาย
    • ลูกค้าสัมพันธ์
    • การขาย
    • POS ร้านค้า
    • POS ร้านอาหาร
    • ระบบสมัครสมาชิก
    • การเช่า
    การจัดการเว็บไซต์
    • เครื่องมือสร้างเว็บไซต์
    • ระบบการขายออนไลน์
    • บล็อก
    • ฟอรั่ม
    • ไลฟ์แชท
    • ระบบการอบรมออนไลน์
    ซัพพลายเชน
    • คลังสินค้า
    • ระบบการผลิต
    • PLM
    • ระบบการจัดซื้อ
    • การซ่อมบำรุง
    • ระบบจัดการคุณภาพ
    ทรัพยากรบุคคล
    • ข้อมูลพนักงาน
    • ระบบสรรหาบุคลากร
    • ระบบการลา
    • การประเมิน
    • ระบบการแนะนำพนักงาน
    • ระบบจัดการยานพาหนะ
    การตลาด
    • โซเชียลมาร์เก็ตติ้ง
    • การตลาดผ่านอีเมล
    • ระบบการตลาดผ่าน SMS
    • ระบบการจัดงานอีเวนต์
    • การตลาดแบบอัตโนมัติ
    • ระบบแบบสำรวจ
    การบริการ
    • โปรเจกต์
    • ระบบบันทึกเวลา
    • ระบบการจัดการบริการภาคสนาม
    • ระบบดูแลช่วยเหลือ
    • การวางแผน
    • การนัดหมาย
    ประสิทธิผล
    • ระบบแสดงความคิดเห็น
    • ระบบการอนุมัติ
    • ไอโอที
    • VoIP
    • คลังข้อมูล
    • WhatsApp
    แอปพลิเคชันของบุคคลที่สาม Odoo สตูดิโอ แพลตฟอร์มคลาวด์ของ Odoo
  • อุตสาหกรรม
    การค้าปลีก
    • ร้านขายหนังสือ
    • ร้านขายเสื้อผ้า
    • ร้านขายเฟอร์นิเจอร์
    • ร้านขายของชำ
    • ร้านขายฮาร์ดแวร์
    • ร้านขายของเล่น
    Food & Hospitality
    • บาร์และผับ
    • ร้านอาหาร
    • อาหารฟาสต์ฟู้ด
    • Guest House
    • ตัวแทนจำหน่ายเครื่องดื่ม
    • Hotel
    อสังหาริมทรัพย์
    • Real Estate Agency
    • บริษัทสถาปัตยกรรม
    • บริษัทรับเหมา
    • การจัดการอสังหาริมทรัพย์
    • การจัดสวน
    • สมาคมเจ้าของอสังหาริมทรัพย์
    ปรึกษา
    • สำนักงานบัญชี
    • Odoo พาร์ทเนอร์
    • เอเจนซี่การตลาด
    • สำนักงานกฎหมาย
    • บริการสรรหาบุคลากร
    • การตรวจสอบและการรับรอง
    ระบบการผลิต
    • Textile
    • เหล็ก
    • เฟอร์นิเจอร์
    • อาหาร
    • Brewery
    • ของขวัญขององค์กร
    สุขภาพ & ฟิตเนส
    • ชมรมกีฬา
    • ร้านขายแว่นตา
    • ฟิตเนส
    • ผู้ประกอบวิชาชีพด้านสุขภาพ
    • ร้านขายยา
    • ร้านทำผม
    Trades
    • ช่างซ่อม
    • ฮาร์ดแวร์และการสนับสนุนด้านไอที
    • ระบบพลังงานแสงอาทิตย์
    • ช่างทำรองเท้า
    • บริการทำความสะอาด
    • HVAC Services
    อื่น ๆ
    • Nonprofit Organization
    • สำนักงานสิ่งแวดล้อม
    • ร้านเช่าป้ายโฆษณา
    • การถ่ายภาพ
    • ร้านเช่าจักรยาน
    • ตัวแทนจำหน่ายซอฟต์แวร์
    Browse all Industries
  • คอมมูนิตี้
    ศึกษา
    • บทเรียน
    • เอกสารกำกับโปรแกรม
    • การรับรอง
    • การฝึกอบรม
    • บล็อก
    • พอดแคสต์
    เพิ่มศักยภาพให้กับการศึกษา
    • โปรแกรมการศึกษา
    • Scale Up! Business Game
    • เยี่ยมชม Odoo
    รับซอฟต์แวร์
    • ดาวน์โหลด
    • เปรียบเทียบรุ่น
    • เผยแพร่
    ทำงานร่วมกัน
    • Github
    • ฟอรั่ม
    • ระบบการจัดงานอีเวนต์
    • การแปล
    • ร่วมเป็นพาร์ทเนอร์
    • Services for Partners
    • ลงทะเบียนเพื่อสร้างบัญชีบริษัทของคุณ
    รับบริการ
    • ค้นหาพาร์ทเนอร์
    • ค้นหานักบัญชี
    • พบกับที่ปรึกษา
    • บริการติดตั้งระบบเพื่อใช้งาน
    • ข้อมูลอ้างอิงลูกค้า
    • การสนับสนุน
    • อัปเกรด
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    รับการสาธิต
  • ราคา
  • ช่วยเหลือ

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • ลูกค้าสัมพันธ์
  • e-Commerce
  • ระบบบัญชี
  • สินค้าคงคลัง
  • PoS
  • โปรเจกต์
  • MRP
All apps
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
คุณต้องลงทะเบียนเพื่อโต้ตอบกับคอมมูนิตี้
All Posts คน เหรียญรางวัล
แท็ก (View all)
odoo accounting v14 pos v15
เกี่ยวกับฟอรั่มนี้
ช่วยเหลือ

How to inherit a class that contain super class odoo10

ติดตาม

รับการแจ้งเตือนเมื่อมีกิจกรรมในโพสต์นี้

คำถามนี้ถูกตั้งค่าสถานะ
pythoninheritodoo10.0
2 ตอบกลับ
6817 มุมมอง
อวตาร
Silviaa

Hi,

I want to modify the popup in the class 'account.register.payments', so i inherit and add my changes in that. After running this it will call the original method and shows the original popup, it will not shows mine.

Coding,

class account_register_payments(models.TransientModel):

    _inherit = "account.register.payments"

   @api.model

        def default_get(self, fields):

             rec = super(account_register_payments, self).default_get(fields)

                context = dict(self._context or {})

                active_model = context.get('active_model')

                active_ids = context.get('active_ids')


                # Checks on context parameters

                if not active_model or not active_ids:

                        raise UserError(_("Programmation error: wizard action executed without active_model or active_ids in                         context."))

                if active_model != 'account.invoice':

                    raise UserError(_("Programmation error: the expected model for this action is 'account.invoice'. The provided one                     is '%d'.") % active_model)

                # Checks on received invoice records

                invoices = self.env[active_model].browse(active_ids)

                if any(invoice.state != 'open' for invoice in invoices):

                    raise UserError(_("You can only register payments for open invoices"))

                if any(inv.commercial_partner_id != invoices[0].commercial_partner_id for inv in invoices):

                    raise UserError(_("In order to pay multiple invoices at once, they must belong to the same commercial                     partner."))

                if any(MAP_INVOICE_TYPE_PARTNER_TYPE[inv.type] != MAP_INVOICE_TYPE_PARTNER_TYPE[invoices[0].type] for inv                 in invoices):

                    raise UserError(_("You cannot mix customer invoices and vendor bills in a single payment."))

                if any(inv.currency_id != invoices[0].currency_id for inv in invoices):

                    raise UserError(_("In order to pay multiple invoices at once, they must use the same currency."))

                total_amount = sum(inv.residual * MAP_INVOICE_TYPE_PAYMENT_SIGN[inv.type] for inv in invoices)

                communication = ' '.join([ref for ref in invoices.mapped('reference') if ref])

                rec.update({

                    'amount': abs(total_amount),

                    'currency_id': invoices[0].currency_id.id,

                    'payment_type': total_amount > 0 and 'inbound' or 'outbound',

                    'partner_id': invoices[0].commercial_partner_id.id,

                    'partner_type': MAP_INVOICE_TYPE_PARTNER_TYPE[invoices[0].type],

                    'communication': communication,

                })

                return rec


From this method, i need to modify "raise UserError(_("In order to pay multiple invoices at once, they must belong to the same commercial                     partner."))" (this popup).

But it contains the " rec = super(account_register_payments, self).default_get(fields)" super class of that original class, so that it execute the original not mine.

can anyone help me to inherit this method..

0
อวตาร
ละทิ้ง
อวตาร
Silviaa
ผู้เขียน คำตอบที่ดีที่สุด

         This is my code changes:

class account_register_payments(models.TransientModel):

    _inherit = "account.register.payments"

    @api.model

    def default_get(self, fields):

        """This method is to create payment for multiple

        vendors and also check whether the shipment or

        invoice in return or refund state. If there it will

        raise popup based on shipment and invoice returns

        :rtype dict

        :return returns the payment value"""

        rec = super(account_register_payments, self).default_get(fields)

        context = dict(self._context or {})

        active_model = context.get('active_model')

        active_ids = context.get('active_ids')

        # Checks on context parameters

        if not active_model or not active_ids:

            raise UserError(_("Programmation error: wizard action executed \

                            without active_model or active_ids in context."))

        if active_model != 'account.invoice':

            raise UserError(_("Programmation error: the expected model for this \

                            ' action is 'account.invoice'. \

                            The provided one is '%d'.")

                            % active_model)

        # Checks on received invoice records

        invoices = self.env[active_model].browse(active_ids)

        for invoice in invoices:

            partner = invoice.partner_id.id

            stock_picking = self.env['stock.picking'].search(

                [('partner_id', '=', partner)])

            for picking in stock_picking:

                if (picking.return_doc is True and picking.state != 'done'):

                    raise UserError(_("Some shipment are in return stage, \

                                    Please complete it"))

            invoice_return = self.env['account.invoice'].search(

                [('partner_id', '=', partner)])

            for inv in invoice_return:

                if(inv.type == 'in_refund'):

                    raise UserError(_("some of the invoices are in return state, \

                                    have to complete it"))

        if any(invoice.state != 'open' for invoice in invoices):

            raise UserError(_("You can only register payments \

                            for open invoices"))

        # =======================================================================

        # if any(inv.commercial_partner_id != invoices[0].commercial_partner_id for inv in invoices):

        # raise UserError(_("In order to pay multiple invoices at once, \

        # they must belong to the same commercial partner."))

        # =======================================================================

        if any(MAP_INVOICE_TYPE_PARTNER_TYPE[inv.type] != MAP_INVOICE_TYPE_PARTNER_TYPE[invoices[0].type] for inv in invoices):

            raise UserError(_("You cannot mix customer invoices and \

                            vendor bills in a single payment."))

        if any(inv.currency_id != invoices[0].currency_id for inv in invoices):

            raise UserError(_("In order to pay multiple invoices at once, \

                                they must use the same currency."))

        total_amount = sum(inv.residual * MAP_INVOICE_TYPE_PAYMENT_SIGN[inv.type] for inv in invoices)

        communication = ' '.join([ref for ref in invoices.mapped('reference') if ref])

        rec.update({

            'amount': abs(total_amount),

            'currency_id': invoices[0].currency_id.id,

            'payment_type': total_amount > 0 and 'inbound' or 'outbound',

            'partner_id': invoices[0].commercial_partner_id.id,

            'partner_type': MAP_INVOICE_TYPE_PARTNER_TYPE[invoices[0].type],

            'communication': communication,

        })

        return rec


the bold things are my code changes but it doesn't works me because it calls the original one.

How can i rectify this..

0
อวตาร
ละทิ้ง
อวตาร
Chandran N Nepolean
คำตอบที่ดีที่สุด

Hi silviaa,

It seems you are using same class name as original . Please refer original code

https://github.com/odoo/odoo/blob/447c2770b0b3b809d822b2e1acfaba95777be70d/addons/account/models/account_payment.py

can you please change class name and try. I cannot see any changes in this method. Its totally same as original. 

Thanks

Chandran Nepolean

0
อวตาร
ละทิ้ง
สนุกกับการพูดคุยนี้ใช่ไหม? เข้าร่วมเลย!

สร้างบัญชีวันนี้เพื่อเพลิดเพลินไปกับฟีเจอร์พิเศษและมีส่วนร่วมกับคอมมูนิตี้ที่ยอดเยี่ยมของเรา!

ลงชื่อ
Related Posts ตอบกลับ มุมมอง กิจกรรม
Automatically create one2many fields
python odoo10.0
อวตาร
อวตาร
อวตาร
อวตาร
3
ก.ค. 20
9799
Odoo10.0: Cascade inheritance broken ?
inherit odoo10.0
อวตาร
อวตาร
1
ก.พ. 19
3688
when i submit the form the alert msg is showing but form is getting submit how to validate my form here
python odoo10.0
อวตาร
อวตาร
2
มิ.ย. 18
9932
TypeError: cannot convert dictionary update sequence element #0 to a sequence แก้ไขแล้ว
python odoo10.0
อวตาร
อวตาร
1
ต.ค. 17
8936
ImportError: No module named http in odoo10
python odoo10.0
อวตาร
1
ก.ค. 17
9409
คอมมูนิตี้
  • บทเรียน
  • เอกสารกำกับโปรแกรม
  • ฟอรั่ม
โอเพนซอร์ส
  • ดาวน์โหลด
  • Github
  • Runbot
  • การแปล
บริการ
  • โฮสติ้ง odoo.sh เซิร์ฟเวอร์
  • การสนับสนุน
  • อัปเกรด
  • การพัฒนาที่กำหนดเอง
  • การศึกษา
  • ค้นหานักบัญชี
  • ค้นหาพาร์ทเนอร์
  • ร่วมเป็นพาร์ทเนอร์
เกี่ยวกับเรา
  • บริษัทของเรา
  • ทรัพย์สินในรูปของเครื่องหมายการค้า
  • ติดต่อเรา
  • งาน
  • ระบบการจัดงานอีเวนต์
  • พอดแคสต์
  • บล็อก
  • ลูกค้า
  • กฎหมาย • ความเป็นส่วนตัว
  • ความปลอดภัย
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo เป็นชุดแอปธุรกิจแบบเปิดที่ครอบคลุมทุกความต้องการของบริษัทของคุณ อาธิ CRM eCommerce ระบบบัญชี ระบบสินค้าคงคลัง ระบบการขายหน้าร้าน โปรเจกต์ และ อีกมากมาย

ความเหนือกว่าอันเป็นเอกลักษณ์ของ Odoo คือการใช้งานที่ง่ายดายและผสานการทำงานอย่างสมบูรณ์แบบในเวลาเดียวกัน

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now