
    	,h                     |    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 d dlmZmZ d dlmZ  G d	 d
      Zy)    )HTTPException)func)Session)schema)JWTPayloadSchema)Messages)SalesEstimateBaseTblSalesEstimate)CustomResponsec                       e Zd ZdedefdZdej                  fdZde	fdZ
dd
Zde	dd	fdZdej                  fdZde	fdZy)SalesEstimateServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      9/var/www/html/RetailAPI/app/api/sales_estimate/service.py__init__zSalesEstimateService.__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_sales_estimater   commitr   r   SALES_ESTIMATE)r   r   created_sales_estimates      r   r   z*SalesEstimateService.create_sales_estimate   sV     !2!A!A'BTBTBV!W../EtwwOS(2I2IJJs   A9A;sales_get_idc                    K   t        j                  || j                        }|st        dd      t        j
                  j                  |      S w)N  zGet Sales Estimate ID not foundstatus_codedetail)r
   get_sales_estimater   r   r   SalesEstimateResponser   )r   r!   new_get_sales_estimates      r   r'   z'SalesEstimateService.get_sales_estimate   sI     !1!D!D\SWSZSZ![%C8YZZ++::;QRRs   AA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
   filtergroup_idallr   r   r(   r   )r   r.   new_get_group_sales_estimate	get_groups       r   get_group_sales_estimatez-SalesEstimateService.get_group_sales_estimate   sw     '+ww}}5E'F'M'MN^NgNgksNs't'x'x'z$+C8PQQXtuXt9,,;;IFXtuuus   A!B#&B	Br.   c           	        K   | j                   j                  t        j                  t        j                  t        j
                  t        j                                    j                  d            j                  t        j                  j                  g d      t        j                  |k(        j                         }|st        dd      |S w)Nsales_value)zNumber of Bills per MonthzNumber of Items per Billz"Average Price per item (in Rupees)r#   zGet Multiple ID not foundr$   )r   r,   r   expsumlnr
   valuelabelr-   	parameterin_r.   scalarr   )r   r.   "new_get_sales_value_sales_estimates      r   get_sales_value_sales_estimatez3SalesEstimateService.get_sales_value_sales_estimate!   s     GGMM488DHHTWW5E5K5K-L$MNTTUbcd
 V **.. 0 
 !))X5 VX 	+$ 3C8STT11s   CC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   sales_idr   r   SALES_ESTIMATE_NOTr
   update_sales_estimater   r   SALES_ESTIMATE_UPDATE)r   r   updated_sales_estimates      r   rC   z*SalesEstimateService.update_sales_estimateC   s     !2!A!A'BTBTBV!W!**2!x7R7RSS../E/N/NPfhlhohopS83Q3QRRs   B+B-c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr@   )r
   delete_sales_estimater   r   r   rB   SALES_ESTIMATE_DELETE)r   r.   deleted_sales_estimates      r   rG   z*SalesEstimateService.delete_sales_estimateK   sI     !1!G!GRVRYRY!Z%!x7R7RSSS(2P2PQQs   AAN)r*   r
   )__name__
__module____qualname__r   r   r   r   SalesEstimateCreater   intr'   r2   r>   SalesEstimateUpdaterC   rG    r   r   r   r   
   su    ' )9 K&2L2L KSC Sv2C 2CU 2DS&2L2L SR3 Rr   r   N)fastapir   
sqlalchemyr   sqlalchemy.ormr   app.api.sales_estimater   app.dependency.authanticationr   app.locale.messagesr   app.models.main.sales_estimater	   r
   app.utils.schemas_utilsr   r   rP   r   r   <module>rY      s+    !  " ) : ( O 2ER ERr   