Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1637 | Revision 1639 | Zur aktuellen Revision | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
151 lars 1
<?php
2
 
1623 lars 3
    namespace App\Console\Commands;
151 lars 4
 
1623 lars 5
    use Illuminate\Console\Command;
1635 lars 6
    use App\Models\Item;
1623 lars 7
    use App\Models\PriceAgency;
151 lars 8
 
1623 lars 9
    class dump extends Command
10
    {
11
        /**
12
         * The name and signature of the console command.
13
         *
14
         * @var string
15
         */
16
        protected $signature = 'command:dump';
151 lars 17
 
1623 lars 18
        /**
19
         * The console command description.
20
         *
21
         * @var string
22
         */
23
        protected $description = 'Erstellt CSV-Dateien für Preisagenturen';
151 lars 24
 
1623 lars 25
        /**
26
         * Execute the console command.
27
         *
1634 lars 28
         * @return void
1623 lars 29
         */
1634 lars 30
        public function handle(): void
1623 lars 31
        {
1634 lars 32
            $items = Item::with( 'price', 'medium.medium', "manufacturer" )->where( 'status', 0 )->get();
1633 lars 33
            $agencies = PriceAgency::where( 'shop_id', $GLOBALS["INI"]["shops_ID"] )->where( "status", "1" )->get();
1623 lars 34
            foreach ( $agencies as $agency )
35
            {
1634 lars 36
                $content = array();
1623 lars 37
                $this->info( $agency["name"] );
1631 lars 38
                if ( !$agency["config"] )
39
                {
40
                    $this->warn( "Agentur nicht komplett konfiguriert!" );
1632 lars 41
                    continue;
1631 lars 42
                }
1630 lars 43
                $configFile = storage_path( "config/" ) . $agency["config"];
44
                if ( file_exists( $configFile ) )
45
                {
46
                    require $configFile;
47
                }
48
                else
49
                {
50
                    $this->error( "Konfigdatei " . $configFile . " existiert nicht!" );
1634 lars 51
                    continue;
1630 lars 52
                }
1634 lars 53
                $fName = basename( parse_url( $agency["csv_url"], PHP_URL_PATH ) );
54
                $fName = storage_path() . "/" . $fName;
55
                $f = fopen( $fName, "w" );
56
                foreach ( $items as $item )
57
                {
1636 lars 58
                    $item->beschreibung_pagentur = $item->description;
59
                    $item->beschreibung_pagentur = str_replace( "&nbsp;", " ", $item->beschreibung_pagentur );
60
                    $item->beschreibung_pagentur = str_replace( "<p>", " ", $item->beschreibung_pagentur );
61
                    $item->beschreibung_pagentur = str_replace( "</p>", " ", $item->beschreibung_pagentur );
62
                    $item->beschreibung_pagentur = str_replace( "<li>", "", $item->beschreibung_pagentur );
63
                    $item->beschreibung_pagentur = str_replace( "</li>", ", ", $item->beschreibung_pagentur );
64
                    $item->beschreibung_pagentur = str_replace( "</td>\r\n", "</td>", $item->beschreibung_pagentur );
65
                    $item->beschreibung_pagentur = str_replace( "</tr>\r\n", "</tr>", $item->beschreibung_pagentur );
66
                    $item->beschreibung_pagentur = str_replace( "<tr>\r\n", "<tr>", $item->beschreibung_pagentur );
67
                    $item->beschreibung_pagentur = str_replace( "<td>\r\n", "<td>", $item->beschreibung_pagentur );
68
                    $item->beschreibung_pagentur = str_replace( "</td>\n", "</td>", $item->beschreibung_pagentur );
69
                    $item->beschreibung_pagentur = str_replace( "</tr>\n", "</tr>", $item->beschreibung_pagentur );
70
                    $item->beschreibung_pagentur = str_replace( "<tr>\n", "<tr>", $item->beschreibung_pagentur );
71
                    $item->beschreibung_pagentur = str_replace( "<td>\n", "<td>", $item->beschreibung_pagentur );
72
                    $item->beschreibung_pagentur = str_replace( "</td></tr><tr><td>", " / ", $item->beschreibung_pagentur );
73
                    $item->beschreibung_pagentur = str_replace( "</td><td>", " - ", $item->beschreibung_pagentur );
74
                    $item->beschreibung_pagentur = str_replace( "<td>", "", $item->beschreibung_pagentur );
75
                    $item->beschreibung_pagentur = str_replace( "</td>", ", ", $item->beschreibung_pagentur );
76
                    $item->beschreibung_pagentur = str_replace( '"', '', preg_replace( "/[\r\n\t" . $trenner . "]/", "", strip_tags( $item->beschreibung_pagentur ) ) );
77
                    $item->beschreibung_pagentur = rtrim( $item->beschreibung_pagentur, ", " );
1637 lars 78
                    //$item->beschreibung_pagentur = removeSpaces( $item->beschreibung_pagentur, true, true, false );
1636 lars 79
                    $item->beschreibung_pagentur = preg_replace( "/[\s]{2,}/", " ", $item->beschreibung_pagentur );
80
                    $artikel["kurzbeschreibung_pagentur"] = substr( $item->beschreibung_pagentur, 0, 200 );
1638 lars 81
                    $item->beschreibung_pagentur = substr( $item->beschreibung_pagentur, 0, 5000 );
1634 lars 82
                    foreach ( $content as $c )
83
                    {
84
                        list( $col, $required ) = $c;
85
 
86
                        // Inhalt ist vorhanden oder muss ausgewertet werden?
87
                        if ( isset( $item->$col ) )
88
                        {
89
                            $col = $item->$col;
90
                        }
91
                        elseif ( !stristr( $col, "return" ) )
92
                        {
93
                            $col = "";
94
                        }
95
                        else
96
                        {
97
                            $col = @eval( $col );
98
                        }
99
 
100
                        // Inhalt mit required vergleichen
101
                        /*
102
                        required
103
                        true: Wert muss vorhanden sein
104
                        false: Wert muss nicht vorhanden sein
105
                        string: Ausdruck muss string ergeben
106
                        */
107
 
108
                        if ( is_bool( $required ) )
109
                        {
110
                            if ( ( $required === true ) && ( !$col ) )
111
                            {
112
                                continue 2;
113
                            }
114
                        }
115
                        else
116
                        {
117
                            if ( !@eval( $required ) )
118
                            {
119
                                continue 2;
120
                            }
121
                        }
122
 
123
                        $buffer[] = $quote . $col . $quote;
124
                    } // foreach
125
                    fwrite( $f, implode( $trenner, $buffer ) . "\n" );
126
                }
127
                fclose( $f );
1623 lars 128
            }
129
        }
151 lars 130
    }