
    N?e$                        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d dlZ e            Ze                    d           ed          fd	ed
efd            Ze                    d          d	efd            ZdS )    N)	APIRouterRequestBodystatus)DictList)jsonable_encoder)JSONResponse)*z
/create_rn.request
rn_detailsc           	        K   t          |          }t          dd          }|                    t          j        |                     |                                 | j        j                                        }t          j
                                        d          j        }|                    d          D ]M}g |}t          |d                   dk    rt          |d                   }5t          |d                   dz   }N|d         pd|d<   	 |                    d	|d
         ||d         |d                    |d         D ].}|                    d||d         |d         |d         |           /|d         D ]%}|                    d|d         |d                    &|                    d|d
                   }i }|D ]}	|	d         ||	d         <   |                    d|d
                   }g }
|D ]&}	|
                    |	d         |	d         d           't!          j        t           j                            |
d           d           }
|
                                D ].\  }}||         |k    r|                    d||d
                    /|                    d|d
                   }|j        dk    r|                    d|d
                    |                                 |d                                         |dS # t0          $ r)}| j        j                                         Y d }~dS d }~ww xY w) N	rn_samplewzAsia/Calcutta)tzinfozZselect count(*) as cnt,(select IDENT_CURRENT('Vaaak.GrnList')) as idnt  from Vaaak.GrnListr      freight_chargez-insert into Vaaak.GrnList values (?, ?, ?, ?)po_noprepared_byitemsz0insert into Vaaak.GrnItem values (?, ?, ?, ?, ?)purchase_order_itemidreceived_qty
invoice_nozupdate inventory set Quantity = Quantity + ?  where ProductId = (select ProductId from PurchaseOrderItem where PurchaseOrderItemId = ?)z=select * from PurchaseOrderItem where PurchaseOrderListId = ?   zjselect * from Vaaak.GrnItem where GrnId in (select GrnId from Vaaak.GrnList where PurchaseOrderListId = ?)      )item_idqtyc                     | d         S )Nr    xs    D:\Sites\api_v1\routes\grn.py<lambda>zcreate_rn.<locals>.<lambda>R   s    WXYbWc     c                 .    t          j        | d           S )Nc                     | d         S )Nr   r    )ys    r#   r$   z-create_rn.<locals>.<lambda>.<locals>.<lambda>S   s
    1U8 r%   )pydashsum_byr!   s    r#   r$   zcreate_rn.<locals>.<lambda>S   s    aASAS0T0T r%   zgupdate PurchaseOrderItem set POItemStatus = 0 where PurchaseOrderItemId = ? and PurchaseOrderListId = ?zSselect * from PurchaseOrderItem where PurchaseOrderListId = ? and POItemStatus = 1;zGupdate PurchaseOrderList set POStatus = 0 where PurchaseOrderListId = ?type)r+   idzError. GRN/Rn not created!)r	   openwritejsondumpscloseappmssqlcursorarrownowreplacedatetimeexecuteintappendr)   
map_valuescollectionsgroup_byr   rowcountcommitupper	Exceptionrollback)r   r   fr4   Last_updateitr	row_countrowspo_itemsrow	grn_itemskves                 r#   	create_rnrO      s     !*--J[#AGGDJz""###GGIII[%%''F)++%%_%==FK ~~z{{ ( (fs1v;;!CFIICFaII#-.>#?#D1J K,F!'*"!"23!-0		 	 	 g& 	 	CNNM$67~.|,&    g& 	C 	CCNN ZN#S)@%AC C C C ~~]_ijq_rss 	& 	&C"1vHSV~~xw! ! 	 	 	Cq61v     
 %f&8&A&A)McMc&d&d&T&TV V	 OO%% 	, 	,DAq{a}z'*, , , ~~s(13 3 =ANNd%g.0 0 0 v&,,..
 
 	

  , , ,""$$$++++++,s   G6L 
ML==Mz/grn_details/type/po_noc           	      $  K   |                                 dk    r4| j        j                                        }|                    d|          }|j        dk    rg }i }|                    d|          }|j        dk    r|D ]}|d         ||d         <   |                    d|          }g d}|D ]}g |}|d         |v rW|d         ||d                  z
  |d<   |d         dk    r0|                    t          t          ||                               g|                    t          t          ||                               |S d	S d
S |                                 dk    r'| j        j                                        }|                    d|          }|j        dk    rg }i }|                    d|          }|D ]}|d         ||d         <   |                    d|          }g d}|D ]}g |}|d         |v rW|d         ||d                  z
  |d<   |d         dk    r0|                    t          t          ||                               g|                    t          t          ||                               |S dS d S )NGRNzPselect * from PurchaseOrderList where PurchaseOrderListId = ? and POStatus != -1r   zselect GRI.PurchaseOrderItemId, sum(GRI.ReceivedQty) as Received from Vaaak.GrnItem AS GRI where GrnId in (select GRL.GrnId from Vaaak.GrnList AS GRL where GRL.PurchaseOrderListId = ?) group by PurchaseOrderItemIdr   a   select  distinct POL.PurchaseOrderListId , POI.PurchaseOrderItemId , POI.ProductID , PAT.Name AS ProductName,POI.PdtNickName, POI.HSN_Code ,POI.Quantity, POI.UOM, POI.BasePrice, SP.Name AS UOM_Name, POI.CGST, POI.SGST, V.VendorId, V.VendorName, V.VendorAddress1,V.VendorAddress2,V.City,V.State,V.Country, V.CountryCode, V.MobileNo , V.landlineNo, V.GSTIN, V.Remarks from PurchaseOrderItem as POI JOIN  PurchaseOrderList AS POL(NOLOCK) ON POI.PurchaseOrderListId = POL.PurchaseOrderListId JOIN Product AS PP (NOLOCK) ON PP.ProductId = POI.ProductId  LEFT JOIN Vaaak.Vendor AS V (NOLOCK) ON POL.VendorId = V.VendorId  LEFT JOIN Specification AS SP (NOLOCK) ON POI.UOM = SP.SpecificationId  JOIN ProductTranslation AS PT  (NOLOCK)  ON PT.ProductId = POI.ProductId AND PT.LocaleId = 1 JOIN Vaaak.ProductAdditionalTranslation AS PAT  (NOLOCK)  ON PT.ProductAdditionalTransId = PAT.ProductAdditionalTransId  LEFT JOIN vaaak.GrnItem AS GI (NOLOCK)  ON POI.PurchaseOrderItemId=GI.PurchaseOrderItemId  where POI.PurchaseOrderListId = ?)PurchaseOrderListIdPurchaseOrderItemId	ProductIDProductName	nick_nameHSN_CodeQuantityUOM	BasePriceUOM_NameCGSTSGSTVendorId
VendorNameVendorAddress1VendorAddress2CityStateCountryCountrycodemobilelandlinegstremarks   zRN already existszPO already Cancelled!RNa   select distinct POL.PurchaseOrderListId , POI.PurchaseOrderItemId , POI.ProductID , PAT.Name AS ProductName,POI.PdtNickName, POI.HSN_Code ,POI.Quantity, POI.UOM, POI.BasePrice, SP.Name AS UOM_Name, POI.CGST, POI.SGST, V.VendorId, V.VendorName, V.VendorAddress1,V.VendorAddress2,V.City,V.State,V.Country, V.CountryCode, V.MobileNo , V.landlineNo, V.GSTIN, V.Remarks from PurchaseOrderItem as POI JOIN  PurchaseOrderList AS POL(NOLOCK) ON POI.PurchaseOrderListId = POL.PurchaseOrderListId JOIN Product AS PP (NOLOCK) ON PP.ProductId = POI.ProductId  LEFT JOIN Vaaak.Vendor AS V (NOLOCK) ON POL.VendorId = V.VendorId  LEFT JOIN Specification AS SP (NOLOCK) ON POI.UOM = SP.SpecificationId  JOIN ProductTranslation AS PT  (NOLOCK)  ON PT.ProductId = POI.ProductId AND PT.LocaleId = 1 JOIN Vaaak.ProductAdditionalTranslation AS PAT  (NOLOCK)  ON PT.ProductAdditionalTransId = PAT.ProductAdditionalTransId  LEFT JOIN vaaak.GrnItem AS GI (NOLOCK)  ON POI.PurchaseOrderItemId=GI.PurchaseOrderItemId  where POI.PurchaseOrderListId = ?zPO already cancelled)	rA   r2   r3   r4   r9   r?   r;   dictzip)	r   r+   r   r4   rH   rI   received_itemsrJ   columnss	            r#   grn_detailsrp   o   s     zz||u"))++~~pqvww=AHN>> #ABGI ID }!! 4 4C-0VN3q6**~~ 'Q RWX XT T T   @ @C C&C1v//!$Q.Q*@!@Aq6Q;;$OODWS1A1A,B,BCCC S-=-=(>(>???? +***zz||t"))++~~prwxx=AHN>> #ABGI ID  0 0),Qs1v&&>>{ D| | |G
  = =fq6^++ VnSV&<<CF1v{{ S#->->(?(?@@@OODWc):):$;$;<<<<O))G r%   )r5   fastapir   r   r   r   typingr   r   fastapi.encodersr	   fastapi.responsesr
   
lib.commonr)   r/   routerpostrO   getrp   r    r%   r#   <module>ry      s0    4 4 4 4 4 4 4 4 4 4 4 4         - - - - - - * * * * * *      	 \9=c _, _,W _,$ _, _, _, _,B %&&K*w K* K* K* '&K* K* K*r%   