Subversion-Projekte lars-tiefland.laravel_shop

Revision

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