Jean você pode pegar esse código e fazer na blank, eu tenho um exemplo se vc se interessar eu te mostro.
Eu usei o recordset do SC. sc_select();
Jean você pode pegar esse código e fazer na blank, eu tenho um exemplo se vc se interessar eu te mostro.
Eu usei o recordset do SC. sc_select();
Irmao,se puder me mandar eu agradeço…
http://svconesoft.no-ip.org:8887/conehotel/
login: teste
senha: teste
Vá em check-in, clique no X de finalizar hospedagem. Na tela que aparecer clica na Lupa Detalhar.
Essa tela foi feita na app Blank.
Eu errei não foi sc_select, foi lookup mesmo.
Segue o código:
$sql_acomp = "SELECT NOME FROM HOT004 WHERE TIPO = 2"
. " AND COD_HOSPEDAGEM = '" . [glo_reserva] . "'";
sc_lookup(cs, $sql_acomp);
$nacomp = count({cs});
if (isset({cs[0][0]})) {
$valor_add = $nacomp * 30.00;
}
else {
$valor_add = 0.00;
}
// SQL
$check_sql = "SELECT HOT003.DATA_ENTRADA, HOT003.DATA_SAIDA, HOT003.HORA_SAIDA, HOT001.NOME, CAD001.NOME, HOT003.HORA_ENTRADA"
. " FROM HOT003"
. " JOIN HOT001 ON HOT001.CODIGO = HOT003.COD_SUITE"
. " JOIN CAD001 ON CAD001.CODIGO = HOT003.COD_CLIENTE"
. " WHERE HOT003.CODIGO = '" . [glo_reserva] . "'";
sc_lookup(rs, $check_sql);
if (isset({rs[0][0]})) // ENCONTRADO
{
$entrada = {rs[0][0]};
//$saida = {rs[0][1]};
$saida = date("Y-m-d");
$data_entrada = pegaTimeStamp($entrada);
$data_saida = pegaTimeStamp($saida);
$diferenca = $data_saida - $data_entrada;
$dias = (int)floor($diferenca / (60 * 60 * 24));
$entrada = sc_date_conv({rs[0][0]},"db_format","dd/mm/aaaa");
$saida = sc_date_conv({rs[0][1]},"db_format","dd/mm/aaaa");
?>
<script>
function imprime_form()
{
if (confirm('Deseja imprimir essa pagina?')) {
document.getElementById('imprimir').style.visibility = 'hidden';
document.getElementById('voltar').style.visibility = 'hidden';
window.print();
}
}
function voltar_blank()
{
history.back();
/*var iframe = document.getElementById('nmsc_iframe_consulta_checkin');
var src = "../blank/blank.php";
iframe.src = src;*/
}
</script>
<!-- CÓDIGO DE GERAÇÃO DE DIÁRIAS E CONSUMOS -->
<style>
tr {
border: 1px solid black;
}
#main {
border: 1px solid black;
font-family: Calibri, Candara, Segoe, "Segoe UI", Optima, Arial, sans-serif;
font-size: 13px;
}
.title {
font-size: 25px;
text-align: center;
}
.nome {
font-size: 14px;
}
#info {
font-size: 13px;
text-align: center;
}
#endereco {
border: 0px;
font-size: 12px;
}
.total {
color: #CC0000;
font-size: 13px;
vertical-align: top;
}
</style>
<table id="main" border=0 width="680" cellspacing=0 cellpadding=0>
<tr>
<td height=120 rowspan=2 colspan=1 style="border-bottom: 1px solid black; border-right: 1px solid black" align="center">
<img src="../_lib/img/logo_ext.png">
</td>
<td colspan=5 height=60 class="title" style="border-bottom: 1px solid black;">
<b><i> APIDES PALACE HOTEL </i></b> <br>
<b><span id="info">Extrato para simples conferência</span></b>
</td>
</tr>
<tr>
<td colspan=5 style="border-bottom: 1px solid black;">
<table border=0 cellspacing=0 cellpadding=0 width="100%" id="endereco">
<tr>
<td><b>Endereço:</b></td>
<td colspan=2> ROD BR 101 NORTE KM 17, 809 </td>
<td> <b>CEP:</b> 29830-000</td>
</tr>
<tr>
<td><b>Cidade:</b></td>
<td> PEDRO CANÁRIO - ES </td>
<td><b>Fone:</b> (27) 3764-2223</td>
<td><b>Fax:</b> (27) 3764-0045</td>
</tr>
<tr>
<td><b>CNPJ:</b></td>
<td> 07.683.292/0001-53 </td>
<td><b>Inscrição Estadual:</b></td>
<td> ISENTO</td>
</tr>
</table>
</td>
</tr>
<tr>
<td class="nome" colspan=5>
<b>Titular:</b><b><?php echo " " . {rs[0][4]} ?></b>
</td>
<td>
<?php echo date("d/m/Y"); ?>
</td>
</tr>
<tr>
<td>
<b>Empresa:</b>
</td>
<td colspan=5>
</td>
</tr>
<tr>
<td style="border-bottom: 1px solid black;" colspan=2>
<b>Data Chegada:</b><?php echo " ". $entrada . " " . {rs[0][5]} ?>
</td>
<td style="border-bottom: 1px solid black;">
<b>Saída:</b>
</td>
<td style="border-bottom: 1px solid black;" colspan=2>
<?php echo $saida . " " . {rs[0][5]}; ?>
</td>
<td class="nome" style="border-bottom: 1px solid black;">
<b>Apartamento:</b> <b><?php echo {rs[0][3]} ?></b>
</td>
</tr>
<tbody bgcolor="#D0D0D0">
<tr>
<td style="border-bottom: 1px solid black;">
Ponto de Venda
</td>
<td style="border-bottom: 1px solid black;">
Comanda
</td>
<td style="border-bottom: 1px solid black;">
Data
</td>
<td style="border-bottom: 1px solid black;" align="center">
Quant.
</td>
<td style="border-bottom: 1px solid black;">
Produto
</td>
<td style="border-bottom: 1px solid black;" align="right">
Valor
</td>
</tr>
</tbody>
<!-- LOOP COMEÇA AQUI -->
<?php
$check_sql = "SELECT HOT002.VALOR FROM HOT003"
. " JOIN HOT001 ON HOT001.CODIGO = HOT003.COD_SUITE"
. " JOIN HOT002 ON HOT002.TIPO_SUITE = HOT001.TIPO"
. " WHERE HOT003.CODIGO = '" . [glo_reserva] . "'"
. " AND HOT002.COD_MODELO = '".[glo_modelo]."'"
. " AND HOT002.TIPO = '".[glo_tipo]."'";
sc_lookup(rs, $check_sql);
$valor_diaria = 0.00;
if (isset({rs[0][0]}))
{
$dia_acomp = $valor_add + {rs[0][0]};
for ($i=1; $i<=$dias; $i++) {
$valor_diaria = (float)$valor_diaria + $dia_acomp;
if ($i == 1) {
$titulo = "DIÁRIA";
$borda = "border-right: 1px solid black; border-bottom: 0px";
}
else if ($i < $dias) {
$titulo = "";
$borda = "border-right: 1px solid black; border-bottom: 0px";
}
else {
$titulo = "";
$borda = "border-right: 1px solid black; border-bottom: 1px solid black;";
}
?>
<tr>
<td style="<?php echo $borda; ?>">
<?php echo $titulo; ?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
0
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
<?php
$explode = sc_date($entrada, "dd/mm/aaaa", "+", $i, 0, 0);
$explode = explode("/", $explode);
$dia = $explode[0];
$mes = $explode[1];
echo $dia ."/". $mes;
?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;" align="center">
1,00
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
DIÁRIA
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;" align="right">
<?php
echo number_format($dia_acomp,2,",","."); // Valor da diária
?>
</td>
</tr>
<!-- FECHA TR DO LOOP -->
<?php
}
}
?>
<!-- LOOP COMEÇA AQUI PRODUTOS -->
<?php
$sql = "SELECT MES002.QTDE, EST003.NOME, MES002.TOTAL, MES002.CODIGO, HOT001.CODIGO FROM HOT003"
. " JOIN HOT001 ON HOT001.CODIGO = HOT003.COD_SUITE"
. " JOIN mes002 ON MES002.cod_mesa = hot001.nome"
. " JOIN est003 ON est003.codigo = mes002.COD_PRODUTO"
. " JOIN mes001 ON mes001.cod_hospedagem = hot003.CODIGO"
. " WHERE HOT003.CODIGO = '" . [glo_reserva] . "'"
. " AND MES001.SITUACAO <> 0";
sc_lookup(bs, $sql);
$valor_frigobar = 0.00;
$count = count({bs});
if (isset({bs[0][0]})) {
for ($j=0; $j<$count; $j++) {
$valor_frigobar = $valor_frigobar + {bs[$j][2]};
if ($j == 0) {
$titulo = "PRODUTOS";
$borda = "border-right: 1px solid black; border-bottom: 0px";
}
else if ($j < ($count-1)) {
$titulo = "";
$borda = "border-right: 1px solid black; border-bottom: 0px";
}
else {
$titulo = "";
$borda = "border-right: 1px solid black; border-bottom: 1px solid black;";
}
?>
<tr>
<td style="<?php echo $borda; ?>">
<?php echo $titulo; ?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
<?php echo {bs[0][3]} ?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
DATA
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;" align="center">
<?php
echo number_format({bs[$j][0]},2,",",".");
// Quantidade
?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">
<?php
echo {bs[$j][1]};
// Descrição
?>
</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;" align="right">
<?php
echo number_format({bs[$j][2]},2,",",".");
// Valor
?>
</td>
</tr>
<!-- FECHA TR DO LOOP -->
<?php
}
}
?>
<tr>
<td rowspan=7 colspan=4 style="border-right: 1px solid black;" valign="top">
<br>OBS: Detalhes são insuficientes.
</td>
<td colspan=1>
DIÁRIAS
</td>
<td align="right">
<?
echo number_format($valor_diaria,2,",",".");
// Total das diárias
?>
</td>
</tr>
<tr>
<td colspan=1>
FRIGOBAR
</td>
<td align="right">
<?php
echo number_format($valor_frigobar,2,",",".");
// Total Frigobar
?>
</td>
</tr>
<tr>
<td colspan=1 style="border-bottom: 1px solid black;">
LAVANDERIA
</td>
<td style="border-bottom: 1px solid black;" align="right">
0,00
</td>
</tr>
<tr>
<td colspan=1>
TOTAL DA CONTA
</td>
<td align="right">
<?php
$total_parcial = $valor_frigobar + $valor_diaria;
echo number_format($total_parcial,2,",","."); // Total parcial
?>
</td>
</tr>
<tr>
<td colspan=1>
DESCONTO
</td>
<td align="right">
<?php //Falta criar campo desconto
$desconto = 0.00;
echo number_format($desconto,2,",",".");
?>
</td>
</tr>
<tr>
<td colspan=1 style="border-bottom: 1px solid black;">
ADIANTAMENTO
</td>
<td style="border-bottom: 1px solid black;" align="right">
<?php //Falta criar campo adiantamento
$adiantamento = 0.00;
number_format($adiantamento,2,",",".");
?>
</td>
</tr>
<tr>
<td colspan=1 height="70" class="total">
<b>TOTAL GERAL</b>
</td>
<td class="total" align="right">
<?php
$total_geral = ($valor_frigobar + $valor_diaria) - $desconto - $adiantamento;
echo number_format($total_geral,2,",","."); // Total Geral
?>
</td>
</tr>
</table>
<table id="botoes" border=0 width="680" cellspacing=0 cellpadding=0>
<tr>
<td width="50%" align="right">
<a href="../blank/blank.php">VOLTAR</a>
<input id="voltar" name="voltar" value="Voltar" type="button" onClick="voltar_blank()">
</td>
<td align="left">
<input id="imprimir" name="imprimir" value="Imprimir" type="button" onClick="imprime_form()">
</td>
</tr>
</table>
<!-- FIM DO CÓDIGO -->
<?php
/*$inicio = '08-10-2008 10:00:00';
$tolerancia = "02:00:00";
$resultado = somaHoras($inicio, 1, $tolerancia);
echo "<br>". $resultado;*/
}
else // NÃO ENCONTRADO
{
sc_error_message("ERRO DE PROCURA!");
}
Obrigado. vou estudar esse código.
parece que é isso mesmo que preciso.
Cara tem que ver o conteúdo da sua blank, acredito que dá pra adaptar pro formato livre mas sem ver o código complica. Mas uma opção é usar o include da biblioteca FPDF e chamar pra converter o html gerado.
Eu tenho mania de desenhar HTML com php e mysql então eu sempre faço assim, ainda nem parei pra estudar a consulta com sub-consultas. Mas em breve eu vou tentar usa-la pra ver se me poupa tempo.
Olá Saulo,
No momento estou tentando utilizar umas bibliotecas externas para gerar o pdf apartir do html. Veja que no final tem o código comentado das mesmas.
Segue código:
//Parametros passados pelas telas ctrl_imprime_boleto_venda e nf_saida
//Formatacao das datas: inicial e final
if ([p6] == “F”) {
[p2] = sc_date_conv([p2],“aaaammdd”,“dd/mm/aaaa”);
[p3] = sc_date_conv([p3],“aaaammdd”,“dd/mm/aaaa”);
} else {
[p4] = “(”.[p4].")";
}
//Montagem da clausula WHERE
$var_where = " id_forma_pagamento = 3 AND nsp.id NOT IN (SELECT id_nf_saida_parcela FROM recebimento) AND (bol.impresso = ‘[p5]’ OR ‘[p5]’ = ‘T’)";
if (!empty([p1])) {
$var_where .= " AND cli.codigo = ‘[p1]’";
}
if (!empty([p2])) {
$var_where .= " AND nfs.data_venda between ‘[p2]’ AND ‘[p3]’";
}
if (!empty([p4])) {
$var_where .= " AND cli.id IN [p4]";
}
if (!empty([p8])) {
$var_where .= " AND cli.cnpj = ‘[p8]’";
}
/Inicio Lookups: para obtencao de dados para preenchimento do boleto/
sc_lookup(rs, “SELECT distinct cli.razao_social, cli.logradouro, cli.cidade, cli.uf, cli.cep,
nfs.numero_nf, nsp.parcela, nsp.data_vencimento, bol.valor,
cli.nome_fantasia, cli.codigo, nfs.id, cli.cnpj, cli.bairro, bol.nosso_numero,
bol.gerado_data, nfs.valor_total
FROM boleto bol
INNER JOIN nf_saida_parcela nsp ON nsp.id = bol.id_nf_saida_parcela
INNER JOIN nf_saida nfs ON nfs.id = nsp.id_nf_saida
INNER JOIN nf_saida_item nfsi ON nfsi.id_nf_saida = nfs.id
INNER JOIN cliente cli ON cli.id = nfs.id_cliente
WHERE “. $var_where .” ORDER BY nsp.parcela”);
sc_lookup(cedente, “SELECT ced.nosso_numero, ced.agencia, ced.agencia_digito,
ced.conta, ced.conta_digito, ced.carteira, ced.id, ced.nome,
bco.codigo, ced.convenio
FROM cedente as ced
INNER JOIN banco bco ON ced.id_banco = bco.id”);
sc_lookup(carta, “SELECT conteudo, id FROM modelo_carta”);
/Fim Lookups/
if (isset($rs) && !empty($rs)) {/Verifico se esta setado array vindo do lookup rs/
//Contagem de parcelas
sc_lookup(count_parc, “SELECT count(*) FROM nf_saida_parcela nsp
INNER JOIN nf_saida nfs ON nfs.id = nsp.id_nf_saida
INNER JOIN cliente cli ON cli.id = nfs.id_cliente
WHERE nfs.id = “. $rs[0][11].””);
//Verifica o num.de registros, recebe cast para inteiro e armazena na count_reg.
$count_reg = (int)count($rs);
//Rodrigo: SQL para busca de produtos do item da PRIMEIRA NF
sc_lookup(pdt, "SELECT prod.nome, nfi.quantidade,
nfi.valor_unitario, nfi.valor_total FROM produto prod
INNER JOIN nf_saida_item nfi ON nfi.id_produto = prod.id
WHERE nfi.id_nf_saida = ". $rs[0][11] ." ORDER BY prod.nome");
//Recebe id da NF_SAIDA.
$id_nfSaida = $rs[0][11];
for ($i = 0; $i < $count_reg; $i++) { //Realiza repeticao até o ultimo registro encontrado.
// DADOS DO BOLETO PARA O SEU CLIENTE
$dias_de_prazo_para_pagamento = 10;
$data_venc = sc_date_conv($rs[$i][7],"aaaa-mm-dd", "dd/mm/aaaa");// Prazo de X dias OU informe data: "13/04/2006";
$valor_cobrado = $rs[$i][8]; // Valor - REGRA: Sem pontos na milhar e tanto faz com "." ou "," ou com 1 ou 2 ou sem casa decimal
$valor_boleto= number_format($valor_cobrado, 2, ',', '');
$dadosboleto["nosso_numero"] = $rs[$i][14]; //Conforme instruções do cliente
$dadosboleto["numero_documento"] = $rs[$i][5];// Num do pedido ou do contrato
$dadosboleto["data_vencimento"] = $data_venc; // Data de Vencimento do Boleto - REGRA: Formato DD/MM/AAAA
$dadosboleto["data_documento"] = date("d/m/Y"); // Data de emissão do Boleto
$dadosboleto["data_processamento"] = sc_date_conv($rs[$i][15],"aaaa-mm-dd", "dd/mm/aaaa"); // Data de processamento do boleto (opcional)
$dadosboleto["valor_boleto"] = $valor_boleto; // Valor do Boleto - REGRA: Com vírgula e sempre com duas casas depois da virgula
$dadosboleto["carta"] = $carta[0][0];
//Alterar o texto da carta colocando o vencimento e numero da parcela dinamicamente
$modelo_carta = str_replace('|vencimento|', $data_venc, $carta[0][0]);
$modelo_carta = str_replace('|parcela_inicio|', $rs[$i][6], $modelo_carta);
$modelo_carta = str_replace('|parcela_fim|', $count_parc[0][0], $modelo_carta);
$dadosboleto["carta"] = $modelo_carta;
// DADOS DO SEU CLIENTE
$dadosboleto["sacado"] = $rs[$i][0];
$dadosboleto["sacado_cnpj"] = $rs[$i][12];
$dadosboleto["endereco1"] = $rs[$i][1] . " - " . $rs[$i][13];
$dadosboleto["endereco2"] = $rs[$i][2] ." - ". $rs[$i][3] ." - ". $rs[$i][4];
$dadosboleto["fantasia"] = $rs[$i][9];
$dadosboleto["codcliente"] = $rs[$i][10];
//PARCELA
$dadosboleto["parcela"] = $rs[$i][6];
//Verifica se houve mudanca de id da NF_SAIDA
if($id_nfSaida != $rs[$i][11] ){
//Atribui o id da nova NF_SAIDA
$id_nfSaida = $rs[$i][11];
//Recontagem de parcelas
sc_lookup(count_parc, "SELECT count(*) FROM nf_saida_parcela nsp
INNER JOIN nf_saida nfs ON nfs.id = nsp.id_nf_saida
INNER JOIN cliente cli ON cli.id = nfs.id_cliente
WHERE cli.id_tipo_cliente = 2 and nfs.id = $id_nfSaida ");
//Rodrigo: SQL para busca de produtos APOS A PRIMEIRA NF (Se houver)
sc_lookup(pdt, "SELECT prod.nome, nfi.quantidade,
nfi.valor_unitario, nfi.valor_total FROM produto prod
INNER JOIN nf_saida_item nfi ON nfi.id_produto = prod.id
WHERE nfi.id_nf_saida = $id_nfSaida ORDER BY prod.nome");
}
// INFORMACOES PARA O CLIENTE
$dadosboleto["instrucoes1"] = "- ESTE BOLETO REFERE-SE A CAMPANHA LIQUIDA SALVADOR 2013";
$dadosboleto["instrucoes2"] = "- NÃO RECEBER ESTE BOLETO COM 10 DIAS DE VENCIDO";
$dadosboleto["instrucoes3"] = "- NÃO RECEBER ESTE BOLETO COM DESCONTO";
$dadosboleto["instrucoes4"] = "- Em caso de dúvidas entre em contato conosco: financeiro@cdl.com.br";
$dadosboleto["instrucoes5"] = "  Parcela " . $dadosboleto["parcela"] . " de " . $count_parc[0][0];
// DADOS OPCIONAIS DE ACORDO COM O BANCO OU CLIENTE
$dadosboleto["quantidade"] = "001";
$dadosboleto["valor_unitario"] = $valor_boleto;
$dadosboleto["aceite"] = "";
$dadosboleto["especie"] = "R$";
$dadosboleto["especie_doc"] = "DS";
// ---------------------- DADOS FIXOS DE CONFIGURAÇÃO DO SEU BOLETO --------------- //
// DADOS DA SUA CONTA - Bradesco
$dadosboleto["agencia"] = $cedente[0][1]; // Num da agencia, sem digito
$dadosboleto["agencia_dv"] = $cedente[0][2]; // Digito do Num da agencia
$dadosboleto["conta"] = $cedente[0][3]; // Num da conta, sem digito
$dadosboleto["conta_dv"] = $cedente[0][4]; // Digito do Num da conta
// DADOS PERSONALIZADOS - Bradesco
$dadosboleto["conta_cedente"] = $cedente[0][3];; // ContaCedente do Cliente, sem digito (Somente Números)
$dadosboleto["conta_cedente_dv"] = $cedente[0][4]; // Digito da ContaCedente do Cliente
$dadosboleto["carteira"] = $cedente[0][5]; // Código da Carteira: pode ser 06 ou 03
$dadosboleto["banco"] = $cedente[0][8]; // Codigo do banco
$dadosboleto["convenio"] = $cedente[0][9]; //Convenio do cedente
// SEUS DADOS
$dadosboleto["identificacao"] = "CDL - Boleto de cobrança bancária";
$dadosboleto["cpf_cnpj"] = "15.178.692/0001-30";
$dadosboleto["endereco"] = "Rua Carlos Gomes, 1063 - Aflitos";
$dadosboleto["cidade_uf"] = "Salvador / Bahia";
$dadosboleto["cedente"] = $cedente[0][7];
//Rodrigo: LISTAR PRODUTOS DA NF
$tab_produtos = '';
$dadosboleto["kitnome"] = '';
for($x = 0; $x < count($pdt); $x++){
//Verifica se o produto eh kit e adciona o nome do kit sem discriminacao de
//socio ou nao socio para uso no layout_bradesco_prevenda.php (include).
if(strtoupper(substr($pdt[$x][0], 0, 3)) == "KIT"){
//Verifica se o kit tem o separador (-) de NO/PP '-' socio/nao socio
if(!strrpos($pdt[$x][0], "-")){
$dadosboleto["kitnome"] .= $pdt[$x][1] . " - " .
$pdt[$x][0] . "; ";
}else{
$dadosboleto["kitnome"] .= $pdt[$x][1] . " - " .
substr($pdt[$x][0] , 0, strrpos($pdt[$x][0], "-")) . "; ";
}
}
//Montagem dinamica das linhas e celulas da tabela de produtos no boleto
//iniciada no layout_bradesco_venda.php (include).
$tab_produtos .= "<tr>
<td class='cp' align='left'>
" . $pdt[$x][0] ."
</td>
<td class='cp' align='right'>
" . $pdt[$x][1] ."
</td>
<td class='cp' align='right'>
" . number_format($pdt[$x][2] , 2 , ',' , '.') . "
</td>
<td class='cp' align='right'>
" . number_format($pdt[$x][3] , 2 , ',' , '.') ."
</td>
</tr>";
}
//Rodrigo: Montagem estatica das informacoes de parcelas, total parcela e total venda.
$tab_produtos .= "<tr>
<td colspan='4' style='border-bottom:1px solid; border-bottom-color:#000000'>
</td>
</tr>
<tr>
<td class='cp' align='left'>
PARCELA " . $rs[$i][6] . " DE " . $count_parc[0][0] . "
</td>
<td class='cp' align='right'>
VALOR DESTA PARCELA R$ " . number_format($valor_cobrado , 2 , ',' , '.') . "
</td>
<td colspan='2' class='cp' align='right'>
TOTAL DA VENDA R$ " . number_format($rs[0][16], 2, ',' , '.') . "
</td>
</tr>
";
$dadosboleto["produtos"] = $tab_produtos;
//inicia o buffer
//ob_start();
// NÃO ALTERAR!
include_once("include/funcoes_bradesco.php");
//gera_boleto(&$dadosboleto);
$dadosboleto = gera_boleto_2($dadosboleto);
//O Teste abaixo verifica o parametro P7 quanto a tipo de boleto (P=prevenda / V=venda) que deve ser impresso.
if([p7] == "P"){
include("include/layout_bradesco_prevenda.php");
}else{
include("include/layout_bradesco_venda.php");
}
include("include/layout_correio.php");
//$htmlBoleto = ob_get_clean();
//Criando um novo arquivo
//file_put_contents("boleto.htm", $htmlBoleto);
//require_once('..\..\..\..\dompdf\dompdf_config.inc.php');
//$html = file_get_contents("boleto.htm");
//$dompdf = new DOMPDF();
//$boletoPdf = mb_convert_encoding($html, 'HTML-ENTITIES', 'UTF-8');
//$dompdf->load_html($boletoPdf);
//$dompdf->set_paper("A4", "portrait");
//$dompdf->render();
//$dompdf->stream('boleto.pdf');
//C:\Arquivos de programas\netmake\v6\wwwroot\
//require_once('..\..\..\..\html2pdf\html2pdf.class.php');
//$html = file_get_contents("boleto.htm");
//$html2pdf = new HTML2PDF('P','A4','fr');
//$html2pdf->WriteHTML($html);
//$html2pdf->Output('boleto.pdf');
//exit;
//Flegar o boleto como IMPRESSO
$sql = "UPDATE boleto SET impresso = 'S' WHERE nosso_numero = '".$rs[$i][14]."'";
sc_exec_sql($sql);
}
} else {
sc_alert(“Estes boletos jah foram impressos ou nao existem”);
}
Resolvi o problema de imprimir várias páginas e repetir o layout sem a necessidade de interferir no código do reportPDF…
apenas desenho o formulario com a biblioteca e o resto com o proprio report…
na proxima semana vou publicar em vídeo …
Tatauzinho, o seu script esta certinho, o que você pode fazer é jogar o buffer direto para a FPDF:
Isso aqui tem no manual do SC
sc_include_lib ("fpdf");
$pdf=new FPDF();
$pdf->Output('../tmp/boleto.pdf'); //aqui no output você pode especificar a variável com o conteúdo do buffer e salvar em um diretório.
Olá Saulo,
Já tentei ler do buffer e inlusive ler o html gerado salvo em um diretório. Tudo isso com várias bibliotecas. E todas deram erros muito loucos…rsrs.
Não encontrei meneira de ler o html com a FPDF. Tenho que recontruir todo meu boleto?
Obrigado mais uma vez.
Tatauzinho, leia a documentação da FPDF, tudo esta disponível no SC, na verdade eu te passei o esquema errado deveria ter passado assim, esse trecho é de um código meu que faz exatamente o que vc esta tentando:
sc_include_lib("fpdf_html");
$pdf=new HTML2FPDF();
$pdf->WriteHTML("aqui vc coloca a variável que esta com o buffer html armazenado");
$pdf->Output("aqui você especifica um diretório para salvar juntamente com o nome do arquivo que deseja salvar");
Olá Saulo,
Já havia tentado isso também. Não obtive sucesso. Apresentou seguintes erros:
ERRO
Undefined index: cp
ERRO
Undefined index: s
.
.
.
Estou atualmente trabalhando com o BoletoPhp + mPDF. Até agora é o que estou conseguindo melhores resultados com pouca adaptação no código html que vai dentro da variável. Apesar da formatação do boleto no PDF ainda estar meio desformatada.
Segue o exemplo que nosso amigo nos indicou:
http://blog.fragasoft.com/salvando-boleto-php-em-pdf/
Obrigado mais uma vez.
Jean você poderia me dar uma força com isso aí? Tô me arrebentando aqui pra tentar resolver esse problema de repetir a imagem (layout) de fundo na páginas e não consigo. Só aparece a imagem na primeira (na opção de relatório de um Registro por Página).