Skip to Content
Menu
This question has been flagged
3602 Views

hrdata.py

from openerp.osv import fields,osv from openerp import tools from dateutil.relativedelta import relativedelta from datetime import datetime """ Status Keluarga """ Status_Keluarga=[ ('tk','TK'), ('k0','K0'), ('k1','K1'), ('k2','K2'), ('k3','K3'),
] class hrdata_department(osv.osv): _name= "hrdata.department" _description="Daftar Departement" _columns = { 'name': fields.char('Departemen',size=64,required=True) } _sql_constraints = [ ('name', 'unique(name)', 'unique') ] _order = 'name asc' hrdata_department()

class hrdata_level(osv.osv): _name= "hrdata.level" _description="Daftar Level Jabatan" _columns = { 'name': fields.char('Level Jabatan',size=64,required=True) } _sql_constraints = [ ('name', 'unique(name)', 'unique') ] _order = 'name asc' hrdata_level()

class hrdata_bagian(osv.osv): _name= "hrdata.bagian" _description="Daftar Bagian Departemen" _columns = { 'name': fields.char('Bagian',size=64,required=True) } _sql_constraints = [ ('name', 'unique(name)', 'unique') ] _order = 'name asc' hrdata_bagian()

class hrdata_data(osv.osv): _name= "hrdata.data" _description="Data Karyawan"

def _compute_age(self, cr, uid, ids, field_name, arg, context={}):
    result = {}
    now = datetime.now()
    for r in self.browse(cr, uid, ids, context=context):
        if r.tgl_lahir:
            dob = datetime.strptime(r.tgl_lahir,'%Y-%m-%d')
            delta=relativedelta (now, dob)
            result[r.id] = str(delta.years) #if you only want date just give delta.years
        else:
            result[r.id] = 0
    return result

def _get_image(self, cr, uid, ids, name, args, context=None):
    result = dict.fromkeys(ids, False)
    for obj in self.browse(cr, uid, ids, context=context):
        result[obj.id] = tools.image_get_resized_images(obj.image)
    return result

def _set_image(self, cr, uid, ids, name, value, args, context=None):
    return self.write(cr, uid, [ids], {'image': tools.image_resize_image_big(value)}, context=context)

_columns = {
    'name': fields.char('NIK',size=15,required=True),
    'nama': fields.char('Nama',size=256,required=True),
    'jenis_kelamin':fields.selection([('male','Male'),('female','Female')],'Jenis Kelamin',required=True),
    'tgl_masuk': fields.date('Tanggal Masuk'),
    'tgl_keluar': fields.date('Tanggal Keluar'),
    'tgl_ktp': fields.date('Tanggal Berlaku KTP'),
    'kode':fields.many2one('hrjadwal','Jadwal',size=15),
    'department':fields.many2one('hrdata.department','Departemen',size=256),
    'bagian': fields.many2one('hrdata.bagian','Bagian',size=256),  
    'level': fields.many2one('hrdata.level','Level Jabatan',size=256),
    'lokasi':fields.selection([('tml','TML'),('kim','KIM')],'Lokasi',required=True),
    'kepesertaan_jamsostek':fields.date('Kepesertaan Jamsostek'),
    'status_karyawan': fields.selection([
        ('kontrak','Kontrak'),
        ('tetap','Tetap'),
        ('outsoucing','Outsourcing'),
        ],'Status Karyawan'),
    'ket':fields.text('Keterangan'),
    'agama': fields.selection([
        ('islam','Islam'),
        ('kristen','Kristen'),
        ('buddha','Buddha'),
        ('hindu','Hindu'),
        ],'Agama',readonly=False,select=True),
    'no_kpj':fields.char('No Jamsostek',size=15),
    'nama_kpj':fields.char('Nama Jamsostek',size=50),
    'status': fields.selection(Status_Keluarga,'Status',readonly=False,select=True),
    'alamat':fields.char('Alamat',size=50),                 
    'telepon':fields.char('Telepon',size=15),
    'no_ktp':fields.char('No KTP',size=20),
    'no_kk':fields.char('No Kartu Keluarga',size=50),
    'jumlah_anak':fields.char('Jumlah Anak',size=1),
    'tgl_lahir':fields.date('Tanggal Lahir'),   
    'usia' : fields.function(_compute_age, method=True, type='integer', size=32, string='Usia'),        
    'npwp':fields.char('NPWP'), 
    'no_sj':fields.char('No SJ'),   
    'grade':fields.char('Grade'),   
    # image: all image fields are base64 encoded and PIL-supported
    'image': fields.binary("Photo",
        help="This field holds the image used as photo for the employee, limited to 1024x1024px."),
    'image_medium': fields.function(_get_image, fnct_inv=_set_image,
        string="Medium-sized photo", type="binary", multi="_get_image",
        store = {
            'hrdata.data': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
        },
        help="Medium-sized photo of the employee. It is automatically "\
             "resized as a 128x128px image, with aspect ratio preserved. "\
             "Use this field in form views or some kanban views."),
    'image_small': fields.function(_get_image, fnct_inv=_set_image,
        string="Smal-sized photo", type="binary", multi="_get_image",
        store = {
            'hrdata.data': (lambda self, cr, uid, ids, c={}: ids, ['image'], 10),
        },
        help="Small-sized photo of the employee. It is automatically "\
             "resized as a 64x64px image, with aspect ratio preserved. "\
             "Use this field anywhere a small image is required."),
    }

_sql_constraints = [
    ('name', 'unique(name)', 'unique'),
    ('nama','unique(nama)','unique'),
    ('no_sj','unique(no_sj)','unique'),
]

_order = 'name asc'

hrdata_data()

hrdata_view.xml

<openerp> <data>
<record id="view_hrjadwal" model="ir.ui.view"> <field name="name">hrjadwal.data.form</field> <field name="model">hrjadwal.data</field> <field name="arch" type="xml"> <form string="Data Jadwal Kehadiran" version="7.0"> <field name="name"/> <field name="masuk"/> <field name="pulang"/> <field name="msabtu"/> <field name="psabtu"/> </form> </field> </record>

<record id="hrjadwal_view_tree" model="ir.ui.view">
        <field name="name">Jadwal Kerja</field>
        <field name="model">hrjadwal.data</field>
        <field name="arch" type="xml">
            <tree string="Jadwal Kerja" editable="bottom">
                <field name="name"/>
                <field name="masuk"/>
                <field name="pulang"/>
                <field name="msabtu"/>
                <field name="psabtu"/>
            </tree>
        </field>
</record>


<record model="ir.actions.act_window" id="action_test">
    <field name="name">Jadwal Karyawan</field>
    <field name="res_model">hrjadwal.data</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
</record>

<menuitem sequence="4" id="menu_jadwal" parent="hrdata.mnu_hrdata" name="Jadwal Kerja"/> <menuitem name="Jadwal" action="action_test" id="menu_jadwal" parent="hrdata.mnu_hrdata_config" sequence="2"/> </data>

</openerp>

hrjdwl.py

from openerp.osv import fields,osv

class hrjadwal_data(osv.osv): _name= "hrjadwal.data" _description="data" _columns = { 'name': fields.char('Jadwal',size=256,required=True), 'masuk':fields.char('Jam Masuk Hari Biasa', size=5,required=True), 'pulang':fields.char('Jam Pulang Hari Biasa', size=5,required=True), 'msabtu':fields.char('Jam Masuk Hari Sabtu', size=5,required=True), 'psabtu':fields.char('Jam Pulang Hari Sabtu', size=5,required=True), }

_sql_constraints = [
    ('name', 'unique(name)', 'unique'),
]
_order = 'name asc'

hrjadwal_data()

hrjdwl_view.xml

<openerp> <data>
<record id="view_hrjadwal" model="ir.ui.view"> <field name="name">hrjadwal.data.form</field> <field name="model">hrjadwal.data</field> <field name="arch" type="xml"> <form string="Data Jadwal Kehadiran" version="7.0"> <field name="name"/> <field name="masuk"/> <field name="pulang"/> <field name="msabtu"/> <field name="psabtu"/> </form> </field> </record>

<record id="hrjadwal_view_tree" model="ir.ui.view">
        <field name="name">Jadwal Kerja</field>
        <field name="model">hrjadwal.data</field>
        <field name="arch" type="xml">
            <tree string="Jadwal Kerja" editable="bottom">
                <field name="name"/>
                <field name="masuk"/>
                <field name="pulang"/>
                <field name="msabtu"/>
                <field name="psabtu"/>
            </tree>
        </field>
</record>


<record model="ir.actions.act_window" id="action_test">
    <field name="name">Jadwal Karyawan</field>
    <field name="res_model">hrjadwal.data</field>
    <field name="view_type">form</field>
    <field name="view_mode">tree,form</field>
</record>

<menuitem sequence="4" id="menu_jadwal" parent="hrdata.mnu_hrdata" name="Jadwal Kerja"/> <menuitem name="Jadwal" action="action_test" id="menu_jadwal" parent="hrdata.mnu_hrdata_config" sequence="2"/> </data>

</openerp>

for the openerp.py

hrdata :

{ 'name': 'HR Data', 'version': '0.6', 'category': 'HRData', 'description': """This module is just for Data Karyawan.""", 'author': 'Jasper', 'depends': ['base','hrjdwl'], 'data': [ 'security/ir_rule.xml', 'security/ir.model.access.csv', 'hrdata_view.xml', 'hrdata_view_department.xml', 'hrdata_view_level.xml', 'hrdata_view_bagian.xml', ], 'installable': True,

}

hrjdwl.py

{ 'name': 'HR Jadwal', 'version': '0.5', 'category': 'HRData', 'description': """This module is just for Jadwal Data Karyawan.""", 'author': 'Jasper', 'depends': ['hrdata'], 'data': [ 'hrjadwal_view.xml', ], 'installable': True,

}

my problem is i want to take data from hrjadwal to a field name 'kode' in hrdata_data , but when i use many2one it's always failed to upgrade

thanks for your helps :)

Avatar
Discard
Related Posts Replies Views Activity
1
Jun 23
3347
2
Apr 23
17362
2
Nov 18
10221
2
Oct 17
11432
2
Mar 15
3977