private CamadaDados.Servicos.TRegistro_LanServicoEvolucao InserirEvolucao() { using (TFLan_Evolucao_Ordem_Servico fEvolucao = new TFLan_Evolucao_Ordem_Servico()) { fEvolucao.TP_Ordem = TP_Ordem.Text; //Buscar etapa envio equipamento para fornecedor object obj = new CamadaDados.Servicos.Cadastros.TCD_EtapaOrdem().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "isnull(a.st_envterceiro, 'N')", vOperador = "=", vVL_Busca = "'S'" } }, "a.id_etapa"); if (obj != null) { fEvolucao.Etapa_atual = obj.ToString(); } if (fEvolucao.ShowDialog() == DialogResult.OK) { return(fEvolucao.rEvolucao); } else { return(null); } } }
private void afterAlterarEvolucao() { if (bsOrdemServico.Current != null) { if (bsEvolucao.Current == null) { MessageBox.Show("Obrigatorio selecionar etapa para alterar.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if ((bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).St_evolucao == "E") { MessageBox.Show("Não é permitido alterar etapa encerrada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } using (TFLan_Evolucao_Ordem_Servico fEvolucao = new TFLan_Evolucao_Ordem_Servico()) { fEvolucao.St_altera = true; fEvolucao.TP_Ordem = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Tp_ordemstr; fEvolucao.Etapa_atual = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Id_etapastr; fEvolucao.rEvolucao = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao); string cd_tecnico = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Cd_tecnico; string nm_tecnico = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).NM_Tecnico; string ds_evolucao = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Ds_evolucao; DateTime?dt_ini = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Dt_inicio; DateTime?dt_prev = (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Dt_previstatermino; if (fEvolucao.ShowDialog() != DialogResult.OK) { (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Cd_tecnico = cd_tecnico; (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).NM_Tecnico = nm_tecnico; (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Ds_evolucao = ds_evolucao; (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Dt_inicio = dt_ini; (bsEvolucao.Current as CamadaDados.Servicos.TRegistro_LanServicoEvolucao).Dt_previstatermino = dt_prev; bsOrdemServico.ResetCurrentItem(); } } } else { MessageBox.Show("Não existe ordem de serviço selecionada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } }
private void afterInserirEvolucao() { if (bsOrdemServico.Current != null) { CamadaDados.Servicos.TRegistro_LanServicoEvolucao regEvolucao = null; if ((bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).lEvolucao.Count > 0) { regEvolucao = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).lEvolucao.OrderByDescending(p => p.Dt_inicio).Take(1).ToList()[0]; } bool st_loteprocessado = false; if (regEvolucao != null) { if (regEvolucao.St_envterceiro) { object obj = new CamadaDados.Servicos.TCD_Lote_X_Servicos().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = "c.id_os", vOperador = "=", vVL_Busca = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Id_os.ToString() } }, "b.st_registro"); if (obj != null) { if (obj.ToString().Trim().ToUpper().Equals("A")) { if (!(MessageBox.Show("Ordem serviço esta amarrada a um lote que ainda não foi enviado.\r\n" + "O lançamento de uma nova evolução ira desamarrar a ordem de serviço do lote.\r\r\r\n" + "Deseja continuar?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)) { return; } } else { st_loteprocessado = true; } } else if (!(MessageBox.Show("Ordem de serviço não foi enviada para fornecedor.\r\n" + "Deseja continuar?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)) { return; } //Verificar se o lote esta processado if (st_loteprocessado) { //Verificar se existe alguma nota de retorno para a os obj = new CamadaDados.Faturamento.NotaFiscal.TCD_LanFaturamento_Item().BuscarEscalar( new Utils.TpBusca[] { new Utils.TpBusca() { vNM_Campo = string.Empty, vOperador = "exists", vVL_Busca = "(select 1 from tb_ose_lote x " + "inner join tb_ose_lote_x_servico y " + "on x.cd_empresa = y.cd_empresa " + "and x.id_lote = y.id_lote " + "inner join tb_ose_servico z " + "on y.cd_empresa = z.cd_empresa " + "and y.id_os = z.id_os " + "where x.nr_pedido = a.nr_pedido " + "and z.cd_produtoos = a.cd_produto " + "and nf.tp_movimento = 'E' " + "and isnull(nf.st_registro, 'A') <> 'C')" } }, "nf.nr_notafiscal"); if (obj == null) { if (!(MessageBox.Show("Não existe nota de devolução do produto desta ordem de serviço.\r\n" + "Deseja alterar etapa evolução mesmo assim?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes)) { return; } } else { MessageBox.Show("Nota Fiscal de retorno Nº " + obj.ToString().Trim() + ".", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } } using (TFLan_Evolucao_Ordem_Servico fEvolucao = new TFLan_Evolucao_Ordem_Servico()) { fEvolucao.TP_Ordem = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Tp_ordemstr; if (regEvolucao != null) { fEvolucao.Etapa_atual = regEvolucao.Id_etapastr; } if (fEvolucao.ShowDialog() == DialogResult.OK) { (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).lEvolucao.ForEach(p => { p.St_evolucao = "E"; p.Dt_final = CamadaDados.UtilData.Data_Servidor(); p.Cd_tecnico = string.IsNullOrEmpty(p.Cd_tecnico) ? fEvolucao.rEvolucao.Cd_tecnico : p.Cd_tecnico; }); CamadaDados.Servicos.Cadastros.TList_EtapaOrdem lEtapa = CamadaNegocio.Servicos.Cadastros.TCN_EtapaOrdem.Buscar(fEvolucao.rEvolucao.Id_etapa.Value.ToString(), string.Empty, null); if (lEtapa.Count > 0) { fEvolucao.rEvolucao.St_iniciarOS = lEtapa[0].St_iniciarOSbool; fEvolucao.rEvolucao.St_finalizarOS = lEtapa[0].St_finalizarOSbool; fEvolucao.rEvolucao.St_envterceiro = lEtapa[0].St_envterceirobool; if (fEvolucao.rEvolucao.St_finalizarOS) { fEvolucao.rEvolucao.St_evolucao = "E"; fEvolucao.rEvolucao.Dt_final = CamadaDados.UtilData.Data_Servidor(); } } //Verificar se a etapa que esta sendo inserida nao e de Envio para terceiro if (fEvolucao.rEvolucao.St_envterceiro) { if (MessageBox.Show("Evolução exige envio da ordem serviço para fornecedor.\r\n" + "Deseja amarrar ordem a um lote ja existente?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1) == DialogResult.Yes) { using (TFLanLoteAberto fLote = new TFLanLoteAberto()) { fLote.Cd_empresa = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Cd_empresa; if (fLote.ShowDialog() == DialogResult.OK) { if (fLote.rLote != null) { (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).rLoteServico = new CamadaDados.Servicos.TRegistro_Lote_X_Servicos() { Cd_empresa = fLote.rLote.Cd_empresa, Id_lote = fLote.rLote.Id_lote, Id_os = (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Id_os } } } ; } } } //Verificar se a etapa e de finalizacao if (fEvolucao.rEvolucao.St_finalizarOS) { (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).St_os = "FE"; (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).Dt_finalizada = DateTime.Now; } //Inserir novo registro (bsOrdemServico.Current as CamadaDados.Servicos.TRegistro_LanServico).lEvolucao.Add( fEvolucao.rEvolucao); bsOrdemServico.ResetCurrentItem(); } } } else { MessageBox.Show("Não existe ordem de serviço selecionada.", "Mensagem", MessageBoxButtons.OK, MessageBoxIcon.Information); } }