
    .h0                        S SK Jr  S SKJr  S SKJr   " S S\R                  5      r " S S\R                  5      r " S S	\R                  5      r	 " S
 S\R                  5      r
 " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      r " S S\R                  5      rg)    )models)User)timezonec                   $   \ rS rSrSr\R                  " SSS9r\R                  " SS9r	\R                  " SS	S
S9r
\R                  " SS
S
SS9r\R                  " S
SS9r\R                  " SSS9r\R"                  " S
SS9r " S S5      rS rSrg)Service   u   服务类别d   u   服务名称
max_lengthverbose_nameu   服务描述r   2   u   图标类名Tr   r   blankz	services/u   服务图片	upload_tor   nullr      是否启用defaultr   r      排序   创建时间auto_now_addr   c                   $    \ rS rSrSrSrSS/rSrg)Service.Meta   u   服务项目order-created_at N__name__
__module____qualname____firstlineno__r   verbose_name_pluralordering__static_attributes__r        $D:\demo\tech_portal\portal\models.pyMetar      s    %,]+r)   r+   c                     U R                   $ Nnameselfs    r*   __str__Service.__str__       yyr)   r    N)r"   r#   r$   r%   __doc__r   	CharFieldr/   	TextFielddescriptionicon
ImageFieldimageBooleanField	is_activeIntegerFieldr   DateTimeField
created_atr+   r2   r(   r    r)   r*   r   r      s    sHD""?KrdSD4dYghE##D~NIAE%%4nUJ, ,
r)   r   c            	           \ rS rSrSr\R                  " SSS9r\R                  " S\R                  SSSS	S
9r
\R                  " SSS9r " S S5      rS rSrg)ProductCategory      产品分类r	   u   分类名称r
   r1   Tchildrenu   父级分类)	on_deleter   r   related_namer   r   r   r   c                   "    \ rS rSrSrSrS/rSrg)ProductCategory.Meta    rD   r   r    Nr!   r    r)   r*   r+   rI       s    %,9r)   r+   c                     U R                   $ r-   r.   r0   s    r*   r2   ProductCategory.__str__%   r4   r)   r    N)r"   r#   r$   r%   r5   r   r6   r/   
ForeignKeyCASCADEparentr>   r   r+   r2   r(   r    r)   r*   rB   rB      s[    sHDvdRV,6^UFAE 
r)   rB   c                      \ rS rSrSr\R                  " \\R                  SSS9r	\R                  " SSS9r\R                  " S	S
SS9r\R                  " S	SSS9r\R                  " SSS9r\R                  " SSSS9r\R"                  " SSSSS9r\R&                  " SSS9r\R*                  " SSS9r\R*                  " SSS9r " S S5      rS rS rg!)"Product)   u   产品/配件productsu   分类rF   rG   r      u   产品名称r
   r	   u   型号Tr   u   品牌u   规格参数r   r      u   单位u   个)r   r   r   z	products/u   产品图片r   r   r   r   r      更新时间auto_nowr   c                   "    \ rS rSrSrSrS/rSrg)Product.Meta7      产品r   r    Nr!   r    r)   r*   r+   r\   7       &!?r)   r+   c                 R    U R                    SU R                   SU R                   3$ )N )brandr/   modelr0   s    r*   r2   Product.__str__<   s%    **Qtyyk4::,77r)   r    N)r"   r#   r$   r%   r5   r   rM   rB   rN   categoryr6   r/   rc   rb   r7   specificationsunitr:   r;   r<   r=   r?   r@   
updated_atr+   r2   r(   r    r)   r*   rQ   rQ   )   s      FNN.8xQHsHD($OE($OE%%>NNr%PD4dYghE##D~NI%%4nUJ%%t.QJ# #
8r)   rQ   c                      \ rS rSrSr/ SQr\R                  " \\R                  SSS9r
\R                  " S\SS	9r\R                  " S
SSS9r\R                  " SSS9r\R                  " SSSS9r\R$                  " SSS9r\R(                  " SSS9r\R,                  " \R0                  SS9r\R                  " \\R6                  SSS9r " S S5      rS rSrg)PriceRecord@      价格记录)jdu   京东taobaou   淘宝tmallu   天猫)manualu   手动录入price_recordsr^   rT   rW      平台r   choicesr   
      u   价格
max_digitsdecimal_placesr   Tu   商品链接r   r   rU   u	   供应商r      备注u   是否有效r   u   获取时间	   创建人rF   r   r   c                   "    \ rS rSrSrSrS/rSrg)PriceRecord.MetaU   rl   z-fetched_atr    Nr!   r    r)   r*   r+   r   U       %,!?r)   r+   c                 h    U R                   R                   SU R                   SU R                   S3$ )N - u   元 ())productr/   priceplatformr0   s    r*   r2   PriceRecord.__str__Z   s.    ,,##$C

|5qIIr)   r    N) r"   r#   r$   r%   r5   PLATFORM_CHOICESr   rM   rQ   rN   r   r6   r   DecimalFieldr   URLFieldurlsupplierr7   remarkr<   is_validr?   r   now
fetched_atr   SET_NULL
created_byr+   r2   r(   r    r)   r*   rj   rj   @   s     6>>-<8UG27GV^_H2ahWE
//>
BC3[PTUHDx@F""4nMH%%hllXJ""46??0;=J# #
Jr)   rj   c                       \ rS rSrSr\R                  " SSS9r\R                  " SSS9r\R                  " SS	S9r	\R                  " S
SS9r\R                  " S
SS9r\R                  " S
SS9r\R                  " S
SS9r " S S5      rS rSrg)Customer^      客户rU   u   客户名称r
   r	   u	   联系人rW      联系电话T   邮箱r}   u   地址   公司信息r   r   c                   "    \ rS rSrSrSrS/rSrg)Customer.Metah   r   r   r    Nr!   r    r)   r*   r+   r   h   r_   r)   r+   c                     U R                   $ r-   r.   r0   s    r*   r2   Customer.__str__m   r4   r)   r    N)r"   r#   r$   r%   r5   r   r6   r/   contact_personphone
EmailFieldemailr7   addresscompany_infor?   r@   r+   r2   r(   r    r)   r*   r   r   ^   s    sHD%%;ONHEDx@ETAG##$^LL%%4nUJ# #
r)   r   c                   (  ^  \ rS rSrSr/ SQr\R                  " SSSS9r\R                  " \
\R                  SS	S
9r\R                  " SSS9r\R                  " S\SSS9r\R                  " SSS9r\R"                  " SSSSS9r\R"                  " SSSSS9r\R"                  " SSSSS9r\R*                  " SSS9r\R                  " \\R0                  SS S!9r\R4                  " SS"S#9r\R4                  " SS$S%9r " S& S'5      rS( rU 4S) jrS*r U =r!$ )+	Quotationq   	   报价单))draftu   草稿)pendingu	   待审核)approvedu	   已审核)sentu	   已发送)acceptedu	   已接受)rejectedu	   已拒绝r   Tu   报价单号)r   uniquer   
quotationsr   rT   rU   u   报价单标题r
   rW   r   u   状态)r   rw   r   r      u   有效期(天)r      ry   r      折扣率(%)r{   r|   r   r      u	   税率(%)   u	   总金额r~   r}   r   r   r   r   rX   rY   c                   "    \ rS rSrSrSrS/rSrg)Quotation.Meta   r   r   r    Nr!   r    r)   r*   r+   r      s    ")!?r)   r+   c                 L    U R                    SU R                  R                   3$ Nr   )quotation_nocustomerr/   r0   s    r*   r2   Quotation.__str__   s%    ##$C(:(:';<<r)   c                 l  > U R                   (       d  SSKJn  UR                  5       R                  S5      n[        R
                  R                  US9R                  S5      R                  5       nU(       a  [        UR                   SS  5      nUS-   nOSnU US 3U l         [        TU ],  " U0 UD6  g )	Nr   )datetimezQT%Y%m%d)quotation_no__startswithz-quotation_no   04d)r   r   r   strftimer   objectsfilterorder_byfirstintsupersave)	r1   argskwargsr   prefixlast_quotationlast_number
new_number	__class__s	           r*   r   Quotation.save   s      )\\^,,Z8F&..55)/ 6 h'  !."="=bc"BC(1_

#)(:c*: ;Dd%f%r)   )r   )"r"   r#   r$   r%   r5   STATUS_CHOICESr   r6   r   rM   r   rN   r   titlestatusr>   
valid_daysr   discount_ratetax_ratetotal_amountr7   r   r   r   r   r?   r@   rh   r+   r2   r   r(   __classcell__r   s   @r*   r   r   q   s;   N ##r$^\L  V^^.:SH:KLE^&-HFF$$R>NOJ''1Q01PM""a+-KIH&&"Q/0{LLDx@F""46??0;=J%%4nUJ%%t.QJ# #
=& &r)   r   c                   l  ^  \ rS rSrSr\R                  " \\R                  SSS9r	\R                  " \
\R                  SS9r\R                  " SS	S
9r\R                  " SSSS9r\R                  " SSSSS9r\R                  " SSSS9r\R$                  " SSSS9r " S S5      rS rU 4S jrSrU =r$ )QuotationItem      报价单明细itemsr   rT   r^   rF   r   r   u   数量r   rx   ry   u   单价rz   r   r   r   r   u   小计  Tr~   )r   r   r   c                       \ rS rSrSrSrSrg)QuotationItem.Meta   r   r    Nr"   r#   r$   r%   r   r&   r(   r    r)   r*   r+   r      s    (/r)   r+   c                 L    U R                   R                   SU R                   3$ )Nz x )r   r/   quantityr0   s    r*   r2   QuotationItem.__str__   s"    ,,##$C77r)   c                    > U R                   U R                  -  U R                  S-  -  nU R                   U R                  -  U-
  U l        [        TU ]  " U0 UD6  g )Nr	   )
unit_pricer   r   subtotalr   r   )r1   r   r   discount_amountr   s       r*   r   QuotationItem.save   sP    //DMM9T=O=ORU=UV$--7/Id%f%r)   )r   )r"   r#   r$   r%   r5   r   rM   r   rN   	quotationrQ   r   r>   r   r   r   r   r   r6   r   r+   r2   r   r(   r   r   s   @r*   r   r      s    !!)v~~/6[RI6>>PXYG""18DH$$1S[\J''1Q01PM""bQYZHDxPF0 08& &r)   r   c                   >   \ rS rSrSr\R                  " SSS9r\R                  " SSSS	9r\R                  " S
S9r
\R                  " SSS9r\R                  " SSS9r\R                  " SSSS	9r\R                  " SS9r\R                   " SSS9r\R                  " SSSS	9r\R                  " SSSS	9r\R(                  " SSSS9r\R(                  " SSSS9r\R                  " SSSS	9r\R                  " SSSS	9r\R                  " SSSS	9r " S S5      rS  rS!rg")#CompanyInfo   r   rU   u   公司名称r
   r   u   公司口号Tr   u   公司简介r   u   公司地址r   r   u   手机号码r   u   网站rV   r	   u	   微信号rW   u   QQ号zcompany/u
   公司Logo)r   r   r   u	   二维码u   营业执照号u   开户银行u   银行账号c                       \ rS rSrSrSrSrg)CompanyInfo.Meta   r   r    Nr   r    r)   r*   r+   r      s    %,r)   r+   c                     U R                   $ r-   r.   r0   s    r*   r2   CompanyInfo.__str__   r4   r)   r    N)r"   r#   r$   r%   r5   r   r6   r/   sloganr7   r8   r   r   mobiler   r   r   websitewechatqqr:   logoqr_codebusiness_license	bank_namebank_accountr+   r2   r(   r    r)   r*   r   r      s7   sHD>QUVF""?K#NKGHE.PTUF84Eoo84@G;dSF			RgT	JBzTXYD*;VZ[G''3EV^bc  CnTXYI##sW[\L- -r)   r   c                   @   \ rS rSrSr\R                  " SSS9r\R                  " SSS9r\R                  " SS	S
9r
\R                  " SSS9r\R                  " SS9r\R                  " SSS9r\R                  " SSS9r\R"                  " S	SS9r " S S5      rS rSrg)ContactMessage      联系留言r	   u   姓名r
   rW   u   电话r   TrV   rU   u   主题u   留言内容r   Fu   是否已读r   u   是否已回复r   r   c                   "    \ rS rSrSrSrS/rSrg)ContactMessage.Meta   r  r   r    Nr!   r    r)   r*   r+   r     r   r)   r+   c                 8    U R                    SU R                   3$ r   )r/   subjectr0   s    r*   r2   ContactMessage.__str__   s    ))C~..r)   r    N)r"   r#   r$   r%   r5   r   r6   r/   r   r   r   r  r7   messager<   is_read
is_repliedr?   r@   r+   r2   r(   r    r)   r*   r	  r	     s    sBDBE84@E#HEGN;G!!%nMG$$UARSJ%%4nUJ# #
/r)   r	  c                   j   \ rS rSrSr/ SQr\R                  " S\SS9r\R                  " SS9r
\R                  " S	S
SS9r\R                  " SSS9r\R                  " SSSS9r\R                  " SSS9r\R                  " SSS9r\R$                  " \\R(                  SS9r " S S5      rS rS rSrg)PlatformCookie   u   平台Cookie管理)rm   ro   rq   )otheru   其他rW   ru   rv   u   Cookie数据r   rU   u   描述Tr   r   r   u   最后使用时间)r   r   r   r   r   rX   rY   r   r   c                   "    \ rS rSrSrSrS/rSrg)PlatformCookie.Metai  u   平台Cookiez-updated_atr    Nr!   r    r)   r*   r+   r    r   r)   r+   c                 R    U R                  5        SU R                  =(       d    S 3$ )Nr   u	   无描述)get_platform_displayr8   r0   s    r*   r2   PlatformCookie.__str__
  s)    ++-.c$2B2B2Qk1RSSr)   c                    0 nU R                   (       an  U R                   R                  S5       HO  nUR                  5       nSU;   d  M  UR                  SS5      u  p4UR                  5       XR                  5       '   MQ     U$ )u!   将Cookie字符串转换为字典;=r   )cookie_datasplitstrip)r1   cookie_dictitemkeyvalues        r*   get_cookie_dictPlatformCookie.get_cookie_dict  sk    ((..s3zz|$;!%C!3JC/4{{}K		,	 4
 r)   r    N)r"   r#   r$   r%   r5   r   r   r6   r   r7   r!  r8   r<   r=   r?   	last_usedr@   rh   rM   r   rN   r   r+   r2   r(  r(   r    r)   r*   r  r     s     27GV^_H""?K""cPTUK##D~NI$$$dI]^I%%4nUJ%%t.QJ""46>>P[\J# #
T	r)   r  N)	django.dbr   django.contrib.auth.modelsr   django.utilsr   Modelr   rB   rQ   rj   r   r   r   r   r	  r  r    r)   r*   <module>r/     s     + !fll &fll  8fll 8.J&,, J<v|| &7& 7&t&FLL &4&,, 4/V\\ /(#V\\ #r)   