--No intentar contabilizar si el movimiento virtual no aplica

This commit is contained in:
2023-12-01 17:52:54 -07:00
parent 5eb743c874
commit 3344f4c2f7

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
@@ -5480,36 +5492,46 @@ 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:=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
Dim dttCosto As DataTable = Nothing
If ObjInventario.GetMovimientosDetalle(CveMovimientoVirtual, UsuarioActual.CveEmpresa) Then
dttCosto = ObjInventario.DtResultados
End If
If ContabilizaMovimientoAlmacen(ObjConta, TxtFecha.Text.Replace(",", "").ToDate, "Virtual", "ES/GV", CveMovimientoVirtual, -1, dttCosto.SUM("Total"), UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, True, dttCostos:=dttCosto, CveSubProyecto:=tCveSubProyecto) <= 0 Then
ErrorMovInv = True
End If
End If
End If End If
Else
ErrorMovInv = True
End If End If
End If End If