o
    ùoÆhL  ã                   @   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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Ú	timedeltaNz../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Ú	ExceptionÚA4)Útemplate_pathÚtemplate_readerÚtemplate_pageÚtemplate_widthÚtemplate_heightÚe© r   ú@/var/www/html/billing/billing_app_python/utils/pdf_permata_v2.pyÚget_template_size   s   

€þr   c           0         sF  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 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›  ¡ }ˆ j› d |ˆ j › d ˆ j›  ¡ }d" tjd#d$d%¡}t dd&¡} t d'd(¡}!| d›}"|!d›}#d" tjd)t d*d+¡d%¡}$|  dd,¡ | !|d-ƒ¡ d.}%d/}&d0}'d1}(| "|&d2|¡ | "|&d3|¡ | "|&d4|¡ |  dd5¡ | "d6d7|"¡ | "d8d7|#¡ |  dd,¡ | "|%|'|(d  |¡ d9})| "|)d:|$¡ | "|)d;|
¡ | "|)d<|¡ | "|)d=|¡ |  dd,¡ | "|%|'|(d  |¡ | "|%|'|(d>  |¡ |r²d"| d  nd"}*|r½|*d?| 7 }*| "|%|'|(d  |*¡ | "|%|'|(d&  |d  | ¡ | #¡  t$|ƒ}+t$|ƒ},t%ƒ }-|+j&d }.|. '|,j&d ¡ |- (|.¡ t)|d@ƒ}/|- *|/¡ W d   ƒ n	1 sw   Y  tj +|¡r!t ,|¡ d S d S )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)Ú Ú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>E   s   " z+generate_permata_v2_pdf.<locals>.<listcomp>r7   é   c                    s.   g | ]}ˆ j | d  dkrˆ jnˆ jd  ‘qS )r7   r   )r9   Úyearr:   r=   r   r   r?   F   s   . zBulan List:é   Ú02dú z - r*   Z$0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZé   )Úké   é   éc   Ú
0123456789é
   r8   é"   z#000000é;   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   r>   Úranger   ÚrandomÚrandintÚcalendarÚ
monthrangeÚdayr9   rA   ÚupperÚchoicesÚsetFontÚsetFillColorÚ
drawStringÚsaver   r   r	   Ú
merge_pageÚadd_pageÚopenÚwriteÚexistsÚremove)0Ú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)   Ú
bulan_indoÚ
bulan_listÚ
tahun_listÚidxÚbulan_targetÚtahun_targetÚawalÚ
akhir_hariÚakhirÚperiode_strÚdate_now_strÚrandom_angka_hurufZhalaman_firstÚhalaman_totalZhalaman_first_strZhalaman_last_strÚnorekÚ
batas_kiriÚbatas_kiri2Ú	batas_adrÚjarakZbatas_no_rekÚkel_kecÚ
backgroundÚoverlayÚwriterÚpageÚfr   r=   r   Úgenerate_permata_v2_pdf   sž   
B"

ÿÿr“   )Úreportlab.pdfgenr   Úreportlab.pdfbaser   Úreportlab.pdfbase.ttfontsr   ÚPyPDF2r   r   r   r   rb   rT   r[   rd   rU   rW   rX   rY   ÚBASE_DIRrV   r_   r   r“   r   r   r   r   Ú<module>   s    