
    Si(              
       4   d dl mZmZmZ d dlmZmZ d dlmZ d dl	m
Z
 d dlmZmZmZmZ d dlmZ d dlmZ d dlmZ d d	lmZmZmZmZmZmZmZ d d
lmZ d dl m Z m!Z! dddddZ"ddddZ# eddg      Z$e$jK                  d       ee       ee      fdedede
fd       Z&e$jO                  d       ee       ee      fde(dede
fd       Z)e$jK                  d        ee       ee      fd!edede
fd"       Z*e$jW                  d#      e$jW                  d$       ee       ee      fde(dede
fd%              Z+e$jY                  d&       ee       ee      fde(d!edede
fd'       Z-e$jO                  d(       ee       ee      fde(dede
fd)       Z.y*)+    )	APIRouterDependsstatus)JSONResponseResponse)get_db)Session)ActionIncidentListStoreActionIncidentUpdateActionIncident	UserLogin)ActionIncidentClass)ActionIncidentPDFClass)get_current_active_user)StudentModelStudentPersonalInfoModelStudentAcademicInfoModelSchoolModelProfessionalModelCourseModelSpecialEducationalNeedModel)professional_display_fields)datetimedatezEn curso	PendientezPor revisarResuelto)            u"   Desregulación emocional/conductalzOtra incidenciaOtro)r   r   r   z/actions_incidentszActions Incidents)prefixtags/action_listsession_userdbc                    | j                   dn| j                   }|r|j                  nd }t        |      j                  || j                  | j
                  | j                  |      }t        |t              rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d	      S | j                   d
nd}t        t        j                  d||d	      S )Nr   )pageitems_per_page
student_idtitle	school_idr   error  messagezInternal server errorr   r0   datastatus_codecontentz6Complete actions incidents list retrieved successfullyz(Actions incidents retrieved successfully   )r)   r-   r   get_allper_pager+   r,   
isinstancedictgetr   r   HTTP_500_INTERNAL_SERVER_ERRORHTTP_200_OK)r%   r&   r'   
page_valuer-   resultr0   s          M/var/www/pie360backend.cl/public_html/app/backend/routes/actions_incidents.pyindexrA       s    !&&.K4D4DJ*6&&DI $,,"++)) - F &$FJJx$8G$C==!::i1HI
 	
 KVJZJZJbF  iSG&&
     z
/edit/{id}idc                    t        |      j                  |       }t        |t              rC|j                  d      dk(  r/t	        t
        j                  d|j                  dd      d d      S t	        t
        j                  dd	|d      S )
Nr   r.     r0   Action incident not foundr1   r3   r6   z+Action incident data retrieved successfully)r   r;   r9   r:   r   r   HTTP_404_NOT_FOUNDr=   rC   r&   r'   r?   s       r@   editrI   B   s     $((,F&$FJJx$8G$C11!::i1LM
 	
 &&D
 rB   z/storeactionc                 ^   | j                         }|r|j                  nd }t        |      j                  ||      }t	        |t               rC|j                  d      dk(  r/t        t        j                  d|j                  dd      d d      S t        t        j                  d	d
|d      S )N)r-   r   r.   r/   r0   zError saving action incidentr1   r3      z$Action incident created successfully)
r:   r-   r   storer9   r;   r   r   r<   HTTP_201_CREATED)rJ   r&   r'   action_inputsr-   r?   s         r@   rM   rM   Y   s    KKMM +7&&DI $**=I*NF&$FJJx$8G$C==!::i1OP
 	
 ++=
 rB   z/{id}z/delete/{id}c                    t        |      j                  |       }t        |t              rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d      S t        t        j                  dd	|d      S )
Nr   r.   rE   r0   rF   r1   r3   r6   z$Action incident deleted successfully)	r   deleter9   r:   r;   r   r   rG   r=   rH   s       r@   rQ   rQ   u   s     !$++B/F&$FJJx$8G$C11!::i1LM
 	
 &&=
 rB   z/update/{id}c                 @   |j                  d      }t        |      j                  | |      }t        |t               rC|j	                  d      dk(  r/t        t        j                  d|j	                  dd      d d	      S t        t        j                  d
d|d	      S )NT)exclude_unsetr   r.   rE   r0   rF   r1   r3   r6   z$Action incident updated successfully)	r:   r   updater9   r;   r   r   rG   r=   )rC   rJ   r&   r'   rO   r?   s         r@   rT   rT      s    KKdK3M $++B>F&$FJJx$8G$C11!::i1LM
 	
 &&=
 rB   z	/pdf/{id}c                 
   t        |      j                  |       }t        |t              rC|j                  d      dk(  r/t	        t
        j                  d|j                  dd      d d      S |j                  t              j                  t        j                  |d   k(        j                         }|j                  t              j                  t        j                  |d   k(        j                         }|j                  t              j                  t        j                  |d	   k(        j                         }|j                  d
      rF|j                  t              j                  t        j                  |d
   k(        j                         nd }|rk|j                   r_|j                  t"              j                  t"        j$                  dk(  t"        j                  |j                   k(        j                         nd }|rY|j&                  rM|j                  t(              j                  t(        j                  |j&                  k(        j                         nd }	d}
|r|j*                  rv|j*                  }t-        j.                         }|j0                  |j0                  z
  |j2                  |j4                  f|j2                  |j4                  fk  z
  }
t7        |
      }
|r|j8                  r|j8                  nd}|rt;        ||      nd }|r|j<                  xs dnd}|r|j>                  xs djA                         nd}d}|j                  d      rV|j                  d      }t        |t6              r$tC        jD                  |d      j-                         }|jG                  d      }i d|j                  dd      d|r|jH                  ndd|r(|jJ                   d|jL                   d|jN                   ndd|d|r'|j*                  r|j*                  jG                  d      ndd|
d|	r|	jP                  ndd|r|jR                  ndd|dt7        |j                  dd            dtT        j                  |j                  d      d      dtV        j                  |j                  d      d      d|j                  dd      d |j                  d d      d!|j                  d!d      d"|j                  d"d      d#|d$||d%}tY               }|j[                  |      }d&|j                  dd'       d(|d    d)}t]        |d*d+d,| d-i.      S )/Nr   r.   rE   r0   rF   r1   r3   r+   r-   professional_idr    incident_datez%Y-%m-%dz%d/%m/%Yr,   school_namestudent_name student_rut
birth_dateageneecourse_namez	Sin cursoincident_timeaction_type_nameaction_incident_type_idstatus_name	status_id
backgroundconductconsequencesrecommendationsprofessional_nameu   Asistente Técnico Diferencial)professional_positionprofessional_rutprofessional_secreduczFicha de registro - 	documentoz - z.pdfzapplication/pdfzContent-Dispositionzattachment; filename="")r5   
media_typeheaders)/r   r;   r9   r:   r   r   rG   queryr   filterr+   firstr   r   rC   r   	course_idr   deleted_status_idspecial_educational_need_idr   	born_dater   todayyearmonthdaystridentification_numberr   rut	full_namestripr   strptimestrftimerY   namesfather_lastnamemother_lastnamespecial_educational_needsr`   TYPE_OPTIONSSTATUS_OPTIONSr   generate_pdfr   )rC   r&   r'   action_resultstudent_personalstudent_academicschoolprofessionalcourser_   r^   r]   ry   r\   professional_disprl   professional_full_nameformatted_daterX   pdf_datapdf_generatorpdf_contentfilenames                          r@   r   r      s    (+//3M-&=+<+<X+F'+Q11(,,Y8ST
 	
 xx 89@@AYAdAdhu  wC  iD  BD  E  K  K  Mxx 89@@AYAdAdhu  wC  iD  BD  E  K  K  MXXk"))+..M+<V*VW]]_F |I  |M  |M  N_  |`288-.556G6J6Jm\mNn6nouuw  fjL HX  ]m  ]w  ]wRXXk"))+*G*G1*Lknn`p`z`zNz{  B  B  D  }AF Sc  hx  hT  hT"((.
/
6
67R7U7UYi  ZF  ZF  8F  G  M  M  O  Z^C C,66%//


jj:??*u{{EII.F*JZJZ\f\j\jIk.kl#h =MQaQwQw"88}KIU3BE[_8I)--3rL]/99?RFFHce N)%))/:mS)$--mZHMMOM&//
;""7B/Vv)) 	  ~N+112!4D4T4T3UUVWgWwWwVxy  TV 	{	
 	IY^n^x^x&0099*E  A 	s 	s,, 	Vv)) 	 	]..CD 	L,,]->->?X-Y[]^ 	~))-*;*;K*H"M 	m''b9 	=$$Y3 	))."=  	=,,->C!" 	3#$ "B,!1)H0 +,M,,X6K &m&7&7&M%NcRZ[iRjQkkopH$!%;H:Q#G
 rB   N)/fastapir   r   r   fastapi.responsesr   r   app.backend.db.databaser   sqlalchemy.ormr	   app.backend.schemasr
   r   r   r   )app.backend.classes.action_incident_classr   -app.backend.classes.action_incident_pdf_classr   app.backend.auth.auth_userr   app.backend.db.modelsr   r   r   r   r   r   r   &app.backend.utils.professional_displayr   r   r   r   r   actions_incidentspostrA   r;   intrI   rM   rQ   putrT   r    rB   r@   <module>r      s]   . . 4 * " h h I P > m  m  m N # 	 , 
	 
 ELMdEeu|  ~D  vE )  kr  B |$,34K,L\cdj\k S 	 RY  %, !AHI`Aaqxy  rA % Y gn  "6 '".).56M.N^efl^m s ) T[  * #, ~&LSTkLl  }D  EK  }L s 0 	 ry  '0 {#4;<S4Tdklrds RS R	 RZa R $RrB   