Subversion-Projekte lars-tiefland.laravel_shop

Revision

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