o
    oho                     @   s$  d dl mZ d dlmZ d dlmZ d dlmZmZ d dl	m	Z	m
Z
 d dl	m	Z	m
Z
 d dlZd dlZd dlZd dlZd dlZejejeZejedZejedZejed	Zeed
e eede ejeryejes}eddddZdddZdddZdd ZdS )    )canvas)
pdfmetrics)TTFont)	PdfReader	PdfWriter)datetime	timedeltaNz../assets/fontszBCASans-Bold.ttfzBCASans-Regular.ttfBoldRegularz5Font Poppins tidak ditemukan di path yang ditentukan.ffffff?c                 C   B   |   }||| ||| || || | | d S N	beginTextsetTextOriginsetFontsetCharSpacetextLinedrawTextcxytext	font_name	font_size
char_spacet r   :/var/www/html/billing/billing_app_python/utils/pdf_bbca.pydraw_string_with_charspace      

r          ?c                 C   r   r   r   r   r   r   r   draw_halaman_with_charspace'   r!   r#   c           	      C   sh   t |||t|d |  }|  }|||d  | ||| || || | | d S )N      )	r   stringWidthlenr   r   r   r   r   r   )	r   r   r   r   r   r   r   widthr   r   r   r   "draw_centred_string_with_charspace/   s   

r)   c           &   
      sL  t jt jt jtd}t j|dd t j|dt j	 d}t
|}|dd t|dd	| d
dddd |dd | d }| d }| d }| d }	| d }
| d }| d }| d }t  dtjddd}tdd}| d| }g d} fddtddD } fd dtddD }td!d"}|| }|| }t||d}t||d }t|||}||j   d#|j }d$}t||d%|dd t||d&|dd t||d'|dd t||d(d)dd |d*d |dd+ t|d,d-|dd+ |dd d.}d/}d0}d!}|d }t|||||  |dd td1|d2|d3|d4||  |d }t|||||  |
dd td5|d2|d3|d4||  d} |r]|	r]|d# |	 } n|
rc|} n|rh|	} | r|d }t|||||  | dd td6|d2|d3|d4||  |d }t|||||  |dd td7|d2|d3|d4||  |d }t|||||  |d# | dd td8|d2|d3|d4||  |d }t|||||  d9dd td:|d2|d3|d4||  |  t|}!t|}"t }#|!j d! }$|$!|"j d!  |#"|$ t#|d;}%|#$|% W d    d S 1 sw   Y  d S )<Nz../static/tmpT)exist_okZtemp_overlay_z.pdfr	      i,  i  Zjudul r      cabangnamaalamat1alamat2kelkeckodposkota_kabZ
1234567890
   )kr$   	   /)r,   ZJanuariZFebruariZMaretZAprilZMeiZJuniZJuliZAgustusZ	SeptemberZOktoberZNovemberZDesemberc                    s"   g | ]} j | d  d d  qS )r$      )month.0inowr   r   
<listcomp>\   s   " z%generate_bbca_pdf.<locals>.<listcomp>   c                    s.   g | ]} j | d  dkr jn jd  qS )r$   r   )r;   yearr<   r?   r   r   rA   ]   s   . r   r%    g     8{@g     @i  i  i  ZIDRr
         i     i  r:   zcek nama batas_adr:zjarak:zbaris:zjarak * baris:zcek kel batas_adr:zcek kec_alamat2 batas_adr:zcek alamat1 batas_adr:zcek kota_kab batas_adr:Z	INDONESIAzcek negara batas_adr:wb)%ospathjoindirnameabspath__file__makedirsuuiduuid4hexr   Canvasr   r)   getr   r@   randomchoicesrandintrangecalendar
monthranger;   upperrC   r    r#   printsaver   r   pages
merge_pageadd_pageopenwrite)&datatemplate_pathoutput_pathZTEMP_DIRZpacket_pathr   r.   r/   r0   r1   r2   r3   r4   r5   ZnorekZhalaman_totalZhalaman_strZ
bulan_indoZ
bulan_listZ
tahun_listidxZbulan_targetZtahun_targetZawalZ
akhir_hariZakhirZperiode_strZbatas_norekZ
batas_kiriZ	batas_adrZjarakZbarisZkec_alamat2
backgroundoverlaywriterpagefr   r?   r   generate_bbca_pdf8   s   
"

$rl   )r   )r"   ) reportlab.pdfgenr   reportlab.pdfbaser   reportlab.pdfbase.ttfontsr   PyPDF2r   r   r   r   rU   rI   rP   rY   tempfilerJ   rL   rM   rN   BASE_DIRrK   FONT_DIRZFONT_BOLD_PATHZFONT_REGULAR_PATHregisterFontisfileFileNotFoundErrorr    r#   r)   rl   r   r   r   r   <module>   s.    


	