Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Fmix

Base de dados Tributação

Recommended Posts

Quando eu vou desenvolver um banco de dados de venda de produtos, que tipo de informações tributárias esses produtos vão ter, como que funciona?

Por exemplo o nome do tributo, valor, e como é agrupado esses tributos?

Esses tributos são ligados a apenas aos produtos ou a empresa?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Tributos são ligados ao produto, e tributos são ligados a empresa.  

Isso depende o que é o produto, cada tipo de produto tem um imposto de valor diferente cobrado pelo governo.

e cada empresa tem um tributo diferente a pagar, isso depende de como a empresa foi cadastrada junto a Junta Comercial.

Qual é o imposto de cada tipo de empresa, qual é o imposto de cada tipo de produto, isso um contador ou um auditor de contabilidade é quem sabe o correto de valor que tem que ser tributado em um produto ou em um serviço.

 

https://guiatributario.net/2013/02/20/saiba-o-que-e-tributo-e-quais-suas-especies/

 

http://www.portaltributario.com.br/tributos.htm

 

Boa noite

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Em 24/05/2017 at 14:02, Fmix disse:

Quando eu vou desenvolver um banco de dados de venda de produtos, que tipo de informações tributárias esses produtos vão ter, como que funciona?

Por exemplo o nome do tributo, valor, e como é agrupado esses tributos?

Esses tributos são ligados a apenas aos produtos ou a empresa?

 

Primeiro, você vai querer emitir nota ? se sim, só aí você vai precisar das informações tributárias do produto, como dispostas no manual da receita federal:

 

Respondendo a pergunta: os dados tributários são ligados tanto ao produto, como a empresa emitente, e também a empresa remetente.

 

Orientação de dados para NF-e

 

Você consegue fazer isso sem muitos problemas, basta entender a documentação da receita, principalmente na montagem da XML, assinatura e transmissão, se você fizer algo errado pode vir a ter um problema bem sério.

 

Você não disse que linguagem pretende fazer isso, eu até hoje só fiz em php com a classe NF-e PHP.

 

Pra finalizar, tem uma 'gambiarra' que eu fiz pra um amigo emitir notas uma vez com essa classe, segue abaixo mais ou menos como funciona:

 

Primeiro você precisa de uma tabela com dados fiscais relacionados a determinada nota, dados de produto, emitente e de remetente, nesse caso eram produtos cosméticos:

 


CREATE TABLE config_nfe (
id int(11) AUTO_INCREMENT PRIMARY KEY,
codigo varchar(255),
tipo_de_documento varchar(255),
forma_de_pagamento varchar(255),
fora_de_emissao varchar(255),
tipo_de_impressao_DANFE varchar(255),
consumidor_final varchar(255),
destino_da_operacao varchar(255),
tipo_de_atendimento varchar(255),
natureza_da_operacao varchar(255),
uf_emissao varchar(255),
municipio_emissao varchar(255),
cnpj_emitente varchar(255),
razao_social_emitente varchar(255),
regime_tributario_emitente varchar(255),
logradouro_emitente varchar(255),
numero_emitente varchar(255),
bairro_emitente varchar(255),
cep_emitente varchar(255),
uf_emitente varchar(255),
municipio_emitente varchar(255),
tipo_de_documento_rementente varchar(255),
documento_rementente varchar(255),
razao_social_rementente varchar(255),
logradouro_rementente varchar(255),
numero_rementente varchar(255),
bairro_rementente varchar(255),
cep_rementente varchar(255),
uf_rementente varchar(255),
municipio_rementente varchar(255)
)

 

E tinha essa BELEZA (ironia) de código pra gerar o XML, que eu nem sei mais explicar como funcionava:

 

<?php

include 'conexao/conecta.php';
$pedido = $_GET['pedido'];


$sql = "SELECT * FROM pedidos WHERE codigo = '$pedido'";
$rs = mysql_query($sql);
while ($row = mysql_fetch_object($rs)) {
    $emitente_codigo = $row->solicitatecodigo;
    $remetente_codigo = $row->clientecodigo;
    $programacao_codigo = $row->programacaocodigo;
    $retirada_codigo = $row->retiradacodigo;
}

$sql = "SELECT * FROM retiradas WHERE codigo = '$retirada_codigo'";
$rs = mysql_query($sql);
while ($row = mysql_fetch_array($rs)) {
    $produto = $row['produto'];
    $quantidade = $row['produto'];
}


$sql = "SELECT * FROM dados_empresariais WHERE codigo = '$emitente_codigo' ";
$rs = mysql_query($sql);
while ($row = mysql_fetch_object($rs)) {
    $cod_emitente = $row->codigo;
    $cnpj_emitente = preg_replace("/[^0-9\s]/", "", $row->cnpj);
    $razao_social_emitente = $row->razao_social;
    $inscricao_estadual_emitente = preg_replace("/[^0-9\s]/", "", $row->inscricao_estadual);
    ;
    $logradouro_emitente = $row->logradouro;
    $numero_emitente = $row->numero;
    $complemento_emitente = $row->complemento;
    $bairro_emitente = $row->bairro;
    $municipio_emitente = $row->cidade;
    $uf_emitente = $row->uf;
    $cep_emitente = $row->cep;
    $telefone_emitente = preg_replace("/[^0-9\s]/", "", $row->telefone);
    $email_emitente = $row->email;
}

$sql = "SELECT * FROM clientes WHERE codigo = '$remetente_codigo'";
$rs = mysql_query($sql);
while ($row = mysql_fetch_object($rs)) {
    $cod_remetente = $row->codigo;
    $cnpj_remetente = preg_replace("/[^0-9\s]/", "", $row->cnpj);
    $razao_social_remetente = $row->razao_social;
    $inscricao_estadual_remetente = preg_replace("/[^0-9\s]/", "", $row->inscricao_estadual);
    $logradouro_remetente = $row->logradouro;
    $numero_remetente = $row->numero;
    $complemento_remetente = $row->complemento;
    $bairro_remetente = $row->bairro;
    $municipio_remetente = $row->cidade;
    $municipio_remetente = preg_replace('/[`^~\'"]/', null, iconv('UTF-8', 'ASCII//TRANSLIT', $municipio_remetente));

    $uf_remetente = $row->uf;
    $cep_remetente = $row->cep;
    $email_remetente = $row->email;
}
$sql = "SELECT * FROM municipios_ibge WHERE municipio = '$municipio_remetente'";
$rs = mysql_query($sql);
while ($row = mysql_fetch_object($rs)) {
    $codigo_municipio_remetente = $row->codigo;
}

$sql = "SELECT * FROM estados_ibge WHERE sigla = '$uf_remetente'";
$rs = mysql_query($sql);
while ($row = mysql_fetch_object($rs)) {
    $codigo_uf_remetente = $row->codigo_ibge;
}


require_once('nfephp/libs/NFe/MakeNFePHP.class.php');

// Instancia um objeto da classe "Tools" da API.
$nfe = new MakeNFe();


/* MONTA CHAVE */

$numero_nfe = rand(8888888, 99999999);
$cUF = "41"; //codigo do seu Estado
$ano_mes_emissao = date('ym'); //use date('ym');
$CNPJ = "$cnpj_emitente";
$mod = "55"; //modelo da NFe 55 ou NFCe 65
$serie = "001"; //serie da NFe 001 ou 002
$nNF = "$numero_nfe"; //numero da NFe
$tpEmis = '1'; //1=Emissão normal (não em contingência);
//2=Contingência FS-IA, com impressão do DANFE em formulário de segurança;
//3=Contingência SCAN (Sistema de Contingência do Ambiente Nacional);
//4=Contingência DPEC (Declaração Prévia da Emissão em Contingência);
//5=Contingência FS-DA, com impressão do DANFE em formulário de segurança;
//6=Contingência SVC-AN (SEFAZ Virtual de Contingência do AN);
//7=Contingência SVC-RS (SEFAZ Virtual de Contingência do RS);
//9=Contingência off-line da NFC-e (as demais opções de contingência são válidas também para a NFC-e);
//Nota: Para a NFC-e somente estão disponíveis e são válidas as opções de contingência 5 e 9.
$cNF = "$numero_nfe"; //numero do documento interno da empresa (geralmente um sequencial do seu sistema, um pedido ou orcamento) 8 digitos
$chave_sem_dv = $cUF . $ano_mes_emissao . $CNPJ . $mod . $serie . $nNF . $tpEmis . $cNF;
$chave = $chave_sem_dv;
$modulo_11 = "23456789"; //não alterar, é padrão do sefaz
$pesos = $modulo_11;
$ponderacoes = $chave[0] * $pesos[2] +
        $chave[1] * $pesos[1] +
        $chave[2] * $pesos[0] +
        $chave[3] * $pesos[7] +
        $chave[4] * $pesos[6] +
        $chave[5] * $pesos[5] +
        $chave[6] * $pesos[4] +
        $chave[7] * $pesos[3] +
        $chave[8] * $pesos[2] +
        $chave[9] * $pesos[1] +
        $chave[10] * $pesos[0] +
        $chave[11] * $pesos[7] +
        $chave[12] * $pesos[6] +
        $chave[13] * $pesos[5] +
        $chave[14] * $pesos[4] +
        $chave[15] * $pesos[3] +
        $chave[16] * $pesos[2] +
        $chave[17] * $pesos[1] +
        $chave[18] * $pesos[0] +
        $chave[19] * $pesos[7] +
        $chave[20] * $pesos[6] +
        $chave[21] * $pesos[5] +
        $chave[22] * $pesos[4] +
        $chave[23] * $pesos[3] +
        $chave[24] * $pesos[2] +
        $chave[25] * $pesos[1] +
        $chave[26] * $pesos[0] +
        $chave[27] * $pesos[7] +
        $chave[28] * $pesos[6] +
        $chave[29] * $pesos[5] +
        $chave[30] * $pesos[4] +
        $chave[31] * $pesos[3] +
        $chave[32] * $pesos[2] +
        $chave[33] * $pesos[1] +
        $chave[34] * $pesos[0] +
        $chave[35] * $pesos[7] +
        $chave[36] * $pesos[6] +
        $chave[37] * $pesos[5] +
        $chave[38] * $pesos[4] +
        $chave[39] * $pesos[3] +
        $chave[40] * $pesos[2] +
        $chave[41] * $pesos[1] +
        $chave[42] * $pesos[0];
$ponderacoes_soma = $ponderacoes;
$resto_ = (int) ($ponderacoes / 11);
$resto = $resto_ * 11;
$resto = $ponderacoes - $resto;
$cDV = (12 - $resto);
if ($cDV <= 1) {
    $cDV = 0;
}
$chave_de_acesso = $chave . $cDV;


/*

  $cUF = '41';    //Código da UF [02]
  $aamm = date("ym");     //AAMM da emissão [4]
  $cnpj = "$cnpj_emitente";     //CNPJ do Emitente [14]
  $mod = '55';      //Modelo [02]
  $serie = '001';     //Série [03]
  $num = '7';       //Número da NF-e [09]
  $tpEmis = '1';     //forma de emissão da NF-e [01] 1 – Normal – emissão normal; 2 – Contingência FS; 3 – Contingência SCAN; 4 – Contingência DPEC; 5 – Contingência FS-DA
  $cn = '';         //Código Numérico [08]
  $dv = '';         //DV [01]
  //ajusta comprimento do numero
  $num = str_pad($num, 9, '0', STR_PAD_LEFT);
  //calcula codigo numérico aleatório
  $cn = geraCN(8);

  //monta a chave sem o digito verificador
  $chave = "$cUF$aamm$cnpj$mod$serie$num$tpEmis$cn";
  //calcula o digito verificador
  $dv = calculaDV($chave);

  $chave .= $dv;

  $n = strlen($chave);

  function geraCN($length = 8) {
  $numero = '';
  for ($x = 0; $x < $length; $x++) {
  $numero .= rand(0, 9);
  }
  return $numero;
  }

  function calculaDV($chave43) {
  $multiplicadores = array(2, 3, 4, 5, 6, 7, 8, 9);
  $i = 42;
  while ($i >= 0) {
  for ($m = 0; $m < count($multiplicadores) && $i >= 0; $m++) {
  $soma_ponderada+= $chave43[$i] * $multiplicadores[$m];
  $i--;
  }
  }
  $resto = $soma_ponderada % 11;
  if ($resto == '0' || $resto == '1') {
  return 0;
  } else {
  return (11 - $resto);
  }
  }
 */
/* * ********* */

$chave = $chave_de_acesso;
$versao = '3.10';
$resp = $nfe->taginfNFe($chave, $versao);

//Dados da NFe (ide)
$uf_codigo = 41;
$cUF = "$uf_codigo"; //codigo numerico do estado
$numero_nf = rand(1000000, 9999999);
$cNF = "$numero_nf"; //numero aleatório da NF
$natOp = 'VENDA DE PRODUTO'; //natureza da operação
$tipo_pgto = $_POST['numero-de-parcelas'];
if ($tipo_pgto == '1') {
    $tipo_pgto = '0';
} elseif ($tipo_pgto > 1) {
    $tipo_pgto = 2;
}
$indPag = "0"; //0=Pagamento à vista; 1=Pagamento a prazo; 2=Outros
$mod = '55'; //modelo da NFe 55 ou 65 essa última NFCe
$serie = '1'; //serie da NFe

$nNF = "$numero_nfe"; // numero da NFe
$data_emissao = '2015-09-09T15:34:00-03:00';
$dhEmi = "$data_emissao";  //para versão 3.00 '2014-02-03T13:22:42-3.00' não informar para NFCe
$data_sai_ent = date("Y-m-d") . "T" . date("H:i:s-3:00");
$dhSaiEnt = ''; //versão 2.00, 3.00 e 3.10
$tpNF = '1';
$idDest = '2'; //1=Operação interna; 2=Operação interestadual; 3=Operação com exterior.
$cMunFG = '4125506';
$tpImp = '1'; //0=Sem geração de DANFE; 1=DANFE normal, Retrato; 2=DANFE normal, Paisagem;
//3=DANFE Simplificado; 4=DANFE NFC-e; 5=DANFE NFC-e em mensagem eletrônica
//(o envio de mensagem eletrônica pode ser feita de forma simultânea com a impressão do DANFE;
//usar o tpImp=5 quando esta for a única forma de disponibilização do DANFE).
$tpEmis = '1'; //1=Emissão normal (não em contingência);
//2=Contingência FS-IA, com impressão do DANFE em formulário de segurança;
//3=Contingência SCAN (Sistema de Contingência do Ambiente Nacional);
//4=Contingência DPEC (Declaração Prévia da Emissão em Contingência);
//5=Contingência FS-DA, com impressão do DANFE em formulário de segurança;
//6=Contingência SVC-AN (SEFAZ Virtual de Contingência do AN);
//7=Contingência SVC-RS (SEFAZ Virtual de Contingência do RS);
//9=Contingência off-line da NFC-e (as demais opções de contingência são válidas também para a NFC-e);
//Nota: Para a NFC-e somente estão disponíveis e são válidas as opções de contingência 5 e 9.

$cDV = "$cDV"; //digito verificador
$tpAmb = '1'; //1=Produção; 2=Homologação
$finNFe = '1'; //1=NF-e normal; 2=NF-e complementar; 3=NF-e de ajuste; 4=Devolução/Retorno.
$indFinal = '0'; //0=Não; 1=Consumidor final;
$indPres = '9'; //0=Não se aplica (por exemplo, Nota Fiscal complementar ou de ajuste);
//1=Operação presencial;
//2=Operação não presencial, pela Internet;
//3=Operação não presencial, Teleatendimento;
//4=NFC-e em operação com entrega a domicílio;
//9=Operação não presencial, outros.
$procEmi = '0'; //0=Emissão de NF-e com aplicativo do contribuinte;
//1=Emissão de NF-e avulsa pelo Fisco;
//2=Emissão de NF-e avulsa, pelo contribuinte com seu certificado digital, através do site do Fisco;
//3=Emissão NF-e pelo contribuinte com aplicativo fornecido pelo Fisco.
$verProc = '3.10.61'; //versão do aplicativo emissor
$dhCont = ''; //entrada em contingência AAAA-MM-DDThh:mm:ssTZD
$xJust = ''; //Justificativa da entrada em contingência

$resp = $nfe->tagide($cUF, $cNF, $natOp, $indPag, $mod, $serie, $nNF, $dhEmi, $dhSaiEnt, $tpNF, $idDest, $cMunFG, $tpImp, $tpEmis, $cDV, $tpAmb, $finNFe, $indFinal, $indPres, $procEmi, $verProc, $dhCont, $xJust);




//Dados do emitente

$CNPJ = "$cnpj_emitente";
$CPF = '';
$xNome = "$razao_social_emitente";
$xFant = '';
$IE = "$inscricao_estadual_emitente";
$IEST = '';
$IM = '';
$CNAE = '';
$CRT = '1';
$resp = $nfe->tagemit($CNPJ, $CPF, $xNome, $xFant, $IE, $IEST, $IM, $CNAE, $CRT);

//endereço do emitente
$xLgr = "$logradouro_emitente";
$nro = "$numero_emitente";
$xCpl = "$complemento_emitente";
$xBairro = "$bairro_emitente";
$cMun = '4125506';
$xMun = "$municipio_emitente";
$UF = "$uf_emitente";
$CEP = "$cep_emitente";
$cPais = '1058';
$xPais = 'BRASIL';
$fone = "";
$resp = $nfe->tagenderEmit($xLgr, $nro, $xCpl, $xBairro, $cMun, $xMun, $UF, $CEP, $cPais, $xPais, $fone);

//destinatário
$CNPJ = "$cnpj_remetente";
$CPF = '';
$idEstrangeiro = '';
$xNome = "$razao_social_remetente";
$indIEDest = '2';
$IE = "$inscricao_estadual_remetente";
$ISUF = '';
$IM = '';
$email = "$email_remetente";
$resp = $nfe->tagdest($CNPJ, $CPF, $idEstrangeiro, $xNome, $indIEDest, $IE, $ISUF, $IM, $email);

//Endereço do destinatário
$xLgr = "$logradouro_remetente";
$nro = "$numero_remetente";
$xCpl = "$complemento_remetente";
$xBairro = "$bairro_remetente";
$cMun = "5107958";
$xMun = "$municipio_remetente";
$UF = "$uf_remetente";
$CEP = "$cep_remetente";
$cPais = '1058';
$xPais = 'BRASIL';
$fone = "";
$resp = $nfe->tagenderDest($xLgr, $nro, $xCpl, $xBairro, $cMun, $xMun, $UF, $CEP, $cPais, $xPais, $fone);





for ($i = 1; $i < count($produto); $i++) {



    for ($i = 1; $i < count($quantidade); $i++) {



        $desconto_nfe = number_format($_POST['desconto-geral-nfe'], 2, '.', '');

        //for ($i = 1; $i < count($desconto_nfe); $i++) {

        $sql = "SELECT * FROM produtos WHERE codigo = '$produtos[$i]'";
        $rs = mysql_query($sql);
        while ($row = mysql_fetch_object($rs)) {
            $cod_produto = $row->codigo;
            $descricao_produto = $row->descricao;
            $ncm = $row->NCM;
            $cfop = $row->CFOP;
            $un_comercial = $row->un_comercial;
            $un_tributavel = $row->un_tributavel;
            $un_tributavel = $row->un_tributavel;
            $valor_produto = $row->precodistribuidor;

            if ($desconto_nfe == '0' || $desconto_nfe == '' ) {
                $valor_nfe = number_format($valor_produto[$i], 2, '.', '');
            } else {
                $valor_nfe = number_format($valor_produto[$i] - ($valor_produto[$i] * (100/ 100)), 2, '.', '');
            }
            $valor_nfe_total = number_format($valor_nfe * $quantidade[$i], 2, '.', '');
            $soma_qntd_total += number_format($qntd_produtos[$i], 2, '.', '');
            $num_item = array_keys($produto);


            //produtos
            $aP[] = array(
                'nItem' => "$num_item[$i]",
                'cProd' => "$cod_produto",
                'cEAN' => '',
                'xProd' => "$descricao_produto",
                'NCM' => "$ncm",
                'NVE' => '',
                'EXTIPI' => '',
                'CFOP' => "$cfop",
                'uCom' => 'UNID',
                'qCom' => "$quantidade[$i]",
                'vUnCom' => "$valor_nfe",
                'vProd' => "$valor_nfe_total",
                'cEANTrib' => '',
                'uTrib' => 'UNID',
                'qTrib' => "$quantidade[$i]",
                'vUnTrib' => "$valor_nfe",
                'vFrete' => '',
                'vSeg' => '',
                'vDesc' => '',
                'vOutro' => '',
                'indTot' => '1',
                'xPed' => '111',
                'nItemPed' => '3',
                'nFCI' => '');

            //imposto
            $nItem = "$num_item[$i]";
            $vTotTrib = "$valor_nfe_total";

            $resp = $nfe->tagimposto($nItem, $vTotTrib);






            //ICMSSN
            $nItem = "$num_item[$i]";
            $orig = '0';
            $csosn = '103';

            $resp = $nfe->tagICMSSN($nItem, $orig, $csosn);
            //IPI
            $nItem = "$num_item[$i]";
            $cst = '53';
            $clEnq = '';
            $cnpjProd = '';
            $cSelo = '';
            $qSelo = '';
            $cEnq = '999';
            $vBC = '0.00';
            $pIPI = '0.00';
            $vIPI = '0.00';
            $resp = $nfe->tagIPI($nItem, $cst, $clEnq, $cnpjProd, $cSelo, $qSelo, $cEnq, $vBC, $pIPI, $vIPI);
            //PIS
            $nItem = "$num_item[$i]";
            $cst = '49';
            $vBC = '0.00';
            $pPIS = '0.00';
            $vPIS = '0.00';
            $resp = $nfe->tagPIS($nItem, $cst, $vBC, $pPIS, $vPIS);

            //COFINS
            $nItem = "$num_item[$i]";
            $cst = '49';
            $vBC = '0.00';
            $pCOFINS = '0.00';
            $vCOFINS = '0.00';
            $resp = $nfe->tagCOFINS($nItem, $cst, $vBC, $pCOFINS, $vCOFINS);
            //}
            //}
        }
        //}
    }
}




foreach ($aP as $prod) {
    $nItem = $prod['nItem'];
    $cProd = $prod['cProd'];
    $cEAN = $prod['cEAN'];
    $xProd = $prod['xProd'];
    $NCM = $prod['NCM'];
    $NVE = $prod['NVE'];
    $EXTIPI = $prod['EXTIPI'];
    $CFOP = $prod['CFOP'];
    $uCom = $prod['uCom'];
    $qCom = $prod['qCom'];
    $vUnCom = $prod['vUnCom'];
    $vProd = $prod['vProd'];
    $cEANTrib = $prod['cEANTrib'];
    $uTrib = $prod['uTrib'];
    $qTrib = $prod['qTrib'];
    $vUnTrib = $prod['vUnTrib'];
    $vFrete = $prod['vFrete'];
    $vSeg = $prod['vSeg'];
    $vDesc = $prod['vDesc'];
    $vOutro = $prod['vOutro'];
    $indTot = $prod['indTot'];
    $xPed = $prod['xPed'];
    $nItemPed = $prod['nItemPed'];
    $nFCI = $prod['nFCI'];
    $resp = $nfe->tagprod($nItem, $cProd, $cEAN, $xProd, $NCM, $NVE, $EXTIPI, $CFOP, $uCom, $qCom, $vUnCom, $vProd, $cEANTrib, $uTrib, $qTrib, $vUnTrib, $vFrete, $vSeg, $vDesc, $vOutro, $indTot, $xPed, $nItemPed, $nFCI);
}
for ($i = 1; $i < count($valor_nfe_total); $i++) {
    $soma_valor_nfe_total = array_sum($valor_nfe_total);
}
$soma_valor_nfe_total = number_format($soma_valor_nfe_total, 2, '.', ',');
$vBC = '0.00';
$vICMS = '0.00';
$vICMSDeson = '0.00';
$vBCST = '0.00';
$vST = '0.00';
$vProd = "$soma_valor_nfe_total";
$vFrete = '0.00';
$vSeg = '0.00';
$vDesc = '0.00';
$vII = '0.00';
$vIPI = '0.00';
$vPIS = '0.00';
$vCOFINS = '0.00';
$vOutro = '0.00';
$vNF = "$soma_valor_nfe_total";
$vTotTrib = "";
$resp = $nfe->tagICMSTot($vBC, $vICMS, $vICMSDeson, $vBCST, $vST, $vProd, $vFrete, $vSeg, $vDesc, $vII, $vIPI, $vPIS, $vCOFINS, $vOutro, $vNF, $vTotTrib);

//frete
$modFrete = '0'; //0=Por conta do emitente; 1=Por conta do destinatário/remetente; 2=Por conta de terceiros;
$resp = $nfe->tagtransp($modFrete);





//Dados do processo
//0=SEFAZ; 1=Justiça Federal; 2=Justiça Estadual; 3=Secex/RFB; 9=Outros
$aProcRef = array(
    array('nProc1', '0'),
    array('nProc2', '1'),
    array('nProc3', '2'),
    array('nProc4', '3'),
    array('nProc5', '9')
);
foreach ($aProcRef as $proc) {
    $nProc = $proc[0];
    $indProc = $proc[1];
    //$resp = $nfe->tagprocRef($nProc, $indProc);
}

/*
  $aForDia = array(
  array('1', '100', '1400', '1000', '1400'),
  array('2', '100', '1400', '1000', '1400'),
  array('3', '100', '1400', '1000', '1400'),
  array('4', '100', '1400', '1000', '1400'),
  array('5', '100', '1400', '1000', '1400'),
  array('6', '100', '1400', '1000', '1400'),
  array('7', '100', '1400', '1000', '1400'),
  array('8', '100', '1400', '1000', '1400'),
  array('9', '100', '1400', '1000', '1400'),
  array('10', '100', '1400', '1000', '1400'),
  array('11', '100', '1400', '1000', '1400'),
  array('12', '100', '14 00', '1000', '1400'),
  array('13', '100', '1400', '1000', '1400'),
  array('14', '100', '1400', '1000', '1400')
  );
  foreach ($aForDia as $forDia) {
  $dia = $forDia[0];
  $qtde = $forDia[1];
  $qTotMes = $forDia[2];
  $qTotAnt = $forDia[3];
  $qTotGer = $forDia[4];
  //$resp = $nfe->tagforDia($dia, $qtde, $qTotMes, $qTotAnt, $qTotGer);
  }
 */
//monta a NFe e retorna na tela
$resp = $nfe->montaNFe();

if ($resp) {
    header('Content-type: text/xml; charset=UTF-8');
    //echo $nfe->getXML();
    $xml = $nfe->getXML();
    $fp = fopen("nf-e/$chave.xml", 'w+');
    fwrite($fp, $xml);
    fclose($fp);
} else {
    header('Content-type: text/html; charset=UTF-8');
    foreach ($nfe->erros as $err) {
        echo 'tag: &lt;' . $err['tag'] . '&gt; ---- ' . $err['desc'] . '<br>';
    }
}
?>

Esse outro para assinar a XML:

 

<?php
require_once('../../nfephp/libs/NFe/ToolsNFePHP.class.php');
$arquivo = $_GET['chave'];
$nfe  = new ToolsNFePHP;
$file = "../../nf-e/$arquivo.xml";
$arq  = file_get_contents($file);

if ($xml = $nfe->signXML($arq, 'infNFe')) {

    file_put_contents($file, $xml);
    

} else {

    echo $nfe->errMsg;

}
?>

DETALHE IMPORTANTE: Isso foi mexido pela última vez na metade de 2015 não sei se funciona do mesmo jeito ainda, e não consegui achar como eu vazia a transmissão, mas pelo que me lembro acho que não fazia, eu gerava os XML assinados, ai ele importada no programa da sefaz pra transmitir.

 

O propósito é mais pra você ler a parte do código que gera a XML referente aos atributos fiscais de produto X nota.

 

PS.: Por favor não critiquem isso, eu não sabia o que eu fazia na época, só fazia kkk

 

E pra finalizar meu comentário, se você não entende de como fazer suas coisas ficarem totalmente seguras (como eu também não sei), simplesmente não faça isso.

 

Espero ter ajudado vlw!

Compartilhar este post


Link para o post
Compartilhar em outros sites

  • Conteúdo Similar

    • Por mamotinho
      Olá, estou com uma dúvida. gostaria de saber como faço para ocultar minhas informações quando alguém for pesquisar pelo meu site, vi que está mostrando meus dados.
       se alguem puder me ajudar fico grato.

    • Por dutopfave
      Boa Noite Galera, estou com dúvida em como cria um cadastra de VARIAÇÕES DE PRODUTOS.

      Ex.: Tenho um produto que é um TENIS, ai nele vou criar as VARIAÇÕES, então vou usa COR e TAMANHO.
      COR: preto, verde, azul
      TAMANHO: 39, 40, 41

      até ai blz, porém a duvida é como fazer o cadastrado de combinações de cor e tênis, tipo no banco de dados teria q fica exatamente assim....

      ID | COR | TAMANHO
      ... | preto | 39
      ... | preto | 40
      ... | preto | 41
      ... | verde | 39
      ... | verde | 40
      ... | verde | 41
      ... | azul | 39
      ... | azul | 40
      ... | azul | 41

      alguém tem alguma solução
    • Por Kefatif
      Prezados, boa tarde.
       
      Estou com uma dúvida:
       
      Estou precisando trazer dados do banco para uma tela de edição de cadastro, até aí tudo bem consegui fazer para os input através do código abaixo:
       
      <label style="width:16%;margin-left: 2%;">Data de Início<br> <input type="date" value="<?php echo $row["DATA_DISPENSACAO"] ?>" class="form-control" style="width:100%;"> </label>  
      Mas o meu select já traz o controle de peso do banco, eu gostaria que além dele trazer esses pesos que traga o salvo no cadastro de uma pessoa para visualização e edição.
       
      Segue abaixo o código do select como está:
       
      <label style="width:15%">Peso<b style="color:red">*</b><br> <select name="peso" class="form-control" required style="width:100%" value="<?php echo $row["DATA_TESTE"] ?>"> <option value="">Selecione</option> <?php $sqlpeso = "select distinct PESO from TESTE where ID_ESQUEMA = ".$row["ID_ESQUEMA"]; $resultpeso = mysqli_query($con, $sqlpeso); while ($rowpeso= mysqli_fetch_array($resultpeso)){ ?> <option value="<?php echo utf8_encode($rowpeso["PESO"]);?>" ><?php echo utf8_encode($rowpeso["PESO"]); ?></option> <?php } ?> </select> </label>  
      Meu banco é MYSQL.
       
      Agradeço desde já a todos pela ajuda.
       
      Abraço!
    • Por Kellison Ruan
      Acho que não fui tão claro no título, portanto irei esmiuçar melhor aqui...
       
      É o seguinte, quero saber se há algum jeito de pegar as linhas de uma coluna q está em VARCHAR com informações do tipo "4 PONTOS DE ILUMINAÇÃO", dessa informação pretendo retirar somente o número que em questão é o "4" e colocá-lo em outra coluna INTEGER. Há essa possibilidade? Detalhe, as vezes as informações não está seguindo um padrão de vim somente como "4 PONTOS DE ILUMINAÇÃO" às vezes vêm dados com mais informações númericas que precisa distinguir, por exemplo, a mim só interessa pegar números que vem antecedendo as palavras "PONTOS", "PTOS", "PTS", têm algum jeito de distinguir isso?
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.