Commit f629746a by Van

feat(all): update fields

parent e5f95cd5
......@@ -46,6 +46,7 @@ class SearchController extends Base
public function search()
{
$formData = $this->app['request']->request->get('resa');
dump($formData);
$this->_saveBaseFormData();
try {
......@@ -55,39 +56,75 @@ class SearchController extends Base
;
} finally {
$idsProduct = $this->ellohaRequest->getIdProducts();
$results = $this->_searchReservableContents($idsProduct);
$hotels = (!$results['hotels']) ? [] : $results['hotels'];
$locatifs_meubles = (isset($results['locatifs-meubles'])) ? $results['locatifs-meubles'] : [];
$hebergements_collectifs = (isset($results['hebergements-collectifs'])) ? $results['hebergements-collectifs'] : [];
$results = $this->_searchReservableContents($idsProduct, $formData);
return $this->render('@elloha/Frontend/search/results.html.twig', [
'records' => [
'hotels' => $hotels,
'locatifs_meubles' => $locatifs_meubles,
'hebergements_collectifs' => $hebergements_collectifs
]
'results' => $results
]);
}
}
/**
* @param array $idsProduct
* @param array $formData
* @return array
* Search foreach contenttypes records where idsProduct is in the array
*/
private function _searchReservableContents(array $idsProduct = [])
private function _searchReservableContents(array $idsProduct = [], array $formData = [])
{
$results = [];
$ids = implode(' || ', $idsProduct);
$reservables = [];
$contentsSearchable = $this->_getSearchableContents();
dump(key($contentsSearchable));
dump($contentsSearchable[]);
if (in_array($formData['Type'], $contentsSearchable)){
dump("BOOOOOOOOOOOUUUYAH");
}
foreach ($this->_getSearchableContents() as $content) {
$records = $this->app['storage']->getContent($content['slug'], ['resacode' => $ids, 'returnsingle' => false]);
$results[$content['slug']]= $records;
$reservables[$content['slug']]= $records;
}
$nonReservables = $this->_getNonReservablesRecords($reservables);
$results['reservables'] = $reservables;
$results['nonreservables'] = $nonReservables;
return $results;
}
/**
* @param array $reservables
* @return array
*/
protected function _getNonReservablesRecords(array $reservables = []) {
$nonReservables = [];
foreach ($this->_getSearchableContents() as $content) {
$query = 'SELECT id FROM '.$this->getContenttypeTablename($content['slug']);
$idsReservable = array_keys($reservables[$content['slug']]);
if(!empty($idsReservable)) {
$idsReservableString = implode(', ',$idsReservable);
$query .= ' WHERE id NOT IN ('.$idsReservableString.')';
}
$rows = $this->app['db']->fetchAll($query);
$idsNonReservable = array_map(function($rows) {
return $rows['id'];
}, $rows);
$records = $this->app['storage']->getContent($content['slug'], ['id' => implode(' || ', $idsNonReservable), 'returnsingle' => false]);
$nonReservables[$content['slug']] = $records;
}
return $nonReservables;
}
/**
* @return array
* Get the define searchable table
*/
......@@ -96,7 +133,6 @@ class SearchController extends Base
foreach($this->config['searchable_contenttypes'] as $contenttype) {
$tables[] = $this->getContenttypeTablename($contenttype);
}
return $tables;
}
......@@ -107,7 +143,8 @@ class SearchController extends Base
protected function _getSearchableContents(){
$contents = [];
foreach($this->config['searchable_contenttypes'] as $contenttype) {
$contents[] = $this->getContenttype($contenttype);
/*$contents[$contenttype] = $this->getContenttype($contenttype);*/
$contents[$contenttype] = $this->getContenttype($contenttype);
}
return $contents;
}
......
......@@ -115,7 +115,10 @@ class EllohaExtension extends SimpleExtension
protected function _getResaTypesForOptions()
{
$types = [];
foreach ($this->getConfig()['resa_types'] as $key => $value) {
/*foreach ($this->getConfig()['resa_types'] as $key => $value) {
$types[$key] = (isset($value['label'])) ? $value['label'] : 'Non défini';
}*/
foreach ($this->getConfig()['resa_content'] as $key => $value) {
$types[$key] = (isset($value['label'])) ? $value['label'] : 'Non défini';
}
return $types;
......
......@@ -32,6 +32,7 @@ class ResaType extends AbstractType
'class' => 'main control-label col-xs-12'
],
'choices' => array_merge([null => 'Tous les hébergements'], $options['resaTypes'])
])
->add(
'StartDate',
......@@ -83,6 +84,7 @@ class ResaType extends AbstractType
{
$resolver->setDefaults([
'resaTypes' => null
]);
}
......
......@@ -55,7 +55,7 @@ class EllohaRequest
public function setData(array $data = [])
{
$this
->setType($data['Type'])
/*->setType($data['Type'])*/
->setStartDate(($data['StartDate']))
->setEndDate($data['EndDate'])
->setAdultNumber($data['AdultNumber'])
......@@ -69,9 +69,9 @@ class EllohaRequest
*/
public function getData() {
$data = [];
if($this->getType()) {
/*if($this->getType()) {
$data['Type'] = $this->getType();
}
}*/
if($this->getStartDate()) {
$data['StartDate'] = $this->getStartDate();
}
......
......@@ -37,7 +37,6 @@ class QueryBuilder
$storage = $this->app['storage'];
$query = $this->_buildQuery($contentType, $fields);
dump($query);
if(!empty($query))
{
$rows = $this->app['db']->fetchAll($query);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment