Ir para conteúdo

POWERED BY:

Alex Oliveira Dos Santos

Members
  • Total de itens

    7
  • Registro em

  • Última visita

Reputação

0 Comum

Sobre Alex Oliveira Dos Santos

Últimos Visitantes

637 visualizações
  1. Alex Oliveira Dos Santos

    Exibir um Variavel apenas uma vez em um While

    <?php $consult = $row['id']; $incrementa=0; $sql = "SELECT * FROM upload_data WHERE USER_CODE = '$consult' ORDER BY id ASC"; $resultadoimg = mysql_query($sql); $numero_registros = mysql_num_rows($resultadoimg); while($registrosimg = mysql_fetch_array($resultadoimg)) { ?> <li data-target="#carousel-custom" data-slide-to="0" <?php if($incrementa==0){echo'executa algo';}?>><img src="" alt=""></li> $incrementa++; <?php } ?>
  2. Alex Oliveira Dos Santos

    Erro ao gerar xml com NFePHP - Duplicando node det

    Boa tarde, após pesquisar muito e passar 2 dias tentando resolver estou aqui pedindo um super help. Estou utilizando a classe NfePhp mas ao gerar o xml, o mesmo amontoa os nós xml "det" tudo um dentro do outro, e eu não faço ideia do porque e como corrigir, por postar o arquivo que monto e o xml gerado, além de uma imagem ilustrativa do problema: <?php /** * Created by Alex O. Santos. * Date: 30/09/2019 * Time: 10:29 */ //namespace Classes; //use NFePHP\NFe\Make; use NFePHP\NFe; use NFePHP\NFe\Make; use NFePHP\NFe\Tools; use NFePHP\Common\Certificate; //use stdClass; class GerarNFE { private $config; private $tools; public function __construct($config) { $this->config = $config; $configJson = json_encode($config);//adicionado novo 29-06-2020 $certificadoDigital = file_get_contents("asasasasa.pfx"); $password = '123456'; $this->tools = new Tools($configJson, Certificate::readPfx($certificadoDigital, $password)); //$xmlAssinado = $tools->signNFe($xml); } public function GerarNFE(){ //cria a nota vazia $nfe = new Make(); /** INF NFE **/ $std = new \stdClass(); $std->versao = '4.00'; //versão do layout //$std->Id = 'NFe35150271780456000160550010000000021800700082'; //se o Id de 44 digitos não for passado será gerado automaticamente $std->pk_nItem = null; //deixe essa variavel sempre como NULL $nfe->taginfNFe($std); /** IDE **/ $std = new \stdClass(); $std->cUF = 42;//codigo uf ibge $std->cNF = rand(11111111, 99999999);// 80070008 aleatorio $std->natOp = 'Venda de mercadoria adquirida ou recebida de terceiros';//natureza de operação $std->indPag = 0; //NÃO EXISTE MAIS NA VERSÃO 4.00 $std->mod = 55; $std->serie = 1; $std->nNF = 2;//numero da nota $std->dhEmi = date("Y-m-d\TH:i:sP");//2015-02-19T13:48:00-02:00 $std->dhSaiEnt = date("Y-m-d\TH:i:sP");//estava null $std->tpNF = 1;//entrada ou saida $std->idDest = 1;//dentro ou fora do estado *** 1=Operação interna, 2=Operação interestadual, 3=Operação com exterior $std->cMunFG = 4204608;//criciuma conforme ibge $std->tpImp = 1;//2=paisagem ou 1=retrato $std->tpEmis = 1;//normal ou contingencia $std->cDV = 3;//digito verificador $std->tpAmb = 2;//1 = Produção[É o ambiente designado para documentos com valor fiscal]. 2= Homologação[É o ambiente de testes]. $std->finNFe = 1;//complementar ou normal ou ajuste $std->indFinal = 1;//se é consumidor final ou nao $std->indPres = 1;//nao esta presente presencial ou nao $std->procEmi = 0;//sempre zero aplicativo contribuite(erp) $std->verProc = '1.0.0';//versão do erp $std->dhCont = null;//data e hora que entrou em contingencia $std->xJust = null;//justificativa se entrou em contingencia $nfe->tagide($std); /** EMITENTE **/ $std = new \stdClass(); $std->xNome = "NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME";//razão social $std->xFant = "NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME";//nome fantasia $std->IE = "258591137";//obrigatório $std->IEST = ""; $std->IM = "";//OPCIONAL $std->CNAE = "";//OPCIONAL $std->CRT = "1";//regime tributário? $std->CNPJ = "16604805000184"; //indicar apenas um CNPJ ou CPF $std->CPF = ""; $nfe->tagemit($std); /** ENDEREÇO EMITENTE **/ $std = new \stdClass(); $std->xLgr = "Rua Carlos Otaviano Seara"; $std->nro = "349"; $std->xCpl = "";//nao é mais necessário $std->xBairro = "Nossa Senhora da Salete"; $std->cMun = "4204608"; $std->xMun = "Criciúma"; $std->UF = "SC"; $std->CEP = "88813410"; $std->cPais = "1058"; $std->xPais = "Brasil"; $std->fone = "48999689698"; $nfe->tagenderEmit($std); /** DESTINATÁRIO **/ $std = new \stdClass(); $std->xNome = "Alex Olivera Santos"; $std->indIEDest = "2";//1=tem ie 2=nao tem ie @@@Luiz esta como 9 $std->IE = ""; $std->ISUF = "";//manaus $std->IM = "";//inscricao municipal obrigatorio $std->email = "alexsc2011@gmail.com"; $std->CNPJ = ""; //indicar apenas um CNPJ ou CPF ou idEstrangeiro $std->CPF = "04587351911"; $std->idEstrangeiro = null;///acho que é passaporte ou null $nfe->tagdest($std); /** ENDEREÇO DESTINATÁRIO **/ $std = new \stdClass(); $std->xLgr = "Rua Roberto Burlemax"; $std->nro = "118"; $std->xCpl = ""; $std->xBairro = "Ceará"; $std->cMun = "4204608"; $std->xMun = "Criciúma"; $std->UF = "SC"; $std->CEP = "88815092"; $std->cPais = "1058"; $std->xPais = "Brasil"; $std->fone = "62994430218"; $nfe->tagenderDest($std); //inicio foreach de produtos /** PRODUTOS **/ $std = new \stdClass(); $std->item = 1; //item da NFe //contador com count++ incrementando a cada passada, começar com 1 $std->cProd = "4634";// $std->cEAN = "SEM GTIN";//codigo de barras caixa (obrigatório?) $std->xProd = "OLEO DE UNcaO 60 ML";//interrno sistema $std->NCM = "15122990";// $std->cBenef = ""; //incluido no layout 4.00 $std->EXTIPI = ""; $std->CFOP = "6102";//codigo da saida se é saida se é entrada pra outro estado etc $std->uCom = "UND";// $std->qCom = "2.0000";//quantidade??? $std->vUnCom = "6.9900000000";//valor do produto???? $std->cEANTrib = "SEM GTIN";//codigo de barras item separado $std->uTrib = "UND";// $std->qTrib = "1.0000";//quantidade $std->vUnTrib = "13.98";// anterior $std->vUnTrib = "13.9800000000" $aa = $std->qTrib; $bb = $std->vUnTrib; $teste = $aa * $bb; $std->vProd = $teste;//"13.98";// $std->vFrete = "47.66";// $std->vSeg = ""; $std->vDesc = ""; $std->vOutro = ""; $std->indTot = 1;//integrar item ao resultado da nota (padrão) $nfe->tagprod($std); /** IMPOSTO **/ $std = new \stdClass(); $std->item = 1; //item da NFe mesmo id de cima do produto $std->vTotTrib = 4.00;//pegar do ibpt api total de imposto do produto? $nfe->tagimposto($std); /** ICMS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->orig = 0;//0=nacional 1=importado $std->CST = "00"; //faltou igualar luiz??? CSOSN <CSOSN>103</CSOSN> $std->modBC = 0; //return $std->vProd;// TESTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $std->vBC = $teste; $std->pICMS = "18.00";//percentual de imposto $std->vICMS = $std->vBC * $std->pICMS / 100;//valor base icns $nfe->tagICMS($std); // aqui só vai montar se for interstadual $std = new \stdClass(); $std->item = 1; //item da NFe seguir o mesmo do produto for $std->vBCUFDest = 13.98;//valor unitário precoBase ??? $std->vBCFCPUFDest = 0.00; $std->pFCPUFDest = 0.0000; $std->pICMSUFDest = 18.0000;//18 é padrao pra todos??? $std->pICMSInter = 7.00;//estava 12.00 $std->pICMSInterPart = 100.0000; $std->vFCPUFDest = 0.00; $std->vICMSUFDest = 0.00; $std->vICMSUFRemet = 0.00; $nfe->tagICMSUFDest($std); // fim aqui só monta se for interstadual $std = new \stdClass(); $std->item = 1; $std->cEnq = '999'; $std->CST = '50'; $std->vIPI = 0; $std->vBC = 0; $std->pIPI = 0; $nfe->tagIPI($std); /** PIS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->CST = '01';// $std->vBC = $teste;// nota luiz esta 0.00 ??? $std->pPIS = "0.0000";// $std->vPIS = $std->vBC * ($std->pPIS / 100);// ou shekinah "0.00" ??? ;u padrão $std->vProd $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagPIS($std); $std = new \stdClass(); $std->item = 1; $std->vCOFINS = 0; $std->vBC = 0; $std->pCOFINS = 0; $nfe->tagCOFINSST($std); /** COFINS **/ $std = new \stdClass(); $std->item = 1; //item da NFe $std->CST = '01';//estava 50 $std->vBC = 0.00;// $teste; para o caso de apenas um item, senao somar tudo, valor pago pelo cliente Luiz esta 0.00 ??? $std->pCOFINS = 0.0000; $std->vCOFINS = 0.00;//$std->vBC * ($std->pCOFINS / 100) estava assim $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagCOFINS($std); /** IPI **/ // fim monta o foreach de cada produto //inicio foreach de produtos /** PRODUTOS **/ $std = new \stdClass(); $std->item = 2; //item da NFe //contador com count++ incrementando a cada passada, começar com 1 $std->cProd = "4634";// $std->cEAN = "SEM GTIN";//codigo de barras caixa (obrigatório?) $std->xProd = "OLEO DE UNcaO 60 ML";//interrno sistema $std->NCM = "15122990";// $std->cBenef = ""; //incluido no layout 4.00 $std->EXTIPI = ""; $std->CFOP = "6102";//codigo da saida se é saida se é entrada pra outro estado etc $std->uCom = "UND";// $std->qCom = "2.0000";//quantidade??? $std->vUnCom = "6.9900000000";//valor do produto???? $std->cEANTrib = "SEM GTIN";//codigo de barras item separado $std->uTrib = "UND";// $std->qTrib = "1.0000";//quantidade $std->vUnTrib = "13.98";// anterior $std->vUnTrib = "13.9800000000" $aa = $std->qTrib; $bb = $std->vUnTrib; $teste = $aa * $bb; $std->vProd = $teste;//"13.98";// $std->vFrete = "47.66";// $std->vSeg = ""; $std->vDesc = ""; $std->vOutro = ""; $std->indTot = 2;//integrar item ao resultado da nota (padrão) $nfe->tagprod($std); /** IMPOSTO **/ $std = new \stdClass(); $std->item = 2; //item da NFe mesmo id de cima do produto $std->vTotTrib = 4.00;//pegar do ibpt api total de imposto do produto? $nfe->tagimposto($std); /** ICMS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->orig = 0;//0=nacional 1=importado $std->CST = "00"; //faltou igualar luiz??? CSOSN <CSOSN>103</CSOSN> $std->modBC = 0; //return $std->vProd;// TESTE XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX $std->vBC = $teste; $std->pICMS = "18.00";//percentual de imposto $std->vICMS = $std->vBC * $std->pICMS / 100;//valor base icns $nfe->tagICMS($std); // aqui só vai montar se for interstadual $std = new \stdClass(); $std->item = 2; //item da NFe seguir o mesmo do produto for $std->vBCUFDest = 13.98;//valor unitário precoBase ??? $std->vBCFCPUFDest = 0.00; $std->pFCPUFDest = 0.0000; $std->pICMSUFDest = 18.0000;//18 é padrao pra todos??? $std->pICMSInter = 7.00;//estava 12.00 $std->pICMSInterPart = 100.0000; $std->vFCPUFDest = 0.00; $std->vICMSUFDest = 0.00; $std->vICMSUFRemet = 0.00; $nfe->tagICMSUFDest($std); // fim aqui só monta se for interstadual $std = new \stdClass(); $std->item = 2; $std->cEnq = '999'; $std->CST = '50'; $std->vIPI = 0; $std->vBC = 0; $std->pIPI = 0; $nfe->tagIPI($std); /** PIS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->CST = '01';// $std->vBC = $teste;// nota luiz esta 0.00 ??? $std->pPIS = "0.0000";// $std->vPIS = $std->vBC * ($std->pPIS / 100);// ou shekinah "0.00" ??? ;u padrão $std->vProd $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagPIS($std); $std = new \stdClass(); $std->item = 2; $std->vCOFINS = 0; $std->vBC = 0; $std->pCOFINS = 0; $nfe->tagCOFINSST($std); /** COFINS **/ $std = new \stdClass(); $std->item = 2; //item da NFe $std->CST = '01';//estava 50 $std->vBC = 0.00;// $teste; para o caso de apenas um item, senao somar tudo, valor pago pelo cliente Luiz esta 0.00 ??? $std->pCOFINS = 0.0000; $std->vCOFINS = 0.00;//$std->vBC * ($std->pCOFINS / 100) estava assim $std->qBCProd = null; $std->vAliqProd = null; $nfe->tagCOFINS($std); // fim monta o foreach de cada produto /** TOTAIS **/ $std = new \stdClass(); $std->vBC = $teste; $std->vICMS = '0.00'; $std->vICMSDeson = ''; $std->vFCP = ''; //incluso no layout 4.00 $std->vBCST = ''; $std->vST = ''; $std->vFCPST = ''; //incluso no layout 4.00 $std->vFCPSTRet = ''; //incluso no layout 4.00 $std->vProd = $teste; $std->vFrete = ''; $std->vSeg = ''; $std->vDesc = ''; $std->vII = ''; $std->vIPI = ''; $std->vIPIDevol = ''; //incluso no layout 4.00 $std->vPIS = ''; $std->vCOFINS = ''; $std->vOutro = ''; $std->vNF = ''; $std->vTotTrib = '0.00'; $nfe->tagICMSTot($std); /** TRANSPORTADORA **/ $std = new \stdClass(); $std->modFrete = 1; $nfe->tagtransp($std); /** VOLUME **/ $std = new \stdClass(); $std->item = '1'; //indicativo do numero do volume $std->qVol = '2';//QTD VOLUME $std->esp = 'caixa'; $std->marca = 'OLX'; $std->nVol = '11111'; /*$std->pesoL = 10.50; $std->pesoB = 11.00;*/ $nfe->tagvol($std); /** PAGAMENTO **/ $std = new \stdClass(); $std->vTroco = null; //incluso no layout 4.00, obrigatório informar para NFCe (65) $nfe->tagpag($std); /** DETALHE DO PAGAMENTO **/ $std = new \stdClass(); $std->tPag = '14';//forma de pgto $std->vPag = 200.00; //Obs: deve ser informado o valor pago pelo cliente $std->CNPJ = '12345678901234'; $std->tBand = '01'; $std->cAut = '3333333'; $std->tpIntegra = 1; //incluso na NT 2015/002 $std->indPag = '0'; //0= Pagamento à Vista 1= Pagamento à Prazo $nfe->tagdetPag($std); /** INFORMAÇÕES ADICIONAIS **/ $std = new \stdClass(); $std->infAdFisco = 'informacoes para o fisco'; $std->infCpl = 'informacoes complementares'; $nfe->taginfAdic($std); /** MONTA A NF-E **/ $result = $nfe->montaNFe(); /** **/ //$result = $nfe->monta(); /** **/ //$result = $nfe->monta(); /** **/ //$xml = $nfe->getXML(); /** **/ //$chave = $nfe->getChave(); //var_dump($result); if($nfe->montaNFe()){ return $nfe->getXML();//funfando }else{ echo 'Erro ao gerar NF-e'; var_dump($nfe); return ; }/**/ } public function sign($xml){ try { $xmlAssinado = $this->tools->signNFe($xml); return $xmlAssinado; } catch (\Exception $e) { exit('erro: '.$e->getMessage().' ::: '.$xml); } //return var_dump($this->tools->signNFe($xml)); } } resultado xml gerado <!--?xml version="1.0" encoding="UTF-8"?--> <nfe xmlns="http://www.portalfiscal.inf.br/nfe"><infnfe id="NFe42200916604805000184550010000000021777050308" versao="4.00"><ide><cuf>42</cuf><cnf>77705030</cnf><natop>Venda de mercadoria adquirida ou recebida de terceiros</natop><mod>55</mod><serie>1</serie><nnf>2</nnf><dhemi>2020-09-10T17:51:52-03:00</dhemi><dhsaient>2020-09-10T17:51:52-03:00</dhsaient><tpnf>1</tpnf><iddest>1</iddest><cmunfg>4204608</cmunfg><tpimp>1</tpimp><tpemis>1</tpemis><cdv>8</cdv><tpamb>2</tpamb><finnfe>1</finnfe><indfinal>1</indfinal><indpres>1</indpres><procemi>0</procemi><verproc>1.0.0</verproc></ide><emit><cnpj>16604805000184</cnpj><xnome>NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME</xnome><xfant>NET BIBLIAS COMERCIO DE ARTIGOS EVANGELICOS LTDA-ME</xfant><enderemit><xlgr>Rua Carlos Otaviano Seara</xlgr><nro>349</nro><xbairro>Nossa Senhora da Salete</xbairro><cmun>4204608</cmun><xmun>Criciúma</xmun><uf>SC</uf><cep>88813410</cep><cpais>1058</cpais><xpais>Brasil</xpais><fone>48999689698</fone></enderemit><ie>258591137</ie><crt>1</crt></emit><dest><cpf>04587351911</cpf><xnome>NF-E EMITIDA EM AMBIENTE DE HOMOLOGACAO - SEM VALOR FISCAL</xnome><enderdest><xlgr>Rua Roberto Burlemax</xlgr><nro>118</nro><xbairro>Ceará</xbairro><cmun>4204608</cmun><xmun>Criciúma</xmun><uf>SC</uf><cep>88815092</cep><cpais>1058</cpais><xpais>Brasil</xpais><fone>62994430218</fone></enderdest><indiedest>2</indiedest><email>alexsc2011@gmail.com</email></dest><det nitem="1"><det nitem="2"><det nitem="1"><prod><cprod>4634</cprod><cean>SEM GTIN</cean><xprod>OLEO DE UNcaO 60 ML</xprod><ncm>15122990</ncm><cfop>6102</cfop><ucom>UND</ucom><qcom>2.0000</qcom><vuncom>6.9900000000</vuncom><vprod>13.98</vprod><ceantrib>SEM GTIN</ceantrib><utrib>UND</utrib><qtrib>1.0000</qtrib><vuntrib>13.98</vuntrib><vfrete>47.66</vfrete><indtot>1</indtot></prod><imposto><vtottrib>4.00</vtottrib><icms><icms00><orig>0</orig><cst>00</cst><modbc>0</modbc><vbc>13.98</vbc><picms>18.0000</picms><vicms>2.52</vicms></icms00></icms><ipi><cenq>999</cenq><ipitrib><cst>50</cst><vbc>0.00</vbc><pipi>0.0000</pipi><vipi>0.00</vipi></ipitrib></ipi><pis><pisaliq><cst>01</cst><vbc>13.98</vbc><ppis>0.0000</ppis><vpis>0.00</vpis></pisaliq></pis><cofins><cofinsaliq><cst>01</cst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsaliq></cofins><cofinsst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsst><icmsufdest><vbcufdest>13.98</vbcufdest><vbcfcpufdest>0</vbcfcpufdest><pfcpufdest>0.0000</pfcpufdest><picmsufdest>18.0000</picmsufdest><picmsinter>7.00</picmsinter><picmsinterpart>100.0000</picmsinterpart><vfcpufdest>0</vfcpufdest><vicmsufdest>0</vicmsufdest><vicmsufremet>0</vicmsufremet></icmsufdest></imposto></det><det nitem="2"><prod><cprod>4634</cprod><cean>SEM GTIN</cean><xprod>OLEO DE UNcaO 60 ML</xprod><ncm>15122990</ncm><cfop>6102</cfop><ucom>UND</ucom><qcom>2.0000</qcom><vuncom>6.9900000000</vuncom><vprod>13.98</vprod><ceantrib>SEM GTIN</ceantrib><utrib>UND</utrib><qtrib>1.0000</qtrib><vuntrib>13.98</vuntrib><vfrete>47.66</vfrete><indtot>2</indtot></prod><imposto><vtottrib>4.00</vtottrib><icms><icms00><orig>0</orig><cst>00</cst><modbc>0</modbc><vbc>13.98</vbc><picms>18.0000</picms><vicms>2.52</vicms></icms00></icms><ipi><cenq>999</cenq><ipitrib><cst>50</cst><vbc>0.00</vbc><pipi>0.0000</pipi><vipi>0.00</vipi></ipitrib></ipi><pis><pisaliq><cst>01</cst><vbc>13.98</vbc><ppis>0.0000</ppis><vpis>0.00</vpis></pisaliq></pis><cofins><cofinsaliq><cst>01</cst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsaliq></cofins><cofinsst><vbc>0.00</vbc><pcofins>0.0000</pcofins><vcofins>0.00</vcofins></cofinsst><icmsufdest><vbcufdest>13.98</vbcufdest><vbcfcpufdest>0</vbcfcpufdest><pfcpufdest>0.0000</pfcpufdest><picmsufdest>18.0000</picmsufdest><picmsinter>7.00</picmsinter><picmsinterpart>100.0000</picmsinterpart><vfcpufdest>0</vfcpufdest><vicmsufdest>0</vicmsufdest><vicmsufremet>0</vicmsufremet></icmsufdest></imposto></det><total><icmstot><vbc>13.98</vbc><vicms>0.00</vicms><vicmsdeson>0.00</vicmsdeson><vfcp>0.00</vfcp><vbcst>0.00</vbcst><vst>0.00</vst><vfcpst>0.00</vfcpst><vfcpstret>0.00</vfcpstret><vprod>13.98</vprod><vfrete>95.32</vfrete><vseg>0.00</vseg><vdesc>0.00</vdesc><vii>0.00</vii><vipi>0.00</vipi><vipidevol>0.00</vipidevol><vpis>0.00</vpis><vcofins>0.00</vcofins><voutro>0.00</voutro><vnf>109.30</vnf></icmstot></total><transp><modfrete>1</modfrete><vol><qvol>2</qvol><esp>caixa</esp><marca>OLX</marca><nvol>11111</nvol></vol></transp><pag><detpag><indpag>0</indpag><tpag>14</tpag><vpag>200.00</vpag><card><tpintegra>1</tpintegra><cnpj>12345678901234</cnpj><tband>01</tband><caut>3333333</caut></card></detpag></pag><infadic><infadfisco>informacoes para o fisco</infadfisco><infcpl>informacoes complementares</infcpl></infadic></det></det></infnfe></nfe>
×

Informação importante

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