Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 1602 | Details | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed

Revision Autor Zeilennr. Zeile
233 lars 1
<?php
2
 
260 lars 3
    namespace App\Console\Commands;
233 lars 4
 
445 lars 5
    use App\Models\Address;
260 lars 6
    use App\Models\Directory;
600 lars 7
    use App\Models\DirectoryTemplate;
260 lars 8
    use App\Models\Item;
9
    use App\Models\Action;
580 lars 10
    use App\Models\Manufacturer;
272 lars 11
    use App\Models\Medium;
454 lars 12
    use App\Models\Order;
453 lars 13
    use App\Models\OrderAddress;
507 lars 14
    use App\Models\OrderType;
482 lars 15
    use App\Models\PaymentMethod;
263 lars 16
    use App\Models\Price;
551 lars 17
    use App\Models\PriceAgency;
260 lars 18
    use App\Models\ActionMedium;
19
    use App\Models\ItemMedium;
619 lars 20
    use App\Models\ItemTemplate;
260 lars 21
    use App\Models\DirectoryMedium;
527 lars 22
    use App\Models\SalesPortal;
540 lars 23
    use App\Models\SalesPortalItem;
529 lars 24
    use App\Models\SalesPortalType;
509 lars 25
    use App\Models\Shipping;
823 lars 26
    use App\Models\ShippingCountry;
510 lars 27
    use App\Models\ShippingGroup;
828 lars 28
    use App\Models\ShippingPaymentMethod;
465 lars 29
    use App\Models\Shop;
600 lars 30
    use App\Models\Template;
437 lars 31
    use App\Models\User;
561 lars 32
    use App\Models\OrderItem;
979 lars 33
    use App\Models\WebSetting;
260 lars 34
    use Illuminate\Console\Command;
35
    use Illuminate\Support\Facades\DB;
233 lars 36
 
260 lars 37
    class convertDB extends Command
38
    {
39
        /**
40
         * The name and signature of the console command.
41
         *
42
         * @var string
43
         */
44
        protected $signature = 'command:convertDB';
233 lars 45
 
260 lars 46
        /**
47
         * The console command description.
48
         *
49
         * @var string
50
         */
51
        protected $description = 'Converts the old webanOS-DB to laravel';
233 lars 52
 
260 lars 53
        /**
54
         * Execute the console command.
55
         *
56
         * @return void
57
         */
58
 
59
        public function handle(): void
238 lars 60
        {
294 lars 61
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung gestartet" );
496 lars 62
            $this->migrateShops();
505 lars 63
            $this->migrateOrderTypes();
985 lars 64
            if ( env( 'site' ) == env( 'shop' ) )
65
            {
66
                $this->migrateWebSettings();
67
            }
496 lars 68
            $this->migratePaymentMethods();
508 lars 69
            $this->migrateShippingGroups();
517 lars 70
            $this->migrateShippings();
580 lars 71
            $this->migrateManufacturers();
794 lars 72
            $this->migrateMedia();
578 lars 73
            $this->migrateActions();
74
            $this->migrateDirs();
75
            $this->migrateItems();
620 lars 76
            $this->migrateTemplates();
795 lars 77
            $this->migrateSalesPortalTypes();
620 lars 78
            $this->migrateSalesPortals();
79
            $this->migrateSalesPortalItems();
465 lars 80
            if ( env( 'site' ) == env( 'shop' ) )
81
            {
538 lars 82
                $this->migratePriceAgencies();
465 lars 83
                $this->migrateUsers();
84
                $this->migrateAddresses();
85
                $this->migrateOrderAddresses();
86
                $this->migrateOrders();
87
                $this->migrateOrderItems();
88
            }
294 lars 89
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung beendet" );
234 lars 90
        }
260 lars 91
 
1601 lars 92
        private function migrateShops(): void
433 lars 93
        {
527 lars 94
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Shops" );
486 lars 95
            $start = 0;
527 lars 96
            $sql = "
97
                SELECT
486 lars 98
                    MAX(id) AS start
99
                FROM
527 lars 100
                    shops
486 lars 101
            ";
527 lars 102
            $row = DB::connection( 'mysql' )->select( $sql );
103
            if ( $row[0]->start )
486 lars 104
            {
527 lars 105
                $start = $row[0]->start;
486 lars 106
            }
527 lars 107
            $sql = "SELECT
433 lars 108
                    *
109
                FROM
527 lars 110
                    shops
486 lars 111
                WHERE
112
                    id>" . $start . "
433 lars 113
            ";
527 lars 114
            $shops = DB::connection( 'old' )->select( $sql );
115
            foreach ( $shops as $oldShop )
433 lars 116
            {
527 lars 117
                $shop = new Shop();
118
                $shop->id = $oldShop->ID;
119
                $shop->name = $oldShop->Name;
615 lars 120
                $shop->short = '';
121
                if ( isset( $oldShop->short ) && $oldShop->short )
122
                {
123
                    $shop->short = $oldShop->short;
124
                }
527 lars 125
                $shop->re_short = '';
126
                if ( isset( $oldShop->re_short ) && $oldShop->re_short )
433 lars 127
                {
527 lars 128
                    $shop->re_short = $oldShop->re_short;
433 lars 129
                }
527 lars 130
                if ( isset( $oldShop->preisindex_ek ) && $oldShop->preisindex_ek )
433 lars 131
                {
527 lars 132
                    $shop->preisindex_ek = $oldShop->preisindex_ek;
433 lars 133
                }
527 lars 134
                $shop->ebay = $oldShop->ebay;
135
                $shop->erfassung = $oldShop->erfassung;
136
                if ( isset( $oldShop->status ) && $oldShop->status )
433 lars 137
                {
527 lars 138
                    $shop->status = $oldShop->status;
433 lars 139
                }
527 lars 140
                if ( isset( $oldShop->rang ) && $oldShop->rang )
141
                {
142
                    $shop->rank = $oldShop->rang;
143
                }
144
                $shop->klonziel = $oldShop->klonziel;
145
                $shop->konroot = $oldShop->konroot;
146
                if ( isset( $oldShop->home ) && $oldShop->home )
147
                {
148
                    $shop->home = $oldShop->home;
149
                }
150
                $shop->database = $oldShop->database;
151
                $shop->domain = $oldShop->domain;
152
                $shop->mail_server = $oldShop->mail_server;
153
                $shop->mail_user = $oldShop->mail_user;
154
                $shop->mail_password = $oldShop->mail_passwort;
155
                $shop->save();
156
            }
157
 
158
        }
159
 
1601 lars 160
        private function migrateOrderTypes(): void
527 lars 161
        {
162
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellarten" );
163
            $start = 0;
164
            $sql = "SELECT
165
                    MAX(id) AS start
166
                FROM
167
                    order_types
168
            ";
169
            $row = DB::connection( "mysql" )->select( $sql );
170
            if ( $row[0]->start )
171
            {
172
                $start = $row[0]->start;
173
            }
174
            $sql = "SELECT
175
                    *
176
                FROM
177
                    bestellart
178
                WHERE
179
                    id>" . $start . "
180
            ";
181
            $methods = DB::connection( 'old' )->select( $sql );
182
            foreach ( $methods as $method )
788 lars 183
            {
184
                $short = '';
615 lars 185
                if ( isset( $method->short ) && $method->short )
186
                {
187
                    $short = $method->short;
188
                }
189
 
527 lars 190
                OrderType::factory()->create( [
191
                    "id"            => $method->id,
192
                    "internal_name" => $method->rufname,
193
                    "name"          => $method->name,
615 lars 194
                    "short"         => $short,
527 lars 195
                ] );
196
            }
197
        }
198
 
1601 lars 199
        private function migratePaymentMethods(): void
527 lars 200
        {
201
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Zahlungsmethoden" );
202
            $start = 0;
203
            $sql = "SELECT
204
                    MAX(id) AS start
205
                FROM
206
                    payment_methods
207
            ";
208
            $row = DB::connection( "mysql" )->select( $sql );
209
            if ( $row[0]->start )
210
            {
211
                $start = $row[0]->start;
212
            }
213
            $sql = "SELECT
214
                    *
215
                FROM
216
                    zahlungsarten
217
                WHERE
218
                    id>" . $start . "
219
            ";
220
            $methods = DB::connection( 'old' )->select( $sql );
221
            foreach ( $methods as $method )
222
            {
223
                PaymentMethod::factory()->create( [
224
                    "id"            => $method->id,
225
                    "name"          => $method->name,
226
                    "discount"      => $method->abschlag,
227
                    "internal_name" => $method->interner_name,
228
                    "info_in_shop"  => $method->info_im_shop,
229
                    "shipping_text" => $method->versandtextbaustein,
230
                ] );
231
            }
232
        }
233
 
1601 lars 234
        private function migrateShippingGroups(): void
527 lars 235
        {
236
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandgruppen" );
237
            $sql = "SELECT
238
                    *
239
                FROM
240
                    versandgruppen
241
            ";
242
            $methods = DB::connection( 'old' )->select( $sql );
954 lars 243
            $progressbar = $this->output->createProgressBar( count( $methods ) );
244
            $progressbar->start();
527 lars 245
            foreach ( $methods as $group )
246
            {
954 lars 247
                $item = ShippingGroup::find( $group->id );
248
                if ( !isset( $item->id ) )
249
                {
250
                    ShippingGroup::factory()->create( [
251
                        "id"            => $group->id,
252
                        "name"          => $group->name,
253
                        "conditions"    => $group->bedingungen,
254
                        "icon"          => $group->icon,
255
                        "rank"          => $group->rang,
256
                        "shipping_text" => $group->versandtextbaustein,
257
                        "created_by"    => $group->erstellt_von,
258
                        "updated_by"    => $group->geaendert_von,
259
                        "updated_at"    => $group->geaendert_am,
260
                        "created_at"    => $group->erstellt_am,
261
                    ] );
262
                }
263
                else
264
                {
265
                    $item->name = $group->name;
266
                    $item->conditions = $group->bedingungen;
267
                    $item->icon = $group->icon;
268
                    $item->rank = $group->rang;
269
                    $item->shipping_text = $group->versandtextbaustein;
270
                    $item->updated_by = $group->geaendert_von;
271
                    $item->updated_at = $group->geaendert_am;
272
                    $item->save();
273
                }
274
                $progressbar->advance();
527 lars 275
            }
954 lars 276
            $progressbar->finish();
277
            $progressbar->clear();
527 lars 278
        }
279
 
1601 lars 280
        private function migrateShippings(): void
527 lars 281
        {
282
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandoptionen" );
283
            $sql = "SELECT
284
                    *
285
                FROM
286
                    versand
287
            ";
288
            $methods = DB::connection( 'old' )->select( $sql );
289
            foreach ( $methods as $group )
290
            {
820 lars 291
                $item = Shipping::find( $group->id );
819 lars 292
                if ( isset( $item->id ) )
293
                {
294
                    $item->rank = $group->rang;
295
                    $item->shipping_group_id = $group->versandgruppen_id;
296
                    $item->name = $group->name;
297
                    $item->info_shop = $group->info_shop;
298
                    $item->info_mail = $group->info_mail;
299
                    $item->info_internal = $group->info_intern;
300
                    $item->island_shipping = $group->inselversand;
301
                    $item->additions = $group->zusaetze;
302
                    $item->status = $group->status;
303
                    $item->price = $group->preis;
304
                    $item->calc_weight_from = $group->berechnung_kg_von;
305
                    $item->calc_weight_to = $group->berechnung_kg_bis;
306
                    $item->calc_price_from = $group->berechnung_preis_von;
307
                    $item->calc_price_to = $group->berechnung_preis_bis;
308
                    $item->conditions = $group->bedingungen;
309
                    $item->tax_rate = $group->steuersatz;
310
                    $item->updated_by = $group->geaendert_von;
821 lars 311
                    $item->updated_at = $group->geaendert_am;
819 lars 312
                    $item->save();
313
                }
314
                else
315
                {
316
                    Shipping::factory()->create( [
317
                        "id"                => $group->id,
318
                        "rank"              => $group->rang,
319
                        "shipping_group_id" => $group->versandgruppen_id,
320
                        "name"              => $group->name,
321
                        "info_shop"         => $group->info_shop,
322
                        "info_mail"         => $group->info_mail,
323
                        "info_internal"     => $group->info_intern,
324
                        "island_shipping"   => $group->inselversand,
325
                        "additions"         => $group->zusaetze,
326
                        "status"            => $group->status,
327
                        "price"             => $group->preis,
328
                        "calc_weight_from"  => $group->berechnung_kg_von,
329
                        "calc_weight_to"    => $group->berechnung_kg_bis,
330
                        "calc_price_from"   => $group->berechnung_preis_von,
331
                        "calc_price_to"     => $group->berechnung_preis_bis,
332
                        "conditions"        => $group->bedingungen,
333
                        "tax_rate"          => $group->steuersatz,
334
                        "created_by"        => $group->erstellt_von,
335
                        "updated_by"        => $group->geaendert_von,
336
                        "updated_at"        => $group->geaendert_am,
337
                        "created_at"        => $group->erstellt_am,
338
                    ] );
339
                }
340
                $sql = "SELECT
341
                        *
342
                    FROM
343
                        versand_to_land
344
                    WHERE
822 lars 345
                        versand_id=" . $group->id . "
819 lars 346
                ";
347
                $r = DB::connection( 'old' )->select( $sql );
348
                foreach ( $r as $row )
349
                {
824 lars 350
                    $item = ShippingCountry::where( "shipping_id", "=", $row->versand_id )->where( "country_id", "=", $row->country_id )->get();
953 lars 351
                    if ( !isset( $item[0]->id ) )
819 lars 352
                    {
826 lars 353
                        ShippingCountry::factory()->create( [ "shipping_id" => $row->versand_id, "country_id" => $row->country_id, ] );
819 lars 354
                    }
355
                }
356
                $sql = "SELECT
357
                        *
358
                    FROM
359
                        versand_to_zahlarten
360
                    WHERE
827 lars 361
                        versand_id=" . $group->id . "
819 lars 362
                ";
363
                $r = DB::connection( 'old' )->select( $sql );
364
                foreach ( $r as $row )
365
                {
366
                    $item = ShippingPaymentMethod::where( "shipping_id", "=", $row->versand_id )->where( "payment_method_id", "=", $row->zahlart_id )->get();
953 lars 367
                    if ( !isset( $item[0]->id ) )
819 lars 368
                    {
369
                        ShippingPaymentMethod::factory()->create( [ "shipping_id" => $row->versand_id, "payment_method_id" => $row->zahlart_id, ] );
370
                    }
371
                }
527 lars 372
            }
373
        }
374
 
1601 lars 375
        private function migrateActions(): void
527 lars 376
        {
377
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktionen" );
378
            $sql = "
379
                SELECT
380
                    *
381
                FROM
382
                    Aktionen
383
            ";
384
            $actions = DB::connection( 'old' )->select( $sql );
385
            $progressbar = $this->output->createProgressBar( count( $actions ) );
386
            $progressbar->start();
387
            foreach ( $actions as $action )
388
            {
846 lars 389
                $actionDB = Action::find( $action->ID );
390
                if ( !isset( $actionDB->id ) )
391
                {
392
                    $actionDB = new Action();
393
                    $actionDB->id = $action->ID;
394
                    $actionDB->created_by = "WebanOS Laravel Upgrade";
395
                }
527 lars 396
                $actionDB->headline = $action->headline;
397
                $actionDB->text = $action->text;
1463 lars 398
                $actionDB->rank = $action->rang;
527 lars 399
                $actionDB->config = $action->config;
400
                $actionDB->category = $action->Kategorie;
401
                $actionDB->notes = $action->notizen;
402
                $actionDB->valid_from = $action->von;
403
                $actionDB->valid_to = $action->bis;
404
                $actionDB->updated_by = "WebanOS Laravel Upgrade";
405
                $actionDB->save();
794 lars 406
                $this->migrateActionMedia( $actionDB->id );
433 lars 407
                $progressbar->advance();
408
            }
409
            $progressbar->finish();
410
            $progressbar->clear();
411
        }
412
 
1601 lars 413
        private function migrateDirs(): void
260 lars 414
        {
294 lars 415
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorien" );
260 lars 416
            $sql = '
417
                SELECT
418
                    *
419
                FROM
420
                    directory
421
            ';
422
            $dirs = DB::connection( 'old' )->select( $sql );
301 lars 423
            $progressbar = $this->output->createProgressBar( count( $dirs ) );
788 lars 424
            $progressbar->start();
425
            DB::statement( 'SET FOREIGN_KEY_CHECKS=0' );
260 lars 426
            foreach ( $dirs as $row )
427
            {
794 lars 428
                $dir = Directory::find( $row->ID );
429
                if ( isset( $dir->id ) )
430
                {
431
                    $progressbar->advance();
432
                    continue;
433
                }
284 lars 434
                $ersteller = $row->erstellt_von;
435
                if ( !$ersteller )
436
                {
437
                    $ersteller = "WebanOS Laravel Upgrade";
438
                }
285 lars 439
                $bearbeiter = $row->letzte_Aenderung_von;
284 lars 440
                if ( !$bearbeiter )
441
                {
442
                    $bearbeiter = "WebanOS Laravel Upgrade";
443
                }
303 lars 444
                $dir = new Directory();
445
                $dir->id = $row->ID;
304 lars 446
                $dir->directory_id = $row->Father;
303 lars 447
                $dir->name = $row->Name;
432 lars 448
                $dir->articlemaster = $row->Artikelstamm;
304 lars 449
                $dir->status = $row->status;
303 lars 450
                $dir->kennung = $row->Kennung;
304 lars 451
                $dir->description = $row->Beschreibung;
1601 lars 452
                $dir->description2 = $row->Beschreibung2;
304 lars 453
                $dir->short_line_1 = $row->short_line_1;
303 lars 454
                $dir->url = $row->url;
455
                $dir->created_at = $row->erstellt_am;
456
                $dir->created_by = $ersteller;
457
                $dir->updated_by = $bearbeiter;
458
                $dir->updated_at = $row->letzte_Aenderung_am;
459
                $dir->save();
794 lars 460
                $this->migrateDirMedia( $dir->id );
301 lars 461
                $progressbar->advance();
260 lars 462
            }
301 lars 463
            $progressbar->finish();
788 lars 464
            $progressbar->clear();
465
            DB::statement( 'SET FOREIGN_KEY_CHECKS=1' );
260 lars 466
        }
467
 
1601 lars 468
        private function migrateItems(): void
260 lars 469
        {
294 lars 470
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel" );
260 lars 471
            $sql = '
472
                SELECT
473
                    *
474
                FROM
475
                    artikel
792 lars 476
                WHERE
793 lars 477
                    father != -3 OR father IS NULL
260 lars 478
            ';
788 lars 479
            $items = DB::connection( 'old' )->select( $sql );
480
            $progressbar = $this->output->createProgressBar( count( $items ) );
301 lars 481
            $progressbar->start();
788 lars 482
            foreach ( $items as $row )
260 lars 483
            {
858 lars 484
                $ersteller = $row->erstellt_von;
485
                if ( !$ersteller )
486
                {
487
                    $ersteller = "WebanOS Laravel Upgrade";
488
                }
788 lars 489
                $item = Item::find( $row->ID );
858 lars 490
                if ( !isset( $item->id ) )
788 lars 491
                {
858 lars 492
                    $item = new Item();
493
                    $item->id = $row->ID;
494
                    $item->created_at = $row->erstellt_am;
495
                    $item->created_by = $ersteller;
788 lars 496
                }
284 lars 497
                $item->directory_id = $row->Father;
590 lars 498
                $item->manufacturer_id = $row->hersteller;
284 lars 499
                $item->name = $row->kurzbezeichnung;
500
                $item->status = $row->status;
854 lars 501
                $item->shipping_group_id = $row->versandgruppen_id;
855 lars 502
                $item->weight = $row->gewicht;
284 lars 503
                $item->kennung = $row->kennung;
504
                $item->description = $row->beschreibung;
505
                $item->updated_at = $row->letzte_Aenderung_am;
287 lars 506
                $bearbeiter = $row->letzte_Aenderung_von;
282 lars 507
                if ( !$bearbeiter )
281 lars 508
                {
282 lars 509
                    $bearbeiter = "WebanOS Laravel Upgrade";
281 lars 510
                }
284 lars 511
                $item->updated_by = $bearbeiter;
512
                $item->save();
794 lars 513
                $this->migrateItemMedia( $item->id );
301 lars 514
                $progressbar->advance();
260 lars 515
            }
301 lars 516
            $progressbar->finish();
302 lars 517
            $progressbar->clear();
294 lars 518
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preise" );
494 lars 519
            $start = 0;
492 lars 520
            $sql = "SELECT
521
                    MAX(id) AS start
522
                FROM
523
                    prices
524
            ";
525
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 526
            if ( $row[0]->start )
492 lars 527
            {
527 lars 528
                $start = $row[0]->start;
492 lars 529
            }
260 lars 530
            $sql = "
531
                SELECT
532
                    p.*
533
                FROM
534
                    preise p
535
                JOIN
536
                    artikel a
537
                ON
538
                    a.id=p.artikel_id
539
                WHERE
540
                    a.father >=-1
492 lars 541
                AND
542
                    p.id>" . $start . "
260 lars 543
            ";
544
            $prices = DB::connection( 'old' )->select( $sql );
301 lars 545
            $progressbar = $this->output->createProgressBar( count( $prices ) );
546
            $progressbar->start();
260 lars 547
            foreach ( $prices as $price )
548
            {
549
                Price::factory()->createQuietly( [
493 lars 550
                    "id"          => $price->id,
260 lars 551
                    "item_id"     => $price->artikel_id,
552
                    "preis_index" => $price->preis_index,
553
                    "preis"       => $price->preis,
554
                    "staffel"     => $price->staffel,
555
                    "created_at"  => $price->geaendert_am,
288 lars 556
                    "created_by"  => $price->geaendert_von,
557
                    "updated_by"  => $price->geaendert_von,
260 lars 558
                    "updated_at"  => $price->geaendert_am
559
                ] );
301 lars 560
                $progressbar->advance();
260 lars 561
            }
301 lars 562
            $progressbar->finish();
302 lars 563
            $progressbar->clear();
260 lars 564
        }
565
 
1601 lars 566
        public function migrateMedia(): void
433 lars 567
        {
527 lars 568
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Medien" );
486 lars 569
            $start = 0;
433 lars 570
            $sql = "SELECT
527 lars 571
                    MAX(id) AS start
486 lars 572
                FROM
527 lars 573
                    media
486 lars 574
            ";
575
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 576
            if ( $row[0]->start )
486 lars 577
            {
527 lars 578
                $start = $row[0]->start;
486 lars 579
            }
527 lars 580
            $sql = "
581
                SELECT
582
                    *
583
                FROM
584
                    medien
585
                WHERE
586
                    id>" . $start . "
587
            ";
588
            $media = DB::connection( 'old' )->select( $sql );
589
            $progressbar = $this->output->createProgressBar( count( $media ) );
590
            $progressbar->start();
591
            foreach ( $media as $medium )
592
            {
593
                $mediumDB = new Medium();
594
                $mediumDB->id = $medium->id;
595
                $mediumDB->name = $medium->name;
596
                $mediumDB->folder = $medium->folder;
597
                $mediumDB->medium_type_id = $medium->typ;
598
                $mediumDB->description = $medium->beschreibung;
599
                if ( $medium->erstellt_am )
600
                {
601
                    $mediumDB->created_at = date( "Y-m-d H:i:s", $medium->erstellt_am );
602
                }
603
                $ersteller = $medium->erstellt_von;
604
                if ( !$ersteller )
605
                {
606
                    $ersteller = "WebanOS Laravel Upgrade";
607
                }
608
                $bearbeiter = $medium->letzte_aenderung_von;
609
                if ( !$bearbeiter )
610
                {
611
                    $bearbeiter = "WebanOS Laravel Upgrade";
612
                }
613
                $mediumDB->created_by = $ersteller;
614
                $mediumDB->updated_by = $bearbeiter;
615
                $mediumDB->save();
616
                $progressbar->advance();
617
            }
618
            $progressbar->finish();
619
            $progressbar->clear();
620
        }
621
 
1601 lars 622
        public function migrateActionMedia( $aktionId ): void
527 lars 623
        {
486 lars 624
            $sql = "SELECT
433 lars 625
                    *
626
                FROM
527 lars 627
                    aktionen_medien
486 lars 628
                WHERE
844 lars 629
                    aktionen_id=" . $aktionId . "
433 lars 630
            ";
631
            $media = DB::connection( 'old' )->select( $sql );
632
            foreach ( $media as $row )
633
            {
817 lars 634
                $medium = ActionMedium::find( $row->id );
845 lars 635
                if ( !isset( $medium->id ) )
794 lars 636
                {
845 lars 637
                    $medium = new ActionMedium();
956 lars 638
                    $medium->id = $row->id;
845 lars 639
                    $medium->created_by = "WebanOS Laravel Upgrade";
794 lars 640
                }
527 lars 641
                $medium->action_id = $row->aktionen_id;
433 lars 642
                $medium->medium_id = $row->medien_id;
643
                $medium->rank = $row->rang;
644
                $medium->updated_by = "WebanOS Laravel Upgrade";
645
                $medium->save();
646
            }
647
        }
648
 
1601 lars 649
        public function migrateDirMedia( $dir ): void
260 lars 650
        {
486 lars 651
            $sql = "SELECT
260 lars 652
                    *
653
                FROM
527 lars 654
                    directory_medien
486 lars 655
                WHERE
794 lars 656
                    directory_id=" . $dir . "
260 lars 657
            ";
527 lars 658
            $media = DB::connection( 'old' )->select( $sql );
659
            foreach ( $media as $row )
260 lars 660
            {
817 lars 661
                $medium = DirectoryMedium::find( $row->medien_id );
662
                if ( isset( $medium->medien_id ) )
794 lars 663
                {
664
                    continue;
665
                }
527 lars 666
                $medium = new DirectoryMedium();
667
                $medium->directory_id = $row->directory_id;
668
                $medium->medium_id = $row->medien_id;
669
                $medium->rank = $row->rang;
670
                $medium->similar = $row->aehnlich;
671
                $medium->created_at = $row->zugeordnet_am;
672
                $medium->updated_at = $row->zugeordnet_am;
673
                $medium->created_by = "WebanOS Laravel Upgrade";
674
                $medium->updated_by = "WebanOS Laravel Upgrade";
675
                $medium->save();
260 lars 676
            }
677
        }
272 lars 678
 
1601 lars 679
        public function migrateItemMedia( $item ): void
272 lars 680
        {
433 lars 681
            $sql = "SELECT
272 lars 682
                    *
683
                FROM
527 lars 684
                    artikel_medien
486 lars 685
                WHERE
817 lars 686
                    artikel_id=" . $item . "
272 lars 687
            ";
688
            $media = DB::connection( 'old' )->select( $sql );
433 lars 689
            foreach ( $media as $row )
272 lars 690
            {
817 lars 691
                $medium = ItemMedium::find( $row->medien_id );
692
                if ( isset( $medium->medien_id ) )
794 lars 693
                {
694
                    continue;
695
                }
527 lars 696
                $medium = new ItemMedium();
697
                $medium->item_id = $row->artikel_id;
433 lars 698
                $medium->medium_id = $row->medien_id;
699
                $medium->rank = $row->rang;
527 lars 700
                $medium->similar = $row->aehnlich;
701
                $medium->created_at = $row->zugeordnet_am;
702
                $medium->updated_at = $row->zugeordnet_am;
433 lars 703
                $medium->created_by = "WebanOS Laravel Upgrade";
704
                $medium->updated_by = "WebanOS Laravel Upgrade";
705
                $medium->save();
272 lars 706
            }
707
        }
304 lars 708
 
1601 lars 709
        private function migrateUsers(): void
304 lars 710
        {
711
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere User" );
433 lars 712
            $start = 0;
713
            $sql = "SELECT
714
                    MAX(id) AS start
715
                FROM
434 lars 716
                    users
433 lars 717
            ";
718
            $row = DB::connection( "order" )->select( $sql );
527 lars 719
            if ( $row[0]->start )
433 lars 720
            {
527 lars 721
                $start = $row[0]->start;
433 lars 722
            }
723
            $sql = "SELECT
724
                    *
725
                FROM
434 lars 726
                    Logins
433 lars 727
                WHERE
728
                    id>" . $start . "
729
            ";
437 lars 730
            $users = DB::connection( "oldOrder" )->select( $sql );
731
            $progressbar = $this->output->createProgressBar( count( $users ) );
448 lars 732
            $progressbar->start();
437 lars 733
            foreach ( $users as $oldUser )
433 lars 734
            {
443 lars 735
                $ersteller = $oldUser->erstellt_von;
442 lars 736
                if ( !$ersteller )
737
                {
738
                    $ersteller = "WebanOS Laravel Upgrade";
739
                }
443 lars 740
                $bearbeiter = $oldUser->letzte_Aenderung_von;
442 lars 741
                if ( !$bearbeiter )
742
                {
743
                    $bearbeiter = "WebanOS Laravel Upgrade";
744
                }
437 lars 745
                $user = new User();
438 lars 746
                $user->id = $oldUser->ID;
437 lars 747
                $user->email = $oldUser->E_Mail;
748
                $user->created_at = $oldUser->erstellt_am;
442 lars 749
                $user->created_by = $ersteller;
750
                $user->updated_by = $bearbeiter;
437 lars 751
                $user->updated_at = $oldUser->letzte_Aenderung_am;
752
                $user->save();
441 lars 753
                $progressbar->advance();
433 lars 754
            }
441 lars 755
            $progressbar->finish();
756
            $progressbar->clear();
304 lars 757
        }
758
 
1601 lars 759
        private function migrateAddresses( bool $isOrder = false ): void
304 lars 760
        {
445 lars 761
            $typ = "Adressen";
762
            $table = "addresses";
763
            $oldTable = "adresse";
764
            if ( $isOrder === true )
765
            {
766
                $typ = "Bestelladressen";
767
                $table = "order_addresses";
768
                $oldTable = "bestelladresse";
769
            }
770
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere " . $typ );
771
            $start = 0;
772
            $sql = "SELECT
773
                    MAX(id) AS start
774
                FROM
775
                    " . $table . "
776
            ";
777
            $row = DB::connection( "order" )->select( $sql );
527 lars 778
            if ( $row[0]->start )
445 lars 779
            {
527 lars 780
                $start = $row[0]->start;
445 lars 781
            }
782
            $sql = "SELECT
783
                    *
784
                FROM
785
                    " . $oldTable . "
786
                WHERE
787
                    id>" . $start . "
788
            ";
789
            $addresses = DB::connection( "oldOrder" )->select( $sql );
790
            $progressbar = $this->output->createProgressBar( count( $addresses ) );
447 lars 791
            $progressbar->start();
445 lars 792
            foreach ( $addresses as $oldAddress )
793
            {
794
                $ersteller = "WebanOS Laravel Upgrade";
795
                $bearbeiter = "WebanOS Laravel Upgrade";
458 lars 796
                if ( $isOrder === true )
452 lars 797
                {
798
                    $address = new OrderAddress();
799
                }
800
                else
801
                {
802
                    $address = new Address();
803
                }
445 lars 804
                $address->id = $oldAddress->id;
805
                $address->user_id = $oldAddress->logins_id;
806
                $address->salutation = $oldAddress->anrede;
807
                $address->pro_title = $oldAddress->pro_title;
808
                $address->name = $oldAddress->vorname;
809
                $address->lastname = $oldAddress->nachname;
810
                $address->company = $oldAddress->firma;
811
                $address->company2 = $oldAddress->firma2;
812
                $address->street = $oldAddress->strasse1;
813
                $address->houseno = $oldAddress->str_nr1;
814
                $address->street2 = $oldAddress->strasse2;
815
                $address->zip = $oldAddress->plz;
816
                $address->city = $oldAddress->ort;
817
                $address->country_id = $oldAddress->land;
818
                $address->state_id = $oldAddress->state;
819
                $address->phone = $oldAddress->telefon;
820
                $address->fax = $oldAddress->fax;
821
                $address->email = $oldAddress->email;
822
                $address->nettocalculation = $oldAddress->nettoberechnung;
450 lars 823
                $address->hr_nr = $oldAddress->hr_nr;
445 lars 824
                $address->vat_id = $oldAddress->vat_id;
825
                $address->vat_free = $oldAddress->mwst_befreiung;
826
                $address->legal_form = $oldAddress->legal_form;
827
                $address->comment = $oldAddress->comment;
451 lars 828
                $address->created_at = $oldAddress->letzte_aenderung_am;
445 lars 829
                $address->created_by = $ersteller;
830
                $address->updated_by = $bearbeiter;
831
                $address->updated_at = $oldAddress->letzte_aenderung_am;
832
                $address->save();
833
                $progressbar->advance();
834
            }
835
            $progressbar->finish();
836
            $progressbar->clear();
304 lars 837
        }
838
 
1601 lars 839
        private function migrateOrderAddresses(): void
304 lars 840
        {
445 lars 841
            $this->migrateAddresses( true );
304 lars 842
        }
843
 
1601 lars 844
        private function migrateOrders(): void
304 lars 845
        {
846
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellungen" );
454 lars 847
            $start = 0;
848
            $sql = "SELECT
849
                    MAX(id) AS start
850
                FROM
851
                    orders
852
            ";
853
            $row = DB::connection( "order" )->select( $sql );
527 lars 854
            if ( $row[0]->start )
454 lars 855
            {
527 lars 856
                $start = $row[0]->start;
454 lars 857
            }
858
            $sql = "SELECT
859
                    *
860
                FROM
861
                    Bestellung
862
                WHERE
863
                    id>" . $start . "
864
            ";
865
            $orders = DB::connection( "oldOrder" )->select( $sql );
866
            $progressbar = $this->output->createProgressBar( count( $orders ) );
867
            $progressbar->start();
868
            foreach ( $orders as $oldOrder )
869
            {
501 lars 870
                $paidAt = $oldOrder->bezahlt_am;
871
                if ( $paidAt == "0000-00-00 00:00:00" )
872
                {
502 lars 873
                    $paidAt = null;
501 lars 874
                }
454 lars 875
                $order = new Order();
876
                $order->id = $oldOrder->ID;
481 lars 877
                $order->shop_id = $oldOrder->shops_ID;
459 lars 878
                $order->order_type_id = $oldOrder->bestellart_id;
458 lars 879
                $order->payment_method_id = $oldOrder->zahlart_id;
880
                $order->user_id = $oldOrder->Login;
881
                $order->ship_addr_id = $oldOrder->ship_addr_id;
882
                $order->bill_addr_id = $oldOrder->bill_addr_id;
883
                $order->paid = $oldOrder->bezahlt;
501 lars 884
                $order->paid_at = $paidAt;
458 lars 885
                $order->paid_comment = $oldOrder->bezahlt_bemerkung;
886
                $order->foreign_id = $oldOrder->fremd_id;
887
                $order->foreign_payment_id = $oldOrder->bezahlt_fremdid;
888
                $order->status = $oldOrder->status;
889
                $order->total_amount_buffer = $oldOrder->gesamtsumme_buffer;
890
                $order->item_status_buffer = $oldOrder->artikelstatus_buffer;
891
                $order->invoice_status_buffer = $oldOrder->rechnungsstatus_buffer;
504 lars 892
                $order->delivery_note_status_buffer = $oldOrder->lieferscheinStatus_buffer;
458 lars 893
                $order->tax = $oldOrder->tax;
894
                $order->comment = $oldOrder->Bemerkung;
895
                $order->external_comment = $oldOrder->Bemerkung_extern;
896
                $order->note = $oldOrder->notiz;
460 lars 897
                $order->additional_info = $oldOrder->zusatzInfo;
458 lars 898
                $order->shipping_group_id = $oldOrder->versandgruppen_id;
899
                $order->kk_info = $oldOrder->kk_info;
900
                $order->created_by = $oldOrder->erstellt_von;
901
                $order->updated_by = $oldOrder->letzte_Aenderung_von;
902
                $order->updated_at = $oldOrder->letzte_Aenderung_am;
903
                $order->created_at = $oldOrder->erstellt_am;
454 lars 904
                $order->save();
905
                $progressbar->advance();
906
            }
907
            $progressbar->finish();
908
            $progressbar->clear();
304 lars 909
        }
910
 
1601 lars 911
        private function migrateOrderItems(): void
304 lars 912
        {
578 lars 913
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel in Bestellungen" );
454 lars 914
            $start = 0;
915
            $sql = "SELECT
916
                    MAX(id) AS start
917
                FROM
918
                    order_items
919
            ";
920
            $row = DB::connection( "order" )->select( $sql );
527 lars 921
            if ( $row[0]->start )
454 lars 922
            {
527 lars 923
                $start = $row[0]->start;
454 lars 924
            }
925
            $sql = "SELECT
926
                    *
927
                FROM
928
                    artikel_to_Bestellung
929
                WHERE
930
                    id>" . $start . "
931
            ";
932
            $orderItems = DB::connection( "oldOrder" )->select( $sql );
933
            $progressbar = $this->output->createProgressBar( count( $orderItems ) );
934
            $progressbar->start();
935
            foreach ( $orderItems as $oldOrderItem )
936
            {
573 lars 937
                $exported = $oldOrderItem->exported;
938
                if ( $exported == "0000-00-00 00:00:00" )
939
                {
940
                    $exported = null;
941
                }
942
                $exported_invoice = $oldOrderItem->exported_rechnung;
943
                if ( $exported_invoice == "0000-00-00 00:00:00" )
944
                {
945
                    $exported_invoice = null;
946
                }
947
                $exported_delivery_note = $oldOrderItem->exported_lieferschein;
948
                if ( $exported_delivery_note == "0000-00-00 00:00:00" )
949
                {
950
                    $exported_delivery_note = null;
951
                }
561 lars 952
                OrderItem::factory()->create( [
567 lars 953
                    "id"                     => $oldOrderItem->ID,
954
                    "item_id"                => $oldOrderItem->artikel,
955
                    "order_id"               => $oldOrderItem->Bestellung,
568 lars 956
                    "name"                   => $oldOrderItem->Bezeichnung,
567 lars 957
                    "amount"                 => $oldOrderItem->Menge,
958
                    "price"                  => $oldOrderItem->Preis_pro_Stueck,
959
                    "father"                 => $oldOrderItem->father,
960
                    "status"                 => $oldOrderItem->status,
961
                    "delivery_status"        => $oldOrderItem->lieferstatus,
569 lars 962
                    "invoice_status"         => $oldOrderItem->rechnungStatus,
567 lars 963
                    "delivery_note_status"   => $oldOrderItem->lieferscheinStatus,
964
                    "foreign_id"             => $oldOrderItem->fremd_id,
570 lars 965
                    "option_input"           => $oldOrderItem->option_eingabe,
567 lars 966
                    "description"            => $oldOrderItem->beschreibung,
569 lars 967
                    "rank"                   => $oldOrderItem->Rang,
567 lars 968
                    "tax"                    => $oldOrderItem->mwst,
969
                    "orig_value"             => $oldOrderItem->orig_value,
970
                    "orig_currency"          => $oldOrderItem->orig_currency,
971
                    "hash"                   => $oldOrderItem->hash,
573 lars 972
                    "exported"               => $exported,
574 lars 973
                    "exported_invoice"       => $exported_invoice,
974
                    "exported_delivery_note" => $exported_delivery_note,
567 lars 975
 
561 lars 976
                ] );
454 lars 977
                $progressbar->advance();
978
            }
979
            $progressbar->finish();
980
            $progressbar->clear();
304 lars 981
        }
535 lars 982
 
1601 lars 983
        private function migrateSalesPortalTypes(): void
535 lars 984
        {
985
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalarten" );
986
            $start = 0;
987
            $sql = "SELECT
988
                    MAX(id) start
989
                FROM
990
                    sales_portal_types
991
            ";
992
            $row = DB::connection( 'cms' )->select( $sql );
993
            if ( $row[0]->start )
994
            {
995
                $start = $row[0]->start;
996
            }
997
            $sql = "SELECT
998
                    *
999
                FROM
1000
                    vportale_art
1001
                WHERE
1002
                    id>" . $start . "
1003
            ";
1004
            $portals = DB::connection( 'cms' )->select( $sql );
552 lars 1005
            $progressbar = $this->output->createProgressBar( count( $portals ) );
1006
            $progressbar->start();
535 lars 1007
            foreach ( $portals as $portal )
1008
            {
1009
                SalesPortalType::factory()->create( [
1010
                    "id"                   => $portal->id,
1011
                    "type"                 => $portal->art,
1012
                    "name"                 => $portal->bezeichnung,
1013
                    "max_categories"       => $portal->max_categories,
1014
                    "min_depth_category"   => $portal->min_depth_category,
1015
                    "only_end_category"    => $portal->only_end_category,
1016
                    "script"               => $portal->skript,
1017
                    "script_folder"        => $portal->script_folder,
1018
                    "commit_possibilities" => $portal->commit_posibilities,
1019
                    "revokeable"           => $portal->stornierbar,
1020
                ] );
552 lars 1021
                $progressbar->advance();
535 lars 1022
            }
552 lars 1023
            $progressbar->finish();
1024
            $progressbar->clear();
535 lars 1025
        }
1026
 
1601 lars 1027
        private function migrateSalesPortals(): void
535 lars 1028
        {
1029
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportale" );
1030
            $start = 0;
1031
            $sql = "SELECT
1032
                    MAX(id) start
1033
                FROM
1034
                    sales_portals
1035
            ";
1036
            $row = DB::connection( 'mysql' )->select( $sql );
1037
            if ( $row[0]->start )
1038
            {
1039
                $start = $row[0]->start;
1040
            }
1041
            $sql = "SELECT
1042
                    *
1043
                FROM
1044
                    vportale
1045
                WHERE
1046
                    id>" . $start . "
1047
            ";
1048
            $portals = DB::connection( 'old' )->select( $sql );
552 lars 1049
            $progressbar = $this->output->createProgressBar( count( $portals ) );
1050
            $progressbar->start();
535 lars 1051
            foreach ( $portals as $portal )
538 lars 1052
            {
1053
                $max_preis = 0;
1054
                $anrede = 1;
1055
                if ( isset( $portal->anrede ) )
1056
                {
1057
                    $anrede = $portal->anrede;
1058
                }
1059
                if ( isset( $portal->max_preis ) )
1060
                {
1061
                    $max_preis = $portal->max_preis;
1062
                }
535 lars 1063
                SalesPortal::factory()->create( [
538 lars 1064
                    "id"                   => $portal->id,
1065
                    "name"                 => $portal->name,
1066
                    "template"             => $portal->template,
1067
                    "sales_portal_type_id" => $portal->art,
1068
                    "sku_prefix"           => $portal->sku_prefix,
1069
                    "price_number"         => $portal->preis_nummer,
1070
                    "base_price"           => $portal->basis_preis,
1071
                    "min_price"            => $portal->min_preis,
1072
                    "max_price"            => $max_preis,
1073
                    "digits"               => $portal->runden,
1074
                    "standard_amount"      => $portal->standard_menge,
1075
                    "item_url"             => $portal->artikel_url,
1076
                    "currency"             => $portal->currency,
1077
                    "shipping_state"       => $portal->lieferstatus,
1078
                    "delivery"             => $portal->delivery,
1079
                    "shipping_cost"        => $portal->shipping_cost,
1080
                    "afterbuy"             => $portal->afterbuy,
1081
                    "salutation"           => $anrede,
1082
                    "commit_fields"        => $portal->commit_fields,
1083
                    "zip"                  => $portal->plz,
1084
                    "location"             => $portal->location,
1085
                    "created_by"           => $portal->erstellt_von,
1086
                    "updated_by"           => $portal->geaendert_von,
1087
                    "created_at"           => $portal->erstellt_am,
1088
                    "updated_at"           => $portal->geaendert_am,
535 lars 1089
                ] );
552 lars 1090
                $progressbar->advance();
535 lars 1091
            }
552 lars 1092
            $progressbar->finish();
1093
            $progressbar->clear();
535 lars 1094
        }
538 lars 1095
 
1601 lars 1096
        private function migrateSalesPortalItems(): void
538 lars 1097
        {
1098
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalartikel" );
1099
            $start = 0;
1100
            $sql = "SELECT
1101
                    MAX(id) start
1102
                FROM
1103
                    sales_portal_items
1104
            ";
1105
            $row = DB::connection( 'mysql' )->select( $sql );
1106
            if ( $row[0]->start )
1107
            {
1108
                $start = $row[0]->start;
1109
            }
1110
            $sql = "SELECT
1111
                    *
1112
                FROM
1113
                    artikel_vportale
1114
                WHERE
1115
                    id>" . $start . "
1116
            ";
1117
            $items = DB::connection( 'old' )->select( $sql );
552 lars 1118
            $progressbar = $this->output->createProgressBar( count( $items ) );
1119
            $progressbar->start();
538 lars 1120
            foreach ( $items as $item )
1121
            {
544 lars 1122
                $pickup = 0;
1123
                if ( isset( $item->pickup ) )
1124
                {
1125
                    $pickup = $item->pickup;
1126
                }
549 lars 1127
                $start = $item->start;
1128
                if ( $start == "0000-00-00 00:00:00" )
1129
                {
1130
                    $start = null;
1131
                }
547 lars 1132
                $erstellt_am = $item->erstellt_am;
1133
                if ( $erstellt_am == "0000-00-00 00:00:00" )
1134
                {
1135
                    $erstellt_am = null;
1136
                }
548 lars 1137
                $geaendert_am = $item->geaendert_am;
1138
                if ( $geaendert_am == "0000-00-00 00:00:00" )
547 lars 1139
                {
548 lars 1140
                    $geaendert_am = null;
547 lars 1141
                }
538 lars 1142
                SalesPortalItem::factory()->create( [
1143
                    "id"                              => $item->id,
1144
                    "sales_portal_id"                 => $item->vportale_id,
1145
                    "item_id"                         => $item->artikel_id,
1146
                    "sales_portal_template_id"        => $item->template_id,
1147
                    "sku"                             => $item->sku,
1148
                    "additions"                       => $item->zusaetze,
1149
                    "foreign_item_id"                 => $item->fremdartikel_id,
1150
                    "name"                            => $item->name,
1151
                    "autochange_name"                 => $item->autochange_name,
1152
                    "name_bold"                       => $item->name_fett,
1153
                    "highlight"                       => $item->highlight,
1154
                    "sub_name"                        => $item->sub_name,
1155
                    "manufacturer"                    => $item->hersteller,
1156
                    "autochange_manufacturer"         => $item->autochange_hersteller,
1157
                    "ean"                             => $item->ean,
1158
                    "autochange_ean"                  => $item->autochange_ean,
1159
                    "mpn"                             => $item->mpn,
1160
                    "autochange_mpn"                  => $item->autochange_mpn,
1161
                    "description"                     => $item->beschreibung,
1162
                    "autochange_description"          => $item->autochange_beschreibung,
541 lars 1163
                    "description_addition"            => $item->beschreibung_zusatz,
542 lars 1164
                    "autochange_description_addition" => $item->autochange_beschreibung_zusatz,
538 lars 1165
                    "price"                           => $item->preis,
1166
                    "autochange_price"                => $item->autochange_preis,
543 lars 1167
                    "currency"                        => $item->currency,
538 lars 1168
                    "tax"                             => $item->tax,
1169
                    "price_type"                      => $item->preisart,
1170
                    "amount"                          => $item->menge,
1171
                    "carrier"                         => $item->carrier,
1172
                    "carrier_cost"                    => $item->carrier_cost,
549 lars 1173
                    "start"                           => $start,
538 lars 1174
                    "duration"                        => $item->dauer,
1175
                    "category_1"                      => $item->kategorie_1,
1176
                    "category_2"                      => $item->kategorie_2,
1177
                    "category_3"                      => $item->kategorie_3,
1178
                    "bp1"                             => $item->bp1,
1179
                    "bp2"                             => $item->bp2,
1180
                    "bp3"                             => $item->bp3,
1181
                    "bp4"                             => $item->bp4,
1182
                    "bp5"                             => $item->bp5,
1183
                    "platin_search_1"                 => $item->platin_search_1,
1184
                    "platin_search_2"                 => $item->platin_search_2,
1185
                    "platin_search_3"                 => $item->platin_search_3,
1186
                    "platin_search_4"                 => $item->platin_search_4,
1187
                    "platin_search_5"                 => $item->platin_search_5,
1188
                    "search_1"                        => $item->search_1,
1189
                    "search_2"                        => $item->search_2,
1190
                    "search_3"                        => $item->search_3,
1191
                    "search_4"                        => $item->search_4,
1192
                    "search_5"                        => $item->search_5,
1193
                    "status"                          => $item->status,
1194
                    "online_status"                   => $item->online_status,
1195
                    "delivery_time"                   => $item->lieferzeit,
544 lars 1196
                    "pickup"                          => $pickup,
538 lars 1197
                    "last_feedback"                   => $item->last_feedback,
1198
                    "created_by"                      => $item->erstellt_von,
1199
                    "updated_by"                      => $item->geaendert_von,
547 lars 1200
                    "created_at"                      => $erstellt_am,
1201
                    "updated_at"                      => $geaendert_am,
538 lars 1202
                ] );
552 lars 1203
                $progressbar->advance();
538 lars 1204
            }
552 lars 1205
            $progressbar->finish();
1206
            $progressbar->clear();
555 lars 1207
        }
551 lars 1208
 
1601 lars 1209
        private function migratePriceAgencies(): void
555 lars 1210
        {
552 lars 1211
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preisagenturen" );
551 lars 1212
            $start = 0;
1213
            $sql = "SELECT
1214
                    MAX(id) start
1215
                FROM
1216
                    price_agencies
1217
            ";
1218
            $row = DB::connection( 'mysql' )->select( $sql );
1219
            if ( $row[0]->start )
1220
            {
1221
                $start = $row[0]->start;
1222
            }
1223
            $sql = "SELECT
1224
                    *
1225
                FROM
1226
                    Preisagentur
1227
                WHERE
1228
                    id>" . $start . "
1229
            ";
555 lars 1230
            $agencies = DB::connection( 'old' )->select( $sql );
552 lars 1231
            $progressbar = $this->output->createProgressBar( count( $agencies ) );
1232
            $progressbar->start();
580 lars 1233
            foreach ( $agencies as $manufacturer )
555 lars 1234
            {
580 lars 1235
                $letzter_Abruf_am = $manufacturer->letzter_Abruf_am;
555 lars 1236
                if ( $letzter_Abruf_am == "0000-00-00 00:00:00" )
1237
                {
1238
                    $letzter_Abruf_am = null;
1239
                }
580 lars 1240
                $letzte_Aktualisierung_am = $manufacturer->letzte_Aktualisierung_am;
555 lars 1241
                if ( $letzte_Aktualisierung_am == "0000-00-00 00:00:00" )
1242
                {
1243
                    $letzte_Aktualisierung_am = null;
1244
                }
1245
                PriceAgency::factory()->create( [
580 lars 1246
                    "id"                   => $manufacturer->ID,
1247
                    "shop_id"              => $manufacturer->shops_ID,
1248
                    "name"                 => $manufacturer->Titel,
1249
                    "logo_url"             => $manufacturer->logo_url,
1250
                    "home_url"             => $manufacturer->home_url,
1251
                    "csv_url"              => $manufacturer->csv_url,
1252
                    "trigger_url"          => $manufacturer->trigger_URL,
1253
                    "voting_url"           => $manufacturer->bewertungs_URL,
1254
                    "records"              => $manufacturer->datensaetze,
1255
                    "access_url"           => $manufacturer->Zugang_URL,
1256
                    "access_user"          => $manufacturer->Zugang_Benutzer,
1257
                    "access_password"      => $manufacturer->Zugang_Passwort,
1258
                    "comment"              => $manufacturer->Bemerkung,
1259
                    "locked_manufacturers" => $manufacturer->gesperrte_hersteller,
1260
                    "config"               => $manufacturer->config,
1261
                    "status"               => $manufacturer->status,
1262
                    "only_deliverable"     => $manufacturer->nur_lieferbar,
1263
                    "min_price"            => $manufacturer->min_preis,
555 lars 1264
                    "last_updated_at"      => $letzte_Aktualisierung_am,
1265
                    "last_access_at"       => $letzter_Abruf_am,
580 lars 1266
                    "last_access_by"       => $manufacturer->letzter_Abruf_von,
1267
                    "updated_at"           => $manufacturer->letzte_Aenderung_am,
1268
                    "updated_by"           => $manufacturer->letzte_Aenderung_von,
555 lars 1269
                ] );
552 lars 1270
                $progressbar->advance();
1271
            }
1272
            $progressbar->finish();
1273
            $progressbar->clear();
555 lars 1274
        }
580 lars 1275
 
1601 lars 1276
        private function migrateManufacturers(): void
580 lars 1277
        {
1278
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Hersteller" );
1279
            $start = 0;
1280
            $sql = "SELECT
1281
                    MAX(id) start
1282
                FROM
1283
                    manufacturers
1284
            ";
1285
            $row = DB::connection( 'mysql' )->select( $sql );
1286
            if ( $row[0]->start )
1287
            {
1288
                $start = $row[0]->start;
1289
            }
1290
            $sql = "SELECT
1291
                    *
1292
                FROM
1293
                    Herstellerkatalog
1294
                WHERE
1295
                    id>" . $start . "
1296
            ";
1297
            $manufacturers = DB::connection( 'old' )->select( $sql );
1298
            $progressbar = $this->output->createProgressBar( count( $manufacturers ) );
1299
            $progressbar->start();
1300
            foreach ( $manufacturers as $manufacturer )
1301
            {
1302
                Manufacturer::factory()->create( [
1303
                    "id"          => $manufacturer->ID,
1304
                    "name"        => $manufacturer->Name,
1305
                    "description" => $manufacturer->Text,
586 lars 1306
                    "logo1"       => $manufacturer->Logo1,
1307
                    "logo1_href"  => $manufacturer->Logo1_href,
587 lars 1308
                    "logo2"       => $manufacturer->Logo2,
586 lars 1309
                    "logo2_href"  => $manufacturer->Logo2_href,
589 lars 1310
                    "property_1"  => $manufacturer->Eigenschaft_1,
1311
                    "property_2"  => $manufacturer->Eigenschaft_2,
1312
                    "property_3"  => $manufacturer->Eigenschaft_2,
588 lars 1313
                    "calculation" => $manufacturer->abwKalkulation,
580 lars 1314
                    "created_at"  => $manufacturer->erstellt_am,
1315
                    "created_by"  => $manufacturer->erstellt_von,
1316
                    "updated_at"  => $manufacturer->letzte_Aenderung_am,
1317
                    "updated_by"  => $manufacturer->letzte_Aenderung_von,
1318
                ] );
1319
                $progressbar->advance();
1320
            }
1321
            $progressbar->finish();
1322
            $progressbar->clear();
600 lars 1323
        }
580 lars 1324
 
1602 lars 1325
        private function migrateTemplates(): void
600 lars 1326
        {
1327
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Templates" );
1328
            $start = 0;
1329
            $sql = "SELECT
1330
                    MAX(id) start
1331
                FROM
1332
                    templates
1333
            ";
1334
            $row = DB::connection( 'mysql' )->select( $sql );
1335
            if ( $row[0]->start )
1336
            {
1337
                $start = $row[0]->start;
1338
            }
1339
            $sql = "SELECT
1340
                    *
1341
                FROM
1342
                    templates
1343
                WHERE
1344
                    id>" . $start . "
1345
            ";
1346
            $templates = DB::connection( 'old' )->select( $sql );
1347
            $progressbar = $this->output->createProgressBar( count( $templates ) );
1348
            $progressbar->start();
1349
            foreach ( $templates as $template )
1350
            {
1603 lars 1351
                $typ = match ( $template->Typ )
603 lars 1352
                {
1603 lars 1353
                    "Aktionen"     => "action",
1354
                    "artikel"      => "item",
1355
                    "directory"    => "directory",
1356
                    "Artikelstamm" => "articlemaster",
1357
                    default        => "",
1358
                };
600 lars 1359
                Template::factory()->create( [
1360
                    "id"             => $template->ID,
1361
                    "shop_id"        => $template->shops_ID,
1362
                    "name"           => $template->Name,
1363
                    "description"    => $template->Beschreibung,
1364
                    "template_key"   => $template->templateKey,
601 lars 1365
                    "template_value" => $template->templateValue,
603 lars 1366
                    "type"           => $typ,
600 lars 1367
                ] );
1368
                $progressbar->advance();
1369
            }
1370
            $progressbar->finish();
1371
            $progressbar->clear();
1372
            $start = 0;
1373
            $sql = "SELECT
1374
                    MAX(id) start
1375
                FROM
618 lars 1376
                    item_templates
1377
            ";
1378
            $row = DB::connection( 'mysql' )->select( $sql );
1379
            if ( $row[0]->start )
1380
            {
1381
                $start = $row[0]->start;
1382
            }
1383
            $sql = "SELECT
1384
                    *
1385
                FROM
1386
                    templates_to_artikel
1387
                WHERE
1388
                    id>" . $start . "
1389
            ";
1390
            $templates = DB::connection( 'old' )->select( $sql );
1391
            $progressbar = $this->output->createProgressBar( count( $templates ) );
1392
            $progressbar->start();
1393
            foreach ( $templates as $template )
1394
            {
619 lars 1395
                ItemTemplate::factory()->create( [
788 lars 1396
                    "id"          => $template->id,
1397
                    "item_id"     => $template->artikel_ID,
1398
                    "template_id" => $template->templates_ID,
618 lars 1399
                ] );
1400
                $progressbar->advance();
1401
            }
1402
            $progressbar->finish();
1403
            $progressbar->clear();
1404
            $start = 0;
1405
            $sql = "SELECT
1406
                    MAX(id) start
1407
                FROM
600 lars 1408
                    directory_templates
1409
            ";
1410
            $row = DB::connection( 'mysql' )->select( $sql );
1411
            if ( $row[0]->start )
1412
            {
1413
                $start = $row[0]->start;
1414
            }
1415
            $sql = "SELECT
1416
                    *
1417
                FROM
606 lars 1418
                    templates_to_directory
600 lars 1419
                WHERE
1420
                    id>" . $start . "
1421
            ";
1422
            $templates = DB::connection( 'old' )->select( $sql );
1423
            $progressbar = $this->output->createProgressBar( count( $templates ) );
1424
            $progressbar->start();
1425
            foreach ( $templates as $template )
1426
            {
1427
                DirectoryTemplate::factory()->create( [
604 lars 1428
                    "id"           => $template->id,
605 lars 1429
                    "directory_id" => $template->directory_ID,
1430
                    "template_id"  => $template->templates_ID,
600 lars 1431
                ] );
1432
                $progressbar->advance();
1433
            }
1434
            $progressbar->finish();
1435
            $progressbar->clear();
580 lars 1436
        }
961 lars 1437
 
973 lars 1438
        private function migrateWebSettings(): void
961 lars 1439
        {
986 lars 1440
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere WebSettings" );
961 lars 1441
            $sql = '
1442
                SELECT
1443
                    *
1444
                FROM
963 lars 1445
                    web_settings
961 lars 1446
            ';
973 lars 1447
            $webSettings = DB::connection( 'old' )->select( $sql );
1448
            $progressbar = $this->output->createProgressBar( count( $webSettings ) );
961 lars 1449
            $progressbar->start();
973 lars 1450
            foreach ( $webSettings as $row )
961 lars 1451
            {
979 lars 1452
                $webSetting = WebSetting::find( $row->ID );
973 lars 1453
                if ( !isset( $webSetting->id ) )
961 lars 1454
                {
979 lars 1455
                    $webSetting = new WebSetting();
973 lars 1456
                    $webSetting->id = $row->ID;
1457
                    $webSetting->created_at = time();
1458
                    $webSetting->created_by = "";
961 lars 1459
                }
983 lars 1460
                $webSetting->shop_id = $row->shops_ID;
987 lars 1461
                if ( $webSetting->shop_id == 0 )
1462
                {
1463
                    $webSetting->shop_id = null;
1464
                }
986 lars 1465
                $webSetting->order_type_id = $row->bestellart_id;
978 lars 1466
                $webSetting->updated_at = $row->letzte_Aenderung_am;
1467
                $webSetting->updated_by = $row->letzte_Aenderung_von;
973 lars 1468
                $webSetting->rank = $row->Rang;
1469
                $webSetting->name = $row->Name;
1470
                $webSetting->type = $row->Typ;
1471
                $webSetting->content = $row->Inhalt;
977 lars 1472
                $webSetting->fallback = $row->Fallback;
973 lars 1473
                $webSetting->save();
961 lars 1474
                $progressbar->advance();
1475
            }
1476
            $progressbar->finish();
1477
            $progressbar->clear();
1478
        }
233 lars 1479
    }