B
    ëŸEfí  ã               @   sD   d dl m Z  d dlT d dlmZ d dlmZ G dd„ dejjƒZdS )é    )Úcopy)Ú*)Úfields)ÚDecimalc                   s<   e Zd Zdd„ Z‡ fdd„Z‡ fdd„Z‡ fdd„Z‡  ZS )	ÚCmfDealItemsc             C   sv   | j js$| jjs$| jjs$| jjs$d S | j p,d}|| jp8d }| jrL|| j8 }| jrlt| jd ƒ}||| 8 }|| _d S )Nr   éd   )ÚpriceÚ
is_changedZ
item_countZdiscountÚdiscount_pctr   Útotal)Úselfr   r
   © r   ú'./modules/sale/models/cmf_deal_items.pyÚ_calc_total	   s     

zCmfDealItems._calc_totalc                s   ddddddg}t ƒ  ¡ | S )Nzproduct.prices.pricezproduct.taxzproduct.unitÚdealr   Úunit)ÚsuperÚsave_preload_fields)r   Ú_fields)Ú	__class__r   r   r      s    z CmfDealItems.save_preload_fieldsc                sr   | j jr6| j r6x| j jD ]}|jj| _P qW | j j| _|  ¡  tƒ j||Ž}| j	rn| j
jrnd| j	_
| j	j ¡  |S )Nr   )Úproductr	   Zpricesr   Úvaluer   r   r   Úsaver   r   )r   ÚargsÚkwargsr   Úres)r   r   r   r      s    

zCmfDealItems.savec                s2   |   dg¡ tƒ j||Ž}| jjs.| jj ¡  |S )Nr   )Zload_fieldsr   Údeleter   Zis_nullr   r   )r   r   r   r   )r   r   r   r   '   s
    zCmfDealItems.delete)Ú__name__Ú
__module__Ú__qualname__r   r   r   r   Ú__classcell__r   r   )r   r   r      s   r   N)	r   Zcmf.includeZcmfr   Údecimalr   ZmodelsZ	CmfEntityr   r   r   r   r   Ú<module>   s   