This commit is contained in:
2023-12-02 12:44:25 -07:00
4 changed files with 266 additions and 249 deletions

View File

@@ -4007,7 +4007,7 @@ Partial Class Inventarios_EntradasSalidas
#Region "CAMBIO INVENTARIO FISICO" #Region "CAMBIO INVENTARIO FISICO"
Protected Sub LnkCambioInventarioFisico_Click(sender As Object, e As EventArgs) Protected Sub LnkCambioInventarioFisico_Click(sender As Object, e As EventArgs)
RegistraScript(String.Format("$('#{0}').modal();", "DivModalCambioFisico")) RegistraScript("$('#DivModalCambioFisico').modal({backdrop: 'static', keyboard: false});")
End Sub End Sub
Protected Sub LnkCambioVigencia_Click(sender As Object, e As EventArgs) Protected Sub LnkCambioVigencia_Click(sender As Object, e As EventArgs)
@@ -4438,8 +4438,20 @@ Partial Class Inventarios_EntradasSalidas
Exit Sub Exit Sub
End If End If
Dim ObjInventario As New ClsInventarios Dim CveAlmacen As Integer = DdlAlmacenInventarioFisico.SelectedValue.ToEntero
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) Dim CveModalidad As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveModalidad").ToEntero()
Dim EsContabilizable As Boolean = (CveModalidad = 1)
If CveAlmacen <= 0 Then
Alert("Debe seleccionar un almacen", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
Dim ErrorMovInv As Boolean = False
Dim Mensaje As String = ""
Dim ValorEntrada As Decimal = 0
Dim ValorSalida As Decimal = 0
Dim ImporteConcepto As Decimal = 0
Dim CveMovimientoEntrada As Integer = -1 Dim CveMovimientoEntrada As Integer = -1
Dim FolioEntrada As Integer = -1 Dim FolioEntrada As Integer = -1
@@ -4447,215 +4459,214 @@ Partial Class Inventarios_EntradasSalidas
Dim CveMovimientoSalida As Integer = -1 Dim CveMovimientoSalida As Integer = -1
Dim FolioSalida As Integer = -1 Dim FolioSalida As Integer = -1
Dim ErrorMovInv As Boolean = False
Dim Mensaje As String = ""
Dim ValorEntrada As Decimal = 0
Dim ValorSalida As Decimal = 0
Dim ImporteConcepto As Decimal = 0
Dim tConcepto As String = TxtIFDescripcion.Text.Trim Dim tConcepto As String = TxtIFDescripcion.Text.Trim
Dim Fecha As Date = (TxtFechaInvFisico.Text.ToDate.ToString("yyyy/MM/dd ") & NowADS().ToShortTimeString).ToDate Dim Fecha As Date = (TxtFechaInvFisico.Text.ToDate.ToString("yyyy/MM/dd ") & NowADS().ToShortTimeString).ToDate
Dim tCveSubProyectoEntrada As Integer = -1 Dim tCveSubProyectoEntrada As Integer = -1
Dim tCveSubProyectoSalida As Integer = -1 Dim tCveSubProyectoSalida As Integer = -1
Dim TipoMovto As Boolean = False Dim TipoMovto As Boolean = False
Dim Prorratear As Boolean = If(UsuarioActual.CveEmpresa = 172 AndAlso DtMovimientosSalidaInvFisico.Rows.Count > 0 AndAlso DtMovimientosEntradaInvFisico.Rows.Count > 0, True, False)
Dim ProPU As Decimal = 0
Dim ObjInventario As New ClsInventarios
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Try
Dim CveAlmacen As Integer = DdlAlmacenInventarioFisico.SelectedValue.ToEntero Dim Prorratear As Boolean = If(UsuarioActual.CveEmpresa = 172 AndAlso DtMovimientosSalidaInvFisico.Rows.Count > 0 AndAlso DtMovimientosEntradaInvFisico.Rows.Count > 0, True, False)
Dim CveModalidad As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveModalidad").ToEntero() Dim ProPU As Decimal = 0
Dim EsContabilizable As Boolean = (CveModalidad = 1)
'MOVIMIENTO DE ENTRADA 'MOVIMIENTO DE ENTRADA
If DtMovimientosEntradaInvFisico.Rows.Count > 0 Then If DtMovimientosEntradaInvFisico.Rows.Count > 0 Then
'FolioEntrada = ObjInventario.GetFolioSiguiente(32, UsuarioActual.CveEmpresa) 'FolioEntrada = ObjInventario.GetFolioSiguiente(32, UsuarioActual.CveEmpresa)
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 32, 1, Fecha, FolioEntrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ1") CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacen, 32, 1, Fecha, FolioEntrada, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ1")
FolioEntrada = ObjInventario.Folio FolioEntrada = ObjInventario.Folio
Else
CveMovimientoEntrada = -1
End If
'MOVIMIENTO DE SALIDA
If DtMovimientosSalidaInvFisico.Rows.Count > 0 Then
'FolioSalida = ObjInventario.GetFolioSiguiente(34, UsuarioActual.CveEmpresa)
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacen, 34, 1, Fecha, FolioSalida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveMovimientoRelacionado:=CveMovimientoEntrada, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ2")
FolioSalida = ObjInventario.Folio
End If
'Registro PrePoliza
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/E/S INVENTARIO FISICO", 53, 0, 0, 1, Fecha, TxtIFDescripcion.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
'VALIDA, sino hay registrado ningun movimiento, que no siga
If (CveMovimientoEntrada <= 0 AndAlso CveMovimientoSalida <= 0) Or CvePrePoliza <= 0 Then
Alert("Ocurrió un error al realizar los registros. Por favor verifique y vuelva a intentar", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
ObjInventario.RollBack() 'deshace lo insertado.
ObjInventario.Dispose() 'elimino la instancia
Exit Sub
End If
'VALIDA EXISTENCIAS SALIDA E INSERTA DETALLES
For Each Dr As DataRow In DtMovimientosSalidaInvFisico.Rows
If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1) >= Dr("Cantidad").ToString.ToDouble Then
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
Dr("PU").ToString.ToDecimal.RoundSQL(6), -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
Mensaje = "Ocurrió un error al guardar los movimientos de salida"
ErrorMovInv = True
Exit For
End If
Else Else
Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS")) CveMovimientoEntrada = -1
End If
'MOVIMIENTO DE SALIDA
If DtMovimientosSalidaInvFisico.Rows.Count > 0 Then
'FolioSalida = ObjInventario.GetFolioSiguiente(34, UsuarioActual.CveEmpresa)
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacen, 34, 1, Fecha, FolioSalida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveMovimientoRelacionado:=CveMovimientoEntrada, Observaciones:=TxtIFDescripcion.Text.Trim, Modulo:="ES/AJ2")
FolioSalida = ObjInventario.Folio
End If
'Registro PrePoliza
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/E/S INVENTARIO FISICO", 53, 0, 0, 1, Fecha, TxtIFDescripcion.Text.Trim, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
'VALIDA, sino hay registrado ningun movimiento, que no siga
If (CveMovimientoEntrada <= 0 AndAlso CveMovimientoSalida <= 0) Or CvePrePoliza <= 0 Then
ErrorMovInv = True
Alert("Ocurrió un error al realizar los registros. Por favor verifique y vuelva a intentar", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
ErrorMovInv = True
Exit For
End If End If
Next
If Prorratear Then If Not ErrorMovInv Then
If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then 'VALIDA EXISTENCIAS SALIDA E INSERTA DETALLES
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then For Each Dr As DataRow In DtMovimientosSalidaInvFisico.Rows
If ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenInventarioFisico.SelectedValue.ToEntero, PendientePorSurtir:=1) >= Dr("Cantidad").ToString.ToDouble Then
Dim ProTotalSalida As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2) If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
Dim ProCantidadEntrada As Decimal = DtMovimientosEntradaInvFisico.SUMD("Cantidad", "") Dr("PU").ToString.ToDecimal.RoundSQL(6), -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
ProPU = (ProTotalSalida / ProCantidadEntrada).RoundSQL(10) Mensaje = "Ocurrió un error al guardar los movimientos de salida"
ErrorMovInv = True
If Not ProPU > 0 Then Exit For
End If
Else
Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS"))
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
ErrorMovInv = True ErrorMovInv = True
Mensaje = $"Ocurrió un error al obtener el PU proraterado, pu {ProPU}" Exit For
End If End If
Next
Else If Not ErrorMovInv AndAlso Prorratear Then
ErrorMovInv = True If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then
Mensaje = "Ocurrió un error al obtener el PU proraterado" If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
End If
End If
End If
If Not ErrorMovInv Then Dim ProTotalSalida As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
For Each Dr As DataRow In DtMovimientosEntradaInvFisico.Rows Dim ProCantidadEntrada As Decimal = DtMovimientosEntradaInvFisico.SUMD("Cantidad", "")
ImporteConcepto = If(Prorratear, ProPU, Dr("PU").ToString.ToDecimal)
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
ImporteConcepto, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
Mensaje = "Ocurrió un error al guardar los movimientos de entrada"
ErrorMovInv = True
Exit For
End If
Next
End If
'Obtiene valor entrada ProPU = (ProTotalSalida / ProCantidadEntrada).RoundSQL(10)
If Not ErrorMovInv AndAlso CveMovimientoEntrada > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
ValorEntrada = tValorInventario
Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenInventarioFisico.SelectedValue)) If Not ProPU > 0 Then
If drA2 IsNot Nothing Then ErrorMovInv = True
tCveSubProyectoEntrada = drA2("CveSubProyecto").ToString.ToEntero Mensaje = $"Ocurrió un error al obtener el PU proraterado, pu {ProPU}"
End If End If
Else
ErrorMovInv = True
Mensaje = "Ocurrió un error al validar los movimientos contables de entrada"
End If
End If
'Obtiene valor salida Else
If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then ErrorMovInv = True
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then Mensaje = "Ocurrió un error al obtener el PU proraterado"
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2) End If
ValorSalida = tValorInventario
Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenInventarioFisico.SelectedValue))
If drA2 IsNot Nothing Then
tCveSubProyectoSalida = drA2("CveSubProyecto").ToString.ToEntero
End If
Else
ErrorMovInv = True
Mensaje = "Ocurrió un error al validar los movimientos contables de salida"
End If
End If
If Not ErrorMovInv Then
'NOTA
' cuando el valor entrada sea mayor al de salida, el valor de salida debe de ser negativo y cargado
' cuando el valor salida sea mayor al de entrada, el valor de entrada debe de ser negativo y abonado
'Registro la prepólizaDetalle Entradas
If CveMovimientoEntrada > 0 Then
TipoMovto = False
If ValorEntrada <= ValorSalida Then
TipoMovto = True : ValorEntrada = -ValorEntrada ' invierto su naturaleza
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, ValorEntrada, ValorEntrada, 68, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoEntrada, CveSubProyecto:=tCveSubProyectoEntrada, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de entrada"
End If
End If
'Registro la prepólizaDetalle Salidas
If CveMovimientoSalida > 0 Then
TipoMovto = True
If ValorSalida < ValorEntrada Then
TipoMovto = False : ValorSalida = -ValorSalida ' invierto su naturaleza
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, ValorSalida, ValorSalida, 68, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveSubProyecto:=tCveSubProyectoSalida, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de salida"
End If
End If
If ValorEntrada >= ValorSalida Then
'si el valor entrada es igual al valorsalida, y este sea cero.
If tCveSubProyectoEntrada = -1 Then tCveSubProyectoEntrada = tCveSubProyectoSalida
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorEntrada + ValorSalida, ValorEntrada + ValorSalida, 260, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveSubProyecto:=tCveSubProyectoEntrada, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de ingreso"
End If
ElseIf ValorSalida >= ValorEntrada Then
'inserta el gasto
Dim dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimero("")
Dim tCveClasificacion As Integer = -1
If dr IsNot Nothing Then
tCveClasificacion = dr("CveClasificacion").ToString.ToEntero
End If
If Math.Abs((ValorSalida + ValorEntrada)) <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorSalida + ValorEntrada, ValorSalida + ValorEntrada, 290, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=tCveClasificacion, CveSubProyecto:=tCveSubProyectoSalida, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de salida"
End If End If
End If End If
If Not ErrorMovInv Then
For Each Dr As DataRow In DtMovimientosEntradaInvFisico.Rows
ImporteConcepto = If(Prorratear, ProPU, Dr("PU").ToString.ToDecimal)
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero,
ImporteConcepto, -1, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString,
Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate) Then
Mensaje = "Ocurrió un error al guardar los movimientos de entrada"
ErrorMovInv = True
Exit For
End If
Next
End If
'Obtiene valor entrada
If Not ErrorMovInv AndAlso CveMovimientoEntrada > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoEntrada, UsuarioActual.CveEmpresa) Then
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
ValorEntrada = tValorInventario
Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenInventarioFisico.SelectedValue))
If drA2 IsNot Nothing Then
tCveSubProyectoEntrada = drA2("CveSubProyecto").ToString.ToEntero
End If
Else
ErrorMovInv = True
Mensaje = "Ocurrió un error al validar los movimientos contables de entrada"
End If
End If
'Obtiene valor salida
If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
Dim tValorInventario As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
ValorSalida = tValorInventario
Dim drA2 As DataRow = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimero(String.Format("CveAlmacen = {0}", DdlAlmacenInventarioFisico.SelectedValue))
If drA2 IsNot Nothing Then
tCveSubProyectoSalida = drA2("CveSubProyecto").ToString.ToEntero
End If
Else
ErrorMovInv = True
Mensaje = "Ocurrió un error al validar los movimientos contables de salida"
End If
End If
If Not ErrorMovInv Then
'NOTA
' cuando el valor entrada sea mayor al de salida, el valor de salida debe de ser negativo y cargado
' cuando el valor salida sea mayor al de entrada, el valor de entrada debe de ser negativo y abonado
'Registro la prepólizaDetalle Entradas
If CveMovimientoEntrada > 0 Then
TipoMovto = False
If ValorEntrada <= ValorSalida Then
TipoMovto = True : ValorEntrada = -ValorEntrada ' invierto su naturaleza
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, ValorEntrada, ValorEntrada, 68, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoEntrada, CveSubProyecto:=tCveSubProyectoEntrada, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de entrada"
End If
End If
'Registro la prepólizaDetalle Salidas
If CveMovimientoSalida > 0 Then
TipoMovto = True
If ValorSalida < ValorEntrada Then
TipoMovto = False : ValorSalida = -ValorSalida ' invierto su naturaleza
End If
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovto, ValorSalida, ValorSalida, 68, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveSubProyecto:=tCveSubProyectoSalida, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de salida"
End If
End If
If ValorEntrada >= ValorSalida Then
'si el valor entrada es igual al valorsalida, y este sea cero.
If tCveSubProyectoEntrada = -1 Then tCveSubProyectoEntrada = tCveSubProyectoSalida
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorEntrada + ValorSalida, ValorEntrada + ValorSalida, 260, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveSubProyecto:=tCveSubProyectoEntrada, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de ingreso"
End If
ElseIf ValorSalida >= ValorEntrada Then
'inserta el gasto
Dim dr As DataRow = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimero("")
Dim tCveClasificacion As Integer = -1
If dr IsNot Nothing Then
tCveClasificacion = dr("CveClasificacion").ToString.ToEntero
End If
If Math.Abs((ValorSalida + ValorEntrada)) <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorSalida + ValorEntrada, ValorSalida + ValorEntrada, 290, "", tConcepto, CveMovimientoAlmacen:=CveMovimientoSalida, CveClasificacion:=tCveClasificacion, CveSubProyecto:=tCveSubProyectoSalida, Contabilizable:=EsContabilizable) Then
ErrorMovInv = True
Mensaje = "Ocurrió un error al guardar los movimientos contables de ajuste de salida"
End If
End If
End If
End If
If Not ErrorMovInv Then
Dim AutoConta As Boolean = True
If (UsuarioActual.CveEmpresa = 119) Then
AutoConta = False
End If
If Not ErrorMovInv AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, AutoConta:=AutoConta) Then
ErrorMovInv = True
'If ObjConta.ValorPolizaDescuadre > 0 Then
' GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
' ErrorPrepolizaDescuadre = True
'End If
End If
End If
Dim RetornoVirtual As MMovimientoVirtual = Nothing
If Not ErrorMovInv AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If CveMovimientoSalida > 0 Then RetornoVirtual = GenerarMovimientoVirtual(CveMovimientoSalida, ObjInventario, ObjConta)
If RetornoVirtual IsNot Nothing Then ErrorMovInv = RetornoVirtual.TieneError
If CveMovimientoEntrada > 0 AndAlso Not ErrorMovInv Then RetornoVirtual = GenerarMovimientoVirtual(CveMovimientoEntrada, ObjInventario, ObjConta)
If RetornoVirtual IsNot Nothing Then ErrorMovInv = RetornoVirtual.TieneError
End If
End If End If
End If Catch ex As Exception
OnError("Ocurrió un error al generar el movimiento", ex)
If Not ErrorMovInv Then ErrorMovInv = True
Dim AutoConta As Boolean = True End Try
If (UsuarioActual.CveEmpresa = 119) Then
AutoConta = False
End If
If Not ErrorMovInv AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, AutoConta:=AutoConta) Then
ErrorMovInv = True
'If ObjConta.ValorPolizaDescuadre > 0 Then
' GuardaLogAD($"Compras/Compras-Guardar | Error{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia} | CvePrePoliza:{CvePrePoliza}", "LogPrePolizas")
' ErrorPrepolizaDescuadre = True
'End If
End If
End If
Dim RetornoVirtual As MMovimientoVirtual = Nothing
If Not ErrorMovInv AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" Then
If CveMovimientoSalida > 0 Then RetornoVirtual = GenerarMovimientoVirtual(CveMovimientoSalida, ObjInventario, ObjConta)
If RetornoVirtual IsNot Nothing Then ErrorMovInv = RetornoVirtual.TieneError
If CveMovimientoEntrada > 0 AndAlso Not ErrorMovInv Then RetornoVirtual = GenerarMovimientoVirtual(CveMovimientoEntrada, ObjInventario, ObjConta)
If RetornoVirtual IsNot Nothing Then ErrorMovInv = RetornoVirtual.TieneError
End If
If Not ErrorMovInv Then If Not ErrorMovInv Then
ObjInventario.Commit() ' aplica los movimientos insertados ObjInventario.Commit() ' aplica los movimientos insertados
@@ -4695,12 +4706,13 @@ Partial Class Inventarios_EntradasSalidas
If GvSalidasCambioVigencia.Rows.Count = 0 Then If GvSalidasCambioVigencia.Rows.Count = 0 Then
Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgError) Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
RegistraScript(String.Format("$('#{0}').modal();", "DivModalCambioFisico")) RegistraScript(String.Format("$('#{0}').modal({backdrop: 'static', keyboard: false});", "DivModalCambioFisico"))
Exit Sub Exit Sub
End If End If
Dim ObjInventario As New ClsInventarios Dim ObjInventario As New ClsInventarios
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL()) Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim CveMovimientoEntrada As Integer = -1 Dim CveMovimientoEntrada As Integer = -1
Dim CveMovimientoSalida As Integer = -1 Dim CveMovimientoSalida As Integer = -1
Dim ErrorMovInv As Boolean = False Dim ErrorMovInv As Boolean = False
@@ -4709,7 +4721,7 @@ Partial Class Inventarios_EntradasSalidas
Dim ValorSalida As Decimal = 0 Dim ValorSalida As Decimal = 0
Dim ImporteConcepto As Decimal = 0 Dim ImporteConcepto As Decimal = 0
Dim tConcepto As String = TxtObsCambioVigencia.Text.Trim Dim tConcepto As String = TxtObsCambioVigencia.Text.Trim
Dim Fecha As Date = TxtFechaCambio.Text.ToDate.ToString("yyyy/MM/dd").ToDate Dim Fecha As Date = TxtFechaCambio.Text.ToDate.ToString("yyyy/MM/dd").ToDate()
Dim tCveSubProyecto As Integer = -1 Dim tCveSubProyecto As Integer = -1
Dim TipoMovto As Boolean = False Dim TipoMovto As Boolean = False
@@ -5478,39 +5490,44 @@ Partial Class Inventarios_EntradasSalidas
'VERIFICA SI TIENE ALMACEN VIRTUAL 'VERIFICA SI TIENE ALMACEN VIRTUAL
If CveAlmacenVirtual > 0 Then If CveAlmacenVirtual > 0 Then
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
DtPSVirtual = ObjInventario.DtResultados DtPSVirtual = ObjInventario.DtResultados.Copy()
End If
If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then If DtPSVirtual IsNot Nothing AndAlso DtPSVirtual.Rows.Count > 0 Then
CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, If(tOrigen > 0, 36, 37), 1, TxtFecha.Text.Replace(",", "").ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveMovimientoRelacionado:=CveMovimiento, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="ES/GV") CveMovimientoVirtual = ObjInventario.AddMovimiento(CveAlmacenVirtual, If(tOrigen > 0, 36, 37), 1, TxtFecha.Text.Replace(",", "").ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, CveMovimientoRelacionado:=CveMovimiento, Observaciones:=TxtObservaciones.Text.Trim, Modulo:="ES/GV")
FolioVirtual = ObjInventario.Folio If CveMovimientoVirtual > 0 Then
FolioVirtual = ObjInventario.Folio
For Each RowUsado As DataRow In DtPSVirtual.Rows For Each RowUsado As DataRow In DtPSVirtual.Rows
Dim CvePS As Integer = RowUsado("CvePS").ToString().ToEntero() Dim CvePS As Integer = RowUsado("CvePS").ToString().ToEntero()
Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal() Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal()
Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal() Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero() Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then If Not ObjInventario.AddMovimientoDetalle(CveMovimientoVirtual, CantidadUsado, CveUM, CvePS, PU, -1, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then
ErrorMovInv = True
Exit For
End If
Next
Else
ErrorMovInv = True ErrorMovInv = True
Exit For
End If End If
Next
End If
If Not ErrorMovInv Then
Dim dttCosto As DataTable = Nothing
If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
dttCosto = ObjInventario.DtResultados
End If End If
If ContabilizaMovimientoAlmacen(ObjConta, TxtFecha.Text.Replace(",", "").ToDate, "Virtual", "ES/GV", CveMovimientoVirtual, -1, DtPSVirtual.SUM("TotalCargo"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, True, dttCosto, tCveSubProyecto) > 0 Then If Not ErrorMovInv AndAlso CveMovimientoVirtual > 0 Then
ErrorMovInv = True If Not ErrorMovInv Then
End If Dim dttCosto As DataTable = Nothing
End If If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
dttCosto = ObjInventario.DtResultados
End If
End If If ContabilizaMovimientoAlmacen(ObjConta, TxtFecha.Text.Replace(",", "").ToDate, "Virtual", "ES/GV", CveMovimientoVirtual, -1, DtPSVirtual.SUM("TotalCargo"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, True, dttCosto, tCveSubProyecto) > 0 Then
ErrorMovInv = True
End If
End If
End If
Catch ex As Exception Catch ex As Exception
ErrorMovInv = True ErrorMovInv = True
End Try End Try

View File

@@ -1283,7 +1283,7 @@ Partial Class PV
End If End If
DdlTipoDefecto.Width = New Unit(260%) DdlTipoDefecto.Width = New Unit(260%)
If UsuarioActual.Empresa.Funcionalidad(163) = "1" Then If UsuarioActual.Empresa.Funcionalidad(163) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TrDescripcionVenta.Visible = True TrDescripcionVenta.Visible = True
If CveVenta <= 0 Then If CveVenta <= 0 Then
TxtDescripcionVenta.Enabled = True TxtDescripcionVenta.Enabled = True
@@ -1517,7 +1517,7 @@ Partial Class PV
HdnFolioFiscalNC.Value = DbRowVenta("FolioFiscalPadre").ToString HdnFolioFiscalNC.Value = DbRowVenta("FolioFiscalPadre").ToString
End If End If
If UsuarioActual.Empresa.Funcionalidad(163) = "1" Then If UsuarioActual.Empresa.Funcionalidad(163) = "1" OrElse UsuarioActual.Empresa.Funcionalidad(109) = "1" Then
TrDescripcionVenta.Visible = True TrDescripcionVenta.Visible = True
TxtDescripcionVenta.Text = DbRowVenta("DescripcionVenta").ToString() TxtDescripcionVenta.Text = DbRowVenta("DescripcionVenta").ToString()
End If End If

View File

@@ -378,9 +378,9 @@
<li> <li>
<asp:LinkButton ID="LnkSolicitarCredito" Visible="false" runat="server"><i class="fa fa-plus"></i>Solicitar autorización de crédito</asp:LinkButton> <asp:LinkButton ID="LnkSolicitarCredito" Visible="false" runat="server"><i class="fa fa-plus"></i>Solicitar autorización de crédito</asp:LinkButton>
</li> </li>
<li> <%-- <li>
<asp:LinkButton ID="LnkCancelarSoloCFDI" Visible="false" runat="server" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea cancelar el CFDI?" data-btn-ok-label="si" OnClick="LnkCancelarSoloCFDI_Click"><i class="fa fa-plus"></i>Cancelar solo CFDI</asp:LinkButton> <asp:LinkButton ID="LnkCancelarSoloCFDI" Visible="false" runat="server" data-toggle="confirmation" data-popout="true" data-original-title="¿Seguro que desea cancelar el CFDI?" data-btn-ok-label="si" OnClick="LnkCancelarSoloCFDI_Click"><i class="fa fa-plus"></i>Cancelar solo CFDI</asp:LinkButton>
</li> </li>--%>
</ContentTemplate> </ContentTemplate>
<Triggers> <Triggers>
<asp:AsyncPostBackTrigger ControlID="LnkImprimir" EventName="Click" /> <asp:AsyncPostBackTrigger ControlID="LnkImprimir" EventName="Click" />

View File

@@ -12031,6 +12031,8 @@ Partial Class Ventas
End If End If
ObjFactura.DtMercancias = DtMercancias ObjFactura.DtMercancias = DtMercancias
ObjFactura.DtImpuestosLocales = TmpDTImpuestos
End Sub End Sub
Private Sub CreaObjetosVentaDevolucion() Private Sub CreaObjetosVentaDevolucion()
@@ -13693,16 +13695,6 @@ Partial Class Ventas
If Me.CveContratoTipo <> 33 Then If Me.CveContratoTipo <> 33 Then
GuardarVentaEstimaciones(ObjContr, factura) GuardarVentaEstimaciones(ObjContr, factura)
End If End If
If ErrorList.Count = 0 Then
'armonizaccionContable
'GuardarVentaAC(ObjVentas, factura, Msgok)
If ErrorList.Count = 0 Then
'Impuestos Locales
If GuardarVentaImpuestosLocales(ObjVentas, ObjConta, factura) Then
ErrorList.Add("Ocurrio un error al Guardar Impuestos Locales")
End If
End If
End If
End If End If
End If End If
End If End If
@@ -14914,6 +14906,14 @@ Partial Class Ventas
End If End If
End If End If
'Impuestos Locales
If Not ErrorPrepoliza Then
If GuardarVentaImpuestosLocales(ObjVentas, ObjConta, ObjFactura, ValorMultiplicador:=ValorMultiplicador) Then
ErrorPrepoliza = True
ErrorList.Add("Ocurrio un error al Guardar Impuestos Locales")
End If
End If
If ObjConta.ValidacionesPrePoliza(ObjFactura.CvePrePoliza, UsuarioActual, Opcion:=2, AutoConta:=AutoConta) Then If ObjConta.ValidacionesPrePoliza(ObjFactura.CvePrePoliza, UsuarioActual, Opcion:=2, AutoConta:=AutoConta) Then
If ObjConta.ValorPolizaDescuadre > 0 Then If ObjConta.ValorPolizaDescuadre > 0 Then
If ObjConta.ValorPolizaDescuadre = 2 Then If ObjConta.ValorPolizaDescuadre = 2 Then
@@ -15293,14 +15293,14 @@ Partial Class Ventas
Private Function GuardarVentaImpuestosLocales(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, Factura As Modelos.Factura, Optional ValorMultiplicador As Integer = 1) As Boolean Private Function GuardarVentaImpuestosLocales(ObjVentas As ClsVentas, ObjConta As ClsContabilidad, Factura As Modelos.Factura, Optional ValorMultiplicador As Integer = 1) As Boolean
Dim ErrorPrepoliza As Boolean = False Dim ErrorPrepoliza As Boolean = False
If TmpDTImpuestos IsNot Nothing AndAlso Factura.CvePrePoliza > 0 AndAlso Not DdlTipoComprobante.SelectedValue.Contiene("Cot", "Rem") Then If Factura.DtImpuestosLocales IsNot Nothing AndAlso Factura.CvePrePoliza > 0 AndAlso Not Factura.TipoDocto.Contiene("Cot", "Rem") Then
Dim Importe As Decimal Dim Importe As Decimal
Dim Concepto As String Dim Concepto As String
Dim tipoCambio As Decimal Dim tipoCambio As Decimal
Dim CveSubProyectoContabilizar As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero() Dim CveSubProyectoContabilizar As Integer = DdlSubProyectoDatos.SelectedValue.ToEntero()
For Each RowIL As DataRow In TmpDTImpuestos.Rows For Each RowIL As DataRow In Factura.DtImpuestosLocales.Rows
If RowIL("TipoImpuesto").ToString().ToEntero() > 0 Then If RowIL("TipoImpuesto").ToString().ToEntero() > 0 Then
Importe = RowIL("Importe").ToString().ToDecimal * ValorMultiplicador Importe = RowIL("Importe").ToString().ToDecimal * ValorMultiplicador
@@ -35740,32 +35740,32 @@ Partial Class Ventas
#End Region #End Region
Protected Sub LnkCancelarSoloCFDI_Click(sender As Object, e As EventArgs) 'Protected Sub LnkCancelarSoloCFDI_Click(sender As Object, e As EventArgs)
If CveVenta > 0 Then ' If CveVenta > 0 Then
Dim RowVenta As DataRow = Nothing ' Dim RowVenta As DataRow = Nothing
Using ObjVentas As New ClsVentas ' Using ObjVentas As New ClsVentas
If (ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa)) Then ' If (ObjVentas.GetVenta(CveVenta, UsuarioActual.CveEmpresa)) Then
RowVenta = ObjVentas.DtResultados.Copy().Rows(0) ' RowVenta = ObjVentas.DtResultados.Copy().Rows(0)
End If ' End If
End Using ' End Using
If RowVenta IsNot Nothing Then ' If RowVenta IsNot Nothing Then
Dim FolioFiscal As String = RowVenta("FolioFiscal").ToString().Trim() ' Dim FolioFiscal As String = RowVenta("FolioFiscal").ToString().Trim()
Dim Total As Decimal = RowVenta("Total").ToString().ToDecimal() ' Dim Total As Decimal = RowVenta("Total").ToString().ToDecimal()
Dim RFCReceptor As String = RowVenta("RFCReceptor").ToString() ' Dim RFCReceptor As String = RowVenta("RFCReceptor").ToString()
Dim ObjTimbrado As New Timbrado ' Dim ObjTimbrado As New Timbrado
Dim resp = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=4, ValidaFactura:=False, CveSATMotivoCancelacion:=2) ' Dim resp = ObjTimbrado.CFDICancelar(UsuarioActual.Empresa, FolioFiscal, Total, RFCReceptor, UsuarioActual.Empresa.RFC, CvePACCancelacion:=4, ValidaFactura:=False, CveSATMotivoCancelacion:=2)
If resp IsNot Nothing Then ' If resp IsNot Nothing Then
Alert(resp.Estado) ' Alert(resp.Estado)
End If ' End If
End If ' End If
End If ' End If
End Sub 'End Sub
End Class End Class