En el INIT del formulario
DO JSON && y Luego saco un mensajito para tener constancia de que se ha cargado.
Luego en un momento dado, caundo tengo todos los datos , llamo al metodo método CreaJson y ahi, hago lo siguiente :
-----------------------------------------------------------------------------------------------------
LOCAL dFFact, cfechaFact, nDetalleId, cDetalle, nDetalle
dFFact = DTOS( Thisform.Caja_CbFecFct.value )
cfechaFact =LEFT(dFFact,4) + '-' +SUBSTR(dFFact,5,2)+'-'+right(dFFact,2)
nDetalleId = 0
factura = CREATE("DynObj")
factura.UserId = "PEYIE2"
factura.CompanyFiscalId = "B82998097"
factura.Invoices = CREATE("Collection")
invoice = CREATE("DynObj")
invoice.Establecimiento = "00"
invoice.Serie = "F"
invoice.Numero = cSeekFct
invoice.FechaExpedicion = cfechaFact
invoice.FechaOperacion = null
invoice.Descripcion = "DESCRIPCION FACTURA"
invoice.ImporteTotal = nCuotaIva + nSubTotal
invoice.ImporteRetencioSoportada = 0.00
invoice.EsSimplificada = false
invoice.EsSustitutivaSimplificada = false
invoice.TipoFactura = "F1"
invoice.TipoEmisor = 1
invoice.Moneda = "EUR"
invoice.TipoCambio = 1.00
invoice.Idioma = "ES"
invoice.FormaDePago = "Transferencia"
invoice.contraparte = CREATE("DynObj")
invoice.contraparte.Denominacion = Thisform.Caja_CbNombre.value
invoice.contraparte.TipoFiscal = cTipoFiscal && 0 = España, Si es terceros paises '06' o '02' intracomunitario (ver con Agustin)
invoice.contraparte.IdFiscal = Thisform.Caja_CbNifCif.value
invoice.contraparte.address = CREATE("DynObj")
invoice.contraparte.address.Direccion = ALLTRIM(Thisform.Caja_CbDomi1.value)
invoice.contraparte.address.Poblacion = ALLTRIM(Thisform.Caja_CbPobla.value)
invoice.contraparte.address.CodigoPostal = Thisform.Caja_CbCpost.value
invoice.contraparte.address.Province = IIF( EMPTY(Thisform.Caja_CbProvi.value), ALLTRIM(Thisform.Caja_CbPobla.value),Thisform.Caja_CbProvi.value )
invoice.contraparte.address.CodigoPais = nIntraC && Crear campo en PAIS.DBF para poner 1 si es comunitario y sino dejarlo a 0
invoice.contraparte.Contactos = CREATE("Collection")
contacto1 = CREATE("DynObj")
contacto1.Id = 0
contacto1.CounterPartId = 0
contacto1.Nombre = "Juan Miguel"
contacto1.Apellido = "Solis Sandes"
invoice.contraparte.contactos.add(contacto1)
invoice.DetalleRectificacion = CREATE("DynObj")
invoice.DetalleRectificacion.CodigoFacturaRectificativa = null
invoice.DetalleRectificacion.TipoFacturaRectificativa = null
invoice.DetalleRectificacion.DetalleFacturas = CREATE("Collection")
invoice.Payments = CREATE("Collection")
pago1 = CREATE("DynObj")
pago1.Id = 0
pago1.Type = 2
pago1.Medio = 9
pago1.descriptions = ALLTRIM(CB_FACTU.CB_FOPAG)
pago1.Fecha = "2026-12-31"
pago1.Importe = nCuotaIva + nSubTotal
invoice.payments.add(pago1)
&&& Crear lineas de Dealle
invoice.DetalleFactura = CREATE("Collection")
select TMPFACTU
set filter to !empty( FC_SEL )
go top
Do While !eof('TMPFACTU')
nDetalle = nDetalleId + 1
cDetalle = 'detalle' + STRTRAN( STR( nDetalle,4 ), ' ', '' )
&cDetalle. = CREATE("DynObj")
&cDetalle..Id = nDetalleId
&cDetalle..TipoDesgloseOperacion = nTipDglOpe && 0 = Españolas, 1 = bienes, 2 = Servicios (Todo los demas incluyendo si es de Ceuta, Melilla, Las Canarias)
&cDetalle..InversionSujetoPasivo = false
&cDetalle..descripcion = ALLTRIM(TMPFACTU.fc_des)
&cDetalle..Unidades = 1.00
&cDetalle..ImporteUnitario = TMPFACTU.fc_impor
&cDetalle..CosteUnitario = TMPFACTU.fc_impor
&cDetalle..Descuento = 0
&cDetalle..TipoIva = TMPFACTU.fc_ivat
&cDetalle..alle1.TipoRe = 0 && Ver si tiene clientes con RE.
&cDetalle..CauseExencion = null
&cDetalle..CausaNoSujeta = null
&cDetalle..SubTotalLinea = && Poner Subtotal de linea SIN IVA
&cDetalle..Position = TMPFACTU.fc_lin
&cDetalle..Clave = "01" && Esto de la clave es siempre fijo ?
** &cDetalle..UserdeDineData = CREATE("DynObj") &&& De momento nada.
&cDetalle..InvoiceId = 0
invoice.DetalleFactura.add(&cDetalle.)
SKIP IN 'TMPFACTU'
nDetalleId = nDetalleId +1
Enddo
&& para añadir 2 detalle y siguientes
factura.invoices.add(invoice)
-----------------------------------------------------------------------
Pero me da este error :
"No se encuentra la definición de clase DYNOBJ."
Aquí ya no se porque me dice esto, además como podría ver lo que se me ha grabado o poder generar un fichero con todo lo que va dentro ?
Alguien tiene algún ejemplo de esto.
Un saludo
--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/41682759-2744-4e92-b168-ed2a9f63e030n%40googlegroups.com.