Skip to content

Commit

Permalink
Merge pull request #49 from lunasoft/hotfix/fix_impuestos
Browse files Browse the repository at this point in the history
Fix TotalImpuestosTrasladados
  • Loading branch information
martinfnsw authored Sep 4, 2023
2 parents 7648317 + 97dd06d commit 18f91ee
Show file tree
Hide file tree
Showing 7 changed files with 48 additions and 22 deletions.
15 changes: 12 additions & 3 deletions SW.Tools/Entities/Comprobante_Build.cs
Original file line number Diff line number Diff line change
Expand Up @@ -415,9 +415,18 @@ public Comprobante GetComprobante()
{
if (this.Impuestos.Traslados != null && this.Impuestos.Traslados.Count() > 0)
{
this.Impuestos.TotalImpuestosTrasladados = this.Impuestos.Traslados.Sum(a => a.Importe).TruncateDecimals(this.moneda_Info.Decimales);
this.Impuestos.TotalImpuestosTrasladadosSpecified = true;
this.Total += this.Impuestos.TotalImpuestosTrasladados;
int countTasa = this.Impuestos.Traslados.Count(a => a.TipoFactor.Trim().ToLower() == "tasa");
int countExento = this.Impuestos.Traslados.Count(a => a.TipoFactor.Trim().ToLower() == "exento");
if (countTasa <= 0 && countExento >= 1)
{
this.Impuestos.TotalImpuestosTrasladadosSpecified = false;
}
else
{
this.Impuestos.TotalImpuestosTrasladados = this.Impuestos.Traslados.Sum(a => a.Importe);
this.Impuestos.TotalImpuestosTrasladadosSpecified = true;
this.Total += this.Impuestos.TotalImpuestosTrasladados;
}
}

if (this.Impuestos.Retenciones != null && this.Impuestos.Retenciones.Length > 0)
Expand Down
4 changes: 2 additions & 2 deletions SW.Tools/Properties/AssemblyInfo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -33,5 +33,5 @@
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]

[assembly: AssemblyVersion("1.0.7.5")]
[assembly: AssemblyFileVersion("1.0.7.5")]
[assembly: AssemblyVersion("1.0.7.6")]
[assembly: AssemblyFileVersion("1.0.7.6")]
Binary file modified SW.ToolsUT/Resources/CSD_Pruebas_CFDI_EKU9003173C9.cer
Binary file not shown.
Binary file modified SW.ToolsUT/Resources/CSD_Pruebas_CFDI_EKU9003173C9.key
Binary file not shown.
4 changes: 2 additions & 2 deletions SW.ToolsUT/UT_Tools_BuildInvoiceCFDI33.cs
Original file line number Diff line number Diff line change
Expand Up @@ -109,7 +109,7 @@ public void UT_GetInvoicePagos10()
var xmlInvoice = SW.Tools.Helpers.Serializer.SerializeDocument(invoice);
}

[TestMethod]
[Ignore]
public void UT_StampInvoicePagos10()
{
SW.Tools.Entities.Pagos pago = new Tools.Entities.Pagos();
Expand All @@ -127,7 +127,7 @@ public void UT_StampInvoicePagos10()
(response.data.cfdi);
Assert.IsTrue(response.status == "success");
}
[TestMethod]
[Ignore]
public void UT_StampInvoice()
{
Tools.Entities.Comprobante comprobante = new Tools.Entities.Comprobante();
Expand Down
31 changes: 24 additions & 7 deletions SW.ToolsUT/UT_Tools_BuildInvoiceCFDI40.cs
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@ public void UT_StampInvoice()
comprobante.SetConcepto(1, "84131500", "ZZ", "derecho de poliza", "1", "NO APLICA", 550.00m, "02", 550.00m);
comprobante.SetConceptoImpuestoTraslado( "Tasa", "002", 550.00m, 0.160000m, 88.00m);
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "65000", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Expand All @@ -62,7 +62,7 @@ public void UT_StampInvoice_2()
comprobante.SetConcepto(1, "50211503", "ZZ", "Cigarros", "1", "NO APLICA", 200.00m, "02", 200.00m);
comprobante.SetConceptoImpuestoTraslado("Tasa", "002", 3592.83m, 0.160000m, 574.85m);
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "65000", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Expand All @@ -76,11 +76,11 @@ public void UT_CFDI40_InformacionGlobal()
{
Comprobante comprobante = new Comprobante();

comprobante.SetComprobante("MXN", "I", "99", "PPD", "65000", "01");
comprobante.SetComprobante("MXN", "I", "99", "PPD", "86991", "01");
comprobante.SetConcepto(1, "84131500", "ZZ", "derecho de poliza", "1", "NO APLICA", 550.00m, "02", 550.00m);
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.SetReceptor("XAXX010101000", "PUBLICO EN GENERAL", "S01", "86991", "616");
comprobante.SetInformacionGlobal("01", "04", "2022");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
Expand All @@ -100,7 +100,7 @@ public void UT_CFDI40_AcuentaTerceros()
comprobante.SetConceptoImpuestoTraslado( "Tasa", "002", 550.00m, 0.160000m, 88.00m);
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetAcuentaTerceros("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "601", "29133");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "65000", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Expand All @@ -125,7 +125,7 @@ public void UT_CFDI40_CFDIRelacionados()
lista[0] = "0aded095-b84d-4364-8f8e-59c3f650e530";
lista[1] = "2da2a676-f424-4898-a190-79253fdf5f7a";
comprobante.SetCFDIRelacionado("03", lista);
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "65000", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Expand All @@ -140,7 +140,7 @@ public void UT_CFDI40_CFDIExentos()

comprobante.SetComprobante("MXN", "I", "99", "PPD", "20000", "01");
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "65000", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
comprobante.SetConcepto(1, "50211503", "H87", "Cigarros",null, "Pieza", 200.00m, "02", 200.00m);
comprobante.SetConceptoImpuestoTraslado("Tasa", "002", 1m, 0.000000m, 0.00m);
comprobante.SetConceptoImpuestoTraslado("Exento", "002", 1m);
Expand All @@ -152,6 +152,23 @@ public void UT_CFDI40_CFDIExentos()
StampResponseV2 response = stamp.TimbrarV2(xmlInvoice);
Assert.IsTrue(response.status == "success");
}
[TestMethod]
public void UT_CFDI40_CFDIJustExento()
{
Comprobante comprobante = new Comprobante();

comprobante.SetComprobante("MXN", "I", "99", "PPD", "20000", "01", "SW-Tools-dotnet", Guid.NewGuid().ToString());
comprobante.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
comprobante.SetReceptor("URE180429TM6", "UNIVERSIDAD ROBOTICA ESPAÑOLA", "G01", "86991", "601");
comprobante.SetConcepto(1, "50211503", "H87", "Cigarros", null, "Pieza", 200.00m, "02", 200.00m);
comprobante.SetConceptoImpuestoTraslado("Exento", "002", 1m);
var invoice = comprobante.GetComprobante();
var xmlInvoice = SerializerCfdi40.SerializeDocument(invoice);
xmlInvoice = SignInvoice(xmlInvoice);
Stamp stamp = new Stamp(this.url, this.userStamp, this.passwordStamp);
StampResponseV2 response = stamp.TimbrarV2(xmlInvoice);
Assert.IsTrue(response.status == "success");
}
private string SignInvoice(string xmlInvoice)
{
byte[] bytesCer = File.ReadAllBytes(@"Resources\CSD_Pruebas_CFDI_EKU9003173C9.cer");
Expand Down
16 changes: 8 additions & 8 deletions SW.ToolsUT/UT_Tools_BuildInvoicePagos20.cs
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ public void UT_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "01", 1m, 200.00m, 200.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");
pago.SetTotales("200.00");
var invoice = pago.GetInvoice("99056", "01", "01", "A", "1");
var xmlInvoice = SW.Tools.Helpers.SerializerCfdi40.SerializeDocument(invoice);
Expand All @@ -60,7 +60,7 @@ public void UT2_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "01", 1m, 200.00m, 200.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");
pago.SetTotales("200.00");
string[] lista = new string[1];
lista[0] = "0aded095-b84d-4364-8f8e-59c3f650e530";
Expand All @@ -82,7 +82,7 @@ public void UT3_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "02", 1m, 200.00m, 200.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");
pago.SetTotales("200.00", null, null, null, "100.00", "16.00");
pago.SetImpuestoTrasladoDR("Tasa", "002", 100.00m, 0.160000m, 16.00m);
pago.SetImpuestoTraslados( "Tasa", "002", 100.00m, 0.160000m, 16.00m);
Expand All @@ -105,7 +105,7 @@ public void UT4_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "02", 20.64m, 116.00m, 116.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");

pago.SetTotales("116.00", null, null, null, "99.90", "15.89");
pago.SetImpuestoTrasladoDR( "Tasa", "002", 100.00m, 0.160000m, 16.00m);
Expand All @@ -129,7 +129,7 @@ public void UT5_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "02", 1m, 100.00m, 100.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");

pago.SetTotales("100.00", "16.00", "35.00", "34.40", null, null);
pago.SetImpuestoRetencionDR( "Tasa", "001", 100.00m, 0.000000m, 0.00m);
Expand Down Expand Up @@ -161,7 +161,7 @@ public void UT6_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"USD", "1", "02", 11.60m, 1160.00m, 1160.00m, 0.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");

pago.SetTotales("2500.00", "3", "0", null, null, null,null,null,null,null, "215.50");
pago.SetImpuestoRetencionDR("Tasa", "002", 100.00m, 0.012500m, 1.25m);
Expand All @@ -187,7 +187,7 @@ public void UT7_StampInvoicePagos20()
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"MXN", "1", "02", 1m, 200.00m, 100.00m, 100.00m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");

pago.SetTotales("200.00", null, null, null, "200.00", "32.00", null, null, null, null, null);
pago.SetImpuestoTrasladoDR("Tasa", "002", 100.00m, 0.160000m, 16.00m);
Expand All @@ -212,7 +212,7 @@ public void UT8_StampInvoicePagos20()
SW.Tools.Cfdi.Complementos.Pagos20.Pagos pago = new SW.Tools.Cfdi.Complementos.Pagos20.Pagos();
pago.SetPago("01", null, DateTime.Now, null, "MXN", 7097.37m, null, null, null, null, 1m);
pago.SetEmisor("EKU9003173C9", "ESCUELA KEMPER URGATE", "601");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "29133", "606");
pago.SetReceptor("JUFA7608212V6", "ADRIANA JUAREZ FERNANDEZ", "01160", "606");
pago.SetTotales("14194.74", null, null, null, "12236.84", "1957.88", null, null, null, null, null);
pago.SetDoctoRelacionado(null, null, "bfc36522-4b8e-45c4-8f14-d11b289f9eb7",
"USD", "2", "02", 0.049693m, 352.69m, 352.69m, 0m);
Expand Down

0 comments on commit 18f91ee

Please sign in to comment.