Subversion-Projekte lars-tiefland.laravel_shop

Revision

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