o
    kl7d                     @   s   d dl 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d	efddZedd	efddZdS )    N)	APIRouterRequestBodystatus)DictList)jsonable_encoder)JSONResponse)*z
/create_po.request
po_detailsc                    sP  t |}| jj }|dD ]}t|d dkr!t|d }qt|d d }qdt dt d||d< t|d d	j	|d< t
 jd
dj	|d< |d|d |d |d d |d |d d|d 	 | jj  |d D ]!}|d||d |d |d |d |d |d |d d|d  qv| jj  |  td|iS )Nz1SELECT IDENT_CURRENT('PurchaseOrderList') as cnt;r      zAVPL/PSD/{}/{}/{}ZYYYYZMMZ	po_ref_noZpo_datez
DD/MM/YYYYzAsia/Calcutta)tzinfoZLast_updatez=insert into PurchaseOrderList values (?, ?, ?, ?, ?, ?, ?, ?)Z	vendor_idZpurchase_eventZprepared_byproduct_detailszCinsert into PurchaseOrderItem values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?)Z
product_idZhsn_codeZqtyZuomZ
base_priceZcgstZsgstpo_no)r   appmssqlcursorexecuteintformatarrowgetdatetimenowreplacecommitcloser	   )r   r   r   itrZ	row_countZprd r   =D:\Vignesh\Freelance\Astroved\api_v1\routes\purchase_order.py	create_po   sN   &r!   z/get_po/{details}/{po_id}c           
         s   | j j }i }|d|}|jdkr}|D ]d}|rxt|D ]\}}|||j| d < qt| g |d< |dkrr|d|}|jdkro|D ]}|rdi }	t|D ]\}}||	|j| d < qO|d |	 qEt| t	|  S  dS t	|  S  dS d S dS )Nz=select * from PurchaseOrderList where PurchaseOrderListId = ?r   r   1z=select * from PurchaseOrderItem where PurchaseOrderListId = ?zRequested PO not found)
r   r   r   r   rowcount	enumeratecursor_descriptionZjson_serializerappendr	   )
r   detailsZpo_idr   r   rowsrowr   Zitr_itmproductr   r   r    get_poC   s8   

"r+   z/get_valid_poc                    s4   | j j }g }|dD ]	}||d  q|S )NzDselect PurchaseOrderListId from PurchaseOrderList where POStatus = 1r   )r   r   r   r   r&   )r   r   r   r   r   r   r    get_valid_pon   s   r,   )r   fastapir   r   r   r   typingr   r   fastapi.encodersr   fastapi.responsesr	   Z
lib.commonjsonrouterpostr!   r   r+   r,   r   r   r   r    <module>   s    6*