Subversion-Projekte lars-tiefland.laravel_shop

Revision

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