
    J)iA                        d dl mZmZmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlmZmZ d dlmZmZmZmZmZmZmZ d dlmZ d d	lmZ d d
lmZ d dlmZ d dlm Z m!Z!  e       Z"e"jG                  de       ee       ee!      fde$dede fd       Z%e"jG                  d       ee       ee!      fde$dede fd       Z&e"jG                  d       ee       ee!      fde$dede fd       Z'y)    )	APIRouterDependsResponse)Session)BytesIO)A4)colors)getSampleStyleSheetParagraphStyle)SimpleDocTemplate	ParagraphSpacerTable
TableStyleImage	PageBreak)inch)Module8ReportPreview)Module8ReportService)get_db)JWTPayloadSchemaget_current_studentz/{group_id}/preview8)response_modelgroup_iddbtokenc                 X   K   t        ||      }|j                  |        d {   S 7 w)N)r   _fetch_module8_data)r   r   r   services       E/var/www/html/retail-simulation-api/app/api/module_8_report/router.pypreview_reportr!      s+      #2u-G,,X6666s   !*(*z/{group_id}/preview-report-pdf8c                 b   K   t        ||      }|j                  |        d {   }| |dS 7 	w)N)r   	file_path)r   generate_and_save_pdf)r   r   r   r   r#   s        r    preview_report_pdfr%      s7      #2u-G33H==I y99 >s   !/-
/z/{group_id}/download8c                 j  K   t        ||      }|j                  |        d {   }t               }t        |t        dt
        z  dt
        z        }g }t               }	 t        ddd      }	d|	_        |j                  |	       |j                  t        dd	             |j                  t        d
|d                |j                  t        dd             |j                  t        d|d                |j                  t        dd             |j                  t        d|d                t        dddd      }
dt        d|
      dddddgg}|j                  D ]  }|j                  |j                  xs d|j                  rd|j                  dnd |j                   rt#        |j                         nd!|j$                  rt#        |j$                        nd!|j&                  rt#        |j&                        nd!|j(                  rt#        |j(                        nd!|j*                  rt#        |j*                        nd!g        t-        |d"t
        z  d"t
        z  d#t
        z  d#t
        z  d#t
        z  d#t
        z  d#t
        z  g$      }|j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,g             |j                  |       |j                  t        dd             |j                  t        d-|d                dt        d|
      dddddgg}|j6                  D ]  }|j                  |j                  xs d|j                  rd|j                  dnd |j                   rt#        |j                         nd!|j$                  rt#        |j$                        nd!|j&                  rt#        |j&                        nd!|j(                  rt#        |j(                        nd!|j*                  rt#        |j*                        nd!g        t-        |d"t
        z  d"t
        z  d#t
        z  d#t
        z  d#t
        z  d#t
        z  d#t
        z  g$      }|j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,g             |j                  |       |j                  t        dd.             |j                  t        d/|d                |j                  t        dd             g d0g}|j8                  D ]  }|j                  |j:                  xs d|j<                  rd|j<                  dnd |j>                  rt#        |j>                        nd!|j@                  rt#        |j@                        nd!g        t-        |d1t
        z  d"t
        z  d2t
        z  d2t
        z  g$      }|j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,g             |j                  |       |j                  t        dd.             |j                  tC                      |j                  t        d3|d                |j                  t        dd             t        d4dd5d67      }t        d8dd5d6d9      }t        d:|      t        |jD                  jF                  xs d|      gt        d;|      t        |jD                  jH                  xs d|      gt        d<|      t        |jD                  jJ                  xs d|      gg}t-        |      }|j/                  t1        d%d&d'dt2        j4                  fd=d>d*d+d,d?d@dAdBg
             |j                  |       |j                  t        dd.             |j                  t        dC|d                |j                  t        dd             |j                  t        dD|d                t        dE|      t        dF|      t        dG|      t        dH|      gg}dI}|jL                  D ]  }|jN                  dJk(  s|j                  t        |jP                  xs d|      t        |jR                  rd|jR                  dnd |      t        |jT                  xs d|      t        |jV                  xs d|      g       ||jR                  xs dIz  } t-        |      }|j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,d?d@dAdBg
             |j                  |       t        dK|      t        dL|ddM|      t        dN|      t        dN|      gg}t-        |      }|j/                  t1        d%d&d'dt2        j4                  fdOd*dPdQg             |j                  |       |j                  t        dd             |j                  t        dR|d                t        dE|      t        dF|      t        dG|      t        dH|      gg}dI}|jL                  D ]  }|jN                  dSk(  s|j                  t        |jP                  xs d|      t        |jR                  rd|jR                  dnd |      t        |jT                  xs d|      t        |jV                  xs d|      g       ||jR                  xs dIz  } t-        |      } | j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,d?d@dAdBg
             |j                  |        t        dK|      t        dL|ddM|      t        dN|      t        dN|      gg}!t-        |!      }"|"j/                  t1        d%d&d'dt2        j4                  fdOd*dPdQg             |j                  |"       |j                  t        dd.             |j                  tC                      |j                  t        dT|d                |j                  t        dd             |j                  t        dU|d                t        dV|      t        dW|      t        dH|      gg}#|jX                  D ]{  }$|$jN                  dXk(  s|#j                  t        |$jZ                  xs d|      t        |$j\                  r|$j\                   dYndZ|      t        |$jV                  xs d|      g       } t-        |#      }%|%j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,d?d@dAdBg
             |j                  |%       |j                  t        dd             |j                  t        d[|d                t        dV|      t        dW|      t        dH|      gg}&|jX                  D ]{  }$|$jN                  d\k(  s|&j                  t        |$jZ                  xs d|      t        |$j\                  r|$j\                   dYndZ|      t        |$jV                  xs d|      g       } t-        |&      }'|'j/                  t1        d%d&d'dt2        j4                  fd(d)d*d+d,d?d@dAdBg
             |j                  |'       |j                  t        dd.             |j                  t        d]|d                |j                  t        dd             t        d^|      t        |j^                  j`                  xs d|      gt        d_|      t        |j^                  jb                  xs d|      gg}(t-        |(      })|)j/                  t1        d%d&d'dt2        j4                  fd=d>d*d+d,d?d@dAdBg
             |j                  |)       |je                  |       |jg                  dI       d`|  da}*ti        |jk                         dbdcdd|* ie      S 7 #  Y xY ww)fNg      ?)pagesize	topMarginbottomMarginzTS Logo.png   K   )widthheightLEFT   
   z%<b>Module 8: Services & Utilities</b>Title   z!<b>Corporate & Concept Office</b>Heading2   z<b><i>Corporate Office</i></b>Heading3header_style	   Helvetica-Bold)fontSizefontName	alignmentzRole Categoryz%Cost to<br/>Company (Y1)<br/>per HeadY1Y2Y3Y4Y5zN/AzRs. z,.0fzRs. 00g      ?g333333?)	colWidthsGRIDr   r   rF   )FONTNAMErD   )rF   r   r8   )rG   )r   r/   rE   	Helvetica)FONTSIZErD   rE   r7   )ALIGNrD   rE   CENTER)VALIGNrD   rE   MIDDLEz<b><i>Concept Office</i></b>   z<b>Store Level Services</b>)DesignationzAverage SalaryzFormat A
CountzFormat B
Count   g333333?z#<b>Training & Talent Management</b>
cell_style   CJK)r9   leadingwordWrapcentered_cell_style)r9   rT   rU   r;   zName of Reference RetailerzCProvide a brief about chosen Human and Employee Management ActivityzLHow are your policies/plan/activities different from those of this retailer?)rG   rD   )r   rF   r8   )rG   )r/   r   rE   rH   )
TOPPADDINGrD   rE   r4   )BOTTOMPADDINGrD   rE   r4   )LEFTPADDINGrD   rE   r4   )RIGHTPADDINGrD   rE   r4   z<b>Utilities</b>z<b>Store Format A Utilities</b>zUtility TypezCost per MonthzKey Usage ParametersRemarksr   zStore Formate Az<b>Total Cost</b>z<b>Rs. z</b> )rG   rD   rE   r8   )rJ   rD   rE   r.   )rL   rD   rE   TOPz<b>Store Format B Utilities</b>zStore Formate Bz<b>Other Operating Expenses</b>z(<b>Store Format A Operating Expenses</b>zExpense TypezPercentage of Sales per YearzStore Format A%z0%z(<b>Store Format B Operating Expenses</b>zStore Format Bz<b>Summary</b>zService SubmissionszService Summarisemodule8_report_z.pdfzapplication/pdfzContent-Dispositionzattachment; filename=)content
media_typeheaders)6r   r   r   r   r   r   r
   r   hAlignappendr   r   r   corporate_concept_officerole_categorycost_to_companyy1stry2y3y4y5r   setStyler   r	   blackconcept_officestore_level_staff_needsdesignationaverage_salaryformat_a_countformat_b_countr   training_talent_managementname_of_reference_retaileremployee_management_activitypoliceis_plan_activities	utilitiesstore_format_typeutility_namecost_per_monthkey_usage_parametersremarkoperating_expensesoperating_expenses_typepercentage_of_sales_per_yearsummaryservice_submissionsservice_summarisebuildseekr   getvalue)+r   r   r   r   reportbufferpdfelementsstyleslogor6   	corp_datacorp
corp_tableconcept_dataconceptconcept_table
store_datastorestore_tablerQ   rV   training_datatraining_tableutil_a_datatotal_cost_autilutil_a_tabletotal_a_datatotal_a_tableutil_b_datatotal_cost_butil_b_tabletotal_b_datatotal_b_table	op_a_dataop
op_a_table	op_b_data
op_b_tablesummary_datasummary_tablefilenames+                                              r    download_reportr   '   sW     #2u-G..x88FYF
FR3t8RUVZRZ
[CH "F]#b9q"&
 OOIEvgWXOOF1bM" OOIA6*CUVWOOF1aL! OOI>z@RST!.1GWcdeL!9-TVb#ceikoquw{  ~B  C  DI//'%262F2Fd4''-.G GGCL GGCL GGCL GGCL GGCL
 	 0 ySXs4xT3t8UXY]U]_bcg_gilmqiq,rsJ
	3573)-.$   OOJOOF1bM" OOI<fZ>PQR$i0WYe&fhlnrtxz~  AE  F  GL((!!*U5<5L5Ld7**401RY&zzC

Os&zzC

Os&zzC

Os&zzC

Os&zzC

Os
 	 ) ,3t8SXs4xQTUYQY[^_c[cehimemorswow2xyM:	3573)-.'   OOM"OOF1bM" OOI;VJ=OPQOOF1aL!YZJ//&272F2Fd5''-.G).)=)=C$$%3).)=)=C$$%3	
 	 0 
qvs4xT3t8.TUK	3573)-.%   OOK OOF1bM" OOIK OOICVJEWXYOOF1aL!q"uUJ()>TVafrst	/1D	E	644OOXSXZm	n	p	XZm	n	644QQZUZ\o	p	r	acv	w	644MMVQVXk	l	nM =)NJ	3573)-.+.,-(   OON#OOF1bM" OOI0&2DEFOOF1aL! OOI?
ASTUn.ABIN^`sDt46IJIV_atLuw xKL  !!%66$++4u6IJt?R?RD!4!4T :;X_atu$33<u>QR$++.0CD	   D//414L ! %L*	3573)-.+.,-&   OOL! 24GH)V]^jko]pptTu  xK  KLr#672GZ9[] ^L,'M:	358)++'   OOM"OOF1bM" OOI?
ASTUn.ABIN^`sDt46IJIV_atLuw xKL  !!%66$++4u6IJt?R?RD!4!4T :;X_atu$33<u>QR$++.0CD	   D//414L ! %L*	3573)-.+.,-&   OOL! 24GH)V]^jko]pptTu  xK  KLr#672GZ9[] ^L,'M:	358)++'   OOM"OOF1bM" OOIK OOI?
ASTUOOF1aL! OOIH&Q[J\]^N,?@)Ljl  CAI':;= >I''#33"44=?RS2CbCbR<<=Q?hl  oB  C")),u.AB  ( y!J
	3573)-.+.,-$   OOJOOF1bM" OOIH&Q[J\]^N,?@)Ljl  CAI':;= >I''#33"44=?RS2CbCbR<<=Q?hl  oB  C")),u.AB  ( y!J
	3573)-.+.,-$   OOJOOF1bM" OOI.z0BCDOOF1aL! 
(*=	>	&..JlJlJupu  xK  AL  	M	&(;	<iHhHhHqlq  tG  ?H  	IL
 ,'M:	3573)-.+.,-'   OOM" IIh
KKN 
$/H!$&*?z(JK }	 9sE   !~3~(;~3 A~+ !^~3/G5~3%H:~3 D9~3H~3+~0-~3N)(fastapir   r   r   sqlalchemy.ormr   ior   reportlab.lib.pagesizesr   reportlab.libr	   reportlab.lib.stylesr
   r   reportlab.platypusr   r   r   r   r   r   r   reportlab.lib.unitsr   app.api.module_8_report.schemar   app.api.module_8_report.servicer   app.database.main.mysqlr   app.dependency.authanticationr   r   module_8_report_routergetintr!   r%   r        r    <module>r      s*   0 0 "  &   D h h h $ ? @ * O"  2CWX &/%&9:777 7 Y7 => &/%&9:::: : ?: 34 &/%&9:HHH H 5Hr   