public function ajaxVerificarePretPachetPas1(Request $request) { $formData = []; foreach ($request->formData as $value) { $formData[$value['name']] = $value['value']; } $nrCamere = $formData['Camere']; $idPlecare = $formData['Plecare']; // DB::enableQueryLog(); $oferte = PacheteCamere::select('Name', DB::raw('sum(Price) as Price'), 'Currency', 'PackID')->where('EntryID', $idPlecare)->groupBy('EntryID')->where(function ($query) use($nrCamere, $formData) { for ($i = 1; $i <= $nrCamere; $i++) { $infanti = 0; if ($formData['Copii_Cam' . $i] != 0) { for ($j = 1; $j <= $formData['Copii_Cam' . $i]; $j++) { if ($formData['varstaCopil' . $j . '_Cam' . $i] <= 1) { $infanti = $infanti + 1; } } } else { $infanti = 0; } // dump($infanti); $array[$i] = ['Adults' => $formData['Adulti_Cam' . $i], 'Childs' => $formData['Copii_Cam' . $i], 'Infants' => $infanti]; $packs = $query->orWhere($array[$i], 'and'); } })->get(); // dd(DB::getQueryLog()); $intrare = PacheteIntrari::where('EntryID', $idPlecare)->first(); $pachet = Pachete::where('PackID', $intrare->PackID)->first(); // afisez camerele pentru packid si entryid $camere = []; for ($i = 1; $i <= $nrCamere; $i++) { $infanti = 0; $varste = []; if ($formData['Copii_Cam' . $i] != 0) { for ($j = 1; $j <= $formData['Copii_Cam' . $i]; $j++) { array_push($varste, $formData['varstaCopil' . $j . '_Cam' . $i]); if ($formData['varstaCopil' . $j . '_Cam' . $i] <= 1) { $infanti = $infanti + 1; } } } else { $infanti = 0; } $array = ['EntryID' => $intrare->EntryID, 'PackID' => $intrare->PackID, 'Adults' => $formData['Adulti_Cam' . $i], 'Childs' => $formData['Copii_Cam' . $i], 'Infants' => $infanti]; $sql = PacheteCamere::where($array, 'and')->first(); // dump($sql); array_push($camere, ['RoomID' => $sql->RoomID, 'EntryID' => $sql->EntryID, 'RoomName' => $sql->RoomName, 'RoomType' => $sql->RoomType, 'RoomFeature' => $sql->RoomFeature, 'Adults' => $sql->Adults, 'Childs' => $sql->Childs, 'Ages' => $varste, 'Price' => $sql->Price, 'Currency' => $sql->Currency]); } // dd($camere); // dump(DB::getQueryLog()); dump($camere); // dump($oferte); // dd($oferte); return (string) view('frontend.ajax.raspuns-pachete-disponibile')->with('intrare', $intrare)->with('pachet', $pachet)->with('oferte', $oferte)->with('camere', $camere); }
function getPachetPretMinim($packID) { return PacheteCamere::where('PackID', $packID)->min('Price'); }
public function XmlFiles($operator) { $files = File::files("CatalogFiles/{$operator}"); Pachete::truncate(); PacheteCamere::truncate(); PacheteOcupare::truncate(); PacheteServicii::truncate(); PacheteIntrari::truncate(); PacheteOcupare::truncate(); foreach ($files as $file) { $xml = new SimpleXMLElement($file, null, TRUE); $pachete = $xml->Packages; //----parcurg pachetele din $pachete---// foreach ($pachete as $pachet) { // dd($pachet); //---parcurg nodurile pachetului-----// foreach ($pachet as $xml_pachet) { $atribute_pachet = $xml_pachet->attributes(); //---definim array_pachet---// $array_pachet = ['PackID' => $atribute_pachet->ID, 'ProjectID' => $xml_pachet->Project->attributes()->ID, 'ProjectName' => $xml_pachet->Project->attributes()->Name, 'HomeCateg' => '', 'Type' => $atribute_pachet->Type, 'Name' => $atribute_pachet->Name, 'Currency' => $atribute_pachet->Currency, 'Code' => $atribute_pachet->Code, 'Description' => $xml_pachet->Description, 'Operator' => $operator]; Pachete::create($array_pachet); //-------------de testat cu extradetalii suplimentare $extradescrieri = $xml_pachet->ExtraDescription->Description; if ($extradescrieri) { foreach ($extradescrieri as $xml_extradescrieri) { $atribute_extradescrieri = $xml_extradescrieri->attributes(); $array_extradescrieri = ['PackID' => $atribute_pachet->ID, 'Title' => $atribute_extradescrieri->Title, 'Description' => $xml_extradescrieri, 'Operator' => $operator]; } } $intrari_pachet = $xml_pachet->PackEntries->PackEntry; //----Parcurg nodul de intrari pachete-----// foreach ($intrari_pachet as $xml_intrari_pachet) { $atribute_intrare_pachet = $xml_intrari_pachet->attributes(); //-----definim array_intrari_pachet----// $array_intrare_pachet = ['PackID' => $atribute_pachet->ID, 'EntryID' => $atribute_intrare_pachet->ID, 'DateEnd' => $atribute_intrare_pachet->DateEnd, 'DateStart' => $atribute_intrare_pachet->DateStart, 'Duration' => $xml_intrari_pachet->Duration, 'TimeUnit' => $xml_intrari_pachet->Duration->attributes()->TimeUnit, 'Operator' => $operator]; PacheteIntrari::create($array_intrare_pachet); //-----definesc nodurile copil din intrari pachete-----// $extrservicii = $xml_intrari_pachet->ExtraServices->ExtraService; //-----parcurg extraserviciile----// if (!is_null(@$extrservicii)) { foreach ($extrservicii as $xml_extraservicii) { $atribute_extraservicii = $xml_extraservicii->attributes(); //-- definim array_extraservicii--// $array_extraservicii = ['EntryID' => $atribute_intrare_pachet->ID, 'ServID' => $atribute_extraservicii->ID, 'Name' => $atribute_extraservicii->Name, 'Type' => $atribute_extraservicii->Type, 'Mandatory' => $atribute_extraservicii->Mandatory, 'PriceSetID' => @$xml_extraservicii->PriceSet->attributes()->ID, 'Operator' => $operator]; PacheteServicii::create($array_extraservicii); } } //----------parcurg packconfigurarion--------// $configurari_pachete = $xml_intrari_pachet->PackConfigurations; foreach ($configurari_pachete as $configurare_pachet) { //---------parcurg configurarile-----------// foreach ($configurare_pachet as $xml_configurare_pachet) { //------definesc nodurile copil din configurari $ocupare_camere = $xml_configurare_pachet->Occupancy->GuestCount; $date_camere_unitate = $xml_configurare_pachet->Accommodation; //----parcurg nodul unitate----// $array_adults = []; $array_childs = []; $array_infants = []; $nrAdults = 0; $nrChilds = 0; $nrInfants = 0; foreach ($date_camere_unitate as $xml_unitate_camere) { $atribute_unitate = $xml_unitate_camere->attributes(); //----definesc array_unitate_camere-----// $array_unitate_camere = ['PackID' => $atribute_pachet->ID, 'EntryID' => $atribute_intrare_pachet->ID, 'UnitID' => $atribute_unitate->UnitID, 'RoomID' => $atribute_unitate->RoomID, 'Name' => $atribute_unitate->Name, 'Stars' => $atribute_unitate->Stars, 'RoomName' => $atribute_unitate->RoomName, 'RoomType' => $xml_unitate_camere->RoomType, 'RoomFeature' => $xml_unitate_camere->RoomFeature, 'CityID' => $xml_unitate_camere->City->attributes()->ID, 'CityName' => $xml_unitate_camere->City->attributes()->Name, 'Price' => $xml_configurare_pachet->Price->attributes()->Ammount, 'Currency' => $xml_configurare_pachet->Price->attributes()->CurrencyCode, 'Operator' => $operator]; $pachete_camera = PacheteCamere::create($array_unitate_camere); Pachete::where('PackID', $atribute_pachet->ID)->update(['CityID' => $xml_unitate_camere->City->attributes()->ID]); Pachete::where('PackID', $atribute_pachet->ID)->update(['UnitID' => $atribute_unitate->UnitID]); } //------parcurg nodurile ocupare camere------// foreach ($ocupare_camere as $xml_ocupare_camere) { $atribute_ocupare_camere = $xml_ocupare_camere->attributes(); //----definim array_ocupare camere-----// $array_ocupare_camere = ['IDCamera' => $pachete_camera->id, 'Count' => $atribute_ocupare_camere->Count, 'AgeQualifyingCode' => $atribute_ocupare_camere->AgeQualifyingCode, 'MinAge' => $atribute_ocupare_camere->MinAge, 'MaxAge' => $atribute_ocupare_camere->MaxAge, 'RoomID' => $atribute_unitate->RoomID, 'UnitID' => $atribute_unitate->UnitID, 'PackID' => $atribute_pachet->ID, 'EntryID' => $atribute_intrare_pachet->ID, 'Operator' => $operator]; PacheteOcupare::create($array_ocupare_camere); //--------creez coloanele de max adulti si max copii din pachete camare------------// if ((string) $atribute_ocupare_camere->AgeQualifyingCode == 'a') { $nrAdults += $atribute_ocupare_camere->Count; // array_push($array_adults, (string) $atribute_ocupare_camere->AgeQualifyingCode . '|' . (string) $atribute_ocupare_camere->Count); } else { if ((string) $atribute_ocupare_camere->AgeQualifyingCode == 'c' && (string) $atribute_ocupare_camere->MinAge >= 2) { $nrChilds += $atribute_ocupare_camere->Count; // array_push($array_childs, (string) $atribute_ocupare_camere->AgeQualifyingCode . '|' . (string) $atribute_ocupare_camere->Count); } else { if ((string) $atribute_ocupare_camere->AgeQualifyingCode == 'c' && (string) $atribute_ocupare_camere->MinAge < 2) { $nrInfants += $atribute_ocupare_camere->Count; // array_push($array_infants, (string) $atribute_ocupare_camere->AgeQualifyingCode . '|' . (string) $atribute_ocupare_camere->Count); } } } //array_push($array_age, (string) $atribute_ocupare_camere->AgeQualifyingCode . "|" . $atribute_ocupare_camere->Count); } // $pachete_camera->update(['Adults' => serialize($array_adults), 'Childs' => serialize($array_childs), 'Infants' => serialize($array_infants)]); $pachete_camera->update(['Adults' => $nrAdults, 'Childs' => $nrChilds, 'Infants' => $nrInfants]); // dd($pachete_camera); } } } } } // Files::delete($file); } }