
    h                     P    d dl mZ d dlmZmZ d dlmZmZ d dlm	Z	  G d d      Z
y)    )func)DisplayRackingUnitCreateDisplayRackingUnitResponce)DisplayRackingUnitBaseTblDisplayRackingUnit)CustomResponsec                   6    e Zd Zd ZdefdZdefdZdefdZy)DisplayRackingUnitServicec                      || _         || _        y )N)dbtoken)selfr   r   s      A/var/www/html/RetailAPI/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 Racking Unit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^_S2HxXXs   C"C$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   queryr   filterr   firstr   r   r$   )r   r   civil_records      r   get_racking_by_group_idz1DisplayRackingUnitService.get_racking_by_group_id   s~     ww}}%:;BBCXCaCaemCmnttv!7LMMS1RXr  YB  YB  CO  YP  Q  	Q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   r0   )r   r*   r   r   r   sumr   labelr+   r   group_byall)r   r   resultsr   r0   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N)	__name__
__module____qualname__r   r   r(   intr.   r6    r   r   r
   r
      s0    Y9Q Y$Qc Q
S 
r   r
   N)
sqlalchemyr   &app.api.display_racking_create.schemasr   r   $app.models.main.display_racking_unitr   r   app.utils.schemas_utilsr   r
   r;   r   r   <module>r@      s     f ^ 2+
 +
r   