
    .i                         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)CorporateConceptOfficeBaseTblCorporateConceptOffice)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)CorporateConceptOfficeServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      O/var/www/html/retail-simulation-api/app/api/corporate_concept_office/service.py__init__z&CorporateConceptOfficeService.__init__   s    
    requestc                 B  K   g }d}d}t        ||      }t        |       |j                  |       |d   }|D ]d  }t        j                  |j                               }t        j                  || j                        }	| j                  j                  |	       | j                  j                          |j                  |	       |	j                  }
dddddd	}|
|v s||
   }t        |j                  xs d
      |d| <   t        |j                  xs d
      |d| <   t        |j                   xs d
      |d| <   t        |j"                  xs d
      |d| <   t        |j$                  xs d
      |d| <   t        |j&                  xs d
      |d| <   g | j                  j)                          |j                  |       |j+                          t-        dt.        j0                  j3                  |             t5        dt6        j8                        S w)N;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxOrg Structure      	   
                     r   DCFILO"   ✅ Excel updated successfully at:1statusmessage)r	   r   saver   model_validate
model_dumpr   create_corporate_concept_officer   addflushappendcorporate_idfloatcost_to_companyy1y2y3y4y5commitcloseprintospathabspathr
   r   CORPORATE_CONCEPT_OFFICE)r   r   createOUTPUT_PATH
EXCEL_PATHworkbooksheetreqcreatedsalecidrow_maprows                r   r6   z=CorporateConceptOfficeService.create_corporate_concept_office   s    SB
%k:>h'k" )C0??@PQG,LLWVZV]V]^DGGKKGGMMOMM$##CaB26Gg~cl#()@)@)EA#F#i #(q#9#i #(q#9#i #(q#9#i #(q#9#i #(q#9#i    	k"2BGGOOK4PQS(2S2STTs   CHEH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_corporate_concept_officer   r   r   CorporateConceptOfficeResponser4   )r   rT    new_get_corporate_concept_office	get_groups       r   rX   z:CorporateConceptOfficeService.get_corporate_concept_office?   sv     +D+a+abjlplsls+t(/C8PQQ bB  C  bBT]55DDYO  bB  C  	C  Cs   4A$&AA$c                   K   d}d}t        j                  dd       t        |      }t         j                  j	                  |      rt        |      }nt        |      }|d   }ddd	d
dd}|D ]Y  }t        j                  |j                               }|j                  t        dt        j                        c S t        j                  |j                  || j                         |j                  }	|	|v r||	   }
n|j                  dz   }
t!        |j"                  xs d      |d|
 <   t!        |j$                  xs d      |d|
 <   t!        |j&                  xs d      |d|
 <   t!        |j(                  xs d      |d|
 <   t!        |j*                  xs d      |d|
 <   t!        |j,                  xs d      |d|
 <   \ | j                  j/                          |j1                  |       |j3                          t5        dt         j                  j7                  |             t        dt        j8                        S w)Nr   r   uploaded_filesT)exist_okr   r   r   r   r    r!   r"   -1r0   r#   r   r(   r)   r*   r+   r,   r-   r.   r/   )rE   makedirsr   rF   existsr   r4   r5   r:   r
   r   CORPORATE_CONCEPT_OFFICE_NOTr   update_corporate_concept_officer   max_rowr;   r<   r=   r>   r?   r@   rA   rB   r3   rC   rD   rG   CORPORATE_CONCEPT_OFFICE_UPDATE)r   r   rK   rJ   rL   rM   rR   rN   updatedrQ   rS   s              r   rc   z=CorporateConceptOfficeService.update_corporate_concept_officeE   s    B
S
$t4 ,77>>+&$[1H %Z0H)A!r2C0??@PQG##+%T8;`;`aa%EEgFZFZ\ceielelm&&Cg~clmma'$W%<%<%ABEAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)$WZZ_15EAcU)   	k"2BGGOOK4PQS(2Z2Z[[s   II
r:   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr_   r0   r/   )r   delete_corporate_concept_officer   r
   r   rb   CORPORATE_CONCEPT_OFFICE_DELTE)r   r:    deleted_corporate_concept_offices      r   rh   z=CorporateConceptOfficeService.delete_corporate_concept_officei   sJ     +D+d+deqswszsz+{(/!x7\7\]]S(2Y2YZZs   AAN)__name__
__module____qualname__r   r   r   r   r   CorporateConceptOfficeCreater6   intrX   CorporateConceptOfficeUpdaterc   rh    r   r   r   r      sf    ' )9 )UT&BeBe=f )UXC# C!\T&BeBe=f !\H[ [r   r   )rE   typingr   openpyxlr    app.api.corporate_concept_officer   (app.models.main.corporate_concept_officer   r   app.utils.common_utilsr   r	   app.utils.schemas_utilsr
   sqlalchemy.ormr   app.dependency.authanticationr   app.locale.messagesr   fastapir   r   rq   r   r   <module>r|      s4    	  " 3 j L 2 " : ( !_[ _[r   