U
    ``L                     @   s&  d dl Z d dlZd dlZd dlmZmZ d dl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mZ d d	lmZ zd d
lmZ W n  ek
r   d d
lmZ Y nX d dl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% d dl&m'Z' d dl(m)Z)m*Z* d dl+m,Z,m-Z-m.Z. d dl/Z/d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6m7Z7 d dl8m9Z9 d dl:Z:d dl;m<Z< d dl=m>Z>m?Z?m@Z@mAZA d dlBmCZCmDZD d dlEmFZF eddgee#e$fedd ZGd d! ZHeddgee#e$fed"d# ZIeddgee#e$fed$d% ZJd&d' ZKd(d) ZLd*d+ ZMeddgee#e$fed,d- ZNeddgee#e$fed.d/ ZOd0d1 ZPeddgee#e$fed2d3 ZQeddgee#e$fed4d5 ZReddgee#e$fed6d7 ZSeddgee#e$fed8d9 ZTeddgee#e$fed:d; ZUeddgee#e$fed<d= ZVeddgee#e$fed>d? ZWeddgee#e$fed@dA ZXdBdC ZYeddgee#e$fedDdE ZZeddgee#e$fedFdG Z[dHdI Z\dJdK Z]dLdM Z^dS )N    N)IntegrityError
connection)datedatetime	timedelta)HttpResponse)relativedelta)EmailMultiAlternatives)JsonResponse)render_to_stringget_template)never_cache)logger)api_viewauthentication_classes)Plan)settings)PAGING_ROWS)SessionAuthenticationIsAuthenticatedStartFitSessionUtil)User)UserPlanUserExercise)OrderOrderDetailTransactionHistory)parse_qs)exceptionMail)PriceMapping)
officeMail)letter)
TA_JUSTIFY)SimpleDocTemplate	ParagraphSpacerImage)getSampleStyleSheetParagraphStyle)inchGETPOSTc              
   C   s  t  }|| }|d }t| jd}|}d}zt d}t	| t t
dd }|d}	t| jd}t|d }
|d }|d krd|krtjj||d	 ||	d
d
d}|  |j}|d D ]}t	d tjddj|d dddddd}t	| d|krT|d dkrT| r<|d }nd}|d d krXd}nd}t	|d |d }t||d |d}||_||_|  qtdd|dW S ntdddW S W nT tk
r } z4td  t|||t| td!t|i W Y S d }~X Y nX d S )"Nidutf-8zpayment/creategymorders%Y-%m-%d %H:%M:%S   daysgympdataZ	loginUserZ
finalTotal   )user_idtotalAmountpayFrompayTotransation_idstatusz++++++++++++++++++++++	Order__idUser__id
forUser_idorder_id__user_idr=   
payeeid_idr5   ZpartnerPlanprice r   ZsssssexistingPlanid)order_idplan_idr5   Tzpayment success)successmessageorderIdFuser logged outrD   rE   errormsg)r   get_user_insessionjsonloadsbodydecoder   todaystrftimeprintr   lenr   objectscreatesaver,   r   select_relatedfiltervaluesexistsr=   r?   r
   	Exceptionr   rI   r   str)requeststratsessionutilusernameuserZgpdatarequrl	todayDate
one_monthsendDateZ	datarangeZloginUseridZgprB   dtuserplanstatusZpayableamountZguseridZorderdete ri   '/var/www/html/services/payment/views.pycreateGymOrders*   sj    



(




rk   c                 C   s*   ||    }|dk r|d7 }| t|d S )Nr      r0   )weekdayr   )drm   
days_aheadri   ri   rj   next_weekdayi   s    rp   c           "   
   C   s  t  }|| }|d }t| jd}|}d}zt d}t	| t t
dd }|d}	|d kr<t	d |d }
tjj|
d	}|d
 |_|  tjj|
dddd}|D ]j}t|}|d }|d }tjj||ddgdd}| r>t	d |D ].}t|}tjj|d d	}d|_|  qt	d t d}t }t|d}|d}t	| t t
dd }|d}tjj|||d |d |d ddd}|  tjdj|dd}|D ]}|d }qtjj|d}d}|j}|j|d}td |} t || | qt!d!d"d#W S t!dd$d#W S W nT t"k
r }! z4t#$d% t%|||t&|! t!d&t&|!i W Y S d }!~!X Y nX d S )'Nr,   r-   zpayment/updategymordersr.   r/   r0   hererF   pktransactionId)rB   rC   r=   r3      )rC   r4   
status__inz(------------UserPlan Update-------------   z(------------UserPlan Create-------------%Y-%m-%dr   )months	 00:00:00Fr4   rC   renewalDatenextRenewalDate	startDater9   	freetrailPlan__idplan__idplan_id__planNamer,   Plan Subscription
first_nameplannamesubscribeplan.htmlTzProgram Subscribed SuccessfullyrH   rG   rI   rJ   )'r   rK   rL   rM   rN   rO   r   rP   rQ   rR   r   r   rT   getr8   rV   r   rX   rY   dictr   rZ   r9   r   nowrp   rU   rW   r   emailr   r   r    r
   r[   r   rI   r   r\   )"r]   r^   r_   r`   datara   rb   rc   rd   re   rF   ZupdateOrdetailsZuserdetailsvalrY   planIdZplanUserZexistinguserplanDetailsdataObjupdateuserplanr|   rn   next_mondaynextMondayStrr}   userplanDetailsplaninfr   instanceSubsubjectto_emailctxrE   rh   ri   ri   rj   updategymorderso   s    











r   c              
   C   sb  t  }|| }|d }t| jd}|}d}z|d krd}g }g }	t|d }
t|
D ]~}tj	j
|d | d |d | d ddd}| rVtd	 |D ]}t|}|d td
d }|d}t d}||kr"tj	ddj
|d | d dddddd}d}qtj	ddj
|d | d dddddd}qn8td tj	ddj
|d | d dddddd}| rd}|D ]}t|}|| qq`|d | d }d|d}|	| q`td|||	dW S tdddW S W nT tk
r\ } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr,   r-   zpayment/checkuserplanstatusFr2   rA   r4   rC   r}   ziam Hererl   r0   rx   r:   r;   r<   r>   r=   r?   r5   Tznot In Here)existingStatusr4   )rD   r   ZexistingDataZnewusersrG   rH   rI   rJ   )r   rK   rL   rM   rN   rO   rS   ranger   rT   rX   rY   rZ   rR   r   r   rQ   r   rP   r   rW   appendr
   r[   r   rI   r   r\   )r]   r^   r_   r`   pInfora   rb   r   dataArruserArrZ	userRangeiZuserplanvaluesr   ZexistObjoneweekbeforeoneweek	todaydaterg   ZbeforeRenewalrf   r   r4   Z
userValuesrh   ri   ri   rj   checkUserPlanStatus   sR    

0


040


r   c                 C   s   t | jd}t|d  dddddd|d d	d
| jd  d d
| jd  d d
}tj|	d}tj
d| }t|}t| |d	d d }tjt|d }t|ddS )Nr-   amount&soubhik.g-facilitator_api1.stratfit.coFBTUZ737FJCW47CY8AFcWxV21C7fd0v3bYYYRCpSSRl31AixKxpaoAo3GzQM51leFyvmmUaxnSetExpressCheckout_   AuthorizationUSDhttp://	HTTP_HOST/#failz	/#success
USERPWD	SIGNATUREMETHODVERSIONPAYMENTREQUEST_0_PAYMENTACTIONPAYMENTREQUEST_0_AMTPAYMENTREQUEST_0_CURRENCYCODEZ	CANCELURLZ	RETURNURL%https://api-3t.sandbox.paypal.com/nvpTOKENr   FsaferL   rM   rN   rO   rR   METAurllibparse	urlencodeencoder]   urlopenreadr   r   
PAYPAL_URLr\   r
   r]   r   paramsparams_stringresponseresponse_dictresponse_tokenrurlri   ri   rj   paypalAuthToken   s(    r   c                 C   sv   t | jd}ddddd|d |d d	|d
 dd
}tj|d}tj	d|
 }t|d tt|ddS Nr-   r   r   r   r   DoExpressCheckoutPaymenttokenpayerIdr   r   r   
r   r   r   r   r   r   ZPAYERIDr   r   r   r   firstFr   rL   rM   rN   rO   r   r   r   r   r]   r   r   rR   r
   r\   r]   r   exparamsr   r   ri   ri   rj   
doCheckout  s     
r   c              
   C   sp   t | jd}ddddd|d |d d	d
d	}tj|d}tj	d|
 }t|d tt|ddS Nr-   r   r   r   r   	DoCapturert   r   r   Complete	r   r   r   r   r   ZAUTHORIZATIONIDZAMTZCURRENCYCODEZCOMPLETETYPEr   secondFr   r   r   ri   ri   rj   checkPayment  s    
r   c                 C   s>  t  }|| }t| jd}|}d}z|d krt|d  dddddd	|d d
d| jd  d d| jd  d d
}tj	
|d}tjd| }t|}	t|	 |	dd d }
tjt|
d }t|ddW S W nT tk
r8 } z4td td||t| tdt|i W Y S d }~X Y nX d S )Nr-   paypalAuthToken1r   r   r   r   r   r   r   r   r   r   z/checkout/fail.htmlz/checkout/success.htmlr   r   r   r   Fr   something wrong1rJ   )r   rK   rL   rM   rN   rO   rR   r   r   r   r   r   r]   r   r   r   r   r   r\   r
   r[   r   	exceptionr   )r]   r^   r_   r   ra   rb   r   r   r   r   r   r   rh   ri   ri   rj   r   0  s<    

r   c                 C   s  t  }|| }z8|d krHt| jd}t|d |d }|d }|d }|d }ddd	d
d|d |d d|dd
}tj	|
d}	tjd|	 }
t|
d |
d}|d}i }|D ]}|d}|d ||d < q|}|d }|d dkr6|d d kr6t|d d t|||||}t|W S tddddW S W nB tk
r } z"td td t|i W Y S d }~X Y nX d S )!Nr-   Z	234534543rC   r,   r   typer   r   r   r   r   r   r   r   r   r   r   r   &=r3   r   ZPAYMENTINFO_0_TRANSACTIONIDZPAYMENTINFO_0_ACKSuccessZ234567Fz#Payment Failed due to invalid tokenrw   rD   rE   
statusCoderI   rJ   )r   rK   rL   rM   rN   rO   rR   r   r   r   r   r]   r   r   splitcheckPayment1r
   r[   r   rI   r\   )r]   r^   r_   r   r   r4   r   subsTyper   r   r   valuesplitResponsefinalResultvatempresulttransaction_idZcheckResponserh   ri   ri   rj   doCheckout1U  sP    








r   c           .      C   sv  ddddd| |ddd	}t j|d	}t jd
| }t|d |d	}|	d}	i }
|	D ]}|	d}|d |
|d < qb|
}t|d  |d dkrZtd z^t
jj||dd}t|d | r|dkrtd d}d}t d}t }t|d}|d}|tdd }|d}|D ]}t|}|d }q6t
jj|d}|d |_|d |_|d |_||_||_|  t
jdj|dd }|D ]}|d  }qtjj|d!}d"}|j } |j!|d#}!t"d$|!}"t#||"|  t
jj|d%jdd&gd' }#g }$|#D ]h}%t|%}&t$jd(d)d*j|&d+ d!dd,d-d.d/d0d1d2d3d4
}'|'D ]}(t|(})q`|)|&d5< |$%|& qd6d7||$||d|dd8d9}*|*W S |d:krtd; t
jj||dd&gd<d}+|+ rdd=d>}*|*W S t
jj|d&d?j&d@dA t
jj|dd?d}tdB | r:d&}d}nd}d6}t d}t }t|d}|d}|tdd }|d}tdC t
jj'|||d |d |d ||dD},|,  tdE t
jdj|dd }|D ]}|d  }qtjj|d!}tdF d"}|j } |j!|d#}!t"d$|!}"t#||"|  t
jj|d%jdd&gd' }#g }$|#D ]h}%t|%}&t$jd(d)d*j|&d+ d!dd,d-d.d/d0d1d2d3d4
}'|'D ]}(t|(})q|)|&d5< |$%|& qXtdG d6d7||$||d|dHddI}*|*W S tdJ ddKddL}*|*W S W nN t(k
rV }- z.t)|dMdNt*|- dt*|-ddL}*|* W Y S d }-~-X Y nX ntdO ddPd@dL}*|*S d S )QNr   r   r   r   r   r   r   r   r-   r   r   r   r   r3   r   ZACKr   zpayment Successr   r,   Z123458762zRenewing the Plan DetailsFrx   r/   r0   rr   rz   r   r   r   r   r   r   r   )r`   ru   )rv   	Goals__idProgramType__idr;   rC   planNamecreatedBy__first_namecreatedBy__last_namepriceduration_weeksabilityplanGoal__goalNameplanDescriptionprogramType__programTypeNameinfoTzUser Plan Saved Successfully)r~   plansr|   r}   	freeTrialr   r   )rD   rE   r   r   zCraating a New User plan)r4   rC   rv   zUserPlan Already ExistsrH   )r4   r9   rw   )r9   zerror Not herezerror Not here1111111r{   zerror Not here2222222zerror Not here333333zerror Not here44444444)r~   r  r|   r}   r  r   )rD   rE   r   r   zinvalid Plan Detailsz)invalid Plan Details,Please contact Adminr   zPAYMENT FAILUREz/paymentzpayment Failurez"Payment Failed,Invalid Transaction)+r   r   r   r   r]   r   r   rR   rO   r   r   rT   rX   rY   rZ   r   rP   rQ   r   r   rp   r   r   r   r|   r}   r~   r9   r   rV   rW   r   r   r   r   r    r   r   updaterU   r[   r   r\   ).r   r   r4   r   r   r   r   r   r   r   r   r   r   r   
planActiver   r   r|   rn   r   r   rd   r}   ZuplanidZupidZ
userPlanIdZ	renewPlanr   r   r   r   r   r   r   rE   PlanDetailsr  rf   planObj	planInfosdtpplanInfoZresponseVal	planexistr   rh   ri   ri   rj   r     s   











4








4
r   c           	   
   C   s  t  }z|| }d}t| jd}zN|d krb|d }tjj|d}|j	}t
d||dW W S t
ddd	W W S W nR tk
r } z4td
 t|d|t| t
ddd	 W Y W S d }~X Y nX W n@ tk
r } z td
 t
ddd	 W Y S d }~X Y nX d S )Nzpayment/amountTobePaidr-   rC   r   T)rD   r   rC   userLogged outFrE   rD   rI   r*   zInvalid Details)r   rK   rL   rM   rN   rO   r   rT   r   r   r
   r[   r   rI   r   r\   )	r]   r^   r_   rb   r   rC   
planvalues	planPricerh   ri   ri   rj   amountTobePaid  s&    

*
r  c              
   C   s  t  }z|| }d}z.|d kr4d| jkrN| jd dkrNt| jd }nt}d| jkrz| jd dkrzt| jd }nd}|d | }|| }g }|d }	tjdj|	d	d	d
dddd}
t
|
}|
|| }|
 r |D ](}t|}|d d|d< || qt||dW W S tdddW W S ntdddW W S W nV tk
r } z6td t|d|t| tdt|i W Y W S d }~X Y nX W nD tk
r } z$td tt|dd W Y S d }~X Y nX d S )Npayment/paymentsInforowsr@   pager3   r,   r   )	paidBy_idZpaidBy__first_namepaidTopurposer   r8   createdDatez%d/%m/%Y %H:%M:%S)r  totalz"You do not have any Active ProgramFr  r  rI   r*   rJ   rJ   rD   )r   rK   r+   intr   r   rT   rW   rX   rY   rS   rZ   r   rQ   r   r
   r[   r   rI   r   r\   )r]   r^   r_   rb   r  r  offsettotr   r`   paymentsInfor  r   r   r   rh   ri   ri   rj   paymentsInformationB  sD    

$

,
r  c           
   
   C   s  t  }|| }d}t| jd}t|d z
|d kr:|d }|d }|D ]}|d dkr|d d krtjj	|dd	t
|d |d
 d}|  |d dkr|d d krtjj	||d dt
|d |d
 d}|  |d dkrR|d d krRtjj	|ddt
|d |d
 d}|  qRtd tdddW S W nD tk
r }	 z$td tt|	dd W Y S d }	~	X Y nX d S )Nr  r-   123r,   ZtrArrZstratfitchargesr   StratFitzPlatform Chargesrt   r  r  r  r   r8   Zcoachcharges	coachNamezCoach ChargesZ
servicetaxGovtService Taxzcame Into HereTTransaction SuccessfulrH   rI   Fr  )r   rK   rL   rM   rN   rO   rR   r   rT   rU   floatrV   r
   r[   r   rI   r\   )
r]   r^   r_   rb   r   r`   rY   r   transactionsrh   ri   ri   rj   saveTrasactionsm  sT    







r)  c              
   C   s.  t  }|| }d}t| jd}z|d kr|d }tjj|d d	d
ddd	d
d}|D ]}t|}|d }	d|kr|d dkr|d dkr|d dkr|d	 }
tjj|
d}|j}n|d }
tjj|
d}|j}n|d dkr|d
 }n|d }qf|d }qf||d  }|| d }|d }|| }|| | }|d }|| }tjj|ddt|t| t| |d d}|  tjj|ddt||d d}|  tjj||	dt||d d}|  tdddW S  tk
r( } z$td tt|dd  W Y S d }~X Y nX d S )!Nr  r-   r,   rC   r   r   createdBy_id__first_namer   indianIosPriceindianPriceiosPrice
deviceTyper@   iosuserCountryX   )inrgzG?g?g?r$  r%  rt   r"  zStratFit PlatFormCoachChargesTr&  rH   rI   Fr  )r   rK   rL   rM   rN   rO   r   rT   rX   rW   rY   r   r   r   usdr   rU   r'  rV   r
   r[   r   rI   r\   )r]   r^   r_   rb   r   r`   coachValr   coachObjr#  ZplanPriceValpriceMapr  Z
serviceTaxZstratfitPlatformZ	strfitTDSZstratfitNetZcoachRevenueZcoachTDSZcoachNetr(  Ztransactions1Ztransactions2rh   ri   ri   rj   ionicSaveTransactions  sv    

&



r8  c              
   C   s  t  }|| }d}t| jd}t|d zZtj	t
jt d}t|tddddd}g }d}d	}	d
}
d}d}d}t }d}ddg}t|dt dt }|| t }|tdtd d| }|t||d  |tdd
 d| }|t||d  |D ]&}d|  }|t||d  q|tdd
 d| d   }|t||d  |tdd
 d|	|
|||f }|t||d  |tdd
 d}|t||d  |tdd
 d}|t||d  |tdd d}|t||d  |tdd
 || d}t|d td d |d!g}t |d"}|!d#|" d$ |#  t$d%d&d'W S  t%k
r } z$t&'d( t$t(|d)d* W Y S d }~X Y nX d S )+Nzpayment/newpdfr-   r   z%Y_%m_%d_%H_%M_%S.pdfH      )ZpagesizeZrightMarginZ
leftMarginZ	topMarginZbottomMarginz.http://stratfit.net/assets/images/fulllogo.pngZ
Pythonista   z99.00z
03/05/2010ztin foil hatzMike Driscollz411 State St.zMarshalltown, IA 50158rw   ZJustify)name	alignmentz<font size=12>%s</font>ZNormalr3   z<font size=12>Dear %s:</font>r   a   <font size=12>We would like to welcome you to our subscriber base for %s Magazine! \You will receive %s issues at the excellent introductory price of $%s. Please respond by\%s to start receiving your subscription and get the following free gift: %s.</font>zL<font size=12>Thank you very much and we look forward to serving you.</font>z<font size=12>Sincerely,</font>0   z<font size=12>Ima Sucker</font>zadmin@stratfit.in1234565434566543456765434nothingzramakotisaikumar@gmail.comrbz
myfile.pdfzapplication/pdfzInvoice Sent to your MaiIdTr  rI   Fr  ))r   rK   rL   rM   rN   rO   rR   ospathjoinr   	MEDIA_URLr   r   rQ   r#   r!   timectimer&   r)   r   r'   addr(   r"   r$   r%   stripr   buildr	   openattachr   sendr
   r[   r   rI   r\   )r]   r^   r_   rb   r   	file_namedocZStorylogoZmagNameZissueNumZsubPriceZlimitedDateZfreeGiftZformatted_time	full_nameaddress_partsZimstylesptextpart
FROM_EMAILrJ   
attachmentrh   ri   ri   rj   newpdf  sr    






rX  c              
   C   s\  t  }|| }t| jd}z|d kr g }d| jkrZ| jd dkrZt| jd }nd}d| jkr| jd dkrt| jd }nd}|d | }|| }tj	
ddd	d
ddd}	t|	}
|	|| }|D ]}t|}|| qtd||
dW S tdddW S W nD tk
rV } z$td tt|dd W Y S d }~X Y nX d S )Nr-   r  r@   2   r  r3   r   paidBy_id__first_namer  r  r   r8   -createdDateT)rD   detailsr  FzUser Logged OutrH   rI   r  )r   rK   rL   rM   rN   rO   r+   r  r   rT   rW   rY   order_byrS   r   r   r
   r[   r   rI   r\   )r]   r^   r_   r   arrr  r  r  r  r(  r  rf   r   rh   ri   ri   rj   getTransactionsDetails+  s2    

 
r_  c           	   
   C   s   t  }|| }zp|d kr~tdd}d|d< tjddddd	d
d}t	|}|D ]}t
|}||d g qZ|W S W n6 tk
r } ztdt|i W Y S d }~X Y nX d S )Nztext/csv)content_typez-attachment; filename="transactionDetails.csv"zContent-Dispositionr   rZ  r  r  r   r8   r[  rJ   )r   rK   r   r   rT   rW   rY   r]  csvwriterr   writerowr[   r
   r\   )	r]   r^   r_   r   r   rb  rowZrowDatarh   ri   ri   rj   exportDetailsM  s    

 

re  c              
   C   s  t | jd}g }g }t }|| }|d }z|d krg }g }t }d|d  d |d  d }|| t	|}	t
|	d |	D ](}
t|
}||d	  ||d
  qtd||dW S tdddW S W nB tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nr-   r,   zSELECT sum(amount) as amount,DATE_FORMAT(createdDate, '%Y-%m-%d') as  createdDate from `payment_transactionhistory`  WHERE createdDate BETWEEN ' r~   z	 ' AND ' re   z0 ' group by DATE_FORMAT(createdDate, '%Y-%m-%d')kranthir  r   T)rD   dateArr	amountArrFNo datarH   r   rJ   )rL   rM   rN   rO   r   rK   r   cursorexecutedictfetchallrR   r   r   r
   r[   r   r   r\   )r]   r   rg  rh  r^   r_   r`   xqueryresultQueryrevrevObjrh   ri   ri   rj   revenueDetailsa  s0    



rr  c                    s&   dd | j D   fdd|  D S )z'Return all rows from a cursor as a dictc                 S   s   g | ]}|d  qS )r   ri   ).0colri   ri   rj   
<listcomp>  s     z dictfetchall.<locals>.<listcomp>c                    s   g | ]}t t |qS ri   )r   zip)rs  rd  columnsri   rj   ru    s   )descriptionfetchall)rj  ri   rw  rj   rl    s    
rl  c              
   C   s  t  }|| }|d }z|d krg }g }g }g }g }t }	dt| d }
t|
 |	|
 t|	}t|d |D ](}t|d t|}|d dkrd|d	< |d
 dkrd|d< |	| nt
|d |d< |	| t|d qz|d dkrJd|d	< |d
 dkr$d|d< |	| nt
|d |d< |	| t|d qz|d dkrzd|d	< |d
 dkrd|d< |	| nt
|d |d< |	| t|d qztd|||dW S tdddW S W nB tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nr,   aL  SELECT t1.amount, t3.planName, t2.status, t2.id, t2.freetrail, DATE_FORMAT(t2.startDate, '%d %b  %Y') AS startdate, DATE_FORMAT(t2.nextRenewalDate, '%d %b %Y') AS nextRenewalDate  FROM payment_transactionhistory t1 LEFT JOIN Userplan_userplan t2 ON t1.userplan_id=t2.id LEFT JOIN Plan_plan t3 ON t2.plan_id=t3.id WHERE t1.paidBy_id=z ORDER BY t2.startDate ASCrf  Zsarur9   r3   zActive ProgramZstar   z
free trailr   r   rw   zProgram CompletedZ11111ru   zFuture ProgramZ22333T)rD   activeZcompltedfutureFri  rH   r   rJ   )r   rK   r   rj  r\   rR   rk  rl  r   r   roundr
   r[   r   r   )r]   r^   r_   r`   rh  Z	activeArrZcompltedArrZ	futureArrZfreeArrrm  rn  ro  pgmrq  rh   ri   ri   rj   programdetails  s`    









r  c           
      C   s(  t | jd}t }z|| }|d }|dkrtjdj	||d d
ddddd	d
ddddd}| rg }|D ]2}t|}|d
 d|d
< t|d || qxtd|dW S tdddW S ntdddW S W nB tk
r" }	 z"td tdt|	i W Y S d }	~	X Y nX d S )Nr-   r,   r@   utility_exercise__id)r4   userplan_idexerciseWorkWeight	totalReps
exerciseIdexerciseId__exerciseNameexerciseDate
session_id	totalSets	intensityexerciseId__workFormular   z%d %B %YZsssT)rD   ZpragramdataFzNo Exercise detailrH   zNo Planr   rJ   )rL   rM   rN   rO   r   rK   r   rT   rW   rX   rY   rZ   r   rQ   rR   r   r
   r[   r   r   r\   )
r]   r   r^   r_   r`   ZuserpgmdataplanArrrf   r  rh   ri   ri   rj   PgmDataDetails  s(    
4

r  c                 C   s   t | jd}t|d  dddddd|d d	d
| jd  d d
| jd  d d
}tj|	d}tj
d| }t|}t| |d	d d }tjt|d }t|ddS )Nr-   r   r   r   r   r   r   r   r   r   r   r   z/#advsuccessr   r   r   r   Fr   r   r   ri   ri   rj   advpaypalAuthToken  s(    r  c                 C   sv   t | jd}ddddd|d |d d	|d
 dd
}tj|d}tj	d|
 }t|d tt|ddS r   r   r   ri   ri   rj   advdoCheckout  s     
r  c              
   C   sp   t | jd}ddddd|d |d d	d
d	}tj|d}tj	d|
 }t|d tt|ddS r   r   r   ri   ri   rj   advcheckPayment  s    
r  )_ra  rL   rB  	django.dbr   r   r   r   r   django.httpr   dateutil.relativedeltar   django.core.mailr	   r
   django.template.loaderr   r   django.views.decorators.cacher   pip._internal.req.req_installr   ImportErrorZpip.req.req_installrest_framework.decoratorsr   r   ZPlan.modelsr   r!  r   ZStratFit.settingsr   Subscriber.Authenticationr   r   r   Subscriber.modelsr   ZUserplan.modelsr   r   Zpayment.modelsr   r   r   r   urllib.parser   ZSubscriber.viewsr   Zutility.modelsr   utility.viewsr    Zreportlab.lib.pagesizesr!   rF  Zreportlab.lib.enumsr"   Zreportlab.platypusr#   r$   r%   r&   Zreportlab.lib.stylesr'   r(   Zreportlab.lib.unitsr)   rk   rp   r   r   r   r   r   r   r   r   r  r  r)  r8  rX  r_  re  rr  rl  r  r  r  r  r  ri   ri   ri   rj   <module>   s   

<

G

1

"

0 

 

(

,

D

E







6

