Ver Mensaje Individual
  #1  
Antiguo 18-04-2013
Avatar de santiago14
santiago14 santiago14 is offline
Miembro
 
Registrado: sep 2003
Ubicación: Cerrillos, Salta, Argentina
Posts: 583
Reputación: 21
santiago14 Va por buen camino
Recibo X con impresora Hasar SMH/P-330

Que tal, he estado ocupado haciendo un Recibo X. En este caso es una impresora fiscal Hasar.
Me costó bastante que imprimiera así que lo comparto con uds.

En el caso de un recibo, la impresora no genera el nro automáticamente, sino que acepta el que nosotros le digamos, aquí eso se indica en Hasar1.AbrirDNFH(RECIBO_X, nro_recibo).
Tampoco imprime original y duplicado por defecto, sino solamente original, salvo que le indiquemos lo contrario, esto se hace con Hasar1.CerrarDNFH(2); . Si no indicamos nada, es solo original; si ponemos el 2, es original y duplicado; si ponemos 3 es original, duplicado y triplicado.
Espero que sea de ayuda para los que andan en la pelea contra las fiscales.
Aquí el código está puesto dentro de un evento de un IBEventAlert, pero eso no importa, pueda estar en cualquier lado y va bien.

Código Delphi [-]

procedure TFrmPpal.evRecibosEventAlert(Sender: TObject; EventName: String;

  EventCount: Integer; var CancelAlerts: Boolean);

var

  puerto:string;

  ini:TIniFile;

  recibo:TEnc_cobro;

begin

  with DataModule2, IBConsulta, recibo do

  try

    terminarTransaccion;

    IBTransaccion.StartTransaction;

    Buscar_cliente_reciboX(IBConsulta);

  //Cargamos el registro con los datos del documento

    cod_recibo:=FieldByName('cod_recibo').AsInteger;

    nombre_cliente:=FieldByName('nombre_cliente').AsString;

    numero_documento:=FieldByName('cuit_cliente').AsString; //Sería el cuit

    tipo_documento:=FieldByName('tipo_documento_cliente').AsString;

    responsabilidad_iva:=FieldByName('responsabilidad_iva_cliente').AsString;

    domicilio_cliente:=FieldByName('domicilio_cliente').AsString;

    pto_vta_recibo:=FieldByName('pto_vta_recibo').AsInteger; //el pto de venta

    nro_recibo:=FieldByName('nro_recibo').AsInteger; //el nro de recibo

    conceptos_pagados:=FieldByName('conceptos_pagados').AsString; //el concepto que se paga

  //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_cliente);

    //Hasar1.DescripcionesLargas:=false; //trunca las descripciones largas

    Hasar1.AbrirDNFH(RECIBO_X, nro_recibo);

    Buscar_detalle_recibo_X(ibconsulta, cod_recibo);

    with ibconsulta do

    begin

      first;

      while not eof do

      begin                //DESCR CANT MONTO IVA IMPUESTOS INTERNOS

        hasar1.ImprimirItem(FieldByName('valores').AsString, 1, FieldByName('importe_cobro').AsFloat,

          0, 0);

        next;

      end;

    end;

    hasar1.Subtotal(true);

    Hasar1.DetalleRecibo(conceptos_pagados);

    Hasar1.CerrarDNFH(2);

    Hasar1.Finalizar;

    CoolTrayIcon1.ShowBalloonHint('Impresora fiscal', 'Recibo, Nº '

      + LPad(pto_vta_recibo, 4, '0') + ' - ' + LPad(nro_recibo, 8, '0') + ' en la Impresora fiscal...',

      bitInfo, 10);

    IBTransaccion.Commit;

  except

    on E:Exception do

    begin

      terminarTransaccion;

      merrores(e, 'Error en la impresión de datos.', 'Impresión Recibo');

    end;

  end;

end;
__________________
Uno es responsable de lo que hace y de lo que omite hacer.
Responder Con Cita