diff --git a/source_ecommerce_make_order.py b/source_ecommerce_make_order.py index 5dfd891..587bf88 100644 --- a/source_ecommerce_make_order.py +++ b/source_ecommerce_make_order.py @@ -2,7 +2,7 @@ """ Pull shipment files from the Stash AWS FTP. After copying file, move file to archive folder on FTP. -Create ZSHPORD import files, which X3 will consume on a schedule via ZECMSL recurring task. +Create ZSHPORDE import files, which X3 will consume on a schedule via ZECMSL recurring task. Copy file to the archive and then pass it to the shipment maker directory. TODO: Source needs to send us real data for final adjustments (site, discount, multilot, etc.) @@ -80,15 +80,15 @@ def retrieve_x12_edi_files(): def combine_zshpords(): """ - Collect all ZSHPORD imports into a single file for easy import. + Collect all ZSHPORDE imports into a single file for easy import. """ archive_directory = SOH_IMPORT_DIRECTORY / "archive" archive_directory.mkdir(exist_ok=True) - with (SOH_IMPORT_DIRECTORY / "ZSHPORD.dat").open( + with (SOH_IMPORT_DIRECTORY / "ZSHPORDE.dat").open( "w", encoding="utf-8", newline="\n" ) as combined_import_file: for individual_import_filename in SOH_IMPORT_DIRECTORY.glob( - "ZSHPORD_*.dat" + "ZSHPORDE_*.dat" ): with individual_import_filename.open( "r", encoding="utf-8", newline="\n" @@ -115,7 +115,7 @@ def process_files(file): #I am assuming I am getting a sorted csv file by order time_stamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") if sales_order.header.cusordref != '': with yamamotoyama.x3_imports.open_import_file( - SOH_IMPORT_DIRECTORY / f"ZSHPORD_{previous_order}_{time_stamp}_{sales_order.header.cusordref}.dat" + SOH_IMPORT_DIRECTORY / f"ZSHPORDE_{previous_order}_{time_stamp}_{sales_order.header.cusordref}.dat" ) as import_file: sales_order.output(import_file) sales_order = SalesOrder() @@ -134,6 +134,7 @@ def process_files(file): #I am assuming I am getting a sorted csv file by order ship_site = row[0] order_id = row[6] order_date = row[9] + ship_date = row[17] customer_name = row[10] # shipadd1 = row[9] # address information is not stored in X3 # shipadd2 = row[10] @@ -147,6 +148,7 @@ def process_files(file): #I am assuming I am getting a sorted csv file by order discount = shopify_order_info[0]['current_total_discounts']#row[24] sales_order.header.cusordref = order_id sales_order.header.orddat = datetime.datetime.strptime(order_date,'%m/%d/%Y %I:%M:%S %p').strftime('%Y%m%d') # what comes from SL + sales_order.header.shidat = datetime.datetime.strptime(ship_date,'%m/%d/%Y %I:%M:%S %p').strftime('%Y%m%d') #sales_order.header.orddat = datetime.datetime.strptime(order_date,'%m/%d/%Y %H:%M').strftime('%Y%m%d') #default when we sort in Excel sales_order.header.stofcy = ship_site sales_order.header.bpdnam = customer_name @@ -164,7 +166,7 @@ def process_files(file): #I am assuming I am getting a sorted csv file by order # shopify_line_dict = remove_item_from_shopify_order(shopify_line_dict, shopify_item_data['sku'], shopify_item_data['quantity'],shopify_item_data['price']) time_stamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S") with yamamotoyama.x3_imports.open_import_file( - SOH_IMPORT_DIRECTORY / f"ZSHPORD_{current_order}_{time_stamp}_{sales_order.header.cusordref}.dat" + SOH_IMPORT_DIRECTORY / f"ZSHPORDE_{current_order}_{time_stamp}_{sales_order.header.cusordref}.dat" ) as import_file: sales_order.output(import_file) @@ -233,7 +235,7 @@ def get_details_from_shopify(order): @dataclasses.dataclass class SalesOrderDetail: """ - Information that goes on ann order detail line, taken from ZSHPORD template. + Information that goes on ann order detail line, taken from ZSHPORDE template. """ itmref: str = "" @@ -332,7 +334,7 @@ class SalesOrderDetail: @dataclasses.dataclass class SalesOrderHeader: """ - Information that goes on an order header, taken from ZSHPORD template. + Information that goes on an order header, taken from ZSHPORDE template. """ sohnum: str = "" @@ -372,6 +374,7 @@ class SalesOrderHeader: yimport: int = 0 pjt: str = "" yedinotes: str = "" + shidat: datetime.date = datetime.date(1753, 1, 1) def convert_to_strings(self) -> typing.List[str]: """ @@ -416,7 +419,8 @@ class SalesOrderHeader: self.invdtaamt_8, self.yimport, self.pjt, - self.yedinotes + self.yedinotes, + self.shidat ] )