Commit 9d078ac7 by aa.gusti

penambahan menu Pendataan

1 parent a536de07
......@@ -2,6 +2,8 @@ import logging
from odoo import models, fields, api
_logger = logging.getLogger(__name__)
class Company(models.Model):
_name = 'res.company'
......@@ -26,12 +28,9 @@ class Company(models.Model):
string="Desa/Kelurahan", domain="[('sub_district_id', '=?', sub_district_id)]"
)
def _get_company_address_field_names(self):
def _get_local_company_address_field_names(self):
""" Return a list of fields coming from the address partner to match
on company address fields. Fields are labeled same on both models. """
# todo saat install error karena
# belum ada pada partner
# if self.partner_id
return ['street', 'street2', 'city', 'zip', 'state_id', 'country_id',
'district_id', 'sub_district_id', 'village_id']
......@@ -90,8 +89,9 @@ class Company(models.Model):
return ['street', 'street2', 'city', 'zip', 'state_id', 'country_id']
def _get_company_address_update(self, partner):
return dict((fname, partner[fname])
for fname in self._get_company_address_field_names())
res = dict((fname, partner[fname])
for fname in self._get_local_company_address_field_names())
return res
# TODO @api.depends(): currently now way to formulate the dependency on the
# partner's contact address
......@@ -125,4 +125,3 @@ class Company(models.Model):
def _inverse_country(self):
for company in self:
company.partner_id.country_id = company.country_id
......@@ -57,7 +57,6 @@ class District(models.Model):
@api.model
def _name_search(self, name, args=None, operator='ilike', limit=100, name_get_uid=None):
args = args or []
if self.env.context.get('state_id'):
args = expression.AND([args, [('state_id', '=', self.env.context.get('state_id'))]])
......
......@@ -22,6 +22,7 @@ class ResPartner(models.Model):
# if not self.state_id else False
# )
#
identity_number = fields.Char(string="Identity Number", size=16)
district_id = fields.Many2one('res.district', string="Kabupaten/Kota",
ondelete='restrict', domain="[('state_id', '=?', state_id)]"
# default=lambda self: self.env.company.district_id
......
......@@ -18,6 +18,9 @@
<field name="priority">9</field>
<field name="inherit_id" ref="base.view_partner_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='type']" position="before">
<field name="identity_number"/>
</xpath>
<xpath expr="//field[@name='city']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
......
......@@ -15,18 +15,23 @@ Menydiakan module untuk followup Wajib Pajak/Retribusi.
'category': 'Indonesia Goverment',
'website': 'https://opensipkd.com',
'images': [],
'depends': ['id_gov', 'product'],
'depends': ['id_gov', 'product', 'portal'],
'data': [
'security/company_security.xml',
'security/account_security.xml',
'data/res_company.xml',
'data/res_user.xml',
'security/ir.model.access.csv',
# 'views/view_config.xml',
'views/partner.xml',
'views/product.xml',
# 'views/district.xml',
'views/product_hotel.xml',
'views/sudut_pandang.xml',
'views/menus.xml',
# 'security/account_security.xml',
# 'security/ir.model.access.csv',
# 'demo/demo_data.xml',
'demo/product.category.csv',
'security/ir_rule.xml',
],
'demo': [],
'qweb': [],
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="0">
<record id="pdl_partner_company_id" model="res.partner">
<field name="name">Kabupaten/Kota Company</field>
<field name="street">Jalan-jalan</field>
<field name="country_id" ref="base.id"/>
<field name="state_id" ref="base.state_id_jb"/>
<field name="district_id" ref="id_gov.ct_jb_71"/>
<field name="zip">90241</field>
<field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field>
<field name="website">www.idexample.com</field>
</record>
<record id="pdl_company_id" model="res.company">
<field name="name">Kabupaten/Kota Company</field>
<field name="partner_id" ref="pdl_partner_company_id"/>
</record>
</data>
<data>
<function model="res.users" name="write">
<value eval="[ref('base.user_root'), ref('base.user_admin')]"/>
<value eval="{'company_ids': [(4, ref('pdl_company_id'))]}"/>
</function>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="pdl_partner_admin_kab_id" model="res.partner">
<field name="name">Admin Kab/Kota</field>
<field name="street">Jalan-jalan</field>
<field name="country_id" ref="base.id"/>
<field name="state_id" ref="base.state_id_jb"/>
<field name="district_id" ref="id_gov.ct_jb_71"/>
<field name="company_id" ref="pdl_kab.pdl_company_id"/>
<field name="zip">90241</field>
<field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field>
<field name="website">www.idexample.com</field>
</record>
<record id="pdl_user_admin_kab_id" model="res.users">
<field name="login">admin_pdl_kab</field>
<field name="password">admin</field>
<field name="partner_id" ref="pdl_partner_admin_kab_id"/>
<field name="company_id" ref="pdl_kab.pdl_company_id"/>
<field name="company_ids" eval="[(4,ref('pdl_kab.pdl_company_id'))]"/>
<field name="groups_id"
eval="[(6,0,[ref('base.group_user'), ref('pdl_kab.group_pdl_admin')])]"/>
</record>
<record id="pdl_partner_wp_kab_id" model="res.partner">
<field name="name">Wajib Pajak Kab/Kota</field>
<field name="street">Jalan-jalan</field>
<field name="country_id" ref="base.id"/>
<field name="state_id" ref="base.state_id_jb"/>
<field name="district_id" ref="id_gov.ct_jb_71"/>
<field name="company_id" ref="pdl_kab.pdl_company_id"/>
<field name="zip">90241</field>
<field name="customer_rank">1</field>
<field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field>
<field name="website">www.idexample.com</field>
</record>
<record id="pdl_user_wp_kab_id" model="res.users">
<field name="login">wp_pdl_kab</field>
<field name="password">wp</field>
<field name="partner_id" ref="pdl_partner_wp_kab_id"/>
<field name="company_id" ref="pdl_kab.pdl_company_id"/>
<field name="company_ids" eval="[(4,ref('pdl_kab.pdl_company_id'))]"/>
<field name="groups_id"
eval="[(6,0,[ref('base.group_user'), ref('pdl_kab.group_pdl_wp')])]"/>
</record>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data noupdate="1">
<record id="pdl_partner_company_id" model="res.partner">
<field name="name">Kabupaten/Kota</field>
<field name="street">Jalan-jalan</field>
<field name="country_id" ref="base.id"/>
<field name="state_id" ref="base.state_id_jb"/>
<field name="district_id" ref="id_gov.ct_jb_71"/>
<field name="zip">90241</field>
<field name="phone">+62 812-345-678</field>
<field name="email">info@company.idexample.com</field>
<field name="website">www.idexample.com</field>
</record>
<record id="pdl_company_id" model="res.company">
<field name="name">Kabupaten/Kota Company</field>
<field name="partner_id" ref="pdl_partner_company_id"/>
</record>
</data>
<data>
<function model="res.users" name="write">
<value eval="[ref('base.user_root'), ref('base.user_admin'), ref('base.user_demo')]"/>
<value eval="{'company_ids': [(4, ref('pdl_kab.pdl_company_id'))]}"/>
</function>
</data>
</odoo>
\ No newline at end of file
id,name,type,rate,min_omzet,report_type,is_self,end_of_report,end_of_pay,end_of_pay_type,company_id:id
pc_hotel,Hotel,hotel,10,0,bulan,True,15,10,calendar,pdl_company_id
pc_resto,Restaurant,resto,10,10000000,bulan,True,15,10,calendar,pdl_company_id
pc_hiburan,Hiburan,hiburan,25,0,bulan,True,15,10,calendar,pdl_company_id
pc_ppj,Penerangan Jalan,ppj,5,0,bulan,True,15,10,calendar,pdl_company_id
pc_walet,Sarang Burung Walet,walet,10,0,bulan,True,15,10,calendar,pdl_company_id
pc_parkir,Parkir,parkir,20,0,bulan,True,15,10,calendar,pdl_company_id
pc_reklame,Reklame,reklame,25,0,triwulan,False,15,10,calendar,pdl_company_id
pc_abt,Air Bawah Tanah,abt,25,0,bulan,False,15,10,calendar,pdl_company_id
pc_galian,Galian,galian,25,0,bulan,False,15,10,calendar,pdl_company_id
\ No newline at end of file
......@@ -39,20 +39,31 @@ class ResPartner(models.Model):
domain="[('sub_district_id', '=?', sub_district_id)]"
)
# type = fields.Selection(
# selection_add=[('op', 'Objek Pajak'),
# ('wp', 'Wajib Pajak'),
# ('owner', 'Pemilik'),
# ('operation', 'Pengelola')],
# ondelete={
# 'op': 'cascade',
# 'wp': 'cascade',
# 'owner': 'cascade',
# 'operation': 'cascade'
# })
def _get_name_search_order_by_fields(self):
res = super()._get_name_search_order_by_fields()
partner_search_mode = self.env.context.get('res_partner_search_mode')
if not partner_search_mode in ('customer', 'supplier'):
return res
order_by_field = 'COALESCE(res_partner.%s, 0) DESC,'
if partner_search_mode == 'customer':
field = 'customer_rank'
else:
field = 'supplier_rank'
order_by_field = order_by_field % field
return '%s, %s' % (res, order_by_field % field) if res else order_by_field
# def _get_name_search_order_by_fields(self):
# res = super()._get_name_search_order_by_fields()
# partner_search_mode = self.env.context.get('res_partner_search_mode')
# if not partner_search_mode in ('customer', 'supplier'):
# return res
# order_by_field = 'COALESCE(res_partner.%s, 0) DESC,'
# if partner_search_mode == 'customer':
# field = 'customer_rank'
# else:
# field = 'supplier_rank'
#
# order_by_field = order_by_field % field
# return '%s, %s' % (res, order_by_field % field) if res else order_by_field
@api.model_create_multi
def create(self, vals_list):
......
......@@ -15,13 +15,13 @@ _logger = logging.getLogger(__name__)
TYPE_LIST = [('hotel', 'Hotel'),
('resto', 'Restaurant'),
('hibur', 'Hiburan'),
('hiburan', 'Hiburan'),
('ppj', 'Penerangan Jalan'),
('golc', 'Mineral dan Batuan'),
('reklame', 'Reklame'),
('galian', 'Mineral dan Batuan'),
('walet', 'Sarang Burung Walet'),
('abt', 'Air Bawah Tanah'),
('parkir', 'Parkir'),
('reklame', 'Reklame'),
('abt', 'Air Bawah Tanah'),
]
......@@ -31,25 +31,29 @@ class Product(models.Model):
required=True, store=True, readonly=False)
type = fields.Selection(
selection_add=TYPE_LIST, string='Product Type',
help='Pilih type objek pajak', default='hotel', required=True,
help='Pilih type objek pajak', required=True,
ondelete={
'hotel': 'set default',
'resto': 'set default',
'hibur': 'set default',
'hiburan': 'set default',
'ppj': 'set default',
'golc': 'set default',
'galian': 'set default',
'reklame': 'set default',
'walet': 'set default',
'abt': 'set default',
'parkir': 'set default'
})
partner_id = fields.Many2one('res.partner', string="Wajib Pajak")
partner_id = fields.Many2one('res.partner', string="Partner Related")
# wp_name = fields.Many2one(
# 'res.partner', compute='_compute_wp', inverse='_inverse_wp_name',
# string="Nama")
district_id = fields.Many2one(
'res.district', compute='_compute_address', inverse='_inverse_district',
string="Kab/Kota", domain="[('state_id', '=?', state_id)]"
string="Kab/Kota", domain="[('state_id', '=?', state_id)]",
default=lambda self: self.env.company.district_id.id
if not self.state_id else False
)
sub_district_id = fields.Many2one(
'res.district.sub', compute='_compute_address', inverse='_inverse_sub_district',
string="Kecamatan", domain="[('district_id', '=?', district_id)]"
......@@ -64,6 +68,54 @@ class Product(models.Model):
default=lambda self: self.env.company.id
if not self.company_id else False
)
wp_id = fields.Many2one(
'res.partner', compute='_compute_wp', inverse='_inverse_wp_id',
string="Wajib Pajak", store=False)
wp_street = fields.Char(compute='_compute_wp', store=False)
wp_street2 = fields.Char(compute='_compute_wp', store=False)
wp_village_id = fields.Many2one('res.district.village', 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_state_id = fields.Many2one('res.country.state', compute='_compute_wp', store=False)
wp_zip = fields.Char(compute='_compute_wp')
wp_phone = fields.Char(compute='_compute_wp')
wp_email = fields.Char(compute='_compute_wp')
wp_website = fields.Char(compute='_compute_wp')
rate = fields.Float(related='categ_id.rate', store=True, readonly=False)
def _get_wp_address_field_names(self):
return [
("wp_id", "id"),
("wp_street", "street"),
("wp_street2", "street2"),
("wp_village_id", "village_id"),
("wp_sub_district_id", "sub_district_id"),
("wp_district_id", "district_id"),
("wp_state_id", "state_id"),
("wp_phone", "phone"),
("wp_email", "email"),
("wp_website", "website"),
("wp_zip", "zip"),
]
def _get_wp_address_update(self, partner):
if partner:
field = dict((key, partner[value])
for key, value in self._get_wp_address_field_names())
else:
field = dict((key, False)
for key, value in self._get_wp_address_field_names())
return field
def _compute_wp(self):
for wp in self.filtered(lambda product: product.partner_id):
if not wp.partner_id:
continue
address_data = wp.partner_id.parent_id.sudo().address_get(adr_pref=['contact'])
if address_data['contact']:
partner = wp.partner_id.browse(address_data['contact']).sudo()
wp.update(wp._get_wp_address_update(partner))
else:
wp.update(wp._get_wp_address_update(False))
def copy(self, default=None):
raise UserError(_('Duplicating a company is not allowed. Please create a new company instead.'))
......@@ -104,6 +156,11 @@ class Product(models.Model):
# Deletion forbidden (at least through unlink)
return self.env.ref('product.product_category_all')
@tools.ormcache()
def _get_default_category_id(self):
# Deletion forbidden (at least through unlink)
return self.env.ref('pdl_kab.pc_hotel')
logo = fields.Binary(related='partner_id.image_1920', default=_get_logo, string="Company Logo", readonly=False)
# logo_web: do not store in attachments, since the image is retrieved in SQL for
# performance reasons (see addons/web/controllers/main.py, Binary.product_logo)
......@@ -132,6 +189,12 @@ class Product(models.Model):
domain="[('type', '=?', type)]",
)
# Inversing Wajib Pajak
def _inverse_wp_id(self):
for product in self:
product.partner_id.parent_id = product.wp_id
# Inversing Objek Pajak
def _inverse_email(self):
for product in self:
product.partner_id.email = product.email
......@@ -188,7 +251,8 @@ class Product(models.Model):
""" Return a list of fields coming from the address partner to match
on product address fields. Fields are labeled same on both models. """
return ['street', 'street2', 'city', 'zip', 'state_id', 'country_id',
'district_id', 'sub_district_id', 'village_id']
'district_id', 'sub_district_id', 'village_id', 'phone',
'email','website']
@api.onchange('village_id')
def _onchange_village_id(self):
......@@ -223,6 +287,11 @@ class Product(models.Model):
if not self.country_id or self.country_id != self.state_id.country_id:
self.state_id = False
@api.onchange('type')
def _onchange_type(self):
if not self.type or self.type != self.categ_id.type:
self.categ_id = False
def _get_product_address_update(self, partner):
return dict((fname, partner[fname])
for fname in self._get_product_address_field_names())
......@@ -231,9 +300,9 @@ class Product(models.Model):
# partner's contact address
def _compute_address(self):
for product in self.filtered(lambda product: product.partner_id):
address_data = product.partner_id.sudo().address_get(adr_pref=['contact'])
if address_data['contact']:
partner = product.partner_id.browse(address_data['contact']).sudo()
address_data = product.partner_id.sudo().address_get(adr_pref=['private'])
if address_data['private']:
partner = product.partner_id.browse(address_data['private']).sudo()
product.update(product._get_product_address_update(partner))
@api.depends('partner_id.image_1920')
......@@ -241,11 +310,6 @@ class Product(models.Model):
for product in self:
product.logo_web = tools.image_process(product.partner_id.image_1920, size=(180, 0))
@api.onchange('state_id')
def _onchange_state(self):
if self.state_id.country_id:
self.country_id = self.state_id.country_id
# @api.onchange('country_id')
# def _onchange_country_id(self):
# if self.country_id:
......@@ -287,24 +351,21 @@ class Product(models.Model):
# vals['favicon'] = self._get_default_favicon()
if not vals.get('name') or vals.get('partner_id'):
self.clear_caches()
return super(Product, self).create(vals)
partner = self.env['res.partner'].create({
'name': vals['name'],
'is_company': False,
# 'image_1920': vals.get('logo'),
# 'email': vals.get('email'),
# 'phone': vals.get('phone'),
# 'website': vals.get('website'),
# 'vat': vals.get('vat'),
# 'country_id': vals.get('country_id'),
'type': "private"
})
# compute stored fields, for example address dependent fields
partner.flush()
vals['partner_id'] = partner.id
_logger.info('-----------------')
_logger.info(vals)
self.clear_caches()
product = super(Product, self).create(vals)
# The write is made on the user to set it automatically in the multi product group.
# self.env.user.write({'product_ids': [(4, product.id)]})
# Make sure that the selected currency is enabled
# if vals.get('currency_id'):
......@@ -324,11 +385,10 @@ class Product(models.Model):
if not self.partner_id:
if not values.get('name'):
values['name'] = self.name
_logger.info("=================")
_logger.info(values)
partner = self.env['res.partner'].create({
'name': values['name'],
'is_company': False,
'type': 'private',
# 'image_1920': vals.get('logo'),
# 'email': vals.get('email'),
# 'phone': vals.get('phone'),
......@@ -376,7 +436,9 @@ class ProductCategory(models.Model):
('work', 'Hari Kerja')],
default="calendar",
string="Jenis Jatuh Tempo")
company_id = fields.Many2one('res.company', string="Lembaga/Organisasi")
company_id = fields.Many2one('res.company', string="Lembaga/Organisasi",
default=lambda self: self.env.company.id
if not self.company_id else False)
category_type = fields.Selection(
string='Category Type',
selection=[('self', 'Self Assessment'), ('official', 'Official Assessment')],
......@@ -391,6 +453,6 @@ class ProductCategory(models.Model):
for categ in self:
categ.is_self = categ.category_type == 'self'
@api.onchange('company_type')
def onchange_company_type(self):
self.is_self = (self.company_type == 'self')
@api.onchange('category_type')
def onchange_category_type(self):
self.is_self = (self.category_type == 'self')
......@@ -6,59 +6,29 @@
<field name="description">PDL</field>
<field name="sequence">1</field>
</record>
<record model="ir.module.category" id="pdl_kab_admin">
<field name="name">Administrator</field>
<field name="description">Administrator</field>
<field name="sequence">2</field>
<field name="parent_id" ref="pdl_kab"/>
</record>
<record id="group_pdl_admin" model="res.groups">
<field name="name">Administaror</field>
<field name="category_id" ref="pdl_kab_admin"/>
</record>
<record model="ir.module.category" id="pdl_kab_data">
<field name="name">Pendataan</field>
<field name="description">Pendataan</field>
<field name="sequence">2</field>
<field name="parent_id" ref="pdl_kab"/>
<field name="name">Administrator</field>
<field name="category_id" ref="pdl_kab"/>
</record>
<record id="group_pdl_pendataan" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="pdl_kab_data"/>
</record>
<record model="ir.module.category" id="pdl_kab_tetap">
<field name="name">Penetapan</field>
<field name="description">Penetapan</field>
<field name="sequence">2</field>
<field name="parent_id" ref="pdl_kab"/>
<field name="name">Pendataan</field>
<field name="category_id" ref="pdl_kab"/>
</record>
<record id="group_pdl_penetapan" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="pdl_kab_tetap"/>
<field name="name">Penetapan</field>
<field name="category_id" ref="pdl_kab"/>
</record>
<record model="ir.module.category" id="pdl_kab_bayar">
<record id="group_pdl_pembayaran" model="res.groups">
<field name="name">Pembayaran</field>
<field name="description">Pembayaran</field>
<field name="sequence">2</field>
<field name="parent_id" ref="pdl_kab"/>
<field name="category_id" ref="pdl_kab"/>
</record>
<record id="group_pdl_pembayaran" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="pdl_kab_bayar"/>
</record>
<record model="ir.module.category" id="pdl_kab_layanan">
<record id="group_pdl_pelayanan" model="res.groups">
<field name="name">Pelayanan</field>
<field name="description">Pelayanan</field>
<field name="sequence">2</field>
<field name="parent_id" ref="pdl_kab"/>
<field name="category_id" ref="pdl_kab"/>
</record>
<record id="group_pdl_pelayanan" model="res.groups">
<field name="name">User</field>
<field name="category_id" ref="pdl_kab_layanan"/>
<record id="group_pdl_wp" model="res.groups">
<field name="name">Wajib Pajak</field>
<field name="category_id" ref="pdl_kab"/>
</record>
</data>
</odoo>
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_sudut_pandang_admin","access.sudut.pandang.admin","model_pdl_sudut_pandang","base.group_system",1,1,1,1
"access_district_admin","access.district.admin","model_res_district","base.group_system",1,1,1,1
"access_district_sub_admin","access.district.sub.admin","model_res_district_sub","base.group_system",1,1,1,1
"access_village_admin","access.village.admin","model_res_district_village","base.group_system",1,1,1,1
"access_sudut_pandang_admin_pdl","access.sudut.pandang.admin.pdl","model_pdl_sudut_pandang","group_pdl_admin",1,1,1,1
"access_district_admin_pdl","access.district.admin.pdl","model_res_district","group_pdl_admin",1,1,1,1
"access_district_sub_admin_pdl","access.district.sub.admin.pdl","model_res_district_sub","group_pdl_admin",1,1,1,1
"access_village_admin_pdl","access.village.admin.pdl","model_res_district_village","group_pdl_admin",1,1,1,1
"access_district_admin_pdl","access.district.admin.pdl","id_gov.model_res_district","group_pdl_admin",1,1,1,1
"access_district_sub_admin_pdl","access.district.sub.admin.pdl","id_gov.model_res_district_sub","group_pdl_admin",1,1,1,1
"access_village_admin_pdl","access.village.admin.pdl","id_gov.model_res_district_village","group_pdl_admin",1,1,1,1
"access_product_category_admin_pdl","access.product.category.admin.pdl","model_product_category","group_pdl_admin",1,1,1,1
"access_company_admin_pdl","access.company.admin.pdl","base.model_res_company","group_pdl_admin",1,1,0,0
"access_company_admin_pdl","access.partner.admin.pdl","base.model_res_partner","group_pdl_admin",1,1,1,1
"access_company_admin_pdl","access.partner.wp.pdl","base.model_res_partner","group_pdl_wp",1,1,1,1
<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<record model="ir.rule" id="res_product_category_rule">
<field name="name">res.product.category company</field>
<field name="model_id" ref="product.model_product_category"/>
<field name="domain_force">['|', ('company_id', 'in', company_ids),
('company_id', '=', False)]
</field>
</record>
</data>
<?xml version="1.0"?>
<odoo>
<data noupdate="0">
<record model="ir.rule" id="res_product_category_rule">
<field name="name">res.product.category company</field>
<field name="model_id" ref="product.model_product_category"/>
<field name="domain_force">['|', ('company_id', 'in', company_ids),
('company_id', '=', False)]
</field>
</record>
<record model="ir.rule" id="res_partner_admin_pdl_kab">
<field name="name">res_partner_admin_pdl_kab</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="groups" eval="[(4, ref('group_pdl_admin'))]"/>
<field name="domain_force">['|', ('company_id', '=', user.company_id.id),
('company_id', '=', False)]
</field>
</record>
<record model="ir.rule" id="res_partner_wp_pdl_kab">
<field name="name">res_partner_wp_pdl_kab</field>
<field name="model_id" ref="base.model_res_partner"/>
<field name="groups" eval="[(4, ref('group_pdl_wp'))]"/>
<field name="domain_force">[('id', 'child_of', user.partner_id.id)]
</field>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -7,33 +7,38 @@
active="True"
sequence="400"/>
<!--Pendataan-->
<!-- <menuitem id="pendataan_pdl_kab_menu"-->
<!-- name="Pendataan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="2"/>-->
<!-- <menuitem id="pendataan_hotel_menu"-->
<!-- name="Pendataan Hotel"-->
<!-- parent="pendataan_pdl_kab_menu"-->
<!-- action="action_pendataan_hotel_pdl_kab"-->
<!-- sequence="2"/>-->
<menuitem id="pendataan_pdl_kab_menu"
name="Pendataan"
parent="pdl_kab_menu_root"
sequence="2"/>
<menuitem id="pendataan_hotel_menu"
name="Hotel"
parent="pendataan_pdl_kab_menu"
action="action_product_hotel_pdl_kab"
sequence="2"/>
<menuitem id="pendataan_resto_menu"
name="Restaurant"
parent="pendataan_pdl_kab_menu"
action="action_product_resto_pdl_kab"
sequence="2"/>
<!--Penetapan-->
<!-- <menuitem id="penetapan_pdl_kab_menu"-->
<!-- name="Penetapan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="3"/>-->
<!-- <menuitem id="penagihan_pdl_kab_menu"-->
<!-- name="Penagihan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="4"/>-->
<!-- <menuitem id="pembayaran_pdl_kab_menu"-->
<!-- name="Pembayaran"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="5"/>-->
<!-- <menuitem id="pelayanan_pdl_kab_menu"-->
<!-- name="Pelayanan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="6"/>-->
<!-- <menuitem id="penetapan_pdl_kab_menu"-->
<!-- name="Penetapan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="3"/>-->
<!-- <menuitem id="penagihan_pdl_kab_menu"-->
<!-- name="Penagihan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="4"/>-->
<!-- <menuitem id="pembayaran_pdl_kab_menu"-->
<!-- name="Pembayaran"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="5"/>-->
<!-- <menuitem id="pelayanan_pdl_kab_menu"-->
<!-- name="Pelayanan"-->
<!-- parent="pdl_kab_menu_root"-->
<!-- sequence="6"/>-->
<!-- Konfigurasi-->
<menuitem id="config_pdl_kab_menu"
name="Konfigurasi"
......@@ -44,11 +49,11 @@
parent="config_pdl_kab_menu"
action="action_category_pdl_kab"
sequence="2"/>
<!-- <menuitem id="tax_config_pdl_kab_menu"-->
<!-- name="Tarif Pajak"-->
<!-- parent="config_pdl_kab_menu"-->
<!-- action="action_tax_config_pdl_kab"-->
<!-- sequence="2"/>-->
<!-- <menuitem id="tax_config_pdl_kab_menu"-->
<!-- name="Tarif Pajak"-->
<!-- parent="config_pdl_kab_menu"-->
<!-- action="action_tax_config_pdl_kab"-->
<!-- sequence="2"/>-->
<menuitem id="wilayah_config_pdl_kab_menu"
name="Wilayah"
parent="config_pdl_kab_menu"
......@@ -83,14 +88,22 @@
parent="config_pdl_kab_menu"
action="id_gov.action_company_config_id"
sequence="4"/>
<menuitem id="partner_config_pdl_kab_menu"
<menuitem id="wp_config_pdl_kab_menu"
name="Wajib Pajak"
parent="config_pdl_kab_menu"
action="action_partner_config_pdl_kab"
action="action_wp_config_pdl_kab"
sequence="4"/>
<menuitem id="op_config_pdl_kab_menu"
name="Objek Pajak"
parent="config_pdl_kab_menu"
action="action_op_pdl_kab"
sequence="4"/>
sequence="5"/>
<menuitem id="partner_config_pdl_kab_menu"
name="Partner"
parent="config_pdl_kab_menu"
action="action_partner_config_pdl_kab"
sequence="6"/>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="res_partner_view_search" model="ir.ui.view">
<field name="name">res.partner.search.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='inactive']" position="before">
<filter string="Wajib Pajak" name="customer" domain="[('customer_rank','>', 0)]"/>
<filter string="Vendor Bills" name="supplier" domain="[('supplier_rank','>', 0)]"/>
<separator/>
</xpath>
</field>
</record>
<record id="action_partner_config_pdl_kab" model="ir.actions.act_window">
<field name="name">Partner</field>
<field name="res_model">res.partner</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{'search_default_customer': 1,
'res_partner_search_mode': 'customer',
'default_is_company': True,
'default_customer_rank': 1}
</field>
<field name="search_view_id" ref="res_partner_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Partner
</p>
</field>
</record>
</data>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="res_partner_view_search" model="ir.ui.view">
<field name="name">res.partner.search.inherit</field>
<field name="model">res.partner</field>
<field name="inherit_id" ref="base.view_res_partner_filter"/>
<field name="arch" type="xml">
<xpath expr="//filter[@name='inactive']" position="before">
<filter string="Wajib Pajak" name="customer" domain="[('customer_rank','>', 0)]"/>
<filter string="Vendor Bills" name="supplier" domain="[('supplier_rank','>', 0)]"/>
<separator/>
</xpath>
</field>
</record>
<record id="action_wp_config_pdl_kab" model="ir.actions.act_window">
<field name="name">Wajib Pajak</field>
<field name="res_model">res.partner</field>
<field name="view_mode">kanban,tree,form</field>
<field name="search_view_id" ref="base.view_res_partner_filter"/>
<field name="domain">[('customer_rank','>',0)]</field>
<field name="context">{
'res_partner_search_mode': 'customer',
'default_is_company': True,
'default_customer_rank': 1}
</field>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Partner
</p>
</field>
</record>
<record id="action_partner_config_pdl_kab" model="ir.actions.act_window">
<field name="name">Partner</field>
<field name="res_model">res.partner</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{
'res_partner_search_mode': 'customer',
'default_is_company': True,
'default_customer_rank': 1}
</field>
<field name="search_view_id" ref="res_partner_view_search"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Partner
</p>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="op_hotel_template_tree" model="ir.ui.view">
<field name="name">op.hotel.template.tree</field>
<field name="model">product.template</field>
<field name="arch" type="xml">
<tree string="Objek Pajak Hotel" sample="1">
<field name="default_code" string="NOPD"/>
<field name="name" string="Nama Objek"/>
<field name="lst_price" string="Min Omset"/>
<field name="taxes_id" widget="many2many_tags" string="Pajak"/>
<field name="activity_exception_decoration" widget="activity_exception"/>
</tree>
</field>
</record>
<record id="action_pendataan_hotel_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Hotel</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="view_id" ref="op_hotel_template_tree"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Pendataan Objek Pajak Hotel
</p>
</field>
</record>
<record id="op_hotel_template_form" model="ir.ui.view">
<field name="name">op.hotel.template.form.inherit</field>
<field name="model">product.template</field>
<field name="priority">4</field>
<field name="inherit_id" ref="account.product_template_form_view"/>
<field name="arch" type="xml">
<!-- <xpath expr="//page[@name='general_information']" position="replace"/>-->
<xpath expr="//page[@name='inventory']" position="replace"/>
<xpath expr="//page[@name='sales']" position="replace"/>
<xpath expr="//page[@name='purchase']" position="replace"/>
<!-- <xpath expr="//div[@name='options']" position="after">-->
<!-- Menambah field setelah pricing -->
<!-- <field name="active" invisible=""/>-->
<!-- <field name="categ_id" invisible="0"/>-->
<!-- </xpath>-->
<!-- <xpath expr="//div[@name='default_code']" position="attribute">-->
<!-- <field name="string" string="NOPD"/>-->
<!-- </xpath>-->
</field>
</record>
</data>
</odoo>
\ No newline at end of file
......@@ -8,7 +8,8 @@
<tree string="Objek Pajak" sample="1">
<field name="default_code" string="NOPD"/>
<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="type" string="Jenis"/>
<field name="company_id" string="Lembaga/Organisasi"/>
</tree>
......@@ -24,6 +25,17 @@
<xpath expr="//div[@name='options']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<xpath expr="//div[@name='options']" position="attributes">
<attribute name="invisible">1</attribute>
</xpath>
<!-- <xpath expr="//field[@name='list_price']" position="attributes">-->
<!-- <attribute name="string">Minimum Omzet</attribute>-->
<!-- </xpath>-->
<xpath expr="//field[@name='standard_price']" position="replace"/>
<xpath expr="//field[@name='list_price']" position="replace">
</xpath>
<xpath expr="//notebook" position="before">
<div class="oe_title">
<label for="default_code" class="oe_edit_only" string="NPWPD"/>
......@@ -36,7 +48,7 @@
</group>
<group>
<group>
<field name="partner_id" readonly="1" string="Contact"/>
<field name="partner_id" readonly="1" required="0" string="Contact"/>
<label for="street" string="Address"/>
<div class="o_address_format">
<field name="street" placeholder="Street..." class="o_address_street"/>
......@@ -51,24 +63,59 @@
options='{"no_open": True}'/>
<field name="zip" placeholder="ZIP" class="o_address_zip"/>
<field name="country_id" placeholder="Country" class="o_address_country"
options='{"no_open": True}'/>
options='{"no_open": True}' invisible="1"/>
</div>
</group>
<group>
<field name="phone" class="o_force_ltr"/>
<field name="email"/>
<field name="website" string="Website" widget="url"
placeholder="e.g. https://opensipkd.com"/>
</group>
<group>
<field name="wp_id" string="Wajib Pajak"/>
<label for="street" string="Address"/>
<div class="o_address_format">
<field name="wp_street" placeholder="Street..." class="o_address_street"
readonly="1" required="0"/>
<field name="wp_street2" placeholder="Street 2..." class="o_address_street"/>
<field name="wp_village_id" class="o_address_city" placeholder="Desa/Keurahan"
options='{"no_open": True}'/>
<field name="wp_sub_district_id" class="o_address_city" placeholder="Kecamatan"
options='{"no_open": True}'/>
<field name="wp_district_id" class="o_address_city" placeholder="Kab/Kota"
options='{"no_open": True}'/>
<field name="wp_state_id" class="o_address_city" placeholder="State"
options='{"no_open": True}'/>
<field name="wp_zip" placeholder="ZIP" class="o_address_zip"/>
</div>
<field name="wp_phone" class="o_force_ltr"/>
<field name="wp_email"/>
<field name="wp_website" string="Website" widget="url"
placeholder="e.g. https://opensipkd.com"/>
</group>
</group>
</xpath>
<!-- <xpath expr="//page[@name='general_information']" position="after">-->
<!-- <page name="address" string="Address">-->
<!---->
<!-- </page>-->
<!-- </xpath>-->
<page>
<page name="general_information" position="after">
<page string="Hotel" name="hotel_page" attrs="{'invisible': [('type', '!=', 'hotel')]}">
<group>
<field name="rate" string="Tarif" readonly="1"/>
</group>
</page>
<page string="Restoran" name="resto_page" attrs="{'invisible': [('type', '!=', 'resto')]}">
</page>
<page string="Hiburan" name="hiburan_page" attrs="{'invisible': [('type', '!=', 'hiburan')]}">
</page>
<page string="Walet" name="walet_page" attrs="{'invisible': [('type', '!=', 'walet')]}">
</page>
<page string="PPJ" name="ppj_page" attrs="{'invisible': [('type', '!=', 'ppj')]}">
</page>
<page string="Parkir" name="parkir_page" attrs="{'invisible': [('type', '!=', 'parkir')]}">
</page>
<page string="Galian" name="galian_page" attrs="{'invisible': [('type', '!=', 'galian')]}">
</page>
<page string="Reklame" name="reklame_page" attrs="{'invisible': [('type', '!=', 'reklame')]}">
</page>
<page string="ABT" name="abt_page" attrs="{'invisible': [('type', '!=', 'abt')]}">
</page>
</page>
</field>
</record>
......@@ -77,7 +124,9 @@
<field name="name">Objek Pajak</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="context">{"default_purchase_ok": False}</field>
<field name="context">{"default_purchase_ok": False,
'res_partner_search_mode':'customer'}
</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('op_template_form')}),
......@@ -104,49 +153,6 @@
</field>
</record>
<record id="category_form" model="ir.ui.view">
<field name="name">category.form</field>
<field name="model">product.category</field>
<field name="arch" type="xml">
<form string="Kategori Pajak">
<sheet>
<div class="oe_title">
<label class="oe_edit_only" for="name" string="Kategori"/>
<h1>
<field name="name" placeholder="Product Name"/>
</h1>
<label class="oe_edit_only" for="category_type" string="Self/Official"/>
<field name="category_type" widget="radio"
options="{'horizontal': true}"/>
</div>
<notebook>
<page string="Informasi">
<group>
<group>
<field name="rate"/>
<field name="rate_date"/>
<field name="type"/>
<field name="min_omzet"/>
<field name="report_type"/>
</group>
<group>
<field name="end_of_report"/>
<field name="end_of_pay"/>
<field name="end_of_pay_type"/>
<field name="company_id"
groups="base.group_multi_company"
options="{'no_create': True}"
force_save="1"/>
</group>
</group>
</page>
</notebook>
</sheet>
</form>
</field>
</record>
<record id="category_search" model="ir.ui.view">
<field name="name">category.search</field>
<field name="model">product.category</field>
......@@ -159,13 +165,49 @@
</search>
</field>
</record>
<record id="category_form" model="ir.ui.view">
<field name="name">category.form</field>
<field name="model">product.category</field>
<field name="inherit_id" ref="product.product_category_form_view"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='parent_id']" position="before">
<div class="oe_title">
<field name="category_type" widget="radio"
options="{'horizontal': true}"/>
</div>
</xpath>
<sheet>
<notebook>
<page string="Informasi">
<group>
<group>
<field name="rate"/>
<field name="rate_date"/>
<field name="type"/>
<field name="min_omzet"/>
<field name="report_type"/>
</group>
<group>
<field name="end_of_report"/>
<field name="end_of_pay"/>
<field name="end_of_pay_type"/>
<field name="company_id"
groups="base.group_multi_company"
options="{'no_create': True}"
force_save="1"/>
</group>
</group>
</page>
</notebook>
</sheet>
</field>
</record>
<record id="action_category_pdl_kab" model="ir.actions.act_window">
<field name="name">Kategori Objek Pajak</field>
<field name="res_model">product.category</field>
<field name="view_mode">tree,kanban,form</field>
<field name="view_id" ref="category_tree"/>
<field name="search_view_id" ref="category_search"/>
<!-- <field name="search_view_id" ref="category_search"/>-->
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Kategori Objek Pajak
......
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="hotel_template_form" model="ir.ui.view">
<field name="name">op.template.form.inherit</field>
<field name="model">product.template</field>
<field name="inherit_id" ref="op_template_form"/>
<field name="arch" type="xml">
<xpath expr="//field[@name='type']" position="attributes">
<attribute name="invisible">0</attribute>
</xpath>
</field>
</record>
<record id="action_product_hotel_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Hotel</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','hotel')]</field>
<field name="context">{"default_purchase_ok": False,
'search_default_filter_to_sell': 1,
'default_type': 'hotel'}
</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 Hotel
</p>
</field>
</record>
<record id="action_product_resto_pdl_kab" model="ir.actions.act_window">
<field name="name">Objek Pajak Restoran</field>
<field name="res_model">product.template</field>
<field name="view_mode">kanban,tree,form</field>
<field name="domain">[('type','=','resto')]</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 Restoran
</p>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!