
    	,h                     h    d dl mZ d dlmZ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	)
    )func)CivilCreateCivilResponse)	CivilBaseTblCivil)Session)TblStoreFormat)CustomResponsec                   <    e Zd ZdefdZdefdZdefdZdefdZ	y)	CivilServicedbc                      || _         || _        y )N)r   token)selfr   r   s      0/var/www/html/RetailAPI/app/api/civil/service.py__init__zCivilService.__init__	   s    
    requestc                   K   | j                   j                  t              j                  t        j                  |j                  k(  t        j
                  |j
                  k(        j                         }|st        ddi       S |j                  xs d}|j                  |z  }t        j                  |      }||_        t        j                  t        j                  |j!                               | j                         }| j                   j#                          | j                   j%                  |       t        dd|j&                  |j                  d      S w)N0z6Store format not found for given group and format typestatusmessagedatar   1zCivil created successfully)civil_id
total_sqft)r   queryr	   filtergroup_idstore_format_typefirstr
   
store_sizerate_per_sqftr   model_validater   r   creater   
model_dumpcommitrefreshr   )r   r   store_formatr#   r   civil_schemacivil_records          r   create_civilzCivilService.create_civil   s%    n5<<''7+;+;;N<\<\`g`y`y<yeg 	 !6nuwxx!,,1
**Z7
$33G<",y'?'?@W@W@Y'Z\`\c\cd%S1M`l`u`u  EQ  E\  E\  T]  ^  	^s   EEr    c                   K   | j                   j                  t              j                  t        j                  |k(        j                         }|st        dd      S t        ddt        j                  |            S w)Nz-1zNo Civil Data Found)r   r   r   zCivil data fetched successfullyr   )	r   r   r   r   r    r"   r
   r   r%   )r   r    r,   s      r   get_civil_by_group_idz"CivilService.get_civil_by_group_id   ss     ww}}X.55h6G6G86STZZ\!7LMMS1RXeXtXt  vB  YC  D  	Ds   A>B c                    | j                   j                  t        j                  t	        j
                  t        j                        j                  d            j                  t        j                  |k(        j                  t        j                        j                         }|D cg c]  \  }}||xs dd c}}S c c}}w )Nsubtotalg        )r!   r1   )r   r   r   r!   r   sumr   labelr   r    group_byall)r   r    resultsr!   r1   s        r   get_subtotal_by_store_formatz)CivilService.get_subtotal_by_store_format#   s    GGMM**,,-33J? VH%%12Xh001SU 	 07
/6+!8 #4SQ/6
 	
 
s   +CN)
__name__
__module____qualname__r   r   r   r-   intr/   r7    r   r   r   r      s6    7 ^+ ^ DC D
S 
r   r   N)
sqlalchemyr   app.api.civil.schemasr   r   app.models.main.civilr   r   sqlalchemy.ormr   app.models.main.store_formater	   app.utils.schemas_utilsr
   r   r<   r   r   <module>rC      s!     < 5 " 8 2)
 )
r   