
    \d                     p    d dl  d dlmZ d dlmZ d dlmZ  G d dej                  j                        Z	y)    )*)fields)CmfActiveEntity)Decimalc                   T     e Zd Z fdZd Zdd fd
Z fdZed fd	       Z xZ	S )	
CmfProductc                 h    | j                  ddg       | j                          t        |           y )Nzprices.start_datezprices.price)load_fields_calc_current_pricesuper_update_cache_fieldsself	__class__s    #./modules/crm/models/cmf_product.pyr   zCmfProduct._update_cache_fields
   s.    -~>?  "$&    c                     | j                   t        d      | _         | j                  sy t        | j                  d d      }|d   j                  | _         y )Nr   c                 .    | j                   j                  S N)
start_datevalue)ps    r   <lambda>z0CmfProduct._calc_current_price.<locals>.<lambda>   s    !,,:L:L r   T)keyreverse)current_pricer   pricessortedprice)r   sorted_pricess     r   r   zCmfProduct._calc_current_price   sK    %!(D{{t{{0LVZ[*1-33r   r   )depthc                    | j                   sd| _         | j                  s#t        j                  j	                         | _        t        t        |   |ddi|S )N   r!   r   )taxunitmodelsCmfUnitgetr   r   save)r   r!   argskwargsr   s       r   r)   zCmfProduct.save   sH    xxDHyy**,DIZ+TEEfEEr   c                 *    t         |          g dz   S )N)r   r$   r%   )r   save_preload_fieldsr   s    r   r-   zCmfProduct.save_preload_fields    s    w*,/OOOr   c                 r    t         |   |      }|s$|t        j                  j                  ddg      z  }|S )N
item_counttotal)r   import_shop_fieldsr&   CmfDealItems)clsfields_nameresr   s      r   r1   zCmfProduct.import_shop_fields#   s:    g(56&&99<:QRRC
r   r   )
__name__
__module____qualname__r   r   r)   r-   classmethodr1   __classcell__)r   s   @r   r   r      s2    '
4 !" FP  r   r   N)
cmf.includecmfr   common.models.cmf_active_entityr   decimalr   r&   	CmfEntityr    r   r   <module>rA      s'      ;  %%  r   