Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 517 | Revision 528 | 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;
7
    use App\Models\Item;
8
    use App\Models\Action;
272 lars 9
    use App\Models\Medium;
454 lars 10
    use App\Models\Order;
453 lars 11
    use App\Models\OrderAddress;
507 lars 12
    use App\Models\OrderType;
482 lars 13
    use App\Models\PaymentMethod;
263 lars 14
    use App\Models\Price;
260 lars 15
    use App\Models\ActionMedium;
16
    use App\Models\ItemMedium;
17
    use App\Models\DirectoryMedium;
527 lars 18
    use App\Models\SalesPortal;
509 lars 19
    use App\Models\Shipping;
510 lars 20
    use App\Models\ShippingGroup;
465 lars 21
    use App\Models\Shop;
437 lars 22
    use App\Models\User;
260 lars 23
    use Illuminate\Console\Command;
24
    use Illuminate\Support\Facades\DB;
233 lars 25
 
260 lars 26
    class convertDB extends Command
27
    {
28
        /**
29
         * The name and signature of the console command.
30
         *
31
         * @var string
32
         */
33
        protected $signature = 'command:convertDB';
233 lars 34
 
260 lars 35
        /**
36
         * The console command description.
37
         *
38
         * @var string
39
         */
40
        protected $description = 'Converts the old webanOS-DB to laravel';
233 lars 41
 
260 lars 42
        /**
43
         * Execute the console command.
44
         *
45
         * @return void
46
         */
47
 
48
        public function handle(): void
238 lars 49
        {
294 lars 50
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung gestartet" );
465 lars 51
            $migrateDirs = true;
488 lars 52
            /*if ( !$this->confirm( "Kategorien migrieren?" ) )
422 lars 53
            {
54
                $migrateDirs = false;
488 lars 55
            }*/
422 lars 56
            $migrateItems = true;
488 lars 57
            /*if ( !$this->confirm( "Artikel migrieren?" ) )
422 lars 58
            {
59
                $migrateItems = false;
488 lars 60
            }*/
422 lars 61
            $migrateActions = true;
488 lars 62
            /*if ( !$this->confirm( "Aktionen migrieren?" ) )
422 lars 63
            {
64
                $migrateActions = false;
488 lars 65
            }*/
422 lars 66
            $migrateMedia = true;
488 lars 67
            /*if ( !$this->confirm( "Medien migrieren?" ) )
422 lars 68
            {
69
                $migrateMedia = false;
488 lars 70
            }*/
496 lars 71
            $this->migrateShops();
505 lars 72
            $this->migrateOrderTypes();
496 lars 73
            $this->migratePaymentMethods();
508 lars 74
            $this->migrateShippingGroups();
517 lars 75
            $this->migrateShippings();
527 lars 76
            $this->migrateSalesPortalTypes();
77
            $this->migrateSalesPortals();
422 lars 78
            if ( $migrateActions )
79
            {
496 lars 80
                $this->migrateActions();
422 lars 81
            }
82
            if ( $migrateDirs )
83
            {
84
                $this->migrateDirs();
85
            }
86
            if ( $migrateItems )
87
            {
88
                $this->migrateItems();
89
            }
496 lars 90
            if ( $migrateMedia )
422 lars 91
            {
496 lars 92
                $this->migrateMedia();
93
                $this->migrateActionMedia();
94
                $this->migrateDirMedia();
95
                $this->migrateItemMedia();
465 lars 96
            }
97
            if ( env( 'site' ) == env( 'shop' ) )
98
            {
99
                $this->migrateUsers();
100
                $this->migrateAddresses();
101
                $this->migrateOrderAddresses();
102
                $this->migrateOrders();
103
                $this->migrateOrderItems();
104
            }
294 lars 105
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung beendet" );
234 lars 106
        }
260 lars 107
 
527 lars 108
        private function migrateShops()
433 lars 109
        {
527 lars 110
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Shops" );
486 lars 111
            $start = 0;
527 lars 112
            $sql = "
113
                SELECT
486 lars 114
                    MAX(id) AS start
115
                FROM
527 lars 116
                    shops
486 lars 117
            ";
527 lars 118
            $row = DB::connection( 'mysql' )->select( $sql );
119
            if ( $row[0]->start )
486 lars 120
            {
527 lars 121
                $start = $row[0]->start;
486 lars 122
            }
527 lars 123
            $sql = "SELECT
433 lars 124
                    *
125
                FROM
527 lars 126
                    shops
486 lars 127
                WHERE
128
                    id>" . $start . "
433 lars 129
            ";
527 lars 130
            $shops = DB::connection( 'old' )->select( $sql );
131
            foreach ( $shops as $oldShop )
433 lars 132
            {
527 lars 133
                $shop = new Shop();
134
                $shop->id = $oldShop->ID;
135
                $shop->name = $oldShop->Name;
136
                $shop->short = $oldShop->short;
137
                $shop->re_short = '';
138
                if ( isset( $oldShop->re_short ) && $oldShop->re_short )
433 lars 139
                {
527 lars 140
                    $shop->re_short = $oldShop->re_short;
433 lars 141
                }
527 lars 142
                if ( isset( $oldShop->preisindex_ek ) && $oldShop->preisindex_ek )
433 lars 143
                {
527 lars 144
                    $shop->preisindex_ek = $oldShop->preisindex_ek;
433 lars 145
                }
527 lars 146
                $shop->ebay = $oldShop->ebay;
147
                $shop->erfassung = $oldShop->erfassung;
148
                if ( isset( $oldShop->status ) && $oldShop->status )
433 lars 149
                {
527 lars 150
                    $shop->status = $oldShop->status;
433 lars 151
                }
527 lars 152
                if ( isset( $oldShop->rang ) && $oldShop->rang )
153
                {
154
                    $shop->rank = $oldShop->rang;
155
                }
156
                $shop->klonziel = $oldShop->klonziel;
157
                $shop->konroot = $oldShop->konroot;
158
                if ( isset( $oldShop->home ) && $oldShop->home )
159
                {
160
                    $shop->home = $oldShop->home;
161
                }
162
                $shop->database = $oldShop->database;
163
                $shop->domain = $oldShop->domain;
164
                $shop->mail_server = $oldShop->mail_server;
165
                $shop->mail_user = $oldShop->mail_user;
166
                $shop->mail_password = $oldShop->mail_passwort;
167
                $shop->save();
168
            }
169
 
170
        }
171
 
172
        private function migrateOrderTypes()
173
        {
174
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellarten" );
175
            $start = 0;
176
            $sql = "SELECT
177
                    MAX(id) AS start
178
                FROM
179
                    order_types
180
            ";
181
            $row = DB::connection( "mysql" )->select( $sql );
182
            if ( $row[0]->start )
183
            {
184
                $start = $row[0]->start;
185
            }
186
            $sql = "SELECT
187
                    *
188
                FROM
189
                    bestellart
190
                WHERE
191
                    id>" . $start . "
192
            ";
193
            $methods = DB::connection( 'old' )->select( $sql );
194
            foreach ( $methods as $method )
195
            {
196
                OrderType::factory()->create( [
197
                    "id"            => $method->id,
198
                    "internal_name" => $method->rufname,
199
                    "name"          => $method->name,
200
                    "short"         => $method->short,
201
                ] );
202
            }
203
        }
204
 
205
        private function migratePaymentMethods()
206
        {
207
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Zahlungsmethoden" );
208
            $start = 0;
209
            $sql = "SELECT
210
                    MAX(id) AS start
211
                FROM
212
                    payment_methods
213
            ";
214
            $row = DB::connection( "mysql" )->select( $sql );
215
            if ( $row[0]->start )
216
            {
217
                $start = $row[0]->start;
218
            }
219
            $sql = "SELECT
220
                    *
221
                FROM
222
                    zahlungsarten
223
                WHERE
224
                    id>" . $start . "
225
            ";
226
            $methods = DB::connection( 'old' )->select( $sql );
227
            foreach ( $methods as $method )
228
            {
229
                PaymentMethod::factory()->create( [
230
                    "id"            => $method->id,
231
                    "name"          => $method->name,
232
                    "discount"      => $method->abschlag,
233
                    "internal_name" => $method->interner_name,
234
                    "info_in_shop"  => $method->info_im_shop,
235
                    "shipping_text" => $method->versandtextbaustein,
236
                ] );
237
            }
238
        }
239
 
240
        private function migrateShippingGroups()
241
        {
242
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandgruppen" );
243
            $start = 0;
244
            $sql = "SELECT
245
                    MAX(id) AS start
246
                FROM
247
                    shipping_groups
248
            ";
249
            $row = DB::connection( "mysql" )->select( $sql );
250
            if ( $row[0]->start )
251
            {
252
                $start = $row[0]->start;
253
            }
254
            $sql = "SELECT
255
                    *
256
                FROM
257
                    versandgruppen
258
                WHERE
259
                    id>" . $start . "
260
            ";
261
            $methods = DB::connection( 'old' )->select( $sql );
262
            foreach ( $methods as $group )
263
            {
264
                ShippingGroup::factory()->create( [
265
                    "id"            => $group->id,
266
                    "name"          => $group->name,
267
                    "conditions"    => $group->bedingungen,
268
                    "icon"          => $group->icon,
269
                    "rank"          => $group->rang,
270
                    "shipping_text" => $group->versandtextbaustein,
271
                    "created_by"    => $group->erstellt_von,
272
                    "updated_by"    => $group->geaendert_von,
273
                    "updated_at"    => $group->geaendert_am,
274
                    "created_at"    => $group->erstellt_am,
275
                ] );
276
            }
277
        }
278
 
279
        private function migrateShippings()
280
        {
281
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandoptionen" );
282
            $start = 0;
283
            $sql = "SELECT
284
                    MAX(id) AS start
285
                FROM
286
                    shippings
287
            ";
288
            $row = DB::connection( "mysql" )->select( $sql );
289
            if ( $row[0]->start )
290
            {
291
                $start = $row[0]->start;
292
            }
293
            $sql = "SELECT
294
                    *
295
                FROM
296
                    versand
297
                WHERE
298
                    id>" . $start . "
299
            ";
300
            $methods = DB::connection( 'old' )->select( $sql );
301
            foreach ( $methods as $group )
302
            {
303
                Shipping::factory()->create( [
304
                    "id"                => $group->id,
305
                    "rank"              => $group->rang,
306
                    "shipping_group_id" => $group->versandgruppen_id,
307
                    "name"              => $group->name,
308
                    "info_shop"         => $group->info_shop,
309
                    "info_mail"         => $group->info_mail,
310
                    "info_internal"     => $group->info_intern,
311
                    "island_shipping"   => $group->inselversand,
312
                    "additions"         => $group->zusaetze,
313
                    "status"            => $group->status,
314
                    "price"             => $group->preis,
315
                    "calc_weight_from"  => $group->berechnung_kg_von,
316
                    "calc_weight_to"    => $group->berechnung_kg_bis,
317
                    "calc_price_from"   => $group->berechnung_preis_von,
318
                    "calc_price_to"     => $group->berechnung_preis_bis,
319
                    "conditions"        => $group->bedingungen,
320
                    "tax_rate"          => $group->steuersatz,
321
                    "created_by"        => $group->erstellt_von,
322
                    "updated_by"        => $group->geaendert_von,
323
                    "updated_at"        => $group->geaendert_am,
324
                    "created_at"        => $group->erstellt_am,
325
                ] );
326
            }
327
        }
328
 
329
        private function migrateSalesPortalTypes()
330
        {
331
            $start = 0;
332
            $sql = "SELECT
333
                    MAX(id) start
334
                FROM
335
                    sales_portal_types
336
            ";
337
            $row = DB::connection( 'cms' )->select( $sql );
338
            if ( $row[0]->start )
339
            {
340
                $start = $row[0]->start;
341
            }
342
            $sql = "SELECT
343
                    *
344
                FROM
345
                    vportale_art
346
                WHERE
347
                    id>" . $start . "
348
            ";
349
            $portals = DB::connection( 'old' )->select( $sql );
350
            foreach ( $portals as $portal )
351
            {
352
                SalesPortalType::factory()->create( [
353
                    "id"                   => $portal->id,
354
                    "type"                 => $portal->art,
355
                    "name"                 => $portal->bezeichnung,
356
                    "max_categories"       => $portal->max_categories,
357
                    "min_category_depth"   => $portal->min_category_depth,
358
                    "only_end_category"    => $portal->only_end_category,
359
                    "script"               => $portal->skript,
360
                    "script_folder"        => $portal->script_folder,
361
                    "commit_possibilities" => $portal->commit_posibilities,
362
                    "revokeable"           => $portal->stornierbar,
363
                ] );
364
            }
365
        }
366
 
367
        private function migrateSalesPortals()
368
        {
369
            $start = 0;
370
            $sql = "SELECT
371
                    MAX(id) start
372
                FROM
373
                    sales_portals
374
            ";
375
            $row = DB::connection( 'mysql' )->select( $sql );
376
            if ( $row[0]->start )
377
            {
378
                $start = $row[0]->start;
379
            }
380
            $sql = "SELECT
381
                    *
382
                FROM
383
                    verkaufsportale
384
                WHERE
385
                    id>" . $start . "
386
            ";
387
            $portals = DB::connection( 'old' )->select( $sql );
388
            foreach ( $portals as $portal )
389
            {
390
                SalesPortal::factory()->create( [
391
 
392
                ] );
393
            }
394
        }
395
 
396
        private function migrateActions()
397
        {
398
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktionen" );
399
            $start = 0;
400
            $sql = "SELECT
401
                    MAX(id) AS start
402
                FROM
403
                    actions
404
            ";
405
            $row = DB::connection( "mysql" )->select( $sql );
406
            if ( $row[0]->start )
407
            {
408
                $start = $row[0]->start;
409
            }
410
            $sql = "
411
                SELECT
412
                    *
413
                FROM
414
                    Aktionen
415
                WHERE
416
                    id>" . $start . "
417
            ";
418
            $actions = DB::connection( 'old' )->select( $sql );
419
            $progressbar = $this->output->createProgressBar( count( $actions ) );
420
            $progressbar->start();
421
            foreach ( $actions as $action )
422
            {
423
                $actionDB = new Action();
424
                $actionDB->id = $action->ID;
425
                $actionDB->headline = $action->headline;
426
                $actionDB->text = $action->text;
427
                $actionDB->rang = $action->rang;
428
                $actionDB->config = $action->config;
429
                $actionDB->category = $action->Kategorie;
430
                $actionDB->notes = $action->notizen;
431
                $actionDB->valid_from = $action->von;
432
                $actionDB->valid_to = $action->bis;
433
                $actionDB->created_by = "WebanOS Laravel Upgrade";
434
                $actionDB->updated_by = "WebanOS Laravel Upgrade";
435
                $actionDB->save();
433 lars 436
                $progressbar->advance();
437
            }
438
            $progressbar->finish();
439
            $progressbar->clear();
440
        }
441
 
260 lars 442
        private function migrateDirs()
443
        {
294 lars 444
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorien" );
486 lars 445
            $start = 0;
446
            $sql = "SELECT
447
                    MAX(id) AS start
448
                FROM
449
                    directories
450
            ";
451
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 452
            if ( $row[0]->start )
486 lars 453
            {
527 lars 454
                $start = $row[0]->start;
486 lars 455
            }
260 lars 456
            $sql = '
457
                SELECT
458
                    *
459
                FROM
460
                    directory
486 lars 461
                WHERE id>' . $start . '
260 lars 462
            ';
463
            $dirs = DB::connection( 'old' )->select( $sql );
301 lars 464
            $progressbar = $this->output->createProgressBar( count( $dirs ) );
465
            $progressbar->start();
260 lars 466
            foreach ( $dirs as $row )
467
            {
284 lars 468
                $ersteller = $row->erstellt_von;
469
                if ( !$ersteller )
470
                {
471
                    $ersteller = "WebanOS Laravel Upgrade";
472
                }
285 lars 473
                $bearbeiter = $row->letzte_Aenderung_von;
284 lars 474
                if ( !$bearbeiter )
475
                {
476
                    $bearbeiter = "WebanOS Laravel Upgrade";
477
                }
303 lars 478
                $dir = new Directory();
479
                $dir->id = $row->ID;
304 lars 480
                $dir->directory_id = $row->Father;
303 lars 481
                $dir->name = $row->Name;
432 lars 482
                $dir->articlemaster = $row->Artikelstamm;
304 lars 483
                $dir->status = $row->status;
303 lars 484
                $dir->kennung = $row->Kennung;
304 lars 485
                $dir->description = $row->Beschreibung;
486
                $dir->short_line_1 = $row->short_line_1;
303 lars 487
                $dir->url = $row->url;
488
                $dir->created_at = $row->erstellt_am;
489
                $dir->created_by = $ersteller;
490
                $dir->updated_by = $bearbeiter;
491
                $dir->updated_at = $row->letzte_Aenderung_am;
492
                $dir->save();
301 lars 493
                $progressbar->advance();
260 lars 494
            }
301 lars 495
            $progressbar->finish();
302 lars 496
            $progressbar->clear();
260 lars 497
        }
498
 
499
        private function migrateItems()
500
        {
294 lars 501
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel" );
486 lars 502
            $start = 0;
503
            $sql = "SELECT
504
                    MAX(id) AS start
505
                FROM
506
                    items
507
            ";
508
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 509
            if ( $row[0]->start )
486 lars 510
            {
527 lars 511
                $start = $row[0]->start;
486 lars 512
            }
260 lars 513
            $sql = '
514
                SELECT
515
                    *
516
                FROM
517
                    artikel
518
                WHERE
491 lars 519
                    father >= -1
486 lars 520
                AND
490 lars 521
                    id>' . $start . '
260 lars 522
            ';
523
            $dirs = DB::connection( 'old' )->select( $sql );
301 lars 524
            $progressbar = $this->output->createProgressBar( count( $dirs ) );
525
            $progressbar->start();
260 lars 526
            foreach ( $dirs as $row )
527
            {
284 lars 528
                $item = new Item();
529
                $item->id = $row->ID;
530
                $item->directory_id = $row->Father;
531
                $item->name = $row->kurzbezeichnung;
532
                $item->status = $row->status;
533
                $item->kennung = $row->kennung;
534
                $item->description = $row->beschreibung;
535
                $item->created_at = $row->erstellt_am;
536
                $item->updated_at = $row->letzte_Aenderung_am;
283 lars 537
                $ersteller = $row->erstellt_von;
282 lars 538
                if ( !$ersteller )
281 lars 539
                {
282 lars 540
                    $ersteller = "WebanOS Laravel Upgrade";
281 lars 541
                }
287 lars 542
                $bearbeiter = $row->letzte_Aenderung_von;
282 lars 543
                if ( !$bearbeiter )
281 lars 544
                {
282 lars 545
                    $bearbeiter = "WebanOS Laravel Upgrade";
281 lars 546
                }
284 lars 547
                $item->created_by = $ersteller;
548
                $item->updated_by = $bearbeiter;
549
                $item->save();
301 lars 550
                $progressbar->advance();
260 lars 551
            }
301 lars 552
            $progressbar->finish();
302 lars 553
            $progressbar->clear();
294 lars 554
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preise" );
494 lars 555
            $start = 0;
492 lars 556
            $sql = "SELECT
557
                    MAX(id) AS start
558
                FROM
559
                    prices
560
            ";
561
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 562
            if ( $row[0]->start )
492 lars 563
            {
527 lars 564
                $start = $row[0]->start;
492 lars 565
            }
260 lars 566
            $sql = "
567
                SELECT
568
                    p.*
569
                FROM
570
                    preise p
571
                JOIN
572
                    artikel a
573
                ON
574
                    a.id=p.artikel_id
575
                WHERE
576
                    a.father >=-1
492 lars 577
                AND
578
                    p.id>" . $start . "
260 lars 579
            ";
580
            $prices = DB::connection( 'old' )->select( $sql );
301 lars 581
            $progressbar = $this->output->createProgressBar( count( $prices ) );
582
            $progressbar->start();
260 lars 583
            foreach ( $prices as $price )
584
            {
585
                Price::factory()->createQuietly( [
493 lars 586
                    "id"          => $price->id,
260 lars 587
                    "item_id"     => $price->artikel_id,
588
                    "preis_index" => $price->preis_index,
589
                    "preis"       => $price->preis,
590
                    "staffel"     => $price->staffel,
591
                    "created_at"  => $price->geaendert_am,
288 lars 592
                    "created_by"  => $price->geaendert_von,
593
                    "updated_by"  => $price->geaendert_von,
260 lars 594
                    "updated_at"  => $price->geaendert_am
595
                ] );
301 lars 596
                $progressbar->advance();
260 lars 597
            }
301 lars 598
            $progressbar->finish();
302 lars 599
            $progressbar->clear();
260 lars 600
        }
601
 
527 lars 602
        public function migrateMedia()
433 lars 603
        {
527 lars 604
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Medien" );
486 lars 605
            $start = 0;
433 lars 606
            $sql = "SELECT
527 lars 607
                    MAX(id) AS start
486 lars 608
                FROM
527 lars 609
                    media
486 lars 610
            ";
611
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 612
            if ( $row[0]->start )
486 lars 613
            {
527 lars 614
                $start = $row[0]->start;
486 lars 615
            }
527 lars 616
            $sql = "
617
                SELECT
618
                    *
619
                FROM
620
                    medien
621
                WHERE
622
                    id>" . $start . "
623
            ";
624
            $media = DB::connection( 'old' )->select( $sql );
625
            $progressbar = $this->output->createProgressBar( count( $media ) );
626
            $progressbar->start();
627
            foreach ( $media as $medium )
628
            {
629
                $mediumDB = new Medium();
630
                $mediumDB->id = $medium->id;
631
                $mediumDB->name = $medium->name;
632
                $mediumDB->folder = $medium->folder;
633
                $mediumDB->medium_type_id = $medium->typ;
634
                $mediumDB->description = $medium->beschreibung;
635
                if ( $medium->erstellt_am )
636
                {
637
                    $mediumDB->created_at = date( "Y-m-d H:i:s", $medium->erstellt_am );
638
                }
639
                $ersteller = $medium->erstellt_von;
640
                if ( !$ersteller )
641
                {
642
                    $ersteller = "WebanOS Laravel Upgrade";
643
                }
644
                $bearbeiter = $medium->letzte_aenderung_von;
645
                if ( !$bearbeiter )
646
                {
647
                    $bearbeiter = "WebanOS Laravel Upgrade";
648
                }
649
                $mediumDB->created_by = $ersteller;
650
                $mediumDB->updated_by = $bearbeiter;
651
                $mediumDB->save();
652
                $progressbar->advance();
653
            }
654
            $progressbar->finish();
655
            $progressbar->clear();
656
        }
657
 
658
        public function migrateActionMedia()
659
        {
660
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktions-Bilder" );
661
            $start = 0;
486 lars 662
            $sql = "SELECT
527 lars 663
                    MAX(id) AS start
664
                FROM
665
                    action_media
666
            ";
667
            $row = DB::connection( "mysql" )->select( $sql );
668
            if ( $row[0]->start )
669
            {
670
                $start = $row[0]->start;
671
            }
672
            $sql = "SELECT
433 lars 673
                    *
674
                FROM
527 lars 675
                    aktionen_medien
486 lars 676
                WHERE
527 lars 677
                    id>" . $start . "
433 lars 678
            ";
679
            $media = DB::connection( 'old' )->select( $sql );
680
            $progressbar = $this->output->createProgressBar( count( $media ) );
681
            $progressbar->start();
682
            foreach ( $media as $row )
683
            {
527 lars 684
                $medium = new ActionMedium();
685
                $medium->action_id = $row->aktionen_id;
433 lars 686
                $medium->medium_id = $row->medien_id;
687
                $medium->rank = $row->rang;
688
                $medium->created_by = "WebanOS Laravel Upgrade";
689
                $medium->updated_by = "WebanOS Laravel Upgrade";
690
                $medium->save();
691
                $progressbar->advance();
692
            }
693
            $progressbar->finish();
694
            $progressbar->clear();
695
        }
696
 
527 lars 697
        public function migrateDirMedia()
260 lars 698
        {
527 lars 699
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorie-Bilder" );
486 lars 700
            $start = 0;
701
            $sql = "SELECT
527 lars 702
                    MAX(medium_id) AS start
486 lars 703
                FROM
527 lars 704
                    directory_media
486 lars 705
            ";
706
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 707
            if ( $row[0]->start )
486 lars 708
            {
527 lars 709
                $start = $row[0]->start;
486 lars 710
            }
527 lars 711
            $sql = "SELECT
260 lars 712
                    *
713
                FROM
527 lars 714
                    directory_medien
486 lars 715
                WHERE
527 lars 716
                    medien_id>" . $start . "
260 lars 717
            ";
527 lars 718
            $media = DB::connection( 'old' )->select( $sql );
719
            $progressbar = $this->output->createProgressBar( count( $media ) );
301 lars 720
            $progressbar->start();
527 lars 721
            foreach ( $media as $row )
260 lars 722
            {
527 lars 723
                $medium = new DirectoryMedium();
724
                $medium->directory_id = $row->directory_id;
725
                $medium->medium_id = $row->medien_id;
726
                $medium->rank = $row->rang;
727
                $medium->similar = $row->aehnlich;
728
                $medium->created_at = $row->zugeordnet_am;
729
                $medium->updated_at = $row->zugeordnet_am;
730
                $medium->created_by = "WebanOS Laravel Upgrade";
731
                $medium->updated_by = "WebanOS Laravel Upgrade";
732
                $medium->save();
301 lars 733
                $progressbar->advance();
260 lars 734
            }
301 lars 735
            $progressbar->finish();
302 lars 736
            $progressbar->clear();
260 lars 737
        }
272 lars 738
 
527 lars 739
        public function migrateItemMedia()
272 lars 740
        {
527 lars 741
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel-Bilder" );
486 lars 742
            $start = 0;
433 lars 743
            $sql = "SELECT
527 lars 744
                    MAX(medium_id) AS start
486 lars 745
                FROM
527 lars 746
                    item_media
486 lars 747
            ";
748
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 749
            if ( $row[0]->start )
486 lars 750
            {
527 lars 751
                $start = $row[0]->start;
486 lars 752
            }
753
            $sql = "SELECT
272 lars 754
                    *
755
                FROM
527 lars 756
                    artikel_medien
486 lars 757
                WHERE
527 lars 758
                    medien_id>" . $start . "
272 lars 759
            ";
760
            $media = DB::connection( 'old' )->select( $sql );
301 lars 761
            $progressbar = $this->output->createProgressBar( count( $media ) );
762
            $progressbar->start();
433 lars 763
            foreach ( $media as $row )
272 lars 764
            {
527 lars 765
                $medium = new ItemMedium();
766
                $medium->item_id = $row->artikel_id;
433 lars 767
                $medium->medium_id = $row->medien_id;
768
                $medium->rank = $row->rang;
527 lars 769
                $medium->similar = $row->aehnlich;
770
                $medium->created_at = $row->zugeordnet_am;
771
                $medium->updated_at = $row->zugeordnet_am;
433 lars 772
                $medium->created_by = "WebanOS Laravel Upgrade";
773
                $medium->updated_by = "WebanOS Laravel Upgrade";
774
                $medium->save();
301 lars 775
                $progressbar->advance();
272 lars 776
            }
301 lars 777
            $progressbar->finish();
302 lars 778
            $progressbar->clear();
272 lars 779
        }
304 lars 780
 
781
        private function migrateUsers()
782
        {
783
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere User" );
433 lars 784
            $start = 0;
785
            $sql = "SELECT
786
                    MAX(id) AS start
787
                FROM
434 lars 788
                    users
433 lars 789
            ";
790
            $row = DB::connection( "order" )->select( $sql );
527 lars 791
            if ( $row[0]->start )
433 lars 792
            {
527 lars 793
                $start = $row[0]->start;
433 lars 794
            }
795
            $sql = "SELECT
796
                    *
797
                FROM
434 lars 798
                    Logins
433 lars 799
                WHERE
800
                    id>" . $start . "
801
            ";
437 lars 802
            $users = DB::connection( "oldOrder" )->select( $sql );
803
            $progressbar = $this->output->createProgressBar( count( $users ) );
448 lars 804
            $progressbar->start();
437 lars 805
            foreach ( $users as $oldUser )
433 lars 806
            {
443 lars 807
                $ersteller = $oldUser->erstellt_von;
442 lars 808
                if ( !$ersteller )
809
                {
810
                    $ersteller = "WebanOS Laravel Upgrade";
811
                }
443 lars 812
                $bearbeiter = $oldUser->letzte_Aenderung_von;
442 lars 813
                if ( !$bearbeiter )
814
                {
815
                    $bearbeiter = "WebanOS Laravel Upgrade";
816
                }
437 lars 817
                $user = new User();
438 lars 818
                $user->id = $oldUser->ID;
437 lars 819
                $user->email = $oldUser->E_Mail;
820
                $user->created_at = $oldUser->erstellt_am;
442 lars 821
                $user->created_by = $ersteller;
822
                $user->updated_by = $bearbeiter;
437 lars 823
                $user->updated_at = $oldUser->letzte_Aenderung_am;
824
                $user->save();
441 lars 825
                $progressbar->advance();
433 lars 826
            }
441 lars 827
            $progressbar->finish();
828
            $progressbar->clear();
304 lars 829
        }
830
 
445 lars 831
        private function migrateAddresses( bool $isOrder = false )
304 lars 832
        {
445 lars 833
            $typ = "Adressen";
834
            $table = "addresses";
835
            $oldTable = "adresse";
836
            if ( $isOrder === true )
837
            {
838
                $typ = "Bestelladressen";
839
                $table = "order_addresses";
840
                $oldTable = "bestelladresse";
841
            }
842
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere " . $typ );
843
            $start = 0;
844
            $sql = "SELECT
845
                    MAX(id) AS start
846
                FROM
847
                    " . $table . "
848
            ";
849
            $row = DB::connection( "order" )->select( $sql );
527 lars 850
            if ( $row[0]->start )
445 lars 851
            {
527 lars 852
                $start = $row[0]->start;
445 lars 853
            }
854
            $sql = "SELECT
855
                    *
856
                FROM
857
                    " . $oldTable . "
858
                WHERE
859
                    id>" . $start . "
860
            ";
861
            $addresses = DB::connection( "oldOrder" )->select( $sql );
862
            $progressbar = $this->output->createProgressBar( count( $addresses ) );
447 lars 863
            $progressbar->start();
445 lars 864
            foreach ( $addresses as $oldAddress )
865
            {
866
                $ersteller = "WebanOS Laravel Upgrade";
867
                $bearbeiter = "WebanOS Laravel Upgrade";
458 lars 868
                if ( $isOrder === true )
452 lars 869
                {
870
                    $address = new OrderAddress();
871
                }
872
                else
873
                {
874
                    $address = new Address();
875
                }
445 lars 876
                $address->id = $oldAddress->id;
877
                $address->user_id = $oldAddress->logins_id;
878
                $address->salutation = $oldAddress->anrede;
879
                $address->pro_title = $oldAddress->pro_title;
880
                $address->name = $oldAddress->vorname;
881
                $address->lastname = $oldAddress->nachname;
882
                $address->company = $oldAddress->firma;
883
                $address->company2 = $oldAddress->firma2;
884
                $address->street = $oldAddress->strasse1;
885
                $address->houseno = $oldAddress->str_nr1;
886
                $address->street2 = $oldAddress->strasse2;
887
                $address->zip = $oldAddress->plz;
888
                $address->city = $oldAddress->ort;
889
                $address->country_id = $oldAddress->land;
890
                $address->state_id = $oldAddress->state;
891
                $address->phone = $oldAddress->telefon;
892
                $address->fax = $oldAddress->fax;
893
                $address->email = $oldAddress->email;
894
                $address->nettocalculation = $oldAddress->nettoberechnung;
450 lars 895
                $address->hr_nr = $oldAddress->hr_nr;
445 lars 896
                $address->vat_id = $oldAddress->vat_id;
897
                $address->vat_free = $oldAddress->mwst_befreiung;
898
                $address->legal_form = $oldAddress->legal_form;
899
                $address->comment = $oldAddress->comment;
451 lars 900
                $address->created_at = $oldAddress->letzte_aenderung_am;
445 lars 901
                $address->created_by = $ersteller;
902
                $address->updated_by = $bearbeiter;
903
                $address->updated_at = $oldAddress->letzte_aenderung_am;
904
                $address->save();
905
                $progressbar->advance();
906
            }
907
            $progressbar->finish();
908
            $progressbar->clear();
304 lars 909
        }
910
 
911
        private function migrateOrderAddresses()
912
        {
445 lars 913
            $this->migrateAddresses( true );
304 lars 914
        }
915
 
916
        private function migrateOrders()
917
        {
918
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellungen" );
454 lars 919
            $start = 0;
920
            $sql = "SELECT
921
                    MAX(id) AS start
922
                FROM
923
                    orders
924
            ";
925
            $row = DB::connection( "order" )->select( $sql );
527 lars 926
            if ( $row[0]->start )
454 lars 927
            {
527 lars 928
                $start = $row[0]->start;
454 lars 929
            }
930
            $sql = "SELECT
931
                    *
932
                FROM
933
                    Bestellung
934
                WHERE
935
                    id>" . $start . "
936
            ";
937
            $orders = DB::connection( "oldOrder" )->select( $sql );
938
            $progressbar = $this->output->createProgressBar( count( $orders ) );
939
            $progressbar->start();
940
            foreach ( $orders as $oldOrder )
941
            {
501 lars 942
                $paidAt = $oldOrder->bezahlt_am;
943
                if ( $paidAt == "0000-00-00 00:00:00" )
944
                {
502 lars 945
                    $paidAt = null;
501 lars 946
                }
454 lars 947
                $order = new Order();
948
                $order->id = $oldOrder->ID;
481 lars 949
                $order->shop_id = $oldOrder->shops_ID;
459 lars 950
                $order->order_type_id = $oldOrder->bestellart_id;
458 lars 951
                $order->payment_method_id = $oldOrder->zahlart_id;
952
                $order->user_id = $oldOrder->Login;
953
                $order->ship_addr_id = $oldOrder->ship_addr_id;
954
                $order->bill_addr_id = $oldOrder->bill_addr_id;
955
                $order->paid = $oldOrder->bezahlt;
501 lars 956
                $order->paid_at = $paidAt;
458 lars 957
                $order->paid_comment = $oldOrder->bezahlt_bemerkung;
958
                $order->foreign_id = $oldOrder->fremd_id;
959
                $order->foreign_payment_id = $oldOrder->bezahlt_fremdid;
960
                $order->status = $oldOrder->status;
961
                $order->total_amount_buffer = $oldOrder->gesamtsumme_buffer;
962
                $order->item_status_buffer = $oldOrder->artikelstatus_buffer;
963
                $order->invoice_status_buffer = $oldOrder->rechnungsstatus_buffer;
504 lars 964
                $order->delivery_note_status_buffer = $oldOrder->lieferscheinStatus_buffer;
458 lars 965
                $order->tax = $oldOrder->tax;
966
                $order->comment = $oldOrder->Bemerkung;
967
                $order->external_comment = $oldOrder->Bemerkung_extern;
968
                $order->note = $oldOrder->notiz;
460 lars 969
                $order->additional_info = $oldOrder->zusatzInfo;
458 lars 970
                $order->shipping_group_id = $oldOrder->versandgruppen_id;
971
                $order->kk_info = $oldOrder->kk_info;
972
                $order->created_by = $oldOrder->erstellt_von;
973
                $order->updated_by = $oldOrder->letzte_Aenderung_von;
974
                $order->updated_at = $oldOrder->letzte_Aenderung_am;
975
                $order->created_at = $oldOrder->erstellt_am;
454 lars 976
                $order->save();
977
                $progressbar->advance();
978
            }
979
            $progressbar->finish();
980
            $progressbar->clear();
304 lars 981
        }
982
 
983
        private function migrateOrderItems()
984
        {
985
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel in Besetllungen" );
454 lars 986
            $start = 0;
987
            $sql = "SELECT
988
                    MAX(id) AS start
989
                FROM
990
                    order_items
991
            ";
992
            $row = DB::connection( "order" )->select( $sql );
527 lars 993
            if ( $row[0]->start )
454 lars 994
            {
527 lars 995
                $start = $row[0]->start;
454 lars 996
            }
997
            $sql = "SELECT
998
                    *
999
                FROM
1000
                    artikel_to_Bestellung
1001
                WHERE
1002
                    id>" . $start . "
1003
            ";
1004
            $orderItems = DB::connection( "oldOrder" )->select( $sql );
1005
            $progressbar = $this->output->createProgressBar( count( $orderItems ) );
1006
            $progressbar->start();
1007
            foreach ( $orderItems as $oldOrderItem )
1008
            {
1009
                $progressbar->advance();
1010
            }
1011
            $progressbar->finish();
1012
            $progressbar->clear();
304 lars 1013
        }
233 lars 1014
    }