diff --git a/Compras/Compras.aspx b/Compras/Compras.aspx index 64e8b39ec..b7434dad4 100644 --- a/Compras/Compras.aspx +++ b/Compras/Compras.aspx @@ -1518,10 +1518,8 @@
- - - - + + diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index e80e88a24..7ca21003d 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -1725,7 +1725,7 @@ Partial Class Compras_Compras If ProductosCodigoSATNoPermitidos.ToString.Length > 0 Then Dim mensajeAdvertencia As String = String.Format("El comprobante contiene productos con código SAT '01010101', revise los productos:

{0}", ProductosCodigoSATNoPermitidos.ToString) Alert(mensajeAdvertencia, TipoMensaje.MsgAdvertencia) - If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso UsuarioActual.CveUsuario <> 1721 Then BtnGuardar.Enabled = False '' solo se activa para el usuario Sara.JAM + If UsuarioActual.CveEmpresa.Contiene(119, 158) AndAlso Not UsuarioActual.CveUsuario.Contiene(1719, 1721) Then BtnGuardar.Enabled = False '' solo se activa para el usuario Sara.JAM BtnGuardar.ToolTip = "No se permite registrar facturas con conceptos con código '01010101'. Solicite al proveedor un nuevo comprobante." End If @@ -13544,10 +13544,6 @@ Partial Class Compras_Compras 'TabOC.Visible = True 'End If - If Not UsuarioActual.TienePermisoProceso(242) Then - DdlOCVinculaInv.Items.RemoveAt(2) - DdlOCVinculaInv.Items.RemoveAt(3) - End If End Sub Protected Sub BtnBuscarOC_Click(sender As Object, e As EventArgs) Handles BtnBuscarOC.Click @@ -13722,7 +13718,7 @@ Partial Class Compras_Compras End If Next ObjOC.Dispose() - + Dim CveConceptoAlmacenSugerido As String = "205" 'MOVIMIENTOS DE ALMACÉN Dim ObjInventarios As New ClsInventarios Dim FoliosOCAlmacen As String = "" @@ -13730,6 +13726,7 @@ Partial Class Compras_Compras If ObjInventarios.GetMovimientosOC(CveOCItem.ToEntero, UsuarioActual.CveEmpresa) Then If ObjInventarios.DtResultados.Rows.Count > 0 Then FoliosOCAlmacen = $"{ObjInventarios.DtResultados.FiltroPrimeroValor("FolioOC")}," + CveConceptoAlmacenSugerido = "176" End If Else Alert("Ocurrió un error al cargar los movimientos de almacén de la orden de compra", TipoMensaje.MsgError) @@ -13747,6 +13744,7 @@ Partial Class Compras_Compras ' si usa almacen, si tiene activado que reciba por OC, y que si la compra tipo Proveedor. que lo muestre If UsuarioActual.Empresa.UsaInventarios And UsuarioActual.Empresa.Funcionalidad(131).ToEntero > 0 AndAlso CveTipoConcepto = 1 Then DivOCVinculaInv.Visible = True + DdlOCVinculaInv.SelectedValueExist(CveConceptoAlmacenSugerido) End If 'TIPO CAMBIO @@ -18731,7 +18729,8 @@ Partial Class Compras_Compras Dim PUCompra As Decimal = 0.0D Dim CveMoneda As Integer = 1 Dim PS As String = "" - Dim TipoMovtoCosto As Boolean = True + Dim TipoMovtoCosto As Boolean = False + If UsuarioActual.CveEmpresa = 119 Then TipoMovtoCosto = True tCveProveedor = DtInvOCDiferencias.MAX("CveProveedor").ToEntero ProveedorNombre = GlobalDTCompProveedores(UsuarioActual.CveEmpresa).FiltroPrimeroValor("RazonSocial", $"CveProveedor = {tCveProveedor}").ToString @@ -18770,22 +18769,29 @@ Partial Class Compras_Compras Retorno = False End If + Dim DiferenciaInvOCCosto As Decimal = DiferenciaInvOC + If TipoMovtoCosto Then DiferenciaInvOCCosto = -DiferenciaInvOC ' cuando es abonado es negativo el valor + If CvePrePoliza > 0 Then - If CveMoneda = 2 Then - ImporteME = (DiferenciaInvOC / TCInvOC).RoundAD() - ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundAD() + If CveMoneda = 2 Then + ImporteME = (DiferenciaInvOC / TCInvOC).RoundAD() + ImporteMEComp = ((ImporteME * TCInvOC) - ImporteME).RoundAD() - Dim DifImporte As Decimal = DiferenciaInvOC - (ImporteME + ImporteMEComp) + Dim DifImporte As Decimal = DiferenciaInvOC - (ImporteME + ImporteMEComp) - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, -DiferenciaInvOC, -DiferenciaInvOC, 177, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto) Then + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DiferenciaInvOCCosto, DiferenciaInvOCCosto, 177, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto) Then Retorno = False Exit For End If If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteME, ImporteME, 228, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, ImporteMEComp, 229, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then - If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DifImporte, DifImporte, 69, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC, CveSubProyecto:=CveSubProyecto) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, ImporteMEComp, ImporteMEComp, 229, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=ImporteME, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle) Then + If DifImporte <> 0 AndAlso Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DifImporte, DifImporte, 69, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, ImporteME:=DifImporte, TipoCambio:=TCInvOC, CveOCDetalle:=CveOCDetalle, CveClasificacion:=CveClasificacionCostoOC, CveSubProyecto:=CveSubProyecto) Then + Retorno = False + Exit For + End If + Else Retorno = False Exit For End If @@ -18794,34 +18800,34 @@ Partial Class Compras_Compras Exit For End If Else - Retorno = False - Exit For - End If - Else '2018.11.24 se cambia concepto 177, de cargo a abono negativo., petición MALL - If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, -DiferenciaInvOC, -DiferenciaInvOC, If(ConceptoSalida = 0, 177, 177), SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto, CveClasificacion:=CveClasificacionCostoOC) Then + If ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovtoCosto, DiferenciaInvOCCosto, DiferenciaInvOCCosto, 177, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveSubProyecto:=CveSubProyecto, CveClasificacion:=CveClasificacionCostoOC) Then If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, True, DiferenciaInvOC, DiferenciaInvOC, 176, SerieFolio, ConceptoPartida, CveProveedor:=CveProveedor, CveMovimientoAlmacen:=CveMovimientoAlmacen, CveOC:=CveOrdenCompra, CveOCDetalle:=CveOCDetalle, CveColectiva:=CveColectiva) Then Retorno = False Exit For End If Else + Retorno = False + Exit For + End If + End If + If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then Retorno = False Exit For End If - End If - If Not OC.UpdateOrdenCompraDetalleAjuste(CveOrdenCompra, CveOCDetalle, PUCompra, UsuarioActual.CveUsuario) Then - Retorno = False - Exit For - End If - If Retorno Then - If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then - Retorno = False + If Retorno Then + If Not OCBitacora.AddEventoBitacora(String.Format("Se registró una póliza de ajuste por cambio de precio en producto: {0}", PS), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveOC:=CveOrdenCompra) Then + Retorno = False + End If End If End If End If - End If Next + If Retorno AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual) Then + Alert("No se procesaron las diferencias en precio.", TipoMensaje.MsgAdvertencia) + Retorno = False + End If Else Alert("prepóliza de ajuste no registrada.", TipoMensaje.MsgAdvertencia) Retorno = False @@ -19135,11 +19141,8 @@ Partial Class Compras_Compras TrRetIVA.Visible = True TdRetIVAConcepto.Visible = True - TotalOriginal = TxtTotal.Text.ToDecimal - - For Each dRow As DataRow In TmpDT.Rows If dRow("CvePS").ToString.ToEntero <= 0 Then Alert("Debe de asignar producto a todas las partidas", TipoMensaje.MsgAdvertencia)