Subversion-Projekte lars-tiefland.laravel_shop

Revision

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