from netforce.model import Model, fields, get_model

class HDCasePopupDlz(Model):
    _name="clinic.hd.case.popup.dlz"
    _transient=True

    _fields={
        "hd_case_id": fields.Many2One("clinic.hd.case","HdCase",required=True,on_delete="cascade"),
        'product_id': fields.Many2One("product", "Product",required=True),
        "dialyzer_type": fields.Selection([("low","low flux"),("high","high flux"),("dbl","dbl hifulx")],"Dialyzer Type"),
        "max_use_time": fields.Integer("Max Use Time"),
        "exp_date": fields.Date("Expiry Date"),
        "note": fields.Text("Note"),
        "membrane_type": fields.Selection([("unsub","Unsub cellul"),("sub","Sub cellul"),("synthetic","Synthetic")],"Membrane Type"),
    }
    
    def __get_hd_case_id(self,context={}):
        hd_case_id=context.get("refer_id")
        print("clinic.hd.case.popup.dlz default")
        if not hd_case_id:
            return None
        return int(hd_case_id)

    def default_get(self,field_names=None,context={},**kw):
        defaults=context.get("defaults",{})
        hdcase_id=defaults.get('hd_case_id')
        dialyzer_type=defaults.get('dialyzer_type')
        if not hdcase_id:
            hdcase_id=context.get("refer_id")
        if hdcase_id:
            hdcase=get_model('clinic.hd.case').browse(hdcase_id)
            dom=[]
            for dlz in get_model('clinic.dialyzer').search_browse(dom):
                dialyzer_type=dlz.dialyzer_type or "low"
                pass
        res={
            'hd_case_id': hdcase_id,
            'dialyzer_type': 'low',
            'max_use_time': 10,
        }
        print('res', res)
        return res
    
    def new_dlz(self,ids,context={}):
        obj=self.browse(ids)[0]
        hd_case=obj.hd_case_id
        res={}
        if hd_case:
            context['is_wiz']=True
            context['pop_id']=obj.id
            res=hd_case.new_dialyzer(context=context)
        print('res ', res)
        return res

    def onchange_product(self,context={}):
        data=context['data']
        hdcase_id=data['hd_case_id']
        patient=None
        if hdcase_id:
            hdcase=get_model('clinic.hd.case').browse(hdcase_id) 
            patient=hdcase.patient_id
        product_id=data['product_id']
        data['membrane_type']=None
        data['dialyzer_type']=None
        data['max_use_time']=10
        dom=[]
        if patient:
            dom.append(['patient_id','=',patient.id])
        for dlz in get_model("clinic.dialyzer").search_browse(dom):
            prod=dlz.product_id
            if prod.id==product_id:
                data['membrane_type']=dlz.membrane_type
                data['dialyzer_type']=dlz.dialyzer_type or "low"
                data['max_use_time']=dlz.max_use_time or 10
                break
        return data

HDCasePopupDlz.register()