diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb index f9fe5c1e1..dbb113a45 100644 --- a/App_Code/Timbrado.vb +++ b/App_Code/Timbrado.vb @@ -3228,10 +3228,24 @@ Public Class Timbrado Else + Dim Resultados = Newtonsoft.Json.Linq.JArray.Parse(resultadoTimbre.Detalle) + If Resultados.Count > 0 Then - Retorno = Resultados(0)("Value").ToString() - MensajeErrorCFDI = Resultados(0)("Value").ToString() + + If resultadoTimbre.Descripcion.Contains("RFC del receptor no existe") Then + + Retorno = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente" + MensajeErrorCFDI = $"El RFC { Resultados(0)("Value").ToString() } no existe en las bases de datos publicadas por el SAT, corrobore este dato con su cliente" + + Else + + Retorno = Resultados(0)("Value").ToString() + MensajeErrorCFDI = Resultados(0)("Value").ToString() + + End If + + Else Retorno = resultadoTimbre.Detalle MensajeErrorCFDI = resultadoTimbre.Detalle diff --git a/General/SaldosIniciales.aspx.vb b/General/SaldosIniciales.aspx.vb index 3066afea6..7db555706 100644 --- a/General/SaldosIniciales.aspx.vb +++ b/General/SaldosIniciales.aspx.vb @@ -10,7 +10,8 @@ Imports GemBox.Spreadsheet Partial Class General_SaldosIniciales Inherits ClsPaginas Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load - If Not IsPostBack Then + If Not IsPostBack Then + End If End Sub @@ -68,7 +69,92 @@ Partial Class General_SaldosIniciales 'End Try 'Conexion.Close() If Not ErrorArchivo Then + If RblFormato.SelectedValue = "1" Or RblFormato.SelectedValue = "2" Then + If Not dt.Columns(0).ColumnName = "Codigo" Then + Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(1).ColumnName = "RazonSocial" Then + Alert("El nombre de la segunda columna debe ser 'Fecha'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(2).ColumnName = "RFC" Then + Alert("El nombre de la tercera columna debe ser 'RFC'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(3).ColumnName = "Calle" Then + Alert("El nombre de la cuarta columna debe ser 'Calle'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(4).ColumnName = "Número exterior" Then + Alert("El nombre de la quinta columna debe ser 'Número exterior' .Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(5).ColumnName = "Colonia" Then + Alert("El nombre de la sexta columna debe ser 'Colonia'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(6).ColumnName = "Código postal" Then + Alert("El nombre de la séptima columna debe ser 'Código postal'.Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(7).ColumnName = "Población" Then + Alert("El nombre de la octava columna debe ser 'Población'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(8).ColumnName = "Estado" Then + Alert("El nombre de la novena columna debe ser 'Estado'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(9).ColumnName = "Teléfono" Then + Alert("El nombre de la décima columna debe ser 'Teléfono'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(10).ColumnName = "Contacto" Then + Alert("El nombre de la onceava columna debe ser 'Contacto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(11).ColumnName = "Celular Contacto" Then + Alert("El nombre de la doceava columna debe ser 'Celular Contacto'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(12).ColumnName = "Limite Credito" Then + Alert("El nombre de la treceava columna debe ser 'Limite Credito'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + If Not dt.Columns(13).ColumnName = "Plazo Cobranza" Then + Alert("El nombre de la catorceava columna debe ser 'Plazo Cobranza'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + 'If Not dt.Columns(14).ColumnName = "Pais" Then + ' Alert("El nombre de la quinceava columna debe ser 'Plazo Cobranza'. Favor de corregirlo", TipoMensaje.MsgError) + ' Exit Sub + 'End If + + + + If Not dt.Columns(14).ColumnName.ToUpper = "BANCO" Then + Alert("El nombre de la quinceava columna debe ser 'Banco'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(15).ColumnName.ToUpper = "N° CUENTA" Then + Alert("El nombre de la dieciseisava columna debe ser 'N° Cuenta'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + If Not dt.Columns(16).ColumnName.ToUpper = "CLABE INTER" Then + Alert("El nombre de la diecisieteava columna debe ser 'Clabe Inter'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + + + + + ElseIf RblFormato.SelectedValue = "2" Then + If Not dt.Columns(0).ColumnName = "Codigo" Then Alert("El nombre de la primera columna debe ser 'Codigo'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub @@ -124,22 +210,24 @@ Partial Class General_SaldosIniciales If Not dt.Columns(13).ColumnName = "Plazo Cobranza" Then Alert("El nombre de la treceava columna debe ser 'Plazo Cobranza'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub - End If - If RblFormato.SelectedValue = "1" Then - If Not dt.Columns(14).ColumnName = "Vendedor" Then + End If + + + If Not dt.Columns(14).ColumnName = "Vendedor" Then Alert("El nombre de la catorceava columna debe ser 'Es distribuidor'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub End If If Not dt.Columns(15).ColumnName = "Clasificación" Then Alert("El nombre de la catorceava columna debe ser 'Es distribuidor'. Favor de corregirlo", TipoMensaje.MsgError) Exit Sub - End If - If Not dt.Columns(16).ColumnName = "Es distribuidor" Then - Alert("El nombre de la catorceava columna debe ser 'Es distribuidor'. Favor de corregirlo", TipoMensaje.MsgError) - Exit Sub - End If - End If - + End If + If Not dt.Columns(16).ColumnName = "Es distribuidor" Then + Alert("El nombre de la catorceava columna debe ser 'Es distribuidor'. Favor de corregirlo", TipoMensaje.MsgError) + Exit Sub + End If + + + ElseIf RblFormato.SelectedValue = "3" Or RblFormato.SelectedValue = "4" Then If Not dt.Columns(0).ColumnName = "Sucursal" Then Alert("El nombre de la primera columna debe ser 'Sucursal'. Favor de corregirlo", TipoMensaje.MsgError) @@ -517,7 +605,8 @@ Partial Class General_SaldosIniciales If Not ErrorArchivo Then 'P R O D U C T O S / S E R V I C I O S - If RblFormato.SelectedValue = "5" Then + If RblFormato.SelectedValue = "5" Then + Dim ObjPS As New ClsProductosServicios Dim ObjGral As New ClsGenerales(ObjPS.IniciaTransacSQL()) Dim ObjClas As New ClsClasificaciones(ObjPS.IniciaTransacSQL()) @@ -654,10 +743,14 @@ Partial Class General_SaldosIniciales End If If Not CveClasificacion2 > 0 AndAlso Clasificacion2 <> "" Then - Dim CveCategoria As Integer + Dim CveCategoria As Integer + + + If ObjGral.GetCategorias(UsuarioActual.CveEmpresa, 4) Then CveCategoria = ObjGral.DtResultados.FiltroPrimeroValor("CveCategoria", "").ToEntero End If + If Not CveCategoria > 0 Then If ObjGral.AddCategorias(Clasificacion2, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 4) Then @@ -665,12 +758,27 @@ Partial Class General_SaldosIniciales CveCategoria = ObjGral.DtResultados.FiltroPrimeroValor("CveCategoria", "").ToEntero End If End If - End If - If ObjClas.AddClasificaciones(Clasificacion2, "", -1, "-1", -1, "-1", -1, "-1", CveCategoria, UsuarioActual.CveUsuario, - UsuarioActual.CveEmpresa) Then - If ObjClas.GetClasificaciones(Tipo:=4) Then Application("GlobalDTClasificaciones2") = ObjClas.DtResultados - CveClasificacion2 = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveClasificacion", $"Clasificacion = '{Clasificacion2}'").ToString.ToEntero - End If + End If + + + If ObjClas.GetClasificaciones(UsuarioActual.CveEmpresa) Then + CveClasificacion2 = ObjClas.DtResultados.FiltroPrimeroValor("CveClasificacion", $"Clasificacion = '{ Clasificacion2.Trim }'").ToEntero + End If + + + If CveClasificacion2 = 0 Then + + If ObjClas.AddClasificaciones(Clasificacion2, "", -1, "-1", -1, "-1", -1, "-1", CveCategoria, UsuarioActual.CveUsuario, + UsuarioActual.CveEmpresa) Then + If ObjClas.GetClasificaciones(Tipo:=4) Then Application("GlobalDTClasificaciones2") = ObjClas.DtResultados + CveClasificacion2 = GlobalDTClasificaciones2(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveClasificacion", $"Clasificacion = '{Clasificacion2}'").ToString.ToEntero + End If + + End If + + + + End If If Not CveClasificacion > 0 AndAlso Clasificacion <> "" Then Alert("No se encontró la Clasificación: " + Clasificacion, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For @@ -680,7 +788,7 @@ Partial Class General_SaldosIniciales If Not CveMedida > 0 AndAlso Medida <> "" Then Alert("No se encontró la Media: " + Medida, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For If Not CveRinTamaño > 0 AndAlso RinTamaño <> "" Then Alert("No se encontró el Tamaño: " + RinTamaño, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For If Not CveModelo > 0 AndAlso Modelo <> "" Then Alert("No se encontró el Modelo: " + Modelo, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For - If Not CveClasificacion2 > 0 AndAlso Clasificacion2 <> "" Then Alert("No se encontró la Serie: " + Clasificacion2, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For + 'If Not CveClasificacion2 > 0 AndAlso Clasificacion2 <> "" Then Alert("No se encontró la Serie: " + Clasificacion2, TipoMensaje.MsgAdvertencia) : ErrorPS = True : Exit For If CvePS > 0 Then If Not ObjPS.UpdatePS(CveClasificacion, 1, CveUnidadMedida, Codigo, "", CodigoBarras, Descripcion, Precio, 1, 1, False, 0, True, True, True, UsuarioActual.CveUsuario, CvePS, -1, -1, CveSATPS, @@ -739,43 +847,106 @@ Partial Class General_SaldosIniciales Dim ExisteProveedor As Boolean = False ObjProv.IniciaTransacSQL() - For Each Row As DataRow In dt.Rows + For Each Row As DataRow In dt.Rows + Dim Codigo As String = Row("Codigo").ToString Dim RazonSocial As String = Row("RazonSocial").ToString - Dim RFC As String = Row("RFC").ToString.Trim - Dim Calle As String = Row("Calle").ToString - Dim NumExt As Decimal = Row("Número exterior").ToString.ToDecimal - Dim Colonia As String = Row("Colonia").ToString - Dim CodigoPostal As Decimal = Row("Código Postal").ToString.ToDecimal - Dim Poblacion As String = Row("Población").ToString - Dim Estado As String = Row("Estado").ToString + Dim RFC As String = Row("RFC").ToString.Trim + + Dim Dirrecion As String = $"{ Row("Población").ToString}, { Row("Estado").ToString} , Colonia { Row("Colonia").ToString}, {Row("Calle").ToString} #{Row("Número exterior").ToString}" + + 'Dim NumExt As String = Row("Número exterior").ToString + + + ' Dim Colonia As String = Row("Colonia").ToString + Dim CodigoPostal As Integer = Row("Código Postal").ToString.ToEntero + + ' Dim Poblacion As String = Row("Población").ToString + + 'Dim Estado As String = Row("Estado").ToString Dim Telefono As String = Row("Teléfono").ToString - Dim Contacto As String = Row("Contacto").ToString + Dim ContactoMail As String = Row("Contacto").ToString Dim CelularContacto As String = Row("Celular Contacto").ToString Dim LimiteCredito As Double = Row("Limite Credito").ToString.ToDouble - Dim PlazoCobranza As Integer = Row("Plazo Cobranza").ToString.ToEntero + Dim PlazoCobranza As Integer = Row("Plazo Cobranza").ToString.ToEntero + + Dim Banco As String = Row("Banco").ToString + Dim NumeroCuenta As String = Row("N° CUENTA").ToString.Replace("-", "").Replace(" ", "") + Dim ClabeInter As String = Row("Clabe Inter").ToString.Replace("-", "").Replace(" ", "") + Dim CveProveedor As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"RFC = '{RFC}'").ToString.ToEntero - Dim CveProveedor2 As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"RazonSocial = '{RazonSocial}'").ToString.ToEntero - Dim CveProveedor3 As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"Codigo = '{Codigo}'").ToString.ToEntero - - If CveProveedor > 0 Or CveProveedor2 > 0 Or CveProveedor3 > 0 Then - Contador = Contador + 1 - 'If Not ObjProv.UpdateProveedor(Codigo, RazonSocial, RazonSocial, RazonSocial, RFC, Calle, Telefono, - ' Contacto, "", Telefono, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", - ' -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, -1, True, "", "", False, CveProveedor) Then - ' ErrorProv = True - ' Exit For - 'End If - Else - If Not ObjProv.AddProveedor(Codigo, RazonSocial, RazonSocial, RazonSocial, RFC, Calle, Telefono, - Contacto, "", Telefono, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", - -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, -1, "", "", False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then + Dim CveProveedor2 As Integer = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"RazonSocial = '{RazonSocial}'").ToString.ToEntero + Dim CveProveedor3 As Integer = 0 + + If Codigo.Trim.Length > 0 Then + CveProveedor3 = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveProveedor", $"Codigo = '{Codigo}'").ToString.ToEntero + End If + + + + ' If CveProveedor > 0 Or CveProveedor2 > 0 Or CveProveedor3 > 0 Then + If CveProveedor > 0 Or CveProveedor2 > 0 Or CveProveedor3 > 0 Then + Contador = Contador + 1 + + 'If Not ObjProv.UpdateProveedor(Codigo, RazonSocial, RazonSocial, RazonSocial, RFC, Calle, Telefono, + ' Contacto, "", Telefono, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", + ' -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, -1, True, "", "", False, CveProveedor) Then + ' ErrorProv = True + ' Exit For + 'End If + + Else + + Telefono = Telefono.Replace("-", "").Replace("(", "").Replace(")", "").Trim + CelularContacto = CelularContacto.Replace("-", "").Replace("(", "").Replace(")", "").Trim + + Telefono = If(Telefono.Length > 10, "", Telefono) + CelularContacto = If(CelularContacto.Length > 10, "", Telefono) + + If Not ObjProv.AddProveedor(Codigo, RazonSocial, RazonSocial, RazonSocial, RFC, Dirrecion, Telefono, + "", ContactoMail, CelularContacto, LimiteCredito, PlazoCobranza, "", 0, 0, 0, -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", + -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, "", -1, -1, "", "", False, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CP:=CodigoPostal) Then ErrorProv = True - Exit For - End If - End If - Next + Exit For + + + Else + + Dim ErrorCuentaDeposito As Boolean = False + 'RESTRICCIONES GENERALES + 'QUE TENGA ALGUN DATO DE TIPO DE CUENTA + If NumeroCuenta.Trim.Length = 0 AndAlso ClabeInter.Trim.Length = 0 Then + ErrorCuentaDeposito = True + End If + + 'SI CLABE TIENE ALGO DEBE TENER UNA LOGITUD EXACTA DE 18 + If ClabeInter.Trim.Length <> 0 AndAlso ClabeInter.Trim.Length <> 18 Then + ErrorCuentaDeposito = True + End If + + If Not ErrorCuentaDeposito Then + Dim ObjGrales As New ClsGenerales(ObjProv.IniciaTransacSQL) + If Not ObjGrales.AddCuentasDepositos(Banco, "-1", "-1", NumeroCuenta, ClabeInter, "-1", "-1", "-1", "-1", UsuarioActual.CveUsuario, 1, CveProveedor:=ObjProv.CveProveedor) Then + 'ErrorProv = True + End If + End If + End If + End If + + + + + Next + + + + + + + + + If Not ErrorProv Then ObjProv.Commit() If ObjProv.GetProveedores(ClsCompProveedores.TipoConsulta.ParaGlobalDT, -1, "-1", "-1", "-1", "-1", "-1", "-1", "-1", -1, -1) Then Application("GlobalDTCompProveedores") = ObjProv.DtResultados @@ -1772,10 +1943,12 @@ Partial Class General_SaldosIniciales End Sub - Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click - Dim Directorio As String = "" + Protected Sub BtnDescargar_Click(sender As Object, e As EventArgs) Handles BtnDescargar.Click + + Dim Directorio As String = "" + If RblFormato.SelectedValue = "1" Then - Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoClientes.xlsx" + Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoProveedor.xlsx" ElseIf RblFormato.SelectedValue = "2" Then Directorio = AppDomain.CurrentDomain.BaseDirectory & "Empresas\Grales\SaldosIniciales\FormatoClientes.xlsx" ElseIf RblFormato.SelectedValue = "3" Then