o
    ùoÆhÙ  ã                   @   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Zd dlZd dlZd dlZd dlmZ ej ej e¡¡Zej ed¡Zd	d
„ Zdd„ ZdS )é    )Úcanvas)Ú
pdfmetrics)ÚTTFont)Ú	PdfReaderÚ	PdfWriter)ÚdatetimeÚ	timedeltaN)ÚA4z../assets/fontsc              
   C   s€   z$t | ƒ}|jd }t|jjƒ}t|jjƒ}td|› d|› ƒ ||fW S  ty? } ztd|› ƒ tW  Y d }~S d }~ww )Nr   zTemplate size: z x zError reading template size: )	r   ÚpagesÚfloatÚmediaboxÚwidthÚheightÚprintÚ	Exceptionr	   )Útemplate_pathÚtemplate_readerÚtemplate_pageÚtemplate_widthÚtemplate_heightÚe© r   ú@/var/www/html/billing/billing_app_python/utils/pdf_permata_v1.pyÚget_template_size   s   

€þr   c           ;         s&  ddl m} tj tj tj t¡¡d¡}tj|dd tj |dt	 
¡ j› d¡}t|ƒ}tj||d}tj td	¡}tj td
¡}	tj td¡}
t td|ƒ¡ t td|	ƒ¡ t td|
ƒ¡ | d }| d }| d }| d }| d }| d }| d }| d }| d }| d }t ¡ ‰ g d¢}‡ fdd„tddƒD ƒ}‡ fdd„tddƒD ƒ}td|ƒ t dd ¡}|| }|| }t||dƒ}t ||¡d }t|||ƒ}|jd!›d"||j › d"|j› d#|jd!›d"||j › d"|j›  ¡ }d$|jd!›d"||j › d"|j› }|jd%krt|jd ddƒ} n
t|j|jd dƒ} | j› d"|| j › d"| j›  ¡ }!d& tjd'd(d)¡}"t d d*¡}#d+}$d,}%d-|#d!›}&d.}'d/}(d0})d1}*d2}+|  dd3¡ | !|d4ƒ¡ | "|(d5|¡ | "|(d6|!¡ | "|(d7|"¡ |  dd8¡ | #|dd8¡},|)|, }-| "|-d9|¡ |  dd:¡ | #|$dd:¡}.|  dd:¡ | #|%dd:¡}/|  dd:¡ | #|&dd:¡}0|.|/ |0 }1|)|1 }2|  dd:¡ | "|2d;|$¡ |  dd:¡ |2|. }3| "|3d;|%¡ |  dd:¡ |3|/ }4| "|4d;|&¡ |  dd3¡ | "|'|*|+d  |¡ |  dd3¡ | "|'|*|+d   |¡ | "|'|*|+d<  |¡ |r"d&| d& nd&}5|r-|5d=| 7 }5| "|'|*|+d  |5¡ | "|'|*|+d>  |d" | ¡ | $¡  t%|ƒ}6t%|ƒ}7t&ƒ }8|6j'd }9|9 (|7j'd ¡ |8 )|9¡ t*|d?ƒ}:|8 +|:¡ W d   ƒ n	1 s~w   Y  tj ,|¡r‘t -|¡ d S d S )@Nr   )ÚHexColorz../static/tmpT)Úexist_okÚtemp_overlay_z.pdf)ÚpagesizezBBLSans05-Medium.ttfzBBLSans05-Regular.ttfzBBLSans05-RegularItalic.ttfZ	BSANS_MEDZ	BSANS_REGZBSANS_ITALICÚcabangÚnamaÚnama_produkÚvalutaÚalamat1Úalamat2ÚkelÚkecÚkodposÚkota_kab)Ú ÚJanuariÚFebruariÚMaretÚAprilÚMeiÚJuniÚJuliÚAgustusÚ	SeptemberÚOktoberÚNovemberÚDesemberc                    s"   g | ]}ˆ j | d  d d  ‘qS )é   é   )Úmonth©Ú.0Úi©Únowr   r   Ú
<listcomp>I   s   " z+generate_permata_v1_pdf.<locals>.<listcomp>r5   é   c                    s.   g | ]}ˆ j | d  dkrˆ jnˆ jd  ‘qS )r5   r   )r7   Úyearr8   r;   r   r   r=   J   s   . zBulan List:é   Ú02dú z - u   Ekuivalen Saldo Rupiah â€“ r6   r(   Z#0123456789ABCDEFGHIJKLMNOPRSTUVWXYZé   )Úké   zHalaman/ÚPagez 01/é;   iÝ  iø  iñ	  é(   é"   z#000000iô	  i•	  g     k¢@é,   iF  é   éœ   é   z, é   Úwb).Úreportlab.lib.colorsr   ÚosÚpathÚjoinÚdirnameÚabspathÚ__file__ÚmakedirsÚuuidÚuuid4Úhexr   r   ÚCanvasÚFONT_DIRr   ÚregisterFontr   r   r<   Úranger   ÚrandomÚrandintÚcalendarÚ
monthrangeÚdayr7   r?   ÚupperÚchoicesÚsetFontÚsetFillColorÚ
drawStringÚstringWidthÚsaver   r   r
   Ú
merge_pageÚadd_pageÚopenÚwriteÚexistsÚremove);Údatar   Úoutput_pathr   ÚTEMP_DIRÚpacket_pathÚ	page_sizeÚcZFONT_BSANS_MEDIUMZFONT_BSANS_REGZFONT_BSANS_ITALICr   r   r    r!   r"   r#   r$   r%   r&   r'   Ú
bulan_indoÚ
bulan_listÚ
tahun_listÚidxÚbulan_targetÚtahun_targetÚawalÚ
akhir_hariÚakhirÚperiode_strZperide_last_strZnext_month_startZdate_now_strZrandom_angka_hurufÚhalaman_totalZhalaman_str_part1Zhalaman_str_part2Zhalaman_str_part3Ú
batas_kiriÚbatas_kiri2Zbatas_kananÚ	batas_adrÚjarakÚ
text_widthZx_posZwidth_part1Zwidth_part2Zwidth_part3Ztotal_widthZstart_xZx_pos_part2Zx_pos_part3Úkel_kecÚ
backgroundÚoverlayÚwriterÚpageÚfr   r;   r   Úgenerate_permata_v1_pdf   sÂ   
B""

ÿÿr   )Úreportlab.pdfgenr   Úreportlab.pdfbaser   Úreportlab.pdfbase.ttfontsr   ÚPyPDF2r   r   r   r   r_   rQ   rX   ra   Úreportlab.lib.pagesizesr	   rR   rT   rU   rV   ÚBASE_DIRrS   r\   r   r   r   r   r   r   Ú<module>   s    