HEX
Server: Apache
System: Linux srv4.garantili.com.tr 4.18.0-477.21.1.lve.1.el8.x86_64 #1 SMP Tue Sep 5 23:08:35 UTC 2023 x86_64
User: ekspardev (1006)
PHP: 7.4.33
Disabled: exec,passthru,shell_exec,system
Upload Files
File: /home/ekspardev/www/nokta-logo.ekspar.dev/php/convert.php
<?php
session_start();

function convertXmlInvoiceNumbers($inputFile, $outputFile, $isSales = false) {
    $xml = simplexml_load_file($inputFile);

    if ($isSales) {
        $invoices = $xml->INVOICE;
    } else {
        $invoices = $xml->INVOICE;
    }

    foreach ($invoices as $invoice) {
        $docNumber = (string)$invoice->DOC_NUMBER;
        $invoice->NUMBER = $docNumber;
        $invoice->ARP_CODE = (string)$invoice->CARIKOD;
        $cariKod = (string)$invoice->CARIKOD;  // CARIKOD değerini saklayalım
        
        if ($isSales) {
            $invoice->DOC_NUMBER = (string)$invoice->DOSYANO;
            $invoice->PROJECT_CODE = (string)$invoice->DOSYANO;
        }
        
        
        // DISPATCHES altındaki DISPATCH'leri güncelleme
        if (isset($invoice->DISPATCHES) && isset($invoice->DISPATCHES->DISPATCH)) {
            foreach ($invoice->DISPATCHES->DISPATCH as $dispatch) {
                $dispatch->ARP_CODE = $cariKod;  // DISPATCH içindeki ARP_CODE'u güncelle
            }
        }
        
        

        unset($invoice->DOSYANO);
        unset($invoice->PLAKA);
        unset($invoice->CARIKOD);
    }

    $dom = new DOMDocument('1.0', 'ISO-8859-9');
    $dom->preserveWhiteSpace = false;
    $dom->formatOutput = true;
    $dom->loadXML($xml->asXML());
    $dom->save($outputFile);
}

if ($_SERVER["REQUEST_METHOD"] == "POST") {
    if (isset($_FILES["xmlFile"]) && $_FILES["xmlFile"]["error"] == 0) {
        $islemTuru = $_POST["islemTuru"];
        $inputFile = $_FILES["xmlFile"]["tmp_name"];
        $outputFile = $islemTuru === "alis" ? "converted-alis.xml" : "converted-satis.xml";

        try {
            convertXmlInvoiceNumbers($inputFile, $outputFile, $islemTuru === "satis");
            $_SESSION['message'] = "Dönüştürme başarılı";
            $_SESSION['type'] = $islemTuru;
        } catch (Exception $e) {
            $_SESSION['error'] = $e->getMessage();
        }
    } else {
        $_SESSION['error'] = "Dosya yüklenirken bir hata oluştu.";
    }

    // Yönlendirmeyi düzelttik
    header("Location: ../index.php");
    exit();
}