
    ]i,                     >   d Z ddlZddlmZ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mZ ddlmZmZmZ ddlmZmZ  G d d	eej0                        Z G d
 dee      Z G d de      Z G d dee      Z G d de      Z G d de      Zddlm Z m!Z!m"Z"m#Z# ddl$m%Z% y)u8   Operational models — LaporanShift and PenjualanNozzle.    N)datedatetime)Decimal)	BooleanDateDateTime
ForeignKeyNumericStringTextUniqueConstraintIndex)Mappedmapped_columnrelationship)BaseTimestampMixinc                        e Zd ZdZdZdZdZdZy)StatusLaporandraft	submittedapprovedrejectedlockedN)__name__
__module____qualname__DRAFT	SUBMITTEDAPPROVEDREJECTEDLOCKED     8/var/www/html/spbu.com/backend/app/models/operational.pyr   r      s    EIHHFr$   r   c                      e Zd ZU dZdZ edddd       eddd      fZ ed	
      Z	e
e   ed<    e edd      dd	      Ze
e   ed<    e edd      dd	      Ze
e   ed<    eed      Ze
e   ed<    e ed      dej*                        Ze
e   ed<    e edd      d	      Ze
edz     ed<    e ed	      d	      Ze
edz     ed<    e edd      d	      Ze
edz     ed<    e ed	      d	      Ze
edz     ed<    eed	      Ze
edz     ed<    eed	      Z e
edz     ed <    e edd      d	      Z!e
edz     ed!<    e ed	      d	      Z"e
edz     ed"<    e edd      d	      Z#e
edz     ed#<    e ed	      d	      Z$e
edz     ed$<    eed	      Z%e
edz     ed%<    e e&d&d'      dd(      Z'e
e(   ed)<    e e&d&d'      dd(      Z)e
e(   ed*<    e e&d&d'      dd(      Z*e
e(   ed+<    e e&d&d'      dd(      Z+e
e(   ed,<    e e&d&d'      dd(      Z,e
e(   ed-<    e e&d&d'      dd(      Z-e
e(   ed.<    e e&d&d'      dd(      Z.e
e(   ed/<    e e&d&d'      dd(      Z/e
e(   ed0<    e e&d&d'      dd(      Z0e
e(   ed1<    e e&d&d'      dd(      Z1e
e(   ed2<    e e&d&d'      dd(      Z2e
e(   ed3<    e3d4d56      Z4e
e5d7      ed8<    e3eg9      Z6e
d:   ed;<    e3eg9      Z7e
d<   ed=<    e3eg9      Z8e
d>   ed?<    e3eg9      Z9e
d>   ed@<    e3e#g9      Z:e
d>   edA<    e3e!g9      Z;e
d>   edB<   y)CLaporanShiftu1   One sales/shift report per SPBU × shift × date.laporan_shiftspbu_idshift_idtanggal#uq_laporan_shift_spbu_shift_tanggalnameix_laporan_shift_spbu_tanggalTprimary_keyidmaster_spbu.idCASCADEondeleteFnullableindexmaster_spbu_shift.idRESTRICTr8      r8   defaultstatusmaster_user.idSET NULLNsubmitted_by_idtimezonesubmitted_atreviewed_by_idreviewed_atcatatan_reviewunlock_reasonunlocked_by_idunlocked_atrecalled_by_idrecalled_atsource_foto_url      r   kas_100kkas_50kkas_20kkas_10kkas_5kkas_2kkas_1k	kas_logampembayaran_kartupembayaran_qrpembayaran_instansilaporanall, delete-orphanback_populatescascadePenjualanNozzlepenjualan_nozzleforeign_keysSpbuspbuShiftshiftUser | Nonesubmitted_byreviewed_byrecalled_byunlocked_by)<r   r   r   __doc____tablename__r   r   __table_args__r   r2   r   int__annotations__r	   r)   r*   r   r+   r   r   r   r   r@   rC   r   rF   r   rG   rH   r   rI   strrJ   rK   rL   rM   rN   rO   r
   rR   r   rS   rT   rU   rV   rW   rX   rY   rZ   r[   r\   r   rc   listrg   ri   rk   rl   rm   rn   r#   r$   r%   r'   r'      sW   ;#M 	J	@ef-y)DN
 $5Bs5(#i85PTGVC[  *)J?%W[HfSk  *$?GVD\?$1r
UM,?,?%FF=!  +8#j9D+OVC$J'  -:$$-L&D)  *7#j9D*NF3:&  ,9$$,K4(  *7td)KNF3:&K(5dT(JM6#*%J)6#j9D*NF3:&  ,9$$,K4(  *7#j9D*NF3:&  ,9$$,K4(  +8t*LOVC$J'L !.gb!nuVW XHfWoX,WR^eUVWGVG_W,WR^eUVWGVG_W,WR^eUVWGVG_W+GBNUTUVFF7OV+GBNUTUVFF7OV+GBNUTUVFF7OV!.wr1~WX!YIvgY(5gb!nu^_(`fWo`%272q>E[\%]M6'?]+8QRWab+cc 9E *>9fT"345  (gY?D&.?)zBE6'?B*6_DU*VL&'V)5NCS)TK&T)5NCS)TK&T)5NCS)TK&Tr$   r'   c                   ~   e Zd ZU dZdZ edd      fZ ed      Ze	e
   ed<    e edd	
      d      Ze	e
   ed<    e edd
      d      Ze	e
   ed<    e edd      d      Ze	e   ed<    e edd      d      Ze	e   ed<    e edd      d      Ze	e   ed<    e edd      d      Ze	e   ed<    eedd      Ze	e   ed<    e edd      d      Ze	e   ed<    e edd      d      Ze	e   ed<    e edd      d      Ze	e   ed<    ed      Ze	d   ed<    eeg      Ze	d   ed <   y!)"rb   z/One sales row per nozzle inside a LaporanShift.rc   $ix_penjualan_nozzle_laporan_shift_idlaporan_shift_idTr0   r2   zlaporan_shift.idr4   r5   Fr<   zmaster_spbu_nozzle.idr;   	nozzle_idrP   rQ   teller_awal_manualteller_akhir_manualteller_awal_digitalteller_akhir_digital)r?   r8   flag_reset_tellervolume
harga_jualnilair`   r'   r]   rd   NozzlenozzleN)r   r   r   ro   rp   r   rq   r   r2   r   rr   rs   r	   rx   ry   r
   rz   r   r{   r|   r}   r   r~   boolr   r   r   r   r]   r   r#   r$   r%   rb   rb   m   s   9&M 	46HIN $5Bs5$1%	:U%fSk  +*Z@5Ivc{  +8AQV*WwW+8QRW+XX+8QRW+XX,9'"a.SX,Y&/Y&3GUUZ&[vd|[+GBNUKFF7OK"/A"OJwO*72q>EJE6'?J '3BT&UGVN#U+)EFF8Er$   rb   c                   X   e Zd ZU dZdZ edddd       eddd      fZ ed	
      Z	e
e   ed<    e edd      dd	      Ze
e   ed<    e edd      dd	      Ze
e   ed<    eed      Ze
e   ed<    e ed      dej*                        Ze
e   ed<    e edd      d	      Ze
edz     ed<    e ed	      d	      Ze
edz     ed<    e edd      d	      Ze
edz     ed<    e ed	      d	      Ze
edz     ed<    eed	      Ze
edz     ed<    eed	      Z e
edz     ed <    e edd      d	      Z!e
edz     ed!<    e ed	      d	      Z"e
edz     ed"<    e edd      d	      Z#e
edz     ed#<    e ed	      d	      Z$e
edz     ed$<    e%dd%&      Z&e
e'd'      ed(<    e%eg)      Z(e
d*   ed+<    e%eg)      Z)e
d,   ed-<    e%eg)      Z*e
d.   ed/<    e%eg)      Z+e
d.   ed0<    e%e#g)      Z,e
d.   ed1<    e%e!g)      Z-e
d.   ed2<   y)3StockAdjustmentuX   One sounding record per SPBU × shift × date. Represents starting stock for that shift.stock_adjustmentr)   r*   r+   uq_stock_adj_spbu_shift_tanggalr-   ix_stock_adj_spbu_tanggalTr0   r2   r3   r4   r5   Fr7   r:   r;   r<   r=   r>   r@   rA   rB   NrC   rD   rF   rG   rH   rI   rJ   rK   rL   rM   rN   r^   r_   StockAdjustmentItemitemsrd   rf   rg   rh   ri   rj   rk   rl   rm   rn   ).r   r   r   ro   rp   r   r   rq   r   r2   r   rr   rs   r	   r)   r*   r   r+   r   r   r   r   r@   rC   r   rF   r   rG   rH   r   rI   rt   rJ   rK   rL   rM   rN   r   r   ru   rg   ri   rk   rl   rm   rn   r#   r$   r%   r   r      s   b&M 	J	@ab)9i@N
 $5Bs5(#i85PTGVC[  *)J?%W[HfSk  *$?GVD\?$1r
UM,?,?%FF=!  +8#j9D+OVC$J'  -:$$-L&D)  *7#j9D*NF3:&  ,9$$,K4(  *7td)KNF3:&K(5dT(JM6#*%J)6#j9D*NF3:&  ,9$$,K4(  *7#j9D*NF3:&  ,9$$,K4( 
 2>)3G2E6$,-.  (gY?D&.?)zBE6'?B*6_DU*VL&'V)5NCS)TK&T)5NCS)TK&T)5NCS)TK&Tr$   r   c                      e Zd ZU dZdZ edd      fZ ed      Ze	e
   ed<    e edd	
      d      Ze	e
   ed<    e edd
      d      Ze	e
   ed<    e edd      d      Ze	d   ed<    e edd      d      Ze	d   ed<    e edd      d      Ze	d   ed<    e edd      d      Ze	d   ed<    e edd      d      Ze	d   ed<    ed      Ze	d   ed<    eeg      Ze	d   ed <    ed!d"#      Ze	ed$      ed%<   y&)'r   z3One sounding row per tank inside a StockAdjustment.stock_adjustment_itemix_stock_adj_item_adj_idstock_adjustment_idTr0   r2   zstock_adjustment.idr4   r5   Fr<   zmaster_spbu_tangki.idr;   	tangki_id
      zDecimal | Nonedipstick_manual_mmrP   rQ   volume_manual_literdipstick_digital_mmvolume_digital_litervolume_final_literr   r   r   r   rd   Tangkitangkiitemr^   r_   StockAdjustmentItemFotofotosN)r   r   r   ro   rp   r   rq   r   r2   r   rr   rs   r	   r   r   r
   r   r   r   r   r   r   r   r   r   ru   r#   r$   r%   r   r      si   =+M 	(*?@N $5Bs5'4(9=(  +*Z@5Ivc{  4AQZ^3_/0_4A'"a.[_4` 01`4A'"a.[_4` 01`5B72q>\`5a&!12a3@QZ^3_/0_ 3?g2Vf./V+)EFF8E5A';6E6$012 r$   r   c                   6   e Zd ZU dZdZ edd      fZ ed      Ze	e
   ed<    e edd	
      d      Ze	e
   ed<    e ed      d      Ze	e   ed<    e ed      d      Ze	e   ed<    e ed      dd      Ze	e   ed<    ed      Ze	d   ed<   y)r   zLPhoto evidence for a single tank sounding (manual stick or digital display).stock_adjustment_item_fotoix_stock_adj_item_foto_item_idstock_adjustment_item_idTr0   r2   zstock_adjustment_item.idr4   r5   Fr<   r=   tipei  urlrD   znow())server_defaultr8   
created_atr   r   r   r   N)r   r   r   ro   rp   r   rq   r   r2   r   rr   rs   r	   r   r   r   rt   r   r   r   r   r   r   r#   r$   r%   r   r      s    V0M 	.0JKN $5Bs5,9-	BU-fSk  &fRj5AD&+A$VC[5ACA#0$%$Jx   +7g*ND&&
'Nr$   r   )r   rh   rf   r   )User)&ro   enumr   r   decimalr   
sqlalchemyr   r   r   r	   r
   r   r   r   r   sqlalchemy.ormr   r   r   app.models.baser   r   rt   Enumr   r'   rb   r   r   r   app.models.spbur   rh   rf   r   app.models.userr   r#   r$   r%   <module>r      s    >  # 
 
 
 ? > 0C KU4 KU\Fd F@:UdN :Uz$ BOd O. 8 7  r$   