
    ]i~                    @   d Z ddlmZ ddlZddlmZ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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 ddlmZ  G d de ejB                        Z" G d de ejB                        Z# G d dee      Z$ G d dee      Z%y)u@   Penyetoran models — per-shift cash deposit + batch submission.    )annotationsN)datedatetime)Decimal)TYPE_CHECKING)DateDateTime
ForeignKeyNumericStringTextUniqueConstraintIndex)Mappedmapped_columnrelationship)BaseTimestampMixin)Spbu)User)LaporanShiftc                      e Zd ZdZdZdZy)StatusPenyetorandraft	submittedapprovedN__name__
__module____qualname__DRAFT	SUBMITTEDAPPROVED     7/var/www/html/spbu.com/backend/app/models/penyetoran.pyr   r          EIHr%   r   c                      e Zd ZdZdZdZy)StatusPenyetoranBatchr   r   r   Nr   r$   r%   r&   r)   r)      r'   r%   r)   c                     e Zd ZU dZdZ edd       eddd      fZ ed	
      Z	de
d<    e edd      d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      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	      Zd e
d!<    e ed"      d	      Zd e
d#<    e ed$      dej6                        Zd%e
d&<    e ed'd(      d	d	      Zd)e
d*<    e ed+d(      d	      Zd)e
d,<    eeg-      Z d.e
d/<    eeg-      Z!d0e
d1<    eeg-      Z"d2e
d3<    eegd45      Z#d6e
d7<   y8)9
PenyetoranzMOne cash deposit record per laporan_shift (auto-created when sales is saved).
penyetoranlaporan_shift_iduq_penyetoran_laporan_shift)nameix_penyetoran_spbu_tanggalspbu_idtanggalTprimary_keyMapped[int]idmaster_spbu.idCASCADEondeleteFnullableindexzlaporan_shift.idr<   Mapped[date]zmaster_spbu_shift.idRESTRICTshift_id      0r<   defaultMapped[Decimal]
jumlah_kasjumlah_non_kastotal_penjualanMapped[str | None]catatani  	bukti_url   Mapped[str]statuszpenyetoran_batch.idSET NULLMapped[int | None]batch_idmaster_user.idcreated_by_idforeign_keysMapped['Spbu']spbuzMapped['LaporanShift']laporan_shiftMapped['User | None']
created_byitems)rW   back_populatesz Mapped['PenyetoranBatch | None']batchN)$r   r   r    __doc____tablename__r   r   __table_args__r   r6   __annotations__r
   r1   r-   r   r2   rA   r   r   rH   rI   rJ   r   rL   r   rM   r   r!   rP   rS   rU   r   rY   rZ   r\   r_   r$   r%   r&   r+   r+   !   s   W M 	+2OP*IyAN
 $5B5(#i85PTG[  %2%	:U%k  *$?G\?))J?%Hk 
 #0AX_`cXd"eJe&3GBNU\cdg\h&iNOi'4WR^e]deh]i'jO_j"/t"DGD$1&+$MI!M'r
UL\LbLbcFKc $1(:>UY$H  
 )6#j9D)M% 
 (gY?D.?,8GWFX,YM)Y(4=/(RJ%R.:
cj.kE+kr%   r+   c                     e Zd ZU dZdZ ed      Zded<    e edd	      d
d      Z	ded<    ee
d
      Zded<    ee
d
      Zded<    e edd      d
 e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      Zd!ed"<    e edd	      d      Zded#<    e ed       d      Zd!ed$<    eed      Zded%<    eed      Zded&<    e edd	      d      Zded'<    e ed       d      Zd!ed(<    ee	g)      Z d*ed+<    eeg)      Z!d,ed-<    eeg)      Z"d,ed.<    eeg)      Z#d,ed/<    ed01      Z$d2ed3<   y4)5PenyetoranBatchzTGrouped batch of penyetoran records submitted by SPBU Admin to Manager for approval.penyetoran_batchTr3   r5   r6   r7   r8   r9   Fr;   r1   r>   r?   tanggal_from
tanggal_torB   rC   rD   rE   rG   total_amountrK   rL   rN   rO   rP   rT   rQ   rR   submitted_by_id)timezonezMapped[datetime | None]submitted_atreviewed_by_idreviewed_atcatatan_reviewunlock_reasonunlocked_by_idunlocked_atrV   rX   rY   r[   submitted_byreviewed_byunlocked_byr_   )r^   zMapped[list['Penyetoran']]r]   N)%r   r   r    r`   ra   r   r6   rc   r
   r1   r   rg   rh   r   r   ri   r   rL   r   r)   r"   rP   rj   r	   rl   rm   rn   ro   rp   rq   rr   r   rY   rs   rt   ru   r]   r$   r%   r&   re   re   S   s   ^&M#5B5(#i85PTG[  "/te!DL,D,TEBJB$1'"a.5ZabeZf$gL/g"/t"DGD'r
ULaLkLklFKl +8#j9D+O'  -:(D:Q\`,aL)a)6#j9D*N&  ,949P[_+`K(`)6td)KN&K(5dT(JM%J)6#j9D*N&  ,949P[_+`K(` (gY?D.?*6_DU*VL'V)5NCS)TK&T)5NCS)TK&T(4G(LE%Lr%   re   )&r`   
__future__r   enumr   r   decimalr   typingr   
sqlalchemyr   r	   r
   r   r   r   r   r   sqlalchemy.ormr   r   r   app.models.baser   r   app.models.spbur   app.models.userr   app.models.operationalr   strEnumr   r)   r+   re   r$   r%   r&   <module>r      sz    F "  #    a a a > > 0$$3sDII C /l~ /ld$MdN $Mr%   