diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index d737eb295..037558c3a 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -1145,7 +1145,7 @@ Partial Class Compras_Compras
CargaDatosAgregarPS()
TieneAnticiposXML = False
Modalidad = ""
- Version = ""
+ Version = "3.3"
CveMetodoPago = -1
RFCProv = ""
CargaDdlTipoGasto()
@@ -3953,6 +3953,24 @@ Partial Class Compras_Compras
End If
End If
+ 'VERIFICA SI LOS PRODUCTOS/SERVICIOS EXISTEN EN EL CATALOGO DEL SAT
+ If UsuarioActual.CveEmpresa = 72 Then
+
+ Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(CveSATPS,0) = 46920 ")
+ If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then
+ Dim StrNoEncontrados As New StringBuilder
+ StrNoEncontrados.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT
")
+ For Each drt As DataRow In DtNoEncontrados.Rows
+ StrNoEncontrados.AppendFormat("{0}
", drt("CodigoPS"))
+ Next
+ Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia)
+ DtNoEncontrados.Dispose()
+ StrNoEncontrados.Clear()
+ Exit Sub
+ End If
+ DtNoEncontrados.Dispose()
+ End If
+
'Si se marcó No Deducible en el encabezado mínimo se debe registrar un No Deducible en el Detalle
Dim GuardaNoDeducibles As Boolean = False
If ChkEsNoDeducible.Checked Then
@@ -17621,8 +17639,17 @@ Partial Class Compras_Compras
ActualizaTotales = True
Select Case Modalidad
Case "A" 'ADD
+
+ Dim SATClavePS = -1
+ Dim PSRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPS.SelectedValue.ToEntero).FiltroPrimero("")
+ If PSRow IsNot Nothing Then
+ SATClavePS = PSRow("SATClavePS").ToString.ToEntero
+ End If
+
AddPS(TxtCantidad.Text.Trim.ToDouble, ddlUM.SelectedValue.ToEntero, ddlUM.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text, DdlPS.SelectedValue.ToEntero, DdlPS.SelectedText, HdnTipoPS.Value.ToEntero,
- DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2), TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text, NoDeducible:=ChkEsNoDeduciblePS.Checked)
+ DdlSubProyecto.SelectedValue.ToString, DdlSubProyecto.SelectedItem.Text, DdlProyecto.SelectedItem.Text, DdlProyecto.SelectedValue.ToString, TxtObsPS.Text.Trim, TxtPrecio.Text.Trim.ToDouble, Total, Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2),
+ TxtRetIVAModal.Text.ToDouble / 100, TxtRetISRModal.Text.ToDouble / 100, TxtIEPSModal.Text.ToDouble / 100, 0, TxtDescuentoModal.Text.ToDouble, OtrosGastos:=TxtOtrosGastos.Text.ToDouble, CveTipoGasto:=DdlTipoGasto.SelectedValue.ToEntero, TipoGasto:=DdlTipoGasto.SelectedItem.Text,
+ NoDeducible:=ChkEsNoDeduciblePS.Checked, CveSATPS:=SATClavePS)
AddPS2()
LimpiaAgregar()
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index b6d1b85e8..3f30ed1db 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -7062,6 +7062,22 @@ Partial Class Ventas
Exit Sub
End If
dttsat.Dispose()
+
+ If UsuarioActual.CveEmpresa = 72 Then
+ Dim DtNoEncontrados As DataTable = TmpDT.FiltraParametros("ISNULL(SATClaveProdServ,'') = '01010101' ")
+ If DtNoEncontrados IsNot Nothing AndAlso DtNoEncontrados.Rows.Count > 0 Then
+ Dim StrNoEncontrados As New StringBuilder
+ StrNoEncontrados.Append("Los siguientes productos no tiene asignado la clave Producto SAT o Unidad Medida SAT
")
+ For Each drt As DataRow In DtNoEncontrados.Rows
+ StrNoEncontrados.AppendFormat("{0}
", drt("CodigoPS"))
+ Next
+ Alert(StrNoEncontrados.ToString(), TipoMensaje.MsgAdvertencia)
+ DtNoEncontrados.Dispose()
+ StrNoEncontrados.Clear()
+ Exit Sub
+ End If
+ DtNoEncontrados.Dispose()
+ End If
End If
If ObjFactura Is Nothing Or (ObjFactura.Cliente Is Nothing And Not CveEmpresaCRM > 0) Then
@@ -15715,6 +15731,11 @@ Partial Class Ventas
MensajeCveSAT.AppendFormat("{0}-{1}: Sin Unidad Medida SAT
", DrPS("Codigo").ToString(), DrPS("PS").ToString())
Return False
End If
+
+ If UsuarioActual.CveEmpresa = 72 AndAlso DrPS("SATClavePS").ToString() = "01010101" Then
+ MensajeCveSAT.AppendFormat("{0}-{1}: El producto/servicio no existe en el catálogo del SAT
", DrPS("Codigo").ToString(), DrPS("PS").ToString())
+ Return False
+ End If
End If
End If