Ejemplo n.º 1
0
        private void btnBuscarSaida_Click(object sender, EventArgs e)
        {
            IList <IMovimentoSaidaEntity> saidas = MovimentoSaidaDao.ConsultarPorData(mkdTxtBuscarSaida.Text);

            dtgridRelatorioSaida.Rows.Clear();

            if (saidas.Count <= 0)
            {
                MessageBox.Show("A busca não retornou resultado.");
                return;
            }

            int rowId = 0;

            foreach (IMovimentoSaidaEntity saida in saidas)
            {
                rowId = dtgridRelatorioSaida.Rows.AddCopy(0);
                dtgridRelatorioSaida.Rows[rowId].Cells["CodigoCliente"].Value    = saida.cliente.NomeCliente;
                dtgridRelatorioSaida.Rows[rowId].Cells["CodigoUsuario"].Value    = saida.usuario.NomeUsuario;
                dtgridRelatorioSaida.Rows[rowId].Cells["DataMovimento"].Value    = saida.DataMovimento;
                dtgridRelatorioSaida.Rows[rowId].Cells["IdMovimentoSaida"].Value = saida.IdMovimentoSaida;
            }
        }
        private void btnSalvarSaida_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Deseja realmente criar um novo registro?",
                                                  "Confirma a criação ", MessageBoxButtons.YesNo,
                                                  MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {
                MovimentoSaidaEntity             saida = new MovimentoSaidaEntity();
                IList <MovimentoSaidaItemEntity> itens = new List <MovimentoSaidaItemEntity>();

                saida.IdCliente     = 1;
                saida.DataMovimento = DateTime.Now;

                saida.IdUsuario = Properties.Settings.Default.IdUsuarioLogado;

                foreach (DataGridViewRow row in dtgridItensSelecionados.Rows)
                {
                    if (row.Cells["CodigoItem"].Value != null && row.Cells["CodigoItem"].Value.ToString() != "")
                    {
                        if (row.Cells["Quantidade"].Value == null)
                        {
                            MessageBox.Show("Preencha a quantidade para o item " + row.Cells["CodigoItem"].Value + " - " + row.Cells["Nome"].Value, "Campo Inválido");
                            return;
                        }

                        IEstoqueEntity estoque = EstoqueDao.ConsultarPorCodigoItem(Convert.ToInt32(row.Cells["CodigoItem"].Value));

                        if (Convert.ToInt32(row.Cells["Quantidade"].Value) > estoque.QuantidadeDisponivel)
                        {
                            MessageBox.Show("A quantidade disponivel para o item " + row.Cells["CodigoItem"].Value + row.Cells["Nome"].Value + " é de " + estoque.QuantidadeDisponivel);
                            return;
                        }

                        IItemEntity item = ItemDao.ConsultarPorCodigo(Convert.ToInt32(row.Cells["CodigoItem"].Value));
                        MovimentoSaidaItemEntity saidaItem = new MovimentoSaidaItemEntity();

                        saidaItem.IdItem     = item.IdItem;
                        saidaItem.IdDeposito = Convert.ToInt32(row.Cells["Deposito"].Value);
                        saidaItem.QtdTotal   = Convert.ToInt32(row.Cells["Quantidade"].Value);

                        itens.Add(saidaItem);
                    }
                }

                saida.IdMovimentoSaida = MovimentoSaidaDao.Inserir(saida);

                foreach (var saidaItem in itens)
                {
                    saidaItem.IdMovimentoSaida = saida.IdMovimentoSaida;

                    MovimentoSaidaItemEntity movimento = new MovimentoSaidaItemEntity
                    {
                        IdMovimentoSaida = saidaItem.IdMovimentoSaida,
                        IdItem           = saidaItem.IdItem,
                        IdDeposito       = saidaItem.IdDeposito,
                        QtdTotal         = saidaItem.QtdTotal
                    };
                    MovimentoSaidaItemDao.Inserir(movimento);

                    IEstoqueEntity estoqueItem = EstoqueDao.ConsultarPorCodigoItem(saidaItem.IdItem);

                    EstoqueEntity estoque = new EstoqueEntity
                    {
                        QuantidadeTotal = estoqueItem.QuantidadeTotal - saidaItem.QtdTotal
                    };

                    EstoqueDao.Atualizar(estoque, saidaItem.IdItem);
                }

                MessageBox.Show("Registro gravado com sucesso!");
                this.Close();
            }
        }