public function actionCreate() { $model = new PlanillasCopec(); if (isset($_POST['PlanillasCopec'])) { $model->setAttributes($_POST['PlanillasCopec']); if ($model->save()) { if (Yii::app()->getRequest()->getIsAjaxRequest()) { Yii::app()->end(); } else { $this->redirect(array('view', 'id' => $model->id)); } } } $this->render('create', array('model' => $model)); }
public function actionSubir() { if (isset($_FILES['excel']) && !empty($_FILES['excel']['name'])) { extract($_POST); if (isset($action) && $action == "upload") { $archivo = $_FILES['excel']['name']; $destino = "xls/bak_" . $archivo; $p = PlanillasCopec::model()->find('nombre = :archivo', array(':archivo' => $archivo)); if ($p != null && !isset($sobreescribir)) { Yii::app()->user->setFlash('notice', "El Archivo " . $archivo . " ya existe!"); $this->render('subir'); } else { if (copy($_FILES['excel']['tmp_name'], $destino)) { Yii::import('application.extensions.Classes.PHPExcel', true); $objReader = new PHPExcel_Reader_Excel5(); $objPHPExcel = $objReader->load("xls/bak_" . $archivo); $objPHPExcel->setActiveSheetIndex(0); $valid = true; $i = '2'; $gas = false; $petroleo = false; if (preg_match("/g93/i", $objPHPExcel->getActiveSheet()->getCell("F2")->getValue())) { $gas = true; } else { if (preg_match("/g95/i", $objPHPExcel->getActiveSheet()->getCell("F2")->getValue())) { $gas = true; } else { if (preg_match("/g95/i", $objPHPExcel->getActiveSheet()->getCell("F2")->getValue())) { $gas = true; } else { if (preg_match("/diesel/i", $objPHPExcel->getActiveSheet()->getCell("H2")->getValue())) { $petroleo = true; } } } } if ($p != null) { $planilla = $this->loadModel($p->id, 'PlanillasCopec'); $planilla->delete(); $planilla = new PlanillasCopec(); $planilla->nombre = $archivo; } else { $planilla = new PlanillasCopec(); $planilla->nombre = $archivo; } if ($gas) { $planilla->tipo_planilla = '1'; } else { $planilla->tipo_planilla = '0'; } if ($gas || $petroleo) { if ($planilla->save()) { Yii::app()->user->setFlash('success', $archivo . " Subido con Exito!"); if ($petroleo) { while ($objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue() != '') { $diesel[$i] = new Diesel(); $vehiculo = Vehiculos::model()->find('patente like :pate', array('pate' => substr(str_replace(array('-', ' '), '', trim($objPHPExcel->getActiveSheet()->getCell('D' . $i)->getCalculatedValue())), 0, 6) . '%')); $diesel[$i]->setAttributes(array('id_planilla' => $planilla->id, 'nro_factura' => $objPHPExcel->getActiveSheet()->getCell('B' . $i)->getCalculatedValue(), 'id_vehiculo' => isset($vehiculo->id) ? $vehiculo->id : '', 'fecha' => date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell('E' . $i)->getCalculatedValue())), 'region' => $objPHPExcel->getActiveSheet()->getCell('F' . $i)->getCalculatedValue(), 'estacion' => $objPHPExcel->getActiveSheet()->getCell('G' . $i)->getCalculatedValue(), 'litros' => str_replace(',', '.', $objPHPExcel->getActiveSheet()->getCell('I' . $i)->getCalculatedValue()), 'precio_u' => intval($objPHPExcel->getActiveSheet()->getCell('J' . $i)->getCalculatedValue()), 'especifico' => intval($objPHPExcel->getActiveSheet()->getCell('K' . $i)->getCalculatedValue()), 'variable' => intval($objPHPExcel->getActiveSheet()->getCell('L' . $i)->getCalculatedValue()), 'total' => str_replace(array(',', '.'), '', $objPHPExcel->getActiveSheet()->getCell('M' . $i)->getCalculatedValue()), 'costo_empresa' => intval((str_replace(array(',', '.'), '', $objPHPExcel->getActiveSheet()->getCell('M' . $i)->getCalculatedValue()) - intval($objPHPExcel->getActiveSheet()->getCell('K' . $i)->getCalculatedValue())) / 1.19 + intval($objPHPExcel->getActiveSheet()->getCell('K' . $i)->getCalculatedValue())), 'nro_guia' => $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getCalculatedValue(), 'rollo' => $objPHPExcel->getActiveSheet()->getCell('O' . $i)->getCalculatedValue())); $valid = $diesel[$i]->validate() && $valid; if ($valid == false) { $invalido[$i] = $i; } $i++; } if ($valid) { foreach ($diesel as $di) { $di->save(); } $this->redirect(array('planillascopec/view', 'id' => $planilla->id)); } else { Yii::app()->user->setFlash('error', "No se han podido validar los datos!"); $this->render('subir', array('invalido' => $invalido, 'diesel' => $diesel)); } } elseif ($gas) { while ($objPHPExcel->getActiveSheet()->getCell("F" . $i)->getValue() != '') { $gasolina[$i] = new Gasolina(); $vehiculo = Vehiculos::model()->find('patente like :pate', array('pate' => substr(str_replace(array('-', ' '), '', trim($objPHPExcel->getActiveSheet()->getCell('D' . $i)->getCalculatedValue())), 0, 6) . '%')); $gasolina[$i]->setAttributes(array('id_planilla' => $planilla->id, 'nro_factura' => $objPHPExcel->getActiveSheet()->getCell('B' . $i)->getCalculatedValue(), 'id_vehiculo' => isset($vehiculo->id) ? $vehiculo->id : '', 'tarjeta' => $objPHPExcel->getActiveSheet()->getCell('E' . $i)->getCalculatedValue(), 'fecha' => date("Y-m-d", PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell('G' . $i)->getCalculatedValue())), 'hora' => date("H:i:s", PHPExcel_Shared_Date::ExcelToPHP($objPHPExcel->getActiveSheet()->getCell('H' . $i)->getCalculatedValue())), 'comuna' => $objPHPExcel->getActiveSheet()->getCell('I' . $i)->getCalculatedValue(), 'direccion' => $objPHPExcel->getActiveSheet()->getCell('J' . $i)->getCalculatedValue(), 'nro_transaccion' => $objPHPExcel->getActiveSheet()->getCell('K' . $i)->getCalculatedValue(), 'precio_u' => intval($objPHPExcel->getActiveSheet()->getCell('M' . $i)->getCalculatedValue()), 'litros' => str_replace(',', '.', $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getCalculatedValue()), 'especifico' => intval($especifico * str_replace(',', '.', $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getCalculatedValue())), 'total' => str_replace(array(',', '.'), '', $objPHPExcel->getActiveSheet()->getCell('O' . $i)->getCalculatedValue()), 'costo_empresa' => intval((str_replace(array(',', '.'), '', $objPHPExcel->getActiveSheet()->getCell('O' . $i)->getCalculatedValue()) - $especifico * str_replace(',', '.', $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getCalculatedValue())) / 1.19 + $especifico * str_replace(',', '.', $objPHPExcel->getActiveSheet()->getCell('N' . $i)->getCalculatedValue())))); $valid = $gasolina[$i]->validate() && $valid; if ($valid == false) { $invalido[$i] = $i; } $i++; } if ($valid) { foreach ($gasolina as $ga) { $ga->save(); } $this->redirect(array('planillascopec/view', 'id' => $planilla->id)); } else { Yii::app()->user->setFlash('error', "No se han podido validar los datos!"); $this->render('subir', array('invalido' => $invalido, 'gasolina' => $gasolina)); } } } else { unlink("xls/bak_" . $archivo); Yii::app()->user->setFlash('error', "No se han podido validar los datos!"); $this->render('subir', array('invalido' => $invalido, 'gasolina' => $gasolina)); } } else { unlink("xls/bak_" . $archivo); Yii::app()->user->setFlash('error', "Planilla no valida!"); $this->render('subir', array('planilla' => $planilla)); } } else { Yii::app()->user->setFlash('error', "Error al cargar archivo!"); } } } else { Yii::app()->user->setFlash('error', "Necesitas importar el archivo!"); } } else { if (isset($_FILES['excel']) && empty($_FILES['excel']['name'])) { Yii::app()->user->setFlash('notice', "No ha seleccionado archivo o esta vacio."); } $this->render('subir'); } }