diff --git a/App_Code/ClsOC.vb b/App_Code/ClsOC.vb index 08a417153..a9083317b 100644 --- a/App_Code/ClsOC.vb +++ b/App_Code/ClsOC.vb @@ -30,6 +30,7 @@ Public Class ClsOC Public Property CveOrdenCompra As Integer Public Property CveOrdenCompraDetalle As Integer Public Property Folio As Integer + Public Property SerieFolio As String = "" Public Property Serie As String = "" Public Property CveIEAnticipo As Integer Public Property CveProveedorAnticipo As Integer @@ -609,6 +610,7 @@ Public Class ClsOC Dim dr As DataRow = Data.Rows(0) _CveOrdenCompra = dr("CveOrdenCompra").ToString.ToEntero _Folio = dr("Folio").ToString.ToEntero + _SerieFolio = dr("SerieFolio").ToString _Serie = dr("Serie").ToString _CveIEAnticipo = dr("CveIEAnticipo").ToString.ToEntero _FolioIEAnticipo = dr("FolioIEAnticipo").ToString.ToEntero diff --git a/App_Code/Modelos.vb b/App_Code/Modelos.vb index 30b432f89..d98568038 100644 --- a/App_Code/Modelos.vb +++ b/App_Code/Modelos.vb @@ -646,7 +646,7 @@ Namespace Modelos ObjVentas.Dispose() - If Me.RealizarDevolucionAlmacen Then + If Me.RealizarDevolucionAlmacen = 1 Then Me.CveAlmacenDevolucion = Me.CveAlmacenDevolucionVenta End If @@ -5523,12 +5523,12 @@ Namespace Modelos ''' ''' ''' - Public Function CancelarFactura(RealizarDevolucionAlmacen As Boolean, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveMotivoCancelacion As Integer = -1, Optional Motivo As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0, Optional CancelarBoletos As Boolean = False, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False) As MCancelacionVentaMensaje + Public Function CancelarFactura(RealizarDevolucionAlmacen As Integer, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveMotivoCancelacion As Integer = -1, Optional Motivo As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0, Optional CancelarBoletos As Boolean = False, Optional AplicaCancelacionConPagos As Boolean = False, Optional GeneraIxCconPago As Boolean = False) As MCancelacionVentaMensaje 'Comprobante emitido con errores sin relación Return CancelarVenta(Me, Me.UsuarioActual, RealizarDevolucionAlmacen:=RealizarDevolucionAlmacen, ListaRemisionesCancelar:=ListaRemisionesCancelar, CveMotivoCancelacion:=CveMotivoCancelacion, MotivoCancelacion:=Motivo, CveEstadoCancelacion:=CveEstadoCancelacion, CancelarBoletos:=CancelarBoletos, AplicaCancelacionConPagos:=AplicaCancelacionConPagos, GeneraIxCconPago:=GeneraIxCconPago) End Function - Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Boolean = False, + Private Function CancelarVenta(ObjFactura As Modelos.Factura, UsuarioActual As Usuario, Optional EsRefacturacion As Boolean = False, Optional RealizarDevolucionAlmacen As Integer = 0, Optional ListaRemisionesCancelar As List(Of Integer) = Nothing, Optional CveEstatusFacturaAsignado As Integer = -1, Optional FechaCancelacion As String = "-1", Optional AcuseCancelacion As String = "", Optional CveMotivoCancelacion As Integer = -1, Optional MotivoCancelacion As String = "", Optional FolioSustitucion As String = "", Optional ValidarSAT As Boolean = True, Optional CveEstadoCancelacion As Integer = 0, @@ -5684,7 +5684,7 @@ Namespace Modelos Dim RevivirRemisiones As Boolean = Not EsRefacturacion AndAlso ((TieneRemisionesRelacionadas AndAlso ListaRemisionesCancelar Is Nothing) OrElse (DtRemisionesRelacionadas.Rows.Count > ListaRemisionesCancelar.Count)) 'REMISION YA SE DEBE HACER POR EL PROCESO DE DEVOLUCION DE ALMACEN - If Not EsRefacturacion AndAlso (ObjFactura.SaldoAlmacen <> 0 AndAlso ObjFactura.EsDevolucionVenta.Contiene(0, 1)) AndAlso Not RealizarDevolucionAlmacen And RevivirRemisiones = False Then + If Not EsRefacturacion AndAlso (ObjFactura.SaldoAlmacen <> 0 AndAlso ObjFactura.EsDevolucionVenta.Contiene(0, 1)) AndAlso Not (RealizarDevolucionAlmacen.Contiene(1, 2)) And RevivirRemisiones = False Then Retorno.Mensaje = "La factura no se puede cancelar debido a que tiene movimientos de inventario." Retorno.TipoMensaje = TipoMensaje.MsgAdvertencia @@ -6129,7 +6129,7 @@ Namespace Modelos If Not ErrorCancelar AndAlso TieneSalida Then - If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen Then + If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen = 1 Then 'REALIZA DEVOLUCION A LAS SALIDAS PENDIENTES If Not ObjFactura.TipoDocto.Contiene("Rem", "Ped") Then For Each RowMovimiento As DataRow In DtSalidas.Rows @@ -6278,8 +6278,8 @@ Namespace Modelos End If End If - 'AGREGA BITACORA A VENTA - If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen AndAlso CveMovimientoDevolucion > 0 Then + 'AGREGA BITACORA A VENTA + If Not ErrorCancelar AndAlso RealizarDevolucionAlmacen = 1 AndAlso CveMovimientoDevolucion > 0 Then Dim MensajeBitacora As String = "Devuelta" If Not ObjEventos.AddEventoBitacora(String.Format("Venta {2} en Folio: {1}", CveMovimientoDevolucion, Folio, MensajeBitacora), "-1", UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveVenta:=CveVenta) Then MensajeError = "Ocurrió un error al agregar la bitacora." @@ -6444,7 +6444,7 @@ Namespace Modelos End If 'CANCELACION DE MOVIMIENTOS DE REMISION, PEDIDOS - If Not ErrorCancelar AndAlso ObjFactura.TipoDocto.Contiene("Rem", "Ped") AndAlso RealizarDevolucionAlmacen AndAlso ObjFactura.SaldoAlmacen <> 0 Then + If Not ErrorCancelar AndAlso ObjFactura.TipoDocto.Contiene("Rem", "Ped") AndAlso RealizarDevolucionAlmacen = 1 AndAlso ObjFactura.SaldoAlmacen <> 0 Then Dim CveMovimientoUsado As Integer = -1 Dim CveAlmacenUsado As Integer = 0 Dim CveAlmacenGeneral As Integer = 0 @@ -6548,7 +6548,7 @@ Namespace Modelos 'EMPRESA HOSPITALARIA - SI ES PEDIDO LA DEVOLUCION SE DEBE HACER DESPUES DE CANCELAR EL PEDIDO If Not ErrorCancelar AndAlso UsuarioActual.Empresa.Funcionalidad(578) = "1" AndAlso ObjFactura.TipoDocto = "Ped" Then - If Not RealizarDevolucionAlmacen AndAlso TieneAlmacen Then + If Not RealizarDevolucionAlmacen = 1 AndAlso TieneAlmacen Then If Not ObjInventario.ActualizarEsDevolucionVenta(ObjFactura.CveVenta, 1, AplicaDevolucionCompleta:=True) Then ErrorCancelar = True MensajeError = "No se pudo actualizar el estatus de almacen del pedido" @@ -6678,6 +6678,7 @@ Namespace Modelos If Not ObjVentas.UpdateEstatusOCRelacionada(ObjFactura.CveVenta, CveEstatusCancelacion, ObjFactura.CveEmpresa) Then ErrorCancelar = True MensajeError = "Ocurrió un error al cancelar la orden de servicio" + else End If End If End If @@ -6686,12 +6687,14 @@ Namespace Modelos 'MARCA LA VENTA PARA REALIZAR LA DEVOLUCION POSTERIORMENTE If Not ErrorCancelar Then - If RealizarDevolucionAlmacen AndAlso CveAlmacenDevolucion > 0 Then - If Not ObjVentas.UpdateVentaRealizarDevolucion(CveVenta, RealizarDevolucionAlmacen, CveAlmacenDevolucion) Then + + If RealizarDevolucionAlmacen = 1 AndAlso CveAlmacenDevolucion > 0 Then + If Not ObjVentas.UpdateVentaRealizarDevolucion(CveVenta, True, CveAlmacenDevolucion) Then ErrorCancelar = True MensajeError = "Ocurrió un error al marcar la venta para devolución" End If End If + End If 'ACTUALIZA ESTATUS @@ -7642,7 +7645,7 @@ Namespace Modelos Public Property TipoDocto As String Public Property TipoComprobante As String Public Property RefDocto As String = "" - Public Property RealizarDevolucionAlmacen As Boolean + Public Property RealizarDevolucionAlmacen As Integer Public Property CveAlmacenDevolucionVenta As Integer Public Property TipoDocumento As String diff --git a/Ashx/SIGWeb.ashx b/Ashx/SIGWeb.ashx index cc2504d43..eedb48556 100644 --- a/Ashx/SIGWeb.ashx +++ b/Ashx/SIGWeb.ashx @@ -1723,7 +1723,7 @@ Public Class SIGWeb : Implements IHttpHandler, IRequiresSessionState ObjFacturaCancelacion.CveAlmacenDevolucion = CveAlmacenDevolucion If ObjFacturaCancelacion.TipoDocto = "Rem" Then - Dim respuesta = ObjFacturaCancelacion.CancelarFactura(True, New List(Of Integer)) + Dim respuesta = ObjFacturaCancelacion.CancelarFactura(1, New List(Of Integer)) If respuesta IsNot Nothing Then retorno = JsonConvert.SerializeObject(respuesta) End If diff --git a/Compras/Compras.aspx.vb b/Compras/Compras.aspx.vb index 74017a021..a24cdb404 100644 --- a/Compras/Compras.aspx.vb +++ b/Compras/Compras.aspx.vb @@ -2290,6 +2290,28 @@ Partial Class Compras_Compras Alert("El xml no contiene la etiqueta 'método de pago', favor de verificar la emisión con el proveedor.", TipoMensaje.MsgAdvertencia) BtnGuardar.Visible = False End If + + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then + For Each item As DataRow In TmpDT.Rows + Dim EquivalenciaBase = GlobalDTProductosServiciosEquivalencias(item("CvePS").ToString().ToEntero(), -1, UsuarioActual.CveEmpresa).FiltroPrimero("UnidadBase = 1") + If EquivalenciaBase IsNot Nothing Then + If item("CveUM").ToString() <> EquivalenciaBase("CveUM").ToString() Then + Dim EquivalenciaACambiar = GlobalDTProductosServiciosEquivalencias(item("CvePS").ToString().ToEntero(), item("CveUM").ToString().ToEntero(), UsuarioActual.CveEmpresa).FiltroPrimero("") + If EquivalenciaACambiar IsNot Nothing Then + Dim Cantidad As Decimal = Math.Round(item("Cantidad").ToString().ToDecimal() / EquivalenciaACambiar("Cantidad").ToString().ToDecimal(), 6) + Dim PU As Decimal = Math.Round((item("Total").ToString().ToDecimal() + item("Descuento").ToString().ToDecimal()) / Cantidad, 6) + item("Cantidad") = Cantidad + item("PU") = PU + End If + item("CveUM") = EquivalenciaBase("CveUM") + item("UM") = EquivalenciaBase("UM") + End If + End If + Next + GvPS.DataSource = TmpDT + GvPS.DataBind() + UpPS.Update() + End If End If Else Alert("No se Encontró la Factura", TipoMensaje.MsgAdvertencia) @@ -6705,26 +6727,38 @@ Partial Class Compras_Compras End If Next + + Dim importeMNTemp As Decimal = 0 + Dim CveCompraAmortizacion As Integer = -1 + For Each Gvr As GridViewRow In GVNCInvAlmacen.Rows If Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble > 0 Then - Dim importeMNTemp As Decimal = 0 + If Not ObjCompras.ComprasDetalleDevolucionesAdd(Gvr.DataKey("CveCompraDetalle").ToEntero, CveCompra, Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDouble, UsuarioActual.CveEmpresa) Then ErrorMovInv = True Exit For End If - Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal + ' Dim DifTC As Decimal = tipoCambioActual - Gvr.DataKey("TipoCambio").ToDecimal 'diferenciaTransito = DifTC * (Gvr.DataKey("IVA").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) 'diferenciaTransito += DifTC * (Gvr.DataKey("IEPSPS").ToDecimal / Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal) - importeMNTemp = (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * tipoCambioActual).RoundSQL + importeMNTemp = importeMNTemp + (Gvr.FCTextBox("TxtPU").Text.ToDecimal * Gvr.FCTextBox("TxtCantidadNCInv").Text.ToDecimal * tipoCambioActual).RoundSQL ImporteTransito += importeMNTemp + CveCompraAmortizacion = Gvr.DataKey("CveCompra").ToEntero 'se registra por cada compra relacionada - If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, importeMNTemp, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=Gvr.DataKey("CveCompra").ToEntero, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then - ErrorPrepoliza = True - End If + End If Next + If importeMNTemp > 0 Then + 'importeMNTemp = importeMNTemp - TxtDescuento.Text.ToDecimal + + If Not ObjConta.AddPrePolizasDetalle(CvePrePoliza, TipoMovimiento, importeMNTemp, importeMNTemp, ConceptoContabilizacionNC, Referencia, Concepto, CveCompra:=CveCompra, CveCompraAmortizacion:=CveCompraAmortizacion, CveProveedor:=CveProveedorConcepto, ImporteME:=If(tipoCambioActual = 1, 0, importeMovimiento), TipoCambio:=tipoCambioActual, CveMovimientoAlmacen:=CveMovimientoDevolucion, Contabilizable:=SeContabiliza) Then + ErrorPrepoliza = True + End If + End If + + 'si se marca que no se va a recibir, falta validación If Not ErrorMovInv AndAlso Not ObjCompras.UpdateEstatusAlmacen(CveCompra, 1, UsuarioActual.CveUsuario) Then ErrorMovInv = True @@ -7687,10 +7721,10 @@ Partial Class Compras_Compras If Not ErrorPrepoliza AndAlso Not ObjConta.ValidacionesPrePoliza(CvePrePoliza, UsuarioActual, Opcion:=4, AutoConta:=AutoConta) Then TieneError = True - 'If ObjConta.ValorPolizaDescuadre > 0 Then - ' Alert($"{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia}", TipoMensaje.MsgError) - ' ErrorPrepolizaDescuadre = True - 'End If + If ObjConta.ValorPolizaDescuadre > 0 AndAlso UsuarioActual.CveRol = 1 Then + Alert($"{ObjConta.MensajePolizaDescuadre} Diferencia{ObjConta.ValorDiferencia}", TipoMensaje.MsgError) + ErrorPrepolizaDescuadre = True + End If End If diff --git a/Inventarios/Kardex.aspx b/Inventarios/Kardex.aspx index fa7ad4e6a..fc597ae2b 100644 --- a/Inventarios/Kardex.aspx +++ b/Inventarios/Kardex.aspx @@ -136,7 +136,7 @@ Caducidad de producto
  • - Existecias por capas + Existencias por capas
  • Ayuda @@ -646,6 +646,7 @@ + diff --git a/Inventarios/Kardex.aspx.vb b/Inventarios/Kardex.aspx.vb index de836aa38..201d4f049 100644 --- a/Inventarios/Kardex.aspx.vb +++ b/Inventarios/Kardex.aspx.vb @@ -586,8 +586,13 @@ Partial Class Inventarios_Kardex Dim FechaI As DateTime = If(TxtFechaI.Text <> "" AndAlso TxtFechaI.Text <> "__/__/____", TxtFechaI.Text.ToDateTime(), MinFecha) Dim FechaF As DateTime = If(TxtFechaF.Text <> "" AndAlso TxtFechaF.Text <> "__/__/____", TxtFechaF.Text.ToDateTime(), MaxFecha) + Dim almacenes = ddlAlmacen.GetSelectedValues() + If String.IsNullOrEmpty(almacenes) Then + almacenes = "-1" + End If + Using ObjInv As New ClsInventarios - If ObjInv.GetInvExistenciasCapas(ddlProducto2.SelectedValue.ToEntero(), FechaI, FechaF, UsuarioActual.CveEmpresa, ddlAlmacen.GetSelectedValues()) Then + If ObjInv.GetInvExistenciasCapas(ddlProducto2.SelectedValue.ToEntero(), FechaI, FechaF, UsuarioActual.CveEmpresa, almacenes) Then GvExistenciasCapas.DataSource = ObjInv.DtResultados End If End Using diff --git a/OC/OC.aspx b/OC/OC.aspx index a32cd644a..b044e98f4 100644 --- a/OC/OC.aspx +++ b/OC/OC.aspx @@ -178,6 +178,7 @@ + @@ -696,7 +697,7 @@ - +
    @@ -946,7 +947,7 @@