예제 #1
0
        public static string Excluir(TRegistro_Rodado val, BancoDados.TObjetoBanco banco)
        {
            bool       st_transacao = false;
            TCD_Rodado qtb_con      = new TCD_Rodado();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_con.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_con.Banco_Dados = banco;
                }
                //Validar se possui veiculo relacionado
                TpBusca[] tpBuscas = new TpBusca[0];
                Estruturas.CriarParametro(ref tpBuscas, "a.id_rodado", val.Id_rodadostr);
                if (Convert.ToInt32(new TCD_RodadoVeic().BuscarEscalar(tpBuscas, "count(*)")) > 0)
                {
                    throw new Exception("Não foi possível excluir o rodado selecionado, pois possui veiculo vinculado.");
                }

                qtb_con.Excluir(val);
                if (st_transacao)
                {
                    qtb_con.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_con.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro excluir rodado: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_con.deletarBanco_Dados();
                }
            }
        }
예제 #2
0
        public static string Gravar(TRegistro_Rodado val, BancoDados.TObjetoBanco banco)
        {
            bool       st_transacao = false;
            TCD_Rodado qtb_con      = new TCD_Rodado();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_con.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_con.Banco_Dados = banco;
                }
                val.Id_rodadostr = CamadaDados.TDataQuery.getPubVariavel(qtb_con.Gravar(val), "@P_ID_RODADO");
                if (st_transacao)
                {
                    qtb_con.Banco_Dados.Commit_Tran();
                }
                return(val.Id_rodadostr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_con.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar rodado: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_con.deletarBanco_Dados();
                }
            }
        }
예제 #3
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();
                }
            }
        }