diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 47de3e2f3..250d21fe0 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -643,6 +643,8 @@ Partial Class Inventarios_EntregaAlmacen If ObjInventario.EntregaAlmacenGet(CveVenta, UsuarioActual.CveEmpresa, CveAlmacen) Then If ObjInventario.DtResultados IsNot Nothing AndAlso ObjInventario.DtResultados.Rows.Count > 0 Then + Dim CveVentaPadre As Integer = -1 + ArchivoBitacora = String.Format("{0}Temp\EntregaDT_{1}_{2}.xml", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, CveVenta) ArchivoBitacoraDetalle = String.Format("{0}Temp\EntregaDTD_{1}_{2}.xml", UsuarioActual.Empresa.Ruta, UsuarioActual.CveUsuario, CveVenta) If ArchivoBitacora <> "" Then @@ -672,6 +674,7 @@ Partial Class Inventarios_EntregaAlmacen If DtDatos.Rows(0) IsNot Nothing Then Dim drE As DataRow = DtDatos.Rows(0) + CveVentaPadre = DtDatos.Rows(0)("CveVentaPadre").ToString().ToEntero() EsDevolucionVenta = drE("EsDevolucionVenta").ToString().ToEntero() TipoDocto = DtDatos.Rows(0)("TipoDocto").ToString() 'TipoMovimiento = If(TipoDocto.Contiene({"Rem", "Ped", "Ing", "Ped", "PeC", "Ant"}) And (EsDevolucionVenta = 0 Or CveVentaAD > 0), 1, 2) @@ -882,7 +885,7 @@ Partial Class Inventarios_EntregaAlmacen If TipoMovimiento = 2 Then ' cuando es cancelación Dim Filtro As String '= If(ObjInventario.DtResultados.Rows(0)("TipoDocto").ToString().Contiene({"Ing", "Dev", "Ped"}), "CveConcepto = 3", "CveConcepto = 9") Dim FiltroPS As String = "" - Select Case ObjInventario.DtResultados.Rows(0)("TipoDocto").ToString() + Select Case TipoDocto Case "Ing" Filtro = "CveConcepto IN (3,40,35)" Case "Dev" @@ -901,7 +904,8 @@ Partial Class Inventarios_EntregaAlmacen Case Else Filtro = "CveConcepto = 9" End Select - If ObjInventario.GetInv_Mov(ObjInventario.DtResultados.Rows(0)("CveVentaPadre").ToString().ToEntero(), UsuarioActual.CveEmpresa) Then + + If ObjInventario.GetInv_Mov(CveVentaPadre, UsuarioActual.CveEmpresa) Then DtExistencias = ObjInventario.DtResultados.FiltraParametros($"CvePS Is Not NULL AND {Filtro} " & FiltroPS) If Not DtExistencias.Rows.Count > 0 Then diff --git a/Ventas/PVCobranza.aspx.vb b/Ventas/PVCobranza.aspx.vb index e1df226c7..2b5f880ea 100644 --- a/Ventas/PVCobranza.aspx.vb +++ b/Ventas/PVCobranza.aspx.vb @@ -505,6 +505,7 @@ Partial Class Ventas_PVCobranza VentaActual.UsuarioActual = UsuarioActual VentaActual.CveSubProyecto = DbRowVenta("CveSubProyecto").ToString.ToEntero Dim CveVendedor As Integer = DbRowVenta("CveVendedor").ToString.ToEntero + Dim ObservacionesAlmacen = DbRowVenta("ObservacionesAlmacen").ToString() If tCveCorte <= 0 AndAlso DbRowVenta("CveCorte").ToString.ToEntero > 0 Then tCveCorte = DbRowVenta("CveCorte").ToString.ToEntero @@ -530,7 +531,7 @@ Partial Class Ventas_PVCobranza CveVentaRemision = HdnCveVenta.Value.ToEntero - respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes) + respFactura = GenerarFactura(CveVendedor, VentaActual, ObjVentas2, ObjClientes, ObservacionesAlmacen) If respFactura Is Nothing Then MsgError = "Ocurrió un error al generar la factura" @@ -761,7 +762,7 @@ Partial Class Ventas_PVCobranza UpL.Update() End Sub - Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes) As Modelos.Factura.MMensajeFactura + Private Function GenerarFactura(CveVendedor As Integer, ByRef VentaRemision As Venta, ByRef ObjVentas As ClsVentas, ByRef ObjClientes As ClsClientes, ObservacionesAlmacen As String) As Modelos.Factura.MMensajeFactura Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing Dim SbAlert As New StringBuilder() @@ -828,7 +829,7 @@ Partial Class Ventas_PVCobranza PorcentajeIVA:=Dr("PorcentajeIVA").ToString().ToDecimal()) Next - If UsuarioActual.Empresa.Funcionalidad(567) = "1" Then + If Not ValidateString(ObservacionesAlmacen.ToLower(), "parcial") Then ObjFactura.GenerarSalidaAlmacen = True ObjFactura.DtInventario = ObjFactura.DtDetalle.FiltraParametros("CveTipoPS = 2").Copy() ObjFactura.CveAlmacen = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 1 AND CveSubProyecto = {VentaRemision.CveSubProyecto}", "Orden").ToString().ToEntero() @@ -948,6 +949,12 @@ Partial Class Ventas_PVCobranza Return Retorno End Function + Private Function ValidateString(texto As String, contenidoValidar As String) As Boolean + Dim regex As Text.RegularExpressions.Regex = New Text.RegularExpressions.Regex("\b" + contenidoValidar + "\b") + + Return (regex.IsMatch(texto)) + End Function + Private Function GenerarNC(CveVendedor As Integer, ByRef Venta As Venta, ByRef ObjVentas As ClsVentas) As Modelos.Factura.MMensajeFactura Dim Retorno As Modelos.Factura.MMensajeFactura = Nothing Dim SbAlert As New StringBuilder() diff --git a/Ventas/Ventas.aspx b/Ventas/Ventas.aspx index da5b317a3..f9f611b5e 100644 --- a/Ventas/Ventas.aspx +++ b/Ventas/Ventas.aspx @@ -1253,7 +1253,7 @@ <%--0--%> diff --git a/Ventas/Ventas.aspx.vb b/Ventas/Ventas.aspx.vb index 2f3587400..4b27b878c 100644 --- a/Ventas/Ventas.aspx.vb +++ b/Ventas/Ventas.aspx.vb @@ -20033,6 +20033,7 @@ Partial Class Ventas Else If Me.CvePrecioLista > 0 Then CvePrecioListaPS = Me.CvePrecioLista + If UsuarioActual.Empresa.Funcionalidad(109) = "1" Then PrecioListaPS = GlobalDTPrecioListas(UsuarioActual.CveEmpresa).FiltroPrimeroValor("PrecioLista", $"CvePrecioLista={CvePrecioListaPS}") End If @@ -20305,6 +20306,7 @@ Partial Class Ventas 'CODIGO BARRAS TxtCodigoBarras.Text = "" TxtCodigoSerie.Text = "" + TxtTiempoEntrega.Text = "" 'FOCUS DEPENDIENDO MODALIDAD DE CODIGO BARRAS If DIVCod.Visible Then