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