예제 #1
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);
            }
        }
예제 #2
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);
            }
        }