
    ݦi                     H    d dl Z d dlmZ d dlmZmZmZmZ d Zd Zd Z	d Z
y)    N)datetime)JobDescProfileProfileExperienceProfileSkillsc           
         	 t         j                  j                  |       }|j                  }|j                  }g }|D ]n  }t        |j                        }t        ||      }t        |j                  |j                        }	|j                  |j                  |||	d   |	d   |	d   d       p |S # t        $ r}
t        t        |
              d }
~
ww xY 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   es              B/home/hirelines/hirelines/app_api/functions/jd_profile_matching.pycalculateJDProfileMatchingr'      s    "??&&%&0
  	G4WZZ@K8fML5h6G6GTN NN%jj$/ ,"0"<"01A"B&45I&J 	&  c!fs   B.B1 1	C:CCc                    t         j                  j                  |       }d}t        j                         j
                  }|D ]E  }|j                  s|j                  r|j                  n|}|t        d||j                  z
        z  }G |S )N	profileidr   )	r   r   filterr   nowyearyearfromyeartomax)r   experiencestotal_yearscurrent_yearexpend_years         r&   r   r   -   sz    #++22Z2HKK<<>&&L ;<<%(ZZszz\H3q(S\\"9::K;
     c                 B    |dk  ry| |k\  ry| |z  dz  }t        |d      S )Nr   d      )round)r$   r    r
   s      r&   r   r   ;   s3    {ff$+H1r6   c                    | sdg g dS t         j                  j                  |      j                  d      j	                         }|r|j
                  nd}t               }t        j                  d| j                               D ]"  }t        |      dkD  s|j                  |       $ |sdg g dS t               }|rC|j                  d	      D ]/  }|j                  |j                         j                                1 ||z  }||z
  }	t        |      t        |      z  dz  }
t        |
d
      t        |      t        |	      dS )Nr8   )r
   r   r   r)   primaryskills z[a-zA-Z0-9]+   r   ,r9   )r   r   r+   onlyfirstr<   setrefindalllowerlenaddsplitstripr:   sorted)jd_skillsetr   profile_skill_objprofile_primaryskills	jd_skillswordprofile_skillsskillmatchednot_matchedr
   s              r&   r   r   F   sL    "$
 	
 		*	%	o			  ,=''" 
 I 

?K,=,=,?@  t9q=MM$ 
  "$
 	
 UN*005 	6Eu{{}2245	6 .(Gn,KGs9~-4H (A& /$[1 r6   )rC   r   app_api.modelsr   r   r   r   r'   r   r   r    r6   r&   <module>rV      s&    	  M M#L8r6   