Subversion-Projekte lars-tiefland.laravel_shop

Revision

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