This commit is contained in:
JORGE LUIS CAUDILLO ESPARZA
2019-10-07 13:09:23 -07:00
11 changed files with 419 additions and 77 deletions

View File

@@ -1556,7 +1556,7 @@ Public Class ClsOS
#End Region
#Region "ESTATUS USUARIOS OS"
Public Function GetEstatusUsuarios(CveUsuario As Integer, CveEmpresa As Integer, Optional CveEstatusUsuario As Integer = -1) As Boolean
Public Function GetEstatusUsuarios(CveUsuario As Integer, CveEmpresa As Integer, Optional CveSubProyecto As Integer = -1, Optional CveEstatusUsuario As Integer = -1) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OS_EstatusUsuariosGet")
@@ -1564,6 +1564,7 @@ Public Class ClsOS
.Add("@CveEstatusUsuario", SqlDbType.Int).Value = CveEstatusUsuario
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
End With
Try
SqlAdapter.Fill(Data)
@@ -1574,7 +1575,7 @@ Public Class ClsOS
Return Retorno
End Function
Public Function RemoveEstatusUsuarios(CveEstatus As Integer, CveUsuario As Integer) As Boolean
Public Function RemoveEstatusUsuarios(CveEstatus As Integer, CveUsuario As Integer, CveSubProyecto As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OS_EstatusUsuariosRemove")
@@ -1582,6 +1583,7 @@ Public Class ClsOS
With SqlAdapter.SelectCommand.Parameters
.Add("@CveEstatusOrdenServicio", SqlDbType.Int).Value = CveEstatus
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
End With
Try
@@ -1599,7 +1601,7 @@ Public Class ClsOS
Return Retorno
End Function
Public Function AddEstatusUsuarios(CveEstatusOrdenServicio As Integer, CveUsuario As Integer, CveSubProyecto As Integer) As Boolean
Public Function AddEstatusUsuarios(CveEstatusOrdenServicio As Integer, CveUsuario As Integer, CveSubProyecto As Integer, CveUsuarioModifico As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OS_EstatusUsuarioAdd")
@@ -1608,6 +1610,7 @@ Public Class ClsOS
.Add("@CveEstatusOrdenServicio", SqlDbType.Int).Value = CveEstatusOrdenServicio
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@CveSubProyecto", SqlDbType.Int).Value = CveSubProyecto
.Add("@CveUsuarioModifico", SqlDbType.Int).Value = CveUsuarioModifico
End With
Try
@@ -1626,6 +1629,25 @@ Public Class ClsOS
Return Retorno
End Function
Public Function GetSubProyectosEstatusInicial(CveUsuario As Integer, TipoEstatus As Integer, CveEmpresa As Integer) As Boolean
Dim Retorno As Boolean = False
DataAdapter("PA_OS_SubProyectoInicialGet")
With SqlAdapter.SelectCommand.Parameters
.Add("@CveUsuario", SqlDbType.Int).Value = CveUsuario
.Add("@TipoEstatus", SqlDbType.Int).Value = TipoEstatus
.Add("@CveEmpresa", SqlDbType.Int).Value = CveEmpresa
End With
Try
SqlAdapter.Fill(Data)
Retorno = True
Catch ex As Exception
OnError("Ocurrió un error al obtener el Catálogo de Estatus de Usuarios para Ordenes de servicio.", ex, SqlAdapter.SelectCommand.Parameters.ParametrosInfo())
End Try
Return Retorno
End Function
#End Region

View File

@@ -5109,6 +5109,8 @@ Namespace Modelos
Public Property Total As Decimal
Public Property Otros As Decimal
Public Property TotalRemNCAplicado As Decimal
#Region "Totales por Tipo de cambio"
Public ReadOnly Property SubTotalTC As Decimal

View File

@@ -4,4 +4,4 @@
28/08/2019:05:48 p. m. No se especifico a remitente - SIG - Se Genero una Recepción de Usados con el folio: 80
02/09/2019:11:00 a. m. From:'signotificaciones@adssistemas.mx' - Para:'x@x.com' - Asunto:'Entrega de Factura SUCURSAL NARANJO SN-22' - CCP: '' - Adjuntos: 1

View File

@@ -17,12 +17,20 @@ Partial Class OS_Asignaciones
ViewState("TmpDT") = value
End Set
End Property
Private Property DtOSSubProyectos As DataTable
Get
Return CType(ViewState("DtOSSubProyectos"), DataTable)
End Get
Set(value As DataTable)
ViewState("DtOSSubProyectos") = value
End Set
End Property
#End Region
Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
If Not IsPostBack Then
CargaEstatusOS()
CargaUsuarios()
'CargaUsuarios()
CargaClientes()
CargaSubProyecto()
@@ -79,6 +87,7 @@ Partial Class OS_Asignaciones
FechaF = If(IsDate(txtFechaF.Text.Trim()), txtFechaF.Text.Trim(), "-1")
If ObjOS.GetOrdenesServiciosNoAsignadas(DdlCliente.SelectedValue.ToEntero, DdlSubProyecto.SelectedValue.ToEntero, DdlEstatusOS.SelectedValue.ToEntero, UsuarioActual.CveEmpresa, FechaI, FechaF) Then
DtOSSubProyectos = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
GvNA.DataSource = ObjOS.DtResultados
TmpDT = ObjOS.DtResultados
Else
@@ -87,6 +96,7 @@ Partial Class OS_Asignaciones
GvNA.DataBind()
ObjOS.Dispose()
UpOS.Update()
CargarTecnico()
End Sub
Private Sub CargaOrdenesServiciosAsignadas()
Dim ObjOS As New ClsOS
@@ -138,6 +148,26 @@ Partial Class OS_Asignaciones
End If
UPFiltros.Update()
End Sub
Private Sub CargarTecnico()
Dim ObjOS As New ClsOS
Dim TecnicosSubProyectos As New DataTable
Dim TecnicosResultado As New DataTable
If ObjOS.GetSubProyectosEstatusInicial(-1, 3, UsuarioActual.CveEmpresa) Then
TecnicosSubProyectos = ObjOS.DtResultados
End If
For Each SubProyecto As DataRow In DtOSSubProyectos.Rows
Dim EstatusDeTipoProcesoMenor As Integer = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}'", SubProyecto.Item("SubProyecto"))).Rows(0).Item("CveEstatusOrdenServicio").ToString.ToEntero
Dim dtAuxiliar As New DataTable
dtAuxiliar = TecnicosSubProyectos.FiltraParametros(String.Format("SubProyecto = '{0}' AND CveEstatusOrdenServicio = {1}", SubProyecto.Item("SubProyecto"), EstatusDeTipoProcesoMenor), "", {"CveUsuario", "Nombre"})
TecnicosResultado.Merge(dtAuxiliar)
Next
DdlTecnico.DataSource = TecnicosResultado
DdlTecnico.DataBind()
DdlTecnico.Items.Insert(0, New ListItem("Todos", "-1"))
ObjOS.Dispose()
End Sub
#End Region
#Region "BTN'S"

View File

@@ -4,10 +4,11 @@
</asp:Content>
<asp:Content ID="Content2" ContentPlaceHolderID="Css" runat="Server">
<style>
.columnaUsuarios{
text-align:left;
font-weight:bold;
.columnaUsuarios {
text-align: left;
font-weight: bold;
}
.Widthall {
width: 100% !important;
}
@@ -95,17 +96,18 @@
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<label for="TxtBusquedaEstatus">Buscar: </label>
<input type="text" id="TxtBusquedaEstatus" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvDatos.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", Prueba.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvUsuariosEstatus.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:UpdatePanel ID="UpDatos" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:HiddenField ClientIDMode="Static" runat="server" ID="HdnCveEstatus" Value="-1" />
<asp:GridView ID="GvDatos" runat="server" GridLines="None" DataKeyNames="CveEstatusOrdenServicio,TipoEstatus,TipoEstatusTexto,EstatusOrdenServicio,EstatusBool,Estado" CssClass="table table-striped table-advance table-hover Widthall" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" ToolTip="Listado de Estatus de Ordenes de Servicios">
<asp:GridView ID="GvDatos" runat="server" GridLines="None" DataKeyNames="CveEstatusOrdenServicio,TipoEstatus,TipoEstatusTexto,EstatusOrdenServicio,EstatusBool,Estado,Orden" CssClass="table table-striped table-advance table-hover Widthall" CellSpacing="0" Width="100%" AutoGenerateColumns="False" EmptyDataText="No se encontraron registros" ToolTip="Listado de Estatus de Ordenes de Servicios">
<Columns>
<asp:BoundField DataField="EstatusOrdenServicio" HeaderText="Estatus Orden Servicio" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Estado" HeaderText="Estado" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="TipoEstatusTexto" HeaderText="Tipo" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField DataField="Orden" HeaderText="Orden" ItemStyle-HorizontalAlign="Left" />
<asp:TemplateField ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:LinkButton ID="imgE" runat="server" AlternateText="Editar" CausesValidation="False" OnClick="Edit_Click" CssClass="btn btn-circle btn-sm green" Text="<i class='fa fa-pencil'></i>" />
@@ -125,27 +127,40 @@
<ajax:TabPanel runat="server" ID="TabPanel3" HeaderText="Configuración">
<ContentTemplate>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<label for="TxtBusqueda">Buscar: </label>
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", Prueba.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", Prueba.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
<div class="portlet solid grey-cascade portlet-filter">
<div class="portlet-title portlet-filterT smalltitle">
<div class="tools">
<a href="javascript:;" class="expand"></a>
</div>
<div class="titlefiltros caption">
<div class="row">
<label class="col-md-1">Proyecto: </label>
<div class="col-md-2" id="DivProyecto" runat="server">
<asp:DropDownList ID="CboProyecto" runat="server" DataTextField="Proyecto" DataValueField="CveProyecto" CssClass="form-control input-sm select2me" Width="250px" AutoPostBack="true"></asp:DropDownList>
</div>
<label class="col-md-1" id="LblSubproyecto" runat="server">SubProyecto: </label>
<div class="col-md-2" id="DivSubProyecto" runat="server">
<asp:DropDownList ID="CboSubProyecto" runat="server" DataTextField="SubProyecto" DataValueField="CveSubProyecto" CssClass="form-control input-sm select2me" Width="250px" AutoPostBack="true"></asp:DropDownList>
</div>
</div>
</div>
</div>
</div>
<asp:UpdatePanel ID="UpPrueba" runat="server" UpdateMode="Conditional">
<asp:UpdatePanel ID="UpGvUsuariosEstatus" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:GridView ID="Prueba" GridLines="None" CssClass="table table-striped table-advance table-hover" Width="100%" runat="server" AutoGenerateColumns="false" DataKeyNames="CveUsuario" EmptyDataText="No se encontraron Usuarios Registrados" ToolTip="Listado de Usuarios" Style="text-align: center">
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<label for="TxtBusqueda">Buscar: </label>
<input type="text" id="TxtBusqueda" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvUsuariosEstatus.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda','{0}')", GvUsuariosEstatus.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<asp:GridView ID="GvUsuariosEstatus" GridLines="None" CssClass="table table-striped table-advance table-hover" Width="100%" runat="server" AutoGenerateColumns="false" DataKeyNames="CveUsuario" EmptyDataText="No se encontraron Usuarios Registrados" ToolTip="Listado de Usuarios" Style="text-align: center">
<HeaderStyle VerticalAlign="Middle" />
<Columns>
<%--<asp:TemplateField>
<HeaderTemplate>Estatus</HeaderTemplate>
<ItemStyle Width="150px" BorderStyle="None" />
<ItemTemplate>
<asp:Label Font-Bold="true" Style="text-align: left" Width="250px" ID="LblUsuario" runat="server" Text='<%# Eval("Nombre")%>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>--%>
</Columns>
</asp:GridView>
<div style="width: 100%; text-align: center">
<asp:Button ID="BtnGuardarPruebas" Text="Guardar" runat="server" Visible="true" CssClass="btn btn-primary" />
<asp:Button ID="BtnGuardarUsuariosEstatus" Text="Guardar" runat="server" Visible="true" CssClass="btn btn-primary" />
</div>
</ContentTemplate>
</asp:UpdatePanel>

View File

@@ -64,13 +64,23 @@ Partial Class OS_CatEstatusOrdenServicio
Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
'DTUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
CargaDatos()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
'CargaDatos()
'AsociarEstatusUsuarios()
'CargarUsuarioConEstatus()
'CargarSubProyectos()
CargarProyectos()
CargarTodosLosDatos()
CveEstatuOS = -1
End If
End Sub
Private Sub CargarTodosLosDatos()
'CargarSubProyectos()
CargaDatos()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
End Sub
Public Sub CargaDatos()
DTUsuarios = GlobalDTUsuarios(CveEmpresa:=UsuarioActual.CveEmpresa)
Using ObjEstatusOrdenServicios As New ClsOS
@@ -83,7 +93,7 @@ Partial Class OS_CatEstatusOrdenServicio
End If
If ObjEstatusOrdenServicios.GetEstatusUsuarios(-1, -1) Then
If ObjEstatusOrdenServicios.GetEstatusUsuarios(-1, -1, CveSubProyecto:=CboSubProyecto.SelectedValue.ToEntero) Then
DTEstatusUsuarios = ObjEstatusOrdenServicios.DtResultados
End If
@@ -131,7 +141,7 @@ Partial Class OS_CatEstatusOrdenServicio
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
UpDatos.Update()
UpPrueba.Update()
UpGvUsuariosEstatus.Update()
'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)
End Sub
Public Sub Edit_Click(sender As Object, e As EventArgs)
@@ -175,7 +185,7 @@ Partial Class OS_CatEstatusOrdenServicio
EstatusUsuariosGridActualizar()
AsociarEstatusUsuarios()
CargarUsuarioConEstatus()
UpPrueba.Update()
UpGvUsuariosEstatus.Update()
'Response.Redirect(HttpContext.Current.Request.Url.ToString(), True)
End Sub
Protected Sub GvDatos_RowUpdating(sender As Object, e As System.Web.UI.WebControls.GridViewUpdateEventArgs) Handles GvDatos.RowUpdating
@@ -218,18 +228,18 @@ Partial Class OS_CatEstatusOrdenServicio
nombresUsuarios.DataField = "Nombre"
nombresUsuarios.HeaderText = "Usuario"
nombresUsuarios.ItemStyle.CssClass = "columnaUsuarios"
Prueba.Columns.Add(nombresUsuarios)
GvUsuariosEstatus.Columns.Add(nombresUsuarios)
For Each Estatus As DataRow In DtEstatusOS.Rows
Dim test As New CheckBoxField
test.HeaderText = Estatus.Item("EstatusOrdenServicio").ToString
test.DataField = Estatus.Item("CveEstatusOrdenServicio").ToString
Prueba.Columns.Add(test)
GvUsuariosEstatus.Columns.Add(test)
Next
Prueba.DataSource = DtEstatusUsuariosAsociados
Prueba.DataBind()
GvUsuariosEstatus.DataSource = DtEstatusUsuariosAsociados
GvUsuariosEstatus.DataBind()
End Sub
Private Sub Prueba_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles Prueba.RowDataBound
Private Sub GvUsuariosEstatus_RowDataBound(sender As Object, e As GridViewRowEventArgs) Handles GvUsuariosEstatus.RowDataBound
If e.Row.RowType = DataControlRowType.DataRow Then
Dim PermisosDeUsuario As DataTable = DTEstatusUsuarios.FiltraParametros(String.Format("CveUsuario = {0}", e.Row.DBCampo("CveUsuario").ToString))
For i As Integer = 1 To e.Row.Cells.Count - 1
@@ -241,48 +251,78 @@ Partial Class OS_CatEstatusOrdenServicio
End If
End Sub
Private Sub GuardarDatosPrueba(sender As Object, e As EventArgs) Handles BtnGuardarPruebas.Click
Dim objEstatusOC As New ClsOS
objEstatusOC.IniciaTransacSQL()
Dim HuboErrores As Boolean = False
Dim CveSubProyecto = 59
Private Sub GuardarDatosGvUsuariosEstatus(sender As Object, e As EventArgs) Handles BtnGuardarUsuariosEstatus.Click
If CboSubProyecto.SelectedValue.ToEntero > 0 Then
Dim objEstatusOC As New ClsOS
objEstatusOC.IniciaTransacSQL()
Dim HuboErrores As Boolean = False
Dim CveSubProyecto As Integer = CboSubProyecto.SelectedValue.ToEntero
For Each Row As GridViewRow In Prueba.Rows
Dim controles As Integer = Row.Controls.Count
For i = 1 To Row.Cells.Count - 1
Dim chk As CheckBox = CType(Row.Cells(i).Controls(0), CheckBox)
Dim CveEstatus As Integer = DtEstatusOS.FiltroPrimeroValor("CveEstatusOrdenServicio", String.Format("EstatusOrdenServicio = '{0}'", Prueba.Columns(i).HeaderText)).ToEntero
If Not chk.Checked Then
If Not objEstatusOC.RemoveEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero) Then
HuboErrores = True
Exit For
For Each Row As GridViewRow In GvUsuariosEstatus.Rows
Dim controles As Integer = Row.Controls.Count
For i = 1 To Row.Cells.Count - 1
Dim chk As CheckBox = CType(Row.Cells(i).Controls(0), CheckBox)
Dim CveEstatus As Integer = DtEstatusOS.FiltroPrimeroValor("CveEstatusOrdenServicio", String.Format("EstatusOrdenServicio = '{0}'", GvUsuariosEstatus.Columns(i).HeaderText)).ToEntero
If Not chk.Checked Then
If Not objEstatusOC.RemoveEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero, CveSubProyecto) Then
HuboErrores = True
Exit For
End If
ElseIf chk.Checked Then
'Guardado masivo cuando sea SubProyecto "Todos"
If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero, CveSubProyecto, UsuarioActual.CveUsuario) Then
HuboErrores = True
Exit For
End If
End If
ElseIf chk.Checked Then
'Guardado masivo cuando sea SubProyecto "Todos"
If Not objEstatusOC.AddEstatusUsuarios(CveEstatus, Row.DataKey("CveUsuario").ToString.ToEntero, CveSubProyecto) Then
HuboErrores = True
Exit For
End If
End If
Next
Next
Next
If Not HuboErrores Then
objEstatusOC.Commit()
Alert("Se guardaron los Cambios exitosamente", TipoMensaje.MsgInformacion)
If Not HuboErrores Then
objEstatusOC.Commit()
Alert("Se guardaron los Cambios exitosamente", TipoMensaje.MsgInformacion)
Else
objEstatusOC.RollBack()
Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError)
End If
objEstatusOC.Dispose()
Else
objEstatusOC.RollBack()
Alert("Ocurrió un error al guardar los cambios. Por favor vuelva a intentar", TipoMensaje.MsgError)
Alert("Se debe seleccionar un SubProyecto valido", TipoMensaje.MsgAdvertencia)
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
End If
objEstatusOC.Dispose()
End Sub
Private Sub EstatusUsuariosGridActualizar()
DtEstatusUsuariosAsociados = Nothing
Prueba.DataBind()
For Contador As Integer = (Prueba.Columns.Count - 1) To 0 Step -1
Prueba.Columns.RemoveAt(Contador)
GvUsuariosEstatus.DataBind()
For Contador As Integer = (GvUsuariosEstatus.Columns.Count - 1) To 0 Step -1
GvUsuariosEstatus.Columns.RemoveAt(Contador)
Next
End Sub
Private Sub CargarProyectos()
CboProyecto.DataSource = GlobalDTProyectos(UsuarioActual.Empresa.CveEmpresa, 1).FiltraParametros("", "", {"CveProyecto", "Proyecto"})
CboProyecto.DataBind()
CboProyecto.Items.Insert(0, New ListItem("Seleccione el Proyecto", "-1"))
End Sub
Private Sub CargaSubProyectos()
CboSubProyecto.DataSource = GlobalDTSubProyectos(CboProyecto.SelectedValue.ToEntero)
CboSubProyecto.DataBind()
CboSubProyecto.Items.Insert(0, New ListItem("Seleccione el SubProyecto", "-2"))
End Sub
Private Sub Proyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboProyecto.SelectedIndexChanged
CargaSubProyectos()
'CargaDatos()
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
UpGvUsuariosEstatus.Update()
End Sub
Private Sub SubProyecto_SelectedIndexChanged(sender As Object, e As EventArgs) Handles CboSubProyecto.SelectedIndexChanged
EstatusUsuariosGridActualizar()
CargarTodosLosDatos()
End Sub
#End Region
End Class

View File

@@ -413,11 +413,14 @@ Partial Class OS_OrdenesServicios
#Region "C A R G A S"
Private Sub CargaSubProyecto(Optional CveSubProyecto As Integer = -1)
DdlSubProyecto.Items.Clear()
DdlSubProyecto.SelectedValue = Nothing
DdlSubProyecto.DataSource = GlobalDTSubProyectos(-1, CveEmpresa:=UsuarioActual.CveEmpresa)
DdlSubProyecto.DataBind()
If CveSubProyecto > 0 Then DdlSubProyecto.SelectedValueExist(CveSubProyecto)
Dim ObjOS As New ClsOS
If ObjOS.GetSubProyectosEstatusInicial(UsuarioActual.CveUsuario, 1, UsuarioActual.CveEmpresa) Then
DdlSubProyecto.Items.Clear()
DdlSubProyecto.SelectedValue = Nothing
DdlSubProyecto.DataSource = ObjOS.DtResultados.FiltraParametros("", "", {"CveSubProyecto", "SubProyecto"})
DdlSubProyecto.DataBind()
If CveSubProyecto > 0 Then DdlSubProyecto.SelectedValueExist(CveSubProyecto)
End If
End Sub
Private Sub CargaTiposOrden()
Dim ObjOS As New ClsOS

View File

@@ -2829,12 +2829,12 @@ Partial Class Sistemas_UsuarioDetalle
If CveEstatus > 0 Then
If Row.FCCheckBox("chkEstatus" + r.ToString).Checked = False And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero > 0 Then
'Eliminar el registro existente
If Not ObjOS.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero, -1) Then
If Not ObjOS.RemoveEstatusUsuarios(Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero, -1, -1) Then
HuboErrores = True
Exit For
End If
ElseIf Row.FCCheckBox("chkEstatus" + r.ToString).Checked = True And Row.FCHiddenField("hdnCveEstatusUsuarios" + r.ToString).Value.ToEntero = -1 Then
If Not ObjOS.AddEstatusUsuarios(CveEstatus, CveUsuario, CveSubProyecto) Then
If Not ObjOS.AddEstatusUsuarios(CveEstatus, CveUsuario, CveSubProyecto, UsuarioActual.CveUsuario) Then
HuboErrores = True
Exit For
End If

View File

@@ -2517,6 +2517,18 @@ Partial Class PV
ObjFactura.DtInventario = DtInv.FiltraParametros("Seleccionado = 1")
End If
'VALIDA ENTREGA POR ADELANTADO
If UsuarioActual.Empresa.Funcionalidad(145) = "1" Then
'INCRUSTAMOS ALMACEN ENTREGA POR ADELANTADO CUANDO SEA REMISION Y NO TRAIGA ASIGNADO POR EL USUARIO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
ObjFactura.CveAlmacenTraspasoDestino = GlobalDTAlmacen(UsuarioActual.CveEmpresa).FiltroPrimeroValor("CveAlmacen", $"CveTipoAlmacen = 10 AND CveSubProyecto = {DdlSubProyectoDatos.SelectedValue}").ToString.ToEntero
End If
'SI LA SUCURSAL NO TIENE ENTREGA POR ADELANTADO
If ObjFactura.CveAlmacenTraspasoDestino <= 0 And ObjFactura.TipoDocto = "Rem" Then
ErrorList.Add("Ocurrió un error al seleccionar el almacen de entrega por adelantado de la sucursal.")
End If
End If
End Sub

View File

@@ -5807,8 +5807,16 @@
</div>
<div class="row form-group">
<div class="col-md-2">
<asp:Literal ID="LtlTitleImportesRem" runat="server" Visible="false" Text="Importe Remisiones:"></asp:Literal>
</div>
<div class="col-md-4">
<div id="DivTxtRemNC" runat="server" visible="false">
<div class="input-group">
<span class="input-group-addon">$</span>
<asp:TextBox ID="TxtImportesRemisionesNC" ClientIDMode="Static" Text="0.00" CssClass="form-control input-sm" runat="server" Enabled="false"/>
</div>
<ajax:FilteredTextBoxExtender ID="FTIRNC" runat="server" TargetControlID="TxtImportesRemisionesNC" FilterType="Custom, Numbers" ValidChars=".," />
</div>
</div>
<div class="col-md-2">
Por Porcentaje:
@@ -5823,6 +5831,17 @@
<ajax:ValidatorCalloutExtender ID="VCENCPorcentaje" runat="server" HighlightCssClass="vco" TargetControlID="RVNCPorcentaje" Width="300px"></ajax:ValidatorCalloutExtender>
</div>
</div>
<div id="DivBtnRemNC" runat="server" visible="false" class="row form-group">
<div class="col-md-2">
</div>
<div class="col-md-4">
<button type="button" class="btn btn-primary" data-toggle="modal" data-target="#ModalAplicarRemisionesNC">
Aplicar Remisiones
</button>
</div>
<div class="col-md-6">
</div>
</div>
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusqueda10" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusqueda10','{0}')", GvCxC.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusqueda10','{0}')", GvCxC.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
@@ -5916,6 +5935,61 @@
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%--APLICAR REMISIONES DE NC--%>
<div id="ModalAplicarRemisionesNC" class="modal ADS fade" role="dialog">
<asp:UpdatePanel ID="UpModalRemisionesNC" class="modal-dialog rowpadding" tabindex="-1" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal">&times;</button>
<h4 class="modal-title">Aplicar Remisiones de Nota de Crédito</h4>
</div>
<div class="modal-body">
<div class="row" style="margin-right: 10px; margin-top: 18px;" align="right">
<input type="text" id="TxtBusquedaRemNC" class="form-control input-sm" onkeyup="<%= String.Format("FiltrarTabla('TxtBusquedaRemNC','{0}')", GvRemisionesNC.ClientID) %>" style="display: inline-block; margin-right: -20px; width: 150px;" />
<a href="javascript:;" onclick="<%= String.Format("FiltrarTabla('TxtBusquedaRemNC','{0}')", GvRemisionesNC.ClientID) %>" style="margin-top: -3px;" class="btn btn-circle btn-sm label-info"><i class="icon-magnifier"></i></a>
</div>
<div class="row" style="max-height: 10px">
<div class="col-md-12" style="height: 440px; overflow: auto">
<asp:GridView ID="GvRemisionesNC" runat="server" AutoGenerateColumns="False"
DataKeyNames="CveVenta" CssClass="table table-striped table-advance table-hover Widthall mysmallbtn" GridLines="None">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:CheckBox ID="ChkAplicar" runat="server" />
</ItemTemplate>
</asp:TemplateField>
<asp:HyperLinkField DataNavigateUrlFields="CveVenta" Target="_blank" DataNavigateUrlFormatString="/Ventas/Ventas.aspx?CveVenta={0}" DataTextField="SerieFolio" HeaderText="Folio" ItemStyle-Width="150px" ItemStyle-HorizontalAlign="Left" />
<asp:BoundField HeaderText="Fecha" DataField="Fecha" DataFormatString="{0:d}" ItemStyle-HorizontalAlign="Center" />
<asp:TemplateField HeaderText="Total" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtlTotal" runat="server" Text='<%# Eval("Original", "{0:N2}") %>'></asp:Literal>
<asp:Literal ID="LtlAbrev" runat="server" Text='<%# Eval("Abreviatura") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Saldo" ItemStyle-HorizontalAlign="Right">
<ItemTemplate>
<asp:Literal ID="LtlSaldo" runat="server" Text='<%# Eval("Saldo", "{0:N2}") %>'></asp:Literal>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField>
<ItemTemplate>
<asp:TextBox ID="TxtImporte" CssClass="myvalue" runat="server" Width="75px" />
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</div>
</div>
<div class="modal-footer">
<button id="CancelarAplicarRemNC" type="button" class="btn btn-default" data-dismiss="modal">Cerrar</button>
<asp:Button Text="Aplicar Remisiones" ID="BtnAplicarRemisionNC" OnClick="BtnAplicarRemisionNC_Click" CssClass="btn btn-primary" runat="server" />
</div>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</div>
<%-- MODAL APLICAR DEVOLUCIONES --%>
<div class="modal ADS fade" id="DivAplicaDevolucion" role="dialog">
@@ -6290,6 +6364,12 @@
$get('TxtTotalGv').value = FormatoNumero(TotalImportes, 2);
$get('TxtNCImporte').value = FormatoNumero(total, 2);
if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
{
CompararNC();
}
}
function CalculaTotalChk(Total, SubTotal, TxtTotalGv, TxtImporte, Saldo, Porcentaje, Chk) {
@@ -6314,6 +6394,11 @@
$get('TxtNCImporte').value = FormatoNumero(ToDouble($get('TxtNCImporte').value) - ToDouble(TxtImporte.value), 2);
TxtImporte.value = "";
}
if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
{
CompararNC();
}
}
function LimitaCantidadNCMasivo(Porcentaje, Saldo, Total, Subtotal, TxtTotalGv, TxtTotal, Chk, TxtImporte) {
@@ -6354,6 +6439,10 @@
TxtTotal.value = FormatoNumero(TotalConPorcentaje, 2);
if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
{
CompararNC();
}
}
function displayToastr(x) {
@@ -7328,5 +7417,33 @@
$('#divAgregarCliente').modal('hide');
}
function CompararNC() {
var TotalRem = ToDouble(document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').value);
var TotalNC = ToDouble(document.getElementById('<%= TxtNCImporte.ClientID %>').value);
if (TotalRem == TotalNC) {
document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.border = "2px solid #04B431";
document.getElementById('<%= TxtNCImporte.ClientID %>').style.border = "2px solid #04B431";
document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.color = "";
document.getElementById('<%= TxtNCImporte.ClientID %>').style.color = "";
}
else {
document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.border = "2px solid #ff0000";
document.getElementById('<%= TxtNCImporte.ClientID %>').style.border = "2px solid #ff0000";
document.getElementById('<%= TxtImportesRemisionesNC.ClientID %>').style.color = "#ff0000";
document.getElementById('<%= TxtNCImporte.ClientID %>').style.color = "#ff0000";
}
}
function CerrarModalRemNC() {
if ('<%= UsuarioActual.Empresa.Funcionalidad(344) %>' == '1')
{
CompararNC();
}
$('#ModalAplicarRemisionesNC').modal('hide');
}
</script>
</asp:Content>

View File

@@ -257,6 +257,14 @@ Partial Class Ventas
ViewState("RemisionesLista") = value
End Set
End Property
Private Property ListaRemisionesNC As List(Of Modelos.Factura)
Get
Return If(IsNothing(ViewState("ListaRemisionesNC")), Nothing, CType(ViewState("ListaRemisionesNC"), List(Of Modelos.Factura)))
End Get
Set(value As List(Of Modelos.Factura))
ViewState("ListaRemisionesNC") = value
End Set
End Property
Private Property Pedidos2Lista As List(Of Integer)
Get
Return If(IsNothing(ViewState("Pedidos2Lista")), Nothing, CType(ViewState("Pedidos2Lista"), List(Of Integer)))
@@ -1733,6 +1741,9 @@ Partial Class Ventas
If UsuarioActual.Empresa.Funcionalidad(344).ToString = "1" Then
DdlTipoComprobante.Items.Insert(DdlTipoComprobante.Items.Count, New ListItem("NC de Remisión", "RNC"))
DivBtnRemNC.Visible = True
DivTxtRemNC.Visible = True
LtlTitleImportesRem.Visible = True
End If
If UsuarioActual.Empresa.Funcionalidad(528) = "1" Then 'FUNCIONALIDAD. DE REGISTRO DE CUENTA PREDIAL.
@@ -4937,7 +4948,7 @@ Partial Class Ventas
Dim ObjCliente As New ClsClientes()
If ObjCliente.GetClientes(CveCliente, "-1", "-1", "-1", "-1", "-1", "-1", -1, UsuarioActual.CveEmpresa) Then
If ObjCliente.DtResultados.Rows.Count > 0 Then
If UsuarioActual.CveEmpresa.Contiene(72, 119) AndAlso ObjCliente.DtResultados.Rows(0)("PermiteCredito").ToString = "False" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
If UsuarioActual.Empresa.Funcionalidad(570) = "1" AndAlso ObjCliente.DtResultados.Rows(0)("PermiteCredito").ToString = "False" AndAlso DdlTipoComprobante.SelectedValue.Contiene("Ing", "Ant", "Rem") AndAlso CveVenta < 1 Then
RBLPago.SelectedValue = "2"
RBLPago.Items(0).Enabled = False
RBLPago_SelectedIndexChanged(Nothing, Nothing)
@@ -9303,7 +9314,7 @@ Partial Class Ventas
ViewState("SeGuardoPrePoliza") = True
End If
Case 277 'Remisión del cliente
Case 277 'Remisión de NC
If ObjFactura.TipoDocto = "RNC" Then
importeMovimiento = (ObjFactura.Total - TotalOtrosConceptos) * ValorMultiplicador
@@ -9788,6 +9799,42 @@ Partial Class Ventas
Next
If UsuarioActual.Empresa.Funcionalidad(344) = "1" Then
If ListaRemisionesNC IsNot Nothing Then
For Each ObjRNC As Modelos.Factura In ListaRemisionesNC
If ObjRNC.TipoDocto = "RNC" Then
importeMovimiento = ObjRNC.TotalRemNCAplicado * -1
importeMX = importeMovimiento * tipoCambio * Multiplicador
FechaMovimiento = ObjFactura.FechaPago
CveSubProyectoContabilizar = CveSubProyectoVenta
If tipoCambio > 1 Then Concepto += $" TC:{tipoCambio} ${importeMovimiento.FormatoNumero(2)}"
If tipoCambio = 1 Then
IdCtaContable = ObjFactura.Cliente.IdCtaContClientes
CveCuenta = ObjFactura.Cliente.CveCuentaClientes
Else
IdCtaContable = ObjFactura.Cliente.IdCtaContMonedaExtranjera
CveCuenta = ObjFactura.Cliente.CveCuentaMonedaExtranjera
End If
IdCtaContableCliente = IdCtaContable
CveCuentaCliente = CveCuenta
If ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, TipoMovimiento, importeMovimiento, Referencia, 277, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, Not TipoMovimiento, importeMovimiento, Referencia, 278, Concepto, FechaMovimiento, IdCtaContable, -1, CveVenta:=ObjRNC.CveVenta, CveVentaAmortizacion:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=importeMX, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuenta, Contabilizable:=False, CveSubProyecto:=CveSubProyectoContabilizar) Then
ErrorPrepoliza = True
End If
Else
ErrorPrepoliza = True
End If
importeMovimiento = 0
End If
Next
End If
End If
If sumaAmorticaciones <> 0 Then
If Not ObjConta.AddPrePolizasDetalle(ObjFactura.CvePrePoliza, True, sumaAmorticaciones, Referencia, 251, Concepto, FechaMovimiento, IdCtaContClientes, -1, CveVenta:=ObjFactura.CveVenta, CveCliente:=ObjFactura.CveCliente, CveIE:=CveIE, ImporteMX:=sumaAmorticaciones * tipoCambio, ImporteME:=If(tipoCambio = 1, 0, importeMovimiento), CveCuenta:=CveCuentaCliente, CveSubProyecto:=CveSubProyectoContabilizar, Contabilizable:=Contabilizable) Then
ErrorPrepoliza = True
@@ -20196,6 +20243,9 @@ Partial Class Ventas
End If
RVTxtNCImporte.MaximumValue = ((PorcentajeMaximo * TxtTotal.Text.ToDouble) / 100).FormatoNumero().ToDouble.ToString
'RVIRNC.MinimumValue = RVTxtNCImporte.MinimumValue
'RVIRNC.MaximumValue = RVTxtNCImporte.MaximumValue
UpAplicarNC.Update()
End Sub
@@ -20217,13 +20267,14 @@ Partial Class Ventas
'LkNotaCredito.Visible = False
DivGvCxC.Visible = True
CargaCxC()
CargaRNC()
TxtNCPorcentaje.Attributes.Add("onkeyup", "CalculaImporteNCMasivo();")
TxtNCImporte.Text = "0.00"
TxtNCImporte.Enabled = False
RVTxtNCImporte.Enabled = False
UpAplicarNC.Update()
UpModalRemisionesNC.Update()
End Sub
Private Sub CargaCxC()
@@ -20235,6 +20286,14 @@ Partial Class Ventas
ObjMovtos.Dispose()
GvCxC.DataBind()
End Sub
Private Sub CargaRNC()
Dim ObjMovtos As New ClsMovimientos()
If ObjMovtos.GetCxCClienteDetalle(ViewState("CveCliente").ToString.ToEntero, "-1", "-1", -1, -1, UsuarioActual.CveEmpresa, -1, TipoDocto:="RNC") Then
GvRemisionesNC.DataSource = ObjMovtos.DtResultados.FiltraParametros("Tipo = 'Act' AND CveVenta > 0", "Moneda, OrdenVencimiento, FechaVencimiento")
End If
ObjMovtos.Dispose()
GvRemisionesNC.DataBind()
End Sub
Protected Sub GvCxC_RowDataBound(sender As Object, e As GridViewRowEventArgs)
If e.Row.RowType = DataControlRowType.DataRow Then
@@ -20258,6 +20317,14 @@ Partial Class Ventas
Protected Sub BtnAplicarNC_Click(sender As Object, e As EventArgs)
If UsuarioActual.Empresa.Funcionalidad(344) = "1" Then
If TxtImportesRemisionesNC.Text.ToDecimal() <> TxtNCImporte.Text.ToDecimal() Then
Alert($"Los importes no coinciden", TipoMensaje.MsgAdvertencia)
Exit Sub
End If
End If
Dim DrPS = GlobalDTPS(UsuarioActual.CveEmpresa, CvePS:=DdlNCPS.SelectedValue.ToEntero).FiltroPrimero("")
If DrPS Is Nothing Then
Alert("Ocurrió un error al cargar la información del producto. Por favor comuniquese con asistencia SIG", TipoMensaje.MsgError)
@@ -22955,4 +23022,38 @@ Partial Class Ventas
#End Region
Protected Sub BtnAplicarRemisionNC_Click(sender As Object, e As EventArgs)
If ListaRemisionesNC Is Nothing Then
ListaRemisionesNC = New List(Of Modelos.Factura)
Else
ListaRemisionesNC.Clear()
End If
Dim TotalRemNCAplicado As Decimal = 0
For Each GvRow As GridViewRow In GvRemisionesNC.Rows
If GvRow.RowType = DataControlRowType.DataRow Then
If GvRow.FCCheckBox("ChkAplicar").Checked Then
Dim RemNC As New Modelos.Factura(UsuarioActual, GvRow.DataKey("CveVenta").ToEntero(), UsuarioActual.CveEmpresa)
RemNC.TotalRemNCAplicado = GvRow.FCTextBox("TxtImporte").Text.ToDecimal()
TotalRemNCAplicado += RemNC.TotalRemNCAplicado
If RemNC.TotalRemNCAplicado <= 0 Then
Alert($"Debe asignar un importe en la siguiente remisión: <b>{RemNC.SerieFolio}</b>", TipoMensaje.MsgAdvertencia)
ListaRemisionesNC.Clear()
Exit Sub
End If
ListaRemisionesNC.Add(RemNC)
End If
End If
Next
TxtImportesRemisionesNC.Text = TotalRemNCAplicado.FormatoNumero
UpModalRemisionesNC.Update()
UpAplicarNC.Update()
RegistraScript("CerrarModalRemNC();")
End Sub
End Class