private void afterAltera() { if (bsMedicao.Current != null) { using (TFMedicaoTanque fMed = new TFMedicaoTanque()) { fMed.rMedicao = bsMedicao.Current as CamadaDados.PostoCombustivel.TRegistro_MedicaoTanque; if (fMed.ShowDialog() == DialogResult.OK) { if (fMed.rMedicao != null) { try { CamadaNegocio.PostoCombustivel.TCN_MedicaoTanque.Gravar(fMed.rMedicao, null); MessageBox.Show("Aferição alterada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } this.LimparFiltros(); id_medicao.Text = fMed.rMedicao.Id_medicaostr; this.afterBusca(); } } }
private void afterNovo() { using (TFMedicaoTanque fMedicao = new TFMedicaoTanque()) { if (fMedicao.ShowDialog() == DialogResult.OK) { if (fMedicao.rMedicao != null) { try { if (new CamadaDados.PostoCombustivel.Cadastros.TCD_CfgPosto().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.cd_empresa", vOperador = "=", vVL_Busca = "'" + fMedicao.rMedicao.Cd_empresa.Trim() + "'" }, new Utils.TpBusca() { vNM_Campo = "isnull(a.st_afericaoajustaest, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "1") != null) { decimal estoque = decimal.Zero; decimal vlmedio = decimal.Zero; //busca local de armazenamento do combustivel do tanque object ob = new CamadaDados.PostoCombustivel.Cadastros.TCD_TanqueCombustivel().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "a.id_tanque", vOperador = "=", vVL_Busca = fMedicao.rMedicao.Id_tanquestr } }, "a.cd_local"); // busca a qtd de estoque if (ob != null) { estoque = CamadaNegocio.Estoque.TCN_LanEstoque.Busca_Saldo_Local(fMedicao.rMedicao.Cd_funcionario, fMedicao.rMedicao.Cd_combustivel, ob.ToString(), null); } if (fMedicao.rMedicao.Qtd_combustivel != estoque) { if (MessageBox.Show("Saldo estoque fisico diferente da medição do tanque.\r\n" + $"Saldo fisico atual:{estoque.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true))}\r\n" + $"Quantidade Medição:{fMedicao.rMedicao.Qtd_combustivel.ToString("N3", new System.Globalization.CultureInfo("pt-BR", true))}\r\n" + (estoque > fMedicao.rMedicao.Qtd_combustivel ? "Saida:" + (estoque - fMedicao.rMedicao.Qtd_combustivel).ToString("N3", new System.Globalization.CultureInfo("pt-BR", true)) : "Entrada:" + (fMedicao.rMedicao.Qtd_combustivel - estoque).ToString("N3", new System.Globalization.CultureInfo("pt-BR", true))) + "\r\n" + "Ajustar saldo estoque fisico?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { //busca vl medio vlmedio = CamadaNegocio.Estoque.TCN_LanEstoque.Valor_Medio_Est_Produto(fMedicao.rMedicao.Cd_empresa, fMedicao.rMedicao.Cd_combustivel, null); fMedicao.rMedicao.rEstoque = new CamadaDados.Estoque.TRegistro_LanEstoque(); fMedicao.rMedicao.rEstoque.Cd_empresa = fMedicao.rMedicao.Cd_empresa; fMedicao.rMedicao.rEstoque.Cd_produto = fMedicao.rMedicao.Cd_combustivel; fMedicao.rMedicao.rEstoque.Vl_medioestoque = vlmedio; fMedicao.rMedicao.rEstoque.Cd_local = ob.ToString(); fMedicao.rMedicao.rEstoque.Dt_lancto = CamadaDados.UtilData.Data_Servidor(); fMedicao.rMedicao.rEstoque.St_registro = "A"; fMedicao.rMedicao.rEstoque.Tp_lancto = "M"; if (estoque < fMedicao.rMedicao.Qtd_combustivel) { fMedicao.rMedicao.rEstoque.Tp_movimento = "E"; fMedicao.rMedicao.rEstoque.Qtd_entrada = Math.Round(fMedicao.rMedicao.Qtd_combustivel - estoque, 3, MidpointRounding.AwayFromZero); fMedicao.rMedicao.rEstoque.Vl_subtotal = Math.Round(Math.Round(fMedicao.rMedicao.Qtd_combustivel - estoque, 3, MidpointRounding.AwayFromZero) * vlmedio, 2, MidpointRounding.AwayFromZero); } else { fMedicao.rMedicao.rEstoque.Tp_movimento = "S"; fMedicao.rMedicao.rEstoque.Qtd_saida = Math.Round(estoque - fMedicao.rMedicao.Qtd_combustivel, 3, MidpointRounding.AwayFromZero); fMedicao.rMedicao.rEstoque.Vl_subtotal = Math.Round(Math.Round(estoque - fMedicao.rMedicao.Qtd_combustivel, 3, MidpointRounding.AwayFromZero) * vlmedio, 2, MidpointRounding.AwayFromZero); } fMedicao.rMedicao.rEstoque.Vl_unitario = vlmedio; } } } CamadaNegocio.PostoCombustivel.TCN_MedicaoTanque.Gravar(fMedicao.rMedicao, null); MessageBox.Show("Aferição gravada com sucesso.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); id_medicao.Text = fMedicao.rMedicao.Id_medicaostr; LimparFiltros(); afterBusca(); } catch (Exception ex) { MessageBox.Show(ex.Message.Trim(), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error); } } } } }