U
    hN                     @   s  d Z 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
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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
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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<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@ddddddAdBdCdDgdEe 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dFdddddBdGgdHe 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dIddJ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dKdLd d#d$d%d&d'd(dMd"dNdOdPdQdRdSg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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dUddddVdWgdXe 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dYddZ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`dadbdcg
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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de
ddfdddgddgdge ge gddgdge ge gddggdge ge gdd
dddddhdidjdkgdle 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dmddddddAdBdCdng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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ddrdBddsg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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d[dbdwgdxe 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dyddzd{Zd S )|NRECORD_INDICATORCLIENT	STREAM_IDz9{data[RECORD_INDICATOR]}|{data[CLIENT]}|{data[STREAM_ID]}zdata[ci]="HD"g        )
ProcessingLoops	Loop_Len1	Loop_Len2zdata[ci]="TT"zdata[ci]="IT")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ITzdata[ci]="OR"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"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']z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}['channel']=='Wholesale':
     data[ci] = 'Wholesale'
else:
     data[ci] = 'Error'
     error['OR'] = 'Two-Ts order channel not Wholesale - not sent to Cross Docks'
     error['send_to_CD'] = False
     error['extra_info'] = {var}['channel'] + ', ' + {var}['warehouse']

   a  method = {var}['shipping_method']
if 'DHL' in method:
     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'
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   SAzdata[ci]="PT"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_two-ts.py<module>   s   