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e d¡ed	ƒfd
edef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)Ú*Nz/dash_po.ÚrequestÚfilterc           
      Ã   sÔ  t |ƒ}| jj ¡ }g }|d dkrg d¢}d}|d r&|d |d ¡ }|d r3|d |d ¡ }|d	 rYt |d	  d
¡d d¡}t |d	  d
¡d d¡}|d ||¡ }| |¡}|D ]}	g |	¢}	t	 
|	d ¡ d¡|	d< | tt||	ƒƒ¡ q`|S |d dkrñg d¢}d}|d r˜|d |d ¡ }|d r¥|d |d ¡ }|d	 rËt |d	  d
¡d d¡}t |d	  d
¡d d¡}|d ||¡ }| |¡}|D ]}	g |	¢}	t	 
|	d ¡ d¡|	d< | tt||	ƒƒ¡ qÒ|S |d dkrhg d¢}d}|d r|d |d ¡ }|d r|d |d ¡ }|d	 rAt |d	  d
¡d d¡}t |d	  d
¡d d¡}|d ||¡ }| |¡}|D ]}	g |	¢}	t	 
|	d ¡ d¡|	d< | tt||	ƒƒ¡ qH|S d S )NÚc1ÚPO©Z	po_numberÚvender_nameÚpo_dateÚ	po_statusú«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Úc2z! AND POL.PurchaseOrderListId = {}Zc3z AND VEN.VendorName = '{}'Zc4ú#r   z%d/%m/%Yé   z8 AND POL.CreatedDate >= '{}' and POL.CreatedDate <= '{}'é   ú
DD/MM/YYYYÚGRN©Zgrn_noÚpo_nor   Zgrn_dateÚ
invoice_nor   aB  select GRN.GrnId,POL.PurchaseOrderListId,VEN.VendorName,GRN.LastUpdate,GRNL.InvoiceNumber, POL.POStatus from PurchaseOrderList as POL JOIN Vaaak.Vendor as VEN on VEN.VendorId = POL.VendorId JOIN Vaaak.GrnList as GRN on GRN.PurchaseOrderListId = POL.PurchaseOrderListId JOIN Vaaak.GrnItem as GRNL on GRNL.GrnId = GRN.GrnId JOIN (select count(PurchaseOrderListId) AS cnt,PurchaseOrderListId from Vaaak.GrnList as GRN1 group by PurchaseOrderListId having count(PurchaseOrderListId) = 1 ) as tem on tem.PurchaseOrderListId = POL.PurchaseOrderListId where 1 = 1 and POL.POStatus = 0 z AND GRN.GrnId = {}z6 AND GRN.LastUpdate >= '{}' and GRN.LastUpdate <= '{}'é   ÚRN©Zrn_nor   r   Zrn_dater   r   aU  select  distinct GRL.GrnId,POL.PurchaseOrderListId,VEN.VendorName,GRL.LastUpdate, GRI.InvoiceNumber, POL.POStatus from Vaaak.GrnList as GRL JOIN PurchaseOrderList as POL ON POL.PurchaseOrderListId = GRL.PurchaseOrderListId JOIN Vaaak.GrnItem as GRI ON GRI.GrnId = GRL.GrnId JOIN Vaaak.Vendor as VEN On VEN.VendorId = POL.VendorId where 1 = 1z AND GRL.GrnId = {}z6 AND GRL.LastUpdate >= '{}' and GRL.LastUpdate <= '{}')r	   ÚappÚmssqlÚcursorÚformatÚdtÚstrptimeÚsplitÚexecuteÚarrowÚgetÚappendÚdictÚzip)
r   r   r#   Úfilter_itemsÚcolumnsÚ	statementÚ
start_dateÚend_dateÚrowsÚrow© r5   ú8D:\Vignesh\Freelance\Astroved\api_v1\routes\dashboard.pyÚdash_po   sx   €
ÿ



ÿ
är7   z	/dash_po1c                 Ã   sÆ  t |ƒ}| jj ¡ }g }|d dkr?g d¢}d}| |¡}|D ]}g |¢}t |d ¡ d¡|d< | t	t
||ƒƒ¡ q |S |d dkrg d¢}d	}| |¡}g }|D ]}g |¢}| |d
 ¡ qTg }	d dt|ƒ ¡}
d|
 }| ||¡}|D ]}g |¢}|	 t	t
||ƒƒ¡ qyt|	ƒ |	S |d dkrág d¢}d}| |¡}g }|D ]}g |¢}| |d
 ¡ q¥g }d dt|ƒ ¡}
d|
 }| ||¡}|D ]}g |¢}| t	t
||ƒƒ¡ qÊt|ƒ |S d S )Nr   r   r   r   r   r   r   r   zþ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) = 1r   ú,ú?ac  select 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)r   r    zþ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)r	   r!   r"   r#   r(   r)   r*   r$   r+   r,   r-   ÚjoinÚlenÚjson_serializer)r   r   r#   r.   r/   r0   r3   r4   Zpo_listZgrn_listZplaceholdersZrn_listr5   r5   r6   Údash_po1j   sh   €

ý
ýâr=   )r   r%   Úfastapir   r   r   r   Útypingr   r   Úfastapi.encodersr	   Úfastapi.responsesr
   Ú
lib.commonÚpydashÚrouterÚpostr7   r=   r5   r5   r5   r6   Ú<module>   s    ^ 