Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 571 | Revision 574 | 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;
551 lars 15
    use App\Models\PriceAgency;
260 lars 16
    use App\Models\ActionMedium;
17
    use App\Models\ItemMedium;
18
    use App\Models\DirectoryMedium;
527 lars 19
    use App\Models\SalesPortal;
540 lars 20
    use App\Models\SalesPortalItem;
529 lars 21
    use App\Models\SalesPortalType;
509 lars 22
    use App\Models\Shipping;
510 lars 23
    use App\Models\ShippingGroup;
465 lars 24
    use App\Models\Shop;
437 lars 25
    use App\Models\User;
561 lars 26
    use App\Models\OrderItem;
260 lars 27
    use Illuminate\Console\Command;
28
    use Illuminate\Support\Facades\DB;
233 lars 29
 
260 lars 30
    class convertDB extends Command
31
    {
32
        /**
33
         * The name and signature of the console command.
34
         *
35
         * @var string
36
         */
37
        protected $signature = 'command:convertDB';
233 lars 38
 
260 lars 39
        /**
40
         * The console command description.
41
         *
42
         * @var string
43
         */
44
        protected $description = 'Converts the old webanOS-DB to laravel';
233 lars 45
 
260 lars 46
        /**
47
         * Execute the console command.
48
         *
49
         * @return void
50
         */
51
 
52
        public function handle(): void
238 lars 53
        {
294 lars 54
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung gestartet" );
465 lars 55
            $migrateDirs = true;
488 lars 56
            /*if ( !$this->confirm( "Kategorien migrieren?" ) )
422 lars 57
            {
58
                $migrateDirs = false;
488 lars 59
            }*/
422 lars 60
            $migrateItems = true;
488 lars 61
            /*if ( !$this->confirm( "Artikel migrieren?" ) )
422 lars 62
            {
63
                $migrateItems = false;
488 lars 64
            }*/
422 lars 65
            $migrateActions = true;
488 lars 66
            /*if ( !$this->confirm( "Aktionen migrieren?" ) )
422 lars 67
            {
68
                $migrateActions = false;
488 lars 69
            }*/
422 lars 70
            $migrateMedia = true;
488 lars 71
            /*if ( !$this->confirm( "Medien migrieren?" ) )
422 lars 72
            {
73
                $migrateMedia = false;
488 lars 74
            }*/
496 lars 75
            $this->migrateShops();
505 lars 76
            $this->migrateOrderTypes();
496 lars 77
            $this->migratePaymentMethods();
508 lars 78
            $this->migrateShippingGroups();
517 lars 79
            $this->migrateShippings();
422 lars 80
            if ( $migrateActions )
81
            {
496 lars 82
                $this->migrateActions();
422 lars 83
            }
84
            if ( $migrateDirs )
85
            {
86
                $this->migrateDirs();
87
            }
88
            if ( $migrateItems )
89
            {
90
                $this->migrateItems();
91
            }
496 lars 92
            if ( $migrateMedia )
422 lars 93
            {
496 lars 94
                $this->migrateMedia();
95
                $this->migrateActionMedia();
96
                $this->migrateDirMedia();
97
                $this->migrateItemMedia();
465 lars 98
            }
99
            if ( env( 'site' ) == env( 'shop' ) )
100
            {
538 lars 101
                $this->migratePriceAgencies();
465 lars 102
                $this->migrateUsers();
103
                $this->migrateAddresses();
104
                $this->migrateOrderAddresses();
105
                $this->migrateOrders();
106
                $this->migrateOrderItems();
535 lars 107
                $this->migrateSalesPortalTypes();
465 lars 108
            }
536 lars 109
            $this->migrateSalesPortals();
538 lars 110
            $this->migrateSalesPortalItems();
294 lars 111
            $this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung beendet" );
234 lars 112
        }
260 lars 113
 
527 lars 114
        private function migrateShops()
433 lars 115
        {
527 lars 116
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Shops" );
486 lars 117
            $start = 0;
527 lars 118
            $sql = "
119
                SELECT
486 lars 120
                    MAX(id) AS start
121
                FROM
527 lars 122
                    shops
486 lars 123
            ";
527 lars 124
            $row = DB::connection( 'mysql' )->select( $sql );
125
            if ( $row[0]->start )
486 lars 126
            {
527 lars 127
                $start = $row[0]->start;
486 lars 128
            }
527 lars 129
            $sql = "SELECT
433 lars 130
                    *
131
                FROM
527 lars 132
                    shops
486 lars 133
                WHERE
134
                    id>" . $start . "
433 lars 135
            ";
527 lars 136
            $shops = DB::connection( 'old' )->select( $sql );
137
            foreach ( $shops as $oldShop )
433 lars 138
            {
527 lars 139
                $shop = new Shop();
140
                $shop->id = $oldShop->ID;
141
                $shop->name = $oldShop->Name;
142
                $shop->short = $oldShop->short;
143
                $shop->re_short = '';
144
                if ( isset( $oldShop->re_short ) && $oldShop->re_short )
433 lars 145
                {
527 lars 146
                    $shop->re_short = $oldShop->re_short;
433 lars 147
                }
527 lars 148
                if ( isset( $oldShop->preisindex_ek ) && $oldShop->preisindex_ek )
433 lars 149
                {
527 lars 150
                    $shop->preisindex_ek = $oldShop->preisindex_ek;
433 lars 151
                }
527 lars 152
                $shop->ebay = $oldShop->ebay;
153
                $shop->erfassung = $oldShop->erfassung;
154
                if ( isset( $oldShop->status ) && $oldShop->status )
433 lars 155
                {
527 lars 156
                    $shop->status = $oldShop->status;
433 lars 157
                }
527 lars 158
                if ( isset( $oldShop->rang ) && $oldShop->rang )
159
                {
160
                    $shop->rank = $oldShop->rang;
161
                }
162
                $shop->klonziel = $oldShop->klonziel;
163
                $shop->konroot = $oldShop->konroot;
164
                if ( isset( $oldShop->home ) && $oldShop->home )
165
                {
166
                    $shop->home = $oldShop->home;
167
                }
168
                $shop->database = $oldShop->database;
169
                $shop->domain = $oldShop->domain;
170
                $shop->mail_server = $oldShop->mail_server;
171
                $shop->mail_user = $oldShop->mail_user;
172
                $shop->mail_password = $oldShop->mail_passwort;
173
                $shop->save();
174
            }
175
 
176
        }
177
 
178
        private function migrateOrderTypes()
179
        {
180
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellarten" );
181
            $start = 0;
182
            $sql = "SELECT
183
                    MAX(id) AS start
184
                FROM
185
                    order_types
186
            ";
187
            $row = DB::connection( "mysql" )->select( $sql );
188
            if ( $row[0]->start )
189
            {
190
                $start = $row[0]->start;
191
            }
192
            $sql = "SELECT
193
                    *
194
                FROM
195
                    bestellart
196
                WHERE
197
                    id>" . $start . "
198
            ";
199
            $methods = DB::connection( 'old' )->select( $sql );
200
            foreach ( $methods as $method )
201
            {
202
                OrderType::factory()->create( [
203
                    "id"            => $method->id,
204
                    "internal_name" => $method->rufname,
205
                    "name"          => $method->name,
206
                    "short"         => $method->short,
207
                ] );
208
            }
209
        }
210
 
211
        private function migratePaymentMethods()
212
        {
213
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Zahlungsmethoden" );
214
            $start = 0;
215
            $sql = "SELECT
216
                    MAX(id) AS start
217
                FROM
218
                    payment_methods
219
            ";
220
            $row = DB::connection( "mysql" )->select( $sql );
221
            if ( $row[0]->start )
222
            {
223
                $start = $row[0]->start;
224
            }
225
            $sql = "SELECT
226
                    *
227
                FROM
228
                    zahlungsarten
229
                WHERE
230
                    id>" . $start . "
231
            ";
232
            $methods = DB::connection( 'old' )->select( $sql );
233
            foreach ( $methods as $method )
234
            {
235
                PaymentMethod::factory()->create( [
236
                    "id"            => $method->id,
237
                    "name"          => $method->name,
238
                    "discount"      => $method->abschlag,
239
                    "internal_name" => $method->interner_name,
240
                    "info_in_shop"  => $method->info_im_shop,
241
                    "shipping_text" => $method->versandtextbaustein,
242
                ] );
243
            }
244
        }
245
 
246
        private function migrateShippingGroups()
247
        {
248
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandgruppen" );
249
            $start = 0;
250
            $sql = "SELECT
251
                    MAX(id) AS start
252
                FROM
253
                    shipping_groups
254
            ";
255
            $row = DB::connection( "mysql" )->select( $sql );
256
            if ( $row[0]->start )
257
            {
258
                $start = $row[0]->start;
259
            }
260
            $sql = "SELECT
261
                    *
262
                FROM
263
                    versandgruppen
264
                WHERE
265
                    id>" . $start . "
266
            ";
267
            $methods = DB::connection( 'old' )->select( $sql );
268
            foreach ( $methods as $group )
269
            {
270
                ShippingGroup::factory()->create( [
271
                    "id"            => $group->id,
272
                    "name"          => $group->name,
273
                    "conditions"    => $group->bedingungen,
274
                    "icon"          => $group->icon,
275
                    "rank"          => $group->rang,
276
                    "shipping_text" => $group->versandtextbaustein,
277
                    "created_by"    => $group->erstellt_von,
278
                    "updated_by"    => $group->geaendert_von,
279
                    "updated_at"    => $group->geaendert_am,
280
                    "created_at"    => $group->erstellt_am,
281
                ] );
282
            }
283
        }
284
 
285
        private function migrateShippings()
286
        {
287
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandoptionen" );
288
            $start = 0;
289
            $sql = "SELECT
290
                    MAX(id) AS start
291
                FROM
292
                    shippings
293
            ";
294
            $row = DB::connection( "mysql" )->select( $sql );
295
            if ( $row[0]->start )
296
            {
297
                $start = $row[0]->start;
298
            }
299
            $sql = "SELECT
300
                    *
301
                FROM
302
                    versand
303
                WHERE
304
                    id>" . $start . "
305
            ";
306
            $methods = DB::connection( 'old' )->select( $sql );
307
            foreach ( $methods as $group )
308
            {
309
                Shipping::factory()->create( [
310
                    "id"                => $group->id,
311
                    "rank"              => $group->rang,
312
                    "shipping_group_id" => $group->versandgruppen_id,
313
                    "name"              => $group->name,
314
                    "info_shop"         => $group->info_shop,
315
                    "info_mail"         => $group->info_mail,
316
                    "info_internal"     => $group->info_intern,
317
                    "island_shipping"   => $group->inselversand,
318
                    "additions"         => $group->zusaetze,
319
                    "status"            => $group->status,
320
                    "price"             => $group->preis,
321
                    "calc_weight_from"  => $group->berechnung_kg_von,
322
                    "calc_weight_to"    => $group->berechnung_kg_bis,
323
                    "calc_price_from"   => $group->berechnung_preis_von,
324
                    "calc_price_to"     => $group->berechnung_preis_bis,
325
                    "conditions"        => $group->bedingungen,
326
                    "tax_rate"          => $group->steuersatz,
327
                    "created_by"        => $group->erstellt_von,
328
                    "updated_by"        => $group->geaendert_von,
329
                    "updated_at"        => $group->geaendert_am,
330
                    "created_at"        => $group->erstellt_am,
331
                ] );
332
            }
333
        }
334
 
335
        private function migrateActions()
336
        {
337
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktionen" );
338
            $start = 0;
339
            $sql = "SELECT
340
                    MAX(id) AS start
341
                FROM
342
                    actions
343
            ";
344
            $row = DB::connection( "mysql" )->select( $sql );
345
            if ( $row[0]->start )
346
            {
347
                $start = $row[0]->start;
348
            }
349
            $sql = "
350
                SELECT
351
                    *
352
                FROM
353
                    Aktionen
354
                WHERE
355
                    id>" . $start . "
356
            ";
357
            $actions = DB::connection( 'old' )->select( $sql );
358
            $progressbar = $this->output->createProgressBar( count( $actions ) );
359
            $progressbar->start();
360
            foreach ( $actions as $action )
361
            {
362
                $actionDB = new Action();
363
                $actionDB->id = $action->ID;
364
                $actionDB->headline = $action->headline;
365
                $actionDB->text = $action->text;
366
                $actionDB->rang = $action->rang;
367
                $actionDB->config = $action->config;
368
                $actionDB->category = $action->Kategorie;
369
                $actionDB->notes = $action->notizen;
370
                $actionDB->valid_from = $action->von;
371
                $actionDB->valid_to = $action->bis;
372
                $actionDB->created_by = "WebanOS Laravel Upgrade";
373
                $actionDB->updated_by = "WebanOS Laravel Upgrade";
374
                $actionDB->save();
433 lars 375
                $progressbar->advance();
376
            }
377
            $progressbar->finish();
378
            $progressbar->clear();
379
        }
380
 
260 lars 381
        private function migrateDirs()
382
        {
294 lars 383
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorien" );
486 lars 384
            $start = 0;
385
            $sql = "SELECT
386
                    MAX(id) AS start
387
                FROM
388
                    directories
389
            ";
390
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 391
            if ( $row[0]->start )
486 lars 392
            {
527 lars 393
                $start = $row[0]->start;
486 lars 394
            }
260 lars 395
            $sql = '
396
                SELECT
397
                    *
398
                FROM
399
                    directory
486 lars 400
                WHERE id>' . $start . '
260 lars 401
            ';
402
            $dirs = DB::connection( 'old' )->select( $sql );
301 lars 403
            $progressbar = $this->output->createProgressBar( count( $dirs ) );
404
            $progressbar->start();
260 lars 405
            foreach ( $dirs as $row )
406
            {
284 lars 407
                $ersteller = $row->erstellt_von;
408
                if ( !$ersteller )
409
                {
410
                    $ersteller = "WebanOS Laravel Upgrade";
411
                }
285 lars 412
                $bearbeiter = $row->letzte_Aenderung_von;
284 lars 413
                if ( !$bearbeiter )
414
                {
415
                    $bearbeiter = "WebanOS Laravel Upgrade";
416
                }
303 lars 417
                $dir = new Directory();
418
                $dir->id = $row->ID;
304 lars 419
                $dir->directory_id = $row->Father;
303 lars 420
                $dir->name = $row->Name;
432 lars 421
                $dir->articlemaster = $row->Artikelstamm;
304 lars 422
                $dir->status = $row->status;
303 lars 423
                $dir->kennung = $row->Kennung;
304 lars 424
                $dir->description = $row->Beschreibung;
425
                $dir->short_line_1 = $row->short_line_1;
303 lars 426
                $dir->url = $row->url;
427
                $dir->created_at = $row->erstellt_am;
428
                $dir->created_by = $ersteller;
429
                $dir->updated_by = $bearbeiter;
430
                $dir->updated_at = $row->letzte_Aenderung_am;
431
                $dir->save();
301 lars 432
                $progressbar->advance();
260 lars 433
            }
301 lars 434
            $progressbar->finish();
302 lars 435
            $progressbar->clear();
260 lars 436
        }
437
 
438
        private function migrateItems()
439
        {
294 lars 440
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel" );
486 lars 441
            $start = 0;
442
            $sql = "SELECT
443
                    MAX(id) AS start
444
                FROM
445
                    items
446
            ";
447
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 448
            if ( $row[0]->start )
486 lars 449
            {
527 lars 450
                $start = $row[0]->start;
486 lars 451
            }
260 lars 452
            $sql = '
453
                SELECT
454
                    *
455
                FROM
456
                    artikel
457
                WHERE
491 lars 458
                    father >= -1
486 lars 459
                AND
490 lars 460
                    id>' . $start . '
260 lars 461
            ';
462
            $dirs = DB::connection( 'old' )->select( $sql );
301 lars 463
            $progressbar = $this->output->createProgressBar( count( $dirs ) );
464
            $progressbar->start();
260 lars 465
            foreach ( $dirs as $row )
466
            {
284 lars 467
                $item = new Item();
468
                $item->id = $row->ID;
469
                $item->directory_id = $row->Father;
470
                $item->name = $row->kurzbezeichnung;
471
                $item->status = $row->status;
472
                $item->kennung = $row->kennung;
473
                $item->description = $row->beschreibung;
474
                $item->created_at = $row->erstellt_am;
475
                $item->updated_at = $row->letzte_Aenderung_am;
283 lars 476
                $ersteller = $row->erstellt_von;
282 lars 477
                if ( !$ersteller )
281 lars 478
                {
282 lars 479
                    $ersteller = "WebanOS Laravel Upgrade";
281 lars 480
                }
287 lars 481
                $bearbeiter = $row->letzte_Aenderung_von;
282 lars 482
                if ( !$bearbeiter )
281 lars 483
                {
282 lars 484
                    $bearbeiter = "WebanOS Laravel Upgrade";
281 lars 485
                }
284 lars 486
                $item->created_by = $ersteller;
487
                $item->updated_by = $bearbeiter;
488
                $item->save();
301 lars 489
                $progressbar->advance();
260 lars 490
            }
301 lars 491
            $progressbar->finish();
302 lars 492
            $progressbar->clear();
294 lars 493
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preise" );
494 lars 494
            $start = 0;
492 lars 495
            $sql = "SELECT
496
                    MAX(id) AS start
497
                FROM
498
                    prices
499
            ";
500
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 501
            if ( $row[0]->start )
492 lars 502
            {
527 lars 503
                $start = $row[0]->start;
492 lars 504
            }
260 lars 505
            $sql = "
506
                SELECT
507
                    p.*
508
                FROM
509
                    preise p
510
                JOIN
511
                    artikel a
512
                ON
513
                    a.id=p.artikel_id
514
                WHERE
515
                    a.father >=-1
492 lars 516
                AND
517
                    p.id>" . $start . "
260 lars 518
            ";
519
            $prices = DB::connection( 'old' )->select( $sql );
301 lars 520
            $progressbar = $this->output->createProgressBar( count( $prices ) );
521
            $progressbar->start();
260 lars 522
            foreach ( $prices as $price )
523
            {
524
                Price::factory()->createQuietly( [
493 lars 525
                    "id"          => $price->id,
260 lars 526
                    "item_id"     => $price->artikel_id,
527
                    "preis_index" => $price->preis_index,
528
                    "preis"       => $price->preis,
529
                    "staffel"     => $price->staffel,
530
                    "created_at"  => $price->geaendert_am,
288 lars 531
                    "created_by"  => $price->geaendert_von,
532
                    "updated_by"  => $price->geaendert_von,
260 lars 533
                    "updated_at"  => $price->geaendert_am
534
                ] );
301 lars 535
                $progressbar->advance();
260 lars 536
            }
301 lars 537
            $progressbar->finish();
302 lars 538
            $progressbar->clear();
260 lars 539
        }
540
 
527 lars 541
        public function migrateMedia()
433 lars 542
        {
527 lars 543
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Medien" );
486 lars 544
            $start = 0;
433 lars 545
            $sql = "SELECT
527 lars 546
                    MAX(id) AS start
486 lars 547
                FROM
527 lars 548
                    media
486 lars 549
            ";
550
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 551
            if ( $row[0]->start )
486 lars 552
            {
527 lars 553
                $start = $row[0]->start;
486 lars 554
            }
527 lars 555
            $sql = "
556
                SELECT
557
                    *
558
                FROM
559
                    medien
560
                WHERE
561
                    id>" . $start . "
562
            ";
563
            $media = DB::connection( 'old' )->select( $sql );
564
            $progressbar = $this->output->createProgressBar( count( $media ) );
565
            $progressbar->start();
566
            foreach ( $media as $medium )
567
            {
568
                $mediumDB = new Medium();
569
                $mediumDB->id = $medium->id;
570
                $mediumDB->name = $medium->name;
571
                $mediumDB->folder = $medium->folder;
572
                $mediumDB->medium_type_id = $medium->typ;
573
                $mediumDB->description = $medium->beschreibung;
574
                if ( $medium->erstellt_am )
575
                {
576
                    $mediumDB->created_at = date( "Y-m-d H:i:s", $medium->erstellt_am );
577
                }
578
                $ersteller = $medium->erstellt_von;
579
                if ( !$ersteller )
580
                {
581
                    $ersteller = "WebanOS Laravel Upgrade";
582
                }
583
                $bearbeiter = $medium->letzte_aenderung_von;
584
                if ( !$bearbeiter )
585
                {
586
                    $bearbeiter = "WebanOS Laravel Upgrade";
587
                }
588
                $mediumDB->created_by = $ersteller;
589
                $mediumDB->updated_by = $bearbeiter;
590
                $mediumDB->save();
591
                $progressbar->advance();
592
            }
593
            $progressbar->finish();
594
            $progressbar->clear();
595
        }
596
 
597
        public function migrateActionMedia()
598
        {
599
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktions-Bilder" );
600
            $start = 0;
486 lars 601
            $sql = "SELECT
527 lars 602
                    MAX(id) AS start
603
                FROM
604
                    action_media
605
            ";
606
            $row = DB::connection( "mysql" )->select( $sql );
607
            if ( $row[0]->start )
608
            {
609
                $start = $row[0]->start;
610
            }
611
            $sql = "SELECT
433 lars 612
                    *
613
                FROM
527 lars 614
                    aktionen_medien
486 lars 615
                WHERE
527 lars 616
                    id>" . $start . "
433 lars 617
            ";
618
            $media = DB::connection( 'old' )->select( $sql );
619
            $progressbar = $this->output->createProgressBar( count( $media ) );
620
            $progressbar->start();
621
            foreach ( $media as $row )
622
            {
527 lars 623
                $medium = new ActionMedium();
624
                $medium->action_id = $row->aktionen_id;
433 lars 625
                $medium->medium_id = $row->medien_id;
626
                $medium->rank = $row->rang;
627
                $medium->created_by = "WebanOS Laravel Upgrade";
628
                $medium->updated_by = "WebanOS Laravel Upgrade";
629
                $medium->save();
630
                $progressbar->advance();
631
            }
632
            $progressbar->finish();
633
            $progressbar->clear();
634
        }
635
 
527 lars 636
        public function migrateDirMedia()
260 lars 637
        {
527 lars 638
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorie-Bilder" );
486 lars 639
            $start = 0;
640
            $sql = "SELECT
527 lars 641
                    MAX(medium_id) AS start
486 lars 642
                FROM
527 lars 643
                    directory_media
486 lars 644
            ";
645
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 646
            if ( $row[0]->start )
486 lars 647
            {
527 lars 648
                $start = $row[0]->start;
486 lars 649
            }
527 lars 650
            $sql = "SELECT
260 lars 651
                    *
652
                FROM
527 lars 653
                    directory_medien
486 lars 654
                WHERE
527 lars 655
                    medien_id>" . $start . "
260 lars 656
            ";
527 lars 657
            $media = DB::connection( 'old' )->select( $sql );
658
            $progressbar = $this->output->createProgressBar( count( $media ) );
301 lars 659
            $progressbar->start();
527 lars 660
            foreach ( $media as $row )
260 lars 661
            {
527 lars 662
                $medium = new DirectoryMedium();
663
                $medium->directory_id = $row->directory_id;
664
                $medium->medium_id = $row->medien_id;
665
                $medium->rank = $row->rang;
666
                $medium->similar = $row->aehnlich;
667
                $medium->created_at = $row->zugeordnet_am;
668
                $medium->updated_at = $row->zugeordnet_am;
669
                $medium->created_by = "WebanOS Laravel Upgrade";
670
                $medium->updated_by = "WebanOS Laravel Upgrade";
671
                $medium->save();
301 lars 672
                $progressbar->advance();
260 lars 673
            }
301 lars 674
            $progressbar->finish();
302 lars 675
            $progressbar->clear();
260 lars 676
        }
272 lars 677
 
527 lars 678
        public function migrateItemMedia()
272 lars 679
        {
527 lars 680
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel-Bilder" );
486 lars 681
            $start = 0;
433 lars 682
            $sql = "SELECT
527 lars 683
                    MAX(medium_id) AS start
486 lars 684
                FROM
527 lars 685
                    item_media
486 lars 686
            ";
687
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 688
            if ( $row[0]->start )
486 lars 689
            {
527 lars 690
                $start = $row[0]->start;
486 lars 691
            }
692
            $sql = "SELECT
272 lars 693
                    *
694
                FROM
527 lars 695
                    artikel_medien
486 lars 696
                WHERE
527 lars 697
                    medien_id>" . $start . "
272 lars 698
            ";
699
            $media = DB::connection( 'old' )->select( $sql );
301 lars 700
            $progressbar = $this->output->createProgressBar( count( $media ) );
701
            $progressbar->start();
433 lars 702
            foreach ( $media as $row )
272 lars 703
            {
527 lars 704
                $medium = new ItemMedium();
705
                $medium->item_id = $row->artikel_id;
433 lars 706
                $medium->medium_id = $row->medien_id;
707
                $medium->rank = $row->rang;
527 lars 708
                $medium->similar = $row->aehnlich;
709
                $medium->created_at = $row->zugeordnet_am;
710
                $medium->updated_at = $row->zugeordnet_am;
433 lars 711
                $medium->created_by = "WebanOS Laravel Upgrade";
712
                $medium->updated_by = "WebanOS Laravel Upgrade";
713
                $medium->save();
301 lars 714
                $progressbar->advance();
272 lars 715
            }
301 lars 716
            $progressbar->finish();
302 lars 717
            $progressbar->clear();
272 lars 718
        }
304 lars 719
 
720
        private function migrateUsers()
721
        {
722
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere User" );
433 lars 723
            $start = 0;
724
            $sql = "SELECT
725
                    MAX(id) AS start
726
                FROM
434 lars 727
                    users
433 lars 728
            ";
729
            $row = DB::connection( "order" )->select( $sql );
527 lars 730
            if ( $row[0]->start )
433 lars 731
            {
527 lars 732
                $start = $row[0]->start;
433 lars 733
            }
734
            $sql = "SELECT
735
                    *
736
                FROM
434 lars 737
                    Logins
433 lars 738
                WHERE
739
                    id>" . $start . "
740
            ";
437 lars 741
            $users = DB::connection( "oldOrder" )->select( $sql );
742
            $progressbar = $this->output->createProgressBar( count( $users ) );
448 lars 743
            $progressbar->start();
437 lars 744
            foreach ( $users as $oldUser )
433 lars 745
            {
443 lars 746
                $ersteller = $oldUser->erstellt_von;
442 lars 747
                if ( !$ersteller )
748
                {
749
                    $ersteller = "WebanOS Laravel Upgrade";
750
                }
443 lars 751
                $bearbeiter = $oldUser->letzte_Aenderung_von;
442 lars 752
                if ( !$bearbeiter )
753
                {
754
                    $bearbeiter = "WebanOS Laravel Upgrade";
755
                }
437 lars 756
                $user = new User();
438 lars 757
                $user->id = $oldUser->ID;
437 lars 758
                $user->email = $oldUser->E_Mail;
759
                $user->created_at = $oldUser->erstellt_am;
442 lars 760
                $user->created_by = $ersteller;
761
                $user->updated_by = $bearbeiter;
437 lars 762
                $user->updated_at = $oldUser->letzte_Aenderung_am;
763
                $user->save();
441 lars 764
                $progressbar->advance();
433 lars 765
            }
441 lars 766
            $progressbar->finish();
767
            $progressbar->clear();
304 lars 768
        }
769
 
445 lars 770
        private function migrateAddresses( bool $isOrder = false )
304 lars 771
        {
445 lars 772
            $typ = "Adressen";
773
            $table = "addresses";
774
            $oldTable = "adresse";
775
            if ( $isOrder === true )
776
            {
777
                $typ = "Bestelladressen";
778
                $table = "order_addresses";
779
                $oldTable = "bestelladresse";
780
            }
781
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere " . $typ );
782
            $start = 0;
783
            $sql = "SELECT
784
                    MAX(id) AS start
785
                FROM
786
                    " . $table . "
787
            ";
788
            $row = DB::connection( "order" )->select( $sql );
527 lars 789
            if ( $row[0]->start )
445 lars 790
            {
527 lars 791
                $start = $row[0]->start;
445 lars 792
            }
793
            $sql = "SELECT
794
                    *
795
                FROM
796
                    " . $oldTable . "
797
                WHERE
798
                    id>" . $start . "
799
            ";
800
            $addresses = DB::connection( "oldOrder" )->select( $sql );
801
            $progressbar = $this->output->createProgressBar( count( $addresses ) );
447 lars 802
            $progressbar->start();
445 lars 803
            foreach ( $addresses as $oldAddress )
804
            {
805
                $ersteller = "WebanOS Laravel Upgrade";
806
                $bearbeiter = "WebanOS Laravel Upgrade";
458 lars 807
                if ( $isOrder === true )
452 lars 808
                {
809
                    $address = new OrderAddress();
810
                }
811
                else
812
                {
813
                    $address = new Address();
814
                }
445 lars 815
                $address->id = $oldAddress->id;
816
                $address->user_id = $oldAddress->logins_id;
817
                $address->salutation = $oldAddress->anrede;
818
                $address->pro_title = $oldAddress->pro_title;
819
                $address->name = $oldAddress->vorname;
820
                $address->lastname = $oldAddress->nachname;
821
                $address->company = $oldAddress->firma;
822
                $address->company2 = $oldAddress->firma2;
823
                $address->street = $oldAddress->strasse1;
824
                $address->houseno = $oldAddress->str_nr1;
825
                $address->street2 = $oldAddress->strasse2;
826
                $address->zip = $oldAddress->plz;
827
                $address->city = $oldAddress->ort;
828
                $address->country_id = $oldAddress->land;
829
                $address->state_id = $oldAddress->state;
830
                $address->phone = $oldAddress->telefon;
831
                $address->fax = $oldAddress->fax;
832
                $address->email = $oldAddress->email;
833
                $address->nettocalculation = $oldAddress->nettoberechnung;
450 lars 834
                $address->hr_nr = $oldAddress->hr_nr;
445 lars 835
                $address->vat_id = $oldAddress->vat_id;
836
                $address->vat_free = $oldAddress->mwst_befreiung;
837
                $address->legal_form = $oldAddress->legal_form;
838
                $address->comment = $oldAddress->comment;
451 lars 839
                $address->created_at = $oldAddress->letzte_aenderung_am;
445 lars 840
                $address->created_by = $ersteller;
841
                $address->updated_by = $bearbeiter;
842
                $address->updated_at = $oldAddress->letzte_aenderung_am;
843
                $address->save();
844
                $progressbar->advance();
845
            }
846
            $progressbar->finish();
847
            $progressbar->clear();
304 lars 848
        }
849
 
850
        private function migrateOrderAddresses()
851
        {
445 lars 852
            $this->migrateAddresses( true );
304 lars 853
        }
854
 
855
        private function migrateOrders()
856
        {
857
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellungen" );
454 lars 858
            $start = 0;
859
            $sql = "SELECT
860
                    MAX(id) AS start
861
                FROM
862
                    orders
863
            ";
864
            $row = DB::connection( "order" )->select( $sql );
527 lars 865
            if ( $row[0]->start )
454 lars 866
            {
527 lars 867
                $start = $row[0]->start;
454 lars 868
            }
869
            $sql = "SELECT
870
                    *
871
                FROM
872
                    Bestellung
873
                WHERE
874
                    id>" . $start . "
875
            ";
876
            $orders = DB::connection( "oldOrder" )->select( $sql );
877
            $progressbar = $this->output->createProgressBar( count( $orders ) );
878
            $progressbar->start();
879
            foreach ( $orders as $oldOrder )
880
            {
501 lars 881
                $paidAt = $oldOrder->bezahlt_am;
882
                if ( $paidAt == "0000-00-00 00:00:00" )
883
                {
502 lars 884
                    $paidAt = null;
501 lars 885
                }
454 lars 886
                $order = new Order();
887
                $order->id = $oldOrder->ID;
481 lars 888
                $order->shop_id = $oldOrder->shops_ID;
459 lars 889
                $order->order_type_id = $oldOrder->bestellart_id;
458 lars 890
                $order->payment_method_id = $oldOrder->zahlart_id;
891
                $order->user_id = $oldOrder->Login;
892
                $order->ship_addr_id = $oldOrder->ship_addr_id;
893
                $order->bill_addr_id = $oldOrder->bill_addr_id;
894
                $order->paid = $oldOrder->bezahlt;
501 lars 895
                $order->paid_at = $paidAt;
458 lars 896
                $order->paid_comment = $oldOrder->bezahlt_bemerkung;
897
                $order->foreign_id = $oldOrder->fremd_id;
898
                $order->foreign_payment_id = $oldOrder->bezahlt_fremdid;
899
                $order->status = $oldOrder->status;
900
                $order->total_amount_buffer = $oldOrder->gesamtsumme_buffer;
901
                $order->item_status_buffer = $oldOrder->artikelstatus_buffer;
902
                $order->invoice_status_buffer = $oldOrder->rechnungsstatus_buffer;
504 lars 903
                $order->delivery_note_status_buffer = $oldOrder->lieferscheinStatus_buffer;
458 lars 904
                $order->tax = $oldOrder->tax;
905
                $order->comment = $oldOrder->Bemerkung;
906
                $order->external_comment = $oldOrder->Bemerkung_extern;
907
                $order->note = $oldOrder->notiz;
460 lars 908
                $order->additional_info = $oldOrder->zusatzInfo;
458 lars 909
                $order->shipping_group_id = $oldOrder->versandgruppen_id;
910
                $order->kk_info = $oldOrder->kk_info;
911
                $order->created_by = $oldOrder->erstellt_von;
912
                $order->updated_by = $oldOrder->letzte_Aenderung_von;
913
                $order->updated_at = $oldOrder->letzte_Aenderung_am;
914
                $order->created_at = $oldOrder->erstellt_am;
454 lars 915
                $order->save();
916
                $progressbar->advance();
917
            }
918
            $progressbar->finish();
919
            $progressbar->clear();
304 lars 920
        }
921
 
922
        private function migrateOrderItems()
923
        {
924
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel in Besetllungen" );
454 lars 925
            $start = 0;
926
            $sql = "SELECT
927
                    MAX(id) AS start
928
                FROM
929
                    order_items
930
            ";
931
            $row = DB::connection( "order" )->select( $sql );
527 lars 932
            if ( $row[0]->start )
454 lars 933
            {
527 lars 934
                $start = $row[0]->start;
454 lars 935
            }
936
            $sql = "SELECT
937
                    *
938
                FROM
939
                    artikel_to_Bestellung
940
                WHERE
941
                    id>" . $start . "
942
            ";
943
            $orderItems = DB::connection( "oldOrder" )->select( $sql );
944
            $progressbar = $this->output->createProgressBar( count( $orderItems ) );
945
            $progressbar->start();
946
            foreach ( $orderItems as $oldOrderItem )
947
            {
573 lars 948
                $exported = $oldOrderItem->exported;
949
                if ( $exported == "0000-00-00 00:00:00" )
950
                {
951
                    $exported = null;
952
                }
953
                $exported_invoice = $oldOrderItem->exported_rechnung;
954
                if ( $exported_invoice == "0000-00-00 00:00:00" )
955
                {
956
                    $exported_invoice = null;
957
                }
958
                $exported_delivery_note = $oldOrderItem->exported_lieferschein;
959
                if ( $exported_delivery_note == "0000-00-00 00:00:00" )
960
                {
961
                    $exported_delivery_note = null;
962
                }
561 lars 963
                OrderItem::factory()->create( [
567 lars 964
                    "id"                     => $oldOrderItem->ID,
965
                    "item_id"                => $oldOrderItem->artikel,
966
                    "order_id"               => $oldOrderItem->Bestellung,
568 lars 967
                    "name"                   => $oldOrderItem->Bezeichnung,
567 lars 968
                    "amount"                 => $oldOrderItem->Menge,
969
                    "price"                  => $oldOrderItem->Preis_pro_Stueck,
970
                    "father"                 => $oldOrderItem->father,
971
                    "status"                 => $oldOrderItem->status,
972
                    "delivery_status"        => $oldOrderItem->lieferstatus,
569 lars 973
                    "invoice_status"         => $oldOrderItem->rechnungStatus,
567 lars 974
                    "delivery_note_status"   => $oldOrderItem->lieferscheinStatus,
975
                    "foreign_id"             => $oldOrderItem->fremd_id,
570 lars 976
                    "option_input"           => $oldOrderItem->option_eingabe,
567 lars 977
                    "description"            => $oldOrderItem->beschreibung,
569 lars 978
                    "rank"                   => $oldOrderItem->Rang,
567 lars 979
                    "tax"                    => $oldOrderItem->mwst,
980
                    "orig_value"             => $oldOrderItem->orig_value,
981
                    "orig_currency"          => $oldOrderItem->orig_currency,
982
                    "hash"                   => $oldOrderItem->hash,
573 lars 983
                    "exported"               => $exported,
984
                    "exported_invoice"       => $exported_rechnung,
985
                    "exported_delivery_note" => $exported_lieferschein,
567 lars 986
 
561 lars 987
                ] );
454 lars 988
                $progressbar->advance();
989
            }
990
            $progressbar->finish();
991
            $progressbar->clear();
304 lars 992
        }
535 lars 993
 
994
        private function migrateSalesPortalTypes()
995
        {
996
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalarten" );
997
            $start = 0;
998
            $sql = "SELECT
999
                    MAX(id) start
1000
                FROM
1001
                    sales_portal_types
1002
            ";
1003
            $row = DB::connection( 'cms' )->select( $sql );
1004
            if ( $row[0]->start )
1005
            {
1006
                $start = $row[0]->start;
1007
            }
1008
            $sql = "SELECT
1009
                    *
1010
                FROM
1011
                    vportale_art
1012
                WHERE
1013
                    id>" . $start . "
1014
            ";
1015
            $portals = DB::connection( 'cms' )->select( $sql );
552 lars 1016
            $progressbar = $this->output->createProgressBar( count( $portals ) );
1017
            $progressbar->start();
535 lars 1018
            foreach ( $portals as $portal )
1019
            {
1020
                SalesPortalType::factory()->create( [
1021
                    "id"                   => $portal->id,
1022
                    "type"                 => $portal->art,
1023
                    "name"                 => $portal->bezeichnung,
1024
                    "max_categories"       => $portal->max_categories,
1025
                    "min_depth_category"   => $portal->min_depth_category,
1026
                    "only_end_category"    => $portal->only_end_category,
1027
                    "script"               => $portal->skript,
1028
                    "script_folder"        => $portal->script_folder,
1029
                    "commit_possibilities" => $portal->commit_posibilities,
1030
                    "revokeable"           => $portal->stornierbar,
1031
                ] );
552 lars 1032
                $progressbar->advance();
535 lars 1033
            }
552 lars 1034
            $progressbar->finish();
1035
            $progressbar->clear();
535 lars 1036
        }
1037
 
1038
        private function migrateSalesPortals()
1039
        {
1040
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportale" );
1041
            $start = 0;
1042
            $sql = "SELECT
1043
                    MAX(id) start
1044
                FROM
1045
                    sales_portals
1046
            ";
1047
            $row = DB::connection( 'mysql' )->select( $sql );
1048
            if ( $row[0]->start )
1049
            {
1050
                $start = $row[0]->start;
1051
            }
1052
            $sql = "SELECT
1053
                    *
1054
                FROM
1055
                    vportale
1056
                WHERE
1057
                    id>" . $start . "
1058
            ";
1059
            $portals = DB::connection( 'old' )->select( $sql );
552 lars 1060
            $progressbar = $this->output->createProgressBar( count( $portals ) );
1061
            $progressbar->start();
535 lars 1062
            foreach ( $portals as $portal )
538 lars 1063
            {
1064
                $max_preis = 0;
1065
                $anrede = 1;
1066
                if ( isset( $portal->anrede ) )
1067
                {
1068
                    $anrede = $portal->anrede;
1069
                }
1070
                if ( isset( $portal->max_preis ) )
1071
                {
1072
                    $max_preis = $portal->max_preis;
1073
                }
535 lars 1074
                SalesPortal::factory()->create( [
538 lars 1075
                    "id"                   => $portal->id,
1076
                    "name"                 => $portal->name,
1077
                    "template"             => $portal->template,
1078
                    "sales_portal_type_id" => $portal->art,
1079
                    "sku_prefix"           => $portal->sku_prefix,
1080
                    "price_number"         => $portal->preis_nummer,
1081
                    "base_price"           => $portal->basis_preis,
1082
                    "min_price"            => $portal->min_preis,
1083
                    "max_price"            => $max_preis,
1084
                    "digits"               => $portal->runden,
1085
                    "standard_amount"      => $portal->standard_menge,
1086
                    "item_url"             => $portal->artikel_url,
1087
                    "currency"             => $portal->currency,
1088
                    "shipping_state"       => $portal->lieferstatus,
1089
                    "delivery"             => $portal->delivery,
1090
                    "shipping_cost"        => $portal->shipping_cost,
1091
                    "afterbuy"             => $portal->afterbuy,
1092
                    "salutation"           => $anrede,
1093
                    "commit_fields"        => $portal->commit_fields,
1094
                    "zip"                  => $portal->plz,
1095
                    "location"             => $portal->location,
1096
                    "created_by"           => $portal->erstellt_von,
1097
                    "updated_by"           => $portal->geaendert_von,
1098
                    "created_at"           => $portal->erstellt_am,
1099
                    "updated_at"           => $portal->geaendert_am,
535 lars 1100
                ] );
552 lars 1101
                $progressbar->advance();
535 lars 1102
            }
552 lars 1103
            $progressbar->finish();
1104
            $progressbar->clear();
535 lars 1105
        }
538 lars 1106
 
1107
        private function migrateSalesPortalItems()
1108
        {
1109
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalartikel" );
1110
            $start = 0;
1111
            $sql = "SELECT
1112
                    MAX(id) start
1113
                FROM
1114
                    sales_portal_items
1115
            ";
1116
            $row = DB::connection( 'mysql' )->select( $sql );
1117
            if ( $row[0]->start )
1118
            {
1119
                $start = $row[0]->start;
1120
            }
1121
            $sql = "SELECT
1122
                    *
1123
                FROM
1124
                    artikel_vportale
1125
                WHERE
1126
                    id>" . $start . "
1127
            ";
1128
            $items = DB::connection( 'old' )->select( $sql );
552 lars 1129
            $progressbar = $this->output->createProgressBar( count( $items ) );
1130
            $progressbar->start();
538 lars 1131
            foreach ( $items as $item )
1132
            {
544 lars 1133
                $pickup = 0;
1134
                if ( isset( $item->pickup ) )
1135
                {
1136
                    $pickup = $item->pickup;
1137
                }
549 lars 1138
                $start = $item->start;
1139
                if ( $start == "0000-00-00 00:00:00" )
1140
                {
1141
                    $start = null;
1142
                }
547 lars 1143
                $erstellt_am = $item->erstellt_am;
1144
                if ( $erstellt_am == "0000-00-00 00:00:00" )
1145
                {
1146
                    $erstellt_am = null;
1147
                }
548 lars 1148
                $geaendert_am = $item->geaendert_am;
1149
                if ( $geaendert_am == "0000-00-00 00:00:00" )
547 lars 1150
                {
548 lars 1151
                    $geaendert_am = null;
547 lars 1152
                }
538 lars 1153
                SalesPortalItem::factory()->create( [
1154
                    "id"                              => $item->id,
1155
                    "sales_portal_id"                 => $item->vportale_id,
1156
                    "item_id"                         => $item->artikel_id,
1157
                    "sales_portal_template_id"        => $item->template_id,
1158
                    "sku"                             => $item->sku,
1159
                    "additions"                       => $item->zusaetze,
1160
                    "foreign_item_id"                 => $item->fremdartikel_id,
1161
                    "name"                            => $item->name,
1162
                    "autochange_name"                 => $item->autochange_name,
1163
                    "name_bold"                       => $item->name_fett,
1164
                    "highlight"                       => $item->highlight,
1165
                    "sub_name"                        => $item->sub_name,
1166
                    "manufacturer"                    => $item->hersteller,
1167
                    "autochange_manufacturer"         => $item->autochange_hersteller,
1168
                    "ean"                             => $item->ean,
1169
                    "autochange_ean"                  => $item->autochange_ean,
1170
                    "mpn"                             => $item->mpn,
1171
                    "autochange_mpn"                  => $item->autochange_mpn,
1172
                    "description"                     => $item->beschreibung,
1173
                    "autochange_description"          => $item->autochange_beschreibung,
541 lars 1174
                    "description_addition"            => $item->beschreibung_zusatz,
542 lars 1175
                    "autochange_description_addition" => $item->autochange_beschreibung_zusatz,
538 lars 1176
                    "price"                           => $item->preis,
1177
                    "autochange_price"                => $item->autochange_preis,
543 lars 1178
                    "currency"                        => $item->currency,
538 lars 1179
                    "tax"                             => $item->tax,
1180
                    "price_type"                      => $item->preisart,
1181
                    "amount"                          => $item->menge,
1182
                    "carrier"                         => $item->carrier,
1183
                    "carrier_cost"                    => $item->carrier_cost,
549 lars 1184
                    "start"                           => $start,
538 lars 1185
                    "duration"                        => $item->dauer,
1186
                    "category_1"                      => $item->kategorie_1,
1187
                    "category_2"                      => $item->kategorie_2,
1188
                    "category_3"                      => $item->kategorie_3,
1189
                    "bp1"                             => $item->bp1,
1190
                    "bp2"                             => $item->bp2,
1191
                    "bp3"                             => $item->bp3,
1192
                    "bp4"                             => $item->bp4,
1193
                    "bp5"                             => $item->bp5,
1194
                    "platin_search_1"                 => $item->platin_search_1,
1195
                    "platin_search_2"                 => $item->platin_search_2,
1196
                    "platin_search_3"                 => $item->platin_search_3,
1197
                    "platin_search_4"                 => $item->platin_search_4,
1198
                    "platin_search_5"                 => $item->platin_search_5,
1199
                    "search_1"                        => $item->search_1,
1200
                    "search_2"                        => $item->search_2,
1201
                    "search_3"                        => $item->search_3,
1202
                    "search_4"                        => $item->search_4,
1203
                    "search_5"                        => $item->search_5,
1204
                    "status"                          => $item->status,
1205
                    "online_status"                   => $item->online_status,
1206
                    "delivery_time"                   => $item->lieferzeit,
544 lars 1207
                    "pickup"                          => $pickup,
538 lars 1208
                    "last_feedback"                   => $item->last_feedback,
1209
                    "created_by"                      => $item->erstellt_von,
1210
                    "updated_by"                      => $item->geaendert_von,
547 lars 1211
                    "created_at"                      => $erstellt_am,
1212
                    "updated_at"                      => $geaendert_am,
538 lars 1213
                ] );
552 lars 1214
                $progressbar->advance();
538 lars 1215
            }
552 lars 1216
            $progressbar->finish();
1217
            $progressbar->clear();
555 lars 1218
        }
551 lars 1219
 
555 lars 1220
        private function migratePriceAgencies()
1221
        {
552 lars 1222
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preisagenturen" );
551 lars 1223
            $start = 0;
1224
            $sql = "SELECT
1225
                    MAX(id) start
1226
                FROM
1227
                    price_agencies
1228
            ";
1229
            $row = DB::connection( 'mysql' )->select( $sql );
1230
            if ( $row[0]->start )
1231
            {
1232
                $start = $row[0]->start;
1233
            }
1234
            $sql = "SELECT
1235
                    *
1236
                FROM
1237
                    Preisagentur
1238
                WHERE
1239
                    id>" . $start . "
1240
            ";
555 lars 1241
            $agencies = DB::connection( 'old' )->select( $sql );
552 lars 1242
            $progressbar = $this->output->createProgressBar( count( $agencies ) );
1243
            $progressbar->start();
555 lars 1244
            foreach ( $agencies as $agency )
1245
            {
1246
                $letzter_Abruf_am = $agency->letzter_Abruf_am;
1247
                if ( $letzter_Abruf_am == "0000-00-00 00:00:00" )
1248
                {
1249
                    $letzter_Abruf_am = null;
1250
                }
1251
                $letzte_Aktualisierung_am = $agency->letzte_Aktualisierung_am;
1252
                if ( $letzte_Aktualisierung_am == "0000-00-00 00:00:00" )
1253
                {
1254
                    $letzte_Aktualisierung_am = null;
1255
                }
1256
                PriceAgency::factory()->create( [
1257
                    "id"                   => $agency->ID,
1258
                    "shop_id"              => $agency->shops_ID,
1259
                    "name"                 => $agency->Titel,
1260
                    "logo_url"             => $agency->logo_url,
1261
                    "home_url"             => $agency->home_url,
1262
                    "csv_url"              => $agency->csv_url,
1263
                    "trigger_url"          => $agency->trigger_URL,
1264
                    "voting_url"           => $agency->bewertungs_URL,
1265
                    "records"              => $agency->datensaetze,
1266
                    "access_url"           => $agency->Zugang_URL,
1267
                    "access_user"          => $agency->Zugang_Benutzer,
1268
                    "access_password"      => $agency->Zugang_Passwort,
1269
                    "comment"              => $agency->Bemerkung,
1270
                    "locked_manufacturers" => $agency->gesperrte_hersteller,
1271
                    "config"               => $agency->config,
1272
                    "status"               => $agency->status,
1273
                    "only_deliverable"     => $agency->nur_lieferbar,
1274
                    "min_price"            => $agency->min_preis,
1275
                    "last_updated_at"      => $letzte_Aktualisierung_am,
1276
                    "last_access_at"       => $letzter_Abruf_am,
1277
                    "last_access_by"       => $agency->letzter_Abruf_von,
1278
                    "updated_at"           => $agency->letzte_Aenderung_am,
1279
                    "updated_by"           => $agency->letzte_Aenderung_von,
1280
                ] );
552 lars 1281
                $progressbar->advance();
1282
            }
1283
            $progressbar->finish();
1284
            $progressbar->clear();
555 lars 1285
        }
233 lars 1286
    }