Order import template change for ship date problem.

master
bleeson 2025-02-10 08:38:38 -08:00
parent 4cef690956
commit ec5a81fbdc
1 changed files with 13 additions and 9 deletions

View File

@ -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
]
)