
    ih                        d dl mZmZ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 d dlmZ d dlmZ d dlmZmZ d dl mZ d d	lZd d
lmZ  e       Zej7                  dd      de	e   dee ee      f   dee ee      f   fd       Zej;                  dd       ee       ee      fdededefd       Zej;                  de	e   d       ee       ee      fdededefd       Z ejC                  dd      dedee ee      f   dee ee      f   fd       Z"ej7                  d       ed       ee      fdedefd       Z#ejI                  dd       ee       ee      fdededefd        Z%y	)!    )	APIRouterDependsFile
UploadFile)Session)	AnnotatedList)NetworkPlanningCreateNetworkPlanningResponseNetworkPlanningUpdate)NetworkPlanningService)get_db)JWTPayloadSchemaget_current_student)HTTPExceptionN)TblGroupDataz/create_network_planT)response_model_exclude_nonerequestdbtokenc                 T   K   t        ||      j                  |        d {   S 7 wN)r   create_network_planr   r   r   s      =/var/www/html/retail-simulation-api/app/api/network/router.pyr   r      $     'E2FFwOOOO   (&(z#/create_network_plan/get/{group_id}group_idc                 T   K   t        ||      j                  |        d {   S 7 wr   )r   get_networkr   r   r   s      r   get_simulationr"      s$     'E2>>xHHHHr   z-/create_network_plan/{group_id}/total_network)response_modelr   c                 T   K   t        ||      j                  |        d {   S 7 wr   )r   get_network_by_groupr!   s      r   get_total_consumption_by_groupr&      s$     'E2GGQQQQr   z/update_network_planc                 T   K   t        ||      j                  |        d {   S 7 wr   )r   update_network_planr   s      r   r(   r(      r   r   z/upload_group_data_excel/.filec                   K   | j                   j                  d      st        dd      t        j                  | j
                        }|j                  D cg c]  }|j                          c}|_        |j                         D ]  \  }}|j                  t        j                  |      d       }|j                  d      }|rt        |      d d }|j                  t        d/i d|d|j                  d	      d
|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d|j                  d      d |j                  d!      d"|j                  d#      d$|j                  d%      d&|j                  d'      d(|j                  d)      d*|j                  d+              |j                          d,d-d.S c c}w w)0N)z.xlsz.xlsxi  zOnly Excel files are allowed)status_codedetailzGROUP NOd   group_noformat_typezFORMAT TYPEreference_retailerzREFERENCE RETAILERno_of_storeszNO OF STORESindicative_categorieszIndicative categoriesno_of_sub_cats_lzNo of Sub Cats(L)no_of_sub_cats_mzNo of Sub Cats(M)no_of_sub_cats_hzNo of Sub Cats(H)indicative_size_sqftzIndicative Size [Sqaure Feet]indicative_capital_rs_crz:Indicative Capital Available (O*50*0.6/100) [Rs in Crores]!approx_investment_per_store_lakhsz.Approx Investment  Per store [in Rupees Lakhs]competition_intensity_lzCompetition intensity Lcompetition_intensity_mzCompetition intensity Mcompetition_intensity_hzCompetition intensity Htech_investment_h_lakhsz$Technology Investment in Rs.Lakhs(H)tech_investment_m_lakhsz$Technology Investment in Rs.Lakhs(M)tech_investment_l_lakhsz$Technology Investment in Rs.Lakhs(L)spillage_factor_hzSpillage Factor (H)spillage_factor_lzSpillage Factor (L)1z Excel data uploaded successfully)statusmessage )filenameendswithr   pd
read_excelr)   columnsstripiterrowswherenotnullgetstraddr   commit)r)   r   dfcol_row	clean_rowr.   s           r   upload_excelrW      sD    ==!!"344RSS	tyy	!B)+4##))+4BJ++-3IIbjjot4	 ==,8}Tc*H
| 

!m4
  )}}-AB
 #~6	

 #,--0G"H
 ']]+>?
 ']]+>?
 ']]+>?
 "+/N!O
 &/]]3o%p
 /8mm<l.m
 %.MM2K$L
 %.MM2K$L
 %.MM2K$L
 %.MM2X$Y
  %.MM2X$Y!
" %.MM2X$Y#
$ (mm,AB%
& (mm,AB'
 	  < IIK&HIIC 5s   AII/G!Iz/delete_network_plan
network_idc                 T   K   t        ||      j                  |        d {   S 7 wr   )r   delete_network_plan)rX   r   r   s      r   rZ   rZ   G   s$     '51EEjQQQQr   )&fastapir   r   r   r   sqlalchemy.ormr   typingr   r	   app.api.network.schemasr
   r   r   app.api.network.servicer   app.database.main.mysqlr   app.dependency.authanticationr   r   r   pandasrG   app.models.main.group_datar   network_planning_routerpostr   rN   intr"   r&   putr(   rW   deleterZ   rD       r   <module>rj      s   8 8 " " g g : * O !  3#+ 4RVWPd+@&A PiPWY`agYhPhFi Pqz  |L  NU  Vi  Nj  |j  rk P XP B_cd6=foahi|a} I3 IG IN^ I eI L\`ax\y  W[  \ELV_ov  xK  pL R3 R7 R\l R \R 3QUVP'< P7T[\bTcKcAd Plu  wG  IP  Qd  Ie  we  mf P WP 9:*.s)76? &JZ &J &J ;&JP  6TXY;B6?el  nA  fB R R RRb R ZRri   