diff --git a/Acumuladores/RepIndicadorDiario.aspx.vb b/Acumuladores/RepIndicadorDiario.aspx.vb
index ca676daf2..2e229cfe7 100644
--- a/Acumuladores/RepIndicadorDiario.aspx.vb
+++ b/Acumuladores/RepIndicadorDiario.aspx.vb
@@ -105,7 +105,7 @@ Partial Class ACumuladores_RepIndicadorDiario
TCEspecifico = -1
End If
- If ObjAcum.GetRepIndicadorDiario(FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+ If ObjAcum.GetRepIndicadorDiario(FechaI, FechaF, DdlSubProyecto.SelectedValue.ToEntero, usuarioactual.cveusuario, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjAcum.DtResultados
DtDatos = ObjAcum.DtResultados
Else
@@ -153,8 +153,8 @@ Partial Class ACumuladores_RepIndicadorDiario
If e.Row.RowType = DataControlRowType.DataRow Then
- If e.Row.DBCampo("Partida").Contiene("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14") Then
- e.Row.FCHyperLink("HplImporteAldia").NavigateUrl = String.Format("RepIndicadorDiarioDetalle.aspx?Partida={0}&FI={1}&FF={2}&CveSubProyecto={3}", e.Row.DBCampo("Partida"), txtFechaI.Text, txtFechaF.Text, DdlSubProyecto.SelectedValue)
+ If e.Row.DBCampo("Partida").Contiene("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16") Then
+ e.Row.FCHyperLink("HplImporteAldia").NavigateUrl = String.Format("RepIndicadorDiarioDetalle.aspx?Partida={0}&FI={1}&FF={2}&CveSubProyecto={3}", e.Row.DBCampo("Partida"), txtFechaF.Text, txtFechaF.Text, DdlSubProyecto.SelectedValue)
End If
If e.Row.DataKey("Ordernador2").ToEntero = 100 Or e.Row.DataKey("Seccion").ToEntero = 3 And (e.Row.DataKey("TipoCategoria").ToEntero = 6 Or e.Row.DataKey("TipoCategoria").ToEntero = 7) Then
diff --git a/Acumuladores/RepIndicadorDiarioDetalle.aspx b/Acumuladores/RepIndicadorDiarioDetalle.aspx
index 5a5a8955c..b60f975f7 100644
--- a/Acumuladores/RepIndicadorDiarioDetalle.aspx
+++ b/Acumuladores/RepIndicadorDiarioDetalle.aspx
@@ -96,6 +96,8 @@
+
+
@@ -104,6 +106,8 @@
+
+
diff --git a/Acumuladores/RepIndicadorDiarioDetalle.aspx.vb b/Acumuladores/RepIndicadorDiarioDetalle.aspx.vb
index f06c03605..7f6974f37 100644
--- a/Acumuladores/RepIndicadorDiarioDetalle.aspx.vb
+++ b/Acumuladores/RepIndicadorDiarioDetalle.aspx.vb
@@ -21,7 +21,6 @@ Partial Class Acumuladores_RepIndicadorDiarioDetalle
#Region " CARGA DATOS INICIALES "
-
Private Sub CargaParametrosDetalle()
CargarCentrosDeCosto(Nothing, DdlSubProyecto, Nothing, LblSubProyecto)
@@ -52,7 +51,7 @@ Partial Class Acumuladores_RepIndicadorDiarioDetalle
FechaI = txtFechaI.Text.ToDate
FechaF = txtFechaF.Text.ToDate
- If ObjAcum.GetRepIndicadorDiarioDetalle(FechaI, FechaF, DdlOpcion.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
+ If ObjAcum.GetRepIndicadorDiarioDetalle(FechaI, FechaF, DdlOpcion.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
GvDatos.DataSource = ObjAcum.DtResultados
Else
GvDatos.DataSource = Nothing
diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb
index 6a8a46e45..158fb0c0a 100644
--- a/App_Code/ClsAcumuladores.vb
+++ b/App_Code/ClsAcumuladores.vb
@@ -1135,7 +1135,7 @@ Public Class ClsAcumuladores
End Function
- Public Function GetRepIndicadorDiario(FechaInicio As Date, FechaFin As Date, CveSubProyecto As Integer, CveEmpresa As Integer) As Boolean
+ Public Function GetRepIndicadorDiario(FechaInicio As Date, FechaFin As Date, CveSubProyecto As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
@@ -1145,6 +1145,7 @@ Public Class ClsAcumuladores
.Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
@@ -1162,7 +1163,7 @@ Public Class ClsAcumuladores
Return Retorno
End Function
- Public Function GetRepIndicadorDiarioDetalle(FechaInicio As Date, FechaFin As Date, Opcion As Integer, CveSubProyecto As Integer, CveEmpresa As Integer) As Boolean
+ Public Function GetRepIndicadorDiarioDetalle(FechaInicio As Date, FechaFin As Date, Opcion As Integer, CveSubProyecto As Integer, CveUsuario As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
@@ -1173,6 +1174,7 @@ Public Class ClsAcumuladores
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@Opcion", SqlDbType.Int).Value = Opcion
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
+ .Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
diff --git a/App_Code/ClsCRM.vb b/App_Code/ClsCRM.vb
index 5db431cb1..cdad985da 100644
--- a/App_Code/ClsCRM.vb
+++ b/App_Code/ClsCRM.vb
@@ -447,11 +447,11 @@ Public Class ClsCRM
.Add("@Correo", SqlDbType.VarChar).Value = Correo
.Add("@CveGiroClasificacion", SqlDbType.Int).Value = CveGiroClasificacion
- .Add("@RETURN_VALUE", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
+ .Add("@CveEmpresaCRM", SqlDbType.Int).Direction = ParameterDirection.ReturnValue
End With
Try
SqlAdapter.Fill(Data)
- CveEmpresaCRM = SqlAdapter.SelectCommand.Parameters("@RETURN_VALUE").Value.ToString().ToEntero()
+ CveEmpresaCRM = SqlAdapter.SelectCommand.Parameters("@CveEmpresaCRM").Value.ToString().ToEntero()
Catch ex As Exception
OnError("Ocurrió un error al agregar la Empresa CRM.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
diff --git a/App_Code/ClsPaginas.vb b/App_Code/ClsPaginas.vb
index 0eb004041..062a5f89d 100644
--- a/App_Code/ClsPaginas.vb
+++ b/App_Code/ClsPaginas.vb
@@ -16,6 +16,9 @@ Imports Stimulsoft.Report
Imports System.Xml
Imports System.Web.Http.ValueProviders
Imports ADServerControl
+Imports System.Net.Http
+Imports Newtonsoft.Json
+Imports Newtonsoft.Json.Linq
'NOTA AD TEAM
@@ -7687,8 +7690,14 @@ Public Class ClsPaginas
Dim Archivo As New System.IO.FileInfo(RutaFormato)
If Archivo.Exists Then
-
+ 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
+ ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt")
+ ' retorno = StreamBytesStimulsoft("Facturas", RutaFormato, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF")
+ 'Else
+ ' retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing)
+ 'End If
retorno = StreamPDF(RutaFormato, lrds, params, NombreArchivo, "PDF", MR:=Nothing)
+
Dim ArchivoPDF As New System.IO.FileInfo(String.Format("{0}PDF\{1}\{2}.pdf", UsuarioActual.Empresa.Ruta, Vta.TipoDocto, Vta.SerieFolio))
If Guardar Then
If Not ArchivoPDF.Exists Then
@@ -7711,6 +7720,12 @@ Public Class ClsPaginas
Else
params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC))
+ 'If UsuarioActual.Empresa.Funcionalidad(350) = "1" Then
+ ' RutaFormato = RutaFormato.Replace(".rdlc", ".mrt")
+ ' retorno = StreamBytesStimulsoft("Facturas", RutaFormatoDefault, lrds, params, NombreArchivo:=NombreArchivo, Formato:="PDF")
+ 'Else
+ ' retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing)
+ 'End If
retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing)
End If
Catch ex As Exception
@@ -7719,6 +7734,82 @@ Public Class ClsPaginas
Return retorno
End Function
+
+ Protected Function StreamBytesStimulsoft(Opcion As String, RutaReporte As String, DataSource As List(Of ReportDataSource), Parametros As List(Of ReportParameter), Optional NombreArchivo As String = "Reporte", Optional Formato As String = "PDF") As Byte()
+ 'limpio ReportViwer
+ Dim sw As New System.Diagnostics.Stopwatch()
+ sw.Start()
+ Dim Bytes As Byte() = Nothing
+
+ Dim CveUsuario As Integer = 0
+ Dim CveEmpresa As Integer = 0
+ Dim RutaEmpresa As String = ""
+
+ If Context.Session("UsuarioSIG") IsNot Nothing Then
+ CveUsuario = UsuarioActual.CveUsuario
+ CveEmpresa = UsuarioActual.CveEmpresa
+ RutaEmpresa = UsuarioActual.Empresa.RutaArchivos
+ End If
+
+ Dim bdir As String = If(RutaReporte.Contains("Empresas"), ModExtensiones.DirectorioBaseEmpresas, AppDomain.CurrentDomain.BaseDirectory)
+
+ 'TOMAR LA RUTA BASE PARA EL DIRECTORIO DE LA EMPRESA
+ If Not String.IsNullOrEmpty(RutaEmpresa) AndAlso Not RutaReporte.Contains("Grales") AndAlso Not RutaReporte.Contains("Contabilidad/Reportes/") Then
+ bdir = RutaEmpresa.Replace($"{CveEmpresa}/", "")
+ End If
+
+ RutaReporte.Replace("/", "\")
+
+ If Not RutaReporte.ToUpper().StartsWith(bdir.ToUpper()) Then
+ RutaReporte = String.Format("{0}{1}", bdir, RutaReporte)
+ End If
+
+ 'SITIO DE PRUEBA EN IIS
+ Dim Url = New Uri(String.Format("{0}{1}", "http://localhost:2202/", Opcion))
+
+ Try
+ Dim dataSourceArray As New JArray()
+ Dim paramsArray As New JArray()
+
+ For Each rds As ReportDataSource In DataSource
+ dataSourceArray.Add(New JObject(New JProperty("Nombre", rds.Name), New JProperty("Valor", JArray.Parse(JsonConvert.SerializeObject(rds.Value)))))
+ Next
+
+ For Each param As ReportParameter In Parametros
+ paramsArray.Add(New JObject(New JProperty("Nombre", param.Name), New JProperty("Valor", param.Values.Item(0))))
+ Next
+
+ Dim payload As New JObject(
+ New JProperty("formato", Formato),
+ New JProperty("ruta", RutaReporte),
+ New JProperty("parametros", paramsArray),
+ New JProperty("dataSource", dataSourceArray)
+ )
+
+ Dim data = New StringContent(payload.ToString(), Encoding.UTF8, "application/json")
+
+ Using httpClient = New HttpClient()
+ Using request = New HttpRequestMessage(HttpMethod.Post, Url)
+ 'request.Headers.Add("ADSToken", Encripta(String.Format("CVEEMPRESA={0}&TICKS={1}&CVEUSUARIO=100", CveEmpresa, DateTime.UtcNow.Ticks)))
+ request.Content = New StringContent(payload.ToString(), Encoding.UTF8, "application/json")
+ Dim response = httpClient.SendAsync(request).Result
+ If response.StatusCode = Net.HttpStatusCode.OK Then
+ Bytes = response.Content.ReadAsByteArrayAsync().Result
+ End If
+ End Using
+ End Using
+ Catch ex As Exception
+ OnError("Ocurrió un error al descargar la factura", ex)
+ End Try
+
+ sw.Stop()
+
+ If sw.Elapsed.TotalSeconds > 5 Then
+ GuardaLog($"Reporte:{RutaReporte} | Tiempo Renderizado Milisegundos: {sw.ElapsedMilliseconds},Total Segundos: {sw.Elapsed.TotalSeconds} ")
+ End If
+
+ Return Bytes
+ End Function
Private Function ValorNodoXML(n As System.Xml.XmlNode, Campo As String, Optional Retorno As String = "") As String
Dim o As System.Xml.XmlNode = n.Attributes.Cast(Of System.Xml.XmlAttribute)().SingleOrDefault(Function(a) String.Compare(a.Name, Campo, True) = 0)
If o Is Nothing Then
diff --git a/App_Code/ClsVentas.vb b/App_Code/ClsVentas.vb
index 1e17d5ae3..eb05b55d1 100644
--- a/App_Code/ClsVentas.vb
+++ b/App_Code/ClsVentas.vb
@@ -3345,7 +3345,9 @@ Public Class ClsVentas
'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT
If CveEstatus = 5 Then
- If ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC) Then
+ Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC)
+ If Resp.Verificado Then
+
If Not ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then
CveVentasError.Add(PCveVenta.ToEntero)
End If
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 087d8e134..7bc5842be 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -394,9 +394,14 @@ Namespace Modelos
SetSubProyecto()
SetSubProyectoMatriz()
SetCliente()
+ If ObjVentas.DtResultados.Rows(0)("IEPS").ToString.ToDecimal <= 0 Then
+ Me.VentaDesglosaIEPS = False
+ Else
+ Me.VentaDesglosaIEPS = True
+ End If
SetTotales(ObjVentas.DtResultados, ObjVentas)
+ End If
End If
- End If
If ObjVentas.GetVentaDetalle(CveVenta) Then
Me.DtDetalle = ObjVentas.DtResultados.Copy()
End If
@@ -4636,8 +4641,8 @@ Namespace Modelos
''' Cancela la factura para poder realizar la refacturacion
'''
'''
- Public Function CancelarPorRefacturacion(CveMotivoCancelacion As Integer, Motivo As String, Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = False, Optional CveEstadoCancelacion As Integer = 0) As MCancelacionVentaMensaje
- Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion, ValidarSAT:=ValidarSAT, CveEstadoCancelacion:=CveEstadoCancelacion)
+ Public Function CancelarPorRefacturacion(CveMotivoCancelacion As Integer, Motivo As String, Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = False, Optional CveEstadoCancelacion As Integer = 0, Optional CveEstatusFacturaAsignado As Integer = -1) As MCancelacionVentaMensaje
+ Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion, ValidarSAT:=ValidarSAT, CveEstadoCancelacion:=CveEstadoCancelacion, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado)
End Function
'''
''' Cancela la factura y realiza las operaciones correspondientes
@@ -4904,7 +4909,8 @@ Namespace Modelos
'SI NO SE PUDO OBTENER DEL SERVICIO, UTILIZA EL METODO DE CANCELACION PARA OBTENER EL ACUSE
If CancelacionAcuse = "" Then
- If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion) Then
+ Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion)
+ If Resp.Verificado Then
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
If RequiereAceptacion Then
CancelacionFecha = Now.Date
@@ -4983,15 +4989,18 @@ Namespace Modelos
If Not ObtenerAcuse Then
If ContinuarCancelacion Then
- If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=CvePACCancelacion, ValidaFactura:=ValidarSAT, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion) Then
+ Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=CvePACCancelacion, ValidaFactura:=ValidarSAT, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion)
+ If Resp.Verificado Then
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
- If RequiereAceptacion Then
- CancelacionFecha = Now.Date
- CveEstatus = 20
- Else
- CancelacionFecha = ObjCancelacion.CancelacionFecha
- CveEstatus = 5
- End If
+ 'If Resp.cve Then
+ ' CancelacionFecha = Now.Date
+ ' CveEstatus = 20
+ 'Else
+ ' CancelacionFecha = ObjCancelacion.CancelacionFecha
+ ' CveEstatus = 5
+ 'End If
+ CveEstatus = Resp.CveEstatus
+ CancelacionFecha = Resp.CancelacionFecha
CancelacionAcuse = ObjCancelacion.CancelacionAcuse
Else
Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.
Origen del error: WebService www.sat.gob.mx"
@@ -5093,7 +5102,7 @@ Namespace Modelos
If Not AplicaRefacturacionConPagos AndAlso ((((ObjFactura.Saldo > 0 AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23))) OrElse (ObjFactura.Total = 0 AndAlso UsuarioActual.CveEmpresa.Contiene(72) AndAlso ObjFactura.TipoDocto.Contiene("Ing"))) AndAlso CveEstatus.Contiene(4, 5)) OrElse (CvePlantillaPoliza = 7 AndAlso (CveEstatus > 0 AndAlso Not CveEstatus.Contiene(20, 23)))) Then
'CUANDO SE CANCELA, LA PÓLIZA DEBE DE SER DE DIARIO
- CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, Now, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
+ CvePrePoliza = ObjConta.AddPrePolizas("Modelos/CancelarDocumento", CvePlantillaPoliza, ObjFactura.Total, ObjFactura.Total, ObjFactura.CveMoneda, CancelacionFecha, ObjFactura.Cliente.Nombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
ObjFactura.CvePrePoliza = CvePrePoliza
If ObjFactura.CvePrePoliza <= 0 Then
@@ -6123,7 +6132,9 @@ Namespace Modelos
ErrorCancelar = True
End If
- If ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC) Then
+ Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC)
+
+ If Resp.Verificado Then
'falta verificar traer el acuse y reenviarlo
If UsuarioActual.Empresa.UsaAC Then
Dim Pol As Modelos.RetornoPolizaConta = GenerarPolizaAC(Me, ObjAC, True)
diff --git a/App_Code/Timbrado.vb b/App_Code/Timbrado.vb
index d11401ed9..7b36fe3bc 100644
--- a/App_Code/Timbrado.vb
+++ b/App_Code/Timbrado.vb
@@ -111,7 +111,8 @@ Public Class Timbrado
End If
solicitud = Nothing
Else
- If CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion) Then
+ Dim Resp As RespuestaCancelacionSAT = CFDICancelar(UsuarioActual.Empresa, FolioFiscal, TotalT, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion, CveSATMotivoCancelacion:=CveSATMotivoCancelacion, FolioSustitucion:=FolioSustitucion)
+ If Resp.Verificado Then
'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
CancelacionFecha = Me.CancelacionFecha
CancelacionAcuse = Me.CancelacionAcuse
@@ -206,8 +207,8 @@ Public Class Timbrado
Return Retorno
End Function
- Public Function CFDICancelar(Empresa As Empresa, FolioFiscal As String, Total As Decimal, RFCReceptor As String, RFCEmisor As String, Optional CvePACCancelacion As Integer = 2, Optional ValidaFactura As Boolean = True, Optional CveSATMotivoCancelacion As Integer = -1, Optional FolioSustitucion As String = "") As Boolean
- Dim Retorno As Boolean = False
+ Public Function CFDICancelar(Empresa As Empresa, FolioFiscal As String, Total As Decimal, RFCReceptor As String, RFCEmisor As String, Optional CvePACCancelacion As Integer = 2, Optional ValidaFactura As Boolean = True, Optional CveSATMotivoCancelacion As Integer = -1, Optional FolioSustitucion As String = "") As RespuestaCancelacionSAT
+ Dim Retorno As New RespuestaCancelacionSAT
Dim MsgCancelacion As New StringBuilder
If CvePACCancelacion = 3 Then
@@ -219,10 +220,14 @@ Public Class Timbrado
Dim Vigencia = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
If Vigencia IsNot Nothing Then
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
- Return False
+ Retorno.Estado = "NO CANCELABLE"
+ Retorno.Verificado = False
+ Return Retorno
End If
Else
- Return False
+ Retorno.Estado = "NO VALIDADO"
+ Retorno.Verificado = False
+ Return Retorno
End If
End If
End If
@@ -277,7 +282,10 @@ Public Class Timbrado
Catch ex As Exception
CancelacionFecha = xmlDoc.GetElementsByTagName("CancelaCFDResult")(0).Attributes("Fecha").Value.ToDate
End Try
- Retorno = True
+
+ Retorno.Verificado = True
+ Retorno.CancelacionFecha = CancelacionFecha
+ Retorno.CancelacionAcuse = CancelacionAcuse
End If
'End If
@@ -324,15 +332,15 @@ Public Class Timbrado
#Region "Valida"
If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
#End Region
@@ -351,7 +359,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End Try
@@ -360,8 +368,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
- Return False
-
+ Retorno.Verificado = False
End Try
#End Region
@@ -430,10 +437,14 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
- Retorno = True
+ Retorno.Verificado = True
+ Retorno.CancelacionFecha = CancelacionFecha
+ Retorno.CancelacionAcuse = CancelacionAcuse
Else
CancelacionAcuse = resp.MensajeDeError
- Retorno = False
+ Retorno.Verificado = True
+ Retorno.CancelacionFecha = CancelacionFecha
+ Retorno.CancelacionAcuse = CancelacionAcuse
End If
solicitud = Nothing
Case 4
@@ -456,10 +467,13 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
- Retorno = True
+ Retorno.Verificado = True
+ Retorno.CancelacionFecha = CancelacionFecha
+ Retorno.CancelacionAcuse = CancelacionAcuse
Else
CancelacionAcuse = resp.Descripcion
- Retorno = False
+ Retorno.Verificado = True
+ Retorno.CancelacionAcuse = CancelacionAcuse
End If
solicitud = Nothing
End Select
@@ -468,7 +482,7 @@ Public Class Timbrado
End If
Catch ex As Exception
CancelacionMensaje += $" | ex: {ex}"
- Retorno = False
+ Retorno.Verificado = False
End Try
'Libera memoria
@@ -503,15 +517,15 @@ Public Class Timbrado
#Region "Valida"
If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
#End Region
@@ -561,16 +575,19 @@ Public Class Timbrado
MsgCancelacion.AppendFormat("-3.4.3")
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
+ Retorno.CancelacionAcuse = CancelacionAcuse
+ Retorno.CancelacionFecha = CancelacionFecha
+
Else
CancelacionFecha = Now
End If
+ Retorno.Verificado = True
- Retorno = True
Else
MsgCancelacion.AppendFormat("-3.5")
CancelacionAcuse = resp.NumeroError
CancelacionMensaje = resultadoCancelacion.Descripcion
- Retorno = False
+ Retorno.Verificado = True
End If
Case 4
@@ -599,15 +616,15 @@ Public Class Timbrado
#Region "Valida"
If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End If
#End Region
@@ -627,7 +644,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End Try
@@ -636,8 +653,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
- Return False
-
+ Retorno.Verificado = False
End Try
#End Region
objCan.CancelacionCfdi = True
@@ -662,7 +678,9 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.DocumentElement.Attributes("Fecha").Value.ToDate
- Retorno = True
+ Retorno.Verificado = True
+ Retorno.CancelacionAcuse = CancelacionAcuse
+ Retorno.CancelacionFecha = CancelacionFecha
MsgCancelacion.AppendFormat("4.5.2-")
End If
@@ -671,7 +689,6 @@ Public Class Timbrado
Case 5
CancelacionAcuse = ""
- Retorno = False
MsgCancelacion.AppendFormat("5.1-")
Dim TimbraProduccion As Boolean = True
@@ -700,7 +717,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End Try
Try
@@ -708,7 +725,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
- Return False
+ Retorno.Verificado = False
End Try
Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495"
@@ -734,8 +751,11 @@ Public Class Timbrado
'EN PROCESO, CANCELABLE SIN ACEPTACION,CANCEALDO PREVIAMENTE
If cancelacion.codigo.Contiene("96", "201", "202") Then
CancelacionFecha = Now
- Retorno = True
+
CancelacionAcuse = result.acuseCancelBase64
+ Retorno.Verificado = True
+ Retorno.CancelacionAcuse = CancelacionAcuse
+ Retorno.CancelacionFecha = CancelacionFecha
End If
CancelacionMensaje = cancelacion.mensaje
Else
@@ -749,8 +769,25 @@ Public Class Timbrado
End If
End Select
+ 'valida que si se halla cancelado
+ Dim VigenciaExtra = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
+ If Retorno.Verificado AndAlso VigenciaExtra IsNot Nothing Then
+ If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso Not VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
+ Retorno.Estado = "VIGENTE"
+ Retorno.CveEstatus = 23
+ End If
+ If VigenciaExtra.Estado.ToUpper = "VIGENTE" AndAlso VigenciaExtra.EstatusCancelacion.ToUpper.Contiene("EN PROCESO") Then
+ Retorno.Estado = "EN PROCESO"
+ Retorno.CveEstatus = 20
+ End If
+ If VigenciaExtra.Estado.ToUpper = "CANCELADO" Then
+ Retorno.Estado = "CANCELADO"
+ Retorno.CveEstatus = 5
+ End If
- If Not Retorno Then
+ End If
+
+ If Not Retorno.Verificado Then
GuardaLog($"****** Error al cancelar factura ****** Estatus: {CancelacionState} | Mensaje: {CancelacionMensaje} | Mensaje SAT: {MsgCancelacion.ToString} ")
End If
@@ -4010,9 +4047,12 @@ Public Class Timbrado
Try
Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg"
- 'temp
- 'Dim b As Byte() = cfdi. .QrCode($"?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}")
- 'File.WriteAllBytes(RutaCBB, b)
+ Dim qrCode As New GoFac.QrCode()
+ 'String cadenaqrCode = qrCode.GenerarCadenaQrCode(txtXml.Text)
+
+ Dim bCBB As Byte() = qrCode.GenerarQrCode($"{LigaVerificacionSAT}?re={UsuarioActual.Empresa.RFC}&rr={ObjCFDITimbre.Receptor.RFC}&tt={String.Format("{0,12:F6}", ObjCFDITimbre.Comprobante.Total).Trim()}&id={FolioFiscal}&fe=ELleDg==")
+ File.WriteAllBytes(RutaCBB, bCBB)
+ bCBB = Nothing
Catch ex As Exception
OnError("Ocurrió un error al generar el QR", ex)
End Try
diff --git a/App_Code/Timbres.vb b/App_Code/Timbres.vb
index c5fe74c5b..654f5ae7f 100644
--- a/App_Code/Timbres.vb
+++ b/App_Code/Timbres.vb
@@ -85,12 +85,8 @@ Public Class Timbres
Timbre.Comprobante.Descuentos = Obj.Descuento
Timbre.Comprobante.Moneda = "XXX"
Timbre.Comprobante.TipoCambio = "" ' CONDICIÓN SI LA MONEDA ES 'XXX'
-
- Timbre.Receptor.RFC = UsuarioActual.Empresa.RFC
- Timbre.Receptor.Nombre = UsuarioActual.Empresa.Empresa
Timbre.Receptor.UsoCFDI = "P01"
-
Dim totSubTotal As Decimal = Obj.SubTotal
Dim totIVA As Decimal = Obj.IVA
Dim totRetIVA As Decimal = Obj.RetIVA
@@ -124,9 +120,11 @@ Public Class Timbres
If ObjGrales.DtResultados.Rows.Count = 1 Then
Dim DtMovimientos As DataTable = Nothing
-
Dim drT As DataRow = ObjGrales.DtResultados.Rows(0)
+ Timbre.Receptor.RFC = drT("DestinatarioRFC").ToString
+ Timbre.Receptor.Nombre = drT("DestinatarioNombre").ToString
+
CveMovimiento = drT("CveMovimientoAlmacen").ToString.ToEntero
FechaSalida = drT("FechaEntrega").ToString.ToDateTime
FechaLlegada = drT("FechaLlegada").ToString.ToDateTime
diff --git a/App_Code/WsSIGWeb.vb b/App_Code/WsSIGWeb.vb
index d8e3a40da..cee8000b4 100644
--- a/App_Code/WsSIGWeb.vb
+++ b/App_Code/WsSIGWeb.vb
@@ -67,8 +67,9 @@ Public Class WsSIGWeb
'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT
If CveEstatus = 5 Then
- If ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC) Then
- If ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then
+ Dim Resp As RespuestaCancelacionSAT = ObjCancelacion.CFDICancelar(Usuario.Empresa, FolioFiscal, Total, RFCReceptor, Usuario.Empresa.RFC)
+ If Resp.Verificado Then
+ If ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Resp.CancelacionFecha, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then
Retorno = True
Else
MensajeError = $"Ocurrió un error al actualizar la cancelación la CveVenta {PCveVenta}"
diff --git a/App_Code/modExtensiones.vb b/App_Code/modExtensiones.vb
index bb6c90d07..0cad09345 100644
--- a/App_Code/modExtensiones.vb
+++ b/App_Code/modExtensiones.vb
@@ -147,6 +147,16 @@ Namespace Extensiones
End If
End Function
+ Public Class RespuestaCancelacionSAT
+ Public Property Verificado As Boolean = False
+ Public Property CveEstatus As Integer = 0
+ Public Property Estado As String = ""
+ Public Property EstatusCancelacion As String = ""
+ Public Property CancelacionFecha As Date
+ Public Property CancelacionAcuse As String = ""
+ End Class
+
+
#Region "Log"
diff --git a/Bancos/IE.aspx.vb b/Bancos/IE.aspx.vb
index f3eade517..7da7e124b 100644
--- a/Bancos/IE.aspx.vb
+++ b/Bancos/IE.aspx.vb
@@ -839,7 +839,7 @@ Partial Class Bancos_IE
- DdlMotivoCancelacion.DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa)
+ DdlMotivoCancelacion.DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa).FiltraParametros("CveSATMotivoCancelacion IN (2,3)")
DdlMotivoCancelacion.DataBind()
DdlMotivoCancelacion.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
@@ -5489,10 +5489,14 @@ Partial Class Bancos_IE
Dim DescripcionAus As String = TxtDescripcion.Text
- If DdlTipoTransaccion.SelectedItem.Text <> "Seleccione Tipo Movimiento" Then DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Movimiento:{DdlTipoTransaccion.SelectedItem.Text}")
+ If DdlTipoTransaccion.SelectedItem.Text <> "Seleccione Tipo Movimiento" Then DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Movimiento: {DdlTipoTransaccion.SelectedItem.Text}")
+
+ DescripcionAus = $"{DescripcionAus}, Fecha Documento: {TxtFechaDocumento.Text} , Observaciones: {TxtObservaciones.Text} . "
+
If DdlCuenta.SelectedItem.Text <> "Seleccione" Then DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Cuenta:{DdlCuenta.SelectedItem.Text}")
If TxtFolio.Text <> "" Then DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Número:{TxtFolio.Text}")
If TxtImporte.Text <> "" AndAlso TxtImporte.Text <> "0" Then DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Importe:{TxtImporte.Text}")
+
If DdlCliente.Visible Then
DescripcionAus = String.Format("{0} {1}", DescripcionAus, $"Páguese A:{DdlCliente.SelectedText}")
ElseIf DdlProveedores.Visible Then
@@ -5898,7 +5902,7 @@ Partial Class Bancos_IE
e.Row.FCLinkButton("LnkCancelarComplemetno").Visible = True
e.Row.FCDropDownList("DdlMotivoCancelacion").Visible = True
- e.Row.FCDropDownList("DdlMotivoCancelacion").DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa)
+ e.Row.FCDropDownList("DdlMotivoCancelacion").DataSource = GlobalDTMotivosCancelacionEmpresa(UsuarioActual.CveEmpresa).FiltraParametros("CveSATMotivoCancelacion IN (2,3)")
e.Row.FCDropDownList("DdlMotivoCancelacion").DataBind()
e.Row.FCDropDownList("DdlMotivoCancelacion").Items.Insert(0, New ListItem("Seleccione Uno", "-1"))
diff --git a/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll
new file mode 100644
index 000000000..4d638b3df
Binary files /dev/null and b/Bin/Microsoft.CodeDom.Providers.DotNetCompilerPlatform.dll differ
diff --git a/CRM/CatEmpresasCRM.aspx.cs b/CRM/CatEmpresasCRM.aspx.cs
index d7b7b4a1f..9001fb0c6 100644
--- a/CRM/CatEmpresasCRM.aspx.cs
+++ b/CRM/CatEmpresasCRM.aspx.cs
@@ -185,7 +185,7 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
Archivo file = TxtExcel.getfiles().Archivos[0];
string Directorio = Server.MapPath("~") + file.path;
- DataTable dt = ReadExcelFile(Directorio + file.filename, true);
+ DataTable dt = ModExtensiones.ReadExcelFile(Directorio + file.filename, true);
DataRowCollection Rows = dt.Rows;
ICRMService cRMService = new CRMService(System.Configuration.ConfigurationManager.ConnectionStrings["Conexion"].ConnectionString);
RequestMedioCaptacion RequestMedioCaptacion = new RequestMedioCaptacion(UsuarioActual.CveEmpresa);
@@ -291,51 +291,51 @@ public partial class CRM_CatEmpresasCRM : ClsPaginas
}
- private DataTable ReadExcelFile(string flatFilePath, bool firstRowHasHeaders)
- {
- SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet());
- ExcelFile excelFile = ExcelFile.Load(flatFilePath);
+ //private DataTable ReadExcelFile(string flatFilePath, bool firstRowHasHeaders)
+ //{
+ // SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet());
+ // ExcelFile excelFile = ExcelFile.Load(flatFilePath);
- int unnamed = 0;
- int cols;
- string[] columns;
- int curRow = 0;
- int curCol = 0;
- DataTable dataTable = new DataTable();
- ExcelWorksheet worksheet = excelFile.Worksheets[0];
+ // int unnamed = 0;
+ // int cols;
+ // string[] columns;
+ // int curRow = 0;
+ // int curCol = 0;
+ // DataTable dataTable = new DataTable();
+ // ExcelWorksheet worksheet = excelFile.Worksheets[0];
- for (cols = 0; cols <= worksheet.Rows[0].AllocatedCells.Count - 1; cols++)
- {
- if (firstRowHasHeaders)
- {
- if (worksheet.Rows[0].Cells[cols].Value != null)
- dataTable.Columns.Add(worksheet.Rows[0].Cells[cols].Value.ToString().Trim());
- else
- dataTable.Columns.Add("Unnamed Column " + (System.Threading.Interlocked.Increment(ref unnamed)));
+ // for (cols = 0; cols <= worksheet.Rows[0].AllocatedCells.Count - 1; cols++)
+ // {
+ // if (firstRowHasHeaders)
+ // {
+ // if (worksheet.Rows[0].Cells[cols].Value != null)
+ // dataTable.Columns.Add(worksheet.Rows[0].Cells[cols].Value.ToString().Trim());
+ // else
+ // dataTable.Columns.Add("Unnamed Column " + (System.Threading.Interlocked.Increment(ref unnamed)));
- curRow = 1;
- }
- else
- dataTable.Columns.Add("Column " + (cols + 1));
- }
+ // curRow = 1;
+ // }
+ // else
+ // dataTable.Columns.Add("Column " + (cols + 1));
+ // }
- while (curRow < worksheet.Rows.Count)
- {
- columns = new string[cols - 1 + 1];
+ // while (curRow < worksheet.Rows.Count)
+ // {
+ // columns = new string[cols - 1 + 1];
- for (curCol = 0; curCol <= cols - 1; curCol++)
- {
- if (worksheet.Rows[curRow].Cells[curCol].Value == null)
- columns[curCol] = "";
- else
- columns[curCol] = worksheet.Rows[curRow].Cells[curCol].Value.ToString();
- }
+ // for (curCol = 0; curCol <= cols - 1; curCol++)
+ // {
+ // if (worksheet.Rows[curRow].Cells[curCol].Value == null)
+ // columns[curCol] = "";
+ // else
+ // columns[curCol] = worksheet.Rows[curRow].Cells[curCol].Value.ToString();
+ // }
- dataTable.Rows.Add(columns);
- curRow += 1;
- }
+ // dataTable.Rows.Add(columns);
+ // curRow += 1;
+ // }
- return dataTable;
- }
+ // return dataTable;
+ //}
}
\ No newline at end of file
diff --git a/Contabilidad/RegPrePolizaS.aspx.vb b/Contabilidad/RegPrePolizaS.aspx.vb
index 7046abfe8..b0404e0a8 100644
--- a/Contabilidad/RegPrePolizaS.aspx.vb
+++ b/Contabilidad/RegPrePolizaS.aspx.vb
@@ -2468,8 +2468,16 @@ Partial Class ContabilidadC_RegPrePolizaS
+
+
End If
+ If Row("Abono").ToString.ToDecimal > 0 And Row("Cargo").ToString.ToDecimal > 0 Then
+ Alert($"Se detecto un error en el registro {ContadorRegistros}, se tiene un valor en cargo({Row("Cargo").ToString.ToDecimal.ToString("###,###,###.00")}) y abono({Row("Abono").ToString.ToDecimal.ToString("###,###,###.00")})", TipoMensaje.MsgAdvertencia)
+ Exit Sub
+ End If
+
+
If CveConceptoContable = 30 AndAlso Row("TipoTransferencia").ToString = "" Then
Alert($" El registro {ContadorRegistros} es movimiento bancario y no se especifica el tipo de transferencia , importe: {ImporteDocumento.ToString("###,###,###.00")}", TipoMensaje.MsgAdvertencia)
@@ -2539,6 +2547,8 @@ Partial Class ContabilidadC_RegPrePolizaS
Next
+
+
TxtTotalCargos.Text = DtMovimientos.SUMD("Cargo").ToString.FormatoNumero
TxtTotalAbonos.Text = DtMovimientos.SUMD("Abono").ToString.FormatoNumero
diff --git a/Empresas/119/Formatos/RepIVAAcreditable.rpt b/Empresas/119/Formatos/RepIVAAcreditable.rpt
index cad593981..5caea88e1 100644
Binary files a/Empresas/119/Formatos/RepIVAAcreditable.rpt and b/Empresas/119/Formatos/RepIVAAcreditable.rpt differ
diff --git a/Empresas/Grales/Formatos/RepIVAAcreditable.rpt b/Empresas/Grales/Formatos/RepIVAAcreditable.rpt
index 5d6ac0536..5d1de1b2f 100644
Binary files a/Empresas/Grales/Formatos/RepIVAAcreditable.rpt and b/Empresas/Grales/Formatos/RepIVAAcreditable.rpt differ
diff --git a/Empresas/Grales/Formatos/RepIVAAcreditable2.rpt b/Empresas/Grales/Formatos/RepIVAAcreditable2.rpt
index 33b2abbc9..1101f58c1 100644
Binary files a/Empresas/Grales/Formatos/RepIVAAcreditable2.rpt and b/Empresas/Grales/Formatos/RepIVAAcreditable2.rpt differ
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index 5719ca0ec..fbdf9185a 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -841,10 +841,10 @@ Partial Class Inventarios_RecepcionAlmacen
If e.Row.DBCampo("TipoDocto").ToString.Contiene({"Fac"}) And e.Row.DBCampo("EstatusAlmacen").ToString.ToEntero = 0 Then
e.Row.FCLinkButton("BtnSurtir").CssClass = "btn btn-primary input-sm"
- e.Row.FCLinkButton("BtnSurtir").Text = " Recibir"
+ e.Row.FCLinkButton("BtnSurtir").Text = " Recibir"
Else
e.Row.FCLinkButton("BtnSurtir").CssClass = "btn yellow-gold input-sm"
- e.Row.FCLinkButton("BtnSurtir").Text = " Devolver "
+ e.Row.FCLinkButton("BtnSurtir").Text = " Devolver "
End If
If UsuarioActual.TienePermisoProceso(201) Then
@@ -1773,6 +1773,8 @@ Partial Class Inventarios_RecepcionAlmacen
Dim DtSeriesNuevas As New DataTable
DtSeriesNuevas.Columns.Add("Serie", GetType(String))
+ 'If CvePSS > 0 And CvePSSerie = 0 Then CvePSSerie = CvePSS
+
'PARA VALIDAR SI LA SERIE ES IGUAL AL CODIGO O CODIGOBARRAS
Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltroPrimero("", "PS")
@@ -1812,48 +1814,52 @@ Partial Class Inventarios_RecepcionAlmacen
Dim Index = 0
For Each Serie In SeriesArreglo
- Dim Row = DtDatosDetalle.NewRow
+ If Serie <> "" Then
- Index = Index + 1
- If Index > LbCantidad.Text.ToEntero Then
- Exit For
- End If
- 'VALIDA QUE SIGA AGREGANDO
- If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then
- Exit For
- End If
+ Dim Row = DtDatosDetalle.NewRow
- 'VERIFICA EXISTENCIAS
- If TipoMovimiento > 1 Then
- Dim Existencia = ObjInventarios.GetExistenciasPS(CvePSSerie, CveUMSerie, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Serie:=Serie)
- If Existencia < 1 Then
- MensajeSinExistencias.Append($"Serie: {Serie}.
")
- Continue For
+ Index = Index + 1
+ If Index > LbCantidad.Text.ToEntero Then
+ Exit For
End If
- If TipoMovimiento = 2 Then
- If DtExistencias.SUM("Existencia", $"Serie = '{Serie}'") = 0 Then
+ 'VALIDA QUE SIGA AGREGANDO
+ If Not DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", CveConsecSerie)).Rows.Count < LbCantidad.Text.ToEntero Then
+ Exit For
+ End If
+
+ 'VERIFICA EXISTENCIAS
+ If TipoMovimiento > 1 Then
+ Dim Existencia = ObjInventarios.GetExistenciasPS(CvePSSerie, CveUMSerie, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Serie:=Serie)
+ If Existencia < 1 Then
MensajeSinExistencias.Append($"Serie: {Serie}.
")
Continue For
End If
+
+ If TipoMovimiento = 2 Then
+ If DtExistencias.SUM("Existencia", $"Serie = '{Serie}'") = 0 Then
+ MensajeSinExistencias.Append($"Serie: {Serie}.
")
+ Continue For
+ End If
+ End If
End If
+
+ 'Dim AplicaCaducidad = False
+ 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltraParametros("").Rows(0) IsNot Nothing Then
+ ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
+ 'End If
+
+ Row("ConsecId") = CveConsecSerie
+ Row("Consec") = DtDatosDetalle.Rows.Count + 1
+ Row("CvePS") = CvePSSerie
+ Row("CveUM") = CveUMSerie
+ Row("PU") = PUSerie
+ Row("Serie") = Serie
+ Row("FechaCaducidad") = MinFecha.ToShortDateString
+
+ DtDatosDetalle.Rows.Add(Row)
End If
-
- 'Dim AplicaCaducidad = False
- 'If GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltraParametros("").Rows(0) IsNot Nothing Then
- ' AplicaCaducidad = If(GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePSSerie).FiltraParametros("").Rows(0)("AplicaCaducidad").ToString = "True", True, False)
- 'End If
-
- Row("ConsecId") = CveConsecSerie
- Row("Consec") = DtDatosDetalle.Rows.Count + 1
- Row("CvePS") = CvePSSerie
- Row("CveUM") = CveUMSerie
- Row("PU") = PUSerie
- Row("Serie") = Serie
- Row("FechaCaducidad") = MinFecha.ToShortDateString
-
- DtDatosDetalle.Rows.Add(Row)
Next
ObjInventarios.Dispose()
@@ -4841,14 +4847,6 @@ Partial Class Inventarios_RecepcionAlmacen
Alert("El nombre de la cuarta columna debe ser 'Serie'. Favor de corregirlo", TipoMensaje.MsgError)
Exit Sub
End If
- 'If Not dt.Columns(4).ColumnName = "Lote" Then
- ' Alert("El nombre de la cuarta columna debe ser 'Lote'. Favor de corregirlo", TipoMensaje.MsgError)
- ' Exit Sub
- 'End If
- 'If Not dt.Columns(5).ColumnName = "FechaCaducidad" Then
- ' Alert("El nombre de la cuarta columna debe ser 'Fecha Caducidad'. Favor de corregirlo", TipoMensaje.MsgError)
- ' Exit Sub
- 'End If
dt.TableName = "Datos"
@@ -4871,12 +4869,15 @@ Partial Class Inventarios_RecepcionAlmacen
Dim CveProducto As Integer = RowPS("CvePS").ToString().ToEntero()
Dim CveUnidadMedida As Integer = RowPS("CveUM").ToString().ToEntero()
+ CvePSSerie = CveProducto
+ CveConsecSerie = DtInv.FiltroPrimeroValor("Consec", "CvePS=" & CvePSSerie).ToEntero
Dim Cantidad As Double = RowExcel("Cantidad").ToString().ToDecimal()
Dim Serie As String = RowExcel("Serie").ToString()
Dim Lote As String = "" '= RowExcel("Lote").ToString()
Dim FechaCaducidad As Date = MinFecha '= If(RowExcel("FechaCaducidad").ToString = "", MinFecha, RowExcel("FechaCaducidad").ToString.ToDate)
Dim Observaciones As String = "" '= If(dt.Columns.Contains("Observaciones"), RowExcel("Observaciones").ToString, "").ToString
+ LbCantidad.Text = Cantidad.ToString
Dim Valido As Boolean = True
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb
index 668f6b8b2..a0f2533fa 100644
--- a/Inventarios/RecepcionUsados.aspx.vb
+++ b/Inventarios/RecepcionUsados.aspx.vb
@@ -589,6 +589,7 @@ Partial Class Inventarios_RecepcionUsados
dt.Columns.Add("TotalExtranjero", Type.GetType("System.Double"))
dt.Columns.Add("CveTamaño", Type.GetType("System.Int32"))
dt.Columns.Add("Tamaño", Type.GetType("System.String"))
+ dt.Columns.Add("CveVentaDetalle", Type.GetType("System.Int32"))
CargaGVM(dt)
DtMovimientos = dt.Clone
@@ -1048,7 +1049,8 @@ Partial Class Inventarios_RecepcionUsados
Protected Sub AddNew(CvePS As Integer, PS As String, CveUM As Integer, UM As String, Cantidad As Double, PU As Double, Serie As String, CodigoAF As String, Codigo As String,
- CveAF As String, Observaciones As String, Lote As String, CveSeccionAlmacen As Integer, SeccionAlmacen As String, Tamaño As String, CveTamaño As Integer)
+ CveAF As String, Observaciones As String, Lote As String, CveSeccionAlmacen As Integer, SeccionAlmacen As String, Tamaño As String, CveTamaño As Integer,
+ Optional CveVentaDetalle As Integer = -1)
'If DdlAlmacen.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un almacen", TipoMensaje.MsgAdvertencia) : RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") : DdlProducto2.SelectedText = "" : Exit Sub
@@ -1116,6 +1118,7 @@ Partial Class Inventarios_RecepcionUsados
registro.Item("CveTamaño") = CveTamaño
registro.Item("Tamaño") = Tamaño
+ registro.Item("CveVentaDetalle") = CveVentaDetalle
DtMovimientos.Rows.Add(registro)
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
@@ -1281,7 +1284,7 @@ Partial Class Inventarios_RecepcionUsados
ImporteConcepto = Dr("PU").ToString.ToDecimal
End If
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, ImporteConcepto, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, Observaciones:=Dr("Observaciones").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
Mensaje = "Error al guardar los movimientos"
ErrorMovInv = True
Exit For
@@ -2269,6 +2272,18 @@ Partial Class Inventarios_RecepcionUsados
DtUsados = ObjVentas.DtResultados.Copy()
End If
+ 'RELACIONA LA VENTA DETALLA DE LA REMISION
+ If DtUsados IsNot Nothing Then
+ DtUsados.Columns.Add(New DataColumn("CveVentaDetalle", GetType(Integer)))
+ For Each RowUsado As DataRow In DtUsados.Rows
+ Dim CveVentaDetalle As Integer = Me.ObjFactura.DtDetalle.FiltroPrimeroValor("CveVentaDetalle", $"EsCargo = 1 AND Cantidad = {RowUsado("Cantidad")} AND CvePS = {RowUsado("CvePS")}").ToEntero()
+ If CveVentaDetalle > 0 Then
+ RowUsado("CveVentaDetalle") = CveVentaDetalle
+ End If
+ Next
+
+ End If
+
Dim RecepcionValida As Boolean = True
If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then
@@ -2334,7 +2349,9 @@ Partial Class Inventarios_RecepcionUsados
Dim Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero()
Dim PU As Double = RowUsado("PU").ToString().ToDouble()
- AddNew(CvePS, PS, CveUM, UM, Cantidad, PU, "", "-1", "-1", "-1", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño)
+ Dim CveVentaDetalle = RowUsado("CveVentaDetalle").ToString().ToEntero()
+
+ AddNew(CvePS, PS, CveUM, UM, Cantidad, PU, "", "-1", "-1", "-1", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño, CveVentaDetalle:=CveVentaDetalle)
Next
End If
diff --git a/Inventarios/RepAlmacen.aspx b/Inventarios/RepAlmacen.aspx
index f9839c246..b470d529a 100644
--- a/Inventarios/RepAlmacen.aspx
+++ b/Inventarios/RepAlmacen.aspx
@@ -163,7 +163,7 @@
- <%# Eval("Almacen") %>
+ <%# Eval("Almacen") %>
diff --git a/Inventarios/RepEntradasSalidas.aspx.vb b/Inventarios/RepEntradasSalidas.aspx.vb
index 33a3b9bc3..ac06dd2ab 100644
--- a/Inventarios/RepEntradasSalidas.aspx.vb
+++ b/Inventarios/RepEntradasSalidas.aspx.vb
@@ -54,6 +54,9 @@ Partial Class Inventarios_ReporteEntradasSalidas
Return (UsuarioActual.CveEmpresa.Contiene(72, 80))
End Get
End Property
+
+
+
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
@@ -82,6 +85,10 @@ Partial Class Inventarios_ReporteEntradasSalidas
TxtFechaI.Text = Request("FechaInicio")
End If
+ If Not IsNothing(Request("Tipo")) Then
+ DdlMovs.SelectedValueExist(Request("Tipo").ToEntero)
+ End If
+
btConsultar_Click(Nothing, Nothing)
End If
CargaPermisos()
diff --git a/Inventarios/TraspasoAlmacen.aspx.vb b/Inventarios/TraspasoAlmacen.aspx.vb
index 93b8d5dc5..b79f29538 100644
--- a/Inventarios/TraspasoAlmacen.aspx.vb
+++ b/Inventarios/TraspasoAlmacen.aspx.vb
@@ -855,6 +855,16 @@ Partial Class Inventarios_TraspasoAlmacen
If ChkTransitorio.Checked Then DivResponsable.Visible = True : DivTransitorio2.Visible = True
Exit Sub
End If
+
+ ''validaciones de carta porte en productos
+ If ChkEmitirTimbrado.Checked AndAlso ChkEmitirCartaPorte.Checked Then
+ ' Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("")
+ 'If Not ValidaPSSAT(DrPS) Then
+ ' Exit Sub
+ 'End If
+ End If
+
+
End If
Dim DrAlmO, DrAlmD As DataRow
@@ -1729,6 +1739,7 @@ Partial Class Inventarios_TraspasoAlmacen
DivTransitorio2.Visible = True
If UsuarioActual.CveEmpresa.Contiene(119, 140) Then
ChkEmitirTimbrado.Checked = True
+ ChkEmitirCartaPorte.Checked = True
End If
Else
RegistraScript(" $('#DivGastoIndirecto').hide(500);")
@@ -1736,6 +1747,7 @@ Partial Class Inventarios_TraspasoAlmacen
DivTransitorio2.Visible = True
DivEmitirTransitorio.Visible = False
ChkEmitirTimbrado.Checked = False
+ ChkEmitirCartaPorte.Checked = True
End If
UpEmitirTransitorio.Update()
CargaAlmacenDestino()
@@ -3145,7 +3157,7 @@ Partial Class Inventarios_TraspasoAlmacen
Protected Sub ChkEmitirTimbrado_CheckedChanged(sender As Object, e As EventArgs)
If ChkEmitirTimbrado.Checked Then
- ChkEmitirCartaPorte.Checked = False
+ ChkEmitirCartaPorte.Checked = True
ChkEmitirCartaPorte.Visible = True
Else
ChkEmitirCartaPorte.Visible = False
diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx
index 1a6e0e97f..3f7fde58b 100644
--- a/Ventas/Clientes.aspx
+++ b/Ventas/Clientes.aspx
@@ -6158,7 +6158,7 @@
|
-
+
|
@@ -6226,7 +6226,7 @@
<%--table table-striped table-advance table-hover Widthall ScrollAD
tabla_correcto grides Widthall mysmallbtn--%>
-
+
@@ -6310,8 +6310,8 @@
-
-
+
+
@@ -6327,7 +6327,7 @@
@@ -6365,7 +6365,7 @@
Aplicado
| |
-
+
|
@@ -6458,7 +6458,7 @@
diff --git a/Ventas/Clientes.aspx.vb b/Ventas/Clientes.aspx.vb
index 9daf8def2..a0207adfd 100644
--- a/Ventas/Clientes.aspx.vb
+++ b/Ventas/Clientes.aspx.vb
@@ -1449,15 +1449,26 @@ Partial Class Clientes
' CargaGridRetenciones()
' CargaDocs()
CargaCombos()
- CargaDocumentacionCliente()
- 'CargaMetodosPago33()
- 'CargaFormaPago33()
- 'CargaComboCFDI()
- 'CargarPagosNoBancarios()
-
- If UsuarioActual.TienePermisoProceso(279) Then
+ CargaDocumentacionCliente()
+ 'CargaMetodosPago33()
+ 'CargaFormaPago33()
+ 'CargaComboCFDI()
+ 'CargarPagosNoBancarios()
+
+
+
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
LnkPorcentajeMarcas.Visible = True
- LnkPorcentajePrecios.Visible = True
+ LnkPorcentajePrecios.Visible = True
+
+ If UsuarioActual.TienePermisoProceso(279) Then
+ TrPreciosPP.Visible = True
+ TrAgregarPMarca.Visible = True
+
+ BtnGuardarPorcentajesMarca.Visible = True
+ BtnGuardarPorcentajes.Visible = True
+ End If
+
End If
@@ -1474,9 +1485,9 @@ Partial Class Clientes
If ObjClientes.Pais = "" Then ObjClientes.Pais = "México"
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 Then
- LnkAgregarVendedorSucursal.Visible = True
- End If
+ 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 Then
+ ' LnkAgregarVendedorSucursal.Visible = True
+ 'End If
'Campos para Modificación
LtlCliente.Text = ObjClientes.Nombre
@@ -1517,7 +1528,20 @@ Partial Class Clientes
LblFechaCaptura.Text = ObjClientes.FechaIng.ToShortDateString()
LblUsuarioCapturo.Text = ObjClientes.Usuario
TxtNombreCorto.Text = ObjClientes.NombreCorto
- DdlVendedor.SelectedValueExist(ObjClientes.Vendedor.ToString())
+
+ Dim CveVendedor = ObjClientes.Vendedor.ToEntero()
+ 'SI YA TIENE UN VALOR ASIGNADO SELECCIONA EL GUARDADO
+ If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
+ Dim Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=1).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", CveVendedor))
+ 'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV
+ If String.IsNullOrEmpty(Vendedor) Then
+ Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", CveVendedor))
+ End If
+ DdlVendedor.SelectedValueExistInsert(CveVendedor, Vendedor)
+ Else
+ DdlVendedor.SelectedValueExist(CveVendedor)
+ End If
+
'TxtVendedor.Text = ObjClientes.Vendedor
TxtPlazoCobranza.Text = ObjClientes.PlazoCobranza.ToString()
TxtPlazoCobranzaRemision.Text = ObjClientes.PlazoCobranzaRemision.ToString()
@@ -8948,8 +8972,28 @@ Partial Class Clientes
CargaDTPorcentajePrecios(DTPorcentajePrecios.FiltraParametros("Estatus <> 'D' "))
+ End Sub
+ Protected Sub GvM_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvM.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ If UsuarioActual.TienePermisoProceso(279) Then
+ e.Row.FCLinkButton("imgE").Visible = True
+ e.Row.FCLinkButton("lnkRemove").Visible = True
+ End If
+
+ End If
+ End Sub
+
+ Protected Sub GvP_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvP.RowDataBound
+ If e.Row.RowType = DataControlRowType.DataRow Then
+
+ If UsuarioActual.TienePermisoProceso(279) Then
+ e.Row.FCLinkButton("imgE").Visible = True
+ e.Row.FCLinkButton("lnkRemove").Visible = True
+ End If
+
+ End If
End Sub
-
Protected Sub GvM_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvM.RowEditing
GvM.EditIndex = e.NewEditIndex
@@ -10422,6 +10466,7 @@ Partial Class Clientes
Alert("Los cambios se guardaron satisfactoriamente.")
End Using
- End Sub
+ End Sub
+
End Class
diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb
index 8d4cb3db8..ed0629450 100644
--- a/Ventas/PV.aspx.vb
+++ b/Ventas/PV.aspx.vb
@@ -1560,7 +1560,7 @@ Partial Class PV
End If
DdlSubProyectoDatos.SelectedValueExistInsert(DbRowVenta("CveSubProyecto").ToString, DbRowVenta("SubProyecto").ToString)
CargarAlmacenes()
-
+ CargaFoliosGarantia()
CargaClienteSucursal(DbRowVenta("CveClienteSucursal").ToString.ToEntero)
@@ -2042,13 +2042,12 @@ Partial Class PV
End If
-
'GUARDA USADOS
- If Not OcurrioError AndAlso Not ObjVentas.EliminarUsados(CveVenta) Then
- OcurrioError = True
- End If
+ If Not OcurrioError AndAlso TmpDTRecepcionUsados IsNot Nothing AndAlso TmpDTRecepcionUsados.Rows.Count > 0 Then
+ If Not OcurrioError AndAlso Not ObjVentas.EliminarUsados(CveVenta) Then
+ OcurrioError = True
+ End If
- If Not OcurrioError AndAlso TmpDTRecepcionUsados IsNot Nothing Then
For Each drow As DataRow In TmpDTRecepcionUsados.Rows
If Not ObjVentas.AddVentaUsado(CveVenta, drow("CvePS").ToString.ToEntero, drow("Cantidad").ToString.ToDecimal, drow("PU").ToString.ToDecimal, drow("CveBCIUsado").ToString.ToEntero, drow("CveModeloAuto").ToString.ToEntero) Then
OcurrioError = True
@@ -2057,12 +2056,12 @@ Partial Class PV
Next
End If
- 'GUARDAR AJUSTES'
- If Not OcurrioError AndAlso Not ObjAcum.EliminarGarantiasDetalle(CveVenta) Then
- OcurrioError = True
- End If
-
+ 'GUARDAR AJUSTES
If Not OcurrioError AndAlso TmpDTAjustes IsNot Nothing AndAlso TmpDTAjustes.Rows.Count > 0 Then
+ If Not OcurrioError AndAlso Not ObjAcum.EliminarGarantiasDetalle(CveVenta) Then
+ OcurrioError = True
+ End If
+
For Each Dr As DataRow In TmpDTAjustes.Rows
If Not ObjAcum.AddGarantiasDetalle(Dr("CveVentaDetalle").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("CveFolioGarantia").ToString.ToEntero, Dr("CveTipoUso").ToString.ToEntero,
Dr("CodigoEnsamble").ToString, Dr("CodigoLinea").ToString, Dr("CodigoInspeccion").ToString, Dr("CveTipoDefecto").ToString.ToEntero, Dr("CodigoTD").ToString, Dr("TipoComprobante").ToString.ToEntero,
@@ -2075,11 +2074,12 @@ Partial Class PV
End If
'GUARDAR POLIZA VIRTUAL
- If Not OcurrioError AndAlso Not ObjAcum.EliminarPolizaVirtual(CveVenta) Then
- OcurrioError = True
- End If
+ If Not OcurrioError AndAlso TmpDTPolizaVirtual IsNot Nothing AndAlso TmpDTPolizaVirtual.Rows.Count > 0 Then
+
+ If Not OcurrioError AndAlso Not ObjAcum.EliminarPolizaVirtual(CveVenta) Then
+ OcurrioError = True
+ End If
- If Not OcurrioError AndAlso TmpDTPolizaVirtual IsNot Nothing Then
For Each drow As DataRow In TmpDTPolizaVirtual.Rows
If ObjAcum.AddPolizaVirtual(CveVenta, drow("CveVentaDetalle").ToString().ToEntero(), drow("CvePS").ToString.ToEntero, drow("Cantidad").ToString.ToDecimal, drow("PU").ToString.ToDecimal, drow("Descuento").ToString.ToDecimal,
drow("Total").ToString.ToDecimal, drow("TipoServicio").ToString.ToEntero, drow("TipoPoliza").ToString.ToEntero, drow("CveModeloAuto").ToString.ToEntero, drow("AnioVehiculo").ToString.ToEntero, CBool(drow("TieneUsado").ToString),
@@ -2711,6 +2711,8 @@ Partial Class PV
UpParametros.Update()
End If
+ CargaFoliosGarantia()
+
If ObjCliente.GetSucursales(CveCliente) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then
@@ -3000,7 +3002,7 @@ Partial Class PV
'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
If UsuarioActual.CveVendedor > 0 Then
If CveVenta <= 0 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
- If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
+ If Not UsuarioActual.TienePermisoProceso(161) Then
DdlVendedor.Enabled = False
End If
'multiples vendedores visible
@@ -4395,11 +4397,17 @@ Partial Class PV
End Sub
Private Sub DdlSubProyectoDatos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoDatos.SelectedIndexChanged
CambiaSucursalGeneral()
+ CargaFoliosGarantia()
+ UpAjuste.Update()
+ UpModalVenta.Update()
+ End Sub
+
+ Private Sub CargaFoliosGarantia()
If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
Dim ObjAcum As New ClsAcumuladores
- If ObjAcum.FoliosGarantiaGet(-1, UsuarioActual.CveEmpresa, Estatus:=1, Area:=1) Then
- DdlFolioGarantia.DataSource = ObjAcum.DtResultados.FiltraParametros($"CveSubProyecto={DdlSubProyectoDatos.SelectedValue}")
+ If ObjAcum.FoliosGarantiaGet(-1, UsuarioActual.CveEmpresa, Estatus:=1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), Area:=1) Then
+ DdlFolioGarantia.DataSource = ObjAcum.DtResultados
End If
ObjAcum.Dispose()
DdlFolioGarantia.DataBind()
@@ -7045,6 +7053,7 @@ Partial Class PV
DdlBCIAjuste.Items.Clear()
If DTBCIUsados IsNot Nothing AndAlso CveTamanio > 0 Then
+ DdlBCIAjuste.SelectedValue = Nothing
DdlBCIAjuste.DataSource = DTBCIUsados.FiltraParametros($"CveTamaño={CveTamanio}")
DdlBCIAjuste.DataBind()
DdlBCIAjuste.Items.Insert(0, New ListItem("Seleccione", "-1"))
@@ -7295,7 +7304,7 @@ Partial Class PV
Protected Sub ChkAjuste_CheckedChanged(sender As Object, e As EventArgs)
If ChkAjuste.Checked Then
-
+ CargaFoliosGarantia()
'For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
' If Gvr.RowType = DataControlRowType.DataRow Then
' Gvr.FCTextBox("TxtCantidad").Text = ""
diff --git a/Ventas/RepCancelacionesPorRespuesta.aspx.cs b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
index 8672f7241..4b60fe73a 100644
--- a/Ventas/RepCancelacionesPorRespuesta.aspx.cs
+++ b/Ventas/RepCancelacionesPorRespuesta.aspx.cs
@@ -406,7 +406,15 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
{
factura.CveEstatusRefacturacion = CveEstatusRefacturacion;
}
- retorno = factura.CancelarPorRefacturacion(factura.CveMotivoCancelacion, factura.MotivoCancelacion, FolioSustitucion: FolioSustitucion);
+
+ int CveEstatusFactura = -1;
+ //SI LA FACTURA YA ESTA CANCELADA, LA ASIGNA YA COMO CANCELADA
+ if (CveEstatus == 5)
+ {
+ CveEstatusFactura = CveEstatus;
+ }
+
+ retorno = factura.CancelarPorRefacturacion(factura.CveMotivoCancelacion, factura.MotivoCancelacion, FolioSustitucion: FolioSustitucion, CveEstatusFacturaAsignado: CveEstatusFactura);
}
else
{
diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx
index d5e3c7e8b..3db0a9422 100644
--- a/Ventas/Ventas.aspx
+++ b/Ventas/Ventas.aspx
@@ -619,7 +619,7 @@
|
| Factura: |
-
+
@@ -679,7 +679,7 @@
|
-
+
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 368aaca72..0059f9a58 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -1930,6 +1930,31 @@ Partial Class Ventas
ViewState("CveVendedorCliente") = value
End Set
End Property
+ Private Property CveVendedorClienteSucursal As Integer
+ Get
+ Return If(IsNothing(ViewState("CveVendedorClienteSucursal")), -1, ViewState("CveVendedorClienteSucursal")).ToString().ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveVendedorClienteSucursal") = value
+ End Set
+ End Property
+
+ Private Property CveVendedorContrato As Integer
+ Get
+ Return If(IsNothing(ViewState("CveVendedorContrato")), -1, ViewState("CveVendedorContrato")).ToString().ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveVendedorContrato") = value
+ End Set
+ End Property
+ Private Property CveVendedorEmpresaCRM As Integer
+ Get
+ Return If(IsNothing(ViewState("CveVendedorEmpresaCRM")), -1, ViewState("CveVendedorEmpresaCRM")).ToString().ToEntero
+ End Get
+ Set(value As Integer)
+ ViewState("CveVendedorEmpresaCRM") = value
+ End Set
+ End Property
Private Property DiasCredito As Integer
Get
Return ViewState("DiasCredito").ToString().ToEntero()
@@ -2203,6 +2228,9 @@ Partial Class Ventas
ViewState("CvePrecioListaCliente") = 0
Me.CveVendedorVenta = -1
Me.CveVendedorCliente = -1
+ Me.CveVendedorClienteSucursal = -1
+ Me.CveVendedorContrato = -1
+ Me.CveVendedorEmpresaCRM = -1
Me.EsGarantia = False
idCuentaContabilizacion = 1
CveEmpresaCRM = 0
@@ -2883,16 +2911,16 @@ Partial Class Ventas
If CveVenta < 1 Then CargaFolios()
'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
- If UsuarioActual.CveVendedor > 0 Then
- If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
- If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
- DdlVendedor.Enabled = False
- End If
- 'multiples vendedores visible
- If UsuarioActual.TienePermisoProceso(153) Then
- DdlVendedor.Enabled = True
- End If
- End If
+ 'If UsuarioActual.CveVendedor > 0 Then
+ ' If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
+ ' If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
+ ' DdlVendedor.Enabled = False
+ ' End If
+ ' 'multiples vendedores visible
+ ' If UsuarioActual.TienePermisoProceso(153) Then
+ ' DdlVendedor.Enabled = True
+ ' End If
+ 'End If
If UsuarioActual.Empresa.Funcionalidad(301).ToEntero() > 0 Then
TxtFecha.Enabled = False
@@ -3632,6 +3660,8 @@ Partial Class Ventas
NumeroContrato = DrContrato("NumeroContrato").ToString()
DescripcionContrato = DrContrato("DescripcionContrato").ToString()
NumeroLicitacion = DrContrato("NumeroLicitacion").ToString().Trim
+
+ Me.CveVendedorContrato = DrContrato("CveVendedor").ToString().ToEntero()
DdlVendedor.SelectedValueExist(DrContrato("CveVendedor"))
If DrContrato("CveSucursalCliente").ToString().ToEntero() > 0 Then
@@ -4702,14 +4732,14 @@ Partial Class Ventas
Me.CveVendedorVenta = DbRowVenta("CveVendedor").ToString().ToEntero()
'SI YA TIENE UN VALOR ASIGNADO SELECCIONA EL GUARDADO
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Me.CveVenta > 0 AndAlso Me.CveVendedorVenta > 0 Then
- Dim Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=1).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
- 'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV
- If String.IsNullOrEmpty(Vendedor) Then
- Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
- End If
- DdlVendedor.SelectedValueExistInsert(Me.CveVendedorVenta, Vendedor)
- End If
+ 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Me.CveVenta > 0 AndAlso Me.CveVendedorVenta > 0 Then
+ ' Dim Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=1).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
+ ' 'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV
+ ' If String.IsNullOrEmpty(Vendedor) Then
+ ' Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
+ ' End If
+ ' DdlVendedor.SelectedValueExistInsert(Me.CveVendedorVenta, Vendedor)
+ 'End If
If DdlFormaPago33.SelectedValue <> DbRowVenta("CveFormaPago33").ToString() And DbRowVenta("CveFormaPago33").ToString() <> "" Then
'sino está seleccionada la asginada la debe de cargar
@@ -5546,6 +5576,13 @@ Partial Class Ventas
'TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
'TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
''TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal))
+
+ ObjVentas.DtResultados.Columns.Add("TieneProntoPago", GetType(String))
+ ObjVentas.DtResultados.Columns.Add("ImporteProntoPago", GetType(Decimal))
+
+ ObjVentas.DtResultados.Columns("TieneProntoPago").DefaultValue = "No"
+ ObjVentas.DtResultados.Columns("ImporteProntoPago").DefaultValue = 0
+
GvPS.DataSource = ObjVentas.DtResultados
GvPS.DataBind()
End If
@@ -5867,6 +5904,7 @@ Partial Class Ventas
UpEmpresaCRM.Visible = True
End If
+ Me.CveVendedorEmpresaCRM = ObjCRM.DtResultados.Rows(0)("CveVendedorAsignado").ToString().ToEntero()
DdlVendedor.SelectedValueExist(ObjCRM.DtResultados.Rows(0)("CveVendedorAsignado").ToString())
DdlVendedor.Enabled = False
@@ -6137,18 +6175,18 @@ Partial Class Ventas
TxtFordGSDB.Text = ObjCliente.Ford_GSDB
If ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero() > 0 Then
- DdlVendedor.SelectedValueExist(ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero())
CveVendedorCliente = ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero()
End If
'SI EL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO
- If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
- DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
- End If
+ 'If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
+ ' DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
+ 'End If
- If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
- DdlVendedor.Enabled = False
- End If
+ 'If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
+ ' DdlVendedor.Enabled = False
+ 'End If
+ CargaVendedores()
UpFacturar.Update()
@@ -6370,10 +6408,6 @@ Partial Class Ventas
End If
BloqueaCondiconesPago()
DeshabilitarAplicarNotaDeCredito(LblRFC.Text)
-
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
- CargaVendedoresSubProyectos()
- End If
End Sub
Private Sub CargaRelacionadasPendientes()
@@ -6946,7 +6980,7 @@ Partial Class Ventas
ViewState("CliPais") = ObjCliente.DtResultados.Rows(0)("Pais").ToString()
ViewState("CliNoExt") = ObjCliente.DtResultados.Rows(0)("NoExt").ToString()
ViewState("CliNoInt") = ObjCliente.DtResultados.Rows(0)("NoInt").ToString()
- DdlVendedor.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveVendedor").ToString())
+ Me.CveVendedorClienteSucursal = ObjCliente.DtResultados.Rows(0)("CveVendedor").ToString().ToEntero()
ViewState("CveClienteSucursal") = ObjCliente.DtResultados(0)("CveClienteSucursal").ToString()
ViewState("CliCorreoCot") = ObjCliente.DtResultados.Rows(0)("CorreoCotizacion").ToString()
@@ -7014,7 +7048,8 @@ Partial Class Ventas
LblEstado.Text = ObjCliente.Estado
LblCP.Text = ObjCliente.CP
LblTelefono.Text = ObjCliente.Telefono
- DdlVendedor.SelectedValueExist(ObjCliente.DtResultados.Rows(0)("CveVendedor").ToString())
+ Me.CveVendedorClienteSucursal = -1
+ Me.CveVendedorCliente = ObjCliente.DtResultados.Rows(0)("CveVendedor").ToString().ToEntero()
ViewState("CliNoExt") = ObjCliente.NoExt
ViewState("CliNoInt") = ObjCliente.NoInt
PlazoCobranza = ObjCliente.PlazoCobranza
@@ -7035,10 +7070,12 @@ Partial Class Ventas
End If
End If
- 'SI LA SUCURSAL DEL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO
- If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
- DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
- End If
+ ''SI LA SUCURSAL DEL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO
+ 'If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
+ ' DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
+ 'End If
+
+ CargaVendedores()
'SI LA VENTA YA ESTA REGISTRADA NO DEBE HABILITAR ACCIONES
If CveVenta <= 0 Then
@@ -7187,7 +7224,7 @@ Partial Class Ventas
If ObjClientes.GetVenta(pCveVenta, UsuarioActual.CveEmpresa) AndAlso ObjClientes.DtResultados.Rows.Count > 0 Then
DTFacNC = ObjClientes.DtResultados
Dim drvv As DataRow = DTFacNC.FiltroPrimero("")
- DTFacNC.Columns.Add("Factura", GetType(String), " Folio + ' - ' + Fecha + ' $' + Total")
+ DTFacNC.Columns.Add("Factura", GetType(String), " Folio + ' - ' +' $' + Total + ' - ' + Fecha ")
HdnFolioFiscalNC.Value = drvv("FolioFiscal").ToString()
If DTFacNC IsNot Nothing AndAlso DTFacNC.Rows.Count > 0 Then
@@ -13634,7 +13671,7 @@ Partial Class Ventas
Case 30 'PAGO - BANCOS
- If DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0 Then
+ If DtPagos IsNot Nothing AndAlso DtPagos.Rows.Count > 0 AndAlso ObjFactura.TipoDocto <> "Rem" Then
For Each DrPago As DataRow In DtPagos.Rows
CveIEPago = -1
@@ -17004,9 +17041,7 @@ Partial Class Ventas
End If
ObjSubProyectos.Dispose()
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
- CargaVendedoresSubProyectos()
- End If
+ CargaVendedores()
UpDetalle.Update()
End Sub
@@ -17189,43 +17224,93 @@ Partial Class Ventas
UpParametros.Update()
End Sub
Private Sub CargaVendedores()
+ Dim CveVendedorActual As Integer = 0
- Dim CveVendedorActual = DdlVendedor.SelectedValue.ToEntero()
-
- If Not CveVendedorActual > 0 AndAlso Me.CveVendedorCliente > 0 Then
- DdlVendedor.SelectedValueExist(Me.CveVendedorCliente)
- CveVendedorActual = Me.CveVendedorCliente
- End If
+ Dim EsVentaNueva As Boolean = (Me.CveVenta <= 0 OrElse Me.EsCreaApartirDe OrElse NuevaFactura = 1)
DdlVendedor.Items.Clear()
+ DdlVendedor.SelectedValue = Nothing
+
+ DdlVendedorSucursal.Items.Clear()
+ DdlVendedorSucursal.SelectedValue = Nothing
+
If UsuarioActual.Empresa.Funcionalidad(302) = "1" AndAlso DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then
- DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyectoDatos.SelectedValue)).FiltraParametros("VendedorTipo = 1")
+ DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("(CveSubProyecto IS NULL OR CveSubProyecto = {0})", DdlSubProyectoDatos.SelectedValue)).FiltraParametros("VendedorTipo = 1")
Else
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros("VendedorTipo = 1")
End If
- DdlVendedor.SelectedValue = "0"
- DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "0"))
-
- If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
- CargaVendedoresSubProyectos()
- End If
-
DdlVendedorSucursal.DataSource = DdlVendedor.DataSource
DdlVendedor.DataBind()
DdlVendedorSucursal.DataBind()
- DdlVendedor.SelectedValueExist(CveVendedorActual)
+ DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar"))
+ DdlVendedorSucursal.Items.Insert(0, New ListItem("Sin Asignar"))
- If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
- DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
+ DdlVendedor.SelectedValueExist("0")
+ DdlVendedorSucursal.SelectedValueExist("0")
+
+ 'SI NO ES VENTA ACTUAL
+ If EsVentaNueva Then
+ 'PRIMERO TOMA EL VENDEDOR DEL USUARIO
+ If UsuarioActual.CveVendedor > 0 Then
+ CveVendedorActual = UsuarioActual.CveVendedor
+ End If
+ 'DAR PREFERENCIA AL VENDEDOR ASIGNADO AL CLIENTE
+ If Me.CveVendedorCliente > 0 Then
+ CveVendedorActual = Me.CveVendedorCliente
+ End If
+ 'DAR PREFERENCIA AL VENDEDOR ASIGNADO LA SUCURSAL CLIENTE
+ If Me.CveVendedorClienteSucursal > 0 Then
+ CveVendedorActual = Me.CveVendedorClienteSucursal
+ End If
+ 'SI TIENE CONTRATO TOMA EL DEL CONTRATO
+ If Me.CveVendedorContrato > 0 Then
+ CveVendedorActual = Me.CveVendedorContrato
+ End If
+ 'SI ES EMPRESA CRM TOMA DE AQUI
+ If Me.CveVendedorEmpresaCRM > 0 Then
+ CveVendedorActual = Me.CveVendedorEmpresaCRM
+ End If
+ Else
+ 'SI ES VENTA EXISTENTE TOMA EL DE LA VENTA
+ If Me.CveVendedorVenta > 0 Then
+ CveVendedorActual = Me.CveVendedorVenta
+ End If
End If
- If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
- DdlVendedor.Enabled = False
+ If CveVendedorActual > 0 Then
+ Dim VendedorActual As String = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("Vendedor", $"CveVendedor = {CveVendedorActual}")
+ 'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV
+ If String.IsNullOrEmpty(VendedorActual) Then
+ VendedorActual = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", CveVendedorActual))
+ End If
+
+ If String.IsNullOrEmpty(VendedorActual) Then
+ DdlVendedor.SelectedValueExist(CveVendedorActual)
+ Else
+ DdlVendedor.SelectedValueExistInsert(CveVendedorActual, VendedorActual)
+ End If
End If
+ If UsuarioActual.CveEmpresa = 140 Then
+ If Not UsuarioActual.TienePermisoProceso(161) Then
+ DdlVendedor.Enabled = False
+ End If
+ Else
+ If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
+ DdlVendedor.Enabled = False
+ End If
+ End If
+
+
+ 'multiples vendedores visible
+ If UsuarioActual.TienePermisoProceso(153) Then
+ DdlVendedor.Enabled = True
+ End If
+
+ UPPVentas.Update()
'TxtCorreoNotificaciones.Text = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltroPrimeroValor("Correo")
End Sub
#End Region
@@ -33644,23 +33729,29 @@ Partial Class Ventas
UpModalSolicitud.Update()
End Sub
- Private Sub CargaVendedoresSubProyectos()
+ 'Private Sub CargaVendedoresSubProyectos()
- Dim DtVendedoresSucursales = GlobalDTClientesVendedoresSubProyectos(UsuarioActual.CveEmpresa, CveCliente:=Me.CveCliente, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero())
+ ' DdlVendedor.Items.Clear()
+ ' DdlVendedor.SelectedValue = Nothing
- If DtVendedoresSucursales IsNot Nothing AndAlso DtVendedoresSucursales.Rows.Count > 0 Then
- DdlVendedor.Items.Clear()
- DdlVendedor.SelectedValue = Nothing
+ ' Dim DtVendedoresSucursales = GlobalDTClientesVendedoresSubProyectos(UsuarioActual.CveEmpresa, CveCliente:=Me.CveCliente, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero())
- DdlVendedor.DataSource = DtVendedoresSucursales
- DdlVendedor.DataBind()
- DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "0"))
+ ' If DtVendedoresSucursales IsNot Nothing AndAlso DtVendedoresSucursales.Rows.Count > 0 Then
+ ' DdlVendedor.DataSource = DtVendedoresSucursales
+ ' DtVendedoresSucursales.Dispose()
+ ' Else
+ ' If UsuarioActual.Empresa.Funcionalidad(302) = "1" AndAlso DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then
+ ' DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros(String.Format("CveSubProyecto = {0}", DdlSubProyectoDatos.SelectedValue)).FiltraParametros("VendedorTipo = 1")
+ ' Else
+ ' DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros("VendedorTipo = 1")
+ ' End If
+ ' End If
- DtVendedoresSucursales.Dispose()
- End If
+ ' DdlVendedor.DataBind()
+ ' DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "0"))
- UpParametros.Update()
- End Sub
+ ' UpParametros.Update()
+ 'End Sub
Public Class MAnticipoRelacionado
Public Property CveVenta As Integer
| |