diff --git a/AF/AF.aspx b/AF/AF.aspx index c4357400e..82e22650c 100644 --- a/AF/AF.aspx +++ b/AF/AF.aspx @@ -2903,6 +2903,16 @@ +
+
Sección:
+
+ + + + + +
+
+ + +
+
+
+ + + +
+
+ +
+ + @@ -687,7 +695,7 @@ - + diff --git a/Inventarios/EntradasSalidas.aspx.vb b/Inventarios/EntradasSalidas.aspx.vb index b933ebc07..7cd476459 100644 --- a/Inventarios/EntradasSalidas.aspx.vb +++ b/Inventarios/EntradasSalidas.aspx.vb @@ -461,8 +461,8 @@ Partial Class Inventarios_EntradasSalidas End If DdlClasificacion.DataBind() - DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) - DdlSeccionAlmacen.DataBind() + 'DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) + 'DdlSeccionAlmacen.DataBind() DdlSeccionAlmacenEntrada.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) DdlSeccionAlmacenEntrada.DataBind() @@ -1190,7 +1190,7 @@ Partial Class Inventarios_EntradasSalidas End Sub - Protected Sub AddNew(CvePS As Integer, PS As String, CveUM As Integer, UM As String, Cantidad As Double, PU As Double, SerieLote As String, CodigoAF As String, Codigo As String, CveAF As String, Observaciones As String, Lote As String, FechaCaducidad As Date, CveSeccionAlmacen As Integer, SeccionAlmacen As String) + Protected Sub AddNew(CvePS As Integer, PS As String, CveUM As Integer, UM As String, Cantidad As Double, PU As Double, Serie As String, CodigoAF As String, Codigo As String, CveAF As String, Observaciones As String, Lote As String, FechaCaducidad As Date, CveSeccionAlmacen As Integer, SeccionAlmacen As String) If DdlAlmacen.SelectedValue.ToEntero <= 0 Then Alert("Seleccione un almacen", TipoMensaje.MsgAdvertencia) : RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") : DdlProducto2.SelectedText = "" : Exit Sub Dim Valido As Boolean = True @@ -1201,7 +1201,7 @@ Partial Class Inventarios_EntradasSalidas Dim FechaCaducidadVal As Date = If(RowPS("AplicaCaducidad").ToString = "True", FechaCaducidad, MinFecha) - If CveMetodoInventario = 5 And (String.IsNullOrEmpty(SerieLote.Trim()) OrElse SerieLote = "-1") Then + If CveMetodoInventario = 5 And (String.IsNullOrEmpty(Serie.Trim()) OrElse Serie = "-1") Then Valido = False Alert("El producto requiere Serie", TipoMensaje.MsgAdvertencia) End If @@ -1209,9 +1209,9 @@ Partial Class Inventarios_EntradasSalidas 'salida If Valido AndAlso DdlConcepto.SelectedValue.Contiene({"3", "5", "7", "8", "11", "12", "13", "15", "16", "17", "20", "21", "30", "31"}) Then ' salida de almacen - Dim Existencia As Double = GetExistencias(CvePS, CveUM, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, -1, If(SerieLote = "", "-1", SerieLote), If(Lote = "", "-1", Lote), FechaCaducidadVal) + Dim Existencia As Double = GetExistencias(CvePS, CveUM, UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, -1, If(Serie = "", "-1", Serie), If(Lote = "", "-1", Lote), FechaCaducidadVal) ' LbAgregar.ToolTip = Existencia.ToString - If Existencia - Cantidad - DtMovimientos.SUM("Cantidad", $"CvePS = {CvePS} AND CveUM = {CveUM} {If(SerieLote <> "", $" AND Serie = '{SerieLote}'", "")}") < 0 Then + If Existencia - Cantidad - DtMovimientos.SUM("Cantidad", $"CvePS = {CvePS} AND CveUM = {CveUM} {If(Serie <> "", $" AND Serie = '{Serie}'", "")}") < 0 Then If Existencia <= 0 Then Alert("No hay existencia del producto", TipoMensaje.MsgAdvertencia) RegistraScript("playsonidito('142608__autistic-lucario__error.wav')") @@ -1230,12 +1230,12 @@ Partial Class Inventarios_EntradasSalidas If Valido Then Dim CveClasificacion As Integer - Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS") - If dr IsNot Nothing Then CveClasificacion = dr("CveClasificacion").ToString.ToEntero + 'Dim dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS).FiltroPrimero("", "PS") + If RowPS IsNot Nothing Then CveClasificacion = RowPS("CveClasificacion").ToString.ToEntero 'VALIDA QUE LA SERIE NO SEA IGUAL AL CODIGO O CODIGOBARRAS - If SerieLote <> "" And (SerieLote.ToUpper = dr("Codigo").ToString.ToUpper Or SerieLote.ToUpper = dr("CodigoBarras").ToString.ToUpper) Then - Alert($"La serie indicada {SerieLote} coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) + If Serie <> "" And (Serie.ToUpper = RowPS("Codigo").ToString.ToUpper Or Serie.ToUpper = RowPS("CodigoBarras").ToString.ToUpper) Then + Alert($"La serie indicada {Serie} coincide con el codigo o codigo de barras del producto. Por favor rectifique y vuelva a intentar.", TipoMensaje.MsgAdvertencia) Exit Sub End If @@ -1258,7 +1258,7 @@ Partial Class Inventarios_EntradasSalidas registro.Item("CodigoAF") = CodigoAF registro.Item("Codigo") = Codigo registro.Item("CveAF") = CveAF - registro.Item("Serie") = If(SerieLote <> "", SerieLote, "") + registro.Item("Serie") = If(Serie <> "", Serie, "") registro.Item("Lote") = If(Lote <> "", Lote, "") registro.Item("FechaCaducidad") = FechaCaducidad registro.Item("Observaciones") = Observaciones @@ -2397,7 +2397,11 @@ Partial Class Inventarios_EntradasSalidas TxtnLote.Text = GvRow.DataKey("Lote") TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad").ToDate.ToShortDateString TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones") + + DdlSeccionAlmacen.DataSource = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, GvRow.DataKey("CvePS").ToEntero) + DdlSeccionAlmacen.DataBind() DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen")) + LkAgregarDetalle.Text = "Actualizar" Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero divPrecio.Visible = Origen = 1 @@ -2426,6 +2430,7 @@ Partial Class Inventarios_EntradasSalidas TxtnFechaCaducidad.Text = GvRow.DataKey("FechaCaducidad") TxtObservacionesdetalle.Text = GvRow.DataKey("Observaciones") DdlSeccionAlmacen.SelectedValueExist(GvRow.DataKey("CveSeccionAlmacen")) + Dim Origen As Integer = GlobalDTInvConceptos.FiltroPrimeroValor("Origen", String.Format("CveConcepto = {0}", DdlConcepto.SelectedValue)).ToEntero divPrecio.Visible = Origen = 1 txtPrecio.Visible = Origen = 1 @@ -2938,6 +2943,7 @@ Partial Class Inventarios_EntradasSalidas End If TdSeriePS.Visible = False + TdSeccionPSAdd.Visible = False Dim Dr = GlobalDTPS(UsuarioActual.CveEmpresa).FiltroPrimero($"CodigoBarras= '{TxtCodigoPS.Text}'") If Dr Is Nothing Then @@ -2947,7 +2953,7 @@ Partial Class Inventarios_EntradasSalidas Exit Sub End If - If Dr("Inv_CveMetodoInventario").ToString.ToEntero = 5 Then + If Dr("AplicaSerie").ToString = "True" Then TdSeriePSAdd.Visible = True TxtSeriePS.Focus() CvePSSerieLote = Dr("CvePS").ToString.ToEntero @@ -2956,8 +2962,32 @@ Partial Class Inventarios_EntradasSalidas UMSerieLote = Dr("UnidadMedida").ToString Exit Sub End If + Dim CveSeccionAlmacen As Integer = -1 + Dim SeccionAlmacen As String = "" - AddNew(Dr("CvePS").ToString.ToEntero, Dr("PSCodigo").ToString, Dr("CveUM").ToString.ToEntero, Dr("UnidadMedida").ToString, 1, Dr("CostoPromedio").ToString.ToDouble, "", "", "", "", "", "", MinFecha, -1, "") + If Dr("AplicaSeccion").ToString = "True" Then + If DdlAlmacen.SelectedValue.ToEntero <= 1 Then + Alert("No se ha especificado el almacen para especificar la sección", TipoMensaje.MsgError) + Exit Sub + End If + DdlSeccionPSAdd.Items.Clear() + Dim dtt As DataTable = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, Dr("CvePS").ToString.ToEntero) + DdlSeccionPSAdd.DataSource = dtt + DdlSeccionPSAdd.DataBind() + If dtt.Rows.Count > 1 Then + DdlSeccionPSAdd.Items.Insert(0, New ListItem("Seleccione", "-1")) + ' si solo hay un movimiento, debe de agregar, sino debe de esperar a que seleccionen + Exit Sub + DdlSeccionPSAdd.Focus() + TdSeccionPSAdd.Visible = True + Else + CveSeccionAlmacen = DdlSeccionPSAdd.SelectedValue.ToEntero + SeccionAlmacen = DdlSeccionPSAdd.SelectedItem.Text + End If + + End If + + AddNew(Dr("CvePS").ToString.ToEntero, Dr("PSCodigo").ToString, Dr("CveUM").ToString.ToEntero, Dr("UnidadMedida").ToString, 1, Dr("CostoPromedio").ToString.ToDouble, "", "", "", "", "", "", MinFecha, CveSeccionAlmacen, SeccionAlmacen) TxtCodigoPS.Text = "" TxtCodigoPS.Focus() @@ -2968,6 +2998,11 @@ Partial Class Inventarios_EntradasSalidas If TxtSeriePS.Text.Trim = "" Then Exit Sub End If + If TdSeccionPSAdd.Visible Then + If DdlSeccionAlmacen.SelectedValue.ToEntero <= 0 Then + Exit Sub + End If + End If AddNew(CvePSSerieLote, PSSerieLote, CveUMSerieLote, UMSerieLote, 1, 0, TxtSeriePS.Text.Trim, "", "", "", "", "", MinFecha, -1, "") @@ -4333,6 +4368,7 @@ Partial Class Inventarios_EntradasSalidas CveUsuarioModifico:=UsuarioActual.CveUsuario) Then Alert("Error al Actualizar los movimientos") Else + Alert("Movimiento actualizado correctamente") RegistraScript("$('#ModalAgregar').modal('hide')") End If ObjInventario.Dispose() diff --git a/Inventarios/EntregaAlmacen.aspx b/Inventarios/EntregaAlmacen.aspx index 2c2378d3e..8d4ff3ea1 100644 --- a/Inventarios/EntregaAlmacen.aspx +++ b/Inventarios/EntregaAlmacen.aspx @@ -21,20 +21,22 @@ } .gvInventario tr td:nth-child(4) { - width: 18% !important; + width: 12% !important; text-align: center !important; } .gvInventario tr th:nth-child(4) { - width: 18% !important; + width: 12% !important; } .gvEscondeColumna tr td:nth-child(3) { display: none; + width:0px; } .gvEscondeColumna tr th:nth-child(3) { display: none; + width:0px; } .btn.default:hover { @@ -406,6 +408,12 @@
+ +
+
+ +
+
@@ -429,40 +437,32 @@ -
-
-
- -
-
-
- + <%--GV DATOS--%> - + DataKeyNames="Consec,CvePS,Codigo,CodigoBarras,AplicaSerieLote,CveUM,CantidadC,CantidadF,UM,PS,CveClasificacion,CveVentaDetalle,CveTamaño,AplicaSeccion, AplicaSerie,AplicaLote,AplicaCaducidad" HeaderStyle-CssClass="Titulos" CssClass="table table-striped table-hover Widthall ScrollAD gvInventario mysmallbtn" data-heighterror="450" data-freezerows="1" GridLines="None"> + - + - + - - + + - + - - + - - + + - + diff --git a/Inventarios/EntregaAlmacen.aspx.vb b/Inventarios/EntregaAlmacen.aspx.vb index 85cdf7b62..7f0ff714e 100644 --- a/Inventarios/EntregaAlmacen.aspx.vb +++ b/Inventarios/EntregaAlmacen.aspx.vb @@ -927,7 +927,7 @@ Partial Class Inventarios_EntregaAlmacen If e.Row.DBCampo("Inv_CveMetodoInventario").Contiene("5", "6") Then e.Row.FCTextBox("TbCantidadF").Enabled = False Else - e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").FormatoNumero() + e.Row.FCTextBox("TbCantidadF").Text = e.Row.DBCampo("CantidadF").ToDecimal.ToString("#,##0.######") End If End If @@ -1720,10 +1720,10 @@ Partial Class Inventarios_EntregaAlmacen If CBool(Dr("AplicaSerie")) 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, IfNull(Dr("CveSeccion"), -1), Dr1("Serie"), Lote, FechaCaducidad.ToString("yyyy/MM/dd")) + StrXML.AppendFormat("", Dr1("CvePS"), Dr1("CveUM"), 1, IfNull(Dr("CveSeccion"), -1), Dr1("Serie"), Lote, FechaCaducidad.ToString("yyyy/MM/dd")) Next Else - StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), IfNull(Dr("CveSeccion"), -1), "-1", Lote, FechaCaducidad.ToString("yyyy/MM/dd")) + StrXML.AppendFormat("", Dr("CvePS"), Dr("CveUM"), Dr("CantidadGV"), IfNull(Dr("CveSeccion"), -1), "-1", Lote, FechaCaducidad.ToString("yyyy/MM/dd")) End If End If Next @@ -1959,9 +1959,16 @@ Partial Class Inventarios_EntregaAlmacen 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.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=If(CBool(Dr("AplicaSeccion")), Dr("CveSeccion").ToString.ToEntero, -1)) Then + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + Dim CveSeccionAlmacen As Integer = -1 + For Each Dr As DataRow In ObjInventario.DtResultados.Rows + If CBool(Dr("AplicaSeccion")) Then + CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacenExA, Dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero + Else + CveSeccionAlmacen = -1 + End If + + If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntradaApartado, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, Serie:=Dr("Serie").ToString, CveMovimientoDetalleEntrada:=Dr("CveMovimientoDetalle").ToString.ToEntero, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, FechaCaducidad:=If(CBool(Dr("AplicaCaducidad")), Dr("FechaCaducidad").ToString.ToDate, MinFecha), Lote:=If(CBool(Dr("AplicaLote")), Dr("Lote").ToString, "-1"), CveSeccionAlmacen:=CveSeccionAlmacen) Then ErrorMovInv = True TextoError.AppendFormat("Ocurrió un error al procesar los conceptos de traspaso de apartado. Por favor vuelva a intentar.") Exit For diff --git a/Inventarios/EntregasPorRealizar.aspx.cs b/Inventarios/EntregasPorRealizar.aspx.cs index d3a5ba81e..38a82c6c9 100644 --- a/Inventarios/EntregasPorRealizar.aspx.cs +++ b/Inventarios/EntregasPorRealizar.aspx.cs @@ -104,7 +104,7 @@ public partial class Inventarios_EntregasPorRealizar : ClsPaginas private void CargarPersonal() { - DataTable UsuariosConRolLogistico = get_GlobalDTUsuarios(CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros("CveRol IN (1339,1386,1430)"); + DataTable UsuariosConRolLogistico = get_GlobalDTUsuarios(CveEmpresa: UsuarioActual.CveEmpresa).FiltraParametros("CveRol IN (1339,1386,1430,1155)"); DdlUsuario.DataSource = UsuariosConRolLogistico; DdlUsuario.DataBind(); DdlUsuario.Items.Insert(0, new ListItem("Seleccione", "-1")); diff --git a/Inventarios/Kardex.aspx.vb b/Inventarios/Kardex.aspx.vb index 67eba9064..448dcc4e4 100644 --- a/Inventarios/Kardex.aspx.vb +++ b/Inventarios/Kardex.aspx.vb @@ -63,6 +63,7 @@ Partial Class Inventarios_Kardex #Region " INICIALIZA VALORES " Private Sub CargaPermisos() + If UsuarioActual.CveRol = 1 Then ChkAgruparAlmacen.Visible = True Dim TienePermisoImportes As Boolean = UsuarioActual.TienePermisoProceso(201) GvM.Columns(13).Visible = TienePermisoImportes ' costo GvM.Columns(14).Visible = TienePermisoImportes ' importe @@ -168,9 +169,9 @@ Partial Class Inventarios_Kardex TxtSerie.Text = "" If ddlProducto2.SelectedValue.ToEntero > 0 Then - Dim Dr As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, ddlProducto2.SelectedValue.ToEntero).FiltroPrimero("") + Dim Dr As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=ddlProducto2.SelectedValue.ToEntero).FiltroPrimero("") If Dr IsNot Nothing Then - If Dr("Inv_CveMetodoInventario").ToString.ToEntero = 5 Then + If Dr("AplicaSerie").ToString = "True" Then DivSerie.Visible = True Else DivSerie.Visible = False diff --git a/Inventarios/RecepcionAlmacen.aspx.vb b/Inventarios/RecepcionAlmacen.aspx.vb index b6642b36d..ea1db1741 100644 --- a/Inventarios/RecepcionAlmacen.aspx.vb +++ b/Inventarios/RecepcionAlmacen.aspx.vb @@ -2382,6 +2382,8 @@ Partial Class Inventarios_RecepcionAlmacen Dim CveClienteActual = -1 Dim CveAlmacenDestino = CveAlmacenApartado + Dim CveSeccionDestino As Integer = -1 + For Each Dr As DataRow In ObjInventario.DtResultados.Rows If CveVendedorActual = -1 Or (Dr("CveVendedor").ToString.ToEntero <> CveVendedorActual Or Dr("CveCliente").ToString.ToEntero <> CveClienteActual) Then @@ -2391,7 +2393,7 @@ Partial Class Inventarios_RecepcionAlmacen MovtosSalida.Add(CveMovtoSalidaActual) FoliosSalida.Add(ObjInventario.Folio) - CveMovtoEntradaActual = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, FechaMovto, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, TipoCambio), CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovtoSalidaActual, CveVendedor:=Dr("CveVendedor").ToString.ToEntero, CveCliente:=Dr("CveCliente").ToString.ToEntero, Remision:=TxtRemision.Text) + CveMovtoEntradaActual = ObjInventario.AddMovimiento(CveAlmacenDestino, 9, 1, FechaMovto, -1, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveCompraSurtir, -1, -1, -1, Observaciones:=TxtObservaciones.Text.Trim, TipoCambio:=If(DdlMonedaTC.SelectedValue.ToEntero = 1, -1, TipoCambio), CveAlmacenDestino:=CveAlmacenDestino, CveMovimientoRelacionado:=CveMovtoSalidaActual, CveVendedor:=Dr("CveVendedor").ToString.ToEntero, CveCliente:=Dr("CveCliente").ToString.ToEntero, Remision:=TxtRemision.Text, Modulo:="RA/G7") MovtosEntrada.Add(CveMovtoEntradaActual) FoliosEntrada.Add(ObjInventario.Folio) @@ -2408,8 +2410,14 @@ Partial Class Inventarios_RecepcionAlmacen ErrorMovInv = True Exit For End If + If CBool(Dr("AplicaSeccion")) Then + CveSeccionDestino = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, CveAlmacenDestino, Dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero + Else + CveSeccionDestino = -1 + End If - If Not ObjInventario.AddMovimientoDetalle(CveMovtoEntradaActual, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then + + If Not ObjInventario.AddMovimientoDetalle(CveMovtoEntradaActual, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, Dr("PU").ToString.ToDecimal, CveAF:=Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=CveSeccionDestino, Serie:=Dr("Serie").ToString, Lote:=Dr("Lote").ToString, FechaCaducidad:=Dr("FechaCaducidad").ToString.ToDate, CveVentaDetalle:=Dr("CveVentaDetalle").ToString.ToEntero, CveUsuarioModifico:=UsuarioActual.CveUsuario) Then ErrorMovInv = True Exit For End If diff --git a/Inventarios/ResguardoMaterial.aspx b/Inventarios/ResguardoMaterial.aspx index 688c514df..939bb9015 100644 --- a/Inventarios/ResguardoMaterial.aspx +++ b/Inventarios/ResguardoMaterial.aspx @@ -242,7 +242,7 @@ diff --git a/Inventarios/ResguardoMaterial.aspx.vb b/Inventarios/ResguardoMaterial.aspx.vb index c706e4f5c..ae6976ed6 100644 --- a/Inventarios/ResguardoMaterial.aspx.vb +++ b/Inventarios/ResguardoMaterial.aspx.vb @@ -121,7 +121,6 @@ Partial Class Inventarios_ResguardoMaterial EsSurtidoUniforme = If(Request.QueryString("EsSurtidoUniforme").ToString = "1", True, False) End If - InicializaValores() If Not Request.QueryString("CvePersonal") Is Nothing Then @@ -275,8 +274,8 @@ Partial Class Inventarios_ResguardoMaterial DdlAlmacenDestinoLiberacion.DataBind() DdlAlmacenDestinoLiberacion.Items.Insert(0, New ListItem("Seleccione", "-1")) - DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) - DdlSeccionAlmacen.DataBind() + 'DdlSeccionAlmacen.DataSource = GlobalDTSeccionAlmacen(UsuarioActual.CveEmpresa, -1) + 'DdlSeccionAlmacen.DataBind() CargaPS() End Sub @@ -335,9 +334,11 @@ Partial Class Inventarios_ResguardoMaterial End Sub Private Sub VerificaProducto() If DdlProducto2.SelectedValue.ToEntero > 0 Then - Dim drp As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("") + Dim drp As DataRow = GlobalDTPSSimplificado(UsuarioActual.CveEmpresa, CvePS:=DdlProducto2.SelectedValue.ToEntero).FiltroPrimero("") If drp IsNot Nothing Then + + 'activa Serie If CBool(drp("AplicaSerie")) Then ThSerie.Visible = True @@ -349,6 +350,16 @@ Partial Class Inventarios_ResguardoMaterial If CBool(drp("AplicaSeccion")) Then ThSeccion.Visible = True TrSeccion.Visible = True + If DdlAlmacen.SelectedValue.ToEntero > 0 Then + DdlSeccionAlmacen.Items.Clear() + Dim dtt As DataTable = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacen.SelectedValue.ToEntero, DdlProducto2.SelectedValue.ToEntero) + DdlSeccionAlmacen.DataSource = dtt + DdlSeccionAlmacen.DataBind() + If dtt.Rows.Count > 1 Then + DdlSeccionAlmacen.Items.Insert(0, New ListItem("Seleccione", "-1")) + End If + dtt.Dispose() + End If End If 'activa lote If CBool(drp("AplicaLote")) Then @@ -445,7 +456,7 @@ Partial Class Inventarios_ResguardoMaterial registro.Item("Estatus") = "" registro.Item("SeccionAlmacen") = If(DdlSeccionAlmacen.SelectedValue.ToEntero > 0, DdlSeccionAlmacen.SelectedItem.Text, "") registro.Item("Serie") = TxtnSerie.Text - registro.Item("Lote") = If(TxtLote.Text = "", "-1", TxtLote.Text) + registro.Item("Lote") = If(TxtLote.Text = "", "", TxtLote.Text) registro.Item("FechaCaducidad") = If(TxtCaducidad.Text = "", MinFecha.ToString, TxtCaducidad.Text) registro.Item("CveSeccionAlmacen") = If(DdlSeccionAlmacen.SelectedValue.ToEntero > 0, DdlSeccionAlmacen.SelectedValue.ToEntero, -1) registro.Item("Observaciones") = TxtObservacionesdetalle.Text @@ -823,10 +834,17 @@ Partial Class Inventarios_ResguardoMaterial MensajeError = "Ocurrió un error al guardar el movimiento de entrada correctamente. Por favor vuelva a intentar." TieneError = True Else + If ObjInventario.GetMovimientosDetalle(CveMovimientoSalida, UsuarioActual.CveEmpresa) Then + Dim CveSeccionAlmacen As Integer = 0 For Each Dr As DataRow In ObjInventario.DtResultados.Rows + If CBool(Dr("AplicaSeccion")) Then + CveSeccionAlmacen = GlobalDTInvPSSeccionesAlmacen(UsuarioActual.CveEmpresa, DdlAlmacenDestino.SelectedValue.ToEntero, Dr("CvePS").ToString.ToEntero).FiltroPrimeroValor("CveSeccionAlmacen").ToEntero + Else + CveSeccionAlmacen = -1 + End If If Not ObjInventario.AddMovimientoDetalle(CveMovimientoEntrada, Dr("Cantidad").ToString.ToDouble, Dr("CveUM").ToString.ToEntero, Dr("CvePS").ToString.ToEntero, - Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=Dr("CveSeccionAlmacen").ToString.ToEntero, + Dr("PU").ToString.ToDecimal, Dr("CveAF").ToString.ToEntero, CveSeccionAlmacen:=CveSeccionAlmacen, Serie:=Dr("Serie").ToString, Observaciones:=Dr("Observaciones").ToString) Then TieneError = True MensajeError = "Ocurrió un error al guardar los movimientos de entrada" diff --git a/Inventarios/TrasladoSolicitud.aspx b/Inventarios/TrasladoSolicitud.aspx index 3e55f0969..2d5e5663e 100644 --- a/Inventarios/TrasladoSolicitud.aspx +++ b/Inventarios/TrasladoSolicitud.aspx @@ -105,7 +105,7 @@ @@ -153,6 +153,7 @@
+
@@ -214,6 +215,67 @@
+ +
+ +
+
+
+ + AUTORIZACIÓN +
+
+
+
+
+ +
+ +
+
+
+ + +
+ +
+
- +
Almacén Destino: - +
+ + + + + +
Estado :
Usuario :
Fecha :
+ +
+ +
+ +
+ + +
+ +
+
+ +
+ +
+ + + + + + + + + + + + @@ -238,7 +300,7 @@
- + diff --git a/Inventarios/TrasladoSolicitud.aspx.vb b/Inventarios/TrasladoSolicitud.aspx.vb index 515063e12..6c3b28afe 100644 --- a/Inventarios/TrasladoSolicitud.aspx.vb +++ b/Inventarios/TrasladoSolicitud.aspx.vb @@ -35,9 +35,24 @@ Partial Class Inventarios_TrasladoSolicitud Set(value As Integer) ViewState("CveDireccionEnvio") = value End Set - End Property + End Property + + 'Private Property CveUsuarioAutoriza As Integer + ' Get + ' If ViewState("CveUsuarioAutoriza") Is Nothing Then + ' Return -1 + ' Else + ' Return CType(ViewState("CveUsuarioAutoriza"), Integer) + ' End If + + ' End Get + ' Set(value As Integer) + ' ViewState("CveUsuarioAutoriza") = value + ' End Set + 'End Property + #End Region - + Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load If Not IsPostBack Then @@ -132,7 +147,8 @@ Partial Class Inventarios_TrasladoSolicitud #Region " CARGA DATOS " Private Sub CargaDatos() Dim ObjInventarios As New ClsInventarios - Dim ObjClientes As New ClsClientes + Dim ObjClientes As New ClsClientes + If ObjInventarios.AddTrasladoSolicitudGet(CveTraspasoSolicitud, UsuarioActual.CveEmpresa) Then If ObjInventarios.DtResultados.Rows.Count > 0 Then @@ -213,6 +229,55 @@ Partial Class Inventarios_TrasladoSolicitud LbAgregarPS.Visible = False HLDesdeContrato.Visible = False + + Dim EstatusAlmacen As Integer = ObjInventarios.DtResultados.Rows(0)("EstatusAlmacen").ToString().ToEntero + Dim CveUsuarioAutoriza As Integer = ObjInventarios.DtResultados.Rows(0)("CveUsuarioAutorizaDestino").ToString().ToEntero + + If EstatusAlmacen > 0 Then + + + If UsuarioActual.CveUsuario = CveUsuarioAutoriza Then + + If EstatusAlmacen = 1 Then + + + DivAutoriza.Visible = True + DVAutorizarBotones.Visible = True + DVAutorizaInformacion.Visible = False + + ElseIf EstatusAlmacen.Contiene(2, 3) Then + DivAutoriza.Visible = True + + DVAutorizarBotones.Visible = False + DVAutorizaInformacion.Visible = True + + LblEstatusAutorizo.Text = If(EstatusAlmacen = 2, "Aceptado", "Rechazado") + LblUsaurioAutorizo.Text = ObjInventarios.DtResultados.Rows(0)("NombreAutoriza").ToString() + LblFechaAutoriza.Text = ObjInventarios.DtResultados.Rows(0)("FechaAutorizacion").ToString().ToDate().ToString("dd/MM/yyyy") + Else + + End If + + ElseIf EstatusAlmacen.Contiene(2, 3) Then + + DivAutoriza.Visible = True + + DVAutorizarBotones.Visible = False + DVAutorizaInformacion.Visible = True + + LblEstatusAutorizo.Text = If(EstatusAlmacen = 2, "Aceptado", "Rechazado") + LblUsaurioAutorizo.Text = ObjInventarios.DtResultados.Rows(0)("NombreAutoriza").ToString() + LblFechaAutoriza.Text = ObjInventarios.DtResultados.Rows(0)("FechaAutorizacion").ToString().ToDate().ToString("dd/MM/yyyy") + + End If + + + Else + DivAutoriza.Visible = False + End If + + + Else Alert("Ocurrió un error al obtener los datos del traspaso.", TipoMensaje.MsgError) End If @@ -469,15 +534,37 @@ Partial Class Inventarios_TrasladoSolicitud If Not GvDatos.Rows.Count > 0 Then Alert("No se ha seleccionado ningún Producto para trasladar.", TipoMensaje.MsgAdvertencia) Exit Sub - End If - - 'VERIFICA EXISTENCIAS + End If + + + Dim CveUsuarioAutoriza As Integer = -1 + Dim EstatusAlmacen As Integer = 2 + 'VERIFICA EXISTENCIAS Dim ObjInventarios As New ClsInventarios Dim Existencia = 0.0 Dim TieneErrorExistencia = False Dim MensajeExistencia As New StringBuilder MensajeExistencia.Append("No hay la existencia suficiente de los siguientes productos:
") - Dim CodigoPS As String = "" + Dim CodigoPS As String = "" + + + If ObjInventarios.GetAlmacenes(-1, -1, UsuarioActual.CveEmpresa, -1) Then + + If ObjInventarios.DtResultados.Rows.Count > 0 Then + + CveUsuarioAutoriza = If(ObjInventarios.DtResultados.FiltraParametros($"CveAlmacen = {DdlAlmacenDestino.SelectedValue}")(0)("CveUsuarioAutoriza").ToString.ToEntero > 0, ObjInventarios.DtResultados.FiltraParametros($"CveAlmacen = {DdlAlmacenDestino.SelectedValue}")(0)("CveUsuarioAutoriza").ToString.ToEntero, -1) + If CveUsuarioAutoriza > 0 Then + EstatusAlmacen = 1 + End If + + Else + CveUsuarioAutoriza = -1 + End If + End If + + + + For Each row As GridViewRow In GvDatos.Rows CodigoPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=row.DataKey("CvePS").ToEntero).FiltroPrimeroValor("PSCodigo", "") Existencia = ObjInventarios.GetExistenciasPS(row.DataKey("CvePS").ToEntero, row.DataKey("CveUM").ToEntero, UsuarioActual.CveEmpresa, DdlAlmacenOrigen.SelectedValue.ToEntero, FechaMovto:=TxtFecha.Text.ToDate.ToString("yyyy/MM/dd 23:59")) @@ -509,7 +596,7 @@ Partial Class Inventarios_TrasladoSolicitud Estatus = 3 End If - Dim Folio = ObjInventarios.AddTrasladoSolicitud(TxtObservaciones.Text.Trim, DdlAlmacenOrigen.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero, Estatus, -1, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato, Guia:=Guia, CvePaqueteria:=DdlPaqueteria.SelectedValue.ToEntero, CveDireccionEnvio:=CveDireccionEnvio) + Dim Folio = ObjInventarios.AddTrasladoSolicitud(TxtObservaciones.Text.Trim, DdlAlmacenOrigen.SelectedValue.ToEntero, DdlAlmacenDestino.SelectedValue.ToEntero, Estatus, -1, TxtFecha.Text.ToDate, UsuarioActual.CveUsuario, UsuarioActual.CveEmpresa, CveContrato:=CveContrato, Guia:=Guia, CvePaqueteria:=DdlPaqueteria.SelectedValue.ToEntero, CveDireccionEnvio:=CveDireccionEnvio, EstatusAlmacen:=EstatusAlmacen) If Folio > 0 Then CveTraspasoSolicitud = ObjInventarios.CveTraspasoSolicitud @@ -536,7 +623,12 @@ Partial Class Inventarios_TrasladoSolicitud If TieneError = False Then ObjInventarios.Commit() - Alert($"El Traspaso se guardó correctamente con el folio #: {Folio}.", TipoMensaje.MsgInformacion, $"document.location.href=""/Inventarios/TrasladoSolicitud.aspx?CveTraspasoSolicitud={CveTraspasoSolicitud}""") + Alert($"El Traspaso se guardó correctamente con el folio #: {Folio}.", TipoMensaje.MsgInformacion, $"document.location.href=""/Inventarios/TrasladoSolicitud.aspx?CveTraspasoSolicitud={CveTraspasoSolicitud}""") + + If CveUsuarioAutoriza > 0 Then + MandaCorreoAutorizacion(Folio, CveTraspasoSolicitud, CveUsuarioAutoriza) + End If + Else ObjInventarios.RollBack() Alert("Ocurrió un Error al guardar el traspaso.", TipoMensaje.MsgError) @@ -852,12 +944,12 @@ Partial Class Inventarios_TrasladoSolicitud Response.TransmitFile(Archivo.FullName) Response.End() End If - End Sub - - + End Sub + + #End Region - - + + Protected Sub DdlProductoServicio_selectedindexchange(sender As Object, e As EventArgs) If DdlProductoServicio.SelectedValue.ToEntero > 0 Then Dim drPS As DataRow = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlProductoServicio.SelectedValue.ToEntero).FiltroPrimero("") @@ -874,6 +966,78 @@ Partial Class Inventarios_TrasladoSolicitud End If UpPS.Update() UpDatos.Update() - End Sub + End Sub + + + Protected Sub LnkAceptarTraslado_Click(sender As Object, e As EventArgs) + + Dim ObjInven As New ClsInventarios + If ObjInven.UpdateTrasladoAutorizar(CveTraspasoSolicitud, UsuarioActual.CveEmpresa, 2, UsuarioActual.CveUsuario, Now) Then + Alert("Autorizado correctamente.") + End If + ObjInven.Dispose() + + CargaDatos() + + End Sub + Protected Sub LnkRechazarTraslado_Click(sender As Object, e As EventArgs) + + Dim ObjInven As New ClsInventarios + If ObjInven.UpdateTrasladoAutorizar(CveTraspasoSolicitud, UsuarioActual.CveEmpresa, 3, UsuarioActual.CveUsuario, Now) Then + Alert("Rechazado correctamente.") + End If + ObjInven.Dispose() + + CargaDatos() + + End Sub + + + Private Sub MandaCorreoAutorizacion(Folio As Integer, CveTraspasoSolicitud As Integer, CveUsuarioAutoriza As Integer) + + Dim SB As New StringBuilder + + Dim CorreoDestino As String = GlobalDTUsuarios(CveUsuarioAutoriza)(0)("Correo").ToString.Trim + + + If CorreoDestino.Length > 0 Then + + + + SB.AppendLine($"

Se ha registrado una solicitud de traspaso de {DdlAlmacenOrigen.SelectedItem.Text} a {DdlAlmacenDestino.SelectedItem.Text}, con los siguientes productos.

") + + + + SB.AppendLine("
") + SB.AppendLine("") + SB.AppendLine("") + + For Each GvRow As GridViewRow In GvDatos.Rows + + If GvRow.RowType = DataControlRowType.DataRow Then + SB.AppendLine($"") + End If + + Next + SB.AppendLine("
Cantidad U.M. Producto Observaciones
{GvRow.DataKey("Cantidad")} {GvRow.DataKey("UnidadMedida")} {GvRow.DataKey("CodigoPS")} {GvRow.DataKey("Observaciones")}
") + SB.AppendLine("
") + SB.AppendLine($" Ir a solicitud de traspaso para autorización") + + + + Dim MandaCorre As New ClsSisMail + MandaCorre.SendMail(ClsPaginas.EmpresaNotificaciones, CorreoDestino, $"Solicitud de Autorización de traspaso #{Folio}", SB.ToString, Displayname:="SIG Notificaciones: Solicitud de Traspaso") + + + End If + + + + + + + + End Sub + End Class diff --git a/LogIn.aspx b/LogIn.aspx index b391e24ef..80d75be74 100644 --- a/LogIn.aspx +++ b/LogIn.aspx @@ -18,7 +18,7 @@ <%: Styles.Render("~/Metronic/assets/global/css/css") %> - + <%: Scripts.Render("~/bundles/modernizr") %> @@ -69,13 +69,13 @@
- +
- - + +
+ +
<%----%> diff --git a/RH/Organigrama.aspx.vb b/RH/Organigrama.aspx.vb index 84175ea43..190813a3a 100644 --- a/RH/Organigrama.aspx.vb +++ b/RH/Organigrama.aspx.vb @@ -86,14 +86,8 @@ Partial Class RH_Organigrama CveEmpresaFiltro = UsuarioActual.CveEmpresa NivelOrg = If(rgx.IsMatch(txtNivel.Text), txtNivel.Text.ToEntero, NivelOrg) txtNivel.Text = "" - DdlSupervisorOrganigrama.SelectedIndex = 0 - ScriptManager.RegisterClientScriptBlock(Me, [GetType], "mykey", "drawChart()", True) 'ejecutamos la funcion de js para que haga la consulta de los registros - End Sub + 'DdlSupervisorOrganigrama.SelectedIndex = 0 -#End Region - - - Public Shared Function FetchData() As List(Of Object) Dim ObjRH As New ClsRH Dim DtTemporal As New DataTable Dim chartData As New List(Of Object)() @@ -110,8 +104,33 @@ Partial Class RH_Organigrama chartData.Add(New Object() {headerEmpleado, If(nombreEmpleado = nombreSuperior, "", nombreSuperior), puesto}) Next End If + Dim str As String = (New Script.Serialization.JavaScriptSerializer()).Serialize(chartData) + LblJson.Text = str + 'ScriptManager.RegisterClientScriptBlock(Me, [GetType], "mykey", "drawChart()", True) 'ejecutamos la funcion de js para que haga la consulta de los registros + End Sub - Return chartData +#End Region + + + Public Shared Function FetchData() As String + Dim ObjRH As New ClsRH + Dim DtTemporal As New DataTable + Dim chartData As New List(Of Object)() + + If ObjRH.GetOrganigrama(CveEmpresaFiltro, CveCabecera, NivelOrg) Then + DtTemporal = ObjRH.DtResultados.Copy + + For Each renglon As DataRow In DtTemporal.Rows + Dim nombreEmpleado As String = renglon("nombreEmpleado").ToString + Dim nombreSuperior As String = renglon("nombreSuperior").ToString + Dim puesto As String = renglon("puesto").ToString + Dim headerEmpleado As String = String.Format("{{{2}v{2}:{2}{0}{2},{2}f{2}:{2}{0}
{1}
{2}}}", nombreEmpleado, puesto, ControlChars.Quote) 'este es el JSON que da formato a los subtitulos se hace en String y la funcion lo hace JSON + + chartData.Add(New Object() {headerEmpleado, If(nombreEmpleado = nombreSuperior, "", nombreSuperior), puesto}) + Next + End If + Dim str As String = (New Script.Serialization.JavaScriptSerializer()).Serialize(chartData) + Return str End Function End Class diff --git a/RH/Personal.aspx b/RH/Personal.aspx index 9dce78f67..16ff6e369 100644 --- a/RH/Personal.aspx +++ b/RH/Personal.aspx @@ -715,7 +715,7 @@ - +
@@ -723,7 +723,7 @@ - +
@@ -829,7 +829,7 @@ - @@ -3861,13 +3861,18 @@
@@ -721,6 +723,7 @@
Seleccionar Todos +
@@ -785,234 +788,239 @@ -
-
-
-
-
- - Inventarios -
-
-
+ + + +
+
+
+
+
+ + Inventarios +
+
+
+
+
-
-
-
- <%--
+
+ <%--
--%> -
- -
- - - - - - - +
+ +
+ + + + + + + +
+
+
+ +
+ +
+
+ + + <%--Nuevo R: 27/09/2017--%> + +
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ + + +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+ + + + + + + + + + +
+
-
- -
- +
+
+
+
+
+ + Concepto Relacionado +
+
+
+
+
-
- - - <%--Nuevo R: 27/09/2017--%> - -
- -
- - - -
-
-
- -
- - - -
-
-
- -
- - - -
-
-
- -
- - - -
-
-
- -
- - - -
-
-
- -
- -
-
-
- -
- +
+
+ +
+ + + +
+

-
-
- -
-
-
- -
- -
-
-
- -
- -
-
-
- -
- -
-
-
-
- - - - - - - - - - -
-
-
-
-
-
-
-
-
- - Concepto Relacionado -
-
-
-
-
-
-
-
- -
- - - -
-
-
-
-
-
-
-
- - Comercio Exterior -
-
-
-
-
-
-
-
- -
- -
-
-
- -
- -
-
-
-
-
- - -
-
-
-
- - Secciones de Almacen -
-
-
- -
+
+
+
+ + Comercio Exterior +
+
+
-
- - - - -<%-- +
+
+
+ +
+ +
+
+
+ +
+ +
+
+
+
+
+ + +
+
+
+
+ + Secciones de Almacen +
+
+
+ +
+
+
+
+ + + + + <%-- --%> - - - - - - - + + + + + + + +
+
-
-
- - -
-
+ + +
+
+ + @@ -1085,6 +1093,8 @@ Característica + + @@ -1092,6 +1102,8 @@ Opción + + @@ -1099,6 +1111,8 @@ Fecha Ing. + + @@ -1106,6 +1120,8 @@ Usuario + + @@ -1748,6 +1764,8 @@

El producto seleccionado en el recuadro de arriba sera unificado en el producto actual + +

@@ -1980,6 +1998,7 @@

Tipo de Clasificación: +

@@ -1990,6 +2009,7 @@   +
@@ -2072,7 +2092,7 @@