Surtir de almacen sin costo
This commit is contained in:
@@ -1660,6 +1660,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
|
||||||
|
|
||||||
@@ -1717,13 +1719,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
|
||||||
@@ -1756,6 +1985,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
|
||||||
|
|
||||||
@@ -1807,6 +2038,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
|
||||||
|
|
||||||
@@ -1856,6 +2089,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
|
||||||
|
|
||||||
@@ -1892,7 +2127,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,
|
||||||
@@ -1928,7 +2163,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
|
||||||
@@ -1957,9 +2192,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)
|
||||||
@@ -1999,7 +2234,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
|
||||||
@@ -2083,137 +2318,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
|
||||||
@@ -2416,46 +2555,45 @@ Partial Class Inventarios_EntregaAlmacen
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
'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)
|
||||||
|
|
||||||
|
If CvePaqueteriaGuia > 0 Then
|
||||||
|
|
||||||
|
If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
|
||||||
|
If ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1) Then
|
||||||
|
''manda correo
|
||||||
|
MandaCorreoEntrega(CveVentaSurtir)
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
If ErrorMovInv Then
|
||||||
|
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
ErrorMovInv = True
|
||||||
|
Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
Alert("Hace falta indicar un Sub Proyecto", TipoMensaje.MsgAdvertencia)
|
||||||
|
ErrorMovInv = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ErrorMovInv = True
|
ErrorMovInv = True
|
||||||
OnError("Ocurrió un error al guardar", ex)
|
OnError("Ocurrió un error al guardar", ex)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
'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)
|
|
||||||
|
|
||||||
If CvePaqueteriaGuia > 0 Then
|
|
||||||
|
|
||||||
If CveVentaSurtir > 0 OrElse CveSubProyecto > 0 Then
|
|
||||||
If ObjGeneral.AddPaqueteriasGuiasDetalles(CvePaqueteriaGuia, CveVentaSurtir, -1, CveMovimiento, -1) Then
|
|
||||||
''manda correo
|
|
||||||
MandaCorreoEntrega(CveVentaSurtir)
|
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
If ErrorMovInv Then
|
|
||||||
Alert("Error en el paqueteria guia detalle", TipoMensaje.MsgError)
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
ErrorMovInv = True
|
|
||||||
Alert("Error en el paqueteria guia", TipoMensaje.MsgError)
|
|
||||||
End If
|
|
||||||
Else
|
|
||||||
Alert("Hace falta indicar un Sub Proyecto", TipoMensaje.MsgAdvertencia)
|
|
||||||
ErrorMovInv = True
|
|
||||||
End If
|
|
||||||
End If
|
|
||||||
|
|
||||||
If Not ErrorMovInv Then
|
If Not ErrorMovInv Then
|
||||||
|
|
||||||
ObjInventario.Commit()
|
ObjInventario.Commit()
|
||||||
@@ -2471,13 +2609,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)))
|
||||||
@@ -2512,6 +2660,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
|
||||||
|
|||||||
Reference in New Issue
Block a user