
    .ip                         d dl 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 d d
lmZ d dlmZ  G d d      Zy)    N)List)load_workbook)schema)StoreLevelStaffNeedsBaseTblStoreLevelStaffNeeds)remove_external_linkssafe_load_workbook)CustomResponse)Session)JWTPayloadSchema)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)StoreLevelStaffNeedsServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      N/var/www/html/retail-simulation-api/app/api/store_level_staff_needs/service.py__init__z$StoreLevelStaffNeedsService.__init__   s    
    requestc                   K   d}d}t        ||      }t        |       |j                  |       |d   }|D ]  }t        j                  |j                               }t        j                  || j                        }| j                  j                          |j                  dk  sp|j                  }	|j                  }
ddddd	d
d}|	|v s||	   \  }}|j                  |d| <   |j                  |d| <   |
dk(  r|j                  |d| <   |
dk(  s|j                  |d| <    |j                  |       |j                          t        d|       t!        dt"        j$                        S w)N;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxOrg Structure      '      (      )       *   !   +   "   ,                  r   DStore Format ACStore Format B"   ✅ Excel updated successfully at:1statusmessage)r	   r   saver   model_validate
model_dumpr   create_store_level_staffr   commitstore_idstore_formate_typeaverage_salarycountcloseprintr
   r   STORE_LEVEL_STAFF_NEEDS)r   r   OUTPUT_PATH
EXCEL_PATHworkbooksheetreqcreated_store_level_stafftestrD   fmtrow_maprow_arow_bs                 r   rB   z4StoreLevelStaffNeedsService.create_store_level_staff   sz    SB
%k:>h'k" )C(@(O(OPSP^P^P`(a%*CCD]_c_f_fgDGGNN}}!==-- w&#*8#4LE5)B)Q)QEAeW+&)B)Q)QEAeW+&..-F-L-L%k* 00-F-L-L%k*/ 2 	k"2K@S(2R2RSSs   B#E2&%E2A	E2AE2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   get_store_level_staffr   r   r   StoreLevelStaffNeedsResponser@   )r   rV   new_get_store_level_staff	get_groups       r   rZ   z1StoreLevelStaffNeedsService.get_store_level_staffC   s^     $;$Q$QRZ\`\c\c$d!(C8PQQ_xy_xR[33BB9M_xyyys   4A$&AA$c                 4  K   d}d}t        ||      }t        |       |j                  |       |d   }dddddd	d
}|D ]  }t        j                  |j                               }|j                  t        dt        j                        c S t        j                  |j                  || j                         | j                  j                          |j                  }	|j                  }
|	|v s||	   \  }}|j                  |d| <   |j                  |d| <   |
dk(  r|j                   |d| <   |
dk(  s|j                   |d| <    |j                  |       |j#                          t%        d|       t        dt        j&                        S w)Nr   r   r   r   r!   r$   r'   r*   r-   r0   -1r<   r6   r7   r8   r9   r:   r;   )r	   r   r?   r   r@   rA   rD   r
   r   STORE_LEVEL_STAFF_NEEDS_NOTr   update_store_level_staffr   rC   rE   rF   rG   rH   rI   STORE_LEVEL_STAFF_NEEDS_UPDATE)r   r   rK   rL   rM   rN   rS   rO   updated_store_level_staffrD   rR   rT   rU   s                r   ra   z4StoreLevelStaffNeedsService.update_store_level_staffI   s    SB
%k:>h'k" )
 C(@(O(OPSP^P^P`(a%(119%T8;_;_``#<<)22)
 GGNN099H+>>C7"&x0u%>%M%M%k"%>%M%M%k"**)B)H)HEAeW+&,,)B)H)HEAeW+&' ( 	k"2K@S(2Y2YZZs   C.F1A	F;AFrD   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr_   r<   r;   )r   delete_store_level_staffr   r
   r   r`   STORE_LEVEL_STAFF_NEEDS_DELETE)r   rD   deleted_store_level_staffs      r   re   z4StoreLevelStaffNeedsService.delete_store_level_staff{   sJ     $;$T$TU]_c_f_f$g!(!x7[7[\\S(2Y2YZZs   AAN)__name__
__module____qualname__r   r   r   r   r   StoreLevelStaffNeedsCreaterB   intrZ   StoreLevelStaffNeedsUpdatera   re    r   r   r   r      sf    ' )9 .Td6;\;\6] .T`z3 z0[d6;\;\6] 0[d[s [r   r   )ostypingr   openpyxlr   app.api.store_level_staff_needsr   'app.models.main.store_level_staff_needsr   r   app.utils.common_utilsr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   app.dependency.authanticationr   app.locale.messagesr   fastapir   r   rn   r   r   <module>rz      s4    	  " 2 e L 2 " : ( !q[ q[r   