From f79806ffe8cb9810e7b9041f7a3145b8467e8723 Mon Sep 17 00:00:00 2001 From: Kevin Adametz Date: Tue, 15 Sep 2020 17:47:52 +0200 Subject: [PATCH] Passolution, Mails, Tickets, --- .idea/codeStyles/codeStyleConfig.xml | 5 + .idea/workspace.xml | 762 ++---------------- .../Controllers/API/CMSContentController.php | 67 ++ .../API/CMSContentInfoController.php | 2 - .../Settings/TravelNationalityController.php | 2 + .../SyS/Tools/ContentLinkController.php | 122 ++- .../TravelUserBookingFewoController.php | 1 - app/Models/Sym/TravelCountry.php | 1 + app/Models/TravelCountry.php | 1 + app/Models/TravelNationality.php | 1 + .../TravelUserBookingFewoRepository.php | 92 ++- app/Services/Passolution.php | 162 ++++ ..._29_193339_create_travel_country_table.php | 2 + ...114656_create_travel_nationality_table.php | 2 +- ..._11_131408_create_customer_mails_table.php | 1 + ...11351_create_customer_fewo_mails_table.php | 4 +- .../sym/0001_sym_travel_country_table.php | 5 +- .../src/Controllers/CropController.php | 13 +- .../src/Controllers/FileController.php | 30 +- public/js/filemanager.js | 4 +- .../layouts/includes/layout-sidenav.blade.php | 3 + .../settings/travel_country/detail.blade.php | 6 +- .../settings/travel_country/index.blade.php | 5 +- .../travel_nationality/index.blade.php | 10 + resources/views/sys/tools/import.blade.php | 52 ++ .../user/booking/_detail_invoice.blade.php | 2 - .../user/booking/_detail_sm_mails.blade.php | 7 +- .../travel/user/booking/detail.blade.php | 11 +- routes/api.php | 3 +- routes/web.php | 3 + .../app/fewo/infos/2020/Anreiseinfo-12445.pdf | Bin 0 -> 9888 bytes storage/app/fewo/invoices/2019/12345.pdf | Bin 3904 -> 10628 bytes .../files/shares/20_cropped_1597925108.jpg | Bin 0 -> 96214 bytes .../files/shares/21_cropped_1597925617.jpg | Bin 0 -> 112679 bytes .../Bilder/Jordanien/Berg-Nebo/berg-nebo.jpeg | Bin 0 -> 42203 bytes .../Jordanien/Berg-Nebo/thumbs/berg-nebo.jpeg | Bin 0 -> 10992 bytes ...e---Jonas-Dnzel---AfD-meets-Tinder.youtube | 2 +- .../shares/thumbs/20_cropped_1597925108.jpg | Bin 0 -> 8497 bytes .../shares/thumbs/21_cropped_1597925617.jpg | Bin 0 -> 9365 bytes ...-aeyptische-Museum-in-Kairo-gypten.youtube | 1 + ...s-gyptische-Museum-in-Kairo-gypten.youtube | 1 - ...tes-aeyptische-Museum-in-Kairo-gypten.jpg} | Bin ...Abu-Simbel-in-gypten-wird-gefeiert.youtube | 1 + ...-Ramses-am-Nassersee-in-Abu-Simbel.youtube | 1 + ...von-Abu-Simbel-in-gypten-wird-gefeiert.jpg | Bin 0 -> 14614 bytes ...-und-Ramses-am-Nassersee-in-Abu-Simbel.jpg | Bin 0 -> 10731 bytes 46 files changed, 556 insertions(+), 831 deletions(-) create mode 100644 .idea/codeStyles/codeStyleConfig.xml create mode 100644 app/Services/Passolution.php create mode 100755 resources/views/sys/tools/import.blade.php create mode 100644 storage/app/fewo/infos/2020/Anreiseinfo-12445.pdf create mode 100644 storage/app/public/files/shares/20_cropped_1597925108.jpg create mode 100644 storage/app/public/files/shares/21_cropped_1597925617.jpg create mode 100644 storage/app/public/files/shares/Bilder/Jordanien/Berg-Nebo/berg-nebo.jpeg create mode 100644 storage/app/public/files/shares/Bilder/Jordanien/Berg-Nebo/thumbs/berg-nebo.jpeg create mode 100644 storage/app/public/files/shares/thumbs/20_cropped_1597925108.jpg create mode 100644 storage/app/public/files/shares/thumbs/21_cropped_1597925617.jpg create mode 100644 storage/app/public/files/shares/youtube/Aegypten/Kairo/Altes-aeyptische-Museum-in-Kairo-gypten.youtube delete mode 100644 storage/app/public/files/shares/youtube/Aegypten/Kairo/Altes-gyptische-Museum-in-Kairo-gypten.youtube rename storage/app/public/files/shares/youtube/Aegypten/Kairo/thumbs/{Altes-gyptische-Museum-in-Kairo-gypten.jpg => Altes-aeyptische-Museum-in-Kairo-gypten.jpg} (100%) create mode 100644 storage/app/public/files/shares/youtube/Das-Sonnenwunder-von-Abu-Simbel-in-gypten-wird-gefeiert.youtube create mode 100644 storage/app/public/files/shares/youtube/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.youtube create mode 100644 storage/app/public/files/shares/youtube/thumbs/Das-Sonnenwunder-von-Abu-Simbel-in-gypten-wird-gefeiert.jpg create mode 100644 storage/app/public/files/shares/youtube/thumbs/Tempel-Nefertari-und-Ramses-am-Nassersee-in-Abu-Simbel.jpg diff --git a/.idea/codeStyles/codeStyleConfig.xml b/.idea/codeStyles/codeStyleConfig.xml new file mode 100644 index 0000000..a55e7a1 --- /dev/null +++ b/.idea/codeStyles/codeStyleConfig.xml @@ -0,0 +1,5 @@ + + + + \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 1368c73..30716da 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -2,17 +2,8 @@ - - - - - - - - - - - + + @@ -36,609 +27,35 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + - - - - - - - + + - - - - - - - - - - - - + + + + + + + + + + @@ -686,72 +103,20 @@ - - - - - - - - - - - - - - + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + - - + @@ -985,12 +350,20 @@ - + + + + + + + + + @@ -998,13 +371,6 @@ - - - - - - - @@ -1494,10 +875,10 @@ - + - + @@ -1507,17 +888,18 @@ - + - - + + - + + \ No newline at end of file diff --git a/app/Http/Controllers/API/CMSContentController.php b/app/Http/Controllers/API/CMSContentController.php index 0dd93e9..d6d8bce 100755 --- a/app/Http/Controllers/API/CMSContentController.php +++ b/app/Http/Controllers/API/CMSContentController.php @@ -5,7 +5,10 @@ namespace App\Http\Controllers\API; use App\Http\Controllers\Controller; use App\Models\IQContentTree; use App\Models\IQContentTreeNode; +use App\Models\TravelCountry; use App\Models\TravelGuide; +use App\Models\TravelNationality; +use App\Services\Passolution; class CMSContentController extends Controller @@ -14,6 +17,70 @@ class CMSContentController extends Controller private $successKey = 'f6077389c9ce710e554763a5de02c8ec'; + public function passolution($lang, $nat, $destco, $tdat){ + + $data = [ + 'lang' => $lang, + 'nat' => $nat, + 'destco' => $destco, + 'tdat' => $tdat, + ]; + $passolution = new Passolution(); + $passolution->fill($data); + $html = $passolution->read(); + + return response()->json(['response' => $html]); + + } + + public function passolutionPost($lang){ + + $data = \Request::all(); + + header('Access-Control-Allow-Origin: *'); + header('Access-Control-Allow-Methods: *'); + header('Access-Control-Allow-Headers: *'); + $headers = [ + 'Access-Control-Allow-Methods' => 'POST,GET,OPTIONS,PUT,DELETE', + 'Access-Control-Allow-Headers' => 'Content-Type, X-Auth-Token, Origin, Authorization', + ]; + + if(!isset($data['nationality_id']) || !isset($data['travel_date_start']) || !isset($data['country_ids']) || !is_array($data['country_ids'])){ + return response()->json(['response' => 'Fehler bei der Anfrage'], 200, $headers); + } + + $TravelNationality = TravelNationality::find($data['nationality_id']); + if(!$TravelNationality){ + return response()->json(['response' => 'Fehler bei der Anfrage: Nationalität nicht gefunden'], 200, $headers); + } + $destco = []; + foreach ($data['country_ids'] as $country_id){ + $TravelCountry = TravelCountry::find($country_id); + if(!$TravelCountry){ + return response()->json(['response' => 'Fehler bei der Anfrage: Travel Country nicht gefunden'], 200, $headers); + } + $destco[] = $TravelCountry->destco; + } + + $tdat = date("d-m-Y", strtotime($data['travel_date_start'])); + + $data = [ + 'lang' => $lang, + 'nat' => $TravelNationality->nat, + 'destco' => trim(implode(',', $destco), ","), + 'tdat' => $tdat, + ]; + + $passolution = new Passolution(); + $passolution->fill($data); + $html = $passolution->read(); + + return response()->json(['success' => true, "response" => $html, "data" => $data], 200, $headers); + + + } + + public function search() { diff --git a/app/Http/Controllers/API/CMSContentInfoController.php b/app/Http/Controllers/API/CMSContentInfoController.php index b24869c..f644861 100755 --- a/app/Http/Controllers/API/CMSContentInfoController.php +++ b/app/Http/Controllers/API/CMSContentInfoController.php @@ -86,7 +86,6 @@ class CMSContentInfoController extends Controller } - private function checkAvailable($type, $wday){ $contents = []; @@ -210,7 +209,6 @@ class CMSContentInfoController extends Controller } - private function checkBetweenHoliday($type, \Carbon $cdate){ $holidays = CMSInfoHoliday::where($type, true)->get(); foreach ($holidays as $holiday){ diff --git a/app/Http/Controllers/Settings/TravelNationalityController.php b/app/Http/Controllers/Settings/TravelNationalityController.php index bb63e32..7582456 100755 --- a/app/Http/Controllers/Settings/TravelNationalityController.php +++ b/app/Http/Controllers/Settings/TravelNationalityController.php @@ -31,11 +31,13 @@ class TravelNationalityController extends Controller if($data['id'] === "new"){ $model = TravelNationality::create([ 'name' => $data['name'], + 'nat' => $data['nat'], 'active' => isset($data['active']) ? true : false, ]); }else{ $model = TravelNationality::find($data['id']); $model->name = $data['name']; + $model->nat = $data['nat']; $model->active = isset($data['active']) ? true : false; $model->save(); } diff --git a/app/Http/Controllers/SyS/Tools/ContentLinkController.php b/app/Http/Controllers/SyS/Tools/ContentLinkController.php index 0eaf3b3..da39263 100755 --- a/app/Http/Controllers/SyS/Tools/ContentLinkController.php +++ b/app/Http/Controllers/SyS/Tools/ContentLinkController.php @@ -7,7 +7,9 @@ use App\Models\IQContentSite; use App\Models\IQContentSiteField; use App\Models\IQContentTree; use App\Models\IQContentTreeNode; +use App\Models\TravelCountry; use App\Models\TravelGuide; +use App\Models\TravelNationality; use Illuminate\Support\Str; use IqContent\LaravelFilemanager\Controllers\FileController; use IqContent\LaravelFilemanager\Controllers\FolderController; @@ -64,9 +66,6 @@ class ContentLinkController extends Controller public function store() { - - - return redirect()->back(); } @@ -222,6 +221,64 @@ class ContentLinkController extends Controller } +//import + public function import() + { + $text = ""; + $val = []; + + $data = [ + 'text' => $text, + 'values' => $val, + ]; + return view('sys.tools.import', $data); + } + + public function importStore() + { + + $data = Request::all(); + + $lines = explode(PHP_EOL, $data['text']); + + if($data['action'] === 'import_TN'){ + foreach ($lines as $line){ + $ex = explode(';', $line); + $t_n = TravelNationality::whereName(trim($ex[1]))->first(); + if($t_n){ + $t_n->nat = $ex[0]; + $t_n->save(); + }else{ + TravelNationality::create([ + 'name' => trim($ex[1]), + 'nat' => $ex[0], + 'active' => false, + ] + ); + } + } + } + + if($data['action'] === 'import_CT') { + foreach ($lines as $line){ + $ex = explode(';', $line); + $t_c = TravelCountry::whereName(trim($ex[1]))->first(); + if($t_c){ + dump($t_c->name); + $t_c->destco = $ex[0]; + $t_c->save(); + + $tc = \App\Models\Sym\TravelCountry::find($t_c->crm_id); + $tc->destco = $ex[0]; + $tc->save(); + } + } + dd(""); + } + + return redirect()->back(); + } + private function replaceYoutubeDiv(&$val, $travelGuide) { @@ -656,63 +713,4 @@ class ContentLinkController extends Controller - //tree_title - /* public function tree() - { - $text = ""; - $val = []; - $trees = IQContentTree::all(); - foreach ($trees as $tree){ - foreach ($tree->iq_content_tree_nodes as $tree_node){ - - $text .= $tree_node->id." -- ".$tree_node->title."\n"; - foreach ($tree_node->iq_content_sites as $site){ - if(isset($site->travel_guide->meta_title)){ - if(isset($val[$tree_node->id])){ - if(strlen($site->travel_guide->meta_title) > strlen($val[$tree_node->id])){ - $val[$tree_node->id] = $site->travel_guide->meta_title; - } - }else{ - $val[$tree_node->id] = $site->travel_guide->meta_title; - } - } - } - } - } - $data = [ - 'text' => $text, - 'values' => $val, - ]; - return view('sys.tools.trees', $data); - } - - public function treeStore() - { - - $trees = IQContentTree::all(); - $val = []; - foreach ($trees as $tree){ - foreach ($tree->iq_content_tree_nodes as $tree_node){ - foreach ($tree_node->iq_content_sites as $site){ - if(isset($site->travel_guide->meta_title)){ - if(isset($val[$tree_node->id])){ - if(strlen($site->travel_guide->meta_title) > strlen($val[$tree_node->id])){ - $val[$tree_node->id] = $site->travel_guide->meta_title; - } - }else{ - $val[$tree_node->id] = $site->travel_guide->meta_title; - } - } - } - if(isset($val[$tree_node->id])){ - $tree_node->title = $val[$tree_node->id]; - $tree_node->save(); - } - - } - } - return redirect()->back(); - }*/ - - } diff --git a/app/Http/Controllers/TravelUserBookingFewoController.php b/app/Http/Controllers/TravelUserBookingFewoController.php index cc308ee..8b8efb3 100755 --- a/app/Http/Controllers/TravelUserBookingFewoController.php +++ b/app/Http/Controllers/TravelUserBookingFewoController.php @@ -202,7 +202,6 @@ class TravelUserBookingFewoController extends Controller } //Mails //CASCADE - $model->delete(); \Session()->flash('alert-success', __('Buchung gelöscht sowie die Reservierung im Sterntrous Kalender')); } diff --git a/app/Models/Sym/TravelCountry.php b/app/Models/Sym/TravelCountry.php index 105b4fe..dfd39d0 100644 --- a/app/Models/Sym/TravelCountry.php +++ b/app/Models/Sym/TravelCountry.php @@ -59,6 +59,7 @@ class TravelCountry extends Model protected $fillable = [ 'name', + 'destco', 'is_customer_country', 'active_backend', 'contact_lands', diff --git a/app/Models/TravelCountry.php b/app/Models/TravelCountry.php index a0dd1e8..ca3c9fe 100644 --- a/app/Models/TravelCountry.php +++ b/app/Models/TravelCountry.php @@ -79,6 +79,7 @@ class TravelCountry extends Model protected $fillable = [ 'name', + 'destco', 'slug', 'html_information', 'text_before', diff --git a/app/Models/TravelNationality.php b/app/Models/TravelNationality.php index 3f13205..ec08d4d 100644 --- a/app/Models/TravelNationality.php +++ b/app/Models/TravelNationality.php @@ -27,6 +27,7 @@ class TravelNationality extends Model protected $fillable = [ 'name', + 'nat', 'active', ]; diff --git a/app/Repositories/TravelUserBookingFewoRepository.php b/app/Repositories/TravelUserBookingFewoRepository.php index 6e4f013..4cc8d71 100644 --- a/app/Repositories/TravelUserBookingFewoRepository.php +++ b/app/Repositories/TravelUserBookingFewoRepository.php @@ -193,7 +193,7 @@ class TravelUserBookingFewoRepository extends BaseRepository { $data['is_calendar_stern_tours'] = isset($data['is_calendar_stern_tours']) ? true : false; - if($id == "new") { + if($id === "new") { $model = TravelUserBookingFewo::create($data); }else{ $model = TravelUserBookingFewo::findOrFail($id); @@ -206,42 +206,45 @@ class TravelUserBookingFewoRepository extends BaseRepository { $model->save(); $res = $this->calculatePriceNew($model); - $model->daily_prices = $res['season']; - if(isset($data['calculate_price_new'])){ - $model->price_travel = $res['price_travel']; - $model->price_service = $res['price_service']; - $model->price_deposit = $res['price_deposit']; - $model->calculate_price(); - $model->save(); + if($res['season_find'] && $res['price_find']){ + $model->daily_prices = $res['season']; - if($fewo_reservation = $model->fewo_reservation){ - $model->fewo_reservation->from_date = $model->getFromDateRaw(); - $model->fewo_reservation->to_date = $model->getToDateRaw(); - $model->fewo_reservation->save(); - - } - } - if($fewo_reservation = $model->fewo_reservation){ - if($model->is_calendar_stern_tours){ - $model->fewo_reservation->from_date = $model->getFromDateRaw(); - $model->fewo_reservation->to_date = $model->getToDateRaw(); - }else{ - $model->fewo_reservation->from_date = null; - $model->fewo_reservation->to_date = null; - } - $model->fewo_reservation->save(); - }else{ - if($model->is_calendar_stern_tours){ - - $res = FewoReservation::create([ - 'lodging_id' => $model->fewo_lodging_id, - 'from_date' => $model->getFromDateRaw(), - 'to_date' => $model->getToDateRaw(), - 'status' => 0, - 'type' => 0]); - $model->fewo_reservation_id = $res->id; + if (isset($data['calculate_price_new'])) { + $model->price_travel = $res['price_travel']; + $model->price_service = $res['price_service']; + $model->price_deposit = $res['price_deposit']; + $model->calculate_price(); $model->save(); + + if ($fewo_reservation = $model->fewo_reservation) { + $model->fewo_reservation->from_date = $model->getFromDateRaw(); + $model->fewo_reservation->to_date = $model->getToDateRaw(); + $model->fewo_reservation->save(); + + } + } + if ($fewo_reservation = $model->fewo_reservation) { + if ($model->is_calendar_stern_tours) { + $model->fewo_reservation->from_date = $model->getFromDateRaw(); + $model->fewo_reservation->to_date = $model->getToDateRaw(); + } else { + $model->fewo_reservation->from_date = null; + $model->fewo_reservation->to_date = null; + } + $model->fewo_reservation->save(); + } else { + if ($model->is_calendar_stern_tours) { + + $res = FewoReservation::create([ + 'lodging_id' => $model->fewo_lodging_id, + 'from_date' => $model->getFromDateRaw(), + 'to_date' => $model->getToDateRaw(), + 'status' => 0, + 'type' => 0]); + $model->fewo_reservation_id = $res->id; + $model->save(); + } } } $model->save(); @@ -288,31 +291,37 @@ class TravelUserBookingFewoRepository extends BaseRepository { $result['season'] = []; $frist_day = false; + $result['season_find'] = false; + $result['price_find'] = false; //days foreach ($period as $dt) { - foreach ($seasons as $season) { if($dt->format("Y-m-d") >= $season['fromDay'] && $dt->format("Y-m-d") <= $season['toDay']){ $check_days[] = $dt->format("d.m.Y"); $price = $season['price']; + if(isset($price->per_night)){ + $result['price_find'] = true; + } $name = $season['name']; + $result['season_find'] = true; + if(!isset($result['season'][$name])){ $result['season'][$name]['fromDay'] = $dt->format("d.m.Y"); - $result['price_service'] = $price->flat_price; + $result['price_service'] = isset($price->flat_price) ? $price->flat_price : 0; $result['season'][$name]['price'] = 0; $result['season'][$name]['numberDays'] = 0; - $result['season'][$name]['perNight'] = $price->per_night; + $result['season'][$name]['perNight'] = isset($price->per_night) ? $price->per_night : 0; $result['season'][$name]['minimumStay'] = $season['minimum_stay']; } if(!$frist_day){ - $result['season'][$name]['price'] += $price->per_night; + $result['season'][$name]['price'] += isset($price->per_night) ? $price->per_night : 0; $result['season'][$name]['numberDays'] ++; $result['season'][$name]['toDay'] = $dt->format("d.m.Y"); - $result['price_travel'] += $price->per_night; - + $result['price_travel'] += isset($price->per_night) ? $price->per_night : 0; $result['days'] ++; + $result['season_find'] = true; }else{ $frist_day = true; @@ -327,7 +336,4 @@ class TravelUserBookingFewoRepository extends BaseRepository { } - - - } \ No newline at end of file diff --git a/app/Services/Passolution.php b/app/Services/Passolution.php new file mode 100644 index 0000000..a79bc6a --- /dev/null +++ b/app/Services/Passolution.php @@ -0,0 +1,162 @@ +aid = "sterntours@passolution.de"; + //User password of the travel agency to which the data is forwarded + $this->apw = "JfSRv!vJXa"; + //User-ID of the enquirer + $this->sid = "sterntours@passolution.de"; + //User-Password of the enquirer + $this->sidpw = "JfSRv!vJXa"; + //Enrichment of the data by country details + $this->descd = 0; + //Enrichment of the data by infomation on transit visa + $this->trv = 1; + //Enrichment of the data by vaccination regulations + $this->ino = 1; + //Enrichment of the data by visa requirements + $this->vis = 1; + //Transaction key external system + $this->enr = 123123; + //Agency number of the travel agency to which the data is forwarded + $this->agency = 1000; + $this->fill(); + + } + + public function fill($data = []){ + + //Language in which the data is desired + $this->lang = isset($data['lang']) ? $data['lang'] : 'de'; + //Nationality of the traveller + $this->nat = isset($data['nat']) ? $data['nat'] : 'de'; + //Country-Code of the destination + $this->destco = isset($data['destco']) ? $data['destco'] : 'de'; + //Travel dates in format DD-MM-YYYY + $this->tdat = isset($data['tdat']) ? $data['tdat'] : '20-12-2020'; + + } + + public function read() + { + + $url = "https://api01.passolution.de/condition/search.php"; + $url .= "?aid=".$this->aid; + $url .= "&apw=".$this->apw; + $url .= "&sid=".$this->sid; + $url .= "&sidpw=".$this->sidpw; + $url .= "&lang=".$this->lang; + $url .= "&nat=".$this->nat; + $url .= "&destco=".$this->destco; + $url .= "&tdat=".$this->tdat; + $url .= "&descd=".$this->descd; + $url .= "&trv=".$this->trv; + $url .= "&ino=".$this->ino; + $url .= "&vis=".$this->vis; + $url .= "&enr=".$this->enr; + $url .= "&agency=".$this->agency; + + $client = new Client(); + $res = $client->get($url, [ + ]); + + if($res->getStatusCode() == 200){ + $body = $res->getBody(); + $body = json_decode($body); + + if($body == null){ + return ''; + } + if(isset($body->status) && $body->status !== 200){ + return isset($body->message) ? $body->message : ''; + } + $text = ""; + if(is_array($body->response)){ + foreach ($body->response as $response){ + $text .= "

".$response->additionalContent."

"; + + $text .= "

".$response->entry->response->headline."

"; + $text .= "

".$response->entry->response->content."

"; + + $text .= "

".$response->visa->response->headline."

"; + $text .= "

".$response->visa->response->content."

"; + + $text .= "

".$response->transitvisa->response->headline."

"; + $text .= "

".$response->transitvisa->response->content."

"; + + $text .= "

".$response->inoculation->response->headline."

"; + $text .= "

".$response->inoculation->response->content."

"; + } + }else{ + $text .= "

".$body->response->additionalContent."

"; + + $text .= "

".$body->response->entry->headline."

"; + $text .= "

".$body->response->entry->content."

"; + + $text .= "

".$body->response->visa->headline."

"; + $text .= "

".$body->response->visa->content."

"; + + $text .= "

".$body->response->transitvisa->headline."

"; + $text .= "

".$body->response->transitvisa->content."

"; + + $text .= "

".$body->response->inoculation->headline."

"; + $text .= "

".$body->response->inoculation->content."

"; + } + + + + + return nl2br($text); + + } + + } +} + +/* + * https://api01.passolution.de/condition/search.php?aid=cliquers@passolution.de&apw=Yuyjf8Mi3x&nat=de&destco=eg&descd=0&trv=1&ino=1&vis=1&tdat=20-12-2018&enr=123123&agency=1000&sid=10001&sidpw=dhfZD3f*/ + + +/* + * + * aid Nutzer-ID des Reisebüros, an das die Daten weiter geleitet werden ja 10010 +apw Nutzer-Passwort des Reisebüros, an das die Daten weiter geleitet werden ja dhHz42w +lang Sprache, in der der Inhalt angefordert wird nein de,en,… +nat Nationalität des Reisenden (mehrfachabfrage ist möglich) ja de,ch,at,… +dest3l 3-Letter-Code des Reiseziels dest3l oder destco pmi,hrg,… +destco Ländercode des Reiseziels (mehrfachabfrage ist möglich) dest3l oder destco eg,es,… +tdat Reisedatum im Format TT-MM-YYYY nein 21-12-2020 +enr Vorgangsnummer externes System nein A123433 +agency Agentur Nummer des Reisebüros, an das die Daten weiter geleitet werden nein A123433 +sid Nutzer-ID des Anfragenden ja 10010 +sidpw Nutzer-Passwort des Anfragenden ja dhHz42w +ino Anreichern der Daten um die Impfvorschriften nein 0 oder 1 +descd Anreichern der Daten um Länderdetails nein 0 oder 1 +trv Anreichern der Daten um Informationen zum Transitvisum nein 0 oder 1 +vis Anreichern der Daten um Visabestimmungen nein 0 oder 1 +ck Prüft in Verbindung mit tdat, enr, desto und nat, ob zwischen der ersten und der aktuellen Anfrage mitteilungsrelevante Änderungen statt gefunden haben. Das Ergebnis wird in der JSON Antwort unter importantchanges im Bereich condition, inoculation und visa angezeigt. nein 0 oder 1 +*/ \ No newline at end of file diff --git a/database/migrations/2018_10_29_193339_create_travel_country_table.php b/database/migrations/2018_10_29_193339_create_travel_country_table.php index 35ac33f..da30ced 100644 --- a/database/migrations/2018_10_29_193339_create_travel_country_table.php +++ b/database/migrations/2018_10_29_193339_create_travel_country_table.php @@ -21,6 +21,8 @@ class CreateTravelCountryTable extends Migration $table->string('name')->nullable(); $table->string('slug')->nullable(); + $table->string('destco', 40)->nullable(); + $table->string('mail_dir_name')->nullable(); $table->text('html_information')->nullable(); diff --git a/database/migrations/2019_03_05_114656_create_travel_nationality_table.php b/database/migrations/2019_03_05_114656_create_travel_nationality_table.php index 9360814..49eb03a 100644 --- a/database/migrations/2019_03_05_114656_create_travel_nationality_table.php +++ b/database/migrations/2019_03_05_114656_create_travel_nationality_table.php @@ -16,8 +16,8 @@ class CreateTravelNationalityTable extends Migration Schema::connection('mysql_stern')->create('travel_nationality', function (Blueprint $table) { $table->increments('id'); $table->string('name', 255)->nullable(); + $table->char('nat', 2)->nullable(); $table->boolean('active')->default(true); - }); } diff --git a/database/migrations/2020_03_11_131408_create_customer_mails_table.php b/database/migrations/2020_03_11_131408_create_customer_mails_table.php index 83bc399..7bf0e2f 100644 --- a/database/migrations/2020_03_11_131408_create_customer_mails_table.php +++ b/database/migrations/2020_03_11_131408_create_customer_mails_table.php @@ -63,6 +63,7 @@ class CreateCustomerMailsTable extends Migration $table->foreign('reply_id') ->references('id') ->on('customer_mails'); + }); } diff --git a/database/migrations/2020_05_15_111351_create_customer_fewo_mails_table.php b/database/migrations/2020_05_15_111351_create_customer_fewo_mails_table.php index b01b113..bf31a99 100644 --- a/database/migrations/2020_05_15_111351_create_customer_fewo_mails_table.php +++ b/database/migrations/2020_05_15_111351_create_customer_fewo_mails_table.php @@ -61,7 +61,9 @@ class CreateCustomerFewoMailsTable extends Migration $table->foreign('reply_id') ->references('id') - ->on('customer_fewo_mails'); + ->on('customer_fewo_mails') + ->onDelete('cascade'); + }); } diff --git a/database/migrations/sym/0001_sym_travel_country_table.php b/database/migrations/sym/0001_sym_travel_country_table.php index 777b8fb..5bb734a 100755 --- a/database/migrations/sym/0001_sym_travel_country_table.php +++ b/database/migrations/sym/0001_sym_travel_country_table.php @@ -20,6 +20,7 @@ class CreateTravelCountryTable extends Migration Schema::create('travel_country', function (Blueprint $table) { $table->bigIncrements('id'); $table->string('name', 255); + $table->string('destco', 40)->nullable(); $table->string('mail_dir_name', 255)->nullable(); $table->tinyInteger('is_customer_country')->nullable()->default(0); $table->tinyInteger('active_backend')->nullable()->default(0); @@ -33,10 +34,6 @@ class CreateTravelCountryTable extends Migration $table->text('contact_footer')->nullable(); $table->text('contact_emails')->nullable(); - - - - }); diff --git a/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php b/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php index b44f1eb..b9bfa89 100644 --- a/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php +++ b/packages/iqcontent/laravel-filemanager/src/Controllers/CropController.php @@ -29,9 +29,20 @@ class CropController extends LfmController public function getCropimage($overWrite = true) { $image_name = request('img'); + + $old_file = $this->lfm->pretty($image_name); + $model = $old_file->model(); + $content = false; + if($model && $model->id){ + $content = $model->content; + } + + $image_path = $this->lfm->setName($image_name)->path('absolute'); $crop_path = $image_path; + + if (! $overWrite) { $fileParts = explode('.', $image_name); $fileParts[count($fileParts) - 2] = $fileParts[count($fileParts) - 2] . '_cropped_' . time(); @@ -68,7 +79,7 @@ class CropController extends LfmController 'mine' => $mimeType, 'size' => $size / 1000, 'dimensions' => $image->width()."x".$image->height(), - 'content' => '', + 'content' => $content ? $content : '', ]); event(new ImageWasCropped($image_path)); diff --git a/packages/iqcontent/laravel-filemanager/src/Controllers/FileController.php b/packages/iqcontent/laravel-filemanager/src/Controllers/FileController.php index 730f2ee..4fd203d 100644 --- a/packages/iqcontent/laravel-filemanager/src/Controllers/FileController.php +++ b/packages/iqcontent/laravel-filemanager/src/Controllers/FileController.php @@ -64,22 +64,36 @@ class FileController extends LfmController $content_description = $this->helper->input('content_description'); $content_author = $this->helper->input('content_author'); - $file = $this->lfm->pretty($file_name); + $model = $file->model(); + if($model && $model->id){ - $content = [ - 'id' => $content_id, - 'title' => $content_title, - 'description' => $content_description, - 'author' => $content_author, - ]; + //before save - merge with other + $content = $model->content; + if(!is_array($content)){ + $content = []; + } + $content['id'] = $content_id; + $content['title'] = $content_title; + $content['description'] = $content_description; + if($content_author){ + $content['author'] = $content_author; + } + }else{ + $content = [ + 'id' => $content_id, + 'title' => $content_title, + 'description' => $content_description, + 'author' => $content_author, + ]; + } if($content_id && $content_id != ""){ $file->put(json_encode($content)); } - $model = $file->model(); + if($model && $model->id){ $model->content = $content; $model->save(); diff --git a/public/js/filemanager.js b/public/js/filemanager.js index 0c94ea8..7dfb028 100644 --- a/public/js/filemanager.js +++ b/public/js/filemanager.js @@ -10,7 +10,9 @@ var LFileManager = { lfm_items : {}, lfm_content : '#file-manager-content', lfm_config : {}, - + _log : function (msg){ + console.log(msg) + }, initFileManager : function($editor = false) { var _self = this; //if(!$editor){ diff --git a/resources/views/layouts/includes/layout-sidenav.blade.php b/resources/views/layouts/includes/layout-sidenav.blade.php index 37893ef..e0fa537 100755 --- a/resources/views/layouts/includes/layout-sidenav.blade.php +++ b/resources/views/layouts/includes/layout-sidenav.blade.php @@ -339,6 +339,9 @@
  • {{ __('Media Insert') }}
  • +
  • +
    {{ __('Import') }}
    +
  • diff --git a/resources/views/settings/travel_country/detail.blade.php b/resources/views/settings/travel_country/detail.blade.php index 530cac7..82b1f6e 100755 --- a/resources/views/settings/travel_country/detail.blade.php +++ b/resources/views/settings/travel_country/detail.blade.php @@ -41,10 +41,14 @@
    -
    +
    {{ Form::text('name', $model->name, array('placeholder'=>__('Name'), 'class'=>'form-control', 'id'=>'name', 'required'=>true)) }}
    +
    + + {{ Form::text('destco', $model->destco, array('placeholder'=>__('Code'), 'class'=>'form-control', 'id'=>'destco', 'required'=>true)) }} +

    Inhalte für Seite

    diff --git a/resources/views/settings/travel_country/index.blade.php b/resources/views/settings/travel_country/index.blade.php index 14474de..2b0acce 100755 --- a/resources/views/settings/travel_country/index.blade.php +++ b/resources/views/settings/travel_country/index.blade.php @@ -28,6 +28,7 @@   {{__('Name')}} {{__('Bezug')}} + {{__('Code')}} {{__('E-Mail(s)')}} {{__('Seite')}} {{__('CRM')}} @@ -42,11 +43,13 @@ - {{ $value->name }} {!! implode("
    ", $value->getContactLandsArray()) !!} + + {{ $value->destco }} + {!! \App\Services\Util::_implodeLines($value->contact_emails, "
    ") !!} diff --git a/resources/views/settings/travel_nationality/index.blade.php b/resources/views/settings/travel_nationality/index.blade.php index c84ca31..d6eeb76 100755 --- a/resources/views/settings/travel_nationality/index.blade.php +++ b/resources/views/settings/travel_nationality/index.blade.php @@ -15,6 +15,7 @@   {{__('Name')}} + {{__('Code')}} {{__('sichtbar')}} @@ -26,11 +27,13 @@ {{ $value->name }} + {{ $value->nat }} {!! \App\Services\HTMLHelper::getActiveIcon($value->active) !!} @@ -65,6 +68,12 @@ {{ Form::text('name', '', array('placeholder'=>__('Description'), 'class'=>'form-control', 'required'=>true)) }}
    +
    +
    + + {{ Form::text('nat', '', array('placeholder'=>__('Code'), 'class'=>'form-control', 'required'=>true)) }} +
    +
    -@if($travel_user_booking_fewo->isInvoice())
    -@endif diff --git a/resources/views/travel/user/booking/_detail_sm_mails.blade.php b/resources/views/travel/user/booking/_detail_sm_mails.blade.php index 84ab1ed..38b4302 100755 --- a/resources/views/travel/user/booking/_detail_sm_mails.blade.php +++ b/resources/views/travel/user/booking/_detail_sm_mails.blade.php @@ -1,6 +1,5 @@ - -@if($travel_user_booking_fewo->isInvoice()) +@if($travel_user_booking_fewo->id > 0)
    -@endif -@if($travel_user_booking_fewo->id > 0) + +