diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index fb940169b..a1bba138d 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -8998,286 +8998,286 @@ Partial Class Ventas
Try
- Dim DirectoriArchivoXML As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, ObjFactura.TipoDocto) ' System.IO.Path.Combine()
- If Not Directory.Exists(DirectoriArchivoXML) Then
- Directory.CreateDirectory(DirectoriArchivoXML)
- End If
- Catch ex As Exception
+ Dim DirectoriArchivoXML As String = String.Format("{0}{1}", UsuarioActual.Empresa.Ruta, ObjFactura.TipoDocto) ' System.IO.Path.Combine()
+ If Not Directory.Exists(DirectoriArchivoXML) Then
+ Directory.CreateDirectory(DirectoriArchivoXML)
+ End If
+ Catch ex As Exception
- End Try
+ End Try
- Dim SeTimbro As Boolean = False
- Dim SeTimbroNC As Boolean = False
- Dim EstatusSMS = 0
+ Dim SeTimbro As Boolean = False
+ Dim SeTimbroNC As Boolean = False
+ Dim EstatusSMS = 0
- Dim MsgCancelacionRefacturacion As Modelos.Factura.MCancelacionVentaMensaje = Nothing
+ Dim MsgCancelacionRefacturacion As Modelos.Factura.MCancelacionVentaMensaje = Nothing
- 'TIMBRADO Y CASO ESPECIAL NOTA DE CREDITO
- If (TipoDoctoDevolucion = "" OrElse Not TipoDoctoDevolucion.Contiene("Rem", "RNC", "Cot", "Ped", "DPe", "PA", "Pd2")) Then
+ 'TIMBRADO Y CASO ESPECIAL NOTA DE CREDITO
+ If (TipoDoctoDevolucion = "" OrElse Not TipoDoctoDevolucion.Contiene("Rem", "RNC", "Cot", "Ped", "DPe", "PA", "Pd2")) Then
- Dim DebeTimbrar As Boolean = True
- If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then
- 'si tiene anticipos seleccionados y el total es cero, que no se timbre(previo empresa72)
- If LblAmortizacion.Text.ToDouble > 0 And TxtTotal.Text.ToDouble <= 0 Then
- DebeTimbrar = False
- End If
- End If
+ Dim DebeTimbrar As Boolean = True
+ If UsuarioActual.CveEmpresa.Contiene(1, 72, 80) Then
+ 'si tiene anticipos seleccionados y el total es cero, que no se timbre(previo empresa72)
+ If LblAmortizacion.Text.ToDouble > 0 And TxtTotal.Text.ToDouble <= 0 Then
+ DebeTimbrar = False
+ End If
+ End If
- 'Si es AMORTIZACIÓN ANTICIPO SOBRE FACTURA EN CERO no debe timbrar
- If DdlTipoAmortizacionAnticipo.SelectedValue = "3" Then
- DebeTimbrar = False
- End If
+ 'Si es AMORTIZACIÓN ANTICIPO SOBRE FACTURA EN CERO no debe timbrar
+ If DdlTipoAmortizacionAnticipo.SelectedValue = "3" Then
+ DebeTimbrar = False
+ End If
- If UsuarioActual.TienePermisoProceso(335) Then
- DebeTimbrar = False
- End If
+ If UsuarioActual.TienePermisoProceso(335) Then
+ DebeTimbrar = False
+ End If
- If DebeTimbrar AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Egs", "Ant", "Dev") Then
- If UsuarioActual.Empresa.TipoFacturacion = "CFDi" AndAlso (UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1) Then
+ If DebeTimbrar AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Egs", "Ant", "Dev") Then
+ If UsuarioActual.Empresa.TipoFacturacion = "CFDi" AndAlso (UsuarioActual.Empresa.FacturaProduccion OrElse UsuarioActual.CveEmpresa = 1) Then
- 'FACTURA INGRESO/EGRESO
- Dim FM As New Modelos.FemsaFactura
- Dim TmpDT7Eleven As New DataTable
- Dim TmpDTComplementosTimbrado As New DataTable
+ 'FACTURA INGRESO/EGRESO
+ Dim FM As New Modelos.FemsaFactura
+ Dim TmpDT7Eleven As New DataTable
+ Dim TmpDTComplementosTimbrado As New DataTable
- If AplicaFEMSA Then
- PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado)
- End If
+ If AplicaFEMSA Then
+ PrepararTimbrado(FM, TmpDT7Eleven, TmpDTComplementosTimbrado)
+ End If
- Dim ObjTimbrado As New Timbrado
- SeTimbro = ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura)
- Dim FolioFiscalFactura As String = ObjTimbrado.UUID
- Dim MsgErrorTimbrado = ObjTimbrado.MensajeErrorCFDI
- ObjTimbrado = Nothing
+ Dim ObjTimbrado As New Timbrado
+ SeTimbro = ObjTimbrado.TimbrarFactura(UsuarioActual, ObjFactura)
+ Dim FolioFiscalFactura As String = ObjTimbrado.UUID
+ Dim MsgErrorTimbrado = ObjTimbrado.MensajeErrorCFDI
+ ObjTimbrado = Nothing
- 'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
- If DebeTimbrar AndAlso ListaNotasCreditoGeneradas.Count > 0 Then
- Try
- For Each NCGenerada In ListaNotasCreditoGeneradas
- If NCGenerada.Timbre IsNot Nothing Then
- NCGenerada.Timbre.CFDIRelacionados.UUID.Clear()
- NCGenerada.Timbre.CFDIRelacionados.UUID.Add(FolioFiscalFactura)
+ 'NOTA DE CREDITO - REFACTURADA - CASO ESPECIAL, TIMBRADO E IMPRESION
+ If DebeTimbrar AndAlso ListaNotasCreditoGeneradas.Count > 0 Then
+ Try
+ For Each NCGenerada In ListaNotasCreditoGeneradas
+ If NCGenerada.Timbre IsNot Nothing Then
+ NCGenerada.Timbre.CFDIRelacionados.UUID.Clear()
+ NCGenerada.Timbre.CFDIRelacionados.UUID.Add(FolioFiscalFactura)
- Dim ObjTimbradoNC As New Timbrado
- Dim TimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, NCGenerada)
+ Dim ObjTimbradoNC As New Timbrado
+ Dim TimbroNC = ObjTimbradoNC.TimbrarFactura(UsuarioActual, NCGenerada)
- If Not TimbroNC Then
- Alert(ObjTimbradoNC.MensajeErrorCFDI, TipoMensaje.MsgError)
- End If
- ObjTimbradoNC = Nothing
- End If
- Next
- Catch ex As Exception
- OnError("Ocurrió un error al timbrar la NC.", ex)
- End Try
-
- End If
-
- If SeTimbro AndAlso ObjFactura.TipoDocto.Contiene("Ing") Then
- EstatusSMS = EnviarSMSTimbrado(ObjEventos)
- End If
-
- If Not SeTimbro Then
- Alert(MsgErrorTimbrado, TipoMensaje.MsgError)
- End If
-
- 'CANCELAR FACTURA ANTERIOR
- If SeTimbro AndAlso (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
- If Me.ObjFacturaNC IsNot Nothing Then
- Me.ObjFacturaNC.CveEstatusRefacturacion = 2 'MARCAR COMO REFACTURADA
- MsgCancelacionRefacturacion = Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, FolioFiscalFactura)
+ If Not TimbroNC Then
+ Alert(ObjTimbradoNC.MensajeErrorCFDI, TipoMensaje.MsgError)
End If
+ ObjTimbradoNC = Nothing
End If
- End If
- End If
+ Next
+ Catch ex As Exception
+ OnError("Ocurrió un error al timbrar la NC.", ex)
+ End Try
End If
- 'VERIFICAR 100% AVANCE A IMPORTE Y CANTIDAD
- If ObjFactura.TipoDocto.Contiene("Ing", "Ant") AndAlso CveContrato > 0 Then
- If ObjContr.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
+ If SeTimbro AndAlso ObjFactura.TipoDocto.Contiene("Ing") Then
+ EstatusSMS = EnviarSMSTimbrado(ObjEventos)
+ End If
- If ObjContr.DtResultados.Rows.Count > 0 Then
+ If Not SeTimbro Then
+ Alert(MsgErrorTimbrado, TipoMensaje.MsgError)
+ End If
-
- 'SI ES FLEXIBLE QUE NOTIFIQUE EL MONTO MAXIMO, SI NO LO ES QUE NOTIFIQUE EL PORCENTAJE ALCANZADO... FLEXIBLE = 2, NO FLEXIBLE = 1
- If ObjContr.DtResultados.Rows(0)("ModalidadDetalle").ToString() = "1" Then
- Dim PorcentajeAvance As Double = ObjContr.DtResultados.Rows(0)("ContratoAvance").ToString().ToDouble
-
- If PorcentajeAvance >= 100 Then
- EnviarNotificacionAvance(ObjContr.DtResultados.Rows(0)("NumeroContrato").ToString(), ObjContr.DtResultados.Rows(0)("DescripcionContrato").ToString(), ObjContr.DtResultados.Rows(0)("ContratoTipo").ToString(), ObjContr.DtResultados.Rows(0)("NombreComercial").ToString(), ObjContr.DtResultados.Rows(0)("CorreoVendedor").ToString())
- End If
- Else
- Dim MontoMaximo As Double = ObjContr.DtResultados.Rows(0)("ImporteMax").ToString().ToDouble
- Dim Avance As Double = ObjContr.DtResultados.Rows(0)("Avance").ToString().ToDouble
-
- Dim PorcentajeAvance As Double = (Avance / MontoMaximo) * 100
-
- If PorcentajeAvance >= 100 And MontoMaximo > 0 Then
- EnviarNotificacionAvance(ObjContr.DtResultados.Rows(0)("NumeroContrato").ToString(), ObjContr.DtResultados.Rows(0)("DescripcionContrato").ToString(), ObjContr.DtResultados.Rows(0)("ContratoTipo").ToString(), ObjContr.DtResultados.Rows(0)("NombreComercial").ToString(), ObjContr.DtResultados.Rows(0)("CorreoVendedor").ToString(), MontoMaximo)
- End If
- End If
-
- End If
+ 'CANCELAR FACTURA ANTERIOR
+ If SeTimbro AndAlso (Me.CveDevolucion > 0 AndAlso Me.NuevaFactura = 1) Then
+ If Me.ObjFacturaNC IsNot Nothing Then
+ Me.ObjFacturaNC.CveEstatusRefacturacion = 2 'MARCAR COMO REFACTURADA
+ MsgCancelacionRefacturacion = Me.ObjFacturaNC.CancelarPorRefacturacion(Me.ObjFacturaNC.CveMotivoCancelacion, Me.ObjFacturaNC.MotivoCancelacion, FolioFiscalFactura)
End If
End If
+ End If
+ End If
- 'MENSAJE PRINCIPAL
- MensajeAlert.AppendFormat(String.Format("
La {0}: {1} se generó correctamente.
", ObjFactura.TipoDocumento, ObjFactura.SerieFolio))
+ End If
+
+ 'VERIFICAR 100% AVANCE A IMPORTE Y CANTIDAD
+ If ObjFactura.TipoDocto.Contiene("Ing", "Ant") AndAlso CveContrato > 0 Then
+ If ObjContr.GetContratos(CveContrato, UsuarioActual.CveEmpresa) Then
+
+ If ObjContr.DtResultados.Rows.Count > 0 Then
- ' DESCARGA XML - SI SE TIMBRA MANDA CORREO CON FACTURA
- If SeTimbro Then
- Dim ArchivoXML = String.Format("{0}/XML/{1}/{2}.xml", UsuarioActual.Empresa.Ruta, ObjFactura.TipoDocto, ObjFactura.SerieFolio)
- If File.Exists(ArchivoXML) Then
- MensajeAlert.AppendFormat("