Generar movimiento de salida de almacen sin costo
This commit is contained in:
@@ -714,8 +714,6 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
|
|
||||||
CveAlmacenTraspasoDestino = DtDatos.Rows(0)("CveAlmacenDestino").ToString.ToEntero
|
CveAlmacenTraspasoDestino = DtDatos.Rows(0)("CveAlmacenDestino").ToString.ToEntero
|
||||||
CveAlmacenTraspasoOrigen = DtDatos.Rows(0)("CveAlmacenOrigen").ToString.ToEntero
|
CveAlmacenTraspasoOrigen = DtDatos.Rows(0)("CveAlmacenOrigen").ToString.ToEntero
|
||||||
CveSubProyecto = DtDatos.Rows(0)("CveSubProyecto").ToString.ToEntero
|
|
||||||
EsInterno = CBool(DtDatos.Rows(0)("EsInterno").ToString)
|
|
||||||
|
|
||||||
If DtDatos.SUM("CantidadS") <= 0 Then
|
If DtDatos.SUM("CantidadS") <= 0 Then
|
||||||
GvDatos.CssClass = "table table-striped table-hover Widthall ScrollAD gvInventario gvEscondeColumna"
|
GvDatos.CssClass = "table table-striped table-hover Widthall ScrollAD gvInventario gvEscondeColumna"
|
||||||
@@ -752,10 +750,6 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
DtDatos.Columns.Add("CveSeccion", GetType(Integer))
|
DtDatos.Columns.Add("CveSeccion", GetType(Integer))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If Not DtDatos.Columns.Contains("Lote") Then
|
|
||||||
DtDatos.Columns.Add("Lote", GetType(String))
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Not DtDatos.Columns.Contains("FechaCaducidad") Then
|
If Not DtDatos.Columns.Contains("FechaCaducidad") Then
|
||||||
DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
|
DtDatos.Columns.Add("FechaCaducidad", GetType(Date))
|
||||||
End If
|
End If
|
||||||
@@ -1659,6 +1653,8 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
|
DtTraspasos.Columns.Add("FolioSalida", GetType(Integer))
|
||||||
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
|
DtTraspasos.Columns.Add("CveMovimientoEntrada", GetType(Integer))
|
||||||
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
|
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
|
||||||
|
DtTraspasos.Columns.Add("CveTipoAlmacen", GetType(Integer))
|
||||||
|
DtTraspasos.Columns.Add("CveConceptoMovimientoSalida", GetType(Integer))
|
||||||
|
|
||||||
Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
|
Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
|
||||||
|
|
||||||
@@ -1716,13 +1712,240 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
|
|
||||||
'' TERMINA: VALIDACIONES
|
'' TERMINA: VALIDACIONES
|
||||||
|
|
||||||
|
Dim CantidadPendienteSinCosto As Decimal = 0
|
||||||
|
Dim CantidadSaldoSinCosto As Decimal = 0
|
||||||
|
|
||||||
|
Dim CantidadSalidaSinCosto As Decimal = 0
|
||||||
|
|
||||||
|
'' COMIENZA: SIN COSTO
|
||||||
|
If TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(587) = "1" AndAlso TipoMovimiento = 1 Then
|
||||||
|
|
||||||
|
Dim CveConceptoSalidaSinCosto As Integer = If(TipoDocto.Contiene("Rem"), 8, 40)
|
||||||
|
|
||||||
|
For Each Dr As DataRow In DtDatos.Rows
|
||||||
|
If Dr("CantidadGV").ToString.ToDecimal > 0 Then
|
||||||
|
If CBool(Dr("AplicaSerie")) Then
|
||||||
|
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
|
||||||
|
For Each Dr1 As DataRow In DtDetalle.Rows
|
||||||
|
If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Serie:=Dr1("Serie").ToString, CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
|
||||||
|
|
||||||
|
'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
|
||||||
|
CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr2("CveAlmacen")}").ToEntero
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||||
|
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC1")
|
||||||
|
FolioSalida = ObjInventario.Folio
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim DrMovto = DtTraspasos.NewRow
|
||||||
|
DrMovto("Almacen") = Dr2("Almacen").ToString.ToEntero
|
||||||
|
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
||||||
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 26
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
|
||||||
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
CantidadPendienteSinCosto = 1
|
||||||
|
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un Error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
|
||||||
|
DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
|
||||||
|
Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
|
||||||
|
Exit For
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
If ErrorMovInv Then Exit For
|
||||||
|
Next
|
||||||
|
|
||||||
|
ElseIf CBool(Dr("AplicaLote")) Then
|
||||||
|
|
||||||
|
DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
|
||||||
|
For Each Dr1 As DataRow In DtDetalle.Rows
|
||||||
|
If ObjInventario.GetExistenciasProducto(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
|
||||||
|
CantidadSaldoSinCosto = Dr("CantidadGV").ToString.ToDecimal
|
||||||
|
|
||||||
|
For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
|
||||||
|
|
||||||
|
'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
|
||||||
|
CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr2("CveAlmacen")}").ToEntero
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim,
|
||||||
|
Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC2")
|
||||||
|
FolioSalida = ObjInventario.Folio
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim DrMovto = DtTraspasos.NewRow
|
||||||
|
DrMovto("Almacen") = Dr2("Almacen").ToString.ToEntero
|
||||||
|
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
||||||
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 26
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
|
||||||
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
|
End If
|
||||||
|
|
||||||
|
CantidadPendienteSinCosto = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("Cantidad").ToString.ToDecimal)
|
||||||
|
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Lote:=Dr1("Lote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
|
||||||
|
DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
|
||||||
|
|
||||||
|
CantidadSaldoSinCosto -= CantidadPendienteSinCosto
|
||||||
|
Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
|
||||||
|
If CantidadSaldoSinCosto <= 0 Then Exit For
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
Else
|
||||||
|
|
||||||
|
If ObjInventario.GetExistenciasProducto(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, -1, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveTipoAlmacen:=26, CveSubProyecto:=CveSubProyecto, Caducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
|
||||||
|
CantidadSaldoSinCosto = Dr("CantidadGV").ToString.ToDecimal
|
||||||
|
|
||||||
|
For Each Dr1 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
|
||||||
|
|
||||||
|
'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
|
||||||
|
CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr1("CveAlmacen")}").ToEntero
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString.ToEntero, CveConceptoSalidaSinCosto, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||||
|
Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, Modulo:="RE/GSC3")
|
||||||
|
FolioSalida = ObjInventario.Folio
|
||||||
|
|
||||||
|
If Not CveMovimientoSalida > 0 Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim DrMovto = DtTraspasos.NewRow
|
||||||
|
DrMovto("Almacen") = Dr1("Almacen").ToString.ToEntero
|
||||||
|
DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
|
||||||
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 26
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = CveConceptoSalidaSinCosto
|
||||||
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
|
End If
|
||||||
|
|
||||||
|
|
||||||
|
CantidadPendienteSinCosto = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldoSinCosto, CantidadSaldoSinCosto, Dr1("ExistenciaFinal").ToString.ToDecimal)
|
||||||
|
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendienteSinCosto.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0,
|
||||||
|
Serie:=Dr("Serie").ToString,
|
||||||
|
CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero,
|
||||||
|
FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha),
|
||||||
|
Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"),
|
||||||
|
CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
CantidadSaldoSinCosto -= CantidadPendienteSinCosto
|
||||||
|
Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendienteSinCosto
|
||||||
|
If CantidadSaldoSinCosto <= 0 Then Exit For
|
||||||
|
Next
|
||||||
|
|
||||||
|
If ErrorMovInv Then Exit For
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
CantidadSalidaSinCosto += Dr("CantidadTraspaso").ToString().ToDecimal()
|
||||||
|
If ErrorMovInv Then Exit For
|
||||||
|
|
||||||
|
End If
|
||||||
|
|
||||||
|
Next
|
||||||
|
|
||||||
|
'ENTRADA POR TRASPASO A ENTREGA POR ADELANTADO
|
||||||
|
If TipoDocto = "Rem" AndAlso Not ErrorMovInv Then
|
||||||
|
For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 26")
|
||||||
|
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
|
||||||
|
|
||||||
|
Dim CveAlmacenExA As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa, CveTipoAlmacen:=10).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
|
||||||
|
|
||||||
|
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(CveAlmacenExA, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||||
|
Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida,
|
||||||
|
Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, Modulo:="RE/G4")
|
||||||
|
FolioEntrada = ObjInventario.Folio
|
||||||
|
|
||||||
|
If Not CveMovimientoEntradaApartado > 0 Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dr1("CveMovimientoEntrada") = CveMovimientoEntradaApartado
|
||||||
|
Dr1("FolioEntrada") = FolioEntrada
|
||||||
|
|
||||||
|
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||||
|
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
If ErrorMovInv Then Exit For
|
||||||
|
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
If Not ErrorMovInv Then
|
||||||
|
For Each DrMovto As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida = 40").Rows
|
||||||
|
ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, DrMovto("CveMovimientoSalida").ToString().ToEntero(), TextoError)
|
||||||
|
If ErrorMovInv Then
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
''TERMINA: SIN COSTO
|
||||||
|
|
||||||
'' COMIENZA: APARTADOS
|
'' COMIENZA: APARTADOS
|
||||||
Dim CantidadPendiente As Decimal = 0
|
Dim CantidadPendiente As Decimal = 0
|
||||||
Dim CantidadSaldo As Decimal = 0
|
Dim CantidadSaldo As Decimal = 0
|
||||||
|
|
||||||
|
|
||||||
If CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) Then 'no debe considerar cuando es pedido de contrato
|
If Not ErrorMovInv AndAlso CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) Then 'no debe considerar cuando es pedido de contrato
|
||||||
If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
|
If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
|
||||||
' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
|
' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
|
||||||
For Each Dr As DataRow In DtDatos.Rows
|
For Each Dr As DataRow In DtDatos.Rows
|
||||||
@@ -1755,6 +1978,8 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
||||||
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
DrMovto("FolioSalida") = FolioSalida
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 9
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = 8
|
||||||
DtTraspasos.Rows.Add(DrMovto)
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1806,6 +2031,8 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
|
||||||
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
DrMovto("FolioSalida") = FolioSalida
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 9
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = 8
|
||||||
DtTraspasos.Rows.Add(DrMovto)
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1855,6 +2082,8 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
|
DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
|
||||||
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
|
||||||
DrMovto("FolioSalida") = FolioSalida
|
DrMovto("FolioSalida") = FolioSalida
|
||||||
|
DrMovto("CveTipoAlmacen") = 9
|
||||||
|
DrMovto("CveConceptoMovimientoSalida") = 8
|
||||||
DtTraspasos.Rows.Add(DrMovto)
|
DtTraspasos.Rows.Add(DrMovto)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1891,7 +2120,7 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
|
|
||||||
'ENTRADA POR TRASPASO AL ALMACEN GENERAL
|
'ENTRADA POR TRASPASO AL ALMACEN GENERAL
|
||||||
If Not ErrorMovInv Then
|
If Not ErrorMovInv Then
|
||||||
For Each Dr1 As DataRow In DtTraspasos.Rows
|
For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 9")
|
||||||
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
|
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
|
||||||
|
|
||||||
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1,
|
||||||
@@ -1927,7 +2156,7 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
'' TERMINA: APARTADOS
|
'' TERMINA: APARTADOS
|
||||||
|
|
||||||
' COMIENZA: GARANTIAS
|
' COMIENZA: GARANTIAS
|
||||||
If TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoMovimiento = 1 Then
|
If Not ErrorMovInv AndAlso TipoDocto.Contiene("Ing", "Rem") AndAlso UsuarioActual.Empresa.Funcionalidad(531) = "1" AndAlso TipoMovimiento = 1 Then
|
||||||
|
|
||||||
Dim CveAlmacenGarantia As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
|
Dim CveAlmacenGarantia As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
|
||||||
Dim DtGarantias As DataTable = Nothing
|
Dim DtGarantias As DataTable = Nothing
|
||||||
@@ -1956,9 +2185,9 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
End If
|
End If
|
||||||
' TERMINA: GARANTIAS
|
' TERMINA: GARANTIAS
|
||||||
|
|
||||||
|
Dim CantidadPendientePorSalir As Decimal = DtDatos.SUM("CantidadGV").ToDecimal() - CantidadSalidaSinCosto
|
||||||
|
|
||||||
|
If Not ErrorMovInv AndAlso CantidadPendientePorSalir > 0 Then
|
||||||
If Not ErrorMovInv Then
|
|
||||||
Dim ConceptoMovimiento = 3
|
Dim ConceptoMovimiento = 3
|
||||||
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
|
ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
|
||||||
ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
|
ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
|
||||||
@@ -1998,7 +2227,7 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
If CveMovimiento > 0 Then
|
If CveMovimiento > 0 Then
|
||||||
|
|
||||||
'SACA LO DE TRASPASOS - APARTADO
|
'SACA LO DE TRASPASOS - APARTADO
|
||||||
For Each Dr1 As DataRow In DtTraspasos.Rows
|
For Each Dr1 As DataRow In DtTraspasos.Select("CveTipoAlmacen = 9")
|
||||||
CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
|
CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
|
||||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||||
If ObjInventario.DtResultados.Rows.Count = 0 Then
|
If ObjInventario.DtResultados.Rows.Count = 0 Then
|
||||||
@@ -2082,137 +2311,41 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
Else
|
Else
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
'End If
|
|
||||||
|
|
||||||
|
'ENTRADA POR TRASPASO CUANDO ES REMISION
|
||||||
|
If Not ErrorMovInv Then
|
||||||
|
If CveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION
|
||||||
|
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato,
|
||||||
|
CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, Modulo:="RE/G8")
|
||||||
|
FolioEntrada = ObjInventario.Folio
|
||||||
|
|
||||||
'ENTRADA POR TRASPASO CUANDO ES REMISION
|
If CveMovimientoEntrada <= 0 Then
|
||||||
If Not ErrorMovInv Then
|
TextoError.AppendFormat("No se pudo generar el movimiento de entrada correctamente")
|
||||||
If CveAlmacenTraspasoDestino > 0 AndAlso Not (TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1) Then ' TRASPASO CUANDO ES REMISION
|
|
||||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestino, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato,
|
|
||||||
CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, Modulo:="RE/G8")
|
|
||||||
FolioEntrada = ObjInventario.Folio
|
|
||||||
|
|
||||||
If CveMovimientoEntrada <= 0 Then
|
|
||||||
TextoError.AppendFormat("No se pudo generar el movimiento de entrada correctamente")
|
|
||||||
ErrorMovInv = True
|
|
||||||
Else
|
|
||||||
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
|
|
||||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then
|
|
||||||
ErrorMovInv = True
|
|
||||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
|
|
||||||
Exit For
|
|
||||||
End If
|
|
||||||
Next
|
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
|
Else
|
||||||
End If
|
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then
|
||||||
End If
|
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, EsInterno:=EsInterno, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero()) Then
|
||||||
Else 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - SALIDA ALMACEN
|
|
||||||
Dim DtCostos As DataTable = Nothing
|
|
||||||
Dim ValorInventario As Decimal = 0
|
|
||||||
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
|
|
||||||
DtCostos = ObjInventario.DtResultados
|
|
||||||
|
|
||||||
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
|
|
||||||
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
|
|
||||||
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
|
|
||||||
Dim IdCtaContable As Integer = 0
|
|
||||||
Dim CveCuenta As Integer = 0
|
|
||||||
If tmpCostos.Rows.Count > 0 Then
|
|
||||||
|
|
||||||
|
|
||||||
If ObjVentas.GetVenta(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
|
|
||||||
Dim Fecha As Date = TxtFecha.Text.ToDate ' If(TipoMovimiento <> 1, TxtFecha.Text.ToDate, ObjVentas.DtResultados(0)("Fecha").ToString.ToDate)
|
|
||||||
Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
|
|
||||||
Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
|
|
||||||
Dim Serie As String = ObjVentas.DtResultados(0)("Serie").ToString
|
|
||||||
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
|
|
||||||
Dim TotalCostoAcumulado As Decimal = 0
|
|
||||||
Dim cont As Integer = 1
|
|
||||||
|
|
||||||
Dim ValorMultiplicador = 1
|
|
||||||
|
|
||||||
If TipoMovimiento = 1 Then
|
|
||||||
ValorMultiplicador = 1
|
|
||||||
ElseIf TipoMovimiento = 2 Then
|
|
||||||
ValorMultiplicador = -1
|
|
||||||
ElseIf TipoMovimiento = 2 AndAlso TipoDocto.Contiene({"Dev"}) And (EsDevolucionVenta = 1) Then
|
|
||||||
ValorMultiplicador = 1
|
|
||||||
End If
|
|
||||||
|
|
||||||
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
|
||||||
'Se agrega movimiento separado por la cuenta de ventas (ER)
|
|
||||||
|
|
||||||
If CvePrePoliza > 0 Then
|
|
||||||
|
|
||||||
For Each RowInv As DataRow In tmpCostos.Rows
|
|
||||||
ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
|
|
||||||
TotalCostoAcumulado += ValorInventario
|
|
||||||
|
|
||||||
'cuando es el último movimiento y hay diferencias en los importes
|
|
||||||
If cont = DtCostos.FiltraParametros("", "", {"CveClasificacion"}).Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
|
|
||||||
ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
|
|
||||||
End If
|
|
||||||
|
|
||||||
'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString)
|
|
||||||
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
|
||||||
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
|
||||||
|
|
||||||
If Not ErrorMovInv Then
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorMultiplicador * ValorInventario, Serie, 69, Serie, Fecha, IdCtaContable, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
|
||||||
ErrorMovInv = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
cont += 1
|
|
||||||
Next
|
|
||||||
|
|
||||||
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorMultiplicador * TotalCosto, Serie, 68, Serie, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
|
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
|
||||||
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
Next
|
||||||
'AutoConta - El movimiento 1 es el de Venta
|
|
||||||
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
|
||||||
|
|
||||||
If AutoConta And Not ErrorMovInv Then
|
|
||||||
Dim ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
|
|
||||||
|
|
||||||
If IdCtaContable > 0 Then
|
|
||||||
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
|
|
||||||
Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
|
||||||
ErrorMovInv = True
|
|
||||||
TextoError.AppendFormat("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
|
||||||
End If
|
|
||||||
|
|
||||||
ObjContPaq.Dispose()
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
|
||||||
TextoError.AppendFormat("Ocurrió un Error al ingresar la prepoliza.1")
|
|
||||||
End If
|
|
||||||
Else
|
Else
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.2")
|
TextoError.AppendFormat("Ocurrió un error al guardar los movimientos de entrada")
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
|
||||||
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.3")
|
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
Else 'REGISTRO LA PREPOLIZA DE COSTO VS ALMACEN - SALIDA ALMACEN
|
||||||
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.4")
|
ErrorMovInv = Not GenerarPrePoliza(ObjInventario, ObjVentas, ObjConta, CveMovimiento, TextoError)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
'DEVOLUCION APARTADOS
|
'DEVOLUCION APARTADOS
|
||||||
If Not ErrorMovInv Then
|
If Not ErrorMovInv Then
|
||||||
If TipoMovimiento = 2 Then
|
If TipoMovimiento = 2 Then
|
||||||
@@ -2415,21 +2548,15 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
'Paqueterias guias
|
||||||
ErrorMovInv = True
|
If RbEntregaInterna.Checked AndAlso Not ErrorMovInv Then
|
||||||
OnError("Ocurrió un error al guardar", ex)
|
Dim CveEstatus As Integer = DdlEstatus.SelectedValue.ToEntero()
|
||||||
End Try
|
Dim Fecha As String = TxtFechaPaqInterna.Text
|
||||||
|
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
|
||||||
|
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
|
||||||
|
Dim Observaciones As String = TxtObservacionesPaqInterna.Text
|
||||||
|
Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
|
||||||
|
|
||||||
'Paqueterias guias
|
|
||||||
If RbEntregaInterna.Checked AndAlso Not ErrorMovInv Then
|
|
||||||
Dim CveEstatus As Integer = DdlEstatus.SelectedValue.ToEntero()
|
|
||||||
Dim Fecha As String = TxtFechaPaqInterna.Text
|
|
||||||
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
|
|
||||||
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
|
|
||||||
Dim Observaciones As String = TxtObservacionesPaqInterna.Text
|
|
||||||
Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
|
|
||||||
|
|
||||||
If CveSubProyecto > 0 Then
|
|
||||||
Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "", "", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
|
Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "", "", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
|
||||||
|
|
||||||
If CvePaqueteriaGuia > 0 Then
|
If CvePaqueteriaGuia > 0 Then
|
||||||
@@ -2449,11 +2576,12 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
|
Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
|
||||||
End If
|
End If
|
||||||
Else
|
|
||||||
Alert("Hace falta indicar un Sub Proyecto", TipoMensaje.MsgAdvertencia)
|
|
||||||
ErrorMovInv = True
|
|
||||||
End If
|
End If
|
||||||
End If
|
|
||||||
|
Catch ex As Exception
|
||||||
|
ErrorMovInv = True
|
||||||
|
OnError("Ocurrió un error al guardar", ex)
|
||||||
|
End Try
|
||||||
|
|
||||||
If Not ErrorMovInv Then
|
If Not ErrorMovInv Then
|
||||||
|
|
||||||
@@ -2470,13 +2598,23 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
Msg.AppendFormat("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada)))
|
Msg.AppendFormat("<br/> <a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoEntrada)))
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If DtTraspasos.Rows.Count > 0 Then
|
If DtTraspasos.FiltraParametros("CveTipoAlmacen=9").Rows.Count > 0 Then
|
||||||
Msg.AppendFormat("<br/><br/> Movimientos de Control (Apartados):")
|
Msg.AppendFormat("<br/><br/> Movimientos de Control (Apartados):")
|
||||||
For Each Dr As DataRow In DtTraspasos.Rows
|
For Each Dr As DataRow In DtTraspasos.Rows
|
||||||
Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> | Entrada por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={3}"" target=""_blank"">{4}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
|
Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> | Entrada por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={3}"" target=""_blank"">{4}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
|
||||||
Next
|
Next
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
If DtTraspasos.FiltraParametros("CveTipoAlmacen=26").Rows.Count > 0 Then
|
||||||
|
Msg.AppendFormat("<br/><br/> Movimientos de Control (Sin Costo):")
|
||||||
|
For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=40").Rows
|
||||||
|
Msg.AppendFormat("<br/>Almacén {0} | Salida directa de almacen: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
|
||||||
|
Next
|
||||||
|
For Each Dr As DataRow In DtTraspasos.FiltraParametros("CveConceptoMovimientoSalida=8").Rows
|
||||||
|
Msg.AppendFormat("<br/>Almacén {0} | Salida por Traspaso: <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={1}"" target=""_blank"">{2}</a></b> ", Dr("Almacen"), Dr("CveMovimientoSalida"), Dr("FolioSalida"), Dr("CveMovimientoEntrada"), Dr("FolioEntrada"))
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
If CveMovimientoGarantia > 0 Then
|
If CveMovimientoGarantia > 0 Then
|
||||||
Msg.AppendFormat("<br/>Movimiento de Entrada (garantías): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoGarantia, FolioGarantia)
|
Msg.AppendFormat("<br/>Movimiento de Entrada (garantías): <b><a href=""/Inventarios/EntradasSalidas.aspx?CveMovimiento={0}"" target=""_blank"">{1}</a></b>", CveMovimientoGarantia, FolioGarantia)
|
||||||
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
|
Msg.AppendFormat("<br/><a class=""Texto"" target='_blank' href=""/Compras/PopUpVerFactura.aspx?P={0}"">Imprimir Movimiento</a> ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
|
||||||
@@ -2511,6 +2649,109 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Function GenerarPrePoliza(ByRef ObjInventario As ClsInventarios, ByRef ObjVentas As ClsVentas, ByRef ObjConta As ClsContabilidad, CveMovimiento As Integer, ByRef TextoError As StringBuilder) As Boolean
|
||||||
|
Dim ErrorMovInv As Boolean = False
|
||||||
|
Dim DtCostos As DataTable = Nothing
|
||||||
|
Dim ValorInventario As Decimal = 0
|
||||||
|
If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
|
||||||
|
DtCostos = ObjInventario.DtResultados
|
||||||
|
|
||||||
|
Dim tmpCostos As DataTable = DtCostos.FiltraParametros("", "", {"CveClasificacion"})
|
||||||
|
Dim IdCtaContableAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContable", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
|
||||||
|
Dim CveCuentaAlmacen As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCtaContableSIG", $"CveAlmacen = {DdlAlmacen.SelectedValue}").ToEntero
|
||||||
|
Dim IdCtaContable As Integer = 0
|
||||||
|
Dim CveCuenta As Integer = 0
|
||||||
|
If tmpCostos.Rows.Count > 0 Then
|
||||||
|
|
||||||
|
|
||||||
|
If ObjVentas.GetVenta(CveVentaSurtir, UsuarioActual.CveEmpresa) Then
|
||||||
|
Dim Fecha As Date = TxtFecha.Text.ToDate ' If(TipoMovimiento <> 1, TxtFecha.Text.ToDate, ObjVentas.DtResultados(0)("Fecha").ToString.ToDate)
|
||||||
|
Dim CveCliente As Integer = ObjVentas.DtResultados(0)("CveCliente").ToString.ToEntero
|
||||||
|
Dim ClienteNombre As String = ObjVentas.DtResultados(0)("ClienteNombre").ToString
|
||||||
|
Dim Serie As String = ObjVentas.DtResultados(0)("Serie").ToString
|
||||||
|
Dim TotalCosto As Decimal = DtCostos.SUMD("Total").RoundSQL()
|
||||||
|
Dim TotalCostoAcumulado As Decimal = 0
|
||||||
|
Dim cont As Integer = 1
|
||||||
|
|
||||||
|
Dim ValorMultiplicador = 1
|
||||||
|
|
||||||
|
If TipoMovimiento = 1 Then
|
||||||
|
ValorMultiplicador = 1
|
||||||
|
ElseIf TipoMovimiento = 2 Then
|
||||||
|
ValorMultiplicador = -1
|
||||||
|
ElseIf TipoMovimiento = 2 AndAlso TipoDocto.Contiene({"Dev"}) And (EsDevolucionVenta = 1) Then
|
||||||
|
ValorMultiplicador = 1
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inventario/RecepcionEntrega", 4, TotalCosto, TotalCosto, 1, Fecha, ClienteNombre, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
|
||||||
|
'Se agrega movimiento separado por la cuenta de ventas (ER)
|
||||||
|
|
||||||
|
If CvePrePoliza > 0 Then
|
||||||
|
|
||||||
|
For Each RowInv As DataRow In tmpCostos.Rows
|
||||||
|
ValorInventario = DtCostos.SUMD("Total", $"CveClasificacion = {RowInv("CveClasificacion")}").RoundSQL()
|
||||||
|
TotalCostoAcumulado += ValorInventario
|
||||||
|
|
||||||
|
'cuando es el último movimiento y hay diferencias en los importes
|
||||||
|
If cont = DtCostos.FiltraParametros("", "", {"CveClasificacion"}).Rows.Count AndAlso TotalCosto <> TotalCostoAcumulado Then
|
||||||
|
ValorInventario = ValorInventario + (TotalCosto - TotalCostoAcumulado)
|
||||||
|
End If
|
||||||
|
|
||||||
|
'Concepto = String.Format("{0} - {1}", Row2("Clasificacion").ToString, Row2("SubProyecto").ToString)
|
||||||
|
IdCtaContable = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostos", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||||
|
CveCuenta = GlobalDTClasificaciones(UsuarioActual.CveEmpresa).FiltroPrimeroValor("IdCuentaCostosSIG", $"CveClasificacion = {RowInv("CveClasificacion")}").ToEntero
|
||||||
|
|
||||||
|
If Not ErrorMovInv Then
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, False, ValorMultiplicador * ValorInventario, Serie, 69, Serie, Fecha, IdCtaContable, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * ValorInventario, CveCuenta:=CveCuenta, CveClasificacion:=RowInv("CveClasificacion").ToString.ToEntero) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
cont += 1
|
||||||
|
Next
|
||||||
|
|
||||||
|
If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ValorMultiplicador * TotalCosto, Serie, 68, Serie, Fecha, IdCtaContableAlmacen, -1, CveVenta:=CveVentaSurtir, CveCliente:=CveCliente, CveMovimientoAlmacen:=CveMovimiento, CveSubProyecto:=CveSubProyecto, ImporteMX:=ValorMultiplicador * TotalCosto, CveCuenta:=CveCuentaAlmacen) Then
|
||||||
|
ErrorMovInv = True
|
||||||
|
End If
|
||||||
|
|
||||||
|
'AutoConta - El movimiento 1 es el de Venta
|
||||||
|
Dim AutoConta As Boolean = UsuarioActual.Empresa.Funcionalidad(200) = "1"
|
||||||
|
|
||||||
|
If AutoConta And Not ErrorMovInv Then
|
||||||
|
Dim ObjContPaq = New ClsContPAQi(UsuarioActual.Empresa)
|
||||||
|
|
||||||
|
If IdCtaContable > 0 Then
|
||||||
|
If Not ObjConta.ContabilizarPrePoliza(CvePrePoliza, UsuarioActual.CveUsuario, UsuarioActual.Empresa, ObjConta:=ObjContPaq) Then
|
||||||
|
Alert("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrio un Error al contabilizar, pongase en contacto con Soporte Técnico")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Alert(String.Format("No se puede contabilizar ya que falta asignación de las cuentas contables"), TipoMensaje.MsgAdvertencia)
|
||||||
|
End If
|
||||||
|
|
||||||
|
ObjContPaq.Dispose()
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un Error al ingresar la prepoliza.1")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.2")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.3")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
TextoError.AppendFormat("Ocurrió un Error al ingresar las prepolizas.4")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return Not ErrorMovInv
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Sub GuardaTraspaso()
|
Private Sub GuardaTraspaso()
|
||||||
|
|
||||||
'OBLIGA A SURTIR TODO
|
'OBLIGA A SURTIR TODO
|
||||||
@@ -2522,40 +2763,6 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Dim ValidaSeccion As Boolean = False : Dim ValidaCaducidad As Boolean = False : Dim ValidaLote As Boolean = False
|
|
||||||
'VALIDA CANTIDAD DE SALIDA
|
|
||||||
Dim Cantidad As Decimal = 0.0D
|
|
||||||
For Each Gvr As GridViewRow In GvDatos.Rows
|
|
||||||
If CBool(Gvr.DataKey("AplicaSeccion")) AndAlso Gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero <= 0 Then
|
|
||||||
ValidaSeccion = True
|
|
||||||
End If
|
|
||||||
If CBool(Gvr.DataKey("AplicaCaducidad")) AndAlso Gvr.FCTextBox("TxtCaducidad").Text.Trim = "" Then
|
|
||||||
ValidaCaducidad = True
|
|
||||||
End If
|
|
||||||
If CBool(Gvr.DataKey("AplicaLote")) AndAlso Gvr.FCTextBox("TxtLote").Text.Trim = "" Then
|
|
||||||
ValidaLote = True
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Gvr.FCCheckBox("cbInv").Checked AndAlso Gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
|
|
||||||
Cantidad = Gvr.FCTextBox("TbCantidadF").Text.ToDecimal
|
|
||||||
Exit For
|
|
||||||
End If
|
|
||||||
|
|
||||||
Next
|
|
||||||
|
|
||||||
If ValidaSeccion Then
|
|
||||||
Alert("La sección de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
If ValidaCaducidad Then
|
|
||||||
Alert("La caducidad no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
If ValidaLote Then
|
|
||||||
Alert("El lote de almacen no ha sido especificada en todos los productos.", TipoMensaje.MsgAdvertencia)
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
'VALIDA TRANSITORIO
|
'VALIDA TRANSITORIO
|
||||||
If ChkTransitorio.Checked Then
|
If ChkTransitorio.Checked Then
|
||||||
If TxtResponsable.Text.Trim = "" Then
|
If TxtResponsable.Text.Trim = "" Then
|
||||||
@@ -2590,9 +2797,6 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
For Each gvr As GridViewRow In GvDatos.Rows
|
For Each gvr As GridViewRow In GvDatos.Rows
|
||||||
If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
|
If gvr.FCCheckBox("cbInv").Checked AndAlso gvr.FCTextBox("TbCantidadF").Text.ToDecimal > 0 Then
|
||||||
DtDatos.Rows(Index)("CantidadGV") = gvr.FCTextBox("TbCantidadF").Text.ToDecimal
|
DtDatos.Rows(Index)("CantidadGV") = gvr.FCTextBox("TbCantidadF").Text.ToDecimal
|
||||||
DtDatos.Rows(Index)("CveSeccion") = gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero
|
|
||||||
DtDatos.Rows(Index)("FechaCaducidad") = gvr.FCTextBox("TxtCaducidad").Text.ToDate
|
|
||||||
DtDatos.Rows(Index)("Lote") = gvr.FCTextBox("TxtLote").Text
|
|
||||||
End If
|
End If
|
||||||
Index += 1
|
Index += 1
|
||||||
Next
|
Next
|
||||||
@@ -2684,18 +2888,13 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
FolioSalida = ObjInventario.Folio
|
FolioSalida = ObjInventario.Folio
|
||||||
If CveMovimientoSalida > 0 Then
|
If CveMovimientoSalida > 0 Then
|
||||||
Dim CantidadPendiente As Decimal = 0
|
Dim CantidadPendiente As Decimal = 0
|
||||||
Dim CveSeccionAlmacen As Integer = -1
|
|
||||||
|
|
||||||
For Each Dr As DataRow In DtDatos.Rows
|
For Each Dr As DataRow In DtDatos.Rows
|
||||||
FechaCaducidad = If(CBool(Dr("AplicaCaducidad")) AndAlso Dr("FechaCaducidad").ToString <> "", Dr("FechaCaducidad").ToString.ToDate, MinFecha)
|
|
||||||
Lote = If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1")
|
|
||||||
CveSeccionAlmacen = If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)
|
|
||||||
|
|
||||||
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
||||||
DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
DtDetalleLote = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0} AND FueTraspaso IS NULL", Dr("Consec")))
|
||||||
If DtDetalle.Rows.Count > 0 Then 'SI FUE POR SERIE
|
If DtDetalle.Rows.Count > 0 Then 'SI FUE POR SERIE
|
||||||
For Each Dr1 As DataRow In DtDetalle.Rows
|
For Each Dr1 As DataRow In DtDetalle.Rows
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, Lote:=Lote, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:=Dr1("Serie").ToString, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
||||||
Exit For
|
Exit For
|
||||||
@@ -2703,14 +2902,14 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
Next
|
Next
|
||||||
ElseIf DtDetalleLote.Rows.Count > 0 Then 'SI FUE POR LOTE BATCH
|
ElseIf DtDetalleLote.Rows.Count > 0 Then 'SI FUE POR LOTE BATCH
|
||||||
For Each Dr1 As DataRow In DtDetalleLote.Rows
|
For Each Dr1 As DataRow In DtDetalleLote.Rows
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr1("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, Serie:="", Lote:=Dr1("Lote").ToString, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr1("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, CveVentaDetalle:=-1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
Else 'NORMAL
|
Else 'NORMAL
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("CantidadGV").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, FechaCaducidad:=FechaCaducidad, CveSeccionAlmacen:=CveSeccionAlmacen, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, Dr("CantidadGV").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, -1, CveContratoDetalle:=Dr("CveContratoDetalle").ToString.ToEntero) Then
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
|
||||||
Exit For
|
Exit For
|
||||||
@@ -2735,15 +2934,8 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
FolioEntrada = ObjInventario.Folio
|
FolioEntrada = ObjInventario.Folio
|
||||||
If CveMovimientoEntrada > 0 Then
|
If CveMovimientoEntrada > 0 Then
|
||||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||||
Dim CveSeccionAlmacen As Integer = -1
|
|
||||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||||
If CBool(Dr("AplicaSeccion")) Then
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
||||||
CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, Almacen2, Dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero
|
|
||||||
Else
|
|
||||||
CveSeccionAlmacen = -1
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
|
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
|
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
|
||||||
Exit For
|
Exit For
|
||||||
@@ -2773,16 +2965,13 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
|
Dim FechaEstimada As String = If(TxtFechaEstimada.Text = "", "-1", TxtFechaEstimada.Text)
|
||||||
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
|
Dim NoCajas As Integer = TxtNoCajas.Text.ToEntero()
|
||||||
Dim Observaciones As String = TxtObservacionesPaqInterna.Text
|
Dim Observaciones As String = TxtObservacionesPaqInterna.Text
|
||||||
Dim CvePaqueteria As Integer = GlobalDTPaqueterias().FiltroPrimeroValor("CvePaqueteria", String.Format("CveEmpresa={0} AND TipoPaqueteria = 0", UsuarioActual.CveEmpresa)).ToEntero
|
Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(-1, -1, CveEstatus, CveSubProyecto, Fecha, "-1", "-1", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
|
||||||
|
|
||||||
Dim CvePaqueteriaGuia As Integer = ObjGeneral.AddPaqueteriasGuias(CvePaqueteria, 9, CveEstatus, CveSubProyecto, Fecha, "-1", "-1", NoCajas, 0.00, "-1", FechaEstimada, Observaciones, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, EsEntregaInterna:=True)
|
|
||||||
|
|
||||||
If CvePaqueteriaGuia > 0 Then
|
If CvePaqueteriaGuia > 0 Then
|
||||||
|
|
||||||
If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
|
If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
|
||||||
ErrorMovInv = Not ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1)
|
ErrorMovInv = Not ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1)
|
||||||
End If
|
End If
|
||||||
|
|
||||||
If ErrorMovInv Then
|
If ErrorMovInv Then
|
||||||
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
|
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
|
||||||
End If
|
End If
|
||||||
|
|||||||
@@ -532,7 +532,7 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
End If
|
End If
|
||||||
Inv.Dispose()
|
Inv.Dispose()
|
||||||
|
|
||||||
If Existencia - Cantidad - CantidadEnGrid < 0 ORELSE ExistenciaEspecificada - Cantidad - CantidadEnGrid < 0 Then
|
If Existencia - Cantidad - CantidadEnGrid < 0 OrElse ExistenciaEspecificada - Cantidad - CantidadEnGrid < 0 Then
|
||||||
If Existencia < 0 OrElse ExistenciaEspecificada < 0 Then
|
If Existencia < 0 OrElse ExistenciaEspecificada < 0 Then
|
||||||
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
|
Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia)
|
||||||
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
|
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'')")
|
||||||
@@ -659,7 +659,7 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
|
Dim CveSucursalOrigen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenOrigen.SelectedValue.ToEntero}")
|
||||||
Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
|
Dim CveSucursalDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveSubProyecto", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}")
|
||||||
|
|
||||||
If GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").ToEntero <> 21 Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
|
If Not GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {DdlAlmacenDestino.SelectedValue.ToEntero}").Contiene("21", "26") Then 'NO SE VALIDA CUANDO EL TIPO DE ALMACEN DESTINO ES DE DEVOLUCION
|
||||||
If CveSucursalOrigen <> CveSucursalDestino Then
|
If CveSucursalOrigen <> CveSucursalDestino Then
|
||||||
Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia)
|
Alert("Por ser un traspaso entre sucursales es necesario indicar que el traspaso es transitorio.", TipoMensaje.MsgAdvertencia)
|
||||||
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
|
RegistraScript("playsonidito(''142608__autistic-lucario__error.wav'');", "SonidoError")
|
||||||
@@ -844,6 +844,9 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
If Not ErrorMovInv Then
|
If Not ErrorMovInv Then
|
||||||
Dim TipoMovimientoEntrada = 27
|
Dim TipoMovimientoEntrada = 27
|
||||||
AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
|
AlmacenEntrada = If(ChkTransitorio.Checked, DdlAlmacenTransitorio.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero)
|
||||||
|
|
||||||
|
Dim TipoAlmacenEntrada As Integer = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {AlmacenEntrada}").ToEntero()
|
||||||
|
|
||||||
CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
|
CveMovimientoEntrada = ObjInventario.AddMovimiento(AlmacenEntrada, TipoMovimientoEntrada, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, -1, -1,
|
||||||
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
|
Observaciones:=TxtObservaciones.Text.Trim, Recibio:=If(ChkTransitorio.Checked, TxtResponsable.Text.Trim, "-1"),
|
||||||
CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G3")
|
CveAlmacenDestino:=If(ChkTransitorio.Checked, DdlAlmacenDestino.SelectedValue.ToEntero, -1), CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G3")
|
||||||
@@ -855,7 +858,8 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
|
||||||
Dim Cont As Integer = 0
|
Dim Cont As Integer = 0
|
||||||
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=-1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Observaciones:=Dr("Observaciones").ToString) Then
|
Dim CostoEntrada As Decimal = If(TipoAlmacenEntrada = 26, 0, Dr("PU").ToString.ToDecimal())
|
||||||
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, CostoEntrada, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=-1, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Observaciones:=Dr("Observaciones").ToString) Then
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
|
TextoError = "Ocurrió un error al guardar los movimientos de entrada"
|
||||||
Exit For
|
Exit For
|
||||||
@@ -1274,7 +1278,7 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
Protected Sub GvDatos_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvDatos.RowDataBound
|
||||||
If e.Row.RowType = DataControlRowType.DataRow Then
|
If e.Row.RowType = DataControlRowType.DataRow Then
|
||||||
|
|
||||||
If e.Row.DBCampo("EstatusExistencia").ToEntero <0 Then
|
If e.Row.DBCampo("EstatusExistencia").ToEntero < 0 Then
|
||||||
e.Row.Cells(0).BackColor = Drawing.Color.Red
|
e.Row.Cells(0).BackColor = Drawing.Color.Red
|
||||||
End If
|
End If
|
||||||
|
|
||||||
@@ -1718,8 +1722,12 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
|
ObjInventario.IniciaTransacSQL() 'Inicia la transacción
|
||||||
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate
|
Dim Fecha As Date = TxtFechaRecepcion.Text.ToDate
|
||||||
|
|
||||||
|
Dim CveAlmacenEntrada As Integer = GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero
|
||||||
|
|
||||||
|
Dim TipoAlmacenDestino As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveTipoAlmacen", $"CveAlmacen = {CveAlmacenEntrada}").ToEntero()
|
||||||
|
|
||||||
'AGREGAMOS LA ENTRADA
|
'AGREGAMOS LA ENTRADA
|
||||||
CveMovimientoSalida = ObjInventario.AddMovimiento(GvDatosRecepcion.Rows(0).DataKey("CveAlmacenDestino").ToEntero, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
|
CveMovimientoSalida = ObjInventario.AddMovimiento(CveAlmacenEntrada, 27, 1, Fecha, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1,
|
||||||
Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1")
|
Observaciones:=TxtObservacionesRecepcion.Text.Trim, CveAlmacenDestino:=GvDatosRecepcion.Rows(0).DataKey("CveAlmacenSalida").ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Modulo:="TA/G1")
|
||||||
Folio = ObjInventario.Folio
|
Folio = ObjInventario.Folio
|
||||||
|
|
||||||
@@ -1751,8 +1759,8 @@ Partial Class Inventarios_TraspasoAlmacen
|
|||||||
TextoError = "Ocurrió un error al guardar los movimientos de salida"
|
TextoError = "Ocurrió un error al guardar los movimientos de salida"
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
Dim PrecioEntrada As Decimal = If(TipoAlmacenDestino = 26, 0, gvr.DataKey("PU").ToString.ToDecimal)
|
||||||
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, gvr.DataKey("PU").ToString.ToDecimal, CveAF:=gvr.DataKey("CveAF").ToString.ToEntero, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.DataKey("Lote").ToString, FechaCaducidad:=gvr.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
|
If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal, gvr.DataKey("CveUM").ToString.ToEntero, gvr.DataKey("CvePS").ToString.ToEntero, PrecioEntrada, CveAF:=gvr.DataKey("CveAF").ToString.ToEntero, CveSeccionAlmacen:=gvr.FCDropDownList("DdlSeccionAlmacen").SelectedValue.ToEntero, Serie:=gvr.DataKey("Serie").ToString, Lote:=gvr.DataKey("Lote").ToString, FechaCaducidad:=gvr.DataKey("FechaCaducidad").ToDate, CveMovimientoDetalleEntrada:=CveMovimientoDetalleEntrada) Then
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
TextoError = "Ocurrió un error al guardar los movimientos de salida"
|
TextoError = "Ocurrió un error al guardar los movimientos de salida"
|
||||||
Exit For
|
Exit For
|
||||||
|
|||||||
Reference in New Issue
Block a user