This commit is contained in:
rakcsle
2022-02-24 11:32:27 -07:00
17 changed files with 507 additions and 182 deletions

View File

@@ -105,7 +105,7 @@ Partial Class ACumuladores_RepIndicadorDiario
TCEspecifico = -1 TCEspecifico = -1
End If 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 GvDatos.DataSource = ObjAcum.DtResultados
DtDatos = ObjAcum.DtResultados DtDatos = ObjAcum.DtResultados
Else Else

View File

@@ -51,7 +51,7 @@ Partial Class Acumuladores_RepIndicadorDiarioDetalle
FechaI = txtFechaI.Text.ToDate FechaI = txtFechaI.Text.ToDate
FechaF = txtFechaF.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 GvDatos.DataSource = ObjAcum.DtResultados
Else Else
GvDatos.DataSource = Nothing GvDatos.DataSource = Nothing

View File

@@ -1135,7 +1135,7 @@ Public Class ClsAcumuladores
End Function 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 Dim Retorno As Boolean = False
@@ -1145,6 +1145,7 @@ Public Class ClsAcumuladores
.Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio .Add("@FechaInicio", SqlDbType.Date).Value = FechaInicio
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin .Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With
@@ -1162,7 +1163,7 @@ Public Class ClsAcumuladores
Return Retorno Return Retorno
End Function 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 Dim Retorno As Boolean = False
@@ -1173,6 +1174,7 @@ Public Class ClsAcumuladores
.Add("@FechaFin", SqlDbType.Date).Value = FechaFin .Add("@FechaFin", SqlDbType.Date).Value = FechaFin
.Add("@Opcion", SqlDbType.Int).Value = Opcion .Add("@Opcion", SqlDbType.Int).Value = Opcion
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto .Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With End With

View File

@@ -16,6 +16,9 @@ Imports Stimulsoft.Report
Imports System.Xml Imports System.Xml
Imports System.Web.Http.ValueProviders Imports System.Web.Http.ValueProviders
Imports ADServerControl Imports ADServerControl
Imports System.Net.Http
Imports Newtonsoft.Json
Imports Newtonsoft.Json.Linq
'NOTA AD TEAM 'NOTA AD TEAM
@@ -7687,8 +7690,14 @@ Public Class ClsPaginas
Dim Archivo As New System.IO.FileInfo(RutaFormato) Dim Archivo As New System.IO.FileInfo(RutaFormato)
If Archivo.Exists Then 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) 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)) 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 Guardar Then
If Not ArchivoPDF.Exists Then If Not ArchivoPDF.Exists Then
@@ -7711,6 +7720,12 @@ Public Class ClsPaginas
Else Else
params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa)) params.Add(New ReportParameter("Empresa", UsuarioActual.Empresa.Empresa))
params.Add(New ReportParameter("RFC", UsuarioActual.Empresa.RFC)) 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) retorno = StreamPDF(RutaFormatoDefault, lrds, params, NombreArchivo, "PDF", MR:=Nothing)
End If End If
Catch ex As Exception Catch ex As Exception
@@ -7719,6 +7734,82 @@ Public Class ClsPaginas
Return retorno Return retorno
End Function 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 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) 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 If o Is Nothing Then

View File

@@ -3345,7 +3345,9 @@ Public Class ClsVentas
'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT 'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT
If CveEstatus = 5 Then 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 If Not ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then
CveVentasError.Add(PCveVenta.ToEntero) CveVentasError.Add(PCveVenta.ToEntero)
End If End If

View File

@@ -394,9 +394,14 @@ Namespace Modelos
SetSubProyecto() SetSubProyecto()
SetSubProyectoMatriz() SetSubProyectoMatriz()
SetCliente() SetCliente()
If ObjVentas.DtResultados.Rows(0)("IEPS").ToString.ToDecimal <= 0 Then
Me.VentaDesglosaIEPS = False
Else
Me.VentaDesglosaIEPS = True
End If
SetTotales(ObjVentas.DtResultados, ObjVentas) SetTotales(ObjVentas.DtResultados, ObjVentas)
End If
End If End If
End If
If ObjVentas.GetVentaDetalle(CveVenta) Then If ObjVentas.GetVentaDetalle(CveVenta) Then
Me.DtDetalle = ObjVentas.DtResultados.Copy() Me.DtDetalle = ObjVentas.DtResultados.Copy()
End If End If
@@ -4636,8 +4641,8 @@ Namespace Modelos
''' Cancela la factura para poder realizar la refacturacion ''' Cancela la factura para poder realizar la refacturacion
''' </summary> ''' </summary>
''' <returns></returns> ''' <returns></returns>
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 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) Return CancelarVenta(Me, Me.UsuarioActual, EsRefacturacion:=True, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, FolioSustitucion:=FolioSustitucion, ValidarSAT:=ValidarSAT, CveEstadoCancelacion:=CveEstadoCancelacion, CveEstatusFacturaAsignado:=CveEstatusFacturaAsignado)
End Function End Function
''' <summary> ''' <summary>
''' Cancela la factura y realiza las operaciones correspondientes ''' 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 'SI NO SE PUDO OBTENER DEL SERVICIO, UTILIZA EL METODO DE CANCELACION PARA OBTENER EL ACUSE
If CancelacionAcuse = "" Then 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 'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
If RequiereAceptacion Then If RequiereAceptacion Then
CancelacionFecha = Now.Date CancelacionFecha = Now.Date
@@ -4983,15 +4989,18 @@ Namespace Modelos
If Not ObtenerAcuse Then If Not ObtenerAcuse Then
If ContinuarCancelacion 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 'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
If RequiereAceptacion Then 'If Resp.cve Then
CancelacionFecha = Now.Date ' CancelacionFecha = Now.Date
CveEstatus = 20 ' CveEstatus = 20
Else 'Else
CancelacionFecha = ObjCancelacion.CancelacionFecha ' CancelacionFecha = ObjCancelacion.CancelacionFecha
CveEstatus = 5 ' CveEstatus = 5
End If 'End If
CveEstatus = Resp.CveEstatus
CancelacionFecha = Resp.CancelacionFecha
CancelacionAcuse = ObjCancelacion.CancelacionAcuse CancelacionAcuse = ObjCancelacion.CancelacionAcuse
Else Else
Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>Origen del error: WebService www.sat.gob.mx" Retorno.Mensaje = "Los servicios de cancelación del SAT no se encuentran disponibles o presentan time out. Intente de nuevo en unos minutos.<br/>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 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 '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 ObjFactura.CvePrePoliza = CvePrePoliza
If ObjFactura.CvePrePoliza <= 0 Then If ObjFactura.CvePrePoliza <= 0 Then
@@ -6123,7 +6132,9 @@ Namespace Modelos
ErrorCancelar = True ErrorCancelar = True
End If 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 'falta verificar traer el acuse y reenviarlo
If UsuarioActual.Empresa.UsaAC Then If UsuarioActual.Empresa.UsaAC Then
Dim Pol As Modelos.RetornoPolizaConta = GenerarPolizaAC(Me, ObjAC, True) Dim Pol As Modelos.RetornoPolizaConta = GenerarPolizaAC(Me, ObjAC, True)

View File

@@ -111,7 +111,8 @@ Public Class Timbrado
End If End If
solicitud = Nothing solicitud = Nothing
Else 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 'GENERAMOS EL ACUSE Y MANDAMOS MAIL DE CON EL ACUSE DE CANCELACIÓN
CancelacionFecha = Me.CancelacionFecha CancelacionFecha = Me.CancelacionFecha
CancelacionAcuse = Me.CancelacionAcuse CancelacionAcuse = Me.CancelacionAcuse
@@ -206,8 +207,8 @@ Public Class Timbrado
Return Retorno Return Retorno
End Function 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 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 Boolean = False Dim Retorno As New RespuestaCancelacionSAT
Dim MsgCancelacion As New StringBuilder Dim MsgCancelacion As New StringBuilder
If CvePACCancelacion = 3 Then If CvePACCancelacion = 3 Then
@@ -219,10 +220,14 @@ Public Class Timbrado
Dim Vigencia = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True) Dim Vigencia = VerificarVigenciaSAT(FolioFiscal, RFCEmisor, RFCReceptor, Total.ToString(), True)
If Vigencia IsNot Nothing Then If Vigencia IsNot Nothing Then
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
Return False Retorno.Estado = "NO CANCELABLE"
Retorno.Verificado = False
Return Retorno
End If End If
Else Else
Return False Retorno.Estado = "NO VALIDADO"
Retorno.Verificado = False
Return Retorno
End If End If
End If End If
End If End If
@@ -277,7 +282,10 @@ Public Class Timbrado
Catch ex As Exception Catch ex As Exception
CancelacionFecha = xmlDoc.GetElementsByTagName("CancelaCFDResult")(0).Attributes("Fecha").Value.ToDate CancelacionFecha = xmlDoc.GetElementsByTagName("CancelaCFDResult")(0).Attributes("Fecha").Value.ToDate
End Try End Try
Retorno = True
Retorno.Verificado = True
Retorno.CancelacionFecha = CancelacionFecha
Retorno.CancelacionAcuse = CancelacionAcuse
End If End If
'End If 'End If
@@ -324,15 +332,15 @@ Public Class Timbrado
#Region "Valida" #Region "Valida"
If Not File.Exists(ArchivoCertificado) Then If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError) Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Not File.Exists(ArchivoLLave) Then If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError) Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Empresa.ContraseñaKey = "" Then If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError) Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
#End Region #End Region
@@ -351,7 +359,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte) llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
@@ -360,8 +368,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte) certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
#End Region #End Region
@@ -430,10 +437,14 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
Retorno = True Retorno.Verificado = True
Retorno.CancelacionFecha = CancelacionFecha
Retorno.CancelacionAcuse = CancelacionAcuse
Else Else
CancelacionAcuse = resp.MensajeDeError CancelacionAcuse = resp.MensajeDeError
Retorno = False Retorno.Verificado = True
Retorno.CancelacionFecha = CancelacionFecha
Retorno.CancelacionAcuse = CancelacionAcuse
End If End If
solicitud = Nothing solicitud = Nothing
Case 4 Case 4
@@ -456,10 +467,13 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
Retorno = True Retorno.Verificado = True
Retorno.CancelacionFecha = CancelacionFecha
Retorno.CancelacionAcuse = CancelacionAcuse
Else Else
CancelacionAcuse = resp.Descripcion CancelacionAcuse = resp.Descripcion
Retorno = False Retorno.Verificado = True
Retorno.CancelacionAcuse = CancelacionAcuse
End If End If
solicitud = Nothing solicitud = Nothing
End Select End Select
@@ -468,7 +482,7 @@ Public Class Timbrado
End If End If
Catch ex As Exception Catch ex As Exception
CancelacionMensaje += $" | ex: {ex}" CancelacionMensaje += $" | ex: {ex}"
Retorno = False Retorno.Verificado = False
End Try End Try
'Libera memoria 'Libera memoria
@@ -503,15 +517,15 @@ Public Class Timbrado
#Region "Valida" #Region "Valida"
If Not File.Exists(ArchivoCertificado) Then If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError) Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Not File.Exists(ArchivoLLave) Then If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError) Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Empresa.ContraseñaKey = "" Then If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError) Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
#End Region #End Region
@@ -561,16 +575,19 @@ Public Class Timbrado
MsgCancelacion.AppendFormat("-3.4.3") MsgCancelacion.AppendFormat("-3.4.3")
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate CancelacionFecha = xmlDoc.SelectSingleNode("Acuse").Attributes("Fecha").Value.ToDate
Retorno.CancelacionAcuse = CancelacionAcuse
Retorno.CancelacionFecha = CancelacionFecha
Else Else
CancelacionFecha = Now CancelacionFecha = Now
End If End If
Retorno.Verificado = True
Retorno = True
Else Else
MsgCancelacion.AppendFormat("-3.5") MsgCancelacion.AppendFormat("-3.5")
CancelacionAcuse = resp.NumeroError CancelacionAcuse = resp.NumeroError
CancelacionMensaje = resultadoCancelacion.Descripcion CancelacionMensaje = resultadoCancelacion.Descripcion
Retorno = False Retorno.Verificado = True
End If End If
Case 4 Case 4
@@ -599,15 +616,15 @@ Public Class Timbrado
#Region "Valida" #Region "Valida"
If Not File.Exists(ArchivoCertificado) Then If Not File.Exists(ArchivoCertificado) Then
Alert("El archivo de certificado no existe", TipoMensaje.MsgError) Alert("El archivo de certificado no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Not File.Exists(ArchivoLLave) Then If Not File.Exists(ArchivoLLave) Then
Alert("El archivo de llave privada no existe", TipoMensaje.MsgError) Alert("El archivo de llave privada no existe", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
If Empresa.ContraseñaKey = "" Then If Empresa.ContraseñaKey = "" Then
Alert("La clave no puede ser vacía", TipoMensaje.MsgError) Alert("La clave no puede ser vacía", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End If End If
#End Region #End Region
@@ -627,7 +644,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte) llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
@@ -636,8 +653,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte) certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
#End Region #End Region
objCan.CancelacionCfdi = True objCan.CancelacionCfdi = True
@@ -662,7 +678,9 @@ Public Class Timbrado
CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText CancelacionAcuse = xmlDoc.GetElementsByTagName("SignatureValue")(0).InnerText
CancelacionFecha = xmlDoc.DocumentElement.Attributes("Fecha").Value.ToDate CancelacionFecha = xmlDoc.DocumentElement.Attributes("Fecha").Value.ToDate
Retorno = True Retorno.Verificado = True
Retorno.CancelacionAcuse = CancelacionAcuse
Retorno.CancelacionFecha = CancelacionFecha
MsgCancelacion.AppendFormat("4.5.2-") MsgCancelacion.AppendFormat("4.5.2-")
End If End If
@@ -671,7 +689,6 @@ Public Class Timbrado
Case 5 Case 5
CancelacionAcuse = "" CancelacionAcuse = ""
Retorno = False
MsgCancelacion.AppendFormat("5.1-") MsgCancelacion.AppendFormat("5.1-")
Dim TimbraProduccion As Boolean = True Dim TimbraProduccion As Boolean = True
@@ -700,7 +717,7 @@ Public Class Timbrado
llaveBase64 = Convert.ToBase64String(llaveByte) llaveBase64 = Convert.ToBase64String(llaveByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
Try Try
@@ -708,7 +725,7 @@ Public Class Timbrado
certBase64 = Convert.ToBase64String(certByte) certBase64 = Convert.ToBase64String(certByte)
Catch ex As Exception Catch ex As Exception
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError) Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
Return False Retorno.Verificado = False
End Try End Try
Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495" Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495"
@@ -734,8 +751,11 @@ Public Class Timbrado
'EN PROCESO, CANCELABLE SIN ACEPTACION,CANCEALDO PREVIAMENTE 'EN PROCESO, CANCELABLE SIN ACEPTACION,CANCEALDO PREVIAMENTE
If cancelacion.codigo.Contiene("96", "201", "202") Then If cancelacion.codigo.Contiene("96", "201", "202") Then
CancelacionFecha = Now CancelacionFecha = Now
Retorno = True
CancelacionAcuse = result.acuseCancelBase64 CancelacionAcuse = result.acuseCancelBase64
Retorno.Verificado = True
Retorno.CancelacionAcuse = CancelacionAcuse
Retorno.CancelacionFecha = CancelacionFecha
End If End If
CancelacionMensaje = cancelacion.mensaje CancelacionMensaje = cancelacion.mensaje
Else Else
@@ -749,8 +769,25 @@ Public Class Timbrado
End If End If
End Select 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} ") GuardaLog($"****** Error al cancelar factura ****** Estatus: {CancelacionState} | Mensaje: {CancelacionMensaje} | Mensaje SAT: {MsgCancelacion.ToString} ")
End If End If
@@ -4010,9 +4047,12 @@ Public Class Timbrado
Try Try
Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg" Dim RutaCBB As String = $"{UsuarioActual.Empresa.Ruta}CBB\{ObjCFDITimbre.Comprobante.SerieFolio}.jpg"
'temp Dim qrCode As New GoFac.QrCode()
'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}") 'String cadenaqrCode = qrCode.GenerarCadenaQrCode(txtXml.Text)
'File.WriteAllBytes(RutaCBB, b)
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 Catch ex As Exception
OnError("Ocurrió un error al generar el QR", ex) OnError("Ocurrió un error al generar el QR", ex)
End Try End Try

View File

@@ -85,12 +85,8 @@ Public Class Timbres
Timbre.Comprobante.Descuentos = Obj.Descuento Timbre.Comprobante.Descuentos = Obj.Descuento
Timbre.Comprobante.Moneda = "XXX" Timbre.Comprobante.Moneda = "XXX"
Timbre.Comprobante.TipoCambio = "" ' CONDICIÓN SI LA MONEDA ES '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" Timbre.Receptor.UsoCFDI = "P01"
Dim totSubTotal As Decimal = Obj.SubTotal Dim totSubTotal As Decimal = Obj.SubTotal
Dim totIVA As Decimal = Obj.IVA Dim totIVA As Decimal = Obj.IVA
Dim totRetIVA As Decimal = Obj.RetIVA Dim totRetIVA As Decimal = Obj.RetIVA
@@ -124,9 +120,11 @@ Public Class Timbres
If ObjGrales.DtResultados.Rows.Count = 1 Then If ObjGrales.DtResultados.Rows.Count = 1 Then
Dim DtMovimientos As DataTable = Nothing Dim DtMovimientos As DataTable = Nothing
Dim drT As DataRow = ObjGrales.DtResultados.Rows(0) 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 CveMovimiento = drT("CveMovimientoAlmacen").ToString.ToEntero
FechaSalida = drT("FechaEntrega").ToString.ToDateTime FechaSalida = drT("FechaEntrega").ToString.ToDateTime
FechaLlegada = drT("FechaLlegada").ToString.ToDateTime FechaLlegada = drT("FechaLlegada").ToString.ToDateTime

View File

@@ -67,8 +67,9 @@ Public Class WsSIGWeb
'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT 'SOLO SI ESTA CANCELADA ANTE SAT EN SIG SE INTENTARA CANCELAR DE NUEVO CONTRA EL SAT
If CveEstatus = 5 Then 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 ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then If Resp.Verificado Then
If ObjVentas.UpdateEstatusFactura(5, FolioFiscal, ObjCancelacion.CancelacionAcuse, Resp.CancelacionFecha, PCveVenta.ToEntero, -1, CvePAC:=Usuario.Empresa.CvePAC) Then
Retorno = True Retorno = True
Else Else
MensajeError = $"Ocurrió un error al actualizar la cancelación la CveVenta {PCveVenta}" MensajeError = $"Ocurrió un error al actualizar la cancelación la CveVenta {PCveVenta}"

View File

@@ -147,6 +147,16 @@ Namespace Extensiones
End If End If
End Function 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" #Region "Log"
<Runtime.CompilerServices.Extension()> <Runtime.CompilerServices.Extension()>

View File

@@ -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.DataBind()
DdlMotivoCancelacion.Items.Insert(0, New ListItem("Seleccione uno", "-1")) DdlMotivoCancelacion.Items.Insert(0, New ListItem("Seleccione uno", "-1"))
@@ -5902,7 +5902,7 @@ Partial Class Bancos_IE
e.Row.FCLinkButton("LnkCancelarComplemetno").Visible = True e.Row.FCLinkButton("LnkCancelarComplemetno").Visible = True
e.Row.FCDropDownList("DdlMotivoCancelacion").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").DataBind()
e.Row.FCDropDownList("DdlMotivoCancelacion").Items.Insert(0, New ListItem("Seleccione Uno", "-1")) e.Row.FCDropDownList("DdlMotivoCancelacion").Items.Insert(0, New ListItem("Seleccione Uno", "-1"))

View File

@@ -589,6 +589,7 @@ Partial Class Inventarios_RecepcionUsados
dt.Columns.Add("TotalExtranjero", Type.GetType("System.Double")) dt.Columns.Add("TotalExtranjero", Type.GetType("System.Double"))
dt.Columns.Add("CveTamaño", Type.GetType("System.Int32")) dt.Columns.Add("CveTamaño", Type.GetType("System.Int32"))
dt.Columns.Add("Tamaño", Type.GetType("System.String")) dt.Columns.Add("Tamaño", Type.GetType("System.String"))
dt.Columns.Add("CveVentaDetalle", Type.GetType("System.Int32"))
CargaGVM(dt) CargaGVM(dt)
DtMovimientos = dt.Clone 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, 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 '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("CveTamaño") = CveTamaño
registro.Item("Tamaño") = Tamaño registro.Item("Tamaño") = Tamaño
registro.Item("CveVentaDetalle") = CveVentaDetalle
DtMovimientos.Rows.Add(registro) DtMovimientos.Rows.Add(registro)
CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' ")) CargaGVM(DtMovimientos.FiltraParametros("Estatus <> 'E' "))
@@ -1281,7 +1284,7 @@ Partial Class Inventarios_RecepcionUsados
ImporteConcepto = Dr("PU").ToString.ToDecimal ImporteConcepto = Dr("PU").ToString.ToDecimal
End If 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" Mensaje = "Error al guardar los movimientos"
ErrorMovInv = True ErrorMovInv = True
Exit For Exit For
@@ -2269,6 +2272,18 @@ Partial Class Inventarios_RecepcionUsados
DtUsados = ObjVentas.DtResultados.Copy() DtUsados = ObjVentas.DtResultados.Copy()
End If 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 Dim RecepcionValida As Boolean = True
If ObjVentas.GetVentasUsados(ObjFactura.CveVenta, ObjFactura.CveSubProyecto, ObjFactura.Fecha, UsuarioActual.CveEmpresa, ServicioDomicilio:=ObjFactura.ServicioDomicilio) Then 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 Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero()
Dim PU As Double = RowUsado("PU").ToString().ToDouble() 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 Next
End If End If

View File

@@ -6158,7 +6158,7 @@
<th style="width: 73px;"></th> <th style="width: 73px;"></th>
</tr> </tr>
<tr align="center"> <tr id="TrAgregarPMarca" runat="server" visible="false" align="center">
<td></td> <td></td>
<td style="text-align: center;"> <td style="text-align: center;">
<div class="psagregar"> <div class="psagregar">
@@ -6226,7 +6226,7 @@
<ContentTemplate> <ContentTemplate>
<%--table table-striped table-advance table-hover Widthall ScrollAD <%--table table-striped table-advance table-hover Widthall ScrollAD
tabla_correcto grides Widthall mysmallbtn--%> tabla_correcto grides Widthall mysmallbtn--%>
<asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" DataKeyNames="No" EmptyDataText="Aún no hay registros." AutoGenerateColumns="False" AllowPaging="False" ShowHeaderWhenEmpty="True"> <asp:GridView ID="GvM" runat="server" GridLines="none" CssClass="table table-striped table-advance table-hover Widthall ScrollAD mysmallbtn" DataKeyNames="No" EmptyDataText="Aún no hay registros." AutoGenerateColumns="False" AllowPaging="False" ShowHeaderWhenEmpty="True" >
<Columns> <Columns>
<asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt"> <asp:TemplateField HeaderText="" ItemStyle-Font-Size="6pt">
<EditItemTemplate> <EditItemTemplate>
@@ -6310,8 +6310,8 @@
</center> </center>
</EditItemTemplate> </EditItemTemplate>
<ItemTemplate> <ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" /> <asp:LinkButton ID="imgE" runat="server" Visible="false" AlternateText="Editar" CausesValidation="False" CommandName="Edit" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
<asp:LinkButton ID="lnkRemove" runat="server" AlternateText="Eliminar" OnClick="DeleteRowMarca" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el porcentaje?" data-btn-ok-label="si" /> <asp:LinkButton ID="lnkRemove" runat="server" Visible="false" AlternateText="Eliminar" OnClick="DeleteRowMarca" CommandArgument='<%# Eval("No")%>' CssClass="btn btn-circle btn-sm red" Text="<i class='icon-trash'></i>" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea eliminar el porcentaje?" data-btn-ok-label="si" />
</ItemTemplate> </ItemTemplate>
<ItemStyle Width="73px"></ItemStyle> <ItemStyle Width="73px"></ItemStyle>
</asp:TemplateField> </asp:TemplateField>
@@ -6327,7 +6327,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<asp:Button ID="BtnGuardarPorcentajesMarca" runat="server" Text="Guardar" CssClass="btn btn-primary" /> <asp:Button ID="BtnGuardarPorcentajesMarca" Visible="false" runat="server" Text="Guardar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button> <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div> </div>
</ContentTemplate> </ContentTemplate>
@@ -6365,7 +6365,7 @@
Aplicado </th> Aplicado </th>
<th style="width: 73px;"></th> <th style="width: 73px;"></th>
</tr> </tr>
<tr align="center"> <tr id="TrPreciosPP" runat="server" visible="false" align="center">
<td></td> <td></td>
<td style="text-align: center;"> <td style="text-align: center;">
<div class="psagregar"> <div class="psagregar">
@@ -6458,7 +6458,7 @@
</div> </div>
<div class="modal-footer"> <div class="modal-footer">
<asp:Button ID="BtnGuardarPorcentajes" runat="server" Text="Guardar" CssClass="btn btn-primary" /> <asp:Button ID="BtnGuardarPorcentajes" Visible="false" runat="server" Text="Guardar" CssClass="btn btn-primary" />
<button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button> <button type="button" class="btn btn-danger" data-dismiss="modal">Cancelar</button>
</div> </div>
</ContentTemplate> </ContentTemplate>

View File

@@ -1455,9 +1455,20 @@ Partial Class Clientes
'CargaComboCFDI() 'CargaComboCFDI()
'CargarPagosNoBancarios() 'CargarPagosNoBancarios()
If UsuarioActual.TienePermisoProceso(279) Then
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
LnkPorcentajeMarcas.Visible = True 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 End If
@@ -1474,9 +1485,9 @@ Partial Class Clientes
If ObjClientes.Pais = "" Then ObjClientes.Pais = "México" If ObjClientes.Pais = "" Then ObjClientes.Pais = "México"
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 Then 'If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso CveCliente > 0 Then
LnkAgregarVendedorSucursal.Visible = True ' LnkAgregarVendedorSucursal.Visible = True
End If 'End If
'Campos para Modificación 'Campos para Modificación
LtlCliente.Text = ObjClientes.Nombre LtlCliente.Text = ObjClientes.Nombre
@@ -1517,7 +1528,20 @@ Partial Class Clientes
LblFechaCaptura.Text = ObjClientes.FechaIng.ToShortDateString() LblFechaCaptura.Text = ObjClientes.FechaIng.ToShortDateString()
LblUsuarioCapturo.Text = ObjClientes.Usuario LblUsuarioCapturo.Text = ObjClientes.Usuario
TxtNombreCorto.Text = ObjClientes.NombreCorto 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 'TxtVendedor.Text = ObjClientes.Vendedor
TxtPlazoCobranza.Text = ObjClientes.PlazoCobranza.ToString() TxtPlazoCobranza.Text = ObjClientes.PlazoCobranza.ToString()
TxtPlazoCobranzaRemision.Text = ObjClientes.PlazoCobranzaRemision.ToString() TxtPlazoCobranzaRemision.Text = ObjClientes.PlazoCobranzaRemision.ToString()
@@ -8949,7 +8973,27 @@ Partial Class Clientes
CargaDTPorcentajePrecios(DTPorcentajePrecios.FiltraParametros("Estatus <> 'D' ")) CargaDTPorcentajePrecios(DTPorcentajePrecios.FiltraParametros("Estatus <> 'D' "))
End Sub 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 Protected Sub GvM_RowEditing(sender As Object, e As GridViewEditEventArgs) Handles GvM.RowEditing
GvM.EditIndex = e.NewEditIndex GvM.EditIndex = e.NewEditIndex
@@ -10423,5 +10467,6 @@ Partial Class Clientes
End Using End Using
End Sub End Sub
End Class End Class

View File

@@ -1560,7 +1560,7 @@ Partial Class PV
End If End If
DdlSubProyectoDatos.SelectedValueExistInsert(DbRowVenta("CveSubProyecto").ToString, DbRowVenta("SubProyecto").ToString) DdlSubProyectoDatos.SelectedValueExistInsert(DbRowVenta("CveSubProyecto").ToString, DbRowVenta("SubProyecto").ToString)
CargarAlmacenes() CargarAlmacenes()
CargaFoliosGarantia()
CargaClienteSucursal(DbRowVenta("CveClienteSucursal").ToString.ToEntero) CargaClienteSucursal(DbRowVenta("CveClienteSucursal").ToString.ToEntero)
@@ -2042,13 +2042,12 @@ Partial Class PV
End If End If
'GUARDA USADOS 'GUARDA USADOS
If Not OcurrioError AndAlso Not ObjVentas.EliminarUsados(CveVenta) Then If Not OcurrioError AndAlso TmpDTRecepcionUsados IsNot Nothing AndAlso TmpDTRecepcionUsados.Rows.Count > 0 Then
OcurrioError = True If Not OcurrioError AndAlso Not ObjVentas.EliminarUsados(CveVenta) Then
End If OcurrioError = True
End If
If Not OcurrioError AndAlso TmpDTRecepcionUsados IsNot Nothing Then
For Each drow As DataRow In TmpDTRecepcionUsados.Rows 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 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 OcurrioError = True
@@ -2057,12 +2056,12 @@ Partial Class PV
Next Next
End If End If
'GUARDAR AJUSTES' 'GUARDAR AJUSTES
If Not OcurrioError AndAlso Not ObjAcum.EliminarGarantiasDetalle(CveVenta) Then
OcurrioError = True
End If
If Not OcurrioError AndAlso TmpDTAjustes IsNot Nothing AndAlso TmpDTAjustes.Rows.Count > 0 Then 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 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, 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, 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 End If
'GUARDAR POLIZA VIRTUAL 'GUARDAR POLIZA VIRTUAL
If Not OcurrioError AndAlso Not ObjAcum.EliminarPolizaVirtual(CveVenta) Then If Not OcurrioError AndAlso TmpDTPolizaVirtual IsNot Nothing AndAlso TmpDTPolizaVirtual.Rows.Count > 0 Then
OcurrioError = True
End If 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 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, 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), 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() UpParametros.Update()
End If End If
CargaFoliosGarantia()
If ObjCliente.GetSucursales(CveCliente) Then If ObjCliente.GetSucursales(CveCliente) Then
DdlSucursalCliente.DataSource = ObjCliente.DtResultados DdlSucursalCliente.DataSource = ObjCliente.DtResultados
If ObjCliente.DtResultados.Rows.Count > 0 Then 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 'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
If UsuarioActual.CveVendedor > 0 Then If UsuarioActual.CveVendedor > 0 Then
If CveVenta <= 0 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) 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 DdlVendedor.Enabled = False
End If End If
'multiples vendedores visible 'multiples vendedores visible
@@ -4395,11 +4397,17 @@ Partial Class PV
End Sub End Sub
Private Sub DdlSubProyectoDatos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoDatos.SelectedIndexChanged Private Sub DdlSubProyectoDatos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoDatos.SelectedIndexChanged
CambiaSucursalGeneral() CambiaSucursalGeneral()
CargaFoliosGarantia()
UpAjuste.Update()
UpModalVenta.Update()
End Sub
Private Sub CargaFoliosGarantia()
If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then If UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
Dim ObjAcum As New ClsAcumuladores Dim ObjAcum As New ClsAcumuladores
If ObjAcum.FoliosGarantiaGet(-1, UsuarioActual.CveEmpresa, Estatus:=1, Area:=1) Then If ObjAcum.FoliosGarantiaGet(-1, UsuarioActual.CveEmpresa, Estatus:=1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), Area:=1) Then
DdlFolioGarantia.DataSource = ObjAcum.DtResultados.FiltraParametros($"CveSubProyecto={DdlSubProyectoDatos.SelectedValue}") DdlFolioGarantia.DataSource = ObjAcum.DtResultados
End If End If
ObjAcum.Dispose() ObjAcum.Dispose()
DdlFolioGarantia.DataBind() DdlFolioGarantia.DataBind()
@@ -7045,6 +7053,7 @@ Partial Class PV
DdlBCIAjuste.Items.Clear() DdlBCIAjuste.Items.Clear()
If DTBCIUsados IsNot Nothing AndAlso CveTamanio > 0 Then If DTBCIUsados IsNot Nothing AndAlso CveTamanio > 0 Then
DdlBCIAjuste.SelectedValue = Nothing
DdlBCIAjuste.DataSource = DTBCIUsados.FiltraParametros($"CveTamaño={CveTamanio}") DdlBCIAjuste.DataSource = DTBCIUsados.FiltraParametros($"CveTamaño={CveTamanio}")
DdlBCIAjuste.DataBind() DdlBCIAjuste.DataBind()
DdlBCIAjuste.Items.Insert(0, New ListItem("Seleccione", "-1")) 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) Protected Sub ChkAjuste_CheckedChanged(sender As Object, e As EventArgs)
If ChkAjuste.Checked Then If ChkAjuste.Checked Then
CargaFoliosGarantia()
'For Each Gvr As GridViewRow In GvRecepcionUsados.Rows 'For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
' If Gvr.RowType = DataControlRowType.DataRow Then ' If Gvr.RowType = DataControlRowType.DataRow Then
' Gvr.FCTextBox("TxtCantidad").Text = "" ' Gvr.FCTextBox("TxtCantidad").Text = ""

View File

@@ -406,7 +406,15 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
{ {
factura.CveEstatusRefacturacion = CveEstatusRefacturacion; 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 else
{ {

View File

@@ -1930,6 +1930,31 @@ Partial Class Ventas
ViewState("CveVendedorCliente") = value ViewState("CveVendedorCliente") = value
End Set End Set
End Property 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 Private Property DiasCredito As Integer
Get Get
Return ViewState("DiasCredito").ToString().ToEntero() Return ViewState("DiasCredito").ToString().ToEntero()
@@ -2203,6 +2228,9 @@ Partial Class Ventas
ViewState("CvePrecioListaCliente") = 0 ViewState("CvePrecioListaCliente") = 0
Me.CveVendedorVenta = -1 Me.CveVendedorVenta = -1
Me.CveVendedorCliente = -1 Me.CveVendedorCliente = -1
Me.CveVendedorClienteSucursal = -1
Me.CveVendedorContrato = -1
Me.CveVendedorEmpresaCRM = -1
Me.EsGarantia = False Me.EsGarantia = False
idCuentaContabilizacion = 1 idCuentaContabilizacion = 1
CveEmpresaCRM = 0 CveEmpresaCRM = 0
@@ -2883,16 +2911,16 @@ Partial Class Ventas
If CveVenta < 1 Then CargaFolios() If CveVenta < 1 Then CargaFolios()
'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE 'SELECCIONA VENDEDOR DEL USUARIO CUANDO SEA VENTA NUEVA Y SIN CLIENTE
If UsuarioActual.CveVendedor > 0 Then 'If UsuarioActual.CveVendedor > 0 Then
If CveVenta = -1 AndAlso Not DdlVendedor.SelectedValue.ToEntero() > 0 Then DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) ' 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 ' If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
DdlVendedor.Enabled = False ' DdlVendedor.Enabled = False
End If ' End If
'multiples vendedores visible ' 'multiples vendedores visible
If UsuarioActual.TienePermisoProceso(153) Then ' If UsuarioActual.TienePermisoProceso(153) Then
DdlVendedor.Enabled = True ' DdlVendedor.Enabled = True
End If ' End If
End If 'End If
If UsuarioActual.Empresa.Funcionalidad(301).ToEntero() > 0 Then If UsuarioActual.Empresa.Funcionalidad(301).ToEntero() > 0 Then
TxtFecha.Enabled = False TxtFecha.Enabled = False
@@ -3632,6 +3660,8 @@ Partial Class Ventas
NumeroContrato = DrContrato("NumeroContrato").ToString() NumeroContrato = DrContrato("NumeroContrato").ToString()
DescripcionContrato = DrContrato("DescripcionContrato").ToString() DescripcionContrato = DrContrato("DescripcionContrato").ToString()
NumeroLicitacion = DrContrato("NumeroLicitacion").ToString().Trim NumeroLicitacion = DrContrato("NumeroLicitacion").ToString().Trim
Me.CveVendedorContrato = DrContrato("CveVendedor").ToString().ToEntero()
DdlVendedor.SelectedValueExist(DrContrato("CveVendedor")) DdlVendedor.SelectedValueExist(DrContrato("CveVendedor"))
If DrContrato("CveSucursalCliente").ToString().ToEntero() > 0 Then If DrContrato("CveSucursalCliente").ToString().ToEntero() > 0 Then
@@ -4702,14 +4732,14 @@ Partial Class Ventas
Me.CveVendedorVenta = DbRowVenta("CveVendedor").ToString().ToEntero() Me.CveVendedorVenta = DbRowVenta("CveVendedor").ToString().ToEntero()
'SI YA TIENE UN VALOR ASIGNADO SELECCIONA EL GUARDADO 'SI YA TIENE UN VALOR ASIGNADO SELECCIONA EL GUARDADO
If UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso Me.CveVenta > 0 AndAlso Me.CveVendedorVenta > 0 Then '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)) ' Dim Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=1).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV ' 'SI NO ENCUENTRA BUSCA EN LOS VENDEDORES DEL PV
If String.IsNullOrEmpty(Vendedor) Then ' If String.IsNullOrEmpty(Vendedor) Then
Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta)) ' Vendedor = GlobalDTVendedores(UsuarioActual.CveEmpresa, VendedorTipo:=4).FiltroPrimeroValor("Vendedor", String.Format("CveVendedor = {0}", Me.CveVendedorVenta))
End If ' End If
DdlVendedor.SelectedValueExistInsert(Me.CveVendedorVenta, Vendedor) ' DdlVendedor.SelectedValueExistInsert(Me.CveVendedorVenta, Vendedor)
End If 'End If
If DdlFormaPago33.SelectedValue <> DbRowVenta("CveFormaPago33").ToString() And DbRowVenta("CveFormaPago33").ToString() <> "" Then If DdlFormaPago33.SelectedValue <> DbRowVenta("CveFormaPago33").ToString() And DbRowVenta("CveFormaPago33").ToString() <> "" Then
'sino está seleccionada la asginada la debe de cargar 'sino está seleccionada la asginada la debe de cargar
@@ -5537,7 +5567,7 @@ Partial Class Ventas
dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal, dr("CvePS").ToString().ToEntero(), dr("PS").ToString(), dr("Obs").ToString(), dr("PU").ToString().ToDecimal, dr("Descuento").ToString().ToDecimal,
dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(), dr("CveProyecto").ToString().ToEntero(), dr("Proyecto").ToString(), dr("CveSubProyecto").ToString().ToEntero(), dr("SubProyecto").ToString(),
CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(), CveContratoDetalle:=dr("CveContratoDetalle").ToString().ToEntero(), CveVentaDetalleCotizacion:=dr("CveVentaDetalleCotizacion").ToString().ToEntero(),
CveVentaDetalle:=dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=True, SeActualiza:=True) CveVentaDetalle:=dr("CveVentaDetalle").ToString().ToEntero(), RegeneraIEPS:=False, SeActualiza:=True)
Next Next
@@ -5546,6 +5576,13 @@ Partial Class Ventas
'TmpDT.Columns.Add("EntregaDirecta", GetType(Integer)) 'TmpDT.Columns.Add("EntregaDirecta", GetType(Integer))
'TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer)) 'TmpDT.Columns.Add("CveMovimientoDetallePedido", GetType(Integer))
''TmpDT.Columns.Add("CantidadFacturadaRem", GetType(Decimal)) ''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.DataSource = ObjVentas.DtResultados
GvPS.DataBind() GvPS.DataBind()
End If End If
@@ -5867,6 +5904,7 @@ Partial Class Ventas
UpEmpresaCRM.Visible = True UpEmpresaCRM.Visible = True
End If End If
Me.CveVendedorEmpresaCRM = ObjCRM.DtResultados.Rows(0)("CveVendedorAsignado").ToString().ToEntero()
DdlVendedor.SelectedValueExist(ObjCRM.DtResultados.Rows(0)("CveVendedorAsignado").ToString()) DdlVendedor.SelectedValueExist(ObjCRM.DtResultados.Rows(0)("CveVendedorAsignado").ToString())
DdlVendedor.Enabled = False DdlVendedor.Enabled = False
@@ -6137,18 +6175,18 @@ Partial Class Ventas
TxtFordGSDB.Text = ObjCliente.Ford_GSDB TxtFordGSDB.Text = ObjCliente.Ford_GSDB
If ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero() > 0 Then If ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero() > 0 Then
DdlVendedor.SelectedValueExist(ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero())
CveVendedorCliente = ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero() CveVendedorCliente = ObjCliente.DtResultados(0)("CveVendedor").ToString().ToEntero()
End If End If
'SI EL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO 'SI EL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO
If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then 'If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) ' DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
End If 'End If
If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then 'If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then
DdlVendedor.Enabled = False ' DdlVendedor.Enabled = False
End If 'End If
CargaVendedores()
UpFacturar.Update() UpFacturar.Update()
@@ -6370,10 +6408,6 @@ Partial Class Ventas
End If End If
BloqueaCondiconesPago() BloqueaCondiconesPago()
DeshabilitarAplicarNotaDeCredito(LblRFC.Text) DeshabilitarAplicarNotaDeCredito(LblRFC.Text)
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
CargaVendedoresSubProyectos()
End If
End Sub End Sub
Private Sub CargaRelacionadasPendientes() Private Sub CargaRelacionadasPendientes()
@@ -6946,7 +6980,7 @@ Partial Class Ventas
ViewState("CliPais") = ObjCliente.DtResultados.Rows(0)("Pais").ToString() ViewState("CliPais") = ObjCliente.DtResultados.Rows(0)("Pais").ToString()
ViewState("CliNoExt") = ObjCliente.DtResultados.Rows(0)("NoExt").ToString() ViewState("CliNoExt") = ObjCliente.DtResultados.Rows(0)("NoExt").ToString()
ViewState("CliNoInt") = ObjCliente.DtResultados.Rows(0)("NoInt").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("CveClienteSucursal") = ObjCliente.DtResultados(0)("CveClienteSucursal").ToString()
ViewState("CliCorreoCot") = ObjCliente.DtResultados.Rows(0)("CorreoCotizacion").ToString() ViewState("CliCorreoCot") = ObjCliente.DtResultados.Rows(0)("CorreoCotizacion").ToString()
@@ -7014,7 +7048,8 @@ Partial Class Ventas
LblEstado.Text = ObjCliente.Estado LblEstado.Text = ObjCliente.Estado
LblCP.Text = ObjCliente.CP LblCP.Text = ObjCliente.CP
LblTelefono.Text = ObjCliente.Telefono 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("CliNoExt") = ObjCliente.NoExt
ViewState("CliNoInt") = ObjCliente.NoInt ViewState("CliNoInt") = ObjCliente.NoInt
PlazoCobranza = ObjCliente.PlazoCobranza PlazoCobranza = ObjCliente.PlazoCobranza
@@ -7035,10 +7070,12 @@ Partial Class Ventas
End If End If
End If End If
'SI LA SUCURSAL DEL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO ''SI LA SUCURSAL DEL CLIENTE NO TIENE VENDEDOR SELECCIONAMOS EL DEL USUARIO
If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then 'If Not DdlVendedor.SelectedValue.ToEntero() > 0 Then
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) ' DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString())
End If 'End If
CargaVendedores()
'SI LA VENTA YA ESTA REGISTRADA NO DEBE HABILITAR ACCIONES 'SI LA VENTA YA ESTA REGISTRADA NO DEBE HABILITAR ACCIONES
If CveVenta <= 0 Then If CveVenta <= 0 Then
@@ -13634,7 +13671,7 @@ Partial Class Ventas
Case 30 'PAGO - BANCOS 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 For Each DrPago As DataRow In DtPagos.Rows
CveIEPago = -1 CveIEPago = -1
@@ -17004,9 +17041,7 @@ Partial Class Ventas
End If End If
ObjSubProyectos.Dispose() ObjSubProyectos.Dispose()
If UsuarioActual.Empresa.Funcionalidad(531) = "1" Then CargaVendedores()
CargaVendedoresSubProyectos()
End If
UpDetalle.Update() UpDetalle.Update()
End Sub End Sub
@@ -17189,43 +17224,93 @@ Partial Class Ventas
UpParametros.Update() UpParametros.Update()
End Sub End Sub
Private Sub CargaVendedores() Private Sub CargaVendedores()
Dim CveVendedorActual As Integer = 0
Dim CveVendedorActual = DdlVendedor.SelectedValue.ToEntero() Dim EsVentaNueva As Boolean = (Me.CveVenta <= 0 OrElse Me.EsCreaApartirDe OrElse NuevaFactura = 1)
If Not CveVendedorActual > 0 AndAlso Me.CveVendedorCliente > 0 Then
DdlVendedor.SelectedValueExist(Me.CveVendedorCliente)
CveVendedorActual = Me.CveVendedorCliente
End If
DdlVendedor.Items.Clear() DdlVendedor.Items.Clear()
DdlVendedor.SelectedValue = Nothing
DdlVendedorSucursal.Items.Clear()
DdlVendedorSucursal.SelectedValue = Nothing
If UsuarioActual.Empresa.Funcionalidad(302) = "1" AndAlso DdlSubProyectoDatos.SelectedValue.ToEntero() > 0 Then 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 Else
DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros("VendedorTipo = 1") DdlVendedor.DataSource = GlobalDTVendedores(UsuarioActual.CveEmpresa).FiltraParametros("VendedorTipo = 1")
End If 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 DdlVendedorSucursal.DataSource = DdlVendedor.DataSource
DdlVendedor.DataBind() DdlVendedor.DataBind()
DdlVendedorSucursal.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("0")
DdlVendedor.SelectedValueExist(UsuarioActual.CveVendedor.ToString()) 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 End If
If DdlVendedor.SelectedValue.ToEntero() > 0 AndAlso Not UsuarioActual.TienePermisoProceso(161) Then If CveVendedorActual > 0 Then
DdlVendedor.Enabled = False 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 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") 'TxtCorreoNotificaciones.Text = GlobalDTUsuarios(UsuarioActual.CveUsuario).FiltroPrimeroValor("Correo")
End Sub End Sub
#End Region #End Region
@@ -17872,7 +17957,7 @@ Partial Class Ventas
Dim FacturaDesglosoIEPS As Boolean = ((CveDevolucion > 0 AndAlso NuevaFactura = 1) AndAlso (Me.ObjFacturaNC IsNot Nothing AndAlso Not Me.ObjFacturaNC.VentaDesglosaIEPS)) Dim FacturaDesglosoIEPS As Boolean = ((CveDevolucion > 0 AndAlso NuevaFactura = 1) AndAlso (Me.ObjFacturaNC IsNot Nothing AndAlso Not Me.ObjFacturaNC.VentaDesglosaIEPS))
If Not ClienteDesglosaIEPS Then If Not ClienteDesglosaIEPS Then
If RegeneraIEPS AndAlso FacturaDesglosoIEPS Then If Not RegeneraIEPS AndAlso Not FacturaDesglosoIEPS Then
PU = PU * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal) PU = PU * (1 + DrPS("IEPSPorcentaje").ToString().ToDecimal)
VentaDesglosaIEPS = True VentaDesglosaIEPS = True
End If End If
@@ -33644,23 +33729,29 @@ Partial Class Ventas
UpModalSolicitud.Update() UpModalSolicitud.Update()
End Sub 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 ' Dim DtVendedoresSucursales = GlobalDTClientesVendedoresSubProyectos(UsuarioActual.CveEmpresa, CveCliente:=Me.CveCliente, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero())
DdlVendedor.Items.Clear()
DdlVendedor.SelectedValue = Nothing
DdlVendedor.DataSource = DtVendedoresSucursales ' If DtVendedoresSucursales IsNot Nothing AndAlso DtVendedoresSucursales.Rows.Count > 0 Then
DdlVendedor.DataBind() ' DdlVendedor.DataSource = DtVendedoresSucursales
DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "0")) ' 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() ' DdlVendedor.DataBind()
End If ' DdlVendedor.Items.Insert(0, New ListItem("Sin Asignar", "0"))
UpParametros.Update() ' UpParametros.Update()
End Sub 'End Sub
Public Class MAnticipoRelacionado Public Class MAnticipoRelacionado
Public Property CveVenta As Integer Public Property CveVenta As Integer