Subversion-Projekte lars-tiefland.laravel_shop

Revision

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