from netforce.model import Model, fields, get_model
from netforce.access import get_active_company

class LaborCostLine(Model):
    _name="clinic.labor.cost.line"
    _string="Labor Cost Item"
    _name_field="labor_cost_id"

    _fields={
        "labor_cost_id": fields.Many2One("clinic.labor.cost","Cycle Item",required=True,on_delete="cascade"),
        "type": fields.Selection([('staff','Staff'),("doctor","Doctor"),('nurse','Nurse')],"Type",required=True,search=True),
        'staff_id': fields.Many2One("clinic.staff", "Staff",search=True),
        'level_id': fields.Many2One("clinic.staff.level", "Level",search=True),
        'cycle_id': fields.Many2One("clinic.cycle", "Cycle",search=True),
        'qty': fields.Integer("#HDCase"),
        'rate': fields.Float("Rate",scale=2),
        'amount': fields.Float("Amount",scale=2),
        'date': fields.Date("Date",search=True),
        'description': fields.Char("Description"),
        'company_id': fields.Many2One('company','Company'),
        "state": fields.Selection([["part_time","Part Time"],["full_time","Full Time"]],"Working Status",search=True),
    }

    _defaults={
        "company_id": lambda *a: get_active_company(),
    }
    
    _order="cycle_id,level_id"
    
    def create(self,vals,**kw):
        staff_id=vals['staff_id']
        staff=get_model("clinic.staff").browse(staff_id)
        if staff.type=='doctor':
            vals['type']='doctor'
        elif staff.type=='nurse':
            vals['type']='nurse'
        else:
            vals['type']='staff'
        new_id=super().create(vals,**kw)
        return new_id

LaborCostLine.register()