Commit e2f7cd02 by aa.gusti

penambahan objek pajak lain2

1 parent 9d078ac7
...@@ -31,6 +31,7 @@ ...@@ -31,6 +31,7 @@
<field name="district_id" ref="id_gov.ct_jb_71"/> <field name="district_id" ref="id_gov.ct_jb_71"/>
<field name="company_id" ref="pdl_kab.pdl_company_id"/> <field name="company_id" ref="pdl_kab.pdl_company_id"/>
<field name="zip">90241</field> <field name="zip">90241</field>
<field name="type">wp</field>
<field name="customer_rank">1</field> <field name="customer_rank">1</field>
<field name="phone">+62 812-345-678</field> <field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field> <field name="email">info@company.idexample.com</field>
......
...@@ -39,17 +39,41 @@ class ResPartner(models.Model): ...@@ -39,17 +39,41 @@ class ResPartner(models.Model):
domain="[('sub_district_id', '=?', sub_district_id)]" domain="[('sub_district_id', '=?', sub_district_id)]"
) )
# type = fields.Selection( type = fields.Selection(
# selection_add=[('op', 'Objek Pajak'), selection_add=[('op', 'Objek Pajak'),
# ('wp', 'Wajib Pajak'), ('wp', 'Wajib Pajak'),
# ('owner', 'Pemilik'), ],
# ('operation', 'Pengelola')], ondelete={
# ondelete={ 'op': 'cascade',
# 'op': 'cascade', 'wp': 'cascade',
# 'wp': 'cascade', })
# 'owner': 'cascade',
# 'operation': 'cascade' @api.onchange('parent_id')
# }) def onchange_parent_id(self):
# return values in result, as this method is used by _fields_sync()
if not self.parent_id:
return
result = {}
partner = self._origin
if partner.parent_id and partner.parent_id != self.parent_id and self.type != 'op':
result['warning'] = {
'title': _('Warning'),
'message': _('Changing the company of a contact should only be done if it '
'was never correctly set. If an existing contact starts working for a new '
'company then a new contact should be created under that new '
'company. You can use the "Discard" button to abandon this change.')
}
if partner.type == 'contact' or self.type == 'contact':
# for contacts: copy the parent address, if set (aka, at least one
# value is set in the address: otherwise, keep the one from the
# contact)
address_fields = self._address_fields()
if any(self.parent_id[key] for key in address_fields):
def convert(value):
return value.id if isinstance(value, models.BaseModel) else value
result['value'] = {key: convert(self.parent_id[key]) for key in address_fields}
return result
# def _get_name_search_order_by_fields(self): # def _get_name_search_order_by_fields(self):
# res = super()._get_name_search_order_by_fields() # res = super()._get_name_search_order_by_fields()
......
...@@ -77,11 +77,12 @@ class Product(models.Model): ...@@ -77,11 +77,12 @@ class Product(models.Model):
wp_sub_district_id = fields.Many2one('res.district.sub', compute='_compute_wp', store=False) wp_sub_district_id = fields.Many2one('res.district.sub', compute='_compute_wp', store=False)
wp_district_id = fields.Many2one('res.district', compute='_compute_wp', store=False) wp_district_id = fields.Many2one('res.district', compute='_compute_wp', store=False)
wp_state_id = fields.Many2one('res.country.state', compute='_compute_wp', store=False) wp_state_id = fields.Many2one('res.country.state', compute='_compute_wp', store=False)
wp_zip = fields.Char(compute='_compute_wp') wp_zip = fields.Char(compute='_compute_wp', string="ZIP")
wp_phone = fields.Char(compute='_compute_wp') wp_phone = fields.Char(compute='_compute_wp', string="Phone")
wp_email = fields.Char(compute='_compute_wp') wp_email = fields.Char(compute='_compute_wp', string="Email")
wp_website = fields.Char(compute='_compute_wp') wp_website = fields.Char(compute='_compute_wp', string="Web Site")
rate = fields.Float(related='categ_id.rate', store=True, readonly=False) rate = fields.Float(related='categ_id.rate', store=True, readonly=False)
def _get_wp_address_field_names(self): def _get_wp_address_field_names(self):
return [ return [
("wp_id", "id"), ("wp_id", "id"),
...@@ -110,13 +111,26 @@ class Product(models.Model): ...@@ -110,13 +111,26 @@ class Product(models.Model):
for wp in self.filtered(lambda product: product.partner_id): for wp in self.filtered(lambda product: product.partner_id):
if not wp.partner_id: if not wp.partner_id:
continue continue
address_data = wp.partner_id.parent_id.sudo().address_get(adr_pref=['contact']) address_data = wp.partner_id.parent_id.sudo().address_get(adr_pref=['wp'])
if address_data['contact']: if address_data['wp']:
partner = wp.partner_id.browse(address_data['contact']).sudo() partner = wp.partner_id.browse(address_data['wp']).sudo()
wp.update(wp._get_wp_address_update(partner)) wp.update(wp._get_wp_address_update(partner))
else: else:
wp.update(wp._get_wp_address_update(False)) wp.update(wp._get_wp_address_update(False))
@api.onchange('wp_id')
def _onchange_wp_id(self):
self.wp_street = self.wp_id.street
self.wp_street2 = self.wp_id.street2
self.wp_village_id = self.wp_id.village_id
self.wp_sub_district_id = self.wp_id.sub_district_id
self.wp_district_id = self.wp_id.district_id
self.wp_state_id = self.wp_id.state_id
self.wp_zip = self.wp_id.zip
self.wp_phone = self.wp_id.phone
self.wp_email = self.wp_id.email
self.wp_website = self.wp_id.website
def copy(self, default=None): def copy(self, default=None):
raise UserError(_('Duplicating a company is not allowed. Please create a new company instead.')) raise UserError(_('Duplicating a company is not allowed. Please create a new company instead.'))
...@@ -252,7 +266,7 @@ class Product(models.Model): ...@@ -252,7 +266,7 @@ class Product(models.Model):
on product address fields. Fields are labeled same on both models. """ on product address fields. Fields are labeled same on both models. """
return ['street', 'street2', 'city', 'zip', 'state_id', 'country_id', return ['street', 'street2', 'city', 'zip', 'state_id', 'country_id',
'district_id', 'sub_district_id', 'village_id', 'phone', 'district_id', 'sub_district_id', 'village_id', 'phone',
'email','website'] 'email', 'website']
@api.onchange('village_id') @api.onchange('village_id')
def _onchange_village_id(self): def _onchange_village_id(self):
...@@ -300,9 +314,9 @@ class Product(models.Model): ...@@ -300,9 +314,9 @@ class Product(models.Model):
# partner's contact address # partner's contact address
def _compute_address(self): def _compute_address(self):
for product in self.filtered(lambda product: product.partner_id): for product in self.filtered(lambda product: product.partner_id):
address_data = product.partner_id.sudo().address_get(adr_pref=['private']) address_data = product.partner_id.sudo().address_get(adr_pref=['op'])
if address_data['private']: if address_data['op']:
partner = product.partner_id.browse(address_data['private']).sudo() partner = product.partner_id.browse(address_data['op']).sudo()
product.update(product._get_product_address_update(partner)) product.update(product._get_product_address_update(partner))
@api.depends('partner_id.image_1920') @api.depends('partner_id.image_1920')
...@@ -356,14 +370,11 @@ class Product(models.Model): ...@@ -356,14 +370,11 @@ class Product(models.Model):
partner = self.env['res.partner'].create({ partner = self.env['res.partner'].create({
'name': vals['name'], 'name': vals['name'],
'is_company': False, 'is_company': False,
'type': "private" 'type': "op"
}) })
# compute stored fields, for example address dependent fields # compute stored fields, for example address dependent fields
partner.flush() partner.flush()
vals['partner_id'] = partner.id vals['partner_id'] = partner.id
_logger.info('-----------------')
_logger.info(vals)
self.clear_caches() self.clear_caches()
product = super(Product, self).create(vals) product = super(Product, self).create(vals)
...@@ -388,7 +399,7 @@ class Product(models.Model): ...@@ -388,7 +399,7 @@ class Product(models.Model):
partner = self.env['res.partner'].create({ partner = self.env['res.partner'].create({
'name': values['name'], 'name': values['name'],
'is_company': False, 'is_company': False,
'type': 'private', 'type': 'op',
# 'image_1920': vals.get('logo'), # 'image_1920': vals.get('logo'),
# 'email': vals.get('email'), # 'email': vals.get('email'),
# 'phone': vals.get('phone'), # 'phone': vals.get('phone'),
......
...@@ -11,16 +11,54 @@ ...@@ -11,16 +11,54 @@
name="Pendataan" name="Pendataan"
parent="pdl_kab_menu_root" parent="pdl_kab_menu_root"
sequence="2"/> sequence="2"/>
<!--Sub Pendataan-->
<menuitem id="pendataan_hotel_menu" <menuitem id="pendataan_hotel_menu"
name="Hotel" name="Hotel"
parent="pendataan_pdl_kab_menu" parent="pendataan_pdl_kab_menu"
action="action_product_hotel_pdl_kab" action="action_product_hotel_pdl_kab"
sequence="2"/> sequence="3"/>
<menuitem id="pendataan_resto_menu" <menuitem id="pendataan_resto_menu"
name="Restaurant" name="Restaurant"
parent="pendataan_pdl_kab_menu" parent="pendataan_pdl_kab_menu"
action="action_product_resto_pdl_kab" action="action_product_resto_pdl_kab"
sequence="2"/> sequence="4"/>
<menuitem id="pendataan_hiburan_menu"
name="Hiburan"
parent="pendataan_pdl_kab_menu"
action="action_product_hiburan_pdl_kab"
sequence="5"/>
<menuitem id="pendataan_ppj_menu"
name="PPJ"
parent="pendataan_pdl_kab_menu"
action="action_product_ppj_pdl_kab"
sequence="6"/>
<menuitem id="pendataan_parkir_menu"
name="Parkir"
parent="pendataan_pdl_kab_menu"
action="action_product_parkir_pdl_kab"
sequence="7"/>
<menuitem id="pendataan_walet_menu"
name="Walet"
parent="pendataan_pdl_kab_menu"
action="action_product_walet_pdl_kab"
sequence="8"/>
<menuitem id="pendataan_walet_menu"
name="Minerba"
parent="pendataan_pdl_kab_menu"
action="action_product_galian_pdl_kab"
sequence="9"/>
<menuitem id="pendataan_reklame_menu"
name="Reklame"
parent="pendataan_pdl_kab_menu"
action="action_product_reklame_pdl_kab"
sequence="10"/>
<menuitem id="pendataan_abt_menu"
name="Air Bawah Tanah"
parent="pendataan_pdl_kab_menu"
action="action_product_abt_pdl_kab"
sequence="10"/>
<!--Penetapan--> <!--Penetapan-->
<!-- <menuitem id="penetapan_pdl_kab_menu"--> <!-- <menuitem id="penetapan_pdl_kab_menu"-->
......
...@@ -7,8 +7,8 @@ ...@@ -7,8 +7,8 @@
<field name="inherit_id" ref="base.view_res_partner_filter"/> <field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//filter[@name='inactive']" position="before"> <xpath expr="//filter[@name='inactive']" position="before">
<filter string="Wajib Pajak" name="customer" domain="[('customer_rank','>', 0)]"/> <filter string="Wajib Pajak" name="wp" domain="[('type','=', 'wp')]"/>
<filter string="Vendor Bills" name="supplier" domain="[('supplier_rank','>', 0)]"/> <filter string="Objek Pajak" name="op" domain="[('type','=', 'op')]"/>
<separator/> <separator/>
</xpath> </xpath>
</field> </field>
...@@ -19,10 +19,11 @@ ...@@ -19,10 +19,11 @@
<field name="res_model">res.partner</field> <field name="res_model">res.partner</field>
<field name="view_mode">kanban,tree,form</field> <field name="view_mode">kanban,tree,form</field>
<field name="search_view_id" ref="base.view_res_partner_filter"/> <field name="search_view_id" ref="base.view_res_partner_filter"/>
<field name="domain">[('customer_rank','>',0)]</field> <field name="domain">[('type','=','wp')]</field>
<field name="context">{ <field name="context">{
'res_partner_search_mode': 'customer', 'res_partner_search_mode': 'customer',
'default_is_company': True, 'default_is_company': True,
'default_type': 'wp',
'default_customer_rank': 1} 'default_customer_rank': 1}
</field> </field>
<field name="help" type="html"> <field name="help" type="html">
......
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<tree string="Objek Pajak" sample="1"> <tree string="Objek Pajak" sample="1">
<field name="default_code" string="NOPD"/> <field name="default_code" string="NOPD"/>
<field name="name" string="Nama Objek"/> <field name="name" string="Nama Objek"/>
<!-- <field name="lst_price" string="Min Omset"/>--> <!-- <field name="lst_price" string="Min Omset"/>-->
<field name="wp_id" string="Wajib Pajak"/> <field name="wp_id" string="Wajib Pajak"/>
<field name="type" string="Jenis"/> <field name="type" string="Jenis"/>
<field name="company_id" string="Lembaga/Organisasi"/> <field name="company_id" string="Lembaga/Organisasi"/>
...@@ -20,7 +20,6 @@ ...@@ -20,7 +20,6 @@
<field name="name">op.template.form</field> <field name="name">op.template.form</field>
<field name="model">product.template</field> <field name="model">product.template</field>
<field name="inherit_id" ref="product.product_template_form_view"/> <field name="inherit_id" ref="product.product_template_form_view"/>
<!-- <field name="inherit_id">product.product_template_only_form_view</field>-->
<field name="arch" type="xml"> <field name="arch" type="xml">
<xpath expr="//div[@name='options']" position="attributes"> <xpath expr="//div[@name='options']" position="attributes">
<attribute name="invisible">1</attribute> <attribute name="invisible">1</attribute>
...@@ -28,12 +27,11 @@ ...@@ -28,12 +27,11 @@
<xpath expr="//div[@name='options']" position="attributes"> <xpath expr="//div[@name='options']" position="attributes">
<attribute name="invisible">1</attribute> <attribute name="invisible">1</attribute>
</xpath> </xpath>
<!-- <xpath expr="//field[@name='list_price']" position="attributes">--> <xpath expr="//field[@name='standard_price']" position="attributes">
<!-- <attribute name="string">Minimum Omzet</attribute>--> <attribute name="invisible">1</attribute>
<!-- </xpath>--> </xpath>
<xpath expr="//field[@name='standard_price']" position="replace"/> <xpath expr="//field[@name='list_price']" position="attributes">
<xpath expr="//field[@name='list_price']" position="replace"> <attribute name="invisible">1</attribute>
</xpath> </xpath>
<xpath expr="//notebook" position="before"> <xpath expr="//notebook" position="before">
...@@ -71,7 +69,9 @@ ...@@ -71,7 +69,9 @@
placeholder="e.g. https://opensipkd.com"/> placeholder="e.g. https://opensipkd.com"/>
</group> </group>
<group> <group>
<field name="wp_id" string="Wajib Pajak"/> <field name="wp_id" string="Wajib Pajak" domain="[('type','=', 'wp')]"
options='{"no_open": False}'
context="{'default_type': 'wp', 'readonly_type':True}"/>
<label for="street" string="Address"/> <label for="street" string="Address"/>
<div class="o_address_format"> <div class="o_address_format">
<field name="wp_street" placeholder="Street..." class="o_address_street" <field name="wp_street" placeholder="Street..." class="o_address_street"
......
...@@ -32,7 +32,6 @@ ...@@ -32,7 +32,6 @@
</p> </p>
</field> </field>
</record> </record>
<record id="action_product_resto_pdl_kab" model="ir.actions.act_window"> <record id="action_product_resto_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Restoran</field> <field name="name">Objek Pajak Restoran</field>
<field name="res_model">product.template</field> <field name="res_model">product.template</field>
...@@ -52,6 +51,139 @@ ...@@ -52,6 +51,139 @@
</p> </p>
</field> </field>
</record> </record>
<record id="action_product_hiburan_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Hiburan</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','hiburan')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'hiburan'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Hiburan
</p>
</field>
</record>
<record id="action_product_ppj_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak PPJ</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','ppj')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'ppj'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak PPJ
</p>
</field>
</record>
<record id="action_product_walet_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Walet</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','walet')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'walet'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Sarang Burung Walet
</p>
</field>
</record>
<record id="action_product_parkir_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Parkir</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','parkir')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'parkir'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Parkir
</p>
</field>
</record>
<record id="action_product_abt_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak ABT</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','abt')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'abt'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Air Bawah Tanah
</p>
</field>
</record>
<record id="action_product_reklame_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Reklame</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','reklame')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'resto'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Reklame
</p>
</field>
</record>
<record id="action_product_galian_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak MINERBA</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','galian')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'galian'}
</field>
<field name="view_ids" eval="[(5, 0, 0),
(0, 0, {'view_mode': 'tree', 'view_id': ref('op_template_tree')}),
(0, 0, {'view_mode': 'form', 'view_id': ref('hotel_template_form')}),
(0, 0, {'view_mode': 'kanban'})]"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Galian Mineral Bukan Logam
</p>
</field>
</record>
</data> </data>
......
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!