o
    g                     @   s   d dl mZ d dlZd dlZd dlmZ d dlZd dlZej	ej
eje d dlZe Zdd ZdZdZdZd	Ze Zed
d ZdS )    )JsonResponseN)csrf_exemptc                 C   sP   d| d}d| ||d}t j||d}|jdkr | dS td|j )	Nz"https://login.microsoftonline.com/z/oauth2/tokenclient_credentials)
grant_type	client_idclient_secretresource)data   access_tokenzFailed to retrieve token: )requestspoststatus_codejsonget	Exceptiontext)r   r   	tenant_idr   	token_urlpayloadresponse r   1/var/www/html/BC_companycode/salesinv_bc/views.py	get_token   s   
r   z$6a77dbc5-5110-4b3f-85cf-692520941150z mzyHgqNa=I[:D3Ygq_OtuVhRKlcvb776z$95f69e7d-1811-4ab9-9b5a-eba95d3eba9bz)https://api.businesscentral.dynamics.com/c              
   C   sv  zi }| j dkrt| j}td| |d}|d}|d}|d}d}td| tttt	t
}td	 d
d| dddd}	td| d| d| d }
g }|
rqtj|
|	d}| }||d  |d}
|
sXtt| td tdt|  |D ]W}|d|krtd |d}|d}td| td|  |r|d urtd|  t d| d | d!}d"||d#}||	d$< tj||	t|d%}td&|  q|r|jd'krtd( td)d*iW S td+ td,|j  td)|jiW S td- td)d-iW S | j d.krtd)d/iW S W d S  ty: } ztd+t|iW  Y d }~S d }~ww )0NPOSTr	   Document_No
Unit_priceQuantity
Product_IdACADbc_invoice_idztoken authenticatedzapplication/jsonzBearer zodata.maxpagesize=5000z4.0)zContent-TypeAuthorizationPreferzOData-MaxVersionzOData-Versionzz/v2.0/95f69e7d-1811-4ab9-9b5a-eba95d3eba9b/Production/ODataV4/Company('PROD-NAIER')/SalesInvLines?$filter=Document_No eq 'z' and No eq 'z' and Description eq '')headersvaluez@odata.nextLinkzdata retrivedzlen of record %sNozrecored havez@odata.etagLine_Noline_nozbc_invoice_id  %szline_no record  %sz/v2.0/95f69e7d-1811-4ab9-9b5a-eba95d3eba9b/Production/ODataV4/Company('PROD-NAIER')/SalesInvLines(Document_Type='Invoice',Document_No='z
',Line_No=)13)Shortcut_Dimension_1_Code
Unit_Pricer   zIf-Match)r$   r	   zupdated record now  %sr
   zRecord updated successfully.r   zupdated successfullyerrorzerror record  %szNo record foundGETzNothing to be processed)methodr   loadsbodyprintr   r   r   r   r   r   loggerinfobase_urlr   extendlenpatchdumpsr   r   r   r   str)request	response1r	   r    unit_prquantity
product_iddescriptokenr$   third_api_urlthi_recordsr   recordetagr(   urler   r   r   update_companycode$   s   












rH   )django.httpr   r   r   django.views.decorators.csrfr   sysospathappendjoindirname__file__LogUtilsgetRootLoggerr3   r   r   r   r   r5   r   rH   r   r   r   r   <module>   s     