Commit 225c2187 by aa.gusti

penambahan init di dashboard

1 parent 1d42c411
<?xml version="1.0"?>
<odoo>
<data noupdate="1">
<record id="bphtb_01" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>01</field>
<field name='name'>Jual Beli</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_02" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>02</field>
<field name='name'>Tukar Menukar</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_03" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>03</field>
<field name='name'>Hibah</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_04" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>04</field>
<field name='name'>Hibah Wasiat</field>
<field name='min_omzet'>300000000</field>
<field name='rate'>5</field>
<field name='disc'>50</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_05" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>05</field>
<field name='name'>Waris</field>
<field name='min_omzet'>300000000</field>
<field name='rate'>5</field>
<field name='disc'>50</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_06" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>06</field>
<field name='name'>Pemasukan dalam Perseroan atau Badan Hukum Lainnya</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_07" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>07</field>
<field name='name'>Pemisahan Hak yang mengakibatkan Peralihan</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_08" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>08</field>
<field name='name'>Penunjukan Pembelli dalam Lelang</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>True</field>
</record>
<record id="bphtb_09" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>09</field>
<field name='name'>Pelaksanaan Putusan Hakim yang mempunyai kekuatan hukum tetap</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>True</field>
</record>
<record id="bphtb_10" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>10</field>
<field name='name'>Penggabungan Usaha</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_11" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>11</field>
<field name='name'>Peleburan Usaha</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_12" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>12</field>
<field name='name'>Pemekaran Usaha</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_13" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>13</field>
<field name='name'>Hadiah</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_14" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>14</field>
<field name='name'>Perolehan hak Rumah Sederhana Sehat dan RSS melalui KPR bersubsidi</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_15" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>15</field>
<field name='name'>Pemberian Hak Baru Kelanjutan Pelepasan Hak</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_16" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>16</field>
<field name='name'>Pemberian hak baru diluar pelepasan hak</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_17" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>17</field>
<field name='name'>Tax Amnesti</field>
<field name='min_omzet'>60000000</field>
<field name='rate'>5</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
<record id="bphtb_18" model=bphtb_kab/data/bphtb.jenis>
<field name='code'>18</field>
<field name='name'>Peningkatan Status</field>
<field name='min_omzet'>0</field>
<field name='rate'>0</field>
<field name='disc'>0</field>
<field name="company_id" ref="base.main_company"/>
<field name='under_value'>False</field>
</record>
</data>
</odoo>
import csv
import glob
NOUPDATE = 1
BOOLEAN = ('True', 'False')
ERP_HEADER = """<?xml version="1.0"?>
<odoo>
<data noupdate="%s">"""
ERP_FOOTER = """
</data>
</odoo>
"""
FILES_WITH_UPDATE = ('product.product.csv')
def convert_relationnal_field2xml(tag, value):
mytag = tag
for elm in ['/ids', '/id', ':id']:
mytag = mytag.replace(elm, '')
if tag[-6:] == 'ids/id':
# many2many
line = '%s" eval="[(6, 0, [%s])]"/>\n' % (mytag, value)
else:
# many2one
line = '%s" ref="%s"/>\n' % (mytag, row[i])
return line
for csv_file in glob.glob('*.csv'):
no_update = NOUPDATE
if csv_file in FILES_WITH_UPDATE:
no_update = 0
xml_file = csv_file.replace('.', '_').replace('_csv', '_data.xml')
csv_data = csv.reader(open(csv_file))
xml_data = open(xml_file, 'w')
xml_data.write(ERP_HEADER % NOUPDATE + "\n\n\n")
row_num = 0
print(csv_file)
for row in csv_data:
tags = row
if row_num == 0:
for i in range(len(tags)):
tags[i] = tags[i].replace(' ', '_')
else:
for i in range(len(tags)):
char = False
numeric = True
# ambiguous column (char type but contains float string)
# should be mark by suffix |char
if tags[i][-5:] == '|char':
char = True
numeric = False
begin = ' <field name="'
try:
float(row[i])
numeric = True
except Exception:
pass
if tags[i] == 'id':
# 'id' column is supposed to be the first left
line = ('<record id="%s" model="%s">\n'
% (row[i], csv_file[:-4]))
elif '/' in tags[i] or ':' in tags[i]:
# relationnal fields
xml_suffix = convert_relationnal_field2xml(tags[i], row[i])
line = '%s%s' % (begin, xml_suffix)
elif char:
# numeric ghar field
line = '%s%s">%s</field>\n' % (begin, tags[i][:-5], row[i])
elif numeric or row[i] in BOOLEAN:
line = '%s%s" eval="%s"/>\n' % (begin, tags[i], row[i])
else:
# basic fields
line = '%s%s">%s</field>\n' % (begin, tags[i], row[i])
if row[i] or tags[i] == 'id':
xml_data.write(line)
xml_data.write('</record>' + "\n\n")
row_num += 1
xml_data.write(ERP_FOOTER)
xml_data.close()
import csv
import glob
import os
import sys
import logging
_logger = logging.getLogger(__name__)
NOUPDATE = 1
BOOLEAN = ('True', 'False')
ERP_HEADER = """
<?xml version="1.0"?>
<odoo>
<data noupdate="%s">"""
ERP_FOOTER = """
</data>
</odoo>
"""
FILES_WITH_UPDATE = ('product.product.csv')
def convert_relationnal_field2xml(tag, value):
mytag = tag
for elm in ['/ids', '/id', ':id']:
mytag = mytag.replace(elm, '')
if tag[-6:] == 'ids/id':
# many2many
line = '"%s" eval="[(6, 0, [%s])]"' % (mytag, value)
else:
# many2one
line = '"%s" ref="%s"' % (mytag, value)
return line
def proses(path, name):
file_name = os.path.join(path, name)
for csv_file in glob.glob(file_name):
no_update = NOUPDATE
if csv_file in FILES_WITH_UPDATE:
no_update = 0
xml_file = csv_file.replace('.', '_').replace('_csv', '_data.xml')
xml_data = open(xml_file, 'w')
xml_data.write(ERP_HEADER % NOUPDATE + "\n\n\n")
with open(csv_file, 'r') as csv_data:
reader = csv.DictReader(csv_data)
print(f"reader {reader}")
model, ext = os.path.splitext(csv_file)
for row in reader:
xml_data.write(f' <record id="{row["id"]}" model={model}>\n')
for key in row:
if key == "id":
continue
begin = ''
if '/' in key or ':' in key:
xml_suffix = convert_relationnal_field2xml(key, row[key])
line = f' <field name={xml_suffix}/>\n'
else:
# basic fields
value = row[key]
line = f" <field name='{key}'>{value}</field>\n"
xml_data.write(line)
xml_data.write(f" </record>\n")
xml_data.write(ERP_FOOTER)
xml_data.close()
def usage(argv):
print(f"{__name__} file_name")
def main(argv=sys.argv):
if len(argv) != 2:
return usage(argv)
file_name = argv[1]
name, ext = os.path.splitext(file_name)
if not ext or ext != '.csv':
print(f"File {file_name} bukan csv")
sys.exit()
path = os.path.dirname(file_name)
name = os.path.basename(file_name)
if not os.path.exists(path):
print(f"Path {path} tidak ditemukan")
sys.exit()
if name.find('*') < 0:
if not os.path.exists(file_name):
print(f"Filename {name} tidak ditemukan")
sys.exit()
proses(path, name)
if __name__ == '__main__':
print("Start Module")
main(sys.argv)
Markdown is supported
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!