diff --git a/App_Code/ClsInventarios.vb b/App_Code/ClsInventarios.vb
index e0cc7a960..74be2b92d 100644
--- a/App_Code/ClsInventarios.vb
+++ b/App_Code/ClsInventarios.vb
@@ -3061,6 +3061,24 @@ Public Class ClsInventarios
Return Retorno
End Function
+ Public Function GetMovimientosDevoluciones(CveVenta As Integer, CveEmpresa As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_Vta_VentaDetalleAlmacenDevolucion")
+
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveVenta", SqlDbType.Int).Value = CveVenta
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ End With
+
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al obtener datos de devolucion.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo)
+ End Try
+
+ Return Retorno
+ End Function
Public Function GetDevolucionRemisionesFacturadas(CveVenta As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_Inv_DevolucionRemisionesFacturadas")
diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb
index 0cbe50889..bcecb847d 100644
--- a/App_Code/ClsOC.vb
+++ b/App_Code/ClsOC.vb
@@ -967,13 +967,31 @@ Public Class ClsOC
Return Retorno
End Function
- Public Function UpdateOrdenCompraDetalleAjuste(CveOrdenCompra As Integer, CveOrdenCompraDetalle As Integer, Diferencia As Double) As Boolean
+ Public Function UpdateOrdenCompraDetalleAjuste(CveOrdenCompra As Integer, CveOrdenCompraDetalle As Integer, Diferencia As Double, CveUsuarioModifico As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OC_OrdenesCompraDetalleAjusteUpdate")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
.Add("@CveOrdenCompraDetalle", SqlDbType.Int).Value = CveOrdenCompraDetalle
.Add("@Diferencia", SqlDbType.Float).Value = Diferencia
+ .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
+ End With
+ Try
+ SqlAdapter.Fill(Data)
+ Retorno = True
+ Catch ex As Exception
+ OnError("Ocurrió un error al actualizar la Orden de Compra Detalle.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
+ End Try
+ Return Retorno
+ End Function
+ Public Function UpdateOrdenCompraMoneda(CveOrdenCompra As Integer, CveEmpresa As Integer, CveMoneda As Integer, CveUsuarioModifico As Integer) As Boolean
+ Dim Retorno As Boolean = False
+ DataAdapter("PA_OC_OrdenesCompraMonedaUpdate")
+ With SqlAdapter.SelectCommand.Parameters
+ .Add("@CveOrdenCompra", SqlDbType.Int).Value = CveOrdenCompra
+ .Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
+ .Add("@CveMoneda", SqlDbType.Int).Value = CveMoneda
+ .Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
End With
Try
SqlAdapter.Fill(Data)
diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb
index bb508bd69..c0867da74 100644
--- a/App_Code/Modelos.vb
+++ b/App_Code/Modelos.vb
@@ -3281,7 +3281,7 @@ Namespace Modelos
End If
Catch ex As Exception
- GuardaLog(ex.ToString())
+ GuardaLog("Model.Proceso.PreP-" & ex.ToString())
ErrorPrepoliza = True
End Try
Return ErrorPrepoliza
@@ -4340,13 +4340,14 @@ Namespace Modelos
End If
'CUANDO LA CANCELACION ESTA EN PROCESO NO DEBE REALIZAR NADA DE ESTE PROCESO
- If Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
+ If Not ErrorCancelar AndAlso Not EsRefacturacion AndAlso (CveEstatus > 0 AndAlso CveEstatus <> 20) AndAlso CveEstatusRefacturacion = 0 Then
'DEVOLUCION DE ALMACEN
If Not ErrorCancelar AndAlso TieneAlmacen Then
Dim TieneSalida As Boolean = False
Dim DtInventario As DataTable = Nothing
- Dim DtMovimientos As DataTable = Nothing
+ Dim DtSalidas As DataTable = Nothing
+ Dim DtDevoluciones As DataTable = Nothing
Dim DtExistencias As DataTable = Nothing
Dim DtRemisionesFacturadas As DataTable = Nothing
@@ -4375,14 +4376,16 @@ Namespace Modelos
ErrorCancelar = True
End If
- If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- DtInventario = ObjInventario.DtResultados.Copy()
- DtMovimientos = DtInventario.FiltraParametros($"CvePS IS NULL AND {Filtro}")
- DtExistencias = DtInventario.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
- TieneSalida = DtExistencias.Rows.Count > 0
- Else
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ If Not ErrorCancelar Then
+ If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
+ DtInventario = ObjInventario.DtResultados.Copy()
+ DtSalidas = DtInventario.FiltraParametros($"CvePS IS NULL AND {Filtro}")
+ DtExistencias = DtInventario.FiltraParametros($"CvePS IS NOT NULL AND {Filtro} AND CveTipoPS = 2")
+ TieneSalida = DtExistencias.Rows.Count > 0
+ Else
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
End If
End If
@@ -4390,38 +4393,42 @@ Namespace Modelos
If Not ErrorCancelar AndAlso TieneSalida Then
If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then
-
- For Each RowMovimiento As DataRow In DtMovimientos.Rows
+ 'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES
+ For Each RowMovimiento As DataRow In DtSalidas.Rows
Dim CveConceptoDevolucion As Integer = -1
Dim CveAlmacenDevolucion As Integer = -1
+
+ Dim CveMovimientoDevolucion As Integer = 0
+ Dim Folio As Integer = 0
+
Select Case RowMovimiento("CveConcepto").ToString().ToEntero()
Case 3
CveConceptoDevolucion = 18 'DEVOLUCION DEL CLIENTE
CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
Case 40
CveConceptoDevolucion = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
- 'SI TIENE REMISIONES RELACIONADAS
- If DtRemisionesFacturadas.Rows.Count > 0 Then
- Dim RowRemision As DataRow = DtExistencias.FiltroPrimero($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}")
- Dim CveRemision As Integer = RowRemision("CveRemision").ToString().ToEntero()
+ CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ ''SI TIENE REMISIONES RELACIONADAS
+ 'If DtRemisionesFacturadas.Rows.Count > 0 Then
+ ' Dim RowRemision As DataRow = DtExistencias.FiltroPrimero($"CveMovimiento = {RowMovimiento("CveMovimiento").ToString()}")
- Dim CancelarRemision As Boolean = (ListaRemisionesCancelar IsNot Nothing) AndAlso (ListaRemisionesCancelar.Any(Function(CveRemisionCancelar) CveRemisionCancelar = CveRemision))
- 'SI LA REMISION SE VA A CANCELAR DEBE REGRESAR AL ALMACEN GENERAL
- If CancelarRemision Then
- CveAlmacenDevolucion = RowRemision("CveAlmacenDevolucion").ToString().ToEntero()
- Else
- CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
- End If
- Else
- CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
- End If
+ ' Dim CveRemision As Integer = RowRemision("CveRemision").ToString().ToEntero()
+ ' Dim CancelarRemision As Boolean = (ListaRemisionesCancelar IsNot Nothing) AndAlso (ListaRemisionesCancelar.Any(Function(CveRemisionCancelar) CveRemisionCancelar = CveRemision))
+
+ ' 'SI LA REMISION SE VA A CANCELAR DEBE REGRESAR AL ALMACEN GENERAL
+ ' If CancelarRemision Then
+ ' CveAlmacenDevolucion = RowRemision("CveAlmacenDevolucion").ToString().ToEntero()
+ ' Else
+ ' CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ ' End If
+
+ 'Else
+ ' CveAlmacenDevolucion = RowMovimiento("CveAlmacen").ToString().ToEntero()
+ 'End If
End Select
- Dim CveMovimientoDevolucion As Integer = 0
- Dim Folio As Integer = 0
-
- 'VERIFICAR SI YA TIENE UNA DEVOLUCION
+ 'SI TIENE SALDO PENDIENTE POR DEVOLVER GENERA UN MOVIMIENTO DE DEVOLUCION
If ObjFactura.SaldoAlmacen <> 0 Then
'SALIDA DE ALMACEN - SALIDA POR TRASPASO CUANDO ES REMISION - DEVOLUCION (SI ES TRASPASO Y TIENE CONTRATO NO HACE DEVOLUCIóN)
CveMovimientoDevolucion = ObjInventario.AddMovimiento(CveAlmacenDevolucion, CveConceptoDevolucion, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveVenta, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=-1)
@@ -4518,30 +4525,15 @@ Namespace Modelos
End If
End If
End If
- 'Else
- ' 'UTILIZA LA DEVOLUCION YA REALIZADA
- ' Dim CveConceptoDevolucion As Integer = 18 'DEVOLUCION DEL CLIENTE
- ' If UsuarioActual.Empresa.Funcionalidad(575) = "1" Then
- ' CveConceptoDevolucion = 41 'DEVOLUCIÓN DEL CLIENTE DIRECTA
- ' End If
-
- ' If ObjInventario.GetInv_Mov(CveVenta, UsuarioActual.CveEmpresa) Then
- ' CveMovimientoDevolucion = ObjInventario.DtResultados.FiltroPrimeroValor("CveMovimiento", $"CvePS IS NULL AND CveConcepto = {CveConceptoDevolucion}").ToEntero()
- ' Else
- ' ErrorCancelar = True
- ' MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
- ' End If
End If
'DEVOLUCION REMISION - REGRESA LAS EXISTENCIAS A ENTREGA POR ADELANTADO SI LA FACTURA VIENE DE REMISION
'SI ES DEVOLUCION DEL CLIENTE DEBE REGRESAR A ENTREGA POR ADELANTADO
- If CveConceptoDevolucion = 18 Then
- If Not ErrorCancelar AndAlso RevivirRemisiones Then
- If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimientoDevolucion, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
- ErrorCancelar = True
- MensajeError = "Ocurrió un error al generar los movimientos de devolución a remisión"
- End If
+ If Not ErrorCancelar AndAlso CveConceptoDevolucion = 18 AndAlso RevivirRemisiones Then
+ If Not GeneraMovimientosEntregaPorAdelantadoRemision(CveMovimientoDevolucion, ObjVentas, ObjInventario, DtDevRem, ListaRemisionesCancelar) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al generar los movimientos de devolución a remisión"
End If
End If
@@ -4556,12 +4548,45 @@ Namespace Modelos
Next
+ 'VERIFICA LOS MOVIMIENTOS DE DEVOLUCION YA GENERADOS QUE TENGAN EXISTENCIA EN (ENTREGA POR ADELANTADO)
+ If Not ErrorCancelar Then
+ If ObjInventario.GetMovimientosDevoluciones(CveVenta, UsuarioActual.CveEmpresa) Then
+ DtDevoluciones = ObjInventario.DtResultados.FiltraParametros("CveTipoAlmacen = 10")
+ Else
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
+ End If
+ End If
+
+ 'SI EXISTEN HAY EXISTENCIA EN (ENTREGA POR ADELANTADO) SE TIENE QUE REGRESAR AL ALMACEN GENERAL
+ If Not ErrorCancelar AndAlso ListaRemisionesCancelar IsNot Nothing AndAlso ListaRemisionesCancelar.Count > 0 Then
+ For Each CveRemision As Integer In ListaRemisionesCancelar
+ For Each RowDevolucion As DataRow In DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}", DistinctColumns:={"CveRemision", "CveAlmacen", "CveAlmacenDestino"}).Rows
+
+ Dim DtDevRemision As DataTable = DtDevoluciones.FiltraParametros($"CveRemision={CveRemision}")
+
+ CveAlmacen = RowDevolucion("CveAlmacen").ToString().ToEntero()
+ CveAlmacenDevolucion = RowDevolucion("CveAlmacenDestino").ToString().ToEntero()
+
+ 'DEBE REGRESAR LA EXISTENCIA DE (ENTREGA POR ADELANTADO) AL ALMACEN GENERAL
+ If Not CancelarMovimientosRemision(CveRemision, CveAlmacen, CveAlmacenDevolucion, DtDevRemision, ObjVentas, ObjInventario) Then
+ ErrorCancelar = True
+ MensajeError = "Ocurrió un error al cancelar los movimientos de la remisión."
+ Exit For
+ End If
+
+ DtDevRemision.Dispose()
+ Next
+ Next
+ End If
+
'REALIZA LA DEVOLUCION AL ALMACEN VIRTUAL
If Not GeneraMovimientosVirtuales(CveVenta, ObjInventario) Then
ErrorCancelar = True
MensajeError = "Ocurrió un error al cargar los datos de devolución. Por favor vuelva a intentar."
End If
+ 'VERIFICAR MOVIMIENTOS DE APARTADOS
If Not ErrorCancelar Then
If Not GeneraMovimientosApartados(ObjInventario) Then
ErrorCancelar = True
@@ -4957,6 +4982,69 @@ Namespace Modelos
Return Not ErrorCancelar
End Function
+ Private Function CancelarMovimientosRemision(CveRemision As Integer, CveAlmacen As Integer, CveAlmacenDestino As Integer, DtMovDetalle As DataTable, ByRef ObjVentas As ClsVentas, ByRef ObjInventario As ClsInventarios) As Boolean
+ Dim ErrorCancelar As Boolean = False
+
+ Dim CveMovimientoSalidaDevRem As Integer = 0
+ Dim FolioMovimientoSalidaDevRem As Integer = 0
+
+ Dim CveMovimientoEntradaDevRem As Integer = 0
+ Dim FolioMovimientoEntradaDevRem As Integer = 0
+
+ 'SALIDA DE (ENTREGA POR ADELANTADO)
+ CveMovimientoSalidaDevRem = ObjInventario.AddMovimiento(CveAlmacen, 8, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveAlmacenDestino:=CveAlmacenDestino)
+ FolioMovimientoSalidaDevRem = ObjInventario.Folio
+
+ 'ENTRADA A (ALMACEN GENERAL)
+ CveMovimientoEntradaDevRem = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, Now, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, -1, CveRemision, -1, -1, Observaciones:="", Guia:="", CveContrato:=CveContrato, CveMovimientoRelacionado:=CveMovimientoSalidaDevRem, CveAlmacenDestino:=CveAlmacenDestino)
+ FolioMovimientoEntradaDevRem = ObjInventario.Folio
+
+ If Not (CveMovimientoSalidaDevRem > 0 And CveMovimientoEntradaDevRem > 0) Then
+ ErrorCancelar = True
+ End If
+
+ 'SALIDA DE (ENTREGA POR ADELANTADO)
+ If Not ErrorCancelar Then
+ For Each DrRem As DataRow In DtMovDetalle.FiltraParametros($"CveRemision = {CveRemision}").Rows
+ Dim CveVentaDetalleRem = DrRem("CveVentaDetalleRemision").ToString.ToEntero
+ Dim CantidadRem = DrRem("Cantidad").ToString.ToDecimal
+
+ If Not CveVentaDetalleRem > 0 Then
+ ErrorCancelar = True
+ Exit For
+ End If
+
+ If Not ObjInventario.AddMovimientoDetalle(CveMovimientoSalidaDevRem, DrRem("Cantidad").ToString.ToDecimal, DrRem("CveUM").ToString.ToEntero, DrRem("CvePS").ToString.ToEntero, DrRem("PU").ToString.ToDecimal, DrRem("CveActivoFijo").ToString.ToEntero, -1, DrRem("SerieLote").ToString, CveVentaDetalle:=CveVentaDetalleRem, Lote:=DrRem("Lote").ToString, Batch:=DrRem("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+
+ If ErrorCancelar Then
+ Exit For
+ End If
+ Next
+ End If
+
+ 'ENTRADA A (ALMACEN GENERAL)
+ If Not ErrorCancelar Then
+ 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, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString().ToEntero(), CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, Lote:=Dr("Lote").ToString, Batch:=Dr("Batch").ToString) Then
+ ErrorCancelar = True
+ Exit For
+ End If
+ Next
+ End If
+ End If
+
+
+ If Not ObjVentas.UpdateVentasDevolucionAlmacen(2, CveRemision) Then
+ ErrorCancelar = True
+ End If
+
+ Return Not ErrorCancelar
+ End Function
+
Private Function GeneraMovimientosApartados(ByRef ObjInventario As ClsInventarios) As Boolean
Dim ErrorCancelar As Boolean = False
If Not ErrorCancelar Then
diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb
index f2c5ad2e7..579bd3c26 100644
--- a/Compras/Compras.aspx.vb
+++ b/Compras/Compras.aspx.vb
@@ -19400,7 +19400,7 @@ Partial Class Compras_Compras
Dim PUCompra As Decimal = DrDiferencias("PUCompra").ToString.ToDecimal
Dim DiferenciaInvOC As Decimal = DrDiferencias("Diferencia").ToString.ToDecimal
If DiferenciaInvOC.RoundSQL() <> 0 Then
- If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra) Then
+ If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then
Retorno = False
Exit For
End If
@@ -19535,7 +19535,7 @@ Partial Class Compras_Compras
Exit For
End If
End If
- If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra) Then
+ If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then
Retorno = False
Exit For
End If
diff --git a/Inventarios/RecepcionAlmacen.aspx b/Inventarios/RecepcionAlmacen.aspx
index 8d742140e..8d284c08a 100644
--- a/Inventarios/RecepcionAlmacen.aspx
+++ b/Inventarios/RecepcionAlmacen.aspx
@@ -418,7 +418,7 @@
+ DataKeyNames="EntregaDirecta,Consec,CodigoBarras,CvePS,CveUM,PU,CantidadC,CantidadF,UM,PS,CveCompraDetalle,CveOrdenCompraDetalle,PUExtranjero,AplicaSerieLote,CveClasificacion,Codigo,CveVentaDetalle,CostoIndirecto,CveTamaño,Lote,AplicaSeccion,AplicaLote,AplicaCaducidad,AplicaSerie" HeaderStyle-CssClass="Titulos" RowStyle-Height="25px" CssClass="table table-striped table-hover Widthall ScrollAD mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None">
diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb
index 05ef7a391..91b612f15 100644
--- a/Inventarios/RecepcionAlmacen.aspx.vb
+++ b/Inventarios/RecepcionAlmacen.aspx.vb
@@ -1109,11 +1109,19 @@ Partial Class Inventarios_RecepcionAlmacen
TmDT.Columns.Add("PUExtranjero", GetType(Double))
TmDT.Columns.Add("CostoIndirectoExtranjero", GetType(Double))
TmDT.Columns.Add("Consec", GetType(Integer))
- TmDT.Columns.Add("CantidadSurtidaPantalla", GetType(Double))
- TmDT.Columns.Add("AplicaSeccion", GetType(Boolean))
- TmDT.Columns.Add("AplicaSerie", GetType(Boolean))
- TmDT.Columns.Add("AplicaLote", GetType(Boolean))
- TmDT.Columns.Add("AplicaCaducidad", GetType(Boolean))
+ TmDT.Columns.Add("CantidadSurtidaPantalla", GetType(Double))
+ If Not TmDT.Columns.Contains("AplicaSeccion") Then
+ TmDT.Columns.Add("AplicaSeccion", GetType(Double))
+ End If
+ If Not TmDT.Columns.Contains("AplicaSerie") Then
+ TmDT.Columns.Add("AplicaSerie", GetType(Double))
+ End If
+ If Not TmDT.Columns.Contains("AplicaLote") Then
+ TmDT.Columns.Add("AplicaLote", GetType(Double))
+ End If
+ If Not TmDT.Columns.Contains("AplicaCaducidad") Then
+ TmDT.Columns.Add("AplicaCaducidad", GetType(Double))
+ End If
If Not TmDT.Columns.Contains("CostoIndirecto") Then
TmDT.Columns.Add("CostoIndirecto", GetType(Double))
End If
@@ -1166,21 +1174,21 @@ Partial Class Inventarios_RecepcionAlmacen
DtInv = DtInv.FiltraParametros("", "PS")
End If
- For Each item As DataRow In DtInv.Rows
- Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("")
- If Dr IsNot Nothing Then
- item("AplicaSeccion") = CBool(Dr("AplicaSeccion"))
- If CBool(Dr("AplicaSeccion")) Then GvInv.Columns(10).Visible = True
- item("AplicaSerie") = CBool(Dr("AplicaSerie"))
- item("AplicaLote") = CBool(Dr("AplicaLote"))
- If CBool(Dr("AplicaLote")) Then GvInv.Columns(11).Visible = True
- item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad"))
- If CBool(Dr("AplicaCaducidad")) Then GvInv.Columns(12).Visible = True
- If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then
- GvInv.Columns(15).Visible = True
- End If
- End If
- Next
+ 'For Each item As DataRow In DtInv.Rows
+ ' Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, item("CvePS").ToString.ToEntero).FiltroPrimero("")
+ ' If Dr IsNot Nothing Then
+ ' item("AplicaSeccion") = CBool(Dr("AplicaSeccion"))
+ ' If CBool(Dr("AplicaSeccion")) Then GvInv.Columns(10).Visible = True
+ ' item("AplicaSerie") = CBool(Dr("AplicaSerie"))
+ ' item("AplicaLote") = CBool(Dr("AplicaLote"))
+ ' If CBool(Dr("AplicaLote")) Then GvInv.Columns(11).Visible = True
+ ' item("AplicaCaducidad") = CBool(Dr("AplicaCaducidad"))
+ ' If CBool(Dr("AplicaCaducidad")) Then GvInv.Columns(12).Visible = True
+ ' If CBool(Dr("AplicaSeccion")) Or CBool(Dr("AplicaLote")) Or CBool(Dr("AplicaCaducidad")) Or CBool(Dr("AplicaSerie")) Then
+ ' GvInv.Columns(15).Visible = True
+ ' End If
+ ' End If
+ 'Next
GvInv.DataSource = DtInv
GvInv.DataBind()
@@ -2824,7 +2832,7 @@ Partial Class Inventarios_RecepcionAlmacen
End If
End If
Catch ex As Exception
- OnError("Ocurrió un error al guardar", ex)
+ OnError("Ocurrió un error al guardar RA.", ex)
ErrorMovInv = True
End Try
diff --git a/Inventarios/RecepcionEntrega.aspx.vb b/Inventarios/RecepcionEntrega.aspx.vb
index 7a3a11e57..30413d05c 100644
--- a/Inventarios/RecepcionEntrega.aspx.vb
+++ b/Inventarios/RecepcionEntrega.aspx.vb
@@ -2213,14 +2213,19 @@ Partial Class Inventarios_RecepcionEntrega
End If
Else
ErrorMovInv = True
- TextoError = "Ocurrió un Error al ingresar la prepoliza"
+ TextoError = "Ocurrió un Error al ingresar la prepoliza.1"
End If
Else
ErrorMovInv = True
- TextoError = "Ocurrió un Error al ingresar las prepolizas"
+ TextoError = "Ocurrió un Error al ingresar las prepolizas.2"
End If
-
+ Else
+ ErrorMovInv = True
+ TextoError = "Ocurrió un Error al ingresar las prepolizas.3"
End If
+ Else
+ ErrorMovInv = True
+ TextoError = "Ocurrió un Error al ingresar las prepolizas.4"
End If
End If
diff --git a/OC/OC.aspx.vb b/OC/OC.aspx.vb
index edbc3903d..b57dc6633 100644
--- a/OC/OC.aspx.vb
+++ b/OC/OC.aspx.vb
@@ -6769,7 +6769,7 @@ Partial Class OC
If ObjInventarios.DtResultados.Rows.Count > 0 Then
DdlMoneda.Enabled = False
Dim TipoEstatusTerminado As String = GlobalDTOCEstatus(UsuarioActual.CveEmpresa).FiltroPrimeroValor("TipoTermino", String.Format("CveEstatus = {0}", CboE.SelectedValue))
- If TipoEstatusTerminado = "1" Then
+ If TipoEstatusTerminado = "3" Then
LnkCambiarMoneda.Visible = True
End If
End If
@@ -7684,129 +7684,277 @@ Partial Class OC
Protected Sub BtnCambiarMoneda_Click() Handles BtnCambiarMoneda.Click
Dim ObjInv As New ClsInventarios
- Dim OC As New ClsOC
- Dim Err As Boolean = False
- If ObjInv.GetMovimientos(CveMovimientoAlmacenVenta, -1, -1, UsuarioActual.CveEmpresa) Then
- Dim TipoMoneda As String = ObjInv.DtResultados.FiltroPrimeroValor("CveMoneda")
- Dim ObjConta As New ClsContabilidad
-
- Dim IdCtaContableOC As Integer = 0
- Dim IdCtaContableOCME As Integer = 0
- Dim IdCtaContableOCComplementaria As Integer = 0
-
- If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) Then
- IdCtaContableOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
- End If
-
- If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) Then
- IdCtaContableOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
- End If
-
- If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) Then
- IdCtaContableOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
- End If
-
- Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim)
- LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, ""))
-
- Dim CveProveedorContacto As Integer = -1
-
- Dim CveProveedor As Integer = -1
- If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then
- CveProveedor = DdlProveedores.SelectedValue.ToEntero
- CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero
- End If
-
- Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal)
-
- Dim Promocion = TxtPromocion.Text.Trim
-
- Dim TCDecimal As Decimal = TxtTCCambioMoneda.Text.ToDecimal
- Dim TCDouble As Double = TxtTCCambioMoneda.Text.ToDouble
-
- If TipoMoneda = "2" Then
- Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- If CvePrePoliza > 0 Then
- Dim PrimerImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
- Dim SegundoImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
-
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte + SegundoImporte, lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- Err = True
- Else
- If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
- LugarEntrega, 1, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA * TCDecimal), RetIVA:=(TxtRetIVA.Text.ToDecimal * TCDecimal),
- RetISR:=(TxtRetISR.Text.ToDecimal * TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
- Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
- PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
- Err = True
- Else
- For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
- If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble * TCDouble), dr("CveSubProyecto").ToString.ToEntero,
- dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
- (dr("Descuento").ToString.ToDouble * TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble * TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble * TCDouble), IVA:=(dr("IVA").ToString.ToDouble * TCDouble),
- RetIVA:=(dr("RetIVA").ToString.ToDouble * TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble * TCDouble), Total:=(dr("Total").ToString.ToDouble * TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
- IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
- IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
- Err = True
- Exit For
- End If
- Next
- End If
- End If
- Else
- Err = True
- End If
- Else
- Err = True
- End If
- End If
- ElseIf TipoMoneda = "1" Then
- Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
- If CvePrePoliza > 0 Then
- Dim PrimerImporte As Decimal = Decimal.Round(((LblSubTotal.Text.ToDecimal) / TxtTCCambioMoneda.Text.ToDecimal), 2, MidpointRounding.AwayFromZero)
- Dim SegundoImporte As Decimal = LblSubTotal.Text.ToDecimal
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, (0 - (PrimerImporte + SegundoImporte)), lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=DdlProveedores.SelectedText, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
- Err = True
- Else
- If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
- LugarEntrega, 2, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA / TCDecimal),
- RetIVA:=(TxtRetIVA.Text.ToDecimal / TCDecimal), RetISR:=(TxtRetISR.Text.ToDecimal / TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
- Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
- PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
- Err = True
- Else
- For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
- If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble / TCDouble), dr("CveSubProyecto").ToString.ToEntero,
- dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
- (dr("Descuento").ToString.ToDouble / TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble / TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble / TCDouble), IVA:=(dr("IVA").ToString.ToDouble / TCDouble),
- RetIVA:=(dr("RetIVA").ToString.ToDouble / TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble / TCDouble), Total:=(dr("Total").ToString.ToDouble / TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
- IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
- IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
- Err = True
- Exit For
- End If
- Next
- End If
- End If
- Else
- Err = True
- End If
- Else
- Err = True
- End If
- End If
- End If
- ObjConta.Dispose()
+ Dim DtInvOC As DataTable = Nothing
+ If ObjInv.GetMovimientosOC(CveOrdenCompra, UsuarioActual.CveEmpresa) Then
+ DtInvOC = ObjInv.DtResultados
End If
ObjInv.Dispose()
- If Err Then
- Alert("Sucedió un error con el cambio en la moneda", TipoMensaje.MsgError)
- Else
- Alert("Moneda actualizada con exito")
+
+
+ Dim CveMonedaOC As Integer = DdlMoneda.SelectedValue.ToEntero
+ Dim CveProveedor As Integer = DdlProveedores.SelectedValue.ToEntero
+ Dim ProveedorNombre As String = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {CveProveedor}").ToString
+ Dim ConceptoPartida As String = String.Format(" Cambio Moneda {0} OC: {1} ", ProveedorNombre, lblFolio.Text)
+
+ Dim ObjConta As New ClsContabilidad
+ Dim ObjOC As New ClsOC(ObjConta.IniciaTransacSQL)
+ Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-CambioMoneda", 74, 0, 0, 1, Now, ConceptoPartida, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ Dim Importe176, Importe228, Importe229 As Decimal
+ Dim ImporteCI176, ImporteMN229, PU, Importe176PU As Decimal
+ Dim Retorno As Boolean = True
+ Dim ErrorPrepoliza As Boolean = False
+
+ Dim IdCtaContableOC As Integer = 0
+ Dim IdCtaContableME As Integer = 0
+ Dim IdCtaContableMEComp As Integer = 0
+
+ If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) Then
+ IdCtaContableOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
End If
+
+ If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) Then
+ IdCtaContableME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ End If
+
+ If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) Then
+ IdCtaContableMEComp = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ End If
+
+ '.FiltraParametros($"CvePS > 0 AND CveOrdenCompraDetalle = {dr2("CveOrdenCompraDetalle").ToString.ToEntero}").Copy
+ For Each gvr As GridViewRow In GvD.Rows
+ If ObjOC.OrdenesCompraDetalleCostoPP(gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero) AndAlso ObjOC.DtResultados.Rows.Count >= 1 Then
+ Dim Concepto As String = $"{DdlProveedores.SelectedText} OC {ObjOC.DtResultados.FiltroPrimeroValor("Folio").ToString} Inv: {ObjOC.DtResultados.FiltroPrimeroValor("FolioAlmacen").ToString}"
+ Importe176 = ObjOC.DtResultados.FiltroPrimeroValor("Importe176Suma").ToDecimal ': ImporteME176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME176").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal : ImporteMN176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN176").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal
+ Importe228 = ObjOC.DtResultados.FiltroPrimeroValor("Importe228Suma").ToDecimal ': ImporteME228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteME228").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal : ImporteMN228 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteMN228").ToDecimal * gvr.DataKey("Cantidad").ToString.ToDecimal
+ Importe229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229Suma").ToDecimal : ImporteMN229 = ObjOC.DtResultados.FiltroPrimeroValor("Importe229Suma").ToDecimal
+ ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI176").ToDecimal
+ Importe176PU = ObjOC.DtResultados.FiltroPrimeroValor("Importe176").ToDecimal
+
+ Dim CveMovimientoAlmacen As Integer = ObjOC.DtResultados.FiltroPrimeroValor("CveMovimientoAlmacen").ToEntero
+ Dim TCAjuste As Decimal = ObjOC.DtResultados.FiltroPrimeroValor("TipoCambioAjuste").ToDecimal
+
+
+ If CveMonedaOC = 2 Then
+ CveMonedaOC = 1
+ PU = ObjOC.DtResultados.FiltroPrimeroValor("Importe228").ToDecimal * TCAjuste
+ ImporteCI176 = ObjOC.DtResultados.FiltroPrimeroValor("ImporteCI228").ToDecimal
+ Importe176 = Importe228 + Importe229
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe228, ImporteME:=-Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe229, ImporteME:=-Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ ErrorPrepoliza = True
+ Exit For
+ Else
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe176, ImporteME:=Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ ErrorPrepoliza = True
+ Exit For
+ Else
+ If Not ObjOC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, PU, UsuarioActual.CveUsuario) Then
+ Retorno = False
+ Exit For
+ End If
+ End If
+ End If
+ Else
+ ErrorPrepoliza = True
+ Exit For
+ End If
+ Else
+ CveMonedaOC = 2
+ TCAjuste = TxtTCCambioMoneda.Text.ToDecimal
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, -Importe176, lblFolio.Text, 176, Concepto, Now, IdCtaContableOC, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=-Importe176, ImporteME:=-Importe176, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ ErrorPrepoliza = True
+ Exit For
+ Else
+ Importe228 = (Importe176 / TCAjuste)
+ Importe229 = (Importe228 * TCAjuste - Importe228).RoundSQL
+ Importe228 = Importe228.RoundSQL(3) ' se redondea a 3 digitos, por la conversion, y no afecta al CK de complementaria
+ Dim dift As Decimal = Importe176 - Importe228 - Importe229
+ If dift <> 0 Then Importe229 += dift
+ PU = Importe176PU / TCAjuste
+
+ If ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe228, lblFolio.Text, 228, Concepto, Now, IdCtaContableME, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe228, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, 1, Importe229, lblFolio.Text, 229, Concepto, Now, IdCtaContableMEComp, -1, CveCompra:=CveCompra, CveProveedor:=CveProveedor, ImporteMX:=Importe229, ImporteME:=Importe228, CveOCDetalle:=gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, TipoCambio:=TCAjuste, CveMovimientoAlmacen:=CveMovimientoAlmacen) Then
+ ErrorPrepoliza = True
+ Exit For
+ Else
+ If Not ObjOC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, gvr.DataKey("CveOrdenCompraDetalle").ToString.ToEntero, PU, UsuarioActual.CveUsuario) Then
+ Retorno = False
+ Exit For
+ End If
+ End If
+ Else
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ End If
+ End If
+ Else
+ Alert("Ocurrió un error al procesar la mercancia recibida por adelantado. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
+ ErrorPrepoliza = True
+ Exit For
+ End If
+
+ 'DtInvOC.FiltraParametros($"CvePS > 0 AND CveOrdenCompraDetalle = {GvD.DataKeys("CveOrdenCompraDetalle").ToString}").Copy()
+
+ 'If CveMonedaOC = 1 Then
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, SerieFolio, 228, ConceptoPartida, Fecha, IdCtaContableRecepcionOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteME, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, SerieFolio, 229, ConceptoPartida, Fecha, IdCtaContableRecepcionOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=ImporteMEComp, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then
+ ' If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DifImporte, SerieFolio, 69, ConceptoPartida, Fecha, IdCtaContable69, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteMX:=DifImporte, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC) Then
+ ' Retorno = False
+ ' Exit For
+ ' End If
+ ' Else
+ ' Retorno = False
+ ' Exit For
+ ' End If
+ ' Else
+ ' Retorno = False
+ ' Exit For
+ ' End If
+ 'End If
+
+ Next
+
+ If Not ErrorPrepoliza Then
+
+ If Not ObjOC.UpdateOrdenCompraMoneda(CveOrdenCompra, UsuarioActual.CveEmpresa, CveMonedaOC, UsuarioActual.CveUsuario) Then
+ ErrorPrepoliza = True
+ End If
+ End If
+
+ If Not ErrorPrepoliza Then
+ ObjOC.Commit()
+ Alert("Cambio Aplicado correctamente")
+ Else
+ ObjOC.RollBack()
+ Alert("Sucedió un error con el cambio en la moneda", TipoMensaje.MsgError)
+ End If
+
+ 'Dim ObjInv As New ClsInventarios
+ 'Dim OC As New ClsOC
+ 'Dim Err As Boolean = False
+ 'If ObjInv.GetMovimientos(CveMovimientoAlmacenVenta, -1, -1, UsuarioActual.CveEmpresa) Then
+ ' Dim TipoMoneda As String = ObjInv.DtResultados.FiltroPrimeroValor("CveMoneda")
+ ' Dim ObjConta As New ClsContabilidad
+
+ ' Dim IdCtaContableOC As Integer = 0
+ ' Dim IdCtaContableOCME As Integer = 0
+ ' Dim IdCtaContableOCComplementaria As Integer = 0
+
+ ' If ObjConta.GetRetCuenta(176, UsuarioActual.CveEmpresa) Then
+ ' IdCtaContableOC = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ ' End If
+
+ ' If ObjConta.GetRetCuenta(228, UsuarioActual.CveEmpresa) Then
+ ' IdCtaContableOCME = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ ' End If
+
+ ' If ObjConta.GetRetCuenta(229, UsuarioActual.CveEmpresa) Then
+ ' IdCtaContableOCComplementaria = ObjConta.DtResultados.FiltroPrimeroValor("IdCtaContable").ToEntero
+ ' End If
+
+ ' Dim LugarEntrega = If(txtLugarEntrega.Text.Trim = "", "-1", txtLugarEntrega.Text.Trim)
+ ' LugarEntrega = If(DivLugarEntrega1.Visible, LugarEntrega, If(TxtLugarEntregaDirecta.Visible, TxtLugarEntregaDirecta.Text.Trim, ""))
+
+ ' Dim CveProveedorContacto As Integer = -1
+
+ ' Dim CveProveedor As Integer = -1
+ ' If Not ChkCotizacion.Checked OrElse (UsuarioActual.Empresa.Funcionalidad(565) = "1" AndAlso CveConfianzaProveedor > 0) Then
+ ' CveProveedor = DdlProveedores.SelectedValue.ToEntero
+ ' CveProveedorContacto = IIf(DdlProveedorContacto.SelectedValue.ToEntero = 0, "-1", DdlProveedorContacto.SelectedValue).ToString.ToEntero
+ ' End If
+
+ ' Dim IVA = If(TxtIVA.Visible, TxtIVA.Text.ToDecimal, LblIVA.Text.ToDecimal)
+
+ ' Dim Promocion = TxtPromocion.Text.Trim
+
+ ' Dim TCDecimal As Decimal = TxtTCCambioMoneda.Text.ToDecimal
+ ' Dim TCDouble As Double = TxtTCCambioMoneda.Text.ToDouble
+
+ ' If TipoMoneda = "2" Then
+ ' Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ ' If CvePrePoliza > 0 Then
+ ' Dim PrimerImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
+ ' Dim SegundoImporte As Integer = (0 - LblSubTotal.Text.ToDecimal)
+
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte + SegundoImporte, lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' Err = True
+ ' Else
+ ' If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
+ ' LugarEntrega, 1, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA * TCDecimal), RetIVA:=(TxtRetIVA.Text.ToDecimal * TCDecimal),
+ ' RetISR:=(TxtRetISR.Text.ToDecimal * TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
+ ' Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
+ ' PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
+ ' Err = True
+ ' Else
+ ' For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
+ ' If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble * TCDouble), dr("CveSubProyecto").ToString.ToEntero,
+ ' dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
+ ' (dr("Descuento").ToString.ToDouble * TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble * TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble * TCDouble), IVA:=(dr("IVA").ToString.ToDouble * TCDouble),
+ ' RetIVA:=(dr("RetIVA").ToString.ToDouble * TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble * TCDouble), Total:=(dr("Total").ToString.ToDouble * TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
+ ' IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
+ ' IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
+ ' Err = True
+ ' Exit For
+ ' End If
+ ' Next
+ ' End If
+ ' End If
+ ' Else
+ ' Err = True
+ ' End If
+ ' Else
+ ' Err = True
+ ' End If
+ ' End If
+ ' ElseIf TipoMoneda = "1" Then
+ ' Dim CvePrePoliza As Integer = ObjConta.AddPrePolizas("OC/OC-(OCAlmacen)", 74, 0.0D, 0.0D, 1, Now, DdlProveedores.SelectedText, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa)
+ ' If CvePrePoliza > 0 Then
+ ' Dim PrimerImporte As Decimal = Decimal.Round(((LblSubTotal.Text.ToDecimal) / TxtTCCambioMoneda.Text.ToDecimal), 2, MidpointRounding.AwayFromZero)
+ ' Dim SegundoImporte As Decimal = LblSubTotal.Text.ToDecimal
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, PrimerImporte, lblFolio.Text, 228, lblFolio.Text, Now, IdCtaContableOCME, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, SegundoImporte, lblFolio.Text, 229, lblFolio.Text, Now, IdCtaContableOCComplementaria, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, (0 - (PrimerImporte + SegundoImporte)), lblFolio.Text, 176, lblFolio.Text, Now, IdCtaContableOC, -1, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacenVenta, CveOC:=CveOrdenCompra) Then
+ ' Err = True
+ ' Else
+ ' If Not OC.UpdateOrdenCompra(-1, TxtDescrip.Text, TxtJustificacion.Text, DdlPrioridad.SelectedValue.ToEntero, ChkCotizacion.Checked, If(TxtFechaEstimadaEntrega.Text.Trim = "", "-1", TxtFechaEstimadaEntrega.Text.Trim),
+ ' LugarEntrega, 2, CveProveedor, CveOrdenCompra, UsuarioActual.CveUsuario, Ddlcliente.txtValue.Value.ToEntero, DdlVendedor.SelectedValue.ToEntero, txtobsprioridad.Text, IVA:=(IVA / TCDecimal),
+ ' RetIVA:=(TxtRetIVA.Text.ToDecimal / TCDecimal), RetISR:=(TxtRetISR.Text.ToDecimal / TCDecimal), FolioAdicional:=TxtFolioAdicional.Text, EntregaDirecta:=If(ChkEntregaDirecta.Checked, 1, -1), CveDireccionEnvio:=If(DdlDireccionEnvio.Visible, DdlDireccionEnvio.SelectedValue.ToEntero, -1),
+ ' Guia:=TxtGuia.Text.Trim, IEPS:=TxtIEPS.Text.ToDecimal, UsoCFDI:=DdlUsoCFDI.SelectedValue.ToEntero, Promocion:=Promocion, pCveProveedorSucursal:=DdlProveedorSucursal.SelectedValue.ToEntero, CveProveedorContacto:=CveProveedorContacto,
+ ' PorcentajeIVA:=Math.Round(DdlIVA.SelectedValue.ToDouble - 1, 2)) Then
+ ' Err = True
+ ' Else
+ ' For Each dr As DataRow In DtDetalle.FiltraParametros("TipoDato IN (1)").Rows
+ ' If OC.UpdateOrdenCompraDetalle(dr("Cantidad").ToString.ToDouble, dr("CveUnidadMedida").ToString.ToEntero, dr("CvePS").ToString.ToEntero, (dr("Importe").ToString.ToDouble / TCDouble), dr("CveSubProyecto").ToString.ToEntero,
+ ' dr("CveActivoFijo").ToString.ToEntero, dr("Observacion").ToString, UsuarioActual.CveUsuario, dr("CveOrdenCompraDetalle").ToString.ToEntero, If(TipoOC = "REQ", -1, dr("CvePresupuestoEgreso").ToString.ToEntero),
+ ' (dr("Descuento").ToString.ToDouble / TCDouble), IEPSPS:=(dr("IEPSPS").ToString.ToDouble / TCDouble), IEPSPSIVA:=(dr("IEPSPSIVA").ToString.ToDouble / TCDouble), IVA:=(dr("IVA").ToString.ToDouble / TCDouble),
+ ' RetIVA:=(dr("RetIVA").ToString.ToDouble / TCDouble), RetISR:=(dr("RetISR").ToString.ToDouble / TCDouble), Total:=(dr("Total").ToString.ToDouble / TCDouble), CveContratoDetalle:=dr("CveContratoDetalle").ToString.ToEntero,
+ ' IVAPorcentaje:=dr("IVAPorcentaje").ToString.ToDouble, RetIVAPorcentaje:=dr("RetIVAPorcentaje").ToString.ToDouble, RetISRPorcentaje:=dr("RetISRPorcentaje").ToString.ToDouble, IEPSPSPorcentaje:=dr("IEPSPSPorcentaje").ToString.ToDouble,
+ ' IEPSPSIVAPorcentaje:=dr("IEPSPSIVAPorcentaje").ToString.ToDouble) <= 0 Then
+ ' Err = True
+ ' Exit For
+ ' End If
+ ' Next
+ ' End If
+ ' End If
+ ' Else
+ ' Err = True
+ ' End If
+ ' Else
+ ' Err = True
+ ' End If
+ ' End If
+ ' End If
+ ' ObjConta.Dispose()
+ 'End If
+ 'ObjInv.Dispose()
+ 'If Err Then
+ ' Alert("Sucedió un error con el cambio en la moneda", TipoMensaje.MsgError)
+ 'Else
+ ' Alert("Moneda actualizada con exito")
+ 'End If
End Sub
End Class
diff --git a/Ventas/Clientes.aspx b/Ventas/Clientes.aspx
index 5c4cc70ee..5ab17c534 100644
--- a/Ventas/Clientes.aspx
+++ b/Ventas/Clientes.aspx
@@ -179,8 +179,8 @@