Nessa semana, eu consegui fazer o cálculo do Simples Nacional no meu notebook, mas eu não consegui fazer o valor do imposto ser igual ao que foi calculado pela Contabilidade, a diferença é de alguns centavos, mas eu posso usar o meu programa como uma estimativa.
O problema foi na hora de copiar o meu código PHP na Hostinger, lá o PHP reclamou que o comando scandir não encontrou o diretório que mandei procurar.
Levei um tempão para entender porque o scandir não funciona: o que funciona no notebook nem sempre vai funcionar na Hostinger.
Na base da tentativa e erro, fui procurar a solução no HTML, no <input type="file" multiple>, mas o máximo que eu consegui foi obter uma lista de 20 arquivos, quando precisava ver coisa da ordem de 700 arquivos. O Copilot explicou que o navegador e o servidor podem definir restrição para o <input type="file" multiple>, e o Copilot disse que eu preciso estudar mais, ir além do PHP e aprender como fazer a Hostinger ter acesso remoto ao meu notebook, e assim calcular o Simples Nacional na internet.
A minha primeira tentativa de calcular o Simples foi pelo comando zipArchive do PHP, e eu consegui fazer funcionar uma vez ou outra. O Windows sempre consegue abrir o arquivo .zip, já o comando zipArchive do PHP sempre reclamava que encontrou erro no arquivo, assim eu desisti dele.
Conclusão: eu não sei se é possível calcular o Simples Nacional na internet, mas eu consegui calcular aqui no notebook com o PHP. Mas para calcular o Simples aqui no notebook, eu preciso da venda dos doze últimos meses que está no MySQL que está hospedado lá na Hostinger. Isso é constrangedor, mas pelo menos eu posso chorar a vontade, isso é o que dá para fazer quando estou num beco sem saída.
bling.php (parcial)
<?php
classBling{staticfunction simplesSelecionado(){
$diretorio="C:/Users/Frank/Downloads/".substr($_FILES['pasta']['full_path'],0,-4);
$contaArquivos = count(scandir($diretorio))-2-2;
$notasFiscais =[];
$nfCanceladas =[];
$nfces = scandir($diretorio);
$notasCanceladas=0;
$somaTotal=0;
$comST=0;
$semST=0;foreach($nfces as $nfce){if($nfce !=='.'&& $nfce !=='..'){if(strpos($nfce,'-can')!==false){
$nfCanceladas[]= intval(substr($nfce,28,6));
$notasCanceladas++;continue;}
$numeroNota=intval(substr($nfce,28,6));if(in_array($numeroNota,$nfCanceladas)){continue;}
$notasFiscais[]=$numeroNota;
$dom =newDOMDocument();
$dom->load("$diretorio/$nfce");
$nfe=$dom->documentElement;if($nfe->getElementsByTagName('vNF')->item(0)){
$somaNF=$nfe->getElementsByTagName('vNF')->item(0)->nodeValue;
$somaTotal+=$somaNF;
$produtos=$nfe->getElementsByTagName('prod');foreach($produtos as $p){
$cfop=$p->getElementsByTagName('CFOP')->item(0)->nodeValue;
$vProd=$p->getElementsByTagName('vProd')->item(0)->nodeValue;
$vDesc=0;if($p->getElementsByTagName('vDesc')->item(0)){
$vDesc=$p->getElementsByTagName('vDesc')->item(0)->nodeValue;}if($cfop==5405){
$comST += $vProd - $vDesc;}else{
$semST += $vProd - $vDesc;}}}}}
sort($notasFiscais);
$primeiraNota=intval($notasFiscais[0]);
$ultimaNota=intval($notasFiscais[$contaArquivos-1]);
$totalDeNotas=count($notasFiscais);
$rendas=bd::x('select * from tbrendabruta order by id desc limit 13')->get();
$renda=0;foreach($rendas as $key=>$r){if($key>0){
$renda += $r->renda;}}// indices da primeira faixa da tabela do Simples Nacional 2025 no comércio
$aliqICMS=1.36;
$ICMS=round($semST*$aliqICMS/100,2);
$aliqIRPJ=0.22;
$IRPJ=round($somaTotal*$aliqIRPJ/100,2);
$aliqCSLL=0.14;
$CSLL=round($somaTotal*$aliqCSLL/100,2);
$aliqCOFINS=0.5096;
$COFINS=round($somaTotal*$aliqCOFINS/100,2);
$aliqPIS=0.1105;
$PIS=round($somaTotal*$aliqPIS/100,2);
$aliqINSS=1.66;
$INSS=intval($somaTotal*$aliqINSS)/100;
$aliqSimples=4;
$Simples=$ICMS+$IRPJ+$CSLL+$COFINS+$PIS+$INSS;
view('blingSimples',['primeiraNota'=>$primeiraNota,'ultimaNota'=>$ultimaNota,'notasFiscais'=>$notasFiscais,'somaTotal'=>$somaTotal,'contaArquivos'=>$contaArquivos,'notasCanceladas'=>$notasCanceladas,'totalDeNotas'=>$totalDeNotas,'nfCanceladas'=>$nfCanceladas,'comST'=>$comST,'semST'=>$semST,'renda'=>$renda,'aliqICMS'=>$aliqICMS,'ICMS'=>$ICMS,'aliqIRPJ'=>$aliqIRPJ,'IRPJ'=>$IRPJ,'aliqCSLL'=>$aliqCSLL,'CSLL'=>$CSLL,'aliqCOFINS'=>$aliqCOFINS,'COFINS'=>$COFINS,'aliqPIS'=>$aliqPIS,'PIS'=>$PIS,'aliqINSS'=>$aliqINSS,'INSS'=>$INSS,'aliqSimples'=>$aliqSimples,'Simples'=>$Simples,'rendas'=>$rendas]);}}
arquivo blingSimples.php (ele usa o CSS https://cdn.tailwindcss.com)<?php include 'menuView.php';?><script>btMenu.innerHTML="Simples";document.title="Simples"</script><divclass=flex><div>Total de Notas</div><divclass="ml-2"><?=$totalDeNotas?></div></div><divclass=flex><div>Notas Canceladas</div><divclass="ml-2 text-right mr-2"><?=$notasCanceladas.": ";?></div><?php foreach($nfCanceladas as $n): echo $n."<br>"; endforeach;?></div><divclass=flex><div>Total das Notas Fiscais</div><divclass="text-right ml-2"><?=dec($somaTotal)?></div></div><divclass=flex><div>Primeira Nota</div><divclass="text-right ml-2"><?=$primeiraNota?></div></div><divclass=flex><div>Última Nota</div><divclass="text-right ml-5"><?=$ultimaNota?></div></div><divclass=flex><divclass="w-[120px]">Renda 12 Meses</div><divclass="w-[100px] text-right"><?=dec($renda)?></div></div><divclass="flex"><?php
$contador =0;foreach($rendas as $key=>$r):if($key>0):if($contador %4===0&& $contador !==0):?></div><divclass="flex"><?php endif;?><divclass="w-[50px]"><?php echo $r->apuracao;?></div><divclass="w-[80px] text-right font-semibold mr-2"><?php echo dec($r->renda);?></div><?php
$contador++;
endif;
endforeach;?></div><divclass=flex><divclass="w-[120px]">Com ST</div><divclass="w-[100px] text-right"><?=dec($comST)?></div></div><divclass=flex><divclass="w-[120px]">Sem ST ICMS</div><divclass="w-[100px] text-right"><?=dec($semST)?></div><divclass="w-[100px] text-right"><?=dec($aliqICMS)."%"?></div><divclass="w-[100px] text-right"><?=dec($ICMS)?></div></div><divclass=flex><divclass="w-[120px]">IRPJ</div><divclass="w-[100px] text-right"><?=dec($somaTotal)?></div><divclass="w-[100px] text-right"><?=dec($aliqIRPJ)."%"?></div><divclass="w-[100px] text-right"><?=dec($IRPJ)?></div></div><divclass=flex><divclass="w-[120px]">CSLL</div><divclass="w-[100px] text-right"><?=dec($somaTotal)?></div><divclass="w-[100px] text-right"><?=dec($aliqCSLL)."%"?></div><divclass="w-[100px] text-right"><?=dec($CSLL)?></div></div><divclass=flex><divclass="w-[120px]">COFINS</div><divclass="w-[100px] text-right"><?=dec($somaTotal)?></div><divclass="w-[100px] text-right"><?=dec($aliqCOFINS)."%"?></div><divclass="w-[100px] text-right"><?=dec($COFINS)?></div></div><divclass=flex><divclass="w-[120px]">PIS</div><divclass="w-[100px] text-right"><?=dec($somaTotal)?></div><divclass="w-[100px] text-right"><?=dec($aliqPIS)."%"?></div><divclass="w-[100px] text-right"><?=dec($PIS)?></div></div><divclass=flex><divclass="w-[120px]">INSS</div><divclass="w-[100px] text-right"><?=dec($somaTotal)?></div><divclass="w-[100px] text-right"><?=dec($aliqINSS)."%"?></div><divclass="w-[100px] text-right"><?=dec($INSS)?></div></div><divclass=flex><divclass="w-[120px]">Simples</div><divclass="w-[100px] text-right">Estimativa</div><divclass="w-[100px] text-right"><?=dec($aliqSimples)."%"?></div><divclass="w-[100px] text-right font-semibold"><?=dec($Simples)?></div></div>
Pergunta
Frank K Hosaka
Nessa semana, eu consegui fazer o cálculo do Simples Nacional no meu notebook, mas eu não consegui fazer o valor do imposto ser igual ao que foi calculado pela Contabilidade, a diferença é de alguns centavos, mas eu posso usar o meu programa como uma estimativa.
O problema foi na hora de copiar o meu código PHP na Hostinger, lá o PHP reclamou que o comando scandir não encontrou o diretório que mandei procurar.
Levei um tempão para entender porque o scandir não funciona: o que funciona no notebook nem sempre vai funcionar na Hostinger.
Na base da tentativa e erro, fui procurar a solução no HTML, no <input type="file" multiple>, mas o máximo que eu consegui foi obter uma lista de 20 arquivos, quando precisava ver coisa da ordem de 700 arquivos. O Copilot explicou que o navegador e o servidor podem definir restrição para o <input type="file" multiple>, e o Copilot disse que eu preciso estudar mais, ir além do PHP e aprender como fazer a Hostinger ter acesso remoto ao meu notebook, e assim calcular o Simples Nacional na internet.
A minha primeira tentativa de calcular o Simples foi pelo comando zipArchive do PHP, e eu consegui fazer funcionar uma vez ou outra. O Windows sempre consegue abrir o arquivo .zip, já o comando zipArchive do PHP sempre reclamava que encontrou erro no arquivo, assim eu desisti dele.
Conclusão: eu não sei se é possível calcular o Simples Nacional na internet, mas eu consegui calcular aqui no notebook com o PHP. Mas para calcular o Simples aqui no notebook, eu preciso da venda dos doze últimos meses que está no MySQL que está hospedado lá na Hostinger. Isso é constrangedor, mas pelo menos eu posso chorar a vontade, isso é o que dá para fazer quando estou num beco sem saída.
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.