| import re |
| from typing import Dict |
|
|
| def parse_toshiba(file_text: str) -> Dict: |
| parsed_data = { |
| "Purchase Order No": "", |
| "Date": "", |
| "Supplier": "Toshiba Transmission and Distribution Systems (India) Pvt Ltd", |
| "Invoice Address": "", |
| "Delivery Address": "", |
| "Currency": "INR", |
| "Payment Terms": "", |
| "Items": [] |
| } |
|
|
| try: |
| parsed_data["Purchase Order No"] = re.search(r"Purchase Order : (\w+)", file_text).group(1) |
| parsed_data["Date"] = re.search(r"Order Date : (\d{4}-\d{2}-\d{2})", file_text).group(1) |
|
|
| item_pattern = re.compile(r"Pos\.\s+(\d+)\s+([\w\s]+)\s+(\d+)\s+([\d.]+)\s+INR\s+([\d.]+)") |
| for match in item_pattern.finditer(file_text): |
| parsed_data["Items"].append({ |
| "Position": match.group(1), |
| "Description": match.group(2).strip(), |
| "Quantity": int(match.group(3)), |
| "Unit Price": float(match.group(4)), |
| "Total Price": float(match.group(5)), |
| }) |
| except Exception as e: |
| print(f"Error parsing Toshiba PO: {e}") |
| |
| return parsed_data |
|
|