U
    {_	/                     @   s   d dl Z d dlmZ d dlZd dlZd dlZd dlZd dlZd dlZd dl	m
Z
mZmZ d dlmZ d dlmZ dZeeeddZddd	e d
Zdd Zdd ZdS )    N)datetime)SmsOperationCustomerSmsCustomer)utils)customerzcrmims:Rennaissance237zutf-8zapplication/json; charset=utf-8zBasic )zContent-TypeAcceptAuthorizationc              
   C   sp  z,t  }g }g }g }| D ]}t|jjrd}t|j}t|}|jj	|kr~d|_
d|_tjj |_|  d}n|jj	|kr||jj	 }	|	d |	d | d}
|
||jj	< |
d |
d kr||jj	 n"|
d |
d k r||jj	 d}nlt|j}|dks||k rR||jj	 d|_
d|_tjj |_|  d}n||d}	|	||jj	< |rd	tt  }|jjj|jj }||jj||d
g|jddd ||_|  t|dkr|| g }tdd|d|jd| ntd|j|j	 qd|_
tjj |_d|_|  tdd| qd}|D ]}zLt j!j"|d}|| }	t#d|	d dtjj |d}|  ||	d  }W n> t j$k
r   tdt%& d d td t'(d Y nX qDt|dkrt|dk r|| d}|D ]
}dtt  }||d}	t)*|	}d}t+j,||t-d }t.|j/d!krt)0|j1}td"| d#|kr|d# }td$| |D ]Z}td%| |t.|d&  }|d' }|d( d)krBzVtd* t2j!j"|d+ d,}d-|_
tjj |_t.|d& |_3||_4|  td. W n( t2j$k
r>   td)|d+ d/ Y nX nzxtd0 t2j!j"|d+ d,}d|_
tjj |_|d( d1 |d2  d1 |d3  |_t.|d& |_3||_4|  td4 W n( t2j$k
r   td5|d+ d/ Y nX qntd6 t'5d6 ntd7 t'5d7 q||kr,td8|d9| W n< t6k
rj   tdt%& d d td t'(d Y nX d S ):NTEzNOT ENOUGH CREDITFbalancecount)r   r   r   zMSG-ID-)to	messageIdZCENTRAL_EUROPEAN)fromdestinationstextZflashZtransliterationi  zCorrect phone Numberz	SMS Savedz
SMS ILT IDzmessage_id = z+{} --> {} : SMS Not Sent, NOT ENOUGH CREDITZLOCAL_INCORRECT_PHONE_NUMBERzBAD phone Number)idzBulk SMS Send InfoBipD)operationcustomer_nameoperationcustomer_debitoperationcustomer_typeoperationcustomer_dater   Oops!zoccured.Next entry.Got exception on main handlerzBULK-ID-)messagesZbulkIdz+https://api.infobip.com/sms/1/text/advanced)dataheaders   zSEND --> infobip_response = r   zmessages = zresp_msg = ZsmsCountstatus	groupNamePENDINGpendingr   )
ilt_sms_idSzsave pendingzDoest not existserror|descriptionnamez
save errorERRORBAD Response FORMATz
HTTP Errorz LOCAL TOTAL NUMBER oF MESSAGE = zINFOBIP TOTAL = )7dictSMSUtilsis_correct_numbercontactcontact_phonenumer
format_smssms_contentnb_smsr   r   
sms_statussms_errormessagedjangor   timezonenowsms_statusdatesaveappend	CustomerTget_customer_balancestruuiduuid4countrycountry_phonecodebulkbulk_senderidr#   lenprintformatr   objectsgetr   DoesNotExistsysexc_infologgingdebugjsondumpsrequestspostrequest_headersintstatus_codeloadscontentr   sms_smscount
iltbulk_idinfo	Exception)list_smsZstats_transmissionsZjson_smsZ	bulk_listZblack_list_customersmsZmust_be_sentZformat_sms_countentZ	sms_countr   Znew_dataZcustomer_balance
message_idtelZ	total_smseltr   Zoperation_customerZinfobip_total_smsrB   Zilt_bulk_idZ	json_dataurlrespinfobip_responser   Zresp_msgr    rc   6/var/www/html/iltdigicom/bulksms/tools/smst/infobip.pysend   s   



	










"
re   c           	      C   s  zj| D ]^}d|j  }tj|td}td|j  td|j t|jdkrt	|j
}td| d|krV|d }td| t|d	kr@|d
 d }td| |d dkrd}|d }nV|d dkrd}|d d |d  d |d  }n$d}|d d |d  d |d  }td|d| ||_||_t |_|  ntd| td qtd td qW n< tk
r   tdt d
 d td td Y nX d S )Nz-https://api.infobip.com/sms/1/logs?messageId=)r   zsms.messageId = zsms.content = r   zSTATUS --> infobipResponse = resultsz
results =    r   r   z	statut = r    Z	DELIVEREDRr!   r$   r&   r'   r(   r
   zmsg_statut = zdescription_statut = z'NO Response or Bad response, Results = zNO Response or Bad responser*   r   z	 occured.r   r   )r#   rP   rH   rR   rE   r1   rS   rT   rN   rU   rV   rD   r3   r4   r   r7   r8   r9   rL   rY   rZ   rJ   rK   rM   )	r[   r\   r`   ra   rb   rf   r   Z
msg_statutZdescription_statutrc   rc   rd   updatestatus   sH    






" 


ri   )rJ   r   rL   base64r>   rN   Zdjango.utils.timezoner5   rP   bulksms.modelsr   r   r   bulksms.tools.smstr   r,   bulksms.toolsr   r;   ZINFOBIB_CONNECTION_STRINGr=   	b64encodeencodeZ
CREDENTIALrR   re   ri   rc   rc   rc   rd   <module>   s&    2