cTcmpleyenda = 'NOTA_DE_CREDITO'
ErrorComenzar = .F.
ProcesandoCMD = .F.
** * ************************************************
** *
** * Si la pantalla está en detener en preimpresión,
** * continuar sin espera.
** *
** * ************************************************
#Define OCUPADO_CMD "Un comando se etá ejecutando, aguarde por favor!!!"
#Define ESTACION_TICKET "T"
#Define ESTACION_SLIP "S"
#Define TICKET 1
#Define TICKET_FACTURA 2
#Define TICKET_FACT715 9 && Equivale a TICKET_FACTURA_PLUS
#Define TICKET_FACTURAPLUS 3
#Define FACTURA 4
&&/ * ****************************************
&&/ * Generar las variables necesarias.
&&/ * Abrir([ImpFiscal],2,,2,Fullpath([BasedAfip]))
&&/ * ****************************************
cNomClient = "NUTRICORSA"
cDomicilio = "parque industrial"
nTipoDocum = 67 && CUIT.
cNumDocumt = "30712599701"
nCategoria = 73
cTipsCateg = "I"
cTipsDocum = "C" && Tipo de Doc. CUIT.
nTipoDocFs = 52 && Nota de Credito.
lnAlicuota = 21
cFormaPago = "Cuenta Corrientes"
**nPagohecho = .txSupago.Value && Importe Pagado.
**nSuCambio = .txCambio.Value && Saldo / Resto.
**nTotalFact = .txTotal.Value
cDocumref = "0009-00010493"
FS = Chr(28)
oFiscal = Createobject("hasar.fiscal.1")
&&/ * ****************************************
&&/ * Abrir Puerto y Comenzar.
&&/ * ****************************************
oFiscal.Puerto = 1
oFiscal.AutoDetectarModelo
oFiscal.Comenzar
oFiscal.TratarDeCancelarTodo && Cancelar cualquier comprobante abierto.
For nX=1 To 21
oFiscal.Encabezado(nX)=Chr(127)
Next
If ErrorComenzar = .T.
lConnected = .F.
Return
Else
lConnected = .T.
Endif
&&/ * ****************************************
&&/ * Limpiar datos de Encabezados.
&&/ * ****************************************
For nX=1 To 21
oFiscal.Encabezado(nX)=Chr(127)
Next
&&/ * ****************************************
&&/ * Obtener desde IFH en Punto de Venta.
&&/ * ****************************************
oFiscal.ObtenerDatosDeInicializacion
cPuntoVta = oFiscal.Respuesta(7)
If ErrorComenzar
Return
Endif
If ProcesandoCMD
Messagebox(OCUPADO_CMD,48,'Aviso')
Return
Endif
ProcesandoCMD = .T.
&&/ * ****************************************
&&/ * Cargar datos del cliente. !TICKET_C(84).
&&/ *
&&/ * TICKET_FACTURA:
&&/ * DatosCliente(RSocial (C), NroDoc (C), TipoDoc (N), Categ (N))
&&/ * DatosCliente('Cliente', '20101101', 50, 67)
&&/ *
&&/ * TICKET_FACTURAPLUS:
&&/ * cmd = "b" + FS + "Nombre" + FS + "20101101" + FS + "C" + FS + "2" + FS + "Domicilio"
&&/ *
&&/ * FACTURA:
&&/ * DatosCliente(RSocial (C), NroDoc (C), TipoDoc (N), Categ (N), Domic (V))
&&/ * DatosCliente('Cliente', '20101101', 50, 67, 'Domicilio')
&&/ * ****************************************
cmd = "b" + FS + cNomClient + FS + cNumDocumt + FS + cTipsCateg + FS + cTipsDocum + FS + cDomicilio
oFiscal.Enviar(cmd)
If ErrorComenzar
Return
Endif
&&/ * ****************************************
&&/ * FACTURA_A(48)/B(49), TICKET_FACTURA_A(65)/B(66) o TICKET_C(84)
&&/ * NOTA_CREDITO_A(82)/B(83), TICKET_NOTA_CREDITO_A(52)B(53)
&&/ * ****************************************
Do Case
Case cTcmpleyenda = 'FACTURA'
oFiscal.AbrirComprobanteFiscal(nTipoDocFs) && Abrir el comprobante Fiscal.
Case cTcmpleyenda = 'NOTA_DE_CREDITO'
oFiscal.DocumentoDeReferencia(1) = cDocumref
oFiscal.AbrirDNFH(nTipoDocFs) && Abrir DNFH.
Endcase
oFiscal.PrecioBase = .F.
&&/ * ****************************************
&&/ * ImprimirItem(Descripción(C), Cantidad(N), Precio(N), Alicuota(N), ImpInternos(N))
&&/ * ****************************************
oFiscal.ImprimirItem("ANGULO 6.35X50.8(1/4-2.0) *5030*", 3, 587.99, 21, 0)
Do Case
Case cTcmpleyenda = 'FACTURA'
oFiscal.Subtotal(.T.)
oFiscal.ImprimirPago(cFormaPago,nPagohecho)
oFiscal.CerrarComprobanteFiscal && Cerrar y terminar impresos.
Case cTcmpleyenda = 'NOTA_DE_CREDITO'
oFiscal.CerrarDNFH()
Endcase
&&/ * ****************************************
&&/ * Cerrar/Terminar.
&&/ * ****************************************
**Messagebox(oFiscal.Respuesta(1)/(8))
Do Case
Case oFiscal.HuboErrorFiscal Or oFiscal.HuboErrorMecanico
m.cMensajeError = Iif(oFiscal.HuboErrorFiscal,'¡Error Fiscal!', ;
IIF(oFiscal.HuboErrorMecanico,'¡Error Mecánico!', ;
IIF(oFiscal.HuboFaltaPapel,'¡Error Falta de Papel!','')))
Messagebox(cMensajeError,16,'Error')
Return
Case oFiscal.HuboFaltaPapel
*If Messagebox([¡Error Falta de Papel!]+;
* Chr(13)+Chr(13)+;
* [¿Continúa?],4+32+256,[Error])=7
* Return
*Endif
Endcase
ProcesandoCMD = .F.
lConnected = .F.
dFecfiscal = Ctod(Left(Ttoc(oFiscal.FechaHoraFiscal),10))
oFiscal.Finalizar()
Return