--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"
|
#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
|
||||||
|
|||||||
Reference in New Issue
Block a user