Subversion-Projekte lars-tiefland.laravel_shop

Revision

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