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); }
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(); } } }
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(); } } }
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(); } } }
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(); } } }
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(); } } }
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(); } } }
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(); } } }
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(); } } }