예제 #1
0
        private void Salvar()
        {
            DALConexao cx = new DALConexao(DadosDaConexao.StringDaConexao);

            DTOMovimento mov    = new DTOMovimento();
            BLLMovimento bllmov = new BLLMovimento(cx);


            for (int i = 0; i < dgvProdutos.RowCount; i++)
            {
                mov.Lancamento     = Convert.ToInt32(txtLancamento.Text);
                mov.NfMov          = Convert.ToInt32(txtNf.Text);
                mov.DataNfMov      = Convert.ToDateTime(txtDataEmissao.Text);
                mov.DataCriacaoMov = DateTime.Now;
                mov.DataMov        = Convert.ToDateTime(txtDataEntrada.Text);
                mov.IdUnidade      = Convert.ToInt32(cbUnidade.SelectedValue);
                mov.IdFornecedor   = Convert.ToInt32(txtFornecedor.Text);
                mov.IdUsuario      = idUsuario;


                mov.IdProduto    = Convert.ToInt32(dgvProdutos.Rows[i].Cells[1].Value);
                mov.QuantMov     = Convert.ToInt32(dgvProdutos.Rows[i].Cells[3].Value);
                mov.CustoUnitMov = Convert.ToDouble(dgvProdutos.Rows[i].Cells[4].Value);
                mov.TipoMov      = "Entrada";

                bllmov.Incluir(mov);
            }

            this.LimpaCampos();
            this.AlteraBotoes(1);
        }
예제 #2
0
        private void btProdutos_Click(object sender, EventArgs e)
        {
            DateTime resultado = DateTime.MinValue;

            if (txtFornecedor.Text != "" && lbForn.Text != "")
            {
                if (txtNf.Text != "")
                {
                    if ((DateTime.TryParse(this.txtDataEmissao.Text.Trim(), out resultado)))
                    {
                        DALConexao   cxnf  = new DALConexao(DadosDaConexao.StringDaConexao);
                        BLLMovimento bllnf = new BLLMovimento(cxnf);

                        DTOMovimento modelo = bllnf.ConsultaNf(Convert.ToInt32(txtNf.Text), Convert.ToInt32(txtFornecedor.Text));

                        if (modelo.IdFornecedor == 0 || this.operacao == "editar")
                        {
                            if ((DateTime.TryParse(this.txtDataEntrada.Text.Trim(), out resultado)))
                            {
                                this.LançaProdutos();
                            }

                            else
                            {
                                MessageBox.Show("Data de entrada inválida.");
                            }
                        }
                        else
                        {
                            MessageBox.Show("Já existe a nota " + txtNf.Text + " para o fornecedor " + lbForn.Text + ".");
                        }
                    }
                    else
                    {
                        MessageBox.Show("Data de emissão inválida.");
                    }
                }
                else
                {
                    MessageBox.Show("O número da nota não pode ficar em branco.");
                }
            }
            else
            {
                MessageBox.Show("Código de fornecedor inválido.");
            }

            //Valida os dados da nota e passa para os produtos
        }
예제 #3
0
        private void btRodar_Click(object sender, EventArgs e)
        {
            int          quantInv;
            DialogResult d = MessageBox.Show("Deseja rodar o inventário " + txtNumeroInventario.Text + " e gerar os movimentos relativos a ele?", "Aviso", MessageBoxButtons.YesNo);

            if (d.ToString() == "Yes")
            {
                DALConexao cx = new DALConexao(DadosDaConexao.StringDaConexao);

                DTOInventario inv    = new DTOInventario();
                BLLInventario bllinv = new BLLInventario(cx);
                bllinv.Concluir(Convert.ToInt32(txtNumeroInventario.Text));

                // gerar movimentações de estoque

                DTOMovimento mov    = new DTOMovimento();
                BLLMovimento bllmov = new BLLMovimento(cx);

                for (int i = 0; i < dgvInventario.RowCount; i++)
                {
                    mov.Lancamento     = 0;
                    mov.NfMov          = Convert.ToInt32(txtNumeroInventario.Text);
                    mov.DataNfMov      = Convert.ToDateTime(txtDataInventario.Text);
                    mov.DataCriacaoMov = DateTime.Now;
                    mov.DataMov        = Convert.ToDateTime(txtDataMovimento.Text);
                    mov.IdUnidade      = Convert.ToInt32(cbUnidade.SelectedValue);
                    mov.IdFornecedor   = Convert.ToInt32(cbUnidade.SelectedValue);
                    mov.IdUsuario      = idUsuario;
                    mov.TipoMov        = "Inventario";


                    mov.IdProduto = Convert.ToInt32(dgvInventario.Rows[i].Cells[0].Value);


                    //buscar quantidade de diferença
                    try
                    {
                        quantInv = Convert.ToInt32(dgvInventario.Rows[i].Cells[5].Value);
                    }
                    catch
                    {
                        quantInv = 0;
                    }

                    int      ultimoInv   = 0;
                    int      ultimosMovs = 0;
                    DateTime dataUltimoInv;


                    //Localiza quantidade do último inventario concluído.

                    string buscaUltimoInv = "select inventario, data_mov_inv, id_produto, quant_inv from inventario " +
                                            " where concluido = 'c' and id_produto = " + mov.IdProduto +
                                            " and data_mov_inv < '" + Convert.ToDateTime(txtDataMovimento.Text).ToString("d") + "' order by data_mov_inv asc;";

                    BLLInventario bll    = new BLLInventario(cx);
                    DataTable     tabela = bll.Localizar(buscaUltimoInv);

                    try
                    {
                        ultimoInv = Convert.ToInt32(tabela.Rows[0]["quant_inv"]);
                    }
                    catch
                    {
                        ultimoInv = 0;
                    }

                    try
                    {
                        dataUltimoInv = Convert.ToDateTime(tabela.Rows[0]["data_mov_inv"]);
                    }
                    catch
                    {
                        DateTime data = new DateTime(1900, 1, 1);
                        dataUltimoInv = data;
                    }


                    //Soma movimentos de um período de tempo.
                    //select sum(quant_mov) as quantidade, id_produto from movimentacao where data_mov between '2016-05-10' and '2016-05-24' and id_produto = 38 group by id_produto, quant_mov;

                    string buscaQuantMovimentacoes = "select sum(quant_mov) as quantidade, id_produto from movimentacao " +
                                                     "where data_mov > '" + dataUltimoInv.ToString("d") + "' and data_mov <= '" + Convert.ToDateTime(txtDataMovimento.Text).ToString("d") +
                                                     "' and id_produto = " + mov.IdProduto + " group by id_produto;";


                    BLLMovimento bllquantmov = new BLLMovimento(cx);
                    DataTable    tabelamov   = bllquantmov.LocalizarValor(buscaQuantMovimentacoes);

                    try
                    {
                        ultimosMovs = Convert.ToInt32(tabelamov.Rows[0]["quantidade"]);
                    }
                    catch
                    {
                        ultimosMovs = 0;
                    }

                    mov.QuantMov = quantInv - (ultimoInv + ultimosMovs);


                    //Buscar custo unitario da ultima movimentacao de entrada

                    string buscacusto = "select * from movimentacao " +
                                        "where id_produto = " + mov.IdProduto + " order by data_mov desc;";

                    BLLMovimento bllCustotmov = new BLLMovimento(cx);
                    DataTable    tabelacusto  = bllCustotmov.LocalizarValor(buscacusto);
                    try
                    {
                        mov.CustoUnitMov = Convert.ToDouble(tabelacusto.Rows[0]["custo_unitario_mov"]);
                    }
                    catch
                    {
                        mov.CustoUnitMov = 0.00;
                    }
                    bllmov.Incluir(mov);
                }

                MessageBox.Show("Inventário processado com sucesso.");
                LimpaCampos();

                AlteraBotoes(1);
            }
        }