Mostrando postagens com marcador Emitindo uma nota fiscal ou um boleto bancário. Mostrar todas as postagens
Mostrando postagens com marcador Emitindo uma nota fiscal ou um boleto bancário. Mostrar todas as postagens

quarta-feira, 17 de junho de 2009

Emitindo uma nota fiscal ou um boleto bancário

//Nota Fiscal

procedure TFmPedidos.btNotaClick(Sender: TObject);
var
Valorbase:DOUBLE;
valoricms:DOUBLE;
CONTADOR:Integer;
IMPRESSORA:TextFile;

begin
{POSICIONA O PONTEIRO DA TABELA DE CLIENTES,
EM RELAÇÃO À TABELA DE PEDIDOS}
DmDados.tbClientes.FindKey([DMDADOS.Tbpedidosped_Cliente.Value]);
{Relaciona a variável impressora com a
lpt1: - Poderia ser LPT, COM1,// Servidor/impressora}
AssignFile(IMPRESSORA,'LPT1:');
{abre a porta da impressão }
Rewrite(IMPRESSORA);
{envia caractere de controle para comprimir a impressão}
Write(IMPRESSORA);
{ Imprime o caractere "x" (marcando Nota de Saída) e salta para próxima linha}
Writeln(Impressora,Format('%80s',['x']));
{ salta duas linhas}
Writeln(impressora);
Writeln(Impressora);
{ Imprime a string "Vendas", alinhado à esquerda"-" dentro de uma área de quarenta caracteres}
Write(Impressora,Format('%-40s',['Vendas']));
{ Imprime a string "5.12", e salta para próxima linha}
WriteLn(Impressora,Format('%10s', ['5.12']));
{ Salta duas linhas}
Writeln(impressora);
Writeln(Impressora);
{ ---- Impressão dos Dados do Consumidor-----}
{ Imprime a Razão Social, alinhado à esquerda dentro de uma área de 90 caracteres}
Write (Impressora,Format('%-90s', [ dmdados.tbClientesCli_Razao.Value]));
{ Imprime a CGC, alinhado à esquerda dentro de umaárea de 30 caracteres}
Write(Impressora,Format('%-30s', [dmdados.tbClientesCli_CGC.Value]));
{ Imprime a Data de Emissão, baseada na data atual e salta para próxima linha}
Writeln(Impressora,DatetoStr(Date));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime Endereço,alinhado à esquerda"-" dentro de uma área de 70 carcateres}
Write(Impressora,Format('%-70s',[dmdados.tbClientesCli_Endereco.Value]));
{Imprime Bairro, dentro de uma área de 35 carcateres}
Write(Impressora,Format('%-35s',[dmdados.tbClientesCli_Bairro.Value]));
{ Imprime CEP, dentro de uma área de 15 carcateres}
Write(Impressora,Format('%-15s', [dmdados.tbClientesCli_CEP.Value]));
{Imprime a Data de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,DatetoStr(Date));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime Munícipio, dentro de uma área de 60 caracteres}
Write(Impressora, Format('%-60s', [dmdados.tbClientesCli_Cidade.Value]));
{ Imprime DD+Telefone, dentro de uma área de 30 caracteres}
Write(Impressora,Format('%-30s',[dmdados.tbClientesCli_DDD.Value+' '+ dmdados.tbClientesCli_Fone1.Value]));
{ Imprime Estado (UF), dentro de uma área de 5 caracteres}
Write(Impressora,Format('%-5s',[dmdados.tbClientesCli_Estado.Value]));
{ Imprime Inscrição Estadual, dentro de uma área de 25 caracteres}
Write(Impressora,Format('%-25s',[dmdados.tbClientesCli_Inscricao.value]));
{ Imprime a Hora de Saída, baseada na Hora Atual e Salta para próxima Linha}
Writeln(Impressora,TimetoStr(time));
{ Salta três linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{----- Fase de Emissão dos Itens da Nota -----}
{ Zero variáveis}
Valorbase:=0;
valoricms:=0;
{ Move o ponteiro de registro da tabela de Itens para o primeiro}
Dmdados.TbItens.First;
{ Início do Laço}
While not (Dmdados.tbItens.Eof) do
Begin
{ Imprime Código produto}
Write(Impressora,Format('%-15s', [InttoStr(Dmdados.tbItensIT_Produto.Value)]));
{ Imprime Descrição do produto}
Write(Impressora,Format('%-68s', [dmdados.TbitensProdutos.value]));
{ Imprime Quantidade Comercializada}
Write(Impressora,Format('%12.2n',[Dmdados.tbItensIt_Quantidade.value]));
{ Imprime Preço Unitário produto}
Write(Impressora,Format('%15.2m',[dmdados.tbitensit_valor.value]));
{ Imprime o valor Total do Item e salta uma linha}
Writeln(Impressora,Format('&15.2f', [dmdados.tbItensValorItem.Value]));
{ Soma o valor Base de Cálculo do ICMS}
Valorbase:=ValorBase + dmdados.tbItensValorItem.Value;
{ Próximo Item}
Dmdados.Tbitens.next;
end;
{ laço de Itens}
{ Salta o núemro de linhas necessárias para completar o espaço restante de itens}
For Contador:= 1 to (20- dmdados.tbItens.recordCount)do
Writeln(Impressora);
{ Salta duas Linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime o valor total dos produtos e salta uma linha}
Writeln(Impressora,Format('%120.2f',[ValorBase]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Cálculo do Imposto - baseada na Alíquota de 12%}
valoricms:=(Valorbase*0.12);
{ Imprime Valor base}

Write(Impressora,Format('%30.2f',[Valorbase]));
{ Imprime Valor ICMS e salta 'p/ próxima linha}
Write(Impressora, Format('%30.2f',[ ValorICMS]));
{ Salta uma linha}
Writeln(Impressora);
{ Imprime o valor total da Nota e salta uma linha}
Writeln(Impressora,Format('%120.2f',[Valorbase]));
{ Salta duas linhas}
Writeln(Impressora);
Writeln(Impressora);
{ Imprime informações transportador}
Writeln(Impressora,Format('%-30s', ['o mesmo']));
{ salta tr6es Linhas}
Writeln(Impressora);
Writeln(Impressora);
Writeln(Impressora);
{ Fecha a porta de impressão}
System.Close(Impressora);
end; { final da procedure}
Boleto bancário



procedure TFmGerRec.BtBoletaClick(Sender: TObject);
Var
Impressora:TextFile;

begin
AssignFile(Impressora,'LPT1:');
Rewrite(Impressora);
Writeln(impressora);
//Imprime Local de pagamento
Write(impressora,Format('%-50s',[' (PAGAVEL EM QUALQUER BANCO ATE O VENCIMENTO)']));
//Imprime Data Vencto e pula para próxima linha
Writeln (impressora,Format('%-20s',[''+DatetoStr(DmDados.TbcontasRecRec_DataVencto.Value)]));
//pula três linhas
Writeln(Impressora);
Writeln(impressora);
Writeln(impressora);

//Imprime Data de Emissão e Número Documento e salta duas linhas

Writeln(impressora,Format('%-50s',[''+DatetoStr(DmDados.TbcontasRecRec_DataEmissao.Value)]));
Writeln(impressora,Format('%-52s',[''+InttoStr(DmDados.TbcontasRecRec_Numero.Value)]));

Writeln(impressora);

//Imprime valor do Documento e pula p/ Próxima linha

Write(impressora, Format('%-55s',[ ' ']));
Writeln(impressora, Format('%-8.2m',[DmDados.TbContasRecRec_Valor.Value]));


//Pula duas linhas
Writeln(impressora);
Writeln(impressora);

//Imprime informações de Responsabilidade do Cedente

Writeln(impressora, Format('%-50s',[' Neste Espaco Voce pode imprimir o Texto']));
Writeln(impressora, Format('%-50s',[' De Responsabilidade do Cedente, comum em ']));
Writeln(impressora, Format('%-50s',[' Diversos Bancos,Ex: ']));
Writeln(impressora, Format('%-50s',[' -Cobrar Juros de 10%/Mes Apos Vencimento']));

// Pula duas Linhas

WriteLn(impressora);
Writeln(impressora);

//imprime informações do Sacado

Writeln(impressora, Format('%-50s',[''+DmDados.TbcontasRecRazao.Value+'-CGC/CPF'+Dmdados.TbContasRecCgc.Value]));
Writeln(impressora, Format('%-50s',[''+DmDados.TbContasRecEndereco.Value]));
Writeln(impressora, Format('%-50s',[' CEP'+DmDados.TbContasRecCEP.Value+''+Dmdados.TbContasRecCidade.Value+''+ Dmdados.TbContasRecEstado.Value]));

//Pula três linhas
Writeln(impressora);
Writeln(impressora);
Writeln(impressora);
CloseFile(impressora);
end;