Subversion-Projekte lars-tiefland.laravel_shop

Revision

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