示例#1
0
        public static string GravarInventario(Tregistro_Inventario val, TObjetoBanco banco)
        {
            bool           st_transacao   = false;
            TCD_Inventario qtb_inventario = new TCD_Inventario();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_inventario.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_inventario.Banco_Dados = banco;
                }
                //Gravar Inventario
                val.Id_inventario = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(qtb_inventario.GravarInventario(val), "@P_ID_INVENTARIO"));
                //Excluir itens inventario
                val.lItensDel.ForEach(p => TCN_Inventario_Item.DeletarInventarioItem(p, qtb_inventario.Banco_Dados));
                //Gravar itens inventario
                val.lItensInventario.ForEach(p =>
                {
                    p.Id_inventario = val.Id_inventario;
                    TCN_Inventario_Item.GravarInventarioItem(p, qtb_inventario.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_inventario.Banco_Dados.Commit_Tran();
                }
                return(val.Id_inventario.Value.ToString());
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_inventario.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar inventario: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_inventario.deletarBanco_Dados();
                }
            }
        }
示例#2
0
        public static string DeletarInventario(Tregistro_Inventario val, TObjetoBanco banco)
        {
            bool           st_transacao   = false;
            TCD_Inventario qtb_inventario = new TCD_Inventario();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_inventario.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_inventario.Banco_Dados = banco;
                }
                if (val.St_inventario.Trim().ToUpper().Equals("P"))
                {
                    throw new Exception("Não é permitido excluir inventario PROCESSADO.");
                }
                //A stored procedure ja ira excluir os itens e o saldo caso exista
                qtb_inventario.DeletarInvetario(val);
                if (st_transacao)
                {
                    qtb_inventario.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_inventario.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir inventario: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_inventario.deletarBanco_Dados();
                }
            }
        }
示例#3
0
        public static void ProcessarInventario(Tregistro_Inventario val, TObjetoBanco banco)
        {
            bool st_transacao = false;
            TCD_Inventario_Item_X_Saldo qtb_saldo = new TCD_Inventario_Item_X_Saldo();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_saldo.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_saldo.Banco_Dados = banco;
                }
                TList_Inventario_Item_X_Saldo lSaldo = TCN_Inventario_Item_X_Saldo.Buscar(val.Id_inventario.Value.ToString(),
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          string.Empty,
                                                                                          qtb_saldo.Banco_Dados);
                lSaldo.ForEach(p =>
                {
                    //Para produtos derivados de consumo interno
                    //O sistema deve gerar lançamento no almoxarifado
                    if (p.Id_Almox != null)
                    {
                        if (p.Qtd_saldoAmx != p.Qtd_contada)
                        {
                            p.Qtd_saldo = p.Qtd_saldoAmx;
                            CamadaDados.Almoxarifado.TRegistro_Movimentacao _Movimentacao = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                            _Movimentacao.Cd_empresa      = p.Cd_empresa;
                            _Movimentacao.LoginAlmoxarife = Parametros.pubLogin;
                            _Movimentacao.Id_almoxstr     = p.Id_Almox.ToString();
                            _Movimentacao.Cd_produto      = p.Cd_produto;
                            _Movimentacao.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                            if (p.Qtd_saldoAmx < p.Qtd_contada)
                            {
                                _Movimentacao.Tp_movimento  = "E";
                                _Movimentacao.Quantidade    = p.Qtd_contada - p.Qtd_saldoAmx;
                                _Movimentacao.Vl_subtotal   = p.Vl_unitario * (p.Qtd_contada - p.Qtd_saldoatual);
                                _Movimentacao.Ds_observacao = "ENTRADA DEVIDA AO INVENTÁRIO " + p.Id_inventario;
                            }
                            else
                            {
                                _Movimentacao.Tp_movimento  = "S";
                                _Movimentacao.Quantidade    = p.Qtd_saldoAmx - p.Qtd_contada;
                                _Movimentacao.Vl_subtotal   = p.Vl_unitario * (p.Qtd_saldoatual - p.Qtd_contada);
                                _Movimentacao.Ds_observacao = "SAÍDA DEVIDA AO INVENTÁRIO " + p.Id_inventario;
                            }

                            _Movimentacao.Vl_unitario = p.Vl_unitario;

                            string retorno = CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(_Movimentacao, qtb_saldo.Banco_Dados);
                            //Gravar Inventario X Almoxarifado
                            TCN_Inventario_X_Estoque.GravarInventarioXEstoque(
                                new TRegistro_Inventario_X_Estoque()
                            {
                                Cd_empresa        = p.Cd_empresa,
                                Cd_produto        = p.Cd_produto,
                                Id_inventario     = p.Id_inventario,
                                Id_movimentoAlmox = Convert.ToDecimal(retorno),
                                Id_registro       = p.Id_registro
                            }, qtb_saldo.Banco_Dados);
                        }
                    }
                    else
                    {
                        if (p.Qtd_saldoatual != p.Qtd_contada)
                        {
                            //Gravar no estoque
                            TRegistro_LanEstoque regEstoque = new TRegistro_LanEstoque();
                            regEstoque.Cd_empresa           = p.Cd_empresa;
                            regEstoque.Cd_produto           = p.Cd_produto;
                            regEstoque.Cd_local             = p.Cd_local;
                            regEstoque.Dt_lancto            = CamadaDados.UtilData.Data_Servidor();
                            regEstoque.St_registro          = "A";
                            regEstoque.Tp_lancto            = "I";
                            if (p.Qtd_saldoatual < p.Qtd_contada)
                            {
                                regEstoque.Tp_movimento = "E";
                                regEstoque.Qtd_entrada  = p.Qtd_contada - p.Qtd_saldoatual;
                                regEstoque.Vl_subtotal  = p.Vl_unitario * (p.Qtd_contada - p.Qtd_saldoatual);
                            }
                            else
                            {
                                regEstoque.Tp_movimento = "S";
                                regEstoque.Qtd_saida    = p.Qtd_saldoatual - p.Qtd_contada;
                                regEstoque.Vl_subtotal  = p.Vl_unitario * (p.Qtd_saldoatual - p.Qtd_contada);
                            }
                            regEstoque.Vl_unitario = p.Vl_unitario;

                            string retorno = TCN_LanEstoque.GravarEstoque(regEstoque, qtb_saldo.Banco_Dados);
                            //Gravar Inventario X Estoque
                            TCN_Inventario_X_Estoque.GravarInventarioXEstoque(
                                new TRegistro_Inventario_X_Estoque()
                            {
                                Cd_empresa       = p.Cd_empresa,
                                Cd_produto       = p.Cd_produto,
                                Id_inventario    = p.Id_inventario,
                                Id_registro      = p.Id_registro,
                                Id_lanctoestoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(retorno, "@@P_ID_LANCTOESTOQUE"))
                            }, qtb_saldo.Banco_Dados);
                        }
                    }

                    if (p.Id_Almox == null && p.Qtd_saldoatual != p.Qtd_saldo)
                    {
                        p.Qtd_saldo = p.Qtd_saldoatual;
                        TCN_Inventario_Item_X_Saldo.GravarInventarioItemSaldo(p, qtb_saldo.Banco_Dados);
                    }
                    else
                    {
                        TCN_Inventario_Item_X_Saldo.GravarInventarioItemSaldo(p, qtb_saldo.Banco_Dados);
                    }
                });
                //Alterar Status do Inventario para Processado
                val.St_inventario = "P";
                GravarInventario(val, qtb_saldo.Banco_Dados);
                if (st_transacao)
                {
                    qtb_saldo.Banco_Dados.Commit_Tran();
                }
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_saldo.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro processar inventario: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_saldo.deletarBanco_Dados();
                }
            }
        }