public function saveRate($tarifaTO) { $em = $this->getEntityManager(); $nextDate = true; // asigna primera fecha a guardar $fechaActual = $tarifaTO->getFechaInicio(); // Elimina las tarifas en el rango de fechas seleccionadas $eliminado = $this->deleteRateByDates($tarifaTO->getIdContrato(), $tarifaTO->getIdHabitacion(), $tarifaTO->getIdHotel(), $tarifaTO->getFechaInicio(), $tarifaTO->getFechaFin()); // Si se eliminaron los registro procede a guardar los nuevos if ($eliminado) { // Mientras no se llege a la fecha final se crean o modifican los registros while ($nextDate) { // Crea la fecha con la informacion capturada $this->createRateHotel($tarifaTO->getIdContrato(), $tarifaTO->getIdHabitacion(), $tarifaTO->getIdHotel(), $fechaActual, $tarifaTO->getSencillo(), $tarifaTO->getDoble(), $tarifaTO->getTriple(), $tarifaTO->getCuadruple()); // Si la fecha actual es la misma a la fecha final sale del ciclo, termina if (DateUtil::isSammeDate($fechaActual, $tarifaTO->getFechaFin())) { $nextDate = false; } else { // Si no es igual le suma un dia a la fecha actual $fechaActual = DateUtil::summOneDayToDate($fechaActual); } } } }
public static function getArrayClosingDates($fechasCierre) { $closingDate = new ArrayCollection(); // Trato la información si tiene fechas if (count($fechasCierre) > Generalkeys::NUMBER_ZERO) { foreach ($fechasCierre as $fecha) { $fechaInicio = $fecha['fechainicio']; $fechaFin = $fecha['fechafin']; $isLastDate = false; while (!$isLastDate) { $closingDate->add($fechaInicio); if (DateUtil::isSammeDate($fechaInicio, $fechaFin)) { $isLastDate = true; } else { $fechaInicio = DateUtil::summOneDayToDate($fechaInicio); } } } } return $closingDate; }