Subversion-Projekte lars-tiefland.laravel_shop

Revision

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