I am trying to load 3 methods inside the ionViewDidEnter but always the first method after this.carregacarrinho() does not run. Why ?
ionViewDidEnter() {
this.carregaCarrinho()
.then((data) => {
console.log("ok");
}, (error) => {
this.database.presentToast("Não foi possível carregar o carrinho");
})
this.database.buscaTipoeCliente()
.then((data) => {
this.tipovenda = data[0].tipovenda;
this.cliente = data[0].cliente;
this.codigo = data[0].codigo;
this.database.presentToast(this.tipovenda);
this.database.presentToast(this.cliente);
this.database.presentToast(this.codigo);
}, (error) => {
this.database.presentToast("Não possível carregar Condição de venda, cliente e código");
})
this.database.buscaUsuario()
.then((user) => {
this.usuario = user;
this.database.presentToast(this.usuario);
});
}
any error in console logs
Do I need to put these methods inside the constructor?
you can but it is not a issue i think
here my methods
this.carregacarrinho()
public carregaCarrinho(){
return new Promise((resolve, reject) => {
this.storage = new SQLite();
this.storage.openDatabase({name: "infosysDB.db", location: "default"})
.then(
(success) => {
this.storage.executeSql("SELECT * FROM carrinho", [])
.then(
(data) => {
this.itens = [];
this.totalqtd = [];
if(data.rows.length > 0){
this.valortotalorcamento = 0;
for(let i = 0; i < data.rows.length; i++){
this.codigo = data.rows.item(i)['codigo'];
this.item = data.rows.item(i)['item'];
this.valorvenda = data.rows.item(i)['valorvenda'];
this.valortotal = data.rows.item(i)['valortotal'];
this.estoque = data.rows.item(i)['estoque'];
this.quantidade = data.rows.item(i)['quantidade'];
this.valortotalorcamento += parseFloat(this.valortotal);
this.quantidadedeitens = parseInt(data.rows.length);
this.valortotalcdesc = this.valortotalorcamento;
this.objeto = {codigo: this.codigo, item: this.item, valorvenda: this.valorvenda, valortotal: this.valortotal, estoque: this.estoque, quantidade: this.quantidade}
this.itens.push(this.objeto);
}
if(this.tipo == "Percentual"){
this.desconto = (this.valortotalorcamento * this.valor) / 100;
this.desconto = Math.floor(this.desconto * 100) / 100;
this.desconto = this.desconto.toFixed(2);
this.valortotalcdesc = this.valortotalorcamento - this.desconto;
}else if(this.tipo == "Valor"){
this.desconto = this.valor;
this.desconto = Math.floor(this.desconto * 100) / 100;
this.desconto = this.desconto.toFixed(2);
this.valortotalcdesc = this.valortotalorcamento - this.desconto;
}else{
this.desconto = 0;
this.valor = 0;
}
resolve(data)
}else{
this.desconto = 0;
this.valor = 0;
this.valortotalorcamento = 0;
this.valortotalcdesc = 0;
this.database.presentToast("Nenhum item adicionado no carrinho");
}
},
(error) => {
reject(error);
this.database.presentToast("Não foi possível abrir a tabela." + error);
});
},
(error) => {
this.database.presentToast("Não foi possível abrir a base de dados." + error);
});
})
}
this.database.buscaTipoeCliente;
public buscaTipoeCliente(){
return new Promise((resolve, reject) => {
this.storage = new SQLite();
this.storage.openDatabase({name: "infosysDB.db", location: "default"})
.then(
(success) => {
this.storage.executeSql("SELECT * FROM preferencias", [])
.then((data) => {
if(data.rows.length > 0 ){
data = [{"tipovenda": data.rows.item(0)['tipo'], "cliente": data.rows.item(0)['cliente'], "codigo": data.rows.item(0)['codigo'] }]
resolve(data);
}else if(data.rows.length <= 0){
data = "avista";
}
},
(error) => {
reject(error)
this.presentToast("não foi possivel carregar a tabela preferencias.");
})
},
(error) => {
this.presentToast("Não foi possível abrir a base de dados!");
});
});
}
this.database.buscaUsuario()
public buscaUsuario(){
return new Promise((resolve, reject) => {
this.storage = new SQLite();
this.storage.openDatabase({name: "infosysDB.db", location: "default"})
.then(
(success) => {
this.storage.executeSql("SELECT * FROM usuarioapp", [])
.then(
(data) => {
if(data.rows.length >= 1 ){
data = data.rows.item(0)['codigo'];
resolve(data);
}else{
reject();
this.presentToast("Usuário não encontrado...");
return 0;
}
},
(error) => {
this.presentToast("Não possível carregar a tabela: USUARIOAPP!");
});
},
(error) => {
this.presentToast("Não foi possível abrir a base de dados!");
});
});
}
i solved it with:
ionViewDidEnter() {
this.carregaCarrinho()
.then((data) => {
return this.database.buscaTipoeCliente()
.then((data) => {
this.tipovenda = data[0].tipovenda;
this.cliente = data[0].cliente;
this.codigo = data[0].codigo;
this.database.presentToast(this.tipovenda);
this.database.presentToast(this.cliente);
this.database.presentToast(this.codigo);
this.database.buscaUsuario()
.then((user) => {
this.usuario = user;
this.database.presentToast(this.usuario);
});
}, (error) => {
this.database.presentToast("Não possível carregar Condição de venda, cliente e código");
})
}, (error) => {
this.database.presentToast("Não foi possível carregar o carrinho");
})
}