Subversion-Projekte lars-tiefland.laravel_shop

Revision

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