E:
/
home
/
kbcomunicacao1
/
Web
/
feicon
/
Upload File
HOME
<?php /* * @descr: Gera o arquivo de remessa para cobranca no padrao CNAB 400 vers. 7.0 ITAU */ require '../includes/conexao/config.php'; require '../includes/conexao/conn.php'; require '../includes/conexao/function.php'; function limit($palavra,$limite) { if(strlen($palavra) >= $limite) { $var = substr($palavra, 0,$limite); } else { $max = (int)($limite-strlen($palavra)); $var = $palavra.complementoRegistro($max,"brancos"); } return $var; } function sequencial($i) { if($i < 10) { return zeros(0,5).$i; } else if($i > 10 && $i < 100) { return zeros(0,4).$i; } else if($i > 100 && $i < 1000) { return zeros(0,3).$i; } else if($i > 1000 && $i < 10000) { return zeros(0,2).$i; } else if($i > 10000 && $i < 100000) { return zeros(0,1).$i; } } function zeros($min,$max) { $x = ($max - strlen($min)); for($i = 0; $i < $x; $i++) { $zeros = '0'; } return $zeros.$min; } function complementoRegistro($int,$tipo) { if($tipo == "zeros") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= '0'; } } else if($tipo == "brancos") { $space = ''; for($i = 1; $i <= $int; $i++) { $space .= ' '; } } return $space; } $fusohorario = 3; // como o servidor de hospedagem é a dreamhost pego o fuso para o horario do brasil $timestamp = mktime(date("H") - $fusohorario, date("i"), date("s"), date("m"), date("d"), date("Y")); $DATAHORA['PT'] = gmdate("d/m/Y H:i:s", $timestamp); $DATAHORA['EN'] = gmdate("Y-m-d H:i:s", $timestamp); $DATA['PT'] = gmdate("d/m/Y", $timestamp); $DATA['EN'] = gmdate("Y-m-d", $timestamp); $DATA['DIA'] = gmdate("d",$timestamp); $DATA['MES'] = gmdate("m",$timestamp); $DATA['ANO'] = gmdate("y",$timestamp); $HORA = gmdate("H:i:s", $timestamp); $HORA1 = gmdate("His", $timestamp); function dbDateToDate2($data){ if(($data == NULL) or ($data =="") or ($data==''))return NULL; $ano = substr($data,0,4); $dia = substr($data, 5,2); $mes = substr($data,8,2); $dt = $mes.''.$dia.''.$ano; return ($dt); } function DateTodbDate($data){ if(($data == NULL) or ($data =="") or ($data==''))return NULL; $ano = substr($data,8,6); $mes = substr($data, 3,2); $dia = substr($data,0,2); $dt = $dia.''.$mes.''.$ano; return ($dt); } function tirarAcentos($string){ return preg_replace(array("/(á|à|ã|â|ä)/","/(Á|À|Ã|Â|Ä)/","/(é|è|ê|ë)/","/(É|È|Ê|Ë)/","/(í|ì|î|ï)/","/(Í|Ì|Î|Ï)/","/(ó|ò|õ|ô|ö)/","/(Ó|Ò|Õ|Ô|Ö)/","/(ú|ù|û|ü)/","/(Ú|Ù|Û|Ü)/","/(ñ)/","/(Ñ)/","/(ç)/","/(Ç)/"),explode(" ","a A e E i I o O u U n N c C"),$string); } function limpaCPF_CNPJ($valor){ $valor = trim($valor); $valor = str_replace(".", "", $valor); $valor = str_replace(",", "", $valor); $valor = str_replace("-", "", $valor); $valor = str_replace("/", "", $valor); return $valor; } function formataValor2($valor){ if (!empty($valor)){ return number_format($valor,2,',','.'); } else { return "0,00"; } } $filename = "remessa.txt"; $conteudo = ''; ## REGISTRO HEADER #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= '0'; // tipo de registro id registro header 001 001 9(01) $conteudo .= 1; // operacao tipo operacao remessa 002 002 9(01) $conteudo .= 'REMESSA'; // literal remessa escr. extenso 003 009 X(07) $conteudo .= '01'; // codigo servico id tipo servico 010 011 9(02) $conteudo .= limit('COBRANCA',15); // literal cobranca escr. extenso 012 026 X(15) $conteudo .= '35540578768801300667'; // código de transmissão //$conteudo .= '35540078524501300891'; // código de transmissão //$conteudo .= limit('CAOM & KB SERVICOS EMPRESARIAI',30);//nome da empresa 047 076 X(30) $conteudo .= limit('MELO E BOSCARIOLI SERVICOS TER',30);//nome da empresa 047 076 X(30) $conteudo .= '033'; // codigo banco Nº BANCO CÂMARA COMP. 077 079 9(03) $conteudo .= limit('SANTANDER',15); // nome do banco por ext. 080 094 X(15) $conteudo .= $DATA['DIA'].$DATA['MES'].$DATA['ANO'];//data geracao arquivo 095 100 9(06) $conteudo .= complementoRegistro(16,"zeros");// zeros complemento d registro 06 $conteudo .= limit('- Sr. Caixa, cobrar multa de 2% apos o venc.',47);//mensagem 01 $conteudo .= limit('- Receber ate 5 dias apos o vencimento',47);//mensagem 02 $conteudo .= limit('- Duvidas em: adm@grupocaom.com.br',47);//mensagem 03 $conteudo .= limit('- Emitido pelo sistema Innterage',47);//mensagem 04 $conteudo .= limit('-',47);//mensagem 05 $conteudo .= complementoRegistro(34,"brancos");// complemento registro 039 046 X(08) $conteudo .= complementoRegistro(6,"brancos");// complemento de registr 101 394 X(294) $conteudo .= complementoRegistro(3,"brancos");// complemento de registr 101 394 X(294) $conteudo .= '000001'; // numero sequencial registro no arquivo 395 400 9(06) $conteudo .= chr(13).chr(10); //essa é a quebra de linha $nomeTeste = $_POST['idsetor']; $totalDeItens = count($nomeTeste); $total = 0; for($i = 0; $i < $totalDeItens; $i++){ $teste = $nomeTeste[$i]; $query = "SELECT id_recibo, nosso_recibo, valor_recibo, vencimento_recibo, razao_cliente, cnpj_cliente, rua_cliente, bairro_cliente, cidade_cliente, tipo_cliente FROM cw_recibo, cw_cliente WHERE cliente_recibo=id_cliente AND id_recibo = '$teste'"; $result = DBExecute($query); $res = mysqli_fetch_assoc($result); $recibo = array( 'gerado_recibo' => "1" ); DBUpDate('recibo', $recibo, "id_recibo= $teste"); $tipo_cliente = $res['tipo_cliente']; $nosso_numero = $res['nosso_recibo']; $razao_cliente = tirarAcentos($res['razao_cliente']); $rua_cliente = tirarAcentos($res['rua_cliente']); $bairro_cliente = tirarAcentos($res['bairro_cliente']); $cidade_cliente = tirarAcentos($res['cidade_cliente']); $cnpj_cliente = $res['cnpj_cliente']; $vencimento_recibo = $res['vencimento_recibo']; $valor_recibo = $res['valor_recibo']; $valor_titulo = str_replace("." , "" , $valor_recibo ); // Primeiro tira os pontos $valor_titulo = str_replace("," , "" , $valor_titulo); // Depois tira a vírgula if($tipo_cliente == 'CPF'){$tipo_doc = '01';}elseif($tipo_cliente == 'CNPJ'){$tipo_doc = '02';} $cnpj_cliente = limpaCPF_CNPJ($cnpj_cliente); ## REGISTRO DETALHE (OBRIGATORIO) #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 1; // tipo registro id registro transacac. 001 001 9(01) $conteudo .= '02'; // codigo inscricao tipo inscricao empresa 002 003 9(02) $conteudo .= '11152095000185'; // cnpj da empresa 004 017 9(14) $conteudo .= '3554'; // agencia mantenedora da conta 018 021 9(04) $conteudo .= '13006672'; // conta numero da conta 024 028 9(05) $conteudo .= '13006672'; // conta numero da conta 024 028 9(05) $conteudo .= complementoRegistro(25,"brancos");// Número de controle do participante $conteudo .= str_pad($nosso_numero, 8, '0', STR_PAD_LEFT); // Nosso número $conteudo .= complementoRegistro(6,"brancos");// branco $conteudo .= complementoRegistro(1,"brancos"); // brancos complemento registro 030 033 X(04) $conteudo .= '4'; // Informação de multa = 4, senão houver informar zero $conteudo .= '0200'; // Percentual multa por atraso % $conteudo .= '00'; // Unidade de valor moeda corrente = 00 $conteudo .= str_pad($valor_titulo, 13, '0', STR_PAD_LEFT); // Valor do título em outra unidade (consultar banco) $conteudo .= complementoRegistro(4,"brancos"); // Brancos $conteudo .= complementoRegistro(6,"brancos"); // Data para cobrança de multa. (Nota 4) $conteudo .= '5'; // Código da carteira $conteudo .= '01'; // Código da ocorrência $conteudo .= str_pad($nosso_numero, 10, '0', STR_PAD_LEFT); // Seu número $conteudo .= DateTodbDate($vencimento_recibo);//Data de vencimento do título $conteudo .= str_pad($valor_titulo, 13, '0', STR_PAD_LEFT); // Valor do título $conteudo .= '033'; // Número do Banco cobrador = 353 / 033 $conteudo .= '00000'; // Código da agência cobradora do Banco Santander $conteudo .= '01'; // Espécie de documento: $conteudo .= 'N'; // Tipo de aceite = N $conteudo .= $DATA['DIA'].$DATA['MES'].$DATA['ANO'];//Data da emissão do título $conteudo .= '07'; // Primeira instrução cobrança $conteudo .= '08'; // Segunda instrução cobrança $conteudo .= '0000000000000'; // Valor de mora a ser cobrado por dia de atraso $conteudo .= complementoRegistro(6,"brancos");// branco $conteudo .= '0000000000000'; // Valor de desconto a ser concedido (Nota 11) $conteudo .= '0000000000000'; // Valor de desconto a ser concedido (Nota 11) $conteudo .= '0000000000000'; // Valor de desconto a ser concedido (Nota 11) $conteudo .= "$tipo_doc"; // TIPO: 01CPF / 02CNPJ $conteudo .= str_pad("$cnpj_cliente", 14, '0', STR_PAD_LEFT); // CPF / CNPJ $conteudo .= limit("$razao_cliente",40);//Nome do pagador $conteudo .= limit("$rua_cliente",40);//Endereço do pagador $conteudo .= limit("$bairro_cliente",12);//Bairro do pagador $conteudo .= '00000'; // CEP do pagador $conteudo .= '000'; // CEP do pagador $conteudo .= limit("$cidade_cliente",15);//municipio $conteudo .= limit('SP',2);//uf $conteudo .= complementoRegistro(30,"brancos");// branco $conteudo .= complementoRegistro(1,"brancos");// branco $conteudo .= 'I'; // Complemento $conteudo .= '27'; // Complemento $conteudo .= complementoRegistro(6,"brancos");// branco $conteudo .= complementoRegistro(2,"brancos");// branco $conteudo .= complementoRegistro(1,"brancos");// branco $conteudo .= '000001'; // numero sequencial registro no arquivo 395 400 9(06) $conteudo .= chr(13).chr(10); //essa é a quebra de linha $total += $valor_recibo; } $total = formataValor2($total); $valor_total = str_replace("." , "" , $total ); // Primeiro tira os pontos $valor_total = str_replace("," , "" , $valor_total); // Depois tira a vírgula ## Registro Trailler - Remessa (OBRIGATORIO) #NOME DO CAMPO #SIGNIFICADO #POSICAO #PICTURE $conteudo .= 9; // tipo registro id registro transacac. 001 001 9(01) $conteudo .= str_pad($totalDeItens, 6, '0', STR_PAD_LEFT); // Quantidade de titulos $conteudo .= str_pad($valor_total, 13, '0', STR_PAD_LEFT); // Valor do título em outra unidade (consultar banco) $conteudo .= complementoRegistro(374,"zeros"); // brancos $conteudo .= '000101'; //código da carteira if (!$handle = fopen($filename, 'w+')) { erro("Não foi possível abrir o arquivo ($filename)"); } // Escreve $conteudo no nosso arquivo aberto. if (fwrite($handle, "$conteudo") === FALSE) { echo "Não foi possível escrever no arquivo ($filename)"; } fclose($handle); echo '<a href="baixar.php">BAIXAR ARQUIVO DE REMESSA</a>'; ?>