
    `h0                         S SK Jr  S SKJr  S SKJr  S SKJrJrJ	r	J
r
JrJr  S SKJrJr  S SKJrJr  S SKJr  S SKJr  S S	KrS S
KJr  S S	KrS SKJr   \R:                  " \" SS5      5        S rS rS r g	!    N= f)    )BytesIO)colors)A4)SimpleDocTemplateTable
TableStyle	ParagraphSpacerImage)getSampleStyleSheetParagraphStyle)inchcm)
pdfmetrics)TTFontN)BeautifulSoup)DecimalSimSunz
simsun.ttcc                 \   SS0n SU  3n[         R                  " X!SS9n[        UR                  S5      nUR	                  SSS	9nU(       a;  US
   R                  n[
        R                  " SU5      nU(       a  [        US
   5      $ g! [         a  n[        SU 35         SnAgSnAff = f)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	            #D:\demo\tech_portal\portal\utils.pyfetch_jd_pricer,      s     	TG, 6gY?<<bAX]]M: uY?'*//JJJy*5EuQx((   ,&qc*++,s   BB	 	
B+B&&B+c                 x   [        5       n[        U[        S9n/ n[        5       n [	        SUS   SS[
        R                  " S5      SS9n[	        S	US
   SSS9nUR                  [        SU5      5        UR                  [        SS5      5        SU R                  SU R                  R                  S5      /SU R                  R                  SU R                  R                  /SU R                  R                   SU R                  R"                  =(       d    S//n[%        US[&        -  S[&        -  S[&        -  S[&        -  /S9nUR)                  [+        SSSSSSS [
        R,                  4S!SS"[
        R.                  4S!S#S$[
        R.                  4/5      5        UR                  U5        UR                  [        SS%5      5        / S&Q/n	[1        S'5      n
[3        U R4                  R7                  5       S5       H  u  pU	R                  [9        U5      UR:                  R                  UR:                  R<                  UR:                  R>                  [9        UR@                  5      S(URB                  S) 3URD                   S*3S(URF                  S) 3/5        XRF                  -  n
M     U	R                  SSSSSSS+S(U
S) 3/5        [%        U	S[&        -  S,[&        -  S-[&        -  S.[&        -  S.[&        -  S[&        -  S.[&        -  S/[&        -  /S9nUR)                  [+        SSS0S1SSSS [
        RH                  4S!SS2[
        R                  " S5      4S3SS2[
        RJ                  4S!S"S[
        R.                  4S4S5/
5      5        UR                  U5        UR                  [        SS%5      5        U RL                  (       a@  UR                  [        S6U5      5        UR                  [        U RL                  U5      5        URO                  U5        URQ                  S75        U$ !   US   nUS
   n GN= f)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	HLLLLLL%&!!"!$s#$	
 		 	 9 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   4P* *P9c            	      &   SSK Jn Jn  U R                  R	                  SS9nU Hj  nUR
                   SUR                   SUR                   3R                  5       n[        U5      nU(       d  MM  UR                  R                  USUSSS	9  Ml     g)
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 "'*8&&' '  "     )!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      sb       & ] ] D ( ( ,   	 	F8\:;
4^B	s   A7 7A;