
    Ef                     b    d dl m Z  d dlT d dlmZ d dlmZ  G d dej        j                  ZdS )    )copy)*)fields)Decimalc                   8     e Zd Zd Z fdZ fdZ fdZ xZS )CmfDealItemsc                    | j         j        s&| j        j        s| j        j        s| j        j        sd S | j         pd}|| j        pdz  }| j        r
|| j        z  }| j        rt          | j        dz            }|||z  z  }|| _        d S )Nr   d   )price
is_changed
item_countdiscountdiscount_pctr   total)selfr   r   s      './modules/sale/models/cmf_deal_items.py_calc_totalzCmfDealItems._calc_total	   s    
% 	)C 	t}G_ 	cgctc 	F
a-A.= 	#T]"E 	*"4#4s#:;;L\E))E


    c                 R    g d}t                                                      |z   S )N)zproduct.prices.pricezproduct.taxzproduct.unitdealr   unit)supersave_preload_fields)r   _fields	__class__s     r   r   z CmfDealItems.save_preload_fields   s)    bbbww**,,w66r   c                 d   | j         j        r8| j         r1| j         j        D ]}|j        j        | _         | j         j        | _        |                                   t                      j        |i |}| j	        r6| j
        j        r*d| j	        _
        | j	        j                                         |S )Nr   )productr   pricesr   valuer   r   r   saver   r   )r   argskwargsr   resr   s        r   r    zCmfDealItems.save   s    <" 	*t| 	*,  "[.
)DIegglD+F++9 	#. 	#DIOIO  """
r   c                     |                      dg            t                      j        |i |}| j        j        s| j        j                                         |S )Nr   )load_fieldsr   deleter   is_nullr   r    )r   r!   r"   r#   r   s       r   r&   zCmfDealItems.delete'   s[    &"""eggnd-f--y  	#IO  """
r   )__name__
__module____qualname__r   r   r    r&   __classcell__)r   s   @r   r   r      sy        
 
 
7 7 7 7 7            r   r   N)	r   cmf.includecmfr   decimalr   models	CmfEntityr    r   r   <module>r2      s                         $ $ $ $ $3:' $ $ $ $ $r   