Exemple #1
0
        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);
            }
        }
Exemple #2
0
        /// <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();
        }
Exemple #3
0
        private async Task ResetearPropuestaRequisicion(RequisicionDetalle requisicion, bool aceptaPropuesta)
        {
            if (aceptaPropuesta)
            {
                return;
            }

            if (requisicion != null)
            {
                await this.candidatoService.ResetCandidatoIdoneoAsync(requisicion.RequisicionId).ConfigureAwait(false);
            }
        }
Exemple #4
0
        /// <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();
                    }
                }
            }
        }
Exemple #5
0
        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);
            }
        }
Exemple #6
0
        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);
            }
        }
Exemple #7
0
        /// <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);
            }
        }
Exemple #8
0
        /// <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);
        }