private void txDescricao_KeyDown(object sender, KeyEventArgs e)
        {
            if (e.KeyCode == Keys.Enter)
            {
                try
                {
                    if (txDescricao.Text.Equals(""))
                    {
                        MessageBox.Show("Digite algo...");
                    }
                    else
                    {
                        if (TestaSeExisteDescricao())
                        {
                            txCodigoMedicamento.ReadOnly = true;
                            txDescricao.ReadOnly = true;
                            DataTable tabela = acessar.Estoque_RetornaPorDescricao(txDescricao.Text);
                            DataRow linha = tabela.Rows[0];
                            txIDMedicamento.Text = linha["IDDESCRICAO"].ToString();
                            txDescricao.Text = linha["DESCRICAO"].ToString();
                            txCodigoMedicamento.Text = linha["CODIGO"].ToString();
                            txQuantidade.Enabled = true;
                            dateValidade.Enabled = true;
                            this.ActiveControl = txQuantidade;
                            PreencheItens(txIDMedicamento.Text);
                        }
                        else
                        {
                            ESTOQUETableAdapter estoque = new ESTOQUETableAdapter();
                            DialogResult resultado = MessageBox.Show("Medicamento não localizado!\nCadastrar novo?","Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                            if (resultado == System.Windows.Forms.DialogResult.Yes)
                            {
                                string aux = txDescricao.Text.ToUpper();
                                txDescricao.Text = aux;
                                int linha = estoque.RetornaDataTablePorCodigoNP().Rows.Count + 1;
                                string codigo = "NP_" + linha.ToString().PadLeft(4, '0');
                                estoque.Insert(txDescricao.Text, codigo);

                                int descricao = int.Parse(estoque.RetornaIDDescricaoPorDescricao(txDescricao.Text).ToString());
                                ITENSESTOQUETableAdapter itens = new ITENSESTOQUETableAdapter();
                                itens.Insert(descricao, DateTime.Now, 0);
                                MessageBox.Show("Cadastrado com sucesso!\nCódigo: " + codigo);
                                GeraCustomSource();
                                txDescricao_KeyDown(sender, e);

                            }
                            else
                                btnLimpar_Click(sender, e);

                        }
                    }
                }
                catch (Exception err)
                {

                    MessageBox.Show(err.Message);
                }
            }
        }
예제 #2
0
        private void btnIncluirMedicamentoDispensacao_Click(object sender, EventArgs e)
        {
            try
            {
                ViewDispensacaoPorUsuarioTableAdapter dispensacao = new ViewDispensacaoPorUsuarioTableAdapter();
                DateTime data = DateTime.Now;
                string dataInicio = "1/" + data.Month + "/" + data.Year;
                string dataFim = data.ToShortDateString();
                DataTable tabela = dispensacao.ConsultaMedicamentosNoMes(int.Parse(txIDUsuario.Text), dataInicio, dataFim, txDescricaoDispensacao.Text);
                if ((int)txQuantidadeDispensacao.Value <= int.Parse(txEstoqueDispensacao.Text))
                {
                    if (tabela.Rows.Count > 0)
                    {
                        DialogResult resultado = MessageBox.Show("Medicamento já entregue neste mês.\nConfirmar entrega?", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Stop);
                        if (resultado == System.Windows.Forms.DialogResult.Yes)
                        {
                            ITENSESTOQUETableAdapter itens = new ITENSESTOQUETableAdapter();
                            dtgDadosMedicamentosDispensacao.Rows.Add(1);
                            int indice = dtgDadosMedicamentosDispensacao.Rows.Count - 1;
                            painelDispensacaoMedicamentos.Visible = true;
                            dtgDadosMedicamentosDispensacao[0, indice].Value = true;
                            dtgDadosMedicamentosDispensacao[1, indice].Value = txDescricaoDispensacao.Text;
                            dtgDadosMedicamentosDispensacao[2, indice].Value = txQuantidadeDispensacao.Value.ToString();
                            btnIncluirDispensacao.Visible = true;
                        }
                        else
                            MessageBox.Show("Cancelado pelo usuário.");
                    }
                    else
                    {
                        ITENSESTOQUETableAdapter itens = new ITENSESTOQUETableAdapter();
                        dtgDadosMedicamentosDispensacao.Rows.Add(1);
                        int indice = dtgDadosMedicamentosDispensacao.Rows.Count - 1;
                        painelDispensacaoMedicamentos.Visible = true;
                        dtgDadosMedicamentosDispensacao[0, indice].Value = true;
                        dtgDadosMedicamentosDispensacao[1, indice].Value = txDescricaoDispensacao.Text;
                        dtgDadosMedicamentosDispensacao[2, indice].Value = txQuantidadeDispensacao.Value.ToString();
                        btnIncluirDispensacao.Visible = true;
                    }
                }
                else
                    MessageBox.Show("Não a saldo para a dispensação solicitada. ");

                LimpaCamposDispensacaoAgudo();
                btnIncluirDispensacao.Enabled = true;
            }
            catch (Exception err)
            {
                MessageBox.Show(err.Message);
            }
        }
예제 #3
0
        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);
            }
        }
예제 #4
0
        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);
            }
        }
예제 #5
0
        private void txDescricaoDispensacao_KeyDown(object sender, KeyEventArgs e)
        {
            try
            {
                ITENSESTOQUETableAdapter _medicamento = new ITENSESTOQUETableAdapter();
                ESTOQUETableAdapter estoque = new ESTOQUETableAdapter();

                if (e.KeyCode == Keys.Enter)
                {
                    int iddescricao = (int)estoque.RetornaIDDescricaoPorDescricao(txDescricaoDispensacao.Text);
                    txIdMedicamentoDispensasao.Text = _medicamento.RetornaIDPorDescricaoID(iddescricao).ToString();
                    txEstoqueDispensacao.Text = _medicamento.RetornaQuantidadePorIdMedicamento(int.Parse(txIdMedicamentoDispensasao.Text)).ToString();
                    this.ActiveControl = txQuantidadeDispensacao;
                }
            }
            catch (Exception err)
            {

                MessageBox.Show(err.Message);
            }
        }
예제 #6
0
 public int ItensEstoque_RetornaIDPorIDDescricao(int iddescricao)
 {
     ITENSESTOQUETableAdapter estoque = new ITENSESTOQUETableAdapter();
     var tipo = estoque.RetornaIDPorDescricaoID(iddescricao);
     return (int)tipo;
 }
예제 #7
0
 public DataTable ItensEstoque_RetornaDatatablePorIDDescricao(string idDescricao)
 {
     ITENSESTOQUETableAdapter itens = new ITENSESTOQUETableAdapter();
     DataTable tabela = itens.RetornaDatatablePorIDDescricao(int.Parse(idDescricao));
     return tabela;
 }
예제 #8
0
 public void ItensEstoque_AtualizaItens(int idmedicamento, int quantidade, DateTime validade)
 {
     ITENSESTOQUETableAdapter itens = new ITENSESTOQUETableAdapter();
     itens.AtualizaItensEstoque(quantidade, validade.ToShortDateString(), idmedicamento);
 }