Subversion-Projekte lars-tiefland.laravel_shop

Revision

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