<?php

namespace App\Helper;

use Symfony\Component\Filesystem\Exception\IOExceptionInterface;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;


class Hiltes
{
  // init file system
  protected $fsObject;
  protected $current_dir_path;

  public function __construct()
  {
    $this->fsObject = new Filesystem();
    $this->current_dir_path = getcwd();

  }


  /**
   * Aufbau des Dateinamens:
   * WU + Datum(TTMM) + Fortlaufendenummer (x2) + “.“ +Filialnummer(x4)
   * Beispieldateiname : WU220401.0001
   */
  public function createFileName() :String
  {
    $date = date('dm');
    $number = '01';
    $filial = '0001';
    return 'WU'.$date.$number.'.'.$filial;
  }


  public function import()
  {

      $finder = new Finder();
      $finder->files()->in($this->current_dir_path . "/hiltes/h2c/");

      foreach ($finder as $file) {
          $contents = $file->getContents();

          var_dump($contents);
      }

  }

  /**
   * @param string $data
   * @return void
   */
  public function export(string $data)
  {

    try {

      $new_file_path = $this->current_dir_path . "/hiltes/c2h/".$this->createFileName();

      if (!$this->fsObject->exists($new_file_path))
      {
        $this->fsObject->touch($new_file_path);
        $this->fsObject->chmod($new_file_path, 0777);
        $this->fsObject->dumpFile($new_file_path, $data);
      }
    } catch (IOExceptionInterface $exception) {
      echo "Error creating file at". $exception->getPath();
    }
  }

  public function checkData($data)
  {
        $umsatz = [
            'EtikettKz' => 'E',                             // E = EAN, I = Ident, W = Warengruppe
            'Etikettnummer'=> $data['sku'],                       // mit führenden Nullen bei Satzart „W“ die Warengruppennummer
            'Warengruppennummer'=> '0000',                  // mit führenden Nullen
            'Groessenbez'=> '',
            'Kundennummer'=> '00000000000000000000',
            'Nachlassart'=> '0',
            'Menge'=> '00000000000000000000',               //7 Vor – und 2 Nachkommastellen (Darstellung ohne Komma mit führenden Nullen).
            'Kalk-VkPreis'=> '00000000000000000000',        //7 Vor – und 2 Nachkommastellen (Darstellung ohne Komma mit führenden Nullen).
            'Vorgangsart'=> 'v',                            // u = Umtausch, v = Verkauf
            'Belegnummer'=> '00000000000000000000',         // mit führenden Nullen
            'Verkaufsdatum'=> '00000000',                   // YYYYMMTT
            'Verkaufszeit'=> '000000',                      // HHMM
            'Zahlungsart'=>2,                               // 1 = Kreditkarte, 2 = Rechnung, 3 = Lastschrift, 4 = Gutschein, 5 = Gutschrift, 6 = Mischzahlung
            'Währung'=> 'EUR',                              // EUR
            'Einheit'=> 'S',                                 // S= Stück, M = Meter
            'Vertriebskanal'=> '0000',                      // Vertriebskanäle werden über das Stammdatenprogramm angelegt und müssen mit der hinterlegten Nummer aus dem Webshop übergeben werden
        ];

        $kunde = [
            'Kunden-Nummer'=> '00000000000000000000',       // mit führenden Nullen
            'Kartennummer'=> '00000000000000000000',        // mit führenden Nullen
            'Nachname'=> '00000000000000000000',          // mit führenden Nullen
            'Vorname'=> '00000000000000000000',           // mit führenden Nullen
            'Ort'=> '00000000000000000000',               // mit führenden Nullen
            'PLZ'=> '00000000000000000000',               // mit führenden Nullen
            'Straße'=> '00000000000000000000',           // mit führenden Nullen
            'Land'=> '00000000000000000000',              // mit führenden Nullen
            'Postfach'=> '00000000000000000000',          // mit führenden Nullen
            'PostfachPLZ'=> '00000000000000000000',       // mit führenden Nullen
            'Titel'=> '00000000000000000000',             // mit führenden Nullen
            'Telefon1'=> '00000000000000000000',          // mit führenden Nullen
            'Telefon2'=> '00000000000000000000',          // mit führenden Nullen
            'Telefax'=> '00000000000000000000',           // mit führenden Nullen
            'Geburtsdatum'=> '00000000',                  // YYYYMMDD
            'Geschlecht'=> '00000000000000000000',        // s = sonstiges, m = männlich, w = weiblich
            'Email'=> '00000000000000000000',             // mit führenden Nullen
            'Rabatt'=> '00000000000000000000',            // mit führenden Nullen
            'Limit'=> '00000000000000000000',             // mit führenden Nullen
            'Sperr Kennzeichen'=> '0',                    // 0 = nicht gesperrt, 1 = gesperrt
            'Dubios Kennzeichen'=> '0',                   // 0 = nicht dubios, 1 = dubios
            'Bankeinzug'=> '0',                           // 0 = kein Bankeinzug, 1 = Bankeinzug
            'BankName1'=> '00000000000000000000',         // mit führenden Nullen
            'Konto1'=> '00000000000000000000',            // mit führenden Nullen
            'BLZ1'=> '00000000000000000000',              // mit führenden Nullen
            'BankName2'=> '00000000000000000000',         // mit führenden Nullen
            'Konto2'=> '00000000000000000000',            // mit führenden Nullen
            'BLZ2'=> '00000000000000000000',              // mit führenden Nullen
            'BankName3'=> '00000000000000000000',         // mit führenden Nullen
            'Konto3'=> '00000000000000000000',            // mit führenden Nullen
            'BLZ3'=> '00000000000000000000',              // mit führenden Nullen
            'Kreditkartennummer Kreditkarte1'=> '',       // mit führenden Nullen
            'Kreditkartennummer Kreditkarte2'=> '',       // mit führenden Nullen
            'Kreditkartennummer Kreditkarte3'=> '',       // mit führenden Nullen
            'Kreditkartennummer Kreditkarte4'=> '',       // mit führenden Nullen
            'Änderungskennzeichen'=> '0',                 // 0 = Kunde ist OK, 1 = Änderung
            'Newsletter'=> '0',                           // 0 = kein Newsletter, 1 = Newsletter
            'Passwort'=> '',                              //
            'Werbesperre'=> '0',                          // 0 = keine Werbung, 1 = Werbung
        ];
  }


}