o
    }siX                     @   s&  d Z ddlZddlZeejjd Zh dZh dZdddd	Z	d
e
de
fddZdedejfddZde
fddZdede
fddZdede
fddZde
de
d
e
de
fddZde
de
d
e
de
fddZdede
fddZd'dede
de
fd d!Z			d(ded"e
de
d#ed$edefd%d&ZdS ))z1Customer email notification via make.com webhook.    Nemail_templates>   BAHRMERSXK>   ATCHDELIz?https://www.dhl.com/global-en/home/tracking.html?tracking-id={}zEhttps://www.dpdgroup.com/hr/mydpd/my-parcels/incoming?parcelNumber={}z=https://posiljka.posta.hr/hr/tracking/trackingdata?barcode={})DHLDPDPaket24countryreturnc                 C   s,   | pd   }|tv rdS |tv rdS dS )N r   r
   EN)stripupper_HR_COUNTRIES_DE_COUNTRIES)r   c r   </var/www/warehouse.soldered.com/app/services/notification.py_lang   s   r   orderc                 C   s^   |  dp|  dpd }d| v sd| v rtd S t|  d}td|  d	 S )
NcarrierdeliveryMethodr   pickuposobnozemail_template_pickup.htmlbuyerCountryemail_template_z.html)getr   lower_TEMPLATE_DIRr   )r   r   langr   r   r   _template_path   s
   r&   c                 C   s8   | |||pd d|pd   |g}ddd |D S )Nr    z<br/>c                 s   s    | ]}|r|V  qd S Nr   ).0pr   r   r   	<genexpr>%   s    z!_address_lines.<locals>.<genexpr>)r   join)namename1streetpostalcityr   partsr   r   r   _address_lines#   s   $r3   c              	   C   s6   t | d| d| d| d| d| dS )N	buyerName
buyerName1buyerStreetbuyerPostalCode	buyerCityr    )r3   r"   r   r   r   r   _billing_string(   s   r:   c              	   C   sL   |  ds
|  dr"t|  dd |  d|  d|  d|  dS t| S )NdeliveryStreetdeliveryCitydeliveryNamedeliveryPostalCodedeliveryCountry)r"   r3   r:   r9   r   r   r   _shipping_string1   s   
r@   r   trackingc                 C   sL   | r|   d nd}|tvrdS t|}ddd|d}d| d| d	S )
Nr   r   u   Broj za praćenjeSendungsnummer)r   r
   zTracking numberz
    <tr>
        <td>
            <div style="font-family:'Tektur',Helvetica,Arial,sans-serif;font-size:10px;font-weight:700;color:#5c2a85;text-transform:uppercase;letter-spacing:1.5px;margin-bottom:6px">zt</div>
            <div style="font-family:'Space Grotesk',Helvetica,Arial,sans-serif;font-size:14px;color:#333333">z</div>
        </td>
    </tr>)split_TRACKING_URLSr   r"   )r   rA   r   shortr%   labelr   r   r   _tracking_number_html<   s   rG   c                 C   sr   | r|   d nd}|rt|d|nd}|sdS t|}|dkr)d| dS |dkr3d| dS d	| d
S )Nr   r   r
   us   <br/><br/>Sie können Ihre Sendung <span style="color:#00c1de;font-weight:bold;text-decoration:underline"><a href="z">hier</a></span> verfolgen.r   uz   <br/><br/>Možete pratiti vašu narudžbu <span style="color:#00c1de;font-weight:bold;text-decoration:underline"><a href="z">ovdje</a></span>.zv<br/><br/>You can track your shipment <span style="color:#00c1de;font-weight:bold;text-decoration:underline"><a href="z">here</a></span>.)rC   rD   r"   formatr   )r   rA   r   rE   urlr%   r   r   r   _tracking_link_htmlK   s    rJ   c                 C   s^   |  dp|  dpd }d|v pd|v }|rdS t|  d}|dkr'd	S |d
kr-dS dS )Nr   r   r   r   r   u*   Vaša narudžba je spremna za preuzimanje!r    r
   z=Ihre Bestellung bei Soldered Electronics wurde abgeschlossen!r   u2   Vaša Soldered Electronics narudžba je dovršena!z3Your Soldered Electronics order has been completed!)r"   r#   r   )r   r   	is_pickupr%   r   r   r   _subject^   s   rL   tracking_numberc                 C   s   |  dp|  dpd}|  dpd}|  dp|  dpd}t| jdd}|d	t|  d
d}|d|}|d|}|dt| }|dt| }|rg|dt|||}|dt|||}|S |dd}|dd}|S )z4Return the filled-in HTML email body for this order.r   r   r   r    r5   r4   zutf-8)encodingz{{2.OrderNumber}}numberz{{2.CustomerName}}z{{2.ShippingService}}z{{2.BillingString}}z{{2.AddressString}}z"<!-- Tracking_number_component -->z <!-- Tracking_link_component -->)	r"   r&   	read_textreplacestrr:   r@   rG   rJ   )r   rM   r   r   customer_nametemplater   r   r   build_email_htmlk   s,   

rU   webhook_urlinvoice_pdfdelivery_note_pdfc              
   C   s:  |sdddS |  dd }|sdddS |  dp!|  dp!d	 p%d	}t| |}t| }|||||||d
}	z*i }
|rEd|df|
d< |rNd|df|
d< |
rZtj||	|
dd}ntj||	dd}W n ty| } zdt|dW  Y d}~S d}~ww |jdkrd|j	dd dS dd|j d|j	dd  dS )zsSend the customer notification via make.com webhook.

    Returns {'ok': True} or {'ok': False, 'error': str}.
    Fz'MAKE_ORDER_NOTIFY_URL is not configured)okerror
buyerEMailr   z Order has no buyer email addressr5   r4   Customer)	html_datatitleemailNameContentEmailSubjectzinvoice.pdfzapplication/pdfinvoicezdelivery_note.pdfdelivery_note   )datafilestimeout)rg   ri   N   Ti  )rY   responsezmake.com returned z: )
r"   r   rU   rL   requestspost	ExceptionrR   status_codetext)r   rV   rM   rW   rX   r_   rS   htmlsubjectrg   rh   resper   r   r   notify_customer   sB   

 


"ru   r(   )NNN)__doc__pathlibrl   Path__file__parentr$   r   r   rD   rR   r   dictr&   r3   r:   r@   rG   rJ   rL   rU   bytesru   r   r   r   r   <module>   s>    		