
    Td"                        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            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          |          }| j        j                                        }t	          j                                        d          j        }|                    d          D ]M}g |}t          |d                   dk    rt          |d                   }5t          |d                   dz   }N|                    d|d         |           | j        j        
                                 |d         D ].}|                    d	||d
         |d         |d         |           /| j        j        
                                 |d         D ]%}|                    d|d         |d
                    &| j        j        
                                 |                    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    r0|                    d|d                    |
                                 |d                                         |dS )NzAsia/Calcutta)tzinfozZselect count(*) as cnt,(select IDENT_CURRENT('Vaaak.GrnList')) as idnt  from Vaaak.GrnListr      z'insert into Vaaak.GrnList values (?, ?)po_no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>E   s    STU^S_     c                 .    t          j        | d           S )Nc                     | d         S )Nr   r   )ys    r   r    z-create_rn.<locals>.<lambda>.<locals>.<lambda>F   s
    1U8 r!   )pydashsum_byr   s    r   r    zcreate_rn.<locals>.<lambda>F   s    a1C1C D D 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'   id)r	   appmssqlcursorarrownowreplacedatetimeexecuteintcommitappendr%   
map_valuescollectionsgroup_byr   rowcountupper)r   r   r+   Last_updateitr	row_countrowspo_itemsrow	grn_itemskvs               r   	create_rnrB      s     !*--J[%%''F)++%%_%==FK ~~z{{ ( (fs1v;;!CFIICFaII
NN<g&  
 K '"  I 23>*<("	 	 	 	 K '" T T  a  be  ft  bu  wz  {R  wS  	T  	T  	T  	TK >>Y[efm[nooDH " "q6Q>>  G  IS  T[  I\  ]  ]DI  q61v
 
 	 	 	 	
 !&"4"="=iI_I_"`"`DDF FI    ^ ^!A;!NN  E  GH  JT  U\  J]  ^  ^  ^
MMOOO >>oq{  }D  rE  F  FD}`blmtbuvvv 6"((**  r!   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)	r8   r)   r*   r+   r0   r7   r3   dictzip)	r   r'   r   r+   r<   r=   received_itemsr>   columnss	            r   grn_detailsrc   [   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!   )r,   fastapir   r   r   r   typingr   r   fastapi.encodersr	   fastapi.responsesr
   
lib.commonr%   routerpostrB   getrc   r   r!   r   <module>rl      s'    4 4 4 4 4 4 4 4 4 4 4 4         - - - - - - * * * * * *     	 \9=c K KW K$ K K K K\ %&&K*w K* K* K* '&K* K* K*r!   