private async Task SetRequisicionContestacionCandidato(RequisicionDetalle requisicion, bool aceptaPropuesta) { var statusPropuesta = aceptaPropuesta ? EEstadoCandidato.AceptaPropuesta : EEstadoCandidato.RechazaPropuesta; Candidato candidato = null; if (requisicion != null) { candidato = await this.candidatoService.GetCandidatoIdoneoAsync(requisicion.Id).ConfigureAwait(false); if (candidato?.CandidatoDetalle != null) { candidato.CandidatoDetalle.StatusSeleccion = statusPropuesta; } if (statusPropuesta == EEstadoCandidato.AceptaPropuesta) { await this.NotificarPropuestaAceptadaAsync(requisicion); } await this.ResetearPropuestaRequisicion(requisicion, aceptaPropuesta).ConfigureAwait(false); } if (candidato != null) { await this.candidatoService.UpdateCandidatoAsync(candidato.Id, candidato).ConfigureAwait(false); } }
/// <summary> /// Método encargado de Cargar los Detalles de las Requisiciones /// </summary> /// <param name="id_requisicion">Requisición</param> private void cargaDetallesRequisicion(int id_requisicion) { //Obteniendo Detalles using (DataTable dtDetallesReq = RequisicionDetalle.ObtieneDetallesRequisicion(this._id_requisicion)) { //Validando que Existen Detalles if (TSDK.Datos.Validacion.ValidaOrigenDatos(dtDetallesReq)) { //Cargando GridView TSDK.ASP.Controles.CargaGridView(gvRequisicionDetalles, dtDetallesReq, "NoDetalle", ""); //Añadiendo Tabla this._dt = dtDetallesReq; } else { //Inicializando GridView TSDK.ASP.Controles.InicializaGridview(gvRequisicionDetalles); //Añadiendo Tabla this._dt = null; } } //Sumando Totales sumaTotalesRequisicion(); }
private async Task ResetearPropuestaRequisicion(RequisicionDetalle requisicion, bool aceptaPropuesta) { if (aceptaPropuesta) { return; } if (requisicion != null) { await this.candidatoService.ResetCandidatoIdoneoAsync(requisicion.RequisicionId).ConfigureAwait(false); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkEditar_Click(object sender, EventArgs e) { //Validando que Existen Registros if (gvRequisicionDetalles.DataKeys.Count > 0) { //Seleccionando Fila TSDK.ASP.Controles.SeleccionaFila(gvRequisicionDetalles, sender, "lnk", false); //Instanciando Detalle using (RequisicionDetalle rd = new RequisicionDetalle(Convert.ToInt32(gvRequisicionDetalles.SelectedDataKey["NoDetalle"]))) { //Validando que Exista el Registro if (rd.IdDetalleRequisicion > 0) { //Asignando Valores lblNoDetalle.Text = rd.IdDetalleRequisicion.ToString(); ddlEstatusDetalle.SelectedValue = rd.IdEstatus.ToString(); txtCantidadDet.Text = rd.Cantidad.ToString(); //Instanciando Producto using (Producto pro = new Producto(rd.IdProducto)) { //Validando que Exista el Producto if (pro.id_producto > 0) { //Asignando Valor txtProductoDet.Text = pro.descripcion + "[" + pro.sku + "]" + " ID:" + pro.id_producto.ToString(); } else { //Limpiando Valor txtProductoDet.Text = ""; } } } else { //Asignando Valores lblNoDetalle.Text = "Por Asignar"; txtCantidadDet.Text = "0.00"; //Mostrando Mensaje ScriptServer.MuestraNotificacion(this, "No se pudo acceder al Registro", ScriptServer.NaturalezaNotificacion.Error, ScriptServer.PosicionNotificacion.AbajoDerecha); //Limpiando Controles limpiaControlesDetalles(); } } } }
private async Task NotificarAsync( Candidato candidato, ETipoEvento tipoEvento, RequisicionDetalle requisicion = null) { if (candidato.CandidatoUser == null) { candidato = await this.candidatoService.GetCandidatoByIdAsync(candidato.Id).ConfigureAwait(false); } if (candidato.CandidatoUser == null) { return; } var notificar = new NotificacionViewModel { ToMail = new List <string> { candidato.CandidatoUser.Email }, TipoEvento = tipoEvento, Item = candidato, Body = string.Empty }; if (requisicion == null) { notificar.Item = candidato; } else { notificar.Item = new { candidato, requisicion }; } var service = this.notificarService; if (service != null) { await service.NotificarAsync(notificar).ConfigureAwait(false); } }
private async Task NotificarPropuestaAceptadaAsync(RequisicionDetalle requisicion) { var candidato = await this.candidatoService.GetCandidatoIdoneoAsync(requisicion.RequisicionId) .ConfigureAwait(false); var listUsuario = new List <User>(); var userNameAdministradorExpediente = this.configuracionGlobal.Configuration <string>("UsersAdministradorExpediente"); foreach (var item in userNameAdministradorExpediente.Split(";")) { var user = await this.userService.GetUserByUserNameAsync(item); listUsuario.Add(user); } var notificar = new NotificacionViewModel { ToMail = listUsuario.Select(u => u.Mail).ToList(), TipoEvento = ETipoEvento.NotificarPropuestaAceptada, Item = new { candidato, requisicion = requisicion.Requisicion, user = listUsuario }, Body = string.Empty }; var service = this.notificarService; if (service != null) { await service.NotificarAsync(notificar).ConfigureAwait(false); } }
/// <summary> /// /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void lnkEliminar_Click(object sender, EventArgs e) { //Validando que Existen Registros if (gvRequisicionDetalles.DataKeys.Count > 0) { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Seleccionando Fila TSDK.ASP.Controles.SeleccionaFila(gvRequisicionDetalles, sender, "lnk", false); //Instanciando Detalle using (RequisicionDetalle rd = new RequisicionDetalle(Convert.ToInt32(gvRequisicionDetalles.SelectedDataKey["NoDetalle"]))) { //Validando que Exista el Registro if (rd.IdDetalleRequisicion > 0) { //Deshabilitando Detalle result = rd.DeshabilitaDetalleRequisicion(((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } //Validando que la Operación haya sido Exitosa if (result.OperacionExitosa) { //Limpiando Controles limpiaControlesDetalles(); //Cargando Detalles cargaDetallesRequisicion(this._id_requisicion); } //Mostrando Mensaje ScriptServer.MuestraNotificacion(gvRequisicionDetalles, result, ScriptServer.PosicionNotificacion.AbajoDerecha); } }
/// <summary> /// Método encargado de Guardar el Detalle de la Requisición /// </summary> private void guardaDetalle() { //Declarando Objeto de Retorno RetornoOperacion result = new RetornoOperacion(); //Validando que Exista un Registro Seleccionado if (gvRequisicionDetalles.SelectedIndex != -1) { //Instanciando Detalle using (RequisicionDetalle rd = new RequisicionDetalle(Convert.ToInt32(gvRequisicionDetalles.SelectedDataKey["NoDetalle"]))) { //Validando que exista el Detalle if (rd.Habilitar && (RequisicionDetalle.EstatusDetalle)rd.IdEstatus == RequisicionDetalle.EstatusDetalle.Registrado) { //Instancia a la clase producto de almacen using (SAT_CL.Almacen.Producto prod = new SAT_CL.Almacen.Producto(Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtProductoDet.Text, "ID:", 1, "0")))) { //Validando que exista el producto if (prod.id_producto > 0) { //Editando Detalle result = rd.EditaDetalleRequisicion((RequisicionDetalle.EstatusDetalle)rd.IdEstatus, Convert.ToDecimal(txtCantidadDet.Text), prod.id_unidad, prod.id_producto, prod.sku, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } } else { //Instanciando Excepción result = new RetornoOperacion("El Detalle debe de estar 'Registrado' para su Edición"); } } } else { //Instancia a la clase requisicion using (SAT_CL.Almacen.Requisicion req = new SAT_CL.Almacen.Requisicion(this._id_requisicion)) { //Si el estatus del registro de requisición es:capturado, por autorizar, pendiente almacen, abastecido, abastecido parcial y cancelas if (req.id_estatus != 3) { //Instancia a la claso producto de alamcen using (SAT_CL.Almacen.Producto prod = new SAT_CL.Almacen.Producto(Convert.ToInt32(TSDK.Base.Cadena.RegresaCadenaSeparada(txtProductoDet.Text, "ID:", 1, "0")))) { //Insertando Detalle result = RequisicionDetalle.InsertaDetalleRequisicion(this._id_requisicion, Convert.ToDecimal(txtCantidadDet.Text), prod.id_unidad, prod.id_producto, prod.sku, ((SAT_CL.Seguridad.Usuario)Session["usuario"]).id_usuario); } } //En caso contrario else { //Envia un mensaje de error result = new RetornoOperacion("No se puede agregar producto ya que la requisición fue solicitada."); } } } //Validando que la Operación fuese Exitosa if (result.OperacionExitosa) { //Limpiando Controles limpiaControlesDetalles(); //Habilitando Controles habilitaControlesDetalles(true); //Cargando Detalles cargaDetallesRequisicion(this._id_requisicion); } //Mostrando Mensaje de Operación ScriptServer.MuestraNotificacion(btnGuardarDet, result, ScriptServer.PosicionNotificacion.AbajoDerecha); }