Na pasta NotaFiscal/Nfe crie um arquivo chamado TabAdicional.blade.php em seguida copie o conteúdo do arquivo TabAdicional do layout baixado e cole na view criada
Na view NotaFiscal/Nfe/Edit.blade.php procure pela palavra Adicional e inclua o arquivo criado, use o código @include('NotaFiscal.Nfe.TabAdicional')
<div id="tab-8" class="cx-tab">
<form id="frmAdicional" name="frmAdicional">
@include('NotaFiscal.Nfe.TabAdicional')
</form>
<div class="d-inline-block width-100 mb-5 mt-0" style="clear:both">
<input type="button" onclick="salvarAdicional()" value="Salvar Dados Adicionais"
class="btn btn-azul d-block m-auto">
</div>
</div>
Crie um arquivo javascript na pasta public chamado tabAdicional_js.js
No controller NotaFiscalController crie um método chamado salvarAdicional, o qual deverá receber os dados do formulário e salvar no banco de dados
public function salvarAdicional(Request $request){
$retorno = new \stdClass();
$req = $request->except(["_token","_method"]);
try {
$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 salvarAdicional, o qual deverá:
- receber os dados do formulário frmAdicional
- enviar o dados via ajax para o o método notafiscal/salvarAdicional
function salvarAdicional(){
var frmAdicional = $("#frmAdicional").serializeArray();
frmAdicional.push({ name: "nfe_id", value: nfe_id });
$.ajax({
url: base_url + "notafiscal/salvarAdicional",
type: "post",
dataType:"Json",
data:frmAdicional,
success: function(data){
fecharGiraGira();
if(data.tem_erro ==true){
$("#mostrarUmErro").html(MostrarUmaMsgErro(" Erro: " + data.erro));
}else{
$("#mostrarSucesso").html(MostrarUmaMsgSucesso("Sucesso : " + "Dados da Aba Adicional atualizado com sucesso"));
}
},
beforeSend: function(){
giraGira();
}, error: function (e) {
fecharModal();
var response = JSON.parse(e.responseText);
$("#mostrarErros").html(MostrarMsgErros(response.errors));
}
});
}
Na pasta NotaFiscal/Nfe crie um arquivo chamado TabAutorizado.blade.php em seguida copie o conteúdo do arquivo TabAutorizado do layout baixado e cole na view criada
Crie um controller chamado NfeAutorizadoController, para que o projeto fique mais organizado salve o controller numa pasta chamada NotaFiscal
Para criar o controller use o comando: php artisan make:controller \NotaFiscal\NfeAutorizadoController-r
Crie um arquivo javascript na pasta public chamado tabAutorizado_js.js
no arquivo tabAutorizado_js.js, crie um método chamado inserirAutorizado, o qual deverá:
- chamar os campos : nfe_id, aut_contato, aut_cnpj
- via ajax chame o método store da nfeautorizado passando os campos como parâmetro.
function inserirAutorizado(){
$.ajax({
url: base_url + "nfeautorizado",
type: "post",
dataType:"Json",
data:{
nfe_id : nfe_id,
aut_contato : $("#aut_contato").val(),
aut_cnpj : $("#aut_cnpj").val(),
},
success: function(data){
$("#aut_contato").val(' ');
$("#aut_cnpj").val(' ');
lista_autorizado(data);
fecharModal();
},
beforeSend: function(){
giraGira();
}
});
}
No arquivo tabAutorizado_js crie um método chamado lista_autorizado qual deverá receber a lista de nfeautorizados e popular na tabela
function lista_autorizado(data){
var html = "";
for(var i in data){
html += "<tr> " +
"<td align='center' >" + data[i].id + "</td>" +
"<td align='center' >" + data[i].aut_contato + "</td>" +
"<td align='center' >" + data[i].aut_cnpj + "</td>" +
"<td align='center' ><a href='javascript:;' onclick='excluirAutorizado("+ data[i].id +")' class='btn btn-sm btn-danger d-inline-block' title='Excluir'><i class='fas fa-trash'></i></a></td>" +
"</tr>";
}
$("#lista_autorizado").html(html);
}
No método store, faça os seguintes procedimentos receba os dados e salve no banco retornando a lista de nfeautorizado pelo nfe_id
public function store(Request $request)
{
$req = $request->except(["_token"]);
try {
$req = $request->except(["_token","_method"]);
NfeAutorizado::Create($req);
$lista = NfeAutorizado::where("nfe_id", $req["nfe_id"])->get();
echo json_encode($lista);
} catch (\Throwable $th) {
echo json_encode("Erro: " . $th->getMessage());
}
}
No arquivo tabAutorizado_js.js crie um método chamado excluirAutorizado com os seguintes procedimentos:
- Receba o campo id
- via ajax chame o método nfeautorizado/id com método DELETE
- atualiza a lista de autorizados
function excluirAutorizado(id){
$.ajax({
url: base_url + "nfeautorizado/" + id ,
type: "DELETE",
data: { },
dataType:"Json",
success: function(data){
lista_autorizado(data);
}
});
}
implemente o método destroy do Controller, com as seguinte ações:
- Busque a nfeautorizada pelo id passado no parâmetro
- Caso encontre, exclua a mesma do banco, coloque esta instrução em um bloco try/catch
- retorne a lista
try {
$autorizado = NfeAutorizado::where("id", $id)->first();
if($autorizado){
$autorizado->delete();
}
$lista = NfeAutorizado::where("nfe_id", $autorizado->nfe_id)->get();
echo json_encode($lista);
} catch (\Throwable $th) {
//throw $th;
}
}
Na pasta NotaFiscal/Nfe crie um arquivo chamado TabReferenciado.blade.php em seguida copie o conteúdo do arquivo TabReferenciado do layout baixado e cole na view criada
Crie um controller chamado NfeReferenciadoController, para que o projeto fique mais organizado salve o controller numa pasta chamada NotaFiscal
Para criar o controller use o comando: php artisan make:controller \NotaFiscal\NfeReferenciadoController-r
Crie um arquivo javascript na pasta public chamado tabReferenciado_js.js
no arquivo tabReferenciado_js.js, crie um método chamado inserirReferenciado, o qual deverá:
- chamar os campos : nfe_id, tipo_nota_referenciada , ref_NFe, ref_ano_mes, ref_num_nf, ref_serie
- via ajax chame o método store da nfeautorizado passando os campos como parâmetro.
function inserirReferenciado(){
$.ajax({
url: base_url + "nfereferenciado",
type: "post",
dataType:"Json",
data:{
nfe_id : nfe_id,
tipo_nota_referenciada : $("#tipo_nota_referenciada").val(),
ref_NFe : $("#ref_NFe").val(),
ref_ano_mes : $("#ref_ano_mes").val(),
ref_num_nf : $("#ref_num_nf").val(),
ref_serie : $("#ref_serie").val(),
},
success: function(data){
$("#tipo_nota_referenciada").val(' ');
$("#ref_NFe").val(' ');
$("#ref_ano_mes").val(' ');
$("#ref_num_nf").val(' ');
$("#ref_serie").val(' ');
lista_referenciado(data);
fecharModal();
},
beforeSend: function(){
giraGira();
}
});
}
No arquivo tabReferenciado_js crie um método chamado lista_referenciadoqual deverá receber a lista de nfereferenciados e popular na tabela
function lista_referenciado(data){
var html = "";
for(var i in data){
html += "<tr> " +
"<td align='center' >" + data[i].id + "</td>" +
"<td align='center' >" + data[i].ref_NFe + "</td>" +
"<td align='center' >" + data[i].ref_ano_mes + "</td>" +
"<td align='center' >" + data[i].ref_num_nf + "</td>" +
"<td align='center' >" + data[i].ref_serie + "</td>" +
"<td align='center' ><a href='javascript:;' onclick='excluirReferenciado("+ data[i].id +")' class='btn btn-sm btn-danger d-inline-block' title='Excluir'><i class='fas fa-trash'></i></a></td>" +
"</tr>";
}
$("#lista_referenciado").html(html);
}
no js tabReferenciado_js crie um método ver_tipo_nota_referenciada, que deverá listar os campos referenciados de acordo com o tipo selecionado
function ver_tipo_nota_referenciada() {
var tipo = $("#tipo_nota_referenciada").val();
var chave = $("#divChave");
var ano_mes = $("#divDataEmissao");
var num_nf = $("#divNumeroNota");
var serie = $("#divSerieNota");
$("#ref_NFe").val(" ");
$("#ref_ano_mes").val(" ");
$("#ref_num_nf").val(" ");
$("#ref_serie").val(" ");
chave.hide();
ano_mes.hide();
num_nf.hide();
serie.hide();
if (tipo == 1 || tipo == 7) {
$("#lblChave").html("Chave de Acesso");
chave.show();
chave.val(" ");
ano_mes.hide();
num_nf.hide();
serie.hide();
} else if (tipo == 2) {
$("#lblChave").html("Número do Contador de Ordem de Operação - COO");
chave.show();
ano_mes.hide();
num_nf.hide();
serie.hide();
} else if (tipo == 3 || tipo == 4 || tipo == 5 || tipo == 6) {
$("#lblChave").html("");
chave.hide();
ano_mes.show();
num_nf.show();
serie.show();
}
}
No método store, faça os seguintes procedimentos receba os dados e salve no banco retornando a lista de nfereferenciado pelo nfe_id
$req = $request->except(["_token","_method"]);
try {
NfeReferenciado::Create($req);
$lista = NfeReferenciado::where("nfe_id", $req["nfe_id"])->get();
echo json_encode($lista);
} catch (\Throwable $th) {
echo json_encode("Erro: " . $th->getMessage());
}
No arquivo tabReferenciado_js.js crie um método chamado excluirReferenciadocom os seguintes procedimentos:
- Receba o campo id
- via ajax chame o método nfeautorizado/id com método DELETE
- atualiza a lista de referenciados
function excluirReferenciado(id){
$.ajax({
url: base_url + "nfereferenciado/" + id ,
type: "DELETE",
data: { },
dataType:"Json",
success: function(data){
lista_referenciado(data);
}
});
}
implemente o método destroy do Controller, com as seguinte ações:
- Busque a nfereferenciado pelo id passado no parâmetro
- Caso encontre, exclua a mesma do banco, coloque esta instrução em um bloco try/catch
- retorne a lista
try {
$referenciado = NfeReferenciado::where("id", $id)->first();
if($referenciado){
$referenciado->delete();
}
$lista = NfeReferenciado::where("nfe_id", $referenciado->nfe_id)->get();
echo json_encode($lista);
} catch (\Throwable $th) {
//throw $th;
}