diff --git a/pom.xml b/pom.xml index 758329d..c8bb435 100644 --- a/pom.xml +++ b/pom.xml @@ -7,7 +7,7 @@ com.fiscalapi fiscalapi - 4.0.360 + 4.0.372 ${project.groupId}:${project.artifactId} Genera facturas CFDI válidas ante el SAT consumiendo la API de https://www.fiscalapi.com https://www.fiscalapi.com diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java new file mode 100644 index 0000000..f2780ee --- /dev/null +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteReferencias.java @@ -0,0 +1,3739 @@ +// package com.fiscalapi.examples; + +// import java.math.BigDecimal; +// import java.time.LocalDateTime; +// import java.util.ArrayList; +// import java.util.List; + +// import com.fiscalapi.OptUtil; +// import com.fiscalapi.common.ApiResponse; +// import com.fiscalapi.common.FiscalApiSettings; +// import com.fiscalapi.models.invoicing.Complement; +// import com.fiscalapi.models.invoicing.Invoice; +// import com.fiscalapi.models.invoicing.InvoiceIssuer; +// import com.fiscalapi.models.invoicing.InvoiceItem; +// import com.fiscalapi.models.invoicing.InvoiceRecipient; +// import com.fiscalapi.models.invoicing.ItemTax; +// import com.fiscalapi.models.invoicing.TaxCredential; +// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Remolque; +// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +// import com.fiscalapi.services.FiscalApiClient; + +// public class EjemplosCartaPorteReferencias { + +// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; +// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; +// final String password = "12345678a"; + +// public void main(String[] args) { +// FiscalApiSettings settings = new FiscalApiSettings(); +// settings.setDebugMode(true); +// settings.setApiUrl("https://test.fiscalapi.com"); +// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); +// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); + +// facturaIngresoAutoTransporteNacional(settings); +// } + +// // Factura ingreso autotransporte nacional (sin impuestos) +// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte nacional con impuestos +// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// List itemTaxes = new ArrayList<>(); +// ItemTax ivaTraslado = new ItemTax(); +// ivaTraslado.setTaxCode("002"); +// ivaTraslado.setTaxTypeCode("Tasa"); +// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); +// ivaTraslado.setTaxFlagCode("T"); +// itemTaxes.add(ivaTraslado); +// ItemTax ivaRetencion = new ItemTax(); +// ivaRetencion.setTaxCode("002"); +// ivaRetencion.setTaxTypeCode("Tasa"); +// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); +// ivaRetencion.setTaxFlagCode("R"); +// itemTaxes.add(ivaRetencion); + +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("26232.75")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("02"); +// item.setItemTaxes(itemTaxes); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte extranjero (salida) +// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) +// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); +// documentoAduanero.setTipoDocumentoId("01"); +// documentoAduanero.setNumPedimento("23 43 0472 8000448"); +// documentoAduanero.setRfcImpo("EKU9003173C9"); +// List documentosAduaneros = new ArrayList<>(); +// documentosAduaneros.add(documentoAduanero); + +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(documentosAduaneros); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario nacional +// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario extranjero +// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo nacional +// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo extranjero (salida) +// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo nacional +// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo extranjero (salida) +// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// destino.setTipoEstacionId("02"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// ct.setCvesTransporteId("02"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("X1A"); +// detalle.setPesoBruto(new BigDecimal("1.50")); +// detalle.setPesoNeto(new BigDecimal("1.00")); +// detalle.setPesoTara(new BigDecimal("0.50")); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1.50")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("Calle1"); +// domFigura.setNumeroExterior("NumeroExterior1"); +// domFigura.setNumeroInterior("NumeroInterior1"); +// domFigura.setColoniaId("Colonia1"); +// domFigura.setLocalidadId("Localidad1"); +// domFigura.setReferencia("Referencia1"); +// domFigura.setMunicipioId("Municipio1"); +// domFigura.setEstadoId("Estado1"); +// domFigura.setPaisId("AFG"); +// domFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("CP3.1"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte nacional +// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (no station, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (no station, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura (no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte extranjero (salida, EXD) +// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte internacional aduanero (entrada, IMD) +// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Ejemplo 17: Factura traslado transporte ferroviario nacional +// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse17); +// } + +// // Ejemplo 18: Factura traslado transporte ferroviario extranjero +// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse18); +// } + +// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse19); +// } + +// // Ejemplo 20: Factura traslado transporte aereo nacional +// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse20); +// } + +// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) +// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse21); +// } + +// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse22); +// } + +// // Ejemplo 23: Factura traslado transporte maritimo nacional +// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse23); +// } + +// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) +// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse24); +// } + +// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse25); +// } + +// // ── Helper methods ────────────────────────────────────────────────────────── + +// private List buildTaxCredentials() { +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// List credentials = new ArrayList<>(); +// credentials.add(cer); +// credentials.add(key); +// return credentials; +// } + +// private InvoiceIssuer buildIssuerEKU() { +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); +// return issuer; +// } + +// private InvoiceRecipient buildRecipientEKU() { +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setId("0e82a655-5f0c-4e07-abab-8f322e4123ef"); +// return recipient; +// } + +// private InvoiceItem buildStandardItem() { +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// return item; +// } + +// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, +// List items, Complement complement) { +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); +// return invoice; +// } + +// private TransporteAereo buildTransporteAereoCP() { +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); +// return transporteAereo; +// } + +// private TransporteMaritimo buildTransporteMaritimo() { +// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); +// remolqueCCP.setSubTipoRemCCPId("CTR001"); +// remolqueCCP.setPlacaCCP("JNG7636"); +// List remolquesCCP = new ArrayList<>(); +// remolquesCCP.add(remolqueCCP); + +// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); +// contenedor.setTipoContenedorId("CM011"); +// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); +// contenedor.setPlacaVMCCP("JNG7683"); +// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); +// contenedor.setRemolquesCCP(remolquesCCP); +// List contenedores = new ArrayList<>(); +// contenedores.add(contenedor); + +// TransporteMaritimo maritimo = new TransporteMaritimo(); +// maritimo.setPermSCTId("TPAF01"); +// maritimo.setNumPermisoSCT("NumPermisoSCT1"); +// maritimo.setNombreAseg("NombreAseg1"); +// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); +// maritimo.setTipoEmbarcacionId("B01"); +// maritimo.setMatricula("Matricula1"); +// maritimo.setNumeroOMI("IMO1234567"); +// maritimo.setAnioEmbarcacion(2003); +// maritimo.setNombreEmbarc("NombreEmbarc1"); +// maritimo.setNacionalidadEmbarcId("AFG"); +// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); +// maritimo.setTipoCargaId("CGS"); +// maritimo.setEslora(new BigDecimal("0.01")); +// maritimo.setManga(new BigDecimal("0.01")); +// maritimo.setCalado(new BigDecimal("0.01")); +// maritimo.setPuntal(new BigDecimal("0.01")); +// maritimo.setLineaNaviera("LineaNaviera1"); +// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); +// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); +// maritimo.setNumViaje("NumViaje1"); +// maritimo.setNumConocEmbarc("NumConocEmbarc1"); +// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); +// maritimo.setContenedores(contenedores); +// return maritimo; +// } + +// private TransporteFerroviario buildTransporteFerroviario() { +// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); +// derecho.setTipoDerechoDePasoId("CDP114"); +// derecho.setKilometrajePagado(new BigDecimal("100")); +// List derechos = new ArrayList<>(); +// derechos.add(derecho); + +// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); +// carro.setTipoCarroId("TC08"); +// carro.setMatriculaCarro("A00012"); +// carro.setGuiaCarro("123ASD"); +// carro.setToneladasNetasCarro(new BigDecimal("10")); +// List carros = new ArrayList<>(); +// carros.add(carro); + +// TransporteFerroviario transporte = new TransporteFerroviario(); +// transporte.setTipoDeServicioId("TS01"); +// transporte.setTipoDeTraficoId("TT01"); +// transporte.setDerechosDePaso(derechos); +// transporte.setCarros(carros); +// return transporte; +// } + +// private List buildTiposFiguraFerroviario() { +// ParteTransporte parte = new ParteTransporte(); +// parte.setParteTransporteId("PT02"); +// List partes = new ArrayList<>(); +// partes.add(parte); + +// Domicilio domicilio = new Domicilio(); +// domicilio.setCalle("calle"); +// domicilio.setNumeroExterior("211"); +// domicilio.setColoniaId("0814"); +// domicilio.setLocalidadId("01"); +// domicilio.setReferencia("casa blanca"); +// domicilio.setMunicipioId("010"); +// domicilio.setEstadoId("ZAC"); +// domicilio.setPaisId("MEX"); +// domicilio.setCodigoPostalId("99080"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("02"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNombreFigura("NombreFigura"); +// figura.setPartesTransporte(partes); +// figura.setDomicilio(domicilio); + +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); +// return tiposFigura; +// } + +// private List buildUbicacionesFerroviarioComunes() { +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("Q0736"); +// origen.setNombreEstacion("SANTO NINO"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// Ubicacion dest1 = new Ubicacion(); +// dest1.setTipoUbicacion("Destino"); +// dest1.setIdUbicacion("DE202021"); +// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest1.setNumEstacionId("SC283"); +// dest1.setNombreEstacion("HUAXTITLA"); +// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); +// dest1.setTipoEstacionId("02"); +// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest2 = new Ubicacion(); +// dest2.setTipoUbicacion("Destino"); +// dest2.setIdUbicacion("DE202022"); +// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest2.setNumEstacionId("TG0"); +// dest2.setNombreEstacion("NAVOJOA"); +// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); +// dest2.setTipoEstacionId("02"); +// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest3 = new Ubicacion(); +// dest3.setTipoUbicacion("Destino"); +// dest3.setIdUbicacion("DE202023"); +// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest3.setNumEstacionId("E0029"); +// dest3.setNombreEstacion("TRES JAGUEYES"); +// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); +// dest3.setTipoEstacionId("02"); +// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest4 = new Ubicacion(); +// dest4.setTipoUbicacion("Destino"); +// dest4.setIdUbicacion("DE202024"); +// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest4.setNumEstacionId("TI032"); +// dest4.setNombreEstacion("NAVOLATO"); +// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// dest4.setTipoEstacionId("02"); +// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(dest1); +// ubicaciones.add(dest2); +// ubicaciones.add(dest3); +// ubicaciones.add(dest4); +// return ubicaciones; +// } +// } diff --git a/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java new file mode 100644 index 0000000..e3ab578 --- /dev/null +++ b/src/main/java/com/fiscalapi/examples/EjemplosCartaPorteValores.java @@ -0,0 +1,3826 @@ +// package com.fiscalapi.examples; + +// import java.math.BigDecimal; +// import java.time.LocalDateTime; +// import java.util.ArrayList; +// import java.util.List; + +// import com.fiscalapi.OptUtil; +// import com.fiscalapi.common.ApiResponse; +// import com.fiscalapi.common.FiscalApiSettings; +// import com.fiscalapi.models.invoicing.Complement; +// import com.fiscalapi.models.invoicing.Invoice; +// import com.fiscalapi.models.invoicing.InvoiceIssuer; +// import com.fiscalapi.models.invoicing.InvoiceItem; +// import com.fiscalapi.models.invoicing.InvoiceRecipient; +// import com.fiscalapi.models.invoicing.ItemTax; +// import com.fiscalapi.models.invoicing.TaxCredential; +// import com.fiscalapi.models.invoicing.billOfLading.Autotransporte; +// import com.fiscalapi.models.invoicing.billOfLading.CantidadTransporta; +// import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; +// import com.fiscalapi.models.invoicing.billOfLading.DocumentoAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Domicilio; +// import com.fiscalapi.models.invoicing.billOfLading.Mercancia; +// import com.fiscalapi.models.invoicing.billOfLading.RegimenAduanero; +// import com.fiscalapi.models.invoicing.billOfLading.Remolque; +// import com.fiscalapi.models.invoicing.billOfLading.TipoFigura; +// import com.fiscalapi.models.invoicing.billOfLading.ParteTransporte; +// import com.fiscalapi.models.invoicing.billOfLading.DetalleMercancia; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteAereo; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteFerroviario; +// import com.fiscalapi.models.invoicing.billOfLading.TransporteMaritimo; +// import com.fiscalapi.models.invoicing.billOfLading.Ubicacion; +// import com.fiscalapi.services.FiscalApiClient; + +// public class EjemplosCartaPorteValores { + +// final String escuelaKemperUrgateBase64Cer = "MIIFsDCCA5igAwIBAgIUMzAwMDEwMDAwMDA1MDAwMDM0MTYwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWxpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMjMwNTE4MTE0MzUxWhcNMjcwNTE4MTE0MzUxWjCB1zEnMCUGA1UEAxMeRVNDVUVMQSBLRU1QRVIgVVJHQVRFIFNBIERFIENWMScwJQYDVQQpEx5FU0NVRUxBIEtFTVBFUiBVUkdBVEUgU0EgREUgQ1YxJzAlBgNVBAoTHkVTQ1VFTEEgS0VNUEVSIFVSR0FURSBTQSBERSBDVjElMCMGA1UELRMcRUtVOTAwMzE3M0M5IC8gVkFEQTgwMDkyN0RKMzEeMBwGA1UEBRMVIC8gVkFEQTgwMDkyN0hTUlNSTDA1MRMwEQYDVQQLEwpTdWN1cnNhbCAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAtmecO6n2GS0zL025gbHGQVxznPDICoXzR2uUngz4DqxVUC/w9cE6FxSiXm2ap8Gcjg7wmcZfm85EBaxCx/0J2u5CqnhzIoGCdhBPuhWQnIh5TLgj/X6uNquwZkKChbNe9aeFirU/JbyN7Egia9oKH9KZUsodiM/pWAH00PCtoKJ9OBcSHMq8Rqa3KKoBcfkg1ZrgueffwRLws9yOcRWLb02sDOPzGIm/jEFicVYt2Hw1qdRE5xmTZ7AGG0UHs+unkGjpCVeJ+BEBn0JPLWVvDKHZAQMj6s5Bku35+d/MyATkpOPsGT/VTnsouxekDfikJD1f7A1ZpJbqDpkJnss3vQIDAQABox0wGzAMBgNVHRMBAf8EAjAAMAsGA1UdDwQEAwIGwDANBgkqhkiG9w0BAQsFAAOCAgEAFaUgj5PqgvJigNMgtrdXZnbPfVBbukAbW4OGnUhNrA7SRAAfv2BSGk16PI0nBOr7qF2mItmBnjgEwk+DTv8Zr7w5qp7vleC6dIsZFNJoa6ZndrE/f7KO1CYruLXr5gwEkIyGfJ9NwyIagvHHMszzyHiSZIA850fWtbqtythpAliJ2jF35M5pNS+YTkRB+T6L/c6m00ymN3q9lT1rB03YywxrLreRSFZOSrbwWfg34EJbHfbFXpCSVYdJRfiVdvHnewN0r5fUlPtR9stQHyuqewzdkyb5jTTw02D2cUfL57vlPStBj7SEi3uOWvLrsiDnnCIxRMYJ2UA2ktDKHk+zWnsDmaeleSzonv2CHW42yXYPCvWi88oE1DJNYLNkIjua7MxAnkNZbScNw01A6zbLsZ3y8G6eEYnxSTRfwjd8EP4kdiHNJftm7Z4iRU7HOVh79/lRWB+gd171s3d/mI9kte3MRy6V8MMEMCAnMboGpaooYwgAmwclI2XZCczNWXfhaWe0ZS5PmytD/GDpXzkX0oEgY9K/uYo5V77NdZbGAjmyi8cE2B2ogvyaN2XfIInrZPgEffJ4AB7kFA2mwesdLOCh0BLD9itmCve3A1FGR4+stO2ANUoiI3w3Tv2yQSg4bjeDlJ08lXaaFCLW2peEXMXjQUk7fmpb5MNuOUTW6BE="; +// final String escuelaKemperUrgateBase64Key = "MIIFDjBABgkqhkiG9w0BBQ0wMzAbBgkqhkiG9w0BBQwwDgQIAgEAAoIBAQACAggAMBQGCCqGSIb3DQMHBAgwggS/AgEAMASCBMh4EHl7aNSCaMDA1VlRoXCZ5UUmqErAbucoZQObOaLUEm+I+QZ7Y8Giupo+F1XWkLvAsdk/uZlJcTfKLJyJbJwsQYbSpLOCLataZ4O5MVnnmMbfG//NKJn9kSMvJQZhSwAwoGLYDm1ESGezrvZabgFJnoQv8Si1nAhVGTk9FkFBesxRzq07dmZYwFCnFSX4xt2fDHs1PMpQbeq83aL/PzLCce3kxbYSB5kQlzGtUYayiYXcu0cVRu228VwBLCD+2wTDDoCmRXtPesgrLKUR4WWWb5N2AqAU1mNDC+UEYsENAerOFXWnmwrcTAu5qyZ7GsBMTpipW4Dbou2yqQ0lpA/aB06n1kz1aL6mNqGPaJ+OqoFuc8Ugdhadd+MmjHfFzoI20SZ3b2geCsUMNCsAd6oXMsZdWm8lzjqCGWHFeol0ik/xHMQvuQkkeCsQ28PBxdnUgf7ZGer+TN+2ZLd2kvTBOk6pIVgy5yC6cZ+o1Tloql9hYGa6rT3xcMbXlW+9e5jM2MWXZliVW3ZhaPjptJFDbIfWxJPjz4QvKyJk0zok4muv13Iiwj2bCyefUTRz6psqI4cGaYm9JpscKO2RCJN8UluYGbbWmYQU+Int6LtZj/lv8p6xnVjWxYI+rBPdtkpfFYRp+MJiXjgPw5B6UGuoruv7+vHjOLHOotRo+RdjZt7NqL9dAJnl1Qb2jfW6+d7NYQSI/bAwxO0sk4taQIT6Gsu/8kfZOPC2xk9rphGqCSS/4q3Os0MMjA1bcJLyoWLp13pqhK6bmiiHw0BBXH4fbEp4xjSbpPx4tHXzbdn8oDsHKZkWh3pPC2J/nVl0k/yF1KDVowVtMDXE47k6TGVcBoqe8PDXCG9+vjRpzIidqNo5qebaUZu6riWMWzldz8x3Z/jLWXuDiM7/Yscn0Z2GIlfoeyz+GwP2eTdOw9EUedHjEQuJY32bq8LICimJ4Ht+zMJKUyhwVQyAER8byzQBwTYmYP5U0wdsyIFitphw+/IH8+v08Ia1iBLPQAeAvRfTTIFLCs8foyUrj5Zv2B/wTYIZy6ioUM+qADeXyo45uBLLqkN90Rf6kiTqDld78NxwsfyR5MxtJLVDFkmf2IMMJHTqSfhbi+7QJaC11OOUJTD0v9wo0X/oO5GvZhe0ZaGHnm9zqTopALuFEAxcaQlc4R81wjC4wrIrqWnbcl2dxiBtD73KW+wcC9ymsLf4I8BEmiN25lx/OUc1IHNyXZJYSFkEfaxCEZWKcnbiyf5sqFSSlEqZLc4lUPJFAoP6s1FHVcyO0odWqdadhRZLZC9RCzQgPlMRtji/OXy5phh7diOBZv5UYp5nb+MZ2NAB/eFXm2JLguxjvEstuvTDmZDUb6Uqv++RdhO5gvKf/AcwU38ifaHQ9uvRuDocYwVxZS2nr9rOwZ8nAh+P2o4e0tEXjxFKQGhxXYkn75H3hhfnFYjik/2qunHBBZfcdG148MaNP6DjX33M238T9Zw/GyGx00JMogr2pdP4JAErv9a5yt4YR41KGf8guSOUbOXVARw6+ybh7+meb7w4BeTlj3aZkv8tVGdfIt3lrwVnlbzhLjeQY6PplKp3/a5Kr5yM0T4wJoKQQ6v3vSNmrhpbuAtKxpMILe8CQoo="; +// final String password = "12345678a"; + +// public void main(String[] args) { +// FiscalApiSettings settings = new FiscalApiSettings(); +// settings.setDebugMode(true); +// settings.setApiUrl("https://test.fiscalapi.com"); +// settings.setApiKey("sk_test_b7dae706_e16f_4faf_90fb_a5d1990985a2"); +// settings.setTenant("275510ee-f64d-435a-9e92-1553d8f10a7e"); + +// facturaIngresoAutoTransporteNacional(settings); +// } + +// // Factura ingreso autotransporte nacional (sin impuestos) +// private void facturaIngresoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("URE180429TM6"); +// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); +// recipient.setZipCode("86991"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte nacional con impuestos +// private void facturaIngresoAutoTransporteNacionalConImpuestos(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("URE180429TM6"); +// recipient.setLegalName("UNIVERSIDAD ROBOTICA ESPAÑOLA"); +// recipient.setZipCode("86991"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// List itemTaxes = new ArrayList<>(); +// ItemTax ivaTraslado = new ItemTax(); +// ivaTraslado.setTaxCode("002"); +// ivaTraslado.setTaxTypeCode("Tasa"); +// ivaTraslado.setTaxRate(new BigDecimal("0.160000")); +// ivaTraslado.setTaxFlagCode("T"); +// itemTaxes.add(ivaTraslado); +// ItemTax ivaRetencion = new ItemTax(); +// ivaRetencion.setTaxCode("002"); +// ivaRetencion.setTaxTypeCode("Tasa"); +// ivaRetencion.setTaxRate(new BigDecimal("0.040000")); +// ivaRetencion.setTaxFlagCode("R"); +// itemTaxes.add(ivaRetencion); + +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("26232.75")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("02"); +// item.setItemTaxes(itemTaxes); +// List items = new ArrayList<>(); +// items.add(item); + +// // Ubicacion Origen +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("Calle1"); +// domicilioOrigen.setNumeroExterior("211"); +// domicilioOrigen.setNumeroInterior("212"); +// domicilioOrigen.setColoniaId("1957"); +// domicilioOrigen.setLocalidadId("13"); +// domicilioOrigen.setReferencia("casa blanca"); +// domicilioOrigen.setMunicipioId("011"); +// domicilioOrigen.setEstadoId("CMX"); +// domicilioOrigen.setPaisId("MEX"); +// domicilioOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("URE180429TM6"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("Calle2"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setNumeroInterior("215"); +// domicilioDestino.setColoniaId("0347"); +// domicilioDestino.setLocalidadId("23"); +// domicilioDestino.setReferencia("casa negra"); +// domicilioDestino.setMunicipioId("004"); +// domicilioDestino.setEstadoId("COA"); +// domicilioDestino.setPaisId("MEX"); +// domicilioDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("URE180429TM6"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("Calle1"); +// domicilioFigura.setNumeroExterior("NumeroExterior1"); +// domicilioFigura.setNumeroInterior("NumeroInterior1"); +// domicilioFigura.setColoniaId("Colonia1"); +// domicilioFigura.setLocalidadId("Localidad1"); +// domicilioFigura.setReferencia("Referencia1"); +// domicilioFigura.setMunicipioId("Municipio1"); +// domicilioFigura.setEstadoId("Estado1"); +// domicilioFigura.setPaisId("AFG"); +// domicilioFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("URE180429TM6"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte extranjero (salida) +// private void facturaIngresoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient (same as issuer for international) +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso autotransporte internacional aduanero (entrada con pedimento) +// private void facturaIngresoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// LocalDateTime currentDate = OptUtil.parseLocalDateTime(LocalDateTime.now().toString()); + +// // Tax credentials +// List taxCredentials = new ArrayList<>(); +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// taxCredentials.add(cer); +// taxCredentials.add(key); + +// // Issuer +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(taxCredentials); + +// // Recipient (same as issuer for international) +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); + +// // Items +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// List items = new ArrayList<>(); +// items.add(item); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (extranjero) +// Domicilio domicilioOrigen = new Domicilio(); +// domicilioOrigen.setCalle("ST"); +// domicilioOrigen.setNumeroExterior("214"); +// domicilioOrigen.setColoniaId("N/A"); +// domicilioOrigen.setReferencia("WHITE HOUSE"); +// domicilioOrigen.setMunicipioId("N/A"); +// domicilioOrigen.setEstadoId("TX"); +// domicilioOrigen.setPaisId("USA"); +// domicilioOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domicilioOrigen); + +// // Ubicacion Destino (extranjero) +// Domicilio domicilioDestino = new Domicilio(); +// domicilioDestino.setCalle("ST"); +// domicilioDestino.setNumeroExterior("214"); +// domicilioDestino.setColoniaId("N/A"); +// domicilioDestino.setReferencia("WHITE HOUSE"); +// domicilioDestino.setMunicipioId("N/A"); +// domicilioDestino.setEstadoId("TX"); +// domicilioDestino.setPaisId("USA"); +// domicilioDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domicilioDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero documentoAduanero = new DocumentoAduanero(); +// documentoAduanero.setTipoDocumentoId("01"); +// documentoAduanero.setNumPedimento("23 43 0472 8000448"); +// documentoAduanero.setRfcImpo("EKU9003173C9"); +// List documentosAduaneros = new ArrayList<>(); +// documentosAduaneros.add(documentoAduanero); + +// CantidadTransporta cantidadTransporta = new CantidadTransporta(); +// cantidadTransporta.setCantidad(new BigDecimal("1")); +// cantidadTransporta.setIdOrigen("OR101010"); +// cantidadTransporta.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(cantidadTransporta); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(documentosAduaneros); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura +// Domicilio domicilioFigura = new Domicilio(); +// domicilioFigura.setCalle("ST"); +// domicilioFigura.setNumeroExterior("214"); +// domicilioFigura.setColoniaId("N/A"); +// domicilioFigura.setReferencia("WHITE HOUSE"); +// domicilioFigura.setMunicipioId("N/A"); +// domicilioFigura.setEstadoId("TX"); +// domicilioFigura.setPaisId("USA"); +// domicilioFigura.setCodigoPostalId("N/A"); + +// TipoFigura tipoFigura = new TipoFigura(); +// tipoFigura.setTipoFiguraId("01"); +// tipoFigura.setRfcFigura("EKU9003173C9"); +// tipoFigura.setNumLicencia("NumLicencia1"); +// tipoFigura.setNombreFigura("NombreFigura1"); +// tipoFigura.setDomicilio(domicilioFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(tipoFigura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(currentDate); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario nacional +// private void facturaIngresoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario extranjero +// private void facturaIngresoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo nacional +// private void facturaIngresoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo extranjero (salida) +// private void facturaIngresoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte aereo internacional aduanero (entrada, IMD) +// private void facturaIngresoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo nacional +// private void facturaIngresoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo extranjero (salida) +// private void facturaIngresoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// ApiResponse apiResponse = client.getInvoiceService().create( +// buildInvoice(buildIssuerEKU(), buildRecipientEKU(), items, complement)); +// System.out.println(apiResponse); +// } + +// // Factura ingreso transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaIngresoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (EA0417 / Loreto, navegacionTrafico "Altura", CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, navegacionTrafico "Altura", COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// destino.setTipoEstacionId("02"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, tipoMateria, cvesTransporteId +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// ct.setCvesTransporteId("02"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("X1A"); +// detalle.setPesoBruto(new BigDecimal("1.50")); +// detalle.setPesoNeto(new BigDecimal("1.00")); +// detalle.setPesoTara(new BigDecimal("0.50")); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1.50")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (tipoFiguraId "01", numLicencia, AFG domicilio) +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("Calle1"); +// domFigura.setNumeroExterior("NumeroExterior1"); +// domFigura.setNumeroInterior("NumeroInterior1"); +// domFigura.setColoniaId("Colonia1"); +// domFigura.setLocalidadId("Localidad1"); +// domFigura.setReferencia("Referencia1"); +// domFigura.setMunicipioId("Municipio1"); +// domFigura.setEstadoId("Estado1"); +// domFigura.setPaisId("AFG"); +// domFigura.setCodigoPostalId("CodigoPosta1"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("CP3.1"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte nacional +// private void facturaTrasladoAutoTransporteNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (no station, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (no station, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (simplified, fechaCaducidad 2028-01-01, no formaFarmaceutica/condiciones/fraccion) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura (no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte extranjero (salida, EXD) +// private void facturaTrasladoAutoTransporteExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (tipoMateria, fraccionArancelaria, no detalleMercancia, no documentacionAduanera) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Factura traslado autotransporte internacional aduanero (entrada, IMD) +// private void facturaTrasladoAutoTransporteInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (foreign USA/TX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("ST"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setColoniaId("N/A"); +// domOrigen.setReferencia("WHITE HOUSE"); +// domOrigen.setMunicipioId("N/A"); +// domOrigen.setEstadoId("TX"); +// domOrigen.setPaisId("USA"); +// domOrigen.setCodigoPostalId("N/A"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("XEXX010101000"); +// origen.setNumRegIdTrib("01010101"); +// origen.setResidenciaFiscalId("USA"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (foreign USA/TX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("214"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("N/A"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDistanciaRecorrida(new BigDecimal("1")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, tipoMateria, fraccionArancelaria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2003-04-02T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setFormaFarmaceuticaId("01"); +// mercancia.setCondicionesEspTranspId("01"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setFraccionArancelariaId("6309000100"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // Autotransporte +// Remolque remolque = new Remolque(); +// remolque.setSubTipoRemId("CTR004"); +// remolque.setPlaca("VL45K98"); +// List remolques = new ArrayList<>(); +// remolques.add(remolque); + +// Autotransporte autotransporte = new Autotransporte(); +// autotransporte.setPermSCTId("TPAF01"); +// autotransporte.setNumPermisoSCT("NumPermisoSCT1"); +// autotransporte.setConfigVehicularId("VL"); +// autotransporte.setPesoBrutoVehicular(new BigDecimal("1")); +// autotransporte.setPlacaVM("plac892"); +// autotransporte.setAnioModeloVM(2020); +// autotransporte.setAseguraRespCivil("AseguraRespCivil"); +// autotransporte.setPolizaRespCivil("123456789"); +// autotransporte.setRemolques(remolques); + +// // TipoFigura with USA domicilio +// Domicilio domFigura = new Domicilio(); +// domFigura.setCalle("ST"); +// domFigura.setNumeroExterior("214"); +// domFigura.setColoniaId("N/A"); +// domFigura.setReferencia("WHITE HOUSE"); +// domFigura.setMunicipioId("N/A"); +// domFigura.setEstadoId("TX"); +// domFigura.setPaisId("USA"); +// domFigura.setCodigoPostalId("N/A"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("NumLicencia1"); +// figura.setNombreFigura("NombreFigura1"); +// figura.setDomicilio(domFigura); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("01"); +// cartaPorte.setTotalDistRec(new BigDecimal("1")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setLogisticaInversaRecoleccionDevolucionId("Sí"); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setAutotransporte(autotransporte); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("SerieCCP31"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse); +// } + +// // Ejemplo 17: Factura traslado transporte ferroviario nacional +// private void facturaTrasladoTransporteFerroviarioNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse17 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse17); +// } + +// // Ejemplo 18: Factura traslado transporte ferroviario extranjero +// private void facturaTrasladoTransporteFerroviarioExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (XEXX010101000, USA address) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("ST"); +// domDest5.setNumeroExterior("1234"); +// domDest5.setColoniaId("1234"); +// domDest5.setReferencia("WHITE HOUSE"); +// domDest5.setMunicipioId("1234"); +// domDest5.setEstadoId("TX"); +// domDest5.setPaisId("USA"); +// domDest5.setCodigoPostalId("12345"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("XEXX010101000"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumRegIdTrib("01010101"); +// dest5.setResidenciaFiscalId("USA"); +// dest5.setNumEstacionId("EF0001"); +// dest5.setNombreEstacion("NombreEstacion"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia (with tipoMateria) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse18 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse18); +// } + +// // Ejemplo 19: Factura traslado transporte ferroviario internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteFerroviarioInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicaciones: comunes + destino 5 (JM047/HUEHUETOCA, tipoEstacion "03", COA) +// List ubicaciones = buildUbicacionesFerroviarioComunes(); +// Domicilio domDest5 = new Domicilio(); +// domDest5.setCalle("Calle2"); +// domDest5.setNumeroExterior("214"); +// domDest5.setNumeroInterior("215"); +// domDest5.setColoniaId("0347"); +// domDest5.setLocalidadId("23"); +// domDest5.setReferencia("casa negra"); +// domDest5.setMunicipioId("004"); +// domDest5.setEstadoId("COA"); +// domDest5.setPaisId("MEX"); +// domDest5.setCodigoPostalId("25350"); + +// Ubicacion dest5 = new Ubicacion(); +// dest5.setTipoUbicacion("Destino"); +// dest5.setIdUbicacion("DE202025"); +// dest5.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest5.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest5.setNumEstacionId("JM047"); +// dest5.setNombreEstacion("HUEHUETOCA"); +// dest5.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T05:00:01")); +// dest5.setTipoEstacionId("03"); +// dest5.setDistanciaRecorrida(new BigDecimal("100.00")); +// dest5.setDomicilio(domDest5); +// ubicaciones.add(dest5); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202025"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("04"); +// cartaPorte.setTotalDistRec(new BigDecimal("500")); +// cartaPorte.setRegistroISTMOId("Sí"); +// cartaPorte.setUbicacionPoloOrigenId("01"); +// cartaPorte.setUbicacionPoloDestinoId("01"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteFerroviario(buildTransporteFerroviario()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse19 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse19); +// } + +// // Ejemplo 20: Factura traslado transporte aereo nacional +// private void facturaTrasladoTransporteAereoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Origen (aeropuerto EA0417, Loreto) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Destino (aeropuerto EA0418, Los Cabos) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia (with valorMercancia and monedaId) +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TransporteAereo +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); + +// // TipoFigura (tipoFiguraId "01", numLicencia, no partesTransporte) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(transporteAereo); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse20 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse20); +// } + +// // Ejemplo 21: Factura traslado transporte aereo extranjero (salida, EXD) +// private void facturaTrasladoTransporteAereoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, COA/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle2"); +// domOrigen.setNumeroExterior("214"); +// domOrigen.setNumeroInterior("215"); +// domOrigen.setColoniaId("0347"); +// domOrigen.setLocalidadId("23"); +// domOrigen.setReferencia("casa negra"); +// domOrigen.setMunicipioId("004"); +// domOrigen.setEstadoId("COA"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("25350"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0143 / Phoenix-Mesa Gateway, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12344"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("WHITE HOUSE"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("EA0143"); +// destino.setNombreEstacion("Phoenix-Mesa Gateway"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse21 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse21); +// } + +// // Ejemplo 22: Factura traslado transporte aereo internacional aduanero (entrada, IMD) +// private void facturaTrasladoTransporteAereoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (EA0417 / Loreto, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("EA0417"); +// origen.setNombreEstacion("Loreto"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (EA0418 / Los Cabos, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("EA0418"); +// destino.setNombreEstacion("Los Cabos"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia con documentacion aduanera y tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // TipoFigura (operador, licencia, no partesTransporte, no domicilio) +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("01"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNumLicencia("a234567890"); +// figura.setNombreFigura("NombreFigura"); +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("03"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("10")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteAereo(buildTransporteAereoCP()); +// cartaPorte.setTiposFigura(tiposFigura); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse22 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse22); +// } + +// // Ejemplo 23: Factura traslado transporte maritimo nacional +// private void facturaTrasladoTransporteMaritimoNacional(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("No"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse23 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse23); +// } + +// // Ejemplo 24: Factura traslado transporte maritimo extranjero (salida, EXD) +// private void facturaTrasladoTransporteMaritimoExtranjero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero +// RegimenAduanero regimenAduanero = new RegimenAduanero(); +// regimenAduanero.setRegimenAduaneroId("EXD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM120 / NombreEstacion, USA/TX — foreign) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("ST"); +// domDestino.setNumeroExterior("12345"); +// domDestino.setColoniaId("N/A"); +// domDestino.setReferencia("N/A"); +// domDestino.setMunicipioId("N/A"); +// domDestino.setEstadoId("TX"); +// domDestino.setPaisId("USA"); +// domDestino.setCodigoPostalId("12345"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("XEXX010101000"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumRegIdTrib("01010101"); +// destino.setResidenciaFiscalId("USA"); +// destino.setNumEstacionId("PM120"); +// destino.setNombreEstacion("NombreEstacion"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with detalleMercancia and tipoMateria +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Salida"); +// cartaPorte.setPaisOrigenDestinoId("USA"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse24 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse24); +// } + +// // Ejemplo 25: Factura traslado transporte maritimo internacional aduanero (entrada, IMD x2) +// private void facturaTrasladoTransporteMaritimoInternacionalAduanero(FiscalApiSettings settings) { +// FiscalApiClient client = FiscalApiClient.create(settings); +// List items = new ArrayList<>(); +// items.add(buildStandardItem()); + +// // Regimen aduanero (two IMD entries) +// RegimenAduanero regimenAduanero1 = new RegimenAduanero(); +// regimenAduanero1.setRegimenAduaneroId("IMD"); +// RegimenAduanero regimenAduanero2 = new RegimenAduanero(); +// regimenAduanero2.setRegimenAduaneroId("IMD"); +// List regimenAduaneros = new ArrayList<>(); +// regimenAduaneros.add(regimenAduanero1); +// regimenAduaneros.add(regimenAduanero2); + +// // Ubicacion Origen (PM001 / Rosarito, CMX/MEX) +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("PM001"); +// origen.setNombreEstacion("Rosarito"); +// origen.setNavegacionTraficoId("Altura"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// // Ubicacion Destino (PM001 / Rosarito, COA/MEX) +// Domicilio domDestino = new Domicilio(); +// domDestino.setCalle("Calle2"); +// domDestino.setNumeroExterior("214"); +// domDestino.setNumeroInterior("215"); +// domDestino.setColoniaId("0347"); +// domDestino.setLocalidadId("23"); +// domDestino.setReferencia("casa negra"); +// domDestino.setMunicipioId("004"); +// domDestino.setEstadoId("COA"); +// domDestino.setPaisId("MEX"); +// domDestino.setCodigoPostalId("25350"); + +// Ubicacion destino = new Ubicacion(); +// destino.setTipoUbicacion("Destino"); +// destino.setIdUbicacion("DE202020"); +// destino.setRfcRemitenteDestinatario("EKU9003173C9"); +// destino.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// destino.setNumEstacionId("PM001"); +// destino.setNombreEstacion("Rosarito"); +// destino.setNavegacionTraficoId("Altura"); +// destino.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:01")); +// destino.setTipoEstacionId("03"); +// destino.setDomicilio(domDestino); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(destino); + +// // Mercancia with documentacionAduanera, detalleMercancia, and tipoMateria +// DocumentoAduanero doc = new DocumentoAduanero(); +// doc.setTipoDocumentoId("01"); +// doc.setNumPedimento("23 43 0472 8000448"); +// doc.setRfcImpo("EKU9003173C9"); +// List docs = new ArrayList<>(); +// docs.add(doc); + +// CantidadTransporta ct = new CantidadTransporta(); +// ct.setCantidad(new BigDecimal("1")); +// ct.setIdOrigen("OR101010"); +// ct.setIdDestino("DE202020"); +// List cantTransList = new ArrayList<>(); +// cantTransList.add(ct); + +// DetalleMercancia detalle = new DetalleMercancia(); +// detalle.setUnidadPesoMercId("Tu"); +// detalle.setPesoBruto(new BigDecimal("1")); +// detalle.setPesoNeto(new BigDecimal("1")); +// detalle.setPesoTara(new BigDecimal("0.001")); +// detalle.setNumPiezas(1); + +// Mercancia mercancia = new Mercancia(); +// mercancia.setBienesTranspId("11121900"); +// mercancia.setDescripcion("Accesorios de equipo de telefonía"); +// mercancia.setCantidad(new BigDecimal("1.0")); +// mercancia.setClaveUnidadId("XBX"); +// mercancia.setMaterialPeligrosoId("No"); +// mercancia.setDenominacionGenericaProd("DenominacionGenericaProd1"); +// mercancia.setDenominacionDistintivaProd("DenominacionDistintivaProd1"); +// mercancia.setFabricante("Fabricante1"); +// mercancia.setFechaCaducidad(LocalDateTime.parse("2028-01-01T00:00:00")); +// mercancia.setLoteMedicamento("LoteMedic1"); +// mercancia.setRegistroSanitarioFolioAutorizacion("RegistroSanita1"); +// mercancia.setPesoEnKg(new BigDecimal("1")); +// mercancia.setValorMercancia(new BigDecimal("100")); +// mercancia.setMonedaId("MXN"); +// mercancia.setTipoMateriaId("05"); +// mercancia.setDescripcionMateria("otramateria"); +// mercancia.setDocumentacionAduanera(docs); +// mercancia.setCantidadTransporta(cantTransList); +// mercancia.setDetalleMercancia(detalle); +// List mercancias = new ArrayList<>(); +// mercancias.add(mercancia); + +// // CartaPorte +// CartaPorte cartaPorte = new CartaPorte(); +// cartaPorte.setTranspInternacId("Sí"); +// cartaPorte.setEntradaSalidaMercId("Entrada"); +// cartaPorte.setPaisOrigenDestinoId("AFG"); +// cartaPorte.setViaEntradaSalidaId("02"); +// cartaPorte.setUnidadPesoId("XBX"); +// cartaPorte.setPesoNetoTotal(new BigDecimal("1")); +// cartaPorte.setRegimenAduaneros(regimenAduaneros); +// cartaPorte.setUbicaciones(ubicaciones); +// cartaPorte.setMercancias(mercancias); +// cartaPorte.setTransporteMaritimo(buildTransporteMaritimo()); +// cartaPorte.setTiposFigura(buildTiposFiguraFerroviario()); + +// Complement complement = new Complement(); +// complement.setCartaPorte(cartaPorte); + +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setCurrencyCode("XXX"); +// invoice.setTypeCode("T"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(buildIssuerEKU()); +// invoice.setRecipient(buildRecipientEKU()); +// invoice.setItems(items); +// invoice.setComplement(complement); + +// ApiResponse apiResponse25 = client.getInvoiceService().create(invoice); +// System.out.println(apiResponse25); +// } + +// // ── Helper methods ────────────────────────────────────────────────────────── + +// private List buildTaxCredentials() { +// TaxCredential cer = new TaxCredential(); +// cer.setBase64File(escuelaKemperUrgateBase64Cer); +// cer.setFileType(0); +// cer.setPassword(password); +// TaxCredential key = new TaxCredential(); +// key.setBase64File(escuelaKemperUrgateBase64Key); +// key.setFileType(1); +// key.setPassword(password); +// List credentials = new ArrayList<>(); +// credentials.add(cer); +// credentials.add(key); +// return credentials; +// } + +// private InvoiceIssuer buildIssuerEKU() { +// InvoiceIssuer issuer = new InvoiceIssuer(); +// issuer.setTin("EKU9003173C9"); +// issuer.setLegalName("ESCUELA KEMPER URGATE"); +// issuer.setTaxRegimeCode("601"); +// issuer.setTaxCredentials(buildTaxCredentials()); +// return issuer; +// } + +// private InvoiceRecipient buildRecipientEKU() { +// InvoiceRecipient recipient = new InvoiceRecipient(); +// recipient.setTin("EKU9003173C9"); +// recipient.setLegalName("ESCUELA KEMPER URGATE"); +// recipient.setZipCode("42501"); +// recipient.setTaxRegimeCode("601"); +// recipient.setCfdiUseCode("S01"); +// return recipient; +// } + +// private InvoiceItem buildStandardItem() { +// InvoiceItem item = new InvoiceItem(); +// item.setItemCode("78101800"); +// item.setItemSku("UT421511"); +// item.setQuantity(new BigDecimal("1")); +// item.setUnitOfMeasurementCode("H87"); +// item.setDescription("Transporte de carga por carretera"); +// item.setUnitPrice(new BigDecimal("100.00")); +// item.setDiscount(new BigDecimal("0")); +// item.setTaxObjectCode("01"); +// item.setItemTaxes(new ArrayList<>()); +// return item; +// } + +// private Invoice buildInvoice(InvoiceIssuer issuer, InvoiceRecipient recipient, +// List items, Complement complement) { +// Invoice invoice = new Invoice(); +// invoice.setVersionCode("4.0"); +// invoice.setPaymentFormCode("01"); +// invoice.setPaymentMethodCode("PUE"); +// invoice.setCurrencyCode("MXN"); +// invoice.setTypeCode("I"); +// invoice.setExpeditionZipCode("42501"); +// invoice.setSeries("Serie"); +// invoice.setDate(OptUtil.parseLocalDateTime(LocalDateTime.now().toString())); +// invoice.setExchangeRate(new BigDecimal("1")); +// invoice.setExportCode("01"); +// invoice.setIssuer(issuer); +// invoice.setRecipient(recipient); +// invoice.setItems(items); +// invoice.setComplement(complement); +// return invoice; +// } + +// private TransporteAereo buildTransporteAereoCP() { +// TransporteAereo transporteAereo = new TransporteAereo(); +// transporteAereo.setPermSCTId("TPAF01"); +// transporteAereo.setNumPermisoSCT("Demo"); +// transporteAereo.setMatriculaAeronave("61E5-WZ"); +// transporteAereo.setNombreAseg("NombreAseg"); +// transporteAereo.setNumPolizaSeguro("NumPolizaSeguro"); +// transporteAereo.setNumeroGuia("acUbYlBVTmlzx"); +// transporteAereo.setLugarContrato("LugarContrato"); +// transporteAereo.setCodigoTransportistaId("CA001"); +// transporteAereo.setRfcEmbarcador("EKU9003173C9"); +// transporteAereo.setNombreEmbarcador("Embarcador"); +// return transporteAereo; +// } + +// private TransporteMaritimo buildTransporteMaritimo() { +// TransporteMaritimo.RemolqueCCP remolqueCCP = new TransporteMaritimo.RemolqueCCP(); +// remolqueCCP.setSubTipoRemCCPId("CTR001"); +// remolqueCCP.setPlacaCCP("JNG7636"); +// List remolquesCCP = new ArrayList<>(); +// remolquesCCP.add(remolqueCCP); + +// TransporteMaritimo.ContenedorMaritimo contenedor = new TransporteMaritimo.ContenedorMaritimo(); +// contenedor.setTipoContenedorId("CM011"); +// contenedor.setIdCCPRelacionado("CCCBCD94-870A-4332-A52A-A52AA52AA52A"); +// contenedor.setPlacaVMCCP("JNG7683"); +// contenedor.setFechaCertificacionCCP("2024-06-20T11:11:00"); +// contenedor.setRemolquesCCP(remolquesCCP); +// List contenedores = new ArrayList<>(); +// contenedores.add(contenedor); + +// TransporteMaritimo maritimo = new TransporteMaritimo(); +// maritimo.setPermSCTId("TPAF01"); +// maritimo.setNumPermisoSCT("NumPermisoSCT1"); +// maritimo.setNombreAseg("NombreAseg1"); +// maritimo.setNumPolizaSeguro("NumPolizaSeguro1"); +// maritimo.setTipoEmbarcacionId("B01"); +// maritimo.setMatricula("Matricula1"); +// maritimo.setNumeroOMI("IMO1234567"); +// maritimo.setAnioEmbarcacion(2003); +// maritimo.setNombreEmbarc("NombreEmbarc1"); +// maritimo.setNacionalidadEmbarcId("AFG"); +// maritimo.setUnidadesDeArqBruto(new BigDecimal("0.001")); +// maritimo.setTipoCargaId("CGS"); +// maritimo.setEslora(new BigDecimal("0.01")); +// maritimo.setManga(new BigDecimal("0.01")); +// maritimo.setCalado(new BigDecimal("0.01")); +// maritimo.setPuntal(new BigDecimal("0.01")); +// maritimo.setLineaNaviera("LineaNaviera1"); +// maritimo.setNombreAgenteNaviero("NombreAgenteNaviero1"); +// maritimo.setNumAutorizacionNavieroId("ANC001/2022"); +// maritimo.setNumViaje("NumViaje1"); +// maritimo.setNumConocEmbarc("NumConocEmbarc1"); +// maritimo.setPermisoTempNavegacion("PermisoTempNavegac1"); +// maritimo.setContenedores(contenedores); +// return maritimo; +// } + +// private TransporteFerroviario buildTransporteFerroviario() { +// TransporteFerroviario.DerechoDePaso derecho = new TransporteFerroviario.DerechoDePaso(); +// derecho.setTipoDerechoDePasoId("CDP114"); +// derecho.setKilometrajePagado(new BigDecimal("100")); +// List derechos = new ArrayList<>(); +// derechos.add(derecho); + +// TransporteFerroviario.Carro carro = new TransporteFerroviario.Carro(); +// carro.setTipoCarroId("TC08"); +// carro.setMatriculaCarro("A00012"); +// carro.setGuiaCarro("123ASD"); +// carro.setToneladasNetasCarro(new BigDecimal("10")); +// List carros = new ArrayList<>(); +// carros.add(carro); + +// TransporteFerroviario transporte = new TransporteFerroviario(); +// transporte.setTipoDeServicioId("TS01"); +// transporte.setTipoDeTraficoId("TT01"); +// transporte.setDerechosDePaso(derechos); +// transporte.setCarros(carros); +// return transporte; +// } + +// private List buildTiposFiguraFerroviario() { +// ParteTransporte parte = new ParteTransporte(); +// parte.setParteTransporteId("PT02"); +// List partes = new ArrayList<>(); +// partes.add(parte); + +// Domicilio domicilio = new Domicilio(); +// domicilio.setCalle("calle"); +// domicilio.setNumeroExterior("211"); +// domicilio.setColoniaId("0814"); +// domicilio.setLocalidadId("01"); +// domicilio.setReferencia("casa blanca"); +// domicilio.setMunicipioId("010"); +// domicilio.setEstadoId("ZAC"); +// domicilio.setPaisId("MEX"); +// domicilio.setCodigoPostalId("99080"); + +// TipoFigura figura = new TipoFigura(); +// figura.setTipoFiguraId("02"); +// figura.setRfcFigura("EKU9003173C9"); +// figura.setNombreFigura("NombreFigura"); +// figura.setPartesTransporte(partes); +// figura.setDomicilio(domicilio); + +// List tiposFigura = new ArrayList<>(); +// tiposFigura.add(figura); +// return tiposFigura; +// } + +// private List buildUbicacionesFerroviarioComunes() { +// Domicilio domOrigen = new Domicilio(); +// domOrigen.setCalle("Calle1"); +// domOrigen.setNumeroExterior("211"); +// domOrigen.setNumeroInterior("212"); +// domOrigen.setColoniaId("1957"); +// domOrigen.setLocalidadId("13"); +// domOrigen.setReferencia("casa blanca"); +// domOrigen.setMunicipioId("011"); +// domOrigen.setEstadoId("CMX"); +// domOrigen.setPaisId("MEX"); +// domOrigen.setCodigoPostalId("13250"); + +// Ubicacion origen = new Ubicacion(); +// origen.setTipoUbicacion("Origen"); +// origen.setIdUbicacion("OR101010"); +// origen.setRfcRemitenteDestinatario("EKU9003173C9"); +// origen.setNombreRemitenteDestinatario("NombreRemitenteDestinatario1"); +// origen.setNumEstacionId("Q0736"); +// origen.setNombreEstacion("SANTO NINO"); +// origen.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T00:00:00")); +// origen.setTipoEstacionId("01"); +// origen.setDomicilio(domOrigen); + +// Ubicacion dest1 = new Ubicacion(); +// dest1.setTipoUbicacion("Destino"); +// dest1.setIdUbicacion("DE202021"); +// dest1.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest1.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest1.setNumEstacionId("SC283"); +// dest1.setNombreEstacion("HUAXTITLA"); +// dest1.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T01:00:01")); +// dest1.setTipoEstacionId("02"); +// dest1.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest2 = new Ubicacion(); +// dest2.setTipoUbicacion("Destino"); +// dest2.setIdUbicacion("DE202022"); +// dest2.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest2.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest2.setNumEstacionId("TG0"); +// dest2.setNombreEstacion("NAVOJOA"); +// dest2.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T02:00:01")); +// dest2.setTipoEstacionId("02"); +// dest2.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest3 = new Ubicacion(); +// dest3.setTipoUbicacion("Destino"); +// dest3.setIdUbicacion("DE202023"); +// dest3.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest3.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest3.setNumEstacionId("E0029"); +// dest3.setNombreEstacion("TRES JAGUEYES"); +// dest3.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T03:00:01")); +// dest3.setTipoEstacionId("02"); +// dest3.setDistanciaRecorrida(new BigDecimal("100.00")); + +// Ubicacion dest4 = new Ubicacion(); +// dest4.setTipoUbicacion("Destino"); +// dest4.setIdUbicacion("DE202024"); +// dest4.setRfcRemitenteDestinatario("EKU9003173C9"); +// dest4.setNombreRemitenteDestinatario("NombreRemitenteDestinatario2"); +// dest4.setNumEstacionId("TI032"); +// dest4.setNombreEstacion("NAVOLATO"); +// dest4.setFechaHoraSalidaLlegada(LocalDateTime.parse("2023-08-01T04:00:01")); +// dest4.setTipoEstacionId("02"); +// dest4.setDistanciaRecorrida(new BigDecimal("100.00")); + +// List ubicaciones = new ArrayList<>(); +// ubicaciones.add(origen); +// ubicaciones.add(dest1); +// ubicaciones.add(dest2); +// ubicaciones.add(dest3); +// ubicaciones.add(dest4); +// return ubicaciones; +// } +// } diff --git a/src/main/java/com/fiscalapi/Examples.java b/src/main/java/com/fiscalapi/examples/Examples.java similarity index 99% rename from src/main/java/com/fiscalapi/Examples.java rename to src/main/java/com/fiscalapi/examples/Examples.java index a697aca..f16c038 100644 --- a/src/main/java/com/fiscalapi/Examples.java +++ b/src/main/java/com/fiscalapi/examples/Examples.java @@ -1,4 +1,4 @@ -package com.fiscalapi; +package com.fiscalapi.examples; //package com.fiscalapi; // diff --git a/src/main/java/com/fiscalapi/models/invoicing/Complement.java b/src/main/java/com/fiscalapi/models/invoicing/Complement.java index a6295cb..34c1ee6 100644 --- a/src/main/java/com/fiscalapi/models/invoicing/Complement.java +++ b/src/main/java/com/fiscalapi/models/invoicing/Complement.java @@ -1,5 +1,6 @@ package com.fiscalapi.models.invoicing; +import com.fiscalapi.models.invoicing.billOfLading.CartaPorte; import com.fiscalapi.models.invoicing.localTaxes.LocalTaxes; import com.fiscalapi.models.invoicing.paymentComplement.InvoicePayment; import com.fiscalapi.models.invoicing.payroll.Payroll; @@ -8,6 +9,7 @@ public class Complement { private Payroll payroll; private InvoicePayment payment; private LocalTaxes localTaxes; + private CartaPorte cartaPorte; public Payroll getPayroll() { return payroll; @@ -32,4 +34,12 @@ public LocalTaxes getLocalTaxes() { public void setLocalTaxes(LocalTaxes localTaxes) { this.localTaxes = localTaxes; } + + public CartaPorte getCartaPorte() { + return cartaPorte; + } + + public void setCartaPorte(CartaPorte cartaPorte) { + this.cartaPorte = cartaPorte; + } } diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java new file mode 100644 index 0000000..625b222 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Autotransporte.java @@ -0,0 +1,94 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class Autotransporte { + private String permSCTId; + private String numPermisoSCT; + private String configVehicularId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoBrutoVehicular; + + private String placaVM; + private int anioModeloVM; + private String aseguraRespCivil; + private String polizaRespCivil; + private List remolques; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getConfigVehicularId() { + return configVehicularId; + } + + public void setConfigVehicularId(String configVehicularId) { + this.configVehicularId = configVehicularId; + } + + public BigDecimal getPesoBrutoVehicular() { + return pesoBrutoVehicular; + } + + public void setPesoBrutoVehicular(BigDecimal pesoBrutoVehicular) { + this.pesoBrutoVehicular = pesoBrutoVehicular; + } + + public String getPlacaVM() { + return placaVM; + } + + public void setPlacaVM(String placaVM) { + this.placaVM = placaVM; + } + + public int getAnioModeloVM() { + return anioModeloVM; + } + + public void setAnioModeloVM(int anioModeloVM) { + this.anioModeloVM = anioModeloVM; + } + + public String getAseguraRespCivil() { + return aseguraRespCivil; + } + + public void setAseguraRespCivil(String aseguraRespCivil) { + this.aseguraRespCivil = aseguraRespCivil; + } + + public String getPolizaRespCivil() { + return polizaRespCivil; + } + + public void setPolizaRespCivil(String polizaRespCivil) { + this.polizaRespCivil = polizaRespCivil; + } + + public List getRemolques() { + return remolques; + } + + public void setRemolques(List remolques) { + this.remolques = remolques; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java new file mode 100644 index 0000000..d73e35a --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CantidadTransporta.java @@ -0,0 +1,47 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class CantidadTransporta { + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal cantidad; + + private String idOrigen; + private String idDestino; + private String cvesTransporteId; + + public BigDecimal getCantidad() { + return cantidad; + } + + public void setCantidad(BigDecimal cantidad) { + this.cantidad = cantidad; + } + + public String getIdOrigen() { + return idOrigen; + } + + public void setIdOrigen(String idOrigen) { + this.idOrigen = idOrigen; + } + + public String getIdDestino() { + return idDestino; + } + + public void setIdDestino(String idDestino) { + this.idDestino = idDestino; + } + + public String getCvesTransporteId() { + return cvesTransporteId; + } + + public void setCvesTransporteId(String cvesTransporteId) { + this.cvesTransporteId = cvesTransporteId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java new file mode 100644 index 0000000..0d70d70 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/CartaPorte.java @@ -0,0 +1,186 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class CartaPorte { + private String transpInternacId; + private String entradaSalidaMercId; + private String paisOrigenDestinoId; + private String viaEntradaSalidaId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal totalDistRec; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoTotal; + + private String registroISTMOId; + private String ubicacionPoloOrigenId; + private String ubicacionPoloDestinoId; + private String unidadPesoId; + private String logisticaInversaRecoleccionDevolucionId; + private List regimenAduaneros; + private List ubicaciones; + private List mercancias; + private Autotransporte autotransporte; + private TransporteMaritimo transporteMaritimo; + private TransporteAereo transporteAereo; + private TransporteFerroviario transporteFerroviario; + private List tiposFigura; + + public String getTranspInternacId() { + return transpInternacId; + } + + public void setTranspInternacId(String transpInternacId) { + this.transpInternacId = transpInternacId; + } + + public String getEntradaSalidaMercId() { + return entradaSalidaMercId; + } + + public void setEntradaSalidaMercId(String entradaSalidaMercId) { + this.entradaSalidaMercId = entradaSalidaMercId; + } + + public String getPaisOrigenDestinoId() { + return paisOrigenDestinoId; + } + + public void setPaisOrigenDestinoId(String paisOrigenDestinoId) { + this.paisOrigenDestinoId = paisOrigenDestinoId; + } + + public String getViaEntradaSalidaId() { + return viaEntradaSalidaId; + } + + public void setViaEntradaSalidaId(String viaEntradaSalidaId) { + this.viaEntradaSalidaId = viaEntradaSalidaId; + } + + public BigDecimal getTotalDistRec() { + return totalDistRec; + } + + public void setTotalDistRec(BigDecimal totalDistRec) { + this.totalDistRec = totalDistRec; + } + + public BigDecimal getPesoNetoTotal() { + return pesoNetoTotal; + } + + public void setPesoNetoTotal(BigDecimal pesoNetoTotal) { + this.pesoNetoTotal = pesoNetoTotal; + } + + public String getRegistroISTMOId() { + return registroISTMOId; + } + + public void setRegistroISTMOId(String registroISTMOId) { + this.registroISTMOId = registroISTMOId; + } + + public String getUbicacionPoloOrigenId() { + return ubicacionPoloOrigenId; + } + + public void setUbicacionPoloOrigenId(String ubicacionPoloOrigenId) { + this.ubicacionPoloOrigenId = ubicacionPoloOrigenId; + } + + public String getUbicacionPoloDestinoId() { + return ubicacionPoloDestinoId; + } + + public void setUbicacionPoloDestinoId(String ubicacionPoloDestinoId) { + this.ubicacionPoloDestinoId = ubicacionPoloDestinoId; + } + + public String getUnidadPesoId() { + return unidadPesoId; + } + + public void setUnidadPesoId(String unidadPesoId) { + this.unidadPesoId = unidadPesoId; + } + + public String getLogisticaInversaRecoleccionDevolucionId() { + return logisticaInversaRecoleccionDevolucionId; + } + + public void setLogisticaInversaRecoleccionDevolucionId(String logisticaInversaRecoleccionDevolucionId) { + this.logisticaInversaRecoleccionDevolucionId = logisticaInversaRecoleccionDevolucionId; + } + + public List getRegimenAduaneros() { + return regimenAduaneros; + } + + public void setRegimenAduaneros(List regimenAduaneros) { + this.regimenAduaneros = regimenAduaneros; + } + + public List getUbicaciones() { + return ubicaciones; + } + + public void setUbicaciones(List ubicaciones) { + this.ubicaciones = ubicaciones; + } + + public List getMercancias() { + return mercancias; + } + + public void setMercancias(List mercancias) { + this.mercancias = mercancias; + } + + public Autotransporte getAutotransporte() { + return autotransporte; + } + + public void setAutotransporte(Autotransporte autotransporte) { + this.autotransporte = autotransporte; + } + + public TransporteMaritimo getTransporteMaritimo() { + return transporteMaritimo; + } + + public void setTransporteMaritimo(TransporteMaritimo transporteMaritimo) { + this.transporteMaritimo = transporteMaritimo; + } + + public TransporteAereo getTransporteAereo() { + return transporteAereo; + } + + public void setTransporteAereo(TransporteAereo transporteAereo) { + this.transporteAereo = transporteAereo; + } + + public TransporteFerroviario getTransporteFerroviario() { + return transporteFerroviario; + } + + public void setTransporteFerroviario(TransporteFerroviario transporteFerroviario) { + this.transporteFerroviario = transporteFerroviario; + } + + public List getTiposFigura() { + return tiposFigura; + } + + public void setTiposFigura(List tiposFigura) { + this.tiposFigura = tiposFigura; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java new file mode 100644 index 0000000..61be0c4 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DetalleMercancia.java @@ -0,0 +1,61 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; + +public class DetalleMercancia { + private String unidadPesoMercId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoBruto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNeto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoTara; + + private Integer numPiezas = null; + + public String getUnidadPesoMercId() { + return unidadPesoMercId; + } + + public void setUnidadPesoMercId(String unidadPesoMercId) { + this.unidadPesoMercId = unidadPesoMercId; + } + + public BigDecimal getPesoBruto() { + return pesoBruto; + } + + public void setPesoBruto(BigDecimal pesoBruto) { + this.pesoBruto = pesoBruto; + } + + public BigDecimal getPesoNeto() { + return pesoNeto; + } + + public void setPesoNeto(BigDecimal pesoNeto) { + this.pesoNeto = pesoNeto; + } + + public BigDecimal getPesoTara() { + return pesoTara; + } + + public void setPesoTara(BigDecimal pesoTara) { + this.pesoTara = pesoTara; + } + + public Integer getNumPiezas() { + return numPiezas; + } + + public void setNumPiezas(Integer numPiezas) { + this.numPiezas = numPiezas; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java new file mode 100644 index 0000000..7d86004 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/DocumentoAduanero.java @@ -0,0 +1,31 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class DocumentoAduanero { + private String tipoDocumentoId; + private String numPedimento; + private String rfcImpo; + + public String getTipoDocumentoId() { + return tipoDocumentoId; + } + + public void setTipoDocumentoId(String tipoDocumentoId) { + this.tipoDocumentoId = tipoDocumentoId; + } + + public String getNumPedimento() { + return numPedimento; + } + + public void setNumPedimento(String numPedimento) { + this.numPedimento = numPedimento; + } + + public String getRfcImpo() { + return rfcImpo; + } + + public void setRfcImpo(String rfcImpo) { + this.rfcImpo = rfcImpo; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java new file mode 100644 index 0000000..261b786 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Domicilio.java @@ -0,0 +1,94 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class Domicilio { + private String calle; + private String numeroExterior; + private String numeroInterior; + private String coloniaId; + private String localidadId; + private String referencia; + private String municipioId; + private String estadoId; + private String paisId; + private String codigoPostalId; + + public String getCalle() { + return calle; + } + + public void setCalle(String calle) { + this.calle = calle; + } + + public String getNumeroExterior() { + return numeroExterior; + } + + public void setNumeroExterior(String numeroExterior) { + this.numeroExterior = numeroExterior; + } + + public String getNumeroInterior() { + return numeroInterior; + } + + public void setNumeroInterior(String numeroInterior) { + this.numeroInterior = numeroInterior; + } + + public String getColoniaId() { + return coloniaId; + } + + public void setColoniaId(String coloniaId) { + this.coloniaId = coloniaId; + } + + public String getLocalidadId() { + return localidadId; + } + + public void setLocalidadId(String localidadId) { + this.localidadId = localidadId; + } + + public String getReferencia() { + return referencia; + } + + public void setReferencia(String referencia) { + this.referencia = referencia; + } + + public String getMunicipioId() { + return municipioId; + } + + public void setMunicipioId(String municipioId) { + this.municipioId = municipioId; + } + + public String getEstadoId() { + return estadoId; + } + + public void setEstadoId(String estadoId) { + this.estadoId = estadoId; + } + + public String getPaisId() { + return paisId; + } + + public void setPaisId(String paisId) { + this.paisId = paisId; + } + + public String getCodigoPostalId() { + return codigoPostalId; + } + + public void setCodigoPostalId(String codigoPostalId) { + this.codigoPostalId = codigoPostalId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java new file mode 100644 index 0000000..ce62b66 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Mercancia.java @@ -0,0 +1,227 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.time.LocalDateTime; +import java.util.List; + +public class Mercancia { + private String bienesTranspId; + private String descripcion; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal cantidad; + + private String claveUnidadId; + private String materialPeligrosoId; + private String denominacionGenericaProd; + private String denominacionDistintivaProd; + private String fabricante; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaCaducidad; + + private String loteMedicamento; + private String formaFarmaceuticaId; + private String condicionesEspTranspId; + private String registroSanitarioFolioAutorizacion; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoEnKg; + + private String fraccionArancelariaId; + private String tipoMateriaId; + private String descripcionMateria; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal valorMercancia = null; + + private String monedaId; + private List documentacionAduanera; + private List cantidadTransporta; + private DetalleMercancia detalleMercancia; + + public String getBienesTranspId() { + return bienesTranspId; + } + + public void setBienesTranspId(String bienesTranspId) { + this.bienesTranspId = bienesTranspId; + } + + public String getDescripcion() { + return descripcion; + } + + public void setDescripcion(String descripcion) { + this.descripcion = descripcion; + } + + public BigDecimal getCantidad() { + return cantidad; + } + + public void setCantidad(BigDecimal cantidad) { + this.cantidad = cantidad; + } + + public String getClaveUnidadId() { + return claveUnidadId; + } + + public void setClaveUnidadId(String claveUnidadId) { + this.claveUnidadId = claveUnidadId; + } + + public String getMaterialPeligrosoId() { + return materialPeligrosoId; + } + + public void setMaterialPeligrosoId(String materialPeligrosoId) { + this.materialPeligrosoId = materialPeligrosoId; + } + + public String getDenominacionGenericaProd() { + return denominacionGenericaProd; + } + + public void setDenominacionGenericaProd(String denominacionGenericaProd) { + this.denominacionGenericaProd = denominacionGenericaProd; + } + + public String getDenominacionDistintivaProd() { + return denominacionDistintivaProd; + } + + public void setDenominacionDistintivaProd(String denominacionDistintivaProd) { + this.denominacionDistintivaProd = denominacionDistintivaProd; + } + + public String getFabricante() { + return fabricante; + } + + public void setFabricante(String fabricante) { + this.fabricante = fabricante; + } + + public LocalDateTime getFechaCaducidad() { + return fechaCaducidad; + } + + public void setFechaCaducidad(LocalDateTime fechaCaducidad) { + this.fechaCaducidad = fechaCaducidad; + } + + public String getLoteMedicamento() { + return loteMedicamento; + } + + public void setLoteMedicamento(String loteMedicamento) { + this.loteMedicamento = loteMedicamento; + } + + public String getFormaFarmaceuticaId() { + return formaFarmaceuticaId; + } + + public void setFormaFarmaceuticaId(String formaFarmaceuticaId) { + this.formaFarmaceuticaId = formaFarmaceuticaId; + } + + public String getCondicionesEspTranspId() { + return condicionesEspTranspId; + } + + public void setCondicionesEspTranspId(String condicionesEspTranspId) { + this.condicionesEspTranspId = condicionesEspTranspId; + } + + public String getRegistroSanitarioFolioAutorizacion() { + return registroSanitarioFolioAutorizacion; + } + + public void setRegistroSanitarioFolioAutorizacion(String registroSanitarioFolioAutorizacion) { + this.registroSanitarioFolioAutorizacion = registroSanitarioFolioAutorizacion; + } + + public BigDecimal getPesoEnKg() { + return pesoEnKg; + } + + public void setPesoEnKg(BigDecimal pesoEnKg) { + this.pesoEnKg = pesoEnKg; + } + + public String getFraccionArancelariaId() { + return fraccionArancelariaId; + } + + public void setFraccionArancelariaId(String fraccionArancelariaId) { + this.fraccionArancelariaId = fraccionArancelariaId; + } + + public String getTipoMateriaId() { + return tipoMateriaId; + } + + public void setTipoMateriaId(String tipoMateriaId) { + this.tipoMateriaId = tipoMateriaId; + } + + public String getDescripcionMateria() { + return descripcionMateria; + } + + public void setDescripcionMateria(String descripcionMateria) { + this.descripcionMateria = descripcionMateria; + } + + public BigDecimal getValorMercancia() { + return valorMercancia; + } + + public void setValorMercancia(BigDecimal valorMercancia) { + this.valorMercancia = valorMercancia; + } + + public String getMonedaId() { + return monedaId; + } + + public void setMonedaId(String monedaId) { + this.monedaId = monedaId; + } + + public List getDocumentacionAduanera() { + return documentacionAduanera; + } + + public void setDocumentacionAduanera(List documentacionAduanera) { + this.documentacionAduanera = documentacionAduanera; + } + + public List getCantidadTransporta() { + return cantidadTransporta; + } + + public void setCantidadTransporta(List cantidadTransporta) { + this.cantidadTransporta = cantidadTransporta; + } + + public DetalleMercancia getDetalleMercancia() { + return detalleMercancia; + } + + public void setDetalleMercancia(DetalleMercancia detalleMercancia) { + this.detalleMercancia = detalleMercancia; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java new file mode 100644 index 0000000..3798811 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/ParteTransporte.java @@ -0,0 +1,13 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class ParteTransporte { + private String parteTransporteId; + + public String getParteTransporteId() { + return parteTransporteId; + } + + public void setParteTransporteId(String parteTransporteId) { + this.parteTransporteId = parteTransporteId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java new file mode 100644 index 0000000..f1eac9a --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/RegimenAduanero.java @@ -0,0 +1,13 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class RegimenAduanero { + private String regimenAduaneroId; + + public String getRegimenAduaneroId() { + return regimenAduaneroId; + } + + public void setRegimenAduaneroId(String regimenAduaneroId) { + this.regimenAduaneroId = regimenAduaneroId; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java new file mode 100644 index 0000000..042e79b --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Remolque.java @@ -0,0 +1,22 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class Remolque { + private String subTipoRemId; + private String placa; + + public String getSubTipoRemId() { + return subTipoRemId; + } + + public void setSubTipoRemId(String subTipoRemId) { + this.subTipoRemId = subTipoRemId; + } + + public String getPlaca() { + return placa; + } + + public void setPlaca(String placa) { + this.placa = placa; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java new file mode 100644 index 0000000..4fae70d --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TipoFigura.java @@ -0,0 +1,60 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import java.util.List; + +public class TipoFigura { + private String tipoFiguraId; + private String rfcFigura; + private String numLicencia; + private String nombreFigura; + private List partesTransporte; + private Domicilio domicilio; + + public String getTipoFiguraId() { + return tipoFiguraId; + } + + public void setTipoFiguraId(String tipoFiguraId) { + this.tipoFiguraId = tipoFiguraId; + } + + public String getRfcFigura() { + return rfcFigura; + } + + public void setRfcFigura(String rfcFigura) { + this.rfcFigura = rfcFigura; + } + + public String getNumLicencia() { + return numLicencia; + } + + public void setNumLicencia(String numLicencia) { + this.numLicencia = numLicencia; + } + + public String getNombreFigura() { + return nombreFigura; + } + + public void setNombreFigura(String nombreFigura) { + this.nombreFigura = nombreFigura; + } + + public List getPartesTransporte() { + return partesTransporte; + } + + public void setPartesTransporte(List partesTransporte) { + this.partesTransporte = partesTransporte; + } + + public Domicilio getDomicilio() { + return domicilio; + } + + public void setDomicilio(Domicilio domicilio) { + this.domicilio = domicilio; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java new file mode 100644 index 0000000..42f6e07 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteAereo.java @@ -0,0 +1,103 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +public class TransporteAereo { + private String permSCTId; + private String numPermisoSCT; + private String matriculaAeronave; + private String nombreAseg; + private String numPolizaSeguro; + private String numeroGuia; + private String lugarContrato; + private String codigoTransportistaId; + private String rfcEmbarcador; + private String nombreEmbarcador; + private String rfcTransportista; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getMatriculaAeronave() { + return matriculaAeronave; + } + + public void setMatriculaAeronave(String matriculaAeronave) { + this.matriculaAeronave = matriculaAeronave; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public String getNumeroGuia() { + return numeroGuia; + } + + public void setNumeroGuia(String numeroGuia) { + this.numeroGuia = numeroGuia; + } + + public String getLugarContrato() { + return lugarContrato; + } + + public void setLugarContrato(String lugarContrato) { + this.lugarContrato = lugarContrato; + } + + public String getCodigoTransportistaId() { + return codigoTransportistaId; + } + + public void setCodigoTransportistaId(String codigoTransportistaId) { + this.codigoTransportistaId = codigoTransportistaId; + } + + public String getRfcEmbarcador() { + return rfcEmbarcador; + } + + public void setRfcEmbarcador(String rfcEmbarcador) { + this.rfcEmbarcador = rfcEmbarcador; + } + + public String getNombreEmbarcador() { + return nombreEmbarcador; + } + + public void setNombreEmbarcador(String nombreEmbarcador) { + this.nombreEmbarcador = nombreEmbarcador; + } + + public String getRfcTransportista() { + return rfcTransportista; + } + + public void setRfcTransportista(String rfcTransportista) { + this.rfcTransportista = rfcTransportista; + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java new file mode 100644 index 0000000..ff6b568 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteFerroviario.java @@ -0,0 +1,172 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class TransporteFerroviario { + private String tipoDeServicioId; + private String tipoDeTraficoId; + private String nombreAseg; + private String numPolizaSeguro; + private List derechosDePaso; + private List carros; + + public String getTipoDeServicioId() { + return tipoDeServicioId; + } + + public void setTipoDeServicioId(String tipoDeServicioId) { + this.tipoDeServicioId = tipoDeServicioId; + } + + public String getTipoDeTraficoId() { + return tipoDeTraficoId; + } + + public void setTipoDeTraficoId(String tipoDeTraficoId) { + this.tipoDeTraficoId = tipoDeTraficoId; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public List getDerechosDePaso() { + return derechosDePaso; + } + + public void setDerechosDePaso(List derechosDePaso) { + this.derechosDePaso = derechosDePaso; + } + + public List getCarros() { + return carros; + } + + public void setCarros(List carros) { + this.carros = carros; + } + + public static class DerechoDePaso { + private String tipoDerechoDePasoId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal kilometrajePagado; + + public String getTipoDerechoDePasoId() { + return tipoDerechoDePasoId; + } + + public void setTipoDerechoDePasoId(String tipoDerechoDePasoId) { + this.tipoDerechoDePasoId = tipoDerechoDePasoId; + } + + public BigDecimal getKilometrajePagado() { + return kilometrajePagado; + } + + public void setKilometrajePagado(BigDecimal kilometrajePagado) { + this.kilometrajePagado = kilometrajePagado; + } + } + + public static class Carro { + private String tipoCarroId; + private String matriculaCarro; + private String guiaCarro; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal toneladasNetasCarro; + + private List contenedores; + + public String getTipoCarroId() { + return tipoCarroId; + } + + public void setTipoCarroId(String tipoCarroId) { + this.tipoCarroId = tipoCarroId; + } + + public String getMatriculaCarro() { + return matriculaCarro; + } + + public void setMatriculaCarro(String matriculaCarro) { + this.matriculaCarro = matriculaCarro; + } + + public String getGuiaCarro() { + return guiaCarro; + } + + public void setGuiaCarro(String guiaCarro) { + this.guiaCarro = guiaCarro; + } + + public BigDecimal getToneladasNetasCarro() { + return toneladasNetasCarro; + } + + public void setToneladasNetasCarro(BigDecimal toneladasNetasCarro) { + this.toneladasNetasCarro = toneladasNetasCarro; + } + + public List getContenedores() { + return contenedores; + } + + public void setContenedores(List contenedores) { + this.contenedores = contenedores; + } + } + + public static class ContenedorFerroviario { + private String tipoContenedorId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoContenedorVacio; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoMercancia; + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public BigDecimal getPesoContenedorVacio() { + return pesoContenedorVacio; + } + + public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { + this.pesoContenedorVacio = pesoContenedorVacio; + } + + public BigDecimal getPesoNetoMercancia() { + return pesoNetoMercancia; + } + + public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { + this.pesoNetoMercancia = pesoNetoMercancia; + } + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java new file mode 100644 index 0000000..3e1d95d --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/TransporteMaritimo.java @@ -0,0 +1,375 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.util.List; + +public class TransporteMaritimo { + private String permSCTId; + private String numPermisoSCT; + private String configMaritimaId; + private String nombreAseg; + private String numPolizaSeguro; + private String tipoEmbarcacionId; + private String matricula; + private String numeroOMI; + private Integer anioEmbarcacion = null; + private String nombreEmbarc; + private String nacionalidadEmbarcId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal unidadesDeArqBruto = null; + + private String tipoCargaId; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal eslora = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal manga = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal calado = null; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal puntal = null; + + private String lineaNaviera; + private String nombreAgenteNaviero; + private String numCertITC; + private String nombreEmbarCargador; + private String nombreAgente; + private String numAutorizacionNavieroId; + private String numViaje; + private String numConocEmbarc; + private String permisoTempNavegacion; + private List contenedores; + + public String getPermSCTId() { + return permSCTId; + } + + public void setPermSCTId(String permSCTId) { + this.permSCTId = permSCTId; + } + + public String getNumPermisoSCT() { + return numPermisoSCT; + } + + public void setNumPermisoSCT(String numPermisoSCT) { + this.numPermisoSCT = numPermisoSCT; + } + + public String getConfigMaritimaId() { + return configMaritimaId; + } + + public void setConfigMaritimaId(String configMaritimaId) { + this.configMaritimaId = configMaritimaId; + } + + public String getNombreAseg() { + return nombreAseg; + } + + public void setNombreAseg(String nombreAseg) { + this.nombreAseg = nombreAseg; + } + + public String getNumPolizaSeguro() { + return numPolizaSeguro; + } + + public void setNumPolizaSeguro(String numPolizaSeguro) { + this.numPolizaSeguro = numPolizaSeguro; + } + + public String getTipoEmbarcacionId() { + return tipoEmbarcacionId; + } + + public void setTipoEmbarcacionId(String tipoEmbarcacionId) { + this.tipoEmbarcacionId = tipoEmbarcacionId; + } + + public String getMatricula() { + return matricula; + } + + public void setMatricula(String matricula) { + this.matricula = matricula; + } + + public String getNumeroOMI() { + return numeroOMI; + } + + public void setNumeroOMI(String numeroOMI) { + this.numeroOMI = numeroOMI; + } + + public Integer getAnioEmbarcacion() { + return anioEmbarcacion; + } + + public void setAnioEmbarcacion(Integer anioEmbarcacion) { + this.anioEmbarcacion = anioEmbarcacion; + } + + public String getNombreEmbarc() { + return nombreEmbarc; + } + + public void setNombreEmbarc(String nombreEmbarc) { + this.nombreEmbarc = nombreEmbarc; + } + + public String getNacionalidadEmbarcId() { + return nacionalidadEmbarcId; + } + + public void setNacionalidadEmbarcId(String nacionalidadEmbarcId) { + this.nacionalidadEmbarcId = nacionalidadEmbarcId; + } + + public BigDecimal getUnidadesDeArqBruto() { + return unidadesDeArqBruto; + } + + public void setUnidadesDeArqBruto(BigDecimal unidadesDeArqBruto) { + this.unidadesDeArqBruto = unidadesDeArqBruto; + } + + public String getTipoCargaId() { + return tipoCargaId; + } + + public void setTipoCargaId(String tipoCargaId) { + this.tipoCargaId = tipoCargaId; + } + + public BigDecimal getEslora() { + return eslora; + } + + public void setEslora(BigDecimal eslora) { + this.eslora = eslora; + } + + public BigDecimal getManga() { + return manga; + } + + public void setManga(BigDecimal manga) { + this.manga = manga; + } + + public BigDecimal getCalado() { + return calado; + } + + public void setCalado(BigDecimal calado) { + this.calado = calado; + } + + public BigDecimal getPuntal() { + return puntal; + } + + public void setPuntal(BigDecimal puntal) { + this.puntal = puntal; + } + + public String getLineaNaviera() { + return lineaNaviera; + } + + public void setLineaNaviera(String lineaNaviera) { + this.lineaNaviera = lineaNaviera; + } + + public String getNombreAgenteNaviero() { + return nombreAgenteNaviero; + } + + public void setNombreAgenteNaviero(String nombreAgenteNaviero) { + this.nombreAgenteNaviero = nombreAgenteNaviero; + } + + public String getNumCertITC() { + return numCertITC; + } + + public void setNumCertITC(String numCertITC) { + this.numCertITC = numCertITC; + } + + public String getNombreEmbarCargador() { + return nombreEmbarCargador; + } + + public void setNombreEmbarCargador(String nombreEmbarCargador) { + this.nombreEmbarCargador = nombreEmbarCargador; + } + + public String getNombreAgente() { + return nombreAgente; + } + + public void setNombreAgente(String nombreAgente) { + this.nombreAgente = nombreAgente; + } + + public String getNumAutorizacionNavieroId() { + return numAutorizacionNavieroId; + } + + public void setNumAutorizacionNavieroId(String numAutorizacionNavieroId) { + this.numAutorizacionNavieroId = numAutorizacionNavieroId; + } + + public String getNumViaje() { + return numViaje; + } + + public void setNumViaje(String numViaje) { + this.numViaje = numViaje; + } + + public String getNumConocEmbarc() { + return numConocEmbarc; + } + + public void setNumConocEmbarc(String numConocEmbarc) { + this.numConocEmbarc = numConocEmbarc; + } + + public String getPermisoTempNavegacion() { + return permisoTempNavegacion; + } + + public void setPermisoTempNavegacion(String permisoTempNavegacion) { + this.permisoTempNavegacion = permisoTempNavegacion; + } + + public List getContenedores() { + return contenedores; + } + + public void setContenedores(List contenedores) { + this.contenedores = contenedores; + } + + public static class ContenedorMaritimo { + private String matriculaContenedor; + private String tipoContenedorId; + private String numPrecinto; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoContenedorVacio; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal pesoNetoMercancia; + + private String idCCPRelacionado; + private String placaVMCCP; + private String fechaCertificacionCCP; + private List remolquesCCP; + + public String getMatriculaContenedor() { + return matriculaContenedor; + } + + public void setMatriculaContenedor(String matriculaContenedor) { + this.matriculaContenedor = matriculaContenedor; + } + + public String getTipoContenedorId() { + return tipoContenedorId; + } + + public void setTipoContenedorId(String tipoContenedorId) { + this.tipoContenedorId = tipoContenedorId; + } + + public String getNumPrecinto() { + return numPrecinto; + } + + public void setNumPrecinto(String numPrecinto) { + this.numPrecinto = numPrecinto; + } + + public BigDecimal getPesoContenedorVacio() { + return pesoContenedorVacio; + } + + public void setPesoContenedorVacio(BigDecimal pesoContenedorVacio) { + this.pesoContenedorVacio = pesoContenedorVacio; + } + + public BigDecimal getPesoNetoMercancia() { + return pesoNetoMercancia; + } + + public void setPesoNetoMercancia(BigDecimal pesoNetoMercancia) { + this.pesoNetoMercancia = pesoNetoMercancia; + } + + public String getIdCCPRelacionado() { + return idCCPRelacionado; + } + + public void setIdCCPRelacionado(String idCCPRelacionado) { + this.idCCPRelacionado = idCCPRelacionado; + } + + public String getPlacaVMCCP() { + return placaVMCCP; + } + + public void setPlacaVMCCP(String placaVMCCP) { + this.placaVMCCP = placaVMCCP; + } + + public String getFechaCertificacionCCP() { + return fechaCertificacionCCP; + } + + public void setFechaCertificacionCCP(String fechaCertificacionCCP) { + this.fechaCertificacionCCP = fechaCertificacionCCP; + } + + public List getRemolquesCCP() { + return remolquesCCP; + } + + public void setRemolquesCCP(List remolquesCCP) { + this.remolquesCCP = remolquesCCP; + } + } + + public static class RemolqueCCP { + private String subTipoRemCCPId; + private String placaCCP; + + public String getSubTipoRemCCPId() { + return subTipoRemCCPId; + } + + public void setSubTipoRemCCPId(String subTipoRemCCPId) { + this.subTipoRemCCPId = subTipoRemCCPId; + } + + public String getPlacaCCP() { + return placaCCP; + } + + public void setPlacaCCP(String placaCCP) { + this.placaCCP = placaCCP; + } + } +} diff --git a/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java new file mode 100644 index 0000000..37bbf53 --- /dev/null +++ b/src/main/java/com/fiscalapi/models/invoicing/billOfLading/Ubicacion.java @@ -0,0 +1,138 @@ +package com.fiscalapi.models.invoicing.billOfLading; + +import com.fasterxml.jackson.annotation.JsonFormat; +import com.fasterxml.jackson.databind.annotation.JsonDeserialize; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.datatype.jsr310.deser.LocalDateTimeDeserializer; +import com.fasterxml.jackson.datatype.jsr310.ser.LocalDateTimeSerializer; +import com.fiscalapi.serialization.BigDecimalSerializer; + +import java.math.BigDecimal; +import java.time.LocalDateTime; + +public class Ubicacion { + private String tipoUbicacion; + private String idUbicacion; + private String rfcRemitenteDestinatario; + private String numRegIdTrib; + private String residenciaFiscalId; + private String nombreRemitenteDestinatario; + private String numEstacionId; + private String nombreEstacion; + private String navegacionTraficoId; + private String tipoEstacionId; + + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSS") + @JsonSerialize(using = LocalDateTimeSerializer.class) + @JsonDeserialize(using = LocalDateTimeDeserializer.class) + private LocalDateTime fechaHoraSalidaLlegada; + + @JsonSerialize(using = BigDecimalSerializer.class) + private BigDecimal distanciaRecorrida = null; + + private Domicilio domicilio; + + public String getTipoUbicacion() { + return tipoUbicacion; + } + + public void setTipoUbicacion(String tipoUbicacion) { + this.tipoUbicacion = tipoUbicacion; + } + + public String getIdUbicacion() { + return idUbicacion; + } + + public void setIdUbicacion(String idUbicacion) { + this.idUbicacion = idUbicacion; + } + + public String getRfcRemitenteDestinatario() { + return rfcRemitenteDestinatario; + } + + public void setRfcRemitenteDestinatario(String rfcRemitenteDestinatario) { + this.rfcRemitenteDestinatario = rfcRemitenteDestinatario; + } + + public String getNumRegIdTrib() { + return numRegIdTrib; + } + + public void setNumRegIdTrib(String numRegIdTrib) { + this.numRegIdTrib = numRegIdTrib; + } + + public String getResidenciaFiscalId() { + return residenciaFiscalId; + } + + public void setResidenciaFiscalId(String residenciaFiscalId) { + this.residenciaFiscalId = residenciaFiscalId; + } + + public String getNombreRemitenteDestinatario() { + return nombreRemitenteDestinatario; + } + + public void setNombreRemitenteDestinatario(String nombreRemitenteDestinatario) { + this.nombreRemitenteDestinatario = nombreRemitenteDestinatario; + } + + public String getNumEstacionId() { + return numEstacionId; + } + + public void setNumEstacionId(String numEstacionId) { + this.numEstacionId = numEstacionId; + } + + public String getNombreEstacion() { + return nombreEstacion; + } + + public void setNombreEstacion(String nombreEstacion) { + this.nombreEstacion = nombreEstacion; + } + + public String getNavegacionTraficoId() { + return navegacionTraficoId; + } + + public void setNavegacionTraficoId(String navegacionTraficoId) { + this.navegacionTraficoId = navegacionTraficoId; + } + + public String getTipoEstacionId() { + return tipoEstacionId; + } + + public void setTipoEstacionId(String tipoEstacionId) { + this.tipoEstacionId = tipoEstacionId; + } + + public LocalDateTime getFechaHoraSalidaLlegada() { + return fechaHoraSalidaLlegada; + } + + public void setFechaHoraSalidaLlegada(LocalDateTime fechaHoraSalidaLlegada) { + this.fechaHoraSalidaLlegada = fechaHoraSalidaLlegada; + } + + public BigDecimal getDistanciaRecorrida() { + return distanciaRecorrida; + } + + public void setDistanciaRecorrida(BigDecimal distanciaRecorrida) { + this.distanciaRecorrida = distanciaRecorrida; + } + + public Domicilio getDomicilio() { + return domicilio; + } + + public void setDomicilio(Domicilio domicilio) { + this.domicilio = domicilio; + } +}