
    .ih                         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 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  G d d      Zy)    N)List)load_workbook)schemas)PreOperatingExpenseCreatePreOperatingExpenseResponce)Messages)Session)TblGroup)PreOperatingExpenseBaseTblPreOperatingExpense)remove_external_linkssafe_load_workbook)CustomResponsec                   b    e Zd ZdefdZdefdZdefdZde	e
j                     fdZdefd	Zy
)PreOperatingExpenseServicedbc                      || _         || _        y )N)r   token)selfr   r   s      M/var/www/html/retail-simulation-api/app/api/pre_operating_expenses/service.py__init__z#PreOperatingExpenseService.__init__   s    
    requestc                   K   | j                   j                  t              j                  t        j                  |j                  k(        j                         }|st        dd|j                   d      S t        j                  |j                               }t        j                  || j                          | j                   j                          d}d}t        ||      }t        |       |j                  |       ddd}|d	   }|d
   }	|j                   ||	<   |d   }
|d   }|j"                  |
|<   |j                  |       |j%                          t        dd      S w)N-1z	group_id=z does not existstatusmessage;uploaded_files/Simulation_Test_file_clean_final_output.xlsx+files/Simulation_Test_file_clean_final.xlsxK25pre_operating_months_store_apre_operating_months_store_bAssu Sum Mod Ar#   Assu Sum Mod Br$   1z*Pre Operating Expense created successfully)r   queryr
   filtergroup_idfirstr   r   model_validate
model_dumpr   createcommitr   r   saver#   r$   close)r   r   grouptrading_dataOUTPUT_PATH
EXCEL_PATHworkbookparam_to_cellsheet_acell_asheet_bcell_bs               r   create_pre_operating_expensez7PreOperatingExpenseService.create_pre_operating_expense   sF    h'..x/@/@GDTDT/TU[[]!7CSCSBTTc7dee.==g>P>P>RS%%lDGG<SB
%k:>h'k"$ -2,1
 +,=>&CC +,=>&CC 	k"S2^__s   E#E%r*   c                    K   t        j                  || j                        }|st        dt        j
                        S |D cg c]  }t        j                  |       c}S c c}w w)Nr   r   )r   get_by_group_idr   r   r   SEGMENT_NOT_FOUNDr   r,   )r   r*   segment	get_groups       r   get_pre_operating_expensez4PreOperatingExpenseService.get_pre_operating_expenseE   sX     (88477K!x7Q7QRRW^_W^)+::9EW^___s   AA(A# A(c                 \  K   d }|D ]  }t        j                  |j                               }|j                  t	        dt
        j                        c S t        j                  |j                  || j                         | j                  j                  t              j                  t        j                  |j                  k(        j                         } | j                  j                          |r| j                  j                  |       d}d}t        ||      }t!        |       |j#                  |       ddd}|d   }	|d   }
|j$                  |	|d	   <   |j&                  |
|d
   <   |j#                  |       |j)                          t	        dt
        j*                        S w)Nr   r   r   r    r!   r"   r%   r&   r#   r$   r'   )r   r,   r-   pre_operating_idr   r   PRE_OPERATING_EXPENSES_NOTr   updater   r(   r)   r+   r/   refreshr   r   r0   r#   r$   r1   PRE_OPERATING_EXPENSES_UPDATE)r   r   last_updated_rowrequpdatedr4   r5   r6   r7   r8   r:   s              r   rF   z!PreOperatingExpenseService.updateK   sk    C-<<S^^=MNG''/%T8;^;^__"))'*B*BGTWWU45.??7C[C[[\   	GGOO,-SB
%k:>h'k" -2,1

 +,+,AQAnAn<=>AQAnAn<=>k"S(2X2XYYs   F*F,rD   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr   r   r'   )r   deleter   r   r   rE   PRE_OPERATING_EXPENSES_DELETE)r   rD   deleteds      r   rM   z!PreOperatingExpenseService.deletex   sF     (//0@$''J!x7Z7Z[[S(2X2XYYs   AAN)__name__
__module____qualname__r	   r   r   r<   intrB   r   r   PreOperatingExpenseUpdaterF   rM    r   r   r   r      sT    7 0`:S 0`d` `+ZD)J)J$K +ZZZC Zr   r   )ostypingr   openpyxlr   app.api.pre_operating_expensesr   &app.api.pre_operating_expenses.schemasr   r   app.locale.messagesr   sqlalchemy.ormr	   app.models.main.groupr
   &app.models.main.pre_operating_expensesr   r   app.utils.common_utilsr   r   app.utils.schemas_utilsr   r   rU   r   r   <module>ra      s4    	  " 2 i ( " * b L 2nZ nZr   