Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

Go Back   Foros Club Delphi > Principal > Impresión
Register FAQ Members List Calendar Guía de estilo Today's Posts

Reply
 
Thread Tools Search this Thread Display Modes
  #1  
Old 02/05/2013
santiago14's Avatar
santiago14 santiago14 is offline
Miembro
 
Join Date: Sep 2003
Location: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Thumbs up Notas de crédito A y B Hasar SMH/P330

Y para completar van las notas de crédito A y B.
El código es algo diferente, este documento es considerado NO fiscal y supongo que eso le otorga menos importancia que las Facturas y Notas de débito. Habrá que conversar con un Contador para resolver este misterio.
Una particularidad, este documento necesita de "un documento relacionado", normalmente una factura, eso se lo indica con el comando Hasar1.DocumentoDeReferencia[], pero el mismo no funciona del todo bien, así que se reemplaza (algo mas tedioso de hacer) por el comando Hasar1.Enviar() y unas líneas previas mas.
Lo que nos ocupa a nosotros, el código:
Código Delphi [-]
//Nota de crédito A
procedure TFrmPpal.evNotaCreditoAEventAlert(Sender: TObject;
  EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
var
  puerto:string;
  ini:TIniFile;
  factura:TEnc_egreso;
  fs, comando, comprobante_original:WideString;
begin
  with DataModule2, IBConsulta, factura do
  try
    terminarTransaccion;
    IBTransaccion.StartTransaction;
    buscar_cliente_factura(ibconsulta, 'NOTA_CREDITO_A');
  //Recuperamos los datos de la Nota de crédito A
    //cod_egreso:=Fields[0].asInteger;
    cod_egreso:=FieldByName('cod_egreso').AsInteger;
  //Recuperamos el comprobante relacionado
    cod_comprobante_relacionado:=FieldByName('cod_comprobante_relacionado').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; //Sería el cuit
    pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; //el pto de venta
  //Recuperamos el nro de comprobante relacionado
    obtener_nro_comprobante(cod_comprobante_relacionado, IBConsulta);
  //Abrimos la fiscal
    abrir_fiscal(archivoINI);
    Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
    Hasar1.Comenzar;
    Hasar1.TratarDeCancelarTodo;
  //Este comando no funciona en P-330F, se reemplaza por Enviar()
    //Hasar1.DocumentoDeReferencia[1]:=IBConsulta.FieldByName('nro_comprobante').AsString;
    fs:=#28;
    comprobante_original:=IBConsulta.FieldByName('nro_comprobante').AsString;
    comando:=#147 + fs + '1' + fs + comprobante_original;
    Hasar1.Enviar(comando);
    Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
      obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
    //Hasar1.DescripcionesLargas:=false; //trunca las descripciones largas
    Hasar1.AbrirDNFH(NOTA_CREDITO_A);
    Buscar_detalle_factura_A(ibconsulta, cod_egreso);
    with ibconsulta do
    begin
      first;
      while not eof do
      begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS
        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);
    //  hasar1.ImprimirPago('Efectivo:',strtofloat(txttotal.text));
    Hasar1.CerrarDNFH;
  //Me devuelve el nro de comprobante
    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 crédito 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 crédito A.');
    end;
  end;
end;

//Nota de crédito B
procedure TFrmPpal.evNotaCreditoBEventAlert(Sender: TObject;
  EventName: String; EventCount: Integer; var CancelAlerts: Boolean);
var
  puerto:string;
  ini:TIniFile;
  factura:TEnc_egreso;
  fs, comando, comprobante_original:WideString;
begin
  with DataModule2, IBConsulta, factura do
  try
    terminarTransaccion;
    IBTransaccion.StartTransaction;
    buscar_cliente_factura(ibconsulta, 'NOTA_CREDITO_B');
  //Recuperamos los datos del comprobante
    //cod_egreso:=Fields[0].asInteger;
    cod_comprobante_relacionado:=FieldByName('cod_comprobante_relacionado').AsInteger;
    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; //Sería el cuit
    pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; //
  //Recuperamos el nro de comprobante relacionado
    obtener_nro_comprobante(cod_comprobante_relacionado, IBConsulta);
  //Abrimos la fiscal
    abrir_fiscal(archivoINI);
    Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
    Hasar1.Comenzar;
    Hasar1.TratarDeCancelarTodo;
  //Este comando no funciona en P-330F, se reemplaza por Enviar()
    //Hasar1.DocumentoDeReferencia[1]:=IBConsulta.FieldByName('nro_comprobante').AsString;
    fs:=#28;
    comprobante_original:=IBConsulta.FieldByName('nro_comprobante').AsString;
    comando:=#147 + fs + '1' + fs + comprobante_original;
    Hasar1.Enviar(comando);
    if domicilio <> EmptyStr then
    begin
      Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
        obtener_responsabilidad_iva(responsabilidad_iva), domicilio);
    end
    else
    begin
    //No acepta una variable con un espacio, así que le mandamos el espacio directamente.
      Hasar1.DatosCliente(nombre_cliente, numero_documento, obtener_tipo_documento(tipo_documento),
        obtener_responsabilidad_iva(responsabilidad_iva), ' ');
    end;
    //Hasar1.DescripcionesLargas:=false; //trunca las descripciones largas
    Hasar1.AbrirDNFH(NOTA_CREDITO_B);
    Buscar_detalle_factura_A(ibconsulta, cod_egreso);
    with ibconsulta do
    begin
      first;
      while not eof do
      begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS
        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);
    //  hasar1.ImprimirPago('Efectivo:',strtofloat(txttotal.text));
    Hasar1.CerrarDNFH;
  //Me devuelve el nro de comprobante
    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 crédito 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 de Crédito B.');
    end;
  end;
end;

Con esto completamos.
Tenemos: Facturas A y B, Notas de débito A y B, Notas de crédito A y B, Cierre X, Cierre Z

Saludos.
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Reply With Quote
  #2  
Old 02/05/2013
ecfisa's Avatar
ecfisa ecfisa is offline
Moderador
 
Join Date: Dec 2005
Location: Tres Arroyos, Argentina
Posts: 10,508
Poder: 38
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Muchas gracias por el aporte Santiago

Saludos.
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Reply With Quote
  #3  
Old 02/05/2013
santiago14's Avatar
santiago14 santiago14 is offline
Miembro
 
Join Date: Sep 2003
Location: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Quote:
Originally Posted by ecfisa View Post
Muchas gracias por el aporte Santiago

Saludos.
Por nada...
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Reply With Quote
  #4  
Old 22/05/2013
mbguantay mbguantay is offline
Miembro
 
Join Date: Apr 2006
Posts: 22
Poder: 0
mbguantay Va por buen camino
Muchisimas gracias Santiago. Yo probe algunos de estos codigos en una tickeadora hasar y funcionan de maravilla.
Reply With Quote
  #5  
Old 11/01/2018
LuisRios LuisRios is offline
Registrado
NULL
 
Join Date: Jan 2018
Posts: 1
Poder: 0
LuisRios Va por buen camino
Lightbulb Formato de Nota débito generado por la impresora Hasar 330

Buen día,

Me pueden colaborar con una imagen de como la impresora hasar 330 imprime una nota debito, cuales serían los comandos para que al generar la nota débito haga los ajustes en la memoria de la impresora.

Gracias
Reply With Quote
  #6  
Old 16/01/2018
santiago14's Avatar
santiago14 santiago14 is offline
Miembro
 
Join Date: Sep 2003
Location: Cerrillos, Salta, Argentina
Posts: 585
Poder: 23
santiago14 Va por buen camino
Wink

Hola.
No pude conseguir una foto de como sería una Nota de Débito puesto que mis clientes no están muy cerca como para ir a sacarles una foto, jajaja, Y de hecho, no deben hacer una ND todos los días.
En cuanto a los comandos y todo eso, están en la siguiente dirección:

http://www.clubdelphi.com/foros/showthread.php?t=82989
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Reply With Quote
  #7  
Old 09/05/2018
mattaldi mattaldi is offline
Miembro
 
Join Date: May 2007
Posts: 22
Poder: 0
mattaldi Va por buen camino
Thumbs up NC en Hasar 441

He probado parte de este codigo en una Hasar 441F.
Uso delphi 7 y los tickets A y B los imprime bien con el comando AbrirComprobanteFiscal.
Estoy intentando crear notas de crédito, me da el siguiente error:
'Función no soportada en versión de controlador fiscal seleccionada (Abrir DNFH)'.
¿alguien tubo este problema?, no encontré nada googleando.

Code:
Hasar1.Modelo:= MODELO_P441;
Hasar1.Puerto := 3;
Hasar1.Baudios:= 9600;
Hasar1.Comenzar;
Hasar1.TratarDeCancelarTodo();
fs:=#28;
comprobante_original:=ECompAsoc.Text;
comando:=#147 + fs + '1' + fs + comprobante_original;
Hasar1.Enviar(comando);
// DocumentoDeReferencia[1]:=ECompAsoc.Text;
if (condicioniva_cliente = 'RESPONSABLE INSCRIPTO') then
    begin//a
    Hasar1.DatosCliente (ENombreCliente.Text, SacarGuiones(cuit_cliente), TIPO_CUIT,RESPONSABLE_INSCRIPTO, direccion_cliente);
    Hasar1.AbrirDNFH(NOTA_CREDITO_A);
    Hasar1.PrecioBase:=False;
    end;//a
if (condicioniva_cliente='MONOTRIBUTISTA') or (condicioniva_cliente='EXCENTO') or (condicioniva_cliente = 'CONSUMIDOR FINAL') then
    begin//a
    if (condicioniva_cliente='MONOTRIBUTISTA') then
       Hasar1.DatosCliente (ENombreCliente.Text, SacarGuiones(cuit_cliente), TIPO_CUIT, MONOTRIBUTO, direccion_cliente);
    if (condicioniva_cliente='EXCENTO') then
       Hasar1.DatosCliente (ENombreCliente.Text, SacarGuiones(cuit_cliente), TIPO_CUIT, RESPONSABLE_EXENTO, direccion_cliente);
    if (condicioniva_cliente='CONSUMIDOR FINAL') then
       Hasar1.DatosCliente (ENombreCliente.Text, SacarGuiones(cuit_cliente), TIPO_CUIT, CONSUMIDOR_FINAL, direccion_cliente);
    Hasar1.AbrirDNFH(NOTA_CREDITO_B);
    Hasar1.PrecioBase:=False;
    end;//a
Hasar1.ImprimirItem (EDescripcionNC.Text,1,StrtoFloat(EImporteNC.Text),21,0);
Hasar1.Subtotal (True);
Hasar1.ImprimirPago ('Cuenta Corriente', StrToFloat(EImporteNC.Text));
Hasar1.CerrarDNFH;
Hasar1.Finalizar;
showMessage('Nota de Crédito impresa y guardada');

Last edited by mattaldi : 09/05/2018 at 16:22.
Reply With Quote
Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

vB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump

Similar Threads
Thread Thread Starter Forum Replies Last Post
Cierres X y Z en fiscal Hasar SMH/P330 santiago14 Impresión 2 14/04/2019 23:10
Notas de débito A y B fiscal Hasar SMH/P330 santiago14 Impresión 0 30/04/2013 18:10
Facturas A y B en impresora fiscal Hasar SMH/P330 santiago14 Varios 1 30/04/2013 14:14
Nota de Credito con HASAR 320F diegolf Conexión con bases de datos 9 28/02/2008 18:10
Notas de Credito Paradiso Varios 10 01/07/2006 03:35


All times are GMT +2. The time now is 00:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi