diff --git a/App_Code/ClsAcumuladores.vb b/App_Code/ClsAcumuladores.vb
index 77259bc99..1d8d3ddcc 100644
--- a/App_Code/ClsAcumuladores.vb
+++ b/App_Code/ClsAcumuladores.vb
@@ -666,12 +666,12 @@ Public Class ClsAcumuladores
End Try
Return Retorno
- End Function
-
+ End Function
+
#End Region
-
+
#Region "GARANTIAS DETALLES"
-
+
Public Function AddGarantiasDetalle(CveVentaDetalle As Integer, CveFolioGarantia As Integer, CveTipoUso As Integer,
CodigoEnsamble As String, CodigoLinea As String, CodigoInspeccion As String,
CveTipoDefecto As Integer, NumPoliza As String, Importe As Double,
@@ -697,10 +697,25 @@ Public Class ClsAcumuladores
OnError("Ocurrió un al agregar la garantia detalle. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
End Try
Return Retorno
- End Function
-
+ End Function
+ Public Function GetGarantiasDetalle(CveVenta As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ SqlDataAdapter("PA_Acum_GarantiasDetalleGet")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As SqlException
+ OnError("Ocurrió un al agregar la garantia detalle. ", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+ Return Retorno
+ End Function
+
+
#End Region
-
+
Public Function DistribuidorMovtosAdd(CveCliente As Integer, Cantidad As Integer, CveTamaño As Integer, CveConcepto As Integer, CveVenta As Integer, CveUsuario As Integer,
CveEmpresa As Integer, ImporteCompras As Decimal, Observaciones As String, Optional CveMovimiento As Integer = -1) As Boolean
Dim Retorno As Boolean = False
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index 9d954513c..a1c16daa0 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -1758,7 +1758,6 @@ Namespace Modelos
Private Function GuardarUsados(SqlTransaccion As SqlClient.SqlTransaction, CveVenta As Integer, ByRef ObjVentas As ClsVentas) As Boolean
Dim Resultado As Boolean = True
- 'If ClienteEsDistribuidor Then
If UsuarioActual.Empresa.Funcionalidad(533).ToEntero > 0 Then
Dim CvePSPSA As Integer = UsuarioActual.Empresa.Funcionalidad(533).ToEntero
@@ -1789,15 +1788,7 @@ Namespace Modelos
Resultado = False
End If
End If
-
-
- Else
- ErrorList.Add("El cliente es Distribuidor y no se tiene un producto o servicio asigando como PS Acumulador")
- Resultado = False
End If
- 'Else
- ' Resultado = True
- 'End If
Return Resultado
diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb
index dab265de2..8bb30551f 100644
--- a/Inventarios/RecepcionEntrega.aspx.vb
+++ b/Inventarios/RecepcionEntrega.aspx.vb
@@ -1517,6 +1517,7 @@ Partial Class Inventarios_RecepcionEntrega
Dim ObjConta As New ClsContabilidad(ObjInventario.IniciaTransacSQL())
Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
Dim ObjEventos As New ClsOIEventos(ObjInventario.IniciaTransacSQL())
+ Dim ObjAcumuladores As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
Dim CveMovimiento As Integer
Dim Folio As Integer
Dim ErrorMovInv As Boolean
@@ -1524,6 +1525,8 @@ Partial Class Inventarios_RecepcionEntrega
Dim DtDetalleLote As New DataTable
Dim TextoError = ""
+ Dim CveMovimientoGarantia As Integer = -1
+ Dim FolioGarantia As Integer = -1
'PASA DATOS DEL GV A DATATABLE PARA MANEJOR CON FOR EACH
Dim Index = 0
@@ -1561,131 +1564,6 @@ Partial Class Inventarios_RecepcionEntrega
Exit Sub
End If
-
- 'VALIDA EXISTENCIA 2
- If TipoMovimiento = 1 Then
-
- 'For Each Dr As DataRow In DtDatos.Rows
- ' If Dr("CantidadGV").ToString.ToDecimal > 0 Then
- ' If Dr("Inv_CveMetodoInventario").ToString = "5" Then
- ' DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- ' For Each Dr1 As DataRow In DtDetalle.Rows
- ' If Not ObjInventario.GetExistenciasPS(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= 1 Then
- ' TextoError += String.Format(" - {0} Serie: {1} ", Dr("PS"), Dr1("SerieLote"))
- ' End If
- ' Next
- ' ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
- ' DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- ' For Each Dr1 As DataRow In DtDetalle.Rows
- ' If Not ObjInventario.GetExistenciasPS(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") Then
- ' TextoError += String.Format(" - {0} Lote: {1} Batch: {2} ", Dr("PS"), Dr1("Lote"), Dr1("Batch"))
- ' End If
- ' Next
- ' Else
- 'If Not ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= Dr("CantidadGV").ToString.ToDecimal Then
- ' TextoError += String.Format(" - {0} ", Dr("PS"))
- ' End If
- ' End If
-
- ' End If
- 'Next
-
- Dim StrXML As New StringBuilder
- StrXML.Append("")
- For Each Dr As DataRow In DtDatos.Rows
- If Dr("CantidadGV").ToString.ToDecimal > 0 Then
- If Dr("Inv_CveMetodoInventario").ToString = "5" Then
- DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- For Each Dr1 As DataRow In DtDetalle.Rows
- StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote"))
- Next
- ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
- DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- For Each Dr1 As DataRow In DtDetalle.Rows
- StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'"), Dr1("Lote"))
- Next
- Else
- StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1")
- End If
- End If
- Next
- StrXML.Append("")
-
- 'Alert(StrXML.ToString())
- 'ObjInventario.RollBack()
- 'ObjInventario.Dispose()
- 'Exit Sub
-
- Dim TieneErrorExistencia = False
- If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
- If ObjInventario.DtResultados.Rows.Count > 0 Then
- TieneErrorExistencia = True
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- TextoError += $" - {Dr("CodigoPS")} Existencia: {Dr("Existencia").ToString.ToDecimal.ToString("#,##0.##")} "
- Next
- End If
- Else
- TieneErrorExistencia = True
- End If
-
- If TieneErrorExistencia Then
- ObjInventario.RollBack()
- ObjInventario.Dispose()
- ObjConta.Dispose()
- ObjVentas.Dispose()
- ObjEventos.Dispose()
- If TextoError.Length > 0 Then
- Alert($" Lo(s) siguiente(s) Productos no tienen existencia suficiente:
{TextoError}", TipoMensaje.MsgAdvertencia)
- End If
- RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- Exit Sub
- End If
-
- Else
- 'If Not UsuarioActual.TienePermisoProceso(223) Then 'INVALIDA LA VALIDACION DE EXISTENCIA DE LA VENTA ORIGINAL
- ' If DtExistencias IsNot Nothing Then
- ' For Each Dr As DataRow In DtDatos.Rows
- ' If Dr("CantidadGV").ToString.ToDecimal > 0 Then
-
- ' If Dr("Inv_CveMetodoInventario").ToString = "5" Then
- ' DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- ' For Each Dr1 As DataRow In DtDetalle.Rows
- ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr1("CvePS").ToString.ToEntero} AND CveUM = {Dr1("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'") >= 1 Then
- ' TextoError += String.Format(" - {0} ", Dr1("PS"))
- ' End If
- ' Next
- ' ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
- ' DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
- ' For Each Dr1 As DataRow In DtDetalle.Rows
- ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr1("CvePS").ToString.ToEntero} AND CveUM = {Dr1("CveUM").ToString.ToEntero} AND Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") >= DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") Then
- ' TextoError += String.Format(" - {0} ", Dr1("PS"))
- ' End If
- ' Next
- ' Else
- ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}") >= Dr("CantidadGV").ToString.ToDecimal Then
- ' TextoError += String.Format(" - {0} ", Dr("PS"))
- ' End If
- ' End If
- ' End If
- ' Next
- ' If TextoError <> "" Then
- ' Alert($" Lo(s) siguiente(s) Productos no tienen existencia suficiente:
{TextoError}", TipoMensaje.MsgAdvertencia)
- ' RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
- ' ObjInventario.RollBack()
- ' ObjInventario.Dispose()
- ' ObjConta.Dispose()
- ' ObjVentas.Dispose()
- ' ObjEventos.Dispose()
- ' Exit Sub
- ' End If
- ' End If
- 'End If
- End If
-
- '' TERMINA: VALIDACIONES
-
-
- '' COMIENZA: APARTADOS
Dim DtTraspasos As New DataTable
DtTraspasos.Columns.Add("CveAlmacen", GetType(Integer))
DtTraspasos.Columns.Add("Almacen", GetType(String))
@@ -1695,77 +1573,250 @@ Partial Class Inventarios_RecepcionEntrega
DtTraspasos.Columns.Add("FolioEntrada", GetType(Integer))
Dim CveMovimientoSalida = -1, FolioSalida = -1, CveMovimientoEntrada = -1, CveMovimientoEntradaApartado = -1, FolioEntrada = -1, CveMovimientoSalidaDevRem = -1, FolioMovimientoSalidaDevRem = -1, CveMovimientoEntradaDevRem = -1, FolioMovimientoEntradaDevRem = -1
- Dim CantidadPendiente As Decimal = 0
- Dim CantidadSaldo As Decimal = 0
+ Try
+ 'VALIDA EXISTENCIA 2
+ If TipoMovimiento = 1 Then
- If CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) AndAlso TipoDocto <> "Ped" Then 'no debe considerar cuando es pedido de contrato
- If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
- ' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
+ 'For Each Dr As DataRow In DtDatos.Rows
+ ' If Dr("CantidadGV").ToString.ToDecimal > 0 Then
+ ' If Dr("Inv_CveMetodoInventario").ToString = "5" Then
+ ' DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ ' For Each Dr1 As DataRow In DtDetalle.Rows
+ ' If Not ObjInventario.GetExistenciasPS(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), SerieLote:=Dr1("SerieLote").ToString, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= 1 Then
+ ' TextoError += String.Format(" - {0} Serie: {1} ", Dr("PS"), Dr1("SerieLote"))
+ ' End If
+ ' Next
+ ' ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
+ ' DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ ' For Each Dr1 As DataRow In DtDetalle.Rows
+ ' If Not ObjInventario.GetExistenciasPS(Dr1("CvePS").ToString.ToEntero, Dr1("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") Then
+ ' TextoError += String.Format(" - {0} Lote: {1} Batch: {2} ", Dr("PS"), Dr1("Lote"), Dr1("Batch"))
+ ' End If
+ ' Next
+ ' Else
+ 'If Not ObjInventario.GetExistenciasPS(Dr("CvePS").ToString.ToEntero, Dr("CveUM").ToString.ToEntero, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) >= Dr("CantidadGV").ToString.ToDecimal Then
+ ' TextoError += String.Format(" - {0} ", Dr("PS"))
+ ' End If
+ ' End If
+
+ ' End If
+ 'Next
+
+ Dim StrXML As New StringBuilder
+ StrXML.Append("")
For Each Dr As DataRow In DtDatos.Rows
If Dr("CantidadGV").ToString.ToDecimal > 0 Then
-
If Dr("Inv_CveMetodoInventario").ToString = "5" 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"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
- For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
+ StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, Dr1("SerieLote"))
+ Next
+ ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
+ DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ For Each Dr1 As DataRow In DtDetalle.Rows
+ StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'"), Dr1("Lote"))
+ Next
+ Else
+ StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), "-1")
+ End If
+ End If
+ Next
+ StrXML.Append("")
- 'BUSCA SI EXISTE YA UN TRASPASO DEL ALMACEN DE APARTADO
- CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr2("CveAlmacen")}").ToEntero
+ 'Alert(StrXML.ToString())
+ 'ObjInventario.RollBack()
+ 'ObjInventario.Dispose()
+ 'Exit Sub
- If Not CveMovimientoSalida > 0 Then
- CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
- FolioSalida = ObjInventario.Folio
+ Dim TieneErrorExistencia = False
+ If ObjInventario.GetExistenciasPSXML(StrXML.ToString(), DdlAlmacen.SelectedValue.ToEntero, TxtFecha.Text.ToDateTime.ToString("yyyy/MM/dd HH:mm"), CveSubProyecto, CveVendedor, If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ If ObjInventario.DtResultados.Rows.Count > 0 Then
+ TieneErrorExistencia = True
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ TextoError += $" - {Dr("CodigoPS")} Existencia: {Dr("Existencia").ToString.ToDecimal.ToString("#,##0.##")} "
+ Next
+ End If
+ Else
+ TieneErrorExistencia = True
+ End If
+
+ If TieneErrorExistencia Then
+ ObjInventario.RollBack()
+ ObjInventario.Dispose()
+ ObjConta.Dispose()
+ ObjVentas.Dispose()
+ ObjEventos.Dispose()
+ If TextoError.Length > 0 Then
+ Alert($" Lo(s) siguiente(s) Productos no tienen existencia suficiente:
{TextoError}", TipoMensaje.MsgAdvertencia)
+ End If
+ RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ Exit Sub
+ End If
+
+ Else
+ 'If Not UsuarioActual.TienePermisoProceso(223) Then 'INVALIDA LA VALIDACION DE EXISTENCIA DE LA VENTA ORIGINAL
+ ' If DtExistencias IsNot Nothing Then
+ ' For Each Dr As DataRow In DtDatos.Rows
+ ' If Dr("CantidadGV").ToString.ToDecimal > 0 Then
+
+ ' If Dr("Inv_CveMetodoInventario").ToString = "5" Then
+ ' DtDetalle = DtDatosDetalle.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ ' For Each Dr1 As DataRow In DtDetalle.Rows
+ ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr1("CvePS").ToString.ToEntero} AND CveUM = {Dr1("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'") >= 1 Then
+ ' TextoError += String.Format(" - {0} ", Dr1("PS"))
+ ' End If
+ ' Next
+ ' ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
+ ' DtDetalle = DtDatosDetalleLote.FiltraParametros(String.Format("ConsecId = {0}", Dr("Consec")))
+ ' For Each Dr1 As DataRow In DtDetalle.Rows
+ ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr1("CvePS").ToString.ToEntero} AND CveUM = {Dr1("CveUM").ToString.ToEntero} AND Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") >= DtDatosDetalleLote.SUM("Cantidad", $"Lote = '{Dr1("Lote").ToString}' AND Batch = '{Dr1("Batch").ToString}'") Then
+ ' TextoError += String.Format(" - {0} ", Dr1("PS"))
+ ' End If
+ ' Next
+ ' Else
+ ' If Not DtExistencias.SUM("Cantidad", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}") >= Dr("CantidadGV").ToString.ToDecimal Then
+ ' TextoError += String.Format(" - {0} ", Dr("PS"))
+ ' End If
+ ' End If
+ ' End If
+ ' Next
+ ' If TextoError <> "" Then
+ ' Alert($" Lo(s) siguiente(s) Productos no tienen existencia suficiente:
{TextoError}", TipoMensaje.MsgAdvertencia)
+ ' RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
+ ' ObjInventario.RollBack()
+ ' ObjInventario.Dispose()
+ ' ObjConta.Dispose()
+ ' ObjVentas.Dispose()
+ ' ObjEventos.Dispose()
+ ' Exit Sub
+ ' End If
+ ' End If
+ 'End If
+ End If
+
+ '' TERMINA: VALIDACIONES
+
+
+ '' COMIENZA: APARTADOS
+ Dim CantidadPendiente As Decimal = 0
+ Dim CantidadSaldo As Decimal = 0
+
+
+ If CveVendedor > 0 AndAlso (UsuarioActual.Empresa.Funcionalidad(146) = "1" Or CveCliente > 0) AndAlso TipoDocto <> "Ped" Then 'no debe considerar cuando es pedido de contrato
+ If TipoMovimiento = 1 Then ' SI ES DEVOLUCION NO APLICA APARTADO
+ ' SALIDA POR TRASPASO DE LOS ALMACENES DE APARTADO
+ For Each Dr As DataRow In DtDatos.Rows
+ If Dr("CantidadGV").ToString.ToDecimal > 0 Then
+
+ If Dr("Inv_CveMetodoInventario").ToString = "5" 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"), SerieLote:=Dr1("SerieLote").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-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, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
+ FolioSalida = ObjInventario.Folio
+
+ If Not CveMovimientoSalida > 0 Then
+ ErrorMovInv = True
+ TextoError = "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
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+
+ CantidadPendiente = 1
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los movimientos de traspaso de apartado. Por favor vuelva a intentar."
+ TextoError = "Ocurrió un error al procesar los conceptos 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
- DtTraspasos.Rows.Add(DrMovto)
- End If
-
-
- CantidadPendiente = 1
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
+ DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
+ Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendiente
Exit For
- End If
+ Next
+ End If
+ If ErrorMovInv Then Exit For
+ Next
- DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("FueTraspaso") = 1
- DtDatosDetalle.Select($"Consec = {Dr1("Consec")}")(0)("CveVentaDetalle") = Dr("CveVentaDetalle")
- Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendiente
- Exit For
- Next
- End If
- If ErrorMovInv Then Exit For
- Next
+ ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" Then
- ElseIf Dr("Inv_CveMetodoInventario").ToString = "6" 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, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) 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, Batch:=Dr1("Batch").ToString, CveTipoAlmacen:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
+ CantidadSaldo = 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, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
+ FolioSalida = ObjInventario.Folio
+
+ If Not CveMovimientoSalida > 0 Then
+ ErrorMovInv = True
+ TextoError = "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
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+ CantidadPendiente = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("Cantidad").ToString.ToDecimal)
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ ErrorMovInv = True
+ TextoError = "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")
+
+ CantidadSaldo -= CantidadPendiente
+ Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendiente
+ If CantidadSaldo <= 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:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
CantidadSaldo = Dr("CantidadGV").ToString.ToDecimal
- For Each Dr2 As DataRow In ObjInventario.DtResultados.FiltraParametros("CveAlmacen > 0 AND ExistenciaFinal > 0").Rows
+ 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 = {Dr2("CveAlmacen")}").ToEntero
+ CveMovimientoSalida = DtTraspasos.FiltroPrimeroValor("CveMovimientoSalida", $"CveAlmacen = {Dr1("CveAlmacen")}").ToEntero
If Not CveMovimientoSalida > 0 Then
- CveMovimientoSalida = ObjInventario.AddMovimiento(Dr2("CveAlmacen").ToString.ToEntero, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
+ CveMovimientoSalida = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString.ToEntero, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
FolioSalida = ObjInventario.Folio
If Not CveMovimientoSalida > 0 Then
@@ -1775,382 +1826,44 @@ Partial Class Inventarios_RecepcionEntrega
End If
Dim DrMovto = DtTraspasos.NewRow
- DrMovto("Almacen") = Dr2("Almacen").ToString.ToEntero
- DrMovto("CveAlmacen") = Dr2("CveAlmacen").ToString.ToEntero
+ DrMovto("Almacen") = Dr1("Almacen").ToString.ToEntero
+ DrMovto("CveAlmacen") = Dr1("CveAlmacen").ToString.ToEntero
DrMovto("CveMovimientoSalida") = CveMovimientoSalida
DrMovto("FolioSalida") = FolioSalida
DtTraspasos.Rows.Add(DrMovto)
End If
- CantidadPendiente = If(Dr1("Cantidad").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("Cantidad").ToString.ToDecimal)
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ CantidadPendiente = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("ExistenciaFinal").ToString.ToDecimal)
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
ErrorMovInv = True
TextoError = "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")
-
CantidadSaldo -= CantidadPendiente
Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendiente
If CantidadSaldo <= 0 Then Exit For
Next
+
+ If ErrorMovInv Then Exit For
+
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:=9, CveVendedor:=CveVendedor, CveSubProyecto:=CveSubProyecto, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), ExcluyeApartados:=-1) Then
-
- CantidadSaldo = 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, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=If(UsuarioActual.Empresa.Funcionalidad(146) = "1", -1, CveCliente), CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
- FolioSalida = ObjInventario.Folio
-
- If Not CveMovimientoSalida > 0 Then
- ErrorMovInv = True
- TextoError = "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
- DtTraspasos.Rows.Add(DrMovto)
- End If
-
-
- CantidadPendiente = If(Dr1("ExistenciaFinal").ToString.ToDecimal > CantidadSaldo, CantidadSaldo, Dr1("ExistenciaFinal").ToString.ToDecimal)
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalida, CantidadPendiente.ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, 0, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
- Exit For
- End If
-
- CantidadSaldo -= CantidadPendiente
- Dr("CantidadTraspaso") = Dr("CantidadTraspaso").ToString.ToDecimal + CantidadPendiente
- If CantidadSaldo <= 0 Then Exit For
- Next
-
- If ErrorMovInv Then Exit For
End If
+ If ErrorMovInv Then Exit For
End If
- If ErrorMovInv Then Exit For
-
- End If
-
- Next
-
- 'ENTRADA POR TRASPASO AL ALMACEN GENERAL
- If Not ErrorMovInv Then
- For Each Dr1 As DataRow In DtTraspasos.Rows
- 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, Observaciones:=TxtObservaciones.Text.Trim, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero, CveMovimientoRelacionado:=CveMovimientoSalida, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente)
- FolioEntrada = ObjInventario.Folio
-
- If Not CveMovimientoEntradaApartado > 0 Then
- ErrorMovInv = True
- TextoError = "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.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
- ErrorMovInv = True
- TextoError = "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
- End If
- '' TERMINA: APARTADOS
-
-
- If Not ErrorMovInv Then
- Dim ConceptoMovimiento = 3
- ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
- ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
-
- Dim Almacen1 = DdlAlmacen.SelectedValue.ToEntero
-
- 'DEVOLUCION REMISION
- If TipoMovimiento = 2 And TipoDocto = "Rem" Then
- ConceptoMovimiento = 8
- Almacen1 = CveAlmacenTraspasoDestino
- CveAlmacenTraspasoDestino = DdlAlmacen.SelectedValue.ToEntero
- End If
-
- 'CANCELACION DE DEVOLUCION
- If TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1 Then
- ConceptoMovimiento = 3
- Almacen1 = DdlAlmacen.SelectedValue.ToEntero
- CveAlmacenTraspasoDestino = DdlAlmacen.SelectedValue.ToEntero
- End If
-
- CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenTraspasoDestino)
- Folio = ObjInventario.Folio
-
- 'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
- 'If Not (CveContrato > 0 And CveAlmacenTraspasoDestino > 0) Then
- If CveMovimiento > 0 Then
-
- 'SACA LO DE TRASPASOS - APARTADO
- For Each Dr1 As DataRow In DtTraspasos.Rows
- CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
- ErrorMovInv = True
- TextoError = "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
-
- 'ES EL MOVIMIENTO PRINCIPAL
- CantidadPendiente = 0
- Dim Cont As Integer = 0
- For Each Dr As DataRow In DtDatos.Rows
- CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal
- If CantidadPendiente > 0 Then
- Dim PU As Decimal = 0
-
- 'SI FUE POR SERIELOTE
- 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")))
- If DtDetalle.Rows.Count > 0 Then
- For Each Dr1 As DataRow In DtDetalle.Rows
- If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
- PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
- End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- ElseIf DtDetalleLote.Rows.Count > 0 Then
- For Each Dr1 As DataRow In DtDetalleLote.Rows
- If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
- PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
- End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- Else
- If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
- PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}").ToString.ToDecimal
- End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
- Exit For
- End If
- End If
- If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
- For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont}").Rows
- If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
- Exit For
- End If
- Next
- End If
- Cont += 1
- End If
- Next
- Else
- ErrorMovInv = True
- 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)
- FolioEntrada = ObjInventario.Folio
-
- If CveMovimientoEntrada <= 0 Then
- TextoError = "No se pudo generar el movimiento de entrada correctamente"
- ErrorMovInv = True
- Else
- If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) 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.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de entrada"
- Exit For
- End If
- Next
- End If
- End If
-
- 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 SerieFolio As String = ObjVentas.DtResultados(0)("SerieFolio").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)
- 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, SerieFolio, 69, SerieFolio, 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, SerieFolio, 68, SerieFolio, 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")
- 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 = "Ocurrió un Error al ingresar las prepolizas"
- End If
-
- End If
- End If
- End If
-
- End If
-
- 'DEVOLUCION APARTADOS
- If Not ErrorMovInv Then
- If TipoMovimiento = 2 Then
- If ObjInventario.VentasAlmacenApartadosGet(CveVentaSurtir) Then
-
- Dim DtTempApartados = ObjInventario.DtResultados.FiltraParametros("CveTipoAlmacen = 9", "CveAlmacen")
- Dim CveMovimientoSalidaApartado = -1
- Dim CveAlmacenApartado = -1
- Dim CveAlmacenOrigen = If(CveAlmacenTraspasoDestino > 0, CveAlmacenTraspasoDestino, DdlAlmacen.SelectedValue.ToEntero)
-
- For Each Dr As DataRow In DtTempApartados.Rows
-
- If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString.ToEntero Then
- CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, CveAlmacenDestino:=Dr("CveAlmacen").ToString.ToEntero)
- FolioSalida = ObjInventario.Folio
- CveAlmacenApartado = Dr("CveAlmacen").ToString.ToEntero
-
- Dim DrMovto = DtTraspasos.NewRow
- DrMovto("Almacen") = Dr("Almacen").ToString.ToEntero
- DrMovto("CveAlmacen") = Dr("CveAlmacen").ToString.ToEntero
- DrMovto("CveMovimientoSalida") = CveMovimientoSalidaApartado
- DrMovto("FolioSalida") = FolioSalida
- DtTraspasos.Rows.Add(DrMovto)
- End If
-
- If Not CveMovimientoSalidaApartado > 0 Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de control de apartados"
- Exit For
- End If
-
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaApartado, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de control de apartados"
- Exit For
- End If
- Next
+ 'ENTRADA POR TRASPASO AL ALMACEN GENERAL
If Not ErrorMovInv Then
For Each Dr1 As DataRow In DtTraspasos.Rows
CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
- CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString.ToEntero, 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)
+ CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 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)
FolioEntrada = ObjInventario.Folio
If Not CveMovimientoEntradaApartado > 0 Then
@@ -2164,7 +1877,7 @@ Partial Class Inventarios_RecepcionEntrega
If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
ErrorMovInv = True
TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
Exit For
@@ -2176,97 +1889,404 @@ Partial Class Inventarios_RecepcionEntrega
Next
End If
-
End If
End If
- End If
+ '' TERMINA: APARTADOS
- 'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
- If Not ErrorMovInv And EsDevolucionVenta = 1 And TipoDocto = "Ing" Then
- Dim DtDevRem As New DataTable
- Dim DtMovtosDev As New DataTable
- Dim CveAlmacenTraspasoDestinoDevRem = -1
+ ' COMIENZA: GARANTIAS
+ If TipoDocto.Contiene("Rem") AndAlso UsuarioActual.CveEmpresa = 140 AndAlso TipoMovimiento = 1 Then
- Dim CveVentaDetalleRem = -1
- Dim CantidadDevolver As Decimal = 0
- Dim CantidadRem As Decimal = 0
+ Dim CveAlmacenGarantia As Integer = GlobalDTAlmacenUsuarios(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, 6).FiltroPrimeroValor("CveAlmacen", $"CveSubProyecto={CveSubProyecto}").ToEntero()
+ Dim DtGarantias As DataTable = Nothing
- 'CARGA REMISIONES DE LA VENTA DEVUELTA
- If ObjInventario.GetDevolucionRemisionesFacturadas(CveVentaSurtir) Then
- DtDevRem = ObjInventario.DtResultados.FiltraParametros("CantidadAlmacen > 0")
- Else
- ErrorMovInv = True
+ If ObjAcumuladores.GetGarantiasDetalle(CveVentaSurtir) Then
+ DtGarantias = ObjAcumuladores.DtResultados.Copy()
+ End If
+
+ If DtGarantias IsNot Nothing AndAlso DtGarantias.Rows.Count > 0 Then
+ CveMovimientoGarantia = ObjInventario.AddMovimiento(CveAlmacenGarantia, 2, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text)
+ FolioGarantia = ObjInventario.Folio
+
+ For Each RowGarantia As DataRow In DtGarantias.Rows
+ Dim CvePS = RowGarantia("CvePS").ToString().ToEntero()
+ Dim CveTamaño As Integer = RowGarantia("CveTamaño").ToString().ToEntero()
+ Dim CveUM As Integer = RowGarantia("CveUnidadMedida").ToString().ToEntero()
+ Dim PU As Double = RowGarantia("Importe").ToString().ToDouble() ' / RowGarantia("Cantidad").ToString().ToDouble()
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoGarantia, RowGarantia("Cantidad").ToString().ToDouble(), CveUM, CvePS, PU, -1) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
End If
- 'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
- If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
- DtMovtosDev = ObjInventario.DtResultados
- Else
- ErrorMovInv = True
- End If
+ ' TERMINA: GARANTIAS
If Not ErrorMovInv Then
- If DtDevRem.Rows.Count > 0 And DtMovtosDev.Rows.Count > 0 Then
+ Dim ConceptoMovimiento = 3
+ ConceptoMovimiento = If(TipoMovimiento = 1, ConceptoMovimiento, 18)
+ ConceptoMovimiento = If(CveAlmacenTraspasoDestino > 0, 8, ConceptoMovimiento)
- For Each DrMovtos As DataRow In DtDevRem.FiltraParametros("", "CveRem", {"CveRem", "CveAlmacenTraspasoDestino"}).Rows
- CveAlmacenTraspasoDestinoDevRem = DrMovtos("CveAlmacenTraspasoDestino").ToString.ToEntero
- If Not CveAlmacenTraspasoDestinoDevRem > 0 Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al obtener el almacén de devolucion de remisión."
- Exit For
- End If
+ Dim Almacen1 = DdlAlmacen.SelectedValue.ToEntero
- 'SALIDA GENERAL
- CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=CveAlmacenTraspasoDestinoDevRem)
- FolioMovimientoSalidaDevRem = ObjInventario.Folio
+ 'DEVOLUCION REMISION
+ If TipoMovimiento = 2 And TipoDocto = "Rem" Then
+ ConceptoMovimiento = 8
+ Almacen1 = CveAlmacenTraspasoDestino
+ CveAlmacenTraspasoDestino = DdlAlmacen.SelectedValue.ToEntero
+ End If
- 'ENTRADA ADELANTADO
- CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestinoDevRem, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
- FolioMovimientoEntradaDevRem = ObjInventario.Folio
+ 'CANCELACION DE DEVOLUCION
+ If TipoMovimiento = 2 And TipoDocto = "Dev" And EsDevolucionVenta = 1 Then
+ ConceptoMovimiento = 3
+ Almacen1 = DdlAlmacen.SelectedValue.ToEntero
+ CveAlmacenTraspasoDestino = DdlAlmacen.SelectedValue.ToEntero
+ End If
- If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al generar los movimientos de devolución a remisión."
- Exit For
- End If
+ CveMovimiento = ObjInventario.AddMovimiento(Almacen1, ConceptoMovimiento, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenTraspasoDestino)
+ Folio = ObjInventario.Folio
+ 'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
+ 'If Not (CveContrato > 0 And CveAlmacenTraspasoDestino > 0) Then
+ If CveMovimiento > 0 Then
- 'SALIDA POR TRAPASO DE GENERAL
- For Each DrRem As DataRow In DtDevRem.FiltraParametros($"CveRem = {DrMovtos("CveRem")}").Rows
- CveVentaDetalleRem = DrRem("CveVentaDetalleRem").ToString.ToEntero
- CantidadRem = DrRem("CantidadFacturada").ToString.ToDecimal
- 'CantidadDevolver = DtMovtosDev.FiltroPrimeroValor("Cantidad", $"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").ToDouble
- 'If (Dr("Cantidad").ToString.ToDouble > CantidadRem, CantidadRem, Dr("Cantidad").ToString.ToDouble) Then
-
- If Not CveVentaDetalleRem > 0 Then
- ErrorMovInv = True
- TextoError = "Ocurrió un error al obtener la relación de la venta con la remisión."
- Exit For
- End If
-
- For Each Dr As DataRow In DtMovtosDev.FiltraParametros($"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ 'SACA LO DE TRASPASOS - APARTADO
+ For Each Dr1 As DataRow In DtTraspasos.Rows
+ CveMovimientoSalida = Dr1("CveMovimientoEntrada").ToString.ToEntero
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de salida de traspaso de devolucion de remisión."
+ TextoError = "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
- If ErrorMovInv Then
+ 'ES EL MOVIMIENTO PRINCIPAL
+ CantidadPendiente = 0
+ Dim Cont As Integer = 0
+ For Each Dr As DataRow In DtDatos.Rows
+ CantidadPendiente = Dr("CantidadGV").ToString.ToDecimal - Dr("CantidadTraspaso").ToString.ToDecimal
+ If CantidadPendiente > 0 Then
+ Dim PU As Decimal = 0
+
+ 'SI FUE POR SERIELOTE
+ 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")))
+ If DtDetalle.Rows.Count > 0 Then
+ For Each Dr1 As DataRow In DtDetalle.Rows
+ If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
+ PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, 1, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, SerieLote:=Dr1("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ ElseIf DtDetalleLote.Rows.Count > 0 Then
+ For Each Dr1 As DataRow In DtDetalleLote.Rows
+ If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
+ PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero} AND SerieLote = '{Dr1("SerieLote").ToString}'").ToString.ToDecimal
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, Dr1("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, Lote:=Dr1("Lote").ToString, Batch:=Dr1("Batch").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar los conceptos con serie. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ Else
+ If TipoMovimiento = 2 AndAlso DtExistencias IsNot Nothing Then
+ PU = DtExistencias.FiltroPrimeroValor("PU", $"CvePS = {Dr("CvePS")} AND CveUM = {Dr("CveUM").ToString.ToEntero}").ToString.ToDecimal
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimiento, CantidadPendiente, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, PU, -1, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar los conceptos de salida. Por favor vuelva a intentar."
+ Exit For
+ End If
+ End If
+ If ObjInventario.CveMovimientoDetalle > 0 AndAlso DtSeccionAlmacen.Rows.Count > 0 Then
+ For Each Dr2 As DataRow In DtSeccionAlmacen.FiltraParametros($"IndexSeccionAlmacen = {Cont}").Rows
+ If Not ObjInventario.AddMovimientosDetalleSeccionesAlmacen(ObjInventario.CveMovimientoDetalle, Dr2("CveSeccionAlmacen").ToString.ToEntero, -Dr2("CantidadSeccionAlmacen").ToString.ToDecimal) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al procesar las secciones de almacen. Por favor vuelva a intentar."
+ Exit For
+ End If
+ Next
+ End If
+ Cont += 1
+ End If
+ Next
+ Else
+ ErrorMovInv = True
+ 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)
+ FolioEntrada = ObjInventario.Folio
+
+ If CveMovimientoEntrada <= 0 Then
+ TextoError = "No se pudo generar el movimiento de entrada correctamente"
+ ErrorMovInv = True
+ Else
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) 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.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString, EsInterno:=EsInterno) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de entrada"
+ Exit For
+ End If
+ Next
+ End If
+ End If
+
+ 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 SerieFolio As String = ObjVentas.DtResultados(0)("SerieFolio").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)
+ 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, SerieFolio, 69, SerieFolio, 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, SerieFolio, 68, SerieFolio, 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")
+ 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 = "Ocurrió un Error al ingresar las prepolizas"
+ End If
+
+ End If
+ End If
+ End If
+
+ End If
+
+ 'DEVOLUCION APARTADOS
+ If Not ErrorMovInv Then
+ If TipoMovimiento = 2 Then
+ If ObjInventario.VentasAlmacenApartadosGet(CveVentaSurtir) Then
+
+ Dim DtTempApartados = ObjInventario.DtResultados.FiltraParametros("CveTipoAlmacen = 9", "CveAlmacen")
+ Dim CveMovimientoSalidaApartado = -1
+ Dim CveAlmacenApartado = -1
+ Dim CveAlmacenOrigen = If(CveAlmacenTraspasoDestino > 0, CveAlmacenTraspasoDestino, DdlAlmacen.SelectedValue.ToEntero)
+
+ For Each Dr As DataRow In DtTempApartados.Rows
+
+ If CveMovimientoSalidaApartado = -1 Or CveAlmacenApartado <> Dr("CveAlmacen").ToString.ToEntero Then
+ CveMovimientoSalidaApartado = ObjInventario.AddMovimiento(CveAlmacenOrigen, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVentaSurtir, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveVendedor:=CveVendedor, CveCliente:=CveCliente, CveAlmacenDestino:=Dr("CveAlmacen").ToString.ToEntero)
+ FolioSalida = ObjInventario.Folio
+ CveAlmacenApartado = Dr("CveAlmacen").ToString.ToEntero
+
+ Dim DrMovto = DtTraspasos.NewRow
+ DrMovto("Almacen") = Dr("Almacen").ToString.ToEntero
+ DrMovto("CveAlmacen") = Dr("CveAlmacen").ToString.ToEntero
+ DrMovto("CveMovimientoSalida") = CveMovimientoSalidaApartado
+ DrMovto("FolioSalida") = FolioSalida
+ DtTraspasos.Rows.Add(DrMovto)
+ End If
+
+ If Not CveMovimientoSalidaApartado > 0 Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de control de apartados"
+ Exit For
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaApartado, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de control de apartados"
Exit For
End If
Next
- If ErrorMovInv Then
- Exit For
+ If Not ErrorMovInv Then
+ For Each Dr1 As DataRow In DtTraspasos.Rows
+ CveMovimientoSalida = Dr1("CveMovimientoSalida").ToString.ToEntero
+
+ CveMovimientoEntradaApartado = ObjInventario.AddMovimiento(Dr1("CveAlmacen").ToString.ToEntero, 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)
+ FolioEntrada = ObjInventario.Folio
+
+ If Not CveMovimientoEntradaApartado > 0 Then
+ ErrorMovInv = True
+ TextoError = "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.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorMovInv = True
+ TextoError = "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
- 'ENTRADA POR TRAPASO A ENTREGA POR ADELANTADO
- If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
- For Each Dr As DataRow In ObjInventario.DtResultados.Rows
- If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ End If
+ End If
+ End If
+
+ 'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
+ If Not ErrorMovInv And EsDevolucionVenta = 1 And TipoDocto = "Ing" Then
+ Dim DtDevRem As New DataTable
+ Dim DtMovtosDev As New DataTable
+ Dim CveAlmacenTraspasoDestinoDevRem = -1
+
+ Dim CveVentaDetalleRem = -1
+ Dim CantidadDevolver As Decimal = 0
+ Dim CantidadRem As Decimal = 0
+
+ 'CARGA REMISIONES DE LA VENTA DEVUELTA
+ If ObjInventario.GetDevolucionRemisionesFacturadas(CveVentaSurtir) Then
+ DtDevRem = ObjInventario.DtResultados.FiltraParametros("CantidadAlmacen > 0")
+ Else
+ ErrorMovInv = True
+ End If
+
+ 'CARGA CONCEPTOS DEVUELTOS EN LA VENTA
+ If ObjInventario.GetMovimientosDetalle(CveMovimiento, UsuarioActual.CveEmpresa) Then
+ DtMovtosDev = ObjInventario.DtResultados
+ Else
+ ErrorMovInv = True
+ End If
+
+ If Not ErrorMovInv Then
+ If DtDevRem.Rows.Count > 0 And DtMovtosDev.Rows.Count > 0 Then
+
+ For Each DrMovtos As DataRow In DtDevRem.FiltraParametros("", "CveRem", {"CveRem", "CveAlmacenTraspasoDestino"}).Rows
+ CveAlmacenTraspasoDestinoDevRem = DrMovtos("CveAlmacenTraspasoDestino").ToString.ToEntero
+ If Not CveAlmacenTraspasoDestinoDevRem > 0 Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al obtener el almacén de devolucion de remisión."
+ Exit For
+ End If
+
+ 'SALIDA GENERAL
+ CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, 8, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimiento, CveAlmacenDestino:=CveAlmacenTraspasoDestinoDevRem)
+ FolioMovimientoSalidaDevRem = ObjInventario.Folio
+
+ 'ENTRADA ADELANTADO
+ CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenTraspasoDestinoDevRem, 9, 1, TxtFecha.Text.ToDate, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, Guia:=TxtGuia.Text, CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=DdlAlmacen.SelectedValue.ToEntero)
+ FolioMovimientoEntradaDevRem = ObjInventario.Folio
+
+ If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al generar los movimientos de devolución a remisión."
+ Exit For
+ End If
+
+
+ 'SALIDA POR TRAPASO DE GENERAL
+ For Each DrRem As DataRow In DtDevRem.FiltraParametros($"CveRem = {DrMovtos("CveRem")}").Rows
+ CveVentaDetalleRem = DrRem("CveVentaDetalleRem").ToString.ToEntero
+ CantidadRem = DrRem("CantidadFacturada").ToString.ToDecimal
+ 'CantidadDevolver = DtMovtosDev.FiltroPrimeroValor("Cantidad", $"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").ToDouble
+ 'If (Dr("Cantidad").ToString.ToDouble > CantidadRem, CantidadRem, Dr("Cantidad").ToString.ToDouble) Then
+
+ If Not CveVentaDetalleRem > 0 Then
ErrorMovInv = True
- TextoError = "Ocurrió un error al guardar los movimientos de entrada de traspaso de devolucion de remisión."
+ TextoError = "Ocurrió un error al obtener la relación de la venta con la remisión."
+ Exit For
+ End If
+
+ For Each Dr As DataRow In DtMovtosDev.FiltraParametros($"CveVentaDetalle = {DrRem("CveVentaDetalle").ToString.ToEntero}").Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDouble, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de salida de traspaso de devolucion de remisión."
+ Exit For
+ End If
+ Next
+
+ If ErrorMovInv Then
Exit For
End If
Next
@@ -2275,50 +2295,70 @@ Partial Class Inventarios_RecepcionEntrega
Exit For
End If
- Else
- ErrorMovInv = True
- TextoError = "Ocurrió un error al obtener los detalles de la devolución de almacén"
- Exit For
- End If
+ 'ENTRADA POR TRAPASO A ENTREGA POR ADELANTADO
+ If ObjInventario.GetMovimientosDetalle(CveMovimientoSalidaDevRem, UsuarioActual.CveEmpresa) Then
+ For Each Dr As DataRow In ObjInventario.DtResultados.Rows
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaDevRem, Dr("Cantidad").ToString.ToDecimal, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, -1, Dr("SerieLote").ToString, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al guardar los movimientos de entrada de traspaso de devolucion de remisión."
+ Exit For
+ End If
+ Next
+
+ If ErrorMovInv Then
+ Exit For
+ End If
+
+ Else
+ ErrorMovInv = True
+ TextoError = "Ocurrió un error al obtener los detalles de la devolución de almacén"
+ Exit For
+ End If
- If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, DrMovtos("CveRem").ToString.ToEntero) Then
- TextoError = "Ocurrió un error al hacer la devolucion hacia la remision. Por favor vuelva a intentar."
- ErrorMovInv = True
- Exit For
- End If
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, DrMovtos("CveRem").ToString.ToEntero) Then
+ TextoError = "Ocurrió un error al hacer la devolucion hacia la remision. Por favor vuelva a intentar."
+ ErrorMovInv = True
+ Exit For
+ End If
- Next
+ Next
+ End If
+ Else
+ TextoError = "Ocurrió un error al hacer la devolucion a remisión. Por favor vuelva a intentar."
+ ErrorMovInv = True
End If
- Else
- TextoError = "Ocurrió un error al hacer la devolucion a remisión. Por favor vuelva a intentar."
- ErrorMovInv = True
+
End If
- End If
-
- 'QUEMA DEVOLUCION | QUEMA = LA QUITA DE PENDIENTE POR RECIBIR (DEVOLVER)
- If Not ErrorMovInv And EsDevolucionVenta = 1 Then
- If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVentaSurtir) Then
- TextoError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
- ErrorMovInv = True
+ 'QUEMA DEVOLUCION | QUEMA = LA QUITA DE PENDIENTE POR RECIBIR (DEVOLVER)
+ If Not ErrorMovInv And EsDevolucionVenta = 1 Then
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveVentaSurtir) Then
+ TextoError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
+ ErrorMovInv = True
+ End If
End If
- End If
- If Not ErrorMovInv And EsDevolucionVenta = 0 Then
- If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, CveVentaSurtir) Then
- TextoError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
- ErrorMovInv = True
+ If Not ErrorMovInv And EsDevolucionVenta = 0 Then
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(0, CveVentaSurtir) Then
+ TextoError = "Ocurrió un error al hacer la devolucion. Por favor vuelva a intentar."
+ ErrorMovInv = True
+ End If
End If
- End If
- 'AGREGA BITACORA A VENTA
- If Not ErrorMovInv Then
- Dim MensajeBitacora = If(TipoMovimiento = 1, "Surtida", "Devuelta")
- If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: {1}", CveMovimiento, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVentaSurtir) Then
- ErrorMovInv = True
+ 'AGREGA BITACORA A VENTA
+ If Not ErrorMovInv Then
+ Dim MensajeBitacora = If(TipoMovimiento = 1, "Surtida", "Devuelta")
+ If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: {1}", CveMovimiento, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVentaSurtir) Then
+ 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
ObjInventario.Commit()
@@ -2345,6 +2385,11 @@ Partial Class Inventarios_RecepcionEntrega
Next
End If
+ If CveMovimientoGarantia > 0 Then
+ Msg.AppendFormat(" Movimiento de Entrada (garantías): {1}", CveMovimientoGarantia, FolioGarantia)
+ Msg.AppendFormat(" Imprimir Movimiento ", Encripta(String.Format("OP=Alm&CveMovimiento={0}", CveMovimientoGarantia)))
+ End If
+
'If CveMovimientoSalidaDevRem > 0 Then
' Msg.AppendFormat("
+
diff --git a/Inventarios/RecepcionUsados.aspx.vb b/Inventarios/RecepcionUsados.aspx.vb
index 76700abb6..fe826c4be 100644
--- a/Inventarios/RecepcionUsados.aspx.vb
+++ b/Inventarios/RecepcionUsados.aspx.vb
@@ -197,6 +197,14 @@ Partial Class Inventarios_RecepcionUsados
Set(value As Integer)
ViewState("FolioAsignado") = value
End Set
+ End Property
+ Private Property CveRemisionRecibida As Integer
+ Get
+ Return IfNull(ViewState("CveRemisionRecibida"), -1, CType(ViewState("CveRemisionRecibida"), Integer)).ToString().ToEntero()
+ End Get
+ Set(value As Integer)
+ ViewState("CveRemisionRecibida") = value
+ End Set
End Property
@@ -270,6 +278,7 @@ Partial Class Inventarios_RecepcionUsados
CreaDT()
CargaCombos()
TxtFecha.Text = Now.ToShortDateString
+ TxtFechaPendientes.Text = Now.ToShortDateString
RVFecha.MaximumValue = Now.ToShortDateString
InicializaClientes()
@@ -298,6 +307,7 @@ Partial Class Inventarios_RecepcionUsados
End If
End If
+ CargaSubProyectosUsados()
InicializaBitacoraTemporal()
If UsuarioActual.Empresa.Funcionalidad(132) = "1" Then
@@ -506,9 +516,31 @@ Partial Class Inventarios_RecepcionUsados
End Sub
Private Sub CargaSubProyectos()
DdlSubProyecto.DataSource = If(UsuarioActual.Empresa.Funcionalidad(102) = "1" AndAlso Not UsuarioActual.TienePermisoProceso(110), GlobalDTSubProyectosUsuarios(UsuarioActual.CveUsuario, -1, UsuarioActual.CveEmpresa, -1, 1), GlobalDTSubProyectos(-1, -1, UsuarioActual.CveEmpresa, 1))
- DdlSubProyecto.DataBind()
+ DdlSubProyecto.DataBind()
+
+
'DdlSubProyecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
End Sub
+
+ Private Sub CargaSubProyectosUsados()
+ If UsuarioActual.CveEmpresa = 140 Then
+ DivRecepcionUsados.Visible = True
+
+ If Not UsuarioActual.TienePermisoProceso(190) Then
+ 'CARGA SOLO LAS SUCURSALES DE LOS ALMCENES QUE TIENE ASIGNADO EL USUARIO
+ Dim ObjInventarios As New ClsInventarios
+ If ObjInventarios.GetSucursalesAlmacenUsuario(UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa) Then
+ DdlSubProyectos.DataSource = ObjInventarios.DtResultados
+ End If
+ ObjInventarios.Dispose()
+ Else
+ DdlSubProyectos.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
+ End If
+ DdlSubProyectos.DataBind()
+ DdlSubProyectos.SelectedValueExist(UsuarioActual.CveSubProyecto.ToString)
+ End If
+
+ End Sub
Private Sub CargaPersonal()
TrPersonal.Visible = True
Dim dt As DataTable = Nothing
@@ -940,16 +972,12 @@ Partial Class Inventarios_RecepcionUsados
End Sub
Protected Sub BtnGuardar_Click(sender As Object, e As EventArgs) Handles BtnGuardar.Click
-
-
-
-
If GvM.Rows.Count > 0 Then
'Dim CveMovimiento As Integer
Dim ObjInventario As New ClsInventarios
Dim ObjAcum As New ClsAcumuladores(ObjInventario.IniciaTransacSQL())
-
+ Dim ObjVentas As New ClsVentas(ObjInventario.IniciaTransacSQL())
Dim ErrorMovInv As Boolean = False
Dim ErrorAC As Boolean = False
@@ -978,9 +1006,12 @@ Partial Class Inventarios_RecepcionUsados
End If
Dim tCveProveedor As Integer = -1
If DdlProveedor.SelectedValue.ToEntero > 0 Then tCveProveedor = DdlProveedor.SelectedValue.ToEntero
-
+ Dim CveVenta As Integer = -1
+ If CveRemisionRecibida > 0 Then
+ CveVenta = CveRemisionRecibida
+ End If
'Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("Inv/ES", 53, 0, 0, 1, TxtFecha.Text.ToDate, $" {TxtObservaciones.Text}", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveTipoPoliza:=3)
- CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, -1,
+ CveMovimiento = ObjInventario.AddMovimiento(DdlAlmacen.SelectedValue.ToEntero, CveConcepto, 1, Fecha, tFolio, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta,
CveSubProyecto, ActivoFijo, Guia:=TxtGuia.Text, Observaciones:=TxtObservaciones.Text, CvePersonal:=DdlPersonal.SelectedValue.ToEntero,
Recibio:=TxtResponsable.Text.Trim, CveCliente:=CveCliente, CveClienteSucursal:=CveClienteSucursal, DepartamentoEntrega:=TxtDepartamentoEntrega.Text,
PedidoContrato:=TxtPedidoContrato.Text, CveProveedor:=tCveProveedor)
@@ -1007,6 +1038,12 @@ Partial Class Inventarios_RecepcionUsados
Exit For
End If
+ If Not ObjVentas.UpdateVentaUsadoRecibido(CveRemisionRecibida, Dr("CvePS").ToString.ToEntero, True) Then
+ Mensaje = "Error al actualizar el recibo de los usados"
+ ErrorMovInv = True
+ Exit For
+ End If
+
Dim CveConceptoUsados As Integer = If(RBLOpcion.SelectedValue.ToEntero = 2, 1, 2)
@@ -1091,11 +1128,11 @@ Partial Class Inventarios_RecepcionUsados
Alert("No hay ningun registro para generar el movimiento. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgError)
RegistraScript("playsonidito('142608__autistic-lucario__error.wav')")
End If
- End Sub
-
+ End Sub
+
#End Region
-
-
+
+
#Region " ADD INVENTARIO INICIAL "
Protected Sub BtnCodigoBarras_Click(sender As Object, e As EventArgs)
@@ -1931,6 +1968,47 @@ Partial Class Inventarios_RecepcionUsados
End If
SiguienteFolio()
UpGenerales.Update()
- End Sub
-
+ End Sub
+
+ Protected Sub BtnConsultarPendientes_Click(sender As Object, e As EventArgs)
+ Dim ObjVentas As New ClsVentas
+ If ObjVentas.GetVentasUsados(-1, DdlSubProyectos.SelectedValue.ToEntero(), TxtFechaPendientes.Text.ToDateTime(), UsuarioActual.CveEmpresa) Then
+ GVPendientes.DataSource = ObjVentas.DtResultados
+ End If
+ ObjVentas.Dispose()
+ GVPendientes.DataBind()
+
+ UpGenerales.Update()
+ End Sub
+ Protected Sub BtnRecibir_Click(sender As Object, e As EventArgs)
+ Me.CveRemisionRecibida = -1
+ Me.CveRemisionRecibida = CType(CType(sender, LinkButton).NamingContainer, GridViewRow).DataKey("CveVenta").ToEntero()
+
+ Dim DtUsados As DataTable = Nothing
+ Dim ObjVentas As New ClsVentas
+ If ObjVentas.GetVentasUsadosDetalle(CveRemisionRecibida) Then
+ DtUsados = ObjVentas.DtResultados.Copy()
+ End If
+ ObjVentas.Dispose()
+
+ If DtUsados IsNot Nothing Then
+ For Each RowUsado As DataRow In DtUsados.Rows
+ Dim CvePS = RowUsado("CvePS").ToString().ToEntero()
+
+ Dim RowPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).Rows(0) '.FiltroPrimeroValor("CveTamaño", $"CvePS = { DdlProducto2.SelectedValue.ToEntero }").ToEntero
+ Dim CveTamaño As Integer = RowPS("CveTamaño").ToString().ToEntero()
+
+ Dim PS As String = RowPS("PS").ToString()
+ Dim CveUM As Integer = RowPS("CveUnidadMedida").ToString().ToEntero()
+ Dim UM As String = RowPS("UnidadMedida").ToString()
+ Dim Cantidad As Double = RowUsado("Cantidad").ToString().ToEntero()
+ Dim PU As Double = RowUsado("PU").ToString().ToDouble()
+
+ AddNew(CvePS, PS, CveUM, UM, Cantidad, PU,
+ "", "-1", "-1", "-1", "", "", "", DdlAlmacen.SelectedValue.ToEntero, DdlAlmacen.SelectedItem.Text, "", CveTamaño)
+
+ Next
+ End If
+
+ End Sub
End Class
diff --git a/LogMail.txt b/LogMail.txt
index 6b789a002..37220abf3 100644
--- a/LogMail.txt
+++ b/LogMail.txt
@@ -4,4 +4,4 @@
en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
05/09/2019:12:31 p. m. From:'signotificaciones@adssistemas.mx' - Para:';' - Asunto:'Envío de complemento de pago' - CCP: '' - Adjuntos: 2
- Ocurrió un error al mandar correo.System.InvalidOperationException: Se debe especificar un destinatario.
en System.Net.Mail.SmtpClient.Send(MailMessage message)
- en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
10/09/2019:12:16 p. m. From:'signotificaciones@adssistemas.mx' - Para:'DSDDS@hotmail.com' - Asunto:'SIG - La Orden Compra #26598 cambió de estatus.' - CCP: '' - Adjuntos: 0
10/09/2019:02:58 p. m. No se especifico a remitente - SIG - La Orden Compra #28107 cambió de estatus.
11/09/2019:11:56 a. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Solicitud Vacaciones ' - CCP: '' - Adjuntos: 0
11/09/2019:12:35 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'(Vacaciones:Permisos) Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:02 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Permiso para Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:03 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:10 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
20/09/2019:05:15 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29109' - CCP: '' - Adjuntos: 1
20/09/2019:05:36 p. m. No se especifico a remitente - Entrega de Factura HMO - 29110
20/09/2019:05:45 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29111' - CCP: '' - Adjuntos: 1
20/09/2019:05:47 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29112' - CCP: '' - Adjuntos: 1
23/09/2019:10:55 a. m. From:'signotificaciones@adssistemas.mx' - Para:'japmx95@gmail.com' - Asunto:'Solicitud de anticipo de Orden de Compra' - CCP: '' - Adjuntos: 0
23/09/2019:11:05 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
23/09/2019:11:34 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
25/09/2019:05:06 p. m. No se especifico a remitente - SIG - La Orden Compra #4860 cambió de estatus.
\ No newline at end of file
+ en ClsSisMail.FinalSend(Mail ObjMail) en C:\inetpub\WWWSIGIT\App_Code\ClsSisMail.vb:línea 129
10/09/2019:12:16 p. m. From:'signotificaciones@adssistemas.mx' - Para:'DSDDS@hotmail.com' - Asunto:'SIG - La Orden Compra #26598 cambió de estatus.' - CCP: '' - Adjuntos: 0
10/09/2019:02:58 p. m. No se especifico a remitente - SIG - La Orden Compra #28107 cambió de estatus.
11/09/2019:11:56 a. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Solicitud Vacaciones ' - CCP: '' - Adjuntos: 0
11/09/2019:12:35 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'(Vacaciones:Permisos) Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:02 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Permiso para Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:03 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
11/09/2019:01:10 p. m. From:'signotificaciones@adssistemas.mx' - Para:'antonio.gonzalez@adssistemas.mx' - Asunto:'Vacaciones Asistencia Técnica AD Sistemas' - CCP: '' - Adjuntos: 0
20/09/2019:05:15 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29109' - CCP: '' - Adjuntos: 1
20/09/2019:05:36 p. m. No se especifico a remitente - Entrega de Factura HMO - 29110
20/09/2019:05:45 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29111' - CCP: '' - Adjuntos: 1
20/09/2019:05:47 p. m. From:'ENVIOFACTURADIGITAL@COMPUPROVEEDORES.COM' - Para:'japmx95@gmail.com' - Asunto:'Entrega de Factura HMO - 29112' - CCP: '' - Adjuntos: 1
23/09/2019:10:55 a. m. From:'signotificaciones@adssistemas.mx' - Para:'japmx95@gmail.com' - Asunto:'Solicitud de anticipo de Orden de Compra' - CCP: '' - Adjuntos: 0
23/09/2019:11:05 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
23/09/2019:11:34 a. m. No se especifico a remitente - Solicitud de anticipo de Orden de Compra
25/09/2019:05:06 p. m. No se especifico a remitente - SIG - La Orden Compra #4860 cambió de estatus.
02/10/2019:05:07 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 79
02/10/2019:05:40 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 80
02/10/2019:05:57 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 81
02/10/2019:06:48 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 48
\ No newline at end of file
diff --git a/Ventas/PV.aspx b/Ventas/PV.aspx
index b37769b0b..dbc7ebf2b 100644
--- a/Ventas/PV.aspx
+++ b/Ventas/PV.aspx
@@ -337,6 +337,7 @@
+
@@ -1208,7 +1209,7 @@
-
+
@@ -1503,7 +1504,7 @@
-
@@ -2620,7 +2621,7 @@
-
+
@@ -2643,7 +2644,7 @@
-
+
@@ -2653,12 +2654,30 @@
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -2729,7 +2748,7 @@
-
+
@@ -3522,7 +3541,7 @@
function CambiaAjuste(txt, txtajuste) {
Recalcula();
if (txtajuste != null) {
- txtajuste.value = ToDouble(txt.value)
+ txtajuste.value = ToDouble(txt.value)
}
}
diff --git a/Ventas/PV.aspx.vb b/Ventas/PV.aspx.vb
index 52a13be90..4d48ae9e7 100644
--- a/Ventas/PV.aspx.vb
+++ b/Ventas/PV.aspx.vb
@@ -4,8 +4,7 @@ Option Strict On
Imports Extensiones
Imports System.Data
Imports System.IO
-Imports System.Xml
-Imports Microsoft.Reporting.WebForms
+Imports System.Linq
Imports System.Security.Cryptography.X509Certificates
Imports System.Globalization
@@ -1955,9 +1954,10 @@ Partial Class PV
Dim DbRow As DataRow = Nothing
DbRow = TmpDT.Rows(e.RowIndex)
- TmpDT.Rows.Remove(DbRow)
- CalculaUsados()
+ EliminarUsados(DbRow("Consec").ToString().ToEntero())
+
+ TmpDT.Rows.Remove(DbRow)
GvPS.DataSource = TmpDT
DtInv = TmpDT.Copy.FiltraParametros("CveTipoPS = 2")
@@ -2256,22 +2256,18 @@ Partial Class PV
MandarCorreoSupervisor = False
End If
- 'If DdlTipoComprobante.SelectedValue = "Cot" Then
- ' EmitirImprimirNew()
+ 'If TmpDTAjustes IsNot Nothing AndAlso Not TmpDTAjustes.Rows.Count > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
+ ' RegistraScript("$('#DModalRecepcionUsados').modal('show');")
'Else
- ' LimpiaEscondeContado()
+ ' EmitirImprimirNew()
'End If
+ EmitirImprimirNew()
- If TmpDTAjustes IsNot Nothing AndAlso Not TmpDTAjustes.Rows.Count > 0 AndAlso UsuarioActual.Empresa.Funcionalidad(531).ToString = "1" Then
- RegistraScript(String.Format("$('#{0}').modal('show');", "DModalRecepcionUsados"))
- Else
- EmitirImprimirNew()
- End If
End Sub
#End Region
-#Region " NNNNEEEEEEEWWWWWW "
+#Region "E M I T I R - F A C T U R A"
Protected Sub EmitirImprimirNew()
If ValidaPagosContado() Then
@@ -2293,12 +2289,6 @@ Partial Class PV
Alert(Mensaje, If(Retorno.TieneError, TipoMensaje.MsgError, TipoMensaje.MsgInformacion), If(Retorno.TieneError, "", Retorno.LigaPV))
Next
-
- ' 'MUESTA ALERT OK
- ' Dim Liga = If(UsuarioActual.CveRol = 1165, "document.location.href=""/Ventas/Ventas.aspx?CveVenta=-1"";", $"document.location.href=""/Ventas/Clientes.aspx?CveCliente={CveCliente}&Opt=3"";")
- ' Alert(MensajeAlert.ToString, TipoMensaje.MsgInformacion, Liga)
-
-
End If
End If
@@ -2499,12 +2489,12 @@ Partial Class PV
ddlAlmacen.SelectedIndex = 1
End If
- ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
+ 'ObjFactura.CveAlmacen = ddlAlmacen.SelectedValue.ToEntero
DtInv.Columns.Add("Seleccionado", GetType(Integer))
For Each Gvr As GridViewRow In GvInv.Rows
Dim Dr As DataRow = DtInv.Select($"CvePS={Gvr.DataKey("CvePS")}")(0)
- If Gvr.FCCheckBox("cbInv").Checked Then
+ If Gvr.FCCheckBox("cbInv").Checked AndAlso ddlAlmacen.SelectedValue.ToEntero > 0 Then
Dr("Seleccionado") = 1
Else
Dr("Seleccionado") = 0
@@ -2512,7 +2502,7 @@ Partial Class PV
Next
DtInv.AcceptChanges()
- ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
+ 'ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End Sub
@@ -2717,6 +2707,11 @@ Partial Class PV
HdnTipoInv.Value = drPS("Inv_CveMetodoInventario").ToString
HdnAplicaIEPS.Value = drPS("AplicaIEPS").ToString
HdnPorcentajeIEPS.Value = drPS("IEPSPorcentaje").ToString
+ 'Muestra la tabla de tamaños
+ If drPS("CveTamaño").ToString().ToEntero() > 0 Then
+ DivRecepcionUsados.Visible = True
+ End If
+
DdlUnidadMedida.Items.Clear()
If UsuarioActual.Empresa.UsaInventarios Then
DdlUnidadMedida.DataSource = GlobalDTProductosServiciosEquivalencias(CvePSParametro, -1)
@@ -2791,7 +2786,7 @@ Partial Class PV
UpClasificacion.Update()
UpPS.Update()
UpUnidadMedida.Update()
-
+ UpAddVenta.Update()
End Sub
Protected Sub DdlPS_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles DdlPS.selectedindexchange
DdlPSIndexChange(DdlPS.SelectedValue.ToEntero, DdlPS)
@@ -2980,6 +2975,9 @@ Partial Class PV
TmpDT.Columns.Add("CveTamaño", GetType(Integer))
TmpDT.Columns.Add("EsCargo", GetType(Boolean))
+ TmpDT.Columns.Add("PUOriginal", GetType(Decimal))
+
+
End Sub
Private Sub CreaDTmpC()
@@ -3152,6 +3150,13 @@ Partial Class PV
ChkAgregar.Checked = True
+ For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
+ If Gvr.RowType = DataControlRowType.DataRow Then
+ Gvr.FCTextBox("TxtCantidad").Text = ""
+ End If
+ Next
+ DivRecepcionUsados.Visible = False
+
LimpiaAjuste()
UPPDescuento.Update()
@@ -3164,17 +3169,19 @@ Partial Class PV
Optional SerieLote As String = "", Optional TiempoEntrega As String = "", Optional EntregaDirecta As Integer = 0,
Optional CveContratoDetalle As Integer = 0, Optional CveVentaDetalle As Integer = 0, Optional CveMovimientoDetallePedido As Integer = 0,
Optional CveOrdenCompraDetalle As Integer = 0, Optional CveVentaDetalleRemision As Integer = 0, Optional CveVentaDetalleCotizacion As Integer = 0,
- Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False) As Boolean
+ Optional CuentaPredial As String = "", Optional RegeneraIEPS As Boolean = True, Optional CveVentaDetallePedido2 As Integer = 0, Optional EsCargo As Boolean = False) As Integer
- Dim Retorno As Boolean = False
+ Dim Retorno As Integer = -1
If Not CvePS > 0 Then
Alert("Ocurrió un error al cargar la información del producto a agregar. Por favor verifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Return False
+ Retorno = -1
+ Return Retorno
End If
If (Obs.Length + PS.Length > 1000) Then
Alert(String.Format("El Nombre y observación del producto tiene longitud de {0} caracteres y excede los 1000 caracteres permitidos.", Obs.Length + PS.Length), TipoMensaje.MsgAdvertencia)
- Return False
+ Retorno = -1
+ Return Retorno
End If
'VALIDA CONCEPTOS EN CERO - YA SE VALIDA ANTES CON FUNCIONALIDAD - A MIRAS DE ELIMINAR - IPP 28 AGOSTO 2017
@@ -3183,153 +3190,19 @@ Partial Class PV
If Cantidad * PU <= 0 Then
If Not DdlTipoComprobante.SelectedValue = "DPe" Then
Alert("El importe del concepto debe ser mayor a cero. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Return False
+ Retorno = -1
+ Return Retorno
End If
End If
End If
End If
+
+ Dim Row As DataRow = Nothing
+
If Modalidad = "A" Then
- Dim Row As DataRow = Nothing
- Dim TotalCalculableImpuestos As Decimal = 0
- PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
-
Row = TmpDT.NewRow()
- Row("CveProyecto") = CveProyecto
- Row("Proyecto") = Proyecto
- Row("CveSubProyecto") = CveSubProyecto
- Row("SubProyecto") = SubProyecto
- Row("SerieLote") = SerieLote
- Row("TiempoEntrega") = TiempoEntrega
- Row("Orden") = TmpDT.Rows.Count + 1
- Row("Cantidad") = Cantidad
- Row("CveUM") = CveUM
- Row("UM") = UM
- Row("CveClasificacion") = CveClasificacion
- Row("Clasificacion") = Clasificacion
- Row("CvePS") = CvePS
- Row("Obs") = Obs
-
-
-
- Dim DrPS As DataRow = Nothing
-
- DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
-
- If DrPS Is Nothing Then
- Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Return False
- End If
-
-
- If Not ClienteDesglosaIEPS Then
- If Not RegeneraIEPS Then
- PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
- End If
- DrPS("IEPSPorcentaje") = 0
- End If
-
- 'verifica si tiene ventaminima
- If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
- 'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
- If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
- Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
- Return False
- End If
- End If
-
- TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
-
- Row("PU") = PU
- Row("Codigo") = DrPS("Codigo")
- Row("NoIdentificacion") = DrPS("Codigo")
- Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
- Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
- Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
- Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
- Row("Consec") = TmpDT.Rows.Count + 1
- If Not EsCargo Then
- ConsecutivoVenta = TmpDT.Rows.Count + 1
- End If
-
- Row("PS") = DrPS("PS")
- Row("CodigoPS") = DrPS("PSCodigo").ToString
- Row("CveTipoPS") = DrPS("CveTipoPS")
- Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
- Row("CveTamaño") = DrPS("CveTamaño")
-
- If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
- If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
-
- If DrPS("IVA").ToString.Contiene("-1", "") Then
- Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
- Else
- Row("PorcentajeIVA") = DrPS("IVA")
- End If
-
- Row("IVA") = Row("PorcentajeIVA")
- Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
-
-
- Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
- Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
- Row("PorcentajeRetIVA") = ClienteRetIVA
- Row("PorcentajeRetISR") = ClienteRetISR
- Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
- Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
- Row("IEPS") = Row("ImporteIEPS")
- Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
- Row("TipoDescuento") = HdnTipoDescuento.Value
- Row("Total") = (Cantidad * PU)
- Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
- 'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
- ' Row("IdCtaContVentas") = IdCtaContable
- ' Row("AplicaParaConcepto") = AplicaParaConcepto
-
- Row("SATClaveProdServ") = DrPS("SATClavePS")
- Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
-
-
- Row("EntregaDirecta") = EntregaDirecta
- 'Contratos
- Row("CveContratoDetalle") = CveContratoDetalle
- Row("CveVentaDetalle") = CveVentaDetalle
- Row("CveMovimientoDetallePedido") = CveVentaDetalle
- Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
- Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
- Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
- Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
- Row("CuentaPredial") = CuentaPredial
- Row("EsCargo") = EsCargo
-
- If UsuarioActual.CveEmpresa = 119 Then
- If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
-
- 'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
- If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
- If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
- Alert($"La moneda base del producto: {DrPS("PSCodigo").ToString} es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
- Return False
- End If
- End If
-
- 'ACTIVA PRODUCTOS DE LA MISMA MONEDA
- If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
- DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
- CambiaMoneda()
- DdlMoneda.Enabled = False
- End If
- End If
- End If
-
-
- 'RECARGAR GV
- TmpDT.Rows.Add(Row)
-
ElseIf Modalidad = "U" Then
-
- Dim TotalCalculableImpuestos As Decimal = 0
- PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
Dim Contador As Integer = 0
For Each Dr As DataRow In TmpDT.Rows
If Dr("Consec").ToString.ToEntero = Index Then
@@ -3337,135 +3210,157 @@ Partial Class PV
End If
Contador = Contador + 1
Next
- Dim Row As DataRow = TmpDT.Rows(Contador)
- Row("CveProyecto") = CveProyecto
- Row("Proyecto") = Proyecto
- Row("CveSubProyecto") = CveSubProyecto
- Row("SubProyecto") = SubProyecto
- Row("SerieLote") = SerieLote
- Row("TiempoEntrega") = TiempoEntrega
- Row("Orden") = TmpDT.Rows.Count + 1
- Row("Cantidad") = Cantidad
- Row("CveUM") = CveUM
- Row("UM") = UM
- Row("CveClasificacion") = CveClasificacion
- Row("Clasificacion") = Clasificacion
- Row("CvePS") = CvePS
- Row("Obs") = Obs
+ Row = TmpDT.Rows(Contador)
+ End If
- Dim DrPS As DataRow = Nothing
+ Dim TotalCalculableImpuestos As Decimal = 0
+ PU = Math.Round(PU, 6) ' el precio unitario puede llevar hasta 6 decimales permitidos
- DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
+ Row("CveProyecto") = CveProyecto
+ Row("Proyecto") = Proyecto
+ Row("CveSubProyecto") = CveSubProyecto
+ Row("SubProyecto") = SubProyecto
+ Row("SerieLote") = SerieLote
+ Row("TiempoEntrega") = TiempoEntrega
+ Row("Orden") = TmpDT.Rows.Count + 1
+ Row("Cantidad") = Cantidad
+ Row("CveUM") = CveUM
+ Row("UM") = UM
+ Row("CveClasificacion") = CveClasificacion
+ Row("Clasificacion") = Clasificacion
+ Row("CvePS") = CvePS
+ Row("Obs") = Obs
- If DrPS Is Nothing Then
- Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
- Return False
+ Dim DrPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=CvePS).FiltroPrimero("") ' Estado = -1
+
+ If DrPS Is Nothing Then
+ Alert("Ocurrió un error al cargar la información del Producto. Por favor vuelva a intentar.", TipoMensaje.MsgAdvertencia)
+ Retorno = -1
+ Return Retorno
+ End If
+
+ If Not ClienteDesglosaIEPS Then
+ If Not RegeneraIEPS Then
+ PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
End If
+ DrPS("IEPSPorcentaje") = 0
+ End If
-
- If Not ClienteDesglosaIEPS Then
- If Not RegeneraIEPS Then
- PU = PU * (1 + DrPS("IEPSPorcentaje").ToString.ToDecimal)
- End If
- DrPS("IEPSPorcentaje") = 0
+ 'verifica si tiene ventaminima
+ If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
+ 'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
+ If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
+ Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
+ Retorno = -1
+ Return Retorno
End If
+ End If
- 'verifica si tiene ventaminima
- If Cantidad > 0 AndAlso DrPS("VentaMinima").ToString.ToDecimal > 0 Then
- 'verifico que la cantidad sea multiplo de venta minima, es decir ventaminima =5, solo puede vender 5,10,15...
- If Cantidad Mod DrPS("VentaMinima").ToString.ToDecimal <> 0 Then
- Alert(String.Format("El producto se vende solo en cantidades de {0}", DrPS("VentaMinima").ToString))
- Return False
- End If
+ TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
+
+ If Modalidad = "A" Then
+ If Not TmpDT.Columns.Contains("PUOriginal") Then
+ TmpDT.Columns.Add("PUOriginal", GetType(Decimal))
End If
+ Row("PUOriginal") = PU
+ End If
- TotalCalculableImpuestos = (Cantidad * (PU)) - Descuento
+ Row("PU") = PU
+ Row("Codigo") = DrPS("Codigo")
+ Row("NoIdentificacion") = DrPS("Codigo")
+ Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
+ Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
+ Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
+ Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
- Row("PU") = PU
- Row("Codigo") = DrPS("Codigo")
- Row("NoIdentificacion") = DrPS("Codigo")
- Row("ClaveSATFraccionArancelaria") = DrPS("ClaveSATFraccionArancelaria")
- Row("ClaveSATUnidadAduana") = DrPS("ClaveSATUnidadAduana")
- Row("ClaveSATFraccionArancelariaDescripcion") = DrPS("ClaveSATFraccionArancelariaDescripcion")
- Row("ClaveSATUnidadAduanaDescripcion") = DrPS("ClaveSATUnidadAduanaDescripcion")
+ If Modalidad = "A" Then
+ Row("Consec") = TmpDT.Rows.Count + 1
+ If Not EsCargo Then
+ ConsecutivoVenta = TmpDT.Rows.Count + 1
+ End If
+ ElseIf Modalidad = "U" Then
If Not EsCargo Then
ConsecutivoVenta = Row("Consec").ToString.ToEntero
End If
-
- Row("PS") = DrPS("PS")
- Row("CodigoPS") = DrPS("PSCodigo").ToString
- Row("CveTipoPS") = DrPS("CveTipoPS")
- Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
- Row("CveTamaño") = DrPS("CveTamaño")
-
- If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
- If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
-
- If DrPS("IVA").ToString.Contiene("-1", "") Then
- Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
- Else
- Row("PorcentajeIVA") = DrPS("IVA")
- End If
-
- Row("IVA") = Row("PorcentajeIVA")
- Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
-
-
- Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
- Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
- Row("PorcentajeRetIVA") = ClienteRetIVA
- Row("PorcentajeRetISR") = ClienteRetISR
- Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
- Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
- Row("IEPS") = Row("ImporteIEPS")
- Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
- Row("TipoDescuento") = HdnTipoDescuento.Value
- Row("Total") = (Cantidad * PU)
- Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
- 'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
- ' Row("IdCtaContVentas") = IdCtaContable
- ' Row("AplicaParaConcepto") = AplicaParaConcepto
-
- Row("SATClaveProdServ") = DrPS("SATClavePS")
- Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
-
-
- Row("EntregaDirecta") = EntregaDirecta
- 'Contratos
- Row("CveContratoDetalle") = CveContratoDetalle
- Row("CveVentaDetalle") = CveVentaDetalle
- Row("CveMovimientoDetallePedido") = CveVentaDetalle
- Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
- Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
- Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
- Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
- Row("CuentaPredial") = CuentaPredial
- Row("EsCargo") = EsCargo
-
- If UsuarioActual.CveEmpresa = 119 Then
- If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
-
- 'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
- If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
- If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
- Alert($"La moneda base del producto: {DrPS("PSCodigo").ToString} es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
- Return False
- End If
- End If
-
- 'ACTIVA PRODUCTOS DE LA MISMA MONEDA
- If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
- DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
- CambiaMoneda()
- DdlMoneda.Enabled = False
- End If
- End If
- End If
-
End If
+ Row("PS") = DrPS("PS")
+ Row("CodigoPS") = DrPS("PSCodigo").ToString
+ Row("CveTipoPS") = DrPS("CveTipoPS")
+ Row("CveTipoInvPS") = DrPS("Inv_CveMetodoInventario")
+ Row("CveTamaño") = DrPS("CveTamaño")
+
+ If CveClasificacion <= 0 Then Row("CveClasificacion") = DrPS("CveClasificacion")
+ If Clasificacion = "" Then Row("Clasificacion") = DrPS("Clasificacion")
+
+ If DrPS("IVA").ToString.Contiene("-1", "") Then
+ Row("PorcentajeIVA") = SubProyectoPorcentajeIVA
+ Else
+ Row("PorcentajeIVA") = DrPS("IVA")
+ End If
+
+ Row("IVA") = Row("PorcentajeIVA")
+ Row("ImporteIVA") = Math.Round(Row("PorcentajeIVA").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
+ Row("ImporteRetIVA") = Math.Round(ClienteRetIVA * TotalCalculableImpuestos, NumeroDecimales)
+ Row("ImporteRetISR") = Math.Round(ClienteRetISR * TotalCalculableImpuestos, NumeroDecimales)
+ Row("PorcentajeRetIVA") = ClienteRetIVA
+ Row("PorcentajeRetISR") = ClienteRetISR
+ Row("PorcentajeIEPS") = DrPS("IEPSPorcentaje")
+ Row("ImporteIEPS") = Math.Round(DrPS("IEPSPorcentaje").ToString.ToDecimal * TotalCalculableImpuestos, NumeroDecimales)
+ Row("IEPS") = Row("ImporteIEPS")
+ Row("Descuento") = Math.Round(Descuento, NumeroDecimales)
+ Row("TipoDescuento") = HdnTipoDescuento.Value
+ Row("Total") = (Cantidad * PU)
+ Row("TotalImporte") = Math.Round(Cantidad * PU, NumeroDecimales)
+ 'Row("AsientoContableVentas") = DrPS("AsientoContableVentas")
+ ' Row("IdCtaContVentas") = IdCtaContable
+ ' Row("AplicaParaConcepto") = AplicaParaConcepto
+
+ Row("SATClaveProdServ") = DrPS("SATClavePS")
+ Row("SATClaveUM") = DrPS("SATClaveUnidadMedida")
+
+
+ Row("EntregaDirecta") = EntregaDirecta
+ 'Contratos
+ Row("CveContratoDetalle") = CveContratoDetalle
+ Row("CveVentaDetalle") = CveVentaDetalle
+ Row("CveMovimientoDetallePedido") = CveVentaDetalle
+ Row("CveOrdenCompraDetalle") = CveOrdenCompraDetalle
+ Row("CveVentaDetalleRemision") = CveVentaDetalleRemision
+ Row("CveVentaDetalleCotizacion") = CveVentaDetalleCotizacion
+ Row("CveVentaDetallePedido2") = CveVentaDetallePedido2
+ Row("CuentaPredial") = CuentaPredial
+ Row("EsCargo") = EsCargo
+
+ If UsuarioActual.CveEmpresa = 119 Then
+ If Not RemisionesLista.Count > 0 Then 'SI VIENE DE REMISION NO SE CONSIDERA
+
+ 'MONEDA DIFERENTE DEL PS AL PRIMER PS AGREGADO
+ If DdlMoneda.Enabled = False And CveVenta < 0 And TmpDT.Rows.Count > 0 Then
+ If DdlMoneda.SelectedValue <> DrPS("CveMoneda").ToString Then
+ Alert($"La moneda base del producto: {DrPS("PSCodigo").ToString} es diferente a la moneda del documento.", TipoMensaje.MsgAdvertencia)
+ Retorno = -1
+ Return Retorno
+ End If
+ End If
+
+ 'ACTIVA PRODUCTOS DE LA MISMA MONEDA
+ If TmpDT.Rows.Count = 0 And CveVenta < 0 Then
+ DdlMoneda.SelectedValueExist(DrPS("CveMoneda").ToString)
+ CambiaMoneda()
+ DdlMoneda.Enabled = False
+ End If
+ End If
+ End If
+
+ If Modalidad = "A" Then
+ TmpDT.Rows.Add(Row)
+ End If
+
+ Retorno = Row("Consec").ToString().ToEntero()
+
TmpDT.AcceptChanges()
- Retorno = True
+
Return Retorno
End Function
Private Function ValidaAgregarPS(CvePS As Integer, CveUM As Integer, PU As Double, CveTipoPS As Integer) As Boolean 'NO TOCAR - IPP
@@ -3493,6 +3388,18 @@ Partial Class PV
Return False
End If
+ Dim CantidadUsados As Decimal = 0
+ For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
+ If Gvr.RowType = DataControlRowType.DataRow Then
+ CantidadUsados = CantidadUsados + Gvr.FCTextBox("TxtCantidad").Text.ToEntero()
+ End If
+ Next
+
+ If CantidadUsados > TxtCantidad.Text.ToEntero() Then
+ Alert("No puede tener una cantidad mayor a la de los cargos", TipoMensaje.MsgAdvertencia)
+ Return False
+ End If
+
'VALIDA PROMOCIONES
Dim ObjVentas As New ClsVentas
If ObjVentas.GetPromocionesPS(-1, TxtFecha.Text.ToDateTime, DdlSubProyectoDatos.SelectedValue.ToEntero, CveCliente, DdlVendedor.SelectedValue.ToEntero, UsuarioActual.CveEmpresa) Then
@@ -3704,30 +3611,22 @@ Partial Class PV
Dim CveProyecto As Integer = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)("CveProyecto").ToString.ToEntero
Dim Proyecto As String = GlobalDTSubProyectos(-1, CveSubProyecto:=DdlSubProyectoDatos.SelectedValue.ToEntero, CveEmpresa:=UsuarioActual.CveEmpresa).Rows(0)("Proyecto").ToString
- AgregarProductoServicio(TxtCantidad.Text.ToDecimal, DdlUnidadMedida.SelectedValue.ToEntero, DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text,
+
+ Dim Consec = AgregarProductoServicio(TxtCantidad.Text.ToDecimal, DdlUnidadMedida.SelectedValue.ToEntero, DdlUnidadMedida.SelectedItem.Text, DdlClasificacion.SelectedValue.ToEntero, DdlClasificacion.SelectedItem.Text,
CvePS, "", TxtObsPS.Text.Trim, If(CvePSAmortizacion > 0, TxtPrecio.Text.Trim.ToDecimal * -1, TxtPrecio.Text.Trim.ToDecimal), Descuento,
CveProyecto, Proyecto, DdlSubProyectoDatos.SelectedValue.ToEntero, DdlSubProyectoDatos.SelectedItem.Text,
SerieLote:="", TiempoEntrega:="", CuentaPredial:="", RegeneraIEPS:=ClienteDesglosaIEPS)
- CalculaUsados()
+ Dim ListaPSCargo = CalculaUsados(Consec)
+ If ListaPSCargo.Count > 0 Then
+ CalculaRecepcionUsados(GvRecepcionUsados, CvePS, ListaPSCargo)
+ End If
Return True
Else
Return False
End If
- ''NO SIRVE PARA NADA - NO SE USAN LAS VARIABLES - IPP 28 AGOSTO 2017
- 'For Each gvr As GridViewRow In GVAnticipos.Rows
- ' Dim total As Decimal = TxtTotal.Text.ToString.ToDecimal
- ' Dim saldo As Decimal = gvr.DataKey("Saldo").ToDecimal
- ' Dim maxsaldo As Decimal
- ' If total > saldo Then
- ' maxsaldo = saldo
- ' Else
- ' maxsaldo = total
- ' End If
- 'Next
-
End Function
#End Region
@@ -4909,7 +4808,7 @@ Partial Class PV
DdlFolioGarantia.DataSource = ObjAcum.DtResultados
DdlFolioGarantia.Items.Insert(0, New ListItem("Seleccione", "-1"))
End If
-
+ ObjAcum.Dispose()
DdlFacturas.Items.Insert(0, New ListItem("Sin Factura", "-1"))
@@ -4919,14 +4818,17 @@ Partial Class PV
DdlTipoDefecto.DataSource = GlobalDTAcumTiposDefecto.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa}")
DdlTipoDefecto.Items.Insert(0, New ListItem("Seleccione", "-1"))
- GvRecepcionUsados.DataSource = GlobalDTAcumTamaños.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo > 0")
+ Dim DtTamanios = GlobalDTAcumTamaños.FiltraParametros($"CveEmpresa = {UsuarioActual.CveEmpresa} AND CvePSCargo > 0")
+
+ GvRecepcionUsados.DataSource = DtTamanios
+ GvRecepcionUsadosModal.DataSource = DtTamanios
- ObjAcum.Dispose()
DdlFolioGarantia.DataBind()
DdlTipoUso.DataBind()
DdlTipoDefecto.DataBind()
- GvRecepcionUsados.DataBind()
DdlFacturas.DataBind()
+ GvRecepcionUsados.DataBind()
+ GvRecepcionUsadosModal.DataBind()
CargaPSAjuste()
@@ -4934,8 +4836,6 @@ Partial Class PV
CreaDTmpDTRecepcionUsados()
DivChkAjuste.Visible = True
-
-
End Sub
Private Sub CargaPSAjuste()
@@ -5276,6 +5176,7 @@ Partial Class PV
Private Sub CreaDTmpDTRecepcionUsados()
TmpDTRecepcionUsados = New DataTable
TmpDTRecepcionUsados.Columns.Add("CvePS", GetType(Integer))
+ TmpDTRecepcionUsados.Columns.Add("CvePSRelacionado", GetType(Integer))
TmpDTRecepcionUsados.Columns.Add("Cantidad", GetType(Decimal))
TmpDTRecepcionUsados.Columns.Add("CveUM", GetType(Integer))
TmpDTRecepcionUsados.Columns.Add("CveVentaDetalle", GetType(Integer))
@@ -5283,34 +5184,66 @@ Partial Class PV
End Sub
Protected Sub BtnRecepcionUsados_Click(sender As Object, e As EventArgs)
- TmpDTRecepcionUsados.Clear()
- TmpDTRecepcionUsados.AcceptChanges()
+
+ 'CalculaRecepcionUsados(GvRecepcionUsadosModal)
+ RegistraScript("$('#DModalRecepcionUsados').modal('hide');")
+
+ EmitirImprimirNew()
+ End Sub
+ Private Sub CalculaRecepcionUsados(Gv As GridView, CvePS As Integer, ListaPSCargo As List(Of Integer))
+
+ If Modalidad = "U" Then
+ If TmpDTRecepcionUsados.Rows.Count > 0 Then
+ Dim Elimino As Boolean = False
+ For Each Row As DataRow In TmpDTRecepcionUsados.Rows
+ If Row("CvePSRelacionado").ToString().ToEntero() = CvePS Then
+ Row.Delete()
+ Elimino = True
+ End If
+ Next
+ If Elimino Then
+ TmpDTRecepcionUsados.AcceptChanges()
+ End If
+ End If
+ End If
Dim TotalCargos As Decimal = 0
Dim TotalCantidad As Decimal = 0
- For Each Gvr As GridViewRow In GvRecepcionUsados.Rows
- If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
- TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
- TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
+ For Each Gvr As GridViewRow In Gv.Rows
+ If Gvr.RowType = DataControlRowType.DataRow Then
- Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
- Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
- Row("Cantidad") = Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
- Row("CveUM") = Gvr.DataKey("CveUM").ToEntero
- Row("CveVentaDetalle") = -1
- Row("PU") = Gvr.DataKey("Cargo").ToDouble
- TmpDTRecepcionUsados.Rows.Add(Row)
+ If Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal > 0 Then
+ TotalCargos += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal * Gvr.DataKey("Cargo").ToDecimal
+ TotalCantidad += Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
+ Dim Row As DataRow = TmpDTRecepcionUsados.NewRow()
+ Row("CvePS") = Gvr.DataKey("CvePSCargo").ToEntero
+ Row("CvePSRelacionado") = CvePS
+ Row("Cantidad") = Gvr.FCTextBox("TxtCantidad").Text.ToString.ToDecimal
+ Row("CveUM") = Gvr.DataKey("CveUM").ToEntero
+ Row("CveVentaDetalle") = -1
+ Row("PU") = Gvr.DataKey("Cargo").ToDouble
+ TmpDTRecepcionUsados.Rows.Add(Row)
+
+ End If
End If
Next
- If TotalCantidad > TmpDT.FiltraParametros("EsCargo = True").SUMD("Cantidad") Then
+ Dim StrCargos As New StringBuilder
+ For Each CvePSCargo As Integer In ListaPSCargo
+ StrCargos.AppendFormat("{0},", CvePSCargo)
+ Next
+ StrCargos.Remove(StrCargos.Length - 1, 1)
+
+ If TotalCantidad > TmpDT.FiltraParametros($"EsCargo = True AND CvePS IN ({StrCargos})").SUMD("Cantidad") Then
+ Dim drt As DataRow() = TmpDT.Select("CvePS = " & CvePS)
+ TmpDT.Rows.Remove(drt(0))
+
Alert("No puede tener una cantidad mayor a la de los cargos", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
- For Each Dr As DataRow In TmpDT.FiltraParametros("EsCargo = True").Rows
-
+ For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = True AND CvePS IN ({StrCargos})").Rows
Dim TotalAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = (TotalAnterior - TotalCargos) / Dr("Cantidad").ToString.ToDecimal
@@ -5342,8 +5275,7 @@ Partial Class PV
Next
TmpDT.AcceptChanges()
If TotalCargos > 0 Then ' cuando se entrega más valor de usados, que los cargos hechos, se descuenta sobre el PU del producto de venta
- For Each Dr As DataRow In TmpDT.FiltraParametros("EsCargo = False").Rows
-
+ For Each Dr As DataRow In TmpDT.FiltraParametros($"EsCargo = False AND CvePS={CvePS}").Rows
Dim PUAnterior As Decimal = Dr("Cantidad").ToString.ToDecimal * Dr("PU").ToString.ToDecimal
Dim PUActual As Decimal = PUAnterior - (TotalCargos / Dr("Cantidad").ToString.ToDecimal)
@@ -5365,7 +5297,6 @@ Partial Class PV
drr("IEPS") = Dr("ImporteIEPS")
drr("Total") = (Dr("Cantidad").ToString.ToDecimal * PUActual)
drr("TotalImporte") = Math.Round(Dr("Cantidad").ToString.ToDecimal * PUActual, NumeroDecimales)
-
End If
If TotalCargos <= 0 Then
@@ -5380,15 +5311,14 @@ Partial Class PV
TmpDTRecepcionUsados.AcceptChanges()
CalculaTotalesVenta()
-
- RegistraScript(String.Format("$('#{0}').modal('hide');", "DModalRecepcionUsados"))
-
- EmitirImprimirNew()
End Sub
- Private Sub CalculaUsados()
+ Private Function CalculaUsados(Consec As Integer) As List(Of Integer)
+ 'If Modalidad = "U" Then
+ ' EliminarUsados(Consec)
+ 'End If
- 'If ClienteEsDistribuidor Then
+ Dim ListaPScargo As New List(Of Integer)
Dim DTTamanios As New DataTable
Dim ObjAcum As New ClsAcumuladores
@@ -5396,35 +5326,8 @@ Partial Class PV
If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
DTTamanios = ObjAcum.DtResultados
+ Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
- Dim DTCvePSCostos As New DataTable
- DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
-
- If Not TmpDT.Columns.Contains("Eliminar") Then
- TmpDT.Columns.Add("Eliminar", GetType(Integer))
- End If
-
- For Each drow As DataRow In TmpDT.Rows
- For Each drow2 As DataRow In DTCvePSCostos.Rows
- If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then
- drow("Eliminar") = 1
- Exit For
- End If
- Next
- Next
-
- Dim TmpDTView As New DataView(TmpDT)
- TmpDTView.RowFilter = "Eliminar = 1"
-
- For Each dRowEliminar As DataRowView In TmpDTView
- dRowEliminar.Delete()
-
- Next
-
-
- TmpDT.AcceptChanges()
-
- Dim ObjProductosServicios As New ClsProductosServicios()
Dim CveUnidadMedidaPSA As Integer = -1
Dim UnidadMedidaPSA As String = "Unidad"
@@ -5438,7 +5341,7 @@ Partial Class PV
Dim PSPSA As String = ""
Dim DTPSTemp As New DataTable '= TmpDT.Clone
- 'AgregarProductoServicio(1, CveUnidadMedidaPSA, UnidadMedidaPSA, CveClacificacionPSA, ClacificacionPSA, CvePSPSA, PSPSA, "", ImporteCargo, 0, -1, "", CveSubProyectoPSA, SubProyectoPSA)
+
DTPSTemp.Columns.Add("Cantidad", GetType(Integer))
DTPSTemp.Columns.Add("CveUnidadMedida", GetType(Integer))
DTPSTemp.Columns.Add("UnidadMedida", GetType(String))
@@ -5450,7 +5353,9 @@ Partial Class PV
DTPSTemp.Columns.Add("CveSubProyecto", GetType(Integer))
DTPSTemp.Columns.Add("SubProyecto", GetType(String))
- For Each DrowPartidas As DataRow In TmpDT.Rows
+ Dim ObjProductosServicios As New ClsProductosServicios()
+ For Each DrowPartidas As DataRow In TmpDT.Select($"Consec = {Consec}")
+
Dim CveTamanioTemp As Integer = DrowPartidas("CveTamaño").ToString.ToEntero
If CveTamanioTemp > 0 Then
@@ -5512,25 +5417,74 @@ Partial Class PV
End If
Next
+ ObjProductosServicios.Dispose()
+ Dim ModalidadBack = Modalidad
+ 'CAMBIA LA MODALIDAD PARA AGREGAR LOS PS CARGO
+ If Modalidad = "U" Then
+ Modalidad = "A"
+ End If
For Each drowPsTamaños As DataRow In DTPSTemp.Rows
- Modalidad = "A"
If drowPsTamaños("PU").ToString.ToDecimal > 0 Then
- AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString,
+ Dim Concec = AgregarProductoServicio(drowPsTamaños("Cantidad").ToString.ToEntero, drowPsTamaños("CveUnidadMedida").ToString.ToEntero, drowPsTamaños("UnidadMedida").ToString,
drowPsTamaños("CveClacificacion").ToString.ToEntero, drowPsTamaños("Clacificacion").ToString, drowPsTamaños("CvePS").ToString.ToEntero,
drowPsTamaños("PS").ToString, "", drowPsTamaños("PU").ToString.ToDecimal, 0, -1, "", drowPsTamaños("CveSubProyecto").ToString.ToEntero,
drowPsTamaños("SubProyecto").ToString, EsCargo:=True)
+ If Consec > 0 Then
+ ListaPScargo.Add(drowPsTamaños("CvePS").ToString.ToEntero)
+ End If
End If
Next
- ObjProductosServicios.Dispose()
+ Modalidad = ModalidadBack
End If
ObjAcum.Dispose()
- ' End If
- End Sub
+ Return ListaPScargo
+ End Function
+ Private Sub EliminarUsados(Consec As Integer)
+ Dim DTTamanios As New DataTable
+ Dim ObjAcum As New ClsAcumuladores
+
+ If ObjAcum.TamañoGet(-1, UsuarioActual.CveEmpresa) Then
+
+ DTTamanios = ObjAcum.DtResultados
+ Dim DTCvePSCostos = ObjAcum.DtResultados.FiltraParametros("", "", {"CvePSCargo"})
+
+ If Not TmpDT.Columns.Contains("Eliminar") Then
+ TmpDT.Columns.Add("Eliminar", GetType(Integer))
+ End If
+
+ For Each drow As DataRow In TmpDT.FiltraParametros($"Consec ={Consec}").Rows
+ For Each drow2 As DataRow In DTCvePSCostos.Rows
+ If drow("CvePS").ToString.ToEntero = drow2("CvePSCargo").ToString.ToEntero Then
+ drow("Eliminar") = 1
+ Exit For
+ End If
+ Next
+ Next
+
+ Dim TmpDTView As New DataView(TmpDT)
+ TmpDTView.RowFilter = "Eliminar = 1"
+
+ For Each dRowEliminar As DataRowView In TmpDTView
+ For Each RowRecepcionUsados As DataRow In TmpDTRecepcionUsados.Rows
+ If (RowRecepcionUsados("CvePS").ToString() = dRowEliminar("CvePS").ToString()) Then
+ RowRecepcionUsados.Delete()
+ End If
+ Next
+ dRowEliminar.Delete()
+ Next
+
+ TmpDT.AcceptChanges()
+ TmpDTRecepcionUsados.AcceptChanges()
+
+ End If
+ ObjAcum.Dispose()
+
+ End Sub
#End Region
diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb
index 07bac883c..e4a14edc9 100644
--- a/Ventas/Ventas.aspx.vb
+++ b/Ventas/Ventas.aspx.vb
@@ -4099,6 +4099,13 @@ Partial Class Ventas
If DdlTipoComprobante.SelectedValue.Contiene("Rem") And GvRemisiones.Rows.Count > 0 Then
LbCancelarDocumento.Visible = False
End If
+
+ 'SI TIENE REMISIONES Y VA A CANCELAR ES NECESARIO EL MOVIMIENTO DE DEVOLUCION
+ If DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant") AndAlso GvRemisiones.Rows.Count > 0 Then
+ ChkDevAlm.Checked = True
+ ChkDevAlm.Enabled = False
+ End If
+
End If
tdVigencia.Visible = DdlTipoComprobante.SelectedValue.Contiene("Cot")
@@ -9007,7 +9014,7 @@ Partial Class Ventas
End If
End If
- If ErrorList.Count = 0 AndAlso ObjFactura.TipoDocto.Contiene("Ing", "Ant") Then
+ If ErrorList.Count = 0 AndAlso factura.TipoDocto.Contiene("Ing", "Ant") Then
'Agregamos las remisiones a la tabla
If DtRemisionesPS IsNot Nothing AndAlso DtRemisionesPS.Rows.Count > 0 AndAlso ErrorList.Count = 0 Then
Dim CveVentaDetalle As Integer = 0
@@ -9030,7 +9037,7 @@ Partial Class Ventas
End If
- If DTRemisiones IsNot Nothing AndAlso DTRemisiones.Rows.Count > 0 AndAlso ErrorList.Count = 0 Then
+ If DTRemisiones IsNot Nothing AndAlso DTRemisiones.Rows.Count > 0 AndAlso ErrorList.Count = 0 AndAlso factura.TipoDocto.Contiene("Ing", "Ant") Then
Dim dt As DataTable = DTRemisiones.FiltraParametros("Aplicado = True")
If dt.Rows.Count > 0 Then
@@ -17766,6 +17773,7 @@ Partial Class Ventas
Next
End If
+ ObjFactura.CveAlmacenDevolucion = CveAlmacenDevolucion
If ChkDevAlm.Checked Then
ObjFactura.CveAlmacenDevolucion = CveAlmacenDevolucion
End If
diff --git a/asmx/WSApp.asmx b/asmx/WSApp.asmx
index ce2fd3bdc..685e55e7f 100644
--- a/asmx/WSApp.asmx
+++ b/asmx/WSApp.asmx
@@ -1,5 +1,5 @@
-<%@ WebService Language="VB" Class="WSApp" %>
-
+<%@ WebService Language="VB" Class="WSApp" %>
+
Option Explicit On
Imports System.Data
@@ -22,9 +22,9 @@ Imports Newtonsoft.Json.Linq
Public Class WSApp
- Inherits System.Web.Services.WebService
+ Inherits System.Web.Services.WebService
#Region "G L O B A L - D T"
-
+
Public ReadOnly Property UrlSitio As String
Get
Return ConfigurationManager.AppSettings("UrlSitio").ToString
@@ -436,9 +436,9 @@ Public Class WSApp
Set(value As DataTable)
Application("GlobalDTMotivosHorasExtras") = value
End Set
- End Property
+ End Property
#End Region
-
+
Public Property CveEmpresa As Integer = 143
Private Sub CreaObjetoEmpresa(ByRef UsuarioActual As Usuario)
@@ -459,7 +459,7 @@ Public Class WSApp
Else
End If
ObjEmpresa.Dispose()
- End Sub
+ End Sub
#Region "M E T O D O S - S E R V I C I O"
Public Function ValidaUsuario(CveUsuario As Integer) As Usuario
Dim UsuarioActual As Usuario = Nothing
@@ -794,9 +794,9 @@ Public Class WSApp
Retorno.Mensajes.Add("Ocurrió un error al eliminar el movimiento. Por favor vuelva a intetar.")
End If
ObjInv.Dispose()
- End Sub
+ End Sub
#End Region
-
+
#Region "P E D I D O S"
Private Function PreParaTimbre(Obj As Modelos.Factura) As CFDITimbre
Dim Timbre As New CFDITimbre
@@ -910,9 +910,9 @@ Public Class WSApp
i += 1
Next
Return Timbre
- End Function
+ End Function
#End Region
-
+
#Region "R E M I S I O N E S"
Private Function CreaFactura(ByRef Retorno As Modelos.Factura.MMensajeFactura, CveCliente As Integer, CveAlmacen As Integer, CveSubProyecto As Integer, CveMoneda As Integer, UsuarioActual As Usuario, Observaciones As String, ListaPS As List(Of MVentaProductos)) As Modelos.Factura
If CveSubProyecto <= 0 Then
@@ -1073,7 +1073,12 @@ Public Class WSApp
ObjFactura.Total = Total
ObjFactura.Timbre = PreParaTimbre(ObjFactura)
- ObjFactura.CveContratoSecciones = ""
+ ObjFactura.CveContratoSecciones = ""
+
+ 'BORRAR
+ ObjFactura.DtRecepcionUsados = New DataTable
+ ObjFactura.DtRecepcionUsados.Columns.Add("CvePS", GetType(Integer))
+
Catch ex As Exception
Retorno.Mensajes.Add(ex.ToString())
Return Nothing
@@ -1165,7 +1170,9 @@ Public Class WSApp
TmpDT.Columns.Add("ClaveSATFraccionArancelaria", GetType(String))
TmpDT.Columns.Add("ClaveSATUnidadAduana", GetType(String))
TmpDT.Columns.Add("ClaveSATFraccionArancelariaDescripcion", GetType(String))
- TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
+ TmpDT.Columns.Add("ClaveSATUnidadAduanaDescripcion", GetType(String))
+
+ TmpDT.Columns.Add("CveTamaño", GetType(Double))
Try
For Each PS As MVentaProductos In ListaPS
@@ -1434,9 +1441,9 @@ Public Class WSApp
End Try
ObjVentas.Dispose()
Return strBody.ToString
- End Function
+ End Function
#End Region
-
+
End Class
Namespace WebServiceAppModels2