
    h0                         d dl mZ d dlmZ d dlmZ d dlmZmZm	Z	m
Z
mZmZ d dlmZmZ d dlmZmZ d dlmZ d dlmZ d d	lZd d
lmZ d d	lZd dlmZ 	  ej:                   edd             d Zd Zd Z y	#  Y xY w)    )BytesIO)colors)A4)SimpleDocTemplateTable
TableStyle	ParagraphSpacerImage)getSampleStyleSheetParagraphStyle)inchcm)
pdfmetrics)TTFontN)BeautifulSoup)DecimalSimSunz
simsun.ttcc                 P   ddi}	 d|  }t        j                  ||d      }t        |j                  d      }|j	                  dd	      }|r5|d
   j                  }t        j                  d|      }|rt        |d
         S y# t        $ r}t        d|        Y d}~yd}~ww xY w)u   爬取京东价格（示例）z
User-Agentz<Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36z%https://search.jd.com/Search?keyword=
   )headerstimeoutzhtml.parserdivzp-price)class_r   z[\d.]+zError fetching price: N)
requestsgetr   textfind_allrefindallr   	Exceptionprint)	keywordr   urlresponsesoupprice_elements
price_textpricees	            $/var/www/tech_portal/portal/utils.pyfetch_jd_pricer,      s     	TG, 6gY?<<WbAX]]M: uY?'*//JJJy*5EuQx((   ,&qc*++,s   A<B 	B%B  B%c                 ~   t               }t        |t              }g }t               }	 t	        d|d   ddt        j                  d      d      }t	        d	|d
   dd      }|j                  t        d|             |j                  t        dd             d| j                  d| j                  j                  d      gd| j                  j                  d| j                  j                  gd| j                  j                   d| j                  j"                  xs dgg}t%        |dt&        z  dt&        z  dt&        z  dt&        z  g      }|j)                  t+        ddddddd t
        j,                  fd!dd"t
        j.                  fd!d#d$t
        j.                  fg             |j                  |       |j                  t        dd%             g d&g}	t1        d'      }
t3        | j4                  j7                         d      D ]  \  }}|	j                  t9        |      |j:                  j                  |j:                  j<                  |j:                  j>                  t9        |j@                        d(|jB                  d)|jD                   d*d(|jF                  d)g       |
|jF                  z  }
 |	j                  ddddddd+d(|
d)g       t%        |	dt&        z  d,t&        z  d-t&        z  d.t&        z  d.t&        z  dt&        z  d.t&        z  d/t&        z  g      }|j)                  t+        ddd0d1dddd t
        jH                  fd!dd2t        j                  d      fd3dd2t
        jJ                  fd!d"dt
        j.                  fd4d5g
             |j                  |       |j                  t        dd%             | jL                  r@|j                  t        d6|             |j                  t        | jL                  |             |jO                  |       |jQ                  d7       |S #  |d   }|d
   }Y xY w)8u   生成报价单PDF)pagesizeCustomTitleHeading1r      z#003366   )parentfontNamefontSize	textColor	alignmentCustomNormalNormal   )r3   r4   r5   u	   报价单   u   报价单号：u	   日期：z%Y-%m-%du   客户名称：u   联系人：u   联系电话：u	   邮箱：       )	colWidths)FONTNAMEr   r   rC   r   )FONTSIZErA   rB   r   )ALIGNrA   rB   LEFTGRIDrA   rB   g      ?
BACKGROUNDr   rC   )r=   r   )r=   rC      )u   序号u   产品名称u   规格型号u   单位u   数量u   单价u   折扣u   小计0   ¥z.2f%u	   合计：      g      ?g      @)rE   rA   rB   CENTER)VALIGNrA   rB   MIDDLE)rC   r   	TEXTCOLOR)SPANrI   r>   rC   )rE   rI   rU   RIGHTu	   备注：r   ))r   r   r   r   r   r   HexColorappendr	   r
   quotation_no
created_atstrftimecustomernamecontact_personphoneemailr   r   setStyler   grey	lightgreyr   	enumerateitemsallstrproductmodelunitquantity
unit_pricediscount_ratesubtotalblackwhiteremarkbuildseek)	quotationbufferdocstorystylestitle_stylenormal_style	info_data
info_table
items_datatotalidxitemitems_tables                 r+   generate_quotation_pdfr   /   s   YF
FR
0CE !"F($*%ooi0
 &(#	
 
LL;45	LL2 
I22KAUAUA^A^_iAjk	I..33^YEWEWEfEfg	I..44k9CUCUC[C[Ca_abI yQVQVQVQV,LMJ
0*+	34	vw(8(89	vw(8(89$   
LL	LL2 ooJCLEy224a8 	THLLLLLL%&!!"!$s#$	
 		 	 r2r2r2{bs<LMN
q2vq2vq2vsRxQTWYQY[\_a[acfikckmpsumu.vwK0*-.	35	vw	(BC	fgv||4	w&*:*:;",%   
LL	LL2 Y{L9:Yy//>? IIe
KKNMO(Z(h's   9P- -P<c                  "   ddl m} m} | j                  j	                  d      }|D ]f  }|j
                   d|j                   d|j                   j                         }t        |      }|sG|j                  j                  |d|dd	       h y)
u$   自动获取价格（定时任务）r2   )ProductPriceRecordT)	is_active jdr<   u   京东自营)rh   platformr)   r$   supplier)modelsr   r   objectsfilterbrandr]   ri   stripr,   create)r   r   productsrh   r#   jd_prices         r+   auto_fetch_pricesr      s    ,%%%5H ]]O1W\\N!GMM?CIIK "'*&&' ' "     )!ior   reportlab.libr   reportlab.lib.pagesizesr   reportlab.platypusr   r   r   r	   r
   r   reportlab.lib.stylesr   r   reportlab.lib.unitsr   r   reportlab.pdfbaser   reportlab.pdfbase.ttfontsr   r   bs4r   r   decimalr   registerFontr,   r   r    r   r+   <module>r      sd       & ] ] D ( ( ,   	 	JF8\:;
4^B	s   A7 7A;