
    i                        d Z ddlmZ ddlZddlmZ ddlmZ ddlm	Z	 ddl
mZmZmZmZmZmZ ddlmZmZmZ dd	lmZmZ e	rdd
lmZ ddlmZ  G d deej:                        Z G d dee      Z G d de      Z y)uQ   Rekonsiliasi Harian model — daily sounding-based stock reconciliation per tank.    )annotationsN)date)Decimal)TYPE_CHECKING)Date
ForeignKeyIndexNumericStringUniqueConstraint)Mappedmapped_columnrelationship)BaseTimestampMixin)Tangki)Userc                      e Zd ZdZdZdZy)StatusRekonsiliasipendingbalancedapprovedN)__name__
__module____qualname__PENDINGBALANCEDAPPROVED     9/var/www/html/spbu.com/backend/app/models/rekonsiliasi.pyr   r      s    GHHr    r   c                     e Zd ZU dZdZ eddd       edd      fZ ed	      Z	d
e
d<    e edd      d      Zd
e
d<    eed      Zde
d<    e ed      dej"                        Zde
d<    e edd      d      Zde
d<    e edd      d      Zde
d<    edd      Zde
d<    eeg       Zd!e
d"<    eeg       Zd!e
d#<   y$)%RekonsiliasiHarianzOne reconciliation record per SPBU per day.

    Contains per-tank breakdown via RekonsiliasiTangki children.
    Can only be run when all shifts for the day have been submitted.
    rekonsiliasi_harianspbu_idtanggaluq_rekonsiliasi_spbu_tanggalnameix_rekonsiliasi_spbu_idTprimary_keyMapped[int]idzmaster_spbu.idCASCADEondeleteFnullablezMapped[date]   r3   defaultzMapped[str]statuszmaster_user.idzSET NULLzMapped[int | None]	run_by_idapproved_by_idrekonsiliasizall, delete-orphan)back_populatescascadez"Mapped[list['RekonsiliasiTangki']]itemsforeign_keyszMapped['User | None']run_byapproved_byN)r   r   r   __doc____tablename__r   r	   __table_args__r   r.   __annotations__r   r%   r   r&   r   r   r   r7   r8   r9   r   r=   r@   rA   r   r    r!   r#   r#      s    *M 	I4RS'3N
 $5B5(#i85G[  *$?G\?'r
U,>,F,FFK 
 %2#j9D%I!  *7#j9D*N& 
 1=%/C1E-  %1yk$JF!J)5NCS)TK&Tr    r#   c                     e Zd ZU dZdZ eddd      fZ ed      Zd	e	d
<    e e
dd      d      Zd	e	d<    e e
dd      d      Zd	e	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    e edd      d ed            Zde	d<    ed       Zd!e	d"<    eeg#      Zd$e	d%<   y&)'RekonsiliasiTangkiz=Per-tank reconciliation detail within a daily reconciliation.rekonsiliasi_tangkirekonsiliasi_harian_id	tangki_iduq_rekonsiliasi_tangkir(   Tr+   r-   r.   zrekonsiliasi_harian.idr/   r0   Fr2   zmaster_spbu_tangki.idRESTRICT      0r5   zMapped[Decimal]	stok_awal
penerimaanpemindahan_inpemindahan_out	penjualanstok_teoritisstok_aktuallossesr=   )r;   zMapped['RekonsiliasiHarian']r:   r>   zMapped['Tangki']tangkiN)r   r   r   rB   rC   r   rD   r   r.   rE   r   rI   rJ   r
   r   rP   rQ   rR   rS   rT   rU   rV   rW   r   r:   rX   r   r    r!   rG   rG   A   s   G)M 	$k)	
N $5B5*7+i@5+K  +*Z@5I{  "/A"I  #0A#J  &3A&M?  '4A'NO  "/A"I  &3A&M?  $1A$K  ,AFO 
 2>W1UL.U+)EFEr    rG   )!rB   
__future__r   enumdatetimer   decimalr   typingr   
sqlalchemyr   r   r	   r
   r   r   sqlalchemy.ormr   r   r   app.models.baser   r   app.models.spbur   app.models.userr   strEnumr   r#   rG   r   r    r!   <module>re      s`    W "      Q Q > > 0&$dii $U~ $UN/F /Fr    