U
    Š\ccy  ã                   @   s>  d dl mZ d dlmZ d dlmZ d dlmZ d dlm	Z	 d dl
mZ d dlZd dlmZmZmZmZmZ d d	lmZ d
dlT d dlmZ d dlmZ eƒ ZG dd„ de	jƒZG dd„ de	jƒZd dlmZ G dd„ de	jƒZG dd„ de	jƒZ G dd„ de	jƒZ!G dd„ de	jƒZ"G dd„ de	jƒZ#G dd„ de	jƒZ$dS )é    )Úfields)Úbuild_py)Úmodel)Ú	FileField)Úserializers)ÚSubPublisherUserN)ÚAuthorÚMagMapAuthorÚMagazineCommissionInfoÚMagazineInfoÚMagazinePurchaseInfo)Úget_mgn_commisioné   )Ú*)Úsettings)Úget_user_modelc                   @   sš   e Zd Ze ¡ Ze ¡ Ze ¡ Ze ¡ Ze ¡ Z	e ¡ Z
e ¡ Ze ¡ ZG dd„ dƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )Ú"MagazinePurchaseInfoListSerializerc                   @   s   e Zd ZeZdZdS )z'MagazinePurchaseInfoListSerializer.Meta)ÚidÚ	rent_dateÚbuy_dateÚis_buyedÚ	is_rentedÚrent_expiry_dateÚmagazineInfosÚusersÚpurchase_nameÚpublisher_nameÚ
rent_priceÚ	buy_priceÚsubscription_priceÚ
commissionÚammountN©Ú__name__Ú
__module__Ú__qualname__r   r   r   © r&   r&   úY/var/www/html/staging.mfahmagazine.net/magazine_api/magazine_web_admin/web/serializers.pyÚMeta   s   r(   c                 C   s   |j j› d|j j› �S ©Nú ©r   Ú
first_nameÚ	last_name©ÚselfÚobjr&   r&   r'   Úget_purchase_name!   s    z4MagazinePurchaseInfoListSerializer.get_purchase_namec                 C   s
   |j j› S ©N©r   Únamer.   r&   r&   r'   Úget_magazineInfos$   s    z4MagazinePurchaseInfoListSerializer.get_magazineInfosc                 C   s   |j jj› d|j jj› �S r)   ©r   r   r,   r-   r.   r&   r&   r'   Úget_publisher_name'   s    z5MagazinePurchaseInfoListSerializer.get_publisher_namec                 C   s    |j dkr|j| _nd| _| jS ©Nr   r   ©r   r   r.   r&   r&   r'   Úget_rent_price*   s    

z1MagazinePurchaseInfoListSerializer.get_rent_pricec                 C   s    |j dkr|j| _nd| _| jS r8   ©r   r   r.   r&   r&   r'   Úget_buy_price1   s    

z0MagazinePurchaseInfoListSerializer.get_buy_pricec                 C   s    |j dkr|j| _nd| _| jS r8   ©Úis_subscriptionr   r.   r&   r&   r'   Úget_subscription_price8   s    

z9MagazinePurchaseInfoListSerializer.get_subscription_pricec                 C   s&   | j  d¡}|jj}|jj}t||ƒS ©NÚrequest©ÚcontextÚgetÚuserr   r   Úusers_idr   ©r/   r0   rA   Úactive_userÚuseridr&   r&   r'   Úget_commission@   s    z1MagazinePurchaseInfoListSerializer.get_commissionc                 C   s�  |j j}| j d¡}|jj}tjj|d� 	¡ }d}|j
dkrôt||ƒ}|jdkrœ|jd krzd}||d  }	|	}t|dƒ}qð|j}||d  }	|	}t|dƒ}nT|jdkrð|jd krÐd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S |j
dk�rÀt||ƒ}|jdk�rd|jd k�rBd}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nX|jdk�r¼|jd k�rœd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S |j
d	k�rŒt||ƒ}|jdk�r0|jd k�rd}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nX|jdk�rˆ|jd k�rhd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S d S )
NrA   ©r   r   ©r   é   r   éd   rM   é   é   )r   rF   rC   rD   rE   r   ÚUserÚobjectsÚfilterÚlastÚroles_idr   r   r   Úroundr   r   ©r/   r0   rI   rA   rH   Ú
userrecordr!   r    r   Úpercentr   r&   r&   r'   Úget_ammountG   s–    










z.MagazinePurchaseInfoListSerializer.get_ammountN)r#   r$   r%   r   ÚSerializerMethodFieldr   r   r   r   r   r   r    r!   r(   r1   r5   r7   r:   r<   r?   rJ   rZ   r&   r&   r&   r'   r      s"   r   c                   @   s*   e Zd Ze ¡ ZG dd„ dƒZdd„ ZdS )Ú'MagazinePurchaseInfoSumAmountSerializerc                   @   s   e Zd ZeZdgZdS )z,MagazinePurchaseInfoSumAmountSerializer.Metar!   Nr"   r&   r&   r&   r'   r(   Å   s   r(   c                 C   s¶  d}|j �r®|j j}| j d¡}|jj}tjj|d� 	¡ }|j
dk�rt||ƒ}t|ƒ |jdkr®|jd krŒd}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nV|jdk�r|jd kräd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S |j
dk�rÔt||ƒ}|jdk�rx|jd k�rVd}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nX|jdk�rÐ|jd k�r°d}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S |j
d	k�r¨t||ƒ}t|ƒ |jdk�rL|jd k�r*d}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nX|jdk�r¤|jd k�r„d}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S dS ndS d S )
Nr   rA   rK   rL   r   rN   rM   rO   rP   )r   rF   rC   rD   rE   r   rQ   rR   rS   rT   rU   r   Úprintr   r   rV   r   r   )r/   r0   r!   rI   rA   rH   rX   r    r   rY   r   r&   r&   r'   rZ   É   sž    








z3MagazinePurchaseInfoSumAmountSerializer.get_ammountN)r#   r$   r%   r   r[   r!   r(   rZ   r&   r&   r&   r'   r\   Ã   s   r\   )ÚCountc                   @   sZ   e Zd Ze ¡ Ze ¡ Ze ¡ Ze ¡ ZG dd„ dƒZ	dd„ Z
dd„ Zdd„ Zd	d
„ ZdS )ÚMagazineSellDetailsSerializerc                   @   s   e Zd ZeZddddgZdS )z"MagazineSellDetailsSerializer.MetaÚrentsÚbuysr   ÚtotalN©r#   r$   r%   r   r   r   r&   r&   r&   r'   r(   T  s   r(   c                 C   s   t jj|jdd� ¡ S )NT)ÚmagazineInfos_idr   ©r   rR   rS   r   Úcountr.   r&   r&   r'   Ú	get_rentsX  s    z'MagazineSellDetailsSerializer.get_rentsc                 C   s   t jj|jdd� ¡ }|S )NT)rd   r   re   )r/   r0   ra   r&   r&   r'   Úget_buys\  s    z&MagazineSellDetailsSerializer.get_buysc                 C   s   |j S r2   )r4   r.   r&   r&   r'   r5   `  s    z/MagazineSellDetailsSerializer.get_magazineInfosc                 C   s   t jj|jd� ¡ }|S ©N©rd   re   )r/   r0   rb   r&   r&   r'   Ú	get_totalc  s    z'MagazineSellDetailsSerializer.get_totalN)r#   r$   r%   r   r[   r`   ra   r   rb   r(   rg   rh   r5   rk   r&   r&   r&   r'   r_   N  s   r_   c                   @   s2   e Zd Ze ¡ ZG dd„ dƒZdd„ Zdd„ ZdS )ÚGetAuhtorSerializerc                   @   s   e Zd ZeZdddgZdS )zGetAuhtorSerializer.Metar   Úauthor_nameÚstatusN)r#   r$   r%   r   r   r   r&   r&   r&   r'   r(   l  s   r(   c                 C   s2   | j  d¡}tjj||jd� ¡ }|r*dS dS d S )NÚ
magzine_id)Úmagazine_idÚ	author_idTF)rC   rD   r	   rR   rS   r   rT   )r/   r0   Zmag_idÚmagazine_authorr&   r&   r'   Ú
get_statusp  s
    zGetAuhtorSerializer.get_statusc                 C   s   |j S r2   )rm   r.   r&   r&   r'   Úget_author_namey  s    z#GetAuhtorSerializer.get_author_nameN)	r#   r$   r%   r   r[   rn   r(   rs   rt   r&   r&   r&   r'   rl   i  s   	rl   c                   @   sÊ   e Zd Ze ¡ Ze ¡ Ze ¡ Ze ¡ Ze ¡ Z	e ¡ Z
e ¡ Ze ¡ Ze ¡ Ze ¡ Ze ¡ ZG dd„ dƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ Zdd„ ZdS )ÚReportListSerializerc                   @   s   e Zd ZeZdZdS )zReportListSerializer.Meta)r   r   r   r   ÚdiscountÚafter_comission_ammountÚoffersr   r   ÚmagazineÚ	user_namer   r   r   r   r    r!   Nr"   r&   r&   r&   r'   r(   Œ  s   r(   c                 C   s   |j j› d|j j› �S r)   r+   r.   r&   r&   r'   Úget_user_name�  s    z"ReportListSerializer.get_user_namec                 C   s
   |j j› S r2   r3   r.   r&   r&   r'   Úget_magazine“  s    z!ReportListSerializer.get_magazinec                 C   s   |j jj› d|j jj› �S r)   r6   r.   r&   r&   r'   r7   –  s    z'ReportListSerializer.get_publisher_namec                 C   s    |j dkr|j| _nd| _| jS r8   r9   r.   r&   r&   r'   r:   ™  s    

z#ReportListSerializer.get_rent_pricec                 C   s    |j dkr|j| _nd| _| jS r8   r;   r.   r&   r&   r'   r<      s    

z"ReportListSerializer.get_buy_pricec                 C   s   |j r|j j| _nd| _| jS )NzNot Applied)ÚmagazineOfferÚcoderx   r.   r&   r&   r'   Ú
get_offers§  s    zReportListSerializer.get_offersc                 C   s   |j r|j j| _nd| _| jS )Nr   )r}   rv   r.   r&   r&   r'   Úget_discount¯  s    z!ReportListSerializer.get_discountc                 C   s    |j dkr|j| _nd| _| jS r8   r=   r.   r&   r&   r'   r?   ·  s    

z+ReportListSerializer.get_subscription_pricec                 C   s&   | j  d¡}|jj}|jj}t||ƒS r@   rB   rG   r&   r&   r'   rJ   ¿  s    z#ReportListSerializer.get_commissionc                 C   s    |j dkr\|jd kr(d}|}t|dƒ}n0|jrD|j}|}t|dƒ}n|j}|}t|dƒ}|S |jdkrœ|jd kr„d}|}t|dƒ}n|j}|}t|dƒ}|S d S )Nr   r   rM   )r   r   rV   Ú
is_offeredÚoffer_pricer   r   )r/   r0   r   r!   r   r&   r&   r'   rZ   Æ  s,    





z ReportListSerializer.get_ammountc                 C   s&  |j j}| j d¡}|jj}tjj|d� 	¡ }d}|j
dk�r t||ƒ}|jdkrÆ|jd kr|d}||d  }	|	}t|dƒ}nH|jr¤|j}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nV|jdk�r|jd krüd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S |j
dk�r,t||ƒ}|jdk�rÌ|jd k�rxd}||d  }	|	}t|dƒ}t|d	ƒ nR|j�r¦|j}||d  }	||	 }t|dƒ}n$|j}||d  }	||	 }t|dƒ}n\|jdk�r(|jd k�rd}
|
|d  }	|	}t|dƒ}n$|j}
|
|d  }	|
|	 }t|dƒ}|S |j
d
k�r"t||ƒ}|jdk�rÆ|jd k�rzd}||d  }	|	}t|dƒ}nJ|j�r¤|j}||d  }	|	}t|dƒ}n |j}||d  }	|	}t|dƒ}nX|jdk�r|jd k�rþd}
|
|d  }	|	}t|dƒ}n |j}
|
|d  }	|	}t|dƒ}|S d S )NrA   rK   r   rL   r   rN   rM   rO   zWould be Zero :---------------rP   )r   rF   rC   rD   rE   r   rQ   rR   rS   rT   rU   r   r   r   rV   r�   r‚   r   r   r]   rW   r&   r&   r'   Úget_after_comission_ammountå  s¶    









z0ReportListSerializer.get_after_comission_ammountN)r#   r$   r%   r   r[   rz   ry   r   r   r   r   r    rx   rv   r!   rw   r(   r{   r|   r7   r:   r<   r   r€   r?   rJ   rZ   rƒ   r&   r&   r&   r'   ru   ~  s.   ru   c                   @   s   e Zd ZG dd„ dƒZdS )Ú$MagazinePurchaseInfoByUserSerializerc                   @   s   e Zd ZeZdZdS )z)MagazinePurchaseInfoByUserSerializer.MetaÚ__all__Nr"   r&   r&   r&   r'   r(   l  s   r(   N)r#   r$   r%   r(   r&   r&   r&   r'   r„   k  s   r„   c                   @   sz   e Zd Ze ¡ Ze ¡ Ze ¡ Ze ¡ Ze ¡ Z	e ¡ Z
G dd„ dƒZdd„ Zdd„ Zdd„ Zd	d
„ Zdd„ Zdd„ ZdS )Ú!MagazineGroupwiseReportSerializerc                   @   s   e Zd ZeZdZdS )z&MagazineGroupwiseReportSerializer.Meta)r   ry   Ú	publisherÚtotal_amountr    Úadmin_amountÚpublisher_amountNrc   r&   r&   r&   r'   r(   z  s   r(   c                 C   s&   t jj|jd� ¡ }|r"|j}|S d S ri   )r   rR   rS   r   Úexistsr4   )Úslefr0   Úmagazine_sell_statusry   r&   r&   r'   r|   ~  s    z.MagazineGroupwiseReportSerializer.get_magazinec                 C   s4   t jj|jd� ¡ }|r0|jjd |jj }|S d S )Nrj   r*   )r   rR   rS   r   r‹   r   r,   r-   )r/   r0   r�   r‡   r&   r&   r'   Úget_publisherˆ  s    z/MagazineGroupwiseReportSerializer.get_publisherc                 C   sž   d}d}t jj|jd� ¡ }|ršt jj|jd� ¡ }|D ]X}|jdkrR||j }q8|jdkr8|j	dkrr||j
 }q8|jd kr†|d }q8||j }q8|| S d S )Nr   rj   r   )r   rR   rS   r   r‹   Úallr   r   r   r�   r‚   r   )rŒ   r0   ÚrentÚbuyr�   Úmagazine_dataÚdatar&   r&   r'   Úget_total_amountŽ  s    




z2MagazineGroupwiseReportSerializer.get_total_amountc                 C   s@   t jj|jd� ¡ }|r<| j d¡}|jj}|j}t	||ƒS d S )Nrj   rA   )
r   rR   rS   r   r‹   rC   rD   rE   rF   r   )r/   r0   r�   rA   rH   rI   r&   r&   r'   rJ   ¤  s    z0MagazineGroupwiseReportSerializer.get_commissionc                 C   sä   d}d}t jj|jd� ¡ }|ràt jj|jd� ¡ }|D ]X}|jdkrR||j }q8|jdkr8|j	dkrr||j
 }q8|jd kr†|d }q8||j }q8|| }| j d¡}|jj}	|j}
t|	|
ƒ}|}||d  }|}t|dƒ}|S d S ©Nr   rj   r   rA   rN   rM   ©r   rR   rS   r   r‹   r�   r   r   r   r�   r‚   r   rC   rD   rE   rF   r   rV   ©r/   r0   r�   r‘   r�   r’   r“   ÚamountrA   rH   rI   r    rˆ   rY   r!   r&   r&   r'   Úget_admin_amount­  s0    






z2MagazineGroupwiseReportSerializer.get_admin_amountc                 C   sö   d}d}t jj|jd� ¡ }|ròt jj|jd� ¡ }|D ]X}|jdkrR||j }q8|jdkr8|j	dkrr||j
 }q8|jd kr†|d }q8||j }q8|| }| j d¡}|jj}	|j}
t|	|
ƒ}|}||d  }|}t|dƒ}|| }t|dƒ}|S d S r•   r–   r—   r&   r&   r'   Úget_publisher_amountÎ  s4    







z6MagazineGroupwiseReportSerializer.get_publisher_amountN)r#   r$   r%   r   r[   ry   r‡   rˆ   r    r‰   rŠ   r(   r|   rŽ   r”   rJ   r™   rš   r&   r&   r&   r'   r†   r  s   
	!r†   c                   @   s*   e Zd Ze ¡ ZG dd„ dƒZdd„ ZdS )ÚReportTotalAmountSerializerc                   @   s   e Zd ZeZdZdS )z ReportTotalAmountSerializer.MetarŠ   Nrc   r&   r&   r&   r'   r(   ô  s   r(   c                 C   sö   d}d}t jj|jd� ¡ }|ròt jj|jd� ¡ }|D ]X}|jdkrR||j }q8|jdkr8|j	dkrr||j
 }q8|jd kr†|d }q8||j }q8|| }| j d¡}|jj}	|j}
t|	|
ƒ}|}||d  }|}t|dƒ}|| }t|dƒ}|S d S r•   r–   r—   r&   r&   r'   rš   ø  s4    







z0ReportTotalAmountSerializer.get_publisher_amountN)r#   r$   r%   r   r[   rŠ   r(   rš   r&   r&   r&   r'   r›   ñ  s   r›   )%Údataclassesr   Zdistutils.command.build_pyr   Úpyexpatr   Zdjango.formsr   Úrest_frameworkr   Úbase.modelsr   ry   Úmagazineapp.modelsr   r	   r
   r   r   Ú	web.utilsr   Úmodelsr   Údjango.contrib.authr   rQ   ÚModelSerializerr   r\   Údjango.db.modelsr^   r_   rl   ru   r„   r†   r›   r&   r&   r&   r'   Ú<module>   s0    1  n