ó
    –iD ã                   ó  • S SK Jr  S SKJr  S SKJr  S SKJr  S SKJ	r	  SSK
JrJrJrJrJrJrJr  S SKJr  S S	KJr  S S
KJrJr  S SKJr  S SKJr  S SKJr  S SKJ r!  S SKJ r   S SK"J#r#J"r"J$r$  S SK%r%S SKJ r   S SK&J'r'  S SK(r(S SK)r)S SK*J+r+  S SK,r-S SK.J/r/J0r0  SSK1J2r2  S SK3J4r4  S SK"J"r"J5r5  S SK6r6S SK7J8r8  S SK9J:r:  S SK;r;S SKJr  S SK<r<S SK Jr  S SK=r=S SK7J>r>  S SK?J@r@  S SK*JArA  S SKJr  S S
KJrJr  S SKJr  S SKJ	r	  S SKJr  S SKJr  S SKJr  S SK<r<S SKBJrC   " S S\5      rD " S S \/5      rES! rFS" rGS S#KJHrH  \H" 5       r " S$ S%\5      rI " S& S'\5      rJS S(K"J$r$  S SKJ r    " S) S*\5      rK " S+ S,\5      rL " S- S.\5      rM " S/ S0\5      rN " S1 S2\5      rO " S3 S4\5      rP " S5 S6\5      rQ " S7 S8\5      rR " S9 S:\5      rS " S; S<\5      rT " S= S>\5      rU " S? S@\5      rV " SA SB\5      rW " SC SD\5      rX " SE SF\5      rYg)Gé    )Úsettings)Úrender)ÚAPIView)ÚResponse©Ústatusé   )ÚProfilesÚOtpÚProductÚNotificationÚClientÚLoanÚ
Collection)ÚObjectDoesNotExist)ÚNotFound)ÚauthenticateÚlogin)ÚRefreshToken)Úmake_password)ÚUser)Útimezone)ÚdateÚdatetimeÚ	timedeltaN)ÚHttpResponse)ÚQ)ÚRetrieveAPIViewÚListAPIView)ÚUserSerializer)ÚIsAuthenticated)r   Útime)ÚEmailMessage)ÚBASE_DIR)Ú	send_mail)Úget_random_string©ÚSum©r   c                   ó   • \ rS rSrS rSrg)ÚLoginAPIViewé5   c                 óÔ  • UR                   nUR                  S5      nUS   n[        R                  " SU5      (       a   [        R
                  R                  US9nO
[        XUS9nUGb  UR                  U5      (       Gaö  [        X5        [        R                  " U5      n [        R
                  R                  UR                  S9nUR                  S:X  a.  [        [        R                   SS	.S
SS S.[        R                   S9$ UR"                  R$                  nUR&                  n	Sn
UR(                  S:X  aƒ   [        R
                  R                  UR*                  S9n[        R
                  R                  UR,                  S9nUR.                  (       a"  UR.                  R$                  n
UR0                  n	O3UR.                  (       a"  UR.                  R$                  n
UR0                  n	[        [        R4                  SS	.S SUR6                  UR                  UR6                  UR8                  UR:                  [=        U5      [=        UR>                  5      UU
W	UR(                  S.S.5      $ [        [        R@                  SS	.SSS S.[        R@                  S9$ ! [        R                   a    S n GNXf = f! [2         a     NÜf = f! [2         a	    SnSn
S n Nòf = f)NÚusernameÚpasswordz[^@]+@[^@]+\.[^@]+©Úemail)r.   r/   ©Úuser_idé   Úerror©ÚcodeÚresponsezInactive userzYou are inactive. Contact Admin©r   r5   ÚmessageÚdatar   ú../static/dummy.pngÚsuccesszLogin success)ÚnameÚidr.   r1   ÚisSuperÚrefreshÚtokenÚprofileÚcompanylogoÚcompanynameÚrolezAuthentication failedzInvalid username or password)!r;   ÚgetÚreÚmatchr   ÚobjectsÚDoesNotExistr   Úcheck_passwordr   r   Úfor_userr
   r?   r   r   ÚHTTP_403_FORBIDDENÚprofilesÚurlr>   rF   r3   Úcreated_by_idrD   Úservicenamer   ÚHTTP_200_OKÚ
first_namer1   Úis_superuserÚstrÚaccess_tokenÚHTTP_401_UNAUTHORIZED)ÚselfÚrequestr;   Úusername_or_emailr/   ÚuserrB   rC   ÚprorE   ÚcomÚcreated_companyÚcompany_creator_profiles                Ú8C:\Users\psant\Downloads\Noiseback\school\myapp\views.pyÚpostÚLoginAPIView.post7   s°  € Ø�|‰|ˆØ ŸH™H ZÓ0ÐØ˜
Ñ#ˆô
 �8Š8Ð)Ð+<×=Ñ=ðÜ—|‘|×'Ñ'Ð.?Ð'Ð@‘ô
   ÈhÑWˆDð Ò × 3Ñ 3°H× =Ò =Ü�'Ô Ü ×)Ò)¨$Ó/ˆEð Ü"×*Ñ*×.Ñ.°t·w±wÐ.Ð?�à—>‘> QÓ&Ü#Ü+1×+DÑ+DÐRYÑ"ZØ!0Ø#DØ $ñ	%ô
 %×7Ñ7ñ9ð 9ð ×&Ñ&×*Ñ*�Ø%Ÿl™l�à+�à—<‘< 1Ó$ðÜ*2×*:Ñ*:×*>Ñ*>ÀwÇÁÐ*>Ð*W˜Ü2:×2BÑ2B×2FÑ2FÈ×OlÑOlÐ2FÐ2mÐ/Ø2×>×>Ø"9×"EÑ"E×"IÑ"I˜CØ*A×*MÑ*M˜Køð ×*×*Ø%×1Ñ1×5Ñ5˜Ø&-×&9Ñ&9˜ô Ü#)×#5Ñ#5À9ÑMØØ*à ŸO™OØŸ'™'Ø $§¡Ø!ŸZ™ZØ#×0Ñ0Ü" 5›zÜ  ×!3Ñ!3Ó4Ø"Ø$'Ø$/à#ŸL™Lññ	ó ð ô( Ü#)×#?Ñ#?ÈWÑUØ0Ø9Øñ	ô
 ×2Ñ2ñ4ð 4øôA ×$Ñ$ó Ø“ðûôB .ó Ùðûô &ó Ø+�Ø+�Ø’ðúsP   Á J' Â%A$K Ä
4K Ä?BK Ç3K Ê'KË KË
KËK ËKËK ËK'Ë&K'© N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__rb   Ú__static_attributes__rd   ó    ra   r+   r+   5   s   † õQ4rk   r+   c                   ó*   • \ rS rSr\4r\rS rS r	Sr
g)ÚUserAPIViewéŒ   c                 ó.   • U R                   R                  $ ©N)rZ   r\   )rY   s    ra   Ú
get_objectÚUserAPIView.get_object‘   s   € Ø�|‰|× Ñ Ð rk   c           	      óV  • UR                   n[        R                  R                  US   S9n[        R                  R                  US9n[        [        R                  SS.SUR                  UR                  UR                  R                  UR                  R                  S.S.5      $ )	Nr1   r0   ©r\   r=   r6   T)r.   r1   rF   rC   ©r   r5   r;   )r;   r   rJ   rG   r
   r   r   rS   r.   r1   rF   r?   rO   rP   )rY   rZ   r;   r\   rC   s        ra   rb   ÚUserAPIView.post”   s‘   € Ø�|‰|ˆä�|‰|×Ñ d¨7¡mÐÐ4ˆÜ×"Ñ"×&Ñ&¨DÐ&Ð1ˆô Ü%×1Ñ1¸yÑIØà ŸM™MØŸ™ØŸ™Ÿ™Ø"×+Ñ+×/Ñ/ñ	ñ	
ó 	ð 		rk   rd   N)rf   rg   rh   ri   r!   Úpermission_classesr    Úserializer_classrq   rb   rj   rd   rk   ra   rm   rm   Œ   s   † Ø)Ð+ÐØ%Ðò!õrk   rm   c                 ó˜   • SnSU S3n [        UU[        R                  U /SS9  g ! [         a  n[	        SU 35         S nAg S nAff = f)Nú%Your One-Time  (OTP) for Verificationú?Dear User,

    Your One-Time  (OTP) for verification is:

    zâ

    Please enter this code to proceed. This OTP is valid for the next 1 minutes.

    If you did not request this code, please ignore this email.

    Thank you,  
    Pearlcon Technologies LLP
    https://pearlcons.com
    F©Úfail_silentlyúError sending email: ©r%   r   ÚDEFAULT_FROM_EMAILÚ	ExceptionÚprint©r1   ÚotpÚsubjectr:   Úes        ra   Úsend_otp_emailr‡   ¨   sh   € Ø5€Gðð 	€Eð 	
ð	€Gð	+ÜØØÜ×'Ñ'ØˆGØó	
øô ó +ÜÐ% a SÐ)×*Ñ*ûð+úó   Š' §
A	±AÁA	c                 ó˜   • SnSU S3n [        UU[        R                  U /SS9  g ! [         a  n[	        SU 35         S nAg S nAff = f)Nrz   r{   zæ

    Please enter this code to proceed. This OTP is valid for the next 1 minutes.

    If you did not request this code, please ignore this email.

    Thank you,  
    Pearlcon Technologies LLP
    https://pearlcons.com
        Fr|   r~   r   rƒ   s        ra   Úsend_otp_emailsrŠ   Â   sh   € à5€Gðð 	€Eð 	
	ð	€Gð	+ÜØØÜ×'Ñ'ØˆGØó	
øô ó +ÜÐ% a SÐ)×*Ñ*ûð+úrˆ   )Úget_user_modelc                   ó   • \ rS rSrS rSrg)ÚSendotpAPIViewéâ   c                 óò  • UR                   n UR                  S0 5      R                  SS 5      n[        SU5        [        R                  R                  US9R                  5       (       d   [        [        R                  SS.SSS	.5      $ [        R                  R                  US9n[        S
SS9nXTl        [        R                  " 5       Ul        UR#                  5         [$        R&                  " [(        X54S9R+                  5         [        [        R,                  SS.S SU0S.5      $ ! [.         a?  n[        SU5        [        [        R0                  SS.S[3        U5      S	.5      s S nA$ S nAff = f)NÚparamsr1   úReceived email:r0   zEmail not foundr6   TzEmail not registered©r   r5   r:   é   Ú
1234567890©ÚlengthÚallowed_chars©ÚtargetÚargsÚSuccessru   zError:úInternal Server Error)r;   rG   r‚   r   rJ   ÚfilterÚexistsr   r   ÚHTTP_404_NOT_FOUNDr   Úcreater&   r„   r   ÚnowÚotp_created_atÚsaveÚ	threadingÚThreadr‡   ÚstartrS   r�   ÚHTTP_500_INTERNAL_SERVER_ERRORrV   )rY   rZ   r;   r1   r\   r„   r†   s          ra   rb   ÚSendotpAPIView.postã   sP  € Ø�|‰|ˆð 	Ø—H‘H˜X rÓ*×.Ñ.¨w¸Ó=ˆEÜÐ# UÔ+ô —<‘<×&Ñ&¨UÐ&Ð3×:Ñ:×<Ñ<ÜÜ'-×'@Ñ'@ÐN_Ñ`Ø!Ø5ñ!ó ð ô —;‘;×%Ñ%¨EÐ%Ð2ˆDÜ#¨1¸LÑIˆCØŒHÜ"*§,¢,£.ˆDÔØ�I‰IŒKä×Ò¤N¸%¸ÑF×LÑLÔNäÜ#)×#5Ñ#5À9ÑMØØ  %Ð(ñó ð øô
 ó 	Ü�(˜AÔÜÜ#)×#HÑ#HÐVmÑnØÜ˜q›6ñó õ ûð	ús%   ŽA=D- ÂB D- Ä-
E6Ä74E1Å+E6Å1E6rd   Nre   rd   rk   ra   r�   r�   â   s   † õ"rk   r�   c                   ó   • \ rS rSrS rSrg)ÚSendotpsAPIViewi  c                 ó‚  • UR                   n UR                  SS 5      n[        SU5        [        R                  R                  US9R                  5       (       a   [        [        R                  SS.SSS.5      $ [        S	S
S9n[        R                  R                  X4[        R                  " 5       S9n[        R                   " ["        X44S9R%                  5         [        [        R&                  SS.S SU0S.5      $ ! [(         a3  n[        [        R*                  SS.S[-        U5      S.5      s S nA$ S nAff = f)Nr1   r‘   r0   zEmail already registeredr6   Tz;This email is already registered. Please use another email.r’   r“   r”   r•   )r1   r„   r¢   r˜   r›   ru   rœ   )r;   rG   r‚   r   rJ   r�   rž   r   r   ÚHTTP_409_CONFLICTr&   r   r    r   r¡   r¤   r¥   rŠ   r¦   rS   r�   r§   rV   )rY   rZ   r;   r1   r„   r\   r†   s          ra   rb   ÚSendotpsAPIView.post	  s%  € Ø�|‰|ˆð	Ø—H‘H˜W dÓ+ˆEÜÐ# UÔ+ô �|‰|×"Ñ"¨Ð"Ð/×6Ñ6×8Ñ8ÜÜ'-×'?Ñ'?ÐMgÑhØ!Ø\ñ!ó ð ô $¨1¸LÑIˆCÜ—;‘;×%Ñ%¨EÌ8Ï<Ê<Ë>Ð%ÐZˆDä×Ò¤O¸5¸,ÑG×MÑMÔOäÜ#)×#5Ñ#5À9ÑMØØ  %Ð(ñó ð øô
 ó 	ÜÜ#)×#HÑ#HÐVmÑnØÜ˜q›6ñó õ ûð	ús%   ŽA-D Á<BD Ä
D>Ä(D9Ä3D>Ä9D>rd   Nre   rd   rk   ra   rª   rª     s   † õrk   rª   ©r   c                   ó    • \ rS rSrS rS rSrg)ÚVerifyotpAPIViewi+  c                 óX  • UR                   R                  S5      nUR                   R                  S5      n [        R                  R	                  US9R                  S5      nUR                  [        SS9-   n[        R                  " 5       U:”  a  [        SSS	S
.[        R                  S9$ X4R                  :X  a  [        SSSS
.[        R                  S9$ [        SSS	S
.[        R                  S9$ ! [        R                   a    [        SSS	S
.[        R                  S9s $ f = f)Nr1   r„   r0   r¢   é<   )Úsecondsi‘  z&OTP expired. Please request a new one.T)r   r:   r5   r   éÈ   zOTP VerifiedFi�  zInvalid OTPi”  zOTP not found)Úquery_paramsrG   r   rJ   r�   Úlatestr¢   r   r   r¡   r   r   rS   r„   rK   )rY   rZ   r1   Úotp_enteredÚuser_otpÚexpiration_times         ra   rG   ÚVerifyotpAPIView.get,  s8  € Ø×$Ñ$×(Ñ(¨Ó1ˆØ×*Ñ*×.Ñ.¨uÓ5ˆð	*Ü—{‘{×)Ñ)°Ð)Ð6×=Ñ=Ð>NÓOˆHð '×5Ñ5¼	È"Ñ8MÑMˆOÜ�|Š|‹~ Ó/ÜØ!ØGØ!ñ!ô !×,Ñ,ñ	.ð .ð Ÿl™lÓ*ÜØ!Ø-Ø"ñ!ô !×,Ñ,ñ	.ð .ô  Ø!Ø,Ø!ñ!ô !×,Ñ,ñ	.ð .øô ×Ñó 	*ÜØØ*Øñô ×(Ñ(ñ	*ò *ð	*ús   ¸A6C6 Â/*C6 ÃC6 Ã60D)Ä(D)c                 ó¦  • Ub   [         R                  R                  US9nUR                  (       a0  UR                  R	                  SS9  S Ul        UR                  5         [        [        R                  SS.S SS.5      $ [        [        R                  SS.S
SS.5      $ ! [         a#    [        [        R                  SS.S S	S.5      s $ f = f)Nr2   F)r£   r=   r6   z"Profile image deleted successfullyr’   ÚfailedzProfile not foundzID not providedzUser ID is required)r
   rJ   rG   rO   Údeleter£   r   r   rS   r   rŸ   ÚHTTP_400_BAD_REQUEST)rY   rZ   r?   rC   s       ra   r½   ÚVerifyotpAPIView.deleteS  sÝ   € Ø‰>ðÜ"×*Ñ*×.Ñ.°rÐ.Ð:�ð ×#×#Ø×$Ñ$×+Ñ+°Ð+Ñ7Ø'+�GÔ$Ø—L‘L”NäÜ'-×'9Ñ'9ÀyÑQØ!ØCñ!ó ð ô Ü%×:Ñ:ÈÑQØ&Ø,ñ
ó ð 	øô &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø2ñ!ó ò ðús   …A=B# Â#*CÃCrd   N)rf   rg   rh   ri   rG   r½   rj   rd   rk   ra   r°   r°   +  s   † ò"*õNrk   r°   c                   ó,   • \ rS rSr\4rS rS rS rSr	g)ÚProfileupdateAPIViewit  c                 ój  • UR                  S5      nUbï   [        R                  R                  US9n[        R                  R                  UR                  S9nUR
                  (       a1  UR
                  R                  S:w  a  UR
                  R                  nOSnUR                  UR                  UR                  UR                  UR                  UUR                  S.n[        [        R                  SS.S US.5      $ g ! [         a#    [        [        R                   S	S.S
SS.5      s $ f = f)Nr?   ©r?   r2   r<   )r>   r1   ÚphoneÚf_nameÚl_namerC   r?   r›   r6   ru   ÚFailedTúCompany not foundr’   )rG   r   rJ   r
   r?   rO   rP   r>   r1   rÄ   rT   Ú	last_namer   r   rS   r   rŸ   )rY   rZ   Úkwargsr?   r\   ÚcompanyÚprr;   s           ra   rG   ÚProfileupdateAPIView.getx  s  € Ø�Z‰Z˜Óˆð ‰>ð!Ü—|‘|×'Ñ'¨2Ð'Ð.�Ü"×*Ñ*×.Ñ.°t·w±wÐ.Ð?�Ø×#×#¨×(8Ñ(8×(<Ñ(<Ð@UÓ(UØ ×)Ñ)×-Ñ-‘Bà.�Bð $ŸL™LØ$Ÿ]™]Ø$Ÿ]™]Ø"Ÿo™oØ"Ÿn™nà "ØŸ'™'ñ	�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ð1 øô: &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø2ñ!ó ò ðús   –C-D Ä*D2Ä1D2c           	      ó  • UR                   n UR                  S5      n[        R                  R                  UR                  R
                  S9nX4l        UR                  5         [        [        R                  SS.S SS.5      $ ! [         a6  n[        [        R                  SS.SS	[        U5       3S.5      s S nA$ S nAf[         a6  n[        [        R                  SS.SS
[        U5       3S.5      s S nA$ S nAff = f)NÚ
prof_photor2   r=   r6   zProfile updated successfullyr’   r¼   TúMissing required field: úAn error occurred: )r;   rG   r
   rJ   r\   r?   rO   r£   r   r   ÚHTTP_201_CREATEDÚKeyErrorr¾   rV   r�   r§   )rY   rZ   r;   ÚphoÚtaker†   s         ra   rb   ÚProfileupdateAPIView.post   sù   € Ø�|‰|ˆð!	ð —(‘(˜<Ó(ˆCô ×#Ñ#×'Ñ'°·±·±Ð'Ð@ˆDØŒMà�I‰IŒKô Ü#)×#:Ñ#:È	ÑRØØ9ñó ð øô ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5´c¸!³f°XÐ>ñó õ ûô
 ó 	ÜÜ#)×#HÑ#HÐV^Ñ_ØØ0´°Q³°Ð9ñó õ ûð	ús0   ŽA7B Â
DÂ+CÂ;DÃDÃ+C?Ã9DÃ?Dc                 óÔ  • UR                   nUR                   R                  S5      nUR                   R                  S5      nUR                   R                  S5      nUR                   R                  S5      n [        R                  R                  US9n[        R                  R                  US9n	US   U	l        US   U	l        US   U	l        US   U	l        U	R                  5         US   Ul        US   Ul
        US   Ul        UR                  5         [        [        R                  S	S
.S SS.5      $ ! [         a#    [        [        R                   SS
.SSS.5      s $ f = f)NrÏ   Úphone_noÚemail_idrT   r2   rÃ   Úfirst_namesrÉ   r=   r6   úUser updated successfullyr’   r¼   TúSomething went wrong)r;   rG   r
   rJ   r   r.   rT   rÉ   r1   r£   rÄ   r>   r   r   rÒ   r   r¾   )
rY   rZ   r?   r;   rÏ   rØ   rÙ   rT   ÚmmÚsds
             ra   ÚputÚProfileupdateAPIView.putÆ  s_  € Ø�|‰|ˆØ—\‘\×%Ñ% lÓ3ˆ
Ø—<‘<×#Ñ# JÓ/ˆØ—<‘<×#Ñ# JÓ/ˆØ—\‘\×%Ñ% lÓ3ˆ
ð$	ô ×!Ñ!×%Ñ%¨bÐ%Ð1ˆBÜ—‘×!Ñ! RÐ!Ð(ˆBð ˜|Ñ,ˆBŒKØ  Ñ/ˆBŒMØ Ñ,ˆBŒLð ˜JÑ'ˆBŒHØ�G‰GŒIð ˜JÑ'ˆBŒHØ˜JÑ'ˆBŒHØ˜<Ñ(ˆBŒGð �G‰GŒIô Ü#)×#:Ñ#:È	ÑRØØ6ñó ð øô
 "ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ1ñó ò ð	ús   Á:B?D: Ä:*E'Å&E'rd   N)
rf   rg   rh   ri   r!   rw   rG   rb   rß   rj   rd   rk   ra   rÁ   rÁ   t  s   † à)Ð+Ðò&òP#õL-rk   rÁ   c                   ó,   • \ rS rSrS rS rS rS rSrg)ÚRegisterAPIViewiù  c                 óˆ  • UR                  S5      nUGb&   [        R                  R                  US9n[        R                  R                  UR                  S9nUR
                  (       a1  UR
                  R                  S:w  a  UR
                  R                  nOSnUR                  UR                  UR                  UR                  UR                  UUR                  UR                  UR                  UR                  UR                   UR                  S.n[#        [$        R&                  SS.S US.5      $ UR,                  R                  S5      n[/        U5         / nUR0                  R                  SS5      R3                  5       n	UR0                  R                  SS5      R3                  5       n
UR0                  R                  SS5      R3                  5       nUR0                  R                  SS5      R3                  5       nUR0                  R                  SS5      R3                  5       nUS:X  a.  [        R                  R5                  SSS9R7                  S5      nO-[        R                  R5                  SSS9R7                  S5      nU	(       a  UR5                  U	S9nU(       a  UR5                  US9nU(       a  UR5                  US9nU
(       a  UR5                  U
S9nU(       a!   [9        U5      nUS;   a  UR5                  US9nU H–  n[        R                  R                  UR<                  S9nUR                  UR<                  UR                  UR                  UR                  UR                  UR                  UR$                  S .nUR?                  U5        M˜     [#        [$        R&                  SS.S US.5      $ ! [(         a#    [#        [$        R*                  S	S.S
SS.5      s $ f = f! [:         a     Nøf = f! [(         a#    [#        [$        R@                  S	S.S
S!S.5      s $ f = f)"Nr?   rÃ   rt   r<   )r>   r1   rÄ   ÚaddressÚpincoderC   Ú	firstnameÚlastnameÚgenderÚdojr/   r?   r›   r6   ru   rÇ   TrÈ   r’   ÚvalÚ
vendornameÚ rå   r1   rÄ   r   Ú2r4   r   ©r   rF   z-user_idr	   )Úname__icontains)Úemail__icontains)Úphone__icontains)Úpincode__icontains)r	   r4   r   )r>   r?   rÄ   rå   r1   rä   rÄ   r   rÜ   )!rG   r   rJ   r
   r?   rO   rP   r>   r1   rÄ   rä   rå   rT   rÉ   rè   ré   r/   r   r   rS   r   rŸ   ÚGETr‚   rµ   Ústripr�   Úorder_byÚintÚ
ValueErrorr3   Úappendr¾   )rY   rZ   rÊ   r?   r\   rË   rÌ   r;   rê   r.   rå   r1   rÄ   Ústatus_paramÚ	companiesÚ
status_intÚusersÚcompany_datas                     ra   rG   ÚRegisterAPIView.getú  sÙ  € Ø�Z‰Z˜Óˆð Š>ð(Ü—|‘|×'Ñ'¨2Ð'Ð.�Ü"×*Ñ*×.Ñ.°D·G±GÐ.Ð<�Ø×#×#¨×(8Ñ(8×(<Ñ(<Ð@UÓ(UØ ×)Ñ)×-Ñ-‘Bà.�Bð $ŸL™LØ$Ÿ]™]Ø$Ÿ]™]Ø&Ÿ™Ø&Ÿ™Ø "à!%§¡Ø $§¡Ø%Ÿn™nà"Ÿ;™;Ø '× 0Ñ 0ð Ÿ'™'ñ#�ô,  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ð —+‘+—/‘/ %Ó(ˆCÜ�#ŒJðSØ�ð #×/Ñ/×3Ñ3°LÀ"ÓE×KÑKÓM�Ø!×.Ñ.×2Ñ2°9¸bÓA×GÑGÓI�à×,Ñ,×0Ñ0°¸"Ó=×CÑCÓE�Ø×,Ñ,×0Ñ0°¸"Ó=×CÑCÓE�ð  '×3Ñ3×7Ñ7¸À"ÓE×KÑKÓM�à˜#“:Ü (× 0Ñ 0× 7Ñ 7¸qÀaÐ 7Ð H× QÑ QÐR\Ó ]‘Iä (× 0Ñ 0× 7Ñ 7¸qÀaÐ 7Ð H× QÑ QÐR\Ó ]�Iö à )× 0Ñ 0ÀÐ 0Ð J�Iæà )× 0Ñ 0À%Ð 0Ð H�IÞà )× 0Ñ 0À%Ð 0Ð H�Iæà )× 0Ñ 0ÀGÐ 0Ð L�IÞðÜ%(¨Ó%6˜
Ø%¨Ó/Ø(1×(8Ñ(8À
Ð(8Ð(K˜Ió  )�Gô "Ÿ\™\×-Ñ-°·±Ð-ÐA�Eð !(§¡Ø%Ÿo™oØ!(§¡à#*§?¡?ð ")§¡Ø#*§?¡?à!(§¡Ø#*§>¡>ñ$�Lð" —K‘K Ö-ñ=  )ô>  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð øôg &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø2ñ!ó ò ðûôb &ó ÙðûôN &ó ÜÜ'-×'BÑ'BÐPXÑYØ!Ø5ñ!ó ò ðúsJ   —D$O Å#FP Ë8 P ÌB;P Ï*PÐ PÐ
PÐP ÐPÐP Ð*QÑ Qc           	      ó¬  • UR                   n UR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      nUR                  S5      n[        U5      n	[        X4U	S9n
U
R	                  5         [        UX4XVU
S9nUR	                  5         [        [        R                  S	S
.S SS.5      $ ! [         a6  n[        [        R                  SS
.SS[        U5       3S.5      s S nA$ S nAf[         a6  n[        [        R                  SS
.SS[        U5       3S.5      s S nA$ S nAff = f)NÚemployeenamer1   Úmobilenumberrä   rå   r/   )r.   r1   r/   )r/   r>   r1   rÄ   rä   r\   r=   r6   z New User Registered successfullyr’   r¼   TrÐ   rÑ   )r;   rG   r   r   r£   r
   r   r   rÒ   rÓ   r¾   rV   r�   r§   )rY   rZ   r;   r>   r1   rÄ   rä   rå   r/   Úhashed_passwordÚvanÚprofile_datar†   s                ra   rb   ÚRegisterAPIView.post�  sV  € Ø�|‰|ˆð>	ð —8‘8˜NÓ+ˆDð —H‘H˜WÓ%ˆEØ—H‘H˜^Ó,ˆEØ—h‘h˜yÓ)ˆGØ—h‘h˜yÓ)ˆGð —x‘x 
Ó+ˆHô ,¨HÓ5ˆOä ¸OÑLˆCØ�H‰HŒJô
 $Ø!ØØ°3ñˆLð ×ÑÔäÜ#)×#:Ñ#:È	ÑRØØ=ñó ð øô ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5´c¸!³f°XÐ>ñó õ ûô
 ó 	ÜÜ#)×#HÑ#HÐV^Ñ_ØØ0´°Q³°Ð9ñó õ ûð	ús0   ŽCC Ã
EÃ+DÄ
EÄEÄ+EÅEÅEc                 óÞ  • UR                   R                  S5      nUR                  nUR                  R                  S5      nUS:X  al  [        R                  R                  US9nUR
                  S:X  a  SUl        OSUl        UR                  5         [        [        R                  SS.S S	S
.5      $ US:X  al  [        R                  R                  US9nUR                  S:X  a  SUl        OSUl        UR                  5         [        [        R                  SS.S SS
.5      $ U(       a“  [        R                  R                  US9nUS   Ul
        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        UR                  5         [        [        R                  SS.S SS
.5      $  [        R                  R                  US9n["        R                  R                  US9n	US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US   Ul        US    Ul        US!   Ul        US"   Ul        US#   Ul         US$   Ul!        US%   Ul"        US&   Ul#        US'   Ul$        US(   Ul%        UR                  5         US   U	l&        US)   U	l'        US*   U	l(        US   U	l        [S        US(   5      U	l%        U	R                  5         [        [        R                  SS.S S+S
.5      $ ! [T         a#    [        [        RV                  S,S.S-S.S
.5      s $ f = f)/Nrê   ÚctcÚ1r2   r	   r4   r=   r6   zWFH updated successfullyr’   rí   zInactive updated successfullyÚgrossÚptÚuanÚpanÚaccountÚreimz#Salary details updated successfullyrÃ   r>   ÚpemailÚshiftÚmarriedstatusrè   r1   rÄ   rä   ÚcityÚstateÚcountryrå   Ú
departmentÚdesignationrF   Ú	authorityré   rO   Úempcoder/   ræ   rç   rÛ   r¼   TrÜ   ),ró   rG   r;   r
   rJ   Úwfhr£   r   r   rÒ   r  r	  r
  r  r  r  r  r   r>   r  r  r  rè   r1   rÄ   rä   r  r  r  rå   Údepartment_idÚdesignation_idrF   Úauthority_idré   rO   r  r/   r.   rT   rÉ   r   r   r¾   )
rY   rZ   r?   rê   r;   r  ÚpoÚmeowrÝ   rÞ   s
             ra   rß   ÚRegisterAPIView.putÃ  sh  € Ø�k‰k�o‰o˜eÓ$ˆØ�|‰|ˆØ�l‰l×Ñ˜uÓ%ˆà�#‹:Ü×!Ñ!×%Ñ%¨bÐ%Ð1ˆBØ�v‰v˜‹{Ø�•à�”Ø�G‰GŒIäÜ#)×#:Ñ#:È	ÑRØØ5ñó ð ð
 �C‹ZÜ×!Ñ!×%Ñ%¨bÐ%Ð1ˆBØ�y‰y˜A‹~Ø�•	à�”	Ø�G‰GŒIäÜ#)×#:Ñ#:È	ÑRØØ:ñó ð ö
 Ü×#Ñ#×'Ñ'°Ð'Ð3ˆDØ˜E‘{ˆDŒHØ˜g™ˆDŒJØ˜4‘jˆDŒGØ˜E‘{ˆDŒHØ˜E‘{ˆDŒHØ 	™?ˆDŒLØ˜V™ˆDŒIð �I‰IŒKäÜ#)×#:Ñ#:È	ÑRØØ@ñó ð ð+Ü×%Ñ%×)Ñ)°"Ð)Ð5�Ü—\‘\×%Ñ%¨Ð%Ð,�à˜v™,�”Ø  ™N�”	Ø ™=�”Ø#'¨Ñ#8�Ô Ø  ™N�”	Ø ™=�”Ø ™=�”Ø! )™_�”
Ø˜v™,�”Ø ™=�”Ø! )™_�”
Ø! )™_�”
Ø#'¨Ñ#5�Ô Ø$(¨Ñ$7�Ô!Ø˜v™,�”Ø"& {Ñ"3�”Ø˜e™�”Ø" :Ñ.�”Ø! )™_�”
Ø" :Ñ.�”Ø—‘”	à" 6™l�”Ø $ [Ñ 1�”Ø# JÑ/�”Ø ™=�”Ü+¨D°Ñ,<Ó=�”Ø—‘”	äÜ'-×'>Ñ'>ÈIÑVØ!Ø:ñ!ó ð øô
 &ó ÜÜ'-×'BÑ'BÐPXÑYØ!Ø5ñ!ó ò ðús   ÇE<L? Ì?*M,Í+M,c                 óz  • UR                  S5      n [        R                  R                  US9nUR                  5         [        R                  R                  US9nUR                  5         [        [        R                  SS.S SS.5      $ ! [         a#    [        [        R                  SS.S	S
S.5      s $ f = f)Nr?   r2   rÃ   r=   r6   zCompany deleted successfullyr’   r¼   TúNo data found)
rG   r
   rJ   r½   r   r   r   rS   r   rŸ   )rY   rš   rÊ   Ú
company_idrÌ   rË   s         ra   r½   ÚRegisterAPIView.delete"  sµ   € Ø—Z‘Z Ó%ˆ
ð	ä×"Ñ"×&Ñ&°
Ð&Ð;ˆBØ�I‰IŒKÜ—l‘l×&Ñ&¨*Ð&Ð5ˆGØ�N‰NÔäÜ#)×#5Ñ#5À9ÑMØØ9ñó ð øô
 "ó 	ÜÜ#)×#<Ñ#<È(ÑSØØ*ñó ò ð	ús   “A9B Â*B:Â9B:rd   N)	rf   rg   rh   ri   rG   rb   rß   r½   rj   rd   rk   ra   râ   râ   ù  s   † òEòN@òD]õ~rk   râ   c                   ó   • \ rS rSrS rSrg)ÚCompanydashboardAPIViewi:  c                 óÔ  •  SSK Jn  UR                  R                  n[        R
                  R                  US9R                  5       nSSK Jn  SSKJ	n  UR                  R                  nU" 5       nSnSnSn	Sn
SnSnS	nSnSnS
nSnSnUUU	U
UUUUUUUUUS.n[        [        R                  SS.S US.5      $ ! [         a#    [        [        R                  SS.SSS.5      s $ f = f)Nr   ©r¡   ©rQ   r®   r“   é   é   é   é	   é   r4   )ÚtotalenquiryÚtotalvendorÚtotalenquirytodaydateÚactivevendorÚinactivevendorÚ	monthdataÚtotalvendorlastmonthÚcurrent_month_enquiryÚlast_month_enquiryÚcurrent_month_auctionÚlast_month_auctionÚcurrent_month_productÚlast_month_productr=   r6   ru   r¼   Tr!  r’   )Údjango.utils.timezoner¡   r\   r?   r   rJ   r�   Úcountr   r   r   r   rS   r   rŸ   )rY   rZ   r¡   Úopr.  r   Úcurrent_dater4  r/  r0  r1  r3  r2  r6  r5  r7  r8  r9  r:  r;   s                       ra   rG   ÚCompanydashboardAPIView.get=  s(  € ð:	Ý1à—‘—‘ˆBä"Ÿ?™?×1Ñ1ÀÐ1ÐC×IÑIÓKˆLå1Ý*à—‘—‘ˆBñ ›5ˆLð $%Ð ØˆKØ"#Ð!ØˆLØˆIØˆNØ ÐØ"#Ð!Ø"#Ð!Ø ÐØ"#Ð!Ø Ðð !-Ø*Ø)>Ø!-Ø#1Ø'Ø(<Ø*?Ø'9Ø*?Ø'9Ø*?Ø'9ñˆDô" Ü#)×#5Ñ#5À9ÑMØØñó ð øô
 "ó 	ÜÜ#)×#<Ñ#<È(ÑSØØ*ñó ò ð	ús   ‚B7B: Â:*C'Ã&C'rd   N©rf   rg   rh   ri   rG   rj   rd   rk   ra   r%  r%  :  s   † õ<rk   r%  c                   ó   • \ rS rSrS rSrg)ÚAdmindashboardAPIViewi~  c                 ó˜  •  SSK Jn  UR                  R                  nU" 5       n[        R
                  R                  SSS9R                  5       n[        R
                  R                  SSS9R                  5       nSS KnSSK	J	n  / n	UR                  " 5       R                  n
UR                  " 5       R                  nUS-   nSSKJn  [        SU5       H(  nUR                  U   nSnU	R!                  UUS.5        M*     [        R
                  R                  SS	9R                  5       nSnSn[        R
                  R                  SS	9nU H  n M     UUUUUU	S
.n['        [(        R*                  SS.S US.5      $ ! ["        R$                   a     MH  f = f! [,         a#    ['        [(        R.                  SS.SSS.5      s $ f = f)Nr   r'  r	   rî   r4   )r   r'   )Ú	monthnameÚcounts)rF   )ÚpaidcompanyÚunpaidcompanyÚtotalcompanyÚactivecompanyÚinactivecompanyr3  r=   r6   ru   r¼   Tr!  r’   )r;  r¡   r\   r?   r
   rJ   r�   r<  Úcalendarr   ÚyearÚmonthÚdjango.db.modelsr(   ÚrangeÚ
month_abbrrø   ÚPaymentrK   r   r   rS   r   rŸ   )rY   rZ   r¡   r=  r>  rI  rJ  rK  r   r3  Úcurrent_yearÚcurrent_monthÚbakr(   rM  Ú
month_nameÚpaymentrH  rF  rG  ÚqpÚbr;   s                          ra   rG   ÚAdmindashboardAPIView.get�  sÎ  € ðI	Ý1à—‘—‘ˆBá›5ˆLô %×,Ñ,×3Ñ3¸1À1Ð3ÐE×KÑKÓMˆMÜ&×.Ñ.×5Ñ5¸qÀqÐ5ÐI×OÑOÓQˆOãÝ)ØˆIØ#Ÿ<š<›>×.Ñ.ˆLØ$ŸLšL›N×0Ñ0ˆMØ ‘/ˆCÝ,ô ˜q #ž�Ø%×0Ñ0°Ñ7�
à�à× Ñ Ø!+Ø%ñ"ö ñ 'ô $×+Ñ+×2Ñ2¸Ð2Ð:×@Ñ@ÓBˆLØˆKØˆMä×!Ñ!×(Ñ(¨aÐ(Ð0ˆBÛ�ðÙñ ð  +Ø!.à ,à"/Ø$3Ø'ñ	ˆDô Ü#)×#5Ñ#5À9ÑMØØñó ð øô' ×+Ñ+ó Úðûô0 "ó 	ÜÜ#)×#<Ñ#<È(ÑSØØ*ñó ò ð	ús0   ‚EF Å,F ÆFÆF ÆFÆF Æ*G	ÇG	rd   Nr@  rd   rk   ra   rB  rB  ~  s   † õKrk   rB  c                   ó   • \ rS rSrSS jrSrg)ÚCheckcompanyAPIViewiÔ  Nc                 ó  • UR                   R                  S5      nUR                   R                  S5      nUR                   R                  S5      nUR                   R                  S5      =(       d    UR                   R                  S5      n[        SX4U5        U(       d  U(       d  U(       d  U(       a£  [        5       nU(       a  U[        US9-  nU(       a  U[        US9-  nU(       a  U[        US	9-  nU(       a  U[        US
9-  n[        R
                  R                  U5      R                  5       n[        [        R                  SS.S US.5      $ [        [        R                  SS.SSS.[        R                  S9$ )NrÄ   r1   r.   Ú	gstnumberÚgstzCheck Params:)r>   )rÄ   r0   )r]  r=   r6   )r   r5   rž   r¼   Tz!No phone, email, or GST provided.r’   r   )rµ   rG   r‚   r   r
   rJ   r�   rž   r   r   rS   r¾   )	rY   rZ   r?   rÄ   r1   r>   r]  Úqueryrž   s	            ra   rG   ÚCheckcompanyAPIView.getÕ  sN  € Ø×$Ñ$×(Ñ(¨Ó1ˆØ×$Ñ$×(Ñ(¨Ó1ˆØ×#Ñ#×'Ñ'¨
Ó3ˆð ×(Ñ(×,Ñ,¨[Ó9×\¸W×=QÑ=Q×=UÑ=UÐV[Ó=\ˆ	ô 	ˆo˜u¨YÔ7æ–EžY®$Ü“CˆEÞØœ ™Ñ%�ÞØœ ™Ñ'�ÞØœ ™Ñ'�ÞØœ YÑ/Ñ/�ä×%Ñ%×,Ñ,¨UÓ3×:Ñ:Ó<ˆFäÜ#)×#5Ñ#5À9ÑMØØ ñó ð ô Ü%×:Ñ:ÈÑQØØ:ñ
ô ×-Ñ-ñ	/ð 	/rk   rd   rp   r@  rd   rk   ra   r[  r[  Ô  s   † ÷#/rk   r[  c                   ó6   • \ rS rSr\4rSS jrS rS rS r	Sr
g)	ÚProductAPIViewiû  Nc                 óP
  • UGb
   [         R                  R                  US9n0 SUR                  _SUR                  _SUR
                  _SUR                  _SUR                  _SUR                  _SUR                  _S	UR                  _S
UR                  _SUR                  _SUR                  _SUR                  _SUR                  _SUR                   _SUR"                  _SUR$                  _SUR&                  _0 SUR(                  _SUR*                  _SUR,                  _SUR.                  _SUR0                  _SUR2                  _SUR4                  _SUR6                  _SUR8                  _SUR:                  _SUR<                  _SUR>                  _SUR@                  _S URB                  _S!URD                  _S"URF                  _S#URH                  _E0 S$URJ                  _S%URL                  _S&URN                  _S'URP                  _S(URR                  _S)URT                  _S*URV                  _S+URX                  _S,URZ                  _S-UR\                  _S.UR^                  _S/UR`                  _S0URb                  _S1URd                  _S2URf                  _S3URh                  _S4URj                  _E0 S5URl                  _S6URn                  _S7URp                  _S8URr                  _S9URt                  _S:URv                  _S;URx                  _S<URz                  _S=UR|                  _S>UR~                  _S?UR€                  _S@UR‚                  _SAUR„                  _SBUR†                  _SCURˆ                  _SDURŠ                  _SEURŒ                  _EURŽ                  UR�                  UR’                  UR”                  UR–                  UR˜                  URš                  SF.En[�        [ž        R                   SGSH.S USI.5      $  SNn/ n[         R                  R§                  UR¨                  R                  SO9nU H]  nUSP-  nUR«                  UUR                  UR                  UR
                  UR                  UR                  URž                  SQ.5        M_     [�        [ž        R                   SGSH.S USI.5      $ ! [¢         a#    [�        [ž        R¤                  SJSH.SKSLSM.5      s $ f = f! [¢         a#    [�        [ž        R¤                  SJSH.SKSLSM.5      s $ f = f)RNrÃ   r?   Úcompany_nameÚapplicationÚproject_namer  ÚbidclosedateÚdeliverydateÚs2dailyflowÚs2monthflowÚ
s2weekflowÚs2maxdailyflowÚ
s2hourflowÚs2bodÚs2bodoutÚ	s2bodrateÚs2codÚs2codoutÚ	s2codrateÚs2tssÚs2tssoutÚ	s2tssrateÚs2tnÚs2tnoutÚs2tnrateÚs2tpÚs2tpoutÚs2tprateÚs2oilÚs2oiloutÚ	s2oilrateÚs2avgwatertempÚs2avgwatertempoutÚs2avgwatertemprateÚs2maxwatertempÚs2maxwatertempoutÚs2maxwatertemprateÚs2minwatertempÚs2minwatertempoutÚs2minwatertemprateÚ	Davgflux1Ú	Davgflux2Ú	DpeakfluxÚMsurfacearea1ÚMsurfacearea2ÚproductcodeÚ
NoofmoduleÚ
NoofmtrainÚNoofmptrainÚTNMÚTMsurfaceareaÚ	Aavgflux1Ú	Aavgflux2Ú
Apeakflux1Ú
Apeakflux2Ús4AT1Ús4AT2Ús4AT3Ús4AT4Ús4AT5Ús4AT6Ús4AT7Ús4TT1Ús4TT2Ús4TT3Ús4TT4Ús4TT5Ús4TT6Ús4TT7)Ús4MT1Ús4MT2Ús4MT3Ús4MT4Ús4MT5Ús4MT6Ús4MT7r=   r6   ru   r¼   Tr!  r’   r   r(  r	   )Úrowr?   rd  re  rf  r  r   )Vr   rJ   rG   r?   rd  re  rf  r  rg  rh  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r   r   rS   r   rŸ   r�   r\   rø   )rY   rZ   r?   rË   r;   Úindexrú   Úproductss           ra   rG   ÚProductAPIView.getþ  sä  € ØŠ>ð}Ü!Ÿ/™/×-Ñ-°Ð-Ð4�ðmØ˜'Ÿ*™*ðmà" G×$8Ñ$8ðmð " 7×#6Ñ#6ðmð # G×$8Ñ$8ð	mð
 ˜wŸ™ðmð # G×$8Ñ$8ðmð # G×$8Ñ$8ðmð " G×$7Ñ$7ðmð " G×$7Ñ$7ðmð ! '×"4Ñ"4ðmð % g×&<Ñ&<ðmð ! '×"4Ñ"4ðmð ˜WŸ]™]ðmð   × 0Ñ 0ð!mð"   ×!2Ñ!2ð#mð& ˜WŸ]™]ð'mð(  × 0Ñ 0ñ)mð*   ×!2Ñ!2ð+mð. ˜WŸ]™]ð/mð0  × 0Ñ 0ð1mð2   ×!2Ñ!2ð3mð6 ˜GŸL™Lð7mð8 ˜wŸ™ð9mð:  × 0Ñ 0ð;mð@ ˜GŸL™LðAmðB ˜wŸ™ðCmðD  × 0Ñ 0ðEmðH ˜WŸ]™]ðImðJ  × 0Ñ 0ðKmðL   ×!2Ñ!2ðMmðP % g×&<Ñ&<ðQmðR (¨×)BÑ)BðSmðT )¨'×*DÑ*DðUmðX % g×&<Ñ&<òYmðZ (¨×)BÑ)Bð[mð\ )¨'×*DÑ*Dð]mð` % g×&<Ñ&<ðamðb (¨×)BÑ)Bðcmðd )¨'×*DÑ*Dðemðr   ×!2Ñ!2ðsmðt   ×!2Ñ!2ðumðv   ×!2Ñ!2ðwmðz $ W×%:Ñ%:ð{mð| $ W×%:Ñ%:ð}mð~ " 7×#6Ñ#6ðmðD ! '×"4Ñ"4ðEmðF ! '×"4Ñ"4ðGmðH " 7×#6Ñ#6ðImðJ ˜7Ÿ;™;ðKmðL $ W×%:Ñ%:ðMmðN   ×!2Ñ!2òOmðP   ×!2Ñ!2ðQmðR ! '×"4Ñ"4ðSmðT ! '×"4Ñ"4ðUmðX ˜WŸ]™]ðYmðZ ˜WŸ]™]ð[mð\ ˜WŸ]™]ð]mð^ ˜WŸ]™]ð_mð` ˜WŸ]™]ðamðb ˜WŸ]™]ðcmðd ˜WŸ]™]ðemðh ˜WŸ]™]ðimðj ˜WŸ]™]ðkmðl ˜WŸ]™]ðmmðn ˜WŸ]™]ðomðp ˜WŸ]™]ðqmðr ˜WŸ]™]ðsmðt ˜WŸ]™]ñumðx %Ÿ]™]Ø$Ÿ]™]Ø$Ÿ]™]Ø$Ÿ]™]Ø$Ÿ]™]Ø$Ÿ]™]Ø$Ÿ]™]òEm�ô^  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ð(à�Ø�	ô #Ÿ?™?×1Ñ1ÀÇÁÇÁÐ1ÐP�ó
  (�GØ˜Q‘J�Eð ×$Ñ$Ø$Ø%Ÿj™jØ(/×(<Ñ(<Ø'.×':Ñ':Ø(/×(<Ñ(<Ø#*§?¡?ð #*§.¡.ñ&ö ñ  (ô&  Ü'-×'9Ñ'9ÀyÑQØ!Ø%ñ!ó ð øôK &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûôT &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðús%   †PS ÐB7S8 Ó*S5Ó4S5Ó8*T%Ô$T%c                 ó¾  • UR                   n [        R                  R                  " SS0 SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _S	US	   _S
US
   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _SUS   _S US    _S!US!   _S"US"   _S#US#   _S$US$   _S%US%   _S&US&   _S'US'   _S(US(   _S)US)   _S*US*   _S+US+   _S,US,   _S-US-   _S.US.   _S/US/   _S0US0   _S1US1   _S2US2   _S3US3   _S4US4   _S5US5   _S6US6   _S7US7   _S8US8   _S9US9   _S:US:   _S;US;   _S<US<   _S=US=   _S>US>   _S?US?   _S@US@   _SAUSA   _SBUSB   _SCUSC   _SDUSD   _SEUSE   _SFUSF   _SGUSG   _SHUSH   _SIUSI   _SJUSJ   _SKUR                  _6nUR                  5         [        [        R                  SLSM.S SNSO.5      $ ! [         a-  n[        [        R                  SPSM.SQSRU 3SO.5      s S nA$ S nAff = f)TNrd  rf  re  r  rh  rg  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  Ú
created_byr=   r6   zProduct created successfullyr’   r¼   TrÐ   rd   )r;   r   rJ   r    r\   r£   r   r   rÒ   rÓ   r¾   ©rY   rZ   r;   rË   r†   s        ra   rb   ÚProductAPIView.post©  s‹  € Ø�|‰|ˆðk	Ü—o‘o×,Ò,ò ]Ø! .Ò1ð]à! .Ò1ð]ð " -Ò0ð]ð ˜išð	]ð  $ NÒ3ð]ð  $ NÒ3ð]ð # =Ò1ð]ð # =Ò1ð]ð " ,Ò/ð]ð "&Ð&6Ò!7ð]ð " ,Ò/ð]ð ˜Wšð]ð    
Ò+ð!]ð" ! Ò-ð#]ð$ ˜Wšð%]ð&   
Ò+ð']ð( ! Ò-ð)]ð* ˜Wšð+]ð,   
Ò+ð-]ð. ! Ò-ð/]ð0 ˜F’|ð1]ð2 ˜yš/ð3]ð4   
Ò+ð5]ð6 ˜F’|ð7]ð8 ˜yš/ð9]ð:   
Ò+ð;]ð< ˜Wšð=]ð>   
Ò+ð?]ð@ ! Ò-ðA]ðB "&Ð&6Ò!7ðC]ðD %)Ð)<Ò$=ðE]ðF &*Ð*>Ò%?ðG]ðH "&Ð&6Ò!7ðI]ðJ %)Ð)<Ò$=ðK]ðL &*Ð*>Ò%?ðM]ðN "&Ð&6Ò!7ðO]ðP %)Ð)<Ò$=ðQ]ðR &*Ð*>Ò%?ðS]ðX ! Ò-ðY]ðZ ! Ò-ð[]ð\ ! Ò-ð]]ð^ !% _Ò 5ð_]ð` !% _Ò 5ða]ðb # =Ò1ðc]ðd " ,Ò/ðe]ðf " ,Ò/ðg]ðh # =Ò1ði]ðj ˜5’kðk]ðl !% _Ò 5ðm]ðn ! Ò-ðo]ðp ! Ò-ðq]ðr " ,Ò/ðs]ðt " ,Ò/ðu]ðz ˜Wšð{]ð| ˜Wšð}]ð~ ˜Wšð]ð@ ˜WšðA]ðB ˜WšðC]ðD ˜WšðE]ðF ˜WšðG]ðL ˜WšðM]ðN ˜WšðO]ðP ˜WšðQ]ðR ˜WšðS]ðT ˜WšðU]ðV ˜WšðW]ðX ˜WšðY]ð\ ˜Wšð]]ð^ ˜Wšð_]ð` ˜Wšða]ðb ˜Wšðc]ðd ˜Wšðe]ðf ˜Wšðg]ðh ˜Wšði]ðx #Ÿ<š<ðy]ˆGð| �L‰LŒNäÜ#)×#:Ñ#:È	ÑRØØ9ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ŽHH% È%
IÈ/"IÉIÉIc                 ó¤  • UR                   n [        R                  R                  US9nUR                  SUR                  5      Ul        UR                  SUR
                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                  5      Ul	        UR                  SUR                  5      Ul
        UR                  S	UR                  5      Ul        UR                  S
UR                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                  5      Ul        UR                  SUR                   5      Ul        UR                  SUR"                  5      Ul        UR                  SUR$                  5      Ul        UR                  SUR&                  5      Ul        UR                  SUR(                  5      Ul        UR                  SUR*                  5      Ul        UR                  SUR,                  5      Ul        UR                  SUR.                  5      Ul        UR                  SUR0                  5      Ul        UR                  SUR2                  5      Ul        UR                  SUR4                  5      Ul        UR                  SUR6                  5      Ul        UR                  SUR8                  5      Ul        UR                  SUR:                  5      Ul        UR                  SUR<                  5      Ul        UR                  SUR>                  5      Ul        UR                  SUR@                  5      Ul         UR                  SURB                  5      Ul!        UR                  S URD                  5      Ul"        UR                  S!URF                  5      Ul#        UR                  S"URH                  5      Ul$        UR                  S#URJ                  5      Ul%        UR                  S$URL                  5      Ul&        UR                  S%URN                  5      Ul'        UR                  S&URP                  5      Ul(        UR                  S'URR                  5      Ul)        UR                  S(URT                  5      Ul*        UR                  S)URV                  5      Ul+        UR                  S*URX                  5      Ul,        UR                  S+URZ                  5      Ul-        UR                  S,UR\                  5      Ul.        UR                  S-UR^                  5      Ul/        UR                  S.UR`                  5      Ul0        UR                  S/URb                  5      Ul1        UR                  S0URd                  5      Ul2        UR                  S1URf                  5      Ul3        UR                  S2URh                  5      Ul4        UR                  S3URj                  5      Ul5        UR                  S4URl                  5      Ul6        UR                  S5URn                  5      Ul7        UR                  S6URp                  5      Ul8        UR                  S7URr                  5      Ul9        UR                  S8URt                  5      Ul:        UR                  S9URv                  5      Ul;        UR                  S:URx                  5      Ul<        UR                  S;URz                  5      Ul=        UR                  S<UR|                  5      Ul>        UR                  S=UR~                  5      Ul?        UR                  S>UR€                  5      Ul@        UR                  S?UR‚                  5      UlA        UR                  S@UR„                  5      UlB        UR                  SAUR†                  5      UlC        UR                  SBURˆ                  5      UlD        UR                  SCURŠ                  5      UlE        UR                  SDURŒ                  5      UlF        UR                  SEURŽ                  5      UlG        UR                  SFUR�                  5      UlH        UR                  SGUR’                  5      UlI        UR                  SHUR”                  5      UlJ        UR                  SIUR–                  5      UlK        UR                  SJUR˜                  5      UlL        UR                  SKURš                  5      UlM        UR�                  5         [Ÿ        [         R¢                  SLSM.S SNSO.5      $ ! [¤         a#    [Ÿ        [         R¦                  SPSM.SQSRSO.5      s $ [¨         a5  n[«        U5        [Ÿ        [         R¬                  SPSM.SQSSSO.5      s S nA$ S nAff = f)TNrÃ   rd  rf  re  r  rh  rg  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r=   r6   zProduct updated successfullyr’   r¼   Tr!  rÜ   )Wr;   r   rJ   rG   rd  rf  re  r  rh  rg  ri  rj  rk  rl  rm  rn  ro  rp  rq  rr  rs  rt  ru  rv  rw  rx  ry  rz  r{  r|  r}  r~  r  r€  r�  r‚  rƒ  r„  r…  r†  r‡  rˆ  r‰  rŠ  r‹  rŒ  r�  rŽ  r�  r�  r‘  r’  r“  r”  r•  r–  r—  r˜  r™  rš  r›  rœ  r�  rž  rŸ  r   r¡  r¢  r£  r¤  r¥  r¦  r§  r¨  r©  rª  r«  r¬  r£   r   r   rS   r   rŸ   r�   r‚   r¾   )rY   rZ   r?   r;   rË   r†   s         ra   rß   ÚProductAPIView.put  s·  € Ø�|‰|ˆð~	ô —o‘o×)Ñ)¨RÐ)Ð0ˆGØ#'§8¡8¨N¸G×<PÑ<PÓ#QˆGÔ Ø#'§8¡8¨N¸G×<PÑ<PÓ#QˆGÔ Ø"&§(¡(¨=¸'×:MÑ:MÓ"NˆGÔØ"Ÿh™h y°'·/±/ÓBˆGŒOØ#'§8¡8¨N¸G×<PÑ<PÓ#QˆGÔ Ø#'§8¡8¨N¸G×<PÑ<PÓ#QˆGÔ ð
 #'§(¡(¨=¸'×:MÑ:MÓ"NˆGÔØ"&§(¡(¨=¸'×:MÑ:MÓ"NˆGÔØ $§¡¨°w×7IÑ7IÓ JˆGÔØ$(§H¡HÐ-=¸w×?UÑ?UÓ$VˆGÔ"Ø $§¡¨°w×7IÑ7IÓ JˆGÔØŸ8™8 G¨W¯]©]Ó;ˆGŒMØ"Ÿh™h z°7×3CÑ3CÓDˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔàŸ8™8 G¨W¯]©]Ó;ˆGŒMØ"Ÿh™h z°7×3CÑ3CÓDˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔàŸ8™8 G¨W¯]©]Ó;ˆGŒMØ"Ÿh™h z°7×3CÑ3CÓDˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔàŸ(™( 6¨7¯<©<Ó8ˆGŒLØ!ŸX™X i°·±ÓAˆGŒOØ"Ÿh™h z°7×3CÑ3CÓDˆGÔØŸ(™( 6¨7¯<©<Ó8ˆGŒLØ!ŸX™X i°·±ÓAˆGŒOØ"Ÿh™h z°7×3CÑ3CÓDˆGÔàŸ8™8 G¨W¯]©]Ó;ˆGŒMØ"Ÿh™h z°7×3CÑ3CÓDˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔà$(§H¡HÐ-=¸w×?UÑ?UÓ$VˆGÔ"Ø'+§x¡xÐ0CÀW×E^ÑE^Ó'_ˆGÔ%Ø(,¯©Ð1EÀw×GaÑGaÓ(bˆGÔ&à$(§H¡HÐ-=¸w×?UÑ?UÓ$VˆGÔ"Ø'+§x¡xÐ0CÀW×E^ÑE^Ó'_ˆGÔ%Ø(,¯©Ð1EÀw×GaÑGaÓ(bˆGÔ&à$(§H¡HÐ-=¸w×?UÑ?UÓ$VˆGÔ"Ø'+§x¡xÐ0CÀW×E^ÑE^Ó'_ˆGÔ%Ø(,¯©Ð1EÀw×GaÑGaÓ(bˆGÔ&ð  $Ÿx™x¨°W×5FÑ5FÓGˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔØ#'§8¡8¨O¸W×=RÑ=RÓ#SˆGÔ!Ø#'§8¡8¨O¸W×=RÑ=RÓ#SˆGÔ!Ø!%§¡¨-¸×9LÑ9LÓ!MˆGÔØ $§¡¨°w×7IÑ7IÓ JˆGÔØ $§¡¨°w×7IÑ7IÓ JˆGÔØ!%§¡¨-¸×9LÑ9LÓ!MˆGÔØŸ™ %¨¯©Ó5ˆGŒKØ#'§8¡8¨O¸W×=RÑ=RÓ#SˆGÔ!Ø#Ÿx™x¨°W×5FÑ5FÓGˆGÔØ#Ÿx™x¨°W×5FÑ5FÓGˆGÔØ $§¡¨°w×7IÑ7IÓ JˆGÔØ $§¡¨°w×7IÑ7IÓ JˆGÔàŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMàŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMàŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMØŸ8™8 G¨W¯]©]Ó;ˆGŒMð �L‰LŒNô Ü#)×#5Ñ#5À9ÑMØØ9ñó ð øô
 "ó 	ÜÜ#)×#<Ñ#<È(ÑSØØ*ñó ò ô
 ó 	Ü�!ŒHÜÜ#)×#>Ñ#>ÈHÑUØØ1ñó õ ûð	ús$   Žgg% ç%*iè	iè*i
éié
ic                 ó  • UbN   [         R                  R                  US9nUR                  5         [	        [
        R                  SS.S SS.5      $ g ! [         R                   a#    [	        [
        R                  SS.S SS.5      s $ f = f)NrÃ   r=   r6   zProduct deleted successfullyr’   r¼   zNo product found)	r   rJ   rG   r½   r   r   rS   rK   rŸ   )rY   rZ   r?   Úproducts       ra   r½   ÚProductAPIView.delete£  s—   € Ø‰>ðô "Ÿ/™/×-Ñ-°Ð-Ð4�Ø—‘Ô äÜ'-×'9Ñ'9ÀyÑQØ!Ø=ñ!ó ð ð! øô, ×'Ñ'ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø1ñ!ó ò ðús   …AA Á4B
Â	B
rd   rp   )rf   rg   rh   ri   r!   rw   rG   rb   rß   r½   rj   rd   rk   ra   rb  rb  û  s%   † Ø)Ð+ÐôiòVnòhAõLrk   rb  c                   ó$   • \ rS rSrSS jrS rSrg)ÚClientAPIViewiÄ  Nc                 ó–  • Ub®   [         R                  R                  US9n UR                  (       a  UR                  R                  OS nUR                  UR                  UR                  UR                  UR                  UUR                  S.n[        [        R                  SS.S US.5      $  S
n/ n[         R                  R#                  5       nU H]  nUS-  nUR%                  UUR                  UR&                  UR(                  UR*                  UR,                  UR.                  S.5        M_     [        [        R                  SS.S US.5      $ ! [
         a    S n GNf = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f)NrÃ   ©r?   r>   r7   ÚdescriptionÚspecificationÚsfiler   r=   r6   ru   r¼   Tr!  r’   r   r	   )r­  r?   Úclient_namerÄ   r1   rä   ré   )r   rJ   rG   rÀ  rP   r÷   r?   r>   r7   r¾  r¿  r   r   rS   r   rŸ   r   Úallrø   rÁ  rÄ   r1   rä   ré   )	rY   rZ   r?   rË   Úflr;   r®  rú   Úclients	            ra   rG   ÚClientAPIView.getÇ  sÇ  € Ø‰>ðÜ!Ÿ/™/×-Ñ-°Ð-Ð4�ðØ.5¯m¯m˜Ÿ™×*Ò*À�Bð "Ÿ*™*Ø#ŸL™LØ#ŸL™Là#*×#6Ñ#6Ø$+×$9Ñ$9ØØ%Ÿn™nñ
�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ð.à�Ø�	ô  Ÿ™×+Ñ+Ó-�ã%�GØ˜Q‘J�Eð ×$Ñ$Ø$Ø%Ÿj™jØ'.×':Ñ':Ø!(§¡à!(§¡Ø#*§?¡?Ø&Ÿ{™{ñ
&ö 
ñ	  &ô"  Ü'-×'9Ñ'9ÀyÑQØ!Ø%ñ!ó ð øô} "ó Ø“Bðûô& &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûô` &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðúsH   …E+ £)E ÁA%E+ Â3B$F ÅE(Å$E+ Å'E(Å(E+ Å+*FÆFÆ*GÇGc           
      ó`  • UR                   n [        R                  R                  US   US   US   US   US   US   US   S9nUR	                  5         [        [        R                  S	S
.S SS.5      $ ! [         a-  n[        [        R                  SS
.SSU 3S.5      s S nA$ S nAff = f)NÚ
clientNamer  rä   r1   ÚaadharNumberÚ	panNumberÚdateOfJoining)rÁ  rÄ   rä   r1   Úaadharr  ré   r=   r6   zClient created successfullyr’   r¼   TrÐ   )
r;   r   rJ   r    r£   r   r   rÒ   rÓ   r¾   r³  s        ra   rb   ÚClientAPIView.post  sÏ   € Ø�|‰|ˆð	Ü—n‘n×+Ñ+Ø  Ñ.à˜>Ñ*Ø˜i™Ø˜G‘}Ø˜^Ñ,Ø˜+Ñ&Ø˜/Ñ*ð ,ð ˆGð �L‰LŒNäÜ#)×#:Ñ#:È	ÑRØØ8ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ŽA'A6 Á6
B-Â "B(Â"B-Â(B-rd   rp   ©rf   rg   rh   ri   rG   rb   rj   rd   rk   ra   r»  r»  Ä  s   † ôOõbrk   r»  c                   ó$   • \ rS rSrSS jrS rSrg)ÚLoanAPIViewi‚  Nc                 óØ  • Ub®   [         R                  R                  US9n UR                  (       a  UR                  R                  OS nUR                  UR                  UR                  UR                  UR                  UUR                  S.n[        [        R                  SS.S US.5      $  / n[         R                  R#                  S
S9nU H]  n[$        R                  R                  UR&                  S9n	UR)                  UR                  U	R*                  U	R,                  S.5        M_     Sn
/ n[         R                  R/                  5       nU Hû  nU
S-  n
[$        R                  R                  UR&                  S9n[0        R                  R#                  UR                  S9R3                  [5        S5      S9S   =(       d    SnUR)                  U
UR                  S[7        UR                  5      -   UUR*                  UR,                  UR8                  UR:                  UR<                  UR>                  UR@                  S.5        Mý     [        [        R                  SS.S UUS.5      $ ! [
         a    S n GN<f = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f)NrÃ   r½  r=   r6   ru   r¼   Tr!  r’   ÚActive)Úloan_status)Úloan_idr>   rÄ   r   r	   ©rÓ  Úcollectedamonut©Útotalr×  ÚL00)r­  r?   rÓ  ÚpaidrÁ  Úclient_phoneÚloan_amountÚloan_tenure_monthsÚcollection_typeÚcollection_dayrÒ  )r   r5   r;   Ú
activeloan)!r   rJ   rG   rÀ  rP   r÷   r?   r>   r7   r¾  r¿  r   r   rS   r   rŸ   r   r�   r   Ú	client_idrø   rÁ  rÄ   rÂ  r   Ú	aggregater(   rV   rÛ  rÜ  rÝ  rÞ  rÒ  )rY   rZ   r?   rË   rÃ  r;   rß  ÚloaÚiÚclientsr®  rú   ÚloanrÄ  Úcollectedamounts                  ra   rG   ÚLoanAPIView.get…  sÓ  € Ø‰>ðÜ!Ÿ/™/×-Ñ-°Ð-Ð4�ðØ.5¯m¯m˜Ÿ™×*Ò*À�Bð "Ÿ*™*Ø#ŸL™LØ#ŸL™Là#*×#6Ñ#6Ø$+×$9Ñ$9ØØ%Ÿn™nñ
�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ðHà�
ä—l‘l×)Ñ)°hÐ)Ð?�ó �Aô #ŸN™N×.Ñ.°!·+±+Ð.Ð>�Gð ×%Ñ%Ø$%§D¡DØ!(×!4Ñ!4Ø")§-¡-ñ'ö ñ ð �Ø�	ô —|‘|×'Ñ'Ó)�ã#�GØ˜Q‘J�Eô "Ÿ>™>×-Ñ-°×1BÑ1BÐ-ÐC�Fä&0×&8Ñ&8×&?Ñ&?ÈÏ
É
Ð&?Ð&S×&]Ñ&]Ü!Ð"3Ó4ð '^ð 'àñ'÷ '$à"#ð $ð ×$Ñ$Ø$Ø%Ÿj™jØ"'¬¨G¯J©J«Ñ"7Ø /Ø(.×(:Ñ(:Ø(.¯©Ø'.×':Ñ':Ø.5×.HÑ.Hà+2×+BÑ+BØ*1×*@Ñ*@Ø'.×':Ñ':ñ&ö ñ  $ôB  Ü'-×'9Ñ'9ÀyÑQØ!Ø%Ø#-ñ	!ó ð øôo "ó Ø“Bðûô& &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûôT &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðúsH   …J £)I9 ÁA%J Â3GJ< É9J	ÊJ ÊJ	Ê	J Ê*J9Ê8J9Ê<*K)Ë(K)c                 ó&  • UR                   n Sn[        R                  R                  US   US   US   UUS   US   US   US   US	   US
   S9
nUR	                  5         SSKJn  U" [        R                  [        R                  5      nSnSnUR                  R                  U[        R                  US9n	[        [        R                  SS.S SS.5      $ ! [         a-  n
[        [        R                   SS.SSU
 3S.5      s S n
A
$ S n
A
ff = f)Nr   ÚclientIdÚ
loanAmountÚloanDateÚ
loanTenureÚemiStartDateÚcollectionTypeÚavgRateÚ
loanStatusÚremarks)
rà  rÛ  Ú	loan_dateÚinterest_raterÜ  Úemi_start_daterÝ  rÞ  rÒ  rñ  r)   z+918220432097z"Hi, This is a Django test message!)ÚtoÚmessaging_service_sidÚbodyr=   r6   úLoan created successfullyr’   r¼   TrÐ   )r;   r   rJ   r    r£   Útwilio.restr   r   ÚTWILIO_ACCOUNT_SIDÚTWILIO_AUTH_TOKENÚmessagesÚTWILIO_MESSAGING_SERVICE_SIDr   r   rÒ   rÓ   r¾   )rY   rZ   r;   ÚraterË   ÚTwilioClientrÄ  Úrecipient_numberÚmessage_bodyr:   r†   s              ra   rb   ÚLoanAPIView.postð  s8  € Ø�|‰|ˆð/	ØˆDÜ—l‘l×)Ñ)à˜zÑ*Ø! ,Ñ/Ø 
Ñ+Ø $Ø$(¨Ñ$6Ø $ ^Ñ 4Ø!%Ð&6Ñ!7Ø $ Y¡Ø! ,Ñ/Ø˜i™ð *ð ˆGð( �L‰LŒNå:á!¤(×"=Ñ"=¼x×?YÑ?YÓZˆFà.ÐØ?ˆLà—o‘o×,Ñ,Ø#Ü&.×&KÑ&KØ!ð -ð ˆGô Ü#)×#:Ñ#:È	ÑRØØ6ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ŽC
C Ã
DÃ#"DÄDÄDrd   rp   rÍ  rd   rk   ra   rÏ  rÏ  ‚  s   † ôiõV2rk   rÏ  c                   ó$   • \ rS rSrSS jrS rSrg)ÚCollectionAPIViewio  Nc                 óJ  • UGbQ   / n[         R                  R                  US9nU HL  nUR                  UR                  UR
                  UR                  UR                  UR                  S.5        MN     [         R                  R                  US9R                  [        S5      S9S   =(       d    Sn[        R                  R                  US9n[        R                  R                  UR                  S9nUR                  UR                   UR"                  UR$                  UR&                  US.n	[)        [*        R,                  S	S
.S UU	S.5      $  Sn
/ n[        R                  R3                  5       nU H¦  nU
S-  n
[        R                  R                  UR                  S9nUR                  U
UR                  S[5        UR                  5      -   UR                  UR"                  UR$                  UR6                  UR8                  UR&                  S.	5        M¨     [)        [*        R,                  S	S
.S US.5      $ ! [.         a#    [)        [*        R0                  SS
.SSS.5      s $ f = f! [.         a#    [)        [*        R0                  SS
.SSS.5      s $ f = f)NrÔ  )r?   rÕ  ÚmethodrÓ  r   rÕ  rÖ  r×  r   rÃ   )rÁ  rÄ   rÛ  ÚtenurerÒ  rÙ  r=   r6   )r   r5   r;   Údatasr¼   Tr!  r’   r	   rØ  ©	r­  r?   rÓ  rÁ  rÛ  rÜ  rÝ  rÞ  rÒ  ru   )r   rJ   r�   rø   r?   rÕ  r  rÓ  Ú
created_atrá  r(   r   rG   r   rà  rÁ  rÄ   rÛ  rÜ  rÒ  r   r   rS   r   rŸ   rÂ  rV   rÝ  rÞ  )rY   rZ   r?   ÚdogoÚ
collectionÚmræ  râ  Úclir;   r®  rú   rå  rË   rÄ  s                  ra   rG   ÚCollectionAPIView.getr  s•  € ØŠ>ð/à�Ü'×/Ñ/×6Ñ6¸rÐ6ÐB�
ã#�Að —K‘KØ Ÿt™tØ,-×,=Ñ,=Ø#$§8¡8Ø$%§I¡IØ!"§¡ñ!ö ñ $ô #-×"4Ñ"4×";Ñ";ÀBÐ";Ð"G×"QÑ"QÜ!Ð"3Ó4ð #Rð #àñ#÷ #$à"#ð  ô —l‘l×&Ñ&¨"Ð&Ð-�ä—n‘n×(Ñ(¨C¯M©MÐ(Ð:�à #§¡ØŸ)™)Ø #§¡Ø×1Ñ1Ø #§¡Ø(ñ�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø Ø"ñ	!ó ð ð-à�Ø�	ô
 —|‘|×'Ñ'Ó)�ã#�GØ˜Q‘J�Eô "Ÿ>™>×-Ñ-°×1BÑ1BÐ-ÐC�Fð ×$Ñ$Ø$Ø%Ÿj™jØ"'¬¨G¯J©J«Ñ"7ð )/×(:Ñ(:Ø'.×':Ñ':Ø.5×.HÑ.Hà+2×+BÑ+BØ*1×*@Ñ*@Ø'.×':Ñ':ñ&ö ñ  $ô2  Ü'-×'9Ñ'9ÀyÑQØ!Ø%ñ!ó ð øôU &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûô^ &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðús%   †EI ÅC-I5 É*I2É1I2É5*J"Ê!J"c                 óX  • UR                   n US   nUS   nUS   nUR                  SS5      n[        R                  R	                  UUUUS9n[        R                  R                  US9R                  [        S5      S	9S
   =(       d    Sn[        R                  R                  US9n	U	R                  U::  a  SU	l
        U	R                  5         [        [        R                  SS.S SS.5      $ ! [         a-  n
[        [        R                   SS.SSU
 3S.5      s S n
A
$ S n
A
ff = f)NÚloanIdÚamountCollectedÚpaymentModerñ  rì   )rÓ  rÕ  r  rñ  rÔ  rÕ  rÖ  r×  r   rÃ   ÚClosedr=   r6   rø  r’   r¼   TrÐ   )r;   rG   r   rJ   r    r�   rá  r(   r   rÛ  rÒ  r£   r   r   rÒ   rÓ   r¾   )rY   rZ   r;   rÓ  Úamount_collectedÚpayment_moderñ  r  Úcollected_totalrå  r†   s              ra   rb   ÚCollectionAPIView.postÔ  sQ  € Ø�|‰|ˆð(	Ø˜8‘nˆGØ#Ð$5Ñ6ÐØ Ñ.ˆLØ—h‘h˜y¨"Ó-ˆGô $×+Ñ+×2Ñ2ØØ 0Ø#Øð	 3ð ˆJô )×0Ñ0×7Ñ7ÀÐ7ÐH×RÑRÜÐ+Ó,ð Sð àñ÷ àð ô
 —<‘<×#Ñ# wÐ#Ð/ˆDð ×Ñ ?Ó2Ø#+�Ô Ø—	‘	”ô Ü#)×#:Ñ#:È	ÑRØØ6ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ŽC#C2 Ã2
D)Ã<"D$ÄD)Ä$D)rd   rp   rÍ  rd   rk   ra   r  r  o  s   † ô`õD+rk   r  c                   ó   • \ rS rSrSS jrSrg)ÚGetclientAPIViewi  Nc                 ó¾  • Ubx   [         R                  R                  US9nUR                  UR                  UR
                  UR                  UR                  S.n[        [        R                  SS.S US.5      $  S
n/ n[         R                  R                  5        H<  nUS-  nUR                  UUR                  UR                  UR
                  S.5        M>     [        [        R                  SS.S US.5      $ ! [         a#    [        [        R                  SS.SSS	.5      s $ f = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f)NrÃ   )r?   rë   rÄ   r1   rä   r=   r6   ru   r¼   Tr!  r’   r   r	   )r­  r?   rÄ  rÄ   )r   rJ   r�   r?   rë   rÄ   r1   rä   r   r   rS   r   rŸ   rÂ  rø   rÁ  )rY   rZ   r?   rË   r;   r®  rú   s          ra   rG   ÚGetclientAPIView.get  sk  € Ø‰>ðÜ Ÿ.™.×/Ñ/°2Ð/Ð6�à!Ÿ*™*Ø")×"4Ñ"4Ø$Ÿ]™]Ø$Ÿ]™]Ø&Ÿ™ñ�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ðð �Ø�	ä%Ÿ~™~×1Ñ1Ö3�GØ˜Q‘J�Eà×$Ñ$Ø$Ø%Ÿj™jØ")×"5Ñ"5Ø!(§¡ñ	&ö ñ  4ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø%ñ!ó ð øô9 &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûôB &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðús%   …A6C? Á=BD/ Ã?*D,Ä+D,Ä/*EÅErd   rp   r@  rd   rk   ra   r  r    s   † ÷7rk   r  c                   ó   • \ rS rSrSS jrSrg)ÚOldloanAPIViewiA  Nc                 óà  • Ub�   / n[         R                  R                  US9nU HW  nUR                  UR                  UR
                  UR                  UR                  UR                  UR                  S.5        MY     [        [        R                  SS.S US.5      $  S
n/ n[         R                  R                  5       nU H¦  n	US-  n[         R                  R#                  U	R$                  S9n
UR                  UU	R                  S['        U	R                  5      -   U
R(                  U	R
                  U	R                  U	R*                  U	R,                  U	R                  S.	5        M¨     [        [        R                  SS.S US.5      $ ! [         a#    [        [        R                  SS.SSS	.5      s $ f = f! [         a#    [        [        R                  SS.SSS	.5      s $ f = f)N)rà  )r  rÛ  rÓ  ÚemisdateÚemildaterÒ  r=   r6   ru   r¼   Tr!  r’   r   r	   rÃ   rØ  r	  )r   rJ   r�   rø   rÜ  rÛ  r?   rô  rò  rÒ  r   r   rS   r   rŸ   rÂ  r   rG   rà  rV   rÁ  rÝ  rÞ  )rY   rZ   r?   r  r  r  r®  rú   rå  rË   rÄ  s              ra   rG   ÚOldloanAPIView.getD  sî  € Ø‰>ð à�Ü!Ÿ\™\×0Ñ0¸2Ð0Ð>�
ã#�Að —K‘KØ#$×#7Ñ#7Ø()¯©Ø$%§D¡DØ%&×%5Ñ%5Ø%&§[¡[Ø()¯©ñ	!ö 	ñ $ô"  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð ð-à�Ø�	ô
 —|‘|×'Ñ'Ó)�ã#�GØ˜Q‘J�Eô "Ÿ>™>×-Ñ-°×1BÑ1BÐ-ÐC�Fð ×$Ñ$Ø$Ø%Ÿj™jØ"'¬¨G¯J©J«Ñ"7ð )/×(:Ñ(:Ø'.×':Ñ':Ø.5×.HÑ.Hà+2×+BÑ+BØ*1×*@Ñ*@Ø'.×':Ñ':ñ&ö ñ  $ô2  Ü'-×'9Ñ'9ÀyÑQØ!Ø%ñ!ó ð øôU &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûô^ &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðús%   …BF Â"C-G  Æ*F=Æ<F=Ç *G-Ç,G-rd   rp   r@  rd   rk   ra   r  r  A  s   † ÷Qrk   r  c                   ó   • \ rS rSrS rSrg)Ú	FpAPIViewi˜  c                 ó´  • UR                   n UR                  S0 5      nUR                  S5      nUR                  S5      n[        U5      n[        R                  R                  US9nXgl        UR                  5         [        [        R                  SS.S SS.5      $ ! [         a-  n[        [        R                  S	S.S
SU 3S.5      s S nA$ S nAff = f)Nr�   r1   r/   r0   r=   r6   zPassword reset successfullyr’   r¼   TrÐ   )r;   rG   r   r   rJ   r/   r£   r   r   rS   rÓ   r¾   )	rY   rZ   r;   r�   r1   r/   r  Úmanr†   s	            ra   rb   ÚFpAPIView.postœ  sÖ   € Ø�|‰|ˆð	à—X‘X˜h¨Ó+ˆFð —J‘J˜wÓ'ˆEØ—z‘z *Ó-ˆHô ,¨HÓ5ˆOä—,‘,×"Ñ"¨Ð"Ð/ˆCà*ŒLà�H‰HŒJô Ü#)×#5Ñ#5À9ÑMØØ8ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ŽBB  Â 
CÂ*"CÃCÃCrd   Nre   rd   rk   ra   r$  r$  ˜  s   † õ!rk   r$  c                   ó.   • \ rS rSr\4rSS jrSS jrSrg)ÚNotificationAPIViewiÁ  Nc                 óì  • Ubb   [         R                  R                  US9nUR                  UR                  UR
                  S.n[        [        R                  SS.S US.5      $ S
SKJn  S
SKJn   S
n/ nUR                  R                  n	[         R                  R                  U	S9n
U
R"                  S:X  Ga  [$        R                  R'                  SS/S9R)                  S5      nU H¯  nUS-  n UR                  (       a  UR                  R*                  OSnUR0                  S:X  a  SU 3nOUR0                  S:X  a  U S3nOSnUR3                  UUR                  UR0                  UUR4                  U" UR4                  U" 5       5      S-   S.5        M±     [        [        R                  SS.S U[7        U5      S.5      $ [        [        R8                  SS.SS/ S.5      $ ! [         a#    [        [        R                  SS.SSS	.5      s $ f = f! [,        R.                   a    Sn GNf = f! [:         a3  n[        [        R<                  SS.S[?        U5      S	.5      s S nA$ S nAff = f)NrÃ   )r?   rë   rÄ   r=   r6   ru   r¼   Tr!  r’   r   )Ú	timesincer'  r2   r	   ÚnewuserÚpaymentuser)Útype__inz-created_atÚUnknownzNew Company Registered: z made a paymentzUnknown notification typez ago)r­  r?   Útyper:   r
  Útime_ago)r   r5   r;   r<  Ú	forbiddenz1You do not have permission to view notifications.r9   ) ÚVendorrJ   rG   r?   rë   rÄ   r   r   rS   r   rŸ   Údjango.utils.timesincer+  r;  r¡   r\   r
   rF   r   r�   rõ   r.   r   rK   r0  rø   r
  ÚlenrN   r�   r§   rV   )rY   rZ   r?   rË   r;   r+  r¡   r®  Únoter=  rC   ÚnotificationsÚnr.   r:   r†   s                   ra   rG   ÚNotificationAPIView.getÄ  su  € Ø‰>ðÜ Ÿ.™.×,Ñ,°Ð,Ð3�à!Ÿ*™*Ø")×"4Ñ"4Ø$Ÿ]™]ñ�ô  Ü'-×'9Ñ'9ÀyÑQØ!Ø ñ!ó ð õ 9Ý1ð9Ø�Ø�Ø—\‘\—_‘_�ä"×*Ñ*×.Ñ.°rÐ.Ð:�à—<‘< 1Ô$Ü$0×$8Ñ$8×$?Ñ$?Ø"+¨]Ð!;ð %@ð %ç‘h˜}Ó-ð "ó +˜Ø ™
˜ð1Ø:;¿&¿& q§v¡v§¢Ài˜Hð Ÿ6™6 YÓ.Ø(@ÀÀ
Ð&K™GØŸV™V }Ó4Ø)1¨
°/Ð&B™Gà&A˜GàŸ™Ø#(Ø"#§$¡$Ø$%§F¡FØ'.Ø*+¯,©,Ù(1°!·,±,ÁÃÓ(FÈÑ(Oñ%ö ñ +ô0 $Ü+1×+=Ñ+=È9Ñ"UØ!%Ø $Ü!$ T£ñ	%ó ð ô $Ü+1×+DÑ+DÐR]Ñ"^Ø!%Ø#VØ "ñ	%ó ð øôu &ó ÜÜ'-×'@Ñ'@ÈhÑWØ!Ø.ñ!ó ò ðûô:  $×0Ñ0ó 1Ø'0›Hð1ûôH ó ÜÜ'-×'LÑ'LÐZbÑcØ!Ü" 1›vñ!ó õ ûðús\   …A G) Á3B H6 Ã4)HÄB*H6 Ç H6 Ç)*HÈHÈH3È/H6 È2H3È3H6 È6
I3É (I.É(I3É.I3c                 ó<  •  UbM  [         R                  R                  US9nUR                  5         [	        [
        R                  SS.S SS.5      $ UR                  R                  n[         R                  R                  US9R                  5         [	        [
        R                  SS.S SS.5      $ ! [         a#    [	        [
        R                  SS.S	S
S.5      s $ [         a3  n[	        [
        R                  SS.S	[        U5      S.5      s S nA$ S nAff = f)NrÃ   r=   r6   z!Notification deleted successfullyr’   r2   z&All notifications deleted successfullyr¼   TzNotification not found)r   rJ   rG   r½   r   r   rS   r\   r?   r�   r   rŸ   r�   r§   rV   )rY   rZ   r?   Únotificationr=  r†   s         ra   r½   ÚNotificationAPIView.delete	  s  € ð	Ø‰~ä+×3Ñ3×7Ñ7¸2Ð7Ð>�Ø×#Ñ#Ô%ÜÜ'-×'9Ñ'9ÀyÑQØ!ØBñ!ó ð ð —\‘\—_‘_�ä×$Ñ$×+Ñ+°BÐ+Ð7×>Ñ>Ô@ÜÜ'-×'9Ñ'9ÀyÑQØ!ØGñ!ó ð øô
 "ó 	ÜÜ#)×#<Ñ#<È(ÑSØØ3ñó ò ô
 ó 	ÜÜ#)×#HÑ#HÐV^Ñ_ØÜ˜q›6ñó õ ûð	ús+   ‚AB3 ÁA B3 Â3*DÃ	DÃ((DÄDÄDrd   rp   )	rf   rg   rh   ri   r!   rw   rG   r½   rj   rd   rk   ra   r)  r)  Á  s   † Ø)Ð+ÐôW÷r rk   r)  c                   ó   • \ rS rSrS rSrg)Ú ProductactivestatusupdateAPIViewiB	  c                 óp  •  [         R                  R                  US9nUR                  S:X  a  SUl        UR	                  5         OSUl        UR	                  5         [        [        R                  SS.S SS.5      $ ! [         a-  n[        [        R                  SS.S	S
U 3S.5      s S nA$ S nAff = f)NrÃ   r	   r4   r=   r6   zQuote accepted successfullyr’   r¼   TrÐ   )	r   rJ   rG   r   r£   r   rÒ   rÓ   r¾   )rY   rZ   r?   Úvenr†   s        ra   rß   Ú$ProductactivestatusupdateAPIView.putD	  s´   € ð!	ô —/‘/×%Ñ%¨Ð%Ð,ˆCà�z‰z˜Q‹Ø�”
Ø—‘•
ð �”
Ø—‘”
ô Ü#)×#:Ñ#:È	ÑRØØ8ñó ð øô
 ó 	ÜÜ#)×#>Ñ#>ÈHÑUØØ5°a°SÐ9ñó õ ûð	ús   ‚A;A> Á>
B5Â"B0Â*B5Â0B5rd   N)rf   rg   rh   ri   rß   rj   rd   rk   ra   r>  r>  B	  s   † õ$rk   r>  )ZÚdjango.confr   Údjango.shortcutsr   Úrest_framework.viewsr   Úrest_framework.responser   Úrest_frameworkr   Úmodelsr
   r   r   r   r   r   r   Údjango.core.exceptionsr   Úrest_framework.exceptionsr   Údjango.contrib.authr   r   Úrest_framework_simplejwt.tokensr   Údjango.contrib.auth.hashersr   Údjango.contrib.auth.modelsr   Údjango.utilsr   Údjtzr   r   r   ÚrequestsÚdjango.httpr   ÚpyodbcÚbase64rN  r   ÚpandasÚpdÚrest_framework.genericsr   r   Úserializersr    Úrest_framework.permissionsr!   r"   ÚjsonÚdjango.core.mailr#   Úschool.settingsr$   ÚpdfkitrH   r¤   r%   Údjango.utils.cryptor&   r(   rù  rÿ  r+   rm   r‡   rŠ   r‹   r�   rª   r°   rÁ   râ   r%  rB  r[  rb  r»  rÏ  r  r  r  r$  r)  r>  rd   rk   ra   Ú<module>r^     sÄ  ðÝ  Ý #Ý (Ý ,Ý !ß P× PÑ PÝ 5Ý .ß 3Ý 8Ý 5Ý +Ý )Ý !ß .Ñ .Û Ý !Ý $Û Û Ý Û ß @Ý 'Ý 6ß #Û Ý )Ý $Û Ý 5ã 	Ý  Û å &Ý 1Ý  õ
 ,ß 3Ý ,Ý !Ý (Ý 5Ý 8Û 	Ý .ôS4�7ô S4ôn�/ô ò8+ò4+õ: /ÙÓ€ô#�Wô #ôL�gô õ@ Ý !ôD�wô DôR˜7ô ôJ}�gô }ôB
?˜gô ?ôHN˜Gô Nôl$/˜'ô $/ôND�Wô DôRr�Gô rô|`�'ô `ôZP˜ô Pôl:�wô :ôxT�Wô Tôn%�ô %ôR|˜'ô |ôB& wõ &rk   