Bien, ahí van las impresiones de las Notas de débito A y B.
Son muy similares a las facturas puesto que contablemente sabemos que estos documentos son análogos.
Código Delphi
[-]
procedure TFrmPpal.evNotaDebitoAEventAlert(Sender: TObject;
EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
var
puerto:string;
ini:TIniFile;
factura:TEnc_egreso;
begin
with DataModule2, IBConsulta, factura do
try
terminarTransaccion;
IBTransaccion.StartTransaction;
buscar_cliente_factura(ibconsulta, 'NOTA_DEBITO_A');
cod_egreso:=FieldByName('cod_egreso').AsInteger;
nombre_cliente:=FieldByName('nombre_cliente').AsString;
domicilio:=FieldByName('domicilio_cliente').AsString;
responsabilidad_iva:=FieldByName('responsabilidad_iva_cliente').AsString;
tipo_documento:=FieldByName('tipo_documento').AsString;
numero_documento:=FieldByName('numero_documento').AsString; pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; abrir_fiscal(archivoINI);
Hasar1.PrecioBase:=False; Hasar1.Comenzar;
Hasar1.TratarDeCancelarTodo;
Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
Hasar1.AbrirComprobanteFiscal(NOTA_DEBITO_A);
Buscar_detalle_factura_A(ibconsulta, cod_egreso);
with ibconsulta do
begin
first;
while not eof do
begin hasar1.ImprimirItem(FieldByName('nombre_existencia').AsString, FieldByName('cantidad_egreso').AsFloat,
FieldByName('precio_final').AsFloat, FieldByName('porcentaje_alicuota').AsFloat, 0);
next;
end;
end;
hasar1.Subtotal(true);
Buscar_formas_pago_cliente(IBConsulta, cod_egreso);
with IBConsulta do
begin
First;
while not Eof do
begin
hasar1.ImprimirPago(FieldByName('tipo_forma_cobro').AsString,
FieldByName('monto_forma_cobro').AsFloat);
Next;
end;
end;
Hasar1.CerrarComprobanteFiscal;
nro_egreso:=StrToInt(Hasar1.Respuesta[3]);
registrar_numero_comprobante_egreso(nro_egreso, cod_egreso, IBConsulta);
Hasar1.Finalizar;
IBTransaccion.Commit;
CoolTrayIcon1.ShowBalloonHint('Impresora fiscal', 'Nota de débito A, Nº '
+ LPad(pto_vta_egreso, 4, '0') + ' - ' + LPad(nro_egreso, 8, '0') + ' en la Impresora fiscal...',
bitInfo, 10);
except
on E:Exception do
begin
terminarTransaccion;
merrores(e, 'Error en la impresión de datos.', 'Impresión Nota de débito A');
end;
end;
end;
procedure TFrmPpal.evNotaDebitoBEventAlert(Sender: TObject;
EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
var
puerto:string;
ini:TIniFile;
factura:TEnc_egreso;
r:string;
begin
with DataModule2, IBConsulta, factura do
begin
terminarTransaccion;
try
IBTransaccion.StartTransaction;
buscar_cliente_factura(ibconsulta, 'NOTA_DEBITO_B');
cod_egreso:=FieldByName('cod_egreso').AsInteger;
nombre_cliente:=FieldByName('nombre_cliente').AsString;
domicilio:=Trim(FieldByName('domicilio_cliente').AsString);
responsabilidad_iva:=FieldByName('responsabilidad_iva_cliente').AsString;
tipo_documento:=FieldByName('tipo_documento').AsString;
numero_documento:=FieldByName('numero_documento').AsString; pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; abrir_fiscal(archivoINI);
Hasar1.PrecioBase:=False;
DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
OutputDebugString(PChar(r + ' - Comenzar.'));
Hasar1.Comenzar;
DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
OutputDebugString(PChar(r + ' - Tratar de cancelar todo.'));
Hasar1.TratarDeCancelarTodo;
if domicilio <> EmptyStr then
begin
DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
OutputDebugString(PChar(r + ' - Domicilio <> vacío.'));
Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
end
else
begin
DateTimeToString(r, 'dd/mm/yyyy hh:nn:ss', Now);
OutputDebugString(PChar(r + ' - Domicilio = vacío (por el else).'));
Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
obtener_responsabilidad_iva(responsabilidad_iva), ' ');
end;
Hasar1.AbrirComprobanteFiscal(NOTA_DEBITO_B);
Buscar_detalle_factura_A(IBConsulta, cod_egreso);
with IBConsulta do
begin
first;
while not eof do
begin hasar1.ImprimirItem(FieldByName('nombre_existencia').AsString, FieldByName('cantidad_egreso').AsFloat,
FieldByName('precio_final').AsFloat, FieldByName('porcentaje_alicuota').AsFloat, 0);
next;
end;
end;
hasar1.Subtotal(true);
Buscar_formas_pago_cliente(IBConsulta, cod_egreso);
with IBConsulta do
begin
First;
while not Eof do
begin
hasar1.ImprimirPago(FieldByName('tipo_forma_cobro').AsString,
FieldByName('monto_forma_cobro').AsFloat);
Next;
end;
end;
Hasar1.CerrarComprobanteFiscal;
nro_egreso:=StrToInt(Hasar1.Respuesta[3]);
registrar_numero_comprobante_egreso(nro_egreso, cod_egreso, IBConsulta);
Hasar1.Finalizar;
IBTransaccion.Commit;
CoolTrayIcon1.ShowBalloonHint('Impresora fiscal', 'Nota de débito B, Nº '
+ LPad(pto_vta_egreso, 4, '0') + ' - ' + LPad(nro_egreso, 8, '0') + ' en la Impresora fiscal...',
bitInfo, 10);
except
on E:Exception do
begin
terminarTransaccion;
merrores(e, 'Error en la impresión de datos.', 'Impresión Nota débito B.');
end;
end;
end;
end;
Saludos.