
    .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 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)TradingMonthCreateTradingMonthResponce)Messages)Session)TblGroup)TblTradingMonthTradingMonthBase)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
)TradingMonthServicedbc                      || _         || _        y )N)r   token)selfr   r   s      D/var/www/html/retail-simulation-api/app/api/trading_month/service.py__init__zTradingMonthService.__init__   s    
    requestc                   K   | j                   j                  t              j                  t        j                  |j                  k(        j                         }|st        dd|j                   d      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K28)store_a_trading_monthsstore_b_trading_monthsAssu Sum Mod Ar"   Assu Sum Mod Br#   1z4Trading Month created and Excel updated 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_trading_monthz(TradingMonthService.create_trading_month   sH    h'..x/@/@GDTDT/TU[[] 	'BRBRASSb6cdd (66w7I7I7KL|TWW5SB
%k:>h'k" ',&+
 +,78&== +,78&== 	k"S2hiis   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   TRADING_NOTr   r+   )r   r)   segment	get_groups       r   get_tradingzTradingMonthService.get_tradingA   sX     !11(DGGD!x7K7KLLPWXPW9$33I>PWXXXs   AA(A# A(c                 N  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                  |       |j                  }|j                   }d}d}t#        ||      }	t%        |	       |	j'                  |       |	d   }
||
d<   |	d   }||d<   |	j'                  |       |	j)                          t	        dt
        j*                        S w)	Nr   r   r   r    r$   r!   r%   r&   )r   r+   r,   
trading_idr   r   r>   r   updater   r'   r(   r*   r.   refreshr"   r#   r   r   r/   r0   TRADING_UPDATE)r   r   last_updated_objrequpdatedstore_astore_br3   r4   r5   r7   r9   s               r   update_tradingz"TradingMonthService.update_tradingG   s\    C&55cnn6FGG!!)%T8;O;OPP""7#5#5wH o.22g6H6HHI   	GGOO,- #99"99SB
%k:>h'k" +,  +, k"S(2I2IJJs   F#F%rC   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S w)Nr   r   r&   )r   deleter   r   r   r>   TRADING_DELETE)r   rC   deleteds      r   delete_tradingz"TradingMonthService.delete_trading~   sE     !((TWW=!x7K7KLLS(2I2IJJs   AAN)__name__
__module____qualname__r	   r   r   r;   intrA   r   r   TradingMonthUpdaterL   rQ    r   r   r   r      sT    7 ,j2D ,j\Y# Y5KD1K1K,L 5KnKc Kr   r   )ostypingr   openpyxlr   app.api.trading_monthr   app.api.trading_month.schemasr   r   app.locale.messagesr   sqlalchemy.ormr	   app.models.main.groupr
   app.models.main.trading_monthsr   r   app.utils.common_utilsr   r   app.utils.schemas_utilsr   r   rW   r   r   <module>rc      s4    	  " ) R ( " * L L 2tK tKr   