Merge branch 'master' of http://192.168.10.111:8383/SIG
This commit is contained in:
@@ -1996,6 +1996,25 @@ Public Class ClsGPS
|
||||
#End Region
|
||||
|
||||
#Region "V E H I C U L O S"
|
||||
Public Function GetRepUnidades(CveEmpresa As Integer, CveCliente As Integer, Optional FechaI As DateTime = MinFecha, Optional FechaF As DateTime = MaxFecha, Optional CveEstatus As Integer = -1) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_GPS_RepUnidades")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@CveCliente", SqlDbType.Int).Value = CveCliente
|
||||
.Add("@FechaI", SqlDbType.DateTime).Value = FechaI
|
||||
.Add("@FechaF", SqlDbType.DateTime).Value = FechaF
|
||||
.Add("@CveEstatus", SqlDbType.Int).Value = CveEstatus
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener el reporte de los vehículos.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
|
||||
End Try
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
Public Function VehiculoAdd(Modelo As String, Color As String, Serie As String, Nombre As String, NoEconomico As String, CveUsuario As Integer, CveCliente As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_GPS_VehiculoAdd")
|
||||
|
||||
@@ -4608,6 +4608,7 @@ Public Class ClsPaginas
|
||||
PaginaDict.Add("/GPS/RepGastos.aspx".ToUpper(), 685)
|
||||
PaginaDict.Add("/GPS/RecursoConfiableTracking.aspx".ToUpper(), 692)
|
||||
PaginaDict.Add("/GPS/KimberlyClarkTracking.aspx".ToUpper(), -1)
|
||||
PaginaDict.Add("/GPS/RepUnidades.aspx".ToUpper(), 780)
|
||||
#End Region
|
||||
'INVENTARIOS
|
||||
#Region "Inventarios"
|
||||
@@ -5941,6 +5942,19 @@ Public Class ClsPaginas
|
||||
Dim TipoDocumentoRef As String = ""
|
||||
Dim AplicaPagare As String = "1"
|
||||
|
||||
Dim RFCReceptor As String = ""
|
||||
|
||||
If String.IsNullOrEmpty(Vta.RFCReceptor) Then
|
||||
RFCReceptor = Vta.Cliente.RFC
|
||||
If Vta.FacturarSucursal Then
|
||||
If Vta.ClienteSucursal IsNot Nothing Then
|
||||
RFCReceptor = Vta.ClienteSucursal.RFC
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
RFCReceptor = Vta.RFCReceptor
|
||||
End If
|
||||
|
||||
Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio)
|
||||
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
|
||||
Dim ImgCBB As String '= String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio)
|
||||
@@ -6070,7 +6084,7 @@ Public Class ClsPaginas
|
||||
'Si no tiene CBB, SE GENERA
|
||||
If Not ImagenCBB.Exists Then
|
||||
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
|
||||
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, Vta.Cliente.RFC, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB)
|
||||
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB)
|
||||
End If
|
||||
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio)
|
||||
|
||||
@@ -6085,7 +6099,7 @@ Public Class ClsPaginas
|
||||
|
||||
'CLIENTE
|
||||
params.Add(New CrystalParametro("ClienteCodigo", Vta.Cliente.Codigo))
|
||||
params.Add(New CrystalParametro("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso Vta.Cliente.RFC = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre))))
|
||||
params.Add(New CrystalParametro("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso RFCReceptor = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre))))
|
||||
params.Add(New CrystalParametro("ClienteDireccion", ClienteDireccion))
|
||||
params.Add(New CrystalParametro("ClienteLugar", ClienteLugar))
|
||||
|
||||
@@ -6117,7 +6131,7 @@ Public Class ClsPaginas
|
||||
params.Add(New CrystalParametro("SelloSAT", Vta.SelloSAT))
|
||||
|
||||
params.Add(New CrystalParametro("QR", ImgCBB))
|
||||
params.Add(New CrystalParametro("ClienteRFC", Vta.Cliente.RFC))
|
||||
params.Add(New CrystalParametro("ClienteRFC", RFCReceptor))
|
||||
params.Add(New CrystalParametro("FormaPago", Vta.FormaPagoText))
|
||||
params.Add(New CrystalParametro("Moneda", Vta.Moneda))
|
||||
params.Add(New CrystalParametro("TipoCambio", Vta.TipoCambio.ToString))
|
||||
@@ -6452,7 +6466,18 @@ Public Class ClsPaginas
|
||||
Dim NombreArchivoDescarga As String = ""
|
||||
Dim TipoDocumento As String = ""
|
||||
Dim TipoDocumentoRef As String = ""
|
||||
Dim RFCReceptor As String = ""
|
||||
|
||||
If String.IsNullOrEmpty(Vta.RFCReceptor) Then
|
||||
RFCReceptor = Vta.Cliente.RFC
|
||||
If Vta.FacturarSucursal Then
|
||||
If Vta.ClienteSucursal IsNot Nothing Then
|
||||
RFCReceptor = Vta.ClienteSucursal.RFC
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
RFCReceptor = Vta.RFCReceptor
|
||||
End If
|
||||
|
||||
Dim RutaCBB As String = String.Format("{0}CBB\{1}.jpg", Ruta, Vta.SerieFolio)
|
||||
Dim ImagenCBB As New System.IO.FileInfo(RutaCBB)
|
||||
@@ -6607,7 +6632,7 @@ Public Class ClsPaginas
|
||||
'Si no tiene CBB, SE GENERA
|
||||
If Not ImagenCBB.Exists AndAlso Vta.CveCliente.ToEntero > 0 Then
|
||||
Dim CBB As New ClbNegBICFDv3_2.ClsNegCBBGenerar()
|
||||
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, Vta.Cliente.RFC, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB)
|
||||
CBB.GenerarCBB(UsuarioActual.Empresa.RFC, RFCReceptor, Vta.Total.ToString.ToDecimal, Vta.FolioFiscal, RutaCBB)
|
||||
End If
|
||||
ImgCBB = String.Format("{0}://{1}:{2}/Empresas/{3}/CBB/{4}.jpg", Request.Url.Scheme, Request.Url.Host, Request.Url.Port, UsuarioActual.CveEmpresa, Vta.SerieFolio)
|
||||
|
||||
@@ -6628,14 +6653,14 @@ Public Class ClsPaginas
|
||||
params.Add(New ReportParameter("ClienteNombre", If(Vta.ClienteSucursal.ImprimeNombreSucursal = "True", If(Vta.CveClienteSucursal > 0, Vta.ClienteSucursal.Sucursal, Vta.Cliente.Nombre), If(Vta.AtencionA <> "" AndAlso Vta.TipoDocto.Contiene("Ing", "Rem") AndAlso Vta.Cliente.RFC = "XAXX010101000", $"{Vta.Cliente.Nombre}({Vta.AtencionA})", Vta.Cliente.Nombre))))
|
||||
params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion))
|
||||
params.Add(New ReportParameter("ClienteLugar", ClienteLugar))
|
||||
params.Add(New ReportParameter("ClienteRFC", Vta.Cliente.RFC))
|
||||
params.Add(New ReportParameter("ClienteRFC", RFCReceptor))
|
||||
End If
|
||||
If Vta.CveEmpresaCRM.ToEntero > 0 Then
|
||||
params.Add(New ReportParameter("ClienteCodigo", Vta.Cliente.Codigo))
|
||||
params.Add(New ReportParameter("ClienteNombre", Vta.Cliente.Nombre))
|
||||
params.Add(New ReportParameter("ClienteDireccion", ClienteDireccion))
|
||||
params.Add(New ReportParameter("ClienteLugar", ClienteLugar))
|
||||
params.Add(New ReportParameter("ClienteRFC", Vta.Cliente.RFC))
|
||||
params.Add(New ReportParameter("ClienteRFC", RFCReceptor))
|
||||
End If
|
||||
|
||||
'TOTALES
|
||||
|
||||
@@ -1687,6 +1687,34 @@ Public Class ClsVentas
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function GetRepPSDiario(CveSubProyecto As Integer, CvePS As Integer, FechaConsulta As Date, CveEmpresa As Integer, Optional CveUsuarioConsulta As Integer = -1, Optional GPO As Integer = -1,
|
||||
Optional CveMoneda As Integer = -1, Optional TipoCambio As Integer = -1, Optional TCEspecifico As Double = 0) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Vta_RepPSDiarioGet")
|
||||
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
|
||||
.Add("@CvePS", SqlDbType.Int).Value = CvePS
|
||||
.Add("@FechaConsulta", SqlDbType.Date).Value = FechaConsulta
|
||||
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
|
||||
.Add("@CveUsuarioConsulta", SqlDbType.Int).Value = CveUsuarioConsulta
|
||||
.Add("@GPO", SqlDbType.Int).Value = GPO
|
||||
.Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda
|
||||
.Add("@TipoCambio", SqlDbType.Int).Value = TipoCambio
|
||||
.Add("@TCEspecifico", SqlDbType.Float).Value = TCEspecifico
|
||||
End With
|
||||
|
||||
Try
|
||||
Dataset = New DataSet()
|
||||
SqlAdapter.Fill(Dataset)
|
||||
Retorno = True
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener el Reporte diario.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
|
||||
End Try
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function GetRepNCxAplicar(CveClienteSucursal As Integer, CveSubProyecto As Integer, CveCliente As Integer, FechaInicio As DateTime, FechaFin As DateTime, ConSaldo As Integer, CveEmpresa As Integer) As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
|
||||
@@ -2512,12 +2540,13 @@ Public Class ClsVentas
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
Public Function AddVentasRelacionadas(CveVenta As Integer, CveVentaRelacionada As Integer) As Boolean
|
||||
Public Function AddVentasRelacionadas(CveVenta As Integer, CveVentaRelacionada As Integer, Optional FolioFiscal As String = "") As Boolean
|
||||
Dim Retorno As Boolean = False
|
||||
DataAdapter("PA_Vta_VentasRelacionadasAdd")
|
||||
With SqlAdapter.SelectCommand.Parameters
|
||||
.Add("@CveVenta", SqlDbType.Int).Value = CveVenta
|
||||
.Add("@CveVentaRelacionada", SqlDbType.Int).Value = CveVentaRelacionada
|
||||
.Add("@FolioFiscal", SqlDbType.VarChar).Value = FolioFiscal
|
||||
End With
|
||||
Try
|
||||
SqlAdapter.Fill(Data)
|
||||
|
||||
@@ -2058,24 +2058,36 @@ Namespace Modelos
|
||||
End Sub
|
||||
Private Function CancelarMovimientosUsados(factura As Modelos.Factura, UsuarioActual As Usuario, ByRef ObjAcum As ClsAcumuladores) As Boolean
|
||||
Dim Retorno As Boolean = True
|
||||
If ObjAcum.DistribuidorMovtosGet(factura.CveCliente, UsuarioActual.CveEmpresa, CveVentaRNCCargo:=factura.CveVenta, CveConcepto:=2) Then
|
||||
Dim CveConceptoSalida As Integer = 2
|
||||
|
||||
Dim DtSalidas As DataTable = ObjAcum.DtResultados.FiltraParametros("Cantidad > 0")
|
||||
If DtSalidas IsNot Nothing AndAlso DtSalidas.Rows.Count > 0 Then
|
||||
For Each RowSalida As DataRow In DtSalidas.Rows
|
||||
Dim CveConcepto As Integer = -1
|
||||
|
||||
Select Case factura.TipoDocto
|
||||
Case "Ing"
|
||||
CveConcepto = 2
|
||||
Case "Dev"
|
||||
CveConcepto = 1
|
||||
Case "RNC"
|
||||
CveConcepto = 1
|
||||
Case "Egs"
|
||||
CveConcepto = 6
|
||||
End Select
|
||||
|
||||
If ObjAcum.DistribuidorMovtosGet(factura.CveCliente, UsuarioActual.CveEmpresa, CveVentaRNCCargo:=factura.CveVenta, CveConcepto:=CveConcepto) Then
|
||||
Dim DtMovimientos As DataTable = ObjAcum.DtResultados.FiltraParametros("Cantidad > 0")
|
||||
If DtMovimientos IsNot Nothing AndAlso DtMovimientos.Rows.Count > 0 Then
|
||||
For Each RowSalida As DataRow In DtMovimientos.Rows
|
||||
Dim Cantidad As Decimal = RowSalida("Cantidad").ToString().ToDecimal() * -1
|
||||
|
||||
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Cantidad, RowSalida("CveTamaño").ToString.ToEntero, CveConceptoSalida, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then
|
||||
If Not ObjAcum.DistribuidorMovtosAdd(factura.CveCliente, Cantidad, RowSalida("CveTamaño").ToString.ToEntero, CveConcepto, factura.CveVenta, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 0D, "") Then
|
||||
Retorno = False
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
DtSalidas.Dispose()
|
||||
DtMovimientos.Dispose()
|
||||
End If
|
||||
|
||||
End If
|
||||
Return Retorno
|
||||
|
||||
End Function
|
||||
Private Function GuardarUsados(ByRef ObjAcum As ClsAcumuladores, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios, factura As Modelos.Factura, ByRef Optional Resp As MMensajeFactura = Nothing) As Boolean
|
||||
Dim Resultado As Boolean = True
|
||||
@@ -5420,7 +5432,7 @@ Namespace Modelos
|
||||
|
||||
'CANCELA MOVIMIENTOS DE USADOS
|
||||
If Not ErrorCancelar Then
|
||||
If ObjFactura.TipoDocto = "Ing" Then
|
||||
If ObjFactura.TipoDocto.Contiene("Ing", "Dev", "RNC", "Egs") Then
|
||||
If Not CancelarMovimientosUsados(ObjFactura, UsuarioActual, ObjAcum) Then
|
||||
ErrorCancelar = True
|
||||
MensajeError = "Ocurrió un error al cancelar los movimientos de usados"
|
||||
|
||||
@@ -8,6 +8,7 @@ Imports System.Net.Http
|
||||
Imports System.Xml
|
||||
Imports System.Data
|
||||
Imports System.Xml.Serialization
|
||||
Imports System.Net
|
||||
|
||||
Public Class Timbrado
|
||||
|
||||
@@ -495,6 +496,84 @@ Public Class Timbrado
|
||||
End If
|
||||
MsgCancelacion.AppendFormat("{0} --Código:{1} -- XML: {2}", objCan.MensajeError, objCan.CodigoError, objCan.Xml)
|
||||
|
||||
Case 5
|
||||
CancelacionAcuse = ""
|
||||
Retorno = False
|
||||
|
||||
MsgCancelacion.AppendFormat("5.1-")
|
||||
Dim TimbraProduccion As Boolean = True
|
||||
|
||||
Dim EmisorRFC As String = Empresa.RFC
|
||||
Dim ArchivoLLave As String = $"{Empresa.Ruta}Certificados\{Empresa.ArchivoKey}"
|
||||
Dim ArchivoCertificado As String = $"{Empresa.Ruta}Certificados\{Empresa.ArchivoCer}"
|
||||
Dim Clave As String = Empresa.ContraseñaKey
|
||||
|
||||
Dim UsuarioServicio As String = "rene.molina@adssistemas.mx"
|
||||
Dim ClaveServicio As String = "Facturacion2021#"
|
||||
|
||||
If Not Empresa.FacturaProduccion OrElse Empresa.CveEmpresa = 1 Then
|
||||
EmisorRFC = "ZUÑ920208KL4"
|
||||
ArchivoLLave = $"{Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
ArchivoCertificado = $"{Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
Clave = "12345678a"
|
||||
TimbraProduccion = False
|
||||
End If
|
||||
|
||||
Dim llaveByte As Byte(), certByte As Byte()
|
||||
Dim llaveBase64 As String = "", certBase64 As String = ""
|
||||
|
||||
Try
|
||||
llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave)
|
||||
llaveBase64 = Convert.ToBase64String(llaveByte)
|
||||
Catch ex As Exception
|
||||
Alert($"Error al leer la llave privada: {ex.Message}", TipoMensaje.MsgError)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
Try
|
||||
certByte = System.IO.File.ReadAllBytes(ArchivoCertificado)
|
||||
certBase64 = Convert.ToBase64String(certByte)
|
||||
Catch ex As Exception
|
||||
Alert($"Error al leer el certificado: {ex.Message}", TipoMensaje.MsgError)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495"
|
||||
|
||||
Dim Respuesta As String = EnviarInformacionCancelacionPADESOAP("https://timbrado.pade.mx/servicio/Timbrado3.3?wsdl", UsuarioServicio, ClaveServicio, Contrato, EmisorRFC, RFCReceptor, certBase64, llaveBase64, Clave, FolioFiscal, Total, TimbraProduccion)
|
||||
|
||||
If Not String.IsNullOrEmpty(Respuesta) Then
|
||||
Dim result As PADEServicioCancelacionResp = Nothing
|
||||
Dim serializer As XmlSerializer = New XmlSerializer(GetType(PADEServicioCancelacionResp))
|
||||
|
||||
Try
|
||||
Using reader As TextReader = New StringReader(Respuesta)
|
||||
result = CType(serializer.Deserialize(reader), PADEServicioCancelacionResp)
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener los resultados", ex)
|
||||
End Try
|
||||
|
||||
If result IsNot Nothing Then
|
||||
If result.statusOk Then
|
||||
Dim cancelacion = result.cancelaciones.First()
|
||||
If cancelacion IsNot Nothing Then
|
||||
'EN PROCESO, CANCELABLE SIN ACEPTACION,CANCEALDO PREVIAMENTE
|
||||
If cancelacion.codigo.Contiene("96", "201", "202") Then
|
||||
CancelacionFecha = Now
|
||||
Retorno = True
|
||||
CancelacionAcuse = result.acuseCancelBase64
|
||||
End If
|
||||
CancelacionMensaje = cancelacion.mensaje
|
||||
Else
|
||||
CancelacionMensaje = result.mensaje
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
|
||||
End If
|
||||
End Select
|
||||
|
||||
|
||||
@@ -504,6 +583,99 @@ Public Class Timbrado
|
||||
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
<Serializable(), XmlRoot("servicioCancel")>
|
||||
Public Class PADEServicioCancelacionResp
|
||||
<XmlElement("statusOk")>
|
||||
Public Property statusOk As Boolean
|
||||
<XmlElement("codigo")>
|
||||
Public Property codigo As String
|
||||
<XmlElement("mensaje")>
|
||||
Public Property mensaje As String
|
||||
<XmlElement("procesados")>
|
||||
Public Property procesados As Integer
|
||||
<XmlElement("cancelados")>
|
||||
Public Property cancelados As Integer
|
||||
<XmlArray("cancelaciones")>
|
||||
<XmlArrayItem("cancelacion")>
|
||||
Public Property cancelaciones As List(Of PADECancelacion)
|
||||
<XmlElement("acuseCancelBase64")>
|
||||
Public Property acuseCancelBase64 As String
|
||||
End Class
|
||||
|
||||
<Serializable(), XmlRoot("cancelacion")>
|
||||
Public Class PADECancelacion
|
||||
<XmlElement("uuid")>
|
||||
Public Property uuid As String
|
||||
<XmlElement("codigo")>
|
||||
Public Property codigo As String
|
||||
<XmlElement("mensaje")>
|
||||
Public Property mensaje As String
|
||||
End Class
|
||||
|
||||
Private Function EnviarInformacionCancelacionPADESOAP(ByVal url As String, UsuarioServicio As String, PassServicio As String, contrato As String, rfcEmisor As String, rfcReceptor As String,
|
||||
certBase64 As String, keyBase64 As String, keyPass As String, arregloUUID As String, Total As Decimal, TimbraProduccion As Boolean) As String
|
||||
Dim retorno = ""
|
||||
Try
|
||||
|
||||
Dim request As HttpWebRequest = CType(WebRequest.Create($"{url}"), HttpWebRequest)
|
||||
'request.Headers.Add("SOAPAction:http://tempuri.org/TestCfd33 ")
|
||||
request.ContentType = "text/xml;charset=""utf-8"""
|
||||
request.Accept = "text/xml"
|
||||
request.Method = "POST"
|
||||
|
||||
Dim XMLString As String = $"<Envelope xmlns=""http://schemas.xmlsoap.org/soap/envelope/"">
|
||||
<Body>
|
||||
<cancelarConOpciones xmlns=""timbrado.ws.pade.mx"">
|
||||
<contrato xmlns="""">{contrato}</contrato>
|
||||
<usuario xmlns="""">{UsuarioServicio}</usuario>
|
||||
<passwd xmlns="""">{PassServicio}</passwd>
|
||||
<rfcEmisor xmlns="""">{rfcEmisor}</rfcEmisor>
|
||||
<arregloUUID xmlns="""">{arregloUUID}|{rfcReceptor}|{rfcEmisor}|{Total}</arregloUUID>
|
||||
<cert xmlns="""">{certBase64}</cert>
|
||||
<key xmlns="""">{keyBase64}</key>
|
||||
<keyPass xmlns="""">{keyPass}</keyPass>
|
||||
<opciones xmlns="""">{If(TimbraProduccion, "", "MODO_PRUEBA:3")}</opciones>
|
||||
</cancelarConOpciones>
|
||||
</Body>
|
||||
</Envelope>"
|
||||
|
||||
Dim SOAPReqBody As XmlDocument = New XmlDocument()
|
||||
SOAPReqBody.LoadXml(XMLString)
|
||||
|
||||
Using stream As Stream = request.GetRequestStream()
|
||||
SOAPReqBody.Save(stream)
|
||||
End Using
|
||||
|
||||
Dim response As String = ""
|
||||
|
||||
Using Serviceres As WebResponse = request.GetResponse()
|
||||
Using rd As StreamReader = New StreamReader(Serviceres.GetResponseStream())
|
||||
response = rd.ReadToEnd()
|
||||
End Using
|
||||
End Using
|
||||
|
||||
If Not String.IsNullOrEmpty(response) Then
|
||||
Dim xmlRetorno = New XmlDocument()
|
||||
xmlRetorno.LoadXml(response)
|
||||
Dim elemList As XmlNodeList = xmlRetorno.GetElementsByTagName("return")
|
||||
|
||||
If elemList.Count > 0 Then
|
||||
If elemList(0).ChildNodes.Count > 0 Then
|
||||
retorno = elemList(0).ChildNodes(0).Value
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
retorno = ""
|
||||
OnError("Ocurrió un error al cancelar", ex)
|
||||
End Try
|
||||
|
||||
Return retorno
|
||||
End Function
|
||||
|
||||
Public Function PreparaTimbrePago(EmisorRFC As String, EmisorNombre As String, EmisorRegimenFiscal As String,
|
||||
ReceptorRFC As String, ReceptorNombre As String, Serie As String, Folio As String, FechaTimbrado As DateTime,
|
||||
CuentaPago As String, FechaPago As DateTime, FormaPago As String, MonedaPago As String, Monto As Double, LugarExpedicion As String,
|
||||
@@ -700,9 +872,15 @@ Public Class Timbrado
|
||||
UsuarioServicio = UsuarioActual.Empresa.BIUsuario
|
||||
ClaveServicio = UsuarioActual.Empresa.BIContraseña
|
||||
Clave = "12345678a"
|
||||
EmisorRFC = "AAA010101AAA"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
'EmisorRFC = "AAA010101AAA"
|
||||
'ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
'ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
EmisorRFC = "ZUÑ920208KL4"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
|
||||
UrlServicio = "http://portalmacropro.com.mx/srvCFDi33prueba/service1.asmx"
|
||||
TimbraProduccion = False
|
||||
End If
|
||||
@@ -1052,9 +1230,14 @@ Public Class Timbrado
|
||||
|
||||
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
||||
|
||||
EmisorRFC = "AAA010101AAA"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
'EmisorRFC = "AAA010101AAA"
|
||||
'ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
'ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
EmisorRFC = "ZUÑ920208KL4"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
|
||||
Clave = "12345678a"
|
||||
TimbraProduccion = False
|
||||
Select Case UsuarioActual.Empresa.CvePAC
|
||||
@@ -1633,9 +1816,14 @@ Public Class Timbrado
|
||||
|
||||
If Not UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1 Then
|
||||
|
||||
EmisorRFC = "AAA010101AAA"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
'EmisorRFC = "AAA010101AAA"
|
||||
'ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
'ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
EmisorRFC = "ZUÑ920208KL4"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
|
||||
Clave = "12345678a"
|
||||
TimbraProduccion = False
|
||||
Select Case CvePACEspecial
|
||||
@@ -2026,19 +2214,19 @@ Public Class Timbrado
|
||||
If ObjCFDITimbre.Nomina IsNot Nothing Then
|
||||
'If cfdi.Nomina12SeparacionIndemnizacion Then
|
||||
If ObjCFDITimbre.Nomina.Percepciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Percepciones.Count > 0 Then
|
||||
cfdi.Nomina12Percepciones(ObjCFDITimbre.Nomina.TotalSueldos, ObjCFDITimbre.Nomina.TotalIndemnizacion, ObjCFDITimbre.Nomina.TotalJubilacion, ObjCFDITimbre.Nomina.TotalPercepcionesGravado, ObjCFDITimbre.Nomina.TotalPercepcionesExento)
|
||||
For Each percep As CFDINominaPercepciones In ObjCFDITimbre.Nomina.Percepciones
|
||||
cfdi.Nomina12Percepcion(percep.TipoPercepcion, percep.Clave, percep.Concepto, Math.Round(percep.ImporteGravado, 2), Math.Round(percep.ImporteExento, 2))
|
||||
If percep.TipoPercepcion.ToEntero() = 19 Then
|
||||
cfdi.Nomina12Percepciones(ObjCFDITimbre.Nomina.TotalSueldos, ObjCFDITimbre.Nomina.TotalIndemnizacion, ObjCFDITimbre.Nomina.TotalJubilacion, ObjCFDITimbre.Nomina.TotalPercepcionesGravado, ObjCFDITimbre.Nomina.TotalPercepcionesExento)
|
||||
For Each percep As CFDINominaPercepciones In ObjCFDITimbre.Nomina.Percepciones
|
||||
cfdi.Nomina12Percepcion(percep.TipoPercepcion, percep.Clave, percep.Concepto, Math.Round(percep.ImporteGravado, 2), Math.Round(percep.ImporteExento, 2))
|
||||
If percep.TipoPercepcion.ToEntero() = 19 Then
|
||||
|
||||
If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then
|
||||
For Each HoraExtra As CFDINominaHorasExtras In ObjCFDITimbre.Nomina.HorasExtras
|
||||
cfdi.Nomina12HorasExtra(HoraExtra.Dias.ToEntero, HoraExtra.TipoHoras, HoraExtra.HorasExtra, HoraExtra.ImportePagado)
|
||||
Next
|
||||
End If
|
||||
If ObjCFDITimbre.Nomina.HorasExtras IsNot Nothing AndAlso ObjCFDITimbre.Nomina.HorasExtras.Count > 0 Then
|
||||
For Each HoraExtra As CFDINominaHorasExtras In ObjCFDITimbre.Nomina.HorasExtras
|
||||
cfdi.Nomina12HorasExtra(HoraExtra.Dias.ToEntero, HoraExtra.TipoHoras, HoraExtra.HorasExtra, HoraExtra.ImportePagado)
|
||||
Next
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
If ObjCFDITimbre.IStimbreFiniquito Then
|
||||
'ObjCFDITimbre.Nomina.
|
||||
@@ -2051,39 +2239,39 @@ Public Class Timbrado
|
||||
End If
|
||||
'deducciones al final
|
||||
If ObjCFDITimbre.Nomina.Deducciones IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Deducciones.Count > 0 Then
|
||||
cfdi.Nomina12Deducciones(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2))
|
||||
For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones
|
||||
cfdi.Nomina12Deduccion(deduc.TipoDeduccion, deduc.Clave, deduc.Concepto, Math.Round(deduc.Importe, 2))
|
||||
Next
|
||||
End If
|
||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing Then
|
||||
' cfdi.agregarNominaOtrosPagosOtroPago12("002", "002", "Subsidio", "10.00");
|
||||
' cfdi.agregarNominaOtrosPagosOtroPagoSubsidioAlEmpleo12("10.00");
|
||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0 Then
|
||||
For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos
|
||||
cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe)
|
||||
If otpag.TipoOtroPago = "002" Then
|
||||
cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado)
|
||||
End If
|
||||
cfdi.Nomina12Deducciones(ObjCFDITimbre.Nomina.TotalDeduccionesOtras, Math.Round(ObjCFDITimbre.Nomina.TotalDeduccionesImpuestosRetenidos, 2))
|
||||
For Each deduc As CFDINominaDeducciones In ObjCFDITimbre.Nomina.Deducciones
|
||||
cfdi.Nomina12Deduccion(deduc.TipoDeduccion, deduc.Clave, deduc.Concepto, Math.Round(deduc.Importe, 2))
|
||||
Next
|
||||
End If
|
||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing Then
|
||||
' cfdi.agregarNominaOtrosPagosOtroPago12("002", "002", "Subsidio", "10.00");
|
||||
' cfdi.agregarNominaOtrosPagosOtroPagoSubsidioAlEmpleo12("10.00");
|
||||
If ObjCFDITimbre.Nomina.OtrosPagos IsNot Nothing AndAlso ObjCFDITimbre.Nomina.OtrosPagos.Count > 0 Then
|
||||
For Each otpag As CFDINominaOtrosPagos In ObjCFDITimbre.Nomina.OtrosPagos
|
||||
cfdi.Nomina12OtroPago(otpag.TipoOtroPago, otpag.Clave, otpag.Concepto, otpag.Importe)
|
||||
If otpag.TipoOtroPago = "002" Then
|
||||
cfdi.Nomina12SubsidioAlEmpleo(otpag.Subsidiocausado)
|
||||
End If
|
||||
|
||||
If otpag.TipoOtroPago = "004" AndAlso otpag.Importe > 0 Then
|
||||
If otpag.ejercicio > 0 Then
|
||||
cfdi.CompensacionSaldosAFavor(otpag.SaldoAFavor, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor
|
||||
End If
|
||||
If otpag.TipoOtroPago = "004" AndAlso otpag.Importe > 0 Then
|
||||
If otpag.ejercicio > 0 Then
|
||||
cfdi.CompensacionSaldosAFavor(otpag.SaldoAFavor, otpag.ejercicio, otpag.RemanenteSalFav) 'otpag.SaldoAFavor
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
If ObjCFDITimbre.Nomina.Incapacidades IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Incapacidades.Count > 0 Then
|
||||
For Each Incap As CFDINominaIncapacidades In ObjCFDITimbre.Nomina.Incapacidades
|
||||
cfdi.Nomina12Incapacidad(Incap.DiasIncapacidad.ToEntero, Incap.TipoIncapacidad, Incap.Importe)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
If ObjCFDITimbre.Nomina.Incapacidades IsNot Nothing AndAlso ObjCFDITimbre.Nomina.Incapacidades.Count > 0 Then
|
||||
For Each Incap As CFDINominaIncapacidades In ObjCFDITimbre.Nomina.Incapacidades
|
||||
cfdi.Nomina12Incapacidad(Incap.DiasIncapacidad.ToEntero, Incap.TipoIncapacidad, Incap.Importe)
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
#End Region
|
||||
|
||||
sw.Stop()
|
||||
sw.Stop()
|
||||
swTiempo.AppendFormat("Armado: ({0}) {1} ", sw.ElapsedMilliseconds - swmili, sw.ElapsedMilliseconds)
|
||||
swmili = sw.ElapsedMilliseconds
|
||||
sw.Start()
|
||||
@@ -2683,27 +2871,27 @@ Public Class Timbrado
|
||||
swmili = sw.ElapsedMilliseconds
|
||||
sw.Start()
|
||||
|
||||
Dim msgErrorGeneracion As String = If(String.IsNullOrEmpty(cfdi.MensajeError), "", cfdi.MensajeError)
|
||||
|
||||
#Region "Timbra"
|
||||
If ArchivoGenerado Then
|
||||
|
||||
'Dim opciones As String() = New String(0) {""}
|
||||
'Dim pade = New PADETimbrado.PadeTimbradoServiceClient
|
||||
Dim Respuesta As String = ""
|
||||
|
||||
'Dim Respuesta As String = pade.timbradoConCSD("72330711-cac6-4106-8051-cbcda1aef495", UsuarioServicio, ClaveServicio, cfdi.Xml, certByte, llaveByte, Clave, Not TimbraProduccion, opciones)
|
||||
If String.IsNullOrEmpty(msgErrorGeneracion) Then
|
||||
Dim TokenAuth As String = $"{UsuarioServicio}:{ClaveServicio}".ToBase64Encode()
|
||||
|
||||
Dim TokenAuth As String = $"{UsuarioServicio}:{ClaveServicio}".ToBase64Encode()
|
||||
|
||||
Dim payload As New JObject(
|
||||
New JProperty("contrato", "72330711-cac6-4106-8051-cbcda1aef495"),
|
||||
New JProperty("certBase64", certBase64),
|
||||
New JProperty("keyBase64", llaveBase64),
|
||||
New JProperty("keyPass", Clave),
|
||||
New JProperty("xmlBase64", cfdi.Xml.ToBase64Encode()),
|
||||
New JProperty("prueba", (Not TimbraProduccion).ToString().ToLower),
|
||||
New JProperty("opciones", New String(0) {""})
|
||||
)
|
||||
|
||||
Dim Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
||||
Dim payload As New JObject(
|
||||
New JProperty("contrato", "72330711-cac6-4106-8051-cbcda1aef495"),
|
||||
New JProperty("certBase64", certBase64),
|
||||
New JProperty("keyBase64", llaveBase64),
|
||||
New JProperty("keyPass", Clave),
|
||||
New JProperty("xmlBase64", cfdi.Xml.ToBase64Encode()),
|
||||
New JProperty("prueba", (Not TimbraProduccion).ToString().ToLower),
|
||||
New JProperty("opciones", New String(0) {""})
|
||||
)
|
||||
Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
||||
End If
|
||||
|
||||
' Aumentamos el timeout de la operación
|
||||
If Not String.IsNullOrEmpty(Respuesta) Then
|
||||
@@ -2722,8 +2910,8 @@ Public Class Timbrado
|
||||
If result IsNot Nothing Then
|
||||
If result.timbradoOk Then
|
||||
Dim FolioFiscal As String = result.UUID
|
||||
|
||||
cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML)
|
||||
'GUARDA EL XML RETORNADO POR EL PAC
|
||||
cfdi.EscribirXML(result.xmlBase64.ToBase64Decode(), RutaArchivo, NombreArchivoXML)
|
||||
|
||||
If ObjCFDITimbre.Comprobante.TipoComprobante <> "P" Then
|
||||
|
||||
@@ -2786,14 +2974,13 @@ Public Class Timbrado
|
||||
Retorno = ""
|
||||
Else
|
||||
If String.IsNullOrEmpty(result.mensaje) Then
|
||||
Retorno = Respuesta
|
||||
Retorno = Respuesta + msgErrorGeneracion
|
||||
MensajeErrorCFDI = ""
|
||||
Else
|
||||
Retorno = result.mensaje
|
||||
MensajeErrorCFDI = result.codigo
|
||||
If cfdi.Xml <> "" Then cfdi.EscribirXML(cfdi.Xml, RutaArchivo, NombreArchivoXML)
|
||||
End If
|
||||
|
||||
End If
|
||||
Else
|
||||
If String.IsNullOrEmpty(Respuesta) Then
|
||||
@@ -2805,12 +2992,22 @@ Public Class Timbrado
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
Retorno = "Ocurrió un error al obtener la respuesta"
|
||||
MensajeErrorCFDI = ""
|
||||
If String.IsNullOrEmpty(msgErrorGeneracion) Then
|
||||
Retorno = "Ocurrió un error al obtener la respuesta"
|
||||
MensajeErrorCFDI = ""
|
||||
Else
|
||||
Retorno = msgErrorGeneracion
|
||||
MensajeErrorCFDI = ""
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
Retorno = "Ocurrió un error al generar el xml"
|
||||
MensajeErrorCFDI = ""
|
||||
If String.IsNullOrEmpty(msgErrorGeneracion) Then
|
||||
Retorno = "Ocurrió un error al generar el xml"
|
||||
MensajeErrorCFDI = ""
|
||||
Else
|
||||
Retorno = msgErrorGeneracion
|
||||
MensajeErrorCFDI = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
#End Region
|
||||
@@ -2854,6 +3051,10 @@ Public Class Timbrado
|
||||
Public Property mensaje As String
|
||||
<XmlElement("UUID")>
|
||||
Public Property UUID As String
|
||||
<XmlElement("FechaTimbrado")>
|
||||
Public Property FechaTimbrado As DateTime
|
||||
<XmlElement("xmlBase64")>
|
||||
Public Property xmlBase64 As String
|
||||
End Class
|
||||
|
||||
|
||||
@@ -2907,9 +3108,15 @@ Public Class Timbrado
|
||||
UsuarioServicio = "fgomez"
|
||||
ClaveServicio = "12121212"
|
||||
Clave = "12345678a"
|
||||
EmisorRFC = "AAA010101AAA"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
'EmisorRFC = "AAA010101AAA"
|
||||
'ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.key"
|
||||
'ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_AAA010101AAA.cer"
|
||||
|
||||
EmisorRFC = "ZUÑ920208KL4"
|
||||
ArchivoLLave = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
ArchivoCertificado = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
|
||||
UrlServicio = "http://generacfdi.com.mx/rvltimbrado/service1.asmx?WSDL" '"http://108.60.211.43/rvltimbrado/service1.asmx"
|
||||
End If
|
||||
|
||||
|
||||
@@ -3,6 +3,7 @@
|
||||
Imports Fluent
|
||||
Imports System
|
||||
Imports System.Web
|
||||
Imports System.Net
|
||||
Imports System.Net.Http
|
||||
Imports System.Web.Http
|
||||
Imports System.Data
|
||||
@@ -11,6 +12,9 @@ Imports Newtonsoft.Json.Linq
|
||||
Imports Extensiones
|
||||
Imports System.IO
|
||||
Imports System.Runtime.CompilerServices
|
||||
Imports System.Xml
|
||||
Imports System.Xml.Serialization
|
||||
Imports System.Linq
|
||||
|
||||
Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState
|
||||
|
||||
@@ -56,11 +60,19 @@ Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState
|
||||
#End Region
|
||||
|
||||
Public Sub ProcessRequest(ByVal context As HttpContext) Implements IHttpHandler.ProcessRequest
|
||||
context.Response.ContentType = "application/json"
|
||||
context.Response.ContentType = "application/xml"
|
||||
|
||||
Dim UsuarioActual = ValidaUsuarioSistema(1, 100)
|
||||
'Dim ObjFactura As New Modelos.Factura(usuario, 898028, 140)
|
||||
|
||||
CancelarFacturaPADE(context, UsuarioActual)
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
Private Sub TimbrarFacturaPADE(ByVal context As HttpContext, UsuarioActual As Usuario)
|
||||
|
||||
Dim UsuarioServicio As String = "rene.molina@adssistemas.mx"
|
||||
Dim ClaveServicio As String = "Facturacion2021#"
|
||||
|
||||
@@ -125,11 +137,189 @@ Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState
|
||||
New JProperty("opciones", New String(0) {""})
|
||||
)
|
||||
|
||||
Dim resp = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
||||
Dim Respuesta = EnviarInformacionPADE("https://timbrado.pade.mx/servicio/rest/timbrado/timbrarConCSD", payload.ToString(), TokenAuth)
|
||||
|
||||
context.Response.Write(resp)
|
||||
If Not String.IsNullOrEmpty(Respuesta) Then
|
||||
Dim result As PADEServicioTimbradoResp = Nothing
|
||||
Dim serializer As XmlSerializer = New XmlSerializer(GetType(PADEServicioTimbradoResp))
|
||||
|
||||
Try
|
||||
Using reader As TextReader = New StringReader(Respuesta)
|
||||
result = CType(serializer.Deserialize(reader), PADEServicioTimbradoResp)
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener los resultados", ex)
|
||||
End Try
|
||||
|
||||
If result IsNot Nothing Then
|
||||
Dim xmlGuardar = result.xmlBase64.ToBase64Decode()
|
||||
context.Response.Write(xmlGuardar)
|
||||
Else
|
||||
context.Response.Write(Respuesta)
|
||||
End If
|
||||
Else
|
||||
context.Response.Write(Respuesta)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CancelarFacturaPADE(ByVal context As HttpContext, UsuarioActual As Usuario)
|
||||
|
||||
Dim UsuarioServicio As String = "rene.molina@adssistemas.mx"
|
||||
Dim ClaveServicio As String = "Facturacion2021#"
|
||||
|
||||
Dim EmisorRFC As String = "ZUÑ920208KL4"
|
||||
Dim ArchivoLLave As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.key"
|
||||
Dim ArchivoCertificado As String = $"{UsuarioActual.Empresa.Ruta}Certificados\CSD01_ZUÑ920208KL4.cer"
|
||||
Dim Clave = "12345678a"
|
||||
Dim TimbraProduccion = False
|
||||
|
||||
If Not File.Exists(ArchivoCertificado) Then
|
||||
context.Response.Write("El archivo de llave privada no existe")
|
||||
Exit Sub
|
||||
End If
|
||||
If Not File.Exists(ArchivoLLave) Then
|
||||
context.Response.Write("El archivo de llave privada no existe")
|
||||
Exit Sub
|
||||
End If
|
||||
If UsuarioActual.Empresa.ContraseñaKey = "" Then
|
||||
context.Response.Write("La clave no puede ser vacía")
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim llaveByte As Byte(), certByte As Byte()
|
||||
Dim llaveBase64 As String = "", certBase64 As String = ""
|
||||
Dim cfdi As New GoFac.GoCfdi()
|
||||
Dim complemento As String = ""
|
||||
Dim complementoConcepto As String = ""
|
||||
|
||||
|
||||
Try
|
||||
llaveByte = System.IO.File.ReadAllBytes(ArchivoLLave)
|
||||
llaveBase64 = Convert.ToBase64String(llaveByte)
|
||||
Catch ex As Exception
|
||||
context.Response.Write($"Error al leer la llave privada: {ex.Message}")
|
||||
Exit Sub
|
||||
End Try
|
||||
|
||||
|
||||
Try
|
||||
certByte = System.IO.File.ReadAllBytes(ArchivoCertificado)
|
||||
certBase64 = Convert.ToBase64String(certByte)
|
||||
Catch ex As Exception
|
||||
context.Response.Write($"Error al leer el certificado: {ex.Message}")
|
||||
Exit Sub
|
||||
End Try
|
||||
|
||||
Dim TokenAuth As String = ToBase64Encode($"{UsuarioServicio}:{ClaveServicio}")
|
||||
|
||||
Dim Contrato As String = "72330711-cac6-4106-8051-cbcda1aef495"
|
||||
|
||||
Dim FolioFiscal As String = "9A46AD71-560B-4048-8B40-80ADC57C1CDC"
|
||||
|
||||
'Dim Respuesta As String = EnviarInformacionCancelacionPADE("https://timbrado.pade.mx/servicio/rest/cancelacion/cancelar", TokenAuth, Contrato, EmisorRFC, certBase64, llaveBase64, Clave, FolioFiscal)
|
||||
|
||||
'context.Response.Write(Respuesta)
|
||||
|
||||
Dim Respuesta As String = EnviarInformacionCancelacionPADESOAP("https://timbrado.pade.mx/servicio/Timbrado3.3?wsdl", UsuarioServicio, ClaveServicio, Contrato, EmisorRFC, certBase64, llaveBase64, Clave, FolioFiscal, TimbraProduccion)
|
||||
|
||||
If Not String.IsNullOrEmpty(Respuesta) Then
|
||||
Dim result As PADEServicioCancelacionResp = Nothing
|
||||
Dim serializer As XmlSerializer = New XmlSerializer(GetType(PADEServicioCancelacionResp))
|
||||
|
||||
Try
|
||||
Using reader As TextReader = New StringReader(Respuesta)
|
||||
result = CType(serializer.Deserialize(reader), PADEServicioCancelacionResp)
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al obtener los resultados", ex)
|
||||
End Try
|
||||
|
||||
If result IsNot Nothing Then
|
||||
context.Response.ContentType = "application/json"
|
||||
context.Response.Write(JsonConvert.SerializeObject(result))
|
||||
Else
|
||||
context.Response.Write(Respuesta)
|
||||
End If
|
||||
Else
|
||||
context.Response.Write(Respuesta)
|
||||
End If
|
||||
|
||||
'Dim arrayFolioFiscal = New String(0) {FolioFiscal}
|
||||
'Dim arrayOpciones = New List(Of String)
|
||||
'If Not TimbraProduccion Then
|
||||
' arrayOpciones.Add("MODO_PRUEBA:1")
|
||||
'End If
|
||||
|
||||
'Dim pade = New PADE33.PadeTimbradoServiceClient()
|
||||
|
||||
'Dim Res = pade.cancelarConOpciones(Contrato, UsuarioServicio, ClaveServicio, EmisorRFC, arrayFolioFiscal, certByte, llaveByte, Clave, arrayOpciones.ToArray())
|
||||
|
||||
'context.Response.Write(Res)
|
||||
End Sub
|
||||
|
||||
|
||||
Private Function EnviarInformacionCancelacionPADESOAP(ByVal url As String, UsuarioServicio As String, PassServicio As String, contrato As String, rfcEmisor As String,
|
||||
certBase64 As String, keyBase64 As String, keyPass As String, arregloUUID As String, TimbraProduccion As Boolean) As String
|
||||
Dim retorno = ""
|
||||
Try
|
||||
|
||||
Dim request As HttpWebRequest = CType(WebRequest.Create($"{url}"), HttpWebRequest)
|
||||
'request.Headers.Add("SOAPAction:http://tempuri.org/TestCfd33 ")
|
||||
request.ContentType = "text/xml;charset=""utf-8"""
|
||||
request.Accept = "text/xml"
|
||||
request.Method = "POST"
|
||||
|
||||
Dim XMLString As String = $"<Envelope xmlns=""http://schemas.xmlsoap.org/soap/envelope/"">
|
||||
<Body>
|
||||
<cancelarConOpciones xmlns=""timbrado.ws.pade.mx"">
|
||||
<contrato xmlns="""">{contrato}</contrato>
|
||||
<usuario xmlns="""">{UsuarioServicio}</usuario>
|
||||
<passwd xmlns="""">{PassServicio}</passwd>
|
||||
<rfcEmisor xmlns="""">{rfcEmisor}</rfcEmisor>
|
||||
<arregloUUID xmlns="""">{arregloUUID}</arregloUUID>
|
||||
<cert xmlns="""">{certBase64}</cert>
|
||||
<key xmlns="""">{keyBase64}</key>
|
||||
<keyPass xmlns="""">{keyPass}</keyPass>
|
||||
<opciones xmlns="""">{If(TimbraProduccion, "", "MODO_PRUEBA:3")}</opciones>
|
||||
</cancelarConOpciones>
|
||||
</Body>
|
||||
</Envelope>"
|
||||
|
||||
Dim SOAPReqBody As XmlDocument = New XmlDocument()
|
||||
SOAPReqBody.LoadXml(XMLString)
|
||||
|
||||
Using stream As Stream = request.GetRequestStream()
|
||||
SOAPReqBody.Save(stream)
|
||||
End Using
|
||||
|
||||
Dim response As String = ""
|
||||
|
||||
Using Serviceres As WebResponse = request.GetResponse()
|
||||
Using rd As StreamReader = New StreamReader(Serviceres.GetResponseStream())
|
||||
response = rd.ReadToEnd()
|
||||
End Using
|
||||
End Using
|
||||
|
||||
If Not String.IsNullOrEmpty(response) Then
|
||||
Dim xmlRetorno = New XmlDocument()
|
||||
xmlRetorno.LoadXml(response)
|
||||
Dim elemList As XmlNodeList = xmlRetorno.GetElementsByTagName("return")
|
||||
|
||||
If elemList.Count > 0 Then
|
||||
If elemList(0).ChildNodes.Count > 0 Then
|
||||
retorno = elemList(0).ChildNodes(0).Value
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
retorno = ""
|
||||
OnError("Ocurrió un error al cancelar", ex)
|
||||
End Try
|
||||
|
||||
Return retorno
|
||||
End Function
|
||||
|
||||
Public ReadOnly Property IsReusable() As Boolean Implements IHttpHandler.IsReusable
|
||||
Get
|
||||
@@ -159,6 +349,46 @@ Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState
|
||||
End Function
|
||||
|
||||
|
||||
Private Function EnviarInformacionCancelacionPADE(url As String, tokenAuth As String, contrato As String, rfcEmisor As String,
|
||||
certBase64 As String, keyBase64 As String, keyPass As String, arregloUUID As String) As String
|
||||
Dim Retorno As String = ""
|
||||
Try
|
||||
Dim urlParametros As String = String.Format("contrato={0}&rfcEmisor={1}&certBase64={2}&keyBase64={3}&keyPass={4}&arregloUUID={5}&opciones={6}", contrato, rfcEmisor, certBase64, keyBase64, keyPass, arregloUUID, "MODO_PRUEBA:1")
|
||||
|
||||
Dim urlRequest As String = String.Format("{0}?{1}", url, urlParametros)
|
||||
|
||||
Using httpClient = New HttpClient()
|
||||
httpClient.Timeout = New TimeSpan(0, 1, 0)
|
||||
Using request = New HttpRequestMessage(HttpMethod.Post, New Uri(urlRequest))
|
||||
request.Headers.Add("Authorization", $"Basic {tokenAuth}")
|
||||
|
||||
Dim response = httpClient.SendAsync(request, HttpCompletionOption.ResponseHeadersRead).Result
|
||||
Retorno = response.Content.ReadAsStringAsync().Result
|
||||
'Dim Parametros = New List(Of KeyValuePair(Of String, String))
|
||||
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("contrato", contrato))
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("rfcEmisor", rfcEmisor))
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("certBase64", certBase64))
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("keyBase64", keyBase64))
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("keyPass", keyPass))
|
||||
'Parametros.Add(New KeyValuePair(Of String, String)("arregloUUID", arregloUUID))
|
||||
|
||||
'Using content = New FormUrlEncodedContent(Parametros)
|
||||
' request.Content = content
|
||||
|
||||
|
||||
'End Using
|
||||
|
||||
End Using
|
||||
End Using
|
||||
Catch ex As Exception
|
||||
Retorno = ""
|
||||
OnError("Ocurrió un error al enviar la informacion", ex)
|
||||
End Try
|
||||
Return Retorno
|
||||
End Function
|
||||
|
||||
|
||||
Public Function ToBase64Encode(ByVal plainText As String) As String
|
||||
Dim plainTextBytes = System.Text.Encoding.UTF8.GetBytes(plainText)
|
||||
Return System.Convert.ToBase64String(plainTextBytes)
|
||||
@@ -170,6 +400,53 @@ Public Class SIGPolizaVirtual : Implements IHttpHandler, IRequiresSessionState
|
||||
Return System.Text.Encoding.UTF8.GetString(base64EncodedBytes)
|
||||
End Function
|
||||
|
||||
<Serializable(), XmlRoot("servicioTimbrado")>
|
||||
Public Class PADEServicioTimbradoResp
|
||||
<XmlElement("id")>
|
||||
Public Property id As String
|
||||
<XmlElement("timbradoOk")>
|
||||
Public Property timbradoOk As Boolean
|
||||
<XmlElement("contrato")>
|
||||
Public Property contrato As String
|
||||
<XmlElement("codigo")>
|
||||
Public Property codigo As String
|
||||
<XmlElement("mensaje")>
|
||||
Public Property mensaje As String
|
||||
<XmlElement("UUID")>
|
||||
Public Property UUID As String
|
||||
<XmlElement("FechaTimbrado")>
|
||||
Public Property FechaTimbrado As DateTime
|
||||
<XmlElement("xmlBase64")>
|
||||
Public Property xmlBase64 As String
|
||||
End Class
|
||||
|
||||
<Serializable(), XmlRoot("servicioCancel")>
|
||||
Public Class PADEServicioCancelacionResp
|
||||
<XmlElement("statusOk")>
|
||||
Public Property statusOk As Boolean
|
||||
<XmlElement("codigo")>
|
||||
Public Property codigo As String
|
||||
<XmlElement("mensaje")>
|
||||
Public Property mensaje As String
|
||||
<XmlElement("procesados")>
|
||||
Public Property procesados As Integer
|
||||
<XmlElement("cancelados")>
|
||||
Public Property cancelados As Integer
|
||||
<XmlArray("cancelaciones")>
|
||||
<XmlArrayItem("cancelacion")>
|
||||
Public Property cancelaciones As List(Of PADECancelacion)
|
||||
End Class
|
||||
|
||||
<Serializable(), XmlRoot("cancelacion")>
|
||||
Public Class PADECancelacion
|
||||
<XmlElement("uuid")>
|
||||
Public Property uuid As String
|
||||
<XmlElement("codigo")>
|
||||
Public Property codigo As String
|
||||
<XmlElement("mensaje")>
|
||||
Public Property mensaje As String
|
||||
End Class
|
||||
|
||||
Public Property XMLPrueba As String = "<?xml version=""1.0"" encoding=""UTF-8""?><cfdi:Comprobante xmlns:cfdi=""http://www.sat.gob.mx/cfd/3"" xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xsi:schemaLocation=""http://www.sat.gob.mx/cfd/3 http://www.sat.gob.mx/sitio_internet/cfd/3/cfdv33.xsd"" Version=""3.3"" Serie=""HM"" Folio=""1682"" Fecha=""2021-05-20T17:43:32"" Sello=""BdE1N3CwiqU6KKOWT80N6X/9kELGK22bRmfHfXHUaYvOCmOixuAN3a0yyd5Yzf4lD0sVs+OScZ1rgNKhWWyRwAJzw/avfGod2l7LIGbyYLGoUHUPpY3swDgTk+zq29PUbf3500YPf4qkXx3GcKYkIb4TnQPnvFnjE8FvcV+p8wETuvijm5T3HzFKCXG6ePrERIt2PN1NM26p2NIOzMSUksSNUtC6rqEI8G2yIUIMZqQ4bHTo1WdV0UPKBaqjkPLyY8Q1TMFZDbiudE454bUJWjxv6KYicXgfH17HJY91XTncCgwwrwlcPrKK7ea/xPzYumHMurEl5arjfqE6+nI3Fw=="" FormaPago=""01"" NoCertificado=""30001000000400002442"" Certificado=""MIIFuzCCA6OgAwIBAgIUMzAwMDEwMDAwMDA0MDAwMDI0NDIwDQYJKoZIhvcNAQELBQAwggErMQ8wDQYDVQQDDAZBQyBVQVQxLjAsBgNVBAoMJVNFUlZJQ0lPIERFIEFETUlOSVNUUkFDSU9OIFRSSUJVVEFSSUExGjAYBgNVBAsMEVNBVC1JRVMgQXV0aG9yaXR5MSgwJgYJKoZIhvcNAQkBFhlvc2Nhci5tYXJ0aW5lekBzYXQuZ29iLm14MR0wGwYDVQQJDBQzcmEgY2VycmFkYSBkZSBjYWRpejEOMAwGA1UEEQwFMDYzNzAxCzAJBgNVBAYTAk1YMRkwFwYDVQQIDBBDSVVEQUQgREUgTUVYSUNPMREwDwYDVQQHDAhDT1lPQUNBTjERMA8GA1UELRMIMi41LjQuNDUxJTAjBgkqhkiG9w0BCQITFnJlc3BvbnNhYmxlOiBBQ0RNQS1TQVQwHhcNMTkwNjE3MjAxODA2WhcNMjMwNjE3MjAxODA2WjCB4jEnMCUGA1UEAxQeWkFQQVRFUklBIFVSVEFETyDRRVJJIFNBIERFIENWMScwJQYDVQQpFB5aQVBBVEVSSUEgVVJUQURPINFFUkkgU0EgREUgQ1YxJzAlBgNVBAoUHlpBUEFURVJJQSBVUlRBRE8g0UVSSSBTQSBERSBDVjElMCMGA1UELRQcWlXROTIwMjA4S0w0IC8gS0FITzY0MTEwMUIzOTEeMBwGA1UEBRMVIC8gS0FITzY0MTEwMUhOVExLUzA2MR4wHAYDVQQLFBVaYXBhdGVy7WEgVXJ0YWRvINFlcmkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCX4ICuLAA/GYfEdRUMBLolOHKOUTDyw//CQjcj6dmCUWP8Y2UIhbq1JJ5nClsmhg6WThXjYqzRiYSAYagzrtwWri8I7oURIoTDeuxU69UOg1shuCEo89prJfx8ZIGKwB+GedC6dFdKGZLKn4ksSuyfntXmW4rZLup2j24mQx+jpdmcQIGMe6A/2668ZhpYpCw/vwfH8edkS5X41yp/zj6Z9mIySRWaMHm5eT/X0D01l3gX2gJVXY5ebUsKIEmDCP5pmBmyFyJjqYUhYi3+nYARrVPdZ53RPigcoLspXyIBVf2CPansqOYiRIqxLjfsL6B1qGJmpFN1RHd+XF9GzkHzAgMBAAGjHTAbMAwGA1UdEwEB/wQCMAAwCwYDVR0PBAQDAgbAMA0GCSqGSIb3DQEBCwUAA4ICAQAw5nqLkVuaTWX/qnPqWpOlSfrfVF2plqAPu1sdgzU/vZGgZCLxq3cY3Dg02khdsM74A3fYFQGxFFo6zDt5Ru9VySBks2gmbebRuuYKAKHMoi0tNpvI2arOMaiJsq2yzGAox6e+MXhhQ1oV+28HaxjYIWuVSwWAzie+n6VloWXMDDxTg7t9URJ7d8E7ZrPZ2X0+7h6b8sfnOjTljUm+Mt6e6AIl1+lA7Ar4YeJgIOeU/RKSOcvrCGDNtz7kpn0XdsFC/m1xG1bIdhyv0zkRmKvtpVGROsSEHPLBwuTENIkm0Cw2/FQsPrG8S9Yer451Jv0H+heFfJXqVrHv8Azba5OkotK5IlPaHm9voxfhwI1aXHbUS+NwpTHHOeVsvzsC9LQDiLGO3MQLn7VFZebFa84CddwLWf/JTyPYIcg3I/BRDFqbrVNRRDJwVlxIgbU7ZhRIcjiRLFx6UbAd8B2fe+GHgxw/x/6Pop65ca32iGAJgojtXWdD5gZvh6PlhEhWMhIOCvAesE52L4wmIHofAIZjlPRXNaitZ74xDEIpQ9f5X0w/4ltB7OOBYYfu8z9lzCc4M2iSmtq1rvSYxnLI/nvt7D0uYrq82ZeG3kzungcS8qNjufGJeEHNeyDxMXF9rYU4KLxK8KLzA2Ldh7+3zywU/pwXhW/aTS42EViWPbffng=="" CondicionesDePago=""01 - Efectivo"" SubTotal=""100.00"" Moneda=""MXN"" TipoCambio=""1"" Total=""116.00"" TipoDeComprobante=""I"" MetodoPago=""PPD"" LugarExpedicion=""82250""><cfdi:Emisor Rfc=""ZUÑ920208KL4"" Nombre=""Empresa de DEMO"" RegimenFiscal=""601"" /><cfdi:Receptor Rfc=""VOC990129I26"" Nombre=""Cliente Demostracion"" UsoCFDI=""G03"" /><cfdi:Conceptos><cfdi:Concepto ClaveProdServ=""10101902"" NoIdentificacion=""124"" Cantidad=""1.00"" ClaveUnidad=""EA"" Unidad=""PZA"" Descripcion=""ESCOBA "" ValorUnitario=""100.00"" Importe=""100.00""><cfdi:Impuestos><cfdi:Traslados><cfdi:Traslado Base=""100.00"" Impuesto=""002"" TipoFactor=""Tasa"" TasaOCuota=""0.160000"" Importe=""16.00"" /></cfdi:Traslados></cfdi:Impuestos></cfdi:Concepto></cfdi:Conceptos><cfdi:Impuestos TotalImpuestosTrasladados=""16.00""><cfdi:Traslados><cfdi:Traslado Impuesto=""002"" TipoFactor=""Tasa"" TasaOCuota=""0.160000"" Importe=""16.00"" /></cfdi:Traslados></cfdi:Impuestos></cfdi:Comprobante>"
|
||||
|
||||
|
||||
|
||||
@@ -911,7 +911,7 @@ Partial Class ContabilidadC_RegPrePolizaS
|
||||
If idCuentaContabilizacion = 1 AndAlso (IdCtaContable = 0) Then
|
||||
idCuentaContabilizacion = 0
|
||||
End If
|
||||
If Importe > 0 Then
|
||||
If Importe <> 0 Then
|
||||
Dim tCveCuenta As Integer = gvr.DataKey("CveCuenta").ToEntero
|
||||
|
||||
'If gvr.datakey("CveConcepto") = "299" Then
|
||||
@@ -929,15 +929,9 @@ Partial Class ContabilidadC_RegPrePolizaS
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
'If CvePeriodo > 0 Then
|
||||
' If Not ObjNom.UpdateProvisionNomina(CvePeriodo, CvePrePoliza, UsuarioActual.CveEmpresa) Then
|
||||
' MsgError = "No se pudo actualizar el periodo de la nómina"
|
||||
' End If
|
||||
'End If
|
||||
|
||||
If ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 1) Then
|
||||
Next
|
||||
|
||||
If MsgError = "" AndAlso ObjMov.ValidacionPrePolizaCuadre(CvePrePoliza, 1) Then
|
||||
If ObjMov.ValorPolizaDescuadre > 0 Then
|
||||
GuardaLogAD($"Contabilidad/RegPrePolizas | Error:{ObjMov.MensajePolizaDescuadre} Diferencia:{ObjMov.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
|
||||
MsgError = ObjMov.MensajePolizaDescuadre
|
||||
@@ -986,7 +980,8 @@ Partial Class ContabilidadC_RegPrePolizaS
|
||||
GvMov.DataBind()
|
||||
TxtFecha.Text = ""
|
||||
TxtObservaciones.Text = ""
|
||||
Else
|
||||
Else
|
||||
Alert(MsgError.ToString, ModExtensiones.TipoMensaje.MsgError)
|
||||
ObjIE.RollBack()
|
||||
If Conta IsNot Nothing Then Conta.RollBack()
|
||||
End If
|
||||
|
||||
264
GPS/RepUnidades.aspx
Normal file
264
GPS/RepUnidades.aspx
Normal file
@@ -0,0 +1,264 @@
|
||||
<%@ Page Title="" Language="VB" MasterPageFile="~/Site.master" AutoEventWireup="false" CodeFile="RepUnidades.aspx.vb" Inherits="GPS_RepUnidades" %>
|
||||
|
||||
<asp:Content ID="Content1" ContentPlaceHolderID="CP" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
|
||||
<style>
|
||||
.select2-selection__rendered {
|
||||
margin-top: 0px;
|
||||
height: 25px;
|
||||
}
|
||||
|
||||
.dataTables_scrollBody table th {
|
||||
padding: 0px !important;
|
||||
padding-right: 4px !important;
|
||||
padding-left: 4px !important;
|
||||
}
|
||||
|
||||
.table-scrollable {
|
||||
margin: 0px !important;
|
||||
}
|
||||
|
||||
.dataTables_scrollFoot {
|
||||
display: none;
|
||||
}
|
||||
|
||||
.dataTables_scroll {
|
||||
margin-bottom: 0px;
|
||||
}
|
||||
|
||||
.table.dataTable {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
.table table-striped table-hover dataTable no-footer {
|
||||
margin-top: 0px !important;
|
||||
}
|
||||
|
||||
.Excede {
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
}
|
||||
|
||||
.psagregar > div.comboxes {
|
||||
display: inline-block;
|
||||
width: 250px;
|
||||
}
|
||||
|
||||
.psagregar > div.codigo input {
|
||||
width: 79px;
|
||||
}
|
||||
|
||||
.psagregar > div.codigo {
|
||||
display: inline-block;
|
||||
width: 80px;
|
||||
}
|
||||
|
||||
.psagregar > div.codigo > input[type="submit"] {
|
||||
display: none;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.widget-thumb {
|
||||
padding: 15px;
|
||||
border-radius: 4px;
|
||||
}
|
||||
|
||||
.widget-thumb.bordered {
|
||||
border: 3px solid whitesmoke;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-heading {
|
||||
font-size: 14px;
|
||||
font-weight: 700;
|
||||
color: #8e9daa;
|
||||
margin: 0px 5px;
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-wrap {
|
||||
overflow: hidden;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-wrap .widget-thumb-icon {
|
||||
float: left;
|
||||
width: 60px;
|
||||
height: 60px;
|
||||
display: inline-block;
|
||||
font-size: 20px;
|
||||
line-height: 41px;
|
||||
color: #fff;
|
||||
text-align: center;
|
||||
padding: 10px;
|
||||
margin-right: 15px;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-body {
|
||||
overflow: hidden;
|
||||
padding: 5px;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-body .widget-thumb-subtitle {
|
||||
padding-top: 2px;
|
||||
display: block;
|
||||
font-size: 14px;
|
||||
font-weight: 600;
|
||||
color: #8e9daa;
|
||||
}
|
||||
|
||||
.widget-thumb .widget-thumb-body .widget-thumb-body-stat {
|
||||
display: block;
|
||||
font-size: 20px;
|
||||
font-weight: 600;
|
||||
color: #3e4f5e;
|
||||
}
|
||||
</style>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content3" ContentPlaceHolderID="E" runat="Server">
|
||||
Reporte de Unidades
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content4" ContentPlaceHolderID="HB" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content6" ContentPlaceHolderID="HA" runat="Server">
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content7" ContentPlaceHolderID="C" runat="Server">
|
||||
<asp:UpdatePanel ID="UPFiltros" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="portlet solid grey-cascade portlet-filter" style="">
|
||||
<div class="portlet-title portlet-filterT smalltitle " style="">
|
||||
<div class="tools">
|
||||
<asp:Button ID="BtnConsultar" OnClick="BtnConsultar_Click" runat="server" ValidationGroup="GrpGuardar" Text="Consultar" class="btn btn-primary" />
|
||||
</div>
|
||||
<div class="titlefiltros caption" style="margin-top: -8px;">
|
||||
<ul class="list-inline" style="font-size: 12px;">
|
||||
<li>Empresa:
|
||||
<asp:DropDownList ID="DdlEmpresa" runat="server" OnSelectedIndexChanged="DdlEmpresa_SelectedIndexChanged" AutoPostBack="true" Width="200px" DataTextField="Empresa" DataValueField="CveEmpresa" CssClass="form-control input-sm select2me">
|
||||
</asp:DropDownList>
|
||||
</li>
|
||||
<li>Cliente:
|
||||
<asp:DropDownList ID="DdlCliente" runat="server" Width="200px" DataTextField="Nombre" DataValueField="CveCliente" CssClass="form-control input-sm select2me">
|
||||
</asp:DropDownList>
|
||||
</li>
|
||||
<li>Fecha Inicio:
|
||||
|
||||
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy hh:mm" style="display: inline-block;">
|
||||
<asp:TextBox ID="txtFechaI" runat="server" CssClass="form-control input-sm ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
|
||||
</div>
|
||||
</li>
|
||||
<li>Fecha Fin:
|
||||
|
||||
<div class="input-group input-sm date date-picker " data-date-format="dd/mm/yyyy" style="display: inline-block;">
|
||||
<asp:TextBox ID="txtFechaF" runat="server" CssClass="form-control input-sm ADDateTimePicker" CausesValidation="true" MaxLength="18" Width="132px "></asp:TextBox>
|
||||
</div>
|
||||
</li>
|
||||
<li>Estatus:
|
||||
<asp:DropDownList ID="DdlEstatus" runat="server" Width="100px" CssClass="form-control input-sm select2me">
|
||||
<asp:ListItem Selected="True" Value="-1" Text="Todos"></asp:ListItem>
|
||||
<asp:ListItem Value="1" Text="Activo"></asp:ListItem>
|
||||
<asp:ListItem Value="0" Text="Inactivo"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
<div class="row">
|
||||
<div class="col-md-4 col-sm-6 col-xs-12">
|
||||
<div class="widget-thumb text-uppercase bordered">
|
||||
<h4 class="widget-thumb-heading">Total Unidades</h4>
|
||||
<div class="widget-thumb-wrap">
|
||||
<i class="widget-thumb-icon bg-blue fa fa-car"></i>
|
||||
<div class="widget-thumb-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span class="widget-thumb-body-stat">
|
||||
<asp:Literal ID="LtlTotalUnidades" Text="0" runat="server" />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-6 col-xs-12">
|
||||
<div class="widget-thumb text-uppercase bordered">
|
||||
<h4 class="widget-thumb-heading">Unidades Activas</h4>
|
||||
<div class="widget-thumb-wrap">
|
||||
<i class="widget-thumb-icon bg-green-jungle fa fa-car"></i>
|
||||
<div class="widget-thumb-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span class="widget-thumb-body-stat">
|
||||
<asp:Literal ID="LtlActivas" Text="0" runat="server" />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-4 col-sm-6 col-xs-12">
|
||||
<div class="widget-thumb text-uppercase bordered">
|
||||
<h4 class="widget-thumb-heading">Unidades Inactivas</h4>
|
||||
<div class="widget-thumb-wrap">
|
||||
<i class="widget-thumb-icon bg-red fa fa-car"></i>
|
||||
<div class="widget-thumb-body">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<span class="widget-thumb-body-stat">
|
||||
<asp:Literal ID="LtlInactivas" Text="0" runat="server" />
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet light smmallpadding traspasorow bordered">
|
||||
<div class="portlet-title">
|
||||
<div class="caption font-green">
|
||||
<i class="icon-pin font-green"></i>
|
||||
<span class="caption-subject bold uppercase">Unidades</span>
|
||||
</div>
|
||||
<div class="actions">
|
||||
<div class="btn-group">
|
||||
</div>
|
||||
</div>
|
||||
<div class="tools">
|
||||
<a href="javascript:;" class="collapse"></a>
|
||||
</div>
|
||||
</div>
|
||||
<div class="portlet-body rowpadding">
|
||||
<asp:GridView ID="GvDatos" runat="server" GridLines="None" OnRowDataBound="GvDatos_RowDataBound" CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" data-rows="1" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" ToolTip="Listado de unidades">
|
||||
<Columns>
|
||||
<asp:BoundField DataField="NombreVehiculo" ItemStyle-Width="12.5%" HeaderText="Vehículo - NoEconomico" ItemStyle-HorizontalAlign="Left" />
|
||||
<asp:BoundField DataField="Empresa" ItemStyle-Width="12.5%" HeaderText="Empresa" ItemStyle-HorizontalAlign="Left" />
|
||||
<asp:BoundField DataField="Cliente" ItemStyle-Width="12.5%" HeaderText="Cliente" ItemStyle-HorizontalAlign="Left" />
|
||||
<asp:BoundField DataField="SSID" ItemStyle-Width="12.5%" HeaderText="SSID" ItemStyle-HorizontalAlign="Center" />
|
||||
<asp:BoundField DataField="Telefono" ItemStyle-Width="12.5%" HeaderText="Telefono" ItemStyle-HorizontalAlign="Center" />
|
||||
<asp:BoundField DataField="IMEI" ItemStyle-Width="12.5%" HeaderText="IMEI" ItemStyle-HorizontalAlign="Center" />
|
||||
<asp:BoundField DataField="FechaIng" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="12.5%" HeaderText="Fecha Ingreso" ItemStyle-HorizontalAlign="Center" />
|
||||
<asp:BoundField DataField="FechaAlta" DataFormatString="{0:dd/MM/yyyy}" ItemStyle-Width="12.5%" HeaderText="Fecha Alta" ItemStyle-HorizontalAlign="Center" />
|
||||
<asp:TemplateField ItemStyle-Width="12.5%" HeaderText="Estatus" ItemStyle-HorizontalAlign="Center">
|
||||
<ItemTemplate>
|
||||
<asp:Label ID="LblEstatus" runat="server" Text='<%# Eval("Estatus") %>'></asp:Label>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
</Columns>
|
||||
</asp:GridView>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content8" ContentPlaceHolderID="JS" runat="Server">
|
||||
</asp:Content>
|
||||
|
||||
97
GPS/RepUnidades.aspx.vb
Normal file
97
GPS/RepUnidades.aspx.vb
Normal file
@@ -0,0 +1,97 @@
|
||||
Option Strict On
|
||||
Option Explicit On
|
||||
Imports System.Data
|
||||
Imports Extensiones
|
||||
|
||||
Partial Class GPS_RepUnidades
|
||||
Inherits ClsPaginas
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not IsPostBack Then
|
||||
CargaCombos()
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CargaCombos()
|
||||
If UsuarioActual.CveRol = 1 Then
|
||||
DdlEmpresa.DataSource = GlobalDTEmpresas().FiltraParametros("CvePlataforma = 3")
|
||||
DdlEmpresa.DataBind()
|
||||
DdlEmpresa.Items.Insert(0, New ListItem("Todas", "-1"))
|
||||
|
||||
DdlCliente.Items.Insert(0, New ListItem("Seleccione", "-1"))
|
||||
Else
|
||||
DdlEmpresa.DataSource = GlobalDTEmpresas().FiltraParametros($"CvePlataforma = 3 AND CveEmpresa = {UsuarioActual.CveEmpresa}")
|
||||
DdlEmpresa.DataBind()
|
||||
|
||||
CargaClientes()
|
||||
End If
|
||||
|
||||
UPFiltros.Update()
|
||||
End Sub
|
||||
|
||||
|
||||
|
||||
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs)
|
||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||
Select Case e.Row.DBCampo("TipoFila")
|
||||
Case "1"
|
||||
e.Row.CssClass = "Totales"
|
||||
Case "2"
|
||||
e.Row.CssClass = "SubTotales"
|
||||
Case "3"
|
||||
If e.Row.DBCampo("CveEstatus") = "0" Then
|
||||
e.Row.FCLabel("LblEstatus").CssClass = "badge badge-danger"
|
||||
Else
|
||||
e.Row.FCLabel("LblEstatus").CssClass = "badge badge-success"
|
||||
End If
|
||||
End Select
|
||||
End If
|
||||
End Sub
|
||||
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
||||
CargaDatos()
|
||||
End Sub
|
||||
|
||||
Private Sub CargaDatos()
|
||||
Dim FechaI As DateTime = MinFecha, FechaF As DateTime = MaxFecha
|
||||
|
||||
If Not String.IsNullOrEmpty(txtFechaI.Text) Then
|
||||
FechaI = txtFechaI.Text.ToDateTime()
|
||||
End If
|
||||
|
||||
If Not String.IsNullOrEmpty(txtFechaF.Text) Then
|
||||
FechaF = txtFechaF.Text.ToDateTime()
|
||||
End If
|
||||
|
||||
Using ObjGPS As New ClsGPS
|
||||
If ObjGPS.GetRepUnidades(DdlEmpresa.SelectedValue.ToEntero(), DdlCliente.SelectedValue.ToEntero(), FechaI:=FechaI, FechaF:=FechaF, CveEstatus:=DdlEstatus.SelectedValue.ToEntero()) Then
|
||||
GvDatos.DataSource = ObjGPS.DtResultados
|
||||
|
||||
Dim DtUnidades As DataTable = ObjGPS.DtResultados.FiltraParametros("CveDispositivo > 0", DistinctColumns:={"CveDispositivo", "CveEstatus"})
|
||||
|
||||
LtlTotalUnidades.Text = DtUnidades.Rows.Count.ToString()
|
||||
LtlActivas.Text = DtUnidades.COUNT("CveDispositivo", "CveEstatus = 1").ToString()
|
||||
LtlInactivas.Text = DtUnidades.COUNT("CveDispositivo", "CveEstatus = 0").ToString()
|
||||
|
||||
End If
|
||||
End Using
|
||||
|
||||
GvDatos.DataBind()
|
||||
|
||||
UpDatos.Update()
|
||||
End Sub
|
||||
|
||||
Protected Sub DdlEmpresa_SelectedIndexChanged(sender As Object, e As EventArgs)
|
||||
CargaClientes()
|
||||
UpDatos.Update()
|
||||
End Sub
|
||||
|
||||
Private Sub CargaClientes()
|
||||
If DdlEmpresa.SelectedValue.ToEntero() > 0 Then
|
||||
DdlCliente.DataSource = GlobalDTCliente(DdlEmpresa.SelectedValue.ToEntero())
|
||||
Else
|
||||
DdlCliente.DataSource = Nothing
|
||||
End If
|
||||
DdlCliente.DataBind()
|
||||
DdlCliente.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
End Sub
|
||||
End Class
|
||||
@@ -644,7 +644,10 @@
|
||||
}, 250);
|
||||
}
|
||||
|
||||
function creaPoligono(coords, color, Geocerca, Estatus, InicioFin, CveEstatus, CveEstatusAnterior, cruzo) {
|
||||
var geoReferenciaSeguir = '';
|
||||
var estatusSiguiente = '';
|
||||
|
||||
function creaPoligono(coords, color, Geocerca, Estatus, InicioFin, CveEstatus, CveEstatusAnterior, cruzo, geocercaASeguir, estatusaSeguir) {
|
||||
var polygon = new google.maps.Polygon({
|
||||
paths: coords,
|
||||
strokeColor: color,
|
||||
@@ -656,6 +659,11 @@
|
||||
polygon.setMap(map);
|
||||
polygons.push(polygon);
|
||||
|
||||
if (geocercaASeguir != '') {
|
||||
geoReferenciaSeguir = geocercaASeguir;
|
||||
estatusSiguiente = estatusaSeguir;
|
||||
}
|
||||
|
||||
CreaMarcadorPoligono(coords, Geocerca, Estatus, InicioFin, CveEstatus, CveEstatusAnterior, cruzo)
|
||||
}
|
||||
|
||||
@@ -935,7 +943,7 @@
|
||||
}
|
||||
}
|
||||
|
||||
LblETA.innerText = formatETA(duracionTotal);
|
||||
LblETA.innerHTML = formatETA(duracionTotal) + '<br> <b>Geocerca:</b> ' + geoReferenciaSeguir + '.<br> <b>Estatus:</b> ' + estatusSiguiente;
|
||||
})
|
||||
.catch((error) => {
|
||||
alert('Error:' + error);
|
||||
|
||||
@@ -50,6 +50,15 @@ Partial Class GPS_TrayectoDetalle
|
||||
ViewState("CveEstatusActual") = value
|
||||
End Set
|
||||
End Property
|
||||
|
||||
Private Property OrdenActual As Integer
|
||||
Get
|
||||
Return CType(ViewState("OrdenActual"), Integer)
|
||||
End Get
|
||||
Set(value As Integer)
|
||||
ViewState("OrdenActual") = value
|
||||
End Set
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
|
||||
@@ -148,6 +157,7 @@ Partial Class GPS_TrayectoDetalle
|
||||
LblTitulo.Text = $"Trayecto: {RowEstatus("Trayecto")}"
|
||||
LtlEstatusActual.Text = RowEstatus("Estatus").ToString()
|
||||
CveEstatusActual = RowEstatus("CveEstatusActual").ToString().ToEntero()
|
||||
OrdenActual = RowEstatus("OrdenActual").ToString().ToEntero()
|
||||
|
||||
If CBool(RowEstatus("EsFin")) Then
|
||||
BtnTerminarTrayeto.Visible = False
|
||||
@@ -158,7 +168,7 @@ Partial Class GPS_TrayectoDetalle
|
||||
|
||||
LtlDispositivo.Text = RowEstatus("Vehiculo").ToString()
|
||||
LtlFechaI.Text = If(String.IsNullOrEmpty(RowEstatus("FechaInicio").ToString()), "No ha ingresado a la geocerca de inicio", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaInicio").ToString().ToDateTime()))
|
||||
LtlFechaF.Text = If(String.IsNullOrEmpty(RowEstatus("FechaFin").ToString()), "No ha Terminado", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaFin").ToString().ToDateTime()))
|
||||
LtlFechaF.Text = If(String.IsNullOrEmpty(RowEstatus("FechaFin").ToString()), "No ha terminado", String.Format("{0:dd/MM/yyyy HH:mm tt}", RowEstatus("FechaFin").ToString().ToDateTime()))
|
||||
LtlVMedia.Text = String.Format("{0:N2} KM/H", RowEstatus("VMedia"))
|
||||
LtlVMax.Text = String.Format("{0:N2} KM/H", RowEstatus("VMax"))
|
||||
LtlTiempo.Text = String.Format("{0}", RowEstatus("TiempoOperativo"))
|
||||
@@ -214,18 +224,41 @@ Partial Class GPS_TrayectoDetalle
|
||||
Dim CoordAnterior As String = ""
|
||||
Dim CveEstatus As Integer = -1
|
||||
Dim CveEstatusAnterior As Integer = -1
|
||||
Dim GeoreferenciaASeguir As String = ""
|
||||
Dim EstatusSiguiente As String = ""
|
||||
Dim OrdenEstatus As Integer = 0
|
||||
|
||||
'GEOCERCAS
|
||||
For Each Row As DataRow In DtGeocercas.Rows
|
||||
count += 1
|
||||
Coord = SQLToGmaps(Row("Geom").ToString, "POLYGON")
|
||||
CveEstatus = Row("CveEstatusTrayecto").ToString.ToEntero
|
||||
CveEstatusAnterior = Row("CveEstatusAnterior").ToString.ToEntero
|
||||
OrdenEstatus = Row("OrdenEstatus").ToString.ToEntero
|
||||
|
||||
Dim EsInicio As Boolean = CBool(IfNull(Row("EsInicio"), 0))
|
||||
Dim EsFin As Boolean = CBool(IfNull(Row("EsFin"), 0))
|
||||
Dim InicioFin As Integer = If(EsInicio, 1, If(EsFin, 2, 0))
|
||||
Dim Cruzo As String = IfNull(Row("Cruzo"), "0").ToString()
|
||||
|
||||
RegistraScript($"creaPoligono({Coord}, '{Row("Color").ToString}', '{Row("GeoReferencia")}', '{Row("EstatusTrayecto")}',{InicioFin},{CveEstatus},{CveEstatusAnterior},{Cruzo})", count.ToString())
|
||||
'MARCA PARA QUE NO CALCULE EL TIEMPO DE LAS GEOCERCAS RESTANTES
|
||||
If Not String.IsNullOrEmpty(GeoreferenciaASeguir) Then
|
||||
Cruzo = "1"
|
||||
End If
|
||||
|
||||
'VERIFICA SI SE ACTUALIZO MANUALMENTE
|
||||
If Cruzo = "0" Then
|
||||
If OrdenEstatus <= OrdenActual Then
|
||||
Cruzo = "1"
|
||||
End If
|
||||
End If
|
||||
|
||||
If Cruzo = "0" Then
|
||||
GeoreferenciaASeguir = Row("GeoReferencia").ToString()
|
||||
EstatusSiguiente = Row("EstatusTrayecto").ToString()
|
||||
End If
|
||||
|
||||
RegistraScript($"creaPoligono({Coord}, '{Row("Color").ToString}', '{Row("GeoReferencia")}', '{Row("EstatusTrayecto")}',{InicioFin},{CveEstatus},{CveEstatusAnterior},{Cruzo},'{GeoreferenciaASeguir}','{EstatusSiguiente}')", count.ToString())
|
||||
Next
|
||||
End If
|
||||
|
||||
@@ -324,11 +357,16 @@ Partial Class GPS_TrayectoDetalle
|
||||
Dim ObjGPS As New ClsGPS
|
||||
|
||||
Try
|
||||
If ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente) Then
|
||||
DtEstatus = ObjGPS.DtResultados.Copy()
|
||||
Dim CveEstatusFinal As Integer = -1
|
||||
If ObjGPS.GetTrayectosGeoReferencias(CveTrayecto) Then
|
||||
'TOMA LA GEOCERCA FINAL
|
||||
Dim Row As DataRow = ObjGPS.DtResultados.FiltroPrimero($"EsFin = True")
|
||||
If Row IsNot Nothing Then
|
||||
CveEstatusFinal = Row("CveEstatusTrayecto").ToString().ToEntero()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Dim CveEstatusFinal As Integer = DtEstatus.FiltroPrimeroValor("CveEstatusTrayecto", "EsFin = True").ToEntero()
|
||||
If CveEstatusFinal > 0 Then
|
||||
If ObjGPS.UpdateTrayectoEstatus(CveTrayecto, CveEstatusFinal) Then
|
||||
Alert("El trayecto se finalizo correctamente", JSBtnAceptar:="RefrescarPagina();", ShowCloseButton:=False)
|
||||
@@ -336,6 +374,19 @@ Partial Class GPS_TrayectoDetalle
|
||||
Else
|
||||
Alert("No se pudo obtener el estatus final", TipoMensaje.MsgError)
|
||||
End If
|
||||
|
||||
'If ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente) Then
|
||||
' DtEstatus = ObjGPS.DtResultados.Copy()
|
||||
'End If
|
||||
|
||||
'Dim CveEstatusFinal As Integer = DtEstatus.FiltroPrimeroValor("CveEstatusTrayecto", "EsFin = True").ToEntero()
|
||||
'If CveEstatusFinal > 0 Then
|
||||
' If ObjGPS.UpdateTrayectoEstatus(CveTrayecto, CveEstatusFinal) Then
|
||||
' Alert("El trayecto se finalizo correctamente", JSBtnAceptar:="RefrescarPagina();", ShowCloseButton:=False)
|
||||
' End If
|
||||
'Else
|
||||
' Alert("No se pudo obtener el estatus final", TipoMensaje.MsgError)
|
||||
'End If
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al actualizar el trayecto", ex)
|
||||
End Try
|
||||
|
||||
@@ -322,6 +322,40 @@
|
||||
<asp:RequiredFieldValidator ID="RequiredFieldValidator5" runat="server" InitialValue="-1" CssClass="help-block errorimput" ControlToValidate="DdlDispositivoNuevo" ErrorMessage="<b><span style='text-decoration: underline'>ERROR:</span></b><br />El campo <b>''Dispositivo''</b> es necesario, por favor ingréselo." ValidationGroup="GrpNuevo"></asp:RequiredFieldValidator>
|
||||
<label for="<%= DdlDispositivoNuevo.ClientID.ToString()%>" style="width: 50%">Vehículo:</label>
|
||||
</div>
|
||||
<div class="form-group form-md-line-input">
|
||||
Notificar:
|
||||
<asp:CheckBox ID="ChkNotificarApartirDe" AutoPostBack="true" OnCheckedChanged="ChkNotificacionApartirDe_CheckedChanged" Checked="false" CssClass="md-checksd" runat="server" />
|
||||
</div>
|
||||
<div class="row" id="DivNotificarApartirDe" runat="server" visible="false">
|
||||
<div class="col-md-12">
|
||||
<div class="row">
|
||||
<div class="col-md-12">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:TextBox ID="TxtCorreNotApartidDe" runat="server" CssClass="form-control" CausesValidation="true"></asp:TextBox>
|
||||
<label for="<%= TxtCorreNotApartidDe.ClientID.ToString()%>">Correo(s):</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<asp:DropDownList ID="DdlIntervaloAPartirDe" CssClass="form-control select2me" runat="server">
|
||||
<asp:ListItem Selected="True" Text="30 Min" Value="30"></asp:ListItem>
|
||||
<asp:ListItem Text="60 Min" Value="60"></asp:ListItem>
|
||||
<asp:ListItem Text="2 Hrs" Value="120"></asp:ListItem>
|
||||
</asp:DropDownList>
|
||||
<label for="<%= DdlIntervaloAPartirDe.ClientID.ToString()%>" style="width: 50%">Intervalo:</label>
|
||||
</div>
|
||||
</div>
|
||||
<div class="col-md-6">
|
||||
<div class="form-group form-md-line-input">
|
||||
Enviar Liga:
|
||||
<asp:CheckBox ID="ChkEnviarLigaApartirDe" Checked="false" CssClass="make-switchsd" runat="server" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" style="margin-left: 0px; margin-top: 5px; margin-bottom: 5px; text-align: right" align="left">
|
||||
<div style="margin-right: 15px">
|
||||
<input type="text" id="TxtBusqued2a" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqued2a','{0}')", GvEstatus.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
|
||||
|
||||
@@ -113,8 +113,8 @@ Partial Class GPS_Trayectos
|
||||
Dim ObjGPS As New ClsGPS
|
||||
If ObjGPS.GetEstatusTrayectos(-1, UsuarioActual.CveCliente) Then
|
||||
GvEstatus.DataSource = ObjGPS.DtResultados.FiltraParametros("CveCliente > 0")
|
||||
GvEstatusNuevo.DataSource = ObjGPS.DtResultados
|
||||
DdlEstatusTrayecto.DataSource = ObjGPS.DtResultados
|
||||
GvEstatusNuevo.DataSource = ObjGPS.DtResultados.FiltraParametros("CveCliente > 0")
|
||||
DdlEstatusTrayecto.DataSource = ObjGPS.DtResultados.FiltraParametros("CveCliente > 0")
|
||||
End If
|
||||
ObjGPS.Dispose()
|
||||
GvEstatus.DataBind()
|
||||
@@ -237,7 +237,9 @@ Partial Class GPS_Trayectos
|
||||
Dim Nombre As String = TxtNombreNuevo.Text
|
||||
Dim CveDispositivo As Integer = DdlDispositivoNuevo.SelectedValue.ToEntero
|
||||
If CveDispositivo > 0 Then
|
||||
Dim CveTrayectoNuevo As Integer = ObjGPS.AddTrayecto(Nombre, DateTime.Now, "", CveDispositivo, UsuarioActual.CveCliente)
|
||||
Dim CveTrayectoNuevo As Integer = ObjGPS.AddTrayecto(Nombre, DateTime.Now, "", CveDispositivo, UsuarioActual.CveCliente, EnviarNotificacion:=ChkNotificarApartirDe.Checked,
|
||||
CorreosNotificacion:=TxtCorreNotApartidDe.Text, Intervalo:=If(ChkNotificarApartirDe.Checked, DdlIntervaloAPartirDe.SelectedValue.ToEntero(), 0),
|
||||
EnviarLiga:=ChkEnviarLigaApartirDe.Checked)
|
||||
If CveTrayectoNuevo > 0 Then
|
||||
For Each Row As GridViewRow In GvEstatusNuevo.Rows
|
||||
If Row.RowType = DataControlRowType.DataRow Then
|
||||
@@ -413,6 +415,10 @@ Partial Class GPS_Trayectos
|
||||
DivNotificaciones.Visible = ChkNotificacion.Checked
|
||||
UpAgregar.Update()
|
||||
End Sub
|
||||
Protected Sub ChkNotificacionApartirDe_CheckedChanged(sender As Object, e As EventArgs)
|
||||
DivNotificarApartirDe.Visible = ChkNotificarApartirDe.Checked
|
||||
UpDdlTrayecto.Update()
|
||||
End Sub
|
||||
Protected Sub LnkEnviar_Click(sender As Object, e As EventArgs)
|
||||
Dim GvRow As GridViewRow = DirectCast(DirectCast(sender, LinkButton).NamingContainer, GridViewRow)
|
||||
|
||||
|
||||
@@ -972,8 +972,8 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
If CBool(e.Row.DBCampo("AplicaCaducidad")) Then
|
||||
e.Row.FCTextBox("TxtCaducidad").Visible = True
|
||||
e.Row.FCLinkButton("LnkCaducidad").Visible = True
|
||||
e.Row.FCTextBox("TxtCaducidad").readonly = True
|
||||
CType(e.row.FindControl("RFVCaducidad"), RequiredFieldValidator).Enabled = False
|
||||
e.Row.FCTextBox("TxtCaducidad").ReadOnly = True
|
||||
CType(e.Row.FindControl("RFVCaducidad"), RequiredFieldValidator).Enabled = False
|
||||
' e.Row.FCTextBox("TxtCaducidad").enabled = True
|
||||
Else
|
||||
e.Row.FCTextBox("TxtCaducidad").Visible = False
|
||||
@@ -982,7 +982,7 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If CBool(e.Row.DBCampo("AplicaLote")) Then
|
||||
e.Row.FCTextBox("TxtLote").Visible = True
|
||||
e.Row.FCTextBox("TxtLote").readonly = True
|
||||
e.Row.FCTextBox("TxtLote").ReadOnly = True
|
||||
'e.Row.FCTextBox("TxtLote").enabled = True
|
||||
Else
|
||||
e.Row.FCTextBox("TxtLote").Visible = False
|
||||
@@ -2261,7 +2261,6 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
If ErrorMovInv Then Exit For
|
||||
|
||||
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
@@ -2574,10 +2573,10 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
|
||||
'DEVOLUCION APARTADOS
|
||||
End If
|
||||
|
||||
|
||||
'DEVOLUCION APARTADOS
|
||||
If Not ErrorMovInv Then
|
||||
If TipoMovimiento = 2 Then
|
||||
If ObjInventario.VentasAlmacenApartadosGet(CveVentaSurtir) Then
|
||||
@@ -2588,95 +2587,96 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
Dim CveAlmacenOrigen = If(CveAlmacenTraspasoDestino > 0, CveAlmacenTraspasoDestino, DdlAlmacen.SelectedValue.ToEntero())
|
||||
Dim CveSeccionAlmacen As Integer = 0
|
||||
Dim ValorTraspaso As Decimal = 0
|
||||
For Each Dr As DataRow In DtTempApartados.Rows
|
||||
|
||||
If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString().ToEntero() Then
|
||||
CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente,
|
||||
CveAlmacenDestino:=Dr("CveAlmacen").ToString().ToEntero(), Modulo:="RE/G9")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
CveAlmacenApartado = Dr("CveAlmacen").ToString().ToEntero()
|
||||
|
||||
Dim DrMovto = DtTraspasos.NewRow
|
||||
DrMovto("Almacen") = Dr("Almacen").ToString().ToEntero()
|
||||
DrMovto("CveAlmacen") = Dr("CveAlmacen").ToString().ToEntero()
|
||||
DrMovto("CveMovimientoSalida") = CveMovimientoSalidaApartado
|
||||
DrMovto("FolioSalida") = FolioSalida
|
||||
DtTraspasos.Rows.Add(DrMovto)
|
||||
End If
|
||||
|
||||
If Not CveMovimientoSalidaApartado > 0 Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de control de apartados")
|
||||
Exit For
|
||||
End If
|
||||
'If CBool(Dr("AplicaSeccion")) Then
|
||||
' CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacenOrigen, Dr("CvePS").ToString().ToEntero()).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero()
|
||||
' Dim a As String = String.Format("CveAlmacen={0}-CvePS:{1}-CveseccionAlmacen={2}", CveAlmacenOrigen, Dr("CvePS"), CveSeccionAlmacen)
|
||||
'Else
|
||||
' CveSeccionAlmacen = -1
|
||||
'End If
|
||||
CveSeccionAlmacen = -3
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaApartado, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), Lote:=Dr("Lote").ToString(), CveSeccionAlmacen:=CveSeccionAlmacen) Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de control de apartados")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
'SI TIENE APARTADOS DEBE GENERAR LOS TRASPASOS
|
||||
If DtTempApartados.Rows.Count > 0 Then
|
||||
|
||||
Dim CvePrePolizaTraspaso As Integer = ObjConta.AddPrePolizas("EA/Apart", 53, 0, 0, 1, TxtFecha.Text.ToDate, "Traspaso Apartado", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
If CvePrePolizaTraspaso > 0 Then
|
||||
For Each Dr As DataRow In DtTempApartados.Rows
|
||||
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, True, ValorTraspaso, TxtObservaciones.Text, 68, TxtObservaciones.Text, TxtFecha.Text.ToDate, -1, -1, CveMovimientoAlmacen:=CveMovimientoSalidaApartado, Contabilizable:=False, ImporteMX:=ValorTraspaso) Then
|
||||
ErrorMovInv = True
|
||||
If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString().ToEntero() Then
|
||||
CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente,
|
||||
CveAlmacenDestino:=Dr("CveAlmacen").ToString().ToEntero(), Modulo:="RE/G9")
|
||||
FolioSalida = ObjInventario.Folio
|
||||
CveAlmacenApartado = Dr("CveAlmacen").ToString().ToEntero()
|
||||
|
||||
Dim DrMovto = DtTraspasos.NewRow
|
||||
DrMovto("Almacen") = Dr("Almacen").ToString().ToEntero()
|
||||
DrMovto("CveAlmacen") = Dr("CveAlmacen").ToString().ToEntero()
|
||||
DrMovto("CveMovimientoSalida") = CveMovimientoSalidaApartado
|
||||
DrMovto("FolioSalida") = FolioSalida
|
||||
DtTraspasos.Rows.Add(DrMovto)
|
||||
End If
|
||||
|
||||
For Each Dr1 As DataRow In DtTraspasos.Rows
|
||||
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString().ToEntero()
|
||||
If Not CveMovimientoSalidaApartado > 0 Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de control de apartados")
|
||||
Exit For
|
||||
End If
|
||||
CveSeccionAlmacen = -3
|
||||
|
||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
-1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(),
|
||||
CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
CveCliente:=CveCliente, Modulo:="RE/G10")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaApartado, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString().ToEntero(), Lote:=Dr("Lote").ToString(), CveSeccionAlmacen:=CveSeccionAlmacen) Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de control de apartados")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not CveMovimientoEntradaApartado > 0 Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
If Not ErrorMovInv Then
|
||||
|
||||
Dr1("CveMovimientoEntrada") = CveMovimientoEntradaApartado
|
||||
Dr1("FolioEntrada") = FolioEntrada
|
||||
Dim CvePrePolizaTraspaso As Integer = ObjConta.AddPrePolizas("EA/Apart", 53, 0, 0, 1, TxtFecha.Text.ToDate, "Traspaso Apartado", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||
If CvePrePolizaTraspaso > 0 Then
|
||||
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
ValorTraspaso = ObjInventario.DtResultados.SUMD("Total").RoundSQL
|
||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||
For Each Dr1 As DataRow In DtTraspasos.Rows
|
||||
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString().ToEntero()
|
||||
|
||||
CveSeccionAlmacen = -3
|
||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString().ToEntero(), 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa,
|
||||
-1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero(),
|
||||
CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor,
|
||||
CveCliente:=CveCliente, Modulo:="RE/G10")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), Lote:=Dr("Lote").ToString(), CveSeccionAlmacen:=CveSeccionAlmacen) Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
If Not CveMovimientoEntradaApartado > 0 Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
|
||||
If ErrorMovInv Then Exit For
|
||||
Dr1("CveMovimientoEntrada") = CveMovimientoEntradaApartado
|
||||
Dr1("FolioEntrada") = FolioEntrada
|
||||
|
||||
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, False, ValorTraspaso, TxtObservaciones.Text, 68, TxtObservaciones.Text, TxtFecha.Text.ToDate, -1, -1, CveMovimientoAlmacen:=CveMovimientoEntradaApartado, Contabilizable:=False, ImporteMX:=ValorTraspaso) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
Next
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
ValorTraspaso = ObjInventario.DtResultados.SUMD("Total").RoundSQL
|
||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||
|
||||
CveSeccionAlmacen = -3
|
||||
|
||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString().ToDecimal, Dr("CveUM").ToString().ToEntero(), Dr("CvePS").ToString().ToEntero(), Dr("PU").ToString().ToDecimal, CveAF:=Dr("CveAF").ToString().ToEntero(), Serie:=Dr("Serie").ToString(), CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), Lote:=Dr("Lote").ToString(), CveSeccionAlmacen:=CveSeccionAlmacen) Then
|
||||
ErrorMovInv = True
|
||||
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
|
||||
If ErrorMovInv Then Exit For
|
||||
|
||||
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, True, ValorTraspaso, TxtObservaciones.Text, 68, TxtObservaciones.Text, TxtFecha.Text.ToDate, -1, -1, CveMovimientoAlmacen:=CveMovimientoSalida, Contabilizable:=False, ImporteMX:=ValorTraspaso) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
If Not ErrorMovInv AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePolizaTraspaso, False, ValorTraspaso, TxtObservaciones.Text, 68, TxtObservaciones.Text, TxtFecha.Text.ToDate, -1, -1, CveMovimientoAlmacen:=CveMovimientoEntradaApartado, Contabilizable:=False, ImporteMX:=ValorTraspaso) Then
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
End If
|
||||
@@ -3260,10 +3260,10 @@ Partial Class Inventarios_EntregaAlmacen
|
||||
'sino es transitorio, los transitorios, ya no se hace otro movimiento
|
||||
|
||||
ConceptoMovimiento = If(ChkTransitorio.Checked, 2, 27)
|
||||
Almacen2 = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero(), CveAlmacenTraspasoDestino)
|
||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(Almacen2, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim,
|
||||
Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalida, CveAlmacenDestino:=CveAlmacenTraspasoDestino,
|
||||
Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, ""), Modulo:="RE/GT1", CveOP:=CveOP)
|
||||
Almacen2 = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero(), CveAlmacenTraspasoDestino)
|
||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(Almacen2, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim,
|
||||
Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalida, CveAlmacenDestino:=CveAlmacenTraspasoDestino,
|
||||
Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, ""), Modulo:="RE/GT1", CveOP:=CveOP)
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
If CveMovimientoEntrada > 0 Then
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
|
||||
@@ -1582,9 +1582,15 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
GvSubProyectos.Columns(0).Visible = False
|
||||
End Sub
|
||||
Protected Sub CboProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlProyecto.SelectedIndexChanged
|
||||
CargaSubProyectos(DdlProyecto.SelectedValue.ToEntero)
|
||||
CargaSubProyectos(DdlProyecto.SelectedValue.ToEntero, DdlEmpresaAsignaciones.SelectedValue.ToEntero())
|
||||
End Sub
|
||||
Private Sub CargaSubProyectos(Optional CveProyectoFiltrado As Integer = -1)
|
||||
Private Sub CargaSubProyectos(Optional CveProyectoFiltrado As Integer = -1, Optional CveEmpresaFiltro As Integer = -1)
|
||||
|
||||
Dim CveEmpresaRef As Integer = UsuarioActual.CveEmpresa
|
||||
If CveEmpresaFiltro > 0 Then
|
||||
CveEmpresaRef = CveEmpresaFiltro
|
||||
End If
|
||||
|
||||
DdlSubProyecto.Items.Clear()
|
||||
If CveProyectoFiltrado > 0 Then
|
||||
Dim SubProyectosSinGV As String = GetSubProyectosSinGV()
|
||||
@@ -1609,7 +1615,7 @@ Partial Class Sistemas_UsuarioDetalle
|
||||
|
||||
Else
|
||||
'DdlSubProyecto.DataSource = GlobalDTSubProyectos(If(CveProyectoFiltrado > 0, CveProyectoFiltrado, DdlProyecto.SelectedValue.ToEntero)).FiltraParametros(If(SubProyectosSinGV.Length > 0, SubProyectosSinGV, ""))
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectos(If(CveProyectoFiltrado > 0, CveProyectoFiltrado, DdlProyecto.SelectedValue.ToEntero), CveEmpresa:=UsuarioActual.CveEmpresa).FiltraParametros(If(SubProyectosSinGV.Length > 0, SubProyectosSinGV, ""))
|
||||
DdlSubProyecto.DataSource = GlobalDTSubProyectos(If(CveProyectoFiltrado > 0, CveProyectoFiltrado, DdlProyecto.SelectedValue.ToEntero), CveEmpresa:=CveEmpresaRef).FiltraParametros(If(SubProyectosSinGV.Length > 0, SubProyectosSinGV, ""))
|
||||
'NO SE PARA QUE SE USA - COMENTADO IPP 30 AGOSTO 2017
|
||||
'If SubProyectosSinGV.Length > 0 Then
|
||||
' Dim SubProyectoFiltrado As DataTable = GlobalDTSubProyectos(DdlProyecto.SelectedValue.ToEntero).FiltraParametros(SubProyectosSinGV)
|
||||
|
||||
@@ -176,7 +176,7 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
|
||||
}
|
||||
|
||||
sb.AppendFormat("Folio Fiscal: {0} <br/>", uuid);
|
||||
sb.AppendFormat("Codigo Estado: {0} <br/>", resp.CodigoEstatus);
|
||||
sb.AppendFormat("Código Estado: {0} <br/>", resp.CodigoEstatus);
|
||||
sb.AppendFormat("Estado: {0} <br/>", resp.Estado);
|
||||
sb.AppendFormat("Es Cancelable: {0} <br/>", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EsCancelable);
|
||||
sb.AppendFormat("Estatus de Cancelación: {0} <br/><br/>", string.IsNullOrEmpty(resp.EsCancelable) ? "Desconocido" : resp.EstatusCancelacion);
|
||||
@@ -225,6 +225,16 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
|
||||
{
|
||||
retorno.EnviarAcuse = true;
|
||||
CveEstatus = respCancelacion.CveEstatus;
|
||||
var ObjVentas = new ClsVentas();
|
||||
if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa))
|
||||
{
|
||||
sb.Append("El estatus de la factura fue cambiado a 'Cancelada'.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append("Ocurrió un error al cambiar el estatus de la factura.");
|
||||
}
|
||||
ObjVentas.Dispose();
|
||||
sb.Append("El documento se canceló correctamente.");
|
||||
sb.Append($"</br> <a href='/Compras/PopUpVerFactura.aspx?P={Encripta($"OP=CAN&CVEVTA={CveVenta}")}' class='Texto' target='_blank'>Imprimir Acuse</a>");
|
||||
if (!EsRefacturacion)
|
||||
@@ -254,6 +264,21 @@ public partial class Ventas_RepCancelacionesPorRespuesta : ClsPaginas
|
||||
}
|
||||
ObjVentas.Dispose();
|
||||
}
|
||||
else if (resp.Estado.ToUpper().Trim() == "VIGENTE" && string.IsNullOrEmpty(resp.EstatusCancelacion))
|
||||
{
|
||||
//ASIGNAMOS ESTATUS EMITIDA
|
||||
CveEstatus = 3;
|
||||
var ObjVentas = new ClsVentas();
|
||||
if (ObjVentas.UpdateEstatusVenta(CveVenta, CveEstatus, UsuarioActual.CveEmpresa))
|
||||
{
|
||||
sb.Append("El estatus de la factura fue cambiado a 'Emitida'.");
|
||||
}
|
||||
else
|
||||
{
|
||||
sb.Append("Ocurrió un error al cambiar el estatus de la factura.");
|
||||
}
|
||||
ObjVentas.Dispose();
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
|
||||
@@ -67,6 +67,9 @@
|
||||
<li>
|
||||
<asp:LinkButton ID="ImgExcel" runat="server"> <i class="fa fa-file-excel-o" style="font-weight:bold;"></i> Excel</asp:LinkButton>
|
||||
</li>
|
||||
<li>
|
||||
<asp:LinkButton ID="LnkRepDiario" runat="server" Visible="false" OnClick="LnkRepDiario_Click"> <i class="fa fa-file-o" style="font-weight:bold;"></i> Reporte Diario</asp:LinkButton>
|
||||
</li>
|
||||
</asp:Content>
|
||||
<asp:Content ID="Content5" ContentPlaceHolderID="H" runat="Server">
|
||||
</asp:Content>
|
||||
@@ -134,33 +137,32 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<div class="portlet-body" style="display: none">
|
||||
<div class="row">
|
||||
<label class="col-md-1 truncate">Productos Servicios:</label>
|
||||
<div class="col-md-2">
|
||||
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:55%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
|
||||
</div>
|
||||
|
||||
<label class="col-md-1 truncate">Clasificación:</label>
|
||||
<div class="col-md-2">
|
||||
<asp:ListBox ID="DdlClasificacion" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Style="width: 100%" data-text="Todos" SelectionMode="Multiple">
|
||||
</asp:ListBox>
|
||||
</div>
|
||||
<label runat="server" id="LblLinea" data-placement="top" class="col-md-1" visible="false">Linea:</label>
|
||||
<div runat="server" id="DivLinea" class="col-md-2" visible="false">
|
||||
<asp:ListBox ID="DdlLinea" CssClass="select2me" runat="server" DataTextField="ClasificacionDetalle" DataValueField="CveClasificacionDetalle" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
|
||||
</div>
|
||||
|
||||
<label runat="server" id="LblMarca" title="Proveedor" data-toggle="tooltip" data-placement="top" class="col-md-1" visible="false">Marca:</label>
|
||||
<div runat="server" id="DivMarca" class="col-md-2" visible="false">
|
||||
<asp:ListBox ID="DdlMarcaPSDes" CssClass="select2me" runat="server" DataTextField="Marca" DataValueField="CveMarca" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<asp:Panel ID="pnlOrden" Visible="false" runat="server" CssClass="row">
|
||||
<label class="col-md-1 truncate">Productos Servicios:</label>
|
||||
<div class="col-md-2">
|
||||
<ADS:Dropdownlost runat="server" ID="DdlPS" CssStyle="width:55%;" CssClass="DdlPS" CssClassDdl="select2me " DataTextField="PSCodigo" DataValueField="CvePS" />
|
||||
</div>
|
||||
|
||||
<label class="col-md-1 truncate">Clasificación:</label>
|
||||
<div class="col-md-2">
|
||||
<asp:ListBox ID="DdlClasificacion" AutoPostBack="true" Class="table-group-action-input form-control input-inline input-small input-sm select2me" runat="server" AppendDataBoundItems="true" DataTextField="Clasificacion" DataValueField="CveClasificacion" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
|
||||
</div>
|
||||
<label runat="server" id="LblLinea" data-placement="top" class="col-md-1" visible="false">Linea:</label>
|
||||
<div runat="server" id="DivLinea" class="col-md-2" visible="false">
|
||||
<asp:ListBox ID="DdlLinea" CssClass="select2me" runat="server" DataTextField="ClasificacionDetalle" DataValueField="CveClasificacionDetalle" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
|
||||
</div>
|
||||
|
||||
<label runat="server" id="LblMarca" title="Proveedor" data-toggle="tooltip" data-placement="top" class="col-md-1" visible="false">Marca:</label>
|
||||
<div runat="server" id="DivMarca" class="col-md-2" visible="false">
|
||||
<asp:ListBox ID="DdlMarcaPSDes" CssClass="select2me" runat="server" DataTextField="Marca" DataValueField="CveMarca" Style="width: 100%" data-text="Todos" SelectionMode="Multiple"></asp:ListBox>
|
||||
</div>
|
||||
|
||||
|
||||
</div>
|
||||
|
||||
<asp:Panel ID="pnlOrden" Visible="false" runat="server" CssClass="row">
|
||||
<label class="col-md-1 truncate">Orden:</label>
|
||||
<div class="col-md-2">
|
||||
<asp:DropDownList ID="DdlOrden" runat="server" CssClass="select2me" Width="100%">
|
||||
@@ -180,7 +182,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</div>--%>
|
||||
</asp:Panel>
|
||||
</asp:Panel>
|
||||
</div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
@@ -190,14 +192,13 @@
|
||||
<asp:GridView ID="GvDatos" runat="server" AutoGenerateColumns="False" EmptyDataText="No se encontraron productos con los filtros especificados" ToolTip="Listado de Ventas"
|
||||
CssClass="table table-striped table-advance table-hover Widthall ScrollAD" data-sort="true" Style="text-align: center;" GridLines="None" Width="99%">
|
||||
<Columns>
|
||||
<asp:TemplateField HeaderText="Grupo" ItemStyle-HorizontalAlign="Left">
|
||||
<asp:TemplateField HeaderText="Grupo" ItemStyle-HorizontalAlign="Left">
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlGrupo" runat="server" Text='<%# Eval("GPO") %>'></asp:Literal>
|
||||
</ItemTemplate>
|
||||
</asp:TemplateField>
|
||||
<asp:TemplateField ItemStyle-HorizontalAlign="Left">
|
||||
<HeaderTemplate >
|
||||
|
||||
<asp:TemplateField ItemStyle-HorizontalAlign="Left">
|
||||
<HeaderTemplate>
|
||||
</HeaderTemplate>
|
||||
<ItemTemplate>
|
||||
<asp:Literal ID="LtlGrupoPS" runat="server" Text='<%# Eval("PS") %>'></asp:Literal>
|
||||
|
||||
@@ -4,10 +4,12 @@ Option Strict On
|
||||
Imports Extensiones
|
||||
Imports System.Data
|
||||
Imports Microsoft.Reporting.WebForms
|
||||
|
||||
Imports GemBox.Spreadsheet
|
||||
Imports System.Globalization
|
||||
|
||||
Partial Class Ventas_RepPS
|
||||
Inherits ClsPaginas
|
||||
|
||||
Inherits ClsPaginas
|
||||
|
||||
#Region "P R O P I E D A D E S"
|
||||
Private Property DtReporte As DataTable
|
||||
Get
|
||||
@@ -16,9 +18,9 @@ Partial Class Ventas_RepPS
|
||||
Set(value As DataTable)
|
||||
ViewState("DtReporte") = value
|
||||
End Set
|
||||
End Property
|
||||
End Property
|
||||
#End Region
|
||||
|
||||
|
||||
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
|
||||
If Not IsPostBack Then
|
||||
pnlOrden.Visible = False
|
||||
@@ -34,6 +36,10 @@ Partial Class Ventas_RepPS
|
||||
'DdlMarca.Items.Insert(0, New ListItem("Todos", "-1"))
|
||||
End If
|
||||
|
||||
If UsuarioActual.TienePermisoProceso(320) Then
|
||||
LnkRepDiario.Visible = True
|
||||
End If
|
||||
|
||||
|
||||
CargaDatosIniciales()
|
||||
CargaCombos()
|
||||
@@ -179,9 +185,9 @@ Partial Class Ventas_RepPS
|
||||
End Sub
|
||||
Protected Sub BtnConsultar_Click(sender As Object, e As EventArgs)
|
||||
CargaDatos()
|
||||
End Sub
|
||||
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
#Region " IMPRIMIR "
|
||||
Protected Sub LnkPdf_Click(sender As Object, e As EventArgs) Handles LnkPdf.Click
|
||||
If GvDatos.Rows.Count > 0 Then
|
||||
@@ -227,8 +233,404 @@ Partial Class Ventas_RepPS
|
||||
Alert("No hay información para mostrar.", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
End Sub
|
||||
|
||||
#End Region
|
||||
|
||||
|
||||
Protected Sub LnkRepDiario_Click(sender As Object, e As EventArgs)
|
||||
Dim CveMoneda As Integer = -1
|
||||
Dim TC As Integer = 1
|
||||
Dim TCEspecifico As Decimal = -1
|
||||
|
||||
Dim DataSet As DataSet = New DataSet
|
||||
Dim ObjVentas As New ClsVentas()
|
||||
If ObjVentas.GetRepPSDiario(-1, -1, Now, UsuarioActual.CveEmpresa, CveUsuarioConsulta:=UsuarioActual.CveUsuario, GPO:=-1, CveMoneda:=CveMoneda, TipoCambio:=TC, TCEspecifico:=TCEspecifico) Then
|
||||
DataSet = ObjVentas.DataSetResultados.Copy()
|
||||
End If
|
||||
ObjVentas.Dispose()
|
||||
|
||||
If DataSet IsNot Nothing Then
|
||||
SpreadsheetInfo.SetLicense(ModExtensiones.SerialGemBoxSpreadsheet)
|
||||
|
||||
Dim FileExcel As New ExcelFile()
|
||||
|
||||
Dim worksheetName As String = $"{ToShortMonthName(Now).ToUpper()}{Now.Day}"
|
||||
Const invalidCharsRegex As String = "[/\\*'?[\]:]+"
|
||||
Const maxLength As Integer = 31
|
||||
Dim safeName As String = Regex.Replace(worksheetName, invalidCharsRegex, " ").Replace(" ", " ").Trim()
|
||||
|
||||
If String.IsNullOrEmpty(safeName) Then
|
||||
safeName = "RepPSDiario" ' cannot be empty
|
||||
ElseIf safeName.Length > maxLength Then
|
||||
safeName = safeName.Substring(0, maxLength)
|
||||
End If
|
||||
|
||||
Dim worksheet = FileExcel.Worksheets.Add(safeName)
|
||||
|
||||
Dim CellRangeTitulo = worksheet.Cells.GetSubrangeAbsolute(0, 0, 0, 12)
|
||||
CellRangeTitulo.Merged = True
|
||||
CellRangeTitulo.Value = $"{UsuarioActual.Empresa.Empresa}. VENTA DEL DIA {Now.Day} DE {ToMonthName(Now).ToUpper()} DEL {Now.Year}."
|
||||
CellRangeTitulo.Style.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
CellRangeTitulo.Style.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
#Region "V E N T A S - L L A N T A S, R I N E S, A L I N E A C I O N E S"
|
||||
worksheet.Cells(2, 0).Value = "Sucursal"
|
||||
'TITULO DE LLANTAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(1, 1, 1, 3).Merged = True
|
||||
worksheet.Cells(1, 3).Value = "LLANTAS"
|
||||
worksheet.Cells(2, 1).Value = "Ant"
|
||||
worksheet.Cells(2, 2).Value = "Dia"
|
||||
worksheet.Cells(2, 3).Value = "Acum"
|
||||
'TITULO DE RINES
|
||||
worksheet.Cells.GetSubrangeAbsolute(1, 4, 1, 6).Merged = True
|
||||
worksheet.Cells(1, 6).Value = "RINES"
|
||||
worksheet.Cells(2, 4).Value = "Ant"
|
||||
worksheet.Cells(2, 5).Value = "Dia"
|
||||
worksheet.Cells(2, 6).Value = "Acum"
|
||||
'TITULO DE ALINEACIONES
|
||||
worksheet.Cells.GetSubrangeAbsolute(1, 7, 1, 9).Merged = True
|
||||
worksheet.Cells(1, 9).Value = "ALINEACIONES"
|
||||
worksheet.Cells(2, 7).Value = "Ant"
|
||||
worksheet.Cells(2, 8).Value = "Dia"
|
||||
worksheet.Cells(2, 9).Value = "Acum"
|
||||
'TITULO DE VENTAS DEL DIA
|
||||
worksheet.Cells.GetSubrangeAbsolute(1, 10, 1, 12).Merged = True
|
||||
worksheet.Cells(1, 12).Value = "VENTA EN PESOS"
|
||||
worksheet.Cells(2, 10).Value = "Ant"
|
||||
worksheet.Cells(2, 11).Value = "Dia"
|
||||
worksheet.Cells(2, 12).Value = "Acum"
|
||||
|
||||
Dim StyleTitleTable1 = worksheet.Cells.GetSubrangeAbsolute(1, 1, 1, 12).Style
|
||||
StyleTitleTable1.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleTitleTable1.Font.Name = "Calibri"
|
||||
StyleTitleTable1.Font.Size = 8 * 20
|
||||
StyleTitleTable1.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleTitleTable1.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleTitleTable1.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim StyleSubTitleTable1 = worksheet.Cells.GetSubrangeAbsolute(2, 0, 2, 12).Style
|
||||
StyleSubTitleTable1.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleSubTitleTable1.Font.Name = "Calibri"
|
||||
StyleSubTitleTable1.Font.Size = 8 * 20
|
||||
StyleSubTitleTable1.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleSubTitleTable1.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleSubTitleTable1.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim DtSucursalesLLantasAlin As DataTable = DataSet.Tables(0)
|
||||
|
||||
'INICIA DESDE LA CUARTA FILA
|
||||
Dim IdxSucursalesLlantasAlin As Integer = 3
|
||||
For Each Row As DataRow In DtSucursalesLLantasAlin.Rows
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 0).Value = Row("SubProyecto")
|
||||
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 1).Value = Row("LlantasCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 2).Value = Row("LlantasCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesLlantasAlin, 3).Value = Row("LlantasCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 3).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 1).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 2).Name})"
|
||||
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 4).Value = Row("RinCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 5).Value = Row("RinCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesLlantasAlin, 6).Value = Row("RinCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 6).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 4).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 5).Name})"
|
||||
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 7).Value = Row("AlinCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 8).Value = Row("AlinCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesLlantasAlin, 9).Value = Row("AlinCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 9).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 7).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 8).Name})"
|
||||
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 10).Value = Row("VentaAnterior")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 11).Value = Row("VentaDia")
|
||||
'worksheet.Cells(IdxSucursalesLlantasAlin, 12).Value = Row("VentaAcumulada")
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 12).Formula = $"=SUM({worksheet.Cells(IdxSucursalesLlantasAlin, 10).Name}:{worksheet.Cells(IdxSucursalesLlantasAlin, 11).Name})"
|
||||
|
||||
Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin, 0, IdxSucursalesLlantasAlin, 12).Style
|
||||
StyleData.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleData.Font.Name = "Calibri"
|
||||
StyleData.Font.Size = 8 * 20
|
||||
StyleData.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
|
||||
|
||||
'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 0).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
||||
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 2).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 5).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 8).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesLlantasAlin, 11).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
|
||||
IdxSucursalesLlantasAlin += 1
|
||||
Next
|
||||
'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesLlantasAlin - 1, 0, IdxSucursalesLlantasAlin - 1, 12).Style.Font.Weight = ExcelFont.BoldWeight
|
||||
|
||||
DtSucursalesLLantasAlin.Dispose()
|
||||
#End Region
|
||||
|
||||
#Region "V E N T A S - S E R V I C I O S D E I N S T A L A C I O N, A M O R T I G U A D O R E S, P O L I Z A S"
|
||||
Dim IdxRefSucursalesServiciosAmortPolizas As Integer = IdxSucursalesLlantasAlin + 3
|
||||
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 0).Value = "Sucursal"
|
||||
'TITULO SERVICIOS DE INSTALACION
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 1, IdxRefSucursalesServiciosAmortPolizas - 1, 3).Merged = True
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 3).Value = "SERVICIOS DE INSTALACION"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 1).Value = "Ant"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 2).Value = "Dia"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 3).Value = "Acum"
|
||||
'TITULO AMORTIGUADORES
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 4, IdxRefSucursalesServiciosAmortPolizas - 1, 6).Merged = True
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 6).Value = "AMORTIGUADORES"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 4).Value = "Ant"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 5).Value = "Dia"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 6).Value = "Acum"
|
||||
'TITULO DE POLIZAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 7, IdxRefSucursalesServiciosAmortPolizas - 1, 9).Merged = True
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 9).Value = "POLIZAS"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 7).Value = "Ant"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 8).Value = "Dia"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 9).Value = "Acum"
|
||||
'TITULO DE VENTAS DEL DIA
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 10, IdxRefSucursalesServiciosAmortPolizas - 1, 12).Merged = True
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas - 1, 12).Value = "MANO DE OBRA PESOS"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 10).Value = "Ant"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 11).Value = "Dia"
|
||||
worksheet.Cells(IdxRefSucursalesServiciosAmortPolizas, 12).Value = "Acum"
|
||||
|
||||
Dim StyleTitleTable2 = worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas - 1, 1, IdxRefSucursalesServiciosAmortPolizas - 1, 12).Style
|
||||
StyleTitleTable2.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleTitleTable2.Font.Name = "Calibri"
|
||||
StyleTitleTable2.Font.Size = 8 * 20
|
||||
StyleTitleTable2.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleTitleTable2.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleTitleTable2.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim StyleSubTitleTable2 = worksheet.Cells.GetSubrangeAbsolute(IdxRefSucursalesServiciosAmortPolizas, 0, IdxRefSucursalesServiciosAmortPolizas, 12).Style
|
||||
StyleSubTitleTable2.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleSubTitleTable2.Font.Name = "Calibri"
|
||||
StyleSubTitleTable2.Font.Size = 8 * 20
|
||||
StyleSubTitleTable2.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleSubTitleTable2.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleSubTitleTable2.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim DtSucursalesServiciosAmortPolizas As DataTable = DataSet.Tables(1)
|
||||
|
||||
'INICIA DESDE LA CUARTA FILA
|
||||
Dim IdxSucursalesServiciosAmortPolizas As Integer = IdxRefSucursalesServiciosAmortPolizas + 1
|
||||
|
||||
For Each Row As DataRow In DtSucursalesServiciosAmortPolizas.Rows
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Value = Row("SubProyecto")
|
||||
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 1).Value = Row("ServiciosCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Value = Row("ServiciosCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 3).Value = Row("ServiciosCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 3).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 1).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Name})"
|
||||
|
||||
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 4).Value = Row("AmortCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Value = Row("AmortCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 6).Value = Row("AmortCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 6).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 4).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Name})"
|
||||
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 7).Value = Row("PolizasCantidadAnterior")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Value = Row("PolizasCantidadDia")
|
||||
'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 9).Value = Row("PolizasCantidadAcumulada")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 9).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 7).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Name})"
|
||||
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 10).Value = Row("VentaAnterior")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Value = Row("VentaDia")
|
||||
'worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Value = Row("VentaAcumulada")
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 12).Formula = $"=SUM({worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 10).Name}:{worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Name})"
|
||||
|
||||
Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas, 0, IdxSucursalesServiciosAmortPolizas, 12).Style
|
||||
StyleData.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleData.Font.Name = "Calibri"
|
||||
StyleData.Font.Size = 8 * 20
|
||||
StyleData.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
|
||||
|
||||
'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
||||
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 2).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 5).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 8).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxSucursalesServiciosAmortPolizas, 11).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
|
||||
IdxSucursalesServiciosAmortPolizas += 1
|
||||
Next
|
||||
'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxSucursalesServiciosAmortPolizas - 1, 0, IdxSucursalesServiciosAmortPolizas - 1, 12).Style.Font.Weight = ExcelFont.BoldWeight
|
||||
|
||||
DtSucursalesServiciosAmortPolizas.Dispose()
|
||||
#End Region
|
||||
|
||||
#Region "P O R C E N T A J E S"
|
||||
Dim IdxRefPorcentajes As Integer = IdxSucursalesServiciosAmortPolizas + 3
|
||||
|
||||
worksheet.Cells(IdxRefPorcentajes, 0).Value = "Sucursal"
|
||||
'TITULO SERVICIOS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 1, IdxRefPorcentajes - 1, 2).Merged = True
|
||||
worksheet.Cells(IdxRefPorcentajes - 1, 2).Value = "INSTALACION"
|
||||
worksheet.Cells(IdxRefPorcentajes, 1).Value = "Cant"
|
||||
worksheet.Cells(IdxRefPorcentajes, 2).Value = "%"
|
||||
'TITULO POLIZAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 3, IdxRefPorcentajes - 1, 4).Merged = True
|
||||
worksheet.Cells(IdxRefPorcentajes - 1, 4).Value = "POLIZAS"
|
||||
worksheet.Cells(IdxRefPorcentajes, 3).Value = "Cant"
|
||||
worksheet.Cells(IdxRefPorcentajes, 4).Value = "%"
|
||||
'TITULO DE ALINEACIONES
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 5, IdxRefPorcentajes - 1, 6).Merged = True
|
||||
worksheet.Cells(IdxRefPorcentajes - 1, 6).Value = "ALINEACIONES"
|
||||
worksheet.Cells(IdxRefPorcentajes, 5).Value = "Cant"
|
||||
worksheet.Cells(IdxRefPorcentajes, 6).Value = "%"
|
||||
|
||||
|
||||
Dim StyleTitleTable3 = worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes - 1, 1, IdxRefPorcentajes - 1, 6).Style
|
||||
StyleTitleTable3.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleTitleTable3.Font.Name = "Calibri"
|
||||
StyleTitleTable3.Font.Size = 8 * 20
|
||||
StyleTitleTable3.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleTitleTable3.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleTitleTable3.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim StyleSubTitleTable3 = worksheet.Cells.GetSubrangeAbsolute(IdxRefPorcentajes, 0, IdxRefPorcentajes, 6).Style
|
||||
StyleSubTitleTable3.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleSubTitleTable3.Font.Name = "Calibri"
|
||||
StyleSubTitleTable3.Font.Size = 8 * 20
|
||||
StyleSubTitleTable3.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleSubTitleTable3.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleSubTitleTable3.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim DtPorcentajes As DataTable = DataSet.Tables(2)
|
||||
|
||||
'INICIA DESDE LA CUARTA FILA
|
||||
Dim IdxPorcentajes As Integer = IdxRefPorcentajes + 1
|
||||
|
||||
For Each Row As DataRow In DtPorcentajes.Rows
|
||||
worksheet.Cells(IdxPorcentajes, 0).Value = Row("SubProyecto")
|
||||
|
||||
worksheet.Cells(IdxPorcentajes, 1).Value = Row("Servicios")
|
||||
worksheet.Cells(IdxPorcentajes, 2).Value = Row("ServiciosPorcentaje")
|
||||
|
||||
worksheet.Cells(IdxPorcentajes, 3).Value = Row("Polizas")
|
||||
worksheet.Cells(IdxPorcentajes, 4).Value = Row("PolizasPorcentaje")
|
||||
|
||||
worksheet.Cells(IdxPorcentajes, 5).Value = Row("Alineaciones")
|
||||
worksheet.Cells(IdxPorcentajes, 6).Value = Row("AlinPorcentaje")
|
||||
|
||||
Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes, 0, IdxPorcentajes, 6).Style
|
||||
StyleData.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleData.Font.Name = "Calibri"
|
||||
StyleData.Font.Size = 8 * 20
|
||||
StyleData.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
|
||||
|
||||
'LAS VENTAS DEL DIA NO DEBEN ESTAR EN NEGRITAS
|
||||
worksheet.Cells(IdxPorcentajes, 0).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxPorcentajes, 0).Style.HorizontalAlignment = HorizontalAlignmentStyle.Left
|
||||
|
||||
worksheet.Cells(IdxPorcentajes, 1).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxPorcentajes, 3).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
worksheet.Cells(IdxPorcentajes, 5).Style.Font.Weight = ExcelFont.NormalWeight
|
||||
|
||||
IdxPorcentajes += 1
|
||||
Next
|
||||
'LA FILA DE LOS TOTALES DEBE ESTAR EN NEGITAS
|
||||
worksheet.Cells.GetSubrangeAbsolute(IdxPorcentajes - 1, 0, IdxPorcentajes - 1, 6).Style.Font.Weight = ExcelFont.BoldWeight
|
||||
|
||||
DtPorcentajes.Dispose()
|
||||
#End Region
|
||||
|
||||
#Region "A Ñ O A N T E R I O R"
|
||||
Dim IdxRefAnioAnteriorLlantas As Integer = IdxPorcentajes + 3
|
||||
|
||||
worksheet.Cells(IdxRefAnioAnteriorLlantas, 0).Value = "Sucursal"
|
||||
worksheet.Cells(IdxRefAnioAnteriorLlantas, 1).Value = (Now.Year - 1).ToString()
|
||||
worksheet.Cells(IdxRefAnioAnteriorLlantas, 2).Value = Now.Year.ToString()
|
||||
worksheet.Cells(IdxRefAnioAnteriorLlantas, 3).Value = "Dif"
|
||||
|
||||
Dim StyleTitleTable4 = worksheet.Cells.GetSubrangeAbsolute(IdxRefAnioAnteriorLlantas, 0, IdxRefAnioAnteriorLlantas, 3).Style
|
||||
StyleTitleTable4.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleTitleTable4.Font.Name = "Calibri"
|
||||
StyleTitleTable4.Font.Size = 8 * 20
|
||||
StyleTitleTable4.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleTitleTable4.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleTitleTable4.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
|
||||
Dim DtAnioAnteriorLLantas As DataTable = DataSet.Tables(3)
|
||||
'INICIA DESDE LA CUARTA FILA
|
||||
Dim IdxAnioAnteriorLlantas As Integer = IdxRefAnioAnteriorLlantas + 1
|
||||
|
||||
For Each Row As DataRow In DtAnioAnteriorLLantas.FiltraParametros("TipoFila > 1").Rows
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 0).Value = Row("Grupo")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 1).Value = Row("LLantasAnioAnterior")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 2).Value = Row("LLantas")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 3).Formula = $"=({worksheet.Cells(IdxAnioAnteriorLlantas, 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, 2).Name})"
|
||||
|
||||
|
||||
Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, 0, IdxAnioAnteriorLlantas, 3).Style
|
||||
StyleData.Font.Weight = ExcelFont.NormalWeight
|
||||
StyleData.Font.Name = "Calibri"
|
||||
StyleData.Font.Size = 8 * 20
|
||||
StyleData.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
|
||||
|
||||
If Row("TipoFila").ToString() = "2" Then
|
||||
StyleData.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleData.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(255, 215, 0), SpreadsheetColor.FromArgb(255, 255, 255))
|
||||
End If
|
||||
|
||||
IdxAnioAnteriorLlantas += 1
|
||||
Next
|
||||
|
||||
For Each Row As DataRow In DtAnioAnteriorLLantas.FiltraParametros("TipoFila = 1").Rows
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 0).Value = Row("Grupo")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 1).Value = Row("LLantasAnioAnterior")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 2).Value = Row("LLantas")
|
||||
worksheet.Cells(IdxAnioAnteriorLlantas, 3).Formula = $"=(+{worksheet.Cells(IdxAnioAnteriorLlantas, 1).Name} - {worksheet.Cells(IdxAnioAnteriorLlantas, 2).Name})"
|
||||
|
||||
|
||||
Dim StyleData = worksheet.Cells.GetSubrangeAbsolute(IdxAnioAnteriorLlantas, 0, IdxAnioAnteriorLlantas, 3).Style
|
||||
StyleData.Font.Weight = ExcelFont.BoldWeight
|
||||
StyleData.Font.Name = "Calibri"
|
||||
StyleData.Font.Size = 8 * 20
|
||||
StyleData.VerticalAlignment = VerticalAlignmentStyle.Center
|
||||
StyleData.HorizontalAlignment = HorizontalAlignmentStyle.Center
|
||||
StyleData.Borders.SetBorders(MultipleBorders.All, SpreadsheetColor.FromName(ColorName.Black), LineStyle.Thin)
|
||||
StyleData.NumberFormat = "_-* #,##0.00_-;-* #,##0.00_-;_-* ""-""??_-;_-@_-"
|
||||
StyleData.FillPattern.SetPattern(FillPatternStyle.Solid, SpreadsheetColor.FromArgb(255, 215, 0), SpreadsheetColor.FromArgb(255, 255, 255))
|
||||
|
||||
IdxAnioAnteriorLlantas += 1
|
||||
Next
|
||||
DtAnioAnteriorLLantas.Dispose()
|
||||
#End Region
|
||||
|
||||
Dim columnCount = worksheet.CalculateMaxUsedColumns()
|
||||
|
||||
For i = 0 To columnCount
|
||||
worksheet.Columns(i).AutoFit(1, worksheet.Rows(0), worksheet.Rows(worksheet.Rows.Count - 1))
|
||||
Next
|
||||
|
||||
FileExcel.Save(Response, $"DIARIO_{Now.ToString("dd_MM_yyyy")}.xlsx", SaveOptions.XlsxDefault)
|
||||
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Public Function ToMonthName(ByVal dateTime As DateTime) As String
|
||||
Return New CultureInfo("es-MX").DateTimeFormat.GetMonthName(dateTime.Month)
|
||||
End Function
|
||||
|
||||
Public Function ToShortMonthName(ByVal dateTime As DateTime) As String
|
||||
Return New CultureInfo("es-MX").DateTimeFormat.GetAbbreviatedMonthName(dateTime.Month)
|
||||
End Function
|
||||
End Class
|
||||
|
||||
@@ -453,7 +453,21 @@ Partial Class Ventas_RepVentas
|
||||
FechaInicial = New DateTime(Anio, Mes, 1).ToString("dd/MM/yyyy")
|
||||
End If
|
||||
|
||||
FechaFinal = New DateTime(Anio, Mes, Dia).ToString("dd/MM/yyyy")
|
||||
Dim FechaFinalRef = New DateTime(Anio, Mes, Dia)
|
||||
|
||||
'ASIGNAR LA FECHA FINAL DEL GRUPO, SI ES MENOR A LA FECHA DEL FILTRO
|
||||
If FechaF <> "-1" Then
|
||||
If FechaFRef < FechaFinalRef Then
|
||||
FechaFinal = FechaFRef.ToString("dd/MM/yyyy")
|
||||
Else
|
||||
FechaFinal = FechaFinalRef.ToString("dd/MM/yyyy")
|
||||
End If
|
||||
Else
|
||||
FechaFinal = FechaFinalRef.ToString("dd/MM/yyyy")
|
||||
End If
|
||||
|
||||
|
||||
|
||||
End If
|
||||
|
||||
Case 3 ' AÑO/MES
|
||||
@@ -479,7 +493,19 @@ Partial Class Ventas_RepVentas
|
||||
FechaInicial = New DateTime(Anio, Mes, 1).ToString("dd/MM/yyyy")
|
||||
End If
|
||||
|
||||
FechaFinal = New DateTime(Anio, Mes, Dia).ToString("dd/MM/yyyy")
|
||||
Dim FechaFinalRef = New DateTime(Anio, Mes, Dia)
|
||||
|
||||
'ASIGNAR LA FECHA FINAL DEL GRUPO, SI ES MENOR A LA FECHA DEL FILTRO
|
||||
If FechaF <> "-1" Then
|
||||
If FechaFRef < FechaFinalRef Then
|
||||
FechaFinal = FechaFRef.ToString("dd/MM/yyyy")
|
||||
Else
|
||||
FechaFinal = FechaFinalRef.ToString("dd/MM/yyyy")
|
||||
End If
|
||||
Else
|
||||
FechaFinal = FechaFinalRef.ToString("dd/MM/yyyy")
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Case 4 ' FECHA
|
||||
|
||||
@@ -353,7 +353,7 @@
|
||||
<asp:HyperLink ID="HlCuentaTerminal" data-toggle="modal" data-target="#ModalCuentaTerminal" runat="server" Visible="false"><i class="fa fa-money"></i> Asignar Cuenta de Terminal</asp:HyperLink>
|
||||
</li>
|
||||
<li>
|
||||
<asp:HyperLink ID="HplFolioFiscalModal" data-toggle="modal" data-target="#ModalFolioFiscal" runat="server" Visible="false"><i class="fa fa-plus"></i> Asignar Folio Fiscal</asp:HyperLink>
|
||||
<asp:HyperLink ID="HplFolioFiscalModal" data-toggle="modal" data-target="#ModalFolioFiscal" runat="server" Visible="false"><i class="fa fa-pencil"></i> Asignar Folio Fiscal</asp:HyperLink>
|
||||
</li>
|
||||
<li>
|
||||
<asp:LinkButton runat="server" ID="LnkImprimirFormatoCicovisa" Visible="false" OnClick="LnkImprimirFormatoCicovisa_Click">Imprimir Formato Cicovisa</asp:LinkButton>
|
||||
@@ -4812,10 +4812,19 @@
|
||||
<asp:RadioButtonList ID="RblTipo" runat="server" AutoPostBack="true" RepeatDirection="Horizontal" CssClass="input-group col-md-12" CellSpacing="100">
|
||||
<asp:ListItem Value="3" Class="one" Selected="True"><label><b>Total x Concepto</b></label></asp:ListItem>
|
||||
<asp:ListItem Value="1" Class="one"><label><b>Total General</b></label></asp:ListItem>
|
||||
<asp:ListItem Value="2" Class="one"><label><b>Total x Remisión</b></label></asp:ListItem>
|
||||
<asp:ListItem Value="2" Class="one"><label><b>Total x Remisión</b></label></asp:ListItem>
|
||||
</asp:RadioButtonList>
|
||||
</div>
|
||||
</div>
|
||||
<div class="row" id="DivPSRemision" runat="server" visible="false">
|
||||
<div class="col-md-6">
|
||||
<div class="form-group form-md-line-input input-iconright">
|
||||
<label for="<%= DdlPSRemision.ClientID.ToString()%>">Producto/Servicio:</label>
|
||||
<ADS:Dropdownlost runat="server" ID="DdlPSRemision" CssStyle="width: 100%;" CssClass=" form-control input-sm DdlPS" IncluyeTodos="false" CssClassDdl="select2me form-control" DataTextField="PSCodigo" DataValueField="CvePS" />
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div class="row">
|
||||
<div class="col-md-8">
|
||||
<asp:CheckBox ID="ChkRemProductos" runat="server" AutoPostBack="true" Text="Mostrar Productos" />
|
||||
@@ -6230,7 +6239,7 @@
|
||||
<button type="button" class="close" data-dismiss="modal">×</button>
|
||||
<h4 class="modal-title">Facturas Relacionadas</h4>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<div class="modal-body" style="width:900px;">
|
||||
<div class="row">
|
||||
<div class="col-md-2">
|
||||
<label>Relación:</label>
|
||||
@@ -6249,7 +6258,19 @@
|
||||
<asp:DropDownList ID="DdlFacturaARelacionar" runat="server" AutoPostBack="true" AppendDataBoundItems="true" DataTextField="Folio" DataValueField="CveVenta" Width="100%" CssClass="select2me"></asp:DropDownList>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<asp:LinkButton ID="LnkAgregarFacturaRelacionada" runat="server" CssClass="btn btn-sm btn-primary" OnClick="LnkAgregarFacturaRelacionada_Click"><i class="fa fa-plus"></i>Agregar</asp:LinkButton>
|
||||
<asp:LinkButton ID="LnkAgregarFacturaRelacionada" runat="server" CssClass="btn btn-sm btn-primary" OnClick="LnkAgregarFacturaRelacionada_Click"><i class="fa fa-plus"></i>Agregar Factura</asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
<div id="DivFolioFiscalAgregar" runat="server" class="row">
|
||||
<div class="col-md-2">
|
||||
<label>Folio Fiscal:</label>
|
||||
</div>
|
||||
<div class="col-md-8">
|
||||
<asp:TextBox ID="TxtFolioFiscalRelacionar" runat="server" Text="" Width="100%" CssClass="form-control input-sm"></asp:TextBox>
|
||||
</div>
|
||||
<div class="col-md-2">
|
||||
<asp:LinkButton ID="LnkAgregarFolioFiscalRelacionada" runat="server" CssClass="btn btn-sm btn-primary" OnClick="LnkAgregarFolioFiscalRelacionada_Click"><i class="fa fa-plus"></i>Agregar Folio</asp:LinkButton>
|
||||
</div>
|
||||
</div>
|
||||
<br />
|
||||
@@ -6290,8 +6311,10 @@
|
||||
<div class="modal-body">
|
||||
<asp:UpdatePanel runat="server" ID="UpdatePanel3" UpdateMode="Conditional">
|
||||
<ContentTemplate>
|
||||
Folio Fiscal
|
||||
<asp:TextBox ID="TxtModalFolioFiscal" runat="server" Width="250px"></asp:TextBox>
|
||||
<div class="row">
|
||||
<div class="col-md-2"> Folio Fiscal</div>
|
||||
<div class="col-md-10"> <asp:TextBox ID="TxtModalFolioFiscal" runat="server" Width="100%"></asp:TextBox></div>
|
||||
</div>
|
||||
</ContentTemplate>
|
||||
</asp:UpdatePanel>
|
||||
</div>
|
||||
@@ -6870,7 +6893,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
<button type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
|
||||
<asp:Button Text="Aplicar Remisiones" ID="BtnAplicarRNCDevoluciones" OnClick="BtnAplicarRNCDevoluciones_Click" CssClass="btn btn-primary" runat="server" ValidationGroup="VGAplicarRNC" />
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -2226,6 +2226,7 @@ Partial Class Ventas
|
||||
|
||||
CargaClasificaciones()
|
||||
CargaPS(-1, DdlPS)
|
||||
CargaPSRemision(-1, DdlPSRemision)
|
||||
CargaPSPyME(-1, DdlPSPyME)
|
||||
|
||||
CreaDTVentas()
|
||||
@@ -2312,7 +2313,7 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
'MUESTRA EL MODAL PARA PODER RELACIONAR FACTURAS
|
||||
If UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
|
||||
If UsuarioActual.TienePermisoProceso(321) Then
|
||||
HlFacturasRelaciondas.Visible = True
|
||||
End If
|
||||
|
||||
@@ -2322,7 +2323,7 @@ Partial Class Ventas
|
||||
ViewState("CveVenta") = Request("CveVenta")
|
||||
|
||||
If CargaVenta() Then
|
||||
If UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
|
||||
If UsuarioActual.TienePermisoProceso(321) Then
|
||||
CargaRelacionadasPendientes()
|
||||
End If
|
||||
|
||||
@@ -4112,8 +4113,9 @@ Partial Class Ventas
|
||||
'TxtIEPS.Text = If(TmpDT.SUM("IEPS") > 0, TmpDT.SUM("IEPS").FormatoNumero, TxtIEPS.Text)
|
||||
End If
|
||||
|
||||
|
||||
If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev") AndAlso LblFolioFiscal.Text.Trim = "" Then HplFolioFiscalModal.Visible = True
|
||||
If UsuarioActual.TienePermisoProceso(318) Then
|
||||
If DdlTipoComprobante.SelectedValue.Contiene("Egs", "Ing", "Ant", "Dev") AndAlso String.IsNullOrEmpty(LblFolioFiscal.Text.Trim) Then HplFolioFiscalModal.Visible = True
|
||||
End If
|
||||
|
||||
Select Case DbRowVenta("TipoDocto").ToString()
|
||||
Case "Ing"
|
||||
@@ -5963,7 +5965,7 @@ Partial Class Ventas
|
||||
|
||||
Private Sub CargaRelacionadasPendientes()
|
||||
|
||||
If CveVenta > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(592) = "1" Then
|
||||
If CveVenta > 0 AndAlso UsuarioActual.TienePermisoProceso(321) Then
|
||||
Me.TmpDTFacturasRelacionadas = New DataTable()
|
||||
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("CveVenta", GetType(Integer)))
|
||||
Me.TmpDTFacturasRelacionadas.Columns.Add(New DataColumn("SerieFolio", GetType(String)))
|
||||
@@ -6051,6 +6053,37 @@ Partial Class Ventas
|
||||
UpFacturasRelacionadas.Update()
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Protected Sub LnkAgregarFolioFiscalRelacionada_Click(sender As Object, e As EventArgs)
|
||||
If CveVenta <= 0 OrElse EsCreaApartirDe Then
|
||||
If Me.TmpDTFacturasRelacionadas Is Nothing Then
|
||||
CreaTmpFacturasRelacionadas()
|
||||
End If
|
||||
|
||||
'If TmpDTFacturasRelacionadas.COUNT("CveVenta", $"CveVenta ={DdlFacturaARelacionar.SelectedValue.ToEntero()}") > 0 Then
|
||||
' Alert("La factura ya fue agregada", TipoMensaje.MsgAdvertencia)
|
||||
' Exit Sub
|
||||
'End If
|
||||
|
||||
Dim idx As Integer = TmpDTFacturasRelacionadas.MIN("CveVenta", $"CveVenta <= 0").ToEntero()
|
||||
If idx = 0 Then
|
||||
idx = -1
|
||||
End If
|
||||
Dim Row As DataRow = TmpDTFacturasRelacionadas.NewRow()
|
||||
|
||||
Row("CveVenta") = idx - 1
|
||||
Row("SerieFolio") = "SIN ASIGNAR"
|
||||
Row("FolioFiscal") = TxtFolioFiscalRelacionar.Text
|
||||
|
||||
Me.TmpDTFacturasRelacionadas.Rows.Add(Row)
|
||||
|
||||
GvFacturasRelacionadas.DataSource = Me.TmpDTFacturasRelacionadas
|
||||
GvFacturasRelacionadas.DataBind()
|
||||
|
||||
UpFacturasRelacionadas.Update()
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Protected Sub BtnAgregarFacturasRelaciondas_Click(sender As Object, e As EventArgs)
|
||||
If CveVenta <= 0 OrElse EsCreaApartirDe Then
|
||||
@@ -6477,6 +6510,9 @@ Partial Class Ventas
|
||||
ElseIf LimiteRestanteSucursal < LimiteRestanteCliente Then
|
||||
Retorno = LimiteRestanteSucursal
|
||||
PorcentajeCredito = PorcentajeSaldoSucursal
|
||||
ElseIf LimiteRestanteSucursal = LimiteRestanteCliente Then
|
||||
Retorno = LimiteRestanteSucursal
|
||||
PorcentajeCredito = PorcentajeSaldoSucursal
|
||||
End If
|
||||
|
||||
Else
|
||||
@@ -6546,6 +6582,29 @@ Partial Class Ventas
|
||||
Objeto.ddlWS.Attributes.Add("data-AplicaparaVenta", "1")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub CargaPSRemision(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost)
|
||||
|
||||
Objeto.setEsWebService(UsuarioActual.Empresa.Funcionalidad(141).ToString() = "1")
|
||||
|
||||
If Not UsuarioActual.Empresa.Funcionalidad(141).ToString() = "1" Then
|
||||
Objeto.ddl.Items.Clear()
|
||||
'Objeto.ddl.DataSource = GlobalDTProductosServicios(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, AplicaParaVenta:=1, Estatus:=1)
|
||||
Objeto.ddl.DataSource = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CveClasificacion:=CveClasificacion, Estatus:=1, AplicaParaVenta:=1)
|
||||
Objeto.ddl.DataBind()
|
||||
Objeto.ddl.Items.Insert(0, New ListItem("*** Actualizar listado de Productos o Servicios ***", "-2"))
|
||||
Objeto.ddl.Items.Insert(0, New ListItem("Seleccione el Producto", "-1"))
|
||||
Else
|
||||
Dim cvesubproyecto As String = "-1"
|
||||
|
||||
Objeto.Attributes.Add("data-cvesubproyecto", cvesubproyecto)
|
||||
Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString())
|
||||
Objeto.ddlWS.Attributes.Add("data-pagina", "ventas/ventas")
|
||||
Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
|
||||
Objeto.ddlWS.Attributes.Add("data-AplicaparaVenta", "1")
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Private Sub CargaNC(pCveVenta As Integer)
|
||||
If pCveVenta > 0 AndAlso DdlTipoComprobante.SelectedValue.Contiene("Egs", "Dev") Or DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") Then
|
||||
@@ -9112,6 +9171,13 @@ Partial Class Ventas
|
||||
DtVentasNC.AcceptChanges()
|
||||
End If
|
||||
|
||||
'ASIGNAR RFC RECEPTOR
|
||||
If ObjFacturaBonificacion.Timbre IsNot Nothing Then
|
||||
If ObjFacturaBonificacion.Timbre.Receptor IsNot Nothing Then
|
||||
ObjFacturaBonificacion.RFCReceptor = ObjFacturaBonificacion.Timbre.Receptor.RFC
|
||||
End If
|
||||
End If
|
||||
|
||||
End Sub
|
||||
|
||||
|
||||
@@ -9981,6 +10047,13 @@ Partial Class Ventas
|
||||
ObjFactura.DescuentoProntoPago = HdnProntoPago.Value.ToDecimal()
|
||||
|
||||
ObjFactura.NuevaFactura = Me.NuevaFactura
|
||||
|
||||
'ASIGNAR RFC RECEPTOR
|
||||
If ObjFactura.Timbre IsNot Nothing Then
|
||||
If ObjFactura.Timbre.Receptor IsNot Nothing Then
|
||||
ObjFactura.RFCReceptor = ObjFactura.Timbre.Receptor.RFC
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub CreaObjetosVentaDevolucion()
|
||||
@@ -10273,6 +10346,13 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
ObjFacturaDevolucion.Timbre = PreParaTimbre(ObjFacturaDevolucion)
|
||||
|
||||
'ASIGNAR RFC RECEPTOR
|
||||
If ObjFacturaDevolucion.Timbre IsNot Nothing Then
|
||||
If ObjFacturaDevolucion.Timbre.Receptor IsNot Nothing Then
|
||||
ObjFacturaDevolucion.RFCReceptor = ObjFacturaDevolucion.Timbre.Receptor.RFC
|
||||
End If
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre
|
||||
@@ -10378,7 +10458,7 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
'SI LAS FACTURAS SE RELACIONARAN MANUALMENTE SE AGREGAN
|
||||
If UsuarioActual.Empresa.Funcionalidad(592) = "1" AndAlso Me.AplicaRelacionManual AndAlso DdlTipoRelacionARelacionar.SelectedValue.ToEntero() > 0 Then
|
||||
If UsuarioActual.TienePermisoProceso(321) AndAlso Me.AplicaRelacionManual AndAlso DdlTipoRelacionARelacionar.SelectedValue.ToEntero() > 0 Then
|
||||
|
||||
Dim CveTipoRelacion As Integer = DdlTipoRelacionARelacionar.SelectedValue.ToEntero()
|
||||
|
||||
@@ -10432,7 +10512,7 @@ Partial Class Ventas
|
||||
Dim concepto As New CFDIConceptos With {.Cantidad = drr("Cantidad").ToString().ToDecimal,
|
||||
.Descripcion = tPS,
|
||||
.ValorUnitario = drr("PU").ToString().ToDecimal,
|
||||
.Importe = drr("TotalImporte").ToString().ToDecimal,
|
||||
.Importe = If(UsuarioActual.Empresa.CvePAC = 3, drr("Total").ToString().ToDecimal, drr("TotalImporte").ToString().ToDecimal),
|
||||
.Descuento = drr("Descuento").ToString().ToDecimal.RoundSQL(2),
|
||||
.Unidad = drr("UM").ToString(),
|
||||
.ClaveUnidad = drr("SATClaveUM").ToString(),
|
||||
@@ -11025,11 +11105,20 @@ Partial Class Ventas
|
||||
End If
|
||||
End If
|
||||
|
||||
If UsuarioActual.Empresa.Funcionalidad(592) = "1" AndAlso Me.AplicaRelacionManual Then
|
||||
If UsuarioActual.TienePermisoProceso(321) AndAlso Me.AplicaRelacionManual Then
|
||||
For Each GvRow As GridViewRow In GvFacturasRelacionadas.Rows
|
||||
If GvRow.RowType = DataControlRowType.DataRow Then
|
||||
If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, GvRow.DataKey("CveVenta").ToEntero()) Then
|
||||
ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico")
|
||||
If GvRow.DataKey("CveVenta").ToEntero() > 0 Then
|
||||
If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, GvRow.DataKey("CveVenta").ToEntero()) Then
|
||||
ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico")
|
||||
End If
|
||||
Else
|
||||
Dim FolioFiscalRelacionado As String = GvRow.DataKey("FolioFiscal")
|
||||
If Not String.IsNullOrEmpty(FolioFiscalRelacionado) Then
|
||||
If Not ObjVentas.AddVentasRelacionadas(ObjVentas.CveVenta, -1, FolioFiscal:=FolioFiscalRelacionado) Then
|
||||
ErrorList.Add("Ocurrió un error al relacionar las ventas entre si comuníquese a Soporte Técnico")
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
@@ -14843,6 +14932,19 @@ Partial Class Ventas
|
||||
Alert("La amortización no se pudo realizar ya que los importes no cubren la totalidad del documento. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
If Amortizacion > SubTotalRef Then
|
||||
|
||||
'[IPP] LIMPIA LO SELECCIONADO EN CASO DE QUE NO SEA AMORTIZACIÓN DEL 100% 15Junio2018
|
||||
Amortizacion = 0
|
||||
For Each gvr As GridViewRow In GVAnticipos.Rows
|
||||
gvr.FCCheckBox($"Chk{gvr.RowIndex}").Checked = False
|
||||
Next
|
||||
If CveVenta <= 0 Then
|
||||
Alert($"La amortización no se pudo realizar ya que los importes exceden la totalidad del documento.<br/> Importe sugerido para amortizar:<b>{SubTotalRef.FormatoNumero(2)}</b>.<br/> Por favor verifique y vuelva a intentar", TipoMensaje.MsgAdvertencia)
|
||||
End If
|
||||
|
||||
End If
|
||||
LblAmortizacion.Text = Amortizacion.FormatoNumero(2)
|
||||
|
||||
@@ -16178,7 +16280,7 @@ Partial Class Ventas
|
||||
Private Sub DdlSubProyectoDatos_SelectedIndexChanged(sender As Object, e As EventArgs) Handles DdlSubProyectoDatos.SelectedIndexChanged
|
||||
CambiaSucursalGeneral()
|
||||
End Sub
|
||||
Private Sub CambiaSucursalGeneral()
|
||||
Private Sub CambiaSucursalGeneral(Optional RecargarPartidas As Boolean = True)
|
||||
Dim ObjSubProyectos As New ClsSubProyectos
|
||||
'Dim ObjSucursal As New ClsSucursales
|
||||
If ObjSubProyectos.GetSubProyectos() Then
|
||||
@@ -16192,7 +16294,7 @@ Partial Class Ventas
|
||||
'DdlSubProyecto.SelectedValue = "-1"
|
||||
DdlSubProyecto.DataBind()
|
||||
DdlSubProyecto.SelectedValueExist(DdlSubProyectoDatos.SelectedValue)
|
||||
CambiaSucursal()
|
||||
CambiaSucursal(RecargarPartidas)
|
||||
|
||||
DdlSubProyectoEjecucion.SelectedValueExist(DdlSubProyectoDatos.SelectedValue)
|
||||
DdlSubProyectoCobranza.SelectedValueExist(DdlSubProyectoDatos.SelectedValue)
|
||||
@@ -16210,12 +16312,16 @@ Partial Class Ventas
|
||||
|
||||
UpDetalle.Update()
|
||||
End Sub
|
||||
Private Sub CambiaSucursal()
|
||||
Private Sub CambiaSucursal(Optional RecargarPartidas As Boolean = True)
|
||||
CargaFormatoSucursal()
|
||||
CargaFolios()
|
||||
CargaVendedores()
|
||||
CargarAlmacenes()
|
||||
RecargaSucursalPartidas()
|
||||
|
||||
If RecargarPartidas Then
|
||||
RecargaSucursalPartidas()
|
||||
End If
|
||||
|
||||
DdlPS.Attributes.Remove("data-cvesubproyecto")
|
||||
DdlPS.Attributes.Add("data-cvesubproyecto", DdlSubProyectoDatos.SelectedValue)
|
||||
|
||||
@@ -16225,6 +16331,7 @@ Partial Class Ventas
|
||||
UpPS.Update()
|
||||
End Sub
|
||||
Private Sub RecargaSucursalPartidas()
|
||||
|
||||
Dim CveSubProyecto As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero()
|
||||
Dim SubProyecto As String = ""
|
||||
If CveSubProyecto > 0 Then
|
||||
@@ -23321,12 +23428,12 @@ Partial Class Ventas
|
||||
|
||||
Private Sub CargaPSPyME(CveClasificacion As Integer, Objeto As ADServerControl.Dropdownlost)
|
||||
|
||||
DdlPSPyME.setEsWebService(True)
|
||||
Objeto.setEsWebService(True)
|
||||
|
||||
DdlPSPyME.Attributes.Add("data-cvesubproyecto", DdlSubProyectoDatos.SelectedValue)
|
||||
DdlPSPyME.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString())
|
||||
DdlPSPyME.ddlWS.Attributes.Add("data-pagina", "ventas/ventas")
|
||||
DdlPSPyME.ddlWS.Attributes.Add("data-Estatus", "1")
|
||||
Objeto.Attributes.Add("data-cvesubproyecto", DdlSubProyectoDatos.SelectedValue)
|
||||
Objeto.ddlWS.Attributes.Add("data-cveclasificacion", CveClasificacion.ToString())
|
||||
Objeto.ddlWS.Attributes.Add("data-pagina", "ventas/ventas")
|
||||
Objeto.ddlWS.Attributes.Add("data-Estatus", "1")
|
||||
|
||||
End Sub
|
||||
|
||||
@@ -24053,6 +24160,7 @@ Partial Class Ventas
|
||||
Dim FileExtension As String = "-1"
|
||||
Dim Filesgral As List(Of Archivo) = TxtFileCliente.getfiles().Archivos
|
||||
Dim Filename As String = ""
|
||||
Dim ErrorCarga As Boolean = False
|
||||
|
||||
For Each fileItem As Archivo In Filesgral
|
||||
Try
|
||||
@@ -24071,6 +24179,17 @@ Partial Class Ventas
|
||||
Count = +1
|
||||
Next
|
||||
End If
|
||||
|
||||
If fileItem Is Nothing Then
|
||||
ErrorCarga = True
|
||||
Exit For
|
||||
Else
|
||||
If fileItem.FileUrl Is Nothing Then
|
||||
ErrorCarga = True
|
||||
Exit For
|
||||
End If
|
||||
End If
|
||||
|
||||
DtDocumentacionCliente(IndexDocumentoCliente)("RutaArchivo") = fileItem.FileUrl
|
||||
DtDocumentacionCliente(IndexDocumentoCliente)("UpArchivo") = "1"
|
||||
|
||||
@@ -24083,6 +24202,11 @@ Partial Class Ventas
|
||||
|
||||
Next
|
||||
|
||||
If ErrorCarga Then
|
||||
Alert("No se pudo cargar el archivo", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
GvDocumentosCliente.DataSource = DtDocumentacionCliente
|
||||
GvDocumentosCliente.DataBind()
|
||||
|
||||
@@ -28357,8 +28481,11 @@ Partial Class Ventas
|
||||
HuboCambioRemi = Not HuboCambioRemi
|
||||
'TOTAL X CONCEPTO
|
||||
If RblTipo.SelectedValue = "3" Then
|
||||
'DivPSRemision.Visible = False
|
||||
ChkRemProductos.Visible = True
|
||||
Else
|
||||
'DivPSRemision.Visible = True
|
||||
CargaPSRemision(-1, DdlPSRemision)
|
||||
ChkRemProductos.Visible = False
|
||||
ChkRemProductos.Checked = False
|
||||
End If
|
||||
@@ -28367,6 +28494,12 @@ Partial Class Ventas
|
||||
End Sub
|
||||
Protected Sub BtnGuardarRemisiones_Click(sender As Object, e As EventArgs) Handles BtnGuardarRemisiones.Click
|
||||
If GvRem.Rows.Count > 0 Or GvRemPS.Rows.Count > 0 Then
|
||||
|
||||
If RblTipo.SelectedValue.Contiene("1", "2") AndAlso DdlPSRemision.SelectedValue.ToEntero() <= 0 Then
|
||||
Alert("Debe seleccionar un producto para facturar la remisión", TipoMensaje.MsgAdvertencia)
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
'Checa las facturas selecionadas
|
||||
If Not VerificaRemisiones(DTRemisiones) Then
|
||||
Alert("La cantidad/total debe ser mayor que 0", TipoMensaje.MsgAdvertencia)
|
||||
@@ -28468,9 +28601,9 @@ Partial Class Ventas
|
||||
Next
|
||||
IsTotalxConcepto = False
|
||||
Dim PU As Decimal = dtSeleccionadas.SUM("SubTotal").ToDecimal
|
||||
Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa)(0)
|
||||
Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSRemision.SelectedValue.ToEntero())(0)
|
||||
Dim IVA As Double = If(dtSeleccionadas.SUM("Iva") > 0, dtSeleccionadas.SUM("Iva") / dtSeleccionadas.SUM("SubTotal"), 0.16)
|
||||
Dim rowSP As DataRow = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa)(0)
|
||||
Dim rowSP As DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa)(0)
|
||||
|
||||
AgregarProductoServicio(1, PS("CveUM").ToString().ToEntero(), PS("UnidadMedida").ToString(), PS("CveClasificacion").ToString().ToEntero(),
|
||||
PS("Clasificacion").ToString(), PS("CvePS").ToString().ToEntero(), PS("PS").ToString(), "", PU, 0,
|
||||
@@ -28496,8 +28629,8 @@ Partial Class Ventas
|
||||
End If
|
||||
|
||||
Next
|
||||
Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa)(0)
|
||||
Dim rowSP As DataRow = GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa)(0)
|
||||
Dim PS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlPSRemision.SelectedValue.ToEntero())(0)
|
||||
Dim rowSP As DataRow = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero(), CveEmpresa:=UsuarioActual.CveEmpresa)(0)
|
||||
Dim IVA As Double = If(dtSeleccionadas.SUM("Iva") > 0, dtSeleccionadas.SUM("Iva") / dtSeleccionadas.SUM("SubTotal"), 0.16)
|
||||
For Each gvr As GridViewRow In GvRem.Rows
|
||||
If gvr.FCCheckBox("Chk").Checked Then
|
||||
@@ -29283,7 +29416,7 @@ Partial Class Ventas
|
||||
End If
|
||||
End If
|
||||
ObjCliente.Dispose()
|
||||
DdlTipoRetencion_SelectedIndexChanged(DdlTipoRetencion, EventArgs.Empty)
|
||||
'DdlTipoRetencion_SelectedIndexChanged(DdlTipoRetencion, EventArgs.Empty)
|
||||
|
||||
TrVistaPrevia.Visible = True
|
||||
TxtFechaVencimientoCotizacion.Text = Now.ToShortDateString
|
||||
@@ -29293,7 +29426,7 @@ Partial Class Ventas
|
||||
GvPS.Columns(18).Visible = True
|
||||
|
||||
CambiaTipoDocto()
|
||||
CambiaSucursalGeneral()
|
||||
CambiaSucursalGeneral(RecargarPartidas:=False)
|
||||
CargaAnticipos(CveCliente)
|
||||
CargaRestriccionesCreditoCliente(CveVenta:=-1)
|
||||
|
||||
@@ -29314,6 +29447,14 @@ Partial Class Ventas
|
||||
|
||||
CalculaTotalesVenta()
|
||||
|
||||
Dim PorcentajeRetIVA = (TmpDT.MAX("PorcentajeRetIVA").ToDecimal() * 100)
|
||||
|
||||
If PorcentajeRetIVA > 0 Then
|
||||
TrRetIVA.Style.Add("display", "")
|
||||
UsuarioActual.Empresa.MostrarRetIVA = True
|
||||
DdlTipoRetencion.Visible = True
|
||||
End If
|
||||
|
||||
UpnTools.Update()
|
||||
UpCliente.Update()
|
||||
UpParametros.Update()
|
||||
|
||||
Reference in New Issue
Block a user