/**
  * Creates a new cotizacion model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate($id)
 {
     $model = new Cotizacion();
     if (isset($_POST['Cotizacion']) && isset($_POST['detalle'])) {
         //echo '<pre>';print_r($_POST);echo '</pre>';exit;
         try {
             $cotizacion = $_POST['Cotizacion'];
             $conection = Yii::$app->db;
             $transaction = $conection->beginTransaction();
             $comandoCotizacion = $conection->createCommand("INSERT INTO Cotizacion\n     (folio, fecha_f, cliente_did, porcentaje,\n     comentarios, estatus_did, requisicion_did,usuario_aid, empresa_did, subtotal, iva, total)\n     VALUES (:folio, :fecha_f, :cliente_did, :porcentaje,\n     :comentarios, :estatus_did, :requisicion_did, :usuario_aid, :empresa_did, :subtotal, :iva, :total)");
             $comandoCotizacion->bindValue(":folio", $cotizacion['folio'], PDO::PARAM_STR);
             $comandoCotizacion->bindValue(":fecha_f", $cotizacion['fecha_f'], PDO::PARAM_STR);
             $comandoCotizacion->bindValue(":cliente_did", $cotizacion['cliente_did'], PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":porcentaje", $cotizacion['porcentaje'], PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":comentarios", $cotizacion['comentarios'], PDO::PARAM_STR);
             $comandoCotizacion->bindValue(":estatus_did", 1, PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":requisicion_did", $id, PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":empresa_did", Yii::$app->session->get('empresa_did'), PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":usuario_aid", Yii::$app->user->id, PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":subtotal", $cotizacion['subtotal'], PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":iva", $cotizacion['iva'], PDO::PARAM_INT);
             $comandoCotizacion->bindValue(":total", $cotizacion['total'], PDO::PARAM_INT);
             if ($comandoCotizacion->execute()) {
                 $cotizacionId = Cotizacion::find()->orderBy("id DESC")->one();
                 $detalleCotizacion = $_POST['detalle'];
                 foreach ($detalleCotizacion as $detalle) {
                     $comandoDetalle = $conection->createCommand("INSERT INTO DetalleCotizacion\n       (proveedor_aid, cantidad, articulo_aid, comentarios, estatus_did, cotizacion_did, importe, preciounitario, preciounitariofinal, porcentaje)\n       VALUES(:proveedor_aid, :cantidad, :articulo_aid, :comentarios, :estatus_did, :cotizacion_did, :importe , :preciounitario, :preciounitariofinal, :porcentaje)");
                     $comandoDetalle->bindValue(":proveedor_aid", $detalle['proveedor'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":cantidad", $detalle['cantidad'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":articulo_aid", $detalle['articulo'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":comentarios", $detalle['comentarios'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":estatus_did", 1, PDO::PARAM_INT);
                     $comandoDetalle->bindValue(":cotizacion_did", $cotizacionId->id, PDO::PARAM_INT);
                     $comandoDetalle->bindValue(":importe", $detalle['importe'], PDO::PARAM_INT);
                     $comandoDetalle->bindValue(":preciounitario", $detalle['precioUnitario'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":preciounitariofinal", $detalle['precioFinal'], PDO::PARAM_STR);
                     $comandoDetalle->bindValue(":porcentaje", $detalle['porcentaje'], PDO::PARAM_INT);
                     $comandoDetalle->execute();
                 }
             }
             $transaction->commit();
         } catch (Exception $e) {
             $transaction->rollBack();
         }
         return $this->redirect(['index']);
     } else {
         $cotizacion = Requisicion::find()->where('id=:id', ['id' => $id])->one();
         $model->folio = $cotizacion->folio;
         $model->cliente_did = $cotizacion->cliente_did;
         $model->fecha_f = date("Y-m-d");
         $detalle = DetalleRequisicion::find()->asArray()->where("requisicion_did = " . $id)->all();
         return $this->render('create', ['model' => $model, 'detalle' => $detalle]);
     }
 }
 public function actionUpdate($id)
 {
     $model = $this->findModel($id);
     if (isset($_POST['Requisicion'])) {
         $conection = Yii::$app->db;
         try {
             $requisicion = $_POST['Requisicion'];
             $conection = Yii::$app->db;
             $transaction = $conection->beginTransaction();
             $comandoRequisicion = $conection->createCommand("UPDATE Requisicion SET\n                    folio = :folio,\n                    fecha_f = :fecha_f,\n                    cliente_did = :cliente_did,\n                    departamento = :departamento,\n                    comentarios = :comentarios,\n                    estatus_did = :estatus_did,\n                    usuario_aid = :usuario_aid,\n                    empresa_did = :empresa_did\n                    WHERE id = " . $id);
             $comandoRequisicion->bindValue(":folio", $requisicion['folio'], PDO::PARAM_STR);
             $comandoRequisicion->bindValue(":fecha_f", $requisicion['fecha_f'], PDO::PARAM_STR);
             $comandoRequisicion->bindValue(":cliente_did", $requisicion['cliente_did'], PDO::PARAM_INT);
             $comandoRequisicion->bindValue(":departamento", $requisicion['departamento'], PDO::PARAM_STR);
             $comandoRequisicion->bindValue(":comentarios", $requisicion['comentarios'], PDO::PARAM_STR);
             $comandoRequisicion->bindValue(":estatus_did", $requisicion['estatus_did'], PDO::PARAM_INT);
             $comandoRequisicion->bindValue(":usuario_aid", $requisicion['usuario_aid'], PDO::PARAM_INT);
             $comandoRequisicion->bindValue(":empresa_did", Yii::$app->session->get('empresa_did'), PDO::PARAM_INT);
             $comandoRequisicion->execute();
             $detalleRequisicion = $_POST['detalle'];
             $comandoEliminaDetalle = $conection->createCommand("DELETE FROM DetalleRequisicion WHERE requisicion_did = " . $id);
             $comandoEliminaDetalle->execute();
             foreach ($detalleRequisicion as $detalle) {
                 $comandoInsertaDetalle = $conection->createCommand("INSERT INTO DetalleRequisicion\n                            (cantidad, articulo_aid, comentarios, requisicion_did)\n                            VALUES(:cantidad, :articulo_aid, :comentarios, :requisicion_did)");
                 $comandoInsertaDetalle->bindValue(":cantidad", $detalle['cantidad'], PDO::PARAM_STR);
                 $comandoInsertaDetalle->bindValue(":articulo_aid", $detalle['articulo'], PDO::PARAM_STR);
                 $comandoInsertaDetalle->bindValue(":comentarios", $detalle['comentarios'], PDO::PARAM_STR);
                 $comandoInsertaDetalle->bindValue(":requisicion_did", $id, PDO::PARAM_STR);
                 $comandoInsertaDetalle->execute();
             }
             $conection->createCommand("INSERT INTO Actividad (descripcion, usuario) Values ('Ha actualizado una requisición', '" . Yii::$app->user->id . "')")->execute();
             $transaction->commit();
             $this->redirect(array('view', 'id' => $id));
         } catch (Exception $e) {
             echo '<pre>';
             print_r($e);
             echo "</pre>";
             exit;
             $transaction->rollBack();
             Yii::$app->user->setFlash('warning', '<strong>Hubo un error al actualizar la requisición!</strong>');
         }
     } else {
         $detalle = DetalleRequisicion::find()->asArray()->where("requisicion_did = " . $id)->all();
         return $this->render('update', ['model' => $model, 'detalle' => $detalle]);
     }
 }