private void PopulaGridMedicamentosCronicos() { try { //dtgDadosMedicamentos.Columns[0].ReadOnly = false; btnIncluirDispensacao.Visible = true; ITENSESTOQUETableAdapter estoque = new ITENSESTOQUETableAdapter(); ViewItensMedicamentoUsuarioCronicoTableAdapter viewitens = new ViewItensMedicamentoUsuarioCronicoTableAdapter(); ITENSDISPENSACAOTableAdapter dispensacao = new ITENSDISPENSACAOTableAdapter(); dtgDadosMedicamentosDispensacao.Rows.Clear(); DataRow Linha; DataTable tabela = viewitens.RetornaDataTableMedicamentosUsuarioCronico(int.Parse(txIDReceitaDispencacao.Text)); dtgDadosMedicamentosDispensacao.Rows.Add(tabela.Rows.Count); for (int i = 0; i < tabela.Rows.Count; i++) { Linha = tabela.Rows[i]; int saldo = (int)estoque.RetornaQuantidadePorDescricao(Linha["DESCRICAO"].ToString()); int quantidade = int.Parse(Linha["QUANTIDADE"].ToString()); //fazer rotina para validar entrega no mes ***** dtgDadosMedicamentosDispensacao["MEDICAMENTO", i].Value = Linha["DESCRICAO"].ToString(); dtgDadosMedicamentosDispensacao["QUANTIDADE", i].Value = Linha["QUANTIDADE"].ToString(); dtgDadosMedicamentosDispensacao[0, i].Value = true; DataTable itensdispensacao = dispensacao.RetornaDatatableDataDispDescricaoQuantidade(int.Parse(txIDUsuario.Text), Linha["DESCRICAO"].ToString()); if (itensdispensacao.Rows.Count > 0) { for (int k = 0; k < itensdispensacao.Rows.Count; k++) { DateTime aux = (DateTime)itensdispensacao.Rows[k]["DATA"]; if (aux.Month == DateTime.Now.Month && aux.Year == DateTime.Now.Year) { MessageBox.Show("O paciente já recebeu o medicamento este mês, confira no histórico.\n" + Linha["DESCRICAO"].ToString()); dtgDadosMedicamentosDispensacao[0, i].ReadOnly = true; dtgDadosMedicamentosDispensacao[0, i].Value = null; dtgDadosMedicamentosDispensacao["QUANTIDADE", i].Value = 0; break; } } } else { if (saldo < quantidade) { if (saldo == 0) { MessageBox.Show("Não há saldo suficiente em estoque do medicamento: \n" + Linha["DESCRICAO"].ToString()); dtgDadosMedicamentosDispensacao[0, i].ReadOnly = true; dtgDadosMedicamentosDispensacao[0, i].Value = null; dtgDadosMedicamentosDispensacao["QUANTIDADE", i].Value = saldo; } else { MessageBox.Show("Saldo inferior do medicamento: \n" + Linha["DESCRICAO"].ToString()); dtgDadosMedicamentosDispensacao["QUANTIDADE", i].Value = saldo; } } } } for (int i = 0; i < dtgDadosMedicamentosDispensacao.Rows.Count; i++) { if (dtgDadosMedicamentosDispensacao[0, i].Value != null) { btnIncluirDispensacao.Enabled = true; break; } else { btnIncluirDispensacao.Enabled = false; txIDReceitaDispencacao.Text = ""; } } } catch (Exception err) { MessageBox.Show(err.Message); } }
private void btnIncluirDispensacao_Click(object sender, EventArgs e) { btnIncluirDispensacao.Enabled = false; int tipousuario = 2; if (RadioAgudo.Checked == true) tipousuario = 1; #region InsirDispensacaoAtualizarDispensacao try { DISPENSACAOTableAdapter dispensacao = new DISPENSACAOTableAdapter(); ITENSDISPENSACAOTableAdapter itensdispensacao = new ITENSDISPENSACAOTableAdapter(); ESTOQUETableAdapter estoque = new ESTOQUETableAdapter(); ITENSESTOQUETableAdapter _medicamento = new ITENSESTOQUETableAdapter(); int idDispensacao = 0; for (int i = 0; i < dtgDadosMedicamentosDispensacao.Rows.Count; i++) { bool tipo = Convert.ToBoolean(dtgDadosMedicamentosDispensacao[0, i].Value); if (tipo) { dispensacao.Insert(DateTime.Now, int.Parse(txIDUsuario.Text), tipousuario, IDFuncionario); idDispensacao = (int)dispensacao.RetornaIdDispensacao(); break; } } if (idDispensacao == 0) { btnIncluirDispensacao.Visible = false; MessageBox.Show("Não há itens selecionados para dispensação..."); } else { for (int i = 0; i < dtgDadosMedicamentosDispensacao.Rows.Count; i++) { bool tipo = Convert.ToBoolean(dtgDadosMedicamentosDispensacao[0, i].Value); if (tipo) { int iddescricao = (int)estoque.RetornaIDDescricaoPorDescricao(dtgDadosMedicamentosDispensacao[1, i].Value.ToString()); int idmedicamento = (int)_medicamento.RetornaIDPorDescricaoID(iddescricao); int quantidade = int.Parse(dtgDadosMedicamentosDispensacao[2, i].Value.ToString()); itensdispensacao.Insert(idDispensacao, iddescricao, idmedicamento, quantidade); int estoqueAtualizado = (int)_medicamento.RetornaQuantidadePorIdMedicamento(idmedicamento) - quantidade; _medicamento.AtualizaEstoquePorIdItemEstoque(estoqueAtualizado, idmedicamento); } } if (!txIDReceitaDispencacao.Text.Equals("")) { DISPENSACAOCRONICOTableAdapter dispensacronico = new DISPENSACAOCRONICOTableAdapter(); int idcronico = int.Parse(txIDReceitaDispencacao.Text); dispensacronico.Insert(idcronico, DateTime.Now, idDispensacao); } DialogResult resultado = MessageBox.Show("Medicamento entreguem com sucesso!\n\nClique em SIM para nova dispensação...", "Aviso",MessageBoxButtons.YesNo,MessageBoxIcon.Information); if (resultado == System.Windows.Forms.DialogResult.Yes) { btnLimpar_Click(sender, e); } } } #endregion catch (Exception err) { MessageBox.Show(err.Message); } }