o
    Q?h.                     @   s   d dl Z d dlmZ d dlmZmZ d dlmZmZmZ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mZ d	efd
dZdddZdddZdS )    N)datetime)SERVER_TIMESTAMPdb)convertImagesconvertOrderconvertOrderItemconvertShippingAddress	saveOrder)convertImageconvertPropertyconvertVariantgetProductBySku)convertVariantMapping)	API_Error)getBlankProductgetBlankVariantdatac           :         sL  |  d}| d| d}}|  d}|  d |  d}g }i }|D ]G}z=t|t  d |   d}	  d	}
|	rT| g |t|	 g |< n| g |t|
 g |< W q%   td
di }g }|D ]^}  d}	  d	}
t|t|
r|
n|	 }  d}|s|
rtdd|dv rtdd||vs|| vrz	t||||< W qs ty } zt| || W Y d }~qsd }~ww qst|dkrtt| ddt	|ddg }g }g }ttt
  }t|D ]g }|vr fdd|D }zgt|d t  d }t|d t  d }t|d t  d }  drJt|d t  d nd }t|d t  d }t|d t  d }t|d t  d }d}W n ty } ztd| dd }~ww d }d }d } d }!z6t|d t  d  }t|d t  d! }t|d t  d" } t|d t  d# }!W n   Y d}"|D ]}#  d}$g }%  d$}&d }'|&D ]}(t	|#t|( d%}'q|$r,|$D ]4}(t|#t|( d& })| t|#t|( d' }*|)r*|*r*tj|)}+|%t|||)|*|+d( q  d}	  d	}
t|#t|
r>|
n|	 },||, \}-}.}/}0|/ d)drX|/ d)dnd}1t	|0}2|%re|%|2d< t|#t  d* }3|1|3 }4tdBi d|d|d+d,|- d-d.td/td0d1d2|/d*|3d)|4d3|/ d-d4|d1 d5|-d6|.d7|2d8tt|" d&|'}5||5 |"d97 }"qt|d1d1| |t| d:| ||||||d;tttd<d |D t	d=|g||| |!d>d?
}6| ||6|f qd9}7|D ]\}}8t||8}9td@|7| d+ |t	|9| d+dA q|S )CNcurrentUseruidenterpriseIdcsvDatamappedValuesplacementMappingorderIdsku	productIdz"Missing Order ID or SKU parameter.  imagesz"Image placement option is invalid.i  )r   SKUzC'sku' is not valid SKU, Make sure to check 'Skip First Line' above.r   z SKUs not found.)skuNotFound)metac                    s*   g | ]}t |t d  kr|qS )r   )strintget).0or   r    U/var/www/html/riverr-enterprise-integrations-main/functions/ManualOrders/CsvOrders.py
<listcomp>=   s   * zcsvOrders.<locals>.<listcomp>	firstNamelastNameaddress1address2citystatezipzUnited StateszMissing Order Details: shippingLabelcarrierNamecarrierServicetrackingCodeproductImages)urlimage	placement)r   r   r6   r8   namepricequantityplatformOrderIdplatformProductIdid	createdAt	updatedAt
platformId0variant	variantIdshopIdproductproductMappingvariantMappingplatformOrderItemId    )r9   r,   r-   r.   r/   r0   countryc                 S   s   g | ]}| d dqS )r:   r   )r#   )r$   ir'   r'   r(   r)      s    CSV)tagsr1   r2   r3   r4   )
r   rA   rE   r   shippingAddressr?   r@   
grandTotalr<   metadatazSAVED ORDER)r>   r<   r'   )r#   r!   r"   appendr   keysfindBlankVariantByGtinprintlendictr   now	timestampset	Exceptionospathbasenamer   r   r   r   r   sumr	   ):r   r   r   r   	csvOrdersr   orderIdsSKUsorderskuFieldproductIdFieldfound_listing_idsr   orderSKUprintImagesFieldedoneOrderIds	newOrdersnewOrderIds
csvBatchIdthisOrderConvertedItemsthisOrderItemsr*   r+   r,   r-   r.   r/   r0   rL   r1   r2   r3   r4   
itemsCountitemprintImageFieldsprintImagesmockImageFieldsproductImagefieldimageUrlr8   	imageNamer   rF   rG   rC   rH   r:   poDatar;   thisItemTotalthisOrderItem	thisOrdercitemsr>   r'   r&   r(   ra      sX  






$


*
*  




	


	

ra   Fc           
      C   s   |r7| d\}}t|}t||}|i t||td|ddtd|ddgdt|||d||d	fS t| |\}}}	||d
||	fS )N-Colorcolorr9   valueSizesizer>   r   
propertiesgtin)blankProductIdblankVariantIdr   r>   r   rG   )splitr   r   r   r   r#   r   r   )
r   r   	NoListingr   r   blankProductblankVariantrF   rC   rH   r'   r'   r(   findProduct   s$   

	r   SSc                 C   sT  t d|  }|jr| }|d}||}|sP|dg }|D ]*}t d|  d|  }	|	jrK| D ]\}
}|d|krJ|} nq;|rO nq%|sZtd| d|d|d	}}t d
|   }t d
| d|   }|i t||td|ddtd|ddgdt	|||||g dfS t
d| d S )Nzgtins/	suppliersrelatedBlankProductszenterprises/z/blankProducts/r   zGTIN not found. r   r   zblankProducts/z/blankVariants/r   r   r   r   r   r   )r   r   r   r>   r   r   z	Not found)r   documentr#   existsto_dictr   r   r   r   r   rV   )r   r   
supplierIdrefr   r   gtinProductr   r   blankSettingsRefkvr   r   r   r'   r'   r(   rU      sD   



	

rU   )F)r   )r]   r   configs.firebaser   r   functions.Ordersr   r   r   r   r	   functions.Productsr
   r   r   r   functions.products.CsvProductsr   functions.Responser   !functions.Suppliers.BlankProductsr   r   rX   ra   r   rU   r'   r'   r'   r(   <module>   s     
'