CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post Reply
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

Saludos, como decimos en mi pais, "lo prometido es deuda", aca anexo la adaptacion para usar impresora fiscal, en este caso la BEMATECH MP-4000 TH FI. Muchas gracias a QAZWSX2K que dio casi el 100% de la ayuda en este tema ya que su codigo compartido fue el inicio de todo lo hecho, a mag071 por su disposicion y respuestas a los correos y al pana COMPUBRION por las pruebas y ensayos que nos ayudo a finiquito de lo presente, bueno, sin mas protocolo aca el .PRG final con ciertas adaptaciones a mis necesidades pero que son de facil entendimiento, igual cualquier duda estoy a la orden, gracias, saludos... :shock:

Tema original:
http://forums.fivetechsupport.com/viewt ... t=BEMATECH

Linker de la libreria, el emulador para windows y la ayuda de las funciones:
http://www.bematech.com/es/support/default.asp
http://www.posvenezuela.com/index.php?o ... &Itemid=38

Code: Select all

// GRACIAS A MI DIOS ANTE TODO Y A MI MADRE QUERIDA...
// NOMBRE DEL PROGRAMA: BEMATECH.PRG
// FUNCION: IMPRESION EN FACTURA FISCAL BEMATECH MOD.MP-4000 TH FI
// ULTIMA FECHA DE TRABAJO 29/03/2012

#include "FiveWin.ch"
#include "DLL.CH"

#xTranslate As Integer => AS LONG // ALFREDO CRUZ

MEMVAR oDatos // VAR QUE USO PARA MANEJO DEL IMPUESTO(iva)

PROCEDURE imp_fiscal( aDatCli, aItems, nMtoRecibido, nFormaPago ) // RECIBE DATOS CLIENTE Y PRODUCTOS - JLY

   LOCAL nFor := 0

// EXTRAIGO LA BASE IMPONIBLE DEL PVP YA QUE TIENE EL IVA INCLUIDO
   FOR nFor := 1 TO LEN( aItems )
      aItems[nFor,3] := ( 100 * aItems[nFor,3] ) / ( 100 + oDatos:oQryCnf:cnf_poriva )
   NEXT

// TIPO DE RIF LLEGA NUMERICO Y LO PASO A "V" O "J"
   IIF( aDatCli[1] == 1, aDatCli[1] := "V", aDatCli[1] := "J" )

   IIF( nFormaPago == 1, nFormaPago := "Efectivo", nFormaPago := "Debito" )

// LISTO PARA DAR SALIDA EN LA IMPRESORA FISCAL BEMATECH
   graba_fac( aDatCli, aItems, STR( nMtoRecibido ), nFormaPago )

RETURN


FUNCTION ini_impre() // GRABA ALICUOTAS BERMATECH(no se uso ya que la impresora tiene IVA grabado en Venezuela)

   LOCAL NRETORNO := 0 ,;
         MENSAJE := ""

*   NRetorno = BemaProgAlicuota("1200",0) // ORIGINAL
*   nRetorno = BemaProgAlicuota("1200")
   nRetorno = Bematech_FI_ProgramaAlicuota("1200", 0)

   IF nRetorno != 1
      MENSAJE:="ERROR GRABANDO ALICUOTA"+str(nRetorno)+" " +CHR(13)

   ENDIF

   IF LEN(MENSAJE)<>0
      MSGINFO(MENSAJE)
      imprime_Z()
   ENDIF

*   imprime_Z()

RETURN NIL


FUNCTION graba_fac( aDatCli, aItems, cMtoRecibido, cFPago ) // GRABA DATOS A LA IMPRESORA

   LOCAL cRif    := aDatCli[1] + "-" + ALLTRIM( STR( aDatCli[2] ) ) ,;
         cNombre := ALLTRIM( aDatCli[3] ) ,;
         cDire   := ALLTRIM( aDatCli[4] ) ,;
         MENSAJE := "" ,;
         nRetorno := 0 ,;
         nFor := 0

*   nRetorno:=Bematech_FI_AbreComprobanteDeVenta(cRif, cNombre)
   nRetorno:=Bematech_FI_AbreComprobanteDeVentaEx(cRif, cNombre, cDire)

   If nRetorno != 1
      MENSAJE:="ERROR ABRIENDO COMPROBANTE"+CHR(13)

   ENDIF

// CICLO DE IMPRESION DE LOS ITEM FACTURADOS
   FOR nFor := 1 to LEN( aItems ) // JLY

      nRetorno:=0
      nRetorno:=Bematech_FI_VendeArticulo( aItems[nFor, 5], aItems[nFor, 1], "1200", "I" ,;
         STR( aItems[nFor, 2] ), 2, STR( aItems[nFor, 3] ), "%", "0000")

      IF nRetorno != 1
         MENSAJE:="ERROR GRABANDO ARTICULO, VendeArticulo, "+str(nRetorno)+" " +CHR(13)

      ENDIF

      IF LEN( aItems ) == 1
         EXIT

      ENDIF

   NEXT nFor

   nRetorno:=0
   nRetorno:=Bematech_FI_CierraCupon(cFPago, "A", "$", "0000", cMtoRecibido, "Gracias, por su Compra !!!")

   If nRetorno != 1
      MENSAJE:="ERROR CERRANDO CUPON"+str(nRetorno)+" " +CHR(13)
   ENDIF

   nRetorno:=0
   nRetorno:=Bematech_FI_FinalizarCierreCupon("chao")

   If nRetorno != 1
      MENSAJE:="ERROR GRABANDO ARTICULO, CierreCupon"+str(nRetorno)+" " +CHR(13)
   ENDIF

   nRetorno:=0
   nRetorno:=Bematech_FI_RetornoImpresora(0,0,0)

   If nRetorno != 1
      MENSAJE:="ERROR RETORNANDO IMPRESORA"+CHR(13)
   EndIf

   IF LEN(MENSAJE)<>0
      MSGINFO(MENSAJE)
   ENDIF

RETURN NIL


FUNCTION imprime_Z() // RELACION DE VENTAS DEL DIA...
   LOCAL cFecha := DTOC( DATE() ) ,;
         cHora := TIME() ,;
         nRETORNO := 0 ,;
         MENSAJE := ""

   CFECHA:=MsgDate( Date() , "Fecha del Reporte Z" )
   NRetorno = BemaReporteZeta(cFecha,cHora)

   If nRetorno != 1
      MENSAJE:="ERROR SACANDO Z"+str(nRetorno)+" " +CHR(13)

   ENDIF

   IF LEN(MENSAJE)<>0
      MSGINFO(MENSAJE)

   ELSE
      MSGINFO("Reporte Z de Fecha "+dtoc(cfecha)+" emitido exitosamente")

   ENDIF

RETURN NIL

*FUNCTION CARGA_BEMATECH()
// Funciones del Cupon Fiscal
   DLL function Bematech_FI_AbreComprobanteDeVenta(RIF AS LPSTR, Nombre AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_AbreComprobanteDeVenta" LIB "BemaFI32.dll"
   DLL FUNCTION Bematech_FI_VendeArticulo(CODIGO AS LPSTR, DESCRIPCION AS LPSTR, ALICUOTA AS LPSTR, TIPOCANTIDAD AS LPSTR, CANTIDAD AS LPSTR, CASASDECIMALES AS LONG, VALORUNITARIO AS LPSTR, TIPODESCUENTO AS LPSTR, DESCUENTO AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_VendeArticulo" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AbreComprobanteDeVentaEx(RIF AS LPSTR, Nombre AS LPSTR, Direccion AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_AbreComprobanteDeVentaEx" LIB "BemaFI32.dll"
   DLL function Bematech_FI_DevolucionArticulo(cCodigo AS LPSTR, cDescripcion AS LPSTR, cAlicuota AS LPSTR, cTipoCantidad AS LPSTR, cCantidad AS LPSTR, iCasasDecimales AS Integer, cValorUnit AS LPSTR, cTipoDescuento AS LPSTR, cValorDesc AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_DevolucionArticulo" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AbreNotaDeCredito(cNombre AS LPSTR, cNumeroSerie AS LPSTR, cRIF AS LPSTR, cDia AS LPSTR ,cMes AS LPSTR, cAno AS LPSTR, cHora AS LPSTR, cMinuto AS LPSTR, cSecundo AS LPSTR, cCOO AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_AbreNotaDeCredito" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VendeArticuloDepartamento( Codigo AS LPSTR , Descripcion AS LPSTR , Alicuota AS LPSTR, ValorUnitario AS LPSTR , Cantidad AS LPSTR , Incremento AS LPSTR , Descuento AS LPSTR , IndiceDepartamento AS LPSTR , UnidadMedida AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VendeArticuloDepartamento" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AnulaArticuloAnterior() AS LONG PASCAL FROM "Bematech_FI_AnulaArticuloAnterior" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AnulaArticuloGenerico( NumeroItem AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_AnulaArticuloGenerico" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AnulaCupon() AS LONG PASCAL FROM "Bematech_FI_AnulaCupon" LIB "BemaFI32.dll"
   DLL function Bm_FI_CierraCuponReducido( FormaPago AS LPSTR , Mensaje AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CierraCuponReducido" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CierraCupon( FormaPago AS LPSTR , IncrementoDescuento AS LPSTR , TipoIncrementoDescuento AS LPSTR , ValorIncrementoDescuento AS LPSTR , ValorPago AS LPSTR , Mensaje AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CierraCupon" LIB "BemaFI32.dll"
   DLL FUNCTION BmFechaCup( FormaPgto AS LPSTR, Acrescimo AS LPSTR, TipoAcresc AS LPSTR, ValorAcresc AS LPSTR, ValorPago AS LPSTR, Mensagem AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CierraCupon" LIB "BemaFI32"
   DLL FUNCTION BemaReporteZeta( Dt AS LPSTR, Hs AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ReduccionZ" LIB "BemaFI32"
//
// JLY
*   DLL FUNCTION BemaProgAlicuota( cTasas AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_ProgramaAlicuota" LIB "BemaFI32"
   DLL FUNCTION Bematech_FI_ProgramaAlicuota( cTasas AS LPSTR) AS LONG PASCAL FROM "Bematech_FI_ProgramaAlicuota" LIB "BemaFI32"
//
   DLL function Bematech_FI_ResetaImpresora() AS LONG PASCAL FROM "Bematech_FI_ResetaImpresora" LIB "BemaFI32.dll"
   DLL function Bematech_FI_IniciaCierreCupon( IncrementoDescuento AS LPSTR , TipoincrementoDescuento AS LPSTR , ValorIncrementoDescuento AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_IniciaCierreCupon" LIB "BemaFI32.dll"
   DLL function Bematech_FI_EfectuaFormaPago( FormaPago AS LPSTR , ValorFormaPago AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_EfectuaFormaPago" LIB "BemaFI32.dll"
   DLL function Bematech_FI_EfectuaFormaPagoDescripcionForma( FormaPago AS LPSTR , ValorFormaPago AS LPSTR , DescripcionFormaPago AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_EfectuaFormaPagoDescripcionForma" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FinalizarCierreCupon( Mensaje AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_FinalizarCierreCupon" LIB "BemaFI32.dll"
   DLL function Bematech_FI_RectificaFormasPago( FormaOrigen AS LPSTR , FormaDestino AS LPSTR , Valor AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_RectificaFormasPago" LIB "BemaFI32.dll"
   DLL function Bematech_FI_UsaUnidadMedida( UnidadMedida AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_UsaUnidadMedida" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ExtenderDescripcionArticulo( Descripcion AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ExtenderDescripcionArticulo" LIB "BemaFI32.dll"
// Funciones de Inicialización
   DLL function Bematech_FI_CambiaSimboloMoneda( SimboloMoneda AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CambiaSimboloMoneda" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaAlicuot( Aliquota AS LPSTR , ICMS_ISS AS Integer ) AS LONG PASCAL FROM "Bematech_FI_ProgramaAlicuota" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaHorarioDeVerano() AS LONG PASCAL FROM "Bematech_FI_ProgramaHorarioDeVerano" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CrearDepartamento( Indice AS Integer, Departamento AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CrearDepartamento" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CrearTotalizadorSinIcms( Indice AS Integer, Totalizador AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CrearTotalizadorSinIcms" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaRedondeo() AS LONG PASCAL FROM "Bematech_FI_ProgramaRedondeo" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaTruncamiento() AS LONG PASCAL FROM "Bematech_FI_ProgramaTruncamiento" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LineasEntreCupones( Linhas AS Integer ) AS LONG PASCAL FROM "Bematech_FI_LineasEntreCupones" LIB "BemaFI32.dll"
   DLL function Bematech_FI_EspacioEntreLineas( Dots AS Integer ) AS LONG PASCAL FROM "Bematech_FI_EspacioEntreLineas" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FuerzaImpactoAgujas( FuerzaImpacto AS Integer ) AS LONG PASCAL FROM "Bematech_FI_FuerzaImpactoAgujas" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ActivaDesactivaReporteZAutomatico(flag AS Integer ) AS LONG PASCAL FROM "Bematech_FI_ActivaDesactivaReporteZAutomatico" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ActivaDesactivaCuponAdicional(flag AS Integer ) AS LONG PASCAL FROM "Bematech_FI_ActivaDesactivaCuponAdicional" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ActivaDesactivaVinculadoComprobanteNoFiscal(flag AS Integer ) AS LONG PASCAL FROM "Bematech_FI_ActivaDesactivaVinculadoComprobanteNoFiscal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ActivaDesactivaImpresionBitmapMA( flag AS Integer ) AS LONG PASCAL FROM "Bematech_FI_ActivaDesactivaImpresionBitmapMA" LIB "BemaFI32.dll"
   DLL function Bematech_FI_HoraLimiteReporteZ( Hora AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_HoraLimiteReporteZ" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaCliche( Cliche AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ProgramaCliche" LIB "BemaFI32.dll"
// Funciones de los Informes Fiscales
   DLL function Bematech_FI_LecturaX() AS LONG PASCAL FROM "Bematech_FI_LecturaX" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ReduccionZ( Fecha as LPSTR , Hora as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ReduccionZ" LIB "BemaFI32.dll"
   DLL function Bematech_FI_InformeGerencial( Texto as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_InformeGerencial" LIB "BemaFI32.dll"
   DLL function Bematech_FI_InformeGerencialTEF( Texto as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_InformeGerencialTEF" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CierraInformeGerencial() AS LONG PASCAL FROM "Bematech_FI_CierraInformeGerencial" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LecturaMemoriaFiscalFecha( FechaInicial as LPSTR , FechaFinal as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_LecturaMemoriaFiscalFecha" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LecturaMemoriaFiscalReduccion( ReduccionInicial as LPSTR, ReduccionFinal as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_LecturaMemoriaFiscalReduccion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LecturaMemoriaFiscalSerialFecha( FechaInicial as LPSTR , FechaFinal as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_LecturaMemoriaFiscalSerialFecha" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LecturaMemoriaFiscalSerialReduccion( ReduccionInicial as LPSTR , ReduccionFinal as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_LecturaMemoriaFiscalSerialReduccion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_InformeTransacciones( tipo as LPSTR, Fechaini as LPSTR, Fechafim as LPSTR, Opcion as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_InformeTransacciones" LIB "BemaFI32.dll"
// Funciones de las Operaciones No Fiscales
   DLL function Bematech_FI_RecibimientoNoFiscal( IndiceTotalizador as LPSTR , Valor as LPSTR , FormaPago as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_RecibimientoNoFiscal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AbreComprobanteNoFiscalVinculado( FormaPago as LPSTR , Valor as LPSTR , NumeroCupon as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_AbreComprobanteNoFiscalVinculado" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ImprimeComprobanteNoFiscalVinculado( Texto as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ImprimeComprobanteNoFiscalVinculado" LIB "BemaFI32.dll"
   DLL function Bematech_FI_UsaComprobanteNoFiscalVinculadoTEF( Texto as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_UsaComprobanteNoFiscalVinculadoTEF" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CierraComprobanteNoFiscalVinculado() AS LONG PASCAL FROM "Bematech_FI_CierraComprobanteNoFiscalVinculado" LIB "BemaFI32.dll"
   DLL function Bematech_FI_Sangria( Valor as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_Sangria" LIB "BemaFI32.dll"
   DLL function Bematech_FI_Provision( Valor as LPSTR , FormaPago as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_Provision" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AbreInformeGerencial( NumInforme as LPSTR ) AS LONG PASCAL FROM "Bematech_FI_AbreInformeGerencial" LIB "BemaFI32.dll"
// Otras Funciones
   DLL function Bematech_FI_AbrePuertaSerial() AS LONG PASCAL FROM 'Bematech_FI_AbrePuertaSerial' LIB "BemaFI32.dll"
   DLL function Bematech_FI_CierraPuertaSerial() AS LONG PASCAL FROM 'Bematech_FI_CierraPuertaSerial' LIB "BemaFI32.dll"
   DLL function Bematech_FI_AperturaDelDia( ValorCompra AS LPSTR , FormaPago AS LPSTR ) AS LONG PASCAL FROM 'Bematech_FI_AperturaDelDia' LIB "BemaFI32.dll"
   DLL function Bematech_FI_CierreDelDia() AS LONG PASCAL FROM 'Bematech_FI_CierreDelDia' LIB "BemaFI32.dll"
   DLL function Bematech_FI_ImprimeConfiguracionesImpresora() AS LONG PASCAL FROM 'Bematech_FI_ImprimeConfiguracionesImpresora' LIB "BemaFI32.dll"
   DLL function Bematech_FI_ImprimeDepartamentos() AS LONG PASCAL FROM 'Bematech_FI_ImprimeDepartamentos' LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaImpresoraPrendida() AS LONG PASCAL FROM 'Bematech_FI_VerificaImpresoraPrendida' LIB "BemaFI32.dll"
   DLL function Bematech_FI_ImpresionCarne( Titulo as LPSTR, Parcelas AS LPSTR , Fechas AS integer, Cantidad AS integer, Texto AS LPSTR, Cliente AS LPSTR, RG_CPF AS LPSTR, Cupon AS LPSTR , Vias AS integer, Firma AS integer ) AS LONG PASCAL FROM 'Bematech_FI_ImpresionCarne' LIB "BemaFI32.dll"
   DLL function Bematech_FI_InfoBalanza( Porta AS LPSTR , Modelo AS integer, Peso as LPSTR, PrecioKilo as LPSTR, Total AS LPSTR ) AS LONG PASCAL FROM 'Bematech_FI_InfoBalanza' LIB "BemaFI32.dll"
   DLL function Bematech_FI_VersionDll( Version AS LPSTR ) AS LONG PASCAL FROM 'Bematech_FI_VersionDll' LIB "BemaFI32.dll"
   DLL function Bematech_FI_LeerArchivoRetorno( Retorno AS LPSTR ) AS LONG PASCAL FROM 'Bematech_FI_LeerArchivoRetorno' LIB "BemaFI32.dll"
   DLL function Bematech_FI_ReloadINIFile() AS LONG PASCAL FROM 'Bematech_FI_ReloadINIFile' LIB "BemaFI32.dll"
// Funciones de Autenticación y Gaveta de Efectivo
   DLL function Bematech_FI_Autenticacion() AS LONG PASCAL FROM "Bematech_FI_Autenticacion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ProgramaCaracterAutenticacion( Parametros AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ProgramaCaracterAutenticacion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_AccionaGaveta() AS LONG PASCAL FROM "Bematech_FI_AccionaGaveta" LIB "BemaFI32.dll"
// Funciones de Informaciones de la Impresora
   DLL function Bematech_FI_NumeroSerie( NumeroSerie AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroSerie" LIB "BemaFI32.dll"
   DLL function Bematech_FI_SubTotal( SubTotal AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_SubTotal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroCupon( NumeroCupon AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroCupon" LIB "BemaFI32.dll"
   DLL function Bematech_FI_LecturaXSerial() AS LONG PASCAL FROM "Bematech_FI_LecturaXSerial" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VersionFirmware( VersionFirmware AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VersionFirmware" LIB "BemaFI32.dll"
   DLL function Bematech_FI_CGC_IE( CGC AS LPSTR , IE AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_CGC_IE" LIB "BemaFI32.dll"
   DLL function Bematech_FI_GranTotal( GranTotal AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_GranTotal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_Cancelamientos( ValorCancelamientos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_Cancelamientos" LIB "BemaFI32.dll"
   DLL function Bematech_FI_Descuentos( ValorDescuentos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_Descuentos" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroOperacionesNoFiscales( NumeroOperaciones AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroOperacionesNoFiscales" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroCuponesAnulados( NumeroCancelamientos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroCuponesAnulados" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroIntervenciones( NumeroIntervenciones AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroIntervenciones" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroReducciones( NumeroReducoes AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroReducciones" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroSustitucionesPropietario( NumeroSustituiciones AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroSustitucionesPropietario" LIB "BemaFI32.dll"
   DLL function Bematech_FI_UltimoArticuloVendido( NumeroArticulo AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_UltimoArticuloVendido" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ClichePropietario( Cliche AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ClichePropietario" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroCaja( NumeroCaja AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroCaja" LIB "BemaFI32.dll"
   DLL function Bematech_FI_NumeroTienda( NumeroTienda AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_NumeroTienda" LIB "BemaFI32.dll"
   DLL function Bematech_FI_SimboloMoneda( SimboloMoneda AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_SimboloMoneda" LIB "BemaFI32.dll"
   DLL function Bematech_FI_MinutosPrendida( Minutos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_MinutosPrendida" LIB "BemaFI32.dll"
   DLL function Bematech_FI_MinutosImprimiendo( Minutos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_MinutosImprimiendo" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaModoOperacion( Modo AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaModoOperacion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaEpromConectada( Flag AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaEpromConectada" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ValorPagoUltimoCupon( ValorCupon AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ValorPagoUltimoCupon" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FechaHoraImpresora( Fecha AS LPSTR , Hora AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_FechaHoraImpresora" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ContadoresTotalizadoresNoFiscales( Contadores AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ContadoresTotalizadoresNoFiscales" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaTotalizadoresNoFiscales( Totalizadores AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaTotalizadoresNoFiscales" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FechaHoraReduccion( Fecha AS LPSTR , Hora AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_FechaHoraReduccion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaTruncamiento( Flag AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaTruncamiento" LIB "BemaFI32.dll"
   DLL function Bematech_FI_Agregado( ValorIncrementos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_Agregado" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ContadorBilletePasaje( ContadorPasaje AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ContadorBilletePasaje" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaAlicuotasIss( Flag AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaAlicuotasIss" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaFormasPago( Formas AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaFormasPago" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaRecibimientoNoFiscal( Recebimentos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaRecibimientoNoFiscal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaDepartamentos( Departamentos AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaDepartamentos" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaTotalizadoresParciales( Totalizadores AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaTotalizadoresParciales" LIB "BemaFI32.dll"
   DLL function Bematech_FI_RetornoAlicuotas( Alicuotas AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_RetornoAlicuotas" LIB "BemaFI32.dll"
   DLL function Bematech_FI_DatosUltimaReduccion( DadosReduccion AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_DatosUltimaReduccion" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaIndiceAlicuotasIss( Flag AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VerificaIndiceAlicuotasIss" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ValorFormaPago( FormaPago AS LPSTR , Valor AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ValorFormaPago" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ValorTotalizadorNoFiscal( Totalizador AS LPSTR , Valor AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ValorTotalizadorNoFiscal" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ClavePublica( Clave AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ClavePublica" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ContadorSecuencial( Retorno AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ContadorSecuencial" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VentaBrutaDiaria( Valor AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_VentaBrutaDiaria" LIB "BemaFI32.dll"
   DLL function Bematech_FI_BaudrateProgramado( Baudrate AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_BaudrateProgramado" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FlagActivacionAlineamientoIzquierda( Flag AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_FlagActivacionAlineamientoIzquierda" LIB "BemaFI32.dll"
   DLL function Bematech_FI_ImprimeClavePublica( ) AS LONG PASCAL FROM "Bematech_FI_ImprimeClavePublica" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FechaMovimiento( Data AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_FechaMovimiento" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaTipoImpresora( @TipoImpresora AS Integer ) AS LONG PASCAL FROM "Bematech_FI_VerificaTipoImpresora" LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaEstadoImpresora( @ACK AS Integer, @ST1 AS Integer, @ST2 AS Integer ) AS LONG PASCAL FROM "Bematech_FI_VerificaEstadoImpresora" LIB "BemaFI32.dll"
   DLL function Bematech_FI_MonitoramentoPapel( @Lineas AS Integer) AS LONG PASCAL FROM "Bematech_FI_MonitoramentoPapel" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FlagSensores( @Flag AS integer ) AS LONG PASCAL FROM "Bematech_FI_FlagSensores" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FlagsFiscales( @Flag AS Integer ) AS LONG PASCAL FROM "Bematech_FI_FlagsFiscales" LIB "BemaFI32.dll"
   DLL function Bematech_FI_FlagFiscalesIII( @Flag as integer ) AS LONG PASCAL FROM "Bematech_FI_FlagFiscalesIII" LIB "BemaFI32.dll"
   DLL function Bematech_FI_RetornoImpresora( @ACK AS Integer, @ST1 AS Integer, @ST2 AS Integer ) AS LONG PASCAL FROM 'Bematech_FI_RetornoImpresora' LIB "BemaFI32.dll"
   DLL function Bematech_FI_VerificaEstadoGaveta( @EstadoGaveta AS Integer ) AS LONG PASCAL FROM "Bematech_FI_VerificaEstadoGaveta" LIB "BemaFI32.dll"

*RETURN NIL
 

Lo mas importante del archivo .INI

Code: Select all

;----------------------------------------------------------------------------;
;                                                                            ;
;  BEMAFI32.INI                                                              ;
;  Ver 4.1.10.0 - Jan/2006                                                   ;
;                                                                            ;
;  Archivo de inicialización de la dll BemaFI32 para las impresoras fiscales ;
;  MP-20 FI II, MP-40 FI II, MP-2000 FI TH, MP-6000 FI TH, MP-25 FI,         ;
;  MP-50 FI Bematech y Y-8000 y Y-8500 Yanco                           ;
;                                                                            ;
;----------------------------------------------------------------------------;

[Sistema]
Puerta=COM3
Path=C:\
Status=0
Retorno=0
StatusFuncion=0
ControlPuerta=1
ModeloImp=BEMATECH
ConfigRed=0
ModoGaveta=0
Log=1
EmulMFD=0
StatusCheque=
PAIS=VENEZUELA
ConfigRede=2


[MFD]
Impresora=1
StatusError=1
TimeOutZ=3


[Opcional]
Favorecido=
Ciudad=

 
Dios no está muerto...

Gracias a mi Dios ante todo!
horacio
Posts: 1270
Joined: Wed Jun 21, 2006 12:39 am
Location: Capital Federal Argentina

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by horacio »

Muchisimas gracias por tu aporte, eso es lo que hace grande este foro.
Saludos
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

horacio wrote:Muchisimas gracias por tu aporte, eso es lo que hace grande este foro.
Saludos
Bueno, como ya bien dije, el credito es de los otros colegas, yo solo hice algunas pulituras y arregle algunos detalles para adaptarlo a mis necesidades, siempe y cuando se pueda se comparte lo que se pueda.saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Orbex
Posts: 24
Joined: Sun Jan 22, 2012 2:52 pm

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by Orbex »

Hola Jose Luis


Si me permites, tengo un algunas preguntas:

1. Haz podido imprimir en la Bematech descripciones largas para un ITEM, hay una en la DLL que parece que sirve para ello pero que no he sabido como emplearlar?
2. Como puedes dar mas espacio entre las lineas de impresion ?
3. Se pueden emplear letras de diferente tamaño ?
4. Cuando haces la reimpresion de una factura fiscal, como haces para cortar el papel ?

Gracias por tu ayuda

Saludos desde Panama
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

Orbex wrote:Hola Jose Luis


Si me permites, tengo un algunas preguntas:

1. Haz podido imprimir en la Bematech descripciones largas para un ITEM, hay una en la DLL que parece que sirve para ello pero que no he sabido como emplearlar?
2. Como puedes dar mas espacio entre las lineas de impresion ?
3. Se pueden emplear letras de diferente tamaño ?
4. Cuando haces la reimpresion de una factura fiscal, como haces para cortar el papel ?

Gracias por tu ayuda

Saludos desde Panama

Respondiendo:
1. Las descripciones tienen un limite, pero puede usar esta opcion que te permite hasta 200 char, en el manual busca
Bematech_FI_ExtenderDescripcionArticulo() Esta función permite aumentar la descripción del artículo hasta 200 caracteres.

2. Para dar mas espacio debes agregarselo al valor que estas enviando o en la VAR, recuerda que son de tipo char, ejemplo
cCodigo := cCodigo + space(n)
iRetorno = Bematech_FI_VendeArticulo(cCodigo, "Pluma ", "1200 ", "I ", "10", 2, "0,25", "%", "0000")
iRetorno = Bematech_FI_VendeArticulo("123"+SPACE(n), "Pluma", "1200", "I", "10", 2, "0,25", "%", "0000")

3. No vi ninguna funcion o inicializacion que determine el tamaño o tipo de fuente, habria que leer un poco mas el manual

4. En mi caso el corte de papel lo hace solo la impresora.

Te comento que aca en Venezuela las impresoras le agregan algo que se le llama fiscalizacion, donde estan los datos del dueño del negocio, esos datos son impresos cuando se inicializa la impresion, espero haberte podido ayudar y cualquier otra duda, estamos a la orden.saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Orbex
Posts: 24
Joined: Sun Jan 22, 2012 2:52 pm

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by Orbex »

Gracias por contestar Jose Luis

El caso del punto 1 es que ya se cual es la funcion pero en el manual no he encontrado la forma de usarla. Me preguntaba si habrias tenido la necesidad de usarla en que parte de la rutina de impresion la debo poner.
Es decir, se usa la funcion VendeArticulo para definir los productos que se envian a la impresora pero el texto que aparece alli es limitado... la pregunta es, donde coloco la funcion para ampliar la descripcion

Gracias nuevamente
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

Orbex wrote:Gracias por contestar Jose Luis

El caso del punto 1 es que ya se cual es la funcion pero en el manual no he encontrado la forma de usarla. Me preguntaba si habrias tenido la necesidad de usarla en que parte de la rutina de impresion la debo poner.
Es decir, se usa la funcion VendeArticulo para definir los productos que se envian a la impresora pero el texto que aparece alli es limitado... la pregunta es, donde coloco la funcion para ampliar la descripcion

Gracias nuevamente
Extraido del MANUAL

Bematech_FI_ExtenderDescripcionArticulo
DLL function Bematech_FI_ExtenderDescripcionArticulo( Descripcion AS LPSTR ) AS LONG PASCAL FROM "Bematech_FI_ExtenderDescripcionArticulo" LIB "BemaFI32.dll"

Esta función permite aumentar la descripción del artículo hasta 200 caracteres.

Parámetro:

Descripción: STRING con la descripción del ítem de hasta 200 caracteres.
Posibles retornos de la Función (INT):

0: Error de comunicación.
1: OK.
-2: Parámetro inválido en la función.
-4: El archivo de inicialización BemaFI32.ini no fue encontrado en el directorio de sistema del Windows.
-5: Error al abrir la puerta de comunicación.
-27: Status de la impresora diferente de 6,0,0 (ACK, ST1 y ST2).

Observaciones:

Esta función debe ser usada antes de la función Bematech_FI_VendeArticulo, pues de esa manera, el artículo será impreso con la nueva descripción.

Ésta tiene validad solamente para la impresión de un artículo, volviendo al default que es de 29 caracteres en la descripción

Ejemplo:

Ejemplo en Visual Basic



iRetorno = Bematech_FI_ExtenderDescripcionArticulo("Producto 123/776 - 001 abc")



Ejemplo en Delphi



cDescMaior := 'Producto 123/776 - 001 abc';

iRetorno := Bematech_FI_ExtenderDescripcionArticulo( pchar( cDescMaior ) );
Dios no está muerto...

Gracias a mi Dios ante todo!
Orbex
Posts: 24
Joined: Sun Jan 22, 2012 2:52 pm

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by Orbex »

Muchas gracias Jose Luis, me funciono perfecto lo de la ampliacion de la descripcion.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

Orbex wrote:Muchas gracias Jose Luis, me funciono perfecto lo de la ampliacion de la descripcion.
Ok, si quieres puedes publicar algo de lo hecho para compartirlo con los demas colegas, asi aprendemos todos, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Orbex
Posts: 24
Joined: Sun Jan 22, 2012 2:52 pm

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by Orbex »

Claro que si, voy a hacer una recopilacion de algunas cosas y luego la publico

Gracias

PD: Seria bueno que se hiciera lo mismo con otros modelos de impresoras fiscales. Por lo pronto he utilizaco Tally, Hasar, Citizen pero solo por medio de programas SPOOLER, aun no he logrado hacer la coneccion por medio de DLL.

Saludos a todos.
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

Orbex wrote:Claro que si, voy a hacer una recopilacion de algunas cosas y luego la publico

Gracias

PD: Seria bueno que se hiciera lo mismo con otros modelos de impresoras fiscales. Por lo pronto he utilizaco Tally, Hasar, Citizen pero solo por medio de programas SPOOLER, aun no he logrado hacer la coneccion por medio de DLL.

Saludos a todos.
Si consigues los drivers podemo entre todos usar estas impresoras y agregarlas si es posible a FWH, al final no es tan dificil configurar estas impresoras fiscales, solo hay que tener paciencia y tener su emulador, saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
centrinorata
Posts: 1
Joined: Tue Mar 20, 2018 1:27 pm

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by centrinorata »

Orbex wrote:Hola Jose Luis


Si me permites, tengo un algunas preguntas:

1. Haz podido imprimir en la Bematech descripciones largas para un ITEM, hay una en la DLL que parece que sirve para ello pero que no he sabido como emplearlar?
2. Como puedes dar mas espacio entre las lineas de impresion ?
3. Se pueden emplear letras de diferente tamaño ?
4. Cuando haces la reimpresion de una factura fiscal, como haces para cortar el papel ?

Gracias por tu ayuda

Saludos desde Panama
Hola Orbex y tambien a Jose Luis, yo soy de venezuela y quisiera saber como puedo reimprimir una factura en bematech, tengo tambien la necesidad de saber como obtengo la ultima factura emitida para poder comprobar este ultimo en el sistema!! gracias
User avatar
joseluisysturiz
Posts: 2024
Joined: Fri Jan 06, 2006 9:28 pm
Location: Guatire - Caracas - Venezuela
Contact:

Re: CUMPLIENDO IMPRESORA FISCAL BEMATECH

Post by joseluisysturiz »

centrinorata wrote:
Orbex wrote:Hola Jose Luis


Si me permites, tengo un algunas preguntas:

1. Haz podido imprimir en la Bematech descripciones largas para un ITEM, hay una en la DLL que parece que sirve para ello pero que no he sabido como emplearlar?
2. Como puedes dar mas espacio entre las lineas de impresion ?
3. Se pueden emplear letras de diferente tamaño ?
4. Cuando haces la reimpresion de una factura fiscal, como haces para cortar el papel ?

Gracias por tu ayuda

Saludos desde Panama
Hola Orbex y tambien a Jose Luis, yo soy de venezuela y quisiera saber como puedo reimprimir una factura en bematech, tengo tambien la necesidad de saber como obtengo la ultima factura emitida para poder comprobar este ultimo en el sistema!! gracias

Saludos, si puedes contactme por SKYPE, casi siempre estoy por alli...haber en que te puedo ayudar...mi nick es joseluisy(cerebro)...saludos... :shock:
Dios no está muerto...

Gracias a mi Dios ante todo!
Post Reply