Spaces:
Sleeping
Sleeping
| 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 | |