o
    o§[dÑ#  ã                   @   s’   d dl m Z d dlmZmZmZmZ d dlmZm	Z	 d dl
mZ d dlmZ d dlT d dlZeƒ Zdd	„ Ze d
¡edƒfdedefdd„ƒZdS )é    )Údatetime)Ú	APIRouterÚRequestÚBodyÚstatus)ÚDictÚList)Újsonable_encoder)ÚJSONResponse)Ú*Nc           
      C   s˜  |dkreg d¢}d}|   |¡}|jdkrcg }|D ]}g |¢}| |d ¡ qg }d dt|ƒ ¡}d| }|   ||¡}i }|D ]!}|d |v rW||d  |d g ||d < q?|d g||d < q?|S g S |d	krÊg d
¢}d}|   |¡}|jdkrÈg }|D ]}g |¢}| |d ¡ q}g }	d dt|ƒ ¡}d| }|   ||¡}i }	|D ]!}|d |	v r¼|	|d  |d g |	|d < q¤|d g|	|d < q¤|	S g S d S )NÚGRN©Úgrn_noÚpo_noÚvender_nameÚgrn_dateÚ
invoice_noÚ	po_statusa  select COUNT(GRL.PurchaseOrderListId) as cnt, GRL.PurchaseOrderListId from Vaaak.GrnList AS GRL JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId and POL.POStatus = 0Group By GRL.PurchaseOrderListId having COUNT(GRL.PurchaseOrderListId) = 1r   é   ú,ú?ál  select distinct GRL.GrnId,GRL.PurchaseOrderListId,VEN.VendorName,GRL.LastUpdate,GRI.InvoiceNumber,POL.POStatus from Vaaak.GrnList as GRL JOIN Vaaak.GrnItem as GRI on GRI.GrnId = GRL.GrnId JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId JOIN Vaaak.Vendor as VEN on VEN.VendorId = POL.VendorId where GRL.PurchaseOrderListId in (%s)ÚRN©Úrn_nor   r   Úrn_dater   r   á  select COUNT(GRL.PurchaseOrderListId) as cnt, GRL.PurchaseOrderListId from Vaaak.GrnList AS GRL JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId where POL.POStatus = 1 Group By GRL.PurchaseOrderListId having COUNT(GRL.PurchaseOrderListId) = 1 union select COUNT(GRL.PurchaseOrderListId) as cnt, GRL.PurchaseOrderListId from Vaaak.GrnList AS GRL JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId Group By GRL.PurchaseOrderListId having COUNT(GRL.PurchaseOrderListId) > 1)ÚexecuteÚrowcountÚappendÚjoinÚlen)
Z
sql_objectÚtypeÚcolumnsÚ	statementÚrowsÚpo_listÚrowÚgrn_listÚplaceholdersÚrn_list© r+   ú8D:\Vignesh\Freelance\Astroved\api_v1\routes\dashboard.pyÚgrn_rn   sZ   

ý 

ý Ør-   z/dash_po.ÚrequestÚfilterc                 Ã   sª  t |ƒ}| jj ¡ }g }|d dkr‡g d¢}d}d|v r,|d dv r,|d |d ¡ }| |¡}|D ]}g |¢}t |d ¡ d	¡|d< | t	t
||ƒƒ¡ q3t|d
ƒ}t|dƒ}	|D ](}
|
d |v rm||
d  |
d< nd |
d< |
d |	v r€|	|
d  |
d< q\d |
d< q\|S |d dkrëg d¢}d}| |¡}|jdkrég }|D ]}g |¢}| |d ¡ q¡g }	d dt|ƒ ¡}d| }| ||¡}|D ]}g |¢}t |d ¡ d	¡|d< |	 t	t
||ƒƒ¡ qÆt|	ƒ |	S g S |d d
krSg d¢}d}| |¡}|jdkrQg }|D ]}g |¢}| |d ¡ qg }d dt|ƒ ¡}d| }| ||¡}|D ]}g |¢}t |d ¡ d	¡|d< | t	t
||ƒƒ¡ q-t|ƒ |S g S d S )NÚc1ÚPO)Ú	po_numberr   Úpo_dater   z«select POL.PurchaseOrderListId,VEN.VendorName,POL.CreatedDate, POL.POStatus from PurchaseOrderList as POL JOIN Vaaak.Vendor as VEN on VEN.VendorId = POL.VendorId where 1=1Úc2)r   r   éÿÿÿÿz and POStatus = {}é   z
DD/MM/YYYYr   r   r2   Zrn_nosZgrn_nosr   a  select COUNT(GRL.PurchaseOrderListId) as cnt, GRL.PurchaseOrderListId from Vaaak.GrnList AS GRL JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId and POL.POStatus = 0 Group By GRL.PurchaseOrderListId having COUNT(GRL.PurchaseOrderListId) = 1r   r   r   r   r   é   r   r   )r	   ÚappÚmssqlÚcursorÚformatr   ÚarrowÚgetr   ÚdictÚzipr-   r   r    r!   Újson_serializer)r.   r/   r:   Zfilter_itemsr#   r$   r%   r'   r*   r(   Úitrr&   r)   r+   r+   r,   Údash_po\   sŒ   €


	


ý
ýÚrB   )r   ÚdtÚfastapir   r   r   r   Útypingr   r   Úfastapi.encodersr	   Úfastapi.responsesr
   Ú
lib.commonÚpydashÚrouterr-   ÚpostrB   r+   r+   r+   r,   Ú<module>   s    Q 