Exemple #1
0
 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);
         }
     }
 }
Exemple #2
0
        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);
            }
        }
Exemple #3
0
        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);
            }
        }