o
    µQ?h»!  ã                   @   sÀ   d dl mZ d dlmZ d dlmZmZ d dlmZm	Z	m
Z
mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZ d d
lmZ dd„ Zdd„ Zdd„ Zdd„ Z	ddd„Zdd„ ZdS )é    )Údb)ÚclearBin)ÚgetOrderÚorderMarkShipped)ÚConvertÚEasyPostÚMachshipÚShipstation)ÚsubmitShopifyShipment)ÚsubmitWooShipment©ÚsubmitShipment)ÚOrder)ÚShipment)ÚShopc              
   C   sº  |   d¡}|  d¡|  d¡}}|   d¡}|   d¡}|   d¡}t |¡}t|ƒ}|   dd¡}	i }
|  d	¡d
krAtj||||	d}
nW|  d	¡dkr˜|   d¡}t |¡}|slt|   dd¡|   dd¡|   dd¡|   dd¡d}|   dd¡|d< t |¡}|  d¡r‰|dkr‰|  d¡|d< tj|||||||   d¡d}
|  d	¡dkr­t	j||||||   d¡d}
t
 |¡}t |
¡}
| |
¡ t||ƒ t|j|j|j|
j|
j|
j|
j| ¡ d t|
 ¡ d S )!NÚcurrentUserÚenterpriseIdÚuidÚrateÚorderIdÚfromAddressIdÚ	insuranceFÚ
platformIdÚEASYPOST)r   Úorderr   r   ÚSHIPSTATIONÚparcelIdÚheighté   Úweighté   Úlengthé   Úwidthé   ©r   r   r!   r#   ÚshopNameÚ60D7GFDlMFFd6IsK1e58ÚnameÚpackageCode)r   r   r   ÚfromAddressr   Úparcelr)   ÚMACHSHIPr+   )r   r   r   r*   r   r+   )ÚserviceNameÚtrackingUrlr   )Úshipment)Úgetr   Ú
getAddressr   r   ÚcreateShipmentÚ	getParcelÚdictr	   r   r   Ú	from_dictr   ÚmarkAsShippedr   ÚsubmitShipmentToPlatformr   ÚshopIdÚplatformOrderIdÚtrackingCodeÚcarrierNameÚcarrierServicer.   Úto_dict)ÚparamsÚuserr   r   r   r   r   r*   r   r   r/   r   r+   © r@   úM/var/www/html/riverr-enterprise-integrations-main/functions/Shipments/Main.pyr2      sx   




ÿ





ü
ù	ú



ø
r2   c                    s„   |   d¡}|  d¡}t |¡}| t |¡¡ | t |¡¡ |dkr=t|   d¡ƒ}|  di ¡  di ¡‰ ‡ fdd„|D ƒ}t|d	S )
Nr   r   r'   r   ÚmetadataÚshippingc                    s$   g | ]}|  d ¡ˆ   d¡kr|‘qS )ÚdescriptionÚcarrier©r0   )Ú.0rE   ©rC   r@   rA   Ú
<listcomp>U   s
    þzgetCarriers.<locals>.<listcomp>)Úcarriers)r0   r   ÚgetCarriersÚextendr	   r   r   r4   )r>   r?   r   rJ   r   r@   rH   rA   rK   L   s   



þ
rK   c              
      s2  |   d¡}|  d¡}|   d¡}|   d¡‰ |   dd¡}|   d¡}|   d¡}|   d	¡}t |¡}|sv|  d
¡}	t d¡ |	¡  ¡ }|  d¡}t d¡ |¡  ¡ }
|
  d
¡}t d¡ d
d|¡ ddd¡}| d¡  ¡ }|rv|d  ¡ }|  d¡}|st	|   dd¡|   dd¡|   dd¡|   dd¡d}|dkrœt
|   dd¡ƒn|   dd¡|d< t|ƒ}t |¡}|  d¡r½|dkr½|  d¡|d < g }|dkrÍt ||||ˆ ¡}n#|d!krß| t ||||ˆ |¡¡ n|d"krð| t ||||ˆ |¡¡ |dkr|  d#i ¡  d$i ¡}|  d%¡|  d&¡‰ ‰‡ ‡fd'd(„|D ƒ}t	|d)S )*Nr   r   r   Ú	carrierIdr   r   r   r)   r   r   ÚusersÚenterprisesÚ	addressesz==ÚdefaultTé   r   Úidr   r   r   r    r!   r"   r#   r$   r%   Ú3vRxw0HKksLTyVzsN83dr&   r'   r(   r   r,   rB   rC   rE   Úpriorityc                    s,   g | ]}|  d ¡ˆ kr|  d¡ˆkr|‘qS )r;   Ú	serviceIdrF   )rG   r   ©rM   rV   r@   rA   rI   š   s    ýzgetRates.<locals>.<listcomp>)Úrates)r0   r   r3   r   Ú
collectionÚdocumentÚwhereÚlimitr=   r4   Ú
grams2Ouncr   r1   r   ÚgetRatesrL   r	   r   )r>   r?   r   r   r   r   r)   r   r+   ÚuserIdÚ
enterpriseÚadminUserIdÚqueryÚaddressÚfirst_addressr   r*   rX   rC   r@   rW   rA   r^   ]   sx   












ý




üÿ
ý
ÿÿÿÿ
þ
r^   c                 C   s   t t| ƒd dƒS )Ngš™™™™Y<@r   )ÚroundÚfloat)Úgramsr@   r@   rA   r]   £   s   r]   Nc              	   K   s4  | dkrd S t  |d¡}| d¡}| dkrt||||ƒ d S | dkr+t||||ƒ d S | dkr8t||||ƒ d S | dkrKdd	lm}	 |	||||ƒ d S | d
krddd	lm}
 |
|f||||dœ|¤Ž d S | dkr€dd	lm} |||||| di ¡ d¡d d S | dkr”dd	l	m} |||||d d S t
dƒ d S )NÚ0Tr   Ú1Ú2Ú3Ú5r   r   Ú10)r9   r;   r:   r<   Ú4rB   Úversion)r9   r;   r:   ro   Ú12)r9   r;   r:   zPlatform not found.)r   r0   ÚsubmitEtsyShipmentr
   r   Úfunctions.Shipstation.Ordersr   ÚV2.functions.Squarespace.OrdersÚfunctions.Square.OrdersÚV2.functions.Orderdesk.OrdersÚprint)r   r8   r9   r:   r;   r<   ÚkwargsÚshopr   ÚsubmitShipstationShipmentÚsubmitSquarespaceShipmentÚsubmitSquareShipmentÚsubmitOrderdeskShipmentr@   r@   rA   r7   §   sV   	
ÿû
ú
û
ür7   c                 C   sP   |   d¡}|   d¡}|   d¡}t  |¡}t|j|j|j||| ¡ d t|dS )Nr   r:   r;   )r   )r0   r   r7   r   r8   r9   r=   r4   )r>   r   r:   r;   r   r@   r@   rA   ÚsubmitOrderShipmentå   s   



ú
r}   )N)Úconfigs.firebaser   Úfunctions.Binsr   Úfunctions.Ordersr   r   Úfunctions.Shipmentsr   r   r   r	   Úfunctions.Shopify.Fulfillmentr
   Úfunctions.WooCommerce.Ordersr   ÚV2.functions.Etsy.Ordersr   rq   ÚV2.functions.Orders.mainr   ÚV2.functions.Shipments.mainr   ÚV2.functions.Shops.mainr   r2   rK   r^   r]   r7   r}   r@   r@   r@   rA   Ú<module>   s"    ?F

ú>