Subversion-Projekte lars-tiefland.laravel_shop

Revision

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