예제 #1
0
        private void grava_historico(Compra compra, bool baixaEstoque) 
        {
            Historico_Estoque_Preco historico;
            Produto produto;

            compra.Salvar();
            produtos_venda_todos.Deletar(compra.COM_CODIGO);

            foreach (Produtos_Compra produtos_compra_anterior in produtos_venda_todos_anterior)
            {
                produto = new Produto(produtos_compra_anterior.PC_PRODUTO);
                produto.PRO_ESTOQUE -= produtos_compra_anterior.PC_QTDE;
                produto.Salvar();

                historico = new Historico_Estoque_Preco();
                historico.HEP_CODIGO = 0;
                historico.HEP_COMPRA = compra.COM_CODIGO;
                historico.HEP_DATA = DateTime.Now;
                historico.HEP_ESTOQUE_ANTERIOR = produto.PRO_ESTOQUE + produtos_compra_anterior.PC_QTDE;
                historico.HEP_ESTOQUE_ATUAL = produto.PRO_ESTOQUE;
                historico.HEP_PRECO_UNITARIO = produtos_compra_anterior.PC_PRECO_COMPRA;
                historico.HEP_PRECO_TOTAL = produtos_compra_anterior.PC_TOTAL;
                historico.HEP_PRODUTO = produtos_compra_anterior.PC_PRODUTO;
                historico.HEP_QTDE = produtos_compra_anterior.PC_QTDE;
                historico.HEP_USUARIO = Global.FUN_CODIGO;
                historico.Salvar();
            }
            foreach (Produtos_Compra produtos_compra in produtos_venda_todos)
            {
                produtos_compra.PC_COMPRA = compra.COM_CODIGO;
                produtos_compra.Salvar();

                produto = new Produto(produtos_compra.PC_PRODUTO);

                if (baixaEstoque)
                {
                    produto.PRO_ESTOQUE -= produtos_compra.PC_QTDE;
                    if (produto.PRO_ULT_COMPRA < compra.COM_CODIGO)
                    {
                        produto.PRO_ULT_COMPRA = compra.COM_CODIGO;
                        produto.PRO_PRECO_VENDA = produtos_compra.PC_PRECO_COMPRA;
                    }
                    produto.Salvar();
                }
                

                historico = new Historico_Estoque_Preco();
                historico.HEP_CODIGO = 0;
                historico.HEP_COMPRA = compra.COM_CODIGO;
                historico.HEP_DATA = DateTime.Now;
                historico.HEP_ESTOQUE_ANTERIOR = produto.PRO_ESTOQUE - produtos_compra.PC_QTDE;
                historico.HEP_ESTOQUE_ATUAL = produto.PRO_ESTOQUE;
                historico.HEP_PRECO_UNITARIO = produtos_compra.PC_PRECO_COMPRA;
                historico.HEP_PRECO_TOTAL = produtos_compra.PC_TOTAL;
                historico.HEP_PRODUTO = produtos_compra.PC_PRODUTO;
                historico.HEP_QTDE = produtos_compra.PC_QTDE;
                historico.HEP_USUARIO = Global.FUN_CODIGO;
                historico.Salvar();
            }
        }
예제 #2
0
        public void Gravar(bool Mensagem_Gravar)
        {
            Compra compra;
            Historico_Estoque_Preco historico;
            Produto produto;

            if (tb_codigo.Text == string.Empty)
            {
                compra                    = new Compra();
                compra.COM_OBS            = "";
                compra.COM_DATA_CANCELADO = DateTime.Parse("01/01/1800");
            }
            else
            {
                compra = new Compra(int.Parse(tb_codigo.Text));
            }

            try
            {
                compra.COM_FORNECEDOR = int.Parse(cb_fornecedor.SelectedValue.ToString());
            }
            catch (Exception)
            {
                compra.COM_FORNECEDOR = 0;
            }
            try
            {
                compra.COM_LANCAMENTO = int.Parse(cb_lancamento.SelectedValue.ToString());
            }
            catch (Exception)
            {
                compra.COM_LANCAMENTO = 0;
            }
            try
            {
                compra.COM_NF = int.Parse(tb_nf.Text);
            }
            catch (Exception)
            {
                compra.COM_NF = 0;
            }
            try
            {
                compra.COM_DATA = DateTime.Parse(tb_data.Text);
            }
            catch (Exception)
            {
                compra.COM_DATA = DateTime.Now;
            }
            compra.COM_ALTERACAO = DateTime.Now;
            if (rb_nao_gerar.Checked)
            {
                compra.COM_TIPO_PAGTO = 0;
            }
            else if (rb_avista.Checked)
            {
                compra.COM_TIPO_PAGTO = 1;
            }
            else
            {
                compra.COM_TIPO_PAGTO = 2;
            }
            compra.COM_OUT_DESPESAS = float.Parse(tb_out_desp.Text);
            compra.COM_FRETE        = float.Parse(tb_frete.Text);
            compra.COM_ACRESCIMO    = float.Parse(tb_acresc.Text);
            compra.COM_DESCONTO     = float.Parse(tb_desc.Text);
            compra.COM_TOTAL        = float.Parse(tb_total.Text);
            compra.Salvar();

            Log log = new Log();

            log.LOG_USUARIO = Global.FUN_CODIGO;
            log.LOG_DATA    = DateTime.Now;
            log.LOG_TELA    = this.Text;
            if (tb_codigo.Text == string.Empty)
            {
                log.LOG_DESCRICAO = "Cadastrou a compra de código: " + compra.COM_CODIGO.ToString() + " e fornecedor: " + cb_fornecedor.Text + ".";

                if (compra.COM_FORNECEDOR > 0)
                {
                    Fornecedor fornecedor = new Fornecedor(compra.COM_FORNECEDOR);
                    fornecedor.FOR_ULT_COMPRA = compra.COM_CODIGO;
                    fornecedor.Salvar();
                }

                produtos_compra_todos.Deletar(compra.COM_CODIGO);

                foreach (Produtos_Compra produtos_compra in produtos_compra_todos)
                {
                    produtos_compra.PC_COMPRA = compra.COM_CODIGO;
                    produtos_compra.Salvar();

                    produto                  = new Produto(produtos_compra.PC_PRODUTO);
                    produto.PRO_ESTOQUE     += produtos_compra.PC_QTDE;
                    produto.PRO_ULT_COMPRA   = compra.COM_CODIGO;
                    produto.PRO_PRECO_COMPRA = produtos_compra.PC_PRECO_COMPRA;
                    produto.Salvar();

                    historico                      = new Historico_Estoque_Preco();
                    historico.HEP_CODIGO           = 0;
                    historico.HEP_COMPRA           = compra.COM_CODIGO;
                    historico.HEP_DATA             = DateTime.Now;
                    historico.HEP_ESTOQUE_ANTERIOR = produto.PRO_ESTOQUE - produtos_compra.PC_QTDE;
                    historico.HEP_ESTOQUE_ATUAL    = produto.PRO_ESTOQUE;
                    historico.HEP_PRECO_UNITARIO   = produtos_compra.PC_PRECO_COMPRA;
                    historico.HEP_PRECO_TOTAL      = produtos_compra.PC_TOTAL;
                    historico.HEP_PRODUTO          = produtos_compra.PC_PRODUTO;
                    historico.HEP_QTDE             = produtos_compra.PC_QTDE;
                    historico.HEP_USUARIO          = Global.FUN_CODIGO;
                    historico.Salvar();
                }
            }
            else
            {
                log.LOG_DESCRICAO = "Alterou a compra de código: " + compra.COM_CODIGO.ToString() + " e fornecedor: " + cb_fornecedor.Text + ".";
            }
            log.Save();

            if (Configuracoes.Default.Mensagem_Gravar == true && Mensagem_Gravar == true)
            {
                if (tb_codigo.Text == string.Empty)
                {
                    MessageBox.Show("Cadastro efetuado com sucesso!", "3Pratos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Alteração efetuada com sucesso!", "3Pratos", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            Ativar_Desativar(false);

            tb_codigo.Text       = compra.COM_CODIGO.ToString();
            tb_codigo.Enabled    = false;
            btn_produto.Enabled  = false;
            btn_gravar.Enabled   = false;
            btn_cancelar.Enabled = true;

            cb_fornecedor.Focus();
        }
예제 #3
0
        public void Gravar(bool Mensagem_Gravar)
        {
            Compra compra;
            Historico_Estoque_Preco historico;
            Produto produto;

            if (tb_codigo.Text == string.Empty)
            {
                compra                    = new Compra();
                compra.COM_OBS            = "";
                compra.COM_DATA_CANCELADO = DateTime.Parse("01/01/1800");
            }
            else
            {
                compra = new Compra(int.Parse(tb_codigo.Text), 1);
            }

            try
            {
                compra.COM_CLIENTE_FORNECEDOR = int.Parse(cb_cliente.SelectedValue.ToString());
            }
            catch (Exception)
            {
                compra.COM_CLIENTE_FORNECEDOR = 0;
            }

            compra.COM_LANCAMENTO = 1;

            try
            {
                compra.COM_DATA = DateTime.Parse(tb_data.Text);
            }
            catch (Exception)
            {
                compra.COM_DATA = DateTime.Now;
            }
            compra.COM_ALTERACAO = DateTime.Now;

            if (rb_nao_gerar.Checked)
            {
                compra.COM_TIPO_PAGTO = 0;
            }
            else if (rb_avista.Checked)
            {
                compra.COM_TIPO_PAGTO = 1;
            }
            else
            {
                compra.COM_TIPO_PAGTO = 2;
            }
            compra.COM_OUT_DESPESAS   = float.Parse(tb_out_desp.Text);
            compra.COM_ACRESCIMO      = float.Parse(tb_acresc.Text);
            compra.COM_DESCONTO       = float.Parse(tb_desc.Text);
            compra.COM_TOTAL          = float.Parse(tb_total.Text);
            compra.COM_TIPO_MOVIMENTO = rb_orcamento.Checked ? 0 : rb_venda.Checked ? 1 : -1;
            //ORCAMENTO = 0 , VENDA = 1, ERROR = -1

            string SqlVenda = "BEGIN TRANSACTION ";

            for (int i = 0; i < dgv_produtos.RowCount; i++)
            {
                double qtd      = double.Parse(dgv_produtos["PC_QTDE_FORMATADO", i].Value.ToString());
                int    cod_prod = int.Parse(dgv_produtos["PC_PRODUTO_FORMATADO", i].Value.ToString());
                SqlVenda += string.Format(@" IF (SELECT 1 FROM Produto WHERE PRO_CODIGO = {0} AND (PRO_ESTOQUE - {1}) >= 0) = 1
	                                            BEGIN
		                                            UPDATE Produto SET PRO_ESTOQUE = (PRO_ESTOQUE - {1}) WHERE PRO_CODIGO = {0}
		                                            SELECT 1 as Aviso
                                                    RETURN
	                                            END
                                            ELSE
	                                            BEGIN 
		                                            SELECT 0 as Aviso
                                                    ROLLBACK TRANSACTION
                                                    RETURN
	                                            END"    , cod_prod, qtd);
            }

            SqlVenda += " COMMIT TRANSACTION ";

            if (rb_venda.Enabled == true && rb_venda.Checked == true)
            {
                if (compra.BaixaEstoque(SqlVenda) == 0)
                {
                    MessageBox.Show("Não há produto suficiente para esta transação!", "Joincar", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                }
                else
                {
                    compra.Salvar();
                    produtos_venda_todos.Deletar(compra.COM_CODIGO);

                    foreach (Produtos_Compra produtos_compra_anterior in produtos_venda_todos_anterior)
                    {
                        produto              = new Produto(produtos_compra_anterior.PC_PRODUTO);
                        produto.PRO_ESTOQUE -= produtos_compra_anterior.PC_QTDE;
                        produto.Salvar();

                        historico                      = new Historico_Estoque_Preco();
                        historico.HEP_CODIGO           = 0;
                        historico.HEP_COMPRA           = compra.COM_CODIGO;
                        historico.HEP_DATA             = DateTime.Now;
                        historico.HEP_ESTOQUE_ANTERIOR = produto.PRO_ESTOQUE + produtos_compra_anterior.PC_QTDE;
                        historico.HEP_ESTOQUE_ATUAL    = produto.PRO_ESTOQUE;
                        historico.HEP_PRECO_UNITARIO   = produtos_compra_anterior.PC_PRECO_COMPRA;
                        historico.HEP_PRECO_TOTAL      = produtos_compra_anterior.PC_TOTAL;
                        historico.HEP_PRODUTO          = produtos_compra_anterior.PC_PRODUTO;
                        historico.HEP_QTDE             = produtos_compra_anterior.PC_QTDE;
                        historico.HEP_USUARIO          = Global.FUN_CODIGO;
                        historico.Salvar();
                    }
                    foreach (Produtos_Compra produtos_compra in produtos_venda_todos)
                    {
                        produtos_compra.PC_COMPRA = compra.COM_CODIGO;
                        produtos_compra.Salvar();

                        produto              = new Produto(produtos_compra.PC_PRODUTO);
                        produto.PRO_ESTOQUE -= produtos_compra.PC_QTDE;
                        if (produto.PRO_ULT_COMPRA < compra.COM_CODIGO)
                        {
                            produto.PRO_ULT_COMPRA   = compra.COM_CODIGO;
                            produto.PRO_PRECO_COMPRA = produtos_compra.PC_PRECO_COMPRA;
                        }
                        produto.Salvar();

                        historico                      = new Historico_Estoque_Preco();
                        historico.HEP_CODIGO           = 0;
                        historico.HEP_COMPRA           = compra.COM_CODIGO;
                        historico.HEP_DATA             = DateTime.Now;
                        historico.HEP_ESTOQUE_ANTERIOR = produto.PRO_ESTOQUE - produtos_compra.PC_QTDE;
                        historico.HEP_ESTOQUE_ATUAL    = produto.PRO_ESTOQUE;
                        historico.HEP_PRECO_UNITARIO   = produtos_compra.PC_PRECO_COMPRA;
                        historico.HEP_PRECO_TOTAL      = produtos_compra.PC_TOTAL;
                        historico.HEP_PRODUTO          = produtos_compra.PC_PRODUTO;
                        historico.HEP_QTDE             = produtos_compra.PC_QTDE;
                        historico.HEP_USUARIO          = Global.FUN_CODIGO;
                        historico.Salvar();
                    }
                }
            }

            if (rb_orcamento.Checked == true)
            {
                compra.Salvar();
            }

            Log log = new Log();

            log.LOG_USUARIO = Global.FUN_CODIGO;
            log.LOG_DATA    = DateTime.Now;
            log.LOG_TELA    = this.Text;
            if (tb_codigo.Text == string.Empty)
            {
                log.LOG_DESCRICAO = "Cadastrou a compra de código: " + compra.COM_CODIGO.ToString() + " e cliente: " + cb_cliente.Text + ".";
            }
            else
            {
                log.LOG_DESCRICAO = "Alterou a compra de código: " + compra.COM_CODIGO.ToString() + " e cliente: " + cb_cliente.Text + ".";
            }
            log.Save();

            if (Configuracoes.Default.Mensagem_Gravar == true && Mensagem_Gravar == true)
            {
                if (tb_codigo.Text == string.Empty)
                {
                    MessageBox.Show("Cadastro efetuado com sucesso!", "Joincar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                else
                {
                    MessageBox.Show("Alteração efetuada com sucesso!", "Joincar", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            Ativar_Desativar(false);

            tb_codigo.Text       = compra.COM_CODIGO.ToString();
            tb_codigo.Enabled    = false;
            btn_cancelar.Enabled = true;
            btn_imprimir.Enabled = true;
            dgv_produtos.Enabled = true;
            this.Show();

            cb_cliente.Focus();
        }