Subversion-Projekte lars-tiefland.laravel_shop

Revision

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