/**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = OrdenCompra::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['idordencompra' => $this->idordencompra, 'status' => $this->status, 'fecha' => $this->fecha, 'tipo' => $this->tipo, 'escredito' => $this->escredito, 'numcontrol' => $this->numcontrol, 'idefiscal' => $this->idefiscal, 'monto' => $this->monto, 'montoiva' => $this->montoiva, 'idproveedor' => $this->idproveedor, 'reversado' => $this->reversado, 'idcordinacion' => $this->idcordinacion, 'idusuario_crea' => $this->idusuario_crea, 'fecha_crea' => $this->fecha_crea, 'fecha_reverso' => $this->fecha_reverso, 'idusuario_reversa' => $this->idusuario_reversa, 'idordenservicio' => $this->idordenservicio, 'reqrequisicion' => $this->reqrequisicion, 'reqinvitacion' => $this->reqinvitacion, 'reqinforme' => $this->reqinforme, 'reqpresupuesto' => $this->reqpresupuesto, 'cantpresupuesto' => $this->cantpresupuesto, 'cantcarta' => $this->cantcarta, 'reqcarta' => $this->reqcarta, 'proyecto' => $this->proyecto, 'id_odc' => $this->id_odc]);
     $query->andFilterWhere(['like', 'observaciones', $this->observaciones])->andFilterWhere(['like', 'concepto', $this->concepto])->andFilterWhere(['like', 'motivo', $this->motivo])->andFilterWhere(['like', 'hora_crea', $this->hora_crea])->andFilterWhere(['like', 'horareverso', $this->horareverso])->andFilterWhere(['like', 'descripcionproyecto', $this->descripcionproyecto])->andFilterWhere(['like', 'tentrega', $this->tentrega])->andFilterWhere(['like', 'observacion', $this->observacion]);
     return $dataProvider;
 }
 /**
  * Envía la información del documento consultado hacia la vista y crea un nuevo ajuste de acuerdo a las opciones. 
  * @return type
  * @throws CHttpException
  */
 public function actionCargarDocumento()
 {
     //    if (\Yii::$app->request->isAjax) {
     // para la Validación de usuario
     if (true) {
         //      \Yii::$app->response->format = \yii\console\Response::FORMAT_JSON;
         $documento = \Yii::$app->request->post('documento');
         $tipoMovimiento = \Yii::$app->request->post('tipoMovimiento');
         $tipoAjuste = \Yii::$app->request->post('tipoAjuste');
         if (\Yii::$app->request->post('OrdenCompra')) {
             $ordenCompra = \app\modules\siap\models\OrdenCompra::find()->where(['idordencompra' => $documento])->one();
             $ajuste = new \app\modules\siap\models\Ajustes();
             // Validar datos
             // Fecha
             // Cargar datos al modelo
             $atributos = ['id_tipo_ajuste' => 1, 'fecha_ajuste' => date('Y-m-d'), 'id_usuario_crea' => 1, 'idefiscal' => $ordenCompra->idefiscal, 'concepto' => $ordenCompra->fecha . ' cambia a ' . \Yii::$app->request->post('Ajustes')['fecha_ajuste'], 'observacion' => \Yii::$app->request->post('Ajustes')['observacion'], 'reversado' => '0'];
             $ajuste->setAttributes($atributos);
             // Guardar el ajuste
             $ajuste->save();
             return $this->render('create', ['model' => new \app\modules\siap\models\Ajustes()]);
         }
         switch ($tipoMovimiento) {
             case 5:
                 //ORDEN DE COMPRA
                 $ordenCompra = \app\modules\siap\models\OrdenCompra::find()->where(['idordencompra' => $documento])->one();
                 if ($ordenCompra) {
                     if ($ordenCompra->status != 2) {
                         return json_encode(['success' => false, 'mensaje' => 'La orden de compra no ha sido imputada.']);
                     }
                     $proveedor = \app\modules\siap\models\Proveedor::findOne($ordenCompra->idproveedor);
                     $provider = new \yii\data\ActiveDataProvider(['query' => \app\modules\siap\models\OrdenCompraDetalleSearch::find()->where('idordencompra = ' . $ordenCompra->idordencompra)]);
                     $unidadSolicitante = \app\modules\siap\models\Coordinacion::findOne($ordenCompra->idcordinacion);
                     $render = $this->renderFile(Yii::$app->basePath . '/views/ajustes/_ordenCompra.php', ['ordenCompra' => $ordenCompra, 'proveedor' => $proveedor, 'provider' => $provider, 'tipoModificacion' => $tipoAjuste, 'unidadSolicitante' => $unidadSolicitante]);
                     return json_encode(['success' => true, 'mensaje' => 'Orden de pago cargada con éxito.', 'html' => $render]);
                 } else {
                     return json_encode(['success' => false, 'mensaje' => 'No se consiguió la Orden de Compra.']);
                 }
                 break;
             case 6:
                 //ORDEN DE PAGO
                 return json_encode(['success' => true, 'mensaje' => 's']);
                 break;
             case 11:
                 //ORDEN DE SERVICIO
                 return json_encode(['success' => true, 'mensaje' => 's']);
                 break;
             case 12:
                 //PAGO DIRECTO
                 return json_encode(['success' => true, 'mensaje' => 's']);
                 break;
             case 13:
                 //PAGO DE NOMINA
                 return json_encode(['success' => true, 'mensaje' => 's']);
                 break;
             case 20:
                 //PAGADO
                 return json_encode(['success' => true, 'mensaje' => 's']);
                 break;
             default:
                 return json_encode(['success' => false, 'mensaje' => 'Disculpe, por ahora no esta disponible la edicion de este tipo de documentos.']);
                 break;
         }
     } else {
         throw new CHttpException(403, "Usted no se encuentra autorizado para realizar esta accion");
     }
 }