o
    H`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y[   d d
lmZ Y nw 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|v rtjj||d	 ||	d
d
d}|  |j}|d D ]Z}t	d tjddj|d dddddd}t	| d|v r|d dkr| r|d }nd}|d d krd}nd}t	|d |d }t||d |d}||_||_|  qgtdd|dW S W d S tdddW S  ty } ztd  t|||t| td!t|iW  Y d }~S d }~ww )"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loginUseridgprB   dtuserplanstatusZpayableamountZguseridZorderdete rj   uC:\Users\DELL\Desktop\soubhikg1894-stratfit-d75d91182fa3\soubhikg1894-stratfit-d75d91182fa3\services\payment\views.pycreateGymOrders*   sr   

(


&
rl   c                 C   s*   ||    }|dk r|d7 }| t|d S )Nr      r0   )weekdayr   )drn   
days_aheadrj   rj   rk   next_weekdayi   s   rq   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 ]}t|}|d }|d }tjj||ddgdd}| rt	d |D ]}t|}tjj|d d	}d|_|  qt	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 || | q_t!d!d"d#W S t!dd$d#W S  t"yJ }! zt#$d% t%|||t&|! t!d&t&|!iW  Y d }!~!S d }!~!ww )'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   nowrq   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}   ro   next_mondaynextMondayStrr~   userplanDetailsplaninfr   instanceSubsubjectto_emailctxrE   ri   rj   rj   rk   updategymorderso   s   











r   c              
   C   sJ  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}| rtd	 |D ]R}t|}|d td
d }|d}t d}||krtj	ddj
|d | d dddddd}d}qRtj	ddj
|d | d dddddd}qRnt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  ty$ } ztd t|||t| tdt|iW  Y d }~S d }~ww )Nr,   r-   zpayment/checkuserplanstatusFr2   rA   r4   rC   r~   ziam Hererm   r0   ry   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	todaydaterh   ZbeforeRenewalrg   r   r4   Z
userValuesri   rj   rj   rk   checkUserPlanStatus   sZ   
0
020

r   c                 C      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rurlrj   rj   rk   paypalAuthToken   (   r   c                 C   v   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   rj   rj   rk   
doCheckout      
r   c              
   C   p   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   	DoCaptureru   r   r   Complete	r   r   r   r   r   ZAUTHORIZATIONIDZAMTZCURRENCYCODEZCOMPLETETYPEr   secondFr   r   r   rj   rj   rk   checkPayment     
r   c                 C   s8  t  }|| }t| jd}|}d}z^|d krqt|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 d S  ty } ztd td||t| tdt|iW  Y d }~S d }~ww )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   ri   rj   rj   rk   r   0  sB   

r   c                 C   s  t  }|| }z|d krt| 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 < qa|}|d }|d dkr|d d krt|d d t|||||}t|W S tddddW S W d S  ty } ztd td t|iW  Y d }~S d }~ww )!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 tokenrx   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checkResponseri   rj   rj   rk   doCheckout1U  sV   






(
r   c           .      C   sf  ddddd| |ddd	}t j|d	}t jd
| }t|d |d	}|	d}	i }
|	D ]}|	d}|d |
|d < q1|
}t|d  |d dkrtd z+t
jj||dd}t|d | rR|dkrRtd d}d}t d}t }t|d}|d}|tdd }|d}|D ]
}t|}|d }qt
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 ]4}%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rttd; t
jj||dd&gd<d}+|+ rvdd=d>}*|*W S t
jj|d&d?j&d@dA t
jj|dd?d}tdB | rd&}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 ]4}%t|%}&t$jd(d)d*j|&d+ d!dd,d-d.d/d0d1d2d3d4
}'|'D ]}(t|(})qL|)|&d5< |$%|& q*tdG d6d7||$||d|dHddI}*|*W S tdJ ddKddL}*|*W S  t(y }- zt)|dMdNt*|- dt*|-ddL}*|*W  Y d }-~-S d }-~-ww tdO ddPd@dL}*|*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 DetailsFry   r/   r0   rs   r{   r   r   r   r   r   r   r   )r`   rv   )rw   	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   rw   zUserPlan Already ExistsrH   )r4   r9   rx   )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   rq   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}   ro   r   r   rd   r~   ZuplanidZupidZ
userPlanIdZ	renewPlanr   r   r   r   r   r   r   rE   PlanDetailsr
  rg   planObj	planInfosdtpplanInfoZresponseVal	planexistr   ri   rj   rj   rk   r     s  













4








4r   c           	   
   C   s  t  }z_|| }d}t| jd}z&|d kr2|d }tjj|d}|j	}	 t
d||dW W S t
ddd	W W S  tyb } ztd
 t|d|t| t
ddd	W  Y d }~W S d }~ww  ty } ztd
 t
ddd	W  Y d }~S d }~ww )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	planPriceri   rj   rj   rk   amountTobePaid  s0   


r  c              
   C   s  t  }z|| }d}z|d krd| jv r$| jd dkr$t| jd }nt}d| jv r:| jd dkr:t| 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< || qnt||dW W S tdddW W S tdddW W S  ty } ztd t|d|t| tdt|iW  Y d }~W S d }~ww  ty } ztd tt|ddW  Y d }~S d }~ww )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   ri   rj   rj   rk   paymentsInformationB  sL   
$

r&  c           
   
   C   s|  t  }|| }d}t| jd}t|d z|d kr|d }|d }|D ]g}|d dkrJ|d d krJtjj	|dd	t
|d |d
 d}|  |d dkrm|d d krmtjj	||d dt
|d |d
 d}|  |d dkr|d d krtjj	|ddt
|d |d
 d}|  q'td tdddW S W d S  ty }	 ztd tt|	ddW  Y d }	~	S d }	~	ww )Nr  r-   123r,   ZtrArrZstratfitchargesr   StratFitzPlatform Chargesru   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   transactionsri   rj   rj   rk   saveTrasactionsm  s\   




!
r0  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 ]R}t|}|d }	d|v r|d dkr|d dkro|d dkr`|d	 }
tjj|
d}|j}q1|d }
tjj|
d}|j}q1|d dkrz|d
 }q1|d }q1|d }q1||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y } ztd tt|dd W  Y d }~S d }~ww )!Nr  r-   r,   rC   r   r   createdBy_id__first_namer  indianIosPriceindianPriceiosPrice
deviceTyper@   iosuserCountryX   )inrgzG?g?g?r+  r,  ru   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transactions2ri   rj   rj   rk   ionicSaveTransactions  sz   
&



r?  c              
   C   s  t  }|| }d}t| jd}t|d z,t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%yf } zt&'d( t$t(|d)d*W  Y d }~S d }~ww )+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 50158rx   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_partsimstylesptextpart
FROM_EMAILrJ   
attachmentri   rj   rj   rk   newpdf  sv   






r`  c              
   C   sN  t  }|| }t| jd}zu|d krg }d| jv r,| jd dkr,t| jd }nd}d| jv rB| jd dkrBt| jd }nd}|d | }|| }tj	
ddd	d
ddd}	t|	}
|	|| }|D ]}t|}|| qjtd||
dW S tdddW S  ty } ztd tt|ddW  Y d }~S d }~ww )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   rg   r   ri   rj   rj   rk   getTransactionsDetails+  s6   
 
rg  c           	   
   C   s   t  }|| }z9|d kr?tdd}d|d< tjddddd	d
d}t	|}|D ]}t
|}||d g q-|W S W d S  ty[ } ztdt|iW  Y d }~S d }~ww )Nztext/csv)content_typez-attachment; filename="transactionDetails.csv"zContent-Dispositionr   rb  r  r  r   r8   rc  rJ   )r   rK   r   r   rT   rW   rY   re  csvwriterr   writerowr[   r
   r\   )	r]   r^   r_   r   r   rj  rowZrowDatari   rj   rj   rk   exportDetailsM  s"   

 
	rm  c              
   C   s  t | jd}g }g }t }|| }|d }zQ|d krcg }g }t }d|d  d |d  d }	 || t	|}	t
|	d |	D ]}
t|
}||d	  ||d
  qEtd||dW S tdddW S  ty } ztd tdt|iW  Y d }~S d }~ww )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   ro  rp  r^   r_   r`   xqueryresultQueryrevrevObjri   rj   rj   rk   revenueDetailsa  s6   



rz  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   rj   ).0colrj   rj   rk   
<listcomp>  s    z dictfetchall.<locals>.<listcomp>c                    s   g | ]	}t t |qS rj   )r   zip)r{  rl  columnsrj   rk   r}    s    )descriptionfetchall)rr  rj   r  rk   rt    s   
rt  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rsd|d	< |d
 dkr`d|d< |	| nt
|d |d< |	| t|d q;|d dkrd|d	< |d
 dkrd|d< |	| nt
|d |d< |	| t|d q;|d dkrd|d	< |d
 dkrd|d< |	| nt
|d |d< |	| t|d q;td|||dW S tdddW S  ty } ztd tdt|iW  Y d }~S d }~ww )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 ASCrn  Zsarur9   r3   zActive ProgramZstar   z
free trailr   r'  rx   zProgram CompletedZ11111rv   zFuture ProgramZ22333T)rD   activeZcompltedfutureFrq  rH   r   rJ   )r   rK   r   rr  r\   rR   rs  rt  r   r   roundr
   r[   r   r   )r]   r^   r_   r`   rp  Z	activeArrZcompltedArrZ	futureArrZfreeArrru  rv  rw  pgmry  ri   rj   rj   rk   programdetails  sf   








r  c           
      C   s  t | jd}t }za|| }|d }|dkrftjdj	||d d
ddddd	d
ddddd}| r^g }|D ]}t|}|d
 d|d
< t|d || q<td|dW S tdddW S tdddW S  ty }	 ztd tdt|	iW  Y d }	~	S d }	~	ww )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planArrrg   r  ri   rj   rj   rk   PgmDataDetails  s,   
4

r  c                 C   r   )Nr-   r   r   r   r   r   r   r   r   r   r   r   z/#advsuccessr   r   r   r   Fr   r   r   rj   rj   rk   advpaypalAuthToken  r   r  c                 C   r   r   r   r   rj   rj   rk   advdoCheckout  r   r  c              
   C   r   r   r   r   rj   rj   rk   advcheckPayment  r   r  )_ri  rL   rI  	django.dbr   r   r   r   r   django.httpr   dateutil.relativedeltar   django.core.mailr	   r
   django.template.loaderr   r   django.views.decorators.cacher   Z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!   rM  Zreportlab.lib.enumsr"   Zreportlab.platypusr#   r$   r%   r&   Zreportlab.lib.stylesr'   r(   Zreportlab.lib.unitsr)   rl   rq   r   r   r   r   r   r   r   r   r  r&  r0  r?  r`  rg  rm  rz  rt  r  r  r  r  r  rj   rj   rj   rk   <module>   s    

<


G
1


"
0 


 

(

,

D

E







6
