Subversion-Projekte lars-tiefland.laravel_shop

Revision

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