Exemple #1
0
 private static void saidaAlmoxarifado(TRegistro_LanPneu _LanPneu,
                                       BancoDados.TObjetoBanco banco)
 {
     CamadaDados.Almoxarifado.TList_CadAlmox_X_Empresa lAlmox =
         new CamadaDados.Almoxarifado.TCD_CadAlmox_X_Empresa(banco).Select(
             new Utils.TpBusca[]
     {
         new Utils.TpBusca()
         {
             vNM_Campo = "a.cd_empresa",
             vOperador = "=",
             vVL_Busca = _LanPneu.Cd_empresa
         }
     }, 0, string.Empty);
     if (lAlmox.Count.Equals(0))
     {
         throw new Exception("Obrigatório cadastrar almoxarifado para empresa: " + _LanPneu.Cd_empresa);
     }
     CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
     rMov.Ds_observacao   = "SAÍDA REALIZADA PELO CADASTRO DE PNEUS";
     rMov.Cd_empresa      = _LanPneu.Cd_empresa;
     rMov.Id_almoxstr     = lAlmox[0].Id_almoxstr;
     rMov.Cd_produto      = _LanPneu.Cd_produto;
     rMov.Quantidade      = 1;
     rMov.Vl_unitario     = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(_LanPneu.Cd_empresa, lAlmox[0].Id_almoxstr, _LanPneu.Cd_produto, banco);;
     rMov.Tp_movimento    = "S";
     rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
     rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
     rMov.St_registro     = "A";
     //Gravar Movimentação
     CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(rMov, banco);
 }
Exemple #2
0
        public static string EnvioAlmoxarifado(TRegistro_LanPneu val, int Hodometro, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LanPneu qtb_pneu     = new TCD_LanPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                rMov.Ds_observacao   = "ENTRADA REALIZADA PELO RETORNO DA MOVIMENTAÇÃO DE PNEUS";
                rMov.Cd_empresa      = val.Cd_empresa;
                rMov.Id_almoxstr     = val.Id_almoxstr;
                rMov.Cd_produto      = val.Cd_produto;
                rMov.Quantidade      = 1;
                rMov.Vl_unitario     = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(val.Cd_empresa, val.Id_almoxstr, val.Cd_produto, qtb_pneu.Banco_Dados);;
                rMov.Tp_movimento    = "E";
                rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
                rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                rMov.St_registro     = "A";
                CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(rMov, qtb_pneu.Banco_Dados);

                val.St_registro = "A";
                string retorno = qtb_pneu.Gravar(val);

                qtb_pneu.executarSql("update tb_frt_movpneu set st_rodando = 'N',  HodometroFinal = " + Hodometro.ToString() + ", Dt_Alt = getdate() " +
                                     "where cd_empresa = '" + val.Cd_empresa.Trim() + "'" +
                                     "and id_pneu = " + val.Id_pneustr + " " +
                                     "and isnull(st_rodando, 'N') = 'S' ", null);
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar  manutenção pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #3
0
        public static string RetornoManutencao(TRegistro_LanPneu val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LanPneu qtb_pneu     = new TCD_LanPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                //Criar registro movimentação
                CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov =
                    new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                rMov.Ds_observacao   = "ENTRADA REALIZADA PELA RETORNO DA MOVIMENTAÇÃO DE PNEUS";
                rMov.Cd_empresa      = val.Cd_empresa;
                rMov.Id_almoxstr     = val.Id_almoxstr;
                rMov.Cd_produto      = val.Cd_produto;
                rMov.Quantidade      = 1;
                rMov.Vl_unitario     = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(val.Cd_empresa, val.Id_almoxstr, val.Cd_produto, qtb_pneu.Banco_Dados);;
                rMov.Tp_movimento    = "E";
                rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
                rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                rMov.St_registro     = "A";
                //Gravar Movimentação
                CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(rMov, qtb_pneu.Banco_Dados);
                //Mudar Status Pneu
                val.St_registro = "A";
                string retorno = qtb_pneu.Gravar(val);
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar  manutenção pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #4
0
        public static string Gravar(TRegistro_LanPneu val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LanPneu qtb_pneu     = new TCD_LanPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }
                val.Id_pneustr = CamadaDados.TDataQuery.getPubVariavel(qtb_pneu.Gravar(val), "@P_ID_PNEU");
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(val.Id_pneustr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #5
0
        public static string Excluir(TRegistro_LanPneu val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LanPneu qtb_pneu     = new TCD_LanPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                //Buscar Movimentação Almoxarifado x Movimentação do pneu
                CamadaDados.Almoxarifado.TList_Movimentacao lMov =
                    new CamadaDados.Almoxarifado.TCD_Movimentacao(qtb_pneu.Banco_Dados).Select(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = string.Empty,
                        vOperador = "exists",
                        vVL_Busca = "(select 1 from TB_FRT_MovPneu x " +
                                    "where x.id_movalmox = a.id_movimento " +
                                    "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "' " +
                                    "and x.id_pneu = " + val.Id_pneustr + ") "
                    }
                }, 0, string.Empty);
                if (lMov.Count > 0)
                {
                    //Cancelar Almoxarifado
                    lMov.ForEach(p => CamadaNegocio.Almoxarifado.TCN_Movimentacao.Cancelar(p, qtb_pneu.Banco_Dados));

                    //Desativar pneu
                    Desativacao(val, qtb_pneu.Banco_Dados);
                }
                else
                {
                    qtb_pneu.Excluir(val);
                }

                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(val.Id_pneustr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #6
0
        public static string Desativacao(TRegistro_LanPneu val, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_LanPneu qtb_pneu     = new TCD_LanPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                //Verificar se o pneu esta rodando
                if (new CamadaDados.Frota.TCD_MovPneu(qtb_pneu.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_pneu",
                        vOperador = "=",
                        vVL_Busca = val.Id_pneustr
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_rodando, 'N')",
                        vOperador = "=",
                        vVL_Busca = "'S'"
                    }
                }, "1") != null)
                {
                    qtb_pneu.executarSql("update tb_frt_movpneu set st_rodando = 'N',  HodometroFinal = " + val.HodometroDesativacao.ToString() + ", Dt_Alt = getdate() " +
                                         "where cd_empresa = '" + val.Cd_empresa.Trim() + "'" +
                                         "and id_pneu = " + val.Id_pneustr + " " +
                                         "and st_rodando = 'S' ", null);
                }

                //Se Pneu estiver no almoxarifado dar saida
                if (new TCD_LanPneu(qtb_pneu.Banco_Dados).BuscarEscalar(
                        new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + val.Cd_empresa.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_pneu",
                        vOperador = "=",
                        vVL_Busca = val.Id_pneustr
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "isnull(a.st_registro, 'A')",
                        vOperador = "=",
                        vVL_Busca = "'A'"
                    }
                }, "1") != null)
                {
                    CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                    rMov.Ds_observacao   = "SAÍDA REALIZADA PELA DESATIVAÇÃO DE PNEUS";
                    rMov.Cd_empresa      = val.Cd_empresa;
                    rMov.Id_almoxstr     = val.Id_almoxstr;
                    rMov.Cd_produto      = val.Cd_produto;
                    rMov.Quantidade      = 1;
                    rMov.Vl_unitario     = Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(val.Cd_empresa, val.Id_almoxstr, val.Cd_produto, qtb_pneu.Banco_Dados);;
                    rMov.Tp_movimento    = "S";
                    rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
                    rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                    rMov.St_registro     = "A";
                    Almoxarifado.TCN_Movimentacao.Gravar(rMov, qtb_pneu.Banco_Dados);
                }

                //Registrar desativação no pneu
                val.St_registro = "D";
                string retorno = qtb_pneu.Gravar(val);

                //Gravar Movimentação Pneu Desativação
                CamadaDados.Frota.TRegistro_MovPneu rMovPneu = new TRegistro_MovPneu();
                rMovPneu.Cd_empresa      = val.Cd_empresa;
                rMovPneu.Id_pneu         = val.Id_pneu;
                rMovPneu.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                rMovPneu.Obs             = val.MotivoDesativacao;
                rMovPneu.Tp_movimentacao = "3";
                rMovPneu.St_rodando      = "N";
                TCN_MovPneu.Gravar(rMovPneu, qtb_pneu.Banco_Dados);
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(retorno);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar desativação pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #7
0
        public static string GravarManutencao(TRegistro_MovPneu _MovPneu, TRegistro_LanPneu _LanPneu, BancoDados.TObjetoBanco banco)
        {
            bool        st_transacao = false;
            TCD_MovPneu qtb_pneu     = new TCD_MovPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                //Gravar Duplicata
                if (_MovPneu.rDup != null)
                {
                    _MovPneu.Nr_lancto = decimal.Parse(CamadaDados.TDataQuery.getPubVariavel(Financeiro.Duplicata.TCN_LanDuplicata.GravarDuplicata(_MovPneu.rDup, false, qtb_pneu.Banco_Dados), "@P_NR_LANCTO"));
                }

                //Saida do almoxarifado
                CamadaDados.Almoxarifado.TRegistro_Movimentacao _Movimentacao = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                _Movimentacao.Cd_empresa   = _LanPneu.Cd_empresa;
                _Movimentacao.Cd_produto   = _LanPneu.Cd_produto;
                _Movimentacao.Id_almox     = _LanPneu.Id_almox;
                _Movimentacao.Dt_movimento = CamadaDados.UtilData.Data_Servidor();
                _Movimentacao.Tp_movimento = "S";
                _Movimentacao.Quantidade   = 1;

                object obj = new CamadaDados.Almoxarifado.TCD_SaldoAlmoxarifado().BuscarEscalar(
                    new Utils.TpBusca[]
                {
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_empresa",
                        vOperador = "=",
                        vVL_Busca = "'" + _LanPneu.Cd_empresa + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.cd_produto",
                        vOperador = "=",
                        vVL_Busca = "'" + _LanPneu.Cd_produto.Trim() + "'"
                    },
                    new Utils.TpBusca()
                    {
                        vNM_Campo = "a.id_almox",
                        vOperador = "=",
                        vVL_Busca = "'" + _LanPneu.Id_almoxstr + "'"
                    }
                }, "isnull(a.vl_custo, 0)");

                if (obj != null && !string.IsNullOrEmpty(obj.ToString()))
                {
                    _Movimentacao.Vl_unitario = Convert.ToDecimal(obj.ToString());
                }
                _Movimentacao.St_registro   = "A";
                _Movimentacao.Ds_observacao = "SAIDA PARA MANUTENÇÃO POR GESTAO DE PNEUS";

                _MovPneu.Id_movalmoxstr = CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(_Movimentacao, banco);
                _MovPneu.Id_movstr      = CamadaDados.TDataQuery.getPubVariavel(qtb_pneu.Gravar(_MovPneu), "@P_ID_MOV");

                //Atualizar pneu para manutenção
                qtb_pneu.executarSql("update tb_frt_pneus set st_registro = 'M', Dt_Alt = getdate() " +
                                     "where cd_empresa = '" + _LanPneu.Cd_empresa.Trim() + "'" +
                                     "and id_pneu = " + _LanPneu.Id_pneustr, null);

                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(_MovPneu.Id_movstr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar movimentação pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }
Exemple #8
0
        public static string GravarTrocaPneu(TRegistro_LanPneu _LanPneuOrigem,
                                             TRegistro_Rodado _RodadoDestino,
                                             string Id_veiculoOrigem,
                                             string Id_veiculoDestino,
                                             BancoDados.TObjetoBanco banco,
                                             int HodometroOrigem         = 0,
                                             int HodometroDestino        = 0,
                                             decimal ProfundidadeOrigem  = 0,
                                             decimal ProfundidadeDestino = 0)
        {
            bool        st_transacao = false;
            TCD_MovPneu qtb_pneu     = new TCD_MovPneu();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_pneu.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_pneu.Banco_Dados = banco;
                }

                if (_LanPneuOrigem.Status.Equals("ALMOXARIFADO") && HodometroDestino < 1)
                {
                    throw new Exception("Pneu de origem não possui hodometro inicial");
                }
                else if (!string.IsNullOrEmpty(_RodadoDestino.Id_pneu) && HodometroDestino < 1)
                {
                    throw new Exception("Para rodado com pneu em movimentação é obrigatório informar hodometro destino.");
                }
                else if (!string.IsNullOrEmpty(_RodadoDestino.Id_pneu))
                {
                    //Para rodados com pneu deve-se finalizar está movimentação e dar entrada no almoxarifado
                    TRegistro_LanPneu _LanPneu = new TRegistro_LanPneu();
                    _LanPneu = new TCD_LanPneu().Select(new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_pneu",
                            vOperador = "=",
                            vVL_Busca = _RodadoDestino.Id_pneu
                        }
                    }, 1, string.Empty)[0];
                    CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                    rMov.Ds_observacao   = "ENTRADA REALIZADA POR MOVIMENTAÇÃO";
                    rMov.Cd_empresa      = _LanPneu.Cd_empresa;
                    rMov.Id_almoxstr     = _LanPneu.Id_almoxstr;
                    rMov.Cd_produto      = _LanPneu.Cd_produto;
                    rMov.Quantidade      = 1;
                    rMov.Vl_unitario     = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(_LanPneu.Cd_empresa, _LanPneu.Id_almoxstr, _LanPneu.Cd_produto, null);
                    rMov.Tp_movimento    = "E";
                    rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
                    rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                    rMov.St_registro     = "A";
                    CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(rMov, banco);
                    TRegistro_MovPneu _MovPneu = new TCD_MovPneu().Select(new TpBusca[]
                    {
                        new TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = _LanPneu.Cd_empresa
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_pneu",
                            vOperador = "=",
                            vVL_Busca = _LanPneu.Id_pneustr
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_veiculo",
                            vOperador = "=",
                            vVL_Busca = _LanPneu.Id_veiculo
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.id_rodado",
                            vOperador = "=",
                            vVL_Busca = _RodadoDestino.Id_rodadostr
                        },
                        new TpBusca()
                        {
                            vNM_Campo = "a.st_rodando",
                            vOperador = "=",
                            vVL_Busca = "'S'"
                        }
                    }, 1)[0];

                    //Atualizar movimentação/pneu para almoxarifado
                    qtb_pneu.executarSql("update tb_frt_movpneu " +
                                         "   set st_rodando = 'N',  HodometroFinal = " + HodometroDestino + ", Dt_Alt = getdate(), EspessuraBorracha = convert(decimal(15,3), replace('" + ProfundidadeDestino + "', ',','.')) " +
                                         " where id_mov = " + _MovPneu.Id_movstr + " " +
                                         "   and cd_empresa = " + _MovPneu.Cd_empresa + " " +
                                         "   and id_pneu = " + _LanPneu.Id_pneustr + " " +
                                         "   and id_veiculo = " + _LanPneu.Id_veiculo + " " +
                                         "   and id_rodado = " + _RodadoDestino.Id_rodadostr + " " +
                                         "   and st_rodando = 'S'", null);
                    qtb_pneu.executarSql("update tb_frt_pneus set st_registro = 'A', Dt_Alt = getdate() " +
                                         " where cd_empresa = '" + _MovPneu.Cd_empresa.Trim() + "' " +
                                         "   and id_pneu = " + _MovPneu.Id_pneustr, null);
                }

                TRegistro_MovPneu rMovPneu = new TRegistro_MovPneu();
                if (_LanPneuOrigem.Status.Equals("RODANDO"))
                {
                    //Finalizar movimentação do pneu origem
                    if (HodometroOrigem < 1)
                    {
                        throw new Exception("Para evoluir a movimentação é obrigatório informar hodometro no pneu origem.");
                    }
                    qtb_pneu.executarSql("update tb_frt_movpneu " +
                                         "   set st_rodando = 'N',  HodometroFinal = " + HodometroOrigem + ", Dt_Alt = getdate() " +
                                         " where cd_empresa = " + _LanPneuOrigem.Cd_empresa + " " +
                                         "   and id_pneu = " + _LanPneuOrigem.Id_pneustr + " " +
                                         "   and id_veiculo = " + _LanPneuOrigem.Id_veiculo + " " +
                                         "   and id_rodado = " + _LanPneuOrigem.Id_rodado + " " +
                                         "   and st_rodando = 'S'", null);
                    if (HodometroDestino < 1)
                    {
                        throw new Exception("Para evoluir a movimentação é obrigatório informar hodometro no pneu destino.");
                    }
                    rMovPneu.HodometroInicial = HodometroDestino;
                }
                else
                {
                    //Saída do almoxarifado para pneu origem
                    CamadaDados.Almoxarifado.TRegistro_Movimentacao _Movimentacao = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                    _Movimentacao.Cd_empresa   = _LanPneuOrigem.Cd_empresa;
                    _Movimentacao.Cd_produto   = _LanPneuOrigem.Cd_produto;
                    _Movimentacao.Id_almox     = _LanPneuOrigem.Id_almox;
                    _Movimentacao.Dt_movimento = CamadaDados.UtilData.Data_Servidor();
                    _Movimentacao.Tp_movimento = "S";
                    _Movimentacao.Quantidade   = 1;
                    object obj = new CamadaDados.Almoxarifado.TCD_SaldoAlmoxarifado().BuscarEscalar(
                        new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_empresa",
                            vOperador = "=",
                            vVL_Busca = "'" + _LanPneuOrigem.Cd_empresa + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.cd_produto",
                            vOperador = "=",
                            vVL_Busca = "'" + _LanPneuOrigem.Cd_produto.Trim() + "'"
                        },
                        new Utils.TpBusca()
                        {
                            vNM_Campo = "a.id_almox",
                            vOperador = "=",
                            vVL_Busca = "'" + _LanPneuOrigem.Id_almoxstr + "'"
                        }
                    }, "isnull(a.vl_custo, 0)");
                    if (obj != null && !string.IsNullOrEmpty(obj.ToString()))
                    {
                        _Movimentacao.Vl_unitario = Convert.ToDecimal(obj.ToString());
                    }
                    _Movimentacao.St_registro   = "A";
                    _Movimentacao.Ds_observacao = "SAIDA POR MOVIMENTACAO NA GESTAO DE PNEUS";
                    rMovPneu.Id_movalmoxstr     = CamadaNegocio.Almoxarifado.TCN_Movimentacao.Gravar(_Movimentacao, banco);

                    if (HodometroDestino < 1)
                    {
                        throw new Exception("Para pneu com status ALMOXARIFADO deve ser informado hodometro destino.");
                    }
                    rMovPneu.HodometroInicial = HodometroDestino;
                }

                //Nova movimentação
                rMovPneu.Cd_empresa        = _LanPneuOrigem.Cd_empresa;
                rMovPneu.Id_pneu           = _LanPneuOrigem.Id_pneu;
                rMovPneu.Id_veiculostr     = Id_veiculoDestino;
                rMovPneu.Id_rodado         = _RodadoDestino.Id_rodado;
                rMovPneu.St_rodando        = "S";
                rMovPneu.Tp_movimentacao   = "1";
                rMovPneu.Dt_movimento      = CamadaDados.UtilData.Data_Servidor();
                rMovPneu.Cd_produto        = _LanPneuOrigem.Cd_produto;
                rMovPneu.EspessuraBorracha = ProfundidadeOrigem;
                rMovPneu.Id_movstr         = CamadaDados.TDataQuery.getPubVariavel(qtb_pneu.Gravar(rMovPneu), "@P_ID_MOV");

                //Atualizar pneus movimentados para St. Rodando
                _LanPneuOrigem.St_registro = "R";
                Cadastros.TCN_LanPneu.Gravar(_LanPneuOrigem, banco);

                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.Commit_Tran();
                }
                return(rMovPneu.Id_movstr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_pneu.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar movimentação pneu: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_pneu.deletarBanco_Dados();
                }
            }
        }