From d956dd9a79d3fafc2d3b7b1391e4a01b9635c71a Mon Sep 17 00:00:00 2001 From: Leonardo Date: Sat, 13 Aug 2016 16:22:21 -0300 Subject: [PATCH] finalizado CRUD nos produtos --- GeradorNF/GeradorNF.DAO/AbstractCrud.cs | 3 +- GeradorNF/GeradorNF.DAO/ClienteDAO.cs | 54 +++++++++ GeradorNF/GeradorNF.DAO/GeradorNF.DAO.csproj | 1 + GeradorNF/GeradorNF.Model/Destinatario.cs | 4 +- GeradorNF/GeradorNF.Model/Emitente.cs | 4 +- GeradorNF/GeradorNF.Model/Produto.cs | 4 +- GeradorNF/GeradorNF.Model/Transportador.cs | 4 +- GeradorNF/GeradorNF.UI/GeradorNF.UI.csproj | 1 + GeradorNF/GeradorNF.UI/MyGlobals.cs | 14 +++ .../GeradorNF.UI/frmEmitente.Designer.cs | 7 +- GeradorNF/GeradorNF.UI/frmEmitente.cs | 6 + GeradorNF/GeradorNF.UI/frmProduto.Designer.cs | 9 +- GeradorNF/GeradorNF.UI/frmProduto.cs | 113 +++++++++++++++--- GeradorNF/GeradorNF.UI/frmTransporador.cs | 1 + 14 files changed, 190 insertions(+), 35 deletions(-) create mode 100644 GeradorNF/GeradorNF.DAO/ClienteDAO.cs create mode 100644 GeradorNF/GeradorNF.UI/MyGlobals.cs diff --git a/GeradorNF/GeradorNF.DAO/AbstractCrud.cs b/GeradorNF/GeradorNF.DAO/AbstractCrud.cs index 4bbcffa..2df68df 100644 --- a/GeradorNF/GeradorNF.DAO/AbstractCrud.cs +++ b/GeradorNF/GeradorNF.DAO/AbstractCrud.cs @@ -26,11 +26,10 @@ public static async Task> GetAll(string entityURL) where E: class return Newtonsoft.Json.JsonConvert.DeserializeObject>(json).ToList(); } else - return null; + throw new Exception(response.RequestMessage.ToString()); } } - public static async Task Add(E entity, string entityURL) where E : class { using (var client = new HttpClient()) diff --git a/GeradorNF/GeradorNF.DAO/ClienteDAO.cs b/GeradorNF/GeradorNF.DAO/ClienteDAO.cs new file mode 100644 index 0000000..c9d480a --- /dev/null +++ b/GeradorNF/GeradorNF.DAO/ClienteDAO.cs @@ -0,0 +1,54 @@ +using GeradorNF.Model; +using Newtonsoft.Json; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Net.Http; +using System.Net.Http.Headers; +using System.Text; +using System.Threading.Tasks; + +namespace GeradorNF.DAO +{ + public class ClienteDAO + { + /// + /// GetCliente - Buscar/Listar TODOS os Emitentes + /// + /// + public static async Task GetClienteByIdDAO(string nomeUsuario) + { + try + { + using (var client = new HttpClient()) + { + client.BaseAddress = new Uri(UtilDAO.UrlApi()); + client.DefaultRequestHeaders.Accept.Clear(); + client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); + + HttpResponseMessage response = await client.GetAsync("cliente/" + nomeUsuario); + + if (response.IsSuccessStatusCode) + { + string json = await response.Content.ReadAsStringAsync(); + return Newtonsoft.Json.JsonConvert.DeserializeObject(json); + } + else + throw new Exception(response.RequestMessage.ToString()); + } + } + catch (JsonException ex) + { + throw new Exception("JsonException - Não foi possivel buscar o cliente. Erro: " + ex.Message); + } + catch (HttpRequestException ex) + { + throw new Exception("HttpRequestException - Não foi possivel buscar o cliente. Erro: " + ex.Message); + } + catch (Exception ex) + { + throw new Exception("Exception - Não foi possivel buscar os Emitentes. Erro: " + ex.Message); + } + } + } +} diff --git a/GeradorNF/GeradorNF.DAO/GeradorNF.DAO.csproj b/GeradorNF/GeradorNF.DAO/GeradorNF.DAO.csproj index 4e4469d..8ab1b3c 100644 --- a/GeradorNF/GeradorNF.DAO/GeradorNF.DAO.csproj +++ b/GeradorNF/GeradorNF.DAO/GeradorNF.DAO.csproj @@ -49,6 +49,7 @@ + diff --git a/GeradorNF/GeradorNF.Model/Destinatario.cs b/GeradorNF/GeradorNF.Model/Destinatario.cs index 1efd926..184743f 100644 --- a/GeradorNF/GeradorNF.Model/Destinatario.cs +++ b/GeradorNF/GeradorNF.Model/Destinatario.cs @@ -60,7 +60,7 @@ public class Destinatario [JsonProperty("data_cadastro")] public DateTime DataCadastro { get; set; } - [JsonProperty("cliente_id")] - public Cliente Cliente { get; set; } + [JsonProperty("cliente")] + public string Cliente { get; set; } } } diff --git a/GeradorNF/GeradorNF.Model/Emitente.cs b/GeradorNF/GeradorNF.Model/Emitente.cs index dffcdc2..ab9dd75 100644 --- a/GeradorNF/GeradorNF.Model/Emitente.cs +++ b/GeradorNF/GeradorNF.Model/Emitente.cs @@ -66,7 +66,7 @@ public class Emitente [JsonProperty("data_cadastro")] public DateTime DataCadastro { get; set; } - [JsonProperty("cliente_id")] - public Cliente Cliente { get; set; } + [JsonProperty("cliente")] + public string Cliente { get; set; } } } diff --git a/GeradorNF/GeradorNF.Model/Produto.cs b/GeradorNF/GeradorNF.Model/Produto.cs index d250933..fbd4039 100644 --- a/GeradorNF/GeradorNF.Model/Produto.cs +++ b/GeradorNF/GeradorNF.Model/Produto.cs @@ -33,7 +33,7 @@ public class Produto [JsonProperty("data_cadastro")] public DateTime DataCadastro { get; set; } - [JsonProperty("cliente_id")] - public Cliente Cliente { get; set; } + [JsonProperty("cliente")] + public string Cliente { get; set; } } } diff --git a/GeradorNF/GeradorNF.Model/Transportador.cs b/GeradorNF/GeradorNF.Model/Transportador.cs index 4ced3d8..cbd05be 100644 --- a/GeradorNF/GeradorNF.Model/Transportador.cs +++ b/GeradorNF/GeradorNF.Model/Transportador.cs @@ -42,7 +42,7 @@ public class Transportador [JsonProperty("data_cadastro")] public DateTime DataCadastro { get; set; } - [JsonProperty("cliente_id")] - public Cliente Cliente { get; set; } + [JsonProperty("cliente")] + public string Cliente { get; set; } } } diff --git a/GeradorNF/GeradorNF.UI/GeradorNF.UI.csproj b/GeradorNF/GeradorNF.UI/GeradorNF.UI.csproj index 51d2097..3a03f44 100644 --- a/GeradorNF/GeradorNF.UI/GeradorNF.UI.csproj +++ b/GeradorNF/GeradorNF.UI/GeradorNF.UI.csproj @@ -92,6 +92,7 @@ frmTransporador.cs + diff --git a/GeradorNF/GeradorNF.UI/MyGlobals.cs b/GeradorNF/GeradorNF.UI/MyGlobals.cs new file mode 100644 index 0000000..8d08f0a --- /dev/null +++ b/GeradorNF/GeradorNF.UI/MyGlobals.cs @@ -0,0 +1,14 @@ +using GeradorNF.Model; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace GeradorNF.UI +{ + public static class MyGlobals + { + public static string Cliente = "https://geradornf-prod.herokuapp.com/cliente/1/"; //hardcode - Tirar + } +} diff --git a/GeradorNF/GeradorNF.UI/frmEmitente.Designer.cs b/GeradorNF/GeradorNF.UI/frmEmitente.Designer.cs index cb2af62..5d2885b 100644 --- a/GeradorNF/GeradorNF.UI/frmEmitente.Designer.cs +++ b/GeradorNF/GeradorNF.UI/frmEmitente.Designer.cs @@ -28,7 +28,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); this.groupBox1 = new System.Windows.Forms.GroupBox(); this.txtIdEmitente = new System.Windows.Forms.TextBox(); this.lblIdEmitente = new System.Windows.Forms.Label(); @@ -369,6 +369,7 @@ private void InitializeComponent() this.btnFiltro.TabIndex = 62; this.btnFiltro.Text = "Filtrar"; this.btnFiltro.UseVisualStyleBackColor = true; + this.btnFiltro.Click += new System.EventHandler(this.btnFiltro_Click); // // btnExcluir // @@ -424,8 +425,8 @@ private void InitializeComponent() this.dataGridEmitente.AllowUserToDeleteRows = false; this.dataGridEmitente.AllowUserToOrderColumns = true; this.dataGridEmitente.AllowUserToResizeRows = false; - dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.dataGridEmitente.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.dataGridEmitente.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle1; this.dataGridEmitente.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); diff --git a/GeradorNF/GeradorNF.UI/frmEmitente.cs b/GeradorNF/GeradorNF.UI/frmEmitente.cs index d69b6b2..52e2000 100644 --- a/GeradorNF/GeradorNF.UI/frmEmitente.cs +++ b/GeradorNF/GeradorNF.UI/frmEmitente.cs @@ -157,6 +157,7 @@ private async void SetEmitente(Enuns.TipoCrud tipoCrud) emitente.Logradouro = txtEndereco.Text; emitente.NumeroCasa = txtNumero.Text; emitente.UF = txtEstado.Text; + emitente.Cliente = MyGlobals.Cliente; #endregion HttpResponseMessage response = new HttpResponseMessage(); @@ -329,5 +330,10 @@ private void btnEditar_Click(object sender, EventArgs e) lblAcao.Text = "editar"; txtNomeRazao.Focus(); } + + private void btnFiltro_Click(object sender, EventArgs e) + { + + } } } \ No newline at end of file diff --git a/GeradorNF/GeradorNF.UI/frmProduto.Designer.cs b/GeradorNF/GeradorNF.UI/frmProduto.Designer.cs index 16418b0..aee827f 100644 --- a/GeradorNF/GeradorNF.UI/frmProduto.Designer.cs +++ b/GeradorNF/GeradorNF.UI/frmProduto.Designer.cs @@ -28,7 +28,7 @@ protected override void Dispose(bool disposing) /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); this.btnEditar = new System.Windows.Forms.Button(); this.txtUnidade = new System.Windows.Forms.MaskedTextBox(); this.txtValorUnitario = new System.Windows.Forms.TextBox(); @@ -67,6 +67,7 @@ private void InitializeComponent() this.btnEditar.TabIndex = 62; this.btnEditar.Text = "Editar"; this.btnEditar.UseVisualStyleBackColor = true; + this.btnEditar.Click += new System.EventHandler(this.btnEditar_Click); // // txtUnidade // @@ -145,8 +146,8 @@ private void InitializeComponent() this.dataGridProduto.AllowUserToDeleteRows = false; this.dataGridProduto.AllowUserToOrderColumns = true; this.dataGridProduto.AllowUserToResizeRows = false; - dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); - this.dataGridProduto.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle5; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(255)))), ((int)(((byte)(192))))); + this.dataGridProduto.AlternatingRowsDefaultCellStyle = dataGridViewCellStyle2; this.dataGridProduto.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); @@ -157,6 +158,7 @@ private void InitializeComponent() this.dataGridProduto.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; this.dataGridProduto.Size = new System.Drawing.Size(474, 220); this.dataGridProduto.TabIndex = 64; + this.dataGridProduto.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridProduto_CellClick); // // btnSalvar // @@ -276,6 +278,7 @@ private void InitializeComponent() this.btnExcluir.TabIndex = 63; this.btnExcluir.Text = "Excluir"; this.btnExcluir.UseVisualStyleBackColor = true; + this.btnExcluir.Click += new System.EventHandler(this.btnExcluir_Click); // // groupBox1 // diff --git a/GeradorNF/GeradorNF.UI/frmProduto.cs b/GeradorNF/GeradorNF.UI/frmProduto.cs index 950325c..fb5cad2 100644 --- a/GeradorNF/GeradorNF.UI/frmProduto.cs +++ b/GeradorNF/GeradorNF.UI/frmProduto.cs @@ -65,7 +65,7 @@ private void VerificaSePrimeiroRegistro() private bool VerificarCamposObrigatorios() { - bool _return; + bool _return = true; if (string.IsNullOrEmpty(txtValorUnitario.Text)) { @@ -77,14 +77,29 @@ private bool VerificarCamposObrigatorios() _return = false; MessageBox.Show("Decrição do produto é obrigatório ou é menor que 3 caracteres!"); } - else if (Convert.ToDecimal(txtValorUnitario.Text) <= 0) + else if (txtValorUnitario.Text != string.Empty) { - _return = false; - MessageBox.Show("Valor unitário não pode ser zero ou negativo."); - } - else - { - _return = true; + try + { + decimal valorUnitario = Convert.ToDecimal(txtValorUnitario.Text); + + if (valorUnitario <= 0) + { + MessageBox.Show("Valor unitário não pode ser zero ou negativo."); + _return = false; + } + } + catch (FormatException ex) + { + MessageBox.Show("Verifique se digitou numeros válidos no campo Valor Unitario!", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); + txtValorUnitario.Focus(); + _return = false; + } + catch(Exception ex) + { + _return = false; + MessageBox.Show("Erro: " + ex.Message); + } } return _return; @@ -106,6 +121,7 @@ private async void SetProduto(Enuns.TipoCrud tipoCrud) produto.NCM = Convert.ToInt32(txtNCM.Text); produto.Unidade = txtUnidade.Text; produto.ValorUnitario = Convert.ToDecimal(txtValorUnitario.Text); + produto.Cliente = MyGlobals.Cliente; #endregion @@ -125,17 +141,36 @@ private async void SetProduto(Enuns.TipoCrud tipoCrud) } } - //else if (tipoCrud.Equals(Enuns.TipoCrud.update)) - //{ - // produto.ProdutoId = int.Parse(txtIdProduto.Text); - // ProdutoBLL.AtualizarProduto(produto); - - //} - //else if (tipoCrud.Equals(Enuns.TipoCrud.delete)) - //{ - // produto.ProdutoId = int.Parse(txtIdProduto.Text); - // ProdutoBLL.ExcluirProduto(produto); - //} + else if (tipoCrud.Equals(Enuns.TipoCrud.update)) + { + + produto.Id = int.Parse(txtIdProduto.Text); + response = await ProdutoBLL.AtualizarProdutoBLL(produto); + + if (response.IsSuccessStatusCode) + { + MessageBox.Show("Produto " + mensagemCrud + " com sucesso!", "Produto", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + MessageBox.Show("Ocorreu um erro ao " + mensagemException + " o produto! \nErro: " + response.RequestMessage, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + + } + else if (tipoCrud.Equals(Enuns.TipoCrud.delete)) + { + produto.Id = int.Parse(txtIdProduto.Text); + response = await ProdutoBLL.DeletarProdutoBLL(produto.Id); + + if (response.IsSuccessStatusCode) + { + MessageBox.Show("Produto " + mensagemCrud + " com sucesso!", "Produto", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); + } + else + { + MessageBox.Show("Ocorreu um erro ao " + mensagemException + " o produto! \nErro: " + response.RequestMessage, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } else { MessageBox.Show("Erro ao fazer operação no Produto"); @@ -174,5 +209,45 @@ private void frmProduto_Load(object sender, EventArgs e) { PreencherGrid(); } + + private void btnEditar_Click(object sender, EventArgs e) + { + btnSalvar.Enabled = true; + DesbloquearCampos(true); + lblAcao.Text = "Editar"; + txtDescricao.Focus(); + } + + private void dataGridProduto_CellClick(object sender, DataGridViewCellEventArgs e) + { + + txtIdProduto.Text = dataGridProduto[0, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtCFOP.Text = dataGridProduto[1, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtEAN.Text = dataGridProduto[2, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtNCM.Text = dataGridProduto[3, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtDescricao.Text = dataGridProduto[4, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtUnidade.Text = dataGridProduto[5, dataGridProduto.CurrentRow.Index].Value.ToString(); + txtValorUnitario.Text = dataGridProduto[6, dataGridProduto.CurrentRow.Index].Value.ToString(); + + btnEditar.Enabled = true; + btnExcluir.Enabled = true; + + DesbloquearCampos(false); + } + + private void btnExcluir_Click(object sender, EventArgs e) + { + try + { + if (MessageBox.Show("Deseja excluir esse Produto?", "Exluir", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) + { + SetProduto(Enuns.TipoCrud.delete); + } + } + catch (Exception ex) + { + MessageBox.Show("Erro ao excluir: Erro " + ex.Message, "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); + } + } } } diff --git a/GeradorNF/GeradorNF.UI/frmTransporador.cs b/GeradorNF/GeradorNF.UI/frmTransporador.cs index 119cdc4..f2af7fe 100644 --- a/GeradorNF/GeradorNF.UI/frmTransporador.cs +++ b/GeradorNF/GeradorNF.UI/frmTransporador.cs @@ -73,6 +73,7 @@ private async void SetTranportadora(Enuns.TipoCrud tipoCrud) transportador.NomeRazao = txtNomeRazao.Text; transportador.UF = txtEstado.Text; transportador.CEP = txtCEP.Text; + transportador.Cliente = MyGlobals.Cliente; #endregion