private function updateDailyPlan($em, $service, $date, $plan, $hpPlan) { $dailyPlan = $em->getRepository('sisconeeAppBundle:PlanMensualServicio')->getPlanOfAServiceInADate($service, $date); if ($dailyPlan == null) { if (!$this->isNullOrEmpty($plan) || !$this->isNullOrEmpty($hpPlan != null)) { // create a new plan $newDailyPlan = new LecturaDiariaServicio(); $newDailyPlan->setIdServicio($service); $newDailyPlan->setPlan($plan); $newDailyPlan->setPlanHorarioPico($hpPlan); $newDailyPlan->setFecha($date); $em->persist($newDailyPlan); $em->flush(); //Register Log $current_user = $this->getCurrentUser(); $date = $newDailyPlan->getFecha()->format('Y-m-d '); $data = $plan . ',' . $hpPlan . ',' . $service . ',' . $date; $em->getRepository('sisconeeAppBundle:Trazas')->persistLog('Añadir', 'plan_diario_servicio', $newDailyPlan->getId(), $data, $current_user); } } else { if ($this->isNullOrEmpty($plan) && $this->isNullOrEmpty($hpPlan)) { // delete an existent plan $em->remove($dailyPlan); $em->flush(); //Register Log $id = $dailyPlan->getId(); $current_user = $this->getCurrentUser(); $date = $dailyPlan->getFecha()->format('Y-m-d '); $data = $dailyPlan->getPlan() . ',' . $dailyPlan->getPlanHorariopico() . ',' . $service . ',' . $date; $em->getRepository('sisconeeAppBundle:Trazas')->persistLog('Eliminar', 'plan_diario_servicio', $id, $data, $current_user); } else { // update an existent plan if ($dailyPlan->getPlan() != $plan || $dailyPlan->getPlanHorarioPico() != $hpPlan) { $dailyPlan->setPlan($plan); $dailyPlan->setPlanHorarioPico($hpPlan); $em->persist($dailyPlan); $em->flush(); //Register Log $current_user = $this->getCurrentUser(); $date = $dailyPlan->getFecha()->format('Y-m-d '); $data = $dailyPlan->getPlan() . ',' . $dailyPlan->getPlanHorariopico() . ',' . $service . ',' . $date; $em->getRepository('sisconeeAppBundle:Trazas')->persistLog('Actualizar', 'plan_diario_servicio', $dailyPlan->getId(), $data, $current_user); } } } }
function loadPlansFromCsvFiles($dir) { var_dump('loading daily and mensual plans for the services...'); var_dump($dir); $em = $this->manager; $entries = scandir($dir); $i = 0; foreach ($entries as $e) { $i++; var_dump('parsing files in folder ' . $i); $subdir = $dir . '\\' . $e; if (is_dir($subdir) && $e != '.' && $e != '..') { foreach (scandir($subdir) as $file) { $csvFile = $subdir . '\\' . $file; if (is_file($csvFile) && pathinfo($csvFile)['extension'] == "csv") { $fileHandle = fopen($csvFile, "r"); $row = 0; $date = ""; while (($data = fgetcsv($fileHandle, 1000, ",")) != false) { if ($row == 3) { // extract day here $date = date_parse($data[5]); //var_dump ("Loading plan for day: ".$date['day'].'/'.$date['month']); } if ($row >= 6) { if (is_numeric($data[0])) { $code = $data[1]; $service = $em->getRepository('sisconeeAppBundle:Servicio')->findOneByCodClienteEE($code); if ($service == null) { continue; } $lecturaDiariaActual = $em->getRepository('sisconeeAppBundle:LecturaDiariaServicio')->getLectura($date['day'], $date['month'], $date['year'], $service->getId()); if ($lecturaDiariaActual == null) { $planDia = $data[6]; $consumoDia = $data[7]; $lecturaDiariaActual = new LecturaDiariaServicio(); $lecturaDiariaActual->setPlan($planDia); $lecturaDiariaActual->setConsumo($consumoDia); $lecturaDiariaActual->setIdServicio($service); $dateDT = date_create(); date_date_set($dateDT, $date['year'], $date['month'], $date['day']); $lecturaDiariaActual->setFecha($dateDT); $em->persist($lecturaDiariaActual); //plandiario $this->manager->flush(); //var_dump ('saving service '.$service->getId()); } else { //var_dump("Existe " . date_format($lecturaDiariaActual->getFecha(), "m:d:y")); } $lecturaMensual = $em->getRepository('sisconeeAppBundle:PlanAnualEntidad')->getPlanOfAServiceInAMonthYear($service, $date['month'], $date['year']); if ($lecturaMensual == null) { $planMensualValue = $data[5]; $planMensual = new PlanmensualServicio(); $planMensual->setPlan($planMensualValue); $planMensual->setServicio($service); $planMensual->setMes($date['month']); $planMensual->setAnno($date['year']); $em->persist($planMensual); //planmensual $this->manager->flush(); } } } $row++; } $this->manager->flush(); } } } } }