Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 25-04-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: Sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 536
Poder: 16
santiago14 Va por buen camino
Post Facturas A y B en impresora fiscal Hasar SMH/P330

Buenas, cumpliendo con lo que había dicho anteriormente pego el código que permite hacer las facturas A y B con una Hasar.
Recuerdo que esto usa el componente OCX de Hasar, de ahí que aparece en el código "hasar1", hay algunas consultas a la BD (Firebird 2.1), acceso a un archivo .ini para traer datos de la fiscal y alguna que otra cartelería.

Espero les sirva a todos.

Código Delphi [-]
//Factura A
procedure TFrmPpal.IBAlertadorEventAlert(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, 'FACTURA_A');
  //Cargamos el registro con los datos del documento
    //cod_egreso:=Fields[0].asInteger;
    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; //Sería el cuit
    pto_vta_egreso:=FieldByName('pto_vta_egreso').AsInteger; //el pto de venta
  //Abrimos la fiscal
    abrir_fiscal(archivoINI);

    Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
    Hasar1.Comenzar;
    Hasar1.TratarDeCancelarTodo;
    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.AbrirComprobanteFiscal(FACTURA_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);
  //Imprimimos las formas de pago del cliente
    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;
  //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', 'Factura 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 Factura A');
    end;
  end;
end;

//Factura B
procedure TFrmPpal.evFacturaBEventAlert(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, 'FACTURA_B');
  //Recuperamos los datos de la factura
    //cod_egreso:=Fields[0].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; //
  //Abrimos la fiscal
    abrir_fiscal(archivoINI);
    Hasar1.PrecioBase:=False; //TRUE: CON BASE IMPONIBLE; FALSE: CON PRECIO FINAL, IMPUESTOS INCLUIDOS
    Hasar1.Comenzar;
    Hasar1.TratarDeCancelarTodo;
    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.AbrirComprobanteFiscal(FACTURA_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);
  //Imprimimos las formas de pago del cliente
    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;
  //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', 'Factura 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 Factura B.');
    end;
  end;
end;
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita
  #2  
Antiguo 30-04-2013
chapp2308 chapp2308 is offline
Registrado
 
Registrado: Apr 2013
Posts: 1
Poder: 0
chapp2308 Va por buen camino
Gracias Santiago me sirvio mucho... Despues cuando puedas subite los otros ejemplos de Notas de débito A y B, Cierre Z y X.
Saludos
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Recibo X con impresora Hasar SMH/P-330 santiago14 Varios 6 23-04-2013 20:15:44
Problema Impresora Hasar USB Inge022 Impresión 6 13-05-2011 20:20:21
Imprimir Cola en Fiscal HASAR golf2008 Conexión con bases de datos 18 12-06-2008 16:38:29
Facturas B >$1000 en Hasar 320 pborges36 Impresión 2 24-01-2007 16:44:39
Impresion con Controlador Fiscal Hasar 320 Caco Mana Varios 12 31-07-2006 18:31:35


La franja horaria es GMT +2. Ahora son las 18:30:34.


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