Пример #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);
 }
Пример #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();
                }
            }
        }
Пример #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();
                }
            }
        }
Пример #4
0
        public static string ProcessarMudanca(TRegistro_LanMudanca val, BancoDados.TObjetoBanco banco)
        {
            bool           st_transacao = false;
            TCD_LanMudanca qtb_mud      = new TCD_LanMudanca();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_mud.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_mud.Banco_Dados = banco;
                }
                //Gravar Duplicata
                if (val.lDup.Count > 0)
                {
                    TCN_LanDuplicata.GravarDuplicata(val.lDup, false, qtb_mud.Banco_Dados);
                    val.Nr_lancto = val.lDup[0].Nr_lancto;
                }
                //Gravar lançamento almoxarifado
                val.lMaterialMud.ForEach(p =>
                {
                    //Buscar Almoxarifado
                    CamadaDados.Almoxarifado.TList_CadAlmoxarifado lAlmox =
                        new CamadaDados.Almoxarifado.TCD_CadAlmoxarifado().Select(
                            new Utils.TpBusca[]
                    {
                        new Utils.TpBusca()
                        {
                            vNM_Campo = string.Empty,
                            vOperador = "exists",
                            vVL_Busca = "(select 1 from tb_amx_almox_x_empresa x " +
                                        "where x.id_almox = a.id_almox " +
                                        "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "')"
                        }
                    }, 1, string.Empty);
                    if (lAlmox.Count == 0)
                    {
                        throw new Exception("Não existe configuração de almoxarifado para a empresa!");
                    }
                    //Criar registro movimentação
                    CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov =
                        new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                    rMov.Ds_observacao = "PRODUTO RETIRADO PELO MÓDULO MUDANÇA";
                    rMov.Cd_empresa    = val.Cd_empresa;
                    rMov.Id_almoxstr   = lAlmox[0].Id_almoxString;
                    rMov.Cd_produto    = p.Cd_produto;
                    rMov.Quantidade    = p.Quantidade;
                    rMov.Vl_unitario   = CamadaNegocio.Almoxarifado.TCN_SaldoAlmoxarifado.Vl_Custo_Almox_Prod(val.Cd_empresa,
                                                                                                              lAlmox[0].Id_almoxString,
                                                                                                              p.Cd_produto,
                                                                                                              qtb_mud.Banco_Dados);
                    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, qtb_mud.Banco_Dados);
                    //Gravar Material mudança
                    p.Id_movimento = rMov.Id_movimento;
                    TCN_MaterialMud.Gravar(p, qtb_mud.Banco_Dados);
                });
                val.St_registro = "4";//Processada
                //Gravar processamento mudança
                qtb_mud.Gravar(val);
                if (st_transacao)
                {
                    qtb_mud.Banco_Dados.Commit_Tran();
                }
                return("OK");
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_mud.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro Gravar registro: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_mud.deletarBanco_Dados();
                }
            }
        }
Пример #5
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();
                }
            }
        }
Пример #6
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();
                }
            }
        }
Пример #7
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();
                }
            }
        }
Пример #8
0
        public static string Gravar(TRegistro_Compra_Itens val, BancoDados.TObjetoBanco banco)
        {
            bool             st_transacao = false;
            TCD_Compra_Itens qtb_compra   = new TCD_Compra_Itens();

            try
            {
                if (banco == null)
                {
                    st_transacao = qtb_compra.CriarBanco_Dados(true);
                }
                else
                {
                    qtb_compra.Banco_Dados = banco;
                }
                val.Id_itemcomprastr = CamadaDados.TDataQuery.getPubVariavel(qtb_compra.Gravar(val), "@P_ID_ITEMCOMPRA");
                if (!string.IsNullOrEmpty(val.Cd_produto))
                {
                    //Produto movimenta estoque ou almoxarifado
                    if (!new CamadaDados.Estoque.Cadastros.TCD_CadProduto(qtb_compra.Banco_Dados).ProdutoConsumoInterno(val.Cd_produto))
                    {
                        if (new CamadaDados.Estoque.TCD_LanEstoque(qtb_compra.Banco_Dados).BuscarEscalar(
                                new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from TB_FAT_CompraItens_X_Estoque x " +
                                            "where x.id_lanctoestoque = a.id_lanctoestoque " +
                                            "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "'" +
                                            "and x.id_compra = " + val.Id_comprastr + " " +
                                            "and x.id_itemcompra = " + val.Id_itemcomprastr + ") "
                            }
                        }, "1") == null)
                        {
                            //Gravar estoque da compra
                            string ret_estoque =
                                Estoque.TCN_LanEstoque.GravarEstoque(
                                    new CamadaDados.Estoque.TRegistro_LanEstoque()
                            {
                                Cd_empresa    = val.Cd_empresa,
                                Cd_produto    = val.Cd_produto,
                                Cd_local      = val.Cd_local,
                                Dt_lancto     = CamadaDados.UtilData.Data_Servidor(),
                                Tp_movimento  = "E",
                                Qtd_entrada   = val.Quantidade,
                                Qtd_saida     = decimal.Zero,
                                Vl_unitario   = Math.Round(decimal.Divide(val.Vl_subtotal + val.Vl_despesas - val.Vl_desconto, val.Quantidade), 7, MidpointRounding.AwayFromZero),
                                Vl_subtotal   = val.Vl_subtotal + val.Vl_despesas - val.Vl_desconto,
                                Tp_lancto     = "N",
                                Ds_observacao = "ENTRADA DEVIDA AO ROMANEIRO DE COMPRA N. " + val.Id_comprastr
                            }, qtb_compra.Banco_Dados);
                            //Gravar estoque X compra avulsa
                            TCN_CompraItens_X_Estoque.Gravar(new TRegistro_CompraItens_X_Estoque()
                            {
                                Cd_empresa       = val.Cd_empresa,
                                Id_compra        = val.Id_compra,
                                Id_itemcompra    = val.Id_itemcompra,
                                Cd_produto       = val.Cd_produto,
                                Id_lanctoestoque = Convert.ToDecimal(CamadaDados.TDataQuery.getPubVariavel(ret_estoque, "@@P_ID_LANCTOESTOQUE"))
                            }, qtb_compra.Banco_Dados);
                        }
                    }
                    else
                    {
                        if (new CamadaDados.Almoxarifado.TCD_Movimentacao(qtb_compra.Banco_Dados).BuscarEscalar(
                                new Utils.TpBusca[]
                        {
                            new Utils.TpBusca()
                            {
                                vNM_Campo = string.Empty,
                                vOperador = "exists",
                                vVL_Busca = "(select 1 from TB_FAT_CompraItens_X_Almox x " +
                                            "where x.id_movimento = a.id_movimento " +
                                            "and x.cd_empresa = '" + val.Cd_empresa.Trim() + "'" +
                                            "and x.id_compra = " + val.Id_comprastr + " " +
                                            "and x.id_itemcompra = " + val.Id_itemcomprastr + ") "
                            }
                        }, "1") == null)
                        {
                            //Buscar Almoxarifado
                            CamadaDados.Faturamento.Cadastros.TList_CfgCompraAvulsa lCfg =
                                new CamadaDados.Faturamento.Cadastros.TCD_CfgCompraAvulsa().Select(
                                    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_almox",
                                    vOperador = "is not",
                                    vVL_Busca = "null"
                                }
                            }, 1, string.Empty);
                            if (lCfg.Count == 0)
                            {
                                throw new Exception("Não existe configuração de almoxarifado para a empresa!");
                            }
                            //Criar registro movimentação
                            CamadaDados.Almoxarifado.TRegistro_Movimentacao rMov = new CamadaDados.Almoxarifado.TRegistro_Movimentacao();
                            rMov.Ds_observacao   = "ENTRADA REALIZADA PELO ROMANEIO DE COMPRA N. " + val.Id_itemcomprastr;
                            rMov.Cd_empresa      = val.Cd_empresa;
                            rMov.Id_almoxstr     = lCfg[0].Id_almoxstr;
                            rMov.Cd_produto      = val.Cd_produto;
                            rMov.Quantidade      = val.Quantidade;
                            rMov.Vl_unitario     = Math.Round(decimal.Divide(val.Vl_subtotal + val.Vl_despesas - val.Vl_desconto, val.Quantidade), 5, MidpointRounding.AwayFromZero);
                            rMov.Tp_movimento    = "E";
                            rMov.LoginAlmoxarife = Utils.Parametros.pubLogin;
                            rMov.Dt_movimento    = CamadaDados.UtilData.Data_Servidor();
                            rMov.St_registro     = "A";
                            //Gravar Movimentação
                            Almoxarifado.TCN_Movimentacao.Gravar(rMov, qtb_compra.Banco_Dados);
                            //Gravar almoxarifado X compra avulsa
                            TCN_CompraItens_X_Almox.Gravar(new TRegistro_CompraItens_X_Almox()
                            {
                                Cd_empresa      = val.Cd_empresa,
                                Id_compra       = val.Id_compra,
                                Id_itemcompra   = val.Id_itemcompra,
                                Cd_produto      = val.Cd_produto,
                                Id_movimentostr = rMov.Id_movimentostr
                            }, qtb_compra.Banco_Dados);
                        }
                    }
                }
                //Amarrar item a Ordem servico
                val.lItemOs.ForEach(p =>
                {
                    p.Cd_empresa    = val.Cd_empresa;
                    p.Id_compra     = val.Id_compra;
                    p.Id_itemcompra = val.Id_itemcompra;
                    TCN_CompraItens_X_PecaOS.Gravar(p, qtb_compra.Banco_Dados);
                });
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.Commit_Tran();
                }
                return(val.Id_itemcomprastr);
            }
            catch (Exception ex)
            {
                if (st_transacao)
                {
                    qtb_compra.Banco_Dados.RollBack_Tran();
                }
                throw new Exception("Erro gravar itens compra: " + ex.Message.Trim());
            }
            finally
            {
                if (st_transacao)
                {
                    qtb_compra.deletarBanco_Dados();
                }
            }
        }
Пример #9
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();
                }
            }
        }