
    u|hZ                        d dl mZmZ d dlmZ d dlmZ d dlmZ d dl	m
Z
mZmZ d dlmZmZ d dlmZ d dlZd d	lmZ d d
lmZ d dlmZmZmZ ddlmZmZmZmZm Z  d dl!m"Z"m#Z#  G d dee      Z$ G d dee      Z% G d dee      Z& G d dee      Z' G d dee      Z( G d dee      Z) G d dee      Z* G d dee      Z+ G d d ee      Z, G d! d"ee      Z- G d# d$ee      Z. G d% d&ee      Z/y)'    )renderredirect)View)messages)LoginRequiredMixin)F
FloatFieldCount)CastRound)JsonResponseN)datetime)Team)Csr_PartnersPartner_OrganizationsUsers   )DeliverablesProgram_TypesProgressProjectsPrograms)States	Districtsc                       e Zd Zd Zd Zy)ProgramTypeViewc                 t    t               }|j                  d   |_        |j                          t	        d      S )Nprogram_typeuserDepartmentView)r   POSTr   saver   selfrequestr   s      Q/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTALS/MIS_PORTAL/program_department/views.pypostzProgramTypeView.post   s2    $$+LL$@!,--    c                 4   	 t         j                  j                  |j                  d         }|j	                          t        j                  |d       t        d      S # t         j                  $ r$ t        j                  |d       t        d      cY S w xY w)Nidr)   z"Program type deleted successfully.r   zProgram type doesn't exists.)
r   objectsgetGETdeleter   successr   DoesNotExisterrorr"   s      r%   r,   zProgramTypeView.get   s    	2(0044D8I4JL!W&JK011)) 	2NN7$BC011	2   AA   4BBN__name__
__module____qualname__r&   r,    r'   r%   r   r      s    .2r'   r   c                       e Zd Zd Zd Zy)ProjectViewc                     t               }|j                  d   |_        |j                  d   |_        |j	                          t        d      S )Nr   projectr   )r   r    program_type_idr;   r!   r   r#   r$   r;   s      r%   r&   zProjectView.post&   s?    *"),,~">!,,y1,--r'   c                 4   	 t         j                  j                  |j                  d         }|j	                          t        j                  |d       t        d      S # t        j                  $ r$ t        j                  |d       t        d      cY S w xY w)Nr)   r*   zProject deleted successfully.r   zProject doesn't exists.)r   r+   r,   r-   r.   r   r/   r   r   r0   r1   r=   s      r%   r,   zProjectView.get.   s    	2&&**gkk$.?*@GNNW&EF011)) 	2NN7$=>011	2r2   Nr3   r7   r'   r%   r9   r9   $   s    .2r'   r9   c                       e Zd Zd Zd Zy)ProgramViewc           
      T   t         j                  j                         }t        j                  j                         }t        j                  j                         }t
        j                  j                         }t        j                  j                         }t        |d|||||d      S )Nzadd-program.html)program_typesstatescsr_partnerspartner_organizationsmembers)r   r+   allr   r   r   r   r   )r#   r$   rB   rC   rD   rE   rF   s          r%   r,   zProgramView.get;   s    %--113##%#++//1 5 = = A A C,,""$g1]_e  yE  av  DK  4L  M  	Mr'   c                 t   t               }|j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_	        |j                  j                  d      |_
        |j                  j                  d	      |_        |j                  j                  d
      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        dj+                  |j                  j-                  d            |_        dj+                  |j                  j-                  d            |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_         |j                  j                  d      |_!        |j                  j                  d      |_"        |j                  j                  d       |_#        |jI                          tK        jL                  |d!       tO        d"      S )#Nr   r;   statedistrictcsr_partnerpartner_organization	from_dateteambeneficiary_nameagegendercastemobilereligion
occupationfamily_incomedifferently_abledcategory,document_applyscheme_applysupportdescribe_supportareasession_typengo organisation_representative_nameorganisation_typeworking_periodno_of_membersworking_areaorganisation_supportProgram added successfully.programs)(r   r    r,   r<   
project_idstate_iddistrict_idcsr_partner_id
partner_idrM   team_idrO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   joingetlistrZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   r!   r   r/   r   )r#   r$   programs      r%   r&   zProgramView.postC   s
   *"),,"2"2>"B$\\--i8"<<++G4%ll..z:!(!1!1-!@$\\--.DE#LL,,[9!,,**62#*<<#3#34F#G ll&&u- ))(3((1 ))(3"<<++J7$\\--l; ' 0 0 A$+LL$4$45H$I!"<<++J7!$',,*>*>?O*P!Q"xx(<(<^(LM!,,**95#*<<#3#34F#G ||''/&||//?ll&&u-3:<<3C3CDf3g0$+LL$4$45H$I!!(!1!12B!C ' 0 0 A&||//?'.||'7'78N'O$"?@
##r'   Nr4   r5   r6   r,   r&   r7   r'   r%   r@   r@   9   s    M$$r'   r@   c                       e Zd Zd Zd Zy)EditProgramViewc                    t         j                  j                  |      }t        j                  j	                         }t
        j                  j	                         }t        j                  j	                         }t        j                  j	                         }t        j                  j	                         }t        |d||||||d      S )Nr*   zedit-program.html)rB   rC   rD   rE   rF   rq   )
r   r+   r,   r   rG   r   r   r   r   r   )	r#   r$   r)   rq   rB   rC   rD   rE   rF   s	            r%   r,   zEditProgramView.getl   s    ""&&B&/%--113##%#++//1 5 = = A A C,,""$g2m`f  zF  bw  EL  Za  5b  c  	cr'   c                    t         j                  j                  |      }|j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_	        |j                  j                  d      |_
        |j                  j                  d	      |_        |j                  j                  d
      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        dj-                  |j                  j/                  d            |_        dj-                  |j                  j/                  d            |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_        |j                  j                  d      |_         |j                  j                  d      |_!        |j                  j                  d      |_"        |j                  j                  d       |_#        |j                  j                  d!      |_$        |jK                          tM        jN                  |d"       tQ        d#      S )$Nr*   r   r;   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   rg   rh   ))r   r+   r,   r    r<   ri   rj   rk   rl   rm   rM   rn   rO   rP   rQ   rR   rS   rT   rU   rV   rW   rX   ro   rp   rZ   r[   r\   r]   r^   r_   r`   ra   rb   rc   rd   re   rf   r!   r   r/   r   r#   r$   r)   rq   s       r%   r&   zEditProgramView.postv   s   ""&&B&/"),,"2"2>"B$\\--i8"<<++G4%ll..z:!(!1!1-!@$\\--.DE#LL,,[9!,,**62#*<<#3#34F#G ll&&u- ))(3((1 ))(3"<<++J7$\\--l; ' 0 0 A$+LL$4$45H$I!"<<++J7!$',,*>*>?O*P!Q"xx(<(<^(LM!,,**95#*<<#3#34F#G ||''/&||//?ll&&u-3:<<3C3CDf3g0$+LL$4$45H$I!!(!1!12B!C ' 0 0 A&||//?'.||'7'78N'O$"?@
##r'   Nrr   r7   r'   r%   rt   rt   j   s    c#$r'   rt   c                       e Zd Zd Zy)DeleteProgramViewc                    	 t         j                  j                  |      }|j                          t	        j
                  |d       t        d      S # t         j                  $ r$ t	        j                  |d       t        d      cY S w xY w)Nr*   zProgram deleted successfully.rh   zProgram doesn't exists.)	r   r+   r,   r.   r   r/   r   r0   r1   rw   s       r%   r,   zDeleteProgramView.get   su    	(&&***3GNNW&EFJ''$$ 	(NN7$=>J''	(   AA 4B
	B
Nr4   r5   r6   r,   r7   r'   r%   ry   ry      s    (r'   ry   c                       e Zd Zd Zy)ProgramsViewc                    t         j                  j                         }t        j                  j                         }d|j                  v rA|j                  d   dk7  r/|j                  |j                  d         }|j                  d   }nd}d|j                  v rA|j                  d   dk7  r/|j                  |j                  d         }|j                  d   }nd}d|j                  v r>|j                  d   r/|j                  |j                  d         }|j                  d   }nd}d	|j                  v r>|j                  d	   r/|j                  |j                  d	   
      }|j                  d	   }nd}|j                  j                  dk(  r'|j                  |j                  j                        }n?|j                  j                  dk(  r&|j                  |j                  j                        }t        |d||||||d      S )Nr   Allr<   r;   ri   
start_datecreated_at__date__gte end_datecreated_at__date__lte   csr_partner__user__id   partner__user__idzprograms.html)rh   rB   r   r;   r   r   )
r   r+   rG   r   r-   filteruseruser_type_idr)   r   )r#   r$   rB   rh   r   r;   r   r   s           r%   r,   zProgramsView.get   s   %--113##'')W[[(W[[-HE-Q^9TUH";;~6L L#I(>%(GGKK	4JKHkk),GG7;;&7;;|+Dw{{<?XYH \2JJ$Z)@w{{:?VWH{{:.HH<<$$)w||OH\\&&!+7<<??KHghZg  {G  U\  mw  FN  1O  P  	Pr'   Nr|   r7   r'   r%   r~   r~      s    !Pr'   r~   c                       e Zd Zd Zy)ProgramsChartViewc                 `
   t         j                  j                         }d|j                  v r1|j                  d   dk7  r|j	                  |j                  d         }d|j                  v r1|j                  d   dk7  r|j	                  |j                  d         }d|j                  v r.|j                  d   r|j	                  |j                  d         }d|j                  v r.|j                  d   r|j	                  |j                  d   	      }|j
                  j                  d
k(  r'|j	                  |j
                  j                        }n?|j
                  j                  dk(  r&|j	                  |j
                  j                        }|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }	}|j                  d      j                  t        d            j                  d      }
|
D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}|j                  d      j                  t        d            j                  d      }|D cg c]  }|d   xs d|d   d }}t        |||	|||||||d
d      S c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w ) Nr   r   r   r;   r   r   r   r   r   r   r   r   r   state__stater)   )countUnknownr   )nameydistrict__districtprogram_type__program_type
team__namerP   rR   rT   rQ   rU   rV   )
by_stateby_districtby_project_typeby_teamby_ageby_casteby_religion	by_genderby_occupationby_family_incomeF)safe)r   r+   rG   r-   r   r   r   r)   valuesannotater
   order_byr   )r#   r$   rh   state_countsitemstate_resultdistrict_countsdistrict_resultproject_type_countsproject_type_resultteam_countsteam_result
age_counts
age_resultcaste_countscaste_resultreligion_countsreligion_resultgender_countsgender_resultoccupation_countsoccupation_resultincome_countsincome_results                           r%   r,   zProgramsChartView.get   sa   ##'') W[[(W[[-HE-Q^9TUH #I(>%(GGKK	4JKH7;;&7;;|+Dw{{<?XYH $Z)@w{{:?VWH <<$$)w||OH\\&&!+7<<??KH OON+XE$KX(Xn% 	 %
 .)6YT']K
 
 OO01XE$KX(X*+ 	 (
 ./<94=Q
 
 OO89XE$KX(X23 	 ,
 67D94PW=Y
 
 OOL)XE$KX(Xl# 	 $
 ,'494=I
 
 OOE"XE$KX(Xe_ 	 #
 %[-IDMB

 
 OOG$XE$KX(Xg 	 %
 ']/id7mD
 
 OOJ'XE$KX(Xj! 	 (
 *%2gG
 
 OOH%XE$KX(Xh 	 &
 (^0ytG}E
 
 OOL)XE$KX(Xl# 	 *
 ,'494=I
 
 OOO,XE$KX(Xo& 	 &
 /*7id7mL
 

 $*2" $*&. -
  	Q









s<   S>&T;TT%T:TT$T!9T&T+Nr|   r7   r'   r%   r   r      s    Sr'   r   c                       e Zd Zd Zy)ProjectsViewc                 `    t         j                  j                  |      }t        |dd|i      S )Nr   zprojects.htmlprojects)r   r+   r   r   )r#   r$   r)   r   s       r%   r,   zProjectsView.gets  s/    ##**R*@gX0FGGr'   Nr|   r7   r'   r%   r   r   q  s    Hr'   r   c                       e Zd Zd Zd Zy)DeliverablesViewc           
         t         j                  j                         }t        j                  j                         j	                  t        t        t        d      t                     t        t        d      t                     z  dz  d            }d|j                  v rA|j                  d   dk7  r/|j                  |j                  d         }|j                  d   }nd}t        |d	|||d
      S )Nachievedtargetd   r   )
completionr;   r   r   zdeliverables.html)deliverablesr   r;   )r   r+   rG   r   r   r   r   r   r	   r-   r   r   )r#   r$   r   r   r;   s        r%   r,   zDeliverablesView.getz  s    ##'')#++//1::Qz]JL1D8jl4SSVYY[\ ; 
 #I(>%(G'..GKK	<R.SLkk),GGg2laiw~4  A  	Ar'   c                 
   	 |j                   d   }t        j                  |d      }|j                         D ]g  \  }}t	               }|j
                  j                  d      |_        |d   |_        |d   |_	        |d   |_
        |d   |_        |j                          i t        j                  |d	       t        d
      S # t         $ r6}t#        |       t        j$                  |d       t        d
      cY d }~S d }~ww xY w)Nr   openpyxlengineri   zKey IndicatorTargetAchievedRemarks Deliverables added successfully.r   ,Something went wrong. Please try again later)FILESpd
read_exceliterrowsr   r    r,   ri   key_indicatorr   r   remarksr!   r   r/   r   	Exceptionprintr1   )r#   r$   
excel_filedfidxrowdeliverablees           r%   r&   zDeliverablesView.post  s    	0 ~6Jz*=BKKM #S*n)0)9)9,)G&,/,@)%(]"'*:$&))n#  "# W&HI.// 	0!HNN7$RS.//	0s   C C 	D+C=7D=DNrr   r7   r'   r%   r   r   x  s    A$0r'   r   c                       e Zd Zd Zy)ProgressViewc                    	 |j                   d   }t        j                  |d      }|j                         D ]e  \  }}t	               }|d   |_        |d   |_        |d   |_        |d   |_        |d   |_	        |d	   |_
        |d
   |_        |j                          g t        j                  |d       t        d      S # t         $ r6}t#        |       t        j$                  |d       t        d      cY d }~S d }~ww xY w)Nprogressr   r   DateLocationActivityzSHGs CoveredzMembers EnrolledzSchemes FacilitatedzLegal Docs ProcessedzProgress added successfully.rh   r   )r   r   r   r   r   datelocationactivityshg_coveredmembers_enrolledschemes_facilitatedlegal_docs_processedr!   r   r/   r   r   r   r1   )r#   r$   r   r   r   r   r   r   s           r%   r&   zProgressView.post  s    	( z2Jz*=BKKM 	 S#: #F$'
O!$'
O!'*>':$,/0B,C)/23H/I,034J0K-	  W&DEJ'' 	(!HNN7$RSJ''	(s   B>C 	D 
+C;5D ;D Nr4   r5   r6   r&   r7   r'   r%   r   r     s    (r'   r   c                       e Zd Zd Zy)ProgramsImportViewc                 ,	   	 |j                   d   }t        j                  |d      }|j                         D ]  \  }}	 t        j
                  j                  |d         }	 t        j
                  j                  |d         }	 t        j
                  j                  |d   	      }		 t        j
                  j                  |d
         }
	 t        j
                  j                  |d         }	 t        j
                  j                  |d         }	 t        j
                  j                  |d         }t               }||j                  |_        nd|_        ||j                  |_        nd|_        |	|	j                  |_        nd|_        |
|
j                  |_        nd|_        ||j                  |_        nd|_        ||j                  |_        nd|_        ||j                  |_        nd|_        t/        j0                  |d   d      j3                  d      |_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_        |d   |_         |d   |_!        |d   |_"        	 t        j
                  j                  |j                   |j"                  |j$                  |j&                  |j(                  |j*                  |j4                  |j,                  |j8                  |j:                  |j<                  |j>                  |j6                  |j@                  |jB                  |jD                          tK        jL                  |d       tO        d      S # t        $ r}d }Y d }~!d }~ww xY w# t        $ r}d }Y d }~d }~ww xY w# t        $ r}d }	Y d }~d }~ww xY w# t        $ r}d }
Y d }~ d }~ww xY w# t        $ r}d }Y d }~d }~ww xY w# t        $ r}d }Y d }~d }~ww xY w# t        $ r}d }Y d }~d }~ww xY w# t        $ r&}tG        |       |jI                          Y d }~d }~ww xY w# t        $ r6}tG        |       tK        jP                  |d        tO        d      cY d }~S d }~ww xY w)!Nrh   r   r   zProgram Type)r   Project)r;   State)rI   District)rJ   zDonor Organisation)company_namezSupport PartnerzTeam Member)r   r   z	From Datez%d/%m/%Yz%Y-%m-%dMobilezBeneficiary NameAgeGenderCasteReligion
OccupationzFamily Income)r<   ri   rj   rk   rl   rm   rM   rN   rO   rP   rQ   rR   rS   rT   rU   rV   r   r   r   ))r   r   r   r   r   r+   r,   r   r   r   r   r   r   r   r   r)   r<   ri   rj   rk   rl   rm   rn   r   strptimestrftimerM   rS   rO   rP   rQ   rR   rT   rU   rV   r   r!   r   r/   r   r1   )r#   r$   r   r   r   r   r   r   r;   rI   rJ   rK   rL   rN   rh   s                  r%   r&   zProgramsImportView.post  s   x	0 z2Jz*=BKKM m$S(#0#8#8#<#<CP^L_#<#`L#&..22S^2LG!"NN..s7|.DE$(0044J4PH'"."6"6":":#NbJc":"dK0+@+H+H+L+L\_`q\r+L+s( <<++3}3E+FD $:+/;H,/1H, &*1**H'*,H' $(-H%(*H% '+3;;H(+-H( *.9nnH+.0H+ (3*>*A*AH'*,H' #'+wwH$')H$ &.%6%6s;7G%T%]%]^h%i""%h-,/0B,C)"5z"%h-!$W$'
O!&),&7#),_)=& $$$((8;S;Sbjbubu  CK  CT  CT  dl  dx  dx  KS  Kb  Kb  qy  qD  qD  RZ  Rd  Rd  mu  m}  m}  RZ  Rk  Rk  s{  s  s  JR  JY  JY  ck  cq  cq  |D  |K  |K  X`  Xi  Xi  x@  xK  xK  ]e  ]s  ]s(  tUm$^ W&HI.//Y ! (#'L(
 ! #"G#
 ! ! E!
 ! $#H$
 ! '"&K'
 ! 0+/(0
 !  D R ! $!HMMOO$  	0!HNN7$RS.//	0sK  =Q  #M3$#N#N%,#N>#O4#O0#P	;EQ  CP"#Q 3	N	<N>Q N		Q 	N"NQ N""Q %	N;.N60Q 6N;;Q >	OO	Q OQ 	O- O("Q (O--Q 0	P9P;Q PQ 		PPQ PQ "	Q+QQ QQ 	R+RRRNr   r7   r'   r%   r   r     s    y0r'   r   c                       e Zd Zd Zy)DeleteDeliverableViewc                    	 t         j                  j                  |      }|j                          t	        j
                  |d       t        d      S # t         j                  $ r$ t	        j                  |d       t        d      cY S w xY w)Nr*   z!Deliverable deleted successfully.r   zDeliverable doesn't exists.)	r   r+   r,   r.   r   r/   r   r0   r1   )r#   r$   r)   r   s       r%   r,   zDeleteDeliverableView.get;  sy    	0&..222;K W&IJ.//(( 	0NN7$AB.//	0r{   Nr|   r7   r'   r%   r  r  9  s    0r'   r  )0django.shortcutsr   r   django.viewsr   django.contribr   django.contrib.auth.mixinsr   django.db.modelsr   r	   r
   django.db.models.functionsr   r   django.httpr   pandasr   r   hr_department.modelsr   users.modelsr   r   r   modelsr   r   r   r   r   country.modelsr   r   r   r9   r@   rt   ry   r~   r   r   r   r   r   r  r7   r'   r%   <module>r     s    -  # 9 1 1 2 $   % C C M M ,2($ 2(2$d 2*.$$d .$b/$($ /$d
(*D 
(#P%t #PNU*D UBH%t H%0)4 %0P(%t (2{0+T {0@
0. 
0r'   