Subversion-Projekte lars-tiefland.laravel_shop

Revision

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