
    =hG                         d dl mZmZ d dlmZmZ d dlmZ d dlm	Z	m
Z
 d dlmZ d dlmZmZmZmZ d dl d dlZd dlZd d	lmZmZmZmZmZ ee
 ed
       d                      Zy)    )login_requireduser_passes_test)HttpResponseBadRequestJsonResponse)
make_aware)require_GETrequire_POST)datetime)HTTP_401_UNAUTHORIZEDHTTP_208_ALREADY_REPORTEDHTTP_403_FORBIDDENHTTP_200_OK)*N)PasseportSerializerTicketSerializerHourRangeSerializerPartenaireSerializerUserSerializerc                 R    | j                   xs | j                  xs | j                  S )N)is_badge
is_partneris_coord)us    (/var/www/html/tombola/views/scan_view.py<lambda>r      s    AJJD!,,D!**     c           
         t         j                  j                  d      }| j                  j                  d      }t	        t        j                               }	 t        j                  j                  ||      }t        |      j                  t        t         j                  j#                  |dd      d      j                  t        t         j                  j#                  |dd      d      j                  t%        t        j                  j#                  |      d      j                  t'        t(        j                  j#                  |      d      j                  t+        t,        j                  j                  | j.                  j0                              j                  dt        j                  j#                  |      j3                         d}| j.                  j4                  ra	 t(        j                  j                  | j.                  |      }t         j                  j                  ||       t        d|d
t6              S | j.                  j<                  r	 t        j                  j                  ||      }t         j                  j#                  ||      j3                         |d<   	 t         j                  j                  ||       t        d|d
t6              S | j.                  j@                  rg }	tC        | j                         | j                  jE                  d      D ]  }
tC        d       t        j                  j                  tG        |
            }	 t         j                  j                  ||       |	j;                  t%        |      j                  dd d!        |	|d$<   t        d%|d
tH              S t        d%|d
tH              S # t        j                  $ rg 	 t        j                  j                  ||      }n# t        j                  $ r d }Y nw xY wt        d||j                  |rdndd	d
t              cY S w xY w# t         j                  $ rE t!        |      j9                         }|d   j;                  t        |      j                         Y w xY w# t        j                  $ r t        d|d
t>              cY S w xY w# t         j                  $ r, t!        ||      j9                          |dxx   dz  cc<   Y Ww xY w# t         j                  $ rG t!        ||      j9                          |	j;                  t%        |      j                  d"d#d!       Y Pw xY w)&NT)	is_activeuid)	unique_idraffle)
start__lteend__gtez<Passeport invalide. Merci de contacter un des organisateurs.   r   )r   r!   in_range)messagecontext)statusF)	passeporthour_range__isnullpartner__isnull)many)r)   r+   r*   )r!   )pk)r)   hour_ticketspartner_ticketshour_rangespartnersusernb_passeports_scannesnb_total_passeports)r2   r!   )r)   partneru-   Passeport déjà scanné chez le partenaire !r/   )passeport__raffle
hour_ranger3   uf   Scan du passeport non autorisé hors des plages horaires définies (1er quart d'heure de chaque heure))r)   r7   u5   Passeport déjà scanné durant cette plage horaire !zranges_to_badge[]here)idu   Créneau horaire déjà validéalready)r7   r&   r(   u   Créneau horaire validésuccessstaff_outputu   Scan validé !)%
RaffleDrawobjectsgetPOSTr   r
   now	PasseportDoesNotExist	HourRanger   r9   r   r   datar   Ticketfilterr   r   
Partenairer   Userr2   r-   countr   r   saveappendr   r   r   printgetlistintr   )requestr!   r   scan_datetimer)   r7   r'   r5   ticketoutputsr9   s              r   scanrT      s    ##d#3F
,,

5
!C x||~.M:%%))C)G	$ )388()>)>gl  C)>  *D  KO  P  U  U+FNN,A,AIgl  BF,A  -G  NR  S  X  X*9+<+<+C+C6+C+RY]^cc(););)B)B&)B)QX\]bbt||//7<<??/CDII!"(0077v7FLLN	G ||	>$,,00QW0X""Y"H
 $0_07%9#<> > 
			;"**..-8E / GJ/5~~/D/DW]jt/D/u/{/{/}G+,	BNN*4  6  ,c,3!5'@B B 
		gll<<''(;< 	6B&M"**..#b'.:J
6""Y:"N .A*.M.R.R+L*3 5 6	6 #*(8(/19DF 	F $4$+-5@B Be !! :	"**..-8E / GJ%% 	J	 (f'**0))1;A)  $9: 	::> && Q)WEJJL)*112B62J2O2OPQ %% 	;  -U,3!5'9; ;	; "" 	2Y(TV+,1,		2" && 6zBGGI.A*.M.R.R+E*3 5 66s   !O) 1AQ& (AS <!S. 1!T0)Q#=!PQ#P74Q#6P77)Q#"Q#&AR>=R>'S+*S+.;T-,T-0AV
	V
)django.contrib.auth.decoratorsr   r   django.httpr   r   django.utils.timezoner   django.views.decorators.httpr   r	   r
   rest_framework.statusr   r   r   r   tombola.modelsdjango.appsdjangopytztombola.serializersr   r   r   r   r   rT    r   r   <module>r`      s\    K < , B  s s     DE\B F  \Br   