/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = SageFornecedor::find(); $dataProvider = new ActiveDataProvider(['query' => $query]); $this->load($params); if (!$this->validate()) { // uncomment the following line if you do not want to return any records when validation fails // $query->where('0=1'); return $dataProvider; } $query->andFilterWhere(['id' => $this->id]); $query->andFilterWhere(['like', 'nome', $this->nome])->andFilterWhere(['like', 'endereco', $this->endereco])->andFilterWhere(['like', 'contato', $this->contato]); return $dataProvider; }
private function ConverterCSV($file) { $erros = NULL; $file_path = \Yii::getAlias('@upload') . $file; $file_handle = fopen($file_path, "r"); $result = []; $out[] = []; if ($file_handle !== FALSE) { $column_headers = fgetcsv($file_handle, '', ";"); $count_sub = 2; foreach ($column_headers as $setheader) { $setheader = $this->r_char(strtolower($setheader), TRUE); if (array_key_exists($setheader, $result)) { $result[$setheader . '_' . $count_sub] = array(); $count_sub++; } else { $result[$setheader] = array(); } } $_cabecalho = 0; while (!feof($file_handle)) { $data = fgetcsv($file_handle, '', ";"); if (!empty($data)) { $i = 0; foreach ($result as $column => $key) { $out[$_cabecalho][$column] = $data[$i]; $i++; } } $_cabecalho++; } fclose($file_handle); } if ($out != NULL) { if (is_array($out)) { foreach ($out as $outs) { $produto_model = new SageProduto(); $subcategoria = SageSubcategoria::find()->innerJoinWith('idCategoria', true)->where(['sage_categoria.nome' => $outs['categoria_2'], 'sage_subcategoria.nome' => $outs['categoria']])->one(); if ($subcategoria != NULL) { $produto_model->id_subcategoria1 = $subcategoria->id; } else { $subcategoria1_1 = new SageSubcategoria(); $subcategoria1_2 = new SageCategoria(); $subcategoria1_2->nome = $outs['categoria']; if ($subcategoria1_2->save()) { $subcategoria1_1->nome = $outs['categoria2']; $subcategoria1_1->id_categoria = $subcategoria1_2->primaryKey; if ($subcategoria1_1->save()) { $produto_model->id_subcategoria1 = $subcategoria1_1->primaryKey; } } } $produto_model->unidade = $outs['unidade']; $produto_model->descricao = $outs['descricao']; $produto_model->identificacao = $outs['identificacao']; $custo = str_replace(".", "", $outs['custo']); $custo = str_replace(",", ".", $custo); $produto_model->custo = $custo; $preco1 = str_replace(".", "", $outs['preco_de_venda_1']); $preco1 = str_replace(",", ".", $preco1); $produto_model->preco_venda1 = $preco1; $produto_model->observacoes = $outs['observacoes']; //fornecedor if ($outs['fornecedor'] == "") { $produto_model->id_fornecedor = 1; } else { $fornecedor_model = SageFornecedor::find()->where(['nome' => $outs['fornecedor']])->one(); if ($fornecedor_model != NULL) { $produto_model->id_fornecedor = $fornecedor_model->id; } else { $fornecedor_model = new SageForenecedor(); $fornecedor_model->nome = $outs['fornecedor']; //$fornecedor_model->save(false); //$id_fornecedor_model=$fornecedor_model->primaryKey; if ($id_fornecedor_model) { if ($fornecedor_model->save()) { $produto_model->id_fornecedor = $fornecedor_model->primaryKey; } } } } $produto_model->estoque = $outs['estoque']; $produto_model->codbarras = $outs['cod._barra']; $preco2 = str_replace(".", "", $outs['preco_de_venda_2']); $preco2 = str_replace(",", ".", $preco2); $produto_model->preco_venda2 = $preco2; $preco3 = str_replace(".", "", $outs['preco_de_venda_3']); $preco3 = str_replace(",", ".", $preco3); $produto_model->preco_venda3 = $preco3; $produto_model->estoque_minimo = $outs['estoque_minimo']; $produto_model->estoque_maximo = $outs['estoque_maximo']; $produto_model->estoque_compra = $outs['estoque_compra']; $produto_model->fator_unidade_venda = $outs['fator_unid._de_venda']; $produto_model->ncm = $outs['ncm']; $produto_model->marca = $outs['marca']; $produto_model->peso = $outs['peso']; $produto_model->tamanho = $outs['tamanho']; $produto_model->inativo = $outs['inativo']; $produto_model->tipo = $outs['tipo']; $subcategoria2 = SageSubcategoria::find()->innerJoinWith('idCategoria', true)->where(['sage_categoria.nome' => $outs['categoria_3'], 'sage_subcategoria.nome' => $outs['categoria_4']])->one(); if ($subcategoria2 != NULL) { $produto_model->id_subcategoria2 = $subcategoria2->id; } else { $subcategoria2_1 = new SageSubcategoria(); $subcategoria2_2 = new SageCategoria(); $subcategoria2_2->nome = $outs['categoria_3']; if ($subcategoria2_2->save()) { $subcategoria2_1->nome = $outs['categoria_4']; $subcategoria2_1->id_categoria = $subcategoria2_2->primaryKey; if ($subcategoria2_1->save()) { $produto_model->id_subcategoria2 = $subcategoria2_1->primaryKey; } } } $produto_model->composicao = $outs['composicao']; $produto_model->materia_prima = $outs['materia_prima']; $produto_model->paravenda = $outs['para_venda']; $produto_model->material_expediente = $outs['material_expediente']; $produto_model->moeda = $outs['moeda']; if ($produto_model->validate()) { $produto_model->save(); } else { $erros = $produto_model->getErrors(); } } //fim loop } // } return $erros; }