
    Eh                         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 d dlmZ d dlmZ d d	lmZ d d
lmZ  G d d      Zy)    )List)func)schemas)DisplayRackingUnitCreateDisplayRackingUnitResponce)DisplayRackingUnitBaseTblDisplayRackingUnit)CustomResponse)Messages)Session)JWTPayloadSchema)HTTPExceptionc                   r    e Zd Zdedef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)DisplayRackingUnitServicedbtokenc                      || _         || _        y )N)r   r   )selfr   r   s      M/var/www/html/retail-simulation-api/app/api/display_racking_create/service.py__init__z"DisplayRackingUnitService.__init__   s    
    requestc           	        K   |j                   |j                  z  }t        |j                  |j                  |j
                  |j                  |j                   ||j                        }t        j                  || j                        }| j                  j                          | j                  j                  |       t        j                  |d      }t        dd|      S w)N)group_idstore_format_typetype_display_racking_unitnumber_of_unitscost_per_unittotalremarksT)from_attributes1z,Display and Racking units saved Successfully)statusmessagedata)r   r   r   r   r   r   r    r	   creater   commitrefreshr   model_validater
   )r   r   r   	rack_datarack_recordresponses         r   create_display_racking_unitz5DisplayRackingUnitService.create_display_racking_unit   s     %%(?(??*%%%77&-&G&G#33!//OO	
	 ,229dggF$-<<[Z^_S2`gopps   C"C$r   c                    K   t        j                  || j                        }|st        dd      |D cg c]  }t	        j
                  |       c}S c c}w w)Ni  zGet group ID not found)status_codedetail)r	   get_unitr   r   r   r)   )r   r   geted	get_groups       r   get_racking_by_group_idz1DisplayRackingUnitService.get_racking_by_group_id#   sS     $--h@C8PQQV[\V[*99)DV[\\\s   4AAA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   r6   )r   queryr	   r   r   sumr   labelfilterr   group_byall)r   r   resultsr   r6   s        r   get_subtotal_by_store_formatz6DisplayRackingUnitService.get_subtotal_by_store_format)   s    GGMM%77.445;;JG V)22h>?X+==>SU 	 07
/6+!8 #4SQ/6
 	
 
s   +Cc                 p  K   |D ]y  }t        j                  |j                               }|j                  t	        dt
        j                        c S t        j                  |j                  || j                         { | j                  j                          t	        dt
        j                        S wNz-1)r#   r$   r"   )r   r)   
model_dumprack_idr
   r   DISPLAY_RACKING_NOTr	   update_unitr   r'   DISPLAY_RACKING_UPDATE)r   r   requpdateds       r   updatez DisplayRackingUnitService.update:   s     C,;;CNN<LMG&%T8;W;WXX!--goowP	 
 	S(2Q2QRRs   B4B6rB   c                    K   t        j                  || j                        }|st        dt        j
                        S t        dt        j                        S wr@   )r	   delete_unitr   r
   r   rC   DISPLAY_RACKING_DELETE)r   rB   deleteds      r   deletez DisplayRackingUnitService.deleteC   sE     '33GTWWE!x7S7STTS(2Q2QRRs   AAN)__name__
__module____qualname__r   r   r   r   r-   intr4   r>   r   r   DisplayRackingUnitUpdaterH   rM    r   r   r   r      sf    ' )9 q9Q q$]c ]
S 
"S4(H(H#I SS3 Sr   r   N)typingr   
sqlalchemyr   app.api.display_racking_creater   &app.api.display_racking_create.schemasr   r   $app.models.main.display_racking_unitr   r	   app.utils.schemas_utilsr
   app.locale.messagesr   sqlalchemy.ormr   app.dependency.authanticationr   fastapir   r   rS   r   r   <module>r^      s/      2 f ^ 2 ( " : !;S ;Sr   