/**
  * 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;
 }
Esempio n. 3
0
 /**
  * @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.');
     }
 }
Esempio n. 5
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getSageProdutos0()
 {
     return $this->hasMany(SageProduto::className(), ['id_subcategoria2' => 'id']);
 }