|
|
|
|
@@ -14837,8 +14837,9 @@ Partial Class Ventas
|
|
|
|
|
If (CveAlmacenEntrada > 0 AndAlso CveTipoAlmacen <> 1) Or RemisionesLista.Count = 0 Then 'Con remisiones parciales ignoramos las surtidas ya realizadas
|
|
|
|
|
|
|
|
|
|
Dim MovDetalle As New DataTable
|
|
|
|
|
|
|
|
|
|
Dim AplicaMovimientoDetalleEntrada As Boolean = False
|
|
|
|
|
If RemisionesLista.Count > 0 Then
|
|
|
|
|
AplicaMovimientoDetalleEntrada = True
|
|
|
|
|
MovDetalle = CuadrarFacturaMovimientos(DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")} AND TieneSalidaxFactura IS NULL"))
|
|
|
|
|
Else
|
|
|
|
|
MovDetalle = DtMovimientosDetalles.FiltraParametros($"CveMovimiento = {dr("CveMovimiento")}")
|
|
|
|
|
@@ -14847,8 +14848,9 @@ Partial Class Ventas
|
|
|
|
|
If ErrorList.Count = 0 AndAlso MovDetalle.Rows.Count > 0 Then
|
|
|
|
|
Dim CveMovimientoSalidaPorTraspaso As Integer = -1
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
'Le damos salida de apartado por traspaso
|
|
|
|
|
CveMovimientoSalidaPorTraspaso = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 8, CveMoneda, CveRemision)
|
|
|
|
|
CveMovimientoSalidaPorTraspaso = GenerarMovimientoAlmacen(ObjInventario, MovDetalle, CveAlmacenSalida, 8, CveMoneda, CveRemision, AplicaMovimientoDetalleEntrada:=AplicaMovimientoDetalleEntrada)
|
|
|
|
|
|
|
|
|
|
If Not CveMovimientoSalidaPorTraspaso > 0 Then
|
|
|
|
|
OcurrioError = True
|
|
|
|
|
@@ -14985,7 +14987,7 @@ Partial Class Ventas
|
|
|
|
|
|
|
|
|
|
Return Not OcurrioError
|
|
|
|
|
End Function
|
|
|
|
|
Private Function GenerarMovimientoAlmacen(ByRef ObjInventario As ClsInventarios, DtMovDetalle As DataTable, CveAlmacen As Integer, ConceptoEntrada As Integer, CveMoneda As Integer, CveVenta As Integer, Optional MovimientoPrePoliza As Boolean = False, Optional ByRef ObjConta As ClsContabilidad = Nothing, Optional CveMovimientoRelacionado As Integer = -1) As Integer
|
|
|
|
|
Private Function GenerarMovimientoAlmacen(ByRef ObjInventario As ClsInventarios, DtMovDetalle As DataTable, CveAlmacen As Integer, ConceptoEntrada As Integer, CveMoneda As Integer, CveVenta As Integer, Optional MovimientoPrePoliza As Boolean = False, Optional ByRef ObjConta As ClsContabilidad = Nothing, Optional CveMovimientoRelacionado As Integer = -1, Optional AplicaMovimientoDetalleEntrada As Boolean = False) As Integer
|
|
|
|
|
Dim OcurrioError As Boolean = False
|
|
|
|
|
Dim ContadorMovtosDetalles = 0
|
|
|
|
|
|
|
|
|
|
@@ -15029,7 +15031,13 @@ Partial Class Ventas
|
|
|
|
|
Exit For
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, SerieLote:=SerieLote, CveVentaDetalle:=CveVentaDetalle) Then
|
|
|
|
|
'CUANDO SEA REMISION FACTURADA DEBE RELACIONAR LOS NUEVOS MOVIMIENTOS POR EL DETALLE
|
|
|
|
|
Dim CveMovimientoDetalleEntrada As Integer = -1
|
|
|
|
|
If AplicaMovimientoDetalleEntrada Then
|
|
|
|
|
CveMovimientoDetalleEntrada = MovDet("CveMovimientoDetalle").ToString.ToEntero
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
If ObjInventario.AddMovimientoDetalle(CveMovimientoInventario, Cantidad, CveUnidad, CveProducto, PU, -1, SerieLote:=SerieLote, CveVentaDetalle:=CveVentaDetalle, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
|
|
|
|
|
ContadorMovtosDetalles += 1
|
|
|
|
|
Else
|
|
|
|
|
OcurrioError = True
|
|
|
|
|
@@ -17555,40 +17563,42 @@ Partial Class Ventas
|
|
|
|
|
|
|
|
|
|
Private Sub LbCancelarDocumento_Click(sender As Object, e As EventArgs) Handles LbCancelarDocumento.Click
|
|
|
|
|
|
|
|
|
|
If VentaSaldoAlmacen <> 0 Then
|
|
|
|
|
Alert("El pedido no se puede cancelar ya que tiene movimientos de almacén.<br/>Nota: Primero hay que hacer la devolución al almacén", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Else
|
|
|
|
|
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then
|
|
|
|
|
Dim sb As New StringBuilder()
|
|
|
|
|
sb.Append("La factura se encuentra en el siguiente estatus del SAT:<br/>")
|
|
|
|
|
'If VentaSaldoAlmacen <> 0 Then
|
|
|
|
|
' Alert("El pedido no se puede cancelar ya que tiene movimientos de almacén.<br/>Nota: Primero hay que hacer la devolución al almacén", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
'Else
|
|
|
|
|
|
|
|
|
|
Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
|
|
|
|
|
Dim RFCReceptor As String = LblRFC.Text.Trim
|
|
|
|
|
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
|
|
|
|
|
If Vigencia IsNot Nothing Then
|
|
|
|
|
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
|
|
|
|
|
Alert("Esta factura no es cancelable.", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
If String.IsNullOrEmpty(Vigencia.EsCancelable) Then
|
|
|
|
|
sb.Append("<b>No encontrado</b> <br/>")
|
|
|
|
|
Else
|
|
|
|
|
sb.AppendFormat("<b>{0}</b> <br/>", Vigencia.EsCancelable)
|
|
|
|
|
End If
|
|
|
|
|
'End If
|
|
|
|
|
|
|
|
|
|
If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Dev", "Egs") Then
|
|
|
|
|
Dim sb As New StringBuilder()
|
|
|
|
|
sb.Append("La factura se encuentra en el siguiente estatus del SAT:<br/>")
|
|
|
|
|
|
|
|
|
|
Dim TotalT As Decimal = TxtTotal.Text.ToDecimal
|
|
|
|
|
Dim RFCReceptor As String = LblRFC.Text.Trim
|
|
|
|
|
Dim Vigencia = Timbrado.VerificarVigenciaSAT(FolioFiscal, UsuarioActual.Empresa.RFC, RFCReceptor, TotalT.ToString(), True)
|
|
|
|
|
If Vigencia IsNot Nothing Then
|
|
|
|
|
If Vigencia.EsCancelable.ToUpper() = "NO CANCELABLE" Then
|
|
|
|
|
Alert("Esta factura no es cancelable.", TipoMensaje.MsgAdvertencia)
|
|
|
|
|
Exit Sub
|
|
|
|
|
End If
|
|
|
|
|
If String.IsNullOrEmpty(Vigencia.EsCancelable) Then
|
|
|
|
|
sb.Append("<b>No encontrado</b> <br/>")
|
|
|
|
|
Else
|
|
|
|
|
sb.Append("<b>No encontrado</b> <br/>")
|
|
|
|
|
sb.AppendFormat("<b>{0}</b> <br/>", Vigencia.EsCancelable)
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
sb.Append("Está seguro de cancelar el documento?.")
|
|
|
|
|
|
|
|
|
|
LblCancelarDocumento.Text = sb.ToString()
|
|
|
|
|
|
|
|
|
|
RegistraScript("$('#ModalCancelarDocumento').modal();")
|
|
|
|
|
UpCancelarDocumento.Update()
|
|
|
|
|
'Alert(sb.ToString(), TipoMensaje.MsgConfirmacion, JSBtnAceptar:="BtnCancelarDocumentoConfirmar()", TextoConfirmacion:=" Si ", TextoCancelacion:=" No ")
|
|
|
|
|
Else
|
|
|
|
|
CancelarDocumento()
|
|
|
|
|
sb.Append("<b>No encontrado</b> <br/>")
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
sb.Append("Está seguro de cancelar el documento?.")
|
|
|
|
|
|
|
|
|
|
LblCancelarDocumento.Text = sb.ToString()
|
|
|
|
|
|
|
|
|
|
RegistraScript("$('#ModalCancelarDocumento').modal();")
|
|
|
|
|
UpCancelarDocumento.Update()
|
|
|
|
|
|
|
|
|
|
Else
|
|
|
|
|
CancelarDocumento()
|
|
|
|
|
End If
|
|
|
|
|
|
|
|
|
|
End Sub
|
|
|
|
|
|