مساعدة في حل مشكلة برمجية

السلام عليكم ورحمة الله وبركاته

شباب العرب المبدعين و المنتجين و الأذكياء طبتم وطابت ايامكم بكل خير

ادرس علوم حاسوب و في العطلة الصيفية عملت على مشروع خاص فيني بتسهيل عملية تحويل مبيعات المتجر الاكتروني إلى برنامج المحاسبي (لايتوفر ربط من خلال المنصة) لذلك بدأت بالعمل الخاص طبعاً API عمل على موضوع انشاء العميل و استخرجات المعلومات من خلال ملف أكسل تم تحمليه من خلال منصة تجارة الاكترونية و تحويلها إلى البرنامج المحسابي بنجاح لكن اوجه مشكلة بالبحث او اضافة العميل في فاتورة المبيعات

الكود مبرمج عن طريق البايثون تم استخدم

from flask import Flask, render_template, request, flash

import pandas as pd

import requests

import os

def convert_sales_data(df):
    converted_data = []
    for index, row in df.iterrows():
        data = {
            "IssueDate": str(row['added_at']),  # تـاريخ الـطلب
            "DueDate": "By",  # طريقة حساب الأشهر بالأيام أو تاريخ Net or By
            "DueDateDays": None,
            "DueDateDate": str(row['last_update_at']),  # اكتمال الطلب
            "Reference": str(row['id']),  # مرجع طلب العميل
            "QuoteNumber": None,
            "OrderNumber": None,
            "Customer": None,
            "SalesQuote": None,
            "SalesOrder": None,
            "BillingAddress": None,
            "Description": None,
            "Lines": None,
            "SalesInventoryLocation": None,
            "HasLineNumber": True,
            "HasLineDescription": False,
            "Discount": True,
            "DiscountType": "ExactAmount",
            "AmountsIncludeTax": False,
            "Rounding": False,
            "RoundingMethod": "None",
            "WithholdingTax": False,
            "WithholdingTaxType": "Rate",
            "WithholdingTaxPercentage": 0.0,
            "WithholdingTaxAmount": 0.0,
            "EarlyPaymentDiscount": False,
            "EarlyPaymentDiscountType": "Percentage",
            "EarlyPaymentDiscountRate": 0.0,
            "EarlyPaymentDiscountAmount": 0.0,
            "EarlyPaymentDiscountDays": None,
            "LatePaymentFees": False,
            "LatePaymentFeesPercentage": 0.0,
            "TotalAmountInWords": True,
            "TotalAmountInBaseCurrency": True,
            "Bilingual": True,
            "HasSalesInvoiceCustomTitle": False,
            "SalesInvoiceCustomTitle": None,
            "HasSalesInvoiceCustomTheme": False,
            "SalesInvoiceCustomTheme": None,
            "AutomaticReference": False,
            "HideDueDate": False,
            "HideBalanceDue": False,
            "ClosedInvoice": False,
            "ShowItemImages": False,
            "ShowTaxAmountColumn": False,
            "HasSalesInvoiceFooters": False,
            "SalesInvoiceFooters": None,
            "CustomFields": None,
            "CustomFields2": None,
        }
        converted_data.append(data)
    return converted_data

التعليق السابق

شكراً مصطفى على تقديمك للحل اعتذر على تاخير في الرد الحياة مزدحمة في بعض الأحيان

تم تطبيق حـلـك بـحـمدالله مع تعديل على دالة الأتصال بالخادم

def convert_clients_data(df): 
    required_fields = ["ID", "Name", "Email", "Phone", "Country AR", "Country EN", "City (AR)", "City (EN)", "District", "Street", "Number Of Orders"] 
    for field in required_fields:
        if field not in df.columns:
            raise ValueError(f"Missing required field: {field}")            
  
    converted_data = []
    for _, row in df.iterrows():
        # قم بفصل العنوان إلى حقلين للعنوان والمنطقة
        address = str(row['Street']) + ', ' + str(row['District'])
        data = {
            'Name': str(row['Name']),
            'Code': str(row['ID']),
            'CreditLimit': 0.0,
            'Currency': '',
            'BillingAddress': address,
            'DeliveryAddress': '',
            'Email': str(row['Email']),
            'Division': '',
            'ControlAccount': '',
            'StartingBalance': 0.0,
            'HasDefaultDueDateDays': False,
            'DefaultDueDateDays': None,
            'HasDefaultHourlyRate': False,
            'DefaultHourlyRate': 0.0,
            'Inactive': False,
            "CustomFields": {"2f976bfc-10c3-416c-bf06-fb57427c75ed": str(row['City (AR)']),
                             "abdab3b9-7c2f-4fd3-8d8b-dc4117f015ac": str(row['Phone'])},
        }
        converted_data.append(data)
    return converted_data

def send_to_accounting_system(data, api_url):
    headers = {'Content-Type': 'application/json', 'Authorization': 'Basic *****************=='}
    response = requests.post(api_url, json=data, headers=headers)
    try:
        response_data = response.json()
        if 'Success' in response_data and response_data['Success']:
            return response_data['Key']
        else:
            raise ValueError(f"Failed to add data. Unexpected response format: {response_data}")
    except Exception as e:
        raise ValueError(f"Failed to parse server response: {str(e)}")