Commit 3828f9e8 by aa.gusti

penambahan autonumber

1 parent a2786de9
...@@ -13,7 +13,7 @@ Memudahkan dalam mengelola tagihan kepada wajib pajak atau wajib retribusi ...@@ -13,7 +13,7 @@ Memudahkan dalam mengelola tagihan kepada wajib pajak atau wajib retribusi
'category': 'Indonesia Goverment', 'category': 'Indonesia Goverment',
'website': 'https://opensipkd.com', 'website': 'https://opensipkd.com',
'images': [], 'images': [],
'depends': ['id_gov'], 'depends': ['id_gov','portal'],
'data': [ 'data': [
'security/account_security.xml', 'security/account_security.xml',
'security/ir.model.access.csv', 'security/ir.model.access.csv',
......
from . import bphtb_ref from . import bphtb_ref
from . import partner from . import partner
from . import sales
\ No newline at end of file \ No newline at end of file
from . import sequence_mixin
from . import sales
import logging import logging
from psycopg2 import DatabaseError, sql
from odoo import fields, models, api, _ from odoo import fields, models, api, _
from odoo.exceptions import UserError
# from odoo.tools import sql
_logger = logging.getLogger(__name__) _logger = logging.getLogger(__name__)
...@@ -23,15 +26,28 @@ class ResPartner(models.Model): ...@@ -23,15 +26,28 @@ class ResPartner(models.Model):
def write(self, vals): def write(self, vals):
_logger.info(vals) _logger.info(vals)
_logger.info(self.create_uid) if self.env.user.has_group('bphtb_kab.group_bphtb_ppat'):
_logger.info(self.env) _logger.info(f'has groups {self.create_uid.id} {self.env.user.id}')
_logger.info(self.env.user.id) if self.create_uid.id != self.env.user.id:
if self.create_uid.id != self.env.user.id: _logger.info('different')
return { raise UserError(_("You are not a record owner"))
'warning': { res = super(ResPartner, self).write(vals)
'title': _('Warning'),
'message': _('Modified Record Forbidden')
}
}
res = super().write(vals)
return res return res
def _increase_rank(self, field, n=1):
if self.ids and field in ['customer_rank', 'supplier_rank']:
try:
with self.env.cr.savepoint(flush=False):
query = sql.SQL("""
SELECT {field} FROM res_partner WHERE ID IN %(partner_ids)s FOR UPDATE NOWAIT;
UPDATE res_partner SET {field} = {field} + %(n)s
WHERE id IN %(partner_ids)s
""").format(field=sql.Identifier(field))
self.env.cr.execute(query, {'partner_ids': tuple(self.ids), 'n': n})
for partner in self:
self.env.cache.remove(partner, partner._fields[field])
except DatabaseError as e:
if e.pgcode == '55P03':
_logger.debug('Another transaction already locked partner rows. Cannot update partner ranks.')
else:
raise e
<odoo> <odoo>
<data> <data>
<!-- <record id="res_partner_ppat_search" model="ir.ui.view">--> <record id="partner_form_id_bphtb" model="ir.ui.view">
<!-- <field name="name">res.partner.ppat.search.inherit</field>--> <field name="name">partner.form.id.bphtb.inherit</field>
<!-- <field name="model">res.partner</field>--> <field name="model">res.partner</field>
<!-- <field name="inherit_id" ref="base.view_res_partner_filter"/>--> <field name="inherit_id" ref="id_gov.partner_form_id"/>
<!-- <field name="arch" type="xml">--> <field name="groups_id" eval="[(6, 0, [ref('bphtb_kab.group_bphtb_ppat') ])]"/>
<!-- <xpath expr="//filter[@name='inactive']" position="before">--> <field name="arch" type="xml">
<!-- <filter string="PPAT" name="ppat" domain="[('type','=', 'ppat')]"/>--> <xpath expr="//field[@name='type']" position="attributes">
<!-- <filter string="Wajib Pajak" name="wp" domain="[('type','=', 'wp')]"/>--> <attribute name="invisible">True</attribute>
<!-- <separator/>--> </xpath>
<!-- </xpath>--> </field>
<!-- </field>--> </record>
<!-- </record>-->
<record id="action_ppat_config_bphtb_kab" model="ir.actions.act_window"> <record id="action_ppat_config_bphtb_kab" model="ir.actions.act_window">
<field name="name">PPAT</field> <field name="name">PPAT</field>
<field name="res_model">res.partner</field> <field name="res_model">res.partner</field>
...@@ -35,7 +34,9 @@ ...@@ -35,7 +34,9 @@
<field name="domain">[('type','=','wp')]</field> <field name="domain">[('type','=','wp')]</field>
<field name="context">{ <field name="context">{
'default_is_company': True, 'default_is_company': True,
'default_type': 'ppat'} 'default_type': 'wp',
'show_type': 0}
</field> </field>
<field name="help" type="html"> <field name="help" type="html">
<p class="o_view_nocontent_smiling_face"> <p class="o_view_nocontent_smiling_face">
......
<odoo> <odoo>
<data> <data>
<record id="action_report_bphtb_sspd" model="ir.actions.report"> <record id="action_report_bphtb_sspd" model="ir.actions.report">
<field name="name">Format SSPD PDF</field> <field name="name">Format SSPD PDF</field>
<field name="model">bphtb.sales</field> <field name="model">bphtb.sales</field>
...@@ -10,29 +11,30 @@ ...@@ -10,29 +11,30 @@
<field name="binding_type">report</field> <field name="binding_type">report</field>
</record> </record>
<record id="view_bphtb_sspd_filter" model="ir.ui.view"> <record id="view_bphtb_sspd_filter" model="ir.ui.view">
<field name="name">view.bphtb.sspd.filter</field> <field name="name">view.bphtb.sspd.filter</field>
<field name="model">bphtb.sales</field> <field name="model">bphtb.sales</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<search string="Search SSPD"> <search string="Search SSPD">
<!-- <field name="name" string="SSPD" filter_domain="[('nop', 'ilike', self)]"/>--> <!-- <field name="name" string="SSPD" filter_domain="[('nop', 'ilike', self)]"/>-->
<field name="ppat_id"/> <field name="ppat_id"/>
<field name="wp_id"/> <field name="wp_id"/>
<field name="request_date"/> <field name="date"/>
<separator/> <separator/>
<filter string="Draft" name="draft" domain="[('state', '=', 'draft')]" help="Draft"/> <filter string="Draft" name="draft" domain="[('state', '=', 'draft')]" help="Draft"/>
<filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]" help="Confirmed"/> <filter string="Confirmed" name="confirmed" domain="[('state', '=', 'confirmed')]"
help="Confirmed"/>
<filter string="Canceled" name="canceled" domain="[('state', '=', 'canceled')]"/> <filter string="Canceled" name="canceled" domain="[('state', '=', 'canceled')]"/>
<separator/> <separator/>
<!-- <filter string="Jenis" name="jenis" date="jenis_id"/>--> <!-- <filter string="Jenis" name="jenis" date="jenis_id"/>-->
<filter string="Date" name="date" date="request_date"/> <filter string="Date" name="date" date="date"/>
<!-- <separator/>--> <!-- <separator/>-->
<group expand="0" string="Group By"> <group expand="0" string="Group By">
<filter string="PPAT" name="ppat" domain="[]" context="{'group_by': 'ppat_id'}"/> <filter string="PPAT" name="ppat" domain="[]" context="{'group_by': 'ppat_id'}"/>
<filter string="Jenis" name="jenis" domain="[]" context="{'group_by': 'jenis_id'}"/> <filter string="Jenis" name="jenis" domain="[]" context="{'group_by': 'jenis_id'}"/>
<filter string="WP" name="wp" domain="[]" context="{'group_by': 'wp_id'}"/> <filter string="WP" name="wp" domain="[]" context="{'group_by': 'wp_id'}"/>
<filter string="Status" name="status" domain="[]" context="{'group_by': 'state'}"/> <filter string="Status" name="status" domain="[]" context="{'group_by': 'state'}"/>
<filter string="Date" name="by_date" domain="[]" context="{'group_by': 'request_date'}"/> <filter string="Date" name="by_date" domain="[]" context="{'group_by': 'date'}"/>
</group> </group>
</search> </search>
</field> </field>
...@@ -54,6 +56,8 @@ ...@@ -54,6 +56,8 @@
<field name="model">bphtb.sales</field> <field name="model">bphtb.sales</field>
<field name="arch" type="xml"> <field name="arch" type="xml">
<tree string="SSPD" sample="1" create="1" delete="1" multi_edit="0"> <tree string="SSPD" sample="1" create="1" delete="1" multi_edit="0">
<field name="date"/>
<field name="name" string="Invoice No"/>
<field name="nop" string="NOP"/> <field name="nop" string="NOP"/>
<field name="tax_year" string="Tahun"/> <field name="tax_year" string="Tahun"/>
<field name="jenis_id" string="Jenis"/> <field name="jenis_id" string="Jenis"/>
...@@ -94,13 +98,16 @@ ...@@ -94,13 +98,16 @@
attrs="{'invisible': [('state', '!=', 'draft')]}"/> attrs="{'invisible': [('state', '!=', 'draft')]}"/>
<widget name="web_ribbon" title="Confirmed" <widget name="web_ribbon" title="Confirmed"
attrs="{'invisible': [('state', '!=', 'confirmed')]}"/> attrs="{'invisible': [('state', '!=', 'confirmed')]}"/>
<h1> <h2>
<field name="company_id" readonly="1"/> <field name="company_id" readonly="1"/>
</h1> </h2>
<h3>
<field name="district_id" readonly="1"/>
</h3>
<group> <group>
<field name="typ" readonly="1"/> <field name="typ" readonly="1"/>
<field name="ppat_id" domain="[('type','=','ppat')]"/> <field name="ppat_id" domain="[('type','=','ppat')]"/>
<field name="request_date"/> <field name="date"/>
</group> </group>
<notebook col_span="4"> <notebook col_span="4">
<page name="op" string="Objek Pajak"> <page name="op" string="Objek Pajak">
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!