Exemplo n.º 1
0
        public override bool execute( )
        {
            if (base.execute() == false)
            {
                return(false);
            }

            Registry("execute fetch_chamados ");

            /// USER [ execute ]

            T_Usuario usrConvey        = new T_Usuario(this);
            T_Usuario usrConveyCriador = new T_Usuario(this);

            if (input_st_operador.Length > 0)
            {
                if (!usrConvey.select_rows_login(input_st_operador, "000000"))
                {
                    PublishError("Usuário inexistente");
                    return(false);
                }

                if (!usrConvey.fetch())
                {
                    return(false);
                }
            }

            if (input_st_resp.Length > 0)
            {
                if (!usrConveyCriador.select_rows_login(input_st_resp, "000000"))
                {
                    PublishError("Usuário inexistente");
                    return(false);
                }

                if (!usrConveyCriador.fetch())
                {
                    return(false);
                }
            }

            T_Loja loj = new T_Loja(this);

            if (input_st_loja.Length > 0)
            {
                if (!loj.select_rows_loja(input_st_loja))
                {
                    PublishError("Código de loja inválido");
                    return(false);
                }

                if (!loj.fetch())
                {
                    return(false);
                }
            }

            T_Chamado cham = new T_Chamado(this);

            #region - busca pela data -

            if (input_dt_ini_ab.Length > 0 &&
                input_dt_fim_ab.Length > 0 &&
                input_dt_ini_fech.Length > 0 &&
                input_dt_fim_fech.Length > 0)
            {
                if (!cham.select_rows_abert_fech(input_dt_ini_ab,
                                                 input_dt_fim_ab,
                                                 input_dt_ini_fech,
                                                 input_dt_fim_fech))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (input_dt_ini_ab.Length > 0 &&
                     input_dt_fim_ab.Length > 0 &&
                     input_dt_ini_fech.Length > 0 &&
                     input_dt_fim_fech.Length == 0)
            {
                if (!cham.select_rows_abert_fech(input_dt_ini_ab,
                                                 input_dt_fim_ab,
                                                 input_dt_ini_fech))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (input_dt_ini_ab.Length > 0 &&
                     input_dt_fim_ab.Length > 0 &&
                     input_dt_ini_fech.Length == 0 &&
                     input_dt_fim_fech.Length == 0)
            {
                if (!cham.select_rows_abert_fech(input_dt_ini_ab,
                                                 input_dt_fim_ab))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (input_dt_ini_ab.Length > 0 &&
                     input_dt_fim_ab.Length == 0 &&
                     input_dt_ini_fech.Length == 0 &&
                     input_dt_fim_fech.Length == 0)
            {
                if (!cham.select_rows_abert_fech(input_dt_ini_ab))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (input_dt_ini_ab.Length > 0 &&
                     input_dt_fim_ab.Length == 0 &&
                     input_dt_ini_fech.Length > 0 &&
                     input_dt_fim_fech.Length == 0)
            {
                if (!cham.select_rows_abert_fech_ini(input_dt_ini_ab,
                                                     input_dt_ini_fech))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }
            else if (input_dt_ini_ab.Length == 0 &&
                     input_dt_fim_ab.Length == 0 &&
                     input_dt_ini_fech.Length > 0 &&
                     input_dt_fim_fech.Length == 0)
            {
                if (!cham.select_rows_fech(input_dt_ini_fech))
                {
                    PublishError("Nenhum registro encontrado");
                    return(false);
                }
            }

            #endregion

            StringBuilder sb = new StringBuilder();

            while (cham.fetch())
            {
                if (input_st_loja.Length > 0)
                {
                    if (cham.get_fk_loja() != loj.get_identity())
                    {
                        continue;
                    }
                }

                if (input_st_operador.Length > 0)
                {
                    if (cham.get_fk_operador() != usrConvey.get_identity())
                    {
                        continue;
                    }
                }
                else if (!usrConvey.selectIdentity(cham.get_fk_operador()))
                {
                    continue;
                }

                if (input_st_resp.Length > 0)
                {
                    if (cham.get_fk_oper_criador() != usrConveyCriador.get_identity())
                    {
                        continue;
                    }
                }
                else if (!usrConveyCriador.selectIdentity(cham.get_fk_oper_criador()))
                {
                    continue;
                }

                if (input_nu_prioridade != "-1")
                {
                    if (cham.get_nu_prioridade() != input_nu_prioridade)
                    {
                        continue;
                    }
                }

                if (input_nu_categ != "-1")
                {
                    if (cham.get_nu_categoria() != input_nu_categ)
                    {
                        continue;
                    }
                }

                if (cham.get_tg_fechado() != input_tg_closed)
                {
                    continue;
                }

                if (cham.get_tg_tecnico() != input_tg_tecnico)
                {
                    continue;
                }

                DadosChamado dc = new DadosChamado();

                dc.set_id_chamado(cham.get_identity());
                dc.set_st_oper(usrConvey.get_st_nome());
                dc.set_st_resp(usrConveyCriador.get_st_nome());
                dc.set_dt_ab(cham.get_dt_abertura());
                dc.set_st_motivo(cham.get_st_motivo());

                if (cham.get_tg_fechado() == Context.TRUE)
                {
                    dc.set_dt_fech(cham.get_dt_fechamento());
                }

                DataPortable tmp = dc as DataPortable;

                // ## indexa em memória

                sb.Append(MemorySave(ref tmp));
                sb.Append(",");
            }

            string list_ids = sb.ToString().TrimEnd(',');

            if (list_ids == "")
            {
                PublishNote("Nenhum resultado foi encontrado");
                return(true);
            }

            DataPortable dp = new DataPortable();

            dp.setValue("ids", list_ids);

            // ## cria indexador de bloco

            output_st_block = MemorySave(ref dp);

            /// USER [ execute ] END

            Registry("execute done fetch_chamados ");

            return(true);
        }