U
    4hQ                     @   s  d Z dddgde ge ge ge gde ge ge ge gde ge ge ge gdddddd	d
ddddddddddddgde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gdddddddgde ge ge ge gde ge ge ge gde ge ge ge gdddddddddddd d!d"d#d$d%d&d'd(gd)d*gd+ge ge gdd,gd+ge ge gdd-gd+ge ge gdd.gd+ge ge gdd/gd+ge ge gdd0gd+ge ge gdd1gd+ge ge gdd2gd+ge ge gdd3gd+ge ge gdd4gd+ge ge gdd5gd+ge ge gdd6gd+ge ge gdd7gd+ge ge gdd8gd+ge ge gdd9gd+ge ge gdd:gd+ge ge gdd;gd+ge ge gdd<ddddd	d=d>d?d@gdAe ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddBddddd>dCgdDe ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddEddFdddgde ge ge ge gde ge ge ge gde ge ge ge gddddddGdHdddd d!d"d#dIddJdKdLdMdNdOgdPe ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddQddd	dRdSgdTe ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddUddVdddgde ge ge ge gde ge ge ge gde ge ge ge gddddWdXd	dYdZd[d\d]d^d_g
d`e ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gdda
ddbdddgde ge ge ge gde ge ge ge gde ge ge ge gdddddddcdddedfgdge ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddhddddd	d=d>d?digdje ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddkddldddgde ge ge ge gde ge ge ge gde ge ge ge gdddddmd>d	dngdoe ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gde ge ge ge gddpddqdddgde ge ge ge gde ge ge ge gde ge ge ge gddddWd^drgdse ge ge ge gde ge ge ge gde ge ge ge gddtddudvZd S )wNRECORD_INDICATORCLIENT	STREAM_IDz9{data[RECORD_INDICATOR]}|{data[CLIENT]}|{data[STREAM_ID]})
ProcessingLoops	Loop_Len1	Loop_Len2)r   r   r   )zCol ListtemplatemappingACTION_INDICATORPRODUCTDESCRIPTIONEXTRA_DESCRIPTIONBRAND/PRODUCT GROUPMOQBARCODE_1 ( Unit)BARCODE_2 ( Inner )BARCODE_3 ( Outer )INNER CARTON QTYOUTER CARTON QTYUNIT LENGTHUNIT WIDTH UNIT HEIGHTUNIT WEIGHTak  {data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[PRODUCT]}|{data[DESCRIPTION]}|{data[EXTRA_DESCRIPTION]}|{data[BRAND/PRODUCT GROUP]}|{data[MOQ]}|{data[BARCODE_1 ( Unit)]}|{data[BARCODE_2 ( Inner )]}|{data[BARCODE_3 ( Outer )]}|{data[INNER CARTON QTY]}|{data[OUTER CARTON QTY]}|{data[UNIT LENGTH]}|{data[UNIT WIDTH ]}|{data[UNIT HEIGHT]}|{data[UNIT WEIGHT]})r   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   )HDITCUST_ORDER_NUMBER
ORDER_DATEE_T_DVENDOR_ORD_NOSHIP_TO_NAMESHIP_TO_ADDRESS_1_1SHIP_TO_ADDRESS_1_2AREASTATEPOSTCODECOUNTRY
ORDER_TYPECARRIER_CODEPHONE_NOEMAIL_ADDRESSaZ  {data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[ORDER_DATE]}|{data[E_T_D]}|{data[VENDOR_ORD_NO]}|{data[SHIP_TO_NAME]}|{data[SHIP_TO_ADDRESS_1_1]}|{data[SHIP_TO_ADDRESS_1_2]}|{data[AREA]}|{data[STATE]}|{data[POSTCODE]}|{data[COUNTRY]}|{data[ORDER_TYPE]}|{data[CARRIER_CODE]}|{data[PHONE_NO]}|{data[EMAIL_ADDRESS]}zdata[ci]="OR1"g        zdata[ci]="A"zdata[ci]={var}['id']zdata[ci]=str(datetime.strptime({var}['date'],'%Y-%m-%dT%H:%M:%S.%fZ').replace(tzinfo=from_zone).astimezone(to_zone).strftime("%Y%m%d"))zdata[ci]=""zdata[ci]={var}['order_number']zif {var}['order_source']=='shopify':
     if {var}['contact_name']:
          data[ci]={var}['contact_name']
     else:
          data[ci]={var}['customer_name']
else:
     data[ci]={var}['customer_name']z#data[ci]={var}['address']['line_1']a>  line2 = {var}['address']['line_2']
line3 = {var}['address']['line_3']
if bool(line2) and (line3):
     data[ci]=" ".join([{var}['address']['line_2'],{var}['address']['line_3']])
elif bool(line2):
     data[ci]={var}['address']['line_2']
elif bool(line3):
     data[ci]={var}['address']['line_3']
else:
     data[ci]=""aE  address_error = checkAddressForError({var})
if 'City Error' in address_error.keys():
     data[ci] = 'Error'
     error['OR']= 'Error in Address'
     error['send_to_CD'] = False
     error['address_error'] = address_error
     error['City data received']={var}['address']['city']
else:
     data[ci]={var}['address']['city']aW  address_error = checkAddressForError({var})
if 'Aust State Error' in address_error.keys() :
     data[ci] = 'Error'
     error['OR']= 'Error in Address'
     error['send_to_CD'] = False
     error['address_error'] = address_error
     error['State data received']={var}['address']['state']
else:
     data[ci]={var}['address']['state'].upper()aV  address_error = checkAddressForError({var})
if 'Aust Postcode Error' in address_error.keys():
    data[ci] = 'Error'
    error['OR']= 'Error in Address'
    error['send_to_CD'] = False
    error['address_error'] = address_error
    error['Postcode data received'] ={var}['address']['postcode']
else:
     data[ci]={var}['address']['postcode']zif {var}['address']['country'] in cc_codes_pd['Alpha-2 code'].to_list() :
     data[ci]=cc_codes_pd.index[cc_codes_pd['Alpha-2 code'] == {var}['address']['country']].to_list()[0]
else:
     data[ci]= {var}['address']['country']a  if {var}['warehouse'] == 'eCommerce Warehouse' :
     if 'eCommerce' in {var}['channel']:
          data[ci] = 'eCommerce - online'
     elif 'Wholesale' in {var}['channel']:
          data[ci] = 'eCommerce - reorder'
     else:
          data[ci] = 'Error'
          error['OR'] = 'Error in determining ORDER_TYPE 1'
          error['send_to_CD'] = False
          error['extra_info'] = {var}['channel'] + ', ' + {var}['warehouse']
elif {var}['warehouse'] == 'Wholesale Warehouse':
     data[ci] = {var}['channel']
else:
     data[ci] = 'Error'
     error['OR'] = 'Order not for Cross Docks - Australia'
     error['send_to_CD'] = False
     error['extra_info'] = {var}['channel'] + ', ' + {var}['warehouse']     
   a  method = {var}['shipping_method']
if ('DHL' in method): #the latter to cater for errors seen from Shopify / shipping app
     data[ci]='EM001'
elif 'Standard' in method:
     if 'signature' in {var}['customer_note'].lower():
          data[ci]='CD004'
     else:
          data[ci]='CD003'
elif 'Express' in method:
     data[ci] = 'CD020'
elif len(method) == 0:
     data[ci] = 'CD001'
elif method == 'Shipping' : #this is error case from Shopify or "Shipping App"
     data[ci]='EM001'
     error['OR']= 'Error in Carrier Coding'
     error['send_to_CD'] = True
else:
     data[ci] = 'Error'
     error['OR']= 'Error in Carrier Coding'
     error['send_to_CD'] = False
zdata[ci]={var}['contact_phone']zdata[ci]={var}['contact_email'])r   r
   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   QUANTITY_ORDEREDLINE_NUMBERBATCH NUMBERSTOCK STATUSz{data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[PRODUCT]}|{data[QUANTITY_ORDERED]}|{data[LINE_NUMBER]}|{data[BATCH NUMBER]}|{data[STOCK STATUS]})r   r
   r   r   r*   r+   r,   r-   
ORDER_NOTEzr{data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[LINE_NUMBER]}|{data[ORDER_NOTE]})r   r
   r   r+   r.   )r   OR1OR2OR4IFAC_CUSTOMER_NOETDDELIVERY_DESC1SERVICE_LEVELASNINVOICE_NUMBERTOTAL ITEMSFREIGHT_CHARGECONSIGNMENT_NUMBERa  {data[RECORD_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[IFAC_CUSTOMER_NO]}|{data[ETD]}|{data[ORDER_DATE]}|{data[SHIP_TO_NAME]}|{data[SHIP_TO_ADDRESS_1_1]}|{data[SHIP_TO_ADDRESS_1_2]}|{data[AREA]}|{data[STATE]}|{data[POSTCODE]}|{data[DELIVERY_DESC1]}|{data[VENDOR_ORD_NO]}|{data[SERVICE_LEVEL]}|{data[ASN]}|{data[INVOICE_NUMBER]}|{data[TOTAL ITEMS]}|{data[FREIGHT_CHARGE]}|{data[CONSIGNMENT_NUMBER]})r   r   r2   r3   r   r   r    r!   r"   r#   r$   r4   r   r5   r6   r7   r8   r9   r:   QUANTITY_SHIPPEDPACK_IDzQ{data[RECORD_INDICATOR]}|{data[PRODUCT]}|{data[QUANTITY_SHIPPED]}|{data[PACK_ID]})r   r   r;   r<   )r   OS1OS2CONSTDATE_RECEIVEDQUANTITYREASON_CODE
SA_COMMENTCONSIGNMENT NO.TRANSACTION_TYPEORDER_NOSTOCK_STATUSz{data[CONST]}|{data[DATE_RECEIVED]}|{data[PRODUCT]}|{data[QUANTITY]}|{data[REASON_CODE]}|{data[SA_COMMENT]}|{data[CONSIGNMENT NO.]}|{data[TRANSACTION_TYPE]}|{data[ORDER_NO]}|{data[STOCK_STATUS]})
r?   r@   r   rA   rB   rC   rD   rE   rF   rG   )r   SACONTAINER_NUMBERARRIVAL_DATECONTAINER_TYPETOTAL_CARTONSz{data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[CONTAINER_NUMBER]}|{data[ARRIVAL_DATE]}|{data[CONTAINER_TYPE]}|{data[TOTAL_CARTONS]})r   r
   r   rI   rJ   rK   rL   CARTON PACK_IDz{data[RECORD_INDICATOR]}|{data[ACTION_INDICATOR]}|{data[CUST_ORDER_NUMBER]}|{data[PRODUCT]}|{data[QUANTITY_ORDERED]}|{data[LINE_NUMBER]}|{data[BATCH NUMBER]}|{data[CARTON PACK_ID]})r   r
   r   r   r*   r+   r,   rM   )r   PT1PT2PURCHASE_ORD_NUMBERTOTAL_QUANTITY_RECzs{data[RECORD_INDICATOR]}|{data[PURCHASE_ORD_NUMBER]}|{data[LINE_NUMBER]}|{data[PRODUCT]}|{data[TOTAL_QUANTITY_REC]})r   rP   r+   r   rQ   )r   TPACKNOWLEDGEMENT_FLAGz;{data[CONST]}|{data[ORDER_NO]}|{data[ACKNOWLEDGEMENT_FLAG]})r?   rF   rS   )r   MO)r   ORPCrH   PTrR   rT   )nanCD_file_format rZ   rZ   4/var/www/FlaskApp/FlaskApp/app/file_format_aemery.py<module>   s   