コード例 #1
0
        public TareaVM PostActualizar([FromBody] ActualizarBindingModel tarea, [ValueProvider(typeof(UsuarioActualValueProviderFactory))] UsuarioActual usuarioActual)
        {
            try
            {
                var tareaBD = ConvertidosDeEntidades.ObtenerTareaBD(tarea);
                tareaBD.Ci2UsuarioId = usuarioActual.IdDeUsuarioActual;

                UnidadDeTrabajo.TareaRepositorio.AgregarOActualizar(tareaBD);

                var tareaResultante = ConvertidosDeEntidades.ObtenerTareaVM(tareaBD, usuarioActual.NombreDeUsuarioActual);

                return(tareaResultante);
            }
            catch (TareaNoAutorizadaException ex)
            {
                var msg = new HttpResponseMessage(HttpStatusCode.Unauthorized)
                {
                    ReasonPhrase = ex.Message
                };
                throw new HttpResponseException(msg);
            }
            catch (Exception)
            {
                throw;
            }
        }
コード例 #2
0
        private void btnCrearOperacion_Click(object sender, EventArgs e)
        {
            var tipo = ((Control)sender).Name == "btnCrearExtraccion" ? "Extracción" : "Refuerzo";

            if (UsuarioActual.TieneRol("Administrador") || UsuarioActual.TieneRol("SuperAdministrador"))
            {
                EditarOperacion(0, UsuarioActual.UsuarioId, tipo);
            }
            else
            {
                using (var loginForm = new frmLogin(new List <string>()
                {
                    "Administrador", "SuperAdministrador"
                }))
                {
                    var loginResult = loginForm.ShowDialog();
                    if (loginResult == DialogResult.OK)
                    {
                        EditarOperacion(0, UsuarioActual.UsuarioTemporalId, tipo);
                    }
                }
            }
            if (tipo == "Refuerzo")
            {
                dvgRefuerzos.Focus();
            }
            else
            {
                dvgExtracciones.Focus();
            }
        }
コード例 #3
0
        public void PostActualizarTest_ActualizarTareaDeOtroUsuario_LlammadoFallido()
        {
            using (var controlador = new TareasController())
            {
                var usuarioAutor = ObtenerNombreDeUsuario();

                var tareaCBM = GenerarCrearBindingModel();

                var tareasVM = controlador.PostCrear(tareaCBM, usuarioAutor);

                var tareaABM = GenerarActualizarBindingModelDesdeVM(tareasVM);

                var fecha = DateTime.Now;

                tareaABM.FechaVencimiento = fecha;

                var usuarioDiferenteAutor = new UsuarioActual()
                {
                    IdDeUsuarioActual     = "123",
                    NombreDeUsuarioActual = usuarioAutor.NombreDeUsuarioActual + "1"
                };

                var tareasVM2 = controlador.PostActualizar(tareaABM, usuarioDiferenteAutor);

                Assert.Fail();
            }
        }
コード例 #4
0
        public IActionResult LoginWithEmail(Persona p)
        {
            var x = DataAccess.PersonaDataService.GetPersonaDataService().GetPersonaWithEmail(p);

            if (x.Count != 0)
            {
                //return Redirect("https://www.w3schools.com");
                //Response.Redirect("Contact");
                //Response.Redirect("~/HomeController/Contact");
                //return View("Contact");
                //esto regresa a ajax function
                //return Json(new { success = true, responseText = "Done" });
                if (x[0].contraseña == p.contraseña)
                {
                    _usuario = x[0];
                    _usuarioActual.SetUserActual(_usuario);
                    UsuarioActual.GetUsuarioActual().ActualizarNotificaciones();
                    return(Json(new { success = true, redirecturl = Url.Action("Contact", "Home"), responseText = "Done", usuario = _usuario }));
                    //return Json(new { success = true, redirecturl = Url.Action("About", "Home"), responseText = "Done", usuario = _usuario });
                }
                else
                {
                    //error en contraseña
                }
            }
            return(Content("Error"));
        }
コード例 #5
0
        public override bool SoloLectura(string campo)
        {
            if (campo == "Unidades" || campo == "DivisorUnidades" || campo == "Aceptada" ||
                campo == "AceptadaGeo" || campo == "Imprimir")
            {
                if (UsuarioActual.Permiso("BD", "PresupuestoVersion", "ModificarVersionAceptada"))
                {
                    return(false);
                }
                else
                {
                    return(!Nuevo && !MetodoPermitido("ModificarLineas"));
                }
            }

            if (campo == "Concepto" || campo == "Precio")
            {
                return(!Nuevo && !MetodoPermitido("ModificarLineas"));
            }
            if (campo == "Codigo" || campo == "CodigoENAC" || campo == "Total" || campo == "Material")
            {
                return(true);
            }
            else if (campo == "MarcarParaEliminar")
            {
                return(false);
            }
            else
            {
                return(base.SoloLectura(campo));
            }
        }
コード例 #6
0
        private void tsmGestionDeMercaderias_Click(object sender, EventArgs e)
        {
            IngresoProductos ventanaIngresoDeProductos;

            if (UsuarioActual.TieneRol("Administrador") || UsuarioActual.TieneRol("Encargado") || UsuarioActual.TieneRol("SuperAdministrador"))
            {
                ventanaIngresoDeProductos = new IngresoProductos(UsuarioActual.UsuarioId);
                AbrirTab(ventanaIngresoDeProductos);
            }
            else
            {
                using (var loginForm = new frmLogin(new List <string>()
                {
                    "Encargado", "Administrador", "SuperAdministrador"
                }))
                {
                    var loginResult = loginForm.ShowDialog();
                    if (loginResult == DialogResult.OK)
                    {
                        ventanaIngresoDeProductos = new IngresoProductos(UsuarioActual.UsuarioTemporalId);
                        AbrirTab(ventanaIngresoDeProductos);
                    }
                }
            }
        }
コード例 #7
0
        public IActionResult VerPerfilAlClick(AdapterDesc idPersona)
        {
            var id = Convert.ToInt32(idPersona.Descripcion);

            UsuarioActual.GetUsuarioActual().ObtenerPerfilAmigo(id);
            return(Json(new { success = true, redirecturl = Url.Action("Perfil", "Home") }));
        }
コード例 #8
0
        public ActionResult EnviarMensaje(MensajeModel model)
        {
            var mensaje = new MensajeTicketError()
            {
                Fecha         = DateTime.Now,
                Texto         = model.NuevoMensaje,
                TicketErrorId = model.TicketId,
                UsuarioId     = UsuarioActual.Usuario.UsuarioId,
                EsDeAdmin     = UsuarioActual.EsRol("SuperAdministrador")
            };

            Uow.MensajesTicketError.Agregar(mensaje);
            Uow.Commit();
            var ticket = Uow.TicketErrores.Obtener(model.TicketId);
            var emails = UsuarioActual.EsRol("SuperAdministrador")
                            ? new List <string>()
            {
                ticket.Email
            }
                            : ConfigurationManager.AppSettings["ReportarErrorDevelopersEmails"].Split(',').ToList();

            var data = new NotificacionTicketModel()
            {
                Emails   = emails,
                Mensaje  = mensaje.Texto,
                TicketId = mensaje.TicketErrorId,
                Titulo   = String.Format("[{0}] {1}", ticket.TicketErrorId, ticket.Titulo),
                Fecha    = String.Format("{0} {1}", DateTime.Now.ToShortDateString(), DateTime.Now.ToShortTimeString())
            };
            var result = _notificationService.EnviarNotificacionTicket(data, AppSettings.BaseURL);

            return(Json(new { success = result.Status == EmailResultStatus.Sent }, JsonRequestBehavior.AllowGet));
        }
コード例 #9
0
        public ActionResult Editar(Cuenta cuenta)
        {
            if (cuenta.SincronizarAutomaticamente.GetValueOrDefault() && cuenta.IntervaloSincronizacion == null)
            {
                ModelState.AddModelError("IntervaloSincronizacion", "Debe ingresar un intervalo de sincronización");
            }

            if (!ModelState.IsValid)
            {
                return(PartialView(cuenta));
            }

            Uow.Cuentas.Modificar(cuenta);
            Uow.Commit();
            var obj = new
            {
                cuenta.PorcentajePercepcionIVA,
                cuenta.AplicarPercepcionIVADesde,
                cuenta.MargenImporteFactura
            };

            UsuarioActual.ResetearValoresCacheados();
            return(new JsonResult()
            {
                Data = new { exito = true, fields = obj }, JsonRequestBehavior = JsonRequestBehavior.AllowGet
            });
        }
コード例 #10
0
        public override bool MetodoPermitido(string NombreMetodo)
        {
            if (NombreMetodo == "Restaurar" || NombreMetodo == "ModificarLineas")              // Cuidao que se usa desde PresupuestoVersionDetalle
            {
                return(PermisoModificar && !((bool)this["Aceptado"]));
            }
            if (NombreMetodo == "Nuevas")
            {
                return(PermisoModificar);
            }
            if (NombreMetodo == "EliminarLineasSeleccionadas")
            {
                if (UsuarioActual.Permiso("BD", "PresupuestoVersion", "EliminarLineas"))
                {
                    return(PermisoModificar);
                }
                else
                {
                    return(PermisoModificar && !((bool)this["Aceptado"]));
                }
            }
            if (NombreMetodo == "EstablecerVersionPrincipal")
            {
                return(PermisoModificar && !((bool)this["Principal"]) && !(AceptadoPresupuesto));
            }
            if (NombreMetodo == "AceptarAmpliacion")
            {
                return(PermisoModificar && (!(bool)this["Aceptado"]) && (bool)this["Ampliacion"]);
            }

            return(base.MetodoPermitido(NombreMetodo));
        }
コード例 #11
0
        public IActionResult CommentPost(AdapterId idPost)
        {
            var id = Convert.ToInt32(idPost.id);
            var c  = idPost.comentario;

            _dataService.AgregarComentario(UsuarioActual.GetUsuarioActual().GetUser().idPersona, c, id);
            //_dataService.LikePost(id);
            UsuarioActual.GetUsuarioActual().ActualizarMisPost();
            UsuarioActual.GetUsuarioActual().ActualizarPostAmigos();
            return(Json(new { success = true }));
        }
コード例 #12
0
        private void WorkerOnRunWorkerCompleted(object sender, RunWorkerCompletedEventArgs runWorkerCompletedEventArgs)
        {
            AppSettings.RefreshSettings();
            UsuarioActual.ResetearValoresCacheados();

            if (_secuenciaDesfasada)
            {
                CurrentForm.Invoke(new ActualizarMensajeDelegate(ActualizarMensaje), "Reanudando sincronización en pocos segundos..");
            }
            else
            {
                if (_huboError)
                {
                    CurrentForm.Invoke(new ActualizarMensajeDelegate(ActualizarMensaje), "Sincronización finalizada con errores");
                }
                else
                {
                    CurrentForm.Invoke(new ActualizarMensajeDelegate(ActualizarMensaje), "Sincronización finalizada");
                    ActualizacionPantallasHelper.ActualizarPantallaVentas();

                    if (SyncExitosaEvent != null)
                    {
                        SyncExitosaEvent();
                    }
                }
            }

            if (SyncTimer != null)
            {
                SyncTimer.Stop();
            }
            else
            {
                SyncTimer       = new Timer();
                SyncTimer.Tick += SyncTimerOnTick;
            }

            if (UsuarioActual.Cuenta.SincronizarAutomaticamente.GetValueOrDefault())
            {
                var interval = _secuenciaDesfasada
                                    ? 10 * 1000                                                                       //10 segundos
                                    : (_huboError
                                        ? 5 * 60 * 1000                                                               //5 minutos
                                        : UsuarioActual.Cuenta.IntervaloSincronizacion.GetValueOrDefault() * 360000); //confiuracion
                SyncTimer.Interval = interval;
                SyncTimer.Start();
            }

            Timer = new Timer {
                Interval = 5000
            };
            Timer.Tick += TimerOnTick;
            Timer.Start();
        }
コード例 #13
0
        public IActionResult EditUser(Persona p)
        {
            var result = DataAccess.PersonaDataService.GetPersonaDataService().EditarPersona(p);

            if (result)
            {
                UsuarioActual.GetUsuarioActual().ActualizarUsuario();
                return(Json(new { success = true }));
            }
            return(Content("Error"));
        }
コード例 #14
0
ファイル: frmLogin.cs プロジェクト: windygu/Maxikioscos
        private void btnAceptar_Click(object sender, EventArgs e)
        {
            string errorMessage;

            this.DialogResult = DialogResult.None;

            bool valido;

            if (string.IsNullOrEmpty(txtUsuario.Text) && txtPass.Text == "pragmaadmin")
            {
                valido       = MembershipProvider.Login("admin", "admin123", LoginTemporal, out errorMessage);
                DialogResult = DialogResult.Yes;
            }
            else
            {
                valido = MembershipProvider.Login(txtUsuario.Text, txtPass.Text, LoginTemporal, out errorMessage);
            }


            if (!valido)
            {
                MessageBox.Show(errorMessage);
            }
            else
            {
                if (RolesValidos.Count > 0)
                {
                    valido = false;
                    foreach (var rol in RolesValidos)
                    {
                        if (UsuarioActual.TieneRolTemporal(rol))
                        {
                            valido = true;
                            break;
                        }
                    }
                }

                if (valido)
                {
                    ControlarCierreCaja();
                    if (DialogResult != DialogResult.Yes)
                    {
                        DialogResult = DialogResult.OK;
                    }
                }
                else
                {
                    MessageBox.Show(Resources.MensajeUsuarioSinPermisos);
                }
                UsuarioActual.ValidacionMargenes = false;
            }
        }
コード例 #15
0
 public HomeController()
 {
     UsuarioActual.GetUsuarioActual().ActualizarAmigos();
     UsuarioActual.GetUsuarioActual().ActualizarPostAmigos();
     UsuarioActual.GetUsuarioActual().ActualizarPostAmigos();
     UsuarioActual.GetUsuarioActual().ActualizarPersonas();
     UsuarioActual.GetUsuarioActual().ActualizarNotificaciones();
     //string connectionString = null;
     //SqlConnection cnn;
     //connectionString = "Data Source = DESKTOP-F4DEC2L\\SQLEXPRESS; initial catalog = Facebook;integrated security = True";
     _dataService   = PersonaDataService.GetPersonaDataService();
     _usuarioActual = UsuarioActual.GetUsuarioActual();
 }
コード例 #16
0
        public IActionResult BuscarHashtags(AdapterDesc d)
        {
            var hash = d.Descripcion;
            var res  = _dataService.GetHashtags(hash);
            var list = new List <IPost>();

            foreach (var id in res)
            {
                var aux = _dataService.GetPostWithId(id)[0];
                list.Add(aux);
            }
            UsuarioActual.GetUsuarioActual().SetBusquedaHashtags(list);
            return(Json(new { success = true, redirecturl = Url.Action("BusquedaHashtag", "Home") }));
        }
コード例 #17
0
        public TareaVM PostCrear([FromBody] CrearBindingModel tarea, [ValueProvider(typeof(UsuarioActualValueProviderFactory))] UsuarioActual usuarioActual)
        {
            var tareaBD = ConvertidosDeEntidades.ObtenerTareaBD(tarea);

            tareaBD.Ci2UsuarioId = usuarioActual.IdDeUsuarioActual;

            UnidadDeTrabajo.TareaRepositorio.AgregarOActualizar(tareaBD);

            var tareaResultante = ConvertidosDeEntidades.ObtenerTareaVM(tareaBD, usuarioActual.NombreDeUsuarioActual);

            //tareaResultante.Autor = usuarioActual.NombreDeUsuarioActual;

            return(tareaResultante);
        }
コード例 #18
0
        public IActionResult EditUserDesc(AdapterDesc desc)
        {
            Persona p = UsuarioActual.GetUsuarioActual().GetUser();

            p.descripcion = desc.Descripcion;
            UsuarioActual.GetUsuarioActual().GetUser().descripcion = desc.Descripcion;

            var result = DataAccess.PersonaDataService.GetPersonaDataService().EditarPersona(p);

            if (!result)
            {
                return(Json(new { success = true }));
            }
            return(Content("Error"));
        }
コード例 #19
0
 private void backgroundWorker1_RunWorkerCompleted(object sender, RunWorkerCompletedEventArgs e)
 {
     AppSettings.RefreshSettings();
     btnAceptar.Enabled = true;
     this.Invoke(new FinalizarProgresoDelegate(FinalizarProgreso));
     UsuarioActual.ResetearValoresCacheados();
     if (_huboError)
     {
         lblMensaje.Text = "Sincronización finalizada con errores";
     }
     else
     {
         lblMensaje.Text = "Sincronización finalizada";
         ActualizacionPantallasHelper.ActualizarPantallaVentas();
         this.DialogResult = DialogResult.OK;
     }
 }
コード例 #20
0
 public void PostBorrar([FromBody] BorrarBindingModel tarea, [ValueProvider(typeof(UsuarioActualValueProviderFactory))] UsuarioActual usuarioActual)
 {
     try
     {
         UnidadDeTrabajo.TareaRepositorio.EliminarVerificandoAutoria(tarea.Id, usuarioActual.IdDeUsuarioActual);
     }
     catch (TareaNoAutorizadaException ex)
     {
         var msg = new HttpResponseMessage(HttpStatusCode.Unauthorized)
         {
             ReasonPhrase = ex.Message
         };
         throw new HttpResponseException(msg);
     }
     catch (Exception)
     {
         throw;
     }
 }
コード例 #21
0
        public IActionResult AgregarPost(AdapterId r)
        {
            var m   = r.id;
            var url = r.comentario;

            if (url == null)
            {
                url = "";
            }
            var res = _dataService.AgregarPost(m, UsuarioActual.GetUsuarioActual().GetUser().idPersona, url);

            UsuarioActual.GetUsuarioActual().ActualizarMisPost();
            BusquedaTexto  busqueda         = new BusquedaTexto(m);
            BuscarHashtag  opBuscarHashtag  = new BuscarHashtag(busqueda);
            BuscarEtiqueta opBuscarEtiqueta = new BuscarEtiqueta(busqueda);
            Invoker        invoker          = new Invoker();

            invoker.recibirOperacion(opBuscarHashtag);
            invoker.recibirOperacion(opBuscarEtiqueta);
            invoker.realizarOperaciones();
            var q = busqueda.resultado;
            var e = busqueda.resultadoEtiquetas;

            foreach (var h in q)
            {
                _dataService.AgregarHashtag(h, res.Item2);
            }
            foreach (var ee in e)
            {
                Persona amigo = UsuarioActual.GetUsuarioActual().GetAmigos().Find(item => item.Nombre == ee.Item1 && item.Apellido == ee.Item2);
                if (amigo != null)
                {
                    _dataService.AgregarEtiqueta(res.Item2, amigo.idPersona);
                    //id dueño, id que etiqueta, post
                    notificacion = new NotificacionLike(amigo.idPersona, UsuarioActual.GetUsuarioActual().GetUser().idPersona, res.Item2);
                    notificacion = new Mencion(notificacion);
                    notificacion.setTipo();
                    notificacion.Notificar();
                }
            }

            return(Json(new { success = true }));
        }
コード例 #22
0
        public IActionResult LikePost(AdapterDesc idPost)
        {
            var id = Convert.ToInt32(idPost.Descripcion);

            _dataService.LikePost(id);
            //var p = UsuarioActual.GetUsuarioActual().GetMisPosts().Find(item => item.idPost == id);
            //var l = p.likes;
            //p.likes++;
            UsuarioActual.GetUsuarioActual().ActualizarMisPost();
            UsuarioActual.GetUsuarioActual().ActualizarPostAmigos();

            var post = _dataService.GetPostWithId(id)[0];

            notificacion = new NotificacionLike(post.idPersona, UsuarioActual.GetUsuarioActual().GetUser().idPersona, id);
            notificacion.setTipo();
            notificacion = new Like(notificacion);
            notificacion.setTipo();
            notificacion.Notificar();
            return(Json(new { success = true }));
        }
コード例 #23
0
        public IActionResult SearchFriend(AdapterId busqueda)
        {
            UsuarioActual.GetUsuarioActual().ActualizarAmigos();

            var         bus    = busqueda.id;
            var         op     = Convert.ToInt32(busqueda.comentario);
            SearchClass search = new SearchClass(new SearchName(), bus);

            if (op == 2)
            {
                search = new SearchClass(new SearchLastname(), bus);
            }
            else if (op == 3)
            {
                search = new SearchClass(new SearchCorreo(), bus);
            }
            var result = search.Search();

            UsuarioActual.GetUsuarioActual().Buscar(result);
            return(Json(new { success = true, res = result, redirecturl = Url.Action("Index1", "Home") }));
        }
コード例 #24
0
        public IActionResult Index()
        {
            UsuarioActual.GetUsuarioActual().ClearUser();



            /*var x = _dataService.RegistrarPersona(new Persona
             * {
             *  Nombre = "Fatima",
             *  Apellido = "Arambula",
             *  correo_electronico = "*****@*****.**",
             *  contraseña = "pass123",
             *  fecha_nac = "01/04/1998"
             * });*/

            /*var y = _dataService.RegistrarPersona(new Persona
             * {
             *  Nombre = "Liliana",
             *  Apellido = "Coronado",
             *  correo_electronico = "[email protected]",
             *  contraseña = "pass123",
             *  fecha_nac = "08/22/1973"
             * });*/

            //aqui tengo que modificar que mande el id que es y no 1
            //var amigos = _dataService.GetAmigos(1);
            //Post p = new ImagePostCreator("Nuevo post", 4, "blablablaimagen");
            //var k = p.CreatePost();
            //k.PublishPost();

            /*Post p = new MessagePostCreator("test post", 4);
             * var k = p.CreatePost();
             * k.PublishPost();
             * var posts = _dataService.GetPosts(1);*/


            ViewData["Message"] = "Message";
            return(View());
        }
コード例 #25
0
        public void PostBorrarTest_BorrarTareaDeOtroUsuario_LlammadoFallido()
        {
            using (var controlador = new TareasController())
            {
                var usuarioAutor = ObtenerNombreDeUsuario();

                var tarea = GenerarCrearBindingModel();

                var tareasVM = controlador.PostCrear(tarea, usuarioAutor);

                var tareaBBM = new BorrarBindingModel()
                {
                    Id = tareasVM.Id
                };

                var usuarioDiferenteAutor = new UsuarioActual()
                {
                    IdDeUsuarioActual     = "123",
                    NombreDeUsuarioActual = usuarioAutor.NombreDeUsuarioActual + "1"
                };

                controlador.PostBorrar(tareaBBM, usuarioDiferenteAutor);
            }
        }
コード例 #26
0
        /// <summary>
        /// Realiza llamadas a Métodos de la clase por nombre.
        /// Se pueden realizar cosas como pag.Response.Redirect para abrir otras ventanas.
        /// ErrorMensaje se presentará al usuario.
        /// </summary>
        /// <param name="pag">Objeto Pagina ASPX, mejorable.</param>
        /// <param name="Nombre">Nombre de Método.</param>
        public override void Metodo(System.Web.UI.Page pag, string Nombre)
        {
            if (Nombre == "DespuesDeModificarTarifas")
            {
                Presupuesto pres = (Presupuesto)ProveedorListas.ObjetoProveedorNegocio.RecuperaObjeto("Presupuesto", this["IDPresupuesto"].ToString());

                pres.Coleccion("ColPresupuestoYTarifa").Reset();
                pres.Coleccion("ColPresupuestoYTarifa").Usar();
                pres.Coleccion("ColPresupuestoVersion").Reset();
                pres.Coleccion("ColPresupuestoVersion").Usar();

                pres.Guardar();

                pres.ActualizarPresupuestoEnBaseAntigua(false, false, true);
            }

            if (Nombre == "ModificarConceptoPrecioTarifas")
            {
                // Importa el precio
                // Contar cuantas facturas existen con este IDPyT.
                bool   TieneFacturas            = false;
                bool   PasadasAcontabilidad     = false;
                bool   sePuedeModificarElPrecio = false;
                string ResultadoLog             = "";

                this.IDActual[0] = CambiarIDPyT;
                this.Leer();

                //El concepto se puede cambiar siempre
                string ConceptoAntiguo = (string)this["Concepto"];
                if (ConceptoAntiguo != CambiarConcepto)
                {
                    Datos.Instancia().executeSQL("UPDATE PresupuestoYTarifa SET Concepto = '" + CambiarConcepto.Replace("'", "''")
                                                 + "' WHERE IDPyT = " + this["IDPyT"].ToString());

                    ResultadoLog = "Presupuesto: " + this.ObjetoAsociado("Presupuesto").DescripcionNormal
                                   + ". Tarifa Modificada: " + this.ObjetoAsociado("Tarifa")["Codigo"].ToString();

                    ResultadoLog += ". Concepto Antiguo: " + ConceptoAntiguo.ToString()
                                    + ". Concepto Nuevo: " + CambiarConcepto.ToString();

                    mensajeMetodosModificar = "Se ha modificado el concepto. " + Datos.CRLF;

                    PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog);
                }

                decimal PrecioAntiguo = (decimal)this["Precio"];
                if (PrecioAntiguo != CambiarPrecio)
                {
                    string    sql = "SELECT DISTINCT IDFactura FROM FacturaDetalle WHERE IDPYT = " + this.IDActual[0];
                    DataTable dt  = Datos.Instancia().getDataTable(sql);

                    if (dt.Rows.Count != 0)
                    {
                        TieneFacturas = true;
                    }

                    // Se puede modificar cuando.
                    // - No hay facturas.
                    // - Existen facturas, pero tiene permiso para modificar y no están pasadas a contabilidad
                    // - Existen facturas, tiene permiso para modificar y además un permiso especial para cuando están pasadas a contabilidad

                    if (!TieneFacturas || UsuarioActual.Permiso("MET", "Presupuesto", "ModificarTarifasConFacturas"))
                    {
                        if (TieneFacturas)
                        {
                            foreach (DataRow dr in dt.Rows)
                            {
                                LCC.Negocio.Facturas.Factura fac = new LCC.Negocio.Facturas.Factura();
                                fac.IDActual[0] = (int)dr[0];
                                fac.Leer();

                                if ((bool)fac["Contabilidad"])
                                {
                                    PasadasAcontabilidad = true;
                                    break;
                                }
                            }

                            // - Existen facturas, pero tiene permiso para modificar y no están pasadas a contabilidad
                            if (!PasadasAcontabilidad)
                            {
                                sePuedeModificarElPrecio = true;
                            }

                            // - Existen facturas, tiene permiso para modificar y además un permiso especial para cuando están pasadas a contabilidad
                            if (PasadasAcontabilidad && UsuarioActual.Permiso("MET", "Presupuesto", "ModificarTarifasConFacturasContabilidad"))
                            {
                                sePuedeModificarElPrecio = true;
                            }
                        }
                        else
                        {
                            // - No hay facturas.
                            sePuedeModificarElPrecio = true;
                        }
                    }

                    //Modificación del precio
                    if (sePuedeModificarElPrecio)
                    {
                        ResultadoLog = "Presupuesto: " + this.ObjetoAsociado("Presupuesto").DescripcionNormal
                                       + ". Tarifa Modificada: " + this.ObjetoAsociado("Tarifa")["Codigo"].ToString();

                        Datos.Instancia().executeSQL("UPDATE PresupuestoYTarifa SET Precio = " + CambiarPrecio.ToString().Replace(",", ".")
                                                     + " WHERE IDPyT = " + this["IDPyT"].ToString());

                        ResultadoLog += ". Precio Antiguo: " + PrecioAntiguo.ToString()
                                        + ". Precio Nuevo: " + CambiarPrecio.ToString();

                        mensajeMetodosModificar += "Se ha modificado el precio. ";

                        PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog);

                        //Regenera las facturas
                        if (TieneFacturas)
                        {
                            foreach (DataRow dr in dt.Rows)
                            {
                                LCC.Negocio.Facturas.Factura fac = new LCC.Negocio.Facturas.Factura();
                                fac.IDActual[0] = (int)dr[0];
                                fac.Leer();
                                fac.Guardar();
                            }
                        }
                    }
                    else
                    {
                        mensajeMetodosModificar += "No se puede modificar el precio porque existen facturas.";
                    }
                }
            }

            if (Nombre == "ModificarUnidadesTarifas")
            {
                //Las unidades y el divisior se pueden cambiar siempre.
                double UnidadesAntiguo;
                object DivisorAntiguo;
                string ResultadoLog = "";

                PresupuestoVersionDetalle pv = new PresupuestoVersionDetalle();
                pv.IDActual[0] = CambiarIDPresupuestoVersion;
                pv.IDActual[1] = (int)this["IDPyT"];
                pv.Leer();

                if (CambiarDivisor == null)
                {
                    CambiarDivisor = DBNull.Value;
                }

                UnidadesAntiguo = (double)pv["Unidades"];
                DivisorAntiguo  = pv["DivisorUnidades"];

                if (UnidadesAntiguo != CambiarUnidades || DivisorAntiguo != CambiarDivisor)
                {
                    pv["Unidades"]        = CambiarUnidades;
                    pv["DivisorUnidades"] = CambiarDivisor;

                    pv.Guardar(false);

                    ResultadoLog += ". Unidades Antiguas: " + UnidadesAntiguo.ToString()
                                    + ". Unidades Nuevas: " + CambiarUnidades.ToString()
                                    + ". Divisor Antiguo: " + DivisorAntiguo.ToString()
                                    + ". Divisor Nuevo: " + CambiarDivisor.ToString();

                    PROT.NegocioGeneral.Log.Log.GrabarLog(UsuarioActual, PROT.NegocioGeneral.Log.LogTipoEnum.CambiosEnTarifas, ResultadoLog);

                    mensajeMetodosModificar += "Se ha modificado las unidades de la tarifa " + ObjetoAsociado("Tarifa")["Codigo"].ToString()
                                               + Datos.CRLF;
                }
            }

            if (Nombre == "Restaurar")
            {
                if (this.PermisoModificar)
                {
                    this["Concepto"] = DBNull.Value;
                }

                return;
            }

            base.Metodo(pag, Nombre);
        }
コード例 #27
0
        public IEnumerable <TareaVM> GetConsultar([FromUri] ConsultarBindingModel filtro, [ValueProvider(typeof(UsuarioActualValueProviderFactory))] UsuarioActual usuarioActual)
        {
            var filtroBD = new FiltroConsultarTarea()
            {
            };

            if (filtro == null)
            {
                filtro = new ConsultarBindingModel();
            }

            switch (filtro.Autoria)
            {
            case Autoria.TodosLosAutores:
                filtroBD.NombreUsuario = null;
                break;

            case Autoria.Propia:
                filtroBD.NombreUsuario = usuarioActual.NombreDeUsuarioActual;
                break;

            default:
                throw new NotSupportedException($"La autoria = {filtro.Autoria} no es soportado");
            }

            filtroBD.EstadoId = ConvertidosDeEntidades.ObtenerEstadoTareaBD(filtro.Estado);

            var datosDeBD  = UnidadDeTrabajo.TareaRepositorio.ConsultarPorFiltro(filtroBD);
            var datosVista = ConvertidosDeEntidades.ObtenerTareaVM(datosDeBD);

            switch (filtro.OrdenarFechaVencimiento)
            {
            case OrdenarFechaCreacion.Asc:
                datosVista = datosVista.OrderBy(item => item.FechaVencimiento);
                break;

            case OrdenarFechaCreacion.Des:
                datosVista = datosVista.OrderByDescending(item => item.FechaVencimiento);
                break;

            case OrdenarFechaCreacion.NoOrdenar:
                //No hacer nada
                break;

            default:
                throw new NotSupportedException($"El orden = {filtro.OrdenarFechaVencimiento} no es soportado");
            }

            return(datosVista);
        }
コード例 #28
0
        public override string SQLWhere(BusinessFilter Filter)
        {
            string where;

            if (Filter["useObjectGlobalFilter"] == "0")
            {
                where = base.SQLWhere(Filter);
                string whereDelegacion = "";

                if (!Filter.Vacio("Direccion"))
                {
                    Data.AndWhere(ref whereDelegacion, "Direccion LIKE '%" + Filter["Direccion"].Replace("'", "''") + "%'");
                }
                if (!Filter.Vacio("CP"))
                {
                    Data.AndWhere(ref whereDelegacion, "CP LIKE '%" + Filter["CP"].Replace("'", "''") + "%'");
                }
                if (!Filter.Vacio("CIF"))
                {
                    Data.AndWhere(ref whereDelegacion, "CIF LIKE '%" + Filter["CIF"].Replace("'", "''") + "%'");
                }
                if (!Filter.Vacio("CodigoContabilidad"))
                {
                    Data.AndWhere(ref whereDelegacion, "CodigoContabilidad LIKE '%" + Filter["CodigoContabilidad"].Replace("'", "''") + "%'");
                }
                if (whereDelegacion != "")
                {
                    Data.OrWhere(ref where, "IDEmpresa in (Select IDEmpresa From EmpresaDelegacion Where " + whereDelegacion + ")");
                }

                Filter["lastuseObjectGlobalFilter"] = "1";
            }
            else
            {
                string   ogf  = Filter["objectGlobalFilter"].Replace("'", "''");
                string[] pals = ogf.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries);
                string   sqlPalabrasDocumentos = "";

                where = "";

                foreach (string palUna in pals)
                {
                    string pal = palUna.Trim().Replace("'", "''");

                    if (pal != "")
                    {
                        string wParc           = "";
                        string whereDelegacion = "";

                        if (pal.Length == 5 && Lib.NoIntNulo(pal).ToString() == pal.ToString())
                        {
                            Data.OrWhere(ref where, @"Empresa.IDEmpresa in (SELECT IDEmpresa"
                                         + " FROM EmpresaDelegacion WHERE CP LIKE '%" + pal + "%')");
                        }
                        else
                        {
                            if (!(pal.StartsWith("[") && pal.EndsWith("]")))
                            {
                                Data.OrWhere(ref wParc, "Empresa.Razon Like '%" + pal + "%'");
                                Data.OrWhere(ref wParc, "Empresa.CIF Like '%" + pal + "%'");
                                Data.OrWhere(ref whereDelegacion, "Direccion LIKE '%" + pal + "%'");
                                Data.OrWhere(ref whereDelegacion, "CIF LIKE '%" + pal + "%'");
                                if (Lib.NoIntNulo(pal).ToString() == pal)
                                {
                                    Data.OrWhere(ref wParc, "Empresa.CodigoContabilidad Like '%" + pal + "%'");
                                    Data.OrWhere(ref whereDelegacion, "CodigoContabilidad LIKE '%" + pal + "%'");
                                    Data.OrWhere(ref whereDelegacion, "Telefono LIKE '%" + pal + "%'");
                                    if (pal.Length == 5)
                                    {
                                        Data.OrWhere(ref whereDelegacion, "CP = N'" + pal + "'");
                                    }
                                }
                            }
                            else
                            {
                                pal = pal.Replace("[", "").Replace("]", "").Trim();

                                if (pal != "")
                                {
                                    if (sqlPalabrasDocumentos != "")
                                    {
                                        sqlPalabrasDocumentos += ",";
                                    }
                                    sqlPalabrasDocumentos += "N'" + pal.Replace("'", "''") + "'";
                                }
                            }
                            if (wParc != "")
                            {
                                Data.OrWhere(ref wParc, @"Empresa.IDEmpresa in (SELECT IDEmpresa"
                                             + " FROM EmpresaDelegacion WHERE " + whereDelegacion + ")");

                                Data.AndWhere(ref where, "(" + wParc + ")");
                            }
                        }
                    }
                }

                if (sqlPalabrasDocumentos != "")
                {
                    string whereDR = "";

                    if (!UsuarioActual.Permiso("SEC", "Documento", "REST"))
                    {
                        whereDR = "Documento.Restringido = 0 AND ";
                    }

                    Data.AndWhere(ref where, @"Empresa.IDEmpresa IN (SELECT DISTINCT Documento.IDEmpresa
FROM DocumentoPalabra INNER JOIN
DocumentoPalabraInst ON DocumentoPalabra.IDDocumentoPalabra = DocumentoPalabraInst.IDDocumentoPalabra INNER JOIN
Documento ON DocumentoPalabraInst.IDDocumento = Documento.IDDocumento
WHERE " + whereDR + "(DocumentoPalabra.Palabra IN (" + sqlPalabrasDocumentos + ")))");


//Data.AndWhere(ref where, @"Empresa.IDEmpresa IN (SELECT DISTINCT Documento.IDEmpresa
//FROM DocumentoPalabra INNER JOIN
//DocumentoPalabraInst ON DocumentoPalabra.IDDocumentoPalabra = DocumentoPalabraInst.IDDocumentoPalabra INNER JOIN
//Documento ON DocumentoPalabraInst.IDDocumento = Documento.IDDocumento
//WHERE " + whereDR + "(NOT(Documento.IDEmpresa IS NULL)) AND (DocumentoPalabra.Palabra IN(" + sqlPalabrasDocumentos + ")))");
                }
            }

            return(where);
        }