3
؀h                 @   s  d dl mZmZmZmZmZmZmZ d dlmZm	Z	m
Z
 d dlZd dlZd dlZd dlZd dlZd dlmZ d dl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 d d
lmZ d dl m!Z! d dl"m#Z# d dl$m%Z% d dl&m'Z' d dl(m)Z) d dl*m+Z+ d dl,T dd Z-ej.ddgddd Z/ej.ddd Z0ej.ddd Z1ej.dd d! Z2ej.d"d#d$ Z3ej.d%dgdd&d' Z4ej.d(d)d* Z5ej.d+d,d- Z6d.d/ Z7d0d1 Z8dS )2    )Flaskjsonifyrender_templateurl_forrequestredirectjson)datetime	timedeltadateN)app)db)Gatepass)GatepassGuest)GatepassDetail)BookingTypeSeedBookingStatusSeedMandatoryPaymentsSeedBookingGuestTypesSeed)BookingType)Booking)BookingGuest)BookingStatus)Detail)	GuestType)	Mandatory)*c             C   s   | j j  d S )N)sessionclose)self r    ,/booking_service/app/routes/gatepass_urls.pyr      s    r   z/gatepass/newPOST)methodsc        B   V   C   s  t j jd} ttjd j  s>ttjd j  s>ttjd j  s>ttjd j  s>ttjd j  s>ttjd j  s>ttjd j  s>ttjd	 j  s>ttjd
 j  s>ttjd j  s>ttjd j  s>ttjd j  s>ttjd j  s>tjd j  r\g }|jd td|idfS tt	j
 }tt	j
 }ytjd }W n( tk
r } z
d }W Y d d }~X nX ytjd }W n( tk
r } z
d }W Y d d }~X nX ytjd }W n( tk
r }	 z
d }W Y d d }	~	X nX ytjd }
W n( tk
rR } z
d }
W Y d d }~X nX ytjd }W n( tk
r } z
d }W Y d d }~X nX tjd jd\}}}tjd jd\}}}t|}t|}t|}t|}t|}t|}t|||}t|||}tt|| jdkrd}ntt|| j}tjt}tjjtjtjd kjtjj j }tjd dkr|jdkrt|j }ntjd dkr|jdkrt!t|j t|j d d d  d}nltjd dkr|jdkrt!t|j t|j d d d  d}n&tjd dkr<|jdkr<t|j }tjd dkrd|j"dkrdt|j#} ntjd dkr|j"dkrt!t|j#t|j d d d  d} nltjd dkr|j"dkrt!t|j#t|j d d d  d} n&tjd dkr|j"dkrt|j#} tjd dkr>|j$dkr>t|j%}!ntjd dkr|j$dkrt!t|j%t|j d d d  d}!nltjd dkr|j$dkrt!t|j%t|j d d d  d}!n&tjd dkr|j$dkrt|j%}!tjd dkr|j&dkrt|j'}"ntjd dkr^|j&dkr^t!t|j't|j d d d  d}"nltjd dkr|j&dkrt!t|j't|j d d d  d}"n&tjd dkr|j&dkrt|j'}"tjd dkr|j(dkrt|j)}#ntjd dkr8|j(dkr8t!t|j)t|j d d d  d}#nltjd dkr~|j(dkr~t!t|j)t|j d d d  d}#n&tjd dkr|j(dkrt|j)}#tjd dkr|j*dkrt|j+}$ntjd dkr|j*dkrt!t|j+t|j d d d  d}$nltjd dkrX|j*dkrXt!t|j+t|j d d d  d}$n&tjd dkr~|j*dkr~t|j+}$tjd dkr|j,dkrt|j-}%ntjd dkr|j,dkrt!t|j-t|j d d d  d}%nltjd dk	r2|j,dk	r2t!t|j-t|j d d d  d}%n&tjd dk	rX|j,dk	rXt|j-}%tjd dk	r|j.dk	rt|j/}&ntjd dk	r|j.dk	rt!t|j/t|j d d d  d}&nltjd dk
r|j.dk
rt!t|j/t|j d d d  d}&n&tjd dk
r2|j.dk
r2t|j/}&tjd dk
rZ|j0dk
rZt|j1}'ntjd dk
r|j0dk
rt!t|j1t|j d d d  d}'nltjd dk
r|j0dk
rt!t|j1t|j d d d  d}'n&tjd dkr|j0dkrt|j1}'t2|| tjd  |d! | tjd tt	j
 d d" ||tjd tjd tjd tjd d#}(tjj3|( t4tt	j
 |t5d$tjd |%|tjd d%})tjj3|) t4tt	j
 |t5d&tjd |"|tjd d%}*tjj3|* t4tt	j
 |t5d'tjd ||tjd d%}+tjj3|+ t4tt	j
 |t5d(tjd |&|tjd d%},tjj3|, t4tt	j
 |t5d)tjd |#|tjd d%}-tjj3|- t4tt	j
 |t5d*tjd | |tjd d%}.tjj3|. t4tt	j
 |t5d+tjd d|tjd d%}/tjj3|/ t4tt	j
 |t5d,tjd	 |'|tjd d%}0tjj3|0 t4tt	j
 |t5d-tjd
 |$|tjd d%}1tjj3|1 t4tt	j
 |t5d.tjd |!|tjd d%}2tjj3|2 t6tt	j
 |||||
d/}3tjj3|3 t7||d! | tt	j
 d d" |t8d0d1}4t9tt	j
 |t5d$tjd d2}5tjj3|5 t9tt	j
 |t5d&tjd d2}6tjj3|6 t9tt	j
 |t5d'tjd d2}7tjj3|7 t9tt	j
 |t5d(tjd d2}8tjj3|8 t9tt	j
 |t5d)tjd d2}9tjj3|9 t9tt	j
 |t5d*tjd d2}:tjj3|: t9tt	j
 |t5d+tjd d2};tjj3|; t9tt	j
 |t5d,tjd	 d2}<tjj3|< t9tt	j
 |t5d-tjd
 d2}=tjj3|= t9tt	j
 |t5d.tjd d2}>tjj3|> t:tt	j
 |||||
d3}?tjj3|? yFtjj;  t<t g }|jd4 i }@||@d5< |
|@d< t||@d6d7fS  t=k
r }A z8t>|A tjj?  t<t g }|jd8 td|idfS d }A~AX nX d S )9Nz%Y-%m-%dea_adult_citizenea_adult_residentnon_resident_adultea_child_citizenea_child_residentnon_resident_childinfantcitizen_studentea_resident_studentnon_resident_studentcurrency
start_dateend_date
session_idz5You appear to be missing some data. Please try again.messagei  
first_name	last_nameemailphonepartner-r      USDKESdatabase_currency_amount   destination 
   )gatepass_public_idgatepass_dater?   gatepass_done_bygatepass_phone_numbergatepass_ref_code
booking_id
partner_idr/   r0   gatepass_currencyr1   zEA Adult Citizen)gatepass_guest_public_idgatepass_idgatepass_guest_typegatepass_guest_countgatepass_cost_per_ppgatepass_no_of_nightsrI   zEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildInfantzCitizen StudentzEA Resident StudentzNon Resident Student)gatepass_details_public_idrK   r3   r4   email_addressphone_number	Confirmed)booking_public_idbooking_done_bybooking_ref_coderK   status)booking_guest_public_idrG   
guest_typeguest_count)booking_details_public_idrG   r3   r4   rR   rS   z2The gate pass has been issued. Proceed to payment.rB   )r2   r<      z]It's us, not you. There was an error while issuing the gate pass. :-( Please try again later.)@r	   nowstrftimestrr   r   stripappendr   uuiduuid4KeyErrorsplitintr   absdaysrequestsgetget_latest_exchange_rater   r   queryr   filterdeletion_markerorder_by
payment_iddescfirst#payment_non_resident_adult_currencyfloat!payment_non_resident_adult_amountround#payment_non_resident_child_currency!payment_non_resident_child_amountZ%payment_non_resident_student_currency#payment_non_resident_student_amount"payment_ea_resident_adult_currency payment_ea_resident_adult_amount"payment_ea_resident_child_currency payment_ea_resident_child_amountZ$payment_ea_resident_student_currency"payment_ea_resident_student_amountpayment_citizen_adult_currencypayment_citizen_adult_amountpayment_citizen_child_currencypayment_citizen_child_amountZ payment_citizen_student_currencypayment_citizen_student_amountr   addr   get_booking_guest_type_idr   r   get_booking_status_idr   r   commitr   	Exceptionprintrollback)BtodayoutputrK   rG   rs   Zfirst_errorlastZ
last_errorr5   Zemail_errorr6   phone_errorr7   Zpartner_errorstripped_start_yearstripped_start_monthstripped_start_daystripped_end_yearstripped_end_monthstripped_end_dayint_start_yearint_start_monthint_start_dayint_end_yearint_end_monthint_end_dayr/   r0   	date_diffexchange_rate_datagatepass_feerv   ry   rz   r|   r~   r   r   r   r   gatepassbooking_guest1booking_guest2booking_guest3booking_guest4booking_guest5booking_guest6booking_guest7Zbooking_guest8Zbooking_guest9Zbooking_guest10gatepass_detailbookingguest1guest2guest3guest4guest5guest6guest7Zguest8Zguest9Zguest10Zbooking_detailreturn_dataer    r    r!   add_new_gatepass   s   

**
**
**
**
**
**
**
**
**




























r   z/gatepass/viewc              C   sN  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtjd kjtjd kjtjj j } | sg }|jd td|idfS g }xt| D ]j}i }|j|d< |j
|d< |j|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |jrJd|d< n|jsZd|d< g }t jjtjt tj!t j"kj	t j#t j"tj$tj!jtjd kjtj|jkj }x|D ]}|j#dkr|j$}|j#dkr|j$}|j#dkr|j$}	|j#dkr|j$}
|j#dkr|j$}|j#dkr"|j$}|j#dkr4|j$}|j#dkrF|j$}|j#dkrX|j$}|j#dkr|j$}qW yi }||d< ||d< |	|d< |
|d< ||d< ||d < ||d!< ||d"< ||d#< ||d$< |j| ||d%< || |	 |
 | | | | | | |d&< W n$ t%k
r* } zW Y d d }~X nX |j| qW td'|idfS d S )(Nz0There are currently no gatepasses in the system.r2      rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   Paidgatepass_payment_statuszNot PaidzEA Adult CitizenzEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   zCitizen StudentzEA Resident StudentzNon Resident Studentr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   guestsguest_totalr<   )&r   r   rm   r   joinr   rB   rK   r   add_columnsr?   rC   rD   rE   rF   r1   r   r/   r0   r3   r4   rR   rS   rn   ro   member_visitr   rp   rr   allrb   r   r   rL   booking_guest_type_public_idbooking_guest_type_namerM   UnboundLocalError)return_gatepassr   singler   guest_arrayget_all_guests
each_guestr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   
guest_dataguest_data_unavailabler    r    r!   view_all_gatepasses  s    













0r   z/gatepass/view/unpaidc              C   sN  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtjd kjtjd kjtjd kj } | sg }|jd td|idfS g }xt| D ]j}i }|j|d< |j
|d< |j|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |jrJd|d< n|jsZd|d< g }t jjtjttjtj kj	tj!tj tj"tjjtjd kjtj|jkj }x|D ]}|j!dkr|j"}|j!dkr|j"}|j!dkr|j"}	|j!dkr|j"}
|j!dkr|j"}|j!dkr"|j"}|j!dkr4|j"}|j!dkrF|j"}|j!dkrX|j"}|j!dkr|j"}qW yi }||d< ||d< |	|d< |
|d< ||d< ||d < ||d!< ||d"< ||d#< ||d$< |j| ||d%< || |	 |
 | | | | | | |d&< W n$ t#k
r* } zW Y d d }~X nX |j| qW td'|idfS d S )(Nz7There are currently no unpaid gatepasses in the system.r2   r   rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   r   r   zNot PaidzEA Adult CitizenzEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   zCitizen StudentzEA Resident StudentzNon Resident Studentr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r<   )$r   r   rm   r   r   r   rB   rK   r   r   r?   rC   rD   rE   rF   r1   r   r/   r0   r3   r4   rR   rS   rn   ro   r   r   r   rb   r   r   rL   r   r   rM   r   )r   r   r   r   r   r   r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r    r    r!   view_all_unpaid_gatepassesS  s    













0r   z/gatepass/view/paidc              C   sB  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtjdkjtjd kj } | sg }|jd td|idfS g }xt| D ]j}i }|j|d< |j
|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |j|d< |jr>d|d< n|jsNd|d< g }t jjtjttjtjkj	tj tjtj!tjjtjd kjtj|jkj }x|D ]}|j dkr|j!}|j dkr|j!}|j dkr|j!}	|j dkr|j!}
|j dkr|j!}|j dkr|j!}|j dkr(|j!}|j dkr:|j!}|j dkrL|j!}|j dkr|j!}qW yi }||d< ||d< |	|d< |
|d< ||d < ||d!< ||d"< ||d#< ||d$< ||d%< |j| ||d&< || |	 |
 | | | | | | |d'< W n$ t"k
r } zW Y d d }~X nX |j| qW td(|idfS d S ))Nr9   z7There are currently no unpaid gatepasses in the system.r2   r   rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   r   r   zNot PaidzEA Adult CitizenzEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   zCitizen StudentzEA Resident StudentzNon Resident Studentr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r<   )#r   r   rm   r   r   r   rB   rK   r   r   r?   rC   rD   rE   rF   r1   r   r/   r0   r3   r4   rR   rS   rn   ro   r   r   rb   r   r   rL   r   r   rM   r   )r   r   r   r   r   r   r   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   r    r    r!   view_all_paid_gatepasses  s    













0r   z/gatepass/view/<gatepass_id>c             C   s  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtj| kj }|sg }|jd td|idfS g }x"|D ]}i }|j|d< |j
|d< |j|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |j|d< |jr@d|d< n|jsPd|d< g }g }t jjtjttjtjkj	tj tjtj!tjtj"tj#tj$tjjtjd kjtj|jkj }xD|D ]:}|j dkr|j!}	t%t&|j!dt&|j" d  t&|j# t&|j$ d}
|j|
 |j dkrh|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr^|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkrT|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| |j dkr|j!}t%t&|j!dt&|j" d  t&|j# t&|j$ d}|j| qW yi }|	|d< ||d< ||d < ||d!< ||d"< ||d#< ||d$< ||d%< ||d&< ||d'< |j| ||d(< |	| | | | | | | | | |d)< t'||d*< W n$ t(k
r } zW Y d d }~X nX |j| qW td+|idfS d S ),Nz5That gatepass does not appear to exist in the system.r2   r   rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   r.   r   r   zNot PaidzEA Adult Citizend   r>   zEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   zCitizen StudentzEA Resident StudentzNon Resident Studentr$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r   r   
total_costr<   ))r   r   rm   r   r   r   rB   rK   r   r   r?   rC   rD   rE   rF   r1   r   r/   r0   rI   r3   r4   rR   rS   rn   ro   r   rb   r   r   rL   r   r   rM   gatepass_discount_raterN   rO   rw   ru   sumr   )rK   r   r   r   r   r   Zgatepass_cost_arrayr   r   r$   Zgatepass_ea_adult_citizenr%   Zgatepass_ea_adult_residentr&   Zgatepass_non_resident_adultr'   Zgatepass_ea_child_citizenr(   Zgatepass_ea_child_residentr)   Zgatepass_non_resident_childr*   Zgatepass_infantr+   Zgatepass_citizen_studentr,   Zgatepass_ea_resident_studentr-   Zgatepass_non_resident_studentr   r   r    r    r!   view_single_gatepass  s    












4
4
4
4
4
4
4
4
4
4
,r   z/gatepass/members/newc        :   r   C   s  t tjd j  stt tjd j  stt tjd j  stt tjd j  stt tjd j  sttjd j  rg } | jd td| id	fS t tj }t tj }tj	 j
d
}tjtjtjd }tjd }|j d jd\}}|j d }|j d }	ytjd }
W n( tk
r< } z
d}
W Y d d }~X nX ytjd }W n( tk
rt } z
d}W Y d d }~X nX ytjd }W n( tk
r } z
d}W Y d d }~X nX ytjd }W n( tk
r } z
d}W Y d d }~X nX ytjd }W n( tk
r } z
d}W Y d d }~X nX ytjd }W n( tk
rT } z
d}W Y d d }~X nX ytjd }W n( tk
r } z
d}W Y d d }~X nX tjd jd\}}}tjd jd\}}}t|}t|}t|} t|}!t|}"t|}#t||| }$t|!|"|#}%tt|%|$ jdkr d}&ntt|%|$ j}&tjt}'tjjtjtjd kjtjj j }(tjd dkr|(j dkrt!|(j"})ntjd dkr|(j dkrt#t!|(j"t!|'j d d d  d})nltjd dkr|(j dkrt#t!|(j"t!|'j d d d  d})n&tjd dkr>|(j dkr>t!|(j"})tjd dkrf|(j$dkrft!|(j%}*ntjd dkr|(j$dkrt#t!|(j%t!|'j d d d  d}*nltjd dkr|(j$dkrt#t!|(j%t!|'j d d d  d}*n&tjd dkr|(j$dkrt!|(j%}*tjd dkr@|(j&dkr@t!|(j'}+ntjd dkr|(j&dkrt#t!|(j't!|'j d d d  d}+nltjd dkr|(j&dkrt#t!|(j't!|'j d d d  d}+n&tjd dkr|(j&dkrt!|(j'}+tjd dkr|(j(dkrt!|(j)},ntjd dkr`|(j(dkr`t#t!|(j)t!|'j d d d  d},nltjd dkr|(j(dkrt#t!|(j)t!|'j d d d  d},n&tjd dkr|(j(dkrt!|(j)},tjd dkr|(j*dkrt!|(j+}-ntjd dkr:|(j*dkr:t#t!|(j+t!|'j d d d  d}-nltjd dkr|(j*dkrt#t!|(j+t!|'j d d d  d}-n&tjd dkr|(j*dkrt!|(j+}-tjd dkr|(j,dkrt!|(j-}.ntjd dkr|(j,dkrt#t!|(j-t!|'j d d d  d}.nltjd dkrZ|(j,dkrZt#t!|(j-t!|'j d d d  d}.n&tjd dkr|(j,dkrt!|(j-}.t.||tjd |j d |	t tj d d ||ddtjd tjd tjd d}/tjj/|/ t0t tj |t1d |
|-|&tjd d!}0tjj/|0 t0t tj |t1d"||+|&tjd d!}1tjj/|1 t0t tj |t1d#||)|&tjd d!}2tjj/|2 t0t tj |t1d$||.|&tjd d!}3tjj/|3 t0t tj |t1d%|d&}4tjj/|4 t0t tj |t1d'||*|&tjd d!}5tjj/|5 t0t tj |t1d(|d|&tjd d!}6tjj/|6 t2t tj |||||	d)}7tjj/|7 yFtjj3  t4t g } | jd* i }8||8d+< |	|8d,< t| |8d-d.fS  t5k
r }9 z8t6|9 tjj7  t4t g } | jd/ td| id	fS d }9~9X nX d S )0Nmemberr?   r.   r/   r0   r1   z5You appear to be missing some data. Please try again.r2   i  z%Y-%m-%d	full_namer@   r5   
tel_numberr$   r   r%   r&   r'   r(   r)   r*   r8   r9   r:   r;   r<   r=   r>   rA   )rB   rC   r?   rD   rE   rF   rG   	member_idr   r   r/   r0   r1   zEA Adult Citizen)rJ   rK   rL   rM   rN   rO   rI   zEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child Resident)rJ   rK   rL   rM   zNon Resident ChildrP   )rQ   rK   r3   r4   rR   rS   z2The gate pass has been issued. Proceed to payment.rB   r6   )r2   r<   r]   z]It's us, not you. There was an error while issuing the gate pass. :-( Please try again later.)8r`   r   r   ra   rb   r   rc   rd   r	   r^   r_   rj   rk   get_member_detailsformatrf   re   rg   r   rh   ri   rl   r   r   rm   r   rn   ro   rp   rq   rr   rs   rt   ru   rv   rw   rx   ry   r{   r|   r}   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r   ):r   rK   rG   r   member_detailsr   rs   r   r5   r6   r$   Zea_adult_citizen_errorr%   Zea_adult_resident_errorr&   Znon_resident_adult_errorr'   Zea_child_citizen_errorr(   Zea_child_resident_errorr)   Znon_resident_child_errorr*   Zinfant_errorr   r   r   r   r   r   r   r   r   r   r   r   r/   r0   r   r   r   rv   ry   r|   r~   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r    r!   add_new_member_gatepass  s   


**
**
**
**
**
**













r   z/gatepass/members/viewc              C   s  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtjdkj } | sg }|jd td|idfS g }x| D ]}i }|j|d< |j
|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |j|d< g }t jjtjttjtjkj	tj tjtj!tjjtjd kjtj|jkj }x|D ]}|j dkr|j!}|j dkr|j!}|j dkr|j!}	|j dkr|j!}
|j dkr|j!}|j dkr|j!}|j dkrx|j!}qxW yri }||d< ||d< |	|d< |
|d< ||d< ||d< ||d< |j| ||d< || |	 |
 | | | |d< W n$ t"k
r } zW Y d d }~X nX |j| qW td|idfS d S ) Nr9   z7There are currently no member gatepasses in the system.r2   r   rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   zEA Adult CitizenzEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   r$   r%   r&   r'   r(   r)   r*   r   r   r<   )#r   r   rm   r   r   r   rB   rK   r   r   r?   rC   rD   rE   rF   r1   r   r/   r0   r3   r4   rR   rS   rn   ro   r   r   rb   r   r   rL   r   r   rM   r   )r   r   r   r   r   r   r   r$   r%   r&   r'   r(   r)   r*   r   r   r    r    r!   view_all_member_gatepasses  s    












$r   z$/gatepass/members/view/<gatepass_id>c             C   s  t jjtjttjtjkjttjtjkj	tjtj
tjtjtjtjtjtjtjtjtjtjtjtjjtjd kjtjdkjtj| kj }|sg }|jd td|idfS g }x|D ]}i }|j|d< |j
|d< |j|d< |j|d< |j|d	< |j|d
< |j|d< |j|d< |j|d< |j|d< g }t jjtjttjtjkj	tj tjtj!tjjtjd kjtj|jkj }x|D ]}|j dkr|j!}|j dkr|j!}	|j dkr|j!}
|j dkr|j!}|j dkr|j!}|j dkr|j!}|j dkr|j!}qW yri }||d< |	|d< |
|d< ||d< ||d< ||d< ||d< |j| ||d< ||	 |
 | | | | |d< W n$ t"k
r } zW Y d d }~X nX |j| qW td|idfS d S ) Nr9   z<That member gatepass does not appear to exist in the system.r2   r   rB   r?   rC   rD   rE   rF   r3   r4   r/   r0   zEA Adult CitizenzEA Adult ResidentzNon Resident AdultzEA Child CitizenzEA Child ResidentzNon Resident ChildrP   r$   r%   r&   r'   r(   r)   r*   r   r   r<   )#r   r   rm   r   r   r   rB   rK   r   r   r?   rC   rD   rE   rF   r1   r   r/   r0   r3   r4   rR   rS   rn   ro   r   r   rb   r   r   rL   r   r   rM   r   )rK   r   r   r   r   r   r   r   r$   r%   r&   r'   r(   r)   r*   r   r   r    r    r!   view_single_member_gatepass!  s    












$r   c             C   sB   t jjtjtjd kjtj| kj }x|D ]}|j}|S W d S )N)	r   r   rm   r   rn   ro   booking_status_namer   booking_status_public_id)status_name	status_idr   booking_status_idr    r    r!   r   z  s    
r   c             C   sB   t jjtjtjd kjtj| kj }x|D ]}|j}|S W d S )N)	r   r   rm   r   rn   ro   r   r   r   )guest_type_nametype_idr   booking_guest_type_idr    r    r!   r     s    
r   )9flaskr   r   r   r   r   r   r   r	   r
   r   pymysqlosmathrj   rc   routesr   r   database.gatepassr   database.gatepass_guestsr   database.gatepass_detailsr   routes.seed_functionsr   r   r   r   database.booking_typesr   database.bookingsr   database.booking_guestsr   database.booking_statusr   database.booking_detailsr   database.booking_guest_typesr   database.mandatory_paymentsr   	variablesr   router   r   r   r   r   r   r   r   r   r   r    r    r    r!   <module>   sB   $(   Qffe   UY