Spaces:
Sleeping
Sleeping
File size: 2,626 Bytes
5654237 f5a492c 5654237 f5a492c 5654237 4c37565 5654237 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | import pandas as pd
# JSON to Excel Template
def json_to_dms_excel(res, employee_code=""):
columns = [
"STT *",
"Số thứ tự đơn hàng *",
"Mã nhân viên kinh doanh *",
"Tên nhân viên kinh doanh",
"Mã tự sinh đại lý mua *",
"Tên đại lý mua",
"Mã tự sinh đại lý bán *",
"Tên đại lý bán",
"Ngày đặt hàng *",
"Ngày giao hàng",
"Ghi chú",
"Sửa giá bán *",
"Chiết khấu tổng đơn hàng (%)",
"Mã sản phẩm *",
"Tên sản phẩm",
"Mã đơn vị tính *",
"Là sản phẩm? *",
"Số lượng *",
"Giá bán (bao gồm VAT)"
]
rows = []
idx = 1
for _, orders in res.items():
for order in orders:
row = {col: '' for col in columns} # Initialize all columns with empty string
row["STT *"] = idx
row["Số thứ tự đơn hàng *"] = order.get("order_id", idx)
row["Mã nhân viên kinh doanh *"] = employee_code
row["Tên nhân viên kinh doanh"] = order.get("saler", "")
row["Mã tự sinh đại lý mua *"] = order.get("buyer_id", "")
row["Tên đại lý mua"] = order.get("buyer", "")
row["Mã tự sinh đại lý bán *"] = order.get("seller_id", "")
row["Tên đại lý bán"] = order.get("seller", "")
row["Ngày đặt hàng *"] = order.get("order_date", "")
row["Ngày giao hàng"] = order.get("delivery_date", "")
row["Ghi chú"] = order.get("note", "")
row["Sửa giá bán *"] = "Không"
row["Chiết khấu tổng đơn hàng (%)"] = order.get("discount", "")
row["Mã sản phẩm *"] = order.get("product_id", "")
row["Tên sản phẩm"] = order.get("product_name", "")
row["Mã đơn vị tính *"] = order.get("unit_id", "")
row["Là sản phẩm? *"] = "Sản phẩm bán"
row["Số lượng *"] = order.get("quantity", "")
rows.append(row)
idx += 1
df = pd.DataFrame(rows, columns=columns)
# Convert "STT" and "Số lượng" columns into INT
df["STT *"] = df["STT *"].astype(int)
df["Số lượng *"] = df["Số lượng *"].astype(int)
# Create "End" row, first column is "End", other is blank like in the excel template
end_row = pd.DataFrame([["End"] + [""] * (df.shape[1] - 1)], columns= df.columns)
df = pd.concat([df, end_row], ignore_index= True)
return df
|