Na pasta NotaFiscal/Nfe crie um arquivo chamado TabTransporte.blade.php em seguida copie o conteúdo do arquivo TabTransporte do layout baixado e cole na view criada
Na view NotaFiscal/Nfe/Edit.blade.php procure pela palavra Transporte e inclua o arquivo criado, use o código @include('NotaFiscal.Nfe.TabTransporte')
<div id="tab-6" class="cx-tab">
<form id="frmTransporte" name="frmTransporte">
@include('NotaFiscal.Nfe.TabTransporte')
</form>
<div class="d-inline-block width-100 mb-5 mt-0" style="clear:both">
<input type="button" onclick="salvarTransporte()" value="Salvar Dados Transporte"
class="btn btn-azul d-block m-auto">
</div>
</div>
na pasta NotaFiscal/Nfe crie um arquivo chamado modal_transporte em seguida copie o conteúdo do arquivo modal_transporte do layout baixado
Na view Index, faça os seguintes procedimentos:
- Faça o loop para receber os dados do banco e listar na tabela
- Configure o link para fazer a edição de um registro
- Configure o link para fazer a exclusão de um registro
- na listagem crie um link que chame a função selecionar_transportadora(id)
@foreach ($transportadoras as $transportadora)
<tr>
<td align="center"><?php echo $transportadora->id; ?></td>
<td align="left"><?php echo $transportadora->razao_social; ?></td>
<td align="center"><?php echo $transportadora->cnpj; ?></td>
<td align="center">
<a href="javascript:;"
onclick="selecionar_transportadora({{ $transportadora->id }})"
class="d-inline-block btn btn-verde btn-pequeno"><i
class="fas fa-check"></i>
Selecionar</a>
</td>
</tr>
@endforeach
Crie um arquivo javascript na pasta public/assets chamado tabTransporte_js.js
Caso não tenha criado crie uma função para buscar os transportadoras via jquery
No arquivo tabTransporte.js crie um método chamado listarTransportadora, este método deverá fazer uma consulta no banco via jquery e deverá devolver a lista de transportadora, o método deverá chamar a rota transportadora/lista
function listarTransportadora(){
$.ajax({
url: base_url + "transportadora/lista/",
type: "GET",
dataType: "json",
data:{},
success: function (data){
fecharGiraGira(0);
html = "<tr>";
for(var i in data){
html += '<td align="center">' + data[i].id + '</td>' +
'<td align="center">' + data[i].razao_social + '</td>' +
'<td align="center">' + data[i].cnpj + '</td>' +
'<td><a href="javascript:;" onclick="selecionar_transportadora('+ data[i].id +')" class="d-inline-block btn btn-verde btn-pequeno" title="Selecionar">Selecionar</a></td></tr>'
}
$("#lista_de_transoportadoras").html(html);
abrirModal('#janela_transportadora');
},
beforeSend: function () {
giraGira();
},
});
}
No arquivo tabTransporte_js.js crie um método chamado selecionar_transportadora, o qual deverá invocar a rota transportadora/selecionarTransportadora/ do controller TransportadoraController e devolver os dados transportadora selecionada
function selecionar_transportadora(id_transportadora){
$.ajax({
url: base_url + "transportadora/selecionarTransportadora/"+ id_transportadora ,
type: "get",
dataType:"Json",
success: function(data){
populaFornecedor(data);
fecharModal();
},
beforeSend: function(){
giraGira();
}
});
}
No arquivo tabTransporte_js crie um método chamado populaFornecedor, o qual deverá receber a transportadora selecionada e popular os dados nos respectivos componentes
function populaFornecedor(data){
$("#transp_xNome").val(data.razao_social);
$("#transp_CNPJ").val(data.cnpj);
$("#transp_IE").val(data.ie);
$("#transp_xEnder").val(data.logradouro);
$("#transp_xMun").val(data.cidade);
$("#transp_UF").val(data.uf) ;
}
No controller NotaFiscalController crie um método chamado salvarTransporte, o qual deverá receber os dados do formulário e salvar no banco de dados
public function salvarTransporte(Request $request){
$retorno = new \stdClass();
$req = $request->except(["_token","_method"]);
try {
$req["transp_ret_vServ"] = $req["transp_ret_vServ"] ? getFloat($req["transp_ret_vServ"]) : null;
$req["transp_ret_vBCRet"] = $req["transp_ret_vBCRet"] ? getFloat($req["transp_ret_vBCRet"]) : null;
$req["transp_ret_pICMSRet"] = $req["transp_ret_pICMSRet"] ? getFloat($req["transp_ret_pICMSRet"]) : null;
$req["transp_ret_vICMSRet"] = $req["transp_ret_vICMSRet"] ? getFloat($req["transp_ret_vICMSRet"]) : null;
$nfe = Nfe::find($request->nfe_id);
$nfe->update($req);
$retorno->tem_erro = false;
$retorno->erro = "";
return response()->json($retorno);
} catch (\Throwable $th) {
$retorno->tem_erro = true;
$retorno->erro = $th->getMessage();
return response()->json($retorno);
}
}
No arquivo javascript criado crie um método chamado salvarTransporte, o qual deverá:
- receber os dados do formulário frmTransporte
- enviar o dados via ajax para o o método notafiscal/salvarTransporte
function salvarTransporte(){
var frmTransporte = $("#frmTransporte").serializeArray();
frmTransporte.push({ name: "nfe_id", value: nfe_id });
$.ajax({
url: base_url + "notafiscal/salvarTransporte",
type: "post",
dataType:"Json",
data:frmTransporte,
success: function(data){
fecharGiraGira();
if(data.tem_erro ==true){
$("#mostrarUmErro").html(MostrarUmaMsgErro(" Erro: " + data.erro));
}else{
$("#mostrarSucesso").html(MostrarUmaMsgSucesso("Sucesso : " + "Dados da Aba Transporte atualizado com sucesso"));
}
},
beforeSend: function(){
giraGira();
}, error: function (e) {
fecharModal();
var response = JSON.parse(e.responseText);
$("#mostrarErros").html(MostrarMsgErros(response.errors));
}
});
}
No arquivo tabTransporte_js crie um método que verifica se o tipo de transporte é e se for limpa os campos do frete
function verTipoFrete(){
var modFrete = $("#modFrete").val();
if(modFrete=="9"){
$("#transp_xNome").val("");
$("#transp_CNPJ").val("");
$("#transp_IE").val("");
$("#transp_xEnder").val("");
$("#transp_xMun").val("");
$("#transp_UF").val("") ;
}
}