protected function getMealsForDay($iAccountId, $iYear, $iMonth, $iDay) { $oMeal = new Model_Meal(); $sStart = date('Y-m-d H:i:s', mktime(0, 0, 0, $iMonth, $iDay, $iYear)); $sEnd = date('Y-m-d H:i:s', mktime(23, 59, 59, $iMonth, $iDay, $iYear)); return $oMeal->getMeals($iAccountId, $sStart, $sEnd); }
protected function generateEnrolData($iUserId, $iWeekNumber = 0) { // gdy nie wybrano zadnej daty $iDay = date('j'); $iMonth = date('n'); $iYear = date('Y'); $iTime = time(); // jezeli wybrano inny tydzien if ($iWeekNumber != 0) { $iWeekNumber = (int) $iWeekNumber; $iTime = mktime(0, 0, 0, $iMonth, $iDay + $iWeekNumber * 7, $iYear); $iDay = date('j', $iTime); $iMonth = date('n', $iTime); $iYear = date('Y', $iTime); } $iWeekDay = date('w', $iTime) == 0 ? 7 : date('w', $iTime); // obliczamy poczatek i koniec tygodnia $iStartTime = mktime(0, 0, 0, $iMonth, $iDay - ($iWeekDay - 1), $iYear); $sStartDate = date('Y-m-d', $iStartTime); $iEndTime = mktime(0, 0, 0, $iMonth, $iDay + (7 - $iWeekDay), $iYear); $sEndDate = date('Y-m-d', $iEndTime); $aWeek = array(); $oMeal = new Model_Meal(); // zapisujemy if (isset($_POST['submit']) and !isset($_POST['user_id'])) { $aMeals = $oMeal->getMeals($this->oCurrentUser->account_id, $sStartDate, $sEndDate); $bSaved = $this->saveOrders($this->oCurrentUser->account_id, $iUserId, $aMeals); if ($bSaved) { $aMeta = $this->mTemplate->aMeta; $aMeta[] = '<meta http-equiv="refresh" content="1;url=' . $this->mTemplate->anchor() . '" />'; $this->mTemplate->aMeta = $aMeta; return $this->getLang('Catering.save_meals_successfully'); } else { return $this->getLang('Catering.save_meals_failed'); } } // wyszukujemy posików i grupujemy po dacie $aMeals = $oMeal->getMeals($this->oCurrentUser->account_id, $sStartDate, $sEndDate, 'date'); // wyszukujemy zamowienia $aOrderedMeals = array(); $oOrder = new Model_Order(); $aOrders = $oOrder->where('user_id', $iUserId)->getAll(); foreach ($aOrders as $aOrder) { $aOrderedMeals[] = $aOrder['meal_id']; } foreach ($aMeals as $sDate => $aMeal) { $aWeek[$sDate]['aMeals'][0] = array('name' => $this->getLang('Catering.no_order'), 'meal_id' => 0, 'optional' => 0, 'bChecked' => false, 'bDisabled' => false); $aWeek[$sDate]['sWeekday'] = date('l', strtotime($sDate)); foreach ($aMeal as $iMealId => $aMealData) { $aWeek[$sDate]['aMeals'][] = array('name' => $aMealData['lname'], 'fname' => $aMealData['fname'], 'meal_id' => $iMealId, 'price' => $aMealData['price'] . $this->getLang('Catering.currency'), 'optional' => $aMealData['optional'], 'bChecked' => in_array($iMealId, $aOrderedMeals) ? true : false, 'bDisabled' => false); } } $aData['aWeek'] = $aWeek; $aData['sNextText'] = $this->getLang('Catering.next'); $aData['sNextLink'] = '/account/orders/' . $iUserId . '/' . ($iWeekNumber + 1) . '/'; $aData['sPrevText'] = $this->getLang('Catering.prev'); $aData['sPrevLink'] = '/account/orders/' . $iUserId . '/' . ($iWeekNumber - 1) . '/'; $aData['submit'] = 'Zapisz'; return $aData; }