Ejemplo n.º 1
0
 /**
  * Creates a new model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  */
 public function actionCreate()
 {
     $model = new Maestrocompo();
     $model->valorespordefecto();
     // Uncomment the following line if AJAX validation is needed
     $this->performAjaxValidation($model);
     if (isset($_POST['Maestrocompo'])) {
         $model->attributes = $_POST['Maestrocompo'];
         $transaccion = $model->dbConnection->beginTransaction();
         if ($model->save()) {
             //actualizamos tambien las tablas inventario y maestrodetalle
             //inventario
             $centros = Centros::model()->findAll();
             foreach ($centros as $fila) {
                 $modeloporcentros = new Maestrodetallecentros();
                 $modeloporcentros->setAttributes(array('hcodart' => $model->codigo, 'codcen' => $fila->codcen, 'catvalor' => '', 'iqf' => '0'), true);
                 // var_dump($fila);
                 $modeloalmacenes = Almacenes::model()->findall("codcen=:vcdocen", array(":vcdocen" => $fila->codcen));
                 foreach ($modeloalmacenes as $filaalmacen) {
                     //$contact->setIsNewRecord(true);
                     $modeloinventario = new Alinventario();
                     $modelodetalle = new Maestrodetalle();
                     $modelodetalle->setAttributes(array('codart' => $model->codigo, 'codcentro' => $fila->codcen, 'codal' => $filaalmacen->codalm, 'codgrupoventas' => '001', 'canaldist' => '01', 'sujetolote' => '0', 'canteconomica' => 0, 'cantreposic' => 0, 'cantreorden' => 0, 'leadtime' => 0, 'controlprecio' => 'V'), true);
                     $modeloinventario->setAttributes(array('codart' => $model->codigo, 'codcen' => $fila->codcen, 'codalm' => $filaalmacen->codalm, 'cantlibre' => 0, 'canttran' => 0, 'cantres' => 0, 'ubicacion' => '', 'lote' => '', 'codmon' => Yii::app()->params['monedadef']), true);
                     //   var_dump($modeloinventario);
                     /*  echo "<br><br><br>";
                     		  var_dump($modelodetalle->attributes);
                     		  echo "<br><br><br>";*/
                     //  var_dump($modeloinventario->attributes);
                     if (!$modeloinventario->save() or !$modelodetalle->save()) {
                         $transaccion->rollback();
                         throw new CHttpException(404, 'No se pudieron grabar los datos detalles ');
                     } else {
                     }
                 }
                 //bucle de almacenes
                 if (!$modeloporcentros->save()) {
                     $transaccion->rollback();
                     throw new CHttpException(404, 'No se pudieron grabar los datos del modelo poR CENTROS ');
                 }
             }
             ///FIN DEL BUCLE CENTROS
             $transaccion->commit();
             Yii::app()->user->setFlash('success', "Se ha creado el material  " . $model->codigo);
         } else {
             /// SSI HUBO UN ERRRO AL GRANAR EL MATERIAL
             $transaccion->rollback();
             throw new CHttpException(404, 'No se pudieron grabar los datos del material ');
         }
         $this->redirect(array('update', 'id' => $model->codigo));
     }
     /// si no se puede grabar
     $this->render('create', array('model' => $model, 'habilitado' => ''));
 }