from django.http import JsonResponse
from django.views.decorators.csrf import csrf_exempt
import json
import xml.etree.ElementTree as ET
import sys


class EmailMessage:
    def __init__(self, emailGreet, handoverSdepartment, orderNr, shipping, shipping1, newMessage, mfg, director,
                 register, ag, ui, title,
                 pdfBillNr, pdfBillDate, pdfShipDate, pdfShipNr, pdfLieferschein, pdfRechnung,
                 pdfGreeting,
                 pdfAccording, pdfDescription, pdfQuantity, pdfPrice, pdfAmount, pdfShippingCost,
                 pdfAllCost,
                 pdfNetCost, pdfTax, pdfTextLieferschein, pdfTextRechnung, pdfText1, pdfDelivery, pdfMfg,
                 pdfRule):
        self.emailGreet = emailGreet
        self.handoverSdepartment = handoverSdepartment
        self.orderNr = orderNr
        self.shipping = shipping
        self.shipping1 = shipping1
        self.newMessage = newMessage
        self.mfg = mfg
        self.director = director
        self.register = register
        self.ag = ag
        self.ui = ui
        self.title = title
        self.pdfBillNr = pdfBillNr
        self.pdfBillDate = pdfBillDate
        self.pdfShipDate = pdfShipDate
        self.pdfShipNr = pdfShipNr
        self.pdfLieferschein = pdfLieferschein
        self.pdfRechnung = pdfRechnung
        self.pdfGreeting = pdfGreeting
        self.pdfAccording = pdfAccording
        self.pdfDescription = pdfDescription
        self.pdfQuantity = pdfQuantity
        self.pdfPrice = pdfPrice
        self.pdfAmount = pdfAmount
        self.pdfShippingCost = pdfShippingCost
        self.pdfAllCost = pdfAllCost
        self.pdfNetCost = pdfNetCost
        self.pdfTax = pdfTax
        self.pdfTextLieferschein = pdfTextLieferschein
        self.pdfTextRechnung = pdfTextRechnung
        self.pdfText1 = pdfText1
        self.pdfDelivery = pdfDelivery
        self.pdfMfg = pdfMfg
        self.pdfRule = pdfRule

    @staticmethod
    def getCountryEmail(country):
        path = "mail/mail-de.xml"
        if country == 'DE':
            path = "mail/mail-de.xml"
        if country == 'FR':
            path = "mail/mail-fr.xml"
        if country == 'IT':
            path = "mail/mail-it.xml"
        if country == 'UK':
            path = "mail/mail-uk.xml"
        if country == 'ES':
            path = "mail/mail-es.xml"
        # 解析 XML 文件
        tree = ET.parse(path)  # 解析 XML 文件
        root = tree.getroot()  # 获取根元素
        # 如果 root 是 template 元素
        if root.tag == 'template':
            # 获取每个子元素的文本内容
            emailGreet = root.find('email-greet').text
            handoverSdepartment = root.find('email-handover-sdepartment').text
            orderNr = root.find('email-order-nr').text
            emailShipping = root.find('email-shipping').text
            emailShipping1 = root.find('email-shipping1').text
            emailNewMessage = root.find('email-new-message').text
            emailMfg= root.find('email-mfg').text
            emailDirector = root.find('email-director').text
            emailRegister = root.find('email-register').text
            emailAg = root.find('email-ag').text
            emailUI = root.find('email-ui').text
            emailTitle = root.find('email-title').text
            pdfBillNr = root.find('pdfBillNr').text
            pdfBillDate = root.find('pdfBillDate').text
            pdfShipDate = root.find('pdfShipDate').text
            pdfShipNr = root.find('pdfShipNr').text
            pdfLieferschein = root.find('pdfLieferschein').text
            pdfRechnung = root.find('pdfRechnung').text
            pdfGreeting = root.find('pdfGreeting').text
            pdfAccording = root.find('pdfAccording').text
            pdfDescription = root.find('pdfDescription').text
            pdfQuantity = root.find('pdfQuantity').text
            pdfPrice = root.find('pdfPrice').text
            pdfAmount = root.find('pdfAmount').text
            pdfShippingCost = root.find('pdfShippingCost').text
            pdfAllCost = root.find('pdfAllCost').text
            pdfNetCost = root.find('pdfNetCost').text
            pdfTax = root.find('pdfTax').text
            pdfTextLieferschein = root.find('pdfTextLieferschein').text
            pdfTextRechnung = root.find('pdfTextRechnung').text
            pdfText1 = root.find('pdfText1').text
            pdfDelivery = root.find('pdfDelivery').text
            pdfMfg = root.find('pdfMfg').text
            pdfRule = root.find('pdfRule').text
            emailTemplate = EmailMessage(emailGreet, handoverSdepartment, orderNr, emailShipping,emailShipping1,emailNewMessage,emailMfg,emailDirector,emailRegister,emailAg,emailUI,emailTitle,
                         pdfBillNr,pdfBillDate,pdfShipDate,pdfShipNr,pdfLieferschein,pdfRechnung,pdfGreeting,pdfAccording,pdfDescription,pdfQuantity,pdfPrice,pdfAmount,pdfShippingCost,pdfAllCost,
                         pdfNetCost,pdfTax,pdfTextLieferschein,pdfTextRechnung,pdfText1,pdfDelivery,pdfMfg,pdfRule)
            # 使用方法
            data = emailTemplate.extract_email_data()
            # 返回 EmailTemplate 对象的内容作为 JSON 响应
            encoded_data = json.dumps(data, ensure_ascii=False, indent=4)
            # encoded_data = json.dumps(jsonData).encode('utf-8').decode('unicode_escape')
            return encoded_data
    def extract_email_data(emailTemplate):
        return {
            "emailGreet": emailTemplate.emailGreet,
            "handoverSdepartment": emailTemplate.handoverSdepartment,
            "orderNr": emailTemplate.orderNr,
            "shipping": emailTemplate.shipping,
            "shipping1": emailTemplate.shipping1,
            "newMessage": emailTemplate.newMessage,
            "mfg": emailTemplate.mfg,
            "director": emailTemplate.director,
            "register": emailTemplate.register,
            "ag": emailTemplate.ag,
            "ui": emailTemplate.ui,
            "title": emailTemplate.title,
            "pdfBillNr": emailTemplate.pdfBillNr,
            "pdfBillDate": emailTemplate.pdfBillDate,
            "pdfShipDate": emailTemplate.pdfShipDate,
            "pdfShipNr": emailTemplate.pdfShipNr,
            "pdfLieferschein": emailTemplate.pdfLieferschein,
            "pdfRechnung": emailTemplate.pdfRechnung,
            "pdfGreeting": emailTemplate.pdfGreeting,
            "pdfAccording": emailTemplate.pdfAccording,
            "pdfDescription": emailTemplate.pdfDescription,
            "pdfQuantity": emailTemplate.pdfQuantity,
            "pdfPrice": emailTemplate.pdfPrice,
            "pdfAmount": emailTemplate.pdfAmount,
            "pdfShippingCost": emailTemplate.pdfShippingCost,
            "pdfAllCost": emailTemplate.pdfAllCost,
            "pdfNetCost": emailTemplate.pdfNetCost,
            "pdfTax": emailTemplate.pdfTax,
            "pdfTextLieferschein": emailTemplate.pdfTextLieferschein,
            "pdfTextRechnung": emailTemplate.pdfTextRechnung,
            "pdfText1": emailTemplate.pdfText1,
            "pdfDelivery": emailTemplate.pdfDelivery,
            "pdfMfg": emailTemplate.pdfMfg,
            "pdfRule": emailTemplate.pdfRule
        }