
    hZ                     <   d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	m
Z
mZmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d d	lmZmZmZmZmZmZmZ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&y)    )JsonResponse)render)View)LoginRequiredMixin)F
FloatFieldCountSumExpressionWrapperValue)CoalesceCast)Team)ProgramsProjects)	ExpenditureIncomesHRExpenditureEquipmentExpenditureTravelExpenditureIECExpenditureAccommodationExpenditureMiscellaneousExpenditureOfficeExpenditurec                       e Zd Zd Zy)DashboardViewsc                 n   t         j                  j                         }t        j                  j                         }t        j                  j                         }t
        j                  j                         }t        j                  j                         }t        j                  j                         }t        j                  j                         }t        j                  j                         }	t        j                  j                         }
t        j                  j                         }t        j                  j                         }t        j                  j                         }d|j                  v r|j                  d   dk7  rt        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }	t        j                  j                  |j                  d         }
t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }|j                  xr |j                  d   }|j                  |j                  d         j!                         }|j                  |j                  d         }|j                  |j                  d         }nd}d|j                  v r|j                  d   dk7  rd|j                  v r|j                  d   dk7  r|j                  |j                  d   |j                  d   	      }|j                  |j                  d   |j                  d   
      }|j                  |j                  d   |j                  d         }|	j                  |j                  d   |j                  d         }	|
j                  |j                  d   |j                  d         }
|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  d   }|j                  d   }nd}d}|j#                  t%        d            d   xs d}|j#                  t%        d            d   xs d}|j#                  t%        d            d   xs d}|	j#                  t%        d            d   xs d}	|
j#                  t%        d            d   xs d}
|j#                  t%        d            d   xs d}|j#                  t%        d       !      d    xs d}|j#                  t%        d"      #      d"   xs d}||z   |	z   |
z   |z   |z   |z   }|j'                         }d}|D ]  }|j(                  |j*                  |d$z   }!|j*                  r'|t-        |j*                  j/                  d%            z   }|j(                  sa|t-        |j(                  j/                  d%            z   } |j1                  t3        t%        t5        d&t7                           t9        d'      t7               (      t3        t%        t5        d&t7                     t5        d)t7                     z  d*z        t9        d'      t7               (      +      j1                  t;        t3        t5        t=        d,      t7                     t9        d'      t7               (      t3        t5        t=        d-      t7                     t9        d'      t7               (      z   t3        t%        t5        d&t7                           t9        d'      t7               (      z   t3        t5        t=        d.      t7                     t9        d'      t7               (      z   t3        t5        t=        d/      t7                     t9        d'      t7               (      z   t3        t5        t=        d0      t7                     t9        d'      t7               (      z   t3        t5        t=        d1      t7                     t9        d'      t7               (      z   t7               (      t;        t3        t5        t=        d,      t7                     t9        d'      t7               (      t3        t5        t=        d2      t7                     t9        d'      t7               (      z  d*z  t3        t5        t=        d-      t7                     t9        d'      t7               (      t3        t5        t=        d3      t7                     t9        d'      t7               (      z  d*z  z   t=        d4      z   t3        t5        t=        d.      t7                     t9        d'      t7               (      t3        t5        t=        d5      t7                     t9        d'      t7               (      z  d*z  z   t3        t5        t=        d/      t7                     t9        d'      t7               (      t3        t5        t=        d6      t7                     t9        d'      t7               (      z  d*z  z   t3        t5        t=        d0      t7                     t9        d'      t7               (      t3        t5        t=        d7      t7                     t9        d'      t7               (      z  d*z  z   t3        t5        t=        d1      t7                     t9        d'      t7               (      t3        t5        t=        d8      t7                     t9        d'      t7               (      z  d*z  z   t7               (      9      j1                  t;        t=        d:      t=        d;      z
  t=        d<      z
  t7               (      =      }|j                  d>      }d}|D ]  }||j>                  z   } |j                  d$?      }d}|D ]  }||j>                  z   } tA        |d@||||||||||dA
      S )BNprojectAll
project_idexpenditure__project_id)program_team__project_id
start_date end_datepayment_date__gtepayment_date__ltehr_expence_date__gtehr_expence_date__lteequipment_expence_date__gteequipment_expence_date__ltetravel_expence_date__gtetravel_expence_date__lteiec_expence_date__gteiec_expence_date__lteaccommodation_expence_date__gteaccommodation_expence_date__ltemiscellaneous_expence_date__gtemiscellaneous_expence_date__lteoffice_expence_date__gteoffice_expence_date__lte)expence_date__gteexpence_date__ltereceived_amount)income_amountrC   r   	hr_amountrD   equipment_amountrF   travel_amountrH   
iec_amountrJ   accommodation_amountrL   miscellaneous_amountrN   office_amountrP      ,travel__travel_amountg        )output_fieldtravel__travel_tds_deductiong      Y@)travel_total_amounttravel_total_tdshr__hr_amountequipment__equipment_amountiec__iec_amount#accommodation__accommodation_amount#miscellaneous__miscellaneous_amountoffice__office_amounthr__hr_tds_deduction"equipment__equipment_tds_deductionrX   iec__iec_tds_deduction*accommodation__accommodation_tds_deduction*miscellaneous__miscellaneous_tds_deductionoffice__office_tds_deduction)total_amount	total_tdsre   advancerf   )
net_amount)payment_status)assetszdashboard.html)
rC   expenditure_amountteambeneficiariesprojectsr   r%   r'   liablility_amountassets_amount)!r   objectsallr   r   r   r   r   r   r   r   r   r   r   GETfilterdistinct	aggregater
   countdocument_applyscheme_applylensplitannotater   r   r   r   r   r   rh   r   )selfrequestrl   rm   rn   liabilitiesrC   rD   rF   rH   rJ   accomodation_amountrN   rP   r   r%   r'   rL   rk   beneficiaries_countbeneficiaryliabilities_amountro   	liabilityrj   rp   assets                              H/mnt/ACDE16A4DE16673C/PROJECTS/MIS_PORTALS/MIS_PORTAL/dashboard/views.pygetzDashboardViews.get   s    ||! ((,,.##'')!))--/++-!))--/	/77;;=)11557#++//1
6>>BBD7??CCE)11557#I(>%(G#OO22I@V2WM%--44w{{[dOe4fI3;;BB]d]h]hir]sBt-55<<W^WbWbclWm<nM'//66QXQ\Q\]fQg6hJ":"B"B"I"Idkdodopydz"I"{#;#C#C#J#Jelepepqze{#J#| -55<<W^WbWbclWm<nMkk<gkk)&<G;;'++i:P;QZZ\D)00gkk)>T0UM%,,'++i:P,QKG 7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK)00W[[Q]E^t{tt  AK  uL0  MM!((L@Yryr}r}  I  sJ(  KI/66U\U`U`amUn  OV  OZ  OZ  [e  Of6   g)00GKKXdLe  CJ  CN  CN  OY  CZ0  [M#**7;;|C\v}  wB  wB  CM  wN*  OJ"5"<"<_f_j_jkw_x  ]d  ]h  ]h  is  ]t"<  #u#7#>#>ahalalmyaz  _f  _j  _j  ku  _v#>  $w )00GKKXdLe  CJ  CN  CN  OY  CZ0  [M%,,\AZpwp{p{  }G  qH,  IK \2J{{:.HJH%//DU@V/WXghmlm''C4D'EkRWVW	+55M_I`5abtuzyz%//O@T/UVefkjk))s<7H)I,W\[\
2<<TWXnTo<p  rH   I   N  MN3==UXYoUp=q  sI   J   O  NO%//O@T/UVefkjk&)99MIJVYmm  qE  E  HU  Uzz|  ( 	kK))1k6N6N6V&9A&=#++*=KD\D\DbDbcfDg@h*h'--*=KD^D^DdDdehDi@j*j'	k "** (T2I:<-X)Y[`ad[et~  uA  !B%c,jl;3Z\BCEJK' Sz
6 + 
 (*a0*,?sZdZfga =>
MuUXzhrhtuvT"9:<HI5QT:dndpqr a 12JLA5:\f\hij a EF
UW\]`Wapzp|}	~
 a EF
UW\]`Wapzp|}~ a 78*,Gsblbnop (\	 ($q1:<@%*[e[gha 67Fc
akamnoqvw $q!>?NPUVYPZisiuva DEz|TV[\_V`oyo{|} @EEF $%& $q!23Z\BE#J]g]ija 89:<H%PS*cmcopqsxy	z $q!FGVX]^aXbq{q}~a LMz|\^cdg^h  xB  xD  EE HMMN $q!FGVX]^aXbq{q}~a LMz|\^cdg^h  xB  xD  EE HMMN" $q!89:<H%PS*cmcopa >?NPUVYPZisiuvwy~#@& (\)  !
B ((.!AiL01[>A'\  
O 	\ )///C+ 	II 1I4H4H H	I ##Q#/ 	=E)E,<,<<M	= g/Mj|  HL  `s  BJ  X_  pz  IQ  iz  N[  2\  ]  	]    N__name__
__module____qualname__r    r   r   r   r      s	    G]r   r   c                       e Zd Zd Zy)ExpenditureChartViewc           	      	   t         j                  j                         }t        j                  j                         }t        j                  j                         }t
        j                  j                         }t        j                  j                         }t        j                  j                         }t        j                  j                         }d|j                  v rN|j                  d   dk7  r;t         j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t
        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }d|j                  v rp|j                  d   dk7  r]d|j                  v rN|j                  d   dk7  r;|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d   	      }|j                  |j                  d   |j                  d   
      }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}d|dd|dd |dd!|dd"|dd#|dd$|dg}	t        d%|	id&'      S )(Nr   r   r"   r%   r&   r'   r+   r.   r1   r4   r7   r:   r=   rD   rE   r   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   rP   rQ   zHuman Resource AmountnameyzEquipment AmountzTravel Amountz
IEC AmountzAccomodation AmountzMiscellaneous AmountzOffice AmountamountsFsafe)r   rq   rr   r   r   r   r   r   r   rs   rt   rv   r
   r   )
r}   r~   rD   rF   rH   rJ   rL   rN   rP   r   s
             r   r   zExpenditureChartView.get   sN    "))--/	/77;;=)11557#++//1
7??CCE7??CCE)11557#I(>%(G%--44w{{[dOe4fI3;;BB]d]h]hir]sBt-55<<W^WbWbclWm<nM'//66QXQ\Q\]fQg6hJ#;#C#C#J#Jelepepqze{#J#| #;#C#C#J#Jelepepqze{#J#| -55<<W^WbWbclWm<nM7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK!((L@Yryr}r}  I  sJ(  KI/66V]VaVabnVo  QX  Q\  Q\  ]g  Qh6   i)00W[[YeMf  EL  EP  EP  Q[  E\0  ]M#**GKKP\D]x  yD  yD  EO  yP*  QJ#7#>#>bibmbmnzb{  ah  al  al  mw  ax#>  $y #7#>#>bibmbmnzb{  ah  al  al  mw  ax#>  $y )00W[[YeMf  EL  EP  EP  Q[  E\0  ]M''C4D'EkRWVW	+55M_I`5abtuzyz%//O@T/UVefkjk))s<7H)I,W\[\
3==UXYoUp=q  sI   J   O  NO3==UXYoUp=q  sI   J   O  NO%//O@T/UVefkjk .I>(0@A%];"*5+3GH,4HI%];
 Y0u==r   Nr   r   r   r   r   r      s    />r   r   c                       e Zd Zd Zy)IncomeChartViewc                    t         j                  j                         }d|j                  v r1|j                  d   dk7  r|j	                  |j                  d         }d|j                  v r_|j                  d   dk7  rMd|j                  v r?|j                  d   dk7  r-|j	                  |j                  d   |j                  d         }|j                  t        d      	      d   xs d
}|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}	|j                  t        d            d   xs d
}
|j                  t        d            d   xs d
}|j                  t        d            d   xs d
}d|dd|dd |dd!|dd"|dd#|dd$|	dd%|
dd&|dd'|dg
}t        d(|id)*      S )+Nr   r   r    r%   r&   r'   r(   human_resourcer   r   camp_expenses)r   training_expenses)r   equipment_expensesr   travel_expensesr   material_expencesr   administrative_expenses)r   accomodation_expensesr   monitoring_expenses)r   miscellaneous_expensesr   zHuman Resource Expensesr   zCamp ExpenseszTraining ExpenseszEquipment ExpenseszTravel ExpenseszMaterial ExpenceszAdministrative ExpenseszAccomodation ExpenseszMonitoring ExpenseszMiscellaneous Expensesincome_resultFr   )r   rq   rr   rs   rt   rv   r
   r   )r}   r~   incomes_datar   r   r   r   r   r   r   r   r   r   incomess                 r   r   zIncomeChartView.get   s   **,#I(>%(G'..GKK	<R.SL7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK'..7;;|C\ryr}r}  I  sJ.  KL &//EUAV/WXhinmn$..s??S.TUdejij(22sK^G_2`atuzyz)33MaIb3cdxy~}~&003GXCY0Z[lmrqr(22sK^G_2`atuzyz"."8"8SVWpSq"8"r  tM  #N  #S  RS , 6 6sSjOk 6 l  nE  !F  !K  JK*443OdKe4fg|}  C  BC!-!7!7QTUmQn!7!o  qI  "J  "O  NO 0nE%];)1BC*2DE'?)1BC/7NO-5JK+3FG.6LM
 W
 	r   Nr   r   r   r   r   r      s    &r   r   c                       e Zd Zd Zy)IncomeExpenditureChartViewc                 
   t         j                  j                         }t        j                  j                         }t        j                  j                         }t
        j                  j                         }t        j                  j                         }t        j                  j                         }t        j                  j                         }d|j                  v r@|j                  d   dk7  r-|j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t
        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }t        j                  j                  |j                  d         }d|j                  v rp|j                  d   dk7  r]d|j                  v rN|j                  d   dk7  r;|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d   	      }|j                  |j                  d   |j                  d   
      }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  |j                  d   |j                  d         }|j                  t        d            d   xs d}	|j                  t        d            d   xs d}
|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d            d   xs d}|j                  t        d       !      d    xs d}|j                  t        d"      #      d"   xs d}|j                  t        d$      %      d$   xs d}|j                  t        d&      '      d&   xs d}|	|
||||g}||||||g}t        ||d(d)*      S )+Nr   r   r    r"   r%   r&   r'   r(   r+   r.   r1   r4   r7   r:   r   r   r   r   r   r   r   r   r   r   r   r   r   rD   rE   rF   rG   rH   rI   rJ   rK   rL   rM   rN   rO   )r   amount_resultFr   )r   rq   rr   r   r   r   r   r   r   rs   rt   rv   r
   r   )r}   r~   r   rD   rF   rH   rJ   rL   rN   r   r   r   r   r   r   r   r   s                    r   r   zIncomeExpenditureChartView.get  s   **,!))--/	/77;;=)11557#++//1
7??CCE7??CCE#I(>%(G'..GKK	<R.SL%--44w{{[dOe4fI3;;BB]d]h]hir]sBt-55<<W^WbWbclWm<nM'//66QXQ\Q\]fQg6hJ#;#C#C#J#Jelepepqze{#J#| #;#C#C#J#Jelepepqze{#J#| 7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK'..7;;|C\ryr}r}  I  sJ.  KL!((L@Yryr}r}  I  sJ(  KI/66U\U`U`amUn  OV  OZ  OZ  [e  Of6   g)00GKKXdLe  CJ  CN  CN  OY  CZ0  [M#**7;;|C\v}  wB  wB  CM  wN*  OJ#7#>#>ahalalmyaz  _f  _j  _j  ku  _v#>  $w #7#>#>ahalalmyaz  _f  _j  _j  ku  _v#>  $w %//EUAV/WXhinmn)33MaIb3cdxy~}~&003GXCY0Z[lmrqr(22sK^G_2`atuzyz , 6 6sSjOk 6 l  nE  !F  !K  JK!-!7!7QTUmQn!7!o  qI  "J  "O  NO''C4D'EkRWVW	+55M_I`5abtuzyz%//O@T/UVefkjk))s<7H)I,W\[\
3==UXYoUp=q  sI   J   O  NO3==UXYoUp=q  sI   J   O  NO!#5HY[p  sI  J.zK_auv$%
  	r   Nr   r   r   r   r   r      s    1r   r   c                       e Zd Zd Zy)IncomeTypeChartViewc                 h   t         j                  j                         }d|j                  v r1|j                  d   dk7  r|j	                  |j                  d         }d|j                  v r_|j                  d   dk7  rMd|j                  v r?|j                  d   dk7  r-|j	                  |j                  d   |j                  d         }|j                  d      j                  t        d	      
      j                  d      }|D cg c]  }|d   xs d|d   d }}t        d|id      S c c}w )Nr   r   r    r%   r&   r'   r(   income_typerB   )total_incomeUnknownr   r   r   Fr   )
r   rq   rr   rs   rt   valuesr|   r
   order_byr   )r}   r~   r   income_countsitemr   s         r   r   zIncomeTypeChartView.get9  sU   **,#I(>%(G'..GKK	<R.SL7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK'..7;;|C\ryr}r}  I  sJ.  KL VM"X3'8#9X:Xm$	 	 &
 -(5ID<PQ
 

 ]
 	
s   D/Nr   r   r   r   r   r   7  s    r   r   c                       e Zd Zd Zy)CollectDataChartViewc                 \   t         j                  j                         }d|j                  v r1|j                  d   dk7  r|j	                  |j                  d         }d|j                  v r_|j                  d   dk7  rMd|j                  v r?|j                  d   dk7  r-|j	                  |j                  d   |j                  d         }t        |j                  d      j                  t        d	      
            }|D cg c]  }|d   xs d|d   d }}t        d|id      S c c}w )Nr   r   r    r%   r&   r'   )from_date__gtefrom_date__ltecategoryid)rw   r   rw   r   program_dataFr   )
r   rq   rr   rs   rt   listr   r|   r	   r   )r}   r~   r   r   programs_datas        r   r   zCollectDataChartView.getX  sP   ''++-#I(>%(G'..GKK	<R.SL7;;&7;;|+D+Jz]d]h]hOhmtmxmx  zD  nE  IK  nK'..L@Ylslwlw  yC  mD.  EL L//
;DD5QU;DWX
 %
 *%2gG
 

 M
 	
s   D)Nr   r   r   r   r   r   V  s    r   r   N)'django.httpr   django.shortcutsr   django.viewsr   django.contrib.auth.mixinsr   django.db.modelsr   r   r	   r
   r   r   django.db.models.functionsr   r   hr_department.modelsr   program_department.modelsr   r   finance_department.modelsr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   <module>r      s    $ #  9 P P 5 % 8 J  J  JI]' I]^1>-t 1>l(($ (Z3!3T 3n,d >-t r   