|
|
|
|
@@ -5568,6 +5568,17 @@ Partial Class Ventas
|
|
|
|
|
LBFacturarAnticipo.Visible = UsuarioActual.TienePermisoProceso(274)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
'SI ES COMPLEMENTARIA, NO DEBE PERMITIR FACTURAR
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(706) = "1" AndAlso DbRowVenta("TipoContable").ToString() <> "-1" Then
|
|
|
|
|
If DbRowVenta("TipoContable").ToString() = "0" Then
|
|
|
|
|
BtnsFacturar.Visible = False
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
TrTipoContable.Visible = True
|
|
|
|
|
DdlTipoContable.SelectedValueExist(DbRowVenta("TipoContable").ToString())
|
|
|
|
|
DdlTipoContable.Enabled = False
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If DbRowVenta("TipoDocto").ToString().Contiene("Cot", "Pd2") Then
|
|
|
|
|
@@ -9115,10 +9126,13 @@ Partial Class Ventas
|
|
|
|
|
Dim Archivo As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.rdlc", UsuarioActual.Empresa.Ruta))
|
|
|
|
|
Dim Archivo2 As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.rdlc", UsuarioActual.Empresa.Ruta))
|
|
|
|
|
|
|
|
|
|
Dim ArchivoSti As New System.IO.FileInfo(String.Format("{0}Formatos/Factura.mrt", UsuarioActual.Empresa.Ruta))
|
|
|
|
|
Dim ArchivoSti2 As New System.IO.FileInfo(String.Format("{0}Formatos/Remision.mrt", UsuarioActual.Empresa.Ruta))
|
|
|
|
|
|
|
|
|
|
LnkImprimir.Visible = False
|
|
|
|
|
|
|
|
|
|
'If (UsuarioActual.CveEmpresa.Contiene(1, 4, 5, 7, 11, 12, 72, 80, 81, 83) And UsuarioActual.CveUsuario = 100) Or UsuarioActual.CveEmpresa.Contiene(80, 83) Or UsuarioActual.CveUsuario = 100 Then
|
|
|
|
|
If (Archivo.Exists Or Archivo2.Exists) And IfNull(CveVenta, 0).ToString().ToEntero() > 0 Then
|
|
|
|
|
If (Archivo.Exists Or Archivo2.Exists Or ArchivoSti.Exists Or ArchivoSti2.Exists) And IfNull(CveVenta, 0).ToString().ToEntero() > 0 Then
|
|
|
|
|
HplDownPDF.Visible = True
|
|
|
|
|
HplDownPDF.NavigateUrl = String.Format("/Compras/PopUpVerFactura.aspx?P={0}", Encripta(String.Format("OP=VTA&CVEVENTA={0}&PAG=1&GUARDAR=1", CveVenta)))
|
|
|
|
|
If UsuarioActual.CveRol = 1 Then
|
|
|
|
|
@@ -12640,7 +12654,13 @@ Partial Class Ventas
|
|
|
|
|
tCveTipoPoliza = 1 ' que sea siempre ingreso.
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
factura.CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardarVenta", factura.CvePlantillaPoliza, factura.Total, factura.Total, factura.CveMoneda, factura.Fecha, If(CveEmpresaCRM > 0, LblEmpresaCRM.Text, factura.Cliente.Nombre), factura.CveUsuario, factura.CveEmpresa, CveTipoPoliza:=tCveTipoPoliza)
|
|
|
|
|
Dim TipoContable As Integer = -1
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(706) = "1" AndAlso factura.TipoDocto = "Rem" Then
|
|
|
|
|
'1-Contable, 0-Complementaria
|
|
|
|
|
TipoContable = DdlTipoContable.SelectedValue.ToEntero()
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
factura.CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardarVenta", factura.CvePlantillaPoliza, factura.Total, factura.Total, factura.CveMoneda, factura.Fecha, If(CveEmpresaCRM > 0, LblEmpresaCRM.Text, factura.Cliente.Nombre), factura.CveUsuario, factura.CveEmpresa, CveTipoPoliza:=tCveTipoPoliza, TipoContable:=TipoContable)
|
|
|
|
|
|
|
|
|
|
Dim RFCReceptor As String = ""
|
|
|
|
|
|
|
|
|
|
@@ -13126,7 +13146,7 @@ Partial Class Ventas
|
|
|
|
|
|
|
|
|
|
If ErrorList.Count = 0 Then
|
|
|
|
|
'prepoliza
|
|
|
|
|
GuardarVentaPrePolizas(ObjConta, factura, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario)
|
|
|
|
|
GuardarVentaPrePolizas(ObjConta, factura, TmpDTDetalle, CveNCaVincular, objContPaqi, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario, TipoContable:=TipoContable)
|
|
|
|
|
If ErrorList.Count = 0 Then
|
|
|
|
|
|
|
|
|
|
'INVENTARIOS
|
|
|
|
|
@@ -13161,7 +13181,7 @@ Partial Class Ventas
|
|
|
|
|
Private Sub GuardarVentaPrePolizas(ByRef ObjConta As ClsContabilidad, factura As Modelos.Factura, TmpDTDetalleMovimientos As DataTable, CveNCaVincular As Integer,
|
|
|
|
|
ByRef objContPaqi As ClsContPAQi, Optional ByRef ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing,
|
|
|
|
|
ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False,
|
|
|
|
|
Optional ValorMultiplicador As Integer = 1, Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing)
|
|
|
|
|
Optional ValorMultiplicador As Integer = 1, Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing, Optional TipoContable As Integer = -1)
|
|
|
|
|
|
|
|
|
|
Dim CveIE As Integer = -1
|
|
|
|
|
Dim DT As DataTable = Nothing
|
|
|
|
|
@@ -13180,7 +13200,7 @@ Partial Class Ventas
|
|
|
|
|
If DdlTipoComprobante.SelectedValue <> "Cot" Then
|
|
|
|
|
If factura.CvePrePoliza > 0 Then
|
|
|
|
|
|
|
|
|
|
If ProcesoPrepolizas(ObjConta, factura, CveIE, TmpDTDetalleMovimientos, objContPaqi, ValorMultiplicador, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario) Then
|
|
|
|
|
If ProcesoPrepolizas(ObjConta, factura, CveIE, TmpDTDetalleMovimientos, objContPaqi, ValorMultiplicador, ObjBancos, ObjVentas, ObjEventos:=ObjEventos, EsNCAmortizacion:=EsNCAmortizacion, NCDescuento:=NCDescuento, ListaNCDescuento:=ListaNCDescuento, ObjInventario:=ObjInventario, TipoContable:=TipoContable) Then
|
|
|
|
|
ErrorList.Add("Ocurrió un error al agregar los Movimientos de la prepoliza.<br />Revise su factura y cualquier detalle comuníquese a Soporte Técnico")
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
@@ -13192,7 +13212,7 @@ Partial Class Ventas
|
|
|
|
|
Private Function ProcesoPrepolizas(ByRef ObjConta As ClsContabilidad, ObjFactura As Modelos.Factura, CveIE As Integer, TmpDTDetalle As DataTable, ByRef objContPaqi As ClsContPAQi,
|
|
|
|
|
Optional ValorMultiplicador As Integer = 1, ByRef Optional ObjBancos As ClsBancos = Nothing, ByRef Optional ObjVentas As ClsVentas = Nothing,
|
|
|
|
|
ByRef Optional ObjEventos As ClsOIEventos = Nothing, Optional EsNCAmortizacion As Boolean = False, Optional NCDescuento As Boolean = False,
|
|
|
|
|
Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing) As Boolean
|
|
|
|
|
Optional ListaNCDescuento As List(Of Modelos.Factura) = Nothing, Optional ObjInventario As ClsInventarios = Nothing, Optional TipoContable As Integer = -1) As Boolean
|
|
|
|
|
Try
|
|
|
|
|
Dim DT As DataTable
|
|
|
|
|
Dim CvePlantilaPoliza As Integer
|
|
|
|
|
@@ -13343,8 +13363,13 @@ Partial Class Ventas
|
|
|
|
|
End If
|
|
|
|
|
IdCtaContableCliente = IdCtaContable
|
|
|
|
|
|
|
|
|
|
If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 190, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
|
|
|
|
|
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 193, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
|
|
|
|
|
Dim ContabilizableRem As Boolean = False
|
|
|
|
|
If TipoContable <> -1 Then
|
|
|
|
|
ContabilizableRem = True
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 190, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=ContabilizableRem, CveSubProyecto:=CveSubProyectoContabilizar) Then
|
|
|
|
|
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 193, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), Contabilizable:=ContabilizableRem, CveSubProyecto:=CveSubProyectoContabilizar) Then
|
|
|
|
|
ErrorPrepoliza = True
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
@@ -16523,189 +16548,194 @@ Partial Class Ventas
|
|
|
|
|
#End Region
|
|
|
|
|
|
|
|
|
|
#Region "I M A G E - B U T T O N S"
|
|
|
|
|
Protected Function CancelarFactura(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjAC As ClsContPAQi, ByRef ObjBancos As ClsBancos) As Boolean
|
|
|
|
|
Dim IDPoliza As Integer = -1
|
|
|
|
|
Dim CvePrePoliza As Integer
|
|
|
|
|
Dim CvePlantillaPoliza As Integer
|
|
|
|
|
'Protected Function CancelarFactura(ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, ByRef ObjAC As ClsContPAQi, ByRef ObjBancos As ClsBancos) As Boolean
|
|
|
|
|
' Dim IDPoliza As Integer = -1
|
|
|
|
|
' Dim CvePrePoliza As Integer
|
|
|
|
|
' Dim CvePlantillaPoliza As Integer
|
|
|
|
|
|
|
|
|
|
Dim ErrorCancelar As Boolean = False
|
|
|
|
|
Dim Mensaje As String = ""
|
|
|
|
|
' Dim ErrorCancelar As Boolean = False
|
|
|
|
|
' Dim Mensaje As String = ""
|
|
|
|
|
|
|
|
|
|
Try
|
|
|
|
|
ObjFacturaDevolucion.TipoDocto = ObjFactura.TipoDocto
|
|
|
|
|
' Try
|
|
|
|
|
' ObjFacturaDevolucion.TipoDocto = ObjFactura.TipoDocto
|
|
|
|
|
|
|
|
|
|
If ObjFacturaDevolucion.TipoDocto.Contiene("Egs", "Dev") Then
|
|
|
|
|
CvePlantillaPoliza = 7
|
|
|
|
|
ElseIf ObjFacturaDevolucion.TipoDocto.Contiene("Ing", "Rem", "Ant") Then
|
|
|
|
|
CvePlantillaPoliza = 4
|
|
|
|
|
End If
|
|
|
|
|
' Dim TipoContable As Integer = -1
|
|
|
|
|
' If ObjFacturaDevolucion.TipoDocto.Contiene("Egs", "Dev") Then
|
|
|
|
|
' CvePlantillaPoliza = 7
|
|
|
|
|
' ElseIf ObjFacturaDevolucion.TipoDocto.Contiene("Ing", "Rem", "Ant") Then
|
|
|
|
|
' CvePlantillaPoliza = 4
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
' If UsuarioActual.Empresa.Funcionalidad(706) = "1" AndAlso Then
|
|
|
|
|
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardaEstatus", CvePlantillaPoliza, TxtTotal.Text.ToDouble, TxtTotal.Text.Replace(",", "").ToDouble, DdlMoneda.SelectedValue.ToEntero(), Now, NombreCliente, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
|
ObjFacturaDevolucion.CveVenta = CveVenta
|
|
|
|
|
ObjFacturaDevolucion.CvePrePoliza = CvePrePoliza
|
|
|
|
|
' CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardaEstatus", CvePlantillaPoliza, TxtTotal.Text.ToDouble, TxtTotal.Text.Replace(",", "").ToDouble, DdlMoneda.SelectedValue.ToEntero(), Now, NombreCliente, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
|
' ObjFacturaDevolucion.CveVenta = CveVenta
|
|
|
|
|
' ObjFacturaDevolucion.CvePrePoliza = CvePrePoliza
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If NuevaFactura = 1 AndAlso UsuarioActual.TienePermisoProceso(222) Then
|
|
|
|
|
If ObjVentas.GetVentaDetalle(ObjFacturaDevolucion.CveVenta) Then
|
|
|
|
|
TmpDT = ObjVentas.DtResultados
|
|
|
|
|
TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
|
|
|
|
|
TmpDT.Columns.Add("TieneProntoPago", GetType(String))
|
|
|
|
|
TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
|
|
|
|
|
End If
|
|
|
|
|
ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFacturaDevolucion, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFacturaDevolucion, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
End If
|
|
|
|
|
' If NuevaFactura = 1 AndAlso UsuarioActual.TienePermisoProceso(222) Then
|
|
|
|
|
' If ObjVentas.GetVentaDetalle(ObjFacturaDevolucion.CveVenta) Then
|
|
|
|
|
' TmpDT = ObjVentas.DtResultados
|
|
|
|
|
' TmpDT.Columns.Add("CveVentaDetalleRNC", GetType(Integer))
|
|
|
|
|
' TmpDT.Columns.Add("TieneProntoPago", GetType(String))
|
|
|
|
|
' TmpDT.Columns.Add("ImporteProntoPago", GetType(Decimal))
|
|
|
|
|
' End If
|
|
|
|
|
' ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFacturaDevolucion, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFacturaDevolucion, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If Not ErrorCancelar Then
|
|
|
|
|
ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFacturaDevolucion, -1)
|
|
|
|
|
End If
|
|
|
|
|
' If Not ErrorCancelar Then
|
|
|
|
|
' ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFacturaDevolucion, -1)
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If CveEstatus = 4 Then
|
|
|
|
|
' If CveEstatus = 4 Then
|
|
|
|
|
|
|
|
|
|
If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta, IDPoliza) Then
|
|
|
|
|
Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
' If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta, IDPoliza) Then
|
|
|
|
|
' Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
'Si se está mandando a Cancelada SAT
|
|
|
|
|
ElseIf CveEstatus = 5 Then
|
|
|
|
|
' 'Si se está mandando a Cancelada SAT
|
|
|
|
|
' ElseIf CveEstatus = 5 Then
|
|
|
|
|
|
|
|
|
|
Dim DT As DataTable = Nothing
|
|
|
|
|
' Dim DT As DataTable = Nothing
|
|
|
|
|
|
|
|
|
|
If FolioFiscal = "" Then
|
|
|
|
|
Dim XmlDoc As New XmlDocument
|
|
|
|
|
XmlDoc.Load(Ruta & "XML\" & DdlTipoComprobante.SelectedValue & "\" & VentaFolio & ".xml")
|
|
|
|
|
ViewState("FolioFiscal") = XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText
|
|
|
|
|
End If
|
|
|
|
|
' If FolioFiscal = "" Then
|
|
|
|
|
' Dim XmlDoc As New XmlDocument
|
|
|
|
|
' XmlDoc.Load(Ruta & "XML\" & DdlTipoComprobante.SelectedValue & "\" & VentaFolio & ".xml")
|
|
|
|
|
' ViewState("FolioFiscal") = XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
Dim ObjCancelacion As New Timbrado
|
|
|
|
|
' Dim ObjCancelacion As New Timbrado
|
|
|
|
|
|
|
|
|
|
Dim Total As Decimal = TxtTotal.Text.ToDecimal
|
|
|
|
|
Dim RFCReceptor As String = HdnRFCVenta.Value
|
|
|
|
|
' Dim Total As Decimal = TxtTotal.Text.ToDecimal
|
|
|
|
|
' Dim RFCReceptor As String = HdnRFCVenta.Value
|
|
|
|
|
|
|
|
|
|
If Not ObjVentas.UpdateEstatusFactura(13, FolioFiscal, "", Now, CveVenta, IDPoliza) Then 'Marcamos la factura como refacturada, si no se cancelo en el SAT el estatus nos dejara cancelarla despues
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
Dim RespCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC)
|
|
|
|
|
If RespCancelacion.Verificado Then
|
|
|
|
|
'falta verificar traer el acuse y reenviarlo
|
|
|
|
|
' If Not ObjVentas.UpdateEstatusFactura(13, FolioFiscal, "", Now, CveVenta, IDPoliza) Then 'Marcamos la factura como refacturada, si no se cancelo en el SAT el estatus nos dejara cancelarla despues
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
' Dim RespCancelacion = ObjCancelacion.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC)
|
|
|
|
|
' If RespCancelacion.Verificado Then
|
|
|
|
|
' 'falta verificar traer el acuse y reenviarlo
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then
|
|
|
|
|
Dim IDMPoliza As Modelos.RetornoPolizaConta = GenerarPolizaAC(ObjAC, ObjFacturaDevolucion, True)
|
|
|
|
|
IDPoliza = IDMPoliza.IdPoliza
|
|
|
|
|
If IDMPoliza.IdPoliza <= 0 Then
|
|
|
|
|
Mensaje = "No se pudo generar la poliza"
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
' If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then
|
|
|
|
|
' Dim IDMPoliza As Modelos.RetornoPolizaConta = GenerarPolizaAC(ObjAC, ObjFacturaDevolucion, True)
|
|
|
|
|
' IDPoliza = IDMPoliza.IdPoliza
|
|
|
|
|
' If IDMPoliza.IdPoliza <= 0 Then
|
|
|
|
|
' Mensaje = "No se pudo generar la poliza"
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If Not ErrorCancelar Then
|
|
|
|
|
If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, CveVenta, IDPoliza, CvePAC:=UsuarioActual.Empresa.CvePAC) Then
|
|
|
|
|
Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
' If Not ErrorCancelar Then
|
|
|
|
|
' If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, ObjCancelacion.CancelacionAcuse, Now, CveVenta, IDPoliza, CvePAC:=UsuarioActual.Empresa.CvePAC) Then
|
|
|
|
|
' Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
' End If
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
ObjCancelacion = Nothing
|
|
|
|
|
' ObjCancelacion = Nothing
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
Catch ex As Exception
|
|
|
|
|
GuardaLog("CancelF." & ex.ToString())
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End Try
|
|
|
|
|
' End If
|
|
|
|
|
' Catch ex As Exception
|
|
|
|
|
' GuardaLog("CancelF." & ex.ToString())
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End Try
|
|
|
|
|
|
|
|
|
|
Return Not ErrorCancelar
|
|
|
|
|
End Function
|
|
|
|
|
Protected Function CancelarFactura2(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, ObjAC As ClsContPAQi, ObjBancos As ClsBancos) As Boolean
|
|
|
|
|
' Return Not ErrorCancelar
|
|
|
|
|
'End Function
|
|
|
|
|
'Protected Function CancelarFactura2(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, ObjAC As ClsContPAQi, ObjBancos As ClsBancos) As Boolean
|
|
|
|
|
|
|
|
|
|
Dim IDPoliza As Integer = -1
|
|
|
|
|
Dim CvePrePoliza As Integer
|
|
|
|
|
Dim CvePlantillaPoliza As Integer
|
|
|
|
|
' Dim IDPoliza As Integer = -1
|
|
|
|
|
' Dim CvePrePoliza As Integer
|
|
|
|
|
' Dim CvePlantillaPoliza As Integer
|
|
|
|
|
|
|
|
|
|
Dim ErrorCancelar As Boolean = False
|
|
|
|
|
Dim Mensaje As String = ""
|
|
|
|
|
' Dim ErrorCancelar As Boolean = False
|
|
|
|
|
' Dim Mensaje As String = ""
|
|
|
|
|
|
|
|
|
|
CreaObjetosVenta()
|
|
|
|
|
' CreaObjetosVenta()
|
|
|
|
|
|
|
|
|
|
If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
|
|
|
|
CvePlantillaPoliza = 7
|
|
|
|
|
ElseIf ObjFactura.TipoDocto.Contiene("Ing", "Rem") Then
|
|
|
|
|
CvePlantillaPoliza = 4
|
|
|
|
|
End If
|
|
|
|
|
' If ObjFactura.TipoDocto.Contiene("Egs", "Dev") Then
|
|
|
|
|
' CvePlantillaPoliza = 7
|
|
|
|
|
' ElseIf ObjFactura.TipoDocto.Contiene("Ing", "Rem") Then
|
|
|
|
|
' CvePlantillaPoliza = 4
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardaEstatus", CvePlantillaPoliza, TxtTotal.Text.ToDouble, TxtTotal.Text.Replace(",", "").ToDouble, DdlMoneda.SelectedValue.ToEntero(), Now, NombreCliente, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
|
ObjFactura.CveVenta = CveVenta
|
|
|
|
|
ObjFactura.CvePrePoliza = CvePrePoliza
|
|
|
|
|
' CvePrePoliza = ObjConta.AddPrePolizas("Ventas/GuardaEstatus", CvePlantillaPoliza, TxtTotal.Text.ToDouble, TxtTotal.Text.Replace(",", "").ToDouble, DdlMoneda.SelectedValue.ToEntero(), Now, NombreCliente, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
|
|
|
' ObjFactura.CveVenta = CveVenta
|
|
|
|
|
' ObjFactura.CvePrePoliza = CvePrePoliza
|
|
|
|
|
|
|
|
|
|
If HplSaldoAuxiliar.Text.ToDecimal > 0 Then
|
|
|
|
|
ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFactura, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
End If
|
|
|
|
|
' If HplSaldoAuxiliar.Text.ToDecimal > 0 Then
|
|
|
|
|
' ErrorCancelar = ProcesoPrepolizas(ObjConta, ObjFactura, -1, TmpDT, ObjAC, -1, ObjBancos, ObjVentas)
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If Not ErrorCancelar Then
|
|
|
|
|
ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFactura, -1)
|
|
|
|
|
End If
|
|
|
|
|
' If Not ErrorCancelar Then
|
|
|
|
|
' ErrorCancelar = GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFactura, -1)
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If CveEstatus = 4 Then
|
|
|
|
|
' If CveEstatus = 4 Then
|
|
|
|
|
|
|
|
|
|
If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta, IDPoliza) Then
|
|
|
|
|
Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
' If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, "", Now, CveVenta, IDPoliza) Then
|
|
|
|
|
' Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
'Si se está mandando a Cancelada SAT
|
|
|
|
|
ElseIf CveEstatus = 5 Then
|
|
|
|
|
' 'Si se está mandando a Cancelada SAT
|
|
|
|
|
' ElseIf CveEstatus = 5 Then
|
|
|
|
|
|
|
|
|
|
Dim DT As DataTable = Nothing
|
|
|
|
|
' Dim DT As DataTable = Nothing
|
|
|
|
|
|
|
|
|
|
If FolioFiscal = "" Then
|
|
|
|
|
Dim XmlDoc As New XmlDocument
|
|
|
|
|
XmlDoc.Load(Ruta & "XML\" & DdlTipoComprobante.SelectedValue & "\" & VentaFolio & ".xml")
|
|
|
|
|
ViewState("FolioFiscal") = XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText
|
|
|
|
|
End If
|
|
|
|
|
' If FolioFiscal = "" Then
|
|
|
|
|
' Dim XmlDoc As New XmlDocument
|
|
|
|
|
' XmlDoc.Load(Ruta & "XML\" & DdlTipoComprobante.SelectedValue & "\" & VentaFolio & ".xml")
|
|
|
|
|
' ViewState("FolioFiscal") = XmlDoc.DocumentElement("cfdi:Complemento").FirstChild.Attributes("UUID").InnerText
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
'Si es cancelar en el SAT:
|
|
|
|
|
Dim CFDi As New ClbNegBICFDv3_2.ClsNegEDI
|
|
|
|
|
Dim Respuesta As New ClbNegBICFDv3_2.ClsNegRespuesta
|
|
|
|
|
Respuesta = CFDi.CancelaCFdi(UsuarioActual.Empresa.BIUsuario, UsuarioActual.Empresa.BIContraseña, Ruta & "Certificados\" & UsuarioActual.Empresa.ArchivoPfx, UsuarioActual.Empresa.ContraseñaKey, UsuarioActual.Empresa.RFC, FolioFiscal, "http://208.43.160.178/srvCFDi/service1.asmx")
|
|
|
|
|
' 'Si es cancelar en el SAT:
|
|
|
|
|
' Dim CFDi As New ClbNegBICFDv3_2.ClsNegEDI
|
|
|
|
|
' Dim Respuesta As New ClbNegBICFDv3_2.ClsNegRespuesta
|
|
|
|
|
' Respuesta = CFDi.CancelaCFdi(UsuarioActual.Empresa.BIUsuario, UsuarioActual.Empresa.BIContraseña, Ruta & "Certificados\" & UsuarioActual.Empresa.ArchivoPfx, UsuarioActual.Empresa.ContraseñaKey, UsuarioActual.Empresa.RFC, FolioFiscal, "http://208.43.160.178/srvCFDi/service1.asmx")
|
|
|
|
|
|
|
|
|
|
If Respuesta Is Nothing Then
|
|
|
|
|
'Alert("La factura no se pudo cancelar. <br />Posbiles causas:<br /> - Los servicios del SAT están ocupados.<br /> - El Folio Fiscal no ha quedado registrado.", TipoMensaje.MsgError)
|
|
|
|
|
Me.GuardaLog(CFDi.MsgError)
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
Mensaje = "La factura no se pudo cancelar. <br />Posbiles causas:<br /> - Los servicios del SAT están ocupados.<br /> - El Folio Fiscal no ha quedado registrado."
|
|
|
|
|
ElseIf Respuesta.NoCertificadoSAT <> String.Empty Then
|
|
|
|
|
' If Respuesta Is Nothing Then
|
|
|
|
|
' 'Alert("La factura no se pudo cancelar. <br />Posbiles causas:<br /> - Los servicios del SAT están ocupados.<br /> - El Folio Fiscal no ha quedado registrado.", TipoMensaje.MsgError)
|
|
|
|
|
' Me.GuardaLog(CFDi.MsgError)
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' Mensaje = "La factura no se pudo cancelar. <br />Posbiles causas:<br /> - Los servicios del SAT están ocupados.<br /> - El Folio Fiscal no ha quedado registrado."
|
|
|
|
|
' ElseIf Respuesta.NoCertificadoSAT <> String.Empty Then
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then
|
|
|
|
|
Dim IDMPoliza As Modelos.RetornoPolizaConta = GenerarPolizaAC(ObjAC, ObjFacturaDevolucion, True)
|
|
|
|
|
IDPoliza = IDMPoliza.IdPoliza
|
|
|
|
|
If IDMPoliza.IdPoliza <= 0 Then
|
|
|
|
|
Mensaje = "No se pudo generar la poliza"
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
' If UsuarioActual.Empresa.TipoContabilidad = 2 AndAlso UsuarioActual.Empresa.UsaAC Then
|
|
|
|
|
' Dim IDMPoliza As Modelos.RetornoPolizaConta = GenerarPolizaAC(ObjAC, ObjFacturaDevolucion, True)
|
|
|
|
|
' IDPoliza = IDMPoliza.IdPoliza
|
|
|
|
|
' If IDMPoliza.IdPoliza <= 0 Then
|
|
|
|
|
' Mensaje = "No se pudo generar la poliza"
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
If Not ErrorCancelar Then
|
|
|
|
|
If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, Respuesta.NoCertificadoSAT, Respuesta.FechaTimbrado, CveVenta, IDPoliza) Then
|
|
|
|
|
Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
Else
|
|
|
|
|
ErrorCancelar = True
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
' If Not ErrorCancelar Then
|
|
|
|
|
' If ObjVentas.UpdateEstatusFactura(CveEstatus, FolioFiscal, Respuesta.NoCertificadoSAT, Respuesta.FechaTimbrado, CveVenta, IDPoliza) Then
|
|
|
|
|
' Mensaje = "El nuevo estatus se guardó correctamente"
|
|
|
|
|
' Else
|
|
|
|
|
' ErrorCancelar = True
|
|
|
|
|
' End If
|
|
|
|
|
' End If
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
End If
|
|
|
|
|
' End If
|
|
|
|
|
|
|
|
|
|
Return Not ErrorCancelar
|
|
|
|
|
End Function
|
|
|
|
|
' Return Not ErrorCancelar
|
|
|
|
|
'End Function
|
|
|
|
|
|
|
|
|
|
Protected Sub ImgBtnAddC_Click(sender As Object, e As ImageClickEventArgs) Handles ImgBtnAddC.Click
|
|
|
|
|
Dim Row As DataRow = Nothing
|
|
|
|
|
@@ -17120,6 +17150,10 @@ Partial Class Ventas
|
|
|
|
|
tdFechaVigencia.Visible = DdlTipoComprobante.SelectedValue.Contiene("Cot")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
If UsuarioActual.Empresa.Funcionalidad(706) = "1" AndAlso (CveVenta <= 0 OrElse EsCreaApartirDe) AndAlso DdlTipoComprobante.SelectedValue.Contiene("Rem") Then
|
|
|
|
|
TrTipoContable.Visible = True
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
Updatetabs.Update()
|
|
|
|
|
UPCondicionesPago.Update()
|
|
|
|
|
UpCliente.Update()
|
|
|
|
|
@@ -19818,6 +19852,7 @@ Partial Class Ventas
|
|
|
|
|
If Not OcurrioError AndAlso RemisionesLista.Count > 0 AndAlso DtRemConceptosSurtidos IsNot Nothing Then
|
|
|
|
|
If DtRemConceptosSurtidos.SUMD("Surtido") <> DtRemConceptosSurtidos.SUMD("Cantidad") Then
|
|
|
|
|
OcurrioError = True
|
|
|
|
|
Alert("Lo facturado no coincide con lo surtido en inventario", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
End If
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
|