
    	,hK                         d dl Z d dlZd dl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 d dlmZmZ d dlmZ d d	lmZ d d
lmZ  G d d      Zy)    N)HTTPException)schema)GrossMarginContributionCreate)JWTPayloadSchema)Messages)GrossMarginContributionBaseTblGrossMarginContribution)TblGroup)CustomResponse)Sessionc                       e Zd ZdedefdZdefdZdefdZ	ded	d
fdZ
dej                  fdZdefdZded	ee   fdZy)GrossMarginContributionServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      D/var/www/html/RetailAPI/app/api/gross_margin_contribution/service.py__init__z'GrossMarginContributionService.__init__   s    
    requestc                    K   t        j                  |j                               }t        j                  || j
                         | j
                  j                          t        dt        j                        S w)N1statusmessage)
r   model_validate
model_dumpr	    create_gross_margin_contributionr   commitr   r   GROSS_MARGIN_CONTRIPUTION)r   r   created_gross_margins      r   create_gross_marginz2GrossMarginContributionService.create_gross_margin   sY     :II'J\J\J^_"CCDXZ^ZaZabS(2T2TUUs   A9A;gross_margin_get_idc                    K   t        j                  || j                        }|st        dd      t        j
                  j                  |      S w)N  zGet Gross ID not foundstatus_codedetail)r	   get_gross_margin_contributionr   r   r   GrossMarginContributionResponser   )r   r#   !new_get_gross_margin_contributions      r   r)   z<GrossMarginContributionService.get_gross_margin_contribution   sU     ,F,d,dexz~  {B  {B  -C)0C8PQQ55DDEfggs   AAgroup_idreturnr	   c                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |D cg c]!  }t        j                  j                  |      # c}S c c}w w)Nr%   zGet Group ID not foundr&   )
r   queryr	   filterr,   allr   r   r*   r   )r   r,   r+   get_group_datas       r   #get_group_gross_margin_contributionzBGrossMarginContributionService.get_group_gross_margin_contribution   s     ,0GGMM:T,U,\,\]w  ^A  ^A  EM  ^M  -N  -R  -R  -T)0C8PQQ mN  O  mNZh66EEnU  mN  O  	O  Os   A!B#&B	Bc                 ^  K   t        j                  |j                               }|j                  t	        dt
        j                        S t        j                  |j                  || j                         | j                  j                          t	        dt
        j                        S wNz-1r   r   )r   r   r   gross_idr   r   GROSS_MARGIN_CONTRIPUTION_NOTr	    update_gross_margin_contributionr   r    GROSS_MARGIN_CONTRIPUTION_UPDATE)r   r   !updated_gross_margin_contributions      r   #update_gross_margin_contribution_idzBGrossMarginContributionService.update_gross_margin_contribution_id%   s     ,G,V,VW^WiWiWk,l),55=!x7]7]^^"CCDeDnDn  qR  TX  T[  T[  	\S(2[2[\\s   B+B-gross_margin_delete_idc                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr5   )r	    delete_gross_margin_contributionr   r   r   r7    GROSS_MARGIN_CONTRIPUTION_DELETE)r   r<   !deleted_gross_margin_contributions      r   #delete_gross_margin_contribution_idzBGrossMarginContributionService.delete_gross_margin_contribution_id-   sY     ,F,g,gh~  AE  AH  AH  -I)0!x7]7]^^S(2[2[\\s   AAc                 &  K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      |j                  }|rt        j                  j                  |      st        dd      t        j                  |      }|j                  t        j                  d t        j                   d t        j                    d i      }|d   j#                         j%                         S w)Nr%   z	Not foundr&   z1Excel file path is invalid or file does not existzCategory Name )r   r/   r
   r0   r,   firstr   excel_pre_selectospathexistspd
read_excelreplacenpnaninfdropnatolist)r   r,   get_excel_data
excel_filedfs        r   	get_excelz(GrossMarginContributionService.get_excel3   s     x0778I8IX8UV\\^CDD#44

!;C8kll]]:&ZZrvvtbffWdCD"#**,3355s   DDN)__name__
__module____qualname__r   r   r   r   r"   intr)   r3   r   GrossMarginContributionUpdater;   rA   listdictrS    r   r   r   r      s    ' )9 V0M Vhc hO OHd O]@d@d ]]s ]
6 
6tDz 
6r   r   )rE   pandasrH   numpyrK   fastapir   !app.api.gross_margin_contributionr   (app.api.gross_margin_contribution.schemar   app.dependency.authanticationr   app.locale.messagesr   *app.models.main.gross_margin_contributionsr   r	   app.models.main.groupr
   app.utils.schemas_utilsr   sqlalchemy.ormr   r   r[   r   r   <module>rg      s3    	   ! 4 R : ( n * 2 "/6 /6r   