[IMP] l10n_in*: remove l10n_in_shipping_gstin
Companies only get a tax credit on the bill to GST number(vat), not on the shipping GST number. task - 2723111 closes odoo/odoo#81977 Related: odoo/upgrade#3493 Signed-off-by: Josse Colpaert <jco@odoo.com>
This commit is contained in:
@@ -49,16 +49,6 @@ class AccountMove(models.Model):
|
||||
return self.env.ref('l10n_in.state_in_ot')
|
||||
return partner.state_id
|
||||
|
||||
def _l10n_in_get_shipping_partner(self):
|
||||
"""Overwrite in sale"""
|
||||
self.ensure_one()
|
||||
return self.partner_id
|
||||
|
||||
@api.model
|
||||
def _l10n_in_get_shipping_partner_gstin(self, shipping_partner):
|
||||
"""Overwrite in sale"""
|
||||
return shipping_partner.vat
|
||||
|
||||
def _post(self, soft=True):
|
||||
"""Use journal type to define document type because not miss state in any entry including POS entry"""
|
||||
posted = super()._post(soft)
|
||||
@@ -76,19 +66,16 @@ class AccountMove(models.Model):
|
||||
elif move.journal_id.type == 'purchase':
|
||||
move.l10n_in_state_id = company_unit_partner.state_id
|
||||
|
||||
shipping_partner = move._l10n_in_get_shipping_partner()
|
||||
# In case of shipping address does not have GSTN then also check customer(partner_id) GSTN
|
||||
# This happens when Bill-to Ship-to transaction where shipping(Ship-to) address is unregistered and customer(Bill-to) is registred.
|
||||
move.l10n_in_gstin = move._l10n_in_get_shipping_partner_gstin(shipping_partner) or move.partner_id.vat
|
||||
move.l10n_in_gstin = move.partner_id.vat
|
||||
if not move.l10n_in_gstin and move.l10n_in_gst_treatment in ['regular', 'composition', 'special_economic_zone', 'deemed_export']:
|
||||
raise ValidationError(_(
|
||||
"Partner %(partner_name)s (%(partner_id)s) GSTIN is required under GST Treatment %(name)s",
|
||||
partner_name=shipping_partner.name,
|
||||
partner_id=shipping_partner.id,
|
||||
partner_name=move.partner_id.name,
|
||||
partner_id=move.partner_id.id,
|
||||
name=gst_treatment_name_mapping.get(move.l10n_in_gst_treatment)
|
||||
))
|
||||
if move.journal_id.type == 'sale':
|
||||
move.l10n_in_state_id = self._l10n_in_get_indian_state(shipping_partner)
|
||||
move.l10n_in_state_id = self._l10n_in_get_indian_state(move.partner_id)
|
||||
if not move.l10n_in_state_id:
|
||||
move.l10n_in_state_id = self._l10n_in_get_indian_state(move.partner_id)
|
||||
#still state is not set then assumed that transaction is local like PoS so set state of company unit
|
||||
|
||||
@@ -14,7 +14,6 @@
|
||||
'data': [
|
||||
'views/report_sale_order.xml',
|
||||
'views/sale_views.xml',
|
||||
'views/res_partner_views.xml',
|
||||
],
|
||||
'demo': [
|
||||
'data/product_demo.xml',
|
||||
|
||||
@@ -1,6 +1,4 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from . import res_partner
|
||||
from . import sale_order
|
||||
from . import account_move
|
||||
|
||||
@@ -1,16 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import api, models
|
||||
|
||||
|
||||
class AccountMove(models.Model):
|
||||
_inherit = "account.move"
|
||||
|
||||
def _l10n_in_get_shipping_partner(self):
|
||||
shipping_partner = super()._l10n_in_get_shipping_partner()
|
||||
return self.partner_shipping_id or shipping_partner
|
||||
|
||||
@api.model
|
||||
def _l10n_in_get_shipping_partner_gstin(self, shipping_partner):
|
||||
return shipping_partner.l10n_in_shipping_gstin
|
||||
@@ -1,18 +0,0 @@
|
||||
# -*- coding: utf-8 -*-
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from odoo import api, fields, models, _
|
||||
from odoo.exceptions import ValidationError
|
||||
|
||||
|
||||
class ResPartner(models.Model):
|
||||
_inherit = 'res.partner'
|
||||
|
||||
l10n_in_shipping_gstin = fields.Char("Shipping GSTIN")
|
||||
|
||||
@api.constrains('l10n_in_shipping_gstin')
|
||||
def _check_l10n_in_shipping_gstin(self):
|
||||
check_vat_in = self.env['res.partner'].check_vat_in
|
||||
wrong_shipping_gstin_partner = self.filtered(lambda p: p.l10n_in_shipping_gstin and not check_vat_in(p.l10n_in_shipping_gstin))
|
||||
if wrong_shipping_gstin_partner:
|
||||
raise ValidationError(_("The shipping GSTIN number [%s] does not seem to be valid") %(",".join(p.l10n_in_shipping_gstin for p in wrong_shipping_gstin_partner)))
|
||||
@@ -1,17 +0,0 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<odoo>
|
||||
<record id="l10n_in_view_partner_form" model="ir.ui.view">
|
||||
<field name="name">l10n.in.res.partner.vat.inherit</field>
|
||||
<field name="model">res.partner</field>
|
||||
<field name="priority" eval="100"/>
|
||||
<field name="inherit_id" ref="base.view_partner_form"/>
|
||||
<field name="arch" type="xml">
|
||||
<xpath expr="//field[@name='vat']" position="after">
|
||||
<field name="l10n_in_shipping_gstin" groups="account.group_delivery_invoice_address" attrs="{'invisible': ['|',('type', '!=', 'delivery'),('parent_id', '=', False)]}"/>
|
||||
</xpath>
|
||||
<xpath expr="//field[@name='child_ids']/form//field[@name='comment']" position="before">
|
||||
<field name="l10n_in_shipping_gstin" groups="account.group_delivery_invoice_address" attrs="{'invisible': [('type', '!=', 'delivery')]}"/>
|
||||
</xpath>
|
||||
</field>
|
||||
</record>
|
||||
</odoo>
|
||||
Reference in New Issue
Block a user