
    ]i                         d Z ddlmZ ddl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mZ d	ed
ef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fdZde	dededed
ef
dZy)uC   Pemindahan produk service — business logic for product transfers.    )date)Decimal)IntegrityErrorSQLAlchemyError)AsyncSession)PemindahanProduk)pemindahan_repository)PemindahanCreatePemindahanResponserowreturnc                    t        di d| j                  d| j                  d| j                  d| j                  d| j
                  d| j                  r| j                  j                  nd d| j                  d| j                  r| j                  j                  nd d	| j                  d
| j                  r| j                  j                  nd d| j                  d| j                  d| j                  d| j                  d| j                   d| j"                  d| j$                  d| j&                  r| j&                  j(                  nd d| j*                  d| j,                  S )Nidspbu_idtanggaljamtangki_sumber_idtangki_sumber_namaproduk_lama_idproduk_lama_namatangki_tujuan_idtangki_tujuan_namavolume_sumber_sebelumvolume_tujuan_sebelumvolume_tujuan_sesudahvolume_masuklosses_transfercatatandilakukan_olehdilakukan_oleh_nama
created_at
updated_at )r   r   r   r   r   r   tangki_sumbernamar   produk_lamar   tangki_tujuanr   r   r   r   r   r   r   usernamer!   r"   )r   s    A/var/www/html/spbu.com/backend/app/services/pemindahan_service.py_to_responser+      sw    66  GG	
 -- 695F5F3,,11D )) 25--d -- 695F5F3,,11D "77 "77 "77 %% ++  !" ))#$ .1XXCHHMM4%& >>'( >>)     Ndbr   tanggal_mulaitanggal_akhirskiplimitc                    K   t        j                  | |||||       d {   }|D cg c]  }t        |       c}S 7 c c}w w)N)r.   r/   r0   r1   )r	   get_allr+   )r-   r   r.   r/   r0   r1   rowsrs           r*   list_pemindahanr6   '   sQ      '..
G=TX`e D &**TLOT** +s   A?AAAApemindahan_idc                 |   K   t        j                  | ||       d {   }|st        d      t        |      S 7 w)NzPemindahan tidak ditemukan)r	   	get_by_id
ValueErrorr+   )r-   r   r7   r   s       r*   get_pemindahanr;   5   s=     %//G]K
KC566 Ls   <:<datauser_idc                 l  K   |j                   |j                  k(  rt        d      |j                  |j                  z
  }|j
                  |z
  }|dk  rt        d      t        ||j                  |j                  |j                   |j                  |j
                  |j                  |j                  |||j                  |      }ddl
m} ddlm} | j                   ||      j                  |j                   |j                   k(               d {   }	|	j#                         }
|
r|
j$                  |_        	 t)        j*                  | |       d {   }ddlm}  || ||dd	|j                   |j                   |j                  d
       d {    | j1                          d {    | j3                  |g d       d {    t;        |      S 7 7 7 H7 27 # t4        $ r% | j7                          d {  7   t        d      t8        $ r | j7                          d {  7    w xY ww)Nz)Tangki sumber dan tujuan tidak boleh samar   z4Volume tujuan sesudah harus lebih besar dari sebelum)r   r   r   r   r   r   r   r   r   r   r   r   )Tangki)select)
log_action
pemindahantangki)r$   r'   )r=   r   aksimodul	object_iddetail)r$   r'   r&   r(   )attribute_namesz&Data pemindahan konflik atau sudah ada)r   r   r:   r   r   r   r   r   r   r   app.models.spbur?   
sqlalchemyr@   executewherer   scalar_one_or_none	produk_idr   r	   createapp.utils.auditrA   commitrefreshr   rollbackr   r+   )r-   r   r<   r=   r   r   r   r?   r@   tangki_resultr$   rA   s               r*   create_pemindahanrU   <   s      5 55DEE--0J0JJL00<?OaOPP
HH...."88"88"88!'C  '!**VF^%9%9&))tG\G\:\%]^^M!446M*44)00S99.|8fft7L7L_c_t_t%u
 	
 	

 iikjj.gjhhh - _ :	

 	h CkkmABB kkms   DH4G'H4;G! G=G! GG! *G+G! GG! H4G! G! G! G! !H1=H >+H1)H,*H11H4)NNr   2   )__doc__datetimer   decimalr   sqlalchemy.excr   r   sqlalchemy.ext.asyncior   app.models.pemindahanr   app.repositoriesr	   app.schemas.pemindahanr
   r   r+   intlistr6   r;   rU   r#   r,   r*   <module>ra      s    I   : / 2 2 G& += 8 "&!%+++ $;+ $;	+
 + + 

+\ C  Pb 777 7 	7
 7r,   