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));
 }
示例#2
0
 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');
     }
 }