Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix TotalImpuestosTrasladados #49

Merged
merged 1 commit into from
Sep 4, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
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