arcadiasuite/plus/public/js/novo_fornecedor.js

138 lines
4.6 KiB
JavaScript

$("#inp-novo_cidade_id").select2({
minimumInputLength: 2,
language: "pt-BR",
placeholder: "Digite para buscar a cidade",
width: "100%",
dropdownParent: $("#modal_novo_fornecedor"),
ajax: {
cache: true,
url: path_url + "api/buscaCidades",
dataType: "json",
data: function (params) {
console.clear();
var query = {
pesquisa: params.term,
};
return query;
},
processResults: function (response) {
var results = [];
$.each(response, function (i, v) {
var o = {};
o.id = v.id;
o.text = v.info;
o.value = v.id;
results.push(o);
});
return {
results: results,
};
},
},
});
$(document).on("click", ".btn-store-fornecedor", function () {
var json = {};
var a = $("#modal_novo_fornecedor").serializeArray();
let msg = ""
$("#modal_novo_fornecedor").find('input, select').each(function () {
if (($(this).val() == "" || $(this).val() == null) && $(this).attr("type") != "hidden" && $(this).attr("type") != "file" && !$(this).hasClass("ignore")) {
if($(this).prev()[0].textContent){
msg += "Informe o campo " + $(this).prev()[0].textContent + "\n"
}
}
if($(this)[0].name){
let name = $(this)[0].name
name = name.replace("novo_", "")
json[name] = $(this).val()
}
})
json['empresa_id'] = $('#empresa_id').val()
setTimeout(() => {
if(msg == ""){
// console.log(json)
$.post(path_url + "api/fornecedores/store", json)
.done((res) => {
$('#modal_novo_fornecedor').modal('hide')
// console.log(res)
swal("Sucesso", "Fornecedor cadastrado!", "success")
var newOption = new Option(res.info, res.id, false, false);
$('#inp-fornecedor_id').append(newOption);
setTimeout(() => {
if(typeof getFornecedor === 'function') {
getFornecedor(res.id)
}
}, 100)
$("#modal_novo_fornecedor").find('input, select').each(function () {
$(this).val('')
})
})
.fail((err) => {
console.log(err)
swal("Erro", "Erro ao cadastrar forencedor: " + err.responseJSON, "error")
})
}else{
swal("Alerta", msg, "warning")
}
}, 300)
})
$(document).on("blur", "#inp-novo_cpf_cnpj", function () {
let cpf_cnpj = $(this).val().replace(/[^0-9]/g,'')
if(cpf_cnpj.length == 14){
$.get('https://publica.cnpj.ws/cnpj/' + cpf_cnpj)
.done((data) => {
if (data!= null) {
let ie = ''
if (data.estabelecimento.inscricoes_estaduais.length > 0) {
ie = data.estabelecimento.inscricoes_estaduais[0].inscricao_estadual
}
$('#inp-novo_ie').val(ie)
if(ie != ""){
$('#inp-novo_contribuinte').val(1).change()
}
$('#inp-novo_razao_social').val(data.razao_social)
$('#inp-novo_nome_fantasia').val(data.estabelecimento.nome_fantasia)
$("#inp-novo_rua").val(data.estabelecimento.tipo_logradouro + " " + data.estabelecimento.logradouro)
$('#inp-novo_numero').val(data.estabelecimento.numero)
$("#inp-novo_bairro").val(data.estabelecimento.bairro);
let cep = data.estabelecimento.cep.replace(/[^\d]+/g, '');
$('#inp-novo_cep').val(cep.substring(0, 5) + '-' + cep.substring(5, 9))
$('#inp-novo_email').val(data.estabelecimento.email)
$('#inp-novo_telefone').val(data.estabelecimento.telefone1)
findCidade(data.estabelecimento.cidade.ibge_id)
}
})
.fail((err) => {
console.log(err)
// swal("Erro", err.responseJSON, "error")
})
}
})
function findCidade(codigo_ibge){
$('#inp-cidade_id').html('')
$.get(path_url + "api/cidadePorCodigoIbge/" + codigo_ibge)
.done((res) => {
var newOption = new Option(res.info, res.id, false, false);
$('#inp-novo_cidade_id').append(newOption).trigger('change');
})
.fail((err) => {
console.log(err)
})
}
$('#inp-novo_ie').blur(() => {
if($('#inp-novo_ie').val() != ""){
$('#inp-novo_contribuinte').val(1).change()
}
})