Subversion-Projekte lars-tiefland.laravel_shop

Revision

Revision 587 | Revision 589 | 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" );
486 lars 354
            $start = 0;
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;
440
                $item->name = $row->kurzbezeichnung;
441
                $item->status = $row->status;
442
                $item->kennung = $row->kennung;
443
                $item->description = $row->beschreibung;
444
                $item->created_at = $row->erstellt_am;
445
                $item->updated_at = $row->letzte_Aenderung_am;
283 lars 446
                $ersteller = $row->erstellt_von;
282 lars 447
                if ( !$ersteller )
281 lars 448
                {
282 lars 449
                    $ersteller = "WebanOS Laravel Upgrade";
281 lars 450
                }
287 lars 451
                $bearbeiter = $row->letzte_Aenderung_von;
282 lars 452
                if ( !$bearbeiter )
281 lars 453
                {
282 lars 454
                    $bearbeiter = "WebanOS Laravel Upgrade";
281 lars 455
                }
284 lars 456
                $item->created_by = $ersteller;
457
                $item->updated_by = $bearbeiter;
458
                $item->save();
301 lars 459
                $progressbar->advance();
260 lars 460
            }
301 lars 461
            $progressbar->finish();
302 lars 462
            $progressbar->clear();
294 lars 463
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preise" );
494 lars 464
            $start = 0;
492 lars 465
            $sql = "SELECT
466
                    MAX(id) AS start
467
                FROM
468
                    prices
469
            ";
470
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 471
            if ( $row[0]->start )
492 lars 472
            {
527 lars 473
                $start = $row[0]->start;
492 lars 474
            }
260 lars 475
            $sql = "
476
                SELECT
477
                    p.*
478
                FROM
479
                    preise p
480
                JOIN
481
                    artikel a
482
                ON
483
                    a.id=p.artikel_id
484
                WHERE
485
                    a.father >=-1
492 lars 486
                AND
487
                    p.id>" . $start . "
260 lars 488
            ";
489
            $prices = DB::connection( 'old' )->select( $sql );
301 lars 490
            $progressbar = $this->output->createProgressBar( count( $prices ) );
491
            $progressbar->start();
260 lars 492
            foreach ( $prices as $price )
493
            {
494
                Price::factory()->createQuietly( [
493 lars 495
                    "id"          => $price->id,
260 lars 496
                    "item_id"     => $price->artikel_id,
497
                    "preis_index" => $price->preis_index,
498
                    "preis"       => $price->preis,
499
                    "staffel"     => $price->staffel,
500
                    "created_at"  => $price->geaendert_am,
288 lars 501
                    "created_by"  => $price->geaendert_von,
502
                    "updated_by"  => $price->geaendert_von,
260 lars 503
                    "updated_at"  => $price->geaendert_am
504
                ] );
301 lars 505
                $progressbar->advance();
260 lars 506
            }
301 lars 507
            $progressbar->finish();
302 lars 508
            $progressbar->clear();
260 lars 509
        }
510
 
527 lars 511
        public function migrateMedia()
433 lars 512
        {
527 lars 513
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Medien" );
486 lars 514
            $start = 0;
433 lars 515
            $sql = "SELECT
527 lars 516
                    MAX(id) AS start
486 lars 517
                FROM
527 lars 518
                    media
486 lars 519
            ";
520
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 521
            if ( $row[0]->start )
486 lars 522
            {
527 lars 523
                $start = $row[0]->start;
486 lars 524
            }
527 lars 525
            $sql = "
526
                SELECT
527
                    *
528
                FROM
529
                    medien
530
                WHERE
531
                    id>" . $start . "
532
            ";
533
            $media = DB::connection( 'old' )->select( $sql );
534
            $progressbar = $this->output->createProgressBar( count( $media ) );
535
            $progressbar->start();
536
            foreach ( $media as $medium )
537
            {
538
                $mediumDB = new Medium();
539
                $mediumDB->id = $medium->id;
540
                $mediumDB->name = $medium->name;
541
                $mediumDB->folder = $medium->folder;
542
                $mediumDB->medium_type_id = $medium->typ;
543
                $mediumDB->description = $medium->beschreibung;
544
                if ( $medium->erstellt_am )
545
                {
546
                    $mediumDB->created_at = date( "Y-m-d H:i:s", $medium->erstellt_am );
547
                }
548
                $ersteller = $medium->erstellt_von;
549
                if ( !$ersteller )
550
                {
551
                    $ersteller = "WebanOS Laravel Upgrade";
552
                }
553
                $bearbeiter = $medium->letzte_aenderung_von;
554
                if ( !$bearbeiter )
555
                {
556
                    $bearbeiter = "WebanOS Laravel Upgrade";
557
                }
558
                $mediumDB->created_by = $ersteller;
559
                $mediumDB->updated_by = $bearbeiter;
560
                $mediumDB->save();
561
                $progressbar->advance();
562
            }
563
            $progressbar->finish();
564
            $progressbar->clear();
565
        }
566
 
567
        public function migrateActionMedia()
568
        {
569
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktions-Bilder" );
570
            $start = 0;
486 lars 571
            $sql = "SELECT
527 lars 572
                    MAX(id) AS start
573
                FROM
574
                    action_media
575
            ";
576
            $row = DB::connection( "mysql" )->select( $sql );
577
            if ( $row[0]->start )
578
            {
579
                $start = $row[0]->start;
580
            }
581
            $sql = "SELECT
433 lars 582
                    *
583
                FROM
527 lars 584
                    aktionen_medien
486 lars 585
                WHERE
527 lars 586
                    id>" . $start . "
433 lars 587
            ";
588
            $media = DB::connection( 'old' )->select( $sql );
589
            $progressbar = $this->output->createProgressBar( count( $media ) );
590
            $progressbar->start();
591
            foreach ( $media as $row )
592
            {
527 lars 593
                $medium = new ActionMedium();
594
                $medium->action_id = $row->aktionen_id;
433 lars 595
                $medium->medium_id = $row->medien_id;
596
                $medium->rank = $row->rang;
597
                $medium->created_by = "WebanOS Laravel Upgrade";
598
                $medium->updated_by = "WebanOS Laravel Upgrade";
599
                $medium->save();
600
                $progressbar->advance();
601
            }
602
            $progressbar->finish();
603
            $progressbar->clear();
604
        }
605
 
527 lars 606
        public function migrateDirMedia()
260 lars 607
        {
527 lars 608
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorie-Bilder" );
486 lars 609
            $start = 0;
610
            $sql = "SELECT
527 lars 611
                    MAX(medium_id) AS start
486 lars 612
                FROM
527 lars 613
                    directory_media
486 lars 614
            ";
615
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 616
            if ( $row[0]->start )
486 lars 617
            {
527 lars 618
                $start = $row[0]->start;
486 lars 619
            }
527 lars 620
            $sql = "SELECT
260 lars 621
                    *
622
                FROM
527 lars 623
                    directory_medien
486 lars 624
                WHERE
527 lars 625
                    medien_id>" . $start . "
260 lars 626
            ";
527 lars 627
            $media = DB::connection( 'old' )->select( $sql );
628
            $progressbar = $this->output->createProgressBar( count( $media ) );
301 lars 629
            $progressbar->start();
527 lars 630
            foreach ( $media as $row )
260 lars 631
            {
527 lars 632
                $medium = new DirectoryMedium();
633
                $medium->directory_id = $row->directory_id;
634
                $medium->medium_id = $row->medien_id;
635
                $medium->rank = $row->rang;
636
                $medium->similar = $row->aehnlich;
637
                $medium->created_at = $row->zugeordnet_am;
638
                $medium->updated_at = $row->zugeordnet_am;
639
                $medium->created_by = "WebanOS Laravel Upgrade";
640
                $medium->updated_by = "WebanOS Laravel Upgrade";
641
                $medium->save();
301 lars 642
                $progressbar->advance();
260 lars 643
            }
301 lars 644
            $progressbar->finish();
302 lars 645
            $progressbar->clear();
260 lars 646
        }
272 lars 647
 
527 lars 648
        public function migrateItemMedia()
272 lars 649
        {
527 lars 650
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel-Bilder" );
486 lars 651
            $start = 0;
433 lars 652
            $sql = "SELECT
527 lars 653
                    MAX(medium_id) AS start
486 lars 654
                FROM
527 lars 655
                    item_media
486 lars 656
            ";
657
            $row = DB::connection( "mysql" )->select( $sql );
527 lars 658
            if ( $row[0]->start )
486 lars 659
            {
527 lars 660
                $start = $row[0]->start;
486 lars 661
            }
662
            $sql = "SELECT
272 lars 663
                    *
664
                FROM
527 lars 665
                    artikel_medien
486 lars 666
                WHERE
527 lars 667
                    medien_id>" . $start . "
272 lars 668
            ";
669
            $media = DB::connection( 'old' )->select( $sql );
301 lars 670
            $progressbar = $this->output->createProgressBar( count( $media ) );
671
            $progressbar->start();
433 lars 672
            foreach ( $media as $row )
272 lars 673
            {
527 lars 674
                $medium = new ItemMedium();
675
                $medium->item_id = $row->artikel_id;
433 lars 676
                $medium->medium_id = $row->medien_id;
677
                $medium->rank = $row->rang;
527 lars 678
                $medium->similar = $row->aehnlich;
679
                $medium->created_at = $row->zugeordnet_am;
680
                $medium->updated_at = $row->zugeordnet_am;
433 lars 681
                $medium->created_by = "WebanOS Laravel Upgrade";
682
                $medium->updated_by = "WebanOS Laravel Upgrade";
683
                $medium->save();
301 lars 684
                $progressbar->advance();
272 lars 685
            }
301 lars 686
            $progressbar->finish();
302 lars 687
            $progressbar->clear();
272 lars 688
        }
304 lars 689
 
690
        private function migrateUsers()
691
        {
692
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere User" );
433 lars 693
            $start = 0;
694
            $sql = "SELECT
695
                    MAX(id) AS start
696
                FROM
434 lars 697
                    users
433 lars 698
            ";
699
            $row = DB::connection( "order" )->select( $sql );
527 lars 700
            if ( $row[0]->start )
433 lars 701
            {
527 lars 702
                $start = $row[0]->start;
433 lars 703
            }
704
            $sql = "SELECT
705
                    *
706
                FROM
434 lars 707
                    Logins
433 lars 708
                WHERE
709
                    id>" . $start . "
710
            ";
437 lars 711
            $users = DB::connection( "oldOrder" )->select( $sql );
712
            $progressbar = $this->output->createProgressBar( count( $users ) );
448 lars 713
            $progressbar->start();
437 lars 714
            foreach ( $users as $oldUser )
433 lars 715
            {
443 lars 716
                $ersteller = $oldUser->erstellt_von;
442 lars 717
                if ( !$ersteller )
718
                {
719
                    $ersteller = "WebanOS Laravel Upgrade";
720
                }
443 lars 721
                $bearbeiter = $oldUser->letzte_Aenderung_von;
442 lars 722
                if ( !$bearbeiter )
723
                {
724
                    $bearbeiter = "WebanOS Laravel Upgrade";
725
                }
437 lars 726
                $user = new User();
438 lars 727
                $user->id = $oldUser->ID;
437 lars 728
                $user->email = $oldUser->E_Mail;
729
                $user->created_at = $oldUser->erstellt_am;
442 lars 730
                $user->created_by = $ersteller;
731
                $user->updated_by = $bearbeiter;
437 lars 732
                $user->updated_at = $oldUser->letzte_Aenderung_am;
733
                $user->save();
441 lars 734
                $progressbar->advance();
433 lars 735
            }
441 lars 736
            $progressbar->finish();
737
            $progressbar->clear();
304 lars 738
        }
739
 
445 lars 740
        private function migrateAddresses( bool $isOrder = false )
304 lars 741
        {
445 lars 742
            $typ = "Adressen";
743
            $table = "addresses";
744
            $oldTable = "adresse";
745
            if ( $isOrder === true )
746
            {
747
                $typ = "Bestelladressen";
748
                $table = "order_addresses";
749
                $oldTable = "bestelladresse";
750
            }
751
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere " . $typ );
752
            $start = 0;
753
            $sql = "SELECT
754
                    MAX(id) AS start
755
                FROM
756
                    " . $table . "
757
            ";
758
            $row = DB::connection( "order" )->select( $sql );
527 lars 759
            if ( $row[0]->start )
445 lars 760
            {
527 lars 761
                $start = $row[0]->start;
445 lars 762
            }
763
            $sql = "SELECT
764
                    *
765
                FROM
766
                    " . $oldTable . "
767
                WHERE
768
                    id>" . $start . "
769
            ";
770
            $addresses = DB::connection( "oldOrder" )->select( $sql );
771
            $progressbar = $this->output->createProgressBar( count( $addresses ) );
447 lars 772
            $progressbar->start();
445 lars 773
            foreach ( $addresses as $oldAddress )
774
            {
775
                $ersteller = "WebanOS Laravel Upgrade";
776
                $bearbeiter = "WebanOS Laravel Upgrade";
458 lars 777
                if ( $isOrder === true )
452 lars 778
                {
779
                    $address = new OrderAddress();
780
                }
781
                else
782
                {
783
                    $address = new Address();
784
                }
445 lars 785
                $address->id = $oldAddress->id;
786
                $address->user_id = $oldAddress->logins_id;
787
                $address->salutation = $oldAddress->anrede;
788
                $address->pro_title = $oldAddress->pro_title;
789
                $address->name = $oldAddress->vorname;
790
                $address->lastname = $oldAddress->nachname;
791
                $address->company = $oldAddress->firma;
792
                $address->company2 = $oldAddress->firma2;
793
                $address->street = $oldAddress->strasse1;
794
                $address->houseno = $oldAddress->str_nr1;
795
                $address->street2 = $oldAddress->strasse2;
796
                $address->zip = $oldAddress->plz;
797
                $address->city = $oldAddress->ort;
798
                $address->country_id = $oldAddress->land;
799
                $address->state_id = $oldAddress->state;
800
                $address->phone = $oldAddress->telefon;
801
                $address->fax = $oldAddress->fax;
802
                $address->email = $oldAddress->email;
803
                $address->nettocalculation = $oldAddress->nettoberechnung;
450 lars 804
                $address->hr_nr = $oldAddress->hr_nr;
445 lars 805
                $address->vat_id = $oldAddress->vat_id;
806
                $address->vat_free = $oldAddress->mwst_befreiung;
807
                $address->legal_form = $oldAddress->legal_form;
808
                $address->comment = $oldAddress->comment;
451 lars 809
                $address->created_at = $oldAddress->letzte_aenderung_am;
445 lars 810
                $address->created_by = $ersteller;
811
                $address->updated_by = $bearbeiter;
812
                $address->updated_at = $oldAddress->letzte_aenderung_am;
813
                $address->save();
814
                $progressbar->advance();
815
            }
816
            $progressbar->finish();
817
            $progressbar->clear();
304 lars 818
        }
819
 
820
        private function migrateOrderAddresses()
821
        {
445 lars 822
            $this->migrateAddresses( true );
304 lars 823
        }
824
 
825
        private function migrateOrders()
826
        {
827
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellungen" );
454 lars 828
            $start = 0;
829
            $sql = "SELECT
830
                    MAX(id) AS start
831
                FROM
832
                    orders
833
            ";
834
            $row = DB::connection( "order" )->select( $sql );
527 lars 835
            if ( $row[0]->start )
454 lars 836
            {
527 lars 837
                $start = $row[0]->start;
454 lars 838
            }
839
            $sql = "SELECT
840
                    *
841
                FROM
842
                    Bestellung
843
                WHERE
844
                    id>" . $start . "
845
            ";
846
            $orders = DB::connection( "oldOrder" )->select( $sql );
847
            $progressbar = $this->output->createProgressBar( count( $orders ) );
848
            $progressbar->start();
849
            foreach ( $orders as $oldOrder )
850
            {
501 lars 851
                $paidAt = $oldOrder->bezahlt_am;
852
                if ( $paidAt == "0000-00-00 00:00:00" )
853
                {
502 lars 854
                    $paidAt = null;
501 lars 855
                }
454 lars 856
                $order = new Order();
857
                $order->id = $oldOrder->ID;
481 lars 858
                $order->shop_id = $oldOrder->shops_ID;
459 lars 859
                $order->order_type_id = $oldOrder->bestellart_id;
458 lars 860
                $order->payment_method_id = $oldOrder->zahlart_id;
861
                $order->user_id = $oldOrder->Login;
862
                $order->ship_addr_id = $oldOrder->ship_addr_id;
863
                $order->bill_addr_id = $oldOrder->bill_addr_id;
864
                $order->paid = $oldOrder->bezahlt;
501 lars 865
                $order->paid_at = $paidAt;
458 lars 866
                $order->paid_comment = $oldOrder->bezahlt_bemerkung;
867
                $order->foreign_id = $oldOrder->fremd_id;
868
                $order->foreign_payment_id = $oldOrder->bezahlt_fremdid;
869
                $order->status = $oldOrder->status;
870
                $order->total_amount_buffer = $oldOrder->gesamtsumme_buffer;
871
                $order->item_status_buffer = $oldOrder->artikelstatus_buffer;
872
                $order->invoice_status_buffer = $oldOrder->rechnungsstatus_buffer;
504 lars 873
                $order->delivery_note_status_buffer = $oldOrder->lieferscheinStatus_buffer;
458 lars 874
                $order->tax = $oldOrder->tax;
875
                $order->comment = $oldOrder->Bemerkung;
876
                $order->external_comment = $oldOrder->Bemerkung_extern;
877
                $order->note = $oldOrder->notiz;
460 lars 878
                $order->additional_info = $oldOrder->zusatzInfo;
458 lars 879
                $order->shipping_group_id = $oldOrder->versandgruppen_id;
880
                $order->kk_info = $oldOrder->kk_info;
881
                $order->created_by = $oldOrder->erstellt_von;
882
                $order->updated_by = $oldOrder->letzte_Aenderung_von;
883
                $order->updated_at = $oldOrder->letzte_Aenderung_am;
884
                $order->created_at = $oldOrder->erstellt_am;
454 lars 885
                $order->save();
886
                $progressbar->advance();
887
            }
888
            $progressbar->finish();
889
            $progressbar->clear();
304 lars 890
        }
891
 
892
        private function migrateOrderItems()
893
        {
578 lars 894
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel in Bestellungen" );
454 lars 895
            $start = 0;
896
            $sql = "SELECT
897
                    MAX(id) AS start
898
                FROM
899
                    order_items
900
            ";
901
            $row = DB::connection( "order" )->select( $sql );
527 lars 902
            if ( $row[0]->start )
454 lars 903
            {
527 lars 904
                $start = $row[0]->start;
454 lars 905
            }
906
            $sql = "SELECT
907
                    *
908
                FROM
909
                    artikel_to_Bestellung
910
                WHERE
911
                    id>" . $start . "
912
            ";
913
            $orderItems = DB::connection( "oldOrder" )->select( $sql );
914
            $progressbar = $this->output->createProgressBar( count( $orderItems ) );
915
            $progressbar->start();
916
            foreach ( $orderItems as $oldOrderItem )
917
            {
573 lars 918
                $exported = $oldOrderItem->exported;
919
                if ( $exported == "0000-00-00 00:00:00" )
920
                {
921
                    $exported = null;
922
                }
923
                $exported_invoice = $oldOrderItem->exported_rechnung;
924
                if ( $exported_invoice == "0000-00-00 00:00:00" )
925
                {
926
                    $exported_invoice = null;
927
                }
928
                $exported_delivery_note = $oldOrderItem->exported_lieferschein;
929
                if ( $exported_delivery_note == "0000-00-00 00:00:00" )
930
                {
931
                    $exported_delivery_note = null;
932
                }
561 lars 933
                OrderItem::factory()->create( [
567 lars 934
                    "id"                     => $oldOrderItem->ID,
935
                    "item_id"                => $oldOrderItem->artikel,
936
                    "order_id"               => $oldOrderItem->Bestellung,
568 lars 937
                    "name"                   => $oldOrderItem->Bezeichnung,
567 lars 938
                    "amount"                 => $oldOrderItem->Menge,
939
                    "price"                  => $oldOrderItem->Preis_pro_Stueck,
940
                    "father"                 => $oldOrderItem->father,
941
                    "status"                 => $oldOrderItem->status,
942
                    "delivery_status"        => $oldOrderItem->lieferstatus,
569 lars 943
                    "invoice_status"         => $oldOrderItem->rechnungStatus,
567 lars 944
                    "delivery_note_status"   => $oldOrderItem->lieferscheinStatus,
945
                    "foreign_id"             => $oldOrderItem->fremd_id,
570 lars 946
                    "option_input"           => $oldOrderItem->option_eingabe,
567 lars 947
                    "description"            => $oldOrderItem->beschreibung,
569 lars 948
                    "rank"                   => $oldOrderItem->Rang,
567 lars 949
                    "tax"                    => $oldOrderItem->mwst,
950
                    "orig_value"             => $oldOrderItem->orig_value,
951
                    "orig_currency"          => $oldOrderItem->orig_currency,
952
                    "hash"                   => $oldOrderItem->hash,
573 lars 953
                    "exported"               => $exported,
574 lars 954
                    "exported_invoice"       => $exported_invoice,
955
                    "exported_delivery_note" => $exported_delivery_note,
567 lars 956
 
561 lars 957
                ] );
454 lars 958
                $progressbar->advance();
959
            }
960
            $progressbar->finish();
961
            $progressbar->clear();
304 lars 962
        }
535 lars 963
 
964
        private function migrateSalesPortalTypes()
965
        {
966
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalarten" );
967
            $start = 0;
968
            $sql = "SELECT
969
                    MAX(id) start
970
                FROM
971
                    sales_portal_types
972
            ";
973
            $row = DB::connection( 'cms' )->select( $sql );
974
            if ( $row[0]->start )
975
            {
976
                $start = $row[0]->start;
977
            }
978
            $sql = "SELECT
979
                    *
980
                FROM
981
                    vportale_art
982
                WHERE
983
                    id>" . $start . "
984
            ";
985
            $portals = DB::connection( 'cms' )->select( $sql );
552 lars 986
            $progressbar = $this->output->createProgressBar( count( $portals ) );
987
            $progressbar->start();
535 lars 988
            foreach ( $portals as $portal )
989
            {
990
                SalesPortalType::factory()->create( [
991
                    "id"                   => $portal->id,
992
                    "type"                 => $portal->art,
993
                    "name"                 => $portal->bezeichnung,
994
                    "max_categories"       => $portal->max_categories,
995
                    "min_depth_category"   => $portal->min_depth_category,
996
                    "only_end_category"    => $portal->only_end_category,
997
                    "script"               => $portal->skript,
998
                    "script_folder"        => $portal->script_folder,
999
                    "commit_possibilities" => $portal->commit_posibilities,
1000
                    "revokeable"           => $portal->stornierbar,
1001
                ] );
552 lars 1002
                $progressbar->advance();
535 lars 1003
            }
552 lars 1004
            $progressbar->finish();
1005
            $progressbar->clear();
535 lars 1006
        }
1007
 
1008
        private function migrateSalesPortals()
1009
        {
1010
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportale" );
1011
            $start = 0;
1012
            $sql = "SELECT
1013
                    MAX(id) start
1014
                FROM
1015
                    sales_portals
1016
            ";
1017
            $row = DB::connection( 'mysql' )->select( $sql );
1018
            if ( $row[0]->start )
1019
            {
1020
                $start = $row[0]->start;
1021
            }
1022
            $sql = "SELECT
1023
                    *
1024
                FROM
1025
                    vportale
1026
                WHERE
1027
                    id>" . $start . "
1028
            ";
1029
            $portals = DB::connection( 'old' )->select( $sql );
552 lars 1030
            $progressbar = $this->output->createProgressBar( count( $portals ) );
1031
            $progressbar->start();
535 lars 1032
            foreach ( $portals as $portal )
538 lars 1033
            {
1034
                $max_preis = 0;
1035
                $anrede = 1;
1036
                if ( isset( $portal->anrede ) )
1037
                {
1038
                    $anrede = $portal->anrede;
1039
                }
1040
                if ( isset( $portal->max_preis ) )
1041
                {
1042
                    $max_preis = $portal->max_preis;
1043
                }
535 lars 1044
                SalesPortal::factory()->create( [
538 lars 1045
                    "id"                   => $portal->id,
1046
                    "name"                 => $portal->name,
1047
                    "template"             => $portal->template,
1048
                    "sales_portal_type_id" => $portal->art,
1049
                    "sku_prefix"           => $portal->sku_prefix,
1050
                    "price_number"         => $portal->preis_nummer,
1051
                    "base_price"           => $portal->basis_preis,
1052
                    "min_price"            => $portal->min_preis,
1053
                    "max_price"            => $max_preis,
1054
                    "digits"               => $portal->runden,
1055
                    "standard_amount"      => $portal->standard_menge,
1056
                    "item_url"             => $portal->artikel_url,
1057
                    "currency"             => $portal->currency,
1058
                    "shipping_state"       => $portal->lieferstatus,
1059
                    "delivery"             => $portal->delivery,
1060
                    "shipping_cost"        => $portal->shipping_cost,
1061
                    "afterbuy"             => $portal->afterbuy,
1062
                    "salutation"           => $anrede,
1063
                    "commit_fields"        => $portal->commit_fields,
1064
                    "zip"                  => $portal->plz,
1065
                    "location"             => $portal->location,
1066
                    "created_by"           => $portal->erstellt_von,
1067
                    "updated_by"           => $portal->geaendert_von,
1068
                    "created_at"           => $portal->erstellt_am,
1069
                    "updated_at"           => $portal->geaendert_am,
535 lars 1070
                ] );
552 lars 1071
                $progressbar->advance();
535 lars 1072
            }
552 lars 1073
            $progressbar->finish();
1074
            $progressbar->clear();
535 lars 1075
        }
538 lars 1076
 
1077
        private function migrateSalesPortalItems()
1078
        {
1079
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalartikel" );
1080
            $start = 0;
1081
            $sql = "SELECT
1082
                    MAX(id) start
1083
                FROM
1084
                    sales_portal_items
1085
            ";
1086
            $row = DB::connection( 'mysql' )->select( $sql );
1087
            if ( $row[0]->start )
1088
            {
1089
                $start = $row[0]->start;
1090
            }
1091
            $sql = "SELECT
1092
                    *
1093
                FROM
1094
                    artikel_vportale
1095
                WHERE
1096
                    id>" . $start . "
1097
            ";
1098
            $items = DB::connection( 'old' )->select( $sql );
552 lars 1099
            $progressbar = $this->output->createProgressBar( count( $items ) );
1100
            $progressbar->start();
538 lars 1101
            foreach ( $items as $item )
1102
            {
544 lars 1103
                $pickup = 0;
1104
                if ( isset( $item->pickup ) )
1105
                {
1106
                    $pickup = $item->pickup;
1107
                }
549 lars 1108
                $start = $item->start;
1109
                if ( $start == "0000-00-00 00:00:00" )
1110
                {
1111
                    $start = null;
1112
                }
547 lars 1113
                $erstellt_am = $item->erstellt_am;
1114
                if ( $erstellt_am == "0000-00-00 00:00:00" )
1115
                {
1116
                    $erstellt_am = null;
1117
                }
548 lars 1118
                $geaendert_am = $item->geaendert_am;
1119
                if ( $geaendert_am == "0000-00-00 00:00:00" )
547 lars 1120
                {
548 lars 1121
                    $geaendert_am = null;
547 lars 1122
                }
538 lars 1123
                SalesPortalItem::factory()->create( [
1124
                    "id"                              => $item->id,
1125
                    "sales_portal_id"                 => $item->vportale_id,
1126
                    "item_id"                         => $item->artikel_id,
1127
                    "sales_portal_template_id"        => $item->template_id,
1128
                    "sku"                             => $item->sku,
1129
                    "additions"                       => $item->zusaetze,
1130
                    "foreign_item_id"                 => $item->fremdartikel_id,
1131
                    "name"                            => $item->name,
1132
                    "autochange_name"                 => $item->autochange_name,
1133
                    "name_bold"                       => $item->name_fett,
1134
                    "highlight"                       => $item->highlight,
1135
                    "sub_name"                        => $item->sub_name,
1136
                    "manufacturer"                    => $item->hersteller,
1137
                    "autochange_manufacturer"         => $item->autochange_hersteller,
1138
                    "ean"                             => $item->ean,
1139
                    "autochange_ean"                  => $item->autochange_ean,
1140
                    "mpn"                             => $item->mpn,
1141
                    "autochange_mpn"                  => $item->autochange_mpn,
1142
                    "description"                     => $item->beschreibung,
1143
                    "autochange_description"          => $item->autochange_beschreibung,
541 lars 1144
                    "description_addition"            => $item->beschreibung_zusatz,
542 lars 1145
                    "autochange_description_addition" => $item->autochange_beschreibung_zusatz,
538 lars 1146
                    "price"                           => $item->preis,
1147
                    "autochange_price"                => $item->autochange_preis,
543 lars 1148
                    "currency"                        => $item->currency,
538 lars 1149
                    "tax"                             => $item->tax,
1150
                    "price_type"                      => $item->preisart,
1151
                    "amount"                          => $item->menge,
1152
                    "carrier"                         => $item->carrier,
1153
                    "carrier_cost"                    => $item->carrier_cost,
549 lars 1154
                    "start"                           => $start,
538 lars 1155
                    "duration"                        => $item->dauer,
1156
                    "category_1"                      => $item->kategorie_1,
1157
                    "category_2"                      => $item->kategorie_2,
1158
                    "category_3"                      => $item->kategorie_3,
1159
                    "bp1"                             => $item->bp1,
1160
                    "bp2"                             => $item->bp2,
1161
                    "bp3"                             => $item->bp3,
1162
                    "bp4"                             => $item->bp4,
1163
                    "bp5"                             => $item->bp5,
1164
                    "platin_search_1"                 => $item->platin_search_1,
1165
                    "platin_search_2"                 => $item->platin_search_2,
1166
                    "platin_search_3"                 => $item->platin_search_3,
1167
                    "platin_search_4"                 => $item->platin_search_4,
1168
                    "platin_search_5"                 => $item->platin_search_5,
1169
                    "search_1"                        => $item->search_1,
1170
                    "search_2"                        => $item->search_2,
1171
                    "search_3"                        => $item->search_3,
1172
                    "search_4"                        => $item->search_4,
1173
                    "search_5"                        => $item->search_5,
1174
                    "status"                          => $item->status,
1175
                    "online_status"                   => $item->online_status,
1176
                    "delivery_time"                   => $item->lieferzeit,
544 lars 1177
                    "pickup"                          => $pickup,
538 lars 1178
                    "last_feedback"                   => $item->last_feedback,
1179
                    "created_by"                      => $item->erstellt_von,
1180
                    "updated_by"                      => $item->geaendert_von,
547 lars 1181
                    "created_at"                      => $erstellt_am,
1182
                    "updated_at"                      => $geaendert_am,
538 lars 1183
                ] );
552 lars 1184
                $progressbar->advance();
538 lars 1185
            }
552 lars 1186
            $progressbar->finish();
1187
            $progressbar->clear();
555 lars 1188
        }
551 lars 1189
 
555 lars 1190
        private function migratePriceAgencies()
1191
        {
552 lars 1192
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preisagenturen" );
551 lars 1193
            $start = 0;
1194
            $sql = "SELECT
1195
                    MAX(id) start
1196
                FROM
1197
                    price_agencies
1198
            ";
1199
            $row = DB::connection( 'mysql' )->select( $sql );
1200
            if ( $row[0]->start )
1201
            {
1202
                $start = $row[0]->start;
1203
            }
1204
            $sql = "SELECT
1205
                    *
1206
                FROM
1207
                    Preisagentur
1208
                WHERE
1209
                    id>" . $start . "
1210
            ";
555 lars 1211
            $agencies = DB::connection( 'old' )->select( $sql );
552 lars 1212
            $progressbar = $this->output->createProgressBar( count( $agencies ) );
1213
            $progressbar->start();
580 lars 1214
            foreach ( $agencies as $manufacturer )
555 lars 1215
            {
580 lars 1216
                $letzter_Abruf_am = $manufacturer->letzter_Abruf_am;
555 lars 1217
                if ( $letzter_Abruf_am == "0000-00-00 00:00:00" )
1218
                {
1219
                    $letzter_Abruf_am = null;
1220
                }
580 lars 1221
                $letzte_Aktualisierung_am = $manufacturer->letzte_Aktualisierung_am;
555 lars 1222
                if ( $letzte_Aktualisierung_am == "0000-00-00 00:00:00" )
1223
                {
1224
                    $letzte_Aktualisierung_am = null;
1225
                }
1226
                PriceAgency::factory()->create( [
580 lars 1227
                    "id"                   => $manufacturer->ID,
1228
                    "shop_id"              => $manufacturer->shops_ID,
1229
                    "name"                 => $manufacturer->Titel,
1230
                    "logo_url"             => $manufacturer->logo_url,
1231
                    "home_url"             => $manufacturer->home_url,
1232
                    "csv_url"              => $manufacturer->csv_url,
1233
                    "trigger_url"          => $manufacturer->trigger_URL,
1234
                    "voting_url"           => $manufacturer->bewertungs_URL,
1235
                    "records"              => $manufacturer->datensaetze,
1236
                    "access_url"           => $manufacturer->Zugang_URL,
1237
                    "access_user"          => $manufacturer->Zugang_Benutzer,
1238
                    "access_password"      => $manufacturer->Zugang_Passwort,
1239
                    "comment"              => $manufacturer->Bemerkung,
1240
                    "locked_manufacturers" => $manufacturer->gesperrte_hersteller,
1241
                    "config"               => $manufacturer->config,
1242
                    "status"               => $manufacturer->status,
1243
                    "only_deliverable"     => $manufacturer->nur_lieferbar,
1244
                    "min_price"            => $manufacturer->min_preis,
555 lars 1245
                    "last_updated_at"      => $letzte_Aktualisierung_am,
1246
                    "last_access_at"       => $letzter_Abruf_am,
580 lars 1247
                    "last_access_by"       => $manufacturer->letzter_Abruf_von,
1248
                    "updated_at"           => $manufacturer->letzte_Aenderung_am,
1249
                    "updated_by"           => $manufacturer->letzte_Aenderung_von,
555 lars 1250
                ] );
552 lars 1251
                $progressbar->advance();
1252
            }
1253
            $progressbar->finish();
1254
            $progressbar->clear();
555 lars 1255
        }
580 lars 1256
 
1257
        private function migrateManufacturers()
1258
        {
1259
            $this->info( date( "d.m.Y H:i:s" ) . ": Migriere Hersteller" );
1260
            $start = 0;
1261
            $sql = "SELECT
1262
                    MAX(id) start
1263
                FROM
1264
                    manufacturers
1265
            ";
1266
            $row = DB::connection( 'mysql' )->select( $sql );
1267
            if ( $row[0]->start )
1268
            {
1269
                $start = $row[0]->start;
1270
            }
1271
            $sql = "SELECT
1272
                    *
1273
                FROM
1274
                    Herstellerkatalog
1275
                WHERE
1276
                    id>" . $start . "
1277
            ";
1278
            $manufacturers = DB::connection( 'old' )->select( $sql );
1279
            $progressbar = $this->output->createProgressBar( count( $manufacturers ) );
1280
            $progressbar->start();
1281
            foreach ( $manufacturers as $manufacturer )
1282
            {
1283
                Manufacturer::factory()->create( [
1284
                    "id"          => $manufacturer->ID,
1285
                    "name"        => $manufacturer->Name,
1286
                    "description" => $manufacturer->Text,
586 lars 1287
                    "logo1"       => $manufacturer->Logo1,
1288
                    "logo1_href"  => $manufacturer->Logo1_href,
587 lars 1289
                    "logo2"       => $manufacturer->Logo2,
586 lars 1290
                    "logo2_href"  => $manufacturer->Logo2_href,
580 lars 1291
                    "property1"   => $manufacturer->Eigenschaft_1,
1292
                    "property2"   => $manufacturer->Eigenschaft_2,
1293
                    "property3"   => $manufacturer->Eigenschaft_2,
588 lars 1294
                    "calculation" => $manufacturer->abwKalkulation,
580 lars 1295
                    "created_at"  => $manufacturer->erstellt_am,
1296
                    "created_by"  => $manufacturer->erstellt_von,
1297
                    "updated_at"  => $manufacturer->letzte_Aenderung_am,
1298
                    "updated_by"  => $manufacturer->letzte_Aenderung_von,
1299
                ] );
1300
                $progressbar->advance();
1301
            }
1302
            $progressbar->finish();
1303
            $progressbar->clear();
1304
 
1305
        }
233 lars 1306
    }