o
    ނi                     @   sP   d dl Z d dlmZ d dlmZmZmZmZ dd Zdd Zdd	 Z	d
d Z
dS )    N)datetime)JobDescProfileProfileExperienceProfileSkillsc              
   C   s   z;t jj| d}|j}|j}g }|D ]&}t|j}t||}t|j	|j}	|
|j|||	d |	d |	d d q|W S  tyN }
 ztt|
  d }
~
ww )N)idstrengthmatched_skillsnot_matched_skills)
profile_idtotal_experienceexp_strengthskill_strengthr	   r
   )r   objectsgetexpminexpmaxcalculate_total_experiencer   calculate_experience_strengthcalculate_skill_strengthskillsetappend	Exceptionprintstr)jobidprofilesjob_descjd_minjd_maxresultsprofileprofile_expr   r   e r$   >/home/acert/hirelines/app_api/functions/jd_profile_matching.pycalculateJDProfileMatching   s.   


	r&   c                 C   sT   t jj| d}d}t j}|D ]}|jr'|jr|jn|}|td||j 7 }q|S )N	profileidr   )	r   r   filterr   nowyearyearfromyeartomax)r   experiencestotal_yearscurrent_yearexpend_yearr$   r$   r%   r   -   s   
r   c                 C   s.   |dkrdS | |krdS | | d }t |dS )Nr   d      )round)r"   r   r   r$   r$   r%   r   ;   s   
r   c                 C   s   | sdg g dS t jj|dd }|r|jnd}t }td| 	 D ]}t
|dkr3|| q&|s<dg g dS t }|rR|d	D ]}|| 	  qF||@ }|| }	t
|t
| d }
t|
d
t|t|	dS )Nr4   )r   r	   r
   r'   primaryskills z[a-zA-Z0-9]+   r   ,r5   )r   r   r)   onlyfirstr7   setrefindalllowerlenaddsplitstripr6   sorted)jd_skillsetr   profile_skill_objprofile_primaryskills	jd_skillswordprofile_skillsskillmatchednot_matchedr   r$   r$   r%   r   F   sD   
r   )r>   r   app_api.modelsr   r   r   r   r&   r   r   r   r$   r$   r$   r%   <module>   s    &