--No intentar contabilizar si el movimiento virtual no aplica
This commit is contained in:
@@ -4007,7 +4007,7 @@ Partial Class Inventarios_EntradasSalidas
|
||||
|
||||
#Region "CAMBIO INVENTARIO FISICO"
|
||||
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
|
||||
|
||||
Protected Sub LnkCambioVigencia_Click(sender As Object, e As EventArgs)
|
||||
@@ -4438,8 +4438,20 @@ Partial Class Inventarios_EntradasSalidas
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim ObjInventario As New ClsInventarios
|
||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||
Dim CveAlmacen As Integer = DdlAlmacenInventarioFisico.SelectedValue.ToEntero
|
||||
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 FolioEntrada As Integer = -1
|
||||
@@ -4447,215 +4459,214 @@ Partial Class Inventarios_EntradasSalidas
|
||||
Dim CveMovimientoSalida 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 Fecha As Date = (TxtFechaInvFisico.Text.ToDate.ToString("yyyy/MM/dd ") & NowADS().ToShortTimeString).ToDate
|
||||
Dim tCveSubProyectoEntrada As Integer = -1
|
||||
Dim tCveSubProyectoSalida As Integer = -1
|
||||
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 CveModalidad As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveAlmacen:=CveAlmacen).FiltroPrimeroValor("CveModalidad").ToEntero()
|
||||
Dim EsContabilizable As Boolean = (CveModalidad = 1)
|
||||
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
|
||||
|
||||
'MOVIMIENTO DE ENTRADA
|
||||
If DtMovimientosEntradaInvFisico.Rows.Count > 0 Then
|
||||
'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")
|
||||
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
|
||||
'MOVIMIENTO DE ENTRADA
|
||||
If DtMovimientosEntradaInvFisico.Rows.Count > 0 Then
|
||||
'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")
|
||||
FolioEntrada = ObjInventario.Folio
|
||||
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')")
|
||||
ErrorMovInv = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If Prorratear Then
|
||||
If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
|
||||
Dim ProTotalSalida As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
|
||||
Dim ProCantidadEntrada As Decimal = DtMovimientosEntradaInvFisico.SUMD("Cantidad", "")
|
||||
|
||||
ProPU = (ProTotalSalida / ProCantidadEntrada).RoundSQL(10)
|
||||
|
||||
If Not ProPU > 0 Then
|
||||
If Not ErrorMovInv Then
|
||||
'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
|
||||
Mensaje = String.Format("No hay existencias suficientes del producto: {0}", Dr("PS"))
|
||||
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
|
||||
ErrorMovInv = True
|
||||
Mensaje = $"Ocurrió un error al obtener el PU proraterado, pu {ProPU}"
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
Mensaje = "Ocurrió un error al obtener el PU proraterado"
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If Not ErrorMovInv AndAlso Prorratear Then
|
||||
If Not ErrorMovInv AndAlso CveMovimientoSalida > 0 Then
|
||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||
|
||||
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
|
||||
Dim ProTotalSalida As Decimal = ObjInventario.DtResultados.SUMD("Total", "").RoundSQL(2)
|
||||
Dim ProCantidadEntrada As Decimal = DtMovimientosEntradaInvFisico.SUMD("Cantidad", "")
|
||||
|
||||
'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
|
||||
ProPU = (ProTotalSalida / ProCantidadEntrada).RoundSQL(10)
|
||||
|
||||
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
|
||||
If Not ProPU > 0 Then
|
||||
ErrorMovInv = True
|
||||
Mensaje = $"Ocurrió un error al obtener el PU proraterado, pu {ProPU}"
|
||||
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"
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
Mensaje = "Ocurrió un error al obtener el PU proraterado"
|
||||
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
|
||||
|
||||
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
|
||||
|
||||
Catch ex As Exception
|
||||
OnError("Ocurrió un error al generar el movimiento", ex)
|
||||
ErrorMovInv = True
|
||||
End Try
|
||||
|
||||
If Not ErrorMovInv Then
|
||||
ObjInventario.Commit() ' aplica los movimientos insertados
|
||||
@@ -4695,12 +4706,13 @@ Partial Class Inventarios_EntradasSalidas
|
||||
If GvSalidasCambioVigencia.Rows.Count = 0 Then
|
||||
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(String.Format("$('#{0}').modal();", "DivModalCambioFisico"))
|
||||
RegistraScript(String.Format("$('#{0}').modal({backdrop: 'static', keyboard: false});", "DivModalCambioFisico"))
|
||||
Exit Sub
|
||||
End If
|
||||
|
||||
Dim ObjInventario As New ClsInventarios
|
||||
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
|
||||
|
||||
Dim CveMovimientoEntrada As Integer = -1
|
||||
Dim CveMovimientoSalida As Integer = -1
|
||||
Dim ErrorMovInv As Boolean = False
|
||||
@@ -4709,7 +4721,7 @@ Partial Class Inventarios_EntradasSalidas
|
||||
Dim ValorSalida As Decimal = 0
|
||||
Dim ImporteConcepto As Decimal = 0
|
||||
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 TipoMovto As Boolean = False
|
||||
|
||||
@@ -5480,36 +5492,46 @@ Partial Class Inventarios_EntradasSalidas
|
||||
'VERIFICA SI TIENE ALMACEN VIRTUAL
|
||||
If CveAlmacenVirtual > 0 Then
|
||||
If ObjInventario.GetMovimientosDetalleVirtual(CveMovimiento, UsuarioActual.CveEmpresa) Then
|
||||
DtPSVirtual = ObjInventario.DtResultados
|
||||
End If
|
||||
DtPSVirtual = ObjInventario.DtResultados.Copy()
|
||||
|
||||
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")
|
||||
FolioVirtual = ObjInventario.Folio
|
||||
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")
|
||||
If CveMovimientoVirtual > 0 Then
|
||||
FolioVirtual = ObjInventario.Folio
|
||||
|
||||
For Each RowUsado As DataRow In DtPSVirtual.Rows
|
||||
Dim CvePS As Integer = RowUsado("CvePS").ToString().ToEntero()
|
||||
Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal()
|
||||
Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
|
||||
Dim CveUM As Integer = RowUsado("CveUM").ToString().ToEntero()
|
||||
For Each RowUsado As DataRow In DtPSVirtual.Rows
|
||||
Dim CvePS As Integer = RowUsado("CvePS").ToString().ToEntero()
|
||||
Dim CantidadUsado As Decimal = RowUsado("Cantidad").ToString().ToDecimal()
|
||||
Dim PU As Decimal = RowUsado("Cargo").ToString().ToDecimal()
|
||||
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
|
||||
Exit For
|
||||
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
|
||||
|
||||
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
|
||||
ErrorMovInv = True
|
||||
If Not ErrorMovInv AndAlso CveMovimientoVirtual > 0 Then
|
||||
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
|
||||
|
||||
Else
|
||||
ErrorMovInv = True
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Reference in New Issue
Block a user