
    <azh@                        S SK Jr  S SKJr  S SKJr  S SKJrJr  S SK	J	r	J
r
  S SKrS SKrS SKrS SKr\R                  R!                  \R                  R#                  \5      5      r\R                  R)                  \S5      rS rS	 rg)
    )canvas)
pdfmetrics)TTFont)	PdfReader	PdfWriter)datetime	timedeltaNz../assets/fontsc                 2    [        U 5      nUR                  S   n[        UR                  R                  5      n[        UR                  R
                  5      n[        SU SU 35        X44$ ! [         a  n[        SU 35        [        s S nA$ S nAff = f)Nr   zTemplate size: z x zError reading template size: )	r   pagesfloatmediaboxwidthheightprint	ExceptionA4)template_pathtemplate_readertemplate_pagetemplate_widthtemplate_heightes         4D:\python\billing_app_python\utils\pdf_permata_v1.pyget_template_sizer      s    	#M2'--a0}55;;< 6 6 = =>/s?2CDE00 -aS12	s   A+A. .
B8BBBc                    SSK Jn  [        R                  R	                  [        R                  R                  [        R                  R                  [        5      5      S5      n[        R                  " USS9  [        R                  R	                  US[        R                  " 5       R                   S35      n[        U5      n[        R                  " XVS9n[        R                  R	                  [        S	5      n[        R                  R	                  [        S
5      n	[         R"                  " [%        SU5      5        [         R"                  " [%        SU	5      5        U S   n
U S   nU S   nU S   nU S   nU S   nU S   nU S   nU S   nU S   n[&        R(                  " 5       nUR*                  S S[-        UR.                  5      SS   3n/ SQn[0        R2                  " UR.                  UR*                  5      S    SUUR*                      SUR.                   3n[5        SS5       Vs/ s H  nUR*                  U-
  S-
  S-  S-   PM     nn[5        SS5       Vs/ s H4  nUR*                  U-
  S-
  S:  a  UR.                  OUR.                  S-
  PM6     nn[7        SU5        [8        R:                  " SS 5      nUU   nUU   n['        UUS5      n[0        R2                  " UU5      S   n['        UUU5      n UR<                  S SUUR*                      SUR.                   S!U R<                  S SUU R*                      SU R.                   3R?                  5       n!U R<                  S SUU R*                      SU R.                   3R?                  5       n"UR<                   SUUR*                      SUR.                   3n#S"R	                  [8        R@                  " S#S$S%95      n$S&S"R	                  [8        R@                  " S'SS%95      -   n%U%S(S  n&[8        R:                  " S)S*5      n'[8        R:                  " SS+5      n(U' U(S 3n)[8        R:                  " S S,5      n*U*S n+S-n,S.n-S/n.S0n/S1n0URC                  SS25        URE                  U" S35      5        URG                  U-S4U!5        URG                  U-S5U#5        URG                  U-S6U$5        URC                  SS75        URG                  S8S9U"5        URC                  SS:5        URG                  S;S<U+5        URC                  SS25        URG                  U,U.U0S-  -
  U5        URC                  SS25        URG                  U,U.U0S -  -
  U5        URG                  U,U.U0S=-  -
  U5        U(       a  S"U-   S-   OS"n1U(       a  U1S>U-   -  n1URG                  U,U.U0S-  -
  U15        URG                  U,U.U0S?-  -
  US-   U-   5        URI                  5         [K        U5      n2[K        U5      n3[M        5       n4U2RN                  S   n5U5RQ                  U3RN                  S   5        U4RS                  U55        [U        US@5       n6U4RW                  U65        S S S 5        [        R                  RY                  U5      (       a  [        RZ                  " U5        g g s  snf s  snf ! , (       d  f       NT= f)ANr   )HexColorz../static/tmpT)exist_oktemp_overlay_z.pdf)pagesizezBBLSans05-Medium.ttfzBBLSans05-Regular.ttf	BSANS_MED	BSANS_REGcabangnamanama_produkvalutaalamat1alamat2kelkeckodposkota_kab02d/) JanuariFebruariMaretAprilMeiJuniJuliAgustus	SeptemberOktoberNovemberDesember          zBulan List:   z - r/   $0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ   )k4616
0123456789ip      2   c   ;   i  i	  i  (   "   z#000000i	  i	  i3	  ,   i  iF     i        z,    wb).reportlab.lib.colorsr   ospathjoindirnameabspath__file__makedirsuuiduuid4hexr   r   CanvasFONT_DIRr   registerFontr   r   nowmonthstryearcalendar
monthrangeranger   randomrandintdayupperchoicessetFontsetFillColor
drawStringsaver   r   r   
merge_pageadd_pageopenwriteexistsremove)7datar   output_pathr   TEMP_DIRpacket_path	page_sizecFONT_BSANS_MEDIUMFONT_BSANS_REGr"   r#   r$   r%   r&   r'   r(   r)   r*   r+   ra   bulan_tahun
bulan_indotanggal_cetaki
bulan_list
tahun_listidxbulan_targettahun_targetawal
akhir_hariakhirperiode_strperide_last_strdate_now_strrandom_angka_hurufno_kartulast_10_digit	tigaDigitduaDigittigaDigit_strhalaman_totalhalaman_last_str
batas_kiribatas_kiri2	batas_adr
batas_adr2jarakkel_kec
backgroundoverlaywriterpagefs7                                                          r   generate_permata_v1_pdfr      s   -ww||BGGOOBGGOOH,EFXHKK4('',,x=9I9I8J$)OPK!-0I 	k6A
 X/EFWW\\(,CDNF;0ABCF;?@ (^F<D}%K(^F9oG9oG
u+C
u+C(^FJH ,,.C YYsO1S]23%7$89KJ  **388SYY?BC1ZPSPYPYEZD[[\]`]e]e\fgM 9>aD1399q=1$*Q.JDPUVWYZP[\P[1cii!ma/14#((#((Q,FP[J\	-$ ..A
Cc?Lc?L L,2D$$\<@CJ\<<EXXcN!Jtzz$:#;1TYYKs599UX/YZ[efkfqfq[rZsstuzuu  uA  B  H  H  JK3qEKK)@(A5::,OUUWO ggYa
399 56azBL 0VZ[!\] |r BCCH STNM sC(I~~a$H k(30MNN1b)M', JKIJEIIk2NN8I&'LLdK0LLdL1LLd$67IIk2LLt_- IIk2LLs,-IIk2LLY2D9IIk2LLY2G<LLY2G< #b3hnG
4#: LLY2G<LLY2HsNV4KLFFH=)J$G[FADOOGMM!$%
OOD	k4	 AQ 
! 
ww~~k""
		+ #E E\z 
!	 s   0"Z7";Z<![
[)reportlab.pdfgenr   reportlab.pdfbaser   reportlab.pdfbase.ttfontsr   PyPDF2r   r   r   r	   rh   rT   r[   re   rU   rW   rX   rY   BASE_DIRrV   r_   r   r        r   <module>r      s_    # ( , ' (  	  77??277??84577<<"34
Yr   