
    >zhv(                        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_v2.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R?                  5       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*[8        R:                  " S-S.5      n+U*S n,U+S n-S"R	                  [8        R@                  " S'[8        R:                  " S/S5      S%95      n.[8        R:                  " SS05      n/S1S"R	                  [8        R@                  " S'S0S%95      -   n0S2S"R	                  [8        R@                  " S'S/S%95      -   n1URC                  SS35        URE                  U" S45      5        S5n2S6n3S7n4S8n5S9n6URG                  U3S:U!5        URG                  U3S;U#5        URG                  U3S<U$5        URC                  SS=5        URG                  S>S?U,5        URG                  S@S?U-5        URC                  SS35        URG                  U2U4U6S-  -
  U5        SAn7URG                  U7SBU.5        URG                  U7SCU
5        URG                  U7SDU5        URG                  U7SEU5        URC                  SS35        URG                  U2U4U6S -  -
  U5        URG                  U2U4U6SF-  -
  U5        U(       a  S"U-   S-   OS"n8U(       a  U8SGU-   -  n8URG                  U2U4U6S-  -
  U85        URG                  U2U4U6S,-  -
  US-   U-   5        URI                  5         [K        U5      n9[K        U5      n:[M        5       n;U9RN                  S   n<U<RQ                  U:RN                  S   5        U;RS                  U<5        [U        USH5       n=U;RW                  U=5        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)INr   )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   
   	   00111"   z#000000;   i  i
  i  (   i	  i	  i3	     i     i  ir  i  ig  i  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)>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+   re   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_firsthalaman_totalhalaman_first_strhalaman_last_strnorek
satu_digit
no_invoiceno_indihome
batas_kiribatas_kiri2	batas_adr
batas_adr2jarakbatas_no_rekkel_kec
backgroundoverlaywriterpagefs>                                                                 r   generate_permata_v2_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BHHJL 0VZ[!\] |r BCCH STNM
 sC(I~~a$H k(30MNN1a(MNN1b)M )-', GGFNN<6>>"b3IJKE 1%J !BCCJ
 !CDDK IIk2NN8I&' JKIJE LLdK0LLdL1LLd$67 IIk2LLs-.LLs,-IIk2LLY2D9 LLLte,LLtf-LLtk2LLtf- IIk2LLY2G<LLY2G< #b3hnG
4#: LLY2G<LLY2HsNV4KLj FFH=)J$G[FADOOGMM!$%
OOD	k4	 AQ 
! 
ww~~k""
		+ #i E\^ 
!	 s   0"^:";^?$_
_)reportlab.pdfgenr   reportlab.pdfbaser   reportlab.pdfbase.ttfontsr   PyPDF2r   r   r   r	   rl   rX   r_   ri   rY   r[   r\   r]   BASE_DIRrZ   rc   r   r        r   <module>r      s_    # ( , ' (  	  77??277??84577<<"34
Kr   