o
    Uh                     @   s   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mZmZmZ d dlmZ G dd deZG d	d
 d
eZdS )    )Optional)HTTPException)	BaseModelField)VARCHAR
ForeignKey)MappedSessionmapped_columnrelationship)Basec                   @   s   e Zd ZU eddZedB ed< eddZedB ed< eddZedB ed< eddZ	edB ed< eddZ
edB ed< eddZedB ed< eddZedB ed	< eddZedB ed
< eddZedB ed< eddZedB ed< dS )PreOperatingExpenseBaseN)defaultpre_operating_idgroup_idpre_operating_months_store_apre_operating_months_store_bmarketing_expenses_store_amarketing_expenses_store_baccounting_benefits_store_aaccounting_benefits_store_bother_remarks_store_aother_remarks_store_b)__name__
__module____qualname__r   r   int__annotations__r   r   r   r   r   r   strr   r   r    r   r   A/var/www/html/RetailAPI/app/models/main/pre_operating_expenses.pyr      s   
 r   c                	   @   s  e Zd ZU dZedddZee ed< ee	dddZ
ee ed< eddZee ed	< eddZee ed
< eddZee ed< eddZee ed< eedddZeee  ed< eedddZeee  ed< eedddZeee  ed< eedddZeee  ed< edddZedededd fddZedededdfddZedededd fddZededededdfdd Zd!S )"TblPreOperatingExpensetbl_pre_operating_expenseT)primary_keyautoincrementr   ztbl_group.group_idF)nullabler   r   r   r   r      r   r   r   r   TblGrouppre_operating_expense)back_populatesdatadbreturnc                 C   s,   |  }| di |}|| |  |S )Nr   )
model_dumpaddflush)clsr*   r+   	data_dictnew_datar   r   r    create$   s
   
zTblPreOperatingExpense.createzTblPreOperatingExpense | Nonec                 C   s   | | | j|k S N)queryfilterr   first)r0   r   r+   r   r   r    get_trading,   s   z"TblPreOperatingExpense.get_tradingc                 C   s.   | | | j|k }|stddd|S )Ni  z.Pre Operating Expense not found for this Group)status_codedetail)r5   r6   r   r7   r   )r0   r   r+   tradingr   r   r    get_by_group_id0   s   z&TblPreOperatingExpense.get_by_group_idc                 C   sf   | | | j|k }|sd S | }| D ]\}}|d ur't||| q|  || |S r4   )	r5   r6   r   r7   r-   itemssetattrcommitrefresh)r0   r   r*   r+   get_datar1   keyvaluer   r   r    update7   s   
zTblPreOperatingExpense.updateN)r   r   r   __tablename__r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   groupclassmethodr   r	   r3   r8   r<   rD   r   r   r   r    r!      s*   
      r!   N)typingr   fastapir   pydanticr   r   
sqlalchemyr   r   sqlalchemy.ormr   r	   r
   r   app.models.mainr   r   r!   r   r   r   r    <module>   s    