Revision 1601 | Zur aktuellen Revision | Blame | Vergleich mit vorheriger | Letzte Änderung | Log anzeigen | RSS feed
<?phpnamespace App\Console\Commands;use App\Models\Address;use App\Models\Directory;use App\Models\DirectoryTemplate;use App\Models\Item;use App\Models\Action;use App\Models\Manufacturer;use App\Models\Medium;use App\Models\Order;use App\Models\OrderAddress;use App\Models\OrderType;use App\Models\PaymentMethod;use App\Models\Price;use App\Models\PriceAgency;use App\Models\ActionMedium;use App\Models\ItemMedium;use App\Models\ItemTemplate;use App\Models\DirectoryMedium;use App\Models\SalesPortal;use App\Models\SalesPortalItem;use App\Models\SalesPortalType;use App\Models\Shipping;use App\Models\ShippingCountry;use App\Models\ShippingGroup;use App\Models\ShippingPaymentMethod;use App\Models\Shop;use App\Models\Template;use App\Models\User;use App\Models\OrderItem;use App\Models\WebSetting;use Illuminate\Console\Command;use Illuminate\Support\Facades\DB;class convertDB extends Command{/*** The name and signature of the console command.** @var string*/protected $signature = 'command:convertDB';/*** The console command description.** @var string*/protected $description = 'Converts the old webanOS-DB to laravel';/*** Execute the console command.** @return void*/public function handle(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung gestartet" );$this->migrateShops();$this->migrateOrderTypes();if ( env( 'site' ) == env( 'shop' ) ){$this->migrateWebSettings();}$this->migratePaymentMethods();$this->migrateShippingGroups();$this->migrateShippings();$this->migrateManufacturers();$this->migrateMedia();$this->migrateActions();$this->migrateDirs();$this->migrateItems();$this->migrateTemplates();$this->migrateSalesPortalTypes();$this->migrateSalesPortals();$this->migrateSalesPortalItems();if ( env( 'site' ) == env( 'shop' ) ){$this->migratePriceAgencies();$this->migrateUsers();$this->migrateAddresses();$this->migrateOrderAddresses();$this->migrateOrders();$this->migrateOrderItems();}$this->info( date( "d.m.Y H:i:s" ) . ": Verarbeitung beendet" );}private function migrateShops(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Shops" );$start = 0;$sql = "SELECTMAX(id) AS startFROMshops";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMshopsWHEREid>" . $start . "";$shops = DB::connection( 'old' )->select( $sql );foreach ( $shops as $oldShop ){$shop = new Shop();$shop->id = $oldShop->ID;$shop->name = $oldShop->Name;$shop->short = '';if ( isset( $oldShop->short ) && $oldShop->short ){$shop->short = $oldShop->short;}$shop->re_short = '';if ( isset( $oldShop->re_short ) && $oldShop->re_short ){$shop->re_short = $oldShop->re_short;}if ( isset( $oldShop->preisindex_ek ) && $oldShop->preisindex_ek ){$shop->preisindex_ek = $oldShop->preisindex_ek;}$shop->ebay = $oldShop->ebay;$shop->erfassung = $oldShop->erfassung;if ( isset( $oldShop->status ) && $oldShop->status ){$shop->status = $oldShop->status;}if ( isset( $oldShop->rang ) && $oldShop->rang ){$shop->rank = $oldShop->rang;}$shop->klonziel = $oldShop->klonziel;$shop->konroot = $oldShop->konroot;if ( isset( $oldShop->home ) && $oldShop->home ){$shop->home = $oldShop->home;}$shop->database = $oldShop->database;$shop->domain = $oldShop->domain;$shop->mail_server = $oldShop->mail_server;$shop->mail_user = $oldShop->mail_user;$shop->mail_password = $oldShop->mail_passwort;$shop->save();}}private function migrateOrderTypes(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellarten" );$start = 0;$sql = "SELECTMAX(id) AS startFROMorder_types";$row = DB::connection( "mysql" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMbestellartWHEREid>" . $start . "";$methods = DB::connection( 'old' )->select( $sql );foreach ( $methods as $method ){$short = '';if ( isset( $method->short ) && $method->short ){$short = $method->short;}OrderType::factory()->create( ["id" => $method->id,"internal_name" => $method->rufname,"name" => $method->name,"short" => $short,] );}}private function migratePaymentMethods(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Zahlungsmethoden" );$start = 0;$sql = "SELECTMAX(id) AS startFROMpayment_methods";$row = DB::connection( "mysql" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMzahlungsartenWHEREid>" . $start . "";$methods = DB::connection( 'old' )->select( $sql );foreach ( $methods as $method ){PaymentMethod::factory()->create( ["id" => $method->id,"name" => $method->name,"discount" => $method->abschlag,"internal_name" => $method->interner_name,"info_in_shop" => $method->info_im_shop,"shipping_text" => $method->versandtextbaustein,] );}}private function migrateShippingGroups(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandgruppen" );$sql = "SELECT*FROMversandgruppen";$methods = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $methods ) );$progressbar->start();foreach ( $methods as $group ){$item = ShippingGroup::find( $group->id );if ( !isset( $item->id ) ){ShippingGroup::factory()->create( ["id" => $group->id,"name" => $group->name,"conditions" => $group->bedingungen,"icon" => $group->icon,"rank" => $group->rang,"shipping_text" => $group->versandtextbaustein,"created_by" => $group->erstellt_von,"updated_by" => $group->geaendert_von,"updated_at" => $group->geaendert_am,"created_at" => $group->erstellt_am,] );}else{$item->name = $group->name;$item->conditions = $group->bedingungen;$item->icon = $group->icon;$item->rank = $group->rang;$item->shipping_text = $group->versandtextbaustein;$item->updated_by = $group->geaendert_von;$item->updated_at = $group->geaendert_am;$item->save();}$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateShippings(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Versandoptionen" );$sql = "SELECT*FROMversand";$methods = DB::connection( 'old' )->select( $sql );foreach ( $methods as $group ){$item = Shipping::find( $group->id );if ( isset( $item->id ) ){$item->rank = $group->rang;$item->shipping_group_id = $group->versandgruppen_id;$item->name = $group->name;$item->info_shop = $group->info_shop;$item->info_mail = $group->info_mail;$item->info_internal = $group->info_intern;$item->island_shipping = $group->inselversand;$item->additions = $group->zusaetze;$item->status = $group->status;$item->price = $group->preis;$item->calc_weight_from = $group->berechnung_kg_von;$item->calc_weight_to = $group->berechnung_kg_bis;$item->calc_price_from = $group->berechnung_preis_von;$item->calc_price_to = $group->berechnung_preis_bis;$item->conditions = $group->bedingungen;$item->tax_rate = $group->steuersatz;$item->updated_by = $group->geaendert_von;$item->updated_at = $group->geaendert_am;$item->save();}else{Shipping::factory()->create( ["id" => $group->id,"rank" => $group->rang,"shipping_group_id" => $group->versandgruppen_id,"name" => $group->name,"info_shop" => $group->info_shop,"info_mail" => $group->info_mail,"info_internal" => $group->info_intern,"island_shipping" => $group->inselversand,"additions" => $group->zusaetze,"status" => $group->status,"price" => $group->preis,"calc_weight_from" => $group->berechnung_kg_von,"calc_weight_to" => $group->berechnung_kg_bis,"calc_price_from" => $group->berechnung_preis_von,"calc_price_to" => $group->berechnung_preis_bis,"conditions" => $group->bedingungen,"tax_rate" => $group->steuersatz,"created_by" => $group->erstellt_von,"updated_by" => $group->geaendert_von,"updated_at" => $group->geaendert_am,"created_at" => $group->erstellt_am,] );}$sql = "SELECT*FROMversand_to_landWHEREversand_id=" . $group->id . "";$r = DB::connection( 'old' )->select( $sql );foreach ( $r as $row ){$item = ShippingCountry::where( "shipping_id", "=", $row->versand_id )->where( "country_id", "=", $row->country_id )->get();if ( !isset( $item[0]->id ) ){ShippingCountry::factory()->create( [ "shipping_id" => $row->versand_id, "country_id" => $row->country_id, ] );}}$sql = "SELECT*FROMversand_to_zahlartenWHEREversand_id=" . $group->id . "";$r = DB::connection( 'old' )->select( $sql );foreach ( $r as $row ){$item = ShippingPaymentMethod::where( "shipping_id", "=", $row->versand_id )->where( "payment_method_id", "=", $row->zahlart_id )->get();if ( !isset( $item[0]->id ) ){ShippingPaymentMethod::factory()->create( [ "shipping_id" => $row->versand_id, "payment_method_id" => $row->zahlart_id, ] );}}}}private function migrateActions(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Aktionen" );$sql = "SELECT*FROMAktionen";$actions = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $actions ) );$progressbar->start();foreach ( $actions as $action ){$actionDB = Action::find( $action->ID );if ( !isset( $actionDB->id ) ){$actionDB = new Action();$actionDB->id = $action->ID;$actionDB->created_by = "WebanOS Laravel Upgrade";}$actionDB->headline = $action->headline;$actionDB->text = $action->text;$actionDB->rank = $action->rang;$actionDB->config = $action->config;$actionDB->category = $action->Kategorie;$actionDB->notes = $action->notizen;$actionDB->valid_from = $action->von;$actionDB->valid_to = $action->bis;$actionDB->updated_by = "WebanOS Laravel Upgrade";$actionDB->save();$this->migrateActionMedia( $actionDB->id );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateDirs(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Kategorien" );$sql = 'SELECT*FROMdirectory';$dirs = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $dirs ) );$progressbar->start();DB::statement( 'SET FOREIGN_KEY_CHECKS=0' );foreach ( $dirs as $row ){$dir = Directory::find( $row->ID );if ( isset( $dir->id ) ){$progressbar->advance();continue;}$ersteller = $row->erstellt_von;if ( !$ersteller ){$ersteller = "WebanOS Laravel Upgrade";}$bearbeiter = $row->letzte_Aenderung_von;if ( !$bearbeiter ){$bearbeiter = "WebanOS Laravel Upgrade";}$dir = new Directory();$dir->id = $row->ID;$dir->directory_id = $row->Father;$dir->name = $row->Name;$dir->articlemaster = $row->Artikelstamm;$dir->status = $row->status;$dir->kennung = $row->Kennung;$dir->description = $row->Beschreibung;$dir->description2 = $row->Beschreibung2;$dir->short_line_1 = $row->short_line_1;$dir->url = $row->url;$dir->created_at = $row->erstellt_am;$dir->created_by = $ersteller;$dir->updated_by = $bearbeiter;$dir->updated_at = $row->letzte_Aenderung_am;$dir->save();$this->migrateDirMedia( $dir->id );$progressbar->advance();}$progressbar->finish();$progressbar->clear();DB::statement( 'SET FOREIGN_KEY_CHECKS=1' );}private function migrateItems(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel" );$sql = 'SELECT*FROMartikelWHEREfather != -3 OR father IS NULL';$items = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $items ) );$progressbar->start();foreach ( $items as $row ){$ersteller = $row->erstellt_von;if ( !$ersteller ){$ersteller = "WebanOS Laravel Upgrade";}$item = Item::find( $row->ID );if ( !isset( $item->id ) ){$item = new Item();$item->id = $row->ID;$item->created_at = $row->erstellt_am;$item->created_by = $ersteller;}$item->directory_id = $row->Father;$item->manufacturer_id = $row->hersteller;$item->name = $row->kurzbezeichnung;$item->status = $row->status;$item->shipping_group_id = $row->versandgruppen_id;$item->weight = $row->gewicht;$item->kennung = $row->kennung;$item->description = $row->beschreibung;$item->updated_at = $row->letzte_Aenderung_am;$bearbeiter = $row->letzte_Aenderung_von;if ( !$bearbeiter ){$bearbeiter = "WebanOS Laravel Upgrade";}$item->updated_by = $bearbeiter;$item->save();$this->migrateItemMedia( $item->id );$progressbar->advance();}$progressbar->finish();$progressbar->clear();$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preise" );$start = 0;$sql = "SELECTMAX(id) AS startFROMprices";$row = DB::connection( "mysql" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECTp.*FROMpreise pJOINartikel aONa.id=p.artikel_idWHEREa.father >=-1ANDp.id>" . $start . "";$prices = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $prices ) );$progressbar->start();foreach ( $prices as $price ){Price::factory()->createQuietly( ["id" => $price->id,"item_id" => $price->artikel_id,"preis_index" => $price->preis_index,"preis" => $price->preis,"staffel" => $price->staffel,"created_at" => $price->geaendert_am,"created_by" => $price->geaendert_von,"updated_by" => $price->geaendert_von,"updated_at" => $price->geaendert_am] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}public function migrateMedia(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Medien" );$start = 0;$sql = "SELECTMAX(id) AS startFROMmedia";$row = DB::connection( "mysql" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMmedienWHEREid>" . $start . "";$media = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $media ) );$progressbar->start();foreach ( $media as $medium ){$mediumDB = new Medium();$mediumDB->id = $medium->id;$mediumDB->name = $medium->name;$mediumDB->folder = $medium->folder;$mediumDB->medium_type_id = $medium->typ;$mediumDB->description = $medium->beschreibung;if ( $medium->erstellt_am ){$mediumDB->created_at = date( "Y-m-d H:i:s", $medium->erstellt_am );}$ersteller = $medium->erstellt_von;if ( !$ersteller ){$ersteller = "WebanOS Laravel Upgrade";}$bearbeiter = $medium->letzte_aenderung_von;if ( !$bearbeiter ){$bearbeiter = "WebanOS Laravel Upgrade";}$mediumDB->created_by = $ersteller;$mediumDB->updated_by = $bearbeiter;$mediumDB->save();$progressbar->advance();}$progressbar->finish();$progressbar->clear();}public function migrateActionMedia( $aktionId ): void{$sql = "SELECT*FROMaktionen_medienWHEREaktionen_id=" . $aktionId . "";$media = DB::connection( 'old' )->select( $sql );foreach ( $media as $row ){$medium = ActionMedium::find( $row->id );if ( !isset( $medium->id ) ){$medium = new ActionMedium();$medium->id = $row->id;$medium->created_by = "WebanOS Laravel Upgrade";}$medium->action_id = $row->aktionen_id;$medium->medium_id = $row->medien_id;$medium->rank = $row->rang;$medium->updated_by = "WebanOS Laravel Upgrade";$medium->save();}}public function migrateDirMedia( $dir ): void{$sql = "SELECT*FROMdirectory_medienWHEREdirectory_id=" . $dir . "";$media = DB::connection( 'old' )->select( $sql );foreach ( $media as $row ){$medium = DirectoryMedium::find( $row->medien_id );if ( isset( $medium->medien_id ) ){continue;}$medium = new DirectoryMedium();$medium->directory_id = $row->directory_id;$medium->medium_id = $row->medien_id;$medium->rank = $row->rang;$medium->similar = $row->aehnlich;$medium->created_at = $row->zugeordnet_am;$medium->updated_at = $row->zugeordnet_am;$medium->created_by = "WebanOS Laravel Upgrade";$medium->updated_by = "WebanOS Laravel Upgrade";$medium->save();}}public function migrateItemMedia( $item ): void{$sql = "SELECT*FROMartikel_medienWHEREartikel_id=" . $item . "";$media = DB::connection( 'old' )->select( $sql );foreach ( $media as $row ){$medium = ItemMedium::find( $row->medien_id );if ( isset( $medium->medien_id ) ){continue;}$medium = new ItemMedium();$medium->item_id = $row->artikel_id;$medium->medium_id = $row->medien_id;$medium->rank = $row->rang;$medium->similar = $row->aehnlich;$medium->created_at = $row->zugeordnet_am;$medium->updated_at = $row->zugeordnet_am;$medium->created_by = "WebanOS Laravel Upgrade";$medium->updated_by = "WebanOS Laravel Upgrade";$medium->save();}}private function migrateUsers(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere User" );$start = 0;$sql = "SELECTMAX(id) AS startFROMusers";$row = DB::connection( "order" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMLoginsWHEREid>" . $start . "";$users = DB::connection( "oldOrder" )->select( $sql );$progressbar = $this->output->createProgressBar( count( $users ) );$progressbar->start();foreach ( $users as $oldUser ){$ersteller = $oldUser->erstellt_von;if ( !$ersteller ){$ersteller = "WebanOS Laravel Upgrade";}$bearbeiter = $oldUser->letzte_Aenderung_von;if ( !$bearbeiter ){$bearbeiter = "WebanOS Laravel Upgrade";}$user = new User();$user->id = $oldUser->ID;$user->email = $oldUser->E_Mail;$user->created_at = $oldUser->erstellt_am;$user->created_by = $ersteller;$user->updated_by = $bearbeiter;$user->updated_at = $oldUser->letzte_Aenderung_am;$user->save();$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateAddresses( bool $isOrder = false ): void{$typ = "Adressen";$table = "addresses";$oldTable = "adresse";if ( $isOrder === true ){$typ = "Bestelladressen";$table = "order_addresses";$oldTable = "bestelladresse";}$this->info( date( "d.m.Y H:i:s" ) . ": Migriere " . $typ );$start = 0;$sql = "SELECTMAX(id) AS startFROM" . $table . "";$row = DB::connection( "order" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROM" . $oldTable . "WHEREid>" . $start . "";$addresses = DB::connection( "oldOrder" )->select( $sql );$progressbar = $this->output->createProgressBar( count( $addresses ) );$progressbar->start();foreach ( $addresses as $oldAddress ){$ersteller = "WebanOS Laravel Upgrade";$bearbeiter = "WebanOS Laravel Upgrade";if ( $isOrder === true ){$address = new OrderAddress();}else{$address = new Address();}$address->id = $oldAddress->id;$address->user_id = $oldAddress->logins_id;$address->salutation = $oldAddress->anrede;$address->pro_title = $oldAddress->pro_title;$address->name = $oldAddress->vorname;$address->lastname = $oldAddress->nachname;$address->company = $oldAddress->firma;$address->company2 = $oldAddress->firma2;$address->street = $oldAddress->strasse1;$address->houseno = $oldAddress->str_nr1;$address->street2 = $oldAddress->strasse2;$address->zip = $oldAddress->plz;$address->city = $oldAddress->ort;$address->country_id = $oldAddress->land;$address->state_id = $oldAddress->state;$address->phone = $oldAddress->telefon;$address->fax = $oldAddress->fax;$address->email = $oldAddress->email;$address->nettocalculation = $oldAddress->nettoberechnung;$address->hr_nr = $oldAddress->hr_nr;$address->vat_id = $oldAddress->vat_id;$address->vat_free = $oldAddress->mwst_befreiung;$address->legal_form = $oldAddress->legal_form;$address->comment = $oldAddress->comment;$address->created_at = $oldAddress->letzte_aenderung_am;$address->created_by = $ersteller;$address->updated_by = $bearbeiter;$address->updated_at = $oldAddress->letzte_aenderung_am;$address->save();$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateOrderAddresses(): void{$this->migrateAddresses( true );}private function migrateOrders(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Bestellungen" );$start = 0;$sql = "SELECTMAX(id) AS startFROMorders";$row = DB::connection( "order" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMBestellungWHEREid>" . $start . "";$orders = DB::connection( "oldOrder" )->select( $sql );$progressbar = $this->output->createProgressBar( count( $orders ) );$progressbar->start();foreach ( $orders as $oldOrder ){$paidAt = $oldOrder->bezahlt_am;if ( $paidAt == "0000-00-00 00:00:00" ){$paidAt = null;}$order = new Order();$order->id = $oldOrder->ID;$order->shop_id = $oldOrder->shops_ID;$order->order_type_id = $oldOrder->bestellart_id;$order->payment_method_id = $oldOrder->zahlart_id;$order->user_id = $oldOrder->Login;$order->ship_addr_id = $oldOrder->ship_addr_id;$order->bill_addr_id = $oldOrder->bill_addr_id;$order->paid = $oldOrder->bezahlt;$order->paid_at = $paidAt;$order->paid_comment = $oldOrder->bezahlt_bemerkung;$order->foreign_id = $oldOrder->fremd_id;$order->foreign_payment_id = $oldOrder->bezahlt_fremdid;$order->status = $oldOrder->status;$order->total_amount_buffer = $oldOrder->gesamtsumme_buffer;$order->item_status_buffer = $oldOrder->artikelstatus_buffer;$order->invoice_status_buffer = $oldOrder->rechnungsstatus_buffer;$order->delivery_note_status_buffer = $oldOrder->lieferscheinStatus_buffer;$order->tax = $oldOrder->tax;$order->comment = $oldOrder->Bemerkung;$order->external_comment = $oldOrder->Bemerkung_extern;$order->note = $oldOrder->notiz;$order->additional_info = $oldOrder->zusatzInfo;$order->shipping_group_id = $oldOrder->versandgruppen_id;$order->kk_info = $oldOrder->kk_info;$order->created_by = $oldOrder->erstellt_von;$order->updated_by = $oldOrder->letzte_Aenderung_von;$order->updated_at = $oldOrder->letzte_Aenderung_am;$order->created_at = $oldOrder->erstellt_am;$order->save();$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateOrderItems(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Artikel in Bestellungen" );$start = 0;$sql = "SELECTMAX(id) AS startFROMorder_items";$row = DB::connection( "order" )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMartikel_to_BestellungWHEREid>" . $start . "";$orderItems = DB::connection( "oldOrder" )->select( $sql );$progressbar = $this->output->createProgressBar( count( $orderItems ) );$progressbar->start();foreach ( $orderItems as $oldOrderItem ){$exported = $oldOrderItem->exported;if ( $exported == "0000-00-00 00:00:00" ){$exported = null;}$exported_invoice = $oldOrderItem->exported_rechnung;if ( $exported_invoice == "0000-00-00 00:00:00" ){$exported_invoice = null;}$exported_delivery_note = $oldOrderItem->exported_lieferschein;if ( $exported_delivery_note == "0000-00-00 00:00:00" ){$exported_delivery_note = null;}OrderItem::factory()->create( ["id" => $oldOrderItem->ID,"item_id" => $oldOrderItem->artikel,"order_id" => $oldOrderItem->Bestellung,"name" => $oldOrderItem->Bezeichnung,"amount" => $oldOrderItem->Menge,"price" => $oldOrderItem->Preis_pro_Stueck,"father" => $oldOrderItem->father,"status" => $oldOrderItem->status,"delivery_status" => $oldOrderItem->lieferstatus,"invoice_status" => $oldOrderItem->rechnungStatus,"delivery_note_status" => $oldOrderItem->lieferscheinStatus,"foreign_id" => $oldOrderItem->fremd_id,"option_input" => $oldOrderItem->option_eingabe,"description" => $oldOrderItem->beschreibung,"rank" => $oldOrderItem->Rang,"tax" => $oldOrderItem->mwst,"orig_value" => $oldOrderItem->orig_value,"orig_currency" => $oldOrderItem->orig_currency,"hash" => $oldOrderItem->hash,"exported" => $exported,"exported_invoice" => $exported_invoice,"exported_delivery_note" => $exported_delivery_note,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateSalesPortalTypes(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalarten" );$start = 0;$sql = "SELECTMAX(id) startFROMsales_portal_types";$row = DB::connection( 'cms' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMvportale_artWHEREid>" . $start . "";$portals = DB::connection( 'cms' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $portals ) );$progressbar->start();foreach ( $portals as $portal ){SalesPortalType::factory()->create( ["id" => $portal->id,"type" => $portal->art,"name" => $portal->bezeichnung,"max_categories" => $portal->max_categories,"min_depth_category" => $portal->min_depth_category,"only_end_category" => $portal->only_end_category,"script" => $portal->skript,"script_folder" => $portal->script_folder,"commit_possibilities" => $portal->commit_posibilities,"revokeable" => $portal->stornierbar,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateSalesPortals(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportale" );$start = 0;$sql = "SELECTMAX(id) startFROMsales_portals";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMvportaleWHEREid>" . $start . "";$portals = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $portals ) );$progressbar->start();foreach ( $portals as $portal ){$max_preis = 0;$anrede = 1;if ( isset( $portal->anrede ) ){$anrede = $portal->anrede;}if ( isset( $portal->max_preis ) ){$max_preis = $portal->max_preis;}SalesPortal::factory()->create( ["id" => $portal->id,"name" => $portal->name,"template" => $portal->template,"sales_portal_type_id" => $portal->art,"sku_prefix" => $portal->sku_prefix,"price_number" => $portal->preis_nummer,"base_price" => $portal->basis_preis,"min_price" => $portal->min_preis,"max_price" => $max_preis,"digits" => $portal->runden,"standard_amount" => $portal->standard_menge,"item_url" => $portal->artikel_url,"currency" => $portal->currency,"shipping_state" => $portal->lieferstatus,"delivery" => $portal->delivery,"shipping_cost" => $portal->shipping_cost,"afterbuy" => $portal->afterbuy,"salutation" => $anrede,"commit_fields" => $portal->commit_fields,"zip" => $portal->plz,"location" => $portal->location,"created_by" => $portal->erstellt_von,"updated_by" => $portal->geaendert_von,"created_at" => $portal->erstellt_am,"updated_at" => $portal->geaendert_am,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateSalesPortalItems(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Verkaufsportalartikel" );$start = 0;$sql = "SELECTMAX(id) startFROMsales_portal_items";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMartikel_vportaleWHEREid>" . $start . "";$items = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $items ) );$progressbar->start();foreach ( $items as $item ){$pickup = 0;if ( isset( $item->pickup ) ){$pickup = $item->pickup;}$start = $item->start;if ( $start == "0000-00-00 00:00:00" ){$start = null;}$erstellt_am = $item->erstellt_am;if ( $erstellt_am == "0000-00-00 00:00:00" ){$erstellt_am = null;}$geaendert_am = $item->geaendert_am;if ( $geaendert_am == "0000-00-00 00:00:00" ){$geaendert_am = null;}SalesPortalItem::factory()->create( ["id" => $item->id,"sales_portal_id" => $item->vportale_id,"item_id" => $item->artikel_id,"sales_portal_template_id" => $item->template_id,"sku" => $item->sku,"additions" => $item->zusaetze,"foreign_item_id" => $item->fremdartikel_id,"name" => $item->name,"autochange_name" => $item->autochange_name,"name_bold" => $item->name_fett,"highlight" => $item->highlight,"sub_name" => $item->sub_name,"manufacturer" => $item->hersteller,"autochange_manufacturer" => $item->autochange_hersteller,"ean" => $item->ean,"autochange_ean" => $item->autochange_ean,"mpn" => $item->mpn,"autochange_mpn" => $item->autochange_mpn,"description" => $item->beschreibung,"autochange_description" => $item->autochange_beschreibung,"description_addition" => $item->beschreibung_zusatz,"autochange_description_addition" => $item->autochange_beschreibung_zusatz,"price" => $item->preis,"autochange_price" => $item->autochange_preis,"currency" => $item->currency,"tax" => $item->tax,"price_type" => $item->preisart,"amount" => $item->menge,"carrier" => $item->carrier,"carrier_cost" => $item->carrier_cost,"start" => $start,"duration" => $item->dauer,"category_1" => $item->kategorie_1,"category_2" => $item->kategorie_2,"category_3" => $item->kategorie_3,"bp1" => $item->bp1,"bp2" => $item->bp2,"bp3" => $item->bp3,"bp4" => $item->bp4,"bp5" => $item->bp5,"platin_search_1" => $item->platin_search_1,"platin_search_2" => $item->platin_search_2,"platin_search_3" => $item->platin_search_3,"platin_search_4" => $item->platin_search_4,"platin_search_5" => $item->platin_search_5,"search_1" => $item->search_1,"search_2" => $item->search_2,"search_3" => $item->search_3,"search_4" => $item->search_4,"search_5" => $item->search_5,"status" => $item->status,"online_status" => $item->online_status,"delivery_time" => $item->lieferzeit,"pickup" => $pickup,"last_feedback" => $item->last_feedback,"created_by" => $item->erstellt_von,"updated_by" => $item->geaendert_von,"created_at" => $erstellt_am,"updated_at" => $geaendert_am,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migratePriceAgencies(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Preisagenturen" );$start = 0;$sql = "SELECTMAX(id) startFROMprice_agencies";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMPreisagenturWHEREid>" . $start . "";$agencies = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $agencies ) );$progressbar->start();foreach ( $agencies as $manufacturer ){$letzter_Abruf_am = $manufacturer->letzter_Abruf_am;if ( $letzter_Abruf_am == "0000-00-00 00:00:00" ){$letzter_Abruf_am = null;}$letzte_Aktualisierung_am = $manufacturer->letzte_Aktualisierung_am;if ( $letzte_Aktualisierung_am == "0000-00-00 00:00:00" ){$letzte_Aktualisierung_am = null;}PriceAgency::factory()->create( ["id" => $manufacturer->ID,"shop_id" => $manufacturer->shops_ID,"name" => $manufacturer->Titel,"logo_url" => $manufacturer->logo_url,"home_url" => $manufacturer->home_url,"csv_url" => $manufacturer->csv_url,"trigger_url" => $manufacturer->trigger_URL,"voting_url" => $manufacturer->bewertungs_URL,"records" => $manufacturer->datensaetze,"access_url" => $manufacturer->Zugang_URL,"access_user" => $manufacturer->Zugang_Benutzer,"access_password" => $manufacturer->Zugang_Passwort,"comment" => $manufacturer->Bemerkung,"locked_manufacturers" => $manufacturer->gesperrte_hersteller,"config" => $manufacturer->config,"status" => $manufacturer->status,"only_deliverable" => $manufacturer->nur_lieferbar,"min_price" => $manufacturer->min_preis,"last_updated_at" => $letzte_Aktualisierung_am,"last_access_at" => $letzter_Abruf_am,"last_access_by" => $manufacturer->letzter_Abruf_von,"updated_at" => $manufacturer->letzte_Aenderung_am,"updated_by" => $manufacturer->letzte_Aenderung_von,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateManufacturers(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Hersteller" );$start = 0;$sql = "SELECTMAX(id) startFROMmanufacturers";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMHerstellerkatalogWHEREid>" . $start . "";$manufacturers = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $manufacturers ) );$progressbar->start();foreach ( $manufacturers as $manufacturer ){Manufacturer::factory()->create( ["id" => $manufacturer->ID,"name" => $manufacturer->Name,"description" => $manufacturer->Text,"logo1" => $manufacturer->Logo1,"logo1_href" => $manufacturer->Logo1_href,"logo2" => $manufacturer->Logo2,"logo2_href" => $manufacturer->Logo2_href,"property_1" => $manufacturer->Eigenschaft_1,"property_2" => $manufacturer->Eigenschaft_2,"property_3" => $manufacturer->Eigenschaft_2,"calculation" => $manufacturer->abwKalkulation,"created_at" => $manufacturer->erstellt_am,"created_by" => $manufacturer->erstellt_von,"updated_at" => $manufacturer->letzte_Aenderung_am,"updated_by" => $manufacturer->letzte_Aenderung_von,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateTemplates(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere Templates" );$start = 0;$sql = "SELECTMAX(id) startFROMtemplates";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMtemplatesWHEREid>" . $start . "";$templates = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $templates ) );$progressbar->start();foreach ( $templates as $template ){switch ( $template->Typ ){case "Aktionen":$typ = "action";break;case "artikel":$typ = "item";break;case "directory":$typ = "directory";break;case "Artikelstamm":$typ = "articlemaster";break;default:$typ = "";}Template::factory()->create( ["id" => $template->ID,"shop_id" => $template->shops_ID,"name" => $template->Name,"description" => $template->Beschreibung,"template_key" => $template->templateKey,"template_value" => $template->templateValue,"type" => $typ,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();$start = 0;$sql = "SELECTMAX(id) startFROMitem_templates";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMtemplates_to_artikelWHEREid>" . $start . "";$templates = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $templates ) );$progressbar->start();foreach ( $templates as $template ){ItemTemplate::factory()->create( ["id" => $template->id,"item_id" => $template->artikel_ID,"template_id" => $template->templates_ID,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();$start = 0;$sql = "SELECTMAX(id) startFROMdirectory_templates";$row = DB::connection( 'mysql' )->select( $sql );if ( $row[0]->start ){$start = $row[0]->start;}$sql = "SELECT*FROMtemplates_to_directoryWHEREid>" . $start . "";$templates = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $templates ) );$progressbar->start();foreach ( $templates as $template ){DirectoryTemplate::factory()->create( ["id" => $template->id,"directory_id" => $template->directory_ID,"template_id" => $template->templates_ID,] );$progressbar->advance();}$progressbar->finish();$progressbar->clear();}private function migrateWebSettings(): void{$this->info( date( "d.m.Y H:i:s" ) . ": Migriere WebSettings" );$sql = 'SELECT*FROMweb_settings';$webSettings = DB::connection( 'old' )->select( $sql );$progressbar = $this->output->createProgressBar( count( $webSettings ) );$progressbar->start();foreach ( $webSettings as $row ){$webSetting = WebSetting::find( $row->ID );if ( !isset( $webSetting->id ) ){$webSetting = new WebSetting();$webSetting->id = $row->ID;$webSetting->created_at = time();$webSetting->created_by = "";}$webSetting->shop_id = $row->shops_ID;if ( $webSetting->shop_id == 0 ){$webSetting->shop_id = null;}$webSetting->order_type_id = $row->bestellart_id;$webSetting->updated_at = $row->letzte_Aenderung_am;$webSetting->updated_by = $row->letzte_Aenderung_von;$webSetting->rank = $row->Rang;$webSetting->name = $row->Name;$webSetting->type = $row->Typ;$webSetting->content = $row->Inhalt;$webSetting->fallback = $row->Fallback;$webSetting->save();$progressbar->advance();}$progressbar->finish();$progressbar->clear();}}