/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = SageProduto::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, 'id_subcategoria1' => $this->id_subcategoria1, 'custo' => $this->custo, 'preco_venda1' => $this->preco_venda1, 'id_fornecedor' => $this->id_fornecedor, 'estoque' => $this->estoque, 'preco_venda2' => $this->preco_venda2, 'preco_venda3' => $this->preco_venda3, 'estoque_minimo' => $this->estoque_minimo, 'estoque_maximo' => $this->estoque_maximo, 'estoque_compra' => $this->estoque_compra, 'ncm' => $this->ncm, 'tamanho' => $this->tamanho, 'inativo' => $this->inativo, 'tipo' => $this->tipo, 'id_subcategoria2' => $this->id_subcategoria2, 'paravenda' => $this->paravenda]); $query->andFilterWhere(['like', 'unidade', $this->unidade])->andFilterWhere(['like', 'descricao', $this->descricao])->andFilterWhere(['like', 'observacoes', $this->observacoes])->andFilterWhere(['like', 'codbarras', $this->codbarras])->andFilterWhere(['like', 'fator_unidade_venda', $this->fator_unidade_venda])->andFilterWhere(['like', 'marca', $this->marca])->andFilterWhere(['like', 'composicao', $this->composicao])->andFilterWhere(['like', 'materia_prima', $this->materia_prima])->andFilterWhere(['like', 'material_expediente', $this->material_expediente])->andFilterWhere(['like', 'moeda', $this->moeda]); 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; }
/** * @return \yii\db\ActiveQuery */ public function getSageProdutos() { return $this->hasMany(SageProduto::className(), ['id_fornecedor' => 'id']); }
/** * Finds the SageProduto model based on its primary key value. * If the model is not found, a 404 HTTP exception will be thrown. * @param string $id * @return SageProduto the loaded model * @throws NotFoundHttpException if the model cannot be found */ protected function findModel($id) { if (($model = SageProduto::findOne($id)) !== null) { return $model; } else { throw new NotFoundHttpException('The requested page does not exist.'); } }
/** * @return \yii\db\ActiveQuery */ public function getSageProdutos0() { return $this->hasMany(SageProduto::className(), ['id_subcategoria2' => 'id']); }