
    i	                         d 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 Z	 	 	 	 dd	ed
ededz  dedz  dededee
   fdZd	ed
edede
dz  fdZd	ededededee
   f
dZd	ede
de
fdZy)uB   Pemindahan produk repository — DB queries for product transfers.    )date)select)AsyncSession)selectinload)PemindahanProdukc                      t        t        j                        t        t        j                        t        t        j                        t        t        j
                        gS N)r   r   tangki_sumbertangki_tujuanproduk_lamauser     H/var/www/html/spbu.com/backend/app/repositories/pemindahan_repository.py_eager_optionsr      sH    %334%334%112%**+	 r   Ndbspbu_idtanggal_mulaitanggal_akhirskiplimitreturnc                 r  K    t        t              j                  t                j	                  t        j
                  |k(        j                  t        j                  j                         t        j                  j                               j                  |      j                  |      }|r"|j	                  t        j                  |k\        }|r"|j	                  t        j                  |k        }| j                  |       d {   }t        |j                         j                               S 7 +wr	   )r   r   optionsr   wherer   order_bytanggaldescidoffsetr   executelistscalarsall)r   r   r   r   r   r   stmtresults           r   get_allr'      s     	 	."	$	''72	3	"**//13C3F3F3K3K3M	N		u 	 zz*22mCDzz*22mCD::d##F $$&'' $s   DD7	D5
,D7pemindahan_idc                   K    t        t              j                  t                j	                  t        j
                  |k(  t        j                  |k(        }| j                  |       d {   }|j                         S 7 wr	   )	r   r   r   r   r   r   r   r!   scalar_one_or_none)r   r   r(   r%   r&   s        r   	get_by_idr+   -   sr     	 	."	$	''724D4G4G=4X	Y 	
 ::d##F$$&& $s   A+B-B.B	tangki_idc                   K   t        t              j                  t        j                  |k\  t        j                  |k  t        j                  |k(  t        j
                  |k(  z        j                  t        j                        }| j                  |       d{   }t        |j                         j                               S 7 +w)zJGet transfers involving a tank as source or destination within date range.N)r   r   r   r   tangki_sumber_idtangki_tujuan_idr   r!   r"   r#   r$   )r   r,   r   r   r%   r&   s         r   get_by_tangki_date_ranger0   7   s      	 	$$5$$5..);00I=?

 
"**	+ 	 ::d##F $$&'' $s   BC	C,C	
pemindahanc                    K   | j                  |       | j                          d {    | j                  |g d       d {    |S 7 #7 w)N)r
   r   r   r   )attribute_names)addflushrefresh)r   r1   s     r   creater7   L   sG     FF:
((*
**Z1j*
kkk ks!   %AAAAAA)NNr   2   )__doc__datetimer   
sqlalchemyr   sqlalchemy.ext.asyncior   sqlalchemy.ormr   app.models.pemindahanr   r   intr"   r'   r+   r0   r7   r   r   r   <module>r@      s    H   / ' 2 "&!%((( $;( $;	(
 ( ( 

(0' 's '3 'K[^bKb '((( ( 	(
 

(*\ /? DT r   