Commit c33a0db7 by aa.gusti

perubahan nama aplikasi

1 parent 225c2187
Showing 38 changed files with 2515 additions and 0 deletions
#Dashboard Pajak
Module ini digunakan untuk membuat dashboard pajak
\ No newline at end of file
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
from . import controllers
from . import models
from . import wizard
from . import report
# -*- coding: utf-8 -*-
# Part of Odoo. See LICENSE file for full copyright and licensing details.
{
'name': 'Indonesia Goverment Dashboard',
'version': '0.1',
'summary': 'Indonesia Goverment Dashboard',
'sequence': 10,
'description': """
RI Goverment Dashboard
""",
'category': 'Indonesia Goverment',
'website': 'https://opensipkd.com',
'images': [],
'depends': ['id_gov', 'idg_account', 'portal'],
'data': [
# 'security/account_security.xml',
'security/ir.model.access.csv',
# 'security/ir_rule.xml',
'views/region_tax_potency.xml',
'views/region_tax_plan.xml',
'views/region_tax_actual.xml',
'views/menus.xml',
# 'views/portal_templates.xml',
"demo/idg.region.tax.potency.csv",
"demo/idg.region.tax.plan.csv",
"demo/idg.region.tax.actual.csv",
],
'demo': [
# "demo/idg.region.tax.potency.csv"
],
'qweb': [],
'installable': True,
'application': True,
'auto_install': False,
'license': 'LGPL-3',
'module': 'pajak'
}
"id","account_id",amount,country_id,state_id,district_id
"id_acc_41010101001_p","41010101001",10000000,id,JB,
"id_acc_41010101002_p","41010101002",10000000,id,JB,
"id_acc_41010101003_p","41010101003",10000000,id,JB,
"id_acc_41010101004_p","41010101004",10000000,id,JB,
"id_acc_41010102001_p","41010102001",10000000,id,JB,
"id_acc_41010102002_p","41010102002",10000000,id,JB,
"id_acc_41010102003_p","41010102003",10000000,id,JB,
"id_acc_41010102004_p","41010102004",10000000,id,JB,
"id_acc_41010103001_p","41010103001",10000000,id,JB,
"id_acc_41010103002_p","41010103002",10000000,id,JB,
"id_acc_41010103003_p","41010103003",10000000,id,JB,
"id_acc_41010103004_p","41010103004",10000000,id,JB,
"id_acc_41010104001_p","41010104001",10000000,id,JB,
"id_acc_41010104002_p","41010104002",10000000,id,JB,
"id_acc_41010104003_p","41010104003",10000000,id,JB,
"id_acc_41010104004_p","41010104004",10000000,id,JB,
"id_acc_41010105001_p","41010105001",10000000,id,JB,
"id_acc_41010105002_p","41010105002",10000000,id,JB,
"id_acc_41010105003_p","41010105003",10000000,id,JB,
"id_acc_41010105004_p","41010105004",10000000,id,JB,
"id_acc_41010106001_p","41010106001",10000000,id,JB,
"id_acc_41010106002_p","41010106002",10000000,id,JB,
"id_acc_41010106003_p","41010106003",10000000,id,JB,
"id_acc_41010106004_p","41010106004",10000000,id,JB,
"id_acc_41010107001_p","41010107001",10000000,id,JB,
"id_acc_41010107002_p","41010107002",10000000,id,JB,
"id_acc_41010107003_p","41010107003",10000000,id,JB,
"id_acc_41010107004_p","41010107004",10000000,id,JB,
"id_acc_41010108001_p","41010108001",10000000,id,JB,
"id_acc_41010108002_p","41010108002",10000000,id,JB,
"id_acc_41010108003_p","41010108003",10000000,id,JB,
"id_acc_41010108004_p","41010108004",10000000,id,JB,
"id_acc_41010109001_p","41010109001",10000000,id,JB,
"id_acc_41010109002_p","41010109002",10000000,id,JB,
"id_acc_41010109003_p","41010109003",10000000,id,JB,
"id_acc_41010109004_p","41010109004",10000000,id,JB,
"id_acc_41010110001_p","41010110001",10000000,id,JB,
"id_acc_41010110002_p","41010110002",10000000,id,JB,
"id_acc_41010110003_p","41010110003",10000000,id,JB,
"id_acc_41010110004_p","41010110004",10000000,id,JB,
"id_acc_41010111001_p","41010111001",10000000,id,JB,
"id_acc_41010111002_p","41010111002",10000000,id,JB,
"id_acc_41010111003_p","41010111003",10000000,id,JB,
"id_acc_41010111004_p","41010111004",10000000,id,JB,
"id_acc_41010112001_p","41010112001",10000000,id,JB,
"id_acc_41010112002_p","41010112002",10000000,id,JB,
"id_acc_41010112003_p","41010112003",10000000,id,JB,
"id_acc_41010112004_p","41010112004",10000000,id,JB,
"id_acc_41010113001_p","41010113001",10000000,id,JB,
"id_acc_41010113002_p","41010113002",10000000,id,JB,
"id_acc_41010113003_p","41010113003",10000000,id,JB,
"id_acc_41010113004_p","41010113004",10000000,id,JB,
"id_acc_41010114001_p","41010114001",10000000,id,JB,
"id_acc_41010114002_p","41010114002",10000000,id,JB,
"id_acc_41010114003_p","41010114003",10000000,id,JB,
"id_acc_41010114004_p","41010114004",10000000,id,JB,
"id_acc_41010201001_p","41010201001",10000000,id,JB,
"id_acc_41010202001_p","41010202001",10000000,id,JB,
"id_acc_41010203001_p","41010203001",10000000,id,JB,
"id_acc_41010204001_p","41010204001",10000000,id,JB,
"id_acc_41010205001_p","41010205001",10000000,id,JB,
"id_acc_41010206001_p","41010206001",10000000,id,JB,
"id_acc_41010207001_p","41010207001",10000000,id,JB,
"id_acc_41010208001_p","41010208001",10000000,id,JB,
"id_acc_41010209001_p","41010209001",10000000,id,JB,
"id_acc_41010210001_p","41010210001",10000000,id,JB,
"id_acc_41010211001_p","41010211001",10000000,id,JB,
"id_acc_41010212001_p","41010212001",10000000,id,JB,
"id_acc_41010213001_p","41010213001",10000000,id,JB,
"id_acc_41010214001_p","41010214001",10000000,id,JB,
"id_acc_41010301001_p","41010301001",10000000,id,JB,
"id_acc_41010302001_p","41010302001",10000000,id,JB,
"id_acc_41010303001_p","41010303001",10000000,id,JB,
"id_acc_41010304001_p","41010304001",10000000,id,JB,
"id_acc_41010401001_p","41010401001",10000000,id,JB,
"id_acc_41010501001_p","41010501001",10000000,id,JB,
"id_acc_41010601001_p","41010601001",10000000,id,JB,71
"id_acc_41010602001_p","41010602001",10000000,id,JB,71
"id_acc_41010603001_p","41010603001",10000000,id,JB,71
"id_acc_41010604001_p","41010604001",10000000,id,JB,71
"id_acc_41010605001_p","41010605001",10000000,id,JB,71
"id_acc_41010606001_p","41010606001",10000000,id,JB,71
"id_acc_41010607001_p","41010607001",10000000,id,JB,71
"id_acc_41010608001_p","41010608001",10000000,id,JB,71
"id_acc_41010701001_p","41010701001",10000000,id,JB,71
"id_acc_41010702001_p","41010702001",10000000,id,JB,71
"id_acc_41010703001_p","41010703001",10000000,id,JB,71
"id_acc_41010704001_p","41010704001",10000000,id,JB,71
"id_acc_41010705001_p","41010705001",10000000,id,JB,71
"id_acc_41010706001_p","41010706001",10000000,id,JB,71
"id_acc_41010707001_p","41010707001",10000000,id,JB,71
"id_acc_41010801001_p","41010801001",10000000,id,JB,71
"id_acc_41010802001_p","41010802001",10000000,id,JB,71
"id_acc_41010803001_p","41010803001",10000000,id,JB,71
"id_acc_41010804001_p","41010804001",10000000,id,JB,71
"id_acc_41010805001_p","41010805001",10000000,id,JB,71
"id_acc_41010806001_p","41010806001",10000000,id,JB,71
"id_acc_41010807001_p","41010807001",10000000,id,JB,71
"id_acc_41010808001_p","41010808001",10000000,id,JB,71
"id_acc_41010809001_p","41010809001",10000000,id,JB,71
"id_acc_41010810001_p","41010810001",10000000,id,JB,71
"id_acc_41010901001_p","41010901001",10000000,id,JB,71
"id_acc_41010902001_p","41010902001",10000000,id,JB,71
"id_acc_41010903001_p","41010903001",10000000,id,JB,71
"id_acc_41010904001_p","41010904001",10000000,id,JB,71
"id_acc_41010905001_p","41010905001",10000000,id,JB,71
"id_acc_41010906001_p","41010906001",10000000,id,JB,71
"id_acc_41010907001_p","41010907001",10000000,id,JB,71
"id_acc_41010908001_p","41010908001",10000000,id,JB,71
"id_acc_41010909001_p","41010909001",10000000,id,JB,71
"id_acc_41010910001_p","41010910001",10000000,id,JB,71
"id_acc_41011001001_p","41011001001",10000000,id,JB,71
"id_acc_41011002001_p","41011002001",10000000,id,JB,71
"id_acc_41011101001_p","41011101001",10000000,id,JB,71
"id_acc_41011201001_p","41011201001",10000000,id,JB,71
"id_acc_41011301001_p","41011301001",10000000,id,JB,71
"id_acc_41011401001_p","41011401001",10000000,id,JB,71
"id_acc_41011402001_p","41011402001",10000000,id,JB,71
"id_acc_41011403001_p","41011403001",10000000,id,JB,71
"id_acc_41011404001_p","41011404001",10000000,id,JB,71
"id_acc_41011405001_p","41011405001",10000000,id,JB,71
"id_acc_41011406001_p","41011406001",10000000,id,JB,71
"id_acc_41011407001_p","41011407001",10000000,id,JB,71
"id_acc_41011408001_p","41011408001",10000000,id,JB,71
"id_acc_41011409001_p","41011409001",10000000,id,JB,71
"id_acc_41011410001_p","41011410001",10000000,id,JB,71
"id_acc_41011411001_p","41011411001",10000000,id,JB,71
"id_acc_41011412001_p","41011412001",10000000,id,JB,71
"id_acc_41011413001_p","41011413001",10000000,id,JB,71
"id_acc_41011414001_p","41011414001",10000000,id,JB,71
"id_acc_41011415001_p","41011415001",10000000,id,JB,71
"id_acc_41011416001_p","41011416001",10000000,id,JB,71
"id_acc_41011417001_p","41011417001",10000000,id,JB,71
"id_acc_41011418001_p","41011418001",10000000,id,JB,71
"id_acc_41011419001_p","41011419001",10000000,id,JB,71
"id_acc_41011420001_p","41011420001",10000000,id,JB,71
"id_acc_41011421001_p","41011421001",10000000,id,JB,71
"id_acc_41011422001_p","41011422001",10000000,id,JB,71
"id_acc_41011423001_p","41011423001",10000000,id,JB,71
"id_acc_41011424001_p","41011424001",10000000,id,JB,71
"id_acc_41011425001_p","41011425001",10000000,id,JB,71
"id_acc_41011426001_p","41011426001",10000000,id,JB,71
"id_acc_41011427001_p","41011427001",10000000,id,JB,71
"id_acc_41011428001_p","41011428001",10000000,id,JB,71
"id_acc_41011429001_p","41011429001",10000000,id,JB,71
"id_acc_41011430001_p","41011430001",10000000,id,JB,71
"id_acc_41011431001_p","41011431001",10000000,id,JB,71
"id_acc_41011432001_p","41011432001",10000000,id,JB,71
"id_acc_41011433001_p","41011433001",10000000,id,JB,71
"id_acc_41011434001_p","41011434001",10000000,id,JB,71
"id_acc_41011435001_p","41011435001",10000000,id,JB,71
"id_acc_41011436001_p","41011436001",10000000,id,JB,71
"id_acc_41011437001_p","41011437001",10000000,id,JB,71
"id_acc_41011501001_p","41011501001",10000000,id,JB,71
"id_acc_41011601001_p","41011601001",10000000,id,JB,71
"id_acc_41011602001_p","41011602001",10000000,id,JB,71
\ No newline at end of file
"id","account_id",amount,country_id,state_id,district_id
"id_acc_41010101001_p","41010101001",10000000,id,JB,
"id_acc_41010101002_p","41010101002",10000000,id,JB,
"id_acc_41010101003_p","41010101003",10000000,id,JB,
"id_acc_41010101004_p","41010101004",10000000,id,JB,
"id_acc_41010102001_p","41010102001",10000000,id,JB,
"id_acc_41010102002_p","41010102002",10000000,id,JB,
"id_acc_41010102003_p","41010102003",10000000,id,JB,
"id_acc_41010102004_p","41010102004",10000000,id,JB,
"id_acc_41010103001_p","41010103001",10000000,id,JB,
"id_acc_41010103002_p","41010103002",10000000,id,JB,
"id_acc_41010103003_p","41010103003",10000000,id,JB,
"id_acc_41010103004_p","41010103004",10000000,id,JB,
"id_acc_41010104001_p","41010104001",10000000,id,JB,
"id_acc_41010104002_p","41010104002",10000000,id,JB,
"id_acc_41010104003_p","41010104003",10000000,id,JB,
"id_acc_41010104004_p","41010104004",10000000,id,JB,
"id_acc_41010105001_p","41010105001",10000000,id,JB,
"id_acc_41010105002_p","41010105002",10000000,id,JB,
"id_acc_41010105003_p","41010105003",10000000,id,JB,
"id_acc_41010105004_p","41010105004",10000000,id,JB,
"id_acc_41010106001_p","41010106001",10000000,id,JB,
"id_acc_41010106002_p","41010106002",10000000,id,JB,
"id_acc_41010106003_p","41010106003",10000000,id,JB,
"id_acc_41010106004_p","41010106004",10000000,id,JB,
"id_acc_41010107001_p","41010107001",10000000,id,JB,
"id_acc_41010107002_p","41010107002",10000000,id,JB,
"id_acc_41010107003_p","41010107003",10000000,id,JB,
"id_acc_41010107004_p","41010107004",10000000,id,JB,
"id_acc_41010108001_p","41010108001",10000000,id,JB,
"id_acc_41010108002_p","41010108002",10000000,id,JB,
"id_acc_41010108003_p","41010108003",10000000,id,JB,
"id_acc_41010108004_p","41010108004",10000000,id,JB,
"id_acc_41010109001_p","41010109001",10000000,id,JB,
"id_acc_41010109002_p","41010109002",10000000,id,JB,
"id_acc_41010109003_p","41010109003",10000000,id,JB,
"id_acc_41010109004_p","41010109004",10000000,id,JB,
"id_acc_41010110001_p","41010110001",10000000,id,JB,
"id_acc_41010110002_p","41010110002",10000000,id,JB,
"id_acc_41010110003_p","41010110003",10000000,id,JB,
"id_acc_41010110004_p","41010110004",10000000,id,JB,
"id_acc_41010111001_p","41010111001",10000000,id,JB,
"id_acc_41010111002_p","41010111002",10000000,id,JB,
"id_acc_41010111003_p","41010111003",10000000,id,JB,
"id_acc_41010111004_p","41010111004",10000000,id,JB,
"id_acc_41010112001_p","41010112001",10000000,id,JB,
"id_acc_41010112002_p","41010112002",10000000,id,JB,
"id_acc_41010112003_p","41010112003",10000000,id,JB,
"id_acc_41010112004_p","41010112004",10000000,id,JB,
"id_acc_41010113001_p","41010113001",10000000,id,JB,
"id_acc_41010113002_p","41010113002",10000000,id,JB,
"id_acc_41010113003_p","41010113003",10000000,id,JB,
"id_acc_41010113004_p","41010113004",10000000,id,JB,
"id_acc_41010114001_p","41010114001",10000000,id,JB,
"id_acc_41010114002_p","41010114002",10000000,id,JB,
"id_acc_41010114003_p","41010114003",10000000,id,JB,
"id_acc_41010114004_p","41010114004",10000000,id,JB,
"id_acc_41010201001_p","41010201001",10000000,id,JB,
"id_acc_41010202001_p","41010202001",10000000,id,JB,
"id_acc_41010203001_p","41010203001",10000000,id,JB,
"id_acc_41010204001_p","41010204001",10000000,id,JB,
"id_acc_41010205001_p","41010205001",10000000,id,JB,
"id_acc_41010206001_p","41010206001",10000000,id,JB,
"id_acc_41010207001_p","41010207001",10000000,id,JB,
"id_acc_41010208001_p","41010208001",10000000,id,JB,
"id_acc_41010209001_p","41010209001",10000000,id,JB,
"id_acc_41010210001_p","41010210001",10000000,id,JB,
"id_acc_41010211001_p","41010211001",10000000,id,JB,
"id_acc_41010212001_p","41010212001",10000000,id,JB,
"id_acc_41010213001_p","41010213001",10000000,id,JB,
"id_acc_41010214001_p","41010214001",10000000,id,JB,
"id_acc_41010301001_p","41010301001",10000000,id,JB,
"id_acc_41010302001_p","41010302001",10000000,id,JB,
"id_acc_41010303001_p","41010303001",10000000,id,JB,
"id_acc_41010304001_p","41010304001",10000000,id,JB,
"id_acc_41010401001_p","41010401001",10000000,id,JB,
"id_acc_41010501001_p","41010501001",10000000,id,JB,
"id_acc_41010601001_p","41010601001",10000000,id,JB,71
"id_acc_41010602001_p","41010602001",10000000,id,JB,71
"id_acc_41010603001_p","41010603001",10000000,id,JB,71
"id_acc_41010604001_p","41010604001",10000000,id,JB,71
"id_acc_41010605001_p","41010605001",10000000,id,JB,71
"id_acc_41010606001_p","41010606001",10000000,id,JB,71
"id_acc_41010607001_p","41010607001",10000000,id,JB,71
"id_acc_41010608001_p","41010608001",10000000,id,JB,71
"id_acc_41010701001_p","41010701001",10000000,id,JB,71
"id_acc_41010702001_p","41010702001",10000000,id,JB,71
"id_acc_41010703001_p","41010703001",10000000,id,JB,71
"id_acc_41010704001_p","41010704001",10000000,id,JB,71
"id_acc_41010705001_p","41010705001",10000000,id,JB,71
"id_acc_41010706001_p","41010706001",10000000,id,JB,71
"id_acc_41010707001_p","41010707001",10000000,id,JB,71
"id_acc_41010801001_p","41010801001",10000000,id,JB,71
"id_acc_41010802001_p","41010802001",10000000,id,JB,71
"id_acc_41010803001_p","41010803001",10000000,id,JB,71
"id_acc_41010804001_p","41010804001",10000000,id,JB,71
"id_acc_41010805001_p","41010805001",10000000,id,JB,71
"id_acc_41010806001_p","41010806001",10000000,id,JB,71
"id_acc_41010807001_p","41010807001",10000000,id,JB,71
"id_acc_41010808001_p","41010808001",10000000,id,JB,71
"id_acc_41010809001_p","41010809001",10000000,id,JB,71
"id_acc_41010810001_p","41010810001",10000000,id,JB,71
"id_acc_41010901001_p","41010901001",10000000,id,JB,71
"id_acc_41010902001_p","41010902001",10000000,id,JB,71
"id_acc_41010903001_p","41010903001",10000000,id,JB,71
"id_acc_41010904001_p","41010904001",10000000,id,JB,71
"id_acc_41010905001_p","41010905001",10000000,id,JB,71
"id_acc_41010906001_p","41010906001",10000000,id,JB,71
"id_acc_41010907001_p","41010907001",10000000,id,JB,71
"id_acc_41010908001_p","41010908001",10000000,id,JB,71
"id_acc_41010909001_p","41010909001",10000000,id,JB,71
"id_acc_41010910001_p","41010910001",10000000,id,JB,71
"id_acc_41011001001_p","41011001001",10000000,id,JB,71
"id_acc_41011002001_p","41011002001",10000000,id,JB,71
"id_acc_41011101001_p","41011101001",10000000,id,JB,71
"id_acc_41011201001_p","41011201001",10000000,id,JB,71
"id_acc_41011301001_p","41011301001",10000000,id,JB,71
"id_acc_41011401001_p","41011401001",10000000,id,JB,71
"id_acc_41011402001_p","41011402001",10000000,id,JB,71
"id_acc_41011403001_p","41011403001",10000000,id,JB,71
"id_acc_41011404001_p","41011404001",10000000,id,JB,71
"id_acc_41011405001_p","41011405001",10000000,id,JB,71
"id_acc_41011406001_p","41011406001",10000000,id,JB,71
"id_acc_41011407001_p","41011407001",10000000,id,JB,71
"id_acc_41011408001_p","41011408001",10000000,id,JB,71
"id_acc_41011409001_p","41011409001",10000000,id,JB,71
"id_acc_41011410001_p","41011410001",10000000,id,JB,71
"id_acc_41011411001_p","41011411001",10000000,id,JB,71
"id_acc_41011412001_p","41011412001",10000000,id,JB,71
"id_acc_41011413001_p","41011413001",10000000,id,JB,71
"id_acc_41011414001_p","41011414001",10000000,id,JB,71
"id_acc_41011415001_p","41011415001",10000000,id,JB,71
"id_acc_41011416001_p","41011416001",10000000,id,JB,71
"id_acc_41011417001_p","41011417001",10000000,id,JB,71
"id_acc_41011418001_p","41011418001",10000000,id,JB,71
"id_acc_41011419001_p","41011419001",10000000,id,JB,71
"id_acc_41011420001_p","41011420001",10000000,id,JB,71
"id_acc_41011421001_p","41011421001",10000000,id,JB,71
"id_acc_41011422001_p","41011422001",10000000,id,JB,71
"id_acc_41011423001_p","41011423001",10000000,id,JB,71
"id_acc_41011424001_p","41011424001",10000000,id,JB,71
"id_acc_41011425001_p","41011425001",10000000,id,JB,71
"id_acc_41011426001_p","41011426001",10000000,id,JB,71
"id_acc_41011427001_p","41011427001",10000000,id,JB,71
"id_acc_41011428001_p","41011428001",10000000,id,JB,71
"id_acc_41011429001_p","41011429001",10000000,id,JB,71
"id_acc_41011430001_p","41011430001",10000000,id,JB,71
"id_acc_41011431001_p","41011431001",10000000,id,JB,71
"id_acc_41011432001_p","41011432001",10000000,id,JB,71
"id_acc_41011433001_p","41011433001",10000000,id,JB,71
"id_acc_41011434001_p","41011434001",10000000,id,JB,71
"id_acc_41011435001_p","41011435001",10000000,id,JB,71
"id_acc_41011436001_p","41011436001",10000000,id,JB,71
"id_acc_41011437001_p","41011437001",10000000,id,JB,71
"id_acc_41011501001_p","41011501001",10000000,id,JB,71
"id_acc_41011601001_p","41011601001",10000000,id,JB,71
"id_acc_41011602001_p","41011602001",10000000,id,JB,71
\ No newline at end of file
"id","account_id",amount,country_id,state_id,district_id
"id_acc_41010101001_p","41010101001",10000000,id,JB,
"id_acc_41010101002_p","41010101002",10000000,id,JB,
"id_acc_41010101003_p","41010101003",10000000,id,JB,
"id_acc_41010101004_p","41010101004",10000000,id,JB,
"id_acc_41010102001_p","41010102001",10000000,id,JB,
"id_acc_41010102002_p","41010102002",10000000,id,JB,
"id_acc_41010102003_p","41010102003",10000000,id,JB,
"id_acc_41010102004_p","41010102004",10000000,id,JB,
"id_acc_41010103001_p","41010103001",10000000,id,JB,
"id_acc_41010103002_p","41010103002",10000000,id,JB,
"id_acc_41010103003_p","41010103003",10000000,id,JB,
"id_acc_41010103004_p","41010103004",10000000,id,JB,
"id_acc_41010104001_p","41010104001",10000000,id,JB,
"id_acc_41010104002_p","41010104002",10000000,id,JB,
"id_acc_41010104003_p","41010104003",10000000,id,JB,
"id_acc_41010104004_p","41010104004",10000000,id,JB,
"id_acc_41010105001_p","41010105001",10000000,id,JB,
"id_acc_41010105002_p","41010105002",10000000,id,JB,
"id_acc_41010105003_p","41010105003",10000000,id,JB,
"id_acc_41010105004_p","41010105004",10000000,id,JB,
"id_acc_41010106001_p","41010106001",10000000,id,JB,
"id_acc_41010106002_p","41010106002",10000000,id,JB,
"id_acc_41010106003_p","41010106003",10000000,id,JB,
"id_acc_41010106004_p","41010106004",10000000,id,JB,
"id_acc_41010107001_p","41010107001",10000000,id,JB,
"id_acc_41010107002_p","41010107002",10000000,id,JB,
"id_acc_41010107003_p","41010107003",10000000,id,JB,
"id_acc_41010107004_p","41010107004",10000000,id,JB,
"id_acc_41010108001_p","41010108001",10000000,id,JB,
"id_acc_41010108002_p","41010108002",10000000,id,JB,
"id_acc_41010108003_p","41010108003",10000000,id,JB,
"id_acc_41010108004_p","41010108004",10000000,id,JB,
"id_acc_41010109001_p","41010109001",10000000,id,JB,
"id_acc_41010109002_p","41010109002",10000000,id,JB,
"id_acc_41010109003_p","41010109003",10000000,id,JB,
"id_acc_41010109004_p","41010109004",10000000,id,JB,
"id_acc_41010110001_p","41010110001",10000000,id,JB,
"id_acc_41010110002_p","41010110002",10000000,id,JB,
"id_acc_41010110003_p","41010110003",10000000,id,JB,
"id_acc_41010110004_p","41010110004",10000000,id,JB,
"id_acc_41010111001_p","41010111001",10000000,id,JB,
"id_acc_41010111002_p","41010111002",10000000,id,JB,
"id_acc_41010111003_p","41010111003",10000000,id,JB,
"id_acc_41010111004_p","41010111004",10000000,id,JB,
"id_acc_41010112001_p","41010112001",10000000,id,JB,
"id_acc_41010112002_p","41010112002",10000000,id,JB,
"id_acc_41010112003_p","41010112003",10000000,id,JB,
"id_acc_41010112004_p","41010112004",10000000,id,JB,
"id_acc_41010113001_p","41010113001",10000000,id,JB,
"id_acc_41010113002_p","41010113002",10000000,id,JB,
"id_acc_41010113003_p","41010113003",10000000,id,JB,
"id_acc_41010113004_p","41010113004",10000000,id,JB,
"id_acc_41010114001_p","41010114001",10000000,id,JB,
"id_acc_41010114002_p","41010114002",10000000,id,JB,
"id_acc_41010114003_p","41010114003",10000000,id,JB,
"id_acc_41010114004_p","41010114004",10000000,id,JB,
"id_acc_41010201001_p","41010201001",10000000,id,JB,
"id_acc_41010202001_p","41010202001",10000000,id,JB,
"id_acc_41010203001_p","41010203001",10000000,id,JB,
"id_acc_41010204001_p","41010204001",10000000,id,JB,
"id_acc_41010205001_p","41010205001",10000000,id,JB,
"id_acc_41010206001_p","41010206001",10000000,id,JB,
"id_acc_41010207001_p","41010207001",10000000,id,JB,
"id_acc_41010208001_p","41010208001",10000000,id,JB,
"id_acc_41010209001_p","41010209001",10000000,id,JB,
"id_acc_41010210001_p","41010210001",10000000,id,JB,
"id_acc_41010211001_p","41010211001",10000000,id,JB,
"id_acc_41010212001_p","41010212001",10000000,id,JB,
"id_acc_41010213001_p","41010213001",10000000,id,JB,
"id_acc_41010214001_p","41010214001",10000000,id,JB,
"id_acc_41010301001_p","41010301001",10000000,id,JB,
"id_acc_41010302001_p","41010302001",10000000,id,JB,
"id_acc_41010303001_p","41010303001",10000000,id,JB,
"id_acc_41010304001_p","41010304001",10000000,id,JB,
"id_acc_41010401001_p","41010401001",10000000,id,JB,
"id_acc_41010501001_p","41010501001",10000000,id,JB,
"id_acc_41010601001_p","41010601001",10000000,id,JB,71
"id_acc_41010602001_p","41010602001",10000000,id,JB,71
"id_acc_41010603001_p","41010603001",10000000,id,JB,71
"id_acc_41010604001_p","41010604001",10000000,id,JB,71
"id_acc_41010605001_p","41010605001",10000000,id,JB,71
"id_acc_41010606001_p","41010606001",10000000,id,JB,71
"id_acc_41010607001_p","41010607001",10000000,id,JB,71
"id_acc_41010608001_p","41010608001",10000000,id,JB,71
"id_acc_41010701001_p","41010701001",10000000,id,JB,71
"id_acc_41010702001_p","41010702001",10000000,id,JB,71
"id_acc_41010703001_p","41010703001",10000000,id,JB,71
"id_acc_41010704001_p","41010704001",10000000,id,JB,71
"id_acc_41010705001_p","41010705001",10000000,id,JB,71
"id_acc_41010706001_p","41010706001",10000000,id,JB,71
"id_acc_41010707001_p","41010707001",10000000,id,JB,71
"id_acc_41010801001_p","41010801001",10000000,id,JB,71
"id_acc_41010802001_p","41010802001",10000000,id,JB,71
"id_acc_41010803001_p","41010803001",10000000,id,JB,71
"id_acc_41010804001_p","41010804001",10000000,id,JB,71
"id_acc_41010805001_p","41010805001",10000000,id,JB,71
"id_acc_41010806001_p","41010806001",10000000,id,JB,71
"id_acc_41010807001_p","41010807001",10000000,id,JB,71
"id_acc_41010808001_p","41010808001",10000000,id,JB,71
"id_acc_41010809001_p","41010809001",10000000,id,JB,71
"id_acc_41010810001_p","41010810001",10000000,id,JB,71
"id_acc_41010901001_p","41010901001",10000000,id,JB,71
"id_acc_41010902001_p","41010902001",10000000,id,JB,71
"id_acc_41010903001_p","41010903001",10000000,id,JB,71
"id_acc_41010904001_p","41010904001",10000000,id,JB,71
"id_acc_41010905001_p","41010905001",10000000,id,JB,71
"id_acc_41010906001_p","41010906001",10000000,id,JB,71
"id_acc_41010907001_p","41010907001",10000000,id,JB,71
"id_acc_41010908001_p","41010908001",10000000,id,JB,71
"id_acc_41010909001_p","41010909001",10000000,id,JB,71
"id_acc_41010910001_p","41010910001",10000000,id,JB,71
"id_acc_41011001001_p","41011001001",10000000,id,JB,71
"id_acc_41011002001_p","41011002001",10000000,id,JB,71
"id_acc_41011101001_p","41011101001",10000000,id,JB,71
"id_acc_41011201001_p","41011201001",10000000,id,JB,71
"id_acc_41011301001_p","41011301001",10000000,id,JB,71
"id_acc_41011401001_p","41011401001",10000000,id,JB,71
"id_acc_41011402001_p","41011402001",10000000,id,JB,71
"id_acc_41011403001_p","41011403001",10000000,id,JB,71
"id_acc_41011404001_p","41011404001",10000000,id,JB,71
"id_acc_41011405001_p","41011405001",10000000,id,JB,71
"id_acc_41011406001_p","41011406001",10000000,id,JB,71
"id_acc_41011407001_p","41011407001",10000000,id,JB,71
"id_acc_41011408001_p","41011408001",10000000,id,JB,71
"id_acc_41011409001_p","41011409001",10000000,id,JB,71
"id_acc_41011410001_p","41011410001",10000000,id,JB,71
"id_acc_41011411001_p","41011411001",10000000,id,JB,71
"id_acc_41011412001_p","41011412001",10000000,id,JB,71
"id_acc_41011413001_p","41011413001",10000000,id,JB,71
"id_acc_41011414001_p","41011414001",10000000,id,JB,71
"id_acc_41011415001_p","41011415001",10000000,id,JB,71
"id_acc_41011416001_p","41011416001",10000000,id,JB,71
"id_acc_41011417001_p","41011417001",10000000,id,JB,71
"id_acc_41011418001_p","41011418001",10000000,id,JB,71
"id_acc_41011419001_p","41011419001",10000000,id,JB,71
"id_acc_41011420001_p","41011420001",10000000,id,JB,71
"id_acc_41011421001_p","41011421001",10000000,id,JB,71
"id_acc_41011422001_p","41011422001",10000000,id,JB,71
"id_acc_41011423001_p","41011423001",10000000,id,JB,71
"id_acc_41011424001_p","41011424001",10000000,id,JB,71
"id_acc_41011425001_p","41011425001",10000000,id,JB,71
"id_acc_41011426001_p","41011426001",10000000,id,JB,71
"id_acc_41011427001_p","41011427001",10000000,id,JB,71
"id_acc_41011428001_p","41011428001",10000000,id,JB,71
"id_acc_41011429001_p","41011429001",10000000,id,JB,71
"id_acc_41011430001_p","41011430001",10000000,id,JB,71
"id_acc_41011431001_p","41011431001",10000000,id,JB,71
"id_acc_41011432001_p","41011432001",10000000,id,JB,71
"id_acc_41011433001_p","41011433001",10000000,id,JB,71
"id_acc_41011434001_p","41011434001",10000000,id,JB,71
"id_acc_41011435001_p","41011435001",10000000,id,JB,71
"id_acc_41011436001_p","41011436001",10000000,id,JB,71
"id_acc_41011437001_p","41011437001",10000000,id,JB,71
"id_acc_41011501001_p","41011501001",10000000,id,JB,71
"id_acc_41011601001_p","41011601001",10000000,id,JB,71
"id_acc_41011602001_p","41011602001",10000000,id,JB,71
from . import idg_region_tax_plan
from . import idg_region_tax_potency
from . import idg_region_tax_actual
import logging
from datetime import datetime
from psycopg2 import DatabaseError, sql
from odoo import fields, models, api, _
from odoo.exceptions import UserError
# from odoo.tools import sql
_logger = logging.getLogger(__name__)
class IdgRegionTaxPlan(models.Model):
_name = 'idg.region.tax.actual'
_description = 'Region Tax Actual'
country_id = fields.Many2one('res.country', required=True)
state_id = fields.Many2one('res.country.state', required=True,
domain="[('country_id', '=?', country_id)]")
district_id = fields.Many2one('res.district', required=False,
domain="[('state_id', '=?', state_id)]")
account_id = fields.Many2one('account.account', required=True)
year = fields.Integer(compute='_compute_day', store=True)
month = fields.Integer(compute='_compute_day', store=True)
day = fields.Integer(compute='_compute_day', store=True)
date = fields.Date(default=datetime.now().date(), required=True)
qty = fields.Integer(required=True, default=0)
amount = fields.Integer(required=True, default=0)
def _compute_date(self):
for row in self:
row.year = row.date.year
row.month = row.date.month
row.day = row.date.day
import logging
from datetime import datetime
from psycopg2 import DatabaseError, sql
from odoo import fields, models, api, _
from odoo.exceptions import UserError
# from odoo.tools import sql
_logger = logging.getLogger(__name__)
class IdgRegionTaxPlan(models.Model):
_name = 'idg.region.tax.plan'
_description = 'Region Tax Planning'
country_id = fields.Many2one('res.country', required=True)
state_id = fields.Many2one('res.country.state', required=True,
domain="[('country_id', '=?', country_id)]")
district_id = fields.Many2one('res.district', required=False,
domain="[('state_id', '=?', state_id)]")
account_id = fields.Many2one('account.account', required=True)
year = fields.Integer(required=True, default=datetime.now().year)
month = fields.Integer(required=True, default=datetime.now().month)
qty = fields.Integer(required=True, default=0)
amount = fields.Integer(required=True, default=0)
import logging
from datetime import datetime
from psycopg2 import DatabaseError, sql
from odoo import fields, models, api, _
from odoo.exceptions import UserError
# from odoo.tools import sql
_logger = logging.getLogger(__name__)
class IdgRegionTaxPotency(models.Model):
_name = 'idg.region.tax.potency'
_description = 'Region Tax Potency'
country_id = fields.Many2one('res.country', required=True)
state_id = fields.Many2one('res.country.state', required=True,
domain="[('country_id', '=?', country_id)]")
district_id = fields.Many2one('res.district',
domain="[('state_id', '=?', state_id)]")
account_id = fields.Many2one('account.account', required=True)
year = fields.Integer(required=True, default=datetime.now().year)
qty = fields.Integer(required=True, default=0)
amount = fields.Integer(required=True, default=0)
"id","name","model_id:id","group_id:id","perm_read","perm_write","perm_create","perm_unlink"
"access_idg_region_tax_potency_admin","access.idg.region.tax.potency.admin","model_idg_region_tax_potency","base.group_system",1,1,1,1
"access_idg_region_tax_plan_admin","access.idg.region.tax.plan.admin","model_idg_region_tax_plan","base.group_system",1,1,1,1
"access_idg_region_tax_actual_admin","access.idg.region.tax.actual.admin","model_idg_region_tax_actual","base.group_system",1,1,1,1
odoo.define('account.payment', function (require) {
"use strict";
var AbstractField = require('web.AbstractField');
var core = require('web.core');
var field_registry = require('web.field_registry');
var field_utils = require('web.field_utils');
var QWeb = core.qweb;
var _t = core._t;
var ShowPaymentLineWidget = AbstractField.extend({
events: _.extend({
'click .outstanding_credit_assign': '_onOutstandingCreditAssign',
}, AbstractField.prototype.events),
supportedFieldTypes: ['char'],
//--------------------------------------------------------------------------
// Public
//--------------------------------------------------------------------------
/**
* @override
* @returns {boolean}
*/
isSet: function () {
return true;
},
//--------------------------------------------------------------------------
// Private
//--------------------------------------------------------------------------
/**
* @private
* @override
*/
_render: function () {
var self = this;
var info = JSON.parse(this.value);
if (!info) {
this.$el.html('');
return;
}
_.each(info.content, function (k, v) {
k.index = v;
k.amount = field_utils.format.float(k.amount, {digits: k.digits});
if (k.date) {
k.date = field_utils.format.date(field_utils.parse.date(k.date, {}, {isUTC: true}));
}
});
this.$el.html(QWeb.render('ShowPaymentInfo', {
lines: info.content,
outstanding: info.outstanding,
title: info.title
}));
_.each(this.$('.js_payment_info'), function (k, v) {
var isRTL = _t.database.parameters.direction === "rtl";
var content = info.content[v];
var options = {
content: function () {
var $content = $(QWeb.render('PaymentPopOver', content));
var unreconcile_button = $content.filter('.js_unreconcile_payment').on('click', self._onRemoveMoveReconcile.bind(self));
$content.filter('.js_open_payment').on('click', self._onOpenPayment.bind(self));
return $content;
},
html: true,
placement: isRTL ? 'bottom' : 'left',
title: 'Payment Information',
trigger: 'focus',
delay: {"show": 0, "hide": 100},
container: $(k).parent(), // FIXME Ugly, should use the default body container but system & tests to adapt to properly destroy the popover
};
$(k).popover(options);
});
},
//--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
/**
* @private
* @override
* @param {MouseEvent} event
*/
_onOpenPayment: function (event) {
var paymentId = parseInt($(event.target).attr('payment-id'));
var moveId = parseInt($(event.target).attr('move-id'));
var res_model;
var id;
if (paymentId !== undefined && !isNaN(paymentId)) {
res_model = "account.payment";
id = paymentId;
} else if (moveId !== undefined && !isNaN(moveId)) {
res_model = "account.move";
id = moveId;
}
//Open form view of account.move with id = move_id
if (res_model && id) {
this.do_action({
type: 'ir.actions.act_window',
res_model: res_model,
res_id: id,
views: [[false, 'form']],
target: 'current'
});
}
},
/**
* @private
* @override
* @param {MouseEvent} event
*/
_onOutstandingCreditAssign: function (event) {
event.stopPropagation();
event.preventDefault();
var self = this;
var id = $(event.target).data('id') || false;
this._rpc({
model: 'account.move',
method: 'js_assign_outstanding_line',
args: [JSON.parse(this.value).move_id, id],
}).then(function () {
self.trigger_up('reload');
});
},
/**
* @private
* @override
* @param {MouseEvent} event
*/
_onRemoveMoveReconcile: function (event) {
var self = this;
var moveId = parseInt($(event.target).attr('move-id'));
var partialId = parseInt($(event.target).attr('partial-id'));
if (partialId !== undefined && !isNaN(partialId)) {
this._rpc({
model: 'account.move',
method: 'js_remove_outstanding_partial',
args: [moveId, partialId],
}).then(function () {
self.trigger_up('reload');
});
}
},
});
field_registry.add('payment', ShowPaymentLineWidget);
return {
ShowPaymentLineWidget: ShowPaymentLineWidget
};
});
odoo.define('account.AccountPortalSidebar', function (require) {
'use strict';
const dom = require('web.dom');
var publicWidget = require('web.public.widget');
var PortalSidebar = require('portal.PortalSidebar');
var utils = require('web.utils');
publicWidget.registry.AccountPortalSidebar = PortalSidebar.extend({
selector: '.o_portal_invoice_sidebar',
events: {
'click .o_portal_invoice_print': '_onPrintInvoice',
},
/**
* @override
*/
start: function () {
var def = this._super.apply(this, arguments);
var $invoiceHtml = this.$el.find('iframe#invoice_html');
var updateIframeSize = this._updateIframeSize.bind(this, $invoiceHtml);
$(window).on('resize', updateIframeSize);
var iframeDoc = $invoiceHtml[0].contentDocument || $invoiceHtml[0].contentWindow.document;
if (iframeDoc.readyState === 'complete') {
updateIframeSize();
} else {
$invoiceHtml.on('load', updateIframeSize);
}
return def;
},
//--------------------------------------------------------------------------
// Handlers
//--------------------------------------------------------------------------
/**
* Called when the iframe is loaded or the window is resized on customer portal.
* The goal is to expand the iframe height to display the full report without scrollbar.
*
* @private
* @param {object} $el: the iframe
*/
_updateIframeSize: function ($el) {
var $wrapwrap = $el.contents().find('div#wrapwrap');
// Set it to 0 first to handle the case where scrollHeight is too big for its content.
$el.height(0);
$el.height($wrapwrap[0].scrollHeight);
// scroll to the right place after iframe resize
if (!utils.isValidAnchor(window.location.hash)) {
return;
}
var $target = $(window.location.hash);
if (!$target.length) {
return;
}
dom.scrollTo($target[0], {duration: 0});
},
/**
* @private
* @param {MouseEvent} ev
*/
_onPrintInvoice: function (ev) {
ev.preventDefault();
var href = $(ev.currentTarget).attr('href');
this._printIframeContent(href);
},
});
});
odoo.define('account.ShowResequenceRenderer', function (require) {
"use strict";
const {Component} = owl;
const {useState} = owl.hooks;
const AbstractFieldOwl = require('web.AbstractFieldOwl');
const field_registry = require('web.field_registry_owl');
class ChangeLine extends Component {
}
ChangeLine.template = 'account.ResequenceChangeLine';
ChangeLine.props = ["changeLine", 'ordering'];
class ShowResequenceRenderer extends AbstractFieldOwl {
constructor(...args) {
super(...args);
this.data = this.value ? JSON.parse(this.value) : {
changeLines: [],
ordering: 'date',
};
}
async willUpdateProps(nextProps) {
await super.willUpdateProps(nextProps);
Object.assign(this.data, JSON.parse(this.value));
}
}
ShowResequenceRenderer.template = 'account.ResequenceRenderer';
ShowResequenceRenderer.components = {ChangeLine}
field_registry.add('account_resequence_widget', ShowResequenceRenderer);
return ShowResequenceRenderer;
});
odoo.define('account.hierarchy.selection', function (require) {
"use strict";
var core = require('web.core');
var relational_fields = require('web.relational_fields');
var _t = core._t;
var registry = require('web.field_registry');
var FieldSelection = relational_fields.FieldSelection;
var qweb = core.qweb;
var HierarchySelection = FieldSelection.extend({
_renderEdit: function () {
var self = this;
var prom = Promise.resolve()
if (!self.hierarchy_groups) {
prom = this._rpc({
model: 'account.account.type',
method: 'search_read',
kwargs: {
domain: [],
fields: ['id', 'internal_group', 'display_name'],
},
}).then(function (arg) {
self.values = _.map(arg, v => [v['id'], v['display_name']])
self.hierarchy_groups = [
{
'name': _t('Balance Sheet'),
'children': [
{
'name': _t('Assets'),
'ids': _.map(_.filter(arg, v => v['internal_group'] == 'asset'), v => v['id'])
},
{
'name': _t('Liabilities'),
'ids': _.map(_.filter(arg, v => v['internal_group'] == 'liability'), v => v['id'])
},
{
'name': _t('Equity'),
'ids': _.map(_.filter(arg, v => v['internal_group'] == 'equity'), v => v['id'])
},
],
},
{
'name': _t('Profit & Loss'),
'children': [
{
'name': _t('Income'),
'ids': _.map(_.filter(arg, v => v['internal_group'] == 'income'), v => v['id'])
},
{
'name': _t('Expense'),
'ids': _.map(_.filter(arg, v => v['internal_group'] == 'expense'), v => v['id'])
},
],
},
{
'name': _t('Other'),
'ids': _.map(_.filter(arg, v => !['asset', 'liability', 'equity', 'income', 'expense'].includes(v['internal_group'])), v => v['id'])
},
]
});
}
Promise.resolve(prom).then(function () {
self.$el.empty();
self._addHierarchy(self.$el, self.hierarchy_groups, 0);
var value = self.value;
if (self.field.type === 'many2one' && value) {
value = value.data.id;
}
self.$el.val(JSON.stringify(value));
});
},
_addHierarchy: function (el, group, level) {
var self = this;
_.each(group, function (item) {
var optgroup = $('<optgroup/>').attr(({
'label': $('<div/>').html('&nbsp;'.repeat(6 * level) + item['name']).text(),
}))
_.each(item['ids'], function (id) {
var value = _.find(self.values, v => v[0] == id)
optgroup.append($('<option/>', {
value: JSON.stringify(value[0]),
text: value[1],
}));
})
el.append(optgroup)
if (item['children']) {
self._addHierarchy(el, item['children'], level + 1);
}
})
}
});
registry.add("account_hierarchy_selection", HierarchySelection);
});
odoo.define('account.bank_statement', function (require) {
"use strict";
var KanbanController = require("web.KanbanController");
var ListController = require("web.ListController");
var includeDict = {
renderButtons: function () {
this._super.apply(this, arguments);
if (this.modelName === "account.bank.statement") {
var data = this.model.get(this.handle);
if (data.context.journal_type !== 'cash') {
this.$buttons.find('button.o_button_import').hide();
}
}
}
};
KanbanController.include(includeDict);
ListController.include(includeDict);
});
\ No newline at end of file
odoo.define('account.upload.bill.mixin', function (require) {
"use strict";
var core = require('web.core');
var _t = core._t;
var qweb = core.qweb;
var UploadBillMixin = {
start: function () {
// define a unique uploadId and a callback method
this.fileUploadID = _.uniqueId('account_bill_file_upload');
$(window).on(this.fileUploadID, this._onFileUploaded.bind(this));
return this._super.apply(this, arguments);
},
_onAddAttachment: function (ev) {
// Auto submit form once we've selected an attachment
var $input = $(ev.currentTarget).find('input.o_input_file');
if ($input.val() !== '') {
var $binaryForm = this.$('.o_vendor_bill_upload form.o_form_binary_form');
$binaryForm.submit();
}
},
_onFileUploaded: function () {
// Callback once attachment have been created, create a bill with attachment ids
var self = this;
var attachments = Array.prototype.slice.call(arguments, 1);
// Get id from result
var attachent_ids = attachments.reduce(function (filtered, record) {
if (record.id) {
filtered.push(record.id);
}
return filtered;
}, []);
return this._rpc({
model: 'account.journal',
method: 'create_invoice_from_attachment',
args: ["", attachent_ids],
context: this.initialState.context,
}).then(function (result) {
self.do_action(result);
});
},
_onUpload: function (event) {
var self = this;
// If hidden upload form don't exists, create it
var $formContainer = this.$('.o_content').find('.o_vendor_bill_upload');
if (!$formContainer.length) {
$formContainer = $(qweb.render('account.BillsHiddenUploadForm', {widget: this}));
$formContainer.appendTo(this.$('.o_content'));
}
// Trigger the input to select a file
this.$('.o_vendor_bill_upload .o_input_file').click();
},
}
return UploadBillMixin;
});
odoo.define('account.bills.tree', function (require) {
"use strict";
var core = require('web.core');
var ListController = require('web.ListController');
var ListView = require('web.ListView');
var UploadBillMixin = require('account.upload.bill.mixin');
var viewRegistry = require('web.view_registry');
var BillsListController = ListController.extend(UploadBillMixin, {
buttons_template: 'BillsListView.buttons',
events: _.extend({}, ListController.prototype.events, {
'click .o_button_upload_bill': '_onUpload',
'change .o_vendor_bill_upload .o_form_binary_form': '_onAddAttachment',
}),
});
var BillsListView = ListView.extend({
config: _.extend({}, ListView.prototype.config, {
Controller: BillsListController,
}),
});
viewRegistry.add('account_tree', BillsListView);
});
odoo.define('account.dashboard.kanban', function (require) {
"use strict";
var core = require('web.core');
var KanbanController = require('web.KanbanController');
var KanbanView = require('web.KanbanView');
var UploadBillMixin = require('account.upload.bill.mixin');
var viewRegistry = require('web.view_registry');
var DashboardKanbanController = KanbanController.extend(UploadBillMixin, {
events: _.extend({}, KanbanController.prototype.events, {
'click .o_button_upload_bill': '_onUpload',
'change .o_vendor_bill_upload .o_form_binary_form': '_onAddAttachment',
}),
/**
* We override _onUpload (from the upload bill mixin) to pass default_journal_id
* and default_move_type in context.
*
* @override
*/
_onUpload: function (event) {
var kanbanRecord = $(event.currentTarget).closest('.o_kanban_record').data('record');
this.initialState.context['default_journal_id'] = kanbanRecord.id;
if ($(event.currentTarget).attr('journal_type') == 'sale') {
this.initialState.context['default_move_type'] = 'out_invoice'
} else if ($(event.currentTarget).attr('journal_type') == 'purchase') {
this.initialState.context['default_move_type'] = 'in_invoice'
}
UploadBillMixin._onUpload.apply(this, arguments);
}
});
var DashboardKanbanView = KanbanView.extend({
config: _.extend({}, KanbanView.prototype.config, {
Controller: DashboardKanbanController,
}),
});
viewRegistry.add('account_dashboard_kanban', DashboardKanbanView);
});
odoo.define('account.ShowGroupedList', function (require) {
"use strict";
const {Component} = owl;
const {useState} = owl.hooks;
const AbstractFieldOwl = require('web.AbstractFieldOwl');
const field_registry = require('web.field_registry_owl');
class ListItem extends Component {
}
ListItem.template = 'account.GroupedItemTemplate';
ListItem.props = ["item_vals", "options"];
class ListGroup extends Component {
}
ListGroup.template = 'account.GroupedItemsTemplate';
ListGroup.components = {ListItem}
ListGroup.props = ["group_vals", "options"];
class ShowGroupedList extends AbstractFieldOwl {
constructor(...args) {
super(...args);
this.data = this.value ? JSON.parse(this.value) : {
groups_vals: [],
options: {
discarded_number: '',
columns: [],
},
};
}
async willUpdateProps(nextProps) {
await super.willUpdateProps(nextProps);
Object.assign(this.data, JSON.parse(this.value));
}
}
ShowGroupedList.template = 'account.GroupedListTemplate';
ShowGroupedList.components = {ListGroup}
field_registry.add('grouped_view_widget', ShowGroupedList);
return ShowGroupedList;
});
odoo.define('account.activity', function (require) {
"use strict";
var AbstractField = require('web.AbstractField');
var core = require('web.core');
var field_registry = require('web.field_registry');
var QWeb = core.qweb;
var _t = core._t;
var VatActivity = AbstractField.extend({
className: 'o_journal_activity_kanban',
events: {
'click .see_all_activities': '_onOpenAll',
'click .see_activity': '_onOpenActivity',
},
init: function () {
this.MAX_ACTIVITY_DISPLAY = 5;
this._super.apply(this, arguments);
},
//------------------------------------------------------------
// Private
//------------------------------------------------------------
_render: function () {
var self = this;
var info = JSON.parse(this.value);
if (!info) {
this.$el.html('');
return;
}
info.more_activities = false;
if (info.activities.length > this.MAX_ACTIVITY_DISPLAY) {
info.more_activities = true;
info.activities = info.activities.slice(0, this.MAX_ACTIVITY_DISPLAY);
}
this.$el.html(QWeb.render('accountJournalDashboardActivity', info));
},
_onOpenActivity: function (e) {
e.preventDefault();
var self = this;
self.do_action({
type: 'ir.actions.act_window',
name: _t('Journal Entry'),
target: 'current',
res_id: $(e.target).data('resId'),
res_model: 'account.move',
views: [[false, 'form']],
});
},
_onOpenAll: function (e) {
e.preventDefault();
var self = this;
self.do_action({
type: 'ir.actions.act_window',
name: _t('Journal Entries'),
res_model: 'account.move',
views: [[false, 'kanban'], [false, 'form']],
search_view_id: [false],
domain: [['journal_id', '=', self.res_id], ['activity_ids', '!=', false]],
});
}
})
field_registry.add('kanban_vat_activity', VatActivity);
return VatActivity;
});
odoo.define('account.section_and_note_backend', function (require) {
// The goal of this file is to contain JS hacks related to allowing
// section and note on sale order and invoice.
// [UPDATED] now also allows configuring products on sale order.
"use strict";
var FieldChar = require('web.basic_fields').FieldChar;
var FieldOne2Many = require('web.relational_fields').FieldOne2Many;
var fieldRegistry = require('web.field_registry');
var ListFieldText = require('web.basic_fields').ListFieldText;
var ListRenderer = require('web.ListRenderer');
var SectionAndNoteListRenderer = ListRenderer.extend({
/**
* We want section and note to take the whole line (except handle and trash)
* to look better and to hide the unnecessary fields.
*
* @override
*/
_renderBodyCell: function (record, node, index, options) {
var $cell = this._super.apply(this, arguments);
var isSection = record.data.display_type === 'line_section';
var isNote = record.data.display_type === 'line_note';
if (isSection || isNote) {
if (node.attrs.widget === "handle") {
return $cell;
} else if (node.attrs.name === "name") {
var nbrColumns = this._getNumberOfCols();
if (this.handleField) {
nbrColumns--;
}
if (this.addTrashIcon) {
nbrColumns--;
}
$cell.attr('colspan', nbrColumns);
} else {
$cell.removeClass('o_invisible_modifier');
return $cell.addClass('o_hidden');
}
}
return $cell;
},
/**
* We add the o_is_{display_type} class to allow custom behaviour both in JS and CSS.
*
* @override
*/
_renderRow: function (record, index) {
var $row = this._super.apply(this, arguments);
if (record.data.display_type) {
$row.addClass('o_is_' + record.data.display_type);
}
return $row;
},
/**
* We want to add .o_section_and_note_list_view on the table to have stronger CSS.
*
* @override
* @private
*/
_renderView: function () {
var self = this;
return this._super.apply(this, arguments).then(function () {
self.$('.o_list_table').addClass('o_section_and_note_list_view');
});
}
});
// We create a custom widget because this is the cleanest way to do it:
// to be sure this custom code will only impact selected fields having the widget
// and not applied to any other existing ListRenderer.
var SectionAndNoteFieldOne2Many = FieldOne2Many.extend({
/**
* We want to use our custom renderer for the list.
*
* @override
*/
_getRenderer: function () {
if (this.view.arch.tag === 'tree') {
return SectionAndNoteListRenderer;
}
return this._super.apply(this, arguments);
},
});
// This is a merge between a FieldText and a FieldChar.
// We want a FieldChar for section,
// and a FieldText for the rest (product and note).
var SectionAndNoteFieldText = function (parent, name, record, options) {
var isSection = record.data.display_type === 'line_section';
var Constructor = isSection ? FieldChar : ListFieldText;
return new Constructor(parent, name, record, options);
};
fieldRegistry.add('section_and_note_one2many', SectionAndNoteFieldOne2Many);
fieldRegistry.add('section_and_note_text', SectionAndNoteFieldText);
return SectionAndNoteListRenderer;
});
odoo.define('account.tax_group', function (require) {
"use strict";
var core = require('web.core');
var session = require('web.session');
var fieldRegistry = require('web.field_registry');
var AbstractField = require('web.AbstractField');
var fieldUtils = require('web.field_utils');
var QWeb = core.qweb;
var TaxGroupCustomField = AbstractField.extend({
events: {
'click .tax_group_edit': '_onClick',
'keydown .oe_tax_group_editable .tax_group_edit_input input': '_onKeydown',
'blur .oe_tax_group_editable .tax_group_edit_input input': '_onBlur',
},
//--------------------------------------------------------------------------
// Private
//--------------------------------------------------------------------------
/**
* This method is called by "_setTaxGroups". It is
* responsible for calculating taxes based on
* tax groups and triggering an event to
* notify the ORM of a change.
*
* @param {Id} taxGroupId
* @param {Float} deltaAmount
*/
_changeTaxValueByTaxGroup: function (taxGroupId, deltaAmount) {
const self = this;
// Search for the first tax line with the same tax group and modify its value
function applyChange(line_id) {
let debitAmount = 0;
let creditAmount = 0;
let amount_currency = 0;
if (line_id.data.currency_id) { // If multi currency enable
if (self.record.data.move_type === "in_invoice") {
amount_currency = line_id.data.amount_currency - deltaAmount;
} else {
amount_currency = line_id.data.amount_currency + deltaAmount;
}
} else {
let balance = line_id.data.price_subtotal;
balance -= deltaAmount;
if (self.record.data.move_type === "in_invoice") { // For vendor bill
if (balance > 0) {
debitAmount = balance;
} else if (balance < 0) {
creditAmount = -balance;
}
} else { // For refund
if (balance > 0) {
creditAmount = balance;
} else if (balance < 0) {
debitAmount = -balance;
}
}
}
// Trigger ORM
self.trigger_up('field_changed', {
dataPointID: self.record.id,
changes: {
line_ids: {
operation: "UPDATE",
id: line_id.id,
data: {amount_currency: amount_currency, debit: debitAmount, credit: creditAmount}
}
}, // account.move change
initialEvent: {
dataPointID: line_id.id,
changes: {amount_currency: amount_currency, debit: debitAmount, credit: creditAmount},
}, // account.move.line change
});
}
let line_id = self.record.data.line_ids.data.find(elem => elem.data.tax_group_id && elem.data.tax_group_id.data.id === taxGroupId);
if (line_id) {
applyChange(line_id);
} else {
const {limit, id, count} = self.record.data.line_ids;
let offset = count - limit;
self.trigger_up('load', {
id,
limit,
offset,
on_success: value => {
line_id = value.data.find(elem => elem.data.tax_group_id && elem.data.tax_group_id.data.id === taxGroupId);
applyChange(line_id);
},
});
}
},
/**
* This method checks that the document where the widget
* is located is of the "in_invoice" or "in_refund" type.
* This makes it possible to know if it is a purchase
* document.
*
* @returns boolean (true if the invoice is a purchase document)
*/
_isPurchaseDocument: function () {
return this.record.data.move_type === "in_invoice" || this.record.data.move_type === 'in_refund';
},
/**
* This method is part of the widget life cycle and allows you to render
* the widget.
*
* @private
* @override
*/
_render: function () {
var self = this;
// Display the pencil and allow the event to click and edit only on purchase that are not posted and in edit mode.
// since the field is readonly its mode will always be readonly. Therefore we have to use a trick by checking the
// formRenderer (the parent) and check if it is in edit in order to know the correct mode.
var displayEditWidget = self._isPurchaseDocument() && this.record.data.state === 'draft' && this.getParent().mode === 'edit';
this.$el.html($(QWeb.render('AccountTaxGroupTemplate', {
lines: self.value,
displayEditWidget: displayEditWidget,
})));
},
//--------------------------------------------------------------------------
// Handler
//--------------------------------------------------------------------------
/**
* This method is called when the user is in edit mode and
* leaves the <input> field. Then, we execute the code that
* modifies the information.
*
* @param {event} ev
*/
_onBlur: function (ev) {
ev.preventDefault();
var $input = $(ev.target);
var newValue = $input.val();
var currency = session.get_currency(this.record.data.currency_id.data.id);
try {
newValue = fieldUtils.parse.float(newValue); // Need a float for format the value.
newValue = fieldUtils.format.float(newValue, null, {digits: currency.digits}); // return a string rounded to currency precision
newValue = fieldUtils.parse.float(newValue); // convert back to Float to compare with oldValue to know if value has changed
} catch (err) {
$input.addClass('o_field_invalid');
return;
}
var oldValue = $input.data('originalValue');
if (newValue === oldValue || newValue === 0) {
return this._render();
}
var taxGroupId = $input.parents('.oe_tax_group_editable').data('taxGroupId');
this._changeTaxValueByTaxGroup(taxGroupId, oldValue - newValue);
},
/**
* This method is called when the user clicks on a specific <td>.
* it will hide the edit button and display the field to be edited.
*
* @param {event} ev
*/
_onClick: function (ev) {
ev.preventDefault();
var $taxGroupElement = $(ev.target).parents('.oe_tax_group_editable');
// Show input and hide previous element
$taxGroupElement.find('.tax_group_edit').addClass('d-none');
$taxGroupElement.find('.tax_group_edit_input').removeClass('d-none');
var $input = $taxGroupElement.find('.tax_group_edit_input input');
// Get original value and display it in user locale in the input
var formatedOriginalValue = fieldUtils.format.float($input.data('originalValue'), {}, {});
$input.focus(); // Focus the input
$input.val(formatedOriginalValue); //add value in user locale to the input
},
/**
* This method is called when the user is in edit mode and pressing
* a key on his keyboard. If this key corresponds to ENTER or TAB,
* the code that modifies the information is executed.
*
* @param {event} ev
*/
_onKeydown: function (ev) {
switch (ev.which) {
// Trigger only if the user clicks on ENTER or on TAB.
case $.ui.keyCode.ENTER:
case $.ui.keyCode.TAB:
// trigger blur to prevent the code being executed twice
$(ev.target).blur();
}
},
});
fieldRegistry.add('tax-group-custom-field', TaxGroupCustomField)
});
odoo.define('account.tour', function (require) {
"use strict";
var core = require('web.core');
var tour = require('web_tour.tour');
var _t = core._t;
tour.register('account_tour', {
url: "/web",
sequence: 60,
}, [
...tour.stepUtils.goToAppSteps('account.menu_finance', _t('Send invoices to your customers in no time with the <b>Invoicing app</b>.')),
{
trigger: "a.o_onboarding_step_action[data-method=action_open_base_onboarding_company]",
content: _t("Start by checking your company's data."),
position: "bottom",
}, {
trigger: "button[name=action_save_onboarding_company_step]",
extra_trigger: "a.o_onboarding_step_action[data-method=action_open_base_onboarding_company]",
content: _t("Looks good. Let's continue."),
position: "bottom",
}, {
trigger: "a.o_onboarding_step_action[data-method=action_open_base_document_layout]",
content: _t("Customize your layout."),
position: "bottom",
}, {
trigger: "button[name=document_layout_save]",
extra_trigger: "a.o_onboarding_step_action[data-method=action_open_base_document_layout]",
content: _t("Once everything is as you want it, validate."),
position: "top",
}, {
trigger: "a.o_onboarding_step_action[data-method=action_open_account_onboarding_create_invoice]",
content: _t("Now, we'll create your first invoice."),
position: "bottom",
}, {
trigger: "div[name=partner_id] input",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Write a company name to <b>create one</b> or <b>see suggestions</b>."),
position: "bottom",
}, {
trigger: ".o_m2o_dropdown_option a:contains('Create')",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Select first partner"),
auto: true,
}, {
trigger: ".modal-content button.btn-primary",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Once everything is set, you are good to continue. You will be able to edit this later in the <b>Customers</b> menu."),
auto: true,
}, {
trigger: "div[name=invoice_line_ids] .o_field_x2many_list_row_add a:not([data-context])",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Add a line to your invoice"),
}, {
trigger: "div[name=invoice_line_ids] textarea[name=name]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Fill in the details of the line."),
position: "bottom",
}, {
trigger: "div[name=invoice_line_ids] input[name=price_unit]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Set a price"),
position: "bottom",
run: 'text 100',
}, {
trigger: "button[name=action_post]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Once your invoice is ready, press CONFIRM."),
}, {
trigger: "button[name=action_invoice_sent]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Send the invoice and check what the customer will receive."),
}, {
trigger: "input[name=email]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Write here <b>your own email address</b> to test the flow."),
run: 'text customer@example.com',
auto: true,
}, {
trigger: ".modal-content button.btn-primary",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Validate."),
auto: true,
}, {
trigger: "button[name=send_and_print_action]",
extra_trigger: "[name=move_type][raw-value=out_invoice]",
content: _t("Let's send the invoice."),
position: "top"
}
]);
});
.o_journal_activity_kanban {
display: block;
.align_activity_center {
width: 100%;
align-items: center;
margin-bottom: 5px;
}
}
\ No newline at end of file
.o_kanban_view.o_kanban_dashboard.o_account_kanban {
&.o_kanban_ungrouped .o_account_dashboard_header {
margin: (0 - $o-kanban-record-margin) ($o-kanban-record-margin - $o-horizontal-padding) $o-kanban-record-margin;
}
.o_account_dashboard_header {
flex: 1 0 100%;
flex-flow: column nowrap;
align-self: flex-start;
width: 100%;
height: auto; // cancel o_form_view height 100%, which hides the help tip message at the bottom of the screen
min-height: 0%; // cancel o_form_view min-height 100%, which hides the help tip message at the bottom of the screen
background-color: $o-view-background-color;
.o_form_statusbar {
padding-right: $o-horizontal-padding;
}
h4 {
font-size: $font-size-base;
font-weight: 500;
}
.fa-gift {
color: #eeeeee;
&:hover {
color: #555555;
}
}
.o_arrow_button.btn-secondary {
color: $text-muted;
text-transform: none;
font-weight: 500;
.o_account_dashboard_index {
color: gray('900');
}
&.o_action_done {
color: gray('900');
background-color: gray('200');
&:after {
border-left-color: gray('200');
}
.fa-check {
color: theme-color('success');
}
}
&:last-of-type {
margin-left: $o-horizontal-padding;
padding-left: $o-horizontal-padding*.5;
border-left: 1px solid gray('300');
}
}
}
}
.o_kanban_view.o_kanban_dashboard.o_account_kanban {
.o_kanban_record {
@include media-breakpoint-up(sm) {
.oe_kanban_action_button {
display: block;
margin-bottom: 5px;
}
}
.o_kanban_card_settings {
padding-top: $o-horizontal-padding/2;
padding-bottom: $o-horizontal-padding/2;
border-top: 1px solid;
border-color: $o-brand-lightsecondary;
}
.o_dashboard_star {
font-size: 12px;
&.fa-star-o {
color: $o-main-color-muted;
&:hover {
color: gold;
}
}
&.fa-star {
color: gold;
}
}
.o_dashboard_graph {
margin-bottom: -$o-horizontal-padding/2;
}
}
&.o_kanban_ungrouped {
.o_kanban_record {
width: 450px;
}
}
.o_kanban_group {
&:not(.o_column_folded) {
width: 450px + 2*$o-kanban-group-padding;
@include media-breakpoint-down(sm) {
width: 100%;
}
}
}
}
// Style for the widget "dashboard_graph"
.o_dashboard_graph {
position: relative;
margin: 16px -16px;
canvas {
height: 75px;
}
}
.o_sample_data .o_dashboard_graph.o_graph_linechart > svg g.nv-linesWrap g.nv-group.nv-series-0 {
fill: gray !important;
opacity: 0.1;
}
.progress-reconciliation {
.progress-bar {
font-size: 1.08333333rem;
height: 14px;
background-color: $o-enterprise-color;
span {
display: contents;
}
}
}
.o_reconciliation {
.o_filter_input_wrapper {
position: relative;
width: 150px;
margin: 0.5rem !important;
.searchIcon {
position: absolute;
right: 10px;
}
.o_filter_input {
border: none;
border-bottom: 1px black solid;
}
}
.import_to_suspense {
margin: 0.5rem !important;
}
.notification_area {
clear: both;
}
.o_view_noreconciliation {
max-width: none;
padding: 0 10%;
color: $o-main-color-muted;
font-size: 125%;
}
.accounting_view {
width: 100%;
.cell_left {
border-right: 1px solid #333;
padding-right: 5px;
}
.edit_amount {
margin-left: 20px;
color: #bbb;
}
.cell:hover .edit_amount {
color: #00A09D;
}
.strike_amount {
text-decoration: line-through;
}
tbody tr:hover .cell_account_code::before {
content: "\f068";
font-family: FontAwesome;
position: relative;
margin-left: -17px;
left: -4px;
line-height: 0;
padding: 3px 2px 5px 5px;
}
}
.o_multi_currency {
margin-right: 5px;
&.o_multi_currency_color_0 {
color: #dd6666;
}
&.o_multi_currency_color_1 {
color: #aaaaaa;
}
&.o_multi_currency_color_2 {
color: #66dd66;
}
&.o_multi_currency_color_3 {
color: #6666dd;
}
&.o_multi_currency_color_4 {
color: #dddd66;
}
&.o_multi_currency_color_5 {
color: #dd66dd;
}
&.o_multi_currency_color_6 {
color: #66dddd;
}
&.o_multi_currency_color_7 {
color: #aaa333;
}
}
.o_reconciliation_line {
margin-bottom: 30px;
table {
width: 100%;
vertical-align: top;
}
tbody tr {
cursor: pointer;
}
tr.already_reconciled {
color: $o-account-info-color;
}
tr.invalid {
text-decoration: line-through;
}
td {
padding: 1px 2px;
}
thead td {
border-top: $o-account-light-border;
padding-top: 4px;
padding-bottom: 5px;
background-color: $o-account-initial-line-background;
}
tfoot td {
color: #bbb;
}
/* columns */
.cell_action {
width: 15px;
color: gray('700');
background: #fff;
border: 0;
text-align: center;
.fa-add-remove:before {
content: "";
}
}
tr:hover .cell_action .fa-add-remove:before {
content: "\f068";
}
.is_tax .cell_action .fa-add-remove:before {
position: relative;
top: -18px;
}
.cell_account_code {
width: 80px;
padding-left: 5px;
}
.cell_due_date {
width: 100px;
}
.cell_label {
width: auto;
}
.cell_left {
padding-right: 5px;
}
.cell_right, .cell_left {
text-align: right;
width: 120px;
}
.cell_info_popover {
text-align: right;
width: 15px;
color: #ccc;
&:empty {
padding: 0;
width: 0;
}
}
table.accounting_view {
.cell_right, .cell_left, .cell_label, .cell_due_date, .cell_account_code, .cell_info_popover {
box-shadow: 0 1px 0 #EAEAEA;
}
}
/* info popover */
.popover {
max-width: none;
}
table.details {
vertical-align: top;
td:first-child {
vertical-align: top;
padding-right: 10px;
font-weight: bold;
}
}
tr.one_line_info {
td {
padding-top: 10px;
text-align: center;
color: $o-account-info-color;
}
}
/* Icons */
.toggle_match, .toggle_create {
transform: rotate(0deg);
transition: transform 300ms ease 0s;
}
.visible_toggle, &[data-mode="match"] .toggle_match, &[data-mode="create"] .toggle_create {
visibility: visible !important;
transform: rotate(90deg);
}
.toggle_create {
font-size: 10px;
}
/* Match view & Create view */
> .o_notebook {
display: none;
> .o_notebook_headers {
margin-right: 0;
margin-left: 0;
}
}
> .o_notebook > .tab-content > div {
border: 1px solid #ddd;
border-top: 0;
}
> .o_notebook .match table tr:hover {
background-color: #eee;
}
&:not([data-mode="inactive"]) > .o_notebook {
display: block;
}
&:not(:focus-within) .o_web_accesskey_overlay {
display: none;
}
&:focus caption .o_buttons button {
outline: none;
box-shadow: 4px 4px 4px 0px $o-enterprise-color;
}
&:focus {
outline: none;
box-shadow: 0 0 0 0;
}
}
.o_reconcile_models .btn-primary {
margin: 0 2px 3px 0;
}
/* Match view */
.match {
.cell_action .fa-add-remove:before {
content: "";
}
tr:hover .cell_action .fa-add-remove:before {
content: "\f067";
}
.match_controls {
padding: 5px 0 5px ($o-account-action-col-width+$o-account-main-table-borders-padding);
.filter {
width: 240px;
display: inline-block;
}
.fa-chevron-left, .fa-chevron-right {
display: inline-block;
cursor: pointer;
}
.fa-chevron-left {
margin-right: 10px;
}
.fa-chevron-left.disabled, .fa-chevron-right.disabled {
color: #ddd;
cursor: default;
}
}
.show_more {
display: inline-block;
margin-left: ($o-account-action-col-width+$o-account-main-table-borders-padding);
margin-top: 5px;
}
}
/* Create view */
.create {
> div > div.quick_add > .o_reconcile_models {
max-width: 100%;
max-height: 70px;
flex-wrap: wrap;
overflow: auto;
& > * {
flex-grow: 0;
}
}
.quick_add {
margin-bottom: 7px;
padding: 0 8px;
}
.o_group table.o_group_col_6 {
width: 49%;
margin: 0;
vertical-align: top;
}
.o_group table.o_group_col_6:first-child {
margin-left: 8px;
}
.btn {
padding-top: 0;
padding-bottom: 0;
}
.add_line_container {
text-align: center;
clear: both;
color: $o-enterprise-primary-color;
cursor: pointer;
}
}
.o_notebook .tab-content > .tab-pane {
padding: 5px 0;
}
}
/*Manual Reconciliation*/
.o_manual_statement {
.accounting_view {
td[colspan="3"] span:first-child {
width: 100%;
display: inline-block;
}
td[colspan="2"] {
border-bottom: 1px solid #333;
text-align: center;
width: 240px;
}
.do_partial_reconcile_true {
display: none;
}
}
}
// This is rtl language specific fix
// It will flip the fa-fa play icon in left direction
.o_rtl {
.o_reconciliation {
.o_reconciliation_line {
.toggle_match, .toggle_create {
transform: rotate(180deg);
transition: transform 300ms;
}
.visible_toggle, &[data-mode="match"] .toggle_match, &[data-mode="create"] .toggle_create {
transform: rotate(270deg);
}
}
}
}
.o_search_panel.account_root {
flex: 0 0 50px;
padding: 6px;
scrollbar-width: thin;
.o_search_panel_section_header {
display: none;
}
.list-group-item span.o_search_panel_label_title {
display: contents;
}
.o_search_panel_category_value {
header {
margin-left: 0;
padding-left: 0;
}
.o_search_panel_category_value .o_toggle_fold {
width: 0.3rem;
}
}
&::-webkit-scrollbar {
width: 4px;
}
&::-webkit-scrollbar-thumb {
background: lightgray;
}
}
// The goal of this file is to contain CSS hacks related to allowing
// section and note on sale order and invoice.
table.o_section_and_note_list_view tr.o_data_row.o_is_line_note,
table.o_section_and_note_list_view tr.o_data_row.o_is_line_note textarea[name="name"],
div.oe_kanban_card.o_is_line_note {
font-style: italic;
}
table.o_section_and_note_list_view tr.o_data_row.o_is_line_section,
div.oe_kanban_card.o_is_line_section {
font-weight: bold;
background-color: #DDDDDD;
}
table.o_section_and_note_list_view tr.o_data_row.o_is_line_section {
border-top: 1px solid #BBB;
border-bottom: 1px solid #BBB;
}
table.o_section_and_note_list_view tr.o_data_row {
&.o_is_line_note,
&.o_is_line_section {
td {
// There is an undeterministic CSS behaviour in Chrome related to
// the combination of the row's and its children's borders.
border: none !important;
}
}
}
$o-account-action-col-width: 15px;
$o-account-main-table-borders-padding: 3px;
$o-account-light-border: 1px solid #bbb;
$o-account-initial-line-background: #f0f0f0;
$o-account-info-color: #44c;
@keyframes animate-red {
0% {
color: red;
}
100% {
color: inherit;
}
}
.animate {
animation: animate-red 1s ease;
}
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<!-- Top menu item -->
<menuitem id="idgd_menu_root"
name="ID Dashboard"
web_icon="id_dashboard_icon,static/description/icon.png"
active="True"
sequence="400"/>
<!-- Konfigurasi-->
<menuitem id="config_idgd_menu"
name="Konfigurasi"
parent="idgd_menu_root"
sequence="7"/>
<menuitem id="wilayah_config_idgd_menu"
name="Wilayah"
parent="config_idgd_menu"
sequence="2"/>
<menuitem id="state_config_idgd_menu"
name="Provinsi"
parent="wilayah_config_idgd_menu"
action="id_gov.action_state_config_id"
sequence="2"/>
<menuitem id="district_config_idgd_menu"
name="Kabupaten/Kota"
parent="wilayah_config_idgd_menu"
action="id_gov.action_district_config_id"
sequence="2"/>
<menuitem id="sub_district_config_idgd_menu"
name="Kecamatan"
parent="wilayah_config_idgd_menu"
action="id_gov.action_sub_district_config_id"
sequence="2"/>
<menuitem id="village_config_idgd_menu"
name="Desa/Kelurahan"
parent="wilayah_config_idgd_menu"
action="id_gov.action_village_config_id"
sequence="2"/>
<menuitem id="company_config_idgd_menu"
name="Pemerintah Daerah/Organisasi"
parent="config_idgd_menu"
action="id_gov.action_company_config_id"
sequence="4"/>
<!-- Transaksi-->
<menuitem id="transaksi_idgd_menu"
name="Transaksi"
parent="idgd_menu_root"
sequence="6"/>
<menuitem id="potency_idgd_menu"
name="Region Tax Potency"
parent="transaksi_idgd_menu"
action="action_idg_region_tax_potency"
sequence="4"/>
<menuitem id="plan_idgd_menu"
name="Region Tax Planned"
parent="transaksi_idgd_menu"
action="action_idg_region_tax_plan"
sequence="5"/>
<menuitem id="actual_idgd_menu"
name="Region Tax Actual"
parent="transaksi_idgd_menu"
action="action_idg_region_tax_actual"
sequence="6"/>
</odoo>
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="idg_region_tax_actual_tree" model="ir.ui.view">
<field name="name">idg.region.tax.actual.tree</field>
<field name="model">idg.region.tax.actual</field>
<field name="arch" type="xml">
<tree string="Region Tax Actual" sample="1" create="1" delete="1" multi_edit="0">
<field name="state_id"/>
<field name="district_id"/>
<field name="account_id"/>
<field name="date"/>
<field name="qty"/>
<field name="amount"/>
</tree>
</field>
</record>
<record id="idg_region_tax_actual_form" model="ir.ui.view">
<field name="name">idg.region.tax.actual.form</field>
<field name="model">idg.region.tax.actual</field>
<field name="arch" type="xml">
<form string="Region Tax Actual" sample="1">
<sheet>
<h1>
<field name="state_id"/>
</h1>
<h2>
<field name="district_id"/>
</h2>
<group>
<field name="country_id" invisible="1"/>
<field name="account_id"/>
<field name="date"/>
<field name="qty"/>
<field name="amount"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_idg_region_tax_actual" model="ir.actions.act_window">
<field name="name">Region Tax Actual</field>
<field name="res_model">idg.region.tax.actual</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="idg_region_tax_actual_tree"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Region Tax Actual
</p>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="idg_region_tax_plan_tree" model="ir.ui.view">
<field name="name">idg.region.tax.plan.tree</field>
<field name="model">idg.region.tax.plan</field>
<field name="arch" type="xml">
<tree string="Region Tax Planned" sample="1" create="1" delete="1" multi_edit="0">
<field name="state_id"/>
<field name="district_id"/>
<field name="account_id"/>
<field name="year"/>
<field name="month"/>
<field name="qty"/>
<field name="amount"/>
</tree>
</field>
</record>
<record id="idg_region_tax_plan_form" model="ir.ui.view">
<field name="name">idg.region.tax.plan.form</field>
<field name="model">idg.region.tax.plan</field>
<field name="arch" type="xml">
<form string="Region Tax Planned" sample="1">
<sheet>
<h1>
<field name="state_id"/>
</h1>
<h2>
<field name="district_id"/>
</h2>
<group>
<field name="country_id" invisible="1"/>
<field name="account_id"/>
<field name="year"/>
<field name="month"/>
<field name="qty"/>
<field name="amount"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_idg_region_tax_plan" model="ir.actions.act_window">
<field name="name">Region Tax Planned</field>
<field name="res_model">idg.region.tax.plan</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="idg_region_tax_plan_tree"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Region Tax Planned
</p>
</field>
</record>
</data>
</odoo>
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<data>
<record id="idg_region_tax_potency_tree" model="ir.ui.view">
<field name="name">idg.region.tax.potency.tree</field>
<field name="model">idg.region.tax.potency</field>
<field name="arch" type="xml">
<tree string="Region Tax Potency" sample="1" create="1" delete="1" multi_edit="0">
<field name="state_id"/>
<field name="district_id"/>
<field name="account_id"/>
<field name="year"/>
<field name="qty"/>
<field name="amount"/>
</tree>
</field>
</record>
<record id="idg_region_tax_potency_form" model="ir.ui.view">
<field name="name">idg.region.tax.potency.form</field>
<field name="model">idg.region.tax.potency</field>
<field name="arch" type="xml">
<form string="Region Tax Potency" sample="1">
<sheet>
<h1>
<field name="state_id"/>
</h1>
<h2>
<field name="district_id"/>
</h2>
<group>
<field name="country_id" invisible="1"/>
<field name="account_id"/>
<field name="year"/>
<field name="qty"/>
<field name="amount"/>
</group>
</sheet>
</form>
</field>
</record>
<record id="action_idg_region_tax_potency" model="ir.actions.act_window">
<field name="name">Region Tax Potency</field>
<field name="res_model">idg.region.tax.potency</field>
<field name="view_mode">tree,form</field>
<field name="view_id" ref="idg_region_tax_potency_tree"/>
<field name="help" type="html">
<p class="o_view_nocontent_smiling_face">
Region Tax Potency
</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!