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rt||}|jdkr|jd krzd}||d  }	|	}t|d}q|j}||d  }	|	}t|d}nT|jdkr|jd krd}
|
|d  }	|	}t|d}n |j}
|
|d  }	|	}t|d}|S |j
dkrt||}|jdkrd|jd krBd}||d  }	|	}t|d}n |j}||d  }	|	}t|d}nX|jdkr|jd krd}
|
|d  }	|	}t|d}n |j}
|
|d  }	|	}t|d}|S |j
d	krt||}|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rd}||d  }	|	}t|d}n |j}||d  }	|	}t|d}nV|jdkr|jd krd}
|
|d  }	|	}t|d}n |j}
|
|d  }	|	}t|d}|S |j
dkrt||}|jdkrx|jd krVd}||d  }	|	}t|d}n |j}||d  }	|	}t|d}nX|jdkr|jd krd}
|
|d  }	|	}t|d}n |j}
|
|d  }	|	}t|d}|S |j
d	krt||}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rd}
|
|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rd}|}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rd}
|
|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rd}
|
|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 }|rt 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 }|rt 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 }|rt 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 }|rt 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