U
    ``6                    @   s  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 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 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%m&Z&m'Z'm(Z(m)Z) d dl*m+Z+ d dl*m,Z, d dl-m.Z.m/Z/ d dl0m1Z1m2Z2m3Z3 d dl4m5Z5m6Z6m7Z7 d dl8m9Z9m:Z: d dl;m<Z<m=Z=m>Z> d dl?m@Z@ d dlAmBZB d dlCmDZDmEZEmFZFmGZG d dlHmIZI d dlJZJe ddge!e1e2fed d! ZKe ddge!e1e2fed"d# ZLe ddge!e1e2fed$d% ZMe ddge!e1e2fed&d' ZNe ddge!e1e2fed(d) ZOe ddge!e1e2fed*d+ ZPed,d- ZQe ddge!e1e2fed.d/ ZRd0d1 ZSe ddge!e1e2fed2d3 ZTe ddge!e1e2fed4d5 ZUe ddge!e1e2fed6d7 ZVe ddge!e1e2fed8d9 ZWe ddge!e1e2fed:d; ZXe ddge!e1e2fed<d= ZYe ddge!e1e2fed>d? ZZe ddge!e1e2fed@dA Z[dBdC Z\dDdE Z]dFdG Z^e ddge!e1e2fedHdI Z_e ddge!e1e2fedJdK Z`e ddge!e1e2fedLdM Zae ddge!e1e2fedNdO Zbe ddge!e1e2fedPdQ Zce ddge!e1e2fedRdS Zde ddge!e1e2fedTdU ZedS )V    N)datechoice)relativedelta)make_password)EmailMultiAlternatives)
connection)Q)model_to_dict)HttpResponse)JsonResponse)render)render_to_string)never_cache)logger)api_viewauthentication_classes)CelebrityPlansLikes)PlanSelectedAbilities	PlanGoalsPlanCountry
GymCountry)
celeblikes)celebreviewList)PAGING_ROWSS3URL)SessionAuthenticationIsAuthenticatedStartFitSessionUtil)UserUserAddressOrganizationSocialProfile)OrganizationOrganizationAdress)UserPlanGymuserplansUserSets)exceptionMail)OrderDetail)PartnerTypeCountryPriceMappingPriceConversion)
officeMailGETPOSTc              
   C   s,  t  }|| }|d }t| jd}|}d}zt| |d krd|d  }t	j
j|dd}d|kr.td t	j
j|d d}	||	_|d	 |	_|d
 |	_|d |	_|d |	_|d |	_|	  tj
j|d d}
|d |
_|d |
_|d |
_|d |
_|d |
_|
  tdddW S td | rPtdddW S t	j
j||||d
 d}d	|kr|d	 dkr|d	 |_nd |_d|kr|d dkr|d |_nd |_d|kr|d dkr|d |_nd |_d|kr
|d dkr
|d |_nd |_d|kr4|d dkr4|d |_nd |_d|kr^|d dkr^|d |_ nd |_ |  tj
j|j!||d}d|kr|d dkr|d |_nd |_d|kr|d dkr|d |_nd |_d |kr|d  dkr|d  |_"nd |_"d!|kr"|d! dkr"|d! |_#nd |_#d|krL|d dkrL|d |_nd |_d|krv|d dkrv|d |_nd |_d|kr|d dkr|d |_nd |_|  t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-8startorg/creategym/ gymNamer5   +++++++++update+++++++++pkaboutGymgymTypenum_of_usersnum_of_trainers	fitbaseidZorgAdidcountrystatecityaddresslocationTz$Gym information updated successfullysuccessmessage+++++++++create+++++++++FzOrganization already exists)r5   	createdBy
modifiedByr;    phoneweburlsocialMediaDetails)organization_idrH   rI   	latitutde	longitudezGym Created Successfullyuser logged outerrormsg))r   get_user_insessionjsonloadsbodydecodeprintjoinsplitr#   objectsfiltervaluesgetr5   r:   r;   r<   r=   r>   saver$   r?   r@   townrB   rC   r   existscreaterK   webUrlrM   r1   rO   rP   	Exceptionr   rR   r(   str)requeststratsessionutilusernameuserdatarequrlZgymName1ZexistingDetailsgym	gymAdress
gymDetails	orgAdresse rs   4/var/www/html/services/StratFitOrganization/views.py	createGym*   s    














ru   c              
   C   s  t  }|| }|d }t| jd}|}d}z|d kr8|d }|d }t| d|krhd|d kr|d d d	krtjj	|d d d
}	|	
 rtdddW S tjj|d d}
|dkr d|d kr|d d d	kr|d d |
_d|d kr |d d d	kr |d d |
_|d d |
_|d d |
_|d d |
_d|
_|
  tdddW S d|krd|kr(|d d	kr(|d d kr(tjj	|d d}|
 rtjj|d d}|d |_|  tdddW S tjj|d |d d}|  tdddW S nztjj	|d d
}|
 rNtdddW W S tjj|||d |d |d d|d }
|dkrd|kr|d d	kr|d |
_d|kr|d d	kr|d |
_n.|d!krtjj|d"}d#|
_|j|
_nd#|
_d$|kr|d$ d	kr|d$ |
_nd |
_d|kr@|d d	kr@|d |
_nd |
_|
  tjj|
jd"}tjj|
jd
}d	d%d& tdD }|jd' t| }t|d(}| j d) }d*| d+ |d }d,}|j}|j||j!t|d-}t"d.|}t#||| ||_$t||_%|  W n: t&k
rR } ztt|dd/ W Y W S d }~X Y nX d0|kr(|d0 d	kr(|d0 d kr(tjj	|
j'd}td1 zH|
 rtjj|
j'd}|d0 |_ntjj|
j'|d0 d}|  W nL t&k
r& } z,t(|||t| tt|dd/ W Y W S d }~X Y nX tdd2dW S tdd3dW S W nT t&k
r } z4t)*d4 t(|||t| td5t|i W Y S d }~X Y nX d S )6Nr1   r2   zstartorg/createuser/organizationuserTypeZeditidemailZupuserrJ   rx   TzEmail Exists rD   r8      usertypeuseraddZfNameZlNamerK      zUser Updated successfully Z	userUnqIdplaniduser_idProgram assigned successfullyr   plan_idFzEmail Already Exists
first_namer   )createdBy_idmodifiedBy_idr   rx   ri   	is_activerN   	   r1      	last_namec                 s   s   | ]}t d V  qdS )Z0123456789ABCDEFNr   ).0irs   rs   rt   	<genexpr>   s     zcreateUser.<locals>.<genexpr>#ascii	HTTP_HOSThttp://z/#/accountvalidate/zSet Password)r   linkr5   randzgymuserverification.html)safeplanz	came HErez<p>User Created Successfully.</p><br> <p>Activation mail sent to the given mail Id.</br></p><br>  <p>* User will be activated after the user activates his/her account from the email sent.</br></p> rQ   rR   rS   )+r   rT   rU   rV   rW   rX   rY   r    r\   r]   rb   r   r_   rw   organizationAddress_idr   r   rK   r   r`   r&   r   rc   r#   rN   rx   rZ   rangerf   base64	b64encodeencodeMETAr5   r   r.   
secretCodeotpre   r1   r(   r   rR   )rg   rh   ri   rj   userInforl   rm   orgIdrw   Z
userExistsuserInformationexistinguserplanupdateuserplancreateuserplanZexistingusersr|   ZorgnameinstanceSub
randomCodesecret_code_plainsecret_code_encodevalidateLinkr   subjectto_emailctxrF   rr   rs   rs   rt   
createUser   s    



 
&










(&
(
r   c              
   C   s0  t  }|| }|d }t| jd}|}d}z|d krt| |d }|d D ]^}|d }	tjj	|	d
d}
|
 rtjj|	d}||_|  qTtjj|	|d}|  qTt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 )Nr1   r2   zstartorg/assignplanstousers/r   selectedUsersr   r   Tr   rD   FrQ   rR   rS   )r   rT   rU   rV   rW   rX   rY   r&   r\   r]   r^   rb   r_   r   r`   rc   r   re   r   rR   r(   rf   )rg   rh   ri   rj   pInforl   rm   r   dtuseridr   r   r   rr   rs   rs   rt   assignPlanstoUsers"  s8    



r   c                 C   s.  t  }|| }|d }d}d}z|d }t| jd |d krt| jd}d|kr~|d dkr~t|d }t| nt}d	|kr|d	 dkrt|d	 }	t|	 nd
}	|	d
 | }
|	| }|d dkrt	j
j|d
|d dddddddddddddjdd}n8t	j
j|d
dddddddddddddjdd}t }t|}||
| }|D ]F}t|}d|d< tj
dj|d dd d!d"}| rR|D ]}t|}|d" td#d$ }|d%}t d%}||krd&|d< nd|d< |d  d
ks|d  d'kr<|d! |d(< |d" d%|d)< nd|d(< d|d)< qnd|d(< d|d)< tj
dj|d ddd*d!d+d,d-d.d/d0	}| r|D ]b}t|}|d |d1< |d+ |d2< |d/ |d3< |d0 |d4< |d! |d5< |d, |d6< |d- |d7< qn8d|d1< d|d2< d|d3< d|d4< d|d5< d|d6< d|d7< tj
j|d dd}| rhd&|d8< nd|d8< tj
j|d d9d:}| rd;|d<< nd=|d<< || qht||d>W S tdd?d@W S W nT tk
r( } z4t dA t!|||t"| tdBt"|i W Y S d }~X Y nX d S )CNr1   r/   zstartorg/userDetails/rv   12345678r2   rowsrJ   pager}   rw   r   organizationAddress)rN   r   r   ri   rx   r   middle_namer   rK   r   rH   r   -idrw   rN   r   rz   FpaymentsPlan__idr   statusplan_id__planNamenextRenewalDater   days%Y-%m-%dT   ZupexistsrenewalDater   plan_id__priceplan_id__proposedStateplan_id__royaltyr   plan_id__iosPriceplan_id__iosStatusexistingPlanid	planpriceiosPrice	iosStatusexistingPlanNameproposedStateroyaltyZuserWorkout
forUser_idtotalAmountZPaidZpaymentMadeFreer   totalUser logged outrD   something wrongrS   )#r   rT   rY   rW   rU   rV   rX   intr   r    r\   r]   r^   order_byexcludelistlendictr%   select_relatedrb   r   strftimer   todayr&   r'   r)   appendr   re   r   	exceptionr(   rf   )rg   rh   ri   rj   rl   rm   r   r   r   r   offsettotusersdataArrr   rk   r   dataObjuplansZuplZexplansoneweekbeforeoneweek	todaydateplanDetailsvalvalueZuserssetDetailsZpaymentvaluesrr   rs   rs   rt   userDetailsh  s    



@8
"



.





r   c                 C   sR  t  }|| }|d }d}d}z|d }|d krd| jkr^| jd dkr^t| jd }nt}d| jkr| jd dkrt| jd }nd}|d | }	|| }
tjj|dd	dd
dddddd	dj
dd}t }t|}||	|
 }|D ]}t|}d|d< tjj|d dddd}| r|D ]}t|}t|d d d |d< |d tdd }|d}t d}||krd|d< nd|d< |d dkr|d d|d< nd|d< q2nd|d< d |d< tjj|d d!d}| rd|d"< nd|d"< tjd#d$j|d ddd%d&d'd(d)d*d+d,d-
}| r|D ]}t|}|d% |d.< |d' |d/< |d, |d0< |d- |d1< |d+ |d2< |d& |d3< |d( |d4< |d) |d5< |d* |d6< || qNqt||d7W S tdd8d9W S W nT tk
rL } z4td: t|||t| td;t|i W Y S d }~X Y nX d S )<Nr1   r/   zstartorg/paymentDetails/rv   r   rJ   r   r}   r   ri   rx   r   r   r   rK   r   r   rz   r   Fr   r   r   r   irenewalr   r   r   Tr   zPlan Transitionr   Z	freeusersr   User__idr   r   r   r   r   Z'plan_id__originalPlanner_id__first_nameZplan_id__originalPlanId__pricer   r   r   r   r   r   ZoriginalPlanpricer   r   r   	coachNamer   r   rD   r   rS   )r   rT   r0   r   r   r    r\   r]   r^   r   r   r   r   r   r%   rb   rf   r   r   r   r   r)   r&   r   r   r   re   r   r   r(   )rg   rh   ri   rj   rl   rm   r   r   r   r   r   r   r   r   rk   r   r   	userPlansZuplanr   r   r   r   Zpaymentusersr   r   r   rr   rs   rs   rt   paymentDetails  s~    

2






2
r   c           F      C   s  t  }|| }|d kr"|d }nd}zt| jd}d|krd|d dkrdtjj|d d}n&|d kr|tjj|d}ntjjdd}t	jj
|d d	d
ddddddddddddjdd}t }g }g }	tjjd	d}
|
j}|D ]}t|}g }tjj|d d}|j}tjj
|d dddddddddd}|D ]Z}t|}|d }tjj
|d }|D ]}t|}|d |d< qp|| ||d < qFtjj|d}|d }|j}t|d! |d }g |d"< t|d d#  t|d d#   t| d$ t| |d%< |d dks4|d d kr>d&|d'< nt|d  |d'< |d dksj|d d krtd(|d)< nt|d  |d)< tjj
|d d	d*djdd+}t|}||d,< tjj
|d dd-dd.d/}d0|krF|d0 d1krFtjd2d3j
|d d	d	d	d4dd5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJd5}nVtjd2d3j
|d d	d	dKdd5d6d7d8d9d:d;d<d=d>d?d@dAdBdCdDdEdFdGdHdIdJd5}i }dL|dM< g } |  r dN}!|D ]\}"t|"}#|#d5 dO t|#d  }$t!"|$#dP}%t|%$dQ}&|&d	 |#dR< t%|#d }'t&|#d }(|'|#dS< |(|#dT< t'jj
|#d d	dU( })t'jj
|#d dVjdWdXjddY( }*|)|#dZ< |*|#d[< d|#d\< d|#d]< d|#d^< d|kr\|d d kr\|d dkr\t'jj
|#d |d d	d_ }+|+  rd	|#d\< t'jj
|#d |d d` },|,  r\d	|#d]< |,D ]6}-t|-}.|.d^ dkr$|.d^ d kr$|.d^ |#d^< q$d|kr|d dkrt)jd2j
da|d db }/|/  r|/D ]}0t|0}1|1d |dM< qdW}!t*jj
|#d dV }2|2D 	] }3t|3}4|4dc dak
r|#d; dd |#d<  |#de< |#d7 |#df< d0|kr
|d0 d1kr
|j+dgkr|dM dakrf|#dI |#d7< |#d7 |#df< n|#dE |#d7< t,|#d7 dkrdh|#d7< nz|dM dakrt-j j
|#dI di}5nt-j j
|#dE di}5|5D ]}6t|6}7|7dj }8q|8|#d7< t,|#d7 dkrdh|#d7< nt,|#d7 dkr&dh|#d7< n|j+dgkr|dM dakrft.|#dH t/| |#d7< |#d7 |#df< n$t.|#d7 t/| |#d7< |#d7 |#df< n4|dM dakr|#dH |#d7< |#d7 |#df< n|#d7 |#d7< t/|#d7 dkrdh|#d7< t0jdkj
|#d dVdl}9d}:|9D ]};t|;}<|:dm|<dl  7 }:q |:dkr8|:d	d  }=nd}=|#d6 dn t|= do |#d6< |#dA dpkst|#dA dqkrtjj|#d: d}>t|#d6 dr tt|>j1dd t|>j2  ds |#d6< nFtjj|#dD d}?t|#d6 dr tt|?j1dd t|?j2  ds |#d6< t3jdtj
|#d dVdu}@d}A|@D ]};t|;}<|Adm|<du  7 }A	q(|Adk	r`|Ad	d  }Bnd}B|#d? |#dv< |#d= |#dw< |B|#dx< |=|#dy< |#d: |#dz< t4jj
|d dVd{5 ( }C|C|#d|< |#dA d}k	rt|#dB dd t|#dC  |#d~< |#d@ d k	
rt|#d@  |#d@< |#dG d k	
r*t|#dG  |#dG< |#d? dk
rJd|#dv< d|#d< n>|#d? dk
rjd|#dv< d|#d< n|#d? dk
rd|#dv< d|#d< | |# q|#d; dd |#d<  |#de< |#d7 |#df< d0|kr|d0 d1kr|j+dgkr"|dM dak
r|#dI |#d7< n|#dE |#d7< t,|#d7 dkrdh|#d7< nz|dM dakrHt-j j
|#dI di}5nt-j j
|#dE di}5|5D ]}6t|6}7|7dj }8qb|8|#d7< t,|#d7 dkrJdh|#d7< nt,|#d7 dkrdh|#d7< n|j+dgkr|dM dakrt.|#dH t/| |#d7< nt.|#d7 t/| |#d7< n(|dM dakr$|#dH |#d7< n|#d7 |#d7< t/|#d7 dkrJdh|#d7< t0jdkj
|#d dVdl}9d}:|9D ]};t|;}<|:dm|<dl  7 }:qp|:dkr|:d	d  }=nd}=|#d6 dn t|= do |#d6< |#dA dpks|#dA dqkr,tjj|#d: d}>t|#d6 dr tt|>j1dd t|>j2  ds |#d6< nFtjj|#dD d}?t|#d6 dr tt|?j1dd t|?j2  ds |#d6< t3jdtj
|#d dVdu}@d}A|@D ]};t|;}<|Adm|<du  7 }Aq|Adkr|Ad	d  }Bnd}B|#d? |#dv< |#d= |#dw< |B|#dx< |=|#dy< |#d: |#dz< t4jj
|d dVd{5 ( }C|C|#d|< |#dA d}kr^t|#dB dd t|#dC  |#d~< |#d@ d k	rx|#d@ |#d@< |#dG d k	r|#dG |#dG< |#d? dkrd|#dv< d|#d< n>|#d? dkrd|#dv< d|#d< n|#d? dkrd|#dv< d|#d< |	|# q|!dWkr| |d"< n|	|d"< qng |d"< |  rZ|D ]}t|}D||D q6||d< ng |d< d|kr|d dkrtjj|d d}|j+|d< || qt6t7|W S  t8k
r }E z"t9:d t;dt|Ei W Y S d }E~EX Y nX d S )Nr1   r   r2   r   rJ   r   rz   ZOrgNamer}   )r5   r   r5   r<   r=   r:   r   logo
coverImagerd   rK   r;   r   r   rN   r@   r?   rO   rP   rC   rB   namecountryNameZorgAddrZsfsfplans   z#000ZgymID*http://stratfit.net/assets/images/logo.pnglogo1)http://stratfit.net/assets/images/SF1.jpgcover1r   r   Znum_of_Database_users
socailNamerN   	socialUrl
deviceTypeiosr   Organization__id)createdBy_id__organization_id
planStatusr   activationStatusplanNameplanDescriptionpriceabilitycreatedBy_id__avatarr   createdBy_id__first_namecreatedBy_id__last_nameplanGoal__goalNameduration_weeksprogramType_id__programTypeName	planPhotolicencePolicyZoriginalPlanner_id__first_nameZoriginalPlanner_id__last_nameoriginalPlanner_idr   r   planLogoindianPriceindianIosPriceprogramType_id)r  r  r     userCountryFr   r   '
encodedurl	planlikesplanreviews)r   r   )r   T)reviews__isnull)reviews__exactplanlikesCountreviewsCountceleblikedPlancelebreviewPlanreviews)r   r   r   )r   r   X   r?   r   
country_idr4   r   	planPriceINRr   )inrusdPlanPurposesplanGoal_id__GoalNamez, z<br><br><font><b>Purposes:</b> z</font>3zWhite-Labelz<br><h6>Copyright &copy; 2017 z. All rights reserved.</h6>PlanAbilitiesability_id__abilityplanTypeplanGoalplanPurpose
plan_goalscoachIdr   	planUserszCo-BrandoriCoachNameSTARTERBeginnerSptypeINTERMEDIATEIntermediateIADVANCEDAdvancedAsocialluctyper   rS   )<r   rT   rU   rV   rW   rX   r    r\   r_   r#   r]   r^   r   r   r   r-   inrValuer   r*   partnerTypeCoder$   r+   r   r   rY   rf   upperr   r   r"   r   r   rb   r   r   r   r[   r   r   r   countr!   r   currencyTyper   r,   roundfloatr   r   r   r   r%   distinctr   dumpsre   r   r   r   )Frg   rh   ri   rj   rk   userCurrency	gymvaluesr   ZSocialMediaArrZPlanArrcurrencyValuesrF  r   r   rB   partnerTypeZpartnerCodeZorgAddorgorgObjZ
orgCountryZcountryVal1ZcntrycntryObjZ
countryValZorgStater   ZidValr   r<   socialDetailsZgymPlansZIndianPlanArrindiar   r   r   r   
encodedValclelebLikescelebReviewsplalikescountreviewscountcelebplanlikescelebplanreviewscelbdtcelbObj	countryIDconconObjindianPlansinpinpObjusdValuer-  usdObj	dollarValplanPurposesValpurposesr   valObj	planGoalspartnerNamer   planAbilityValabilitieslistsplanAbilitiesdownloadUsersr^   rr   rs   rs   rt   rp     s   

<
,

@

"ZV

&&







64
  





64
  







rp   c              
   C   s   zPt jddddddjdd}t }|D ]}t|}|| q*tt	|W S  t
k
r } z"td	 td
t|i W Y S d }~X Y nX d S )Nr5   r1   r<   r=   r:   r   r}   )r   r   rS   )r#   r\   r^   r]   r   r   r   r   rU   rN  re   r   r   r   rf   )rg   rP  r   r   r   rr   rs   rs   rt   gymDetails1U  s    
rs  c                 C   sZ  t  }|| }|d }d}d}zd| jkrJ| jd dkrJt| jd }nt}d| jkrv| jd dkrvt| jd }nd}|d | }|| }	tjdd	d
dddddddddddddd	ddddd	d}
t
|
}|
||	 }t }|D ]}t|}|| qt||dW S  tk
rT } z"td tdt|i W Y S d }~X Y nX d S )Nr1   r/   zstartorg/gymValues/r   rJ   r   r}   r  organization_id__gymTypeZorganization_id__coverImageZorganization_id__logoorganization_id__gymNameorganization_id__idorganization_id__num_of_usersZorganization_id__fitbaseid organization_id__num_of_trainersorganization_id__aboutGymorganization_id__statusr?   r@   ra   rB   rK   rC   r   r   r   rS   )r   rT   r0   r   r   r$   r\   r   r^   r   r   r   r   r   r   re   r   r   rf   )rg   rh   ri   rj   rl   rm   r   r   r   r   rP  r   rk   r   r   r   rr   rs   rs   rt   	gymValuesb  s2    
@
r{  c                 C   s:  t  }zt| jd}t| d|krF|d dkrFt|d }nt}d|krl|d dkrlt|d }nd}|d | }|| }d|  krdkrtn ntj	
ddd	d
ddddddddddddddd}d|d kr
|d d dkr
|j|d d d}d|d kr>|d d dkr>|j|d d d}d|d kr|d d dkr|j|d d d}n8tj	
ddd	d
ddddddddddddddd}t|}||| }	t }
|	D ]}t|}|
| qt|
|dW S  tk
r4 } z"td tdt|i W Y S d }~X Y nX d S ) Nr2   r   rJ   r   r}   Zgyminfor  ru  rv  rw  rx  ry  rz  r?   r@   ra   rB   rK   rt  rC   r1   r   Zgymname)Z%organization_id__gymName__istartswithZno_trainers)Z+organization_id__num_of_trainers__icontainsZno_users)Z(organization_id__num_of_users__icontainsr   r   rS   )r   rU   rV   rW   rX   rY   r   r   r$   r\   r   r^   r   r]   r   r   r   r   r   re   r   r   rf   )rg   rh   ZgymDatar   r   r   r   rP  r   Zgymdatar   r   r   rr   rs   rs   rt   	gymSearch  s>    8   8
r|  c              
   C   s>  t  }|| }|d }t|d  d}d}z|d krtjddddddj|d	d	d
}t }|D ]}t|}	|	|	 qbtjddddddj|d	d	d	d}
t }|
D ]}t|}	|	|	 qt
d||dW S t
dddW S W nT tk
r8 } z4td t|||t| t
dt|i W Y S d }~X Y nX d S )Nr1   r/   zstartorg/userplanDetails/r	  r  r   r   r   r}   )r   r  r  )r   r  r   r  T)rE   ZownplansproposedplansFr   rD   r   rS   )r   rT   rY   r   r\   r^   r]   r   r   r   r   re   r   r   r(   rf   )rg   rh   ri   rj   rl   rm   
planValuesr   r   r   r}  ZproposedplansArrrr   rs   rs   rt   userplanDetails  s0    
"$
r  c              
   C   s  t  }|| }|d }d}d}zt|d d |d krtjdjdddd}t| | rt	 }|D ]}t
|}	||	 qntt|W S t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 )Nr1   r/   zstartorg/gymplanDetails/Z1234567ur    r   )Z#originalPlanner_id__organization_idr	  zNo Plans AvailableFr   rD   r   rS   )r   rT   rY   r   r\   r   r]   r^   rb   r   r   r   r   rU   rN  r   re   r   r   r(   rf   )rg   rh   ri   rj   rl   rm   gymplansr   r   r   rr   rs   rs   rt   gymplanDetails  s,    

r  c                 C   s  t  }|| }|d }t| jd}|}d}zt|d  d}|d kr4|d dkr`d}tjj	|d d
d	dd
dddddd	}t }	|D ]}
t|
}||d< g }tjj	|d d
dddddddddd
}tjj|d d}|j}||d< |D ]}t|}|| ||d< q|	| qtt|	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 ) Nr1   r2   zstartorg/gymProfile/Frw   rz   Tr   r5   r<   r=   r:   rK   rd   r   r   gymsuperUserr   r?   r@   ra   rB   rO   rP   rC   rH   ordAdressIdr   rD   r   rS   )r   rT   rU   rV   rW   rX   rY   r#   r\   r]   r^   r   r   r$   r    r_   r   r   r   rN  r   re   r   r   r(   rf   )rg   rh   ri   rj   rk   rl   rm   r  rP  r   r   r   rB   Z
gymAddressZuserAddrressr  addZaddObjrr   rs   rs   rt   
gymProfile  sB    

(*


r  c           	   
   C   sR  t  }|| }|d }t| jd}|}d}zt|d  t| |d krtjj	|d d}|d |_
|d |_|d |_|d |_|d	 d krd
|d	 kr|d	 |_qd
|d	  |_nd |_|d |_|  tdddW S tdddW S W nT tk
rL } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr1   r2   zstartorg/updategymdetails/r8   r   aboutr<   r=   rL   r   rK   Tz Gym profile updated successfullyrD   Fr   r   rS   )r   rT   rU   rV   rW   rX   rY   r#   r\   r_   r5   r:   r<   r=   rd   rK   r`   r   re   r   r   r(   rf   )	rg   rh   ri   rj   rk   rl   rm   rP  rr   rs   rs   rt   updategymdetails	  s8    






r  c              
   C   s  t  }|| }|| }|d }t| jd}|}d}z|d }	|d krt|d t|d }
t|
D ]*}d|d | kr|d | d }t|d |d | d }d	|d | d
 kr|d | d
 }nd	|d | d
  }t	j
j|d}td ||_||_|  qnd|d | krntd |d | d }d	|d | d
 krf|d | d
 }nd	|d | d
  }t	|	|d}||_||_|  qntd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 )Nr1   r2   zstartorg/socialmediainfo/rv   1234567	socialinfz----------------r  r   r  r8   z-----update socialz-----create social01)rN   r   Tz+User Social Information Saved Successfully rD   FrQ   r   rS   )r   rT   rU   rV   rW   rX   rY   r   r   r"   r\   r_   r  r  r`   r   re   r   r   rf   )rg   rh   ri   r1   rj   r   socInforl   rm   r   	rangeDatar   
socialtyper  dupsocailinf	socialurl	socailinfrr   rs   rs   rt   socialmediainfo-  sV    






r  c           
   
   C   s   t  }z|| }|d }|d }|d krvtjdddddj|d}g }|D ]}t|}|| qNtd|d	W S td
ddW S W n@ t	k
r }	 z"t
d tdt|	i W Y S d }	~	X Y nX d S )Nr1   rv   r   rN   r  r  r   T)rE   
socialinfoFrQ   rD   r   rS   )r   rT   r"   r\   r^   r]   r   r   r   re   r   r   rf   )
rg   rh   rj   r   r   ZorgsocialinfZorgsocialArrsdt	socailObjrr   rs   rs   rt   getorgsocialmediainfob  s     

r  c           
   
   C   s   t  }|| }|d }t| jd}|}d}zj|d }|d krt||d tjj	|d}|d |_
|  t|j
 tdd	d
W S tddd
W S W nR tk
r }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )Nr1   r2   zstartorg/uploadlogo/rv   in Herer   imageTImage Uploaded SuccessfullyrD   FrQ   r   rS   )r   rT   rU   rV   rW   rX   rY   r#   r\   r_   r   r`   r   re   r   r   r(   rf   
rg   rh   ri   rj   rk   rl   rm   r   	picUploadrr   rs   rs   rt   
uploadlogox  s(    



r  c           
   
   C   s   t  }|| }|d }t| jd}|}d}zf|d }|d krtd tjj	|d}|d |_
|  t|j
 tdd	d
W S tddd
W S W nR tk
r }	 z4td t|||t|	 tdt|	i W Y S d }	~	X Y nX d S )Nr1   r2   zstartorg/uploadCover/rv   r  r   r  Tr  rD   FrQ   r   rS   )r   rT   rU   rV   rW   rX   rY   r#   r\   r_   r   r`   r   re   r   r   r(   rf   r  rs   rs   rt   uploadCover  s(    



r  c           
   
   C   s   d}t | jd}|}d}zjtjj|d ddd}t| |	 r|t
 }|D ]}t|}|| qTtt |W S tdW S W nR tk
r }	 z4td	 t|||t|	 td
t|	i W Y S d }	~	X Y nX d S )NNULLr2   zstartorg/gymLogo/OrgIdr   r   r1   No Images Availabler   rS   rU   rV   rW   rX   r#   r\   r]   r^   rY   rb   r   r   r   r   rN  re   r   r   r(   rf   r   
rg   rj   rk   rl   rm   r  r   r   r   rr   rs   rs   rt   gymLogo  s$    
r  c           
   
   C   s   d}t | jd}|}d}zjtjj|d ddd}t| |	 r|t
 }|D ]}t|}|| qTtt |W S tdW S W nR tk
r }	 z4td	 t|||t|	 td
t|	i W Y S d }	~	X Y nX d S )Nr  r2   zstartorg/gymcover/r  r   r   r1   r  r   rS   r  r  rs   rs   rt   gymcover  s$    
r  c                 C   s  t | jd}|}d}z0t| tjj|d dddd}t	jj
|d d	}|j}|D ]L}t|}|d d
krtddd  W S |d dkr^tddd  W S q^tjjdd|d |d |d |d t|d |d
d	}	d|kr|d dkr|d |	_nd |	_d|kr0|d dkr0|d |	_nd |	_|	  tdddW S  tk
r }
 z4td td||t|
 tdt|
i W Y S d }
~
X Y nX d S )Nr2   zstartorg/gymrequests/rx   ry   rw   rN   r   rv   r6   r   FzRequest Already SentrD   r}   TzUser already existsrJ   r   pword)	r   r   rw   r   rx   ri   passwordrN   r   r   rK   zRequest sent to the GymrR   1rS   )rU   rV   rW   rX   rY   r    r\   r]   r^   r#   r_   r1   r   r   rc   r   r   rK   r`   re   r   rR   r(   rf   )rg   r   rl   rm   ZexistingUsersorgValr   r   r^   r   rr   rs   rs   rt   gymrequests  sJ    

r  c                 C   s~  t  }|| }|d }d}d}z|d }|d krd| jkr^| jd dkr^t| jd }nt}d| jkr| jd dkrt| jd }nd}|d | }	|| }
tjj|d	d
d dddddddddd	}t	 }t
|}||	|
 }|D ]}t|}|| qt||dW S tdddW S W nT tk
rx } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr1   r/   zstartorg/gymRequestsDetails/rv   r   rJ   r   r}   r   r   )rN   r   rw   r   ri   rx   r   r   r   rK   r   r   r   Fr   rD   r   rS   )r   rT   r0   r   r   r    r\   r]   r^   r   r   r   r   r   re   r   r   r(   rf   )rg   rh   ri   rj   rl   rm   r   r   r   r   r   r   r   r   rk   r   r   rr   rs   rs   rt   gymRequestsDetails  s:    

*
r  c              
   C   s0  t  }|| }|d }t| jd}|}d}z|d }|d krt|d }t|D ]F}	t|d |	 d  t	j
j|d |	 d d}
d|
_||
_|
  qXt|d d d  t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 )Nr1   r2   startorg/acceptrequests/rv   r   r   r}   r   TzRequest accepted successfullyrD   Fr   r   rS   )r   rT   rU   rV   rW   rX   r   r   rY   r    r\   r_   r   r   r`   r   re   r   r   r(   rf   )rg   rh   ri   rj   rk   rl   rm   r   r  r   ZacceptingRequestsrr   rs   rs   rt   acceptrequests(  s.    


r  c              
   C   sH  t  }|| }|d }d}d}z|d krg }g }g }tjjdd }	|	 rt|	D ]}
t|
}||d  qXtjt	dd  }| r|D ]}t|}||d  qd}t
jdjd|d	 }| r|D ]}t|}|d
 |d< qd}|dkr$tj jddjd|d}ntj jddjd|d}|D ]}t|}|d dksl|d d krvd|d< nt|d  |d< |d dks|d d krd|d< nt|d  |d< || qDtdd|dW S tdddW S W nT tk
rB } z4td t|||t| tdt|i W Y S d }~X Y nX d S )Nr1   r/   r  r'  )r)  gym_idFr   r(  r?   r  Tr}   r   )r   id__inr   rJ   r   r   r   r   r   zGym Details)rE   rF   r{  r   rD   r   rS   )r   rT   r   r\   r]   r^   rb   r   r   r	   r!   r   r#   r   r   r   re   r   r   r(   rf   )rg   rh   ri   rj   rl   rm   r   Z	indiaGymsZ	otherGymsZ
indianGymsr   rl  ZotherGymValuesval1valObj1rW  ra  rb  rc  Zgymvalrn   ZgymObjrr   rs   rs   rt   gymListsE  sZ    





r  c           
   
   C   s  t  }|| }|d }t| jd}|}d}zt| |d kr@d|krtd tjj	|d d}|d |_
|d |_|d |_|d	 |_|d
 |_|d |_|d |_|d |_|d |_|  tdddW S td tjj|d |||d d}d	|kr$|d	 dkr$|d	 |_nd t_d|krN|d dkrN|d |_nd t_d|krx|d dkrx|d |_nd t_d|kr|d dkr|d |_nd t_d
|kr|d
 dkr|d
 |_nd |_d|kr|d dkr|d |_
nd |_d|kr |d dkr |d |_nd |_|  t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 )Nr1   r2   zstartorg/gymAddressEdit/r7   r8   r?   r@   rB   ra   rC   rO   rK   rP   r   Tz Gym Address updated successfullyrD   rG   r   )rN   rH   rI   r   rJ   zGym Address added succesfullyFrQ   rR   rS   )r   rT   rU   rV   rW   rX   rY   r$   r\   r_   r?   r@   rB   ra   rC   rO   rK   rP   r   r`   r   rc   rp   re   r   rR   r(   rf   )
rg   rh   ri   rj   rk   rl   rm   ro   rq   rr   rs   rs   rt   gymAddressEdit|  st    











r  c                 C   s   t  }|| }|d }t| jd}|}d}z`t| |d krtjj	|d d
ddddd	d
dddd
}|D ]}t|}	qrtd|	dW S W nR tk
r }
 z4td t|||t|
 tdt|
i W Y S d }
~
X Y nX d S )Nr1   r2   r3   r   r?   r@   rB   rC   rO   rP   ra   rK   r   TrE   detailsrR   rS   )r   rT   rU   rV   rW   rX   rY   r$   r\   r]   r^   r   r   re   r   rR   r(   rf   )rg   rh   ri   rj   rk   rl   rm   orgAdressInfrS  rT  rr   rs   rs   rt   getGymAddress  s"    
*

r  c           
      C   s   t  }|| }|d }d}zf|d krg }tjj|d dddddd	d
dddd
}|D ]}t|}|| qXtd|dW S W n@ t	k
r }	 z"t
d tdt|	i W Y S d }	~	X Y nX d S )Nr1   r3   rv   r   r?   r@   rB   rC   rO   rP   ra   rK   r   Tr  rR   rS   )r   rT   r$   r\   r]   r^   r   r   r   re   r   rR   rf   )
rg   rh   ri   rj   rm   Z	orgAddArrr  rS  rT  rr   rs   rs   rt   getAddressValues  s    
*
r  c              
   C   s   t  }|| }|d }t| jd}|}d}dd l}dd l}zlt| jd}	t| |d krd}
d}	dd	|j
|j|j |
d }td	|d
W S tddd W n@ tk
r } z"td tdt|i W Y S d }~X Y nX d S )Nr1   r2   zstartorg/creategymtoken/r      zFIT#rJ   )kTr  FrQ   rD   rR   rS   )r   rT   rU   rV   rW   rX   stringrandomrY   rZ   choicesascii_uppercasedigitsr   ZreturnJsonResponsere   r   rR   rf   )rg   rh   ri   rj   rk   rl   rm   r  r  numNresrr   rs   rs   rt   generateKey  s(    
 
r  )fr   rU   datetimer   r  r   dateutil.relativedeltar   django.contrib.auth.hashersr   django.core.mailr   	django.dbr   django.db.modelsr	   Zdjango.formsr
   django.httpr   r   django.shortcutsr   django.template.loaderr   django.views.decorators.cacher   pip._internal.req.req_installr   ImportErrorZpip.req.req_installrest_framework.decoratorsr   r   ZCelebrity.modelsr   ZPlan.modelsr   r   r   r   r   Z
Plan.viewsr   r   ZStratFit.settingsr   r   Subscriber.Authenticationr   r   r   Subscriber.modelsr    r!   r"   StratFitOrganization.modelsr#   r$   ZUserplan.modelsr%   r&   r'   ZSubscriber.viewsr(   Zpayment.modelsr)   Zutility.modelsr*   r+   r,   r-   utility.viewsr.   requestsru   r   r   r   r   rp   rs  r{  r|  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  rs   rs   rs   rt   <module>   s  

k

 

C

[

H

  C


%





$

!

2





*

#



4

D





