-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathprodutos.component.ts
108 lines (95 loc) · 3.24 KB
/
produtos.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
import { Component, OnInit } from '@angular/core';
import { Produto } from '../produto';
import { FormBuilder, Validators } from '@angular/forms';
import { ProdutoService } from '../produto.service';
@Component({
selector: 'app-produtos',
templateUrl: './produtos.component.html',
styleUrls: ['./produtos.component.css']
})
export class ProdutosComponent implements OnInit {
registroSalvo = false;
produtoForm: any;
allProdutos: Produto[];
idProdutoAtualizado = null;
mensagem = null;
usuario: any;
constructor(private formBuilder: FormBuilder, private produtoService: ProdutoService) { }
ngOnInit() {
this.usuario = JSON.parse(sessionStorage.getItem('usuario'));
this.produtoForm = this.formBuilder.group({
Nome: ['', [Validators.required]],
DataCriacao: ['', [Validators.required]],
Tipo: ['', [Validators.required]],
EmEstoque: ['', [Validators.required]],
Reservado: ['', [Validators.required]],
Disponivel: ['', [Validators.required]],
});
this.GetAllProdutos();
}
GetAllProdutos() {
this.produtoService.GetAll().subscribe(result => { this.allProdutos = result; },
error => console.log(error));
}
CarregarProduto(id: number) {
this.produtoService.getProdutosById(id).subscribe(result => {
this.mensagem = null;
this.registroSalvo = false;
this.idProdutoAtualizado = result.id;
this.produtoForm.controls['Nome'].setValue(result.nome);
this.produtoForm.controls['DataCriacao'].setValue(result.dataCriacao);
this.produtoForm.controls['Tipo'].setValue(result.tipo);
this.produtoForm.controls['EmEstoque'].setValue(result.emEstoque);
this.produtoForm.controls['Reservado'].setValue(result.reservado);
this.produtoForm.controls['Disponivel'].setValue(result.disponivel);
})
}
SalvarProduto(produto: Produto) {
if (this.idProdutoAtualizado == null) {
this.produtoService.createProduto(produto).subscribe(
() => {
this.registroSalvo = true;
this.mensagem = 'Produto inserido com sucesso';
this.GetAllProdutos();
this.idProdutoAtualizado = null;
this.produtoForm.reset();
}
);
}
else {
this.produtoService.updateProduto(produto).subscribe(
() => {
this.registroSalvo = true;
this.mensagem = "Produto atualizado com sucesso";
this.GetAllProdutos();
this.idProdutoAtualizado = null;
this.produtoForm.reset();
}
);
}
}
DeletarProduto(id: number) {
if (confirm("Essa operação é irreversível. Tem certeza que deseja continuar?")) {
this.produtoService.deleteProduto(id).subscribe(
() => {
this.registroSalvo = true;
this.mensagem = "Produto excluído com sucesso";
this.GetAllProdutos();
this.idProdutoAtualizado = true;
this.produtoForm.reset();
}
);
}
}
onFormSubmit() {
this.registroSalvo = false;
const produto = this.produtoForm.value;
this.SalvarProduto(produto);
this.produtoForm.reset();
}
resetForm() {
this.produtoForm.reset();
this.mensagem = null;
this.registroSalvo = false;
}
}