diff --git a/SW.Tools/Properties/AssemblyInfo.cs b/SW.Tools/Properties/AssemblyInfo.cs
index d3ceb1b..8b8e636 100644
--- a/SW.Tools/Properties/AssemblyInfo.cs
+++ b/SW.Tools/Properties/AssemblyInfo.cs
@@ -35,6 +35,6 @@
-[assembly: AssemblyVersion("1.0.9.3")]
-[assembly: AssemblyFileVersion("1.0.9.3")]
+[assembly: AssemblyVersion("1.0.10.1")]
+[assembly: AssemblyFileVersion("1.0.10.1")]
diff --git a/SW.Tools/SW.Tools.csproj b/SW.Tools/SW.Tools.csproj
index ae130f1..fb9cc0c 100644
--- a/SW.Tools/SW.Tools.csproj
+++ b/SW.Tools/SW.Tools.csproj
@@ -40,7 +40,7 @@
..\packages\cadenaoriginal33.dll.1.4.3\lib\net40\cadenaoriginal33.dll
- ..\packages\cadenaoriginal40.dll.0.0.2\lib\net40\cadenaoriginal40.dll
+ ..\packages\cadenaoriginal40.dll.0.0.4-rc\lib\net40\cadenaoriginal40.dll
..\packages\cadenaoriginalRetenciones20.dll.1.0.1\lib\cadenaoriginalretenciones20.dll
diff --git a/SW.Tools/packages.config b/SW.Tools/packages.config
index ef22699..ae1daf8 100644
--- a/SW.Tools/packages.config
+++ b/SW.Tools/packages.config
@@ -2,7 +2,7 @@
-
+
diff --git a/SW.ToolsUT/Resources/cfdi40_cp30.xml b/SW.ToolsUT/Resources/cfdi40_cp30.xml
new file mode 100644
index 0000000..95a5229
--- /dev/null
+++ b/SW.ToolsUT/Resources/cfdi40_cp30.xml
@@ -0,0 +1,37 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/SW.ToolsUT/SW.ToolsUT.csproj b/SW.ToolsUT/SW.ToolsUT.csproj
index 73b19de..b960d9a 100644
--- a/SW.ToolsUT/SW.ToolsUT.csproj
+++ b/SW.ToolsUT/SW.ToolsUT.csproj
@@ -35,6 +35,9 @@
4
+
+ ..\packages\cadenaoriginal40.dll.0.0.4-rc\lib\net40\cadenaoriginal40.dll
+
..\packages\Newtonsoft.Json.13.0.2\lib\net45\Newtonsoft.Json.dll
@@ -105,6 +108,9 @@
Always
+
+ Always
+
Designer
Always
diff --git a/SW.ToolsUT/UT_Tools_BuildInvoiceCFDI40.cs b/SW.ToolsUT/UT_Tools_BuildInvoiceCFDI40.cs
index f1e1d2f..550ece6 100644
--- a/SW.ToolsUT/UT_Tools_BuildInvoiceCFDI40.cs
+++ b/SW.ToolsUT/UT_Tools_BuildInvoiceCFDI40.cs
@@ -60,13 +60,13 @@ public void UT_CFDI40_InformacionGlobal()
comprobante.SetConceptoImpuestoTraslado( "Tasa", "002", 550.00m, 0.160000m, 88.00m);
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetReceptor("XAXX010101000", "PUBLICO EN GENERAL", "S01", "65000", "616");
- comprobante.SetInformacionGlobal("01", "04", "2022");
+ comprobante.SetInformacionGlobal("01", "04", "2023");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Stamp stamp = new Stamp(_build.Url, _build.User, _build.Password);
StampResponseV2 response = stamp.TimbrarV2(xmlInvoice);
- Assert.IsTrue(response.status == "success");
+ Assert.IsTrue(response.status == "success"|| response.message == "307. El comprobante contiene un timbre previo.");
}
[TestMethod]
diff --git a/SW.ToolsUT/UT_Tools_Sign.cs b/SW.ToolsUT/UT_Tools_Sign.cs
index 9f68adf..adeac6a 100644
--- a/SW.ToolsUT/UT_Tools_Sign.cs
+++ b/SW.ToolsUT/UT_Tools_Sign.cs
@@ -143,6 +143,16 @@ public void UT_Tools_CadenaOriginalCFDIv33_CP20_OK()
string CadenaOriginal = "||3.3|RogueOne|HNFK231|2022-01-04T00:14:54|01|20001000000300022816|25000.00|MXN|1|28000.00|I|PUE|06300|EKU9003173C9|SW TRANSPORTES|601|AAA010101AAA|SW SMARTERWEB|G03|78101500|01|1|E48|SERVICIO|FLETE|25000.00|25000.00|25000.00|002|Tasa|0.160000|4000.00|25000.00|002|Tasa|0.040000|1000.00|002|1000.00|1000.00|002|Tasa|0.160000|4000.00|4000.00|2.0|No|2|Origen|OR101010|EKU9003173C9|2021-11-01T00:00:00|calle|211|0347|23|casa blanca 1|004|COA|MEX|25350|Destino|DE202020|AAA010101AAA|2021-11-01T01:00:00|1|calle|214|0347|23|casa blanca 2|004|COA|MEX|25350|Destino|DE202021|AAA010101AAA|2021-11-01T02:00:00|1|calle|220|0347|23|casa blanca 3|004|COA|MEX|25350|2.0|XBX|2|11121900|Productos de perfumería|1.0|XBX|Sí|1266|4H2|1.0|1|OR101010|DE202020|11121900|Productos de perfumería|1.0|XBX|Sí|1266|4H2|1.0|1|OR101010|DE202021|TPAF01|NumPermisoSCT|VL|plac892|2020|SW Seguros|123456789|SW Seguros Ambientales|123456789|SW Seguros|CTR021|ABC123|01|VAAM130719H60|a234567890||";
var result_ = Fiscal.RemoverCaracteresInvalidosXml(Sign.CadenaOriginalCFDIv33(xml).data.cadenaOriginal);
Assert.IsTrue(CadenaOriginal.Equals(result_));
+ }///
+ /// Cadena Original Carta Porte 2.0
+ ///
+ [TestMethod]
+ public void UT_Tools_CadenaOriginalCFDIv40_CP30_OK()
+ {
+ var xml = Fiscal.RemoverCaracteresInvalidosXml(Encoding.UTF8.GetString(File.ReadAllBytes(@"Resources\cfdi40_cp30.xml")));
+ string CadenaOriginal = "||4.0|Serie|Folio|2023-12-29T00:00:55|01|30001000000500003416|100.00|MXN|100.00|I|01|PUE|42501|EKU9003173C9|ESCUELA KEMPER URGATE|601|EKU9003173C9|ESCUELA KEMPER URGATE|42501|601|S01|78101800|UT421511|1|H87|Pieza|Transporte de carga por carretera|100.00|100.00|01|3.0|CCCBCD94-870A-4332-A52A-A52AA52AA52A|No|1|Sí|01|01|Origen|OR101010|EKU9003173C9|NombreRemitenteDestinatario1|2023-08-01T00:00:00|Calle1|211|212|1957|13|casa blanca|011|CMX|MEX|13250|Destino|DE202020|EKU9003173C9|NombreRemitenteDestinatario2|2023-08-01T00:00:01|1|Calle2|214|215|0347|23|casa negra|004|COA|MEX|25350|1.0|XBX|1|Sí|11121900|Accesorios de equipo de telefonía|1.0|XBX|No|01|DenominacionGenericaProd1|DenominacionDistintivaProd1|Fabricante1|2028-01-01|LoteMedic1|01|01|RegistroSanita1|1|1|OR101010|DE202020|TPAF01|NumPermisoSCT1|VL|1|plac892|2020|AseguraRespCivil|123456789|CTR004|VL45K98|01|CACX7605101P8|a234567890|NombreFigura||";
+ var result_ = Fiscal.RemoverCaracteresInvalidosXml(Sign.CadenaOriginalCFDIv40(xml).data.cadenaOriginal);
+ Assert.IsTrue(CadenaOriginal.Equals(result_));
}
[TestMethod]
public void UT_Tools_CadenaOriginalCFDIv33_ERROR()
diff --git a/SW.ToolsUT/packages.config b/SW.ToolsUT/packages.config
index 8c24d78..b1315fc 100644
--- a/SW.ToolsUT/packages.config
+++ b/SW.ToolsUT/packages.config
@@ -1,5 +1,6 @@
+
\ No newline at end of file