
    iy                     P    d dl mZ d dl ddlmZ  G d dej
                        Zy)    )Decimal)*   )	cmf_pricec                   4     e Zd Zd Zdd fd
Z fdZ xZS )CmfPricec                    t        d      }| j                  r|| j                  z  }| j                  r|| j                  z  }| j                  r|| j                  z  }| j                  r|t        | j                  dz        |z  z  }| j
                  r|| j
                  z  }|r| j                  j                  s|| _        y y y )Nr   d   )r   direct_costscostmargin
margin_pctprofitprice
is_changed)selfr   s     !./modules/crm/models/cmf_price.py_calc_pricezCmfPrice._calc_price   s    
T&&&E99TYYE;;T[[ E??WT__s23e;;E;;T[[ E..DJ /5    r   )depthc                ,   | j                   s't        j                  j                  g d      | _         | j	                          t        t        |   |ddi|}| j                  j                  r$| j                  j                  j                          |S )N)mainz==T)filterr   r   )currencymodelsCmfCurrencygetr   superr   saver   r   productvalue)r   r   argskwargsres	__class__s        r   r   zCmfPrice.save   su    }}"..22:N2ODMHd($BaB6B::  LL##%
r   c                 *    t         |          g dz   S )N)r   r   r   r   r   r   r   r    )r   save_preload_fields)r   r%   s    r   r'   zCmfPrice.save_preload_fields    s     w*, 0D D 	Dr   )__name__
__module____qualname__r   r   r'   __classcell__)r%   s   @r   r   r      s     !" D Dr   r   N)decimalr   cmf.includefieldsr   r    r   r   <module>r0      s"      Dy!! Dr   