
    .iM                         d dl 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
 d dlmZmZ d dlmZmZ d d	lmZ d d
lmZ d dlmZ  G d d      Zy)    N)List)load_workbook)Session)schema)JWTPayloadSchema)PhysicalStoreFormatsBaseTblPhysicalStoreFormats)remove_external_linkssafe_load_workbook)CustomResponse)Messages)HTTPExceptionc                       e Zd ZdedefdZdeej                     fdZ	de
fdZdeej                     fdZd	e
fd
Zy)PhysicalStoreFormatsServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      M/var/www/html/retail-simulation-api/app/api/physical_store_formats/service.py__init__z$PhysicalStoreFormatsService.__init__   s    
    requestc                 0  K   d}d}t        ||      }t        |       |j                  |       |D ]  }t        j                  |j                               }t        j                  || j                         | j                  j                          |j                  dk(  re|d   }|j                  |d<   |j                  |d<   |j                  |d<   |d   }|j                  |d<   |j                  |d<   |j                  |d<   |j                  d	k(  rf|d   }	|j                  |	d
<   |j                  |	d<   |j                  |	d<   |d   }
|j                  |
d
<   |j                  |
d<   |j                  |
d<   J|j                  dk(  rf|d   }|j                  |d<   |j                  |d<   |j                  |d<   |d   }|j                  |d<   |j                  |d<   |j                  |d<   |j                  dk(  rf|d   }|j                  |d<   |j                  |d<   |j                  |d<   |d   }|j                  |d<   |j                  |d<   |j                  |d<   4|j                  dk(  rf|d   }|j                  |d<   |j                  |d<   |j                  |d<   |d   }|j                  |d<   |j                  |d<   |j                  |d<   |j                  dk(  rf|d   }|j                  |d<   |j                  |d<   |j                  |d<   |d   }|j                  |d<   |j                  |d<   |j                  |d<   |j                  dk(  rf|d   }|j                  |d<   |j                  |d<   |j                  |d <   |d   }|j                  |d<   |j                  |d<   |j                  |d <   |j                  d!k(  rf|d   }|j                  |d"<   |j                  |d#<   |j                  |d$<   |d   }|j                  |d"<   |j                  |d#<   |j                  |d$<   |j                  d%k(  r4|d&   }|j                  |d'<   |j                  |d(<   |j                  |d)<   K|j                  d*k(  r4|d+   }|j                  |d'<   |j                  |d,<   |j                  |d)<   |j                  d-k(  r4|d+   }|j                  |d'<   |j                  |d,<   |j                  |d)<   |j                  d.k(  r4|d+   }|j                  |d'<   |j                  |d,<   |j                  |d)<   |j                  d.k(  r4|d+   }|j                  |d'<   |j                  |d,<   |j                  |d)<   W|j                  d.k(  sh|d+   }|j                  |d'<   |j                  |d,<   |j                  |d)<    |j                  |       |j                          t        d/|       t!        d0t"        j$                  1      S w)2N;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxInvestment & Capital ExpensesPlan Working AF15H15J15Plan Working BPre-Operating ExpensesF39H39J39Rental Advance (Deposit)F48H48J48RentF142H142J142Bills per monthF66H66J66Average Price per itemF70H70J70Other IncomeF111H111J111	UtilitiesF184H184J184Logistics and TransportationPlan Working OnlineF86H86J86Corporate Employee SalaryOrg StructureH16Concept Employee SalaryStore Level Employee Salaryu"   ✅ Excel updated successfully at:1statusmessage)r   r
   saver   model_validate
model_dumpr	   creater   commitmetricy1_y2y3_y4y5_y6closeprintr   r   PHYSICAL_STORE_FORMATS)r   r   OUTPUT_PATH
EXCEL_PATHworkbookreqcreated_datasheet_asheet_bsheet_csheet_dsheet_esheet_fsheet_gsheet_hsheet_isheet_jsheet_ksheet_lsheet_msheet_nsheet_osheet_psheet_qsheet_rsheet_ssheet_ts                              r   createdz#PhysicalStoreFormatsService.created   s+    SB
%k:>h'k" C3BB3>>CSTL#**<AGGNNzz<<"#34!-!3!3!-!3!3!-!3!3"#34!-!3!3!-!3!3!-!3!377"#34!-!3!3!-!3!3!-!3!3"#34!-!3!3!-!3!3!-!3!399"#34!-!3!3!-!3!3!-!3!3"#34!-!3!3!-!3!3!-!3!3v%"#34"."4"4"."4"4"."4"4"#34"."4"4"."4"4"."4"400"#34!-!3!3!-!3!3!-!3!3"#34!-!3!3!-!3!3!-!3!377"#34!-!3!3!-!3!3!-!3!3"#34!-!3!3!-!3!3!-!3!3~-"#34"."4"4"."4"4"."4"4"#34"."4"4"."4"4"."4"4{*"#34"."4"4"."4"4"."4"4"#34"."4"4"."4"4"."4"4=="#89!-!3!3!-!3!3!-!3!3::"?3!-!3!3!-!3!3!-!3!388"?3!-!3!3!-!3!3!-!3!3<<"?3!-!3!3!-!3!3!-!3!3<<"?3!-!3!3!-!3!3!-!3!3<<"?3!-!3!3!-!3!3!-!3!3[ ^ 	k"2K@S(2Q2QRRs   VXA=Xgroup_idc                    K   t        j                  || j                        }|st        dd      |D cg c]!  }t        j
                  j                  |      # c}S c c}w w)Ni  zGet group ID not found)status_codedetail)r	   getr   r   r   PhysicalStoreFormatsResponserM   )r   rr   
geted_data	get_groups       r   getedz!PhysicalStoreFormatsService.geted   sY     +//$''B
C8PQQ_ij_iR[33BB9M_ijjjs   4A$&AA$c                 <  K   d}d}t        ||      }t        |       |j                  |       |D ]+  }t        j                  |j                               }|j                  t        dt        j                        c S t        j                  |j                  || j                        }| j                  j                          | j                  j                  |       |j                  }|dk(  r:dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d	<   6 |d
k(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d<   6 ;|dk(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d<   6 {|dk(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d<   6 |dk(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d<   6 |dk(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d<   |j$                  |
d<   6 ;|dk(  r;dD ]4  }	||	   }
|j                   |
d<   |j"                  |
d <   |j$                  |
d!<   6 {|d"k(  r;dD ]4  }	||	   }
|j                   |
d#<   |j"                  |
d$<   |j$                  |
d%<   6 |d&k(  r4|d'   }
|j                   |
d(<   |j"                  |
d)<   |j$                  |
d*<   |d+v s|d,   }
|j                   |
d(<   |j"                  |
d-<   |j$                  |
d*<   . |j                  |       |j'                          t        d.t        j(                        S w)/Nr   r   -1rI   r   )r   r!   r   r   r    r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   r,   r-   r.   r/   r0   r1   r2   r3   r4   r5   r6   r7   r8   r9   r:   r;   r<   r=   r>   r?   r@   rA   rB   )rC   rF   rG   rD   rE   rH   )r   r
   rL   r   rM   rN   physical_idr   r   PHYSICAL_STORE_FORMATS_NOTr	   updater   rP   refreshrQ   rR   rS   rT   rU   PHYSICAL_STORE_FORMATS_UPDATE)r   r   rX   rY   rZ   r[   	validatedorm_objrQ   
sheet_namewss              r   updatedz#PhysicalStoreFormatsService.updatedR  s    SB
%k:>h'k" C0??@PQI$$,%T8;^;^__-44%%G
 GGNNGGOOG$ZZF88"FJ!*-B )BuI )BuI )BuI	 #G 33"FJ!*-B )BuI )BuI )BuI	 #G 55"FJ!*-B )BuI )BuI )BuI	 #G 6!"FJ!*-B!*BvJ!*BvJ!*BvJ	 #G ,,"FJ!*-B )BuI )BuI )BuI	 #G 33"FJ!*-B )BuI )BuI )BuI	 #G >)"FJ!*-B!*BvJ!*BvJ!*BvJ	 #G ;&"FJ!*-B!*BvJ!*BvJ!*BvJ	 #G 9934%OO5	%OO5	%OO5	  
 o.%OO5	%OO5	%OO5	i n 	k"S(2X2XYYs   L'N+A1Nr}   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr|   rI   rH   )r	   deleter   r   r   r~   PHYSICAL_STORE_FORMATS_DELETE)r   r}   deleted_datas      r   deletedz#PhysicalStoreFormatsService.deleted  sE     .55k477K!x7Z7Z[[S(2X2XYYs   AAN)__name__
__module____qualname__r   r   r   r   r   PhysicalStoreFormatsCreaterq   intrz   PhysicalStoreFormatsUpdater   r    r   r   r   r      sk    ' )9 dST&*K*K%L dSLk3 ktkZT&*K*K%L kZ\Z Zr   r   )ostypingr   openpyxlr   sqlalchemy.ormr   app.api.physical_store_formatsr   app.dependency.authanticationr   &app.models.main.physical_store_formatsr   r	   app.utils.common_utilsr
   r   app.utils.schemas_utilsr   app.locale.messagesr   fastapir   r   r   r   r   <module>r      s4    	  " " 1 : d L 2 ( !wZ wZr   