Tip how to spell my code better

0

All right? I would like your experience to give me some tips on how to improve the writing of my code.

Follows:

$(function() {
    preencheInformacoesDaTela();
});


function preencheInformacoesDaTela() {

    $('#codigoTextBox').val('0');
    $.ajax({

        url: "/ATPGTO/AP/ObterDadosUsuario"
    }).done(function(resultUsuario) {

        $('#ufElaboradoraTextBox').val(resultUsuario.Funcionario.Secao.CentroCusto.ID);
        $('#nomeElaboradorInputText').val(resultUsuario.Nome);
        $('#codUsuarioElaboradorInputText').val(resultUsuario.ID);
        listaEstabelecimento(resultUsuario.ID, resultUsuario.Funcionario.Secao.Divisao.Estabelecimento.Sigla);
    }).fail(function(result) {

        console.log("Erro recuperar dados usuario");
    });
    $("#matriculaCoordenadorTextBox").on('change', function() {

        var myLogin = $.trim($("#matriculaCoordenadorTextBox").val());
        if (myLogin != '') {

            $.ajax({

                url: "/adm/Usuario/CarregaUsuarioPorLogin",
                data: {
                    pLogin: myLogin
                }
            }).done(function(result) {

                if (result.Nome != '') {

                    $('#nomeCoordenadorTextBox').val(result.Nome);
                    $('#codUsuarioCordenadorTextBox').val(result.ID);
                } else {

                    $("#nomeCoordenadorTextBox").val('');
                    $('#codUsuarioCordenadorTextBox').val('');
                    $('#matriculaCoordenadorTextBox').val('');
                    $("#matriculaCoordenadorTextBox").focus();
                    var erro = {

                        Tipo: "E",
                        Mensagem: "Usuário inválido ou inexistente"
                    }
                    exibirMensagem(erro, 100);
                }
            }).fail(function(result) {

                console.log("Erro change Matricula");
            });
        };
    });

    preencheTipoProjeto();
    listaCondicao();
    listaItemProjeto();
    preencheSafra();
    datePckr("#dtInicioPrevistoInputText, #dtFimPrevistoInputText");
}

function listaEstabelecimento(codUsuario, estabUsuario) {
    $.ajax({
        url: "/Sacp/Estabelecimento/ListaEstabelecimentoSelecionadoPorElaborador",
        data: {
            pCodUsuario: codUsuario
        },
        beforeSend: function() {
            adicionarLoading('estabelecimentoSelect');
        }
    }).done(function(result) {
        carregarDropDown(result, "estabelecimentoSelect", "Sigla", "Sigla");
        removerLoading('estabelecimentoSelect');
        $("#estabelecimentoSelect").val(estabUsuario).change();
    }).fail(function(result) {
        console.log("Erro - Obter Unidades");
    });
}

$("#estabelecimentoSelect").on('change', function() {

    preencheDestino();

});


function preencheDestino() {

    var estabelecimento = $('#estabelecimentoSelect option:selected').text();
    var codUsuario = $('#codUsuarioElaboradorInputText').val();

    $.ajax({
        url: "/Sacp/CentroCusto/ListaCentroCustoSelecionadoPorElaboradorEstabelecimento",
        data: {
            pCodUsuario: codUsuario,
            pEstabelecimento: estabelecimento
        },
        beforeSend: function() {
            adicionarLoading('destinoSelect');
        }
    }).done(function(result) {
        carregarDropDown(result, "destinoSelect", "ID", "Descricao");
        removerLoading('destinoSelect');
    }).fail(function(result) {
        console.log("Erro - Obter Centro Custo");
    });

}


function preencheSafra() {
    $.ajax({
        url: "/Sacp/Safra/Lista",
        beforeSend: function() {
            adicionarLoading('ddlSafra');
        }
    }).done(function(result) {
        carregarDropDown(result, "ddlSafra", "Codigo", "Descricao");
        removerLoading('ddlSafra');
    }).fail(function(result) {
        console.log("Erro - Obter safra");
    });
}


function preencheTipoProjeto() {
    $.ajax({
        url: "/Sacp/TipoProjeto/Listar",
        beforeSend: function() {
            adicionarLoading('tipoProjetoDropDownList');
        }
    }).done(function(result) {
        carregarDropDown(result, "tipoProjetoDropDownList", "Codigo", "Descricao");
        removerLoading('tipoProjetoDropDownList');
        $('#tipoProjetoDropDownList').trigger('change');
    }).fail(function(result) {
        console.log("Erro - Obter Tipo Projeto");
    });
}

function listaCondicao() {
    $.ajax({
        url: "/Condicao/Listar"
    }).done(function(result) {
        $('#divCondicaoControlerLista').empty();
        $('#divCondicaoControlerLista').append($("<table class='table table-hover' id='teste'>")
            .append($('<thead></thead>')
                .append($('<tr></tr>'))).append($("<tbody></tbody>")));

        $.each(result, function() {
            $('#divCondicaoControlerLista table tbody').append($("<tr style='cursor:pointer'></tr>")
                .append($("<td style='width:10px; display:none;' id='condicaoCodigoInputText" + this.Codigo + "'></td>").text(this.Codigo))
                .append("<td>" + this.Descricao + "<br><textarea rows='3' id='condicaoDescricaoInputText" + this.Codigo + "' class='form-control' name='condicaoDescricaoInputText' required></textarea></td>")
            );
        });

        $('#divCondicaoControlerLista').removeAttr("style");

    }).fail(function() {
        console.log("Erro ao listar Condição do Projeto");
    });
}


function listaItemProjeto() {
    $.ajax({
        url: "/ItemProjeto/Listar"
    }).done(function(result) {
        $('#divItemProjetoControlerLista').empty();
        $('#divItemProjetoControlerLista').append($("<table class='table table-hover' id='itemProjetoTable'>")
            .append($('<thead></thead>')).append($("<tbody></tbody>")));

        $.each(result, function() {
            $('#divItemProjetoControlerLista table tbody').append($("<tr style='cursor:pointer'></tr>")
                .append($("<td id='codigoItemProjetoInputText" + this.Codigo + "' style='width:10px; font-weight:bold; font-size:18px;'></td>").text(this.Codigo))
                .append("<td>" + this.Descricao + "<br><input id='" + "resumoItemProjetoInputText" + this.Codigo + "' class='form-control' name='resumoItemProjetoInputText' /></td>")
                .append("<td style='width:150px;'>Dia(s)<br><input type='text' id='diaInputText" + this.Codigo + "' class='form-control'/></td>")
                .append("<td style='width:150px;'>Custo(R$)<br><input type='text' id='" + "custoItemProjetoInputText" + this.Codigo + "' class='form-control'/></td>")
            );

            $("#custoItemProjetoInputText" + this.Codigo).mask('000.000.000.000.000,00', {
                reverse: true
            });

        });
        $('#divItemProjetoControlerLista').removeAttr("style");

    }).fail(function() {
        console.log("Erro ao listar Item do Projeto");
    });
}

function buscaResponsavelPeloProjeto() {
    var login = $('#matriculaCoordenadorTextBox').val();
    $.ajax({
        url: "/Adm/Usuario/CarregaUsuarioCompletoPorLogin",
        data: {
            pLogin: login
        }
    }).done(function(result) {
        $('#nomeCoordenadorTextBox').val(result.Nome);
    }).fail(function(result) {
        $('#matriculaCoordenadorTextBox').val('');
        $('#nomeCoordenadorTextBox').val('');
        $('#matriculaCoordenadorTextBox').focus();
    });
}


$(function() {
    $("#gravarProjetoButton").on('click', function() {
        var condicoes = [];
        var count = 1;
        $('#divCondicaoControlerLista table tbody tr').each(function() {
            if ($(this).find('#condicaoDescricaoInputText' + count).val() != '') {

                var myCondicao = {

                    Codigo: $($(this).find('#condicaoCodigoInputText' + count)).text(),
                    Resumo: $($(this).find('#condicaoDescricaoInputText' + count)).val()
                };
                condicoes.push(myCondicao);
            }
            count++;

        });



        var itensProjeto = [];
        var count = 1;
        $('#divItemProjetoControlerLista table tbody tr').each(function() {
            if ($(this).find('#resumoItemProjetoInputText' + count).val() != '') {

                var myItemProjeto = {
                    Codigo: $($(this).find('#codigoItemProjetoInputText' + count)).text(),
                    Custo: $($(this).find('#custoItemProjetoInputText' + count)).val(),
                    Dia: $($(this).find('#diaInputText' + count)).val(),
                    Resumo: $($(this).find('#resumoItemProjetoInputText' + count)).val()
                };
                itensProjeto.push(myItemProjeto);
            }
            count++;
        });

        var piiId = 0;
        var piiCodUsuario = $('#codUsuarioElaboradorInputText').val();
        var picCodEstabel = $('#estabelecimentoSelect').val();
        var picUFElaboradora = $('#ufElaboradoraTextBox').val();
        var picUfDestino = $('#destinoSelect').val();
        var piiTipoProjetoId = $('#tipoProjetoDropDownList').val();
        var piiSafra = $('#ddlSafra').val();
        var picTitulo = $('#tituloTextBox').val();
        var picDtIniPrev = $('#dtInicioPrevistoInputText').val();
        var picDtFimPrev = $('#dtFimPrevistoInputText').val();
        var piiRespProjeto = $('#codUsuarioCordenadorTextBox').val();
        var picResposabilidade = $('#responsabilidadeTextArea').val();
        var picAutoridade = $('#autoridadeTextArea').val();
        var picNecessidadeBas = $('#necessidadeTextArea').val();
        var picProduto = $('#produtoDoProjetoTextArea').val();
        var picNecSupOrg = $('#necessidadeDeSuportePelaOrganizacaoTextArea').val();
        var picContrGerInfo = $('#controleDeGerenciamentoDasInfoDoProjetoTextArea').val();
        var piiSituacao = parseInt($('#situacao').val());

        $.ajax({
            url: "/Sacp/Projeto/Gravar",
            type: "POST",
            data: {
                pElaborador: piiCodUsuario,
                pEstab: picCodEstabel,
                pUfElab: picUFElaboradora,
                pDestino: picUfDestino,
                pTpProjeto: piiTipoProjetoId,
                pSafra: piiSafra,
                pTitulo: picTitulo,
                pInicioPrevisto: picDtIniPrev,
                pFimPrevisto: picDtFimPrev,
                pCondicao: condicoes,
                pCodUsuarioCoordenador: piiRespProjeto,
                pResponsabilidade: picResposabilidade,
                pAutoridade: picAutoridade,
                pNecessidade: picNecessidadeBas,
                pProduto: picProduto,
                pItemProjeto: itensProjeto,
                pNecessidadeSuporte: picNecSupOrg,
                pControleGerenciamento: picContrGerInfo,
                pSituacao: piiSituacao
            },
            beforeSend: function() {
                //adicionarLoadingTela();
            }
        }).done(function(resultGravacao) {
            console.log(resultGravacao.Mensagem == "OK");
            if (resultGravacao.Mensagem == "OK") {

                exibirMensagem({
                    tipo: 'S',
                    mensagem: 'Gravação efetuada com sucesso.'
                });

                // limpaFormulario();
                preencheInformacoesDaTela();

            }
        }).fail(function(resultGravacao) {
            if (!resultGravacao == "OK") {
                exibirMensagem(resultGravacao);
            }
        });
    });
});


function limpaFormulario() {

    $('#tituloTextBox').val('');
    $('#dtInicioPrevistoInputText').val('');
    $('#dtFimPrevistoInputText').val('');
    $('#codUsuarioCordenadorTextBox').val('');
    $('#responsabilidadeTextArea').val('');
    $('#autoridadeTextArea').val('');
    $('#necessidadeTextArea').val('');
    $('#produtoDoProjetoTextArea').val('');
    $('#necessidadeDeSuportePelaOrganizacaoTextArea').val('');
    $('#controleDeGerenciamentoDasInfoDoProjetoTextArea').val('');

}
    
asked by anonymous 03.05.2017 / 18:35

1 answer

3

Things to improve:

  • $($(this).find('#algo')).text()

This can be summarized as $(this).find('#algo').text()

  • send many fields in ajax

Instead of having these lines all:

var piiCodUsuario = $('#codUsuarioElaboradorInputText').val();
var picCodEstabel = $('#estabelecimentoSelect').val();
var picUFElaboradora = $('#ufElaboradoraTextBox').val();
var picUfDestino = $('#destinoSelect').val();
var piiTipoProjetoId = $('#tipoProjetoDropDownList').val();

You double down the% ajax% object, you could have those fields all within a data and then use a <form> to send all at once. The code would look something like:

data: form.serialize(),

Nothing else ...

  • $(form).serialize()

Like the previous question, if you have a function limpaFormulario() { element you can call the <form> and you no longer need this function.

  • callbacks for jQuery objects

In general, and when the context of execution of this code is not important:

// A:
$("#estabelecimentoSelect").on('change', function() {

    preencheDestino();

});
// B:
$(function() {
    preencheInformacoesDaTela();
});

can be shortened and the callback function passed directly to jQuery:

// A:
$("#estabelecimentoSelect").on('change', preencheDestino);

// B:
$(preencheInformacoesDaTela);
    
03.05.2017 / 18:48