/// <summary>
    /// Carrega a entidade do endereço cadastrado quando for cadastro único, seta o número
    /// e o complemento.
    /// Retorna true:
    /// - Se o endereço não é obrigatório e está completo
    ///     (todos os campos obrigatórios estão preenchidos).
    /// - Se o endereço não é obrigatório e não foi preenchido nenhum campo.
    /// Retorna false:
    /// - Se o endereço é obrigatório e não foi preenchido todos os campos.
    /// - Se o endereço não é obrigatório e tem somente alguns campos preenchidos
    ///     (começou tem que terminar).
    /// </summary>
    /// <param name="ent"></param>
    /// <param name="numero"></param>
    /// <param name="complemento"></param>
    /// <param name="msgErro"></param>
    /// <returns></returns>
    public bool RetornaEnderecoCadastrado(out END_Endereco ent, out string numero, out string complemento, out string msgErro)
    {
        ent         = new END_Endereco();
        msgErro     = "";
        numero      = "";
        complemento = "";

        DataTable dt = RetornaEnderecos();

        if (dt.Rows.Count > 0)
        {
            // Carregar dados do endereço.
            DataRow dr = dt.Rows[0];

            string end_id = dr["end_id"].ToString();

            // Preenche o ID do endereço.
            if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
            {
                ent.end_id = new Guid(dr["id"].ToString());
                ent.IsNew  = true;
            }
            else
            {
                ent.end_id = new Guid(dr["end_id"].ToString());
                ent.IsNew  = false;

                END_EnderecoBO.GetEntity(ent);
            }

            ent.end_cep        = dr["end_cep"].ToString();
            ent.end_logradouro = dr["end_logradouro"].ToString();
            ent.end_distrito   = dr["end_distrito"].ToString();
            ent.end_zona       = Convert.ToByte(dr["end_zona"]);
            ent.end_bairro     = dr["end_bairro"].ToString();
            ent.cid_id         = String.IsNullOrEmpty(dr["cid_id"].ToString()) ? Guid.Empty : new Guid(dr["cid_id"].ToString());
            ent.cid_nome       = dr["cid_nome"].ToString();

            numero      = dr["numero"].ToString();
            complemento = dr["complemento"].ToString();
        }

        bool ret;

        // Verificar se endereço está válido.
        if (_VS_Obrigatorio)
        {
            ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

            if (!ret)
            {
                msgErro = UtilBO.ErrosValidacao(ent);
            }

            if (ent.cid_id == Guid.Empty)
            {
                if (String.IsNullOrEmpty(ent.cid_nome))
                {
                    msgErro += "Cidade é obrigatório.<br/>";
                }
                else
                {
                    msgErro += "Cidade não encontrada.<br/>";
                }
            }

            if (String.IsNullOrEmpty(numero))
            {
                ret      = false;
                msgErro += "Número é obrigatório.";
            }
        }
        else
        {
            if ((!String.IsNullOrEmpty(ent.end_cep)) ||
                (!String.IsNullOrEmpty(ent.end_logradouro)) ||
                (!String.IsNullOrEmpty(numero)) ||
                (!String.IsNullOrEmpty(ent.end_distrito)) ||
                (ent.end_zona > 0) ||
                (!String.IsNullOrEmpty(ent.end_bairro)) ||
                (ent.cid_id != Guid.Empty))
            {
                // Se preencheu pelo menos 1 campo, tem que preencher todos.
                ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                if (!ret)
                {
                    msgErro += UtilBO.ErrosValidacao(ent);
                }

                if (ent.cid_id == Guid.Empty)
                {
                    msgErro += "Cidade é obrigatório.<br/>";
                }

                if (String.IsNullOrEmpty(numero))
                {
                    ret      = false;
                    msgErro += "Número é obrigatório.";
                }
            }
            else
            {
                ret = true;
            }
        }

        return(ret);
    }
Esempio n. 2
0
    /// <summary>
    /// Carrega a entidade do endereço cadastrado quando for cadastro único, seta o número
    /// e o complemento.
    /// Retorna true:
    /// - Se o endereço não é obrigatório e está completo
    ///     (todos os campos obrigatórios estão preenchidos).
    /// - Se o endereço não é obrigatório e não foi preenchido nenhum campo.
    /// Retorna false:
    /// - Se o endereço é obrigatório e não foi preenchido todos os campos.
    /// - Se o endereço não é obrigatório e tem somente alguns campos preenchidos
    ///     (começou tem que terminar).
    /// </summary>
    /// <param name="ent"></param>
    /// <param name="numero"></param>
    /// <param name="complemento"></param>
    /// <param name="msgErro"></param>
    /// <returns></returns>
    public bool RetornaEnderecoCadastrado(out DataTable dt, out string msgErro)
    {
        END_Endereco ent = new END_Endereco();

        msgErro = "";
        string numero      = "";
        string complemento = "";
        double latitude    = 0;
        double longitude   = 0;

        //DataTable
        //dt = RetornaEnderecos();
        dt = VS_Uae;
        bool ret = false;
        bool enderecoPrincipal = false;

        // if (dt.Rows.Count > 0)
        for (int i = 0; i < dt.Rows.Count; i++)
        {
            // Carregar dados do endereço.
            DataRow dr = dt.Rows[i];

            if (Convert.ToBoolean(dr["enderecoprincipal"].ToString()))
            {
                enderecoPrincipal = Convert.ToBoolean(dr["enderecoprincipal"].ToString());
            }

            string end_id = dr["end_id"].ToString();

            // Preenche o ID do endereço.
            if ((String.IsNullOrEmpty(end_id)) || (end_id.Equals(Guid.Empty.ToString())))
            {
                ent.end_id = new Guid(dr["id"].ToString());
                ent.IsNew  = true;
            }
            else
            {
                ent.end_id = new Guid(dr["end_id"].ToString());
                ent.IsNew  = false;

                END_EnderecoBO.GetEntity(ent);
            }

            ent.end_cep        = dr["end_cep"].ToString();
            ent.end_logradouro = dr["end_logradouro"].ToString();
            ent.end_distrito   = dr["end_distrito"].ToString();
            if (!(string.IsNullOrEmpty(dr["end_zona"].ToString())))
            {
                ent.end_zona = Convert.ToByte(dr["end_zona"]);
            }
            ent.end_bairro = dr["end_bairro"].ToString();
            ent.cid_id     = String.IsNullOrEmpty(dr["cid_id"].ToString()) ? Guid.Empty : new Guid(dr["cid_id"].ToString());
            ent.cid_nome   = dr["cid_nome"].ToString();

            numero      = dr["numero"].ToString();
            complemento = dr["complemento"].ToString();

            //}

            // Verificar se endereço está válido.
            if (_VS_Obrigatorio)
            {
                ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                if (!ret)
                {
                    msgErro = UtilBO.ErrosValidacao(ent);
                }
                if (!string.IsNullOrEmpty(dr["latitude"].ToString()))
                {
                    if (double.TryParse(dr["latitude"].ToString(), out latitude))
                    {
                        dr["latitude"] = dr["latitude"].ToString().Replace(".", ",");
                        latitude       = string.IsNullOrEmpty(dr["latitude"].ToString()) ? 0 : double.Parse(dr["latitude"].ToString());
                    }
                    else
                    {
                        msgErro += "Latitude está incorreto.<br/>";
                        ret      = false;
                    }
                }
                if (!string.IsNullOrEmpty(dr["longitude"].ToString()))
                {
                    if (double.TryParse(dr["longitude"].ToString(), out longitude))
                    {
                        dr["longitude"] = dr["longitude"].ToString().Replace(".", ",");
                        longitude       = string.IsNullOrEmpty(dr["longitude"].ToString()) ? 0 : double.Parse(dr["longitude"].ToString());
                    }
                    else
                    {
                        msgErro += "Longitude está incorreto.<br/>";
                        ret      = false;
                    }
                }

                if (ent.cid_id == Guid.Empty)
                {
                    if (String.IsNullOrEmpty(ent.cid_nome))
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade é obrigatório.<br/>";
                    }
                    else
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade não encontrada.<br/>";
                    }
                }

                if (String.IsNullOrEmpty(numero))
                {
                    ret      = false;
                    msgErro += "Endereço " + (i + 1) + " - Número é obrigatório.<br/>";
                }
            }
            else
            {
                if ((!String.IsNullOrEmpty(ent.end_cep)) ||
                    (!String.IsNullOrEmpty(ent.end_logradouro)) ||
                    (!String.IsNullOrEmpty(numero)) ||
                    (!String.IsNullOrEmpty(ent.end_distrito)) ||
                    (ent.end_zona > 0) ||
                    (!String.IsNullOrEmpty(ent.end_bairro)) ||
                    (ent.cid_id != Guid.Empty))
                {
                    // Se preencheu pelo menos 1 campo, tem que preencher todos.
                    ret = ((ent.Validate()) && (ent.cid_id != Guid.Empty));

                    if (!ret)
                    {
                        msgErro += UtilBO.ErrosValidacao(ent);
                    }

                    if (ent.cid_id == Guid.Empty)
                    {
                        msgErro += "Endereço " + (i + 1) + " - Cidade é obrigatório.<br/>";
                    }

                    if (String.IsNullOrEmpty(numero))
                    {
                        ret      = false;
                        msgErro += "Endereço " + (i + 1) + " - Número é obrigatório.<br/>";
                    }
                    if (!enderecoPrincipal)
                    {
                        ret      = false;
                        msgErro += "É necessário selecionar um endereço principal.";
                    }
                    if (!string.IsNullOrEmpty(dr["latitude"].ToString()))
                    {
                        if (double.TryParse(dr["latitude"].ToString(), out latitude))
                        {
                            // dr["latitude"] = dr["latitude"].ToString().Replace(".", ",");
                            latitude = string.IsNullOrEmpty(dr["latitude"].ToString()) ? 0 : double.Parse(dr["latitude"].ToString());
                        }
                        else
                        {
                            msgErro += "Latitude está incorreto.<br/>";
                            ret      = false;
                        }
                    }

                    if (!string.IsNullOrEmpty(dr["longitude"].ToString()))
                    {
                        if (double.TryParse(dr["longitude"].ToString(), out longitude))
                        {
                            // dr["longitude"] = dr["longitude"].ToString().Replace(".", ",");
                            longitude = string.IsNullOrEmpty(dr["longitude"].ToString()) ? 0 : double.Parse(dr["longitude"].ToString());
                        }
                        else
                        {
                            msgErro += "Longitude está incorreto.<br/>";
                            ret      = false;
                        }
                    }
                }
                else
                {
                    ret = true;
                }
            }
        }
        if (!_VS_Obrigatorio && dt.Rows.Count == 0)
        {
            ret = true;
        }

        if (_VS_Obrigatorio && !enderecoPrincipal)
        {
            ret      = false;
            msgErro += "É necessário selecionar um endereço principal.";
        }

        return(ret);
    }