You can subscribe to this list here.
| 2014 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(21) |
Nov
(16) |
Dec
(27) |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 2015 |
Jan
(60) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-24 06:03:13
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 9224e2b74d0983d732c2d59e4cd1becf6e0e64bd (commit)
from 6731c23998ee47bada03a59c986122972c9dbde2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9224e2b74d0983d732c2d59e4cd1becf6e0e64bd
Author: Rómulo Rodriguez <rod...@gm...>
Date: Sat Jan 24 01:32:06 2015 -0430
Inserts Entrega IV.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/inserts_IV.sql b/docs/Entrega IV/inserts_IV.sql
new file mode 100644
index 0000000..9106cd4
--- /dev/null
+++ b/docs/Entrega IV/inserts_IV.sql
@@ -0,0 +1,5482 @@
+--
+-- PostgreSQL database dump
+--
+
+SET statement_timeout = 0;
+SET lock_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Data for Name: actor_director; Type: TABLE DATA; Schema: public; Owner: eltercera
+--
+
+INSERT INTO actor_director (ad_id, ad_name) VALUES (1, 'Dean DeBlois');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (2, 'Chris Sanders');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (3, 'Gerard Butler');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (4, 'Jonah Hill');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (5, 'Johnny Depp');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (6, 'Dave Wittenberg');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (7, 'Ridley Scott');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (8, 'Yaphet Kotto');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (9, 'Veronica Cartwright');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (10, 'Alfred Hitchcock');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (11, 'Janet Leighk');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (12, 'James Gunn');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (13, 'Chris Pratt');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (14, 'Zoe Saldana');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (15, 'Dave Bautista');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (16, 'Vin Diesel');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (17, 'Bradley Cooper');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (18, 'Lee Pace');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (19, 'Don Hahn');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (20, 'Miranda Richardson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (21, ' Juno Temple');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (22, 'Ella Purnell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (23, 'Hannah New');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (24, 'Wyatt Russell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (25, 'Peter Stormare');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (26, 'Caroline Aaron');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (27, 'Craig Roberts');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (28, 'Sean Astin');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (29, 'Orlando Bloom');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (30, 'Billy Boyd');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (31, 'Bernard Hill');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (32, 'Christopher Lee');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (33, 'Sandro Kopp');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (34, 'Elijah Wood');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (35, 'Alexandra Astin');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (36, 'Martin Freeman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (37, 'Hugo Weaving');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (38, 'Brian Blessed');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (39, 'Jay Baruchel');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (40, 'Cate Blanchett');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (41, 'Steven Quale');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (42, 'Richard Armitage');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (43, 'Sarah Wayne Callies');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (44, 'Liam Neeson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (45, 'Morgan Freeman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (46, 'Ty Burrell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (47, 'Max Charles');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (48, 'Ariel Winter');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (49, 'Kris Kristofferson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (50, 'Chris Renaud');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (51, 'Chris Meledandri');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (52, 'Janet Healy');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (53, 'Michael Sheen');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (54, 'Cillian Murphy');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (55, 'Jack McGee');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (56, 'Matt Reeves');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (57, 'Andy Serkis');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (58, 'Jason Clarke');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (59, 'Gary Oldman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (60, 'Dustin Hoffman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (61, 'Matthew Broderick');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (62, 'Frank Langella');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (63, 'Stanley Tucci');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (64, 'Tracey Walter');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (65, 'Daniel Mays');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (66, 'Rhys Ifans');
+
+
+--
+-- Name: actor_director_ad_id_seq; Type: SEQUENCE SET; Schema: public; Owner: eltercera
+--
+
+SELECT pg_catalog.setval('actor_director_ad_id_seq', 66, true);
+
+
+--
+-- Data for Name: promotion; Type: TABLE DATA; Schema: public; Owner: eltercera
+--
+
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (1, 'Oferta de Navidad', '2014-12-24', '2014-12-27', 20, false, 'Oferta en todos los contenidos por los festejos de navidad.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (2, 'Oferta de Año Nuevo', '2014-12-29', '2015-01-03', 15, false, 'Oferta en todos los contenidos por los festejos de Año Nuevo.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (3, 'Oferta de Terror', '2015-10-29', '2015-11-01', 10, false, 'Oferta en todos las peliculas mde terror.', '<CONTENT CATEGORY="9"/>');
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (4, 'DÃa del niño', '2015-07-19', '2015-07-20', 15, false, 'Oferta en juegos para niños', '<CONTENT CATEGORY="1"/>');
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (5, 'Buen Comprador', '2015-02-01', '2015-03-01', 5, false, 'Un mes de Oferta en todos los contenidos para los compradores con mas de 100 Compras', '<user n_purchase_min="100"/>');
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (6, 'Dia de los enamorados', '2015-01-24', '2015-02-18', 20, true, 'Oferta en algunos de los contenidos por el romance.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (7, 'Primer mes del año', '2015-01-01', '2015-02-28', 30, true, 'Oferta en algunos de los contenidos.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (8, 'Nuevas peliculas ', '2015-01-01', '2015-01-23', 5, true, 'Oferta de peliculas.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (9, 'En busca de diversion', '2015-01-01', '2015-02-15', 10, true, 'Oferta valida para los juegos.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (11, 'No esperes al dia del libro', '2015-01-01', '2015-02-01', 16, true, 'Oferta valida para los jlibros.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (10, 'Escucha Mas', '2015-01-24', '2015-02-18', 7, true, 'Oferta en albumnes', NULL);
+
+
+--
+-- Data for Name: content; Type: TABLE DATA; Schema: public; Owner: eltercera
+--
+
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (3, 'El movimiento open : La creación de un dominio público en la era digital', '2014-12-04', 'Internet es una infraestructura extraordinaria del conocimiento, la primera de alcance global, generadora de un hecho radicalmente nuevo: la metacultura basada en el hipertexto. Su emergencia cambia las interacciones humanas y los movimientos sociales. El movimiento Open constituye el primero y el más importante de estos nuevos movimientos de la sociedad red: pugna por la accesibilidad sin restricciones a los flujos de signos y a los productos culturales, desafÃa las vÃas de apropiación comercial privada, rechaza la reducción del conocimiento a mercancÃa y reclama la construcción de un dominio público nuevo para el desarrollo de una cultura libre mediante la accesibilidad abierta. Este libro presenta las caracterÃsticas de las distintas ramas y su enfoque con la defensa de una cultura libre y una reconstrucción de la esfera pública en condiciones de comunicación móvil.', 5.71999999999999975, '2011-11-28', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (2, 'ownCloud', '2014-12-04', 'Bienvenido a la ownCloud Android App - Añadir un servidor ownCloud, y haga que su sincronización de archivos y compartir nube privada en marcha y funcionando en poco tiempo.
+
+*** Si usted está experimentando problemas de registro en después de una actualización y la Solución App ownCloud está instalada en su dispositivo, por favor, intenta desinstalar y reinstalar la aplicación Solución ***
+
+¿Necesita sincronización de archivos y compartir software privado? Entonces una buena noticia, porque el ownCloud Android App le permite conectar los dispositivos Android a un servidor privado ownCloud corriendo en su centro de datos. ownCloud es sincronización de archivos de código abierto y el software de la cuota para cada uno de los individuos que operan la libre Community Edition para grandes empresas y proveedores de servicios que operan ownCloud 2012 Enterprise Edition. ownCloud proporciona una solución de sincronización de archivos y la cuota de seguro y compatible con - en los servidores que controles.
+
+Con el ownCloud Android App se puede navegar por todos los archivos sincronizados ownCloud, crear y editar nuevos archivos, compartir estos archivos y carpetas con los compañeros de trabajo, y mantener el contenido de esas carpetas sincronizados en todos sus dispositivos. Sólo tiene que copiar un archivo en un directorio de su servidor y ownCloud hace el resto.
+
+Si el uso de un dispositivo móvil, una estación de trabajo o un cliente web, ownCloud proporciona la capacidad de poner los archivos de la derecha en las manos adecuadas en el momento adecuado en cualquier dispositivo en una solución fácil de utilizar, segura, privada y controlada. Después de todo, con ownCloud, es su nube, sus datos, a su manera.
+
+VisÃtenos en www.ownCloud.com para obtener más información acerca de ownCloud y la lÃnea de productos ownCloud 2012. Para obtener más información sobre la fuente libre y abierto del servidor ownCloud Community Edition, visite www.ownCloud.org.
+
+Nota: Nosotros seguiremos proporcionando soluciones para los errores conocidos, añadir funciones y mejorar la aplicación en el tiempo. El apoyo a esta aplicación desde ownCloud, Inc se proporciona a través de una suscripción a ownCloud 2012 Enterprise Edition. Si usted no tiene una suscripción, forum.owncloud.org proporciona un buen punto de partida para sus preguntas y cualquier problema que pueda tener.', 6.23000000000000043, '2014-12-03', 'APLICACION', 2.29999999999999982, 9);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (5, 'Angry Birds Rio', '2014-12-05', 'JUEGO GRATUITO: ¡DESCÃRGALO YA!
+¿Qué sucederÃa si metieran a los pájaros favoritos de todo el mundo en una jaula y los enviasen a RÃo? ¡Se enfadarÃan y con razón!
+
+¡NOS VAMOS A RÃO!
+Los Angry Birds originales han sido secuestrados y se los han llevado a la mágica RÃo de Janeiro. Han conseguido escapar, pero tienen que salvar a sus amigos Blu y Jewel: los dos exóticos guacamayos protagonistas de los taquillazos de cine: Rio y Rio 2.
+
+¡MIGHTY EAGLE!
+Puedes comprar a Mighty Eagle una vez y utilizarla todas las veces que quieras. Si te quedas atascado en un nivel, esta increÃble criatura descenderá del cielo y mandará a los entrometidos monitos a freÃr espárragos. Claro que esto tiene truco: ¡solo puedes recurrir a Mighty Eagle una vez por hora! Mighty Eagle incluye además nuevos logros y objetivos.
+
+¡POTENCIADORES!
+Si mejoras las habilidades de tus pájaros, te resultará más fácil terminar los niveles con tres estrellas y podrás desbloquear contenidos adicionales. Entre los potenciadores está el Sling Scope para señalar objetivos con láser; las Power Potion, para agrandar los pájaros; Samba Burst para destruir a ritmo de samba; TNT, para reventar al enemigo y Call the Flock, para liberar un tornado de guacamayos.
+
+¡320 NIVELES DE PURA DIVERSIÃN! Y además, 72 niveles más llenos de acción a lo largo de 12 adictivos episodios.
+
+¡ESPECTACULARES ENFRENTAMIENTOS FINALES! Pon a prueba tu dominio del tirachinas.
+
+¡CALL THE FLOCK! Pide ayuda a los demoledores guacamayos.
+
+¡POWER POTION! ¡Vitaminas para tus pájaros! Con las Power Potions convierte a cualquier pájaro en un gigante devastador!
+
+¡DESBLOQUEA NIVELES ADICIONALES! Encuentra los objetos escondidos por el juego ¡y desbloquea aún más niveles!
+
+-----
+SÃguenos en Twitter:
+http://twitter.angrybirds.com
+
+Hazte fan de Angry Birds en Facebook.
+http://facebook.angrybirds.com
+
+Condiciones de uso: http://www.rovio.com/eula
+
+Para usar esta aplicación es necesario estar conectado a Internet; puede que se le cobre por el uso de datos.
+
+
+Mensaje importante para padres
+
+Este juego puede que incluya:
+- Enlaces directos a sitios web de redes sociales para mayores de 13 años.
+- Enlaces directos a Internet que, al salir del juego, permiten al jugador entrar en cualquier página Web.
+- Publicidad de productos Rovio y de socios selectos.
+- La opción de realizar compras en la aplicación. Consulte siempre al titular de la cuenta bancaria.', 0, '2014-11-19', 'APLICACION', 48, 1);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (4, 'La guÃa definitiva del diseño de bases de datos', '2014-12-04', '¿Estás empezando a estudiar bases de datos y no sabes cómo hacer el diseño? ¿Tienes problemas para entender y dominar los conceptos necesarios para hacer un diseño eficiente y adecuado? ¿No acabas de comprender por qué tus diseños siempre tienen fallos? ¿Te resulta difÃcil pasar del diagrama entidad-relación al diseño lógico? ¿Buscas una guÃa que te sirva para todo lo que estás buscando? Si quieres aprender de forma rápida y sencilla todo lo que necesitas saber sobre el diseño de bases de datos, ¡ésta tu guÃa!
+¡¡La primerÃsima y más pedagógica guÃa de diseño de bases de datos al alcance de tus manos!! ¡¡OlvÃdate de las interminables guÃas que te llenan de dudas y ve al grano!!
+La autora es una psicóloga experta en el tratamiento de dificultades del aprendizaje con una amplia experiencia docente.
+ÃNDICE
+1. Diseño conceptual (Diagramas entidad-relación).
+2. Diseño lógico.
+3. Ejemplos de diseño conceptual y lógico.
+4. Fallos más frecuentes y cómo corregirlos.
+5. Ejercicios resueltos.
+6. Sentencias Transact-SQL DML.
+6. Funciones.', 7.08000000000000007, '2014-01-07', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (8, 'Steve Jobs. Lecciones de liderazgo', '2014-12-05', 'El nombre de Steve Jobs es sinónimo de innovación, liderazgo y éxito. Su personalidad arrolladora, su intuición para los negocios y su carisma hicieron de él un gurú de la tecnologÃa, que logró convertir a su empresa, Apple, en la compañÃa de innovación tecnológica más importante del mundo.
+Steve Jobs lideró desde la dirección de Apple la revolución de la industria musical y de telefonÃa. Consiguió una simbiosis poco habitual al crear productos de culto que se han convertido en productos de masas. Millones de personas de todo el mundo han seguido sus presentaciones a través de internet, y han hecho colas durante horas fuera de sus tiendas para ser los primeros en comprar el último dispositivo de Apple. Su experiencia es, y seguirá siendo dentro de cien años, un caso de estudio en las mejores escuelas de negocios.
+«Las personas que están lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.» Anuncio «Piensa diferente» de Apple (1997).', 2.99000000000000021, '2014-02-20', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (9, 'Incrementa tu IQ financiero', '2014-12-05', 'El genio de los negocios y autor del bestseller internacional Padre rico, padre pobre, habla de como desarrollar el talento para tomar las mejores decisiones financieras, invertir con astucia y aumentar la riqueza personal. En un mundo inestable, ¡tu mayor bien es tu inteligencia financiera! ', 7.99000000000000021, '2012-03-07', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (10, 'La Conspiración Umbrella : Resident Evil, Volumen 1', '2014-12-05', 'La Unidad de Rescate y Tácticas Especiales (STARS) se ha desplegado en Racoon City para investigar el caos. Se trata de un ecléctico grupo de especialistas: el rebelde Chris Redfield, la antigua ladrona de guante blanco Jill Valentine, el combativo Barry Burton y el enigmático jefe de la unidad, Albert Wesker. Pero lo que los STARS descubren cuando entran en la mansión es un terror que supera sus peores pesadillas: criaturas que desafÃan las leyes de la vida y de la muerte. ', 7.99000000000000021, '2013-09-27', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (13, 'Resident Evil: Degeneration', '2014-12-03', 'The "Umbrella Incident" that took place in Raccoon City was ended with the eradication of the deadly virus by a missile attack ordered by the government. 2008 Capcom Co., Ltd. and Resident Evil CG Film Partners. All Rights Reserved. ', 63, '2008-12-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (18, 'Back In Black', '2014-12-05', '', 4.49000000000000021, '1980-08-25', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (19, 'Highway to Hell', '2014-12-05', '', 4.49000000000000021, '1979-08-27', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (20, 'If You Want Blood You''ve Got It', '1978-10-13', '', 4.49000000000000021, '1979-08-27', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (26, 'Cut the Rope', '2015-01-07', 'Cut the rope to feed candy to little monster Om Nom®! 400 million downloads around the world of this phenomenal puzzle game.
+
+A mysterious package has arrived, and the little monster inside has only one request⦠CANDY! Collect gold stars, discover hidden prizes and unlock exciting new levels in this additively fun, award-winning, physics-based game!
+
+Key features:
+
+ Innovative physics gameplay
+ Adorable character
+ Outstanding graphics', 0, '2014-12-26', 'APLICACION', 51.7999999999999972, 1);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (15, 'Psycho 1960', '2014-12-05', 'Alfred Hitchcock''s landmark thriller of the macabre stars Janet Leigh and Anthony Perkins in a terrifying tale about a quiet motel and a mysterious killer. ', 110, '1960-03-01', 'PELICULA', NULL, 5);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (12, 'Rango', '2014-12-05', 'A chameleon that aspires to be a swashbuckling hero finds himself in a Western town plagued by bandits and is forced to literally play the role in order to protect it. ', 63, '2014-03-01', 'PELICULA', NULL, 4);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (17, 'Black Ice', '2015-01-09', '', 4.49000000000000021, '2008-10-20', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (16, 'Rock or Bust', '2015-01-09', '', 4.49000000000000021, '2014-09-28', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (101, 'Rayman Fiesta Run', '2015-01-09', 'â
Incluido en las Selecciones de Google Play: Mejores juegos de 2013 â
+
+
+***Pocket Gamer - 9/10 - âA spunky, joyous, addictive gem [...] Another giddy and breathless mix of memory and reflexesâ
+
+
+Ãnete a Rayman, el legendario héroe de las plataformas, en su nueva aventura para tu dispositivo móvil preferido.
+
+Si te divertiste con Rayman Jungle Run, te encantará Rayman Fiesta Run y su alocado mundo de fiesta. Salta entre sombrillitas de cóctel, pisotea las limas y da puñetazos a las piñatas... tu único lÃmite es el cielo.
+
+
+BAILA TODA LA NOCHE
+* ¡Más de 75 niveles para darte la bienvenida a esta fiesta!
+* Bota sobre salchichas y ábrete paso a través de 4 nuevos mundos de lo más festivo
+* Vence a los 3 grandes jefes de fin de nivel para llegar a la temible isla de los No-tan-muertos
+* Recoge lums para conseguir estupendas recompensas y mejoras
+
+
+DESCUBRE LOS ASOMBROSOS PODERES DE RAYMAN
+* Rayman puede saltar, volar, lanzar el puño y correr por las paredes
+* â¦además puede deslizarse, nadar y encogerse para convertirse en un héroe pequeñito
+* ¡Desata todo tu poder con el superpuño!
+
+
+¡CUIDADO CON LA INVASIÃN!
+* Juega todos los niveles que creÃas conocer, de una forma totalmente distinta
+* Evita nuevas trampas y vence a enemigos más fieros
+* Prepárate para afrontar mayores retos
+
+
+DISFRUTA DE GRÃFICOS ASOMBROSOS
+* ¡Rayman Jungle Run era precioso... pues Rayman Fiesta Run es absolutamente delicioso!
+* Entra de lleno en la fiesta gracias a una mayor profundidad de campo
+* Y si te gusta la iluminación espectacular, Rayman es más llamativo que una bola de discoteca, ¡descúbrelo!
+
+
+RETA A TUS AMIGOS
+Comparte tus actividades, publica tus logros en Facebook y haz un seguimiento de lo que hacen tus amigos en el mapa del mundo.
+
+Puedes descargar este juego al instante, no necesitas Wi-Fi para jugar.
+
+¡Monta la fiesta en tu tableta! Rayman Fiesta Run se ve genial también en pantalla grande.
+
+
+Juego disponible en inglés, francés, italiano, alemán, español, portugués brasileño, japonés, coreano y ruso.
+
+
+¡Mantente informado! Recibe las últimas noticias, las mejores ofertas y otras ventajas en...
+FACEBOOK: http://facebook.com/UbisoftMobileGames
+TWITTER: http://twitter.com/ubisoftmobile
+YOUTUBE: http://youtube.com/user/Ubisoft', 19.9600000000000009, '2014-12-16', 'APLICACION', 203, 2);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (103, 'El principito', '2015-01-21', 'sdlkjfslkjlvls lsdlfs djssfsd', 12, '2000-10-10', 'LIBRO', 2, 2);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (11, 'How to Train Your Dragon', '2014-12-05', 'This Academy Award®-nominated DreamWorks Animation film rolls fire-breathing action, epic adventure and big laughs into a captivating, fun and original story. Hiccup is a young Viking who defies tradition and befriends one of his deadliest foes â a ferocious dragon he calls Toothless. Together, the unlikely heroes fight against the odds to save both their worlds in this wonderful, feel-good hit. ', 110, '2010-03-01', 'PELICULA', NULL, 3);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (22, 'Amazon Kindle', '2015-01-03', 'The Kindle app puts over a million books at your fingertips. Itâs the app for every reader, whether youâre a book reader, magazine reader, or newspaper readerâand you donât need to own a Kindle to use it. Choose from over a million Kindle books from the Kindle Store or enjoy popular magazines like The Economist and Readerâs Digest with high-resolution color images.*
+⢠Read Free BooksâChoose from thousands of free ebooks such as Pride & Prejudice or The Adventures of Sherlock Holmes.
+⢠Shop for BooksâEasily shop for ebooks, including new releases and New York Times Best Sellers.
+⢠Use the Built-In Dictionary, Google, and WikipediaâThe Kindle app has a built-in dictionary that allows you to look up words instantly while youâre reading your ebooks. Simply tap and hold a word to view its definition or use the Google and Wikipedia links to get more information.
+⢠Sync Your eBooksâThe Kindle app lets you read the same book across devices and automatically syncs where you left off so you can start reading on one device and pick up where you left off on another device. The app syncs your furthest page read, bookmarks, notes, and highlights between Android, PC, Mac, iPad, iPhone, iPod touch, BlackBerry, Windows Phone 8, and any of our Kindle devices using our Whispersync technology.
+⢠Sample Books Before You BuyâRead the first chapter of a book for free before you decide to buy.
+⢠Customize Your ReadingâChoose your preferred font size, screen brightness, background color, and orientation (portrait or landscape) to read your books.
+⢠Borrow eBooks from the LibraryâCheck out ebooks from your local library and have them delivered wirelessly to your Kindle app.
+⢠Read print replica textbooks on Android tablets. Print Replica Kindle books maintain the rich formatting and layout of their related print editions and provide features to help students study smarter including ability to highlight passages, add margin notes, and search for keywords. Whispersync technology saves and synchronizes your bookmarks, notes, and highlights across your devices.
+* Selection for U.S. users only; selection and price of ebooks and e-periodicals vary by country.', 0, '2014-12-17', 'APLICACION', 10, 1);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (23, 'Instagram', '2015-01-04', 'Over 300 million users love Instagram!
+Its a simple way to capture and share the worlds moments on your Android. Customize your photos and videos with one of several gorgeous and custom built filter effects. Transform everyday moments into works of art youll want to share with friends and family.
+Share your photos and videos with friends and followers in a photo feed, or send posts directly to your friends.
+Follow what your friends post with the click of a single button. Every time you open up Instagram, youll see new photos and videos from your closest friends, and creative people from around the world.
+Features.', 0, '2014-02-02', 'APLICACION', 1024, 1);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (27, 'Git Pocket Guide', '2015-01-07', 'This pocket guide is the perfect on-the-job companion to Git, the distributed version control system. It provides a compact, readable introduction to Git for new users, as well as a reference to common commands and procedures for those of you with Git experience.
+Written for Git version 1.8.2, this handy task-oriented guide is organized around the basic version control functions you need, such as making commits, fixing mistakes, merging, and searching history.
+
+ Examine the state of your project at earlier points in time
+ Learn the basics of creating and making changes to a repository
+ Create branches so many people can work on a project simultaneously
+ Merge branches and reconcile the changes among them
+ Clone an existing repository and share changes with push/pull commands
+ Examine and change your repositoryâs commit history
+ Access remote repositories, using different network protocols
+ Get recipes for accomplishing a variety of common tasks', 11.9900000000000002, '2013-06-25', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (39, 'Live From Paris', '2015-01-08', 'En vivo desde ParÃs o Live from ParÃsâen paÃses de habla inglesaâ es un álbum en vivo y vÃdeo de la cantautora colombiana Shakira, publicado inicialmente en diciembre de 2011 a través de la compañÃa discográfica Sony Music. Fue filmado en el Palais Omnisports de Paris-Bercy, ParÃs, Francia, durante la etapa 2011 de Sale el Sol World Tour, por Nick Wickham. Incluye las actuaciones del concierto y un CD con varias pistas en vivo, acompañado de varias fotografÃas tomadas durante los ensayos de la gira. Como parte de la promoción, Shakira se
+presentó en varias ceremonias de premios, incluyendo los Grammy Latinos y los 40 Principales en 2011.', 4.49000000000000021, '2011-12-02', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (28, 'SSH The Secure Shell The Definitive Guide', '2015-01-07', 'Daniel J. Barrett has been immersed in Internet technology since 1985. Currently working as a software engineer, Dan has also been a heavy metal singer, Unix system administrator, university lecturer, web designer, and humorist. He is the author of OReillys Linux Pocket Guide, and is the coauthor of Linux Security Cookbook, and the first edition of SSH, The Secure Shell: The Definitive Guide. He also writes monthly columns for Compute! and Keyboard Magazine, and articles for
+the OReilly Network.', 35.990000000000002, '2005-05-10', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (73, 'En el ojo de la tormenta', '2015-01-08', 'En el transcurso de un solo dÃa, el pueblo de Silverton se encuentra destruido por una arremetida sin precedentes de tornados. El pueblo entero está a la merced de los ciclones erráticos y mortales, y lo peor está todavÃa por llegar según los pronósticos de los cazadores de tormentas. La mayorÃa de las personas buscan resguardarse, mientras que otros corren hacia el vórtice, poniendo a prueba hasta dónde puede llegar un cazador de
+tormentas para lograr capturar ese momento único en la vida.
+Contado a través de los ojos y las lentes de cazadores de tormentas profesionales, amateurs en busca de emociones fuertes y ciudadanos valientes, âInto the Stormâ te lanza directamente al ojo de la tormenta donde experimentarás a la Madre Naturaleza en su furia más extrema.', 82, '2014-08-01', 'PELICULA', 0, 8);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (37, 'Arde el cielo', '2015-01-08', ' Arde el cielo es un disco de la banda mexicana de rock Maná. Fue lanzado al mercado el 29 de abril de 2008. Fue grabado en vivo en la gira mundial Amar es combatir que fue presenciada por más de dos millones de personas en América y Europa. El grupo escogió para la grabación del álbum dos de sus cuatro actuaciones en el Coliseo de Puerto Rico el 30 y 31 de marzo de 2007.
+El álbum contiene doce temas en directo y dos temas inéditos grabados en estudio. El primero de estos temas inéditos es «Si no te hubieras ido», una
+canción de Marco Antonio SolÃs ya versionada por otros artistas, pero en la que Maná ha sabido poner su peculiar sello. El segundo tema inédito del CD es «Arde el cielo» un tema compuesto y producido por Fernando Olvera y Alex González. Ambos temas tuvieron éxito en 2008.', 8.49000000000000021, '2008-04-29', 'MUSICA', 0, 10);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (41, ' Mi reflejo', '2015-01-08', ' Mi Reflejo es el nombre del segundo álbum de estudio y a su vez el primer álbum en español de la cantante estadounidense Christina Aguilera. Fue lanzado al mercado por Sony Music Latin el 12 de septiembre de 2000. Incluye versiones en español de cinco canciones de su álbum debut Christina Aguilera, asà como seis nuevas canciones. Las canciones fueron traducidas y adaptadas al español por Rudy Pérez, quien también produjo el álbum.
+En Estados Unidos duro veinte semanas
+consecutivas en el puesto número uno de la lista Billboard Top Latin Albums, siendo todo un récord para Aguilera, convirtiéndola en la única cantante en tener este logro con casi medio año de éxito en toda la historia de Billboard, este récord no ha sido superado hasta la fecha en ninguna de las listas de dicha revista incluyendo Billboard Hot 100. ', 4.49000000000000021, '2000-09-12', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (81, 'The Tale of Despereaux', '2015-01-09', 'Once upon a time... in the far away kingdom of Dor... lived a brave and virtuous mouse with comically oversized ears who dreamt of becoming a knight. Banished from his home for having such lofty ambitions, Despereaux sets off on an amazing adventure with his good-hearted rat friend Roscuro, who leads him, at long last, on a very noble quest to rescue an endangered princess and save an entire kingdom from darkness. Based on the heartwarming children''s bestselling book and featuring the voice talents of an all-star cast, The Tale of Despereaux is a magical, modern fairytale that''s destined to win the hearts of young and old alike. 2008 Universal Studios. All Rights Reserved.', 63, '2008-12-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (76, 'Winter - El delfÃn 2', '2015-01-08', '
+âDolphin Tale 2â continues the story of the brave dolphin Winter, whose miraculous rescue and recoveryâthanks to a groundbreaking prosthetic tailâmade her a symbol of hope and perseverance to people around the world and inspired the 2011 hit movie âDolphin Tale.â It has been several years since young Sawyer Nelson and the dedicated team at the Clearwater Marine Hospital, headed by Dr. Clay Haskett, rescued Winter. Yet their fight is not
+over. Winterâs surrogate mother, the very elderly dolphin Panama, has passed away, leaving Winter without the only poolmate she has ever known. However, the loss of Panama may have even greater repercussions for Winter, who, according to USDA regulations, cannot be housed alone, as dolphinsâ social behavior requires them to be paired with other dolphins. Time is running out to find a companion for her before the team at Clearwater ', 82, '2014-12-01', 'PELICULA', 0, 8);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (33, 'The Definitive Guide to Drupal 7', '2015-01-08', 'The Definitive Guide to Drupal 7 is the most comprehensive book for getting sites done using the powerful and extensible Drupal content management system. Written by a panel of expert authors, the book covers every aspect of Drupal, from planning a successful project all the way up to making a living from designing Drupal sites and to contributing to the Drupal community yourself. With this book you will:
+Follow practical approaches to solving many online communication needs with Drupal with real examples.
+Learn how to keep learning about Drupal: administration, development, theming, design, and architecture.
+Go beyond the code to engage with the Drupal community as a contributing member and to do Drupal sustainably as a business.
+The Definitive Guide to Drupal 7 was written by the following team of expert Drupal authors.', 39.990000000000002, '2011-07-19', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (30, 'Bajo la misma estrella', '2015-01-08', 'Hazel acaba de cumplir 16 años. Y tiene cáncer. A pesar de que un tratamiento ha conseguido reducir su tumor de forma casi milagrosa, es una enferma terminal. Los médicos no pueden decirle cuánto tiempo le queda; solo sabe que debe vivir pegada a un tanque de oxÃgeno y sometida a continuos tratamientos. Desde hace unas semanas, Hazel forma parte de un grupo de apoyo donde otros chicos como ella comparten sus experiencias. En realidad, ella acude más por obligación que por voluntad; ¿qué sentido tiene hablar con otras personas de lo que nadie puede cambiar? Pero su vida da un verdadero vuelco cuando conoce a Gus Waters... Os preguntaréis: ¿quién es Gus? ¿Y cómo puede cambiar una sola persona la historia de otra?', 7.99000000000000021, '2012-06-07', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (31, 'Historia de los mundiales de fútbol', '2015-01-08', 'En ningún momento de los últimos 110 años la trayectoria de los Mundiales de Fútbol estuvo desconectada de la realidad socioeconómica de los paÃses, involucrados o no en sus disputas. Mismo antes de convertirse en el evento que, hoy, mueve miles de millones de personas y cifras financieras extraordinarias, el torneo de fútbol entre naciones que se realiza a cada cuatro años, estuvo marcado por innúmeros vuelcos del contexto polÃtico internacional, dudas y tragedias, crecimiento y evolución técnica, movilización social además de su utilización por los poderes constituidos.
+La piedra fundamental del Campeonato Mundial de Futbol realizado como evento independiente, fuera de los Juegos OlÃmpicos, se planteó ya en el momento de la fundación de la FIFA, en 1904, pero sólo se hizo efectiva después de la Primera Guerra Mundial, siendo que el primer paÃs sede (Uruguay) se habÃa definido en 1929, durante el Congreso de la entidad, realizado en Barcelona, aún en un ambiente de intensa inestabilidad geopolÃtica. ', 0, '2014-08-04', 'LIBRO', 0, 1);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (32, 'Linux in a Nutshell: Edition 6', '2015-01-08', 'Everything you need to know about Linux is in this book. Written by Stephen Figgins, Ellen Siever, Robert Love, and Arnold Robbins -- people with years of active participation in the Linux community -- Linux in a Nutshell, Sixth Edition, thoroughly covers programming tools, system and network administration tools, the shell, editors, and LILO and GRUB boot loaders.
+This updated edition offers a tighter focus on Linux system essentials, as well as more coverage of new capabilities such as virtualization, wireless network management, and revision control with git. It also highlights the most important options for using the vast number of Linux commands. Youll find many helpful new tips and techniques in this reference, whether youre new to this operating system or have been using it for years.', 35.990000000000002, '2009-09-19', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (34, 'The Big Reveal', '2015-01-08', ' I don''t care what the weather man says,
+When the weatherman says it''s raining,
+You''ll never hear me complaining,
+I''m certain the sun will shine,
+I don''t care how the weather vane points,
+When the weather vane points to gloomy,
+It''s gotta be sunny to me, when your eyes look into mine; oh
+Jeepers Creepers! Where''d ya get those peepers? Jeepers Creepers! Where''d ya get those eyes?
+Gosh all git up! How''d they get so lit up?
+Gosh all git up! How''d they get that size?
+Golly gee! When you turn those heaters on,
+Woe is me!
+Got to get my cheaters on, Jeepers Creepers!
+Where''d ya get those peepers? On! Those weepers!
+How they hypnotize!
+Where''d ya get those eyes?
+Writer(s): Harry Warren, Johnny Mercer', 2.7200000000000002, '2014-06-01', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (35, 'Gitolite Essentials', '2015-01-08', 'The book is written to suit an easy-reading style, using typical problems in access control to illustrate the need for each Gitolite feature explained. This book is for system administrators or development managers who need to keep a lid on Git-based development workflows. Basic knowledge of Git as well as of the Unix shell is helpful.', 17.9899999999999984, '2014-04-11', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (40, 'Shakira Oral Fixation Tour (Live)', '2015-01-08', 'Shakira Oral Fixation Tour (Live)', 4.13999999999999968, '2014-03-07', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (38, 'Un dÃa normal', '2015-01-08', 'Un dÃa normal es el nombre del segundo álbum de estudio como solista del cantautor colombiano Juanes. Fue lanzado al mercado por la empresa discográfica Universal Music Latino el 21 de mayo de 2002. El álbum fue producido por Gustavo Santaolalla, Melissa Mattey, Anibal Kerpel y por el propio Juanes. El álbum ha vendido 2 millones de copias. Descripción proporcionada por Wikipedia con la licencia Creative Commons Attribution CC-BY-SA 4.0', 7.99000000000000021, '2002-01-01', 'MUSICA', 0, 10);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (74, 'The Lego Movie', '2015-01-08', 'The first-ever full-length theatrical LEGO movie follows Emmet, an ordinary, rules-following, perfectly average LEGO minifigure who is mistakenly identified as the most extraordinary person and the key to saving the world. He is drafted into a fellowship of strangers on an epic quest to stop an evil tyrant, a journey for which Emmet is hopelessly and hilariously underprepared. ', 63, '2014-02-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (75, ' Mr. Peabody and Sherman', '2015-01-08', 'Unleash the fun with this hilarious comedy for all ages from the creators of THE CROODS and HOW TO TRAIN YOUR DRAGON! Mr. Peabody (Ty Burrell) is an inventor, scientist and genius who just happens to be a dog. With his son Sherman, he will embark on the most extraordinary adventure imaginable as they race against time to repair history and save the future. ', 110, '2014-03-01', 'PELICULA', 0, 5);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (42, 'Stripped', '2015-01-08', ' Stripped es el tercer álbum de estudio de la cantante estadounidense Christina Aguilera, este álbum contiene géneros pop y rhythm and blues. Fue lanzado por la compañÃa discográfica RCA Records el 26 de octubre de 2002, y fue muy exitoso en Europa y otras partes del mundo, dándole a Christina más éxitos y reconocimientos.
+Tras el éxito comercial de su álbum anterior en 1999, la cantante se quiso despojar de la fama de estrella pop adolescente que la llevó a ser conocida en todo el mundo. Por lo tanto, decidió cambiar a un
+pop más maduro y representar una imagen más sensual y atrevida. Asà empezaron las grabaciones de su segunda producción discográfica, que más tarde se convertirÃa en una de las más emblemáticas de la cantante, el álbum logró vender más de 13 millones de copias en todo el mundo.
+Para su producción, Christina trabajó principalmente con los productores Linda Perry y Scott Storch. En varias ocasiones, la cantante señaló que la creación de Stripped estaba relacionada con mostrarse «real» y «transparente». ', 4.49000000000000021, '2002-10-29', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (54, 'Stellarium Mobile Planetario', '2015-01-08', 'Stellarium es un planetario móvil con todas las funciones de su teléfono. Se muestra un mapa del cielo nocturno realista en 3D, al igual que lo que se ve a simple vista, binoculares o un telescopio.
+
+El control del sensor también le permitirá identificar lo que se ve en el cielo en tan sólo unos segundos, con sólo apuntar el teléfono en él!
+
+Esta aplicación astronomÃa galardonado por fin está disponible en Android con:
+
+* Una muy intuitiva interfaz de pantalla táctil
+* La integración de posicionamiento GPS
+* El control de la dirección de la vista utilizando los acelerómetros dispositivo
+* Un catálogo de más de 600.000 estrellas muestra como un mapa del cielo con zoom tiempo real,
+* Un catálogo de muchas nebulosas y las galaxias, con fotos de algunos de ellos
+* Asterismos e ilustraciones de las constelaciones del cielo para cultivos varios
+* VÃa Láctea realista
+* Paisaje realista y ambiente con la salida del sol, puesta de sol y la simulación de la contaminación lumÃnica
+* Representación 3D de los planetas del sistema solar más importantes y sus satélites
+* Modo nocturno (rojo)
+
+
+Stellarium móvil es creada por dos de los desarrolladores originales de Stellarium, la versión de escritorio de la astronomÃa y el famoso software planetario.', 15.6600000000000001, '2014-09-28', 'APLICACION', 25, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (43, 'Monkey Business', '2015-01-08', 'Monkey Business', 8.99000000000000021, '2005-05-30', 'MUSICA', 0, 10);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (82, 'Matilda', '2015-01-09', 'Based on the book Matilda, by British children''s author Roald Dahl, this film moves the setting from the U.K. to the U.S.; otherwise it follows the original closely. Matilda Wormwood (Mara Wilson) is an extremely curious and intelligent little girl who is very different from her low-brow, mainstream parents (Danny DeVito and real-life wife Rhea Perlman), who quite cruelly ignore her. As she grows older, she begins to discover that she has telekinetic powers. Not until a teacher shows her kindness for the first time does she realize that she can use those powers to do something about her sufferings and help her friends as well. Villains from the awful Miss Trunchbull (Pam Ferris), headmistress of her miserable school Crunchem Hall, to her parents and older brother begin to feel her ire. Look for Paul Reubens (aka Pee Wee Herman) in a small part as an FBI agent investigating Matilda''s shady father. ', 63, '1996-01-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (65, 'Maleficent', '2015-01-08', 'Maleficent explores the untold story of Disney''s most iconic villain from the classic Sleeping Beauty and the elements of her betrayal that ultimately turn her pure heart to stone. Driven by revenge and a fierce desire to protect the moors over which she presides, Maleficent cruelly places an irrevocable curse upon the human king''s newborn infant Aurora. As the child grows, Aurora is caught in the middle of the seething conflict between the forest
+kingdom she has grown to love and the human kingdom that holds her legacy. Maleficent realizes that Aurora may hold the key to peace in the land and is forced to take drastic actions that will change both worlds forever. ', 82, '2014-05-01', 'PELICULA', 0, 8);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (48, ' Need for Speed⢠Hot Pursuit', '2015-01-08', 'Descripción
+Pilota los coches más rápidos del mundo y disfruta de una acción de conducción de máximas prestaciones jamás vista en Android.
+
+⢠SACIA TU SED DE VELOCIDAD: Pilota 20 coches, como el BMW M3 GT2, el Lamborghini Gallardo y el Pagani Zonda.
+
+⢠TODOS LOS CIRCUITOS AL DETALLE: Disfruta del vasto paisaje de 18 circuitos inspirados en localizaciones reales (Chicago, Londres, Tokio) tanto de dÃa como de noche. Siente el rugir de los motores, el chillido de los neumáticos y la brutalidad de los choques. ¡Y sobre todo, vive la velocidad, más velocidad, más velocidad!
+
+⢠MEJORA, PERSONALIZA Y COMPITE: Aumenta el rendimiento con mejoras de velocidad punta, aceleración, neumáticos, suspensión y nitroso. Añade detalles de personalización, como alerones, llantas, pinturas especializadas y kits de carrocerÃa.
+
+⢠¿CÃMO TE GUSTA PILOTAR? Inicia una Carrera rápida o domina el circuito en el modo Historia. Elige entre 3 niveles de dificultad (Novato, Profesional o Veterano). Lleva el control de tu evolución en el PERFIL DE PILOTO.
+
+¡Agárrate fuerte y acelera al máximo en el juego de conducción más intenso y enérgico visto en Android!
+
+¡Sé el primero en enterarte! Recibe información sobre las mejores ofertas de EA, actualizaciones de juegos, trucos y mucho más...
+VISÃTANOS: eamobile.com/android
+SÃGUENOS: twitter.com/eamobile
+TE GUSTAMOS: facebook.com/eamobile
+MÃRANOS: youtube.com/eamobilegames
+
+¡No te pierdas otros estupendos juegos de EA como Los Sims Gratuito, Need for Speed Most Wanted y Theme Park.
+
+Términos de servicio: http://www.ea.com/terms-of-service
+PolÃtica de privacidad y cookies: http://www.ea.com/privacy-policy
+Contrato de licencia para el usuario final de la aplicación: http://tos.ea.com/legalapp/mobileeula/US/es/GM/
+Visita https://help.ea.com/es para recibir ayuda o enviar tus preguntas.
+EA puede retirar servicios y funciones online a los 30 dÃas de haber publicado un aviso en www.ea.com/1/service-updates.
+
+Información importante para el cliente. Esta aplicación: Contiene enlaces directos a sitios de Internet.
+', 33.6300000000000026, '2014-01-13', 'APLICACION', 7.59999999999999964, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (51, 'Helium (Premium)', '2015-01-08', 'This is app just the License key for Helium App Sync and Backup. You must also download the free version of the app.
+
+IF YOU ARE HAVING LICENSE ISSUES, MAKE SURE YOU HAVE THE LATEST VERSION OF FREE AND THE LATEST LICENSE INSTALLED!
+
+Helium Premium Features:
+
+No Ads
+Android to Android app sync
+Automatic Backup schedules (coming soon!)
+Cloud backup and restore
+* Dropbox
+* Box
+* Google Drive', 31.3999999999999986, '2013-12-27', 'APLICACION', 0.210999999999999993, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (49, 'Dead Space', '2015-01-08', 'Esta impactante visión de la franquicia Dead Space supone un antes y un después en los juegos para móviles. Con una experiencia de juego brutal y un meticuloso entorno sonoro, podrás adentrarte en los sangrientos acontecimientos que desencadenaron la nueva horda de necromorfos. Después de jugar a esta obra maestra del terror de ciencia ficción, sin duda cambiará tu opinión sobre los juegos en Android.
+
+UNA EXPERIENCIA CON CARGA SENSORIAL
+Sobrevive a una de las experiencias más sobrecogedoras y espeluznantes para móvil. Con un apartado visual de última generación, gran riqueza de efectos e iluminación atmosférica, reproduce el terror cinematográfico de la experiencia en consolas. Una banda sonora en estéreo con voces completamente dobladas y una partitura y efectos sonoros de calidad cinematográfica que favorecen una inmersión total en el pavor de Dead Space.
+
+CONTROLES INCREÃBLEMENTE FÃCILES DE MANEJAR
+Controles intuitivos para mantenerte concentrado en la acción. El HUD de pantalla se integra a la perfección en el entorno de juego. Desplázate por 6 escenarios distintos y lucha contra los necromorfos con sencillos controles de tocar y arrastrar.
+
+INCLUYE 2 ARMAS EXCLUSIVAS Y LOS MÃDULOS CLÃSICOS
+Accede a la nueva sierra de plasma y al extractor de núcleo, además de 3 nuevas armas del universo Dead Space. Además, podrás utilizar los módulos cinético y de estabilización, recursos ya conocidos para los jugadores de la versión de consolas... y ponte manos a la obra con la estratégica tarea del descuartizamiento.
+
+¿Te atreves a adentrarte en DEAD SPACE? ¡Consigue la experiencia de terror aclamada por la crÃtica para Android YA!
+
+¡Sé el primero en enterarte! Recibe información sobre las mejores ofertas de EA, actualizaciones de juegos, trucos y mucho más...
+VISÃTANOS: eamobile.com/android
+SÃGUENOS: twitter.com/eamobile
+TE GUSTAMOS: facebook.com/eamobile
+MÃRANOS: youtube.com/eamobilegames
+
+¡No te pierdas otros estupendos juegos de EA como Los Sims Gratuito, Need for Speed Most Wanted, Theme Park!
+
+Términos de servicio: http://www.ea.com/terms-of-service
+PolÃtica de privacidad y cookies: http://www.ea.com/privacy-policy
+Contrato de licencia para el usuario final de la aplicación: http://tos.ea.com/legalapp/mobileeula/US/es/GM/
+Visita https://help.ea.com/es para recibir ayuda o enviar tus preguntas.
+EA puede retirar servicios y funciones online a los 30 dÃas de haber publicado un aviso en www.ea.com/1/service-updates.
+
+Información importante para el cliente. Esta aplicación: Contiene enlaces directos a sitios de Internet.', 44.8699999999999974, '2014-01-13', 'APLICACION', 2.89999999999999991, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (50, 'ROM Manager (Premium)', '2015-01-08', 'ROOT USERS ONLY!
+
+IF YOU ARE HAVING LICENSE ISSUES, MAKE SURE YOU HAVE THE LATEST VERSION OF FREE (4.0+) AND THE LATEST LICENSE (1.0.8+) INSTALLED!
+
+Turn off ads in settings!
+
+Prefer doing installations manually in recovery? Check out the new touch recoveries, available as a separate and cheaper in app purchase in the free version of ROM Manager!
+
+Did flashing break your recovery? Flash an alternate/experimental one and flash back to fix!
+
+Manage your ROMs via a handy UI. organize and perform backups and restores from within Android! Install your favorite ROMs over the air!
+
+IF YOU ARE HAVING LICENSE ISSUES, MAKE SURE YOU HAVE THE LATEST VERSION OF FREE (4.0+) AND THE LATEST LICENSE (1.0.8+) INSTALLED!', 37.6899999999999977, '2012-12-21', 'APLICACION', 0.419999999999999984, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (46, 'Plants vs. Zombies', '2015-01-08', '
+Prepárate para abonar tus plantas, porque una horda de zombis con ganas de fiesta está a punto de invadir tu casa y tu única defensa es un arsenal de 49 plantas destruye-zombis. Utiliza lanzaguisantes, nueces, petacerezas y muchas cosas más para ralentizar, confundir, debilitar y convertir en abono a 26 tipos de zombis antes de que lleguen a la puerta.
+
+Plants vs. Zombies⢠es uno de los mejores juegos de acción y estrategia. Los zombis tienen habilidades muy especiales, asà que piensa rápido y planta más rápido aún para definir una estrategia eficaz y vencerlos a todos. Eso sÃ, ten cuidado al utilizar tus semillas y plantas, porque son limitadas; además, en tu batalla contra los muertos vivientes tendrás que lidiar con obstáculos como el anochecer, la niebla o una piscina.
+
+
+Plants vs. Zombies es un juego para todas las edades, desde niños hasta los que crecieron con los clásicos arcade. ¡La diversión no termina nunca!
+
+GANADOR DE MÃS DE 30 PREMIOS A MEJOR JUEGO DEL AÃO*
+
+CaracterÃsticas del juego
+
+⢠Derrota zombis en los 50 niveles del modo Aventura: de dÃa, de noche, con niebla, en una piscina o en el tejado.
+⢠Lucha contra 26 tipos de zombis entre los que se incluyen los saltadores de pértiga, los buzos y los caracubos, cada uno con habilidades distintas.
+⢠Consigue 49 plantas duras de pelar y consigue monedas para comprar un caracol mascota, potenciadores y muchas cosas más.
+⢠Abre el Almanaque para ver todas las plantas y los zombis, además de curiosidades y citas.
+⢠Consigue 47 logros monstruosamente divertidos y demuestra tu habilidad destruyendo zombis.
+⢠Disfruta de toda la diversión zombi del juego de éxito de PC/Mac optimizado totalmente para Android.
+⢠Gráficos divertidos, una gran banda sonora y un vÃdeo musical extra.
+⢠¿Necesitas monedas para comprar todas las novedades? Consigue hasta 600.000 monedas en el menú principal.
+⢠Incluye todos los minijuegos y todas las demás funciones del juego original.
+⢠Diseñado por PopCap, creadores de Bejeweled, el mejor rompecabezas del mundo.
+
+¡Descárgalo hoy y detén el ataque zombi en tu dispositivo Android!
+
+Términos de servicio: http://www.ea.com/terms-of-service
+PolÃtica de privacidad y cookies: h...
[truncated message content] |
|
From: Eduardo G. <my4...@us...> - 2015-01-24 05:58:03
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 6731c23998ee47bada03a59c986122972c9dbde2 (commit)
from 025dbdf2aa48ec5152d99fa1ccaa2d5fa4416014 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6731c23998ee47bada03a59c986122972c9dbde2
Author: Eduardo <epp...@gm...>
Date: Sat Jan 24 01:27:26 2015 -0430
Drops index
diff --git a/src/sql/drops.sql b/src/sql/drops.sql
index 4e686fb..96fbbfb 100644
--- a/src/sql/drops.sql
+++ b/src/sql/drops.sql
@@ -43,6 +43,12 @@ DROP VIEW LIST_INVOICE_FROM_PLACE;
DROP VIEW FROM_PLACE;
+drop index ID_Nombre_Apellido;
+drop index ID_Nombre_Contenido;
+drop index ID_FK_FECHA ;
+drop index Name_Place ;
+drop index ID_Name_Developer;
+
/*-------------ELIMINACION DE LOS CONSTRAINTS---------------*/
/*FK_ALBUM_ALB_AUT
-----------------------------------------------------------------------
Summary of changes:
src/sql/drops.sql | 6 ++++++
1 files changed, 6 insertions(+), 0 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-24 05:54:42
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 025dbdf2aa48ec5152d99fa1ccaa2d5fa4416014 (commit)
from 875f23f0be21120b15806ba47d88cb52d0484a70 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 025dbdf2aa48ec5152d99fa1ccaa2d5fa4416014
Author: Eduardo <epp...@gm...>
Date: Sat Jan 24 01:24:05 2015 -0430
Vistas con indice
diff --git a/docs/Entrega IV/Vistas.sql b/docs/Entrega IV/Vistas.sql
index b46e695..5ca7c52 100644
--- a/docs/Entrega IV/Vistas.sql
+++ b/docs/Entrega IV/Vistas.sql
@@ -372,4 +372,9 @@ CREATE VIEW REPORT_40 AS (
order by fecha
);
+create index ID_Nombre_Apellido on Sys_user (su_nick, su_name, su_lastname);
+create index ID_Nombre_Contenido on Content (Con_id, Con_Name);
+create index ID_FK_FECHA on EVENT (eve_id, eve_date, fk_event_info);
+create index Name_Place on Place (Pla_Name);
+create index ID_Name_Developer on Developer (dev_id, dev_name);
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/Vistas.sql | 5 +++++
1 files changed, 5 insertions(+), 0 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-24 05:26:05
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 875f23f0be21120b15806ba47d88cb52d0484a70 (commit)
via f6ceefff8fa7f2b8086331224cd15b4136ae0c3a (commit)
from f13dc295c3e0f1468de75f6da38efc9a321517b7 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 875f23f0be21120b15806ba47d88cb52d0484a70
Merge: f6ceeff f13dc29
Author: Eduardo <epp...@gm...>
Date: Sat Jan 24 00:55:12 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
commit f6ceefff8fa7f2b8086331224cd15b4136ae0c3a
Author: Eduardo <epp...@gm...>
Date: Sat Jan 24 00:54:37 2015 -0430
Documentos drops, constrain, vistas
diff --git a/docs/Entrega IV/Vistas.sql b/docs/Entrega IV/Vistas.sql
index 7e41c7c..b46e695 100644
--- a/docs/Entrega IV/Vistas.sql
+++ b/docs/Entrega IV/Vistas.sql
@@ -63,7 +63,7 @@ CREATE VIEW REPORT_5 AS (
JOIN FROM_PLACE F ON D.FK_Place=F.Pla_Id
JOIN PLACE P ON P.Pla_ID=F.Path
JOIN APPLICATION AS A ON A.fk_Developer=D.Dev_ID
- GROUP BY D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name;
+ GROUP BY D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name
);
CREATE VIEW REPORT_6 AS (
@@ -363,13 +363,13 @@ CREATE VIEW REPORT_39 AS (
);
CREATE VIEW REPORT_40 AS (
- select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as fecha, count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
from developer
join application on fk_developer=dev_id
join purchase on application.fk_content=purchase.fk_content
join invoice on inv_id=fk_invoice
- group by "Año", dev_name, dev_id
- order by "Año"
+ group by fecha, dev_name, dev_id
+ order by fecha
);
diff --git a/src/sql/constraints.sql b/src/sql/constraints.sql
index 41d46b3..2a58a52 100644
--- a/src/sql/constraints.sql
+++ b/src/sql/constraints.sql
@@ -1059,15 +1059,6 @@ Descripcion: Un grupo de reporte puede tener subgrupos de reportes, esta relacio
ALTER TABLE GROUP_REPORT ADD CONSTRAINT FK_GROUP_REPORT_GROUP_REPORT FOREIGN KEY (FK_Group_Report) REFERENCES GROUP_REPORT (GR_ID) ON DELETE RESTRICT ON UPDATE CASCADE;
-/*FK_SYS_MODULE_GROUP_REPORT
-SYS_MODULE->GROUP_REPORT
-Entidad: GROUP_REPORT
-Descripcion: Un grupo de reporte pertenece a un modulo del sistema, esta relacion se denota en FK_Sys_Module
-25/11/14
-*/
-
-ALTER TABLE GROUP_REPORT ADD CONSTRAINT FK_SYS_MODULE_GROUP_REPORT FOREIGN KEY (FK_Sys_Module) REFERENCES SYS_MODULE (SM_ID) ON DELETE RESTRICT ON UPDATE CASCADE;
-
/*FK_WEB_CONT_IMAGE
WEB_CONT->IMAGE
Entidad:IMAGE
diff --git a/src/sql/drops.sql b/src/sql/drops.sql
index 74aab7e..4e686fb 100644
--- a/src/sql/drops.sql
+++ b/src/sql/drops.sql
@@ -15,6 +15,7 @@ DROP TABLE IF EXISTS Tabla;
*/
/*--------------------------------ELIMINACION DE LAS VISTAS----------------------------------------------------------*/
+
DROP VIEW REPORT_40;
DROP VIEW REPORT_39;
DROP VIEW REPORT_38;
@@ -249,13 +250,6 @@ GROUP_REPORT
ALTER TABLE GROUP_REPORT DROP CONSTRAINT FK_GROUP_REPORT_GROUP_REPORT ;
-/*FK_SYS_MODULE_GROUP_REPORT
-GROUP_REPORT
-25/11/14
-*/
-
-ALTER TABLE GROUP_REPORT DROP CONSTRAINT FK_SYS_MODULE_GROUP_REPORT ;
-
/*FK_WEB_CONT_IMAGE
IMAGE
25/11/14
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/Vistas.sql | 8 ++++----
src/sql/constraints.sql | 9 ---------
src/sql/drops.sql | 8 +-------
3 files changed, 5 insertions(+), 20 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-24 04:40:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via f13dc295c3e0f1468de75f6da38efc9a321517b7 (commit)
from a65ba4106151ffd3aea3605754ad492a147ab16f (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit f13dc295c3e0f1468de75f6da38efc9a321517b7
Author: Rómulo Rodriguez <rod...@gm...>
Date: Sat Jan 24 00:10:34 2015 -0430
Modificacion y coreecion de reportes
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index fea6bb2..b752254 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -1,16 +1,15 @@
1. Listado de sistemas operativos y sus versiones. Debe permitir filtrar la información por nombre de sistema operativo, nombre de versión, compañÃa y tipo de sistema operativo.
-
consulta:
-SELECT O.OS_ID,O.OS_NAME, V.FK_OPERATING_SYSTEM, V.VER_NAME, V.VER_RELEASE_DATE, D.DEV_ID, D.DEV_NAME
+SELECT O.OS_ID, O.OS_NAME, V.FK_OPERATING_SYSTEM, V.VER_ID, V.VER_NAME, V.VER_RELEASE_DATE, D.DEV_ID, D.DEV_NAME, O.FK_LICENSE
FROM OPERATING_SYSTEM O
LEFT JOIN VERSION V ON V.FK_OPERATING_SYSTEM = O.OS_ID
- LEFT JOIN DEVELOPER D ON D.Dev_Company=TRUE AND O.FK_DEVELOPER=D.DEV_ID);
+ LEFT JOIN DEVELOPER D ON D.Dev_Company=TRUE AND O.FK_DEVELOPER=D.DEV_ID
vista report_1:
select os_name as "Sistema Operativo", ver_name as "Version", dev_name as "Desarrollador"
from report_1
-where 1_OS and/or 2_Ver and/or 3_Dev and/or 4_Lic
+where 1_OS 2_Ver 3_Dev 4_Lic
Filtros:
1_OS:
@@ -24,34 +23,36 @@ from Version
order by name
3_Dev
-select Dev_id as value, dev_name as name
-from Developer
+select distinct Dev_id as value, dev_name as name
+from report_1
order by name
4_Lic
-select Lic_id as value, lic_name as name
-from license
+select distinct fk_license as value, lic_name as name
+from report_1,license
+where fk_license=lic_id
order by name
2. Listado de Empresas Desarrolladoras / Desarrolladores, debe mostrar todos los datos de los mismos. Debe permitir filtrar la información por paÃs, nombre y código postal.
-
consulta:
-SELECT D.*, F.Pla_Name , F.Pla_Postal_Code ,P.Pla_name as Pais
+SELECT D.*, F.Pla_Name , F.Pla_Postal_Code ,P.Pla_name as Pais, F.Path
FROM DEVELOPER as D
- Left JOIN FROM_PLACE F ON D.FK_Place= F.Pla_Id
- LEFT JOIN PLACE P ON P.Pla_ID=F.Path
+Left JOIN FROM_PLACE F ON D.FK_Place= F.Pla_Id
+LEFT JOIN PLACE P ON P.Pla_ID=F.Path
vista Place_Developer:
-select dev_name as "Desarrollador", dev_web_site as "Website", dev_email as "Correo", pais as "Pais"
+select dev_name as "Desarrollador", dev_web_site as "Website", dev_email as "Correo", pais as "Pais", Pla_Postal_Code as "Codigo Postal"
from place_developer
-where 1_Pais and/or 2_COD
+where 1_Pais 2_COD
filtros:
1_Pais
select pla_id as value, pla_name as name
from Place
where Pla_type='PAIS'
+order by name
+
2_COD
2_COD=$integer
@@ -66,9 +67,9 @@ where SU_Employee = true
ORDER BY SU.SU_Name
vista LIST_EMPLOYEE:
-SELECT su_ci,su_name as "Primer Nombre" ,emp_sec_name as "Segundo Nombre",su_lastname as "Primer Apellido",emp_sec_lastname as "Segundo Apellido",su_nick as "Nick", SU_active as "Activo"
+SELECT su_ci,su_name as "Primer Nombre" ,emp_sec_name as "Segundo Nombre",su_lastname as "Primer Apellido",emp_sec_lastname as "Segundo Apellido",su_nick as "Nick", (case when SU_active then 'SI' else 'NO' end) as "Activo"
FROM LIST_EMPLOYEE
-WHERE 1_Active and/or 2_Name and/or 3_Lastname
+where 1_Active 2_Name 3_Lastname
filtros:
1_Active= true/false
@@ -77,11 +78,10 @@ filtros:
4. Listado de Cargos, indicando los empleados activos que poseen dichos cargos. Deben visualizarse aquellos cargos que no posean empleados asignados. Debe permitir filtrar la información por el nombre del cargo y por el salario.
-
consulta:
-Select Obl_ID,Obl_Name,Obl_Salary,SU_Name, SU_Lastname
+(Select Obl_ID,Obl_Name,Obl_Salary,SU_Name, SU_Lastname
From Obligation, Sys_User, Employee
-where FK_Obligation=Obl_ID AND FK_Sys_user=SU_Nick AND SU_Active=true
+where FK_Obligation=Obl_ID AND FK_Sys_user=SU_Nick AND SU_Active=true)
Union
(Select Obl_id,Obl_Name,Obl_Salary, Null, Null
FROM Obligation
@@ -91,14 +91,15 @@ From Obligation o, Employee e
where o.Obl_id=e.FK_obligation)
vista report_4:
-select *
+select Obl_name as "Cargo", to_char(obl_salary::real, '999G999D9 $') as "Salario", su_name as "Nombre del empleado" , su_lastname as "Apellido del empleado"
from report_4
-where 1_Obl and/or 2_Salary
+where 1_Obl 2_Salary 3_Salary
filtros:
1_OBL
select Obl_id as value, obl_name as name
from Obligation
+order by name
2_Salary: >= , = ,<=, <,>
@@ -114,8 +115,8 @@ FROM DEVELOPER as D
GROUP BY D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name;
vista report_5:
-SELECT Pla_name ,SUM(Count) AS "Cantidad de Aplicaciones"
-FROM PRUEBA
+SELECT Pla_name as "PaÃs" ,SUM(Count) AS "Cantidad de Aplicaciones"
+FROM report_5
GROUP BY Pla_name
Order BY "Cantidad de Aplicaciones" desc
Limit 1;
@@ -124,14 +125,14 @@ Limit 1;
consulta:
-SELECT LE.SU_NICK, LE.SU_CI, LE.SU_NAME, LE.SU_LASTNAME, LE.Emp_Education,LE.Emp_fired_Date, O.Obl_Name, O.Obl_Salary
+SELECT LE.SU_CI, LE.SU_NAME, LE.SU_LASTNAME, LE.Emp_Education,LE.Emp_fired_Date, O.Obl_id, O.Obl_Name
FROM LIST_EMPLOYEE LE
LEFT JOIN OBLIGATION O ON LE.FK_Obligation = O.Obl_ID
vista report_6:
-select *
+select SU_CI as "Cedula", concat(SU_NAME,' ', SU_LASTNAME) as "Nombre", Emp_Education as "Nivel de Educación",Obl_Name as "Cargo", Emp_fired_Date as "Fecha de Despido"
from report_6
-where 1_NivelEducativo and/or 2_Emp_fired_date and/or 3_Obl_name
+where 1_NivelEducativo 2_Emp_fired_date 3_Obl_name
filtros: nivel educativo, status del empleado y cargo del empleado
1_NivelEducativo
@@ -148,11 +149,12 @@ from Obligation
7. Listado de Empleados (máximo 10 empleados) que más inician sesión en el sistema durante un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
vista report_7:
-select em.fk_sys_user, count(eve_id) as "Ingresos"
+select concat(su.SU_NAME,' ', su.SU_LASTNAME) as "Nombre",em.fk_sys_user as "Nick", count(eve_id) as "Ingresos"
from event
join employee as em on em.fk_sys_user=event.fk_sys_user
-where fk_event_info=2000 and 1_FechaInicial and 2_FechaFinal
-group by em.fk_sys_user
+ join sys_user as su on em.fk_sys_user=su.su_nick
+where fk_event_info=2000 and 1_FechaInicial 2_FechaFinal
+group by em.fk_sys_user,su.SU_NAME,su.SU_LASTNAME
order by "Ingresos" desc
limit 10
@@ -164,9 +166,9 @@ filtro:
vista report_8:
-SELECT Pla_Name,Con_Type,SUM(SOLD) as Sold
+SELECT Pla_Name as "Nombre",Con_Type as "Tipo de Contenido",SUM(SOLD) as "Descargas"
FROM LIST_INVOICE_FROM_PLACE
-WHERE 1_FechaInicial and 2_FechaFinal
+WHERE 1_FechaInicial 2_FechaFinal
GROUP BY PLa_name,Con_Type;
filtros:
@@ -178,10 +180,10 @@ filtros:
vista report_9:
-SELECT Pla_Name,Con_Type,SUM(Total_cost) as Total
+SELECT Pla_Name as "Nombre",Con_Type as "Tipo de Contenido",SUM(Total_cost) as "Ingresos", extract(isoyear from inv_emission_date) as ano
FROM LIST_INVOICE_FROM_PLACE
-WHERE 1_FechaInicial and 2_FechaFinal
-GROUP BY Con_Type, PLa_name;
+WHERE 1_FechaInicial 2_FechaFinal 3_typecon
+GROUP BY ano,Con_Type, PLa_name;
filtros:
1_FechaInicial => '2014-01-01'
@@ -196,7 +198,7 @@ SELECT P.Pro_Name, COUNT (C.FK_Promotion) as "Nº de veces aplicada"
FROM PROMOTION as P
LEFT JOIN PURCHASE C ON C.Fk_Promotion = P.Pro_ID
JOIN INVOICE I ON C.FK_Invoice = I.Inv_ID
-where I.Inv_Emission_Date >= 1_FechaIni AND 2_FechaFin
+where 1_FechaIni 2_FechaFin
GROUP BY P.Pro_Name
Order By "Nº de veces aplicada" desc
Limit 10;
@@ -210,15 +212,15 @@ filtros:
vista report_11:
-SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, extract(isoyear from I.inv_emission_date) as "Año"
+SELECT C.Con_Name as "Nombre", COUNT(P.FK_CONTENT) as "Descargas",SUM(P.Pur_Cost) as "Ingresos", extract(isoyear from I.inv_emission_date) as "Año"
FROM CONTENT as C, PURCHASE as P
LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
LEFT JOIN PLACE X ON X.Pla_ID=F.Path
-WHERE CON_ID=FK_Content and extract(isoyear from I.inv_emission_date) =1_Fecha
+WHERE CON_ID=P.FK_Content and 1_Fecha
GROUP BY C.Con_ID,C.Con_name,"Año"
-Order by SOLD desc, Total_Cost desc
+Order by "Descargas" desc, "Ingresos" desc
Limit 15
filtros
@@ -227,11 +229,11 @@ filtros
12. Listado de los 25 contenidos mejor calificados agrupado por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros), debe visualizarse el promedio de calificación del contenido. Debe permitir filtrar la información por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros).
vista report_12:
-SELECT C.Con_ID, C.Con_Name, C.Con_Type, ROUND (AVG(R.Rat_Value)) as Rate
+SELECT C.Con_Name as "Name", C.Con_Type as "Tipo de Contenido", ROUND (AVG(R.Rat_Value)) as "Calificacion Promedio"
From Content as C, Rate as R
-where C.Con_ID = R.Fk_Content AND C.Con_type=1_Tipo
+where C.Con_ID = R.Fk_Content AND 1_Tipo
Group BY C.Con_Type,C.Con_id, C.Con_Name
-Order BY Rate desc
+Order BY "Calificacion Promedio" desc
Limit 25
filtros
@@ -241,15 +243,15 @@ filtros
vista report_13:
-SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, extract(isoyear from I.inv_emission_date) as "Año"
+SELECT C.Con_Name as "Nombre", COUNT(P.FK_CONTENT) as "Descargas", SUM(P.Pur_Cost) as "Ingresos", extract(isoyear from I.inv_emission_date) as "Año"
FROM CONTENT as C, PURCHASE as P
LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
LEFT JOIN PLACE X ON X.Pla_ID=F.Path
-WHERE CON_ID=FK_Content and extract(isoyear from I.inv_emission_date)=1_Fecha
+WHERE CON_ID=FK_Content and 1_Fecha
GROUP BY C.Con_ID,C.Con_name,I.Inv_Emission_Date, "Año"
-Order by SOLD asc , Total_Cost, "Año"
+Order by "Descargas" asc , "Ingresos", "Año"
Limit 10
filtros:
@@ -259,10 +261,12 @@ filtros:
vista report_14:
-SELECT S.SU_NICK, COUNT(C.FK_Sys_USER)
+SELECT S.SU_NICK as "Usuario", COUNT(C.FK_Sys_USER) as "Numero de Comentarios"
FROM SYS_USER AS S, COMMENT AS C
-where S.SU_Nick = C.FK_Sys_USER AND C.COM_DATE >=1_FechaIni AND C.COM_DATE<=2_FechaFin
-GROUP BY S.SU_NICK;
+where 1_FechaIni 2_FechaFin and S.SU_Nick = C.FK_Sys_USER
+GROUP BY S.SU_NICK
+ORDER BY "Numero de Comentarios" desc
+LIMIT 20
filtros:
1_FechaIni = '2015-01-01'
@@ -272,10 +276,12 @@ filtros:
vista report_15:
-SELECT S.SU_NICK, COUNT(C.FK_Sys_USER)
-FROM SYS_USER AS S, COMMENT AS C
-where S.SU_Nick = C.FK_Sys_USER AND C.COM_DATE >=1_FechaIni AND C.COM_DATE<=2_FechaFin
-GROUP BY S.SU_NICK;
+SELECT S.SU_NICK as "Usuario", COUNT(C.FK_Sys_USER) as "Numero de Comentarios"
+FROM SYS_USER AS S, RATE AS C
+where S.SU_Nick = C.FK_Sys_USER AND 1_FechaIni 2_FechaFin
+GROUP BY S.SU_NICK
+ORDER BY "Numero de Comentarios" desc
+LIMIT 20
filtros:
1_FechaIni = '2015-01-01'
@@ -285,10 +291,10 @@ filtros:
vista report_16:
-SELECT C.con_name, round (AVG(r.Rat_value)) as "Calificacion"
+SELECT C.con_name as "Nombre", round (AVG(r.Rat_value)) as "Calificacion"
FROM Content AS C, Rate AS r
-where C.Con_id = R.FK_Content
-GROUP BY C.Con_name
+WHERE C.Con_id = R.FK_Content
+GROUP BY C.Con_id, C.con_name
Order by "Calificacion" desc
limit 25;
@@ -296,9 +302,9 @@ limit 25;
vista report_17:
-SELECT C.con_name, round (AVG(r.Rat_value)) as "Calificacion"
+SELECT C.con_name as "Numbre", round (AVG(r.Rat_value)) as "Calificacion"
FROM Content AS C, Rate AS r
-where C.Con_id = R.FK_Content
+WHERE C.Con_id = R.FK_Content
GROUP BY C.Con_name
Order by "Calificacion"
limit 25;
@@ -308,30 +314,48 @@ limit 25;
consulta :
-select COUNT (DISTINCT p.FK_Content) as "Total de descargas",COUNT(DISTINCT e.eve_reg_id) as "Total de empleados activos", COUNT(j.fk_event_info) as "Total de clientes registrados", COUNT(q.fk_event_info) as "Total contenidos registrados"
-from Purchase p
- left join event j on j.fk_event_info=2003
- left join event q on q.fk_event_info=3026 or q.fk_event_info=3040 or q.fk_event_info=3047 or q.fk_event_info=3059
- left join event e on e.fk_event_info=2000
+SELECT (
+SELECT COUNT(DISTINCT eve_reg_id) as "Total de empleados activos"
+FROM EVENT
+where fk_event_info=2000 and 1_FechaIn 2_FechaFin),
+(
+SELECT COUNT(fk_event_info) as "Total de clientes registrados"
+FROM EVENT
+where fk_event_info=2003 and 1_FechaIn 2_FechaFin),
+(
+SELECT COUNT(fk_event_info) as "Total contenidos registrados"
+FROM EVENT
+where fk_event_info=3026 or fk_event_info=3040 or fk_event_info=3047 or fk_event_info=3059 and 1_FechaIn 2_FechaFin),
+(
+SELECT COUNT (FK_Content) as "Total de descargas"
+FROM PURCHASE, INVOICE
+Where FK_Invoice=Inv_Id 3_FechaIn1 4_FechaFin1)
+
+
vista:
Preguntar a romulo como filtarlos por fecha
+
+
19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
vista report_19:
-SELECT SUM(P.Pur_Cost) as Total_cost,X.Pla_Name
-FROM CONTENT as C, PURCHASE as P
- LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
- LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
- LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
- LEFT JOIN PLACE X ON X.Pla_ID=F.Path
-WHERE CON_ID=FK_Content and Con_Type='APLICACION' and I.Inv_Emission_Date >=1_FechaIn and I.Inv_emission_date <= 2_FechaFin
+SELECT SUM(P.Pur_Cost) as "Ingresos" ,X.Pla_Name as "Pais"
+FROM CONTENT as C
+JOIN PURCHASE P ON P.FK_Content=C.Con_id
+JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+JOIN APPLICATION A ON A.FK_Content=C.con_id
+JOIN DEVELOPER S ON S.Dev_ID = A.FK_Developer
+JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE C.Con_Type='APLICACION' and 1_FechaIn 2_FechaFin
GROUP BY X.Pla_name
-Order by total_cost desc
-limit 1;
+Order by "Ingresos" desc
+limit 1
+
filtros:
1_FechaIn = '2014-01-01'
@@ -381,7 +405,7 @@ select su_nick,
where sys_user.su_nick=fk_sys_user
) as comentarios
from sys_user
-order by descargas desc;
+order by descargas desc
Vista: report_21
@@ -423,48 +447,50 @@ order by fk_sys_user
Consulta:
select
- os_id,
- os_name as "Sistema Operativo",
- count(A.fk_content) as "Descargas",
- sum(pur_cost) as "Ingresos",
- extract(isoyear from inv_emission_date) as "Año",
- round(
- (case when (
- select sum(pur_cost)
- from (
- select os_id,os_name, application.fk_content
- from operating_system
- join version on fk_operating_system=os_id
- join app_ver on fk_version=ver_id
- join application on application.fk_content=app_ver.fk_application
- group by os_id, application.fk_content) as A
- join purchase on A.fk_content=purchase.fk_content
- join invoice on inv_id=fk_invoice
- where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
- )=0 then 0
- else(sum(pur_cost)*100)/(
- select sum(pur_cost)
- from (
- select os_id,os_name, application.fk_content
- from operating_system
- join version on fk_operating_system=os_id
- join app_ver on fk_version=ver_id
- join application on application.fk_content=app_ver.fk_application
- group by os_id, application.fk_content
- ) as A
- join purchase on A.fk_content=purchase.fk_content
- join invoice on inv_id=fk_invoice
- where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
- ) end )::numeric,2) as "% del total"
+os_id,
+os_name as "Sistema Operativo",
+count(A.fk_content) as "Descargas",
+sum(pur_cost) as "Ingresos",
+extract(isoyear from inv_emission_date) as "Año",
+round(
+(case when (
+select sum(pur_cost)
+from (
+select os_id,os_name, application.fk_content
+from operating_system
+join version on fk_operating_system=os_id
+join app_ver on fk_version=ver_id
+join application on application.fk_content=app_ver.fk_application
+group by os_id, application.fk_content) as A
+join purchase on A.fk_content=purchase.fk_content
+join invoice on inv_id=fk_invoice
+where extract(isoyear from inv_emission_date)=extract(isoyear from inv_emission_date)
+)=0 then 0
+else(sum(pur_cost)*100)/(
+select sum(pur_cost)
+from (
+select os_id,os_name, application.fk_content
+from operating_system
+join version on fk_operating_system=os_id
+join app_ver on fk_version=ver_id
+join application on application.fk_content=app_ver.fk_application
+group by os_id, application.fk_content
+) as A
+join purchase on A.fk_content=purchase.fk_content
+join invoice on inv_id=fk_invoice
+where extract(isoyear from inv_emission_date)=extract(isoyear from inv_emission_date)
+) end )::numeric,2) as "% del total"
from (select os_id,os_name, application.fk_content
- from operating_system
- join version on fk_operating_system=os_id
- join app_ver on fk_version=ver_id
- join application on application.fk_content=app_ver.fk_application
- group by os_id, application.fk_content) as A
- join purchase on A.fk_content=purchase.fk_content
- join invoice as inv on inv_id=fk_invoice
-group by "Año",os_id,os_name,inv.inv_emission_date
+from operating_system
+join version on fk_operating_system=os_id
+join app_ver on fk_version=ver_id
+join application on application.fk_content=app_ver.fk_application
+group by os_id, application.fk_content) as A
+join purchase on A.fk_content=purchase.fk_content
+join invoice as inv on inv_id=fk_invoice
+group by "Año",os_id,os_name
+
+
Vista REPORT_23
consulta a la vista:
@@ -481,7 +507,7 @@ select distinct "Año" as name, "Año" as value from report_23 order by "Año"
24. Por categorÃa de pelÃcula: total de pelÃculas descargadas, ingresos provenientes de dichas descargas, porcentaje que representan dichos ingresos del total de todas las categorÃas. Debe permitir filtrar la información por categorÃa.
consulta:
-select cat_id, cat_name "Categoria de Pelicula",count (movie.fk_content) "Descargas", round(sum(pur_cost),2) as "Ingresos", round(((sum(pur_cost)*100)/(select sum(pur_cost)
+select cat_id, cat_name "Categoria de Pelicula",count (movie.fk_content) "Descargas", round(sum(pur_cost)::numeric,2) as "Ingresos", round(((sum(pur_cost)*100)/(select sum(pur_cost)
from movie
join purchase on movie.fk_content=purchase.fk_content))::numeric,2) as "% del total"
from category
@@ -490,11 +516,11 @@ from category
join purchase on movie.fk_content=purchase.fk_content
group by cat_id
-vista VIEW_REP_24
+vista report_24
consulta a la vista:
select "Categoria de Pelicula", "Descargas", "Ingresos", "% del total"
-from VIEW_REP_24
+from report_24
where 1_cat
filtros:
@@ -520,11 +546,11 @@ from author
group by "Año", aut_name, aut_id
order by "Año"
-Vista: VIEW_REP_25
+Vista: report_25
consulta a la vista:
select "Autor", "Año", "Descargas", "Ingresos"
-from VIEW_REP_25
+from report_25
where 1_autor
Filtros:
@@ -544,7 +570,8 @@ from category
left join content_category on fk_category=cat_id
left join album on album.fk_content=content_category.fk_content
left join purchase on purchase.fk_content= album.fk_content
-where cat_cont_type='MUSICA' 1_f_star 2_f_end
+ left join invoice on fk_invoice=inv_id
+where cat_cont_type='MUSICA' and 1_f_star 2_f_end
group by cat_id
order by "Ingresos"
limit 1
@@ -577,7 +604,7 @@ limit 10
filtros:
1_year: and extract(isoyear from inv_emission_date)='año'
-select distinct extract(isoyear from inv_emission_date)
+select distinct extract(isoyear from inv_emission_date) as value, extract(isoyear from inv_emission_date) as name
from invoice, purchase, book, editorial_record
where fk_invoice=inv_id and purchase.fk_content=book.fk_content and fk_editorial_record=er_id and er_type=true
@@ -628,44 +655,44 @@ select
(
case
when C.mes=1
- then 'Enero'
+then 'Enero'
when C.mes=2
- then 'Febrero'
+then 'Febrero'
when C.mes=3
- then 'Marzo'
+then 'Marzo'
when C.mes=4
- then 'Abril'
+then 'Abril'
when C.mes=5
- then 'Mayo'
+then 'Mayo'
when C.mes=6
- then 'Junio'
+then 'Junio'
when C.mes=7
- then 'Julio'
+then 'Julio'
when C.mes=8
- then 'Agosto'
+then 'Agosto'
when C.mes=9
- then 'Septiembre'
+then 'Septiembre'
when C.mes=10
- then 'Octubre'
+then 'Octubre'
when C.mes=11
- then 'Noviembre'
+then 'Noviembre'
when C.mes=12
- then 'Diciembre'
+then 'Diciembre'
end
) as mes , c.año as año, c.descargas as descargas
from (select max(descargas) as descargas, año
- from (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
- from invoice, purchase
- where fk_invoice=inv_id
- group by mes,año
- ) as A
- group by año
- ) as B,
- (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
- from invoice, purchase
- where fk_invoice=inv_id
- group by mes,año
- ) as C
+from (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+from invoice, purchase
+where fk_invoice=inv_id
+group by mes,año
+) as A
+group by año
+) as B,
+(select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+from invoice, purchase
+where fk_invoice=inv_id
+group by mes,año
+) as C
where B.año=C.año and B.descargas=C.descargas
vista: report_29
@@ -687,44 +714,44 @@ select
(
case
when C.mes=1
- then 'Enero'
+then 'Enero'
when C.mes=2
- then 'Febrero'
+then 'Febrero'
when C.mes=3
- then 'Marzo'
+then 'Marzo'
when C.mes=4
- then 'Abril'
+then 'Abril'
when C.mes=5
- then 'Mayo'
+then 'Mayo'
when C.mes=6
- then 'Junio'
+then 'Junio'
when C.mes=7
- then 'Julio'
+then 'Julio'
when C.mes=8
- then 'Agosto'
+then 'Agosto'
when C.mes=9
- then 'Septiembre'
+then 'Septiembre'
when C.mes=10
- then 'Octubre'
+then 'Octubre'
when C.mes=11
- then 'Noviembre'
+then 'Noviembre'
when C.mes=12
- then 'Diciembre'
+then 'Diciembre'
end
) as mes , c.año as año, c.ingresos as ingresos
from (select max(ingresos) as ingresos, año
- from (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
- from invoice, purchase
- where fk_invoice=inv_id
- group by mes,año
- ) as A
- group by año
- ) as B,
- (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
- from invoice, purchase
- where fk_invoice=inv_id
- group by mes,año
- ) as C
+from (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+from invoice, purchase
+where fk_invoice=inv_id
+group by mes,año
+) as A
+group by año
+) as B,
+(select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+from invoice, purchase
+where fk_invoice=inv_id
+group by mes,año
+) as C
where B.año=C.año and B.ingresos=C.ingresos
vista: report_30
@@ -759,29 +786,35 @@ where 1_Pais
filtros:
1_Pais
-select Pla_ID as value, Pla_Name as name
-from place
-where Pla_Type='PAIS'
+select distinct path as value, Pla_Name as name
+from report_31
+
32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
consulta:
-select c.con_name , c.con_type, ca.cat_id, ca.cat_name, d.dev_id, d.dev_name, ad.ad_id, ad.ad_name, au.aut_id, au.aut_name
+select c.con_name , c.con_type, ca.cat_id, ca.cat_name,(case when c.con_type='APLICACION' then d.dev_id
+ when c.con_type='PELICULA' then ad.ad_id
+ else au.aut_id end) as id_creador,
+ (case when c.con_type='APLICACION' then d.dev_name
+when c.con_type='PELICULA' then ad.ad_name
+ else au.aut_name end) as name_creador
from content as c
- left join content_category cc on cc.Fk_content = c.con_id
- left join category ca on ca.cat_id=cc.fk_category
- left join application a on a.fk_content=c.con_id
- left join developer d on d.dev_id=a.fk_developer
- left join movie m on m.fk_content=c.con_id
- left join movie_roll mr on mr.fk_movie=m.fk_content
- left join actor_director ad on ad.ad_id=mr.fk_actor_director
- left join book b on b.fk_content=c.con_id
- left join boo_aut ba on ba.fk_book = b.fk_content
- left join album al on al.fk_content=c.con_id
- left join alb_aut alu on alu.fk_album=al.fk_content
- left join author au on au.aut_id = ba.fk_author or au.aut_id=alu.fk_author
+left join content_category cc on cc.Fk_content = c.con_id
+left join category ca on ca.cat_id=cc.fk_category
+left join application a on a.fk_content=c.con_id
+left join developer d on d.dev_id=a.fk_developer
+left join movie m on m.fk_content=c.con_id
+left join movie_roll mr on mr.fk_movie=m.fk_content
+left join actor_director ad on ad.ad_id=mr.fk_actor_director
+left join book b on b.fk_content=c.con_id
+left join boo_aut ba on ba.fk_book = b.fk_content
+left join album al on al.fk_content=c.con_id
+left join alb_aut alu on alu.fk_album=al.fk_content
+left join author au on au.aut_id = ba.fk_author or au.aut_id=alu.fk_author
+
vista report_32
@@ -840,18 +873,18 @@ select sm_id as value, sm_name as name
from Sys_module
-35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
+35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
consulta:
-select su.su_nick, su.su_name, su.su_lastname, e.eve_date, e.eve_message, e.eve_reg_id,c.obl_name
+select su.su_nick, su.su_name, su.su_lastname, e.eve_date, cast (e.eve_message as int) as "Cargo",c.obl_id,c.obl_name
from Sys_user as SU
- left join event e on e.fk_sys_user=su.su_nick and e.fk_event_info=2006
- left join Obligation c on c.Obl_id=e.eve_reg_id
+left join event e on e.fk_sys_user=su.su_nick and e.fk_event_info=2006
+left join Obligation c on c.Obl_id=cast (e.eve_message as int)
-vista_report_34:
+vista_report_35:
select su_nick as nick, su_name as nombre, su_lastname as apellido, eve_date as fecha, eve_message as 'Mensaje', obl_name as 'Cargo'
-from report_34
+from report_35
where eve_date >= 1_FechaIni and eve_Data<=2_FechaFin
filtros:
diff --git a/src/php/protocol/cartegorys.class.php b/src/php/protocol/cartegorys.class.php
index 2bbefd9..16304f8 100644
--- a/src/php/protocol/cartegorys.class.php
+++ b/src/php/protocol/cartegorys.class.php
@@ -70,7 +70,7 @@ class Categorys implements Protocol {
WHERE cat_id=".$_POST["catID"];
try {
Core::$db->query($sql);
- Log::sysLog(8012,"cat_name=".$_POST["catName"].",cat_cont_type=".$_POST["catTipe"],$_POST["catID"],Core::$user->getNick());
+ Log::sysLog(3000,"cat_name=".$_POST["catName"].",cat_cont_type=".$_POST["catTipe"],$_POST["catID"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 411 ++++++++++++++++++---------------
src/php/protocol/cartegorys.class.php | 2 +-
2 files changed, 223 insertions(+), 190 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-24 04:00:16
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via a65ba4106151ffd3aea3605754ad492a147ab16f (commit)
via a2114145046e8f86efb221e695bc56c14a5c0b41 (commit)
from 6e804f5ae69310fc78af1139b9514f9a36dc1d28 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a65ba4106151ffd3aea3605754ad492a147ab16f
Merge: a211414 6e804f5
Author: Eduardo <epp...@gm...>
Date: Fri Jan 23 23:28:48 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
commit a2114145046e8f86efb221e695bc56c14a5c0b41
Author: Eduardo <epp...@gm...>
Date: Fri Jan 23 23:27:36 2015 -0430
Vistas y archivo Drop con eliminacion de vistas
diff --git a/docs/Entrega IV/Vistas.sql b/docs/Entrega IV/Vistas.sql
new file mode 100644
index 0000000..7e41c7c
--- /dev/null
+++ b/docs/Entrega IV/Vistas.sql
@@ -0,0 +1,375 @@
+CREATE VIEW FROM_PLACE AS (
+ WITH RECURSIVE place_tree(pla_id,pla_name,pla_Type,pla_postal_code,path) as (
+ SELECT pla_id,pla_name,pla_Type,pla_postal_code, pla_id
+ FROM place
+ where pla_type='PAIS'
+ UNION ALL
+ SELECT place.pla_id, place.pla_name,place.pla_type,place.pla_postal_code, path
+ from place_tree
+ JOIN place ON fk_place=place_tree.pla_id
+ )Select * from place_tree Order By path
+);
+
+CREATE VIEW LIST_INVOICE_FROM_PLACE as (
+ SELECT C.Con_Type, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, I.Inv_Emission_Date, S.Su_Nick, F.Path, X.Pla_Name
+ FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+ WHERE CON_ID=FK_Content
+ GROUP BY C.Con_Type, I.Inv_Emission_Date, S.SU_Nick, F.Path, X.Pla_name
+ );
+
+CREATE VIEW REPORT_1 AS (
+ SELECT O.OS_ID,O.OS_NAME,O.FK_License,V.Ver_id, V.FK_OPERATING_SYSTEM, V.VER_NAME, V.VER_RELEASE_DATE, D.DEV_ID, D.DEV_NAME
+ FROM OPERATING_SYSTEM O
+ LEFT JOIN VERSION V ON V.FK_OPERATING_SYSTEM = O.OS_ID
+ LEFT JOIN DEVELOPER D ON D.Dev_Company=TRUE AND O.FK_DEVELOPER=D.DEV_ID
+);
+
+
+CREATE VIEW PLACE_DEVELOPER AS (
+ SELECT D.*, F.Pla_Name , F.Pla_Postal_Code ,P.Pla_name as Pais, F.Path
+ FROM DEVELOPER as D
+ Left JOIN FROM_PLACE F ON D.FK_Place= F.Pla_Id
+ LEFT JOIN PLACE P ON P.Pla_ID=F.Path
+);
+
+CREATE VIEW LIST_EMPLOYEE AS (
+ SELECT SU.* , E.*
+ FROM SYS_USER as SU
+ LEFT JOIN EMPLOYEE E ON E.FK_Sys_User=SU.SU_Nick
+ where SU_Employee = true
+ ORDER BY SU.SU_Name
+);
+
+CREATE VIEW REPORT_4 AS (
+ Select Obl_ID,Obl_Name,Obl_Salary,SU_Name, SU_Lastname
+ From Obligation, Sys_User, Employee
+ where FK_Obligation=Obl_ID AND FK_Sys_user=SU_Nick AND SU_Active=true
+ Union
+ (Select Obl_id,Obl_Name,Obl_Salary, Null, Null
+ FROM Obligation
+ except
+ Select o.Obl_id,o.Obl_Name, o.Obl_salary,null, null
+ From Obligation o, Employee e
+ where o.Obl_id=e.FK_obligation)
+);
+
+CREATE VIEW REPORT_5 AS (
+ SELECT D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name, COUNT(A.FK_DEVELOPER)
+ FROM DEVELOPER as D
+ JOIN FROM_PLACE F ON D.FK_Place=F.Pla_Id
+ JOIN PLACE P ON P.Pla_ID=F.Path
+ JOIN APPLICATION AS A ON A.fk_Developer=D.Dev_ID
+ GROUP BY D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name;
+);
+
+CREATE VIEW REPORT_6 AS (
+ SELECT LE.SU_CI, LE.SU_NAME, LE.SU_LASTNAME, LE.Emp_Education,LE.Emp_fired_Date, O.Obl_ID,O.Obl_Name
+ FROM LIST_EMPLOYEE LE
+ LEFT JOIN OBLIGATION O ON LE.FK_Obligation = O.Obl_ID
+);
+
+
+CREATE VIEW REPORT_20 AS (
+ select sr_id, sr_name, (
+ select count(fk_sr)
+ from sys_user
+ where fk_sr=sys_roll.sr_id and su_active
+ ) as activos, (
+ select count(fk_sr)
+ from sys_user
+ where fk_sr=sys_roll.sr_id and not su_active
+ ) as inactivos
+ from sys_roll
+);
+
+CREATE VIEW REPORT_21 AS (
+ select su_nick,
+ (select count(pur_id)
+ from invoice, purchase
+ where fk_invoice=inv_id and sys_user.su_nick=fk_sys_user
+ ) as descargas,
+ (select count(fk_sys_user)
+ from rate
+ where sys_user.su_nick=fk_sys_user
+ ) as calificaciones,
+ (select count(com_id)
+ from comment
+ where sys_user.su_nick=fk_sys_user
+ ) as comentarios
+ from sys_user
+ order by descargas desc
+);
+
+CREATE VIEW REPORT_22 AS (
+ select su_nick, con_name, pur_cost, inv_emission_date
+ from sys_user
+ join invoice on fk_sys_user=su_nick
+ join purchase on fk_invoice=inv_id
+ join content on fk_content=con_id
+);
+
+CREATE VIEW REPORT_23 AS (
+ select
+ os_id,
+ os_name as "Sistema Operativo",
+ count(A.fk_content) as "Descargas",
+ sum(pur_cost) as "Ingresos",
+ extract(isoyear from inv_emission_date) as "Año",
+ round(
+ (case when (
+ select sum(pur_cost)
+ from (
+ select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
+ )=0 then 0
+ else(sum(pur_cost)*100)/(
+ select sum(pur_cost)
+ from (
+ select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content
+ ) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
+ ) end )::numeric,2) as "% del total"
+from (select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice as inv on inv_id=fk_invoice
+group by "Año",os_id,os_name,inv.inv_emission_date
+);
+
+
+CREATE VIEW REPORT_24 as (
+ select cat_id, cat_name "Categoria de Pelicula",count (movie.fk_content) "Descargas", round(sum(pur_cost)::numeric,2) as "Ingresos", round(((sum(pur_cost)*100)/(select sum(pur_cost)
+ from movie
+ join purchase on movie.fk_content=purchase.fk_content))::numeric,2) as "% del total"
+from category
+ join content_category on fk_category=cat_id
+ join movie on movie.fk_content=content_category.fk_content
+ join purchase on movie.fk_content=purchase.fk_content
+group by cat_id
+);
+
+
+CREATE VIEW REPORT_25 AS (
+ select aut_id, aut_name as "Autor", extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ from author
+ join alb_aut on fk_author=aut_id
+ join album on album.fk_content=alb_aut.fk_album
+ join purchase on album.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ group by "Año", aut_name, aut_id
+ order by "Año"
+);
+
+CREATE VIEW REPORT_29 AS (
+ select
+(
+case
+when C.mes=1
+ then 'Enero'
+when C.mes=2
+ then 'Febrero'
+when C.mes=3
+ then 'Marzo'
+when C.mes=4
+ then 'Abril'
+when C.mes=5
+ then 'Mayo'
+when C.mes=6
+ then 'Junio'
+when C.mes=7
+ then 'Julio'
+when C.mes=8
+ then 'Agosto'
+when C.mes=9
+ then 'Septiembre'
+when C.mes=10
+ then 'Octubre'
+when C.mes=11
+ then 'Noviembre'
+when C.mes=12
+ then 'Diciembre'
+end
+) as mes , c.año as año, c.descargas as descargas
+from (select max(descargas) as descargas, año
+ from (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as A
+ group by año
+ ) as B,
+ (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as C
+where B.año=C.año and B.descargas=C.descargas
+);
+
+CREATE VIEW REPORT_30 AS (
+ select
+(
+case
+when C.mes=1
+ then 'Enero'
+when C.mes=2
+ then 'Febrero'
+when C.mes=3
+ then 'Marzo'
+when C.mes=4
+ then 'Abril'
+when C.mes=5
+ then 'Mayo'
+when C.mes=6
+ then 'Junio'
+when C.mes=7
+ then 'Julio'
+when C.mes=8
+ then 'Agosto'
+when C.mes=9
+ then 'Septiembre'
+when C.mes=10
+ then 'Octubre'
+when C.mes=11
+ then 'Noviembre'
+when C.mes=12
+ then 'Diciembre'
+end
+) as mes , c.año as año, c.ingresos as ingresos
+from (select max(ingresos) as ingresos, año
+ from (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as A
+ group by año
+ ) as B,
+ (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as C
+where B.año=C.año and B.ingresos=C.ingresos
+);
+
+CREATE VIEW REPORT_31 AS (
+ select Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,FP.Path,P.Pla_name, Max(E.Eve_date) as date
+from Sys_User as SU
+ left join FROM_PLACE as FP on SU.FK_Place=FP.Pla_id
+ left join PLACE as P on P.Pla_id=FP.Path
+ left join EVENT as E ON E.FK_Event_info=2000 and E.FK_Sys_user=SU.SU_Nick
+where Su.Su_active = false
+Group by Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,P.Pla_name,FP.Path
+);
+
+CREATE VIEW REPORT_32 AS (
+select c.con_name , c.con_type, ca.cat_id, ca.cat_name,(case when c.con_type='APLICACION' then d.dev_id
+ when c.con_type='PELICULA' then ad.ad_id
+ else au.aut_id end) as id_creador,
+ (case when c.con_type='APLICACION' then d.dev_name
+ when c.con_type='PELICULA' then ad.ad_name
+ else au.aut_name end) as name_creador
+from content as c
+ left join content_category cc on cc.Fk_content = c.con_id
+ left join category ca on ca.cat_id=cc.fk_category
+ left join application a on a.fk_content=c.con_id
+ left join developer d on d.dev_id=a.fk_developer
+ left join movie m on m.fk_content=c.con_id
+ left join movie_roll mr on mr.fk_movie=m.fk_content
+ left join actor_director ad on ad.ad_id=mr.fk_actor_director
+ left join book b on b.fk_content=c.con_id
+ left join boo_aut ba on ba.fk_book = b.fk_content
+ left join album al on al.fk_content=c.con_id
+ left join alb_aut alu on alu.fk_album=al.fk_content
+ left join author au on au.aut_id = ba.fk_author or au.aut_id=alu.fk_author
+);
+
+CREATE VIEW REPORT_34 AS (
+ select Su.SU_Nick, Su.SU_name, Su.SU_Lastname,sm.sm_id, sm.sm_name
+ from Sys_user as SU
+ left join Sys_roll sr on SR.sr_id=SU.Fk_Sr
+ left join Roll_access ra on ra.fk_sys_roll = sr.sr_id
+ left join Sys_Module sm on Sm.sm_id=ra.fk_sys_module
+ where ra.ra_add=true and ra.ra_modify=true and ra.ra_remove=true
+);
+
+
+CREATE VIEW REPORT_35 AS (
+ select su.su_nick, su.su_name, su.su_lastname, e.eve_date, cast (e.eve_message as int) as "Cargo",c.obl_id,c.obl_name
+ from Sys_user as SU
+ left join event e on e.fk_sys_user=su.su_nick and e.fk_event_info=2006
+ left join Obligation c on c.Obl_id=cast (e.eve_message as int)
+);
+
+CREATE VIEW REPORT_36 AS (
+ select eve_date as date,fk_sys_user as nick,ei_level as level,(case when ei_level=0 then 'Debug' when ei_level=1 then 'Info' when ei_level=2 then 'Error' when ei_level=3 then 'Alerta' when ei_level=4 then 'Critico' end) as level_name, (ei_description || ' ' || eve_message) as message, sm_id as module, sm_name as module_name
+ from event,event_info,sys_module
+ where ei_id=fk_event_info and fk_sys_module=sm_id
+);
+
+CREATE VIEW REPORT_37 AS (
+ select lic_id, lic_name, cat_id, cat_name, count(pur_id) as descargas
+ from license
+ join application on fk_license=lic_id
+ join content_category on content_category.fk_content=application.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=application.fk_content
+ group by cat_id, lic_id
+ order by lic_name
+);
+
+CREATE VIEW REPORT_38 AS (
+ select las_type, lan_id, lan_name, cat_id, cat_name, count(pur_id) descargas
+ from language
+ join lan_aud_sub on fk_language=lan_id
+ join movie on fk_movie=movie.fk_content
+ join content_category on content_category.fk_content=movie.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=movie.fk_content
+ group by las_type, lan_id, lan_id, cat_id, cat_name
+);
+
+CREATE VIEW REPORT_39 AS (
+ select aut_id, aut_name as "Autor", extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ from author
+ join boo_aut on fk_author=aut_id
+ join book on book.fk_content=boo_aut.fk_book
+ join purchase on book.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ group by "Año", aut_name, aut_id
+ order by "Año"
+);
+
+CREATE VIEW REPORT_40 AS (
+ select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ from developer
+ join application on fk_developer=dev_id
+ join purchase on application.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ group by "Año", dev_name, dev_id
+ order by "Año"
+);
+
+
diff --git a/src/sql/drops.sql b/src/sql/drops.sql
index 600d33e..74aab7e 100644
--- a/src/sql/drops.sql
+++ b/src/sql/drops.sql
@@ -14,6 +14,34 @@ TRUNCATE TABLE Tabla;
DROP TABLE IF EXISTS Tabla;
*/
+/*--------------------------------ELIMINACION DE LAS VISTAS----------------------------------------------------------*/
+DROP VIEW REPORT_40;
+DROP VIEW REPORT_39;
+DROP VIEW REPORT_38;
+DROP VIEW REPORT_37;
+DROP VIEW REPORT_36;
+DROP VIEW REPORT_35;
+DROP VIEW REPORT_34;
+DROP VIEW REPORT_32;
+DROP VIEW REPORT_31;
+DROP VIEW REPORT_30;
+DROP VIEW REPORT_29;
+DROP VIEW REPORT_25;
+DROP VIEW REPORT_24;
+DROP VIEW REPORT_23;
+DROP VIEW REPORT_22;
+DROP VIEW REPORT_21;
+DROP VIEW REPORT_20;
+DROP VIEW REPORT_6;
+DROP VIEW REPORT_5;
+DROP VIEW REPORT_4;
+DROP VIEW LIST_EMPLOYEE;
+DROP VIEW PLACE_DEVELOPER;
+DROP VIEW REPORT_1;
+DROP VIEW LIST_INVOICE_FROM_PLACE;
+DROP VIEW FROM_PLACE;
+
+
/*-------------ELIMINACION DE LOS CONSTRAINTS---------------*/
/*FK_ALBUM_ALB_AUT
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/Vistas.sql | 375 ++++++++++++++++++++++++++++++++++++++++++++
src/sql/drops.sql | 28 ++++
2 files changed, 403 insertions(+), 0 deletions(-)
create mode 100644 docs/Entrega IV/Vistas.sql
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-23 23:08:11
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 6e804f5ae69310fc78af1139b9514f9a36dc1d28 (commit)
from b946ddf057f7af31e2b7550da38dcf1909a1908d (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6e804f5ae69310fc78af1139b9514f9a36dc1d28
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 23 18:37:53 2015 -0430
Retorno al estado Anterior
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/php/protocol/userp.class.php b/src/php/protocol/userp.class.php
index 5fb8d30..f1b0743 100644
--- a/src/php/protocol/userp.class.php
+++ b/src/php/protocol/userp.class.php
@@ -151,12 +151,11 @@ class Userp implements Protocol {
SET fk_sr=2, su_employee=false
WHERE su_nick='".$_GET["id"]."'";
$sql1="
- update employe
- SET Emp_fired_Date=(current_date)
- WHERE su_nick='".$_GET["id"]."'";
+ DELETE FROM employee
+ WHERE fk_sys_user='".$_GET["id"]."'";
try {
Core::$db->query($sql);
- //Core::$db->query($sql1);
+ Core::$db->query($sql1);
Log::sysLog(5004,"su_nick=".$_GET["id"].",razon=".$_GET["text"],$_GET["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
-----------------------------------------------------------------------
Summary of changes:
src/php/protocol/userp.class.php | 7 +++----
1 files changed, 3 insertions(+), 4 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-23 23:04:53
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via b946ddf057f7af31e2b7550da38dcf1909a1908d (commit)
from b2c6ff7d9e3489f33892bbceeff4e36943671ac3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b946ddf057f7af31e2b7550da38dcf1909a1908d
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 23 18:34:31 2015 -0430
Actualizacion de despido
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/php/protocol/userp.class.php b/src/php/protocol/userp.class.php
index f1b0743..5fb8d30 100644
--- a/src/php/protocol/userp.class.php
+++ b/src/php/protocol/userp.class.php
@@ -151,11 +151,12 @@ class Userp implements Protocol {
SET fk_sr=2, su_employee=false
WHERE su_nick='".$_GET["id"]."'";
$sql1="
- DELETE FROM employee
- WHERE fk_sys_user='".$_GET["id"]."'";
+ update employe
+ SET Emp_fired_Date=(current_date)
+ WHERE su_nick='".$_GET["id"]."'";
try {
Core::$db->query($sql);
- Core::$db->query($sql1);
+ //Core::$db->query($sql1);
Log::sysLog(5004,"su_nick=".$_GET["id"].",razon=".$_GET["text"],$_GET["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
-----------------------------------------------------------------------
Summary of changes:
src/php/protocol/userp.class.php | 7 ++++---
1 files changed, 4 insertions(+), 3 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-23 21:23:00
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via b2c6ff7d9e3489f33892bbceeff4e36943671ac3 (commit)
from e983338a1c27ca0451e1bb7893f6e93e53da0474 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit b2c6ff7d9e3489f33892bbceeff4e36943671ac3
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 23 16:52:38 2015 -0430
Constrain CH_FR_Type
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/sql/constraints.sql b/src/sql/constraints.sql
index 482061b..41d46b3 100644
--- a/src/sql/constraints.sql
+++ b/src/sql/constraints.sql
@@ -360,7 +360,7 @@ Descripcion: Se define los posibles valores del atributo FR_Type: Check, String,
07/12/14
*/
-ALTER TABLE FILTER_REPORT ADD CONSTRAINT CH_FR_Type CHECK (FR_Type IN ('CHECK','STRING','NUMBER','SELECT','MULTI-SELECT','DATE'));
+ALTER TABLE FILTER_REPORT ADD CONSTRAINT CH_FR_Type CHECK (FR_Type IN ('CHECK','STRING','NUMBER','SELECT','MULTI-SELECT','DATE','STRINGLIKE','STRINGEQ','NUMBERG','NUMBERGEQ', 'NUMBERL','NUMBERLEQ','DATEG','DATEGE','DATELE','DATELEE','CHECKNULL'));
/*CH_LAS_Type
Entidad: LAN_AUD_SUB
-----------------------------------------------------------------------
Summary of changes:
src/sql/constraints.sql | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-23 21:07:46
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via e983338a1c27ca0451e1bb7893f6e93e53da0474 (commit)
via e706877f234f33d38e361ff999ad6a19f8878413 (commit)
from 4ff37edacc70e24051bc0ef18d37cf80d3d5e049 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e983338a1c27ca0451e1bb7893f6e93e53da0474
Merge: e706877 4ff37ed
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 23 16:35:24 2015 -0430
Merge remote-tracking branch 'origin/master'
commit e706877f234f33d38e361ff999ad6a19f8878413
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 23 16:33:54 2015 -0430
-Agregacion de campo en entidad Filter Report
-Modificacion de Constrain CH_FR_Type
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 3e67a52..9537cd1 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -950,29 +950,35 @@ from report_39;
40. Por Desarrollador de aplicaciones; total de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
-select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+(select dev_id, dev_name as desarrollador, concat('Año',' ',extract(isoyear from inv_emission_date)) as fecha, count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
from developer
join application on fk_developer=dev_id
join purchase on application.fk_content=purchase.fk_content
join invoice on inv_id=fk_invoice
-group by "Año", dev_name, dev_id
-order by "Año"
+group by fecha, dev_name, dev_id)
+union
+(select dev_id, dev_name as desarrollador, concat('Mes',' ',extract(month from inv_emission_date)) as fecha, count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+from developer
+ join application on fk_developer=dev_id
+ join purchase on application.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+group by fecha, dev_name, dev_id)
Vista: report_40
Consulta a la vista:
-select desarrollador as "Desarrollador","Año","Descargas","Ingresos"
+select desarrollador as "Desarrollador",fecha as "Fecha","Descargas","Ingresos"
from report_40
-where 1_dev 2_año
+where 1_dev 2_fecha
filtros:
1_aut:
select distinct dev_id as value, desarrollador as name
-from report_39
+from report_40
order by name
2_año:
-select distinct "Año" as value, "Año" as name
+select distinct fecha as value, fecha as name
from report_40;
diff --git a/src/php/reportFormats/standar.php b/src/php/reportFormats/standar.php
index 8459762..ec37123 100644
--- a/src/php/reportFormats/standar.php
+++ b/src/php/reportFormats/standar.php
@@ -5,6 +5,8 @@ function printReport($header,$columns,$data,$user,$pars){
<!DOCTYPE html>
<html lang="es">
<head>
+ <meta charset="utf-8">
+ <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<style>
body {
}
diff --git a/src/sql/entities.sql b/src/sql/entities.sql
index 7cf93e4..90e1dbe 100644
--- a/src/sql/entities.sql
+++ b/src/sql/entities.sql
@@ -244,6 +244,8 @@ CREATE TABLE FILTER_REPORT (
FR_ID_Name varchar(20) NOT NULL,
FR_Field varchar(50),
FR_Type varchar(30) NOT NULL,
+ FR_Name varchar(50) NOT NULL,
+ FR_log varchar(10),
FR_Query text,
FK_Report integer NOT NULL
);
@@ -257,7 +259,6 @@ CREATE TABLE GROUP_REPORT (
GR_Name varchar(50) NOT NULL,
GR_Description text NOT NULL,
FK_Group_Report integer,
- FK_Sys_Module integer NOT NULL
);
/*IMAGE
@@ -287,7 +288,7 @@ LAS_Type indica si el lenguaje aplica para audio o subtitulo LAS_Audio_Type Defi
21/11/14
*/
CREATE TABLE LAN_AUD_SUB (
- LAS_ID serial NOT NULL,
+ LAS_ID serial NOT NULL,
LAS_Type varchar(15) NOT NULL,
LAS_Audio_Type varchar(10),
FK_Movie integer NOT NULL,
diff --git a/src/www/Images/Logoonly.png b/src/www/Images/Logoonly.png
new file mode 100644
index 0000000..c2352cd
Binary files /dev/null and b/src/www/Images/Logoonly.png differ
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 20 +++++++++++++-------
src/php/reportFormats/standar.php | 2 ++
src/sql/entities.sql | 5 +++--
src/www/Images/Logoonly.png | Bin 0 -> 15473 bytes
4 files changed, 18 insertions(+), 9 deletions(-)
create mode 100644 src/www/Images/Logoonly.png
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-23 21:03:25
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 4ff37edacc70e24051bc0ef18d37cf80d3d5e049 (commit)
via 11eafcb1bb4636e9a375a497980a131f81f3e122 (commit)
from 8b645d6ddec7e79df20ffed1dafbd3338d068f6b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 4ff37edacc70e24051bc0ef18d37cf80d3d5e049
Merge: 11eafcb 8b645d6
Author: Eduardo <epp...@gm...>
Date: Fri Jan 23 16:31:11 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
commit 11eafcb1bb4636e9a375a497980a131f81f3e122
Author: Eduardo <epp...@gm...>
Date: Fri Jan 23 16:29:54 2015 -0430
Reportes
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 3e67a52..2c28a68 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -307,6 +307,16 @@ limit 25;
18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
+consulta :
+select COUNT (DISTINCT p.FK_Content) as "Total de descargas",COUNT(DISTINCT e.eve_reg_id) as "Total de empleados activos", COUNT(j.fk_event_info) as "Total de clientes registrados", COUNT(q.fk_event_info) as "Total contenidos registrados"
+from Purchase p
+ left join event j on j.fk_event_info=2003
+ left join event q on q.fk_event_info=3026 or q.fk_event_info=3040 or q.fk_event_info=3047 or q.fk_event_info=3059
+ left join event e on e.fk_event_info=2000
+
+vista:
+Preguntar a romulo como filtarlos por fecha
+
19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
@@ -833,6 +843,21 @@ from Sys_module
35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
+consulta:
+select su.su_nick, su.su_name, su.su_lastname, e.eve_date, e.eve_message, e.eve_reg_id,c.obl_name
+from Sys_user as SU
+ left join event e on e.fk_sys_user=su.su_nick and e.fk_event_info=2006
+ left join Obligation c on c.Obl_id=e.eve_reg_id
+
+vista_report_34:
+select su_nick as nick, su_name as nombre, su_lastname as apellido, eve_date as fecha, eve_message as 'Mensaje', obl_name as 'Cargo'
+from report_34
+where eve_date >= 1_FechaIni and eve_Data<=2_FechaFin
+
+filtros:
+1_FechaIni='2014-01-01'
+2-FechaFin='2014-06-12'
+
36. Por Evento; listado de los eventos ocurridos en un determinado intervalo de tiempo, puede ser filtrado por nivel, modulo o usuario que lo disparo
consulta:
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 25 +++++++++++++++++++++++++
1 files changed, 25 insertions(+), 0 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-22 00:46:56
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 8b645d6ddec7e79df20ffed1dafbd3338d068f6b (commit)
from 374466fac74ef0a77b73c7ce974050a3e9deae09 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 8b645d6ddec7e79df20ffed1dafbd3338d068f6b
Author: Rómulo Rodriguez <rod...@gm...>
Date: Wed Jan 21 20:16:45 2015 -0430
Fix Bug.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/php/protocol/app.class.php b/src/php/protocol/app.class.php
index 5896e37..2b0057f 100644
--- a/src/php/protocol/app.class.php
+++ b/src/php/protocol/app.class.php
@@ -300,7 +300,7 @@ class App implements Protocol {
".$_POST["appLic"]."
)";
Core::$db->query($sql1);
- Log::sysLog(3040,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",app_version=".$_POST["appVer"].",fk_developer=".$_POST["appDev"].",fk_license=".$_POST["appLic"],$_POST["conID"],Core::$user->getNick());
+ Log::sysLog(3040,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",app_version=".$_POST["appVer"].",fk_developer=".$_POST["appDev"].",fk_license=".$_POST["appLic"],$line["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
diff --git a/src/php/protocol/boo.class.php b/src/php/protocol/boo.class.php
index 009abec..b5d6e31 100644
--- a/src/php/protocol/boo.class.php
+++ b/src/php/protocol/boo.class.php
@@ -299,7 +299,7 @@ class Boo implements Protocol {
".$_POST["bookEdi"]."
)";
Core::$db->query($sql1);
- Log::sysLog(3047,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",boo_isbn=".$_POST["bookIsbn"].",boo_number_page=".$_POST["bookNP"],$_POST["conID"],Core::$user->getNick());
+ Log::sysLog(3047,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",boo_isbn=".$_POST["bookIsbn"].",boo_number_page=".$_POST["bookNP"],$line["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
diff --git a/src/php/protocol/mov.class.php b/src/php/protocol/mov.class.php
index 8c549c2..b4ee8e9 100644
--- a/src/php/protocol/mov.class.php
+++ b/src/php/protocol/mov.class.php
@@ -501,7 +501,7 @@ class Mov implements Protocol {
".$_POST["movDur"]."
)";
Core::$db->query($sql1);
- Log::sysLog(3059,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",app_version=".$_POST["movDur"],$_POST["conID"],Core::$user->getNick());
+ Log::sysLog(3059,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",app_version=".$_POST["movDur"],$line["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
diff --git a/src/php/protocol/mus.class.php b/src/php/protocol/mus.class.php
index 7ed5d3b..50b3b49 100644
--- a/src/php/protocol/mus.class.php
+++ b/src/php/protocol/mus.class.php
@@ -374,7 +374,7 @@ class Mus implements Protocol {
".$_POST["albDis"]."
)";
Core::$db->query($sql1);
- Log::sysLog(3026,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",alb_format=".$_POST["albFormat"].",fk_editorial_record=".$_POST["albDis"],$_POST["conID"],Core::$user->getNick());
+ Log::sysLog(3026,"con_name=".$_POST["conName"].",con_description=".$_POST["conDes"].",con_cost=".$_POST["conCost"].",con_release_date=".$_POST["conRlsD"].",alb_format=".$_POST["albFormat"].",fk_editorial_record=".$_POST["albDis"],$line["id"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
diff --git a/src/php/protocol/userp.class.php b/src/php/protocol/userp.class.php
index 0af35af..f1b0743 100644
--- a/src/php/protocol/userp.class.php
+++ b/src/php/protocol/userp.class.php
@@ -63,6 +63,20 @@ class Userp implements Protocol {
}
if(isset($_POST["nick"]) && isset($_POST["empSName"]) && isset($_POST["empSLName"]) && isset($_POST["empEL"]) && isset($_POST["empEL"]) && isset($_POST["empBlood"]) && isset($_POST["empObl"]) && isset($_POST["empSR"])){
$sql="
+ select case when fk_obligation <> ".$_POST["empObl"]." then obl_name else 'false' end as cambio
+ from employee, obligation
+ where fk_sys_user='".$_POST["nick"]."' and fk_obligation=obl_id
+ ";
+ $cc=false;
+ try {
+ Core::$db->query($sql);
+ $line=Core::$db->fetchArray();
+ if($line["cambio"]!="false"){
+ $cc=$line["cambio"];
+ }
+ } catch (Exception $e) {
+ }
+ $sql="
update employee
SET emp_sec_name='".$_POST["empSName"]."',emp_sec_lastname='".$_POST["empSLName"]."',emp_education='".$_POST["empEL"]."',emp_blood='".$_POST["empBlood"]."',fk_obligation=".$_POST["empObl"]."
WHERE fk_sys_user='".$_POST["nick"]."'";
@@ -74,6 +88,9 @@ class Userp implements Protocol {
Core::$db->query($sql);
Core::$db->query($sql1);
Log::sysLog(2005,"emp_sec_name=".$_POST["empSName"].",emp_sec_lastname=".$_POST["empSLName"].",emp_education=".$_POST["empEL"].",emp_blood=".$_POST["empBlood"].",fk_obligation=".$_POST["empObl"]."fk_sr=".$_POST["empSR"],$_POST["nick"],Core::$user->getNick());
+ if($cc){
+ Log::sysLog(2006,$_POST["empObl"],$_POST["nick"],Core::$user->getNick());
+ }
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
@@ -113,6 +130,7 @@ class Userp implements Protocol {
Core::$db->query($sql);
Core::$db->query($sql1);
Log::sysLog(5003,"emp_sec_name=".$_POST["empSName"].",emp_sec_lastname=".$_POST["empSLName"].",emp_education=".$_POST["empEL"].",emp_blood=".$_POST["empBlood"].",fk_obligation=".$_POST["empObl"]."fk_sr=".$_POST["empSR"],$_POST["nick"],Core::$user->getNick());
+ Log::sysLog(2006,$_POST["empObl"],$_POST["nick"],Core::$user->getNick());
ProtocolController::createPacket($_GET["pid"],true,true);
} catch (Exception $e) {
ProtocolController::createPacket($_GET["pid"],true,false);
-----------------------------------------------------------------------
Summary of changes:
src/php/protocol/app.class.php | 2 +-
src/php/protocol/boo.class.php | 2 +-
src/php/protocol/mov.class.php | 2 +-
src/php/protocol/mus.class.php | 2 +-
src/php/protocol/userp.class.php | 18 ++++++++++++++++++
5 files changed, 22 insertions(+), 4 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-21 01:44:45
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 374466fac74ef0a77b73c7ce974050a3e9deae09 (commit)
via 8976c085e1f165376bc7771ea7acbde715d730b1 (commit)
via fac1c79d9a6e99469bc8d9302e846f2fbbde7d45 (commit)
from 1f989fc13167ebbfcc406b3e0daa9bb1ed28b3f5 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 374466fac74ef0a77b73c7ce974050a3e9deae09
Author: Eduardo <epp...@gm...>
Date: Tue Jan 20 21:14:07 2015 -0430
Reportes 1-19 faltate 18 y 30-34
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 0a74b09..3e67a52 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -303,6 +303,7 @@ GROUP BY C.Con_name
Order by "Calificacion"
limit 25;
+
18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
@@ -827,6 +828,8 @@ filtros
1_Modulo
select sm_id as value, sm_name as name
from Sys_module
+
+
35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
commit 8976c085e1f165376bc7771ea7acbde715d730b1
Merge: fac1c79 1f989fc
Author: Eduardo <epp...@gm...>
Date: Tue Jan 20 21:09:18 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
diff --cc docs/Entrega IV/reportes.txt
index 4eea70a,6af08d2..0a74b09
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@@ -728,115 -708,153 +728,248 @@@ filtros
select año as value, año as name
from report_30
-
-
31. Listado de usuarios inactivos, debe indicar el último ingreso proveniente de cada usuario, debe permitir filtrar la información por paÃs.
+
+
+consulta:
+select Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,FP.Path,P.Pla_name, Max(E.Eve_date) as date
+from Sys_User as SU
+ left join FROM_PLACE as FP on SU.FK_Place=FP.Pla_id
+ left join PLACE as P on P.Pla_id=FP.Path
+ left join EVENT as E ON E.FK_Event_info=2000 and E.FK_Sys_user=SU.SU_Nick
+where Su.Su_active = false
+Group by Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,P.Pla_name,FP.Path
+
+
+vista report_31:
+select Su_Nick as "Nick", Su_Name as "Nombre", su_Lastname as "Apellido",Pla_Name as "Pais", date as "Ultimo Ingreso"
+from report_31
+where 1_Pais
+
+filtros:
+1_Pais
+select Pla_ID as value, Pla_Name as name
+from place
+where Pla_Type='PAIS'
+
+
32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
+
+
+consulta:
+select c.con_name , c.con_type, ca.cat_id, ca.cat_name, d.dev_id, d.dev_name, ad.ad_id, ad.ad_name, au.aut_id, au.aut_name
+from content as c
+ left join content_category cc on cc.Fk_content = c.con_id
+ left join category ca on ca.cat_id=cc.fk_category
+ left join application a on a.fk_content=c.con_id
+ left join developer d on d.dev_id=a.fk_developer
+ left join movie m on m.fk_content=c.con_id
+ left join movie_roll mr on mr.fk_movie=m.fk_content
+ left join actor_director ad on ad.ad_id=mr.fk_actor_director
+ left join book b on b.fk_content=c.con_id
+ left join boo_aut ba on ba.fk_book = b.fk_content
+ left join album al on al.fk_content=c.con_id
+ left join alb_aut alu on alu.fk_album=al.fk_content
+ left join author au on au.aut_id = ba.fk_author or au.aut_id=alu.fk_author
+
+
+vista report_32
+select con_name as "Nombre",con_type as "Tipo", cat_name as "Categoria", (case when con_type='APLICACION' then dev_name when con_Type='LIBRO' then aut_name when con_Type='MUSICA' then aut_name when con_Type='PELICULA' then ad_name end) as "Creador"
+from report_32
+where con_type=1_Tipo and Cat_ID=2_Category and dev_id/aut_id/ad_id = 3_Creador
+
+filtros
+1_Tipo Combobox = 'APLICACION','MUSICA','PELICULA','LIBRO'
+
+2_Category
+select cat_id as value, cat_name as name
+from category
+
+3_Creador
+select ?_id as value, ?_name as name
+from Developer/Author/Actor_Director
+
33. Por factura, la cantidad generada y la suma de sus totales, se debe permitir el filtrado por un intervalo de tiempo.
+
+
+vista report_33:
+select inv_emission_date, total_cost
+from List_invoice_from_place
+where inv_emission_date >=1_Fecha_in and inv_emission_date <=2_Fecha_Fin
+Union
+select null, Sum(total_cost)
+from List_invoice_from_place
+where inv_emission_date >=1_Fecha_in and inv_emission_date <=2_Fecha_Fin
+
+filtros
+1_Fecha_in = '2015-01-01'
+1_Fecha_Fin = '2015-12-01'
+
+
34. Listado de usuarios con permisos de agregar, modificar y remover, debe ser posible filtrarlo por módulos del sistema.
+
+
+consulta:
+select Su.SU_Nick, Su.SU_name, Su.SU_Lastname,sm.sm_id, sm.sm_name
+from Sys_user as SU
+ left join Sys_roll sr on SR.sr_id=SU.Fk_Sr
+ left join Roll_access ra on ra.fk_sys_roll = sr.sr_id
+ left join Sys_Module sm on Sm.sm_id=ra.fk_sys_module
+where ra.ra_add=true and ra.ra_modify=true and ra.ra_remove=true
+
+
+vista report_34:
+select Su_nick as "Nick" , su_name as "Nombre", su_lastname as "Apellido", sm_name as "Modulo"
+from report_34
+where sm_id=1_Modulo
+
+filtros
+1_Modulo
+select sm_id as value, sm_name as name
+from Sys_module
35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
+
+
36. Por Evento; listado de los eventos ocurridos en un determinado intervalo de tiempo, puede ser filtrado por nivel, modulo o usuario que lo disparo
+
+ consulta:
+ select eve_date as date,fk_sys_user as nick,ei_level as level,(case when ei_level=0 then 'Debug' when ei_level=1 then 'Info' when ei_level=2 then 'Error' when ei_level=3 then 'Alerta' when ei_level=4 then 'Critico' end) as level_name, (ei_description || ' ' || eve_message) as message, sm_id as module, sm_name as module_name
+ from event,event_info,sys_module
+ where ei_id=fk_event_info and fk_sys_module=sm_id
+
+ vista: report_36
+
+ Consulta a la vista:
+ select date as "Fecha", nick as "Usuario", level as "Nivel", module_name as Module, message as "Mensaje"
+ from report_36
+ where 1_f_start 2_f_end 3_level 4_mod 5_user
+
+ filtros:
+ 2_f_start -> "Fecha" >= fecha de inicio
+ 3_f_end -> "Fecha" <= fecha de fin
+ 3_level:
+ select distinct level as value, level_name as name from report_36;
+ 4_mod:
+ select distinct module as value, module_name as name from report_36 order by name;
+ 5_user:
+ select distinct nick as value, nick as name from report_36;
+
37. Total de contenidos descargados por tipo de licencia, podrá ser filtrado por categorÃas y tipo de contenidos.
+
+ Consulta:
+ select lic_id, lic_name, cat_id, cat_name, count(pur_id) as descargas
+ from license
+ join application on fk_license=lic_id
+ join content_category on content_category.fk_content=application.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=application.fk_content
+ group by cat_id, lic_id
+ order by lic_name
+
+ vista_ report_37
+
+ Consulta a la vista:
+ select lic_name as "Licencia", cat_name as "Categoria", descargas as "Descargas"
+ from report_37
+ where 1_lic 2_cat
+
+ filtros:
+ 1_lic:
+ select lic_id as value, lic_name as name
+ from license
+ order by name
+
+ 2_cat
+ select cat_id as value, cat_name as name
+ from category
+ where cat_cont_type='APLICACION'
+ order by name
+
38. Por Idioma de Audio o subtÃtulos de pelÃcula, Total descargadas, pudiendo filtrar por categorÃas.
- 39. Por autor de libros; total y detalle de libros descargados e ingresos provenientes de dichos libros, pudiendo filtrar por año.
- 40. Por Desarrollador de aplicaciones; total y detalle de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
+ consulta:
+ select las_type, lan_id, lan_name, cat_id, cat_name, count(pur_id) descargas
+ from language
+ join lan_aud_sub on fk_language=lan_id
+ join movie on fk_movie=movie.fk_content
+ join content_category on content_category.fk_content=movie.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=movie.fk_content
+ group by las_type, lan_id, lan_id, cat_id, cat_name
+ vista: report_38
+ consulta a la vista:
+ select las_type as "Tipo", lan_name as "Lenguaje", cat_name as "Categoria", descargas as "Descargas"
+ from report_38
+ where 1_lan 2_cat
+
+ Filtros:
+ 1_lan
+ select lan_id as value, lan_name as name
+ from language
+ order by name
+
+ 2_cat:
+ select cat_id as value, cat_name as name
+ from category
+ where cat_cont_type='PELICULA'
+ order by name
+
+ 39. Por autor de libros; total de libros descargados e ingresos provenientes de dichos libros, pudiendo filtrar por año.
+
+ Consulta:
+ select aut_id, aut_name as "Autor", extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ from author
+ join boo_aut on fk_author=aut_id
+ join book on book.fk_content=boo_aut.fk_book
+ join purchase on book.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ group by "Año", aut_name, aut_id
+ order by "Año"
+
+ Vista: report_39
+
+ Consulta a la vista:
+ select "Autor","Año","Descargas","Ingresos"
+ from report_39
+ where 1_aut 2_año
+
+ filtros:
+ 1_aut:
+ select distinct aut_id as value, "Autor" as name
+ from report_39
+ order by name
+
+ 2_año:
+ select distinct "Año" as value, "Año" as name
+ from report_39;
+
+ 40. Por Desarrollador de aplicaciones; total de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
+
+ select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+ from developer
+ join application on fk_developer=dev_id
+ join purchase on application.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ group by "Año", dev_name, dev_id
+ order by "Año"
+
+ Vista: report_40
+
+ Consulta a la vista:
+ select desarrollador as "Desarrollador","Año","Descargas","Ingresos"
+ from report_40
+ where 1_dev 2_año
+
+ filtros:
+ 1_aut:
+ select distinct dev_id as value, desarrollador as name
+ from report_39
+ order by name
+
+ 2_año:
+ select distinct "Año" as value, "Año" as name
+ from report_40;
commit fac1c79d9a6e99469bc8d9302e846f2fbbde7d45
Author: Eduardo <epp...@gm...>
Date: Tue Jan 20 21:09:00 2015 -0430
Reportes 1-19 faltante 18 , 30-34
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 6be87df..4eea70a 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -189,6 +189,23 @@ filtros:
10. Listado de las 10 promociones más aplicadas en un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha defin).
+
+
+vista report_10:
+SELECT P.Pro_Name, COUNT (C.FK_Promotion) as "Nº de veces aplicada"
+FROM PROMOTION as P
+ LEFT JOIN PURCHASE C ON C.Fk_Promotion = P.Pro_ID
+ JOIN INVOICE I ON C.FK_Invoice = I.Inv_ID
+where I.Inv_Emission_Date >= 1_FechaIni AND 2_FechaFin
+GROUP BY P.Pro_Name
+Order By "Nº de veces aplicada" desc
+Limit 10;
+
+filtros:
+1_FechaIni = '2014-06-01'
+2_FechaFin = '2014-06-07'
+
+
11. Listado de los 15 contenidos más descargados agrupados por año, debe indicar el total de descargas y el monto total de ingresos obtenidos por dichas descargas. Debe permitir filtrar la información para un año particular.
vista report_11:
@@ -287,6 +304,9 @@ Order by "Calificacion"
limit 25;
18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
+
+
+
19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
@@ -711,9 +731,104 @@ from report_30
31. Listado de usuarios inactivos, debe indicar el último ingreso proveniente de cada usuario, debe permitir filtrar la información por paÃs.
+
+
+consulta:
+select Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,FP.Path,P.Pla_name, Max(E.Eve_date) as date
+from Sys_User as SU
+ left join FROM_PLACE as FP on SU.FK_Place=FP.Pla_id
+ left join PLACE as P on P.Pla_id=FP.Path
+ left join EVENT as E ON E.FK_Event_info=2000 and E.FK_Sys_user=SU.SU_Nick
+where Su.Su_active = false
+Group by Su.SU_Nick, Su.Su_Name, Su.Su_lastname, Su.Su_active,P.Pla_name,FP.Path
+
+
+vista report_31:
+select Su_Nick as "Nick", Su_Name as "Nombre", su_Lastname as "Apellido",Pla_Name as "Pais", date as "Ultimo Ingreso"
+from report_31
+where 1_Pais
+
+filtros:
+1_Pais
+select Pla_ID as value, Pla_Name as name
+from place
+where Pla_Type='PAIS'
+
+
32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
+
+
+consulta:
+select c.con_name , c.con_type, ca.cat_id, ca.cat_name, d.dev_id, d.dev_name, ad.ad_id, ad.ad_name, au.aut_id, au.aut_name
+from content as c
+ left join content_category cc on cc.Fk_content = c.con_id
+ left join category ca on ca.cat_id=cc.fk_category
+ left join application a on a.fk_content=c.con_id
+ left join developer d on d.dev_id=a.fk_developer
+ left join movie m on m.fk_content=c.con_id
+ left join movie_roll mr on mr.fk_movie=m.fk_content
+ left join actor_director ad on ad.ad_id=mr.fk_actor_director
+ left join book b on b.fk_content=c.con_id
+ left join boo_aut ba on ba.fk_book = b.fk_content
+ left join album al on al.fk_content=c.con_id
+ left join alb_aut alu on alu.fk_album=al.fk_content
+ left join author au on au.aut_id = ba.fk_author or au.aut_id=alu.fk_author
+
+
+vista report_32
+select con_name as "Nombre",con_type as "Tipo", cat_name as "Categoria", (case when con_type='APLICACION' then dev_name when con_Type='LIBRO' then aut_name when con_Type='MUSICA' then aut_name when con_Type='PELICULA' then ad_name end) as "Creador"
+from report_32
+where con_type=1_Tipo and Cat_ID=2_Category and dev_id/aut_id/ad_id = 3_Creador
+
+filtros
+1_Tipo Combobox = 'APLICACION','MUSICA','PELICULA','LIBRO'
+
+2_Category
+select cat_id as value, cat_name as name
+from category
+
+3_Creador
+select ?_id as value, ?_name as name
+from Developer/Author/Actor_Director
+
33. Por factura, la cantidad generada y la suma de sus totales, se debe permitir el filtrado por un intervalo de tiempo.
+
+
+vista report_33:
+select inv_emission_date, total_cost
+from List_invoice_from_place
+where inv_emission_date >=1_Fecha_in and inv_emission_date <=2_Fecha_Fin
+Union
+select null, Sum(total_cost)
+from List_invoice_from_place
+where inv_emission_date >=1_Fecha_in and inv_emission_date <=2_Fecha_Fin
+
+filtros
+1_Fecha_in = '2015-01-01'
+1_Fecha_Fin = '2015-12-01'
+
+
34. Listado de usuarios con permisos de agregar, modificar y remover, debe ser posible filtrarlo por módulos del sistema.
+
+
+consulta:
+select Su.SU_Nick, Su.SU_name, Su.SU_Lastname,sm.sm_id, sm.sm_name
+from Sys_user as SU
+ left join Sys_roll sr on SR.sr_id=SU.Fk_Sr
+ left join Roll_access ra on ra.fk_sys_roll = sr.sr_id
+ left join Sys_Module sm on Sm.sm_id=ra.fk_sys_module
+where ra.ra_add=true and ra.ra_modify=true and ra.ra_remove=true
+
+
+vista report_34:
+select Su_nick as "Nick" , su_name as "Nombre", su_lastname as "Apellido", sm_name as "Modulo"
+from report_34
+where sm_id=1_Modulo
+
+filtros
+1_Modulo
+select sm_id as value, sm_name as name
+from Sys_module
35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
36. Por Evento; listado de los eventos ocurridos en un determinado intervalo de tiempo, puede ser filtrado por nivel, modulo o usuario que lo disparo
37. Total de contenidos descargados por tipo de licencia, podrá ser filtrado por categorÃas y tipo de contenidos.
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 118 ++++++++++++++++++++++++++++++++++++++++++
1 files changed, 118 insertions(+), 0 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-20 02:51:56
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 1f989fc13167ebbfcc406b3e0daa9bb1ed28b3f5 (commit)
via 46bc7c742f275ac7aa74899b3c06ea15018d5cb2 (commit)
from 6e68f335cac659d924321f7ccd9b50a7e2f6aa41 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 1f989fc13167ebbfcc406b3e0daa9bb1ed28b3f5
Merge: 46bc7c7 6e68f33
Author: Rómulo Rodriguez <rod...@gm...>
Date: Mon Jan 19 22:19:13 2015 -0430
Merge remote-tracking branch 'origin/master'
commit 46bc7c742f275ac7aa74899b3c06ea15018d5cb2
Author: Rómulo Rodriguez <rod...@gm...>
Date: Mon Jan 19 22:19:07 2015 -0430
Reportes del 35 al 40
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 6709b72..d449884 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -419,20 +419,153 @@ filtros:
select año as value, año as name
from report_30
-
-
31. Listado de usuarios inactivos, debe indicar el último ingreso proveniente de cada usuario, debe permitir filtrar la información por paÃs.
32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
33. Por factura, la cantidad generada y la suma de sus totales, se debe permitir el filtrado por un intervalo de tiempo.
34. Listado de usuarios con permisos de agregar, modificar y remover, debe ser posible filtrarlo por módulos del sistema.
35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
+
+
36. Por Evento; listado de los eventos ocurridos en un determinado intervalo de tiempo, puede ser filtrado por nivel, modulo o usuario que lo disparo
+
+consulta:
+select eve_date as date,fk_sys_user as nick,ei_level as level,(case when ei_level=0 then 'Debug' when ei_level=1 then 'Info' when ei_level=2 then 'Error' when ei_level=3 then 'Alerta' when ei_level=4 then 'Critico' end) as level_name, (ei_description || ' ' || eve_message) as message, sm_id as module, sm_name as module_name
+from event,event_info,sys_module
+where ei_id=fk_event_info and fk_sys_module=sm_id
+
+vista: report_36
+
+Consulta a la vista:
+select date as "Fecha", nick as "Usuario", level as "Nivel", module_name as Module, message as "Mensaje"
+from report_36
+where 1_f_start 2_f_end 3_level 4_mod 5_user
+
+filtros:
+2_f_start -> "Fecha" >= fecha de inicio
+3_f_end -> "Fecha" <= fecha de fin
+3_level:
+select distinct level as value, level_name as name from report_36;
+4_mod:
+select distinct module as value, module_name as name from report_36 order by name;
+5_user:
+select distinct nick as value, nick as name from report_36;
+
37. Total de contenidos descargados por tipo de licencia, podrá ser filtrado por categorÃas y tipo de contenidos.
+
+Consulta:
+select lic_id, lic_name, cat_id, cat_name, count(pur_id) as descargas
+from license
+ join application on fk_license=lic_id
+ join content_category on content_category.fk_content=application.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=application.fk_content
+group by cat_id, lic_id
+order by lic_name
+
+vista_ report_37
+
+Consulta a la vista:
+select lic_name as "Licencia", cat_name as "Categoria", descargas as "Descargas"
+from report_37
+where 1_lic 2_cat
+
+filtros:
+1_lic:
+select lic_id as value, lic_name as name
+from license
+order by name
+
+2_cat
+select cat_id as value, cat_name as name
+from category
+where cat_cont_type='APLICACION'
+order by name
+
38. Por Idioma de Audio o subtÃtulos de pelÃcula, Total descargadas, pudiendo filtrar por categorÃas.
-39. Por autor de libros; total y detalle de libros descargados e ingresos provenientes de dichos libros, pudiendo filtrar por año.
-40. Por Desarrollador de aplicaciones; total y detalle de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
+consulta:
+select las_type, lan_id, lan_name, cat_id, cat_name, count(pur_id) descargas
+from language
+ join lan_aud_sub on fk_language=lan_id
+ join movie on fk_movie=movie.fk_content
+ join content_category on content_category.fk_content=movie.fk_content
+ join category on fk_category=cat_id
+ join purchase on purchase.fk_content=movie.fk_content
+group by las_type, lan_id, lan_id, cat_id, cat_name
+
+vista: report_38
+consulta a la vista:
+select las_type as "Tipo", lan_name as "Lenguaje", cat_name as "Categoria", descargas as "Descargas"
+from report_38
+where 1_lan 2_cat
+Filtros:
+1_lan
+select lan_id as value, lan_name as name
+from language
+order by name
+
+2_cat:
+select cat_id as value, cat_name as name
+from category
+where cat_cont_type='PELICULA'
+order by name
+
+39. Por autor de libros; total de libros descargados e ingresos provenientes de dichos libros, pudiendo filtrar por año.
+
+Consulta:
+select aut_id, aut_name as "Autor", extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+from author
+ join boo_aut on fk_author=aut_id
+ join book on book.fk_content=boo_aut.fk_book
+ join purchase on book.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+group by "Año", aut_name, aut_id
+order by "Año"
+
+Vista: report_39
+
+Consulta a la vista:
+select "Autor","Año","Descargas","Ingresos"
+from report_39
+where 1_aut 2_año
+
+filtros:
+1_aut:
+select distinct aut_id as value, "Autor" as name
+from report_39
+order by name
+
+2_año:
+select distinct "Año" as value, "Año" as name
+from report_39;
+
+40. Por Desarrollador de aplicaciones; total de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
+
+select dev_id, dev_name as desarrollador, extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+from developer
+ join application on fk_developer=dev_id
+ join purchase on application.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+group by "Año", dev_name, dev_id
+order by "Año"
+
+Vista: report_40
+
+Consulta a la vista:
+select desarrollador as "Desarrollador","Año","Descargas","Ingresos"
+from report_40
+where 1_dev 2_año
+
+filtros:
+1_aut:
+select distinct dev_id as value, desarrollador as name
+from report_39
+order by name
+
+2_año:
+select distinct "Año" as value, "Año" as name
+from report_40;
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 141 ++++++++++++++++++++++++++++++++++++++++-
1 files changed, 137 insertions(+), 4 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-20 00:19:47
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 6e68f335cac659d924321f7ccd9b50a7e2f6aa41 (commit)
from c33087d16444fd3797fe85ec0fdfb31130d4f506 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 6e68f335cac659d924321f7ccd9b50a7e2f6aa41
Author: Eduardo <epp...@gm...>
Date: Mon Jan 19 19:48:51 2015 -0430
Reportes 1-19 faltante 10 y 18
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index 6709b72..6be87df 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -1,22 +1,311 @@
-1. Listado de sistemas operativos y sus versiones. Debe permitir filtrar la información por nombre de sistema operativo, nombre de versión, compañÃa y tipo de sistema operativo.
+1. Listado de sistemas operativos y sus versiones. Debe permitir filtrar la información por nombre de sistema operativo, nombre de versión, compañÃa y tipo de sistema operativo.
+
+
+consulta:
+SELECT O.OS_ID,O.OS_NAME, V.FK_OPERATING_SYSTEM, V.VER_NAME, V.VER_RELEASE_DATE, D.DEV_ID, D.DEV_NAME
+FROM OPERATING_SYSTEM O
+ LEFT JOIN VERSION V ON V.FK_OPERATING_SYSTEM = O.OS_ID
+ LEFT JOIN DEVELOPER D ON D.Dev_Company=TRUE AND O.FK_DEVELOPER=D.DEV_ID);
+
+vista report_1:
+select os_name as "Sistema Operativo", ver_name as "Version", dev_name as "Desarrollador"
+from report_1
+where 1_OS and/or 2_Ver and/or 3_Dev and/or 4_Lic
+
+Filtros:
+1_OS:
+select OS_id as value, OS_name as name
+from Operating_System
+order by name
+
+2_Ver
+select Ver_id as value, Ver_name as name
+from Version
+order by name
+
+3_Dev
+select Dev_id as value, dev_name as name
+from Developer
+order by name
+
+4_Lic
+select Lic_id as value, lic_name as name
+from license
+order by name
+
2. Listado de Empresas Desarrolladoras / Desarrolladores, debe mostrar todos los datos de los mismos. Debe permitir filtrar la información por paÃs, nombre y código postal.
+
+
+consulta:
+SELECT D.*, F.Pla_Name , F.Pla_Postal_Code ,P.Pla_name as Pais
+FROM DEVELOPER as D
+ Left JOIN FROM_PLACE F ON D.FK_Place= F.Pla_Id
+ LEFT JOIN PLACE P ON P.Pla_ID=F.Path
+
+vista Place_Developer:
+select dev_name as "Desarrollador", dev_web_site as "Website", dev_email as "Correo", pais as "Pais"
+from place_developer
+where 1_Pais and/or 2_COD
+
+filtros:
+1_Pais
+select pla_id as value, pla_name as name
+from Place
+where Pla_type='PAIS'
+2_COD
+2_COD=$integer
+
3. Listado de Empleados (ordenados alfabéticamente). Debe permitir filtrar la información por nombre del empleado, apellido del empleado y por estatus.
+
+
+consulta:
+SELECT SU.* , E.*
+FROM SYS_USER as SU
+ LEFT JOIN EMPLOYEE E ON E.FK_Sys_User=SU.SU_Nick
+where SU_Employee = true
+ORDER BY SU.SU_Name
+
+vista LIST_EMPLOYEE:
+SELECT su_ci,su_name as "Primer Nombre" ,emp_sec_name as "Segundo Nombre",su_lastname as "Primer Apellido",emp_sec_lastname as "Segundo Apellido",su_nick as "Nick", SU_active as "Activo"
+FROM LIST_EMPLOYEE
+WHERE 1_Active and/or 2_Name and/or 3_Lastname
+
+filtros:
+1_Active= true/false
+2_Name = $nombre
+3_Lastname = $apellido
+
4. Listado de Cargos, indicando los empleados activos que poseen dichos cargos. Deben visualizarse aquellos cargos que no posean empleados asignados. Debe permitir filtrar la información por el nombre del cargo y por el salario.
+
+
+consulta:
+Select Obl_ID,Obl_Name,Obl_Salary,SU_Name, SU_Lastname
+From Obligation, Sys_User, Employee
+where FK_Obligation=Obl_ID AND FK_Sys_user=SU_Nick AND SU_Active=true
+Union
+(Select Obl_id,Obl_Name,Obl_Salary, Null, Null
+FROM Obligation
+except
+Select o.Obl_id,o.Obl_Name, o.Obl_salary,null, null
+From Obligation o, Employee e
+where o.Obl_id=e.FK_obligation)
+
+vista report_4:
+select *
+from report_4
+where 1_Obl and/or 2_Salary
+
+filtros:
+1_OBL
+select Obl_id as value, obl_name as name
+from Obligation
+
+2_Salary: >= , = ,<=, <,>
+
+
5. PaÃs que más aplicaciones móviles posee registradas en el sistema.
+
+consulta:
+SELECT D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name, COUNT(A.FK_DEVELOPER)
+FROM DEVELOPER as D
+ JOIN FROM_PLACE F ON D.FK_Place=F.Pla_Id
+ JOIN PLACE P ON P.Pla_ID=F.Path
+ JOIN APPLICATION AS A ON A.fk_Developer=D.Dev_ID
+GROUP BY D.dev_id, d.dev_name , F.path, P.pla_id,P.Pla_name;
+
+vista report_5:
+SELECT Pla_name ,SUM(Count) AS "Cantidad de Aplicaciones"
+FROM PRUEBA
+GROUP BY Pla_name
+Order BY "Cantidad de Aplicaciones" desc
+Limit 1;
+
6. Listado de Empleados (según el nivel educativo). Debe permitir filtrar la información por el nivel educativo, status del empleado y cargo del empleado.
+
+
+consulta:
+SELECT LE.SU_NICK, LE.SU_CI, LE.SU_NAME, LE.SU_LASTNAME, LE.Emp_Education,LE.Emp_fired_Date, O.Obl_Name, O.Obl_Salary
+FROM LIST_EMPLOYEE LE
+ LEFT JOIN OBLIGATION O ON LE.FK_Obligation = O.Obl_ID
+
+vista report_6:
+select *
+from report_6
+where 1_NivelEducativo and/or 2_Emp_fired_date and/or 3_Obl_name
+
+filtros: nivel educativo, status del empleado y cargo del empleado
+1_NivelEducativo
+ Combo Box: 'INICIAL COMPLETA','INICIAL INCOMPLETA', 'MEDIA COMPLETA','MEDIA INCOMPLETA', 'SUPERIOR COMPLETA','SUPERIOR INCOMPLETA'
+
+2_Status
+Emp_Fire_date is not null / Emp_fire_date is null
+
+3_Obl_name
+select Obl_id as value, obl_name as name
+from Obligation
+
+
7. Listado de Empleados (máximo 10 empleados) que más inician sesión en el sistema durante un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+vista report_7:
+select em.fk_sys_user, count(eve_id) as "Ingresos"
+from event
+ join employee as em on em.fk_sys_user=event.fk_sys_user
+where fk_event_info=2000 and 1_FechaInicial and 2_FechaFinal
+group by em.fk_sys_user
+order by "Ingresos" desc
+limit 10
+
+filtro:
+1_FechaInicial => '2014-01-01'
+2_FechaFinal <= '2014-12-31'
+
8. Por PaÃs: Total de contenidos descargados agrupados por el tipo de contenido (aplicaciones móviles, música, pelÃculas, libros) para un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+
+vista report_8:
+SELECT Pla_Name,Con_Type,SUM(SOLD) as Sold
+FROM LIST_INVOICE_FROM_PLACE
+WHERE 1_FechaInicial and 2_FechaFinal
+GROUP BY PLa_name,Con_Type;
+
+filtros:
+1_FechaInicial => '2014-01-01'
+2_FechaFinal <= '2014-12-31'
+
+
9. Por PaÃs: Ingresos anuales por concepto de ventas de contenidos agrupados por el tipo de contenido (aplicaciones móviles, música, pelÃculas, libros) para un periodo de tiempo particular. Debe permitir filtrar la información para un tipo de contenido particular y un periodo de periodo particular (una fecha de inicio y una fecha de fin).
+
+
+vista report_9:
+SELECT Pla_Name,Con_Type,SUM(Total_cost) as Total
+FROM LIST_INVOICE_FROM_PLACE
+WHERE 1_FechaInicial and 2_FechaFinal
+GROUP BY Con_Type, PLa_name;
+
+filtros:
+1_FechaInicial => '2014-01-01'
+2_FechaFinal <= '2014-12-31'
+
+
10. Listado de las 10 promociones más aplicadas en un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha defin).
11. Listado de los 15 contenidos más descargados agrupados por año, debe indicar el total de descargas y el monto total de ingresos obtenidos por dichas descargas. Debe permitir filtrar la información para un año particular.
+
+vista report_11:
+
+SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, extract(isoyear from I.inv_emission_date) as "Año"
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content and extract(isoyear from I.inv_emission_date) =1_Fecha
+GROUP BY C.Con_ID,C.Con_name,"Año"
+Order by SOLD desc, Total_Cost desc
+Limit 15
+
+filtros
+1_fecha ='2015'
+
12. Listado de los 25 contenidos mejor calificados agrupado por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros), debe visualizarse el promedio de calificación del contenido. Debe permitir filtrar la información por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros).
+
+vista report_12:
+SELECT C.Con_ID, C.Con_Name, C.Con_Type, ROUND (AVG(R.Rat_Value)) as Rate
+From Content as C, Rate as R
+where C.Con_ID = R.Fk_Content AND C.Con_type=1_Tipo
+Group BY C.Con_Type,C.Con_id, C.Con_Name
+Order BY Rate desc
+Limit 25
+
+filtros
+1_Tipo Combobox = 'APLICACION', 'MUSICA', 'PELICULA', 'LIBRO'
+
13. Listado de los 10 contenidos (aplicaciones móviles, música, pelÃculas, libros) menos descargados agrupados por año, debe indicar la cantidad total de descargas y el monto total de ingresos por concepto de venta de dichos contenidos. Debe permitir filtrar la información para un año particular.
+
+
+vista report_13:
+SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, extract(isoyear from I.inv_emission_date) as "Año"
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content and extract(isoyear from I.inv_emission_date)=1_Fecha
+GROUP BY C.Con_ID,C.Con_name,I.Inv_Emission_Date, "Año"
+Order by SOLD asc , Total_Cost, "Año"
+Limit 10
+
+filtros:
+1_fecha = '2015'
+
14. Listado de los 20 clientes que más comentarios realizan en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+
+vista report_14:
+SELECT S.SU_NICK, COUNT(C.FK_Sys_USER)
+FROM SYS_USER AS S, COMMENT AS C
+where S.SU_Nick = C.FK_Sys_USER AND C.COM_DATE >=1_FechaIni AND C.COM_DATE<=2_FechaFin
+GROUP BY S.SU_NICK;
+
+filtros:
+1_FechaIni = '2015-01-01'
+2_FechaFin = '2016-12-31'
+
15. Listado de los 20 clientes que más calificaciones realizan en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+
+vista report_15:
+SELECT S.SU_NICK, COUNT(C.FK_Sys_USER)
+FROM SYS_USER AS S, COMMENT AS C
+where S.SU_Nick = C.FK_Sys_USER AND C.COM_DATE >=1_FechaIni AND C.COM_DATE<=2_FechaFin
+GROUP BY S.SU_NICK;
+
+filtros:
+1_FechaIni = '2015-01-01'
+2_FechaFin = '2016-12-31'
+
16. Listado de los 25 contenidos mejor calificados por los clientes (debe mostrar la calificación).
+
+
+vista report_16:
+SELECT C.con_name, round (AVG(r.Rat_value)) as "Calificacion"
+FROM Content AS C, Rate AS r
+where C.Con_id = R.FK_Content
+GROUP BY C.Con_name
+Order by "Calificacion" desc
+limit 25;
+
17. Listado de los 25 contenidos peor calificados por los clientes (debe mostrar la calificación)
+
+
+vista report_17:
+SELECT C.con_name, round (AVG(r.Rat_value)) as "Calificacion"
+FROM Content AS C, Rate AS r
+where C.Con_id = R.FK_Content
+GROUP BY C.Con_name
+Order by "Calificacion"
+limit 25;
+
18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+
+vista report_19:
+SELECT SUM(P.Pur_Cost) as Total_cost,X.Pla_Name
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content and Con_Type='APLICACION' and I.Inv_Emission_Date >=1_FechaIn and I.Inv_emission_date <= 2_FechaFin
+GROUP BY X.Pla_name
+Order by total_cost desc
+limit 1;
+
+filtros:
+1_FechaIn = '2014-01-01'
+1_FechaFin = '2015-02-01'
+
20 Por rol, cantidad de empleados activos que poseen dicho rol, cantidad de empleados inactivos que poseen dicho rol. Debe permitir filtrar la información por el nombre del rol.
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 291 +++++++++++++++++++++++++++++++++++++++++-
1 files changed, 290 insertions(+), 1 deletions(-)
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-19 05:46:36
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via c33087d16444fd3797fe85ec0fdfb31130d4f506 (commit)
from 58496ce4fa7c4ea5b56c71ee557c6106bd32881b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit c33087d16444fd3797fe85ec0fdfb31130d4f506
Author: Rómulo Rodriguez <rod...@gm...>
Date: Mon Jan 19 01:16:08 2015 -0430
Reportes del 20 al 30 Cosus respectivas consultas, nombre para vista, consulta de vista y filtros.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
index f75ec13..6709b72 100644
--- a/docs/Entrega IV/reportes.txt
+++ b/docs/Entrega IV/reportes.txt
@@ -17,18 +17,410 @@
17. Listado de los 25 contenidos peor calificados por los clientes (debe mostrar la calificación)
18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
-20. Por rol, cantidad de empleados activos que poseen dicho rol, cantidad de empleados inactivos que poseen dicho rol. Debe permitir filtrar la información por el nombre del rol.
+20 Por rol, cantidad de empleados activos que poseen dicho rol, cantidad de empleados inactivos que poseen dicho rol. Debe permitir filtrar la información por el nombre del rol.
+
+
+consulta:
+select sr_id, sr_name, (
+ select count(fk_sr)
+ from sys_user
+ where fk_sr=sys_roll.sr_id and su_active
+ ) as activos, (
+ select count(fk_sr)
+ from sys_user
+ where fk_sr=sys_roll.sr_id and not su_active
+ ) as inactivos
+from sys_roll;
+
+vista: report_20
+select sr_name as "Roll del Sistema", activos as "Usuario Activos", inactivos as "Usuario Inactivos"
+from report_20
+where 1_roll
+
+Filtros:
+1_roll:
+select sr_id as value, sr_name as name
+from sys_roll
+order by name
+
+
21. Por cliente: total de contenidos descargados, total de comentarios realizados y total de calificaciones realizadas. Ordenado descendentemente por el total de contenidos descargados.
+
+Consulta:
+select su_nick,
+ (select count(pur_id)
+ from invoice, purchase
+ where fk_invoice=inv_id and sys_user.su_nick=fk_sys_user
+ ) as descargas,
+ (select count(fk_sys_user)
+ from rate
+ where sys_user.su_nick=fk_sys_user
+ ) as calificaciones,
+ (select count(com_id)
+ from comment
+ where sys_user.su_nick=fk_sys_user
+ ) as comentarios
+from sys_user
+order by descargas desc;
+
+Vista: report_21
+
+Consulta a vista:
+select su_nick as "Cliente", descargas as "Descargas", calificaciones as "Calificaciones", comentarios as "Comentarios"
+from report_21
+where 1_nick
+
+filtros:
+select su_nick as value, su_nick as name
+from sys_user
+
22. Por cliente, historial de contenidos comprados (descargados) en un periodo de tiempo. Debe permitir filtrar la información para un cliente particular y para un periodo particular (una fecha de inicio y una fecha de fin).
+
+Consulta:
+select su_nick, con_name, pur_cost, inv_emission_date
+from sys_user
+ join invoice on fk_sys_user=su_nick
+ join purchase on fk_invoice=inv_id
+ join content on fk_content=con_id
+
+Vista: report_22
+consulta a la vista:
+select su_nick as "Cliente", con_name as Contenido, pur_cost as "Costo", inv_emission_date as "Fecha"
+from report_22
+where 1_nick 2_f_start 3_f_end
+
+filtros
+1_nick:
+select distinct fk_sys_user as value, fk_sys_user as name
+from invoice
+order by fk_sys_user
+
+2_f_start -> "Fecha" >= fecha de inicio
+
+3_f_end -> "Fecha" <= fecha de fin
+
23. Por sistema operativo (agrupado por año): total de aplicaciones descargadas, total de ingresos obtenidos por dichas descargas, porcentaje que representan dichos ingresos del total (de todos los sistemas operativos). Debe permitir filtrar la información para un sistema operativo particular y para un año determinado.
+
+Consulta:
+select
+ os_id,
+ os_name as "Sistema Operativo",
+ count(A.fk_content) as "Descargas",
+ sum(pur_cost) as "Ingresos",
+ extract(isoyear from inv_emission_date) as "Año",
+ round(
+ (case when (
+ select sum(pur_cost)
+ from (
+ select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
+ )=0 then 0
+ else(sum(pur_cost)*100)/(
+ select sum(pur_cost)
+ from (
+ select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content
+ ) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+ where extract(isoyear from inv_emission_date)=extract(isoyear from inv.inv_emission_date)
+ ) end )::numeric,2) as "% del total"
+from (select os_id,os_name, application.fk_content
+ from operating_system
+ join version on fk_operating_system=os_id
+ join app_ver on fk_version=ver_id
+ join application on application.fk_content=app_ver.fk_application
+ group by os_id, application.fk_content) as A
+ join purchase on A.fk_content=purchase.fk_content
+ join invoice as inv on inv_id=fk_invoice
+group by "Año",os_id,os_name,inv.inv_emission_date
+
+Vista REPORT_23
+consulta a la vista:
+select "Sistema Operativo","Año","Descargas", "Ingresos", "% del total"
+from report_23
+where 1_os 2_año
+
+filtros:
+1_os:
+select distinct os_name as name, os_id as value from operating_system order by name
+2_año:
+select distinct "Año" as name, "Año" as value from report_23 order by "Año"
+
24. Por categorÃa de pelÃcula: total de pelÃculas descargadas, ingresos provenientes de dichas descargas, porcentaje que representan dichos ingresos del total de todas las categorÃas. Debe permitir filtrar la información por categorÃa.
+
+consulta:
+select cat_id, cat_name "Categoria de Pelicula",count (movie.fk_content) "Descargas", round(sum(pur_cost),2) as "Ingresos", round(((sum(pur_cost)*100)/(select sum(pur_cost)
+ from movie
+ join purchase on movie.fk_content=purchase.fk_content))::numeric,2) as "% del total"
+from category
+ join content_category on fk_category=cat_id
+ join movie on movie.fk_content=content_category.fk_content
+ join purchase on movie.fk_content=purchase.fk_content
+group by cat_id
+
+vista VIEW_REP_24
+
+consulta a la vista:
+select "Categoria de Pelicula", "Descargas", "Ingresos", "% del total"
+from VIEW_REP_24
+where 1_cat
+
+filtros:
+1_cat:
+select cat_id as value, cat_name as name
+from category
+ join content_category on fk_category=cat_id
+ join movie on movie.fk_content=content_category.fk_content
+ join purchase on movie.fk_content=purchase.fk_content
+group by cat_id, cat_name
+order by name
+
+
25. Por cantante (agrupado por año): total de discos descargados, total de ingresos provenientes de dichos discos. Debe permitir filtrar la información por cantante y por año.
+
+Consulta:
+select aut_id, aut_name as "Autor", extract(isoyear from inv_emission_date) as "Año", count(pur_id) as "Descargas", sum(pur_cost) as "Ingresos"
+from author
+ join alb_aut on fk_author=aut_id
+ join album on album.fk_content=alb_aut.fk_album
+ join purchase on album.fk_content=purchase.fk_content
+ join invoice on inv_id=fk_invoice
+group by "Año", aut_name, aut_id
+order by "Año"
+
+Vista: VIEW_REP_25
+
+consulta a la vista:
+select "Autor", "Año", "Descargas", "Ingresos"
+from VIEW_REP_25
+where 1_autor
+
+Filtros:
+1_autor:
+select distinct aut_id as value, aut_name as name
+from author
+ join alb_aut on fk_author=aut_id
+order by name
+
+
+
26. Género musical que más ingresos genera en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+
+Consulta:
+select cat_name "Genero MUSICAL", sum(pur_cost) as "Ingresos"
+from category
+ left join content_category on fk_category=cat_id
+ left join album on album.fk_content=content_category.fk_content
+ left join purchase on purchase.fk_content= album.fk_content
+where cat_cont_type='MUSICA' 1_f_star 2_f_end
+group by cat_id
+order by "Ingresos"
+limit 1
+
+Filtros:
+1_f_start -> and inv_emission_date >= "fecha de inicio"
+2_f_end -> and inv_emission_date <= "fecha de fin"
+
+Ejemplo:
+select cat_name "Genero MUSICAL", sum(pur_cost) as "Ingresos"
+from category
+ left join content_category on fk_category=cat_id
+ left join album on album.fk_content=content_category.fk_content
+ left join purchase on purchase.fk_content= album.fk_content
+ left join invoice on fk_invoice=inv_id
+where cat_cont_type='MUSICA' and inv_emission_date >= '2014-01-01 00:00:00' and inv_emission_date <= '2014-11-01 23:59:59'
+group by cat_id
+order by "Ingresos"
+limit 1
+
27. Listado de las 10 editoriales que más libros venden por año, debe indicar el total de libros vendidos y el total de ingresos obtenidos. Debe permitir filtrar la información por año.
+Consulta:
+select er_name as "Editorial", count(pur_id) as "Ventas", sum(pur_cost) "Ingresos"
+from editorial_record
+ join book on fk_editorial_record=er_id left join purchase on purchase.fk_content=book.fk_content left join invoice on fk_invoice=inv_id
+where er_type=true 1_year
+group by er_id
+order by "Ventas" desc, "Ingresos" desc
+limit 10
+
+filtros:
+1_year: and extract(isoyear from inv_emission_date)='año'
+select distinct extract(isoyear from inv_emission_date)
+from invoice, purchase, book, editorial_record
+where fk_invoice=inv_id and purchase.fk_content=book.fk_content and fk_editorial_record=er_id and er_type=true
+
+Ejemplo:
+select er_name as "Editorial", count(pur_id) as "Ventas", sum(pur_cost) "Ingresos"
+from editorial_record
+ join book on fk_editorial_record=er_id left join purchase on purchase.fk_content=book.fk_content left join invoice on fk_invoice=inv_id
+where er_type=true and extract(isoyear from inv_emission_date)='2015'
+group by er_id
+order by "Ventas" desc, "Ingresos" desc
+limit 10
+
+
28. Tipo de tarjeta de crédito más usada para realizar pagos en un periodo de tiempo particular. . Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
-29. Indicar el mes de cada año que más descargas de contenidos registra. Debe permitir filtrar
-la información para un año particular.
+
+Consulta:
+select ca.ct_name as "Tipo de tarjeta", ca.c as "Veses usada"
+from (select ct_name, count(inv_id) as c
+ from invoice, credit_card, card_type
+ where fk_credit_card=cc_id and fk_card_type=ct_id and (1_f_start 2_f_end)
+ group by ct_name) as ca
+where ca.c = (select max(cc.c)
+ from (select count(inv_id) as c
+ from invoice, credit_card, card_type
+ where fk_credit_card=cc_id and fk_card_type=ct_id and (1_f_start 2_f_end)
+ group by ct_name) as cc)
+
+filtros:
+1_f_start -> and inv_emission_date >= "fecha de inicio"
+2_f_end -> and inv_emission_date <= "fecha de fin"
+
+Ejemplo:
+select ca.ct_name as "Tipo de tarjeta", ca.c as "Veses usada"
+from (select ct_name, count(inv_id) as c
+ from invoice, credit_card, card_type
+ where fk_credit_card=cc_id and fk_card_type=ct_id and inv_emission_date >= '2014-01-01 00:00:00' and inv_emission_date <= '2014-12-31 23:59:59'
+ group by ct_name) as ca
+where ca.c = (select max(cc.c)
+ from (select count(inv_id) as c
+ from invoice, credit_card, card_type
+ where fk_credit_card=cc_id and fk_card_type=ct_id and inv_emission_date >= '2014-01-01 00:00:00' and inv_emission_date <= '2014-12-31 23:59:59'
+ group by ct_name) as cc)
+
+29. Indicar el mes de cada año que más descargas de contenidos registra. Debe permitir filtrar la información para un año particular.
+
+consulta:
+select
+(
+case
+when C.mes=1
+ then 'Enero'
+when C.mes=2
+ then 'Febrero'
+when C.mes=3
+ then 'Marzo'
+when C.mes=4
+ then 'Abril'
+when C.mes=5
+ then 'Mayo'
+when C.mes=6
+ then 'Junio'
+when C.mes=7
+ then 'Julio'
+when C.mes=8
+ then 'Agosto'
+when C.mes=9
+ then 'Septiembre'
+when C.mes=10
+ then 'Octubre'
+when C.mes=11
+ then 'Noviembre'
+when C.mes=12
+ then 'Diciembre'
+end
+) as mes , c.año as año, c.descargas as descargas
+from (select max(descargas) as descargas, año
+ from (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as A
+ group by año
+ ) as B,
+ (select count(pur_id) as descargas, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as C
+where B.año=C.año and B.descargas=C.descargas
+
+vista: report_29
+consulta a la vista:
+select año as "Año", mes as "Mes",descargas as "Descargas"
+from report_29
+where 1_año
+
+filtros:
+1_año:
+select año as value, año as name
+from report_29
+
+
30. Por año, mes que más ingresos genera por concepto de ventas de contenidos. Debe permitir filtrar la información para un año particular.
+
+consulta:
+select
+(
+case
+when C.mes=1
+ then 'Enero'
+when C.mes=2
+ then 'Febrero'
+when C.mes=3
+ then 'Marzo'
+when C.mes=4
+ then 'Abril'
+when C.mes=5
+ then 'Mayo'
+when C.mes=6
+ then 'Junio'
+when C.mes=7
+ then 'Julio'
+when C.mes=8
+ then 'Agosto'
+when C.mes=9
+ then 'Septiembre'
+when C.mes=10
+ then 'Octubre'
+when C.mes=11
+ then 'Noviembre'
+when C.mes=12
+ then 'Diciembre'
+end
+) as mes , c.año as año, c.ingresos as ingresos
+from (select max(ingresos) as ingresos, año
+ from (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as A
+ group by año
+ ) as B,
+ (select sum(pur_cost) as ingresos, extract(month from inv_emission_date) as mes, extract(isoyear from inv_emission_date) as año
+ from invoice, purchase
+ where fk_invoice=inv_id
+ group by mes,año
+ ) as C
+where B.año=C.año and B.ingresos=C.ingresos
+
+vista: report_30
+
+consulta a la vista:
+select año as "Año", mes as "Mes",ingresos as "Ingresos"
+from report_30
+where 1_año
+
+filtros:
+1_año:
+select año as value, año as name
+from report_30
+
+
+
31. Listado de usuarios inactivos, debe indicar el último ingreso proveniente de cada usuario, debe permitir filtrar la información por paÃs.
32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
33. Por factura, la cantidad generada y la suma de sus totales, se debe permitir el filtrado por un intervalo de tiempo.
diff --git a/src/www/admin/runreport.php b/src/www/admin/runreport.php
index e7bf285..d35dc6c 100644
--- a/src/www/admin/runreport.php
+++ b/src/www/admin/runreport.php
@@ -240,5 +240,7 @@ if ($data){
}
include("../../php/reportFormats/".$ex[0]);
printReport($header,$columns,$data,core::$user,$pars);
+} else {
+ echo "No hay data que mostrar en esta Consulta";
}
?>
diff --git a/src/www/js/jquery-1.7.js b/src/www/js/jquery-1.7.js
deleted file mode 100644
index 5627896..0000000
--- a/src/www/js/jquery-1.7.js
+++ /dev/null
@@ -1,4 +0,0 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML=" <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;...
[truncated message content] |
|
From: Eduardo G. <my4...@us...> - 2015-01-18 19:27:31
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 58496ce4fa7c4ea5b56c71ee557c6106bd32881b (commit)
from 86262e154efdcbcbd590624fd97f0371510ce962 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 58496ce4fa7c4ea5b56c71ee557c6106bd32881b
Author: Eduardo <epp...@gm...>
Date: Sun Jan 18 14:57:00 2015 -0430
Vistas realizadas 1-14, faltante reporte 7, reporte 10
diff --git a/src/sql/DropView.sql b/src/sql/DropView.sql
new file mode 100644
index 0000000..59ff3ae
--- /dev/null
+++ b/src/sql/DropView.sql
@@ -0,0 +1,18 @@
+DROP VIEW REPORT_13;
+DROP VIEW REPORT_12;
+DROP VIEW REPORT_11;
+DROP VIEW REPORT_9;
+DROP VIEW REPORT_8;
+DROP VIEW REPORT_6;
+DROP VIEW REPORT_5;
+DROP VIEW REPORT_4;
+DROP VIEW REPORT_1;
+
+
+
+DROP VIEW LIST_COMMENT;
+DROP VIEW LIST_INVOICE_FROM_PLACE;
+DROP VIEW APP_PLACE;
+DROP VIEW PLACE_EMPLOYEE;
+DROP VIEW LIST_EMPLOYEE;
+DROP VIEW FROM_PLACE;
diff --git a/src/sql/Vistas.sql b/src/sql/Vistas.sql
new file mode 100644
index 0000000..872369f
--- /dev/null
+++ b/src/sql/Vistas.sql
@@ -0,0 +1,75 @@
+/* FORMATO:
+ VISTA: <Informacion de la Lista>
+<NOMBRE DE LA VISTA>
+<ATRIBUTOS CLAVES>*/
+
+
+/* VISTA: ARBOL DE PAISES
+FROM_PLACE
+ATRIBUTO QUE MUESTRA EL PAIS DE OTRO PLA_TYPE : PATH*/
+
+CREATE VIEW FROM_PLACE AS (WITH RECURSIVE place_tree(pla_id,pla_name,pla_Type,pla_postal_code,path) as (
+ SELECT pla_id,pla_name,pla_Type,pla_postal_code, pla_id
+ FROM place
+ where pla_type='PAIS'
+ UNION ALL
+ SELECT place.pla_id, place.pla_name,place.pla_type,place.pla_postal_code, path
+ from place_tree
+ JOIN place ON fk_place=place_tree.pla_id
+)Select * from place_tree Order By path);
+
+/*VISTA: LISTA DE EMPLEADOS
+LIST_EMPLOYEE*/
+
+CREATE VIEW LIST_EMPLOYEE AS (SELECT SU.* , E.*
+FROM SYS_USER as SU
+ LEFT JOIN EMPLOYEE E ON E.FK_Sys_User=SU.SU_Nick
+where SU_Employee = true);
+
+/*VISTA: LISTADO DE DESARROLLADORES CON SU RESPECTIVO PAIS
+PLACE_EMPLOYEE*/
+
+CREATE VIEW PLACE_EMPLOYEE AS (
+SELECT D.*, F.Pla_Name , F.Pla_Postal_Code ,P.Pla_name as Pais
+FROM DEVELOPER as D
+ Left JOIN FROM_PLACE F ON D.FK_Place= F.Pla_Id
+ LEFT JOIN PLACE P ON P.Pla_ID=F.Path);
+
+/*VISTA: Cantidad de aplicaciones por pais
+APP_PLACE
+Total*/
+
+CREATE VIEW APP_PLACE AS (
+SELECT SUM (A.Cantidad) as Total, A.Path
+FROM
+ (SELECT FK_Developer,path, Cantidad
+ FROM FROM_PLACE ,(
+ SELECT COUNT (FK_Developer) as Cantidad , FK_Developer
+ FROM APPLICATION, DEVELOPER
+ WHERE FK_Developer = Dev_ID
+ Group By FK_Developer
+ ) as CC , Developer
+ Where Dev_ID=CC.FK_Developer) AS A
+Group by Path
+Order by Total desc);
+
+/*VISTA: Lista con cantidad de articulos vendidos y total cobrado a un usuario en una fecha ordenado por Pais, Usuario, Tipo de contenido, Fecha
+LIST_INVOICE_FROM_PLACE*/
+
+CREATE VIEW LIST_INVOICE_FROM_PLACE as (
+SELECT C.Con_Type, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, I.Inv_Emission_Date, S.Su_Nick, F.Path, X.Pla_Name
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content
+GROUP BY C.Con_Type, I.Inv_Emission_Date, S.SU_Nick, F.Path, X.Pla_name);
+
+/*VISTA: Lista de cuantos comentarios realizados por usuario en una fecha
+LIST_COMMENT */
+
+CREATE VIEW LIST_COMMENT AS (SELECT S.SU_NICK, COUNT(C.FK_Sys_USER) , C.Com_Date
+FROM SYS_USER AS S, COMMENT AS C
+where S.SU_Nick = C.FK_Sys_USER
+GROUP BY S.SU_NICK, C.Com_DATE);
diff --git a/src/sql/VistasReportes.sql b/src/sql/VistasReportes.sql
new file mode 100644
index 0000000..812cbec
--- /dev/null
+++ b/src/sql/VistasReportes.sql
@@ -0,0 +1,95 @@
+/*FORMATO DE VISTAS
+*CREATE VIEW REPORT_<Numero del reporte> AS <CONSULTA>
+*/
+
+
+/*REPORTE 1: LISTA DE SISTEMAS OPERATIVOS - VERSION -DESARROLLADOR*/
+
+CREATE VIEW REPORT_1 AS (
+SELECT O.OS_ID,O.OS_NAME, V.FK_OPERATING_SYSTEM, V.VER_NAME, V.VER_RELEASE_DATE, D.DEV_ID, D.DEV_NAME
+FROM OPERATING_SYSTEM O
+ LEFT JOIN VERSION V ON V.FK_OPERATING_SYSTEM = O.OS_ID
+ LEFT JOIN DEVELOPER D ON D.Dev_Company=TRUE AND O.FK_DEVELOPER=D.DEV_ID);
+
+
+/*REPORTE 4: Listado de cargos con sus respectivos empleados*/
+
+CREATE VIEW REPORT_4 AS (
+Select Obl_Name,Obl_Salary,SU_Name, SU_Lastname
+From Obligation, Sys_User, Employee
+where FK_Obligation=Obl_ID AND FK_Sys_user=SU_Nick AND SU_Active=true
+Union
+(Select Obl_Name,Obl_Salary, Null, Null
+FROM Obligation
+except
+Select o.Obl_Name, o.Obl_salary,null, null
+From Obligation o, Employee e
+where o.Obl_id=e.FK_obligation));
+
+/*REPORTE 5: PAIS CON MAS APLICACIONES MOVILES*/
+
+CREATE VIEW REPORT_5 AS (
+SELECT PLA_NAME, Total
+FROM PLACE, APP_PLACE
+WHERE Pla_ID=Path AND Total =(SELECT MAX(TOTAL) FROM APP_PLACE));
+
+/*REPORTE 6: LISTADO DE EMPLEADOS CON SU RESPECTIVO CARGO*/
+
+CREATE VIEW REPORT_6 AS (
+SELECT LE.SU_NICK, LE.SU_CI, LE.SU_NAME, LE.Emp_SEC_NAME, LE.SU_LASTNAME, LE.Emp_SEC_LASTNAME , LE.Emp_Education,LE.SU_Civil_Status,LE.SU_Active, O.Obl_Name, O.Obl_Salary
+FROM LIST_EMPLOYEE LE
+ LEFT JOIN OBLIGATION O ON LE.FK_Obligation = O.Obl_ID);
+
+/*REPORTE 8: Total de contenidos descargados por pais segun el tipo de contenido y la fecha*/
+
+CREATE VIEW REPORT_8 AS (
+SELECT Pla_Name,Con_Type,SUM(SOLD) as Sold, Inv_Emission_Date
+FROM LIST_INVOICE_FROM_PLACE
+GROUP BY Con_Type, PLa_name,Inv_Emission_Date);
+
+/*REPORTE 9: Monto Total de contenidos descargados por pais segun el tipo de contenido y la fecha*/
+
+CREATE VIEW REPORT_9 AS (
+SELECT Pla_Name,Con_Type,SUM(Total_cost) as Total, Inv_Emission_Date
+FROM LIST_INVOICE_FROM_PLACE
+GROUP BY Con_Type, PLa_name,Inv_Emission_Date);
+
+/*REPORTE 11: Listado de 15 contenidos mas descargados por año*/
+
+CREATE VIEW REPORT_11 AS (
+SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, I.Inv_Emission_Date
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content
+GROUP BY C.Con_ID,C.Con_name,I.Inv_Emission_Date
+Order by SOLD desc, Total_Cost desc
+Limit 15);
+
+/*REPORTE 12: Listado de los 25 contenidos mejor calificados*/
+
+CREATE VIEW REPORT_12 AS (
+SELECT C.Con_ID, C.Con_Name, C.Con_Type, ROUND (AVG(R.Rat_Value)) as Rate
+From Content as C, Rate as R
+where C.Con_ID = R.Fk_Content
+Group BY C.Con_Type,C.Con_id, C.Con_Name
+Order BY Rate desc
+Limit 25);
+
+/*REPORTE 13: Listado de los 10 contenidos menos descargados*/
+
+CREATE VIEW REPORT_13 as (
+SELECT C.Con_ID,C.Con_Name, COUNT(P.FK_CONTENT) as SOLD,SUM(P.Pur_Cost) as Total_cost, I.Inv_Emission_Date
+FROM CONTENT as C, PURCHASE as P
+ LEFT JOIN INVOICE I ON I.Inv_ID=P.FK_Invoice
+ LEFT JOIN SYS_USER S ON I.FK_Sys_User = S.SU_Nick
+ LEFT JOIN FROM_PLACE F ON F.pla_id=S.FK_Place
+ LEFT JOIN PLACE X ON X.Pla_ID=F.Path
+WHERE CON_ID=FK_Content
+GROUP BY C.Con_ID,C.Con_name,I.Inv_Emission_Date
+Order by SOLD asc , Total_Cost
+Limit 10);
+
+
-----------------------------------------------------------------------
Summary of changes:
src/sql/DropView.sql | 18 ++++++++
src/sql/Vistas.sql | 75 ++++++++++++++++++++++++++++++++++
src/sql/VistasReportes.sql | 95 ++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 188 insertions(+), 0 deletions(-)
create mode 100644 src/sql/DropView.sql
create mode 100644 src/sql/Vistas.sql
create mode 100644 src/sql/VistasReportes.sql
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-17 02:14:25
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 86262e154efdcbcbd590624fd97f0371510ce962 (commit)
from 209f7bcc4562b224e2694078d31e86d42a273e74 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 86262e154efdcbcbd590624fd97f0371510ce962
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 16 21:44:04 2015 -0430
Archivo restante del Commit Anterior
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/www/js/admin-reports.js b/src/www/js/admin-reports.js
new file mode 100644
index 0000000..09f6f7a
--- /dev/null
+++ b/src/www/js/admin-reports.js
@@ -0,0 +1,707 @@
+
+$(document).ready(function() {
+ $("#dataTablediv").hide();
+ $("#b_new").hide();
+ $('#formAdmindiv').append('\
+ <div id="treeR">\
+ </div>\
+ <form id="grForm" class="pure-form pure-form-aligned" >\
+ <fieldset>\
+ <legend>Grupo de Reportes</legend>\
+ <div class="pure-control-group">\
+ <label>Nombre:</label>\
+ <input type="hidden" name="grID"/>\
+ <input type="text" name="grName"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Descripción:</label>\
+ <textarea name="grDes" cols="30" rows="6"> </textarea>\
+ </div>\
+ <div class="pure-controls">\
+ <button type="submit" class="pure-button pure-button-primary">Guardar</button>\
+ <button name="b_res" type="button" class="pure-button pure-button">Cancelar</button>\
+ </div>\
+ </fieldset>\
+ </form>\
+ <form id="repForm" class="pure-form pure-form-aligned" >\
+ <fieldset>\
+ <legend>Repoprte</legend>\
+ <div class="pure-control-group">\
+ <label>Nombre:</label>\
+ <input type="hidden" name="repID"/>\
+ <input type="text" name="repName"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Descripción:</label>\
+ <textarea name="repDes" cols="30" rows="6"> </textarea>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Fomato:</label>\
+ <input type="text" name="repFormat"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>SQL:</label>\
+ <textarea name="repQuery" cols="30" rows="6"> </textarea>\
+ </div>\
+ <div class="pure-controls">\
+ <button type="submit" class="pure-button pure-button-primary">Guardar</button>\
+ <button name="b_view" type="button" class="pure-button pure-button">Ver</button>\
+ <button name="b_res" type="button" class="pure-button pure-button">Cancelar</button>\
+ </div>\
+ </fieldset>\
+ </form>\
+ <form id="repFormFilters" class="pure-form pure-form-aligned" >\
+ <fieldset>\
+ <legend>Filtro</legend>\
+ <div class="pure-control-group">\
+ <label>Nombre:</label>\
+ <input type="hidden" name="filID"/>\
+ <input type="text" name="filIdName"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Conextor:</label>\
+ <select name="filLog">\
+ <option value="AND">AND</option>\
+ <option value="OR">OR</option>\
+ </select>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Tipo:</label>\
+ <select name="filType">\
+ <option value="STRINGLIKE">En texto</option>\
+ <option value="STRINGEQ">Texto igual</option>\
+ <option value="NUMBER">Numero</option>\
+ <option value="NUMBERG">Numero mayor</option>\
+ <option value="NUMBERGEQ">Numero mayor o igual</option>\
+ <option value="NUMBERL">Numero menor</option>\
+ <option value="NUMBERLEQ">Numero menor o igual</option>\
+ <option value="DATE">Fecha</option>\
+ <option value="DATEG">Fecha mayor</option>\
+ <option value="DATEGE">Fecha mayor o igual</option>\
+ <option value="DATELE">Fecha menor</option>\
+ <option value="DATELEE">Fecha menor o igual</option>\
+ <option value="SELECT">Selección</option>\
+ <option value="MULTI-SELECT">Selección multiple</option>\
+ <option value="CHECK">Check (V/f)</option>\
+ <option value="CHECKNULL">Check (NULL/NOTNULL)</option>\
+ </select>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Campo:</label>\
+ <input type="text" name="filField"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Nombre GUI:</label>\
+ <input type="text" name="filName"/>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>SQL:</label>\
+ <textarea name="filQuery" cols="30" rows="6"> </textarea>\
+ </div>\
+ <div class="pure-controls">\
+ <button type="submit" class="pure-button pure-button-primary">Guardar</button>\
+ <button name="b_res" type="button" class="pure-button pure-button">Cancelar</button>\
+ <button name="b_del" type="button" class="pure-button pure-button">Eliminar</button>\
+ </div>\
+ </fieldset>\
+ </form>\
+ <form id="repDisp" class="pure-form pure-form-aligned" target="_blank" method="post" action="runreport.php">\
+ <fieldset>\
+ <legend>Repoprte</legend>\
+ <div class="pure-control-group">\
+ <label>Nombre:</label>\
+ <input type="hidden" name="repID"/>\
+ <span name="repName">asdasd</span>\
+ </div>\
+ <div class="pure-control-group">\
+ <label>Descripción:</label>\
+ <span name="repDes"></span>\
+ </div>\
+ <legend>Filtros</legend>\
+ <div id="filters">\
+ </div>\
+ <div class="pure-controls">\
+ <button type="submit" class="pure-button pure-button-primary">Correr</button>\
+ <button name="b_edi" type="button" class="pure-button pure-button">Editar</button>\
+ <button name="b_res" type="button" class="pure-button pure-button">Cancelar</button>\
+ </div>\
+ </fieldset>\
+ </form>\
+ ');
+ $('#formAdmindiv').width("100%");
+ $('#treeR')
+ .css("display","inline-block")
+ .css("vertical-align","top");
+ $('#treeR').append('\
+ <ul id="browser" class="easyui-tree">\
+ </ul>\
+ ');
+
+ $('#repDisp button[name=b_res]').click(function(){
+ $('#filters').empty();
+ $('#repDisp input[name=repID]').val("");
+ $('#repDisp span[name=repName]').empty();
+ $('#repDisp span[name=repDes]').empty();
+ $('#repDisp').hide("slow");
+ });
+ $('#repDisp button[name=b_edi]').click(function(){
+ $('#filters').empty();
+ editRep($('#repDisp input[name=repID]').val());
+ $('#repDisp input[name=repID]').val("");
+ $('#repDisp span[name=repName]').empty();
+ $('#repDisp span[name=repDes]').empty();
+ });
+ $('#repForm button[name=b_view]').click(function(){
+ showR("r"+$('#repForm input[name=repID]').val());
+ $('#repForm input[name=repID]').val("");
+ $('#repForm input[name=repName]').val("");
+ $('#repForm textarea[name=repDes]').val("");
+ $('#repForm input[name=repFormat]').val("");
+ $('#repForm textarea[name=repQuery]').val("");
+ });
+ $('#repForm button[name=b_res]').click(function(){
+ $('#repForm input[name=repID]').val("");
+ $('#repForm input[name=repName]').val("");
+ $('#repForm textarea[name=repDes]').val("");
+ $('#repForm input[name=repFormat]').val("");
+ $('#repForm textarea[name=repQuery]').val("");
+ $('#repForm').hide("slow");
+ });
+ $('#grForm button[name=b_res]').click(function(){
+ $('#grForm input[name=grID]').val("");
+ $('#grForm input[name=grName]').val("");
+ $('#grForm textarea[name=grDes]').val("");
+ $('#grForm').hide("slow");
+ });
+ $('#repFormFilters button[name=b_res]').click(function(){
+ $('#repFormFilters input[name=filID]').val("");
+ $('#repFormFilters input[name=filName]').val("");
+ $('#repFormFilters input[name=filField]').val("");
+ $('#repFormFilters textarea[name=filQuery]').val("");
+ $('#repFormFilters').hide("slow");
+ });
+ $('#repFormFilters button[name=b_del]').click(function(){
+ var p=confirm("¿Seguro que desea eliminar este Filtro?");
+ var node1 = $('#browser').tree('find',"f"+$('#repFormFilters input[name=filID]').val());
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=delFilter&id="+$('#repFormFilters input[name=filID]').val(), function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node = $('#browser').tree("getParent",node1.target);
+ $('#browser').tree("reload",node.target);
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+ $('#repFormFilters input[name=filID]').val("");
+ $('#repFormFilters input[name=filName]').val("");
+ $('#repFormFilters input[name=filField]').val("");
+ $('#repFormFilters textarea[name=filQuery]').val("");
+ $('#repFormFilters').hide("slow");
+ });
+ $('#repFormFilters select[name=filType]').change(function(){
+ if ($(this).val()=="SELECT" || $(this).val()=="MULTI-SELECT"){
+ $('#repFormFilters textarea[name=filQuery]').removeAttr("readonly");
+ } else {
+ $('#repFormFilters textarea[name=filQuery]').val("");
+ $('#repFormFilters textarea[name=filQuery]').attr("readonly", true);
+ }
+ });
+ $('#grForm')
+ .css("display","inline-block");
+ $('#repDisp')
+ .css("display","inline-block");
+ $('#repForm')
+ .css("display","inline-block");
+ $('#repFormFilters')
+ .css("display","inline-block");
+ $('#grForm').hide();
+ $('#repDisp').hide();
+ $('#repForm').hide();
+ $('#repFormFilters').hide();
+ $('#browser').tree({
+ url:'../protocol.php?pid=admin-report&action=tree',
+ animate: true,
+ onClick: function(node){
+ if(node.id[0]!='a'){
+ showR(node.id);
+ }
+ }
+ });
+
+ $("#repForm").submit(function(event){
+ event.preventDefault();
+ $.post( "../protocol.php?pid=admin-report&action=editReport",$("#repForm").serialize())
+ .done(function( jsong_data ) {
+ var data = $.parseJSON(jsong_data);
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ alert("Se actualizo satisfactoriamente.");
+ } else {
+ alert("Error");
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ });
+ $("#repFormFilters").submit(function(event){
+ event.preventDefault();
+ $.post( "../protocol.php?pid=admin-report&action=editFilter",$("#repFormFilters").serialize())
+ .done(function( jsong_data ) {
+ var data = $.parseJSON(jsong_data);
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ alert("Se actualizo satisfactoriamente.");
+ } else {
+ alert("Error");
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ });
+ $("#grForm").submit(function(event){
+ event.preventDefault();
+ $.post( "../protocol.php?pid=admin-report&action=editgr",$("#grForm").serialize())
+ .done(function( jsong_data ) {
+ var data = $.parseJSON(jsong_data);
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ alert("Se actualizo satisfactoriamente.");
+ var node1 = $('#browser').tree('find',"g"+$("#grForm input[name=grID]").val());
+ var node = $('#browser').tree("getParent",node1.target);
+ if (node){
+ $('#browser').tree("reload",node.target);
+ } else {
+ $('#browser').tree("reload");
+ }
+ } else {
+ alert("Error");
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ });
+});
+
+function editRep(id){
+ $.getJSON( "../protocol.php?pid=admin-report&action=getRep&id="+id, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ $('#repForm input[name=repID]').val(data["data"]["id"]);
+ $('#repForm input[name=repName]').val(data["data"]["name"]);
+ $('#repForm textarea[name=repDes]').val(data["data"]["des"]);
+ $('#repForm input[name=repFormat]').val(data["data"]["format"]);
+ $('#repForm textarea[name=repQuery]').val(data["data"]["query"]);
+ $('#repForm').show("slow");
+ $('#grForm').hide();
+ $('#repDisp').hide();
+ $('#repFormFilters').hide();
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+}
+
+function showR(id){
+ if(id[0]==='g'){
+ $.getJSON( "../protocol.php?pid=admin-report&action=getg&id="+id.substring(1), function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ $('#grForm input[name=grID]').val(data["data"]["id"]);
+ $('#grForm input[name=grName]').val(data["data"]["name"]);
+ $('#grForm textarea[name=grDes]').val(data["data"]["des"]);
+ $('#grForm').show("slow");
+ $('#repDisp').hide();
+ $('#repForm').hide();
+ $('#repFormFilters').hide();
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ } else if (id[0]==='r'){
+ $.getJSON( "../protocol.php?pid=admin-report&action=getr&id="+id.substring(1), function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ $('#repDisp input[name=repID]').val(data["data"]["rep"]["id"]);
+ $('#repDisp span[name=repName]').empty();
+ $('#repDisp span[name=repName]').append(data["data"]["rep"]["name"]);
+ $('#repDisp span[name=repDes]').empty();
+ $('#repDisp span[name=repDes]').append(data["data"]["rep"]["des"]);
+ $('#filters').empty();
+ $.each(data["data"]["filters"], function( index, value ) {
+ switch(value["type"]){
+ case "STRINGLIKE":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "STRINGEQ":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "NUMBER":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "NUMBERG":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "NUMBERGEQ":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "NUMBERL":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "NUMBERLEQ":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "DATE":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "DATEG":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "DATEGE":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "DATELE":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "DATELEE":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <input type="text" name="'+value["idName"]+'"/>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ break;
+ case "CHECK":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <select name="'+value["idName"]+'">\
+ <option value=""></option>\
+ <option value="true">Verdadero</option>\
+ <option value="false">Falso</option>\
+ </select>\
+ </div>');
+ break;
+ case "SELECT":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <select name="'+value["idName"]+'"></select>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ $.getJSON( "../protocol.php?pid=admin-report&action=getFilterData&id="+value["id"], function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ $("#repDisp select[name="+data["data"]["idName"]+"]").append('<option value=""></option>');
+ $.each(data["data"]["op"], function( index, value ) {
+ $("#repDisp select[name="+data["data"]["idName"]+"]").append('<option value="'+value["value"]+'">'+value["name"]+'</option>');
+ });
+ }else{
+ alert("Error, no se pudieron cargar los datos de "+value["idName"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ break;
+ case "MULTI-SELECT":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <select multiple name="'+value["idName"]+'[]"></select>\
+ A:<input type="checkbox" name="'+value["idName"]+'_as"/>\
+ D:<input type="checkbox" name="'+value["idName"]+'_de"/>\
+ </div>');
+ $.getJSON( "../protocol.php?pid=admin-report&action=getFilterData&id="+value["id"], function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ $("#repDisp select[name='"+data["data"]["idName"]+"[]']").empty();
+ $.each(data["data"]["op"], function( index, value ) {
+ $("#repDisp select[name='"+data["data"]["idName"]+"[]']").append('<option value="'+value["value"]+'">'+value["name"]+'</option>');
+ });
+ }else{
+ alert("Error, no se pudieron cargar los datos de "+value["idName"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ break;
+ case "CHECKNULL":
+ $('#filters').append('\
+ <div class="pure-control-group">\
+ <label>'+value["name"]+':</label>\
+ <select name="'+value["idName"]+'">\
+ <option value=""></option>\
+ <option value="null">Nulo</option>\
+ <option value="notnull">No Nulo</option>\
+ </select>\
+ </div>');
+ break;
+ }
+ });
+ $('#repDisp').show("slow");
+ $('#grForm').hide();
+ $('#repForm').hide();
+ $('#repFormFilters').hide();
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ } else {
+ $.getJSON( "../protocol.php?pid=admin-report&action=getfil&id="+id.substring(1), function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ $('#repFormFilters input[name=filID]').val(data["data"]["id"]);
+ $('#repFormFilters input[name=filIdName]').val(data["data"]["idname"]);
+ $('#repFormFilters input[name=filField]').val(data["data"]["field"]);
+ $('#repFormFilters input[name=filName]').val(data["data"]["name"]);
+ $('#repFormFilters textarea[name=filQuery]').val(data["data"]["query"]);
+ $('#repFormFilters select[name=filType]').val(data["data"]["type"]);
+ if (data["data"]["type"]=="SELECT" || data["data"]["type"]=="MULTI-SELECT"){
+ $('#repFormFilters textarea[name=filQuery]').removeAttr("readonly");
+ } else {
+ $('#repFormFilters textarea[name=filQuery]').val("");
+ $('#repFormFilters textarea[name=filQuery]').attr("readonly", true);
+ }
+ $('#repFormFilters').show("slow");
+ $('#grForm').hide();
+ $('#repDisp').hide();
+ $('#repForm').hide();
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
+
+function addgroup(id){
+ var p=prompt("Nombre para el nuevo gupo: ");
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=addg&id="+id+"&name="+p, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node = $('#browser').tree('find',"g"+id);
+ if(node){
+ $('#browser').tree("reload",node.target);
+ } else {
+ $('#browser').tree("reload");
+ }
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
+
+function delgroup(id){
+ var p=confirm("¿Seguro que desea eliminar este grupo?");
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=delg&id="+id, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node1 = $('#browser').tree('find',"g"+id);
+ var node = $('#browser').tree("getParent",node1.target);
+ if(node){
+ $('#browser').tree("reload",node.target);
+ } else {
+ $('#browser').tree("reload");
+ }
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
+
+function addReport(id){
+ var p=prompt("Nombre para el nuevo Reporte: ");
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=addreport&id="+id+"&name="+p, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node = $('#browser').tree('find',"g"+id);
+ $('#browser').tree("reload",node.target);
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
+
+function addFilter(id){
+ var p=prompt("Nombre para el nuevo Filtro: ");
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=addFilter&id="+id+"&name="+p, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node = $('#browser').tree('find',"r"+id);
+ $('#browser').tree("reload",node.target);
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
+
+function delReport(id){
+ var p=confirm("¿Seguro que desea eliminar este reporte?");
+ if(p){
+ $.getJSON( "../protocol.php?pid=admin-report&action=delReport&id="+id, function(data) {
+ if( data["pid"] == "admin-report"){
+ if (data["status"]=="success"){
+ if(data["data"]){
+ var node1 = $('#browser').tree('find',"r"+id);
+ var node = $('#browser').tree("getParent",node1.target);
+ $('#browser').tree("reload",node.target);
+ }else{
+ alert("Error: ".data["error"]);
+ }
+ } else {
+ alert("Error: "+data["error"]);
+ }
+ } else {
+ alert("Error Respuesta no esperada.");
+ }
+ });
+ }
+}
-----------------------------------------------------------------------
Summary of changes:
src/www/js/admin-reports.js | 707 +++++++++++++++++++++++++++++++++++++++++++
1 files changed, 707 insertions(+), 0 deletions(-)
create mode 100644 src/www/js/admin-reports.js
hooks/post-receive
--
Global Store
|
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-17 01:46:05
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 209f7bcc4562b224e2694078d31e86d42a273e74 (commit)
from 9042f56467debf5c60a5812294cb15fc156c7adf (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 209f7bcc4562b224e2694078d31e86d42a273e74
Author: Rómulo Rodriguez <rod...@gm...>
Date: Fri Jan 16 21:15:28 2015 -0430
Agregado:
- Jquery Easyui. Para la vista de arbol.
-Administracion de Reportes y grupos de reportes.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/src/php/db.class.php b/src/php/db.class.php
index 2266ed4..8b4dc7e 100644
--- a/src/php/db.class.php
+++ b/src/php/db.class.php
@@ -143,6 +143,21 @@ class DB {
}
}
+ public function getfieldNames(){
+ if($this->query_result){
+ $field=array();
+ $i = 0;
+ while ($i<pg_num_fields($this->query_result))
+ {
+ $fieldName = pg_field_name($this->query_result, $i);
+ array_push($field,$fieldName);
+ $i = $i + 1;
+ }
+ return $field;
+ }
+ return flase;
+ }
+
/**
* DB::shootException
* Dispara un Exception
diff --git a/src/php/protocol.class.php b/src/php/protocol.class.php
index 5fe7e33..34ce253 100644
--- a/src/php/protocol.class.php
+++ b/src/php/protocol.class.php
@@ -154,6 +154,10 @@ class ProtocolController {
include_once("protocol/coments.class.php");
Coments::run();
break;
+ case "admin-report":
+ include_once("protocol/report.class.php");
+ Report::run();
+ break;
/* Simples Peticiones */
case "getOsList":
diff --git a/src/php/protocol/report.class.php b/src/php/protocol/report.class.php
new file mode 100644
index 0000000..fc45255
--- /dev/null
+++ b/src/php/protocol/report.class.php
@@ -0,0 +1,478 @@
+<?php
+
+include_once("../php/dtserver.class.php");
+include_once("../php/security.class.php");
+
+/**
+ * Login
+ * Implementacion del protocolo para la administracion de modulos del sistema PID=admin_module
+ */
+class Report implements Protocol {
+
+ /**
+ * Login::run
+ * Ejecucion del protocolo
+ */
+ public static function run() {
+
+ if (!Core::start()){
+ ProtocolController::createPacket($_GET["pid"],false,null,"Debe ingresar al sistema");
+ return;
+ }
+ if(!isset($_GET["action"])){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo action");
+ return;
+ }
+ switch ($_GET["action"]) {
+ case 'tree':
+ ProtocolController::$send=false;
+ Report::tree();
+ break;
+
+ case "addg":
+ if(isset($_GET["id"]) && isset($_GET["name"])){
+ $sql="
+ insert into group_report (
+ gr_name,
+ fk_group_report,
+ gr_description
+ ) values (
+ '".urldecode($_GET["name"])."',
+ ".($_GET["id"]=="root"?"null":$_GET['id']).",
+ ''
+ )
+ RETURNING gr_id as id;
+ ";
+ try {
+ Core::$db->query($sql);
+ $line=Core::$db->fetchArray();
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "addFilter":
+ if(isset($_GET["id"]) && isset($_GET["name"])){
+ $sql="
+ insert into filter_report (
+ fr_id_name,
+ fk_report,
+ fr_type,
+ fr_name
+ ) values (
+ '".urldecode($_GET["name"])."',
+ ".$_GET["id"].",
+ 'STRINGLIKE',
+ ''
+ )
+ RETURNING fr_id as id;
+ ";
+ try {
+ Core::$db->query($sql);
+ $line=Core::$db->fetchArray();
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "addreport":
+ if(isset($_GET["id"]) && isset($_GET["name"])){
+ $sql="
+ insert into report (
+ rep_name,
+ fk_group_report,
+ rep_description,
+ rep_format,
+ rep_query
+ ) values (
+ '".urldecode($_GET["name"])."',
+ ".$_GET['id'].",
+ '',
+ '',
+ ''
+ )
+ RETURNING rep_id as id;
+ ";
+ try {
+ Core::$db->query($sql);
+ $line=Core::$db->fetchArray();
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "delg":
+ if(isset($_GET["id"])){
+ $sql="
+ delete from group_report where gr_id=".$_GET['id'];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "delFilter":
+ if(isset($_GET["id"])){
+ $sql="
+ delete from filter_report where fr_id=".$_GET['id'];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "delReport":
+ if(isset($_GET["id"])){
+ $sql="
+ delete from report where rep_id=".$_GET['id'];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "getg":
+ if(!Security::chkUserAcc(4,VIEW,"Report::run,pid=getRow")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_GET["id"])){
+ $sql="
+ SELECT gr_id as id, gr_name as name, gr_description as des
+ FROM group_report
+ WHERE gr_id=".$_GET["id"];
+ try {
+ Core::$db->query($sql);
+ if(Core::$db->resRowsNum()!=1){
+ ProtocolController::createPacket($_GET["pid"],false,null,"Error en la consulta");
+ } else {
+ ProtocolController::createPacket($_GET["pid"],true,Core::$db->fetchArray());
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "getfil":
+ if(!Security::chkUserAcc(4,VIEW,"Report::run,pid=getfil")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_GET["id"])){
+ $sql="
+ SELECT fr_id as id, fr_name as name, fr_id_name as idname, fr_field as field, fr_type as type, fr_query as query
+ FROM filter_report
+ WHERE fr_id=".$_GET["id"];
+ try {
+ Core::$db->query($sql);
+ if(Core::$db->resRowsNum()!=1){
+ ProtocolController::createPacket($_GET["pid"],false,null,"Error en la consulta");
+ } else {
+ ProtocolController::createPacket($_GET["pid"],true,Core::$db->fetchArray());
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "editgr":
+ if(!Security::chkUserAcc(4,MOD,"Report::run,pid=editRow")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_POST["grID"]) && isset($_POST["grName"]) && isset($_POST["grDes"])){
+ $sql="
+ UPDATE group_report
+ SET gr_name='".$_POST["grName"]."',gr_description='".pg_escape_string($_POST["grDes"])."'
+ WHERE gr_id=".$_POST["grID"];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false);
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivieron todos los datos");
+ }
+ break;
+ case "editFilter":
+ if(!Security::chkUserAcc(4,MOD,"Report::run,pid=editFilter")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_POST["filID"]) && isset($_POST["filIdName"]) && isset($_POST["filName"]) && isset($_POST["filField"]) && isset($_POST["filQuery"]) && isset($_POST["filType"])){
+ if (Security::safeSQL($_POST["filQuery"])){
+ $sql="
+ UPDATE filter_report
+ SET fr_name='".$_POST["filName"]."',fr_log='".$_POST["filLog"]."', fr_id_name='".$_POST["filIdName"]."',fr_field='".$_POST["filField"]."',fr_query='".pg_escape_string($_POST["filQuery"])."',fr_type='".$_POST["filType"]."'
+ WHERE fr_id=".$_POST["filID"];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false);
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"Consulta altera la seguridad");
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivieron todos los datos");
+ }
+ break;
+ case "getr":
+ if(!Security::chkUserAcc(4,VIEW,"Report::run,pid=getRow")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_GET["id"])){
+ $sql="
+ SELECT rep_id as id, rep_name as name, rep_description as des
+ FROM report
+ WHERE rep_id=".$_GET["id"];
+ $data=false;
+ try {
+ Core::$db->query($sql);
+ if(Core::$db->resRowsNum()!=1){
+ ProtocolController::createPacket($_GET["pid"],false,null,"Error en la consulta");
+ } else {
+ $data=array();
+ $data["rep"]=Core::$db->fetchArray();
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ if($data){
+ $sql="
+ SELECT fr_id as id, fr_name as name,fr_id_name as \"idName\", fr_type as type
+ FROM filter_report
+ WHERE fk_report=".$_GET["id"];
+ }
+ try {
+ Core::$db->query($sql);
+ $data["filters"]=Core::$db->fetchAll();
+ ProtocolController::createPacket($_GET["pid"],true,$data);
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivio el campo ID");
+ }
+ break;
+ case "getFilterData":
+ if(!Security::chkUserAcc(4,MOD,"Report::run,pid=getFilterData")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_GET["id"])){
+ $sql="
+ select fr_query,fr_id_name
+ from filter_report
+ WHERE fr_id=".$_GET["id"];
+ $query=false;
+ try {
+ Core::$db->query($sql);
+ $line=Core::$db->fetchArray();
+ $query=$line["fr_query"];
+ $id_name=$line["fr_id_name"];
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ if($query){
+ try {
+ Core::$db->query($query);
+ ProtocolController::createPacket($_GET["pid"],true,array("idName"=>$id_name,"op"=>Core::$db->fetchall()));
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false,$e->getMessage());
+ }
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivieron todos los datos");
+ }
+ break;
+ case "getRep";
+ if(!Security::chkUserAcc(4,MOD,"Report::run,pid=getRep")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_GET["id"])){
+ $sql="
+ select rep_id as id, rep_name as name, rep_description as des, rep_query as query, rep_format as format
+ from report
+ WHERE rep_id=".$_GET["id"];
+ try {
+ Core::$db->query($sql);
+ if(Core::$db->resRowsNum()!=1){
+ ProtocolController::createPacket($_GET["pid"],false,null,"Error en la consulta");
+ } else {
+ ProtocolController::createPacket($_GET["pid"],true,Core::$db->fetchArray());
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivieron todos los datos");
+ }
+ break;
+ case "editReport":
+ if(!Security::chkUserAcc(4,MOD,"Report::run,pid=editReport")){
+ ProtocolController::createPacket($_GET["pid"],false,null,"No tienes permiso para ver esto");
+ break;
+ }
+ if(isset($_POST["repID"]) && isset($_POST["repName"]) && isset($_POST["repDes"]) && isset($_POST["repFormat"]) && isset($_POST["repQuery"])){
+ if (Security::safeSQL($_POST["repQuery"])){
+ $sql="
+ UPDATE report
+ SET rep_name='".$_POST["repName"]."',rep_description='".pg_escape_string($_POST["repDes"])."',rep_format='".$_POST["repFormat"]."',rep_query='".pg_escape_string($_POST["repQuery"])."'
+ WHERE rep_id=".$_POST["repID"];
+ try {
+ Core::$db->query($sql);
+ ProtocolController::createPacket($_GET["pid"],true,true);
+ } catch (Exception $e) {
+ ProtocolController::createPacket($_GET["pid"],true,false);
+ }
+ }else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"Consulta altera la seguridad");
+ }
+ } else {
+ ProtocolController::createPacket($_GET["pid"],false,null,"No se recivieron todos los datos");
+ }
+ break;
+ }
+
+ }
+ public static function tree(){
+ $r=array();
+ array_push($r,array(
+ "id"=>"a"."root",
+ "text"=>'<span onclick="addgroup(\'root\')"> <img src="../js/jquery-easyui-1.4.1/themes/icons/edit_add.png"/> Agregar Grupo</spand>',
+ "iconCls"=>"icon-blank"
+ ));
+ if (!isset($_POST['id'])){
+ $sql="
+ select 'g'||gr_id as id, gr_name as text
+ from group_report
+ where fk_group_report isnull
+ order by gr_name
+ ";
+ try {
+ Core::$db->query($sql);
+ $d=false;
+ while($d=Core::$db->fetchArray()){
+ $d["state"]="closed";
+ array_push($r,$d);
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ $t=$_POST['id'][0];
+ $id=substr($_POST['id'], 1);
+ $r=array();
+ if($t=="g"){
+ array_push($r,array(
+ "id"=>"a".$id,
+ "text"=>'<span onclick="delgroup(\''.$id.'\')"><img src="../js/jquery-easyui-1.4.1/themes/icons/no.png"/> Eliminar este grupo</span>',
+ "iconCls"=>"icon-blank"
+ ));
+ array_push($r,array(
+ "id"=>"a".$id,
+ "text"=>'<span onclick="addgroup(\''.$id.'\')"><img src="../js/jquery-easyui-1.4.1/themes/icons/edit_add.png"/> Agregar Grupo AquÃ</span>',
+ "iconCls"=>"icon-blank"
+ ));
+ array_push($r,array(
+ "id"=>"a".$id,
+ "text"=>'<span onclick="addReport(\''.$id.'\')">Agregar Reporte <img src="../js/jquery-easyui-1.4.1/themes/icons/mini_add.png"/></span>',
+ "iconCls"=>"tree-file"
+ ));
+ $sql="
+ select 'g'||gr_id as id, gr_name as text
+ from group_report
+ where fk_group_report=".$id."
+ order by gr_name
+ ";
+ try {
+ Core::$db->query($sql);
+ $d=false;
+ while($d=Core::$db->fetchArray()){
+ $d["state"]="closed";
+ array_push($r,$d);
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ $sql="
+ select 'r'||rep_id as id, rep_name as text
+ from report
+ where fk_group_report=".$id."
+ order by rep_name
+ ";
+ try {
+ Core::$db->query($sql);
+ $d=false;
+ while($d=Core::$db->fetchArray()){
+ $d["state"]="closed";
+ $d["iconCls"]="tree-file";
+ array_push($r,$d);
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else if($t=="r"){
+ array_push($r,array(
+ "id"=>"a".$id,
+ "text"=>'<span onclick="delReport(\''.$id.'\')"><img src="../js/jquery-easyui-1.4.1/themes/icons/no.png"/> Eliminar este Reporte</span>',
+ "iconCls"=>"icon-blank"
+ ));
+ array_push($r,array(
+ "id"=>"a".$id,
+ "text"=>'<span onclick="addFilter(\''.$id.'\')"><img src="../js/jquery-easyui-1.4.1/themes/icons/filter.png"/> Agregar Filtro</span>',
+ "iconCls"=>"icon-blank"
+ ));
+ $sql="
+ select 'f'||fr_id as id, fr_id_name as text
+ from filter_report
+ where fk_report=".$id."
+ order by fr_id_name
+ ";
+ try {
+ Core::$db->query($sql);
+ $d=false;
+ while($d=Core::$db->fetchArray()){
+ $d["iconCls"]="icon-filter";
+ array_push($r,$d);
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ }
+ }
+ echo json_encode($r);
+ }
+}
+
+?>
\ No newline at end of file
diff --git a/src/php/reportFormats/standar.php b/src/php/reportFormats/standar.php
new file mode 100644
index 0000000..8459762
--- /dev/null
+++ b/src/php/reportFormats/standar.php
@@ -0,0 +1,208 @@
+<?php
+function printReport($header,$columns,$data,$user,$pars){
+ if ($header && $data && $user){
+?>
+<!DOCTYPE html>
+<html lang="es">
+ <head>
+ <style>
+ body {
+ }
+ header {
+ margin-left: auto;
+ margin-right: auto;
+ width: 800px;
+ display : table;
+ background-color: #E9E5E3;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ }
+ footer
+ {
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 10px;
+ width: 800px;
+ display : table;
+ text-align: center;
+ font-size: 14px;
+ }
+ .content{
+ margin-left: auto;
+ margin-right: auto;
+ margin-top: 10px;
+ height: 150px;
+ width: 800px;
+ display : table;
+ }
+ .header-info{
+ margin: 100px;
+ height:20px;
+ display: table-cell;
+ vertical-align: middle;
+ }
+ .header-logo{
+ width: 100px;
+ display: table-cell;
+ vertical-align: middle;
+ }
+ .header-info-text{
+ background-color: #FFFFFF;
+ margin: 15px;
+ padding: 5px;
+ -webkit-border-radius: 10px;
+ -moz-border-radius: 10px;
+ border-radius: 10px;
+ }
+ .titleT{
+ font-size: 30pt;
+ }
+ .title0{
+ font-size: 16pt;
+ }
+ .text0{
+ font-size: 12pt;
+ }
+ .dtable{
+ margin-left: auto;
+ margin-right: auto;
+ max-width: 800px;
+ margin-top: 10px;
+ }
+ </style>
+ <link type="text/css" rel="stylesheet" href="../css/pure-min.css">
+ </head>
+ <body>
+ <header>
+ <div class="header-logo">
+ <img src="../Images/Logoonly.png" border="0">
+ </div>
+ <div class="header-info">
+ <div class="header-info-text">
+ <table border="0" cellpadding="1" cellspacing="0">
+ <tr>
+ <td colspan="2"><span class="titleT">Global Store (Reportes)</span></td>
+ </tr>
+ <tr>
+ <td><span class="title0">Reporte:</span></td>
+ <td><span class="title0">Descriptcion:</span></td>
+ </tr>
+ <tr>
+ <td width="200px"><span class="text0"><?php echo $header["name"];?></td>
+ <td><span class="text0"><?php echo $header["des"];?></span></td>
+ </tr>
+ </table>
+ </div>
+ </div>
+ </header>
+ <div class="content">
+ <?php if ($pars && $pars[0]!="false"){
+ $gr=$pars[0];
+ $cols=array();
+ $g=current($columns);
+ while($g){
+ if($g!=$gr){
+ array_push($cols,$g);
+ }
+ $g=next($columns);
+ }
+ $columns=$cols;
+ $colsnum=count($columns);
+ $newd=array();
+ $g=current($data);
+ while($g){
+ if(!isset($newd[$g[$gr]])){
+ $newd[$g[$gr]]=array();
+ $newd[$g[$gr]]["head"]=$g[$gr];
+ $newd[$g[$gr]]["data"]=array();
+ }
+ $as=$g[$gr];
+ unset($g[$gr]);
+ array_push($newd[$as]["data"],$g);
+ $g=next($data);
+ }
+ $g=current($newd);
+ while($g){
+ ?>
+ <table class="pure-table pure-table-horizontal dtable">
+ <thead>
+ <tr>
+ <th align="center" colspan="<?php echo $colsnum ?>"><?php echo $gr.": ".$g["head"]; ?></th>
+ </tr>
+ <tr>
+ <?php
+ reset($columns);
+ $c=current($columns);
+ while($c){
+ echo '<th align="center">'.$c."</th>";
+ $c=next($columns);
+ }
+ reset($columns);
+ ?>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ $data=$g["data"];
+ $d=current($data);
+ while($d){
+ echo "<tr>";
+ $c=current($columns);
+ while($c){
+ echo "<td>".$d[$c]."</td>";
+ $c=next($columns);
+ }
+ reset($columns);
+ $d=next($data);
+ echo "</tr>";
+ }
+ ?>
+ </tbody>
+ </table>
+ <?php $g=next($newd);}?>
+ <?php } else {?>
+ <table class="pure-table pure-table-horizontal dtable">
+ <thead>
+ <tr>
+ <?php
+ $c=current($columns);
+ while($c){
+ echo '<th align="center">'.$c."</th>";
+ $c=next($columns);
+ }
+ reset($columns);
+ ?>
+ </tr>
+ </thead>
+ <tbody>
+ <?php
+ $d=current($data);
+ while($d){
+ echo "<tr>";
+ $c=current($columns);
+ while($c){
+ echo "<td>".$d[$c]."</td>";
+ $c=next($columns);
+ }
+ reset($columns);
+ $d=next($data);
+ echo "</tr>";
+ }
+ ?>
+ </tbody>
+ </table>
+ <?php }?>
+ </div>
+ <footer>
+ Generado por <?php echo $user->getName()." ".$user->getLastName()?> en al fecha <?php echo date("Y-m-d H:i:s"); ?>.
+ </footer>
+ </body>
+</html>
+
+<?php
+ } else {
+
+ }
+}
+?>
\ No newline at end of file
diff --git a/src/php/security.class.php b/src/php/security.class.php
index 6d08697..0ea61f1 100644
--- a/src/php/security.class.php
+++ b/src/php/security.class.php
@@ -36,5 +36,22 @@ class Security {
echo $e->getMessage();
}
}
+
+ public static function safeSQL($sql){
+ $SQL=strtoupper($sql);
+ if(strpos($SQL,"UPDATE")!==false){
+ return false;
+ }
+ if(strpos($SQL,"DELETE")!==false){
+ return false;
+ }
+ if(strpos($SQL,"INSERT")!==false){
+ return false;
+ }
+ if(strpos($SQL,"ALTER")!==false){
+ return false;
+ }
+ return true;
+ }
}
?>
\ No newline at end of file
diff --git a/src/www/admin/index.php b/src/www/admin/index.php
index 2cf0c4d..037e6a9 100644
--- a/src/www/admin/index.php
+++ b/src/www/admin/index.php
@@ -341,6 +341,20 @@ switch ($page) {
$controls=true;
}
break;
+ case 'reports':
+ if (!Security::chkUserAcc(4,VIEW,"admin/index.php?pid=reports")){
+ $error=true;
+ $error_msg="No tienes permiso de ver el continido de los reportes";
+ $js=array();
+ $title="Error";
+ $table_fields=FALSE;
+ } else {
+ $js=array("admin-reports");
+ $title="Reportes";
+ $table_fields=false;
+ $controls=true;
+ }
+ break;
case 'board':
$js=array();
$title="Board";
@@ -363,6 +377,8 @@ switch ($page) {
<meta name="viewport" content="width=device-width; initial-scale=1.0">
<!-- Replace favicon.ico & apple-touch-icon.png in the root of your domain and delete these references -->
+ <link rel="stylesheet" type="text/css" href="../js/jquery-easyui-1.4.1/themes/default/easyui.css">
+ <link rel="stylesheet" type="text/css" href="../js/jquery-easyui-1.4.1/themes/icon.css">
<link type="text/css" rel="stylesheet" href="../css/admin-main.css">
<link type="text/css" rel="stylesheet" href="../css/pure-min.css">
<link type="text/css" rel="stylesheet" href="../css/grids-responsive-min.css">
@@ -372,12 +388,12 @@ switch ($page) {
<script type="text/javascript" src="../js/form-validator/jquery.form-validator.min.js"></script>
<script type="text/javascript" src="../js/main.js"></script>
<script type="text/javascript" charset="utf8" src="../js/DataTables/media/js/jquery.dataTables.js"></script>
+ <script type="text/javascript" src="../js/jquery-easyui-1.4.1/jquery.easyui.min.js"></script>
<?php
foreach ($js as $value) {
echo '<script type="text/javascript" src="../js/'.$value.'.js"></script>';
}
?>
-
<script type="text/javascript">
$( document ).ready(function() {
check_user();
@@ -454,6 +470,7 @@ switch ($page) {
<li><a href="?page=modules">Modulos</a></li>
<li><a href="?page=eventinfo">Informacion de eventos</a></li>
<li><a href="?page=events">Eventos</a></li>
+ <li><a href="?page=reports">Reportes</a></li>
</ul>
</li>
</ul>
@@ -461,7 +478,7 @@ switch ($page) {
</div>
<div id="content_center_r">
<div id="Tittle"><?php echo $title; ?> </div>
- <div class="dataTablediv">
+ <div class="dataTablediv" id="dataTablediv">
<button onclick="javascript:adminNew()" id="b_new" type="button" class="pure-button pure-button-primary">Nuevo</button>
<?php if ($table_fields) {?>
<table id="dataTable" class="compact order-column hover row-border cell-border" cellspacing="0" width="100%">
diff --git a/src/www/admin/runreport.php b/src/www/admin/runreport.php
new file mode 100644
index 0000000..e7bf285
--- /dev/null
+++ b/src/www/admin/runreport.php
@@ -0,0 +1,244 @@
+<?php
+include_once("../../php/core.class.php");
+include_once("../../php/security.class.php");
+
+if (!Core::start()){
+ Core::stop();
+ header('Location: ../');
+}
+$data=false;
+if(isset($_POST["repID"])){
+ $rep=false;
+ $filters= false;
+ $sql="
+ select rep_name as name, rep_description as des, rep_query as query, rep_format as format
+ from report
+ WHERE rep_id=".$_POST["repID"];
+ try {
+ Core::$db->query($sql);
+ if(Core::$db->resRowsNum()!=1){
+ echo "Error en la consulta";
+ } else {
+ $rep=Core::$db->fetchArray();
+ $header=array();
+ $header["name"]=$rep["name"];
+ $header["des"]=$rep["des"];
+ }
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ $sql="
+ select fr_id_name as nameid, fr_field as field, fr_type as type, fr_log as log
+ from filter_report
+ where fk_report=".$_POST["repID"]."
+ order by fr_id_name
+ ";
+ try {
+ Core::$db->query($sql);
+ $filters=Core::$db->fetchAll();
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ $data= false;
+ $rep=false;
+ }
+ $order=false;
+ $frist=true;
+ if ($filters && $rep){
+ $f=current($filters);
+ while($f){
+ switch ($f["type"]) {
+ case 'STRINGLIKE':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]." like '%".$_POST[$f["nameid"]]."%'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'STRINGEQ':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."='".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'NUMBER':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."=".$_POST[$f["nameid"]],$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'NUMBERG':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"].">".$_POST[$f["nameid"]],$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'NUMBERGEQ':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"].">=".$_POST[$f["nameid"]],$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'NUMBERL':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."<".$_POST[$f["nameid"]],$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'NUMBERLEQ':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."<=".$_POST[$f["nameid"]],$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'DATE':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."='".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'DATEG':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"].">'".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'DATEGE':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"].">='".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'DATELE':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."<'".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case 'DATELEE':
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."<='".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case "SELECT":
+ if($_POST[$f["nameid"]]!=""){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]."='".$_POST[$f["nameid"]]."'",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case "MULTI-SELECT":
+ $s=false;
+ if(isset($_POST[$f["nameid"]]) && count($_POST[$f["nameid"]])>0){
+ $c=current($_POST[$f["nameid"]]);
+ $s="";
+ while($c){
+ $s.=$f["field"]."='".$c."' ";
+ $c=next($_POST[$f["nameid"]]);
+ if($c){
+ $s.="or ";
+ }
+ }
+ }
+ if($s){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." (".$s.") ",$rep["query"]);
+ $frist=false;
+ } else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case "CHECKNULL":
+ if($_POST[$f["nameid"]]=="null"){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]." is null",$rep["query"]);
+ $frist=false;
+ } else if($_POST[$f["nameid"]]=="notnull"){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]." is not null",$rep["query"]);
+ $frist=false;
+ }else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ case "CHECK":
+ if($_POST[$f["nameid"]]=="true"){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." ".$f["field"]." ",$rep["query"]);
+ $frist=false;
+ } else if($_POST[$f["nameid"]]=="false"){
+ $rep["query"]=str_replace($f["nameid"],(!$frist?$f["log"]:"")." not ".$f["field"]." ",$rep["query"]);
+ $frist=false;
+ }else {
+ $rep["query"]=str_replace($f["nameid"],"",$rep["query"]);
+ }
+ break;
+ }
+ if (isset($_POST[$f["nameid"]."_as"])){
+ if ($order){
+ $order.=", ".$f["field"];
+ } else {
+ $order=$f["field"];
+ }
+ } else {
+ if (isset($_POST[$f["nameid"]."_de"])){
+ if ($order){
+ $order.=", ".$f["field"]." desc";
+ } else {
+ $order=$f["field"]." desc";
+ }
+ }
+ }
+ $f=next($filters);
+ }
+ }
+ if ($frist)
+ $rep["query"]=str_replace("where","",$rep["query"]);
+
+ if ($rep){
+ if ($order){
+ $rep["query"]=$rep["query"]." order by ".$order;
+ }
+ try {
+ Core::$db->query($rep["query"]);
+ $data=Core::$db->fetchAll();
+ $columns=Core::$db->getfieldNames();
+ } catch (Exception $e) {
+ echo $e->getMessage();
+ }
+ } else {
+ echo "No existe la consulta";
+ }
+}
+
+
+if ($data){
+ $ex=explode("?",$rep["format"]);
+ $pars=false;
+ if (isset($ex[1])){
+ $pars=explode(",",$ex[1]);
+ }
+ include("../../php/reportFormats/".$ex[0]);
+ printReport($header,$columns,$data,core::$user,$pars);
+}
+?>
diff --git a/src/www/js/jquery-easyui-1.4.1/changelog.txt b/src/www/js/jquery-easyui-1.4.1/changelog.txt
new file mode 100755
index 0000000..c05b1dd
--- /dev/null
+++ b/src/www/js/jquery-easyui-1.4.1/changelog.txt
@@ -0,0 +1,433 @@
+Version 1.4.1
+-------------
+* Bug
+ * combogrid: The combogrid has different height than other combo components. fixed.
+ * datagrid: The row element loses some class style value after calling 'updateRow' method. fixed.
+ * menubutton: Calling 'enable' method on a disabled button can not work well. fixed.
+ * form: The filebox components in the form do not work correctly after calling 'clear' method. fixed.
+* Improvement
+ * tabs: The 'update' method accepts 'type' option that allows the user to update the header,body,or both.
+ * panel: Add 'openAnimation','openDuration','closeAnimation' and 'closeDuration' properties to set the animation for opening or closing a panel.
+ * panel: Add 'footer' property that allows the user to add a footer bar to the bottom of panel.
+ * datagrid: Calling 'endEdit' method will accept the editing value correctly.
+ * datagrid: Add 'onBeforeSelect','onBeforeCheck','onBeforeUnselect','onBeforeUncheck' events.
+ * propertygrid: The user can edit a row by calling 'beginEdit' method.
+ * datebox: Add 'cloneFrom' method to create the datebox component quickly.
+ * datetimebox: Add 'cloneFrom' method to create the datetimebox component quickly.
+
+Version 1.4
+-------------
+* Bug
+ * menu: The menu should not has a correct height when removed a menu item. fixed.
+ * datagrid: The 'fitColumns' method does not work normally when the datarid width is too small. fixed.
+* Improvement
+ * The fluid/percentange size is supported now for all easyui components.
+ * menu: Add 'showItem', 'hideItem' and 'resize' methods.
+ * menu: Auto resize the height upon the window size.
+ * menu: Add 'duration' property that allows the user to define duration time in milliseconds to hide menu.
+ * validatebox: Add 'onBeforeValidate' and 'onValidate' events.
+ * combo: Extended from textbox now.
+ * combo: Add 'panelMinWidth','panelMaxWidth','panelMinHeight' and 'panelMaxHeight' properties.
+ * searchbox: Extended from textbox now.
+ * tree: The 'getRoot' method will return the top parent node of a specified node if pass a 'nodeEl' parameter.
+ * tree: Add 'queryParams' property.
+ * datetimebox: Add 'spinnerWidth' property.
+ * panel: Add 'doLayout' method to cause the panel to lay out its components.
+ * panel: Add 'clear' method to clear the panel's content.
+ * datagrid: The user is allowed to assign percent width to columns.
+ * form: Add 'ajax','novalidate' and 'queryParams' properties.
+ * linkbutton: Add 'resize' method.
+* New Plugins
+ * textbox: A enhanced input field that allows users build their form easily.
+ * datetimespinner: A date and time spinner that allows to pick a specific day.
+ * filebox: The filebox component represents a file field of the forms.
+
+Version 1.3.6
+-------------
+* Bug
+ * treegrid: The 'getChecked' method can not return correct checked rows. fixed.
+ * tree: The checkbox does not display properly on async tree when 'onlyLeafCheck' property is true. fixed.
+* Improvement
+ * treegrid: All the selecting and checking methods are extended from datagrid component.
+ * linkbutton: The icon alignment is fully supported, possible values are: 'top','bottom','left','right'.
+ * linkbutton: Add 'size' property, possible values are: 'small','large'.
+ * linkbutton: Add 'onClick' event.
+ * menubutton: Add 'menuAlign' property that allows the user set top level menu alignment.
+ * combo: Add 'panelAlign' property, possible values are: 'left','right'.
+ * calendar: The 'formatter','styler' and 'validator' options are available to custom the calendar dates.
+ * calendar: Add 'onChange' event.
+ * panel: Add 'method','queryParams' and 'loader' options.
+ * panel: Add 'onLoadError' event.
+ * datagrid: Add 'onBeginEdit' event that fires when a row goes into edit mode.
+ * datagrid: Add 'onEndEdit' event that fires when finishing editing but before destroying editors.
+ * datagrid: Add 'sort' method and 'onBeforeSortColumn' event.
+ * datagrid: The 'combogrid' editor has been integrated into datagrid.
+ * datagrid: Add 'ctrlSelect' property that only allows multi-selection when ctrl+click is used.
+ * slider: Add 'converter' option that allows users determine how to convert a value to the slider position or the slider position to the value.
+ * searchbox: Add 'disabled' property.
+ * searchbox: Add 'disable','enable','clear','reset' methods.
+ * spinner: Add 'readonly' property, 'readonly' method and 'onChange' event.
+
+Version 1.3.5
+-------------
+* Bug
+ * searchbox: The 'searcher' function can not offer 'name' parameter value correctly. fixed.
+ * combo: The 'isValid' method can not return boolean value. fixed.
+ * combo: Clicking combo will trigger the 'onHidePanel' event of other combo components that have hidden drop-down panels. fixed.
+ * combogrid: Some methods can not inherit from combo. fixed.
+* Improvement
+ * datagrid: Improve performance on checking rows.
+ * menu: Allows to append a menu separator.
+ * menu: Add 'hideOnUnhover' property to indicate if the menu should be hidden when mouse exits it.
+ * slider: Add 'clear' and 'reset' methods.
+ * tabs: Add 'unselect' method that will trigger 'onUnselect' event.
+ * tabs: Add 'selected' property to specify what tab panel will be opened.
+ * tabs: The 'collapsible' property of tab panel is supported to determine if the tab panel can be collapsed.
+ * tabs: Add 'showHeader' property, 'showHeader' and 'hideHeader' methods.
+ * combobox: The 'disabled' property can be used to disable some items.
+ * tree: Improve loading performance.
+ * pagination: The 'layout' property can be used to customize the pagination layout.
+ * accordion: Add 'unselect' method that will trigger 'onUnselect' event.
+ * accordion: Add 'selected' and 'multiple' properties.
+ * accordion: Add 'getSelections' method.
+ * datebox: Add 'sharedCalendar' property that allows multiple datebox components share one calendar component.
+
+Version 1.3.4
+-------------
+* Bug
+ * combobox: The onLoadSuccess event fires when parsing empty local data. fixed.
+ * form: Calling 'reset' method can not reset datebox field. fixed.
+* Improvement
+ * mobile: The context menu and double click features are supported on mobile devices.
+ * combobox: The 'groupField' and 'groupFormatter' options are available to display items in groups.
+ * tree: When append or insert nodes, the 'data' parameter accepts one or more nodes data.
+ * tree: The 'getChecked' method accepts a single 'state' or an array of 'state'.
+ * tree: Add 'scrollTo' method.
+ * datagrid: The 'multiSort' property is added to support multiple column sorting.
+ * datagrid: The 'rowStyler' and column 'styler' can return CSS class name or inline styles.
+ * treegrid: Add 'load' method to load data and navigate to the first page.
+ * tabs: Add 'tabWidth' and 'tabHeight' properties.
+ * validatebox: The 'novalidate' property is available to indicate whether to perform the validation.
+ * validatebox: Add 'enableValidation' and 'disableValidation' methods.
+ * form: Add 'enableValidation' and 'disableValidation' methods.
+ * slider: Add 'onComplete' event.
+ * pagination: The 'buttons' property accepts the existing element.
+
+Version 1.3.3
+-------------
+* Bug
+ * datagrid: Some style features are not supported by column styler function. fixed.
+ * datagrid: IE 31 stylesheet limit. fixed.
+ * treegrid: Some style features are not supported by column styler function. fixed.
+ * menu: The auto width of menu item displays incorrect in ie6. fixed.
+ * combo: The 'onHidePanel' event can not fire when clicked outside the combo area. fixed.
+* Improvement
+ * datagrid: Add 'scrollTo' and 'highlightRow' methods.
+ * treegrid: Enable treegrid to parse data from <tbody> element.
+ * combo: Add 'selectOnNavigation' and 'readonly' options.
+ * combobox: Add 'loadFilter' option to allow users to change data format before loading into combobox.
+ * tree: Add 'onBeforeDrop' callback event.
+ * validatebox: Dependent on tooltip plugin now, add 'deltaX' property.
+ * numberbox: The 'filter' options can be used to determine if the key pressed was accepted.
+ * linkbutton: The group button is available.
+ * layout: The 'minWidth','maxWidth','minHeight','maxHeight' and 'collapsible' properties are available for region panel.
+* New Plugins
+ * tooltip: Display a popup message when moving mouse over an element.
+
+Version 1.3.2
+-------------
+* Bug
+ * datagrid: The loading message window can not be centered when changing the width of datagrid. fixed.
+ * treegrid: The 'mergeCells' method can not work normally. fixed.
+ * propertygrid: Calling 'endEdit' method to stop editing a row will cause errors. fixed.
+ * tree: Can not load empty data when 'lines' property set to true. fixed.
+* Improvement
+ * RTL feature is supported now.
+ * tabs: Add 'scrollBy' method to scroll the tab header by the specified amount of pixels
+ * tabs: Add 'toolPosition' property to set tab tools to left or right.
+ * tabs: Add 'tabPosition' property to define the tab position, possible values are: 'top','bottom','left','right'.
+ * datagrid: Add a column level property 'order' that allows users to define different default sort order per column.
+ * datagrid: Add a column level property 'halign' that allows users to define how to align the column header.
+ * datagrid: Add 'resizeHandle' property to define the resizing column position, by grabbing the left or right edge of the column.
+ * datagrid: Add 'freezeRow' method to freeze some rows that will always be displayed at the top when the datagrid is scrolled down.
+ * datagrid: Add 'clearChecked' method to clear all checked records.
+ * datagrid: Add 'data' property to initialize the datagrid data.
+ * linkbutton: Add 'iconAlgin' property to define the icon position, supported values are: 'left','right'.
+ * menu: Add 'minWidth' property.
+ * menu: The menu width can be automatically calculated.
+ * tree: New events are available including 'onBeforeDrag','onStartDrag','onDragEnter','onDragOver','onDragLeave',etc.
+ * combo: Add 'height' property to allow users to define the height of combo.
+ * combo: Add 'reset' method.
+ * numberbox: Add 'reset' method.
+ * spinner: Add 'reset' method.
+ * spinner: Add 'height' property to allow users to define the height of spinner.
+ * searchbox: Add 'height' property to allow users to define the height of searchbox.
+ * form: Add 'reset' method.
+ * validatebox: Add 'delay' property to delay validating from the last inputting value.
+ * validatebox: Add 'tipPosition' property to define the tip position, supported values are: 'left','right'.
+ * validatebox: Multiple validate rules on a field is supported now.
+ * slider: Add 'reversed' property to determine if the min value and max value will switch their positions.
+ * progressbar: Add 'height' property to allow users to define the height of progressbar.
+
+Version 1.3.1
+-------------
+* Bug
+ * datagrid: Setting the 'pageNumber' property is not valid. fixed.
+ * datagrid: The id attribute of rows isn't adjusted properly while calling 'insertRow' or 'deleteRow' method.
+ * dialog: When load content from 'href', the script will run twice. fixed.
+ * propertygrid: The editors that extended from combo can not accept its changed value. fixed.
+* Improvement
+ * droppable: Add 'disabled' property.
+ * droppable: Add 'options','enable' and 'disable' methods.
+ * tabs: The tab panel tools can be changed by calling 'update' method.
+ * messager: When show a message window, the user can define the window position by applying 'style' property.
+ * window: Prevent script on window body from running twice.
+ * window: Add 'hcenter','vcenter' and 'center' methods.
+ * tree: Add 'onBeforeCheck' callback event.
+ * tree: Extend the 'getChecked' method to allow users to get 'checked','unchecked' or 'indeterminate' nodes.
+ * treegrid: Add 'update' method to update a specified node.
+ * treegrid: Add 'insert' method to insert a new node.
+ * treegrid: Add 'pop' method to remove a node and get the removed node data.
+
+Version 1.3
+-----------
+* Bug
+ * combogrid: When set to 'remote' query mode, the 'queryParams' parameters can't be sent to server. fixed.
+ * combotree: The tree nodes on drop-down panel can not be unchecked while calling 'clear' method. fixed.
+ * datetimebox: Setting 'showSeconds' property to false cannot hide seconds info. fixed.
+ * datagrid: Calling 'mergeCells' method can't auto resize the merged cell while header is hidden. fixed.
+ * dialog: Set cache to false and load data via ajax, the content cannot be refreshed. fixed.
+* Improvement
+ * The HTML5 'data-options' attribute is available for components to declare all custom options, including properties and events.
+ * More detailed documentation is available.
+ * panel: Prevent script on panel body from running twice.
+ * accordion: Add 'getPanelIndex' method.
+ * accordion: The tools can be added on panel header.
+ * datetimebox: Add 'timeSeparator' option that allows users to define the time separator.
+ * pagination: Add 'refresh' and 'select' methods.
+ * datagrid: Auto resize the column width to fit the contents when the column width is not defined.
+ * datagrid: Double click on the right border of columns to auto resize the columns to the contents in the columns.
+ * datagrid: Add 'autoSizeColumn' method that allows users to adjust the column width to fit the contents.
+ * datagrid: Add 'getChecked' method to get all rows where the checkbox has been checked.
+ * datagrid: Add 'selectOnCheck' and 'checkOnSelect' properties and some checking methods to enhance the row selections.
+ * datagrid: Add 'pagePosition' property to allow users to display pager bar at either top,bottom or both places of the grid.
+ * datagrid: The buffer view and virtual scroll view are supported to display large amounts of records without pagination.
+ * tabs: Add 'disableTab' and 'enableTab' methods to allow users to disable or enable a tab panel.
+
+Version 1.2.6
+-------------
+* Bug
+ * tabs: Call 'add' method with 'selected:false' option, the added tab panel is always selected. fixed.
+ * treegrid: The 'onSelect' and 'onUnselect' events can't be triggered. fixed.
+ * treegrid: Cannot display zero value field. fixed.
+* Improvement
+ * propertygrid: Add 'expandGroup' and 'collapseGroup' methods.
+ * layout: Allow users to create collapsed layout panels by assigning 'collapsed' property to true.
+ * layout: Add 'add' and 'remove' methods that allow users to dynamically add or remove region panel.
+ * layout: Additional tool icons can be added on region panel header.
+ * calendar: Add 'firstDay' option that allow users to set first day of week. Sunday is 0, Monday is 1, ...
+ * tree: Add 'lines' option, true to display tree lines.
+ * tree: Add 'loadFilter' option that allow users to change data format before loading into the tree.
+ * tree: Add 'loader' option that allow users to define how to load data from remote server.
+ * treegrid: Add 'onClickCell' and 'onDblClickCell' callback function options.
+ * datagrid: Add 'autoRowHeight' property that allow users to determine if set the row height based on the contents of that row.
+ * datagrid: Improve performance to load large data set.
+ * datagrid: Add 'loader' option that allow users to define how to load data from remote server.
+ * treegrid: Add 'loader' option that allow users to define how to load data from remote server.
+ * combobox: Add 'onBeforeLoad' callback event function.
+ * combobox: Add 'loader' option that allow users to define how to load data from remote server.
+ * Add support for other loading mode such as dwr,xml,etc.
+* New Plugins
+ * slider: Allows the user to choose a numeric value from a finite range.
+
+Version 1.2.5
+-------------
+* Bug
+ * tabs: When add a new tab panel with href property, the content page is loaded twice. fixed.
+ * form: Failed to call 'load' method to load form input with complex name. fixed.
+ * draggable: End drag in ie9, the cursor cannot be restored. fixed.
+* Improvement
+ * panel: The tools can be defined via html markup.
+ * tabs: Call 'close' method to close specified tab panel, users can pass tab title or index of tab panel. Other methods such 'select','getTab' and 'exists' are similar to 'close' method.
+ * tabs: Add 'getTabIndex' method.
+ * tabs: Users can define mini tools on tabs.
+ * tree: The mouse must move a specified distance to begin drag and drop operation.
+ * resizable: Add 'options','enable' and 'disable' methods.
+ * numberbox: Allow users to change number format.
+ * datagrid: The subgrid is supported now.
+ * searchbox: Add 'selectName' method to select searching type name.
+
+Version 1.2.4
+-------------
+* Bug
+ * menu: The menu position is wrong when scroll bar appears. fixed.
+ * accordion: Cannot display the default selected panel in jQuery 1.6.2. fixed.
+ * tabs: Cannot display the default selected tab panel in jQuery 1.6.2. fixed.
+* Improvement
+ * menu: Allow users to disable or enable menu item.
+ * combo: Add 'delay' property to set the delay time to do searching from the last key input event.
+ * treegrid: The 'getEditors' and 'getEditor' methods are supported now.
+ * treegrid: The 'loadFilter' option is supported now.
+ * messager: Add 'progress' method to display a message box with a progress bar.
+ * panel: Add 'extractor' option to allow users to extract panel content from ajax response.
+* New Plugins
+ * searchbox: Allow users to type words into box and do searching operation.
+ * progressbar: To display the progress of a task.
+
+Version 1.2.3
+-------------
+* Bug
+ * window: Cannot resize the window with iframe content. fixed.
+ * tree: The node will be removed when dragging to its child. fixed.
+ * combogrid: The onChange event fires multiple times. fixed.
+ * accordion: Cannot add batch new panels when animate property is set to true. fixed.
+* Improvement
+ * treegrid: The footer row and row styler features are supported now.
+ * treegrid: Add 'getLevel','reloadFooter','getFooterRows' methods.
+ * treegrid: Support root nodes pagination and editable features.
+ * datagrid: Add 'getFooterRows','reloadFooter','insertRow' methods and improve editing performance.
+ * datagrid: Add 'loadFilter' option that allow users to change original source data to standard data format.
+ * draggable: Add 'onBeforeDrag' callback event function.
+ * validatebox: Add 'remote' validation type.
+ * combobox: Add 'method' option.
+* New Plugins
+ * propertygrid: Allow users to edit property value in datagrid.
+
+Version 1.2.2
+-------------
+* Bug
+ * datagrid: Apply fitColumns cannot work fine while set checkbox column. fixed.
+ * datagrid: The validateRow method cannot return boolean type value. fixed.
+ * numberbox: Cannot fix value in chrome when min or max property isn't defined. fixed.
+* Improvement
+ * menu: Add some crud methods.
+ * combo: Add hasDownArrow property to determine whether to display the down arrow button.
+ * tree: Supports inline editing.
+ * calendar: Add some useful methods such as 'resize', 'moveTo' etc.
+ * timespinner: Add some useful methods.
+ * datebox: Refactoring based on combo and calendar plugin now.
+ * datagrid: Allow users to change row style in some conditions.
+ * datagrid: Users can use the footer row to display summary information.
+* New Plugins
+ * datetimebox: Combines datebox with timespinner component.
+
+Version 1.2.1
+-------------
+* Bug
+ * easyloader: Some dependencies cannot be loaded by their order. fixed.
+ * tree: The checkbox is setted incorrectly when removing a node. fixed.
+ * dialog: The dialog layout incorrectly when 'closed' property is setted to true. fixed.
+* Improvement
+ * parser: Add onComplete callback function that can indicate whether the parse action is complete.
+ * menu: Add onClick callback function and some other methods.
+ * tree: Add some useful methods.
+ * tree: Drag and Drop feature is supported now.
+ * tree: Add onContextMenu callback function.
+ * tabs: Add onContextMenu callback function.
+ * tabs: Add 'tools' property that can create buttons on right bar.
+ * datagrid: Add onHeaderContextMenu and onRowContextMenu callback functions.
+ * datagrid: Custom view is supported.
+ * treegrid: Add onContextMenu callback function and append,remove methods.
+
+Version 1.2
+-------------
+* Improvement
+ * tree: Add cascadeCheck,onlyLeafCheck properties and select event.
+ * combobox: Enable multiple selection.
+ * combotree: Enable multiple selection.
+ * tabs: Remember the trace of selection, when current tab panel is closed, the previous selected tab will be selected.
+ * datagrid: Extend from panel, so many properties defined in panel can be used for datagrid.
+* New Plugins
+ * treegrid: Represent tabular data in hierarchical view, combines tree view and datagrid.
+ * combo: The basic component that allow user to extend their combo component such as combobox,combotree,etc.
+ * combogrid: Combines combobox with drop-down datagrid component.
+ * spinner: The basic plugin to create numberspinner,timespinner,etc.
+ * numberspinner: The numberbox that allow user to change value by clicking up and down spin buttons.
+ * timespinner: The time selector that allow user to quickly inc/dec a time.
+
+Version 1.1.2
+-------------
+* Bug
+ * messager: When call show method in layout, the message window will be blocked. fixed.
+* Improvement
+ * datagrid: Add validateRow method, remember the current editing row status when do editing action.
+ * datagrid: Add the ability to create merged cells.
+ * form: Add callback functions when loading data.
+ * panel,window,dialog: Add maximize,minimize,restore,collapse,expand methods.
+ * panel,tabs,accordion: The lazy loading feature is supported.
+ * tabs: Add getSelected,update,getTab methods.
+ * accordion: Add crud methods.
+ * linkbutton: Accept an id option to set the id attribute.
+ * tree: Enhance tree node operation.
+
+Version 1.1.1
+-------------
+* Bug
+ * form: Cannot clear the value of combobox and combotree component. fixed.
+* Improvement
+ * tree: Add some useful methods such as 'getRoot','getChildren','update',etc.
+ * datagrid: Add editable feature, improve performance while loading data.
+ * datebox: Add destroy method.
+ * combobox: Add destroy and clear method.
+ * combotree: Add destroy and clear method.
+
+Version 1.1
+-------------
+* Bug
+ * messager: When call show method with timeout property setted, an error occurs while clicking the close button. fixed.
+ * combobox: The editable property of combobox plugin is invalid. fixed.
+ * window: The proxy box will not be removed when dragging or resizing exceed browser border in ie. fixed.
+* Improvement
+ * menu: The menu item can use <a> markup to display a different page.
+ * tree: The tree node can use <a> markup to act as a tree menu.
+ * pagination: Add some event on refresh button and page list.
+ * datagrid: Add a 'param' parameter for reload method, with which users can pass query parameter when reload data.
+ * numberbox: Add required validation support, the usage is same as validatebox plugin.
+ * combobox: Add required validation support.
+ * combotree: Add required validation support.
+ * layout: Add some method that can get a region panel and attach event handlers.
+* New Plugins
+ * droppable: A droppable plugin that supports drag drop operation.
+ * calendar: A calendar plugin that can either be embedded within a page or popup.
+ * datebox: Combines a textbox with a calendar that let users to select date.
+ * easyloader: A JavaScript loader that allows you to load plugin and their dependencies into your page.
+
+Version 1.0.5
+* Bug
+ * panel: The fit property of panel performs incorrectly. fixed.
+* Improvement
+ * menu: Add a href attribute for menu item, with which user can display a different page in the current browser window.
+ * form: Add a validate method to do validation for validatebox component.
+ * dialog: The dialog can read collapsible,minimizable,maximizable and resizable attribute from markup.
+* New Plugins
+ * validatebox: A validation plugin that checks to make sure the user's input value is valid.
+
+Version 1.0.4
+-------------
+* Bug
+ * panel: When panel is invisible, it is abnormal when resized. fixed.
+ * panel: Memory leak in method 'destroy'. fixed.
+ * messager: Memory leak when messager box is closed. fixed.
+ * dialog: No onLoad event occurs when loading remote data. fixed.
+* Improvement
+ * panel: Add method 'setTitle'.
+ * window: Add method 'setTitle'.
+ * dialog: Add method 'setTitle'.
+ * combotree: Add method 'getValue'.
+ * combobox: Add method 'getValue'.
+ * form: The 'load' method can load data and fill combobox and combotree field correctly.
+
+Version 1.0.3
+-------------
+* Bug
+ * menu: When menu is show in a DIV container, it will be cropped. fixed.
+ * layout: If you collpase a region panel and then expand it immediately, the region panel will not show normally. fixed.
+ * accordion: If no panel selected then the first one will become selected and the first panel's body height will not set correctly. fixed.
+* Improvement
+ * tree: Add some methods to support CRUD operation.
+ * datagrid: Toolbar can accept a new property named 'disabled' to disable the specified tool button.
+* New Plugins
+ * combobox: Combines a textbox with a list of options that users are able to choose from.
+ * combotree: Combines combobox with drop-down tree component.
+ * numberbox: Make input element can only enter number char.
+ * dialog: rewrite the dialog plugin, dialog can contains toolbar and buttons.
diff --git a/src/www/js/jquery-easyui-1.4.1/demo/accordion/_content.html b/src/www/js/jquery-easyui-1.4.1/demo/accordion/_content.html
new file mode 100755
index 0000000..9967402
--- /dev/null
+++ b/src/www/js/jquery-easyui-1.4.1/demo/accordion/_content.html
@@ -0,0 +1,18 @@
+<!DOCTYPE html>
+<html>
+<head>
+ <meta charset="UTF-8">
+ <title>AJAX Content</title>
+</head>
+<body>
+ <p style="font-size:14px">Here is the content loaded via AJAX.</p>
+ <ul>
+ <li>easyui is a collection of user-interface plugin based on jQuery.</li>
+ <li>easyui provides essential functionality for building modern, interactive, javascript applications.</li>
+ <li>using easyui you don't need to write many javascript code, you usually define...
[truncated message content] |
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-12 13:50:39
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 9042f56467debf5c60a5812294cb15fc156c7adf (commit)
from a65bc6c3cb75a3b1e22b344b9c27573af091c15a (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 9042f56467debf5c60a5812294cb15fc156c7adf
Author: Rómulo Rodriguez <rod...@gm...>
Date: Mon Jan 12 09:20:13 2015 -0430
- Reparado la administración de peliculas.
- Se agrega archivo con todos los reportes para ir conlocando las respectivas consultas.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega IV/reportes.txt b/docs/Entrega IV/reportes.txt
new file mode 100644
index 0000000..f75ec13
--- /dev/null
+++ b/docs/Entrega IV/reportes.txt
@@ -0,0 +1,46 @@
+1. Listado de sistemas operativos y sus versiones. Debe permitir filtrar la información por nombre de sistema operativo, nombre de versión, compañÃa y tipo de sistema operativo.
+2. Listado de Empresas Desarrolladoras / Desarrolladores, debe mostrar todos los datos de los mismos. Debe permitir filtrar la información por paÃs, nombre y código postal.
+3. Listado de Empleados (ordenados alfabéticamente). Debe permitir filtrar la información por nombre del empleado, apellido del empleado y por estatus.
+4. Listado de Cargos, indicando los empleados activos que poseen dichos cargos. Deben visualizarse aquellos cargos que no posean empleados asignados. Debe permitir filtrar la información por el nombre del cargo y por el salario.
+5. PaÃs que más aplicaciones móviles posee registradas en el sistema.
+6. Listado de Empleados (según el nivel educativo). Debe permitir filtrar la información por el nivel educativo, status del empleado y cargo del empleado.
+7. Listado de Empleados (máximo 10 empleados) que más inician sesión en el sistema durante un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+8. Por PaÃs: Total de contenidos descargados agrupados por el tipo de contenido (aplicaciones móviles, música, pelÃculas, libros) para un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+9. Por PaÃs: Ingresos anuales por concepto de ventas de contenidos agrupados por el tipo de contenido (aplicaciones móviles, música, pelÃculas, libros) para un periodo de tiempo particular. Debe permitir filtrar la información para un tipo de contenido particular y un periodo de periodo particular (una fecha de inicio y una fecha de fin).
+10. Listado de las 10 promociones más aplicadas en un periodo de tiempo particular. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha defin).
+11. Listado de los 15 contenidos más descargados agrupados por año, debe indicar el total de descargas y el monto total de ingresos obtenidos por dichas descargas. Debe permitir filtrar la información para un año particular.
+12. Listado de los 25 contenidos mejor calificados agrupado por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros), debe visualizarse el promedio de calificación del contenido. Debe permitir filtrar la información por tipo de contenido (aplicaciones móviles, música, pelÃculas, libros).
+13. Listado de los 10 contenidos (aplicaciones móviles, música, pelÃculas, libros) menos descargados agrupados por año, debe indicar la cantidad total de descargas y el monto total de ingresos por concepto de venta de dichos contenidos. Debe permitir filtrar la información para un año particular.
+14. Listado de los 20 clientes que más comentarios realizan en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+15. Listado de los 20 clientes que más calificaciones realizan en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+16. Listado de los 25 contenidos mejor calificados por los clientes (debe mostrar la calificación).
+17. Listado de los 25 contenidos peor calificados por los clientes (debe mostrar la calificación)
+18. Por año, total de empleados activos, total de clientes registrados, total de contenidos registrados, total de contenidos descargados. Debe permitir filtrar la información para un año particular.
+19. PaÃs que más ingresos obtiene por concepto de venta de aplicaciones móviles en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+20. Por rol, cantidad de empleados activos que poseen dicho rol, cantidad de empleados inactivos que poseen dicho rol. Debe permitir filtrar la información por el nombre del rol.
+21. Por cliente: total de contenidos descargados, total de comentarios realizados y total de calificaciones realizadas. Ordenado descendentemente por el total de contenidos descargados.
+22. Por cliente, historial de contenidos comprados (descargados) en un periodo de tiempo. Debe permitir filtrar la información para un cliente particular y para un periodo particular (una fecha de inicio y una fecha de fin).
+23. Por sistema operativo (agrupado por año): total de aplicaciones descargadas, total de ingresos obtenidos por dichas descargas, porcentaje que representan dichos ingresos del total (de todos los sistemas operativos). Debe permitir filtrar la información para un sistema operativo particular y para un año determinado.
+24. Por categorÃa de pelÃcula: total de pelÃculas descargadas, ingresos provenientes de dichas descargas, porcentaje que representan dichos ingresos del total de todas las categorÃas. Debe permitir filtrar la información por categorÃa.
+25. Por cantante (agrupado por año): total de discos descargados, total de ingresos provenientes de dichos discos. Debe permitir filtrar la información por cantante y por año.
+26. Género musical que más ingresos genera en un periodo de tiempo. Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+27. Listado de las 10 editoriales que más libros venden por año, debe indicar el total de libros vendidos y el total de ingresos obtenidos. Debe permitir filtrar la información por año.
+28. Tipo de tarjeta de crédito más usada para realizar pagos en un periodo de tiempo particular. . Debe permitir filtrar la información para un periodo particular (una fecha de inicio y una fecha de fin).
+29. Indicar el mes de cada año que más descargas de contenidos registra. Debe permitir filtrar
+la información para un año particular.
+30. Por año, mes que más ingresos genera por concepto de ventas de contenidos. Debe permitir filtrar la información para un año particular.
+31. Listado de usuarios inactivos, debe indicar el último ingreso proveniente de cada usuario, debe permitir filtrar la información por paÃs.
+32. Los contenidos según una categorÃa. Debe poder ser filtrado según el tipo de contenido y el creador del contenido (desarrollador, autor, director).
+33. Por factura, la cantidad generada y la suma de sus totales, se debe permitir el filtrado por un intervalo de tiempo.
+34. Listado de usuarios con permisos de agregar, modificar y remover, debe ser posible filtrarlo por módulos del sistema.
+35. Dado un empleado, especificar las obligaciones que ha realizado. Se ha de mostrar la fecha en la que empezó cada obligación.
+36. Por Evento; listado de los eventos ocurridos en un determinado intervalo de tiempo, puede ser filtrado por nivel, modulo o usuario que lo disparo
+37. Total de contenidos descargados por tipo de licencia, podrá ser filtrado por categorÃas y tipo de contenidos.
+38. Por Idioma de Audio o subtÃtulos de pelÃcula, Total descargadas, pudiendo filtrar por categorÃas.
+39. Por autor de libros; total y detalle de libros descargados e ingresos provenientes de dichos libros, pudiendo filtrar por año.
+40. Por Desarrollador de aplicaciones; total y detalle de Aplicaciones descargadas e ingresos provenientes de dichas aplicaciones, pudiendo filtrar por año o mes.
+
+
+
+
+
diff --git a/src/php/protocol/mov.class.php b/src/php/protocol/mov.class.php
index 981d04d..8c549c2 100644
--- a/src/php/protocol/mov.class.php
+++ b/src/php/protocol/mov.class.php
@@ -448,7 +448,7 @@ class Mov implements Protocol {
WHERE con_id=".$_POST["conID"];
$sql1="
UPDATE movie
- SET mov_duration='".$_POST["movDur"]."
+ SET mov_duration=".$_POST["movDur"]."
WHERE fk_content=".$_POST["conID"];
try {
Core::$db->query($sql);
@@ -518,7 +518,7 @@ class Mov implements Protocol {
}
if (isset($_GET["id"])){
$sql="
- DELETE FROM APPLICATION
+ DELETE FROM movie
WHERE FK_Content=" .$_GET["id"];
$sql1="
DELETE FROM CONTENT
@@ -580,9 +580,9 @@ class Mov implements Protocol {
"as"=>"con"),
array(
"left_j" => true,
- "ct"=>"application",
- "as"=>"app",
- "on"=>"con.con_id=app.fk_content"),
+ "ct"=>"movie",
+ "as"=>"mov",
+ "on"=>"con.con_id=mov.fk_content"),
array(
"left_j" => true,
"ct"=>"content_category",
diff --git a/src/www/admin/index.php b/src/www/admin/index.php
index f15ee77..2cf0c4d 100644
--- a/src/www/admin/index.php
+++ b/src/www/admin/index.php
@@ -326,6 +326,7 @@ switch ($page) {
$table_fields=array("ID","Nombre","Costo","Categorias");
$controls=true;
}
+ break;
case 'comets':
if (!Security::chkUserAcc(3,VIEW,"admin/index.php?pid=comets")){
$error=true;
-----------------------------------------------------------------------
Summary of changes:
docs/Entrega IV/reportes.txt | 46 ++++++++++++++++++++++++++++++++++++++++
src/php/protocol/mov.class.php | 10 ++++----
src/www/admin/index.php | 1 +
3 files changed, 52 insertions(+), 5 deletions(-)
create mode 100644 docs/Entrega IV/reportes.txt
hooks/post-receive
--
Global Store
|
|
From: Eduardo G. <my4...@us...> - 2015-01-10 14:19:55
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via a65bc6c3cb75a3b1e22b344b9c27573af091c15a (commit)
via 2fa0b530724617848a2c97061b0427cacb311dab (commit)
from d39faf033dfa49aaf7a5dda2e782e491d07b40b2 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit a65bc6c3cb75a3b1e22b344b9c27573af091c15a
Merge: 2fa0b53 d39faf0
Author: Eduardo <epp...@gm...>
Date: Sat Jan 10 09:48:53 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
commit 2fa0b530724617848a2c97061b0427cacb311dab
Author: Eduardo <epp...@gm...>
Date: Sat Jan 10 09:44:31 2015 -0430
Modelo Entidad Relacion
diff --git a/docs/Entrega III/d.dia b/docs/Entrega III/d.dia
new file mode 100644
index 0000000..c3d114f
--- /dev/null
+++ b/docs/Entrega III/d.dia
@@ -0,0 +1,11798 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<dia:diagram xmlns:dia="http://www.lysator.liu.se/~alla/dia/">
+ <dia:diagramdata>
+ <dia:attribute name="background">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="pagebreak">
+ <dia:color val="#000099"/>
+ </dia:attribute>
+ <dia:attribute name="paper">
+ <dia:composite type="paper">
+ <dia:attribute name="name">
+ <dia:string>#Letter#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="tmargin">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="bmargin">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="lmargin">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="rmargin">
+ <dia:real val="0.5"/>
+ </dia:attribute>
+ <dia:attribute name="is_portrait">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="scaling">
+ <dia:real val="0.80000001192092896"/>
+ </dia:attribute>
+ <dia:attribute name="fitto">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="grid">
+ <dia:composite type="grid">
+ <dia:attribute name="width_x">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="width_y">
+ <dia:real val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_x">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:attribute name="visible_y">
+ <dia:int val="1"/>
+ </dia:attribute>
+ <dia:composite type="color"/>
+ </dia:composite>
+ </dia:attribute>
+ <dia:attribute name="color">
+ <dia:color val="#d8e5e5"/>
+ </dia:attribute>
+ <dia:attribute name="guides">
+ <dia:composite type="guides">
+ <dia:attribute name="hguides"/>
+ <dia:attribute name="vguides"/>
+ </dia:composite>
+ </dia:attribute>
+ </dia:diagramdata>
+ <dia:layer name="Background" visible="true" active="true">
+ <dia:object type="Database - Table" version="0" id="O0">
+ <dia:attribute name="obj_pos">
+ <dia:point val="0.967561,4.57397"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="0.967561,4.57397;9.96756,22.474"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="0.967561,4.57397"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="9"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="17.900000000000006"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#CONTENT#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_ID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Update#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Description#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Lo dejo opcional ya que en musica no indica que tenga alguna descriptcion#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Cost#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Release_Date#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#App -> Fecha de actualizacion
+Pelicula -> fecha de estreno
+Musica -> Fecha de produccion
+Libro -> fecha de publicacion#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Type#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#App,MOV, BOOK, ALBUN#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Con_Size#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string># #</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O1">
+ <dia:attribute name="obj_pos">
+ <dia:point val="-33.3695,18.1929"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="-33.3695,18.1929;-27.4495,27.2929"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="-33.3695,18.1929"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.9199999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="9.0999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#WEBCONT#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Web_ID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Web_Type#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#image, o video#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Web_Order#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string># #</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string># #</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O2">
+ <dia:attribute name="obj_pos">
+ <dia:point val="22.7143,1.74613"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="22.7143,1.74613;28.6343,6.84613"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="22.7143,1.74613"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.9199999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="5.0999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#DEVELOPER#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="0" name="Helvetica"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Dev_ID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Dev_Name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Dev_Web_Site#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Dev_Email#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Dev_Company#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O3">
+ <dia:attribute name="obj_pos">
+ <dia:point val="1.1677,12.1377"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="1.1677,12.1377;6.7027,14.0377"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="1.1677,12.1377"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.5350000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="1.8999999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#APPLICATION#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#App_Version#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O4">
+ <dia:attribute name="obj_pos">
+ <dia:point val="1.15601,14.6285"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="1.15601,14.6285;7.07601,16.5285"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="1.15601,14.6285"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.9199999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="1.8999999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#MOVIE#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Mov_Duration#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#EN minuos?#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O5">
+ <dia:attribute name="obj_pos">
+ <dia:point val="1.16305,20.2296"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="1.16305,20.2296;6.31305,22.1296"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="1.16305,20.2296"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.1500000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="1.8999999999999999"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#ALBUM#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Alb_Format#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>#Fijar los formatos.#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O6">
+ <dia:attribute name="obj_pos">
+ <dia:point val="26.3144,15.5844"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="26.3144,15.5844;32.4069,18.2844"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="26.3144,15.5844"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="6.0924999999999994"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="2.7000000000000002"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#ACTOR_DIRECTOR#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#AD_ID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#AD_Name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O7">
+ <dia:attribute name="obj_pos">
+ <dia:point val="1.16967,17.0098"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="1.16967,17.0098;8.24467,19.7098"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="1.16967,17.0098"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="7.0750000000000002"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="2.7000000000000002"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#BOOK#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Boo_Number_Page#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Boo_ISBN#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ </dia:attribute>
+ </dia:object>
+ <dia:object type="Database - Table" version="0" id="O8">
+ <dia:attribute name="obj_pos">
+ <dia:point val="19.2126,21.3841"/>
+ </dia:attribute>
+ <dia:attribute name="obj_bb">
+ <dia:rectangle val="19.2126,21.3841;24.3626,24.8841"/>
+ </dia:attribute>
+ <dia:attribute name="meta">
+ <dia:composite type="dict"/>
+ </dia:attribute>
+ <dia:attribute name="elem_corner">
+ <dia:point val="19.2126,21.3841"/>
+ </dia:attribute>
+ <dia:attribute name="elem_width">
+ <dia:real val="5.1500000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="elem_height">
+ <dia:real val="3.5"/>
+ </dia:attribute>
+ <dia:attribute name="text_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="line_colour">
+ <dia:color val="#000000"/>
+ </dia:attribute>
+ <dia:attribute name="fill_colour">
+ <dia:color val="#ffffff"/>
+ </dia:attribute>
+ <dia:attribute name="line_width">
+ <dia:real val="0.10000000000000001"/>
+ </dia:attribute>
+ <dia:attribute name="name">
+ <dia:string>#AUTHOR#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="visible_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="tagging_comment">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="underline_primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="bold_primary_keys">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font">
+ <dia:font family="monospace" style="0" name="Courier"/>
+ </dia:attribute>
+ <dia:attribute name="name_font">
+ <dia:font family="sans" style="80" name="Helvetica-Bold"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font">
+ <dia:font family="sans" style="8" name="Helvetica-Oblique"/>
+ </dia:attribute>
+ <dia:attribute name="normal_font_height">
+ <dia:real val="0.80000000000000004"/>
+ </dia:attribute>
+ <dia:attribute name="name_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="comment_font_height">
+ <dia:real val="0.69999999999999996"/>
+ </dia:attribute>
+ <dia:attribute name="attributes">
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Aut_ID#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="true"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Aut_Name#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="primary_key">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="nullable">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ <dia:attribute name="unique">
+ <dia:boolean val="false"/>
+ </dia:attribute>
+ </dia:composite>
+ <dia:composite type="table_attribute">
+ <dia:attribute name="name">
+ <dia:string>#Aut_Review#</dia:string>
+ </dia:attribute>
+ <dia:attribute name="type">
+ <dia:string>##</dia:string>
+ </dia:attribute>
+ <dia:attribute name="comment">
+ ...
[truncated message content] |
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-10 13:57:28
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via d39faf033dfa49aaf7a5dda2e782e491d07b40b2 (commit)
from 370fa3228f1158170cbca0e18a487ba3b895aa3c (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit d39faf033dfa49aaf7a5dda2e782e491d07b40b2
Author: Rómulo Rodriguez <rod...@gm...>
Date: Sat Jan 10 09:27:04 2015 -0430
Cambio de host en URL de Imagenes
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega III/inserts.sql b/docs/Entrega III/inserts.sql
index 73eb392..dc4e8ac 100644
--- a/docs/Entrega III/inserts.sql
+++ b/docs/Entrega III/inserts.sql
@@ -3384,337 +3384,337 @@ INSERT INTO web_cont (fk_content, wc_id, wc_type, wc_order) VALUES (44, 57, true
-- Data for Name: image; Type: TABLE DATA; Schema: public; Owner: gsdbuser
--
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (7, 'http://globalstore.eltercera.com.ve/Images/webcont/img-7.webp', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (8, 'http://globalstore.eltercera.com.ve/Images/webcont/img-8.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (9, 'http://globalstore.eltercera.com.ve/Images/webcont/img-9.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (10, 'http://globalstore.eltercera.com.ve/Images/webcont/img-10.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (11, 'http://globalstore.eltercera.com.ve/Images/webcont/img-11.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (7, 'http://localhost/Images/webcont/img-7.webp', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (8, 'http://localhost/Images/webcont/img-8.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (9, 'http://localhost/Images/webcont/img-9.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (10, 'http://localhost/Images/webcont/img-10.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (11, 'http://localhost/Images/webcont/img-11.png', false);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (13, 'https://lh3.ggpht.com/xJLRxIvpW5Q9_0TcJelo1xnDgqp1TlXr4iPF-6SIHfr1tzYM6o7LtVpF3bugf31bLg=h900', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (15, 'http://globalstore.eltercera.com.ve/Images/webcont/img-15.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (16, 'http://globalstore.eltercera.com.ve/Images/webcont/img-16.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (17, 'http://globalstore.eltercera.com.ve/Images/webcont/img-17.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (18, 'http://globalstore.eltercera.com.ve/Images/webcont/img-18.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (19, 'http://globalstore.eltercera.com.ve/Images/webcont/img-19.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (20, 'http://globalstore.eltercera.com.ve/Images/webcont/img-20.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (15, 'http://localhost/Images/webcont/img-15.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (16, 'http://localhost/Images/webcont/img-16.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (17, 'http://localhost/Images/webcont/img-17.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (18, 'http://localhost/Images/webcont/img-18.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (19, 'http://localhost/Images/webcont/img-19.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (20, 'http://localhost/Images/webcont/img-20.jpg', false);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (21, 'https://lh4.ggpht.com/xbSAaGIprAvbPKlNm1_pirfiMZJ8iqwG4ArHVpfepP36TtH4liE6DTFXn55-aZgb9Is=w300', true);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (22, 'https://lh3.ggpht.com/SwkaMei08bmWYxrzv0ScQUkUIe4yO6o6Pk0x1caBzMatr821FXK8AbYfC4GHvQTu-T4=h900', false);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (23, 'https://lh3.ggpht.com/2CxMqvWrItMRpwWIOB6EJRwy17iUzMtD8SqAy8c0DmIc64kdz4Bipo-xeBJFIlxiGjiZ=h900', false);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (24, 'https://lh5.ggpht.com/fjCTPaPKxUOcMMyhmqyYAgCm-8LjzMNI8slRhJ4Ktv5SpH-gTYbxs47lSkP--lyPCg=h900', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (26, 'http://globalstore.eltercera.com.ve/Images/webcont/img-26.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (27, 'http://globalstore.eltercera.com.ve/Images/webcont/img-27.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (28, 'http://globalstore.eltercera.com.ve/Images/webcont/img-28.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (29, 'http://globalstore.eltercera.com.ve/Images/webcont/img-29.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (30, 'http://globalstore.eltercera.com.ve/Images/webcont/img-30.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (31, 'http://globalstore.eltercera.com.ve/Images/webcont/img-31.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (26, 'http://localhost/Images/webcont/img-26.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (27, 'http://localhost/Images/webcont/img-27.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (28, 'http://localhost/Images/webcont/img-28.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (29, 'http://localhost/Images/webcont/img-29.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (30, 'http://localhost/Images/webcont/img-30.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (31, 'http://localhost/Images/webcont/img-31.png', true);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (32, 'https://encrypted.google.com/books/images/frontcover/9FSaScltd-kC?fife=w300', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (33, 'http://globalstore.eltercera.com.ve/Images/webcont/img-33.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (34, 'http://globalstore.eltercera.com.ve/Images/webcont/img-34.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (35, 'http://globalstore.eltercera.com.ve/Images/webcont/img-35.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (36, 'http://globalstore.eltercera.com.ve/Images/webcont/img-36.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (37, 'http://globalstore.eltercera.com.ve/Images/webcont/img-37.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (38, 'http://globalstore.eltercera.com.ve/Images/webcont/img-38.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (39, 'http://globalstore.eltercera.com.ve/Images/webcont/img-39.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (40, 'http://globalstore.eltercera.com.ve/Images/webcont/img-40.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (41, 'http://globalstore.eltercera.com.ve/Images/webcont/img-41.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (42, 'http://globalstore.eltercera.com.ve/Images/webcont/img-42.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (43, 'http://globalstore.eltercera.com.ve/Images/webcont/img-43.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (44, 'http://globalstore.eltercera.com.ve/Images/webcont/img-44.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (45, 'http://globalstore.eltercera.com.ve/Images/webcont/img-45.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (46, 'http://globalstore.eltercera.com.ve/Images/webcont/img-46.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (47, 'http://globalstore.eltercera.com.ve/Images/webcont/img-47.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (48, 'http://globalstore.eltercera.com.ve/Images/webcont/img-48.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (49, 'http://globalstore.eltercera.com.ve/Images/webcont/img-49.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (50, 'http://globalstore.eltercera.com.ve/Images/webcont/img-50.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (51, 'http://globalstore.eltercera.com.ve/Images/webcont/img-51.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (53, 'http://globalstore.eltercera.com.ve/Images/webcont/img-53.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (59, 'http://globalstore.eltercera.com.ve/Images/webcont/img-59.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (60, 'http://globalstore.eltercera.com.ve/Images/webcont/img-60.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (61, 'http://globalstore.eltercera.com.ve/Images/webcont/img-61.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (62, 'http://globalstore.eltercera.com.ve/Images/webcont/img-62.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (63, 'http://globalstore.eltercera.com.ve/Images/webcont/img-63.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (65, 'http://globalstore.eltercera.com.ve/Images/webcont/img-65.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (66, 'http://globalstore.eltercera.com.ve/Images/webcont/img-66.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (67, 'http://globalstore.eltercera.com.ve/Images/webcont/img-67.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (69, 'http://globalstore.eltercera.com.ve/Images/webcont/img-69.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (70, 'http://globalstore.eltercera.com.ve/Images/webcont/img-70.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (71, 'http://globalstore.eltercera.com.ve/Images/webcont/img-71.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (72, 'http://globalstore.eltercera.com.ve/Images/webcont/img-72.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (73, 'http://globalstore.eltercera.com.ve/Images/webcont/img-73.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (74, 'http://globalstore.eltercera.com.ve/Images/webcont/img-74.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (76, 'http://globalstore.eltercera.com.ve/Images/webcont/img-76.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (77, 'http://globalstore.eltercera.com.ve/Images/webcont/img-77.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (78, 'http://globalstore.eltercera.com.ve/Images/webcont/img-78.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (79, 'http://globalstore.eltercera.com.ve/Images/webcont/img-79.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (80, 'http://globalstore.eltercera.com.ve/Images/webcont/img-80.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (82, 'http://globalstore.eltercera.com.ve/Images/webcont/img-82.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (83, 'http://globalstore.eltercera.com.ve/Images/webcont/img-83.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (84, 'http://globalstore.eltercera.com.ve/Images/webcont/img-84.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (85, 'http://globalstore.eltercera.com.ve/Images/webcont/img-85.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (86, 'http://globalstore.eltercera.com.ve/Images/webcont/img-86.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (87, 'http://globalstore.eltercera.com.ve/Images/webcont/img-87.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (89, 'http://globalstore.eltercera.com.ve/Images/webcont/img-89.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (90, 'http://globalstore.eltercera.com.ve/Images/webcont/img-90.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (91, 'http://globalstore.eltercera.com.ve/Images/webcont/img-91.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (92, 'http://globalstore.eltercera.com.ve/Images/webcont/img-92.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (93, 'http://globalstore.eltercera.com.ve/Images/webcont/img-93.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (95, 'http://globalstore.eltercera.com.ve/Images/webcont/img-95.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (96, 'http://globalstore.eltercera.com.ve/Images/webcont/img-96.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (97, 'http://globalstore.eltercera.com.ve/Images/webcont/img-97.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (98, 'http://globalstore.eltercera.com.ve/Images/webcont/img-98.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (58, 'http://globalstore.eltercera.com.ve/Images/webcont/img-58.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (57, 'http://globalstore.eltercera.com.ve/Images/webcont/img-57.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (56, 'http://globalstore.eltercera.com.ve/Images/webcont/img-56.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (55, 'http://globalstore.eltercera.com.ve/Images/webcont/img-55.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (99, 'http://globalstore.eltercera.com.ve/Images/webcont/img-99.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (176, 'http://globalstore.eltercera.com.ve/Images/webcont/img-176.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (177, 'http://globalstore.eltercera.com.ve/Images/webcont/img-177.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (100, 'http://globalstore.eltercera.com.ve/Images/webcont/img-100.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (102, 'http://globalstore.eltercera.com.ve/Images/webcont/img-102.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (103, 'http://globalstore.eltercera.com.ve/Images/webcont/img-103.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (104, 'http://globalstore.eltercera.com.ve/Images/webcont/img-104.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (105, 'http://globalstore.eltercera.com.ve/Images/webcont/img-105.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (106, 'http://globalstore.eltercera.com.ve/Images/webcont/img-106.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (107, 'http://globalstore.eltercera.com.ve/Images/webcont/img-107.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (108, 'http://globalstore.eltercera.com.ve/Images/webcont/img-108.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (109, 'http://globalstore.eltercera.com.ve/Images/webcont/img-109.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (110, 'http://globalstore.eltercera.com.ve/Images/webcont/img-110.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (111, 'http://globalstore.eltercera.com.ve/Images/webcont/img-111.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (112, 'http://globalstore.eltercera.com.ve/Images/webcont/img-112.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (113, 'http://globalstore.eltercera.com.ve/Images/webcont/img-113.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (114, 'http://globalstore.eltercera.com.ve/Images/webcont/img-114.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (115, 'http://globalstore.eltercera.com.ve/Images/webcont/img-115.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (116, 'http://globalstore.eltercera.com.ve/Images/webcont/img-116.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (117, 'http://globalstore.eltercera.com.ve/Images/webcont/img-117.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (118, 'http://globalstore.eltercera.com.ve/Images/webcont/img-118.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (119, 'http://globalstore.eltercera.com.ve/Images/webcont/img-119.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (120, 'http://globalstore.eltercera.com.ve/Images/webcont/img-120.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (121, 'http://globalstore.eltercera.com.ve/Images/webcont/img-121.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (122, 'http://globalstore.eltercera.com.ve/Images/webcont/img-122.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (123, 'http://globalstore.eltercera.com.ve/Images/webcont/img-123.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (124, 'http://globalstore.eltercera.com.ve/Images/webcont/img-124.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (125, 'http://globalstore.eltercera.com.ve/Images/webcont/img-125.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (126, 'http://globalstore.eltercera.com.ve/Images/webcont/img-126.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (127, 'http://globalstore.eltercera.com.ve/Images/webcont/img-127.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (128, 'http://globalstore.eltercera.com.ve/Images/webcont/img-128.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (129, 'http://globalstore.eltercera.com.ve/Images/webcont/img-129.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (130, 'http://globalstore.eltercera.com.ve/Images/webcont/img-130.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (131, 'http://globalstore.eltercera.com.ve/Images/webcont/img-131.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (132, 'http://globalstore.eltercera.com.ve/Images/webcont/img-132.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (133, 'http://globalstore.eltercera.com.ve/Images/webcont/img-133.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (134, 'http://globalstore.eltercera.com.ve/Images/webcont/img-134.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (135, 'http://globalstore.eltercera.com.ve/Images/webcont/img-135.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (136, 'http://globalstore.eltercera.com.ve/Images/webcont/img-136.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (138, 'http://globalstore.eltercera.com.ve/Images/webcont/img-138.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (139, 'http://globalstore.eltercera.com.ve/Images/webcont/img-139.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (140, 'http://globalstore.eltercera.com.ve/Images/webcont/img-140.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (141, 'http://globalstore.eltercera.com.ve/Images/webcont/img-141.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (142, 'http://globalstore.eltercera.com.ve/Images/webcont/img-142.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (143, 'http://globalstore.eltercera.com.ve/Images/webcont/img-143.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (144, 'http://globalstore.eltercera.com.ve/Images/webcont/img-144.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (145, 'http://globalstore.eltercera.com.ve/Images/webcont/img-145.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (146, 'http://globalstore.eltercera.com.ve/Images/webcont/img-146.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (147, 'http://globalstore.eltercera.com.ve/Images/webcont/img-147.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (148, 'http://globalstore.eltercera.com.ve/Images/webcont/img-148.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (149, 'http://globalstore.eltercera.com.ve/Images/webcont/img-149.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (150, 'http://globalstore.eltercera.com.ve/Images/webcont/img-150.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (151, 'http://globalstore.eltercera.com.ve/Images/webcont/img-151.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (152, 'http://globalstore.eltercera.com.ve/Images/webcont/img-152.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (153, 'http://globalstore.eltercera.com.ve/Images/webcont/img-153.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (154, 'http://globalstore.eltercera.com.ve/Images/webcont/img-154.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (155, 'http://globalstore.eltercera.com.ve/Images/webcont/img-155.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (156, 'http://globalstore.eltercera.com.ve/Images/webcont/img-156.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (158, 'http://globalstore.eltercera.com.ve/Images/webcont/img-158.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (159, 'http://globalstore.eltercera.com.ve/Images/webcont/img-159.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (160, 'http://globalstore.eltercera.com.ve/Images/webcont/img-160.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (161, 'http://globalstore.eltercera.com.ve/Images/webcont/img-161.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (162, 'http://globalstore.eltercera.com.ve/Images/webcont/img-162.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (164, 'http://globalstore.eltercera.com.ve/Images/webcont/img-164.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (165, 'http://globalstore.eltercera.com.ve/Images/webcont/img-165.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (166, 'http://globalstore.eltercera.com.ve/Images/webcont/img-166.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (167, 'http://globalstore.eltercera.com.ve/Images/webcont/img-167.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (168, 'http://globalstore.eltercera.com.ve/Images/webcont/img-168.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (169, 'http://globalstore.eltercera.com.ve/Images/webcont/img-169.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (171, 'http://globalstore.eltercera.com.ve/Images/webcont/img-171.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (172, 'http://globalstore.eltercera.com.ve/Images/webcont/img-172.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (173, 'http://globalstore.eltercera.com.ve/Images/webcont/img-173.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (174, 'http://globalstore.eltercera.com.ve/Images/webcont/img-174.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (175, 'http://globalstore.eltercera.com.ve/Images/webcont/img-175.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (178, 'http://globalstore.eltercera.com.ve/Images/webcont/img-178.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (179, 'http://globalstore.eltercera.com.ve/Images/webcont/img-179.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (180, 'http://globalstore.eltercera.com.ve/Images/webcont/img-180.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (181, 'http://globalstore.eltercera.com.ve/Images/webcont/img-181.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (183, 'http://globalstore.eltercera.com.ve/Images/webcont/img-183.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (184, 'http://globalstore.eltercera.com.ve/Images/webcont/img-184.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (185, 'http://globalstore.eltercera.com.ve/Images/webcont/img-185.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (186, 'http://globalstore.eltercera.com.ve/Images/webcont/img-186.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (187, 'http://globalstore.eltercera.com.ve/Images/webcont/img-187.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (188, 'http://globalstore.eltercera.com.ve/Images/webcont/img-188.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (190, 'http://globalstore.eltercera.com.ve/Images/webcont/img-190.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (192, 'http://globalstore.eltercera.com.ve/Images/webcont/img-192.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (33, 'http://localhost/Images/webcont/img-33.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (34, 'http://localhost/Images/webcont/img-34.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (35, 'http://localhost/Images/webcont/img-35.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (36, 'http://localhost/Images/webcont/img-36.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (37, 'http://localhost/Images/webcont/img-37.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (38, 'http://localhost/Images/webcont/img-38.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (39, 'http://localhost/Images/webcont/img-39.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (40, 'http://localhost/Images/webcont/img-40.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (41, 'http://localhost/Images/webcont/img-41.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (42, 'http://localhost/Images/webcont/img-42.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (43, 'http://localhost/Images/webcont/img-43.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (44, 'http://localhost/Images/webcont/img-44.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (45, 'http://localhost/Images/webcont/img-45.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (46, 'http://localhost/Images/webcont/img-46.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (47, 'http://localhost/Images/webcont/img-47.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (48, 'http://localhost/Images/webcont/img-48.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (49, 'http://localhost/Images/webcont/img-49.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (50, 'http://localhost/Images/webcont/img-50.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (51, 'http://localhost/Images/webcont/img-51.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (53, 'http://localhost/Images/webcont/img-53.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (59, 'http://localhost/Images/webcont/img-59.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (60, 'http://localhost/Images/webcont/img-60.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (61, 'http://localhost/Images/webcont/img-61.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (62, 'http://localhost/Images/webcont/img-62.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (63, 'http://localhost/Images/webcont/img-63.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (65, 'http://localhost/Images/webcont/img-65.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (66, 'http://localhost/Images/webcont/img-66.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (67, 'http://localhost/Images/webcont/img-67.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (69, 'http://localhost/Images/webcont/img-69.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (70, 'http://localhost/Images/webcont/img-70.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (71, 'http://localhost/Images/webcont/img-71.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (72, 'http://localhost/Images/webcont/img-72.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (73, 'http://localhost/Images/webcont/img-73.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (74, 'http://localhost/Images/webcont/img-74.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (76, 'http://localhost/Images/webcont/img-76.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (77, 'http://localhost/Images/webcont/img-77.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (78, 'http://localhost/Images/webcont/img-78.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (79, 'http://localhost/Images/webcont/img-79.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (80, 'http://localhost/Images/webcont/img-80.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (82, 'http://localhost/Images/webcont/img-82.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (83, 'http://localhost/Images/webcont/img-83.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (84, 'http://localhost/Images/webcont/img-84.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (85, 'http://localhost/Images/webcont/img-85.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (86, 'http://localhost/Images/webcont/img-86.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (87, 'http://localhost/Images/webcont/img-87.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (89, 'http://localhost/Images/webcont/img-89.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (90, 'http://localhost/Images/webcont/img-90.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (91, 'http://localhost/Images/webcont/img-91.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (92, 'http://localhost/Images/webcont/img-92.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (93, 'http://localhost/Images/webcont/img-93.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (95, 'http://localhost/Images/webcont/img-95.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (96, 'http://localhost/Images/webcont/img-96.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (97, 'http://localhost/Images/webcont/img-97.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (98, 'http://localhost/Images/webcont/img-98.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (58, 'http://localhost/Images/webcont/img-58.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (57, 'http://localhost/Images/webcont/img-57.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (56, 'http://localhost/Images/webcont/img-56.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (55, 'http://localhost/Images/webcont/img-55.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (99, 'http://localhost/Images/webcont/img-99.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (176, 'http://localhost/Images/webcont/img-176.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (177, 'http://localhost/Images/webcont/img-177.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (100, 'http://localhost/Images/webcont/img-100.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (102, 'http://localhost/Images/webcont/img-102.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (103, 'http://localhost/Images/webcont/img-103.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (104, 'http://localhost/Images/webcont/img-104.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (105, 'http://localhost/Images/webcont/img-105.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (106, 'http://localhost/Images/webcont/img-106.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (107, 'http://localhost/Images/webcont/img-107.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (108, 'http://localhost/Images/webcont/img-108.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (109, 'http://localhost/Images/webcont/img-109.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (110, 'http://localhost/Images/webcont/img-110.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (111, 'http://localhost/Images/webcont/img-111.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (112, 'http://localhost/Images/webcont/img-112.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (113, 'http://localhost/Images/webcont/img-113.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (114, 'http://localhost/Images/webcont/img-114.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (115, 'http://localhost/Images/webcont/img-115.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (116, 'http://localhost/Images/webcont/img-116.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (117, 'http://localhost/Images/webcont/img-117.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (118, 'http://localhost/Images/webcont/img-118.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (119, 'http://localhost/Images/webcont/img-119.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (120, 'http://localhost/Images/webcont/img-120.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (121, 'http://localhost/Images/webcont/img-121.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (122, 'http://localhost/Images/webcont/img-122.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (123, 'http://localhost/Images/webcont/img-123.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (124, 'http://localhost/Images/webcont/img-124.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (125, 'http://localhost/Images/webcont/img-125.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (126, 'http://localhost/Images/webcont/img-126.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (127, 'http://localhost/Images/webcont/img-127.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (128, 'http://localhost/Images/webcont/img-128.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (129, 'http://localhost/Images/webcont/img-129.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (130, 'http://localhost/Images/webcont/img-130.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (131, 'http://localhost/Images/webcont/img-131.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (132, 'http://localhost/Images/webcont/img-132.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (133, 'http://localhost/Images/webcont/img-133.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (134, 'http://localhost/Images/webcont/img-134.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (135, 'http://localhost/Images/webcont/img-135.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (136, 'http://localhost/Images/webcont/img-136.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (138, 'http://localhost/Images/webcont/img-138.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (139, 'http://localhost/Images/webcont/img-139.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (140, 'http://localhost/Images/webcont/img-140.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (141, 'http://localhost/Images/webcont/img-141.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (142, 'http://localhost/Images/webcont/img-142.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (143, 'http://localhost/Images/webcont/img-143.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (144, 'http://localhost/Images/webcont/img-144.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (145, 'http://localhost/Images/webcont/img-145.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (146, 'http://localhost/Images/webcont/img-146.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (147, 'http://localhost/Images/webcont/img-147.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (148, 'http://localhost/Images/webcont/img-148.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (149, 'http://localhost/Images/webcont/img-149.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (150, 'http://localhost/Images/webcont/img-150.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (151, 'http://localhost/Images/webcont/img-151.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (152, 'http://localhost/Images/webcont/img-152.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (153, 'http://localhost/Images/webcont/img-153.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (154, 'http://localhost/Images/webcont/img-154.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (155, 'http://localhost/Images/webcont/img-155.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (156, 'http://localhost/Images/webcont/img-156.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (158, 'http://localhost/Images/webcont/img-158.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (159, 'http://localhost/Images/webcont/img-159.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (160, 'http://localhost/Images/webcont/img-160.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (161, 'http://localhost/Images/webcont/img-161.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (162, 'http://localhost/Images/webcont/img-162.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (164, 'http://localhost/Images/webcont/img-164.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (165, 'http://localhost/Images/webcont/img-165.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (166, 'http://localhost/Images/webcont/img-166.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (167, 'http://localhost/Images/webcont/img-167.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (168, 'http://localhost/Images/webcont/img-168.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (169, 'http://localhost/Images/webcont/img-169.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (171, 'http://localhost/Images/webcont/img-171.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (172, 'http://localhost/Images/webcont/img-172.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (173, 'http://localhost/Images/webcont/img-173.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (174, 'http://localhost/Images/webcont/img-174.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (175, 'http://localhost/Images/webcont/img-175.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (178, 'http://localhost/Images/webcont/img-178.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (179, 'http://localhost/Images/webcont/img-179.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (180, 'http://localhost/Images/webcont/img-180.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (181, 'http://localhost/Images/webcont/img-181.png', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (183, 'http://localhost/Images/webcont/img-183.png', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (184, 'http://localhost/Images/webcont/img-184.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (185, 'http://localhost/Images/webcont/img-185.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (186, 'http://localhost/Images/webcont/img-186.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (187, 'http://localhost/Images/webcont/img-187.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (188, 'http://localhost/Images/webcont/img-188.jpg', false);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (190, 'http://localhost/Images/webcont/img-190.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (192, 'http://localhost/Images/webcont/img-192.jpg', true);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (193, 'https://lh3.ggpht.com/WSUkMMaczaMgHIKu1RN9xQVqEpFTnhd5rzWyd8fAPLiKZ1rrUt6O76kOVONY1UPKz8kZ=w300', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (195, 'http://globalstore.eltercera.com.ve/Images/webcont/img-195.jpg', true);
+INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (195, 'http://localhost/Images/webcont/img-195.jpg', true);
INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (196, 'https://lh6.ggpht.com/Oj7RLntV6FpLAFpLDNF42YF9HTiRHPiKacjQw12k1DifUgu1hc9dEHLoschFMQbm6PjbPA=w300', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (197, 'http://globalstore.eltercera.com.ve/Images/webcont/img-197.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (198, 'http://globalstore.eltercera.com.ve/Images/webcont/img-198.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (199, 'http://globalstore.eltercera.com.ve/Images/webcont/img-199.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (201, 'http://globalstore.eltercera.com.ve/Images/webcont/img-201.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (202, 'http://globalstore.eltercera.com.ve/Images/webcont/img-202.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (203, 'http://globalstore.eltercera.com.ve/Images/webcont/img-203.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (206, 'http://globalstore.eltercera.com.ve/Images/webcont/img-206.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (208, 'http://globalstore.eltercera.com.ve/Images/webcont/img-208.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (210, 'http://globalstore.eltercera.com.ve/Images/webcont/img-210.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (212, 'http://globalstore.eltercera.com.ve/Images/webcont/img-212.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (214, 'http://globalstore.eltercera.com.ve/Images/webcont/img-214.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (216, 'http://globalstore.eltercera.com.ve/Images/webcont/img-216.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (218, 'http://globalstore.eltercera.com.ve/Images/webcont/img-218.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (220, 'http://globalstore.eltercera.com.ve/Images/webcont/img-220.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (222, 'http://globalstore.eltercera.com.ve/Images/webcont/img-222.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (223, 'http://globalstore.eltercera.com.ve/Images/webcont/img-223.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (224, 'http://globalstore.eltercera.com.ve/Images/webcont/img-224.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (225, 'http://globalstore.eltercera.com.ve/Images/webcont/img-225.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (226, 'http://globalstore.eltercera.com.ve/Images/webcont/img-226.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (227, 'http://globalstore.eltercera.com.ve/Images/webcont/img-227.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (228, 'http://globalstore.eltercera.com.ve/Images/webcont/img-228.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (229, 'http://globalstore.eltercera.com.ve/Images/webcont/img-229.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (230, 'http://globalstore.eltercera.com.ve/Images/webcont/img-230.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (231, 'http://globalstore.eltercera.com.ve/Images/webcont/img-231.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (233, 'http://globalstore.eltercera.com.ve/Images/webcont/img-233.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (234, 'http://globalstore.eltercera.com.ve/Images/webcont/img-234.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (235, 'http://globalstore.eltercera.com.ve/Images/webcont/img-235.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (236, 'http://globalstore.eltercera.com.ve/Images/webcont/img-236.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (237, 'http://globalstore.eltercera.com.ve/Images/webcont/img-237.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (238, 'http://globalstore.eltercera.com.ve/Images/webcont/img-238.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (239, 'http://globalstore.eltercera.com.ve/Images/webcont/img-239.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (240, 'http://globalstore.eltercera.com.ve/Images/webcont/img-240.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (241, 'http://globalstore.eltercera.com.ve/Images/webcont/img-241.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (242, 'http://globalstore.eltercera.com.ve/Images/webcont/img-242.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (243, 'http://globalstore.eltercera.com.ve/Images/webcont/img-243.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (244, 'http://globalstore.eltercera.com.ve/Images/webcont/img-244.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (245, 'http://globalstore.eltercera.com.ve/Images/webcont/img-245.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (246, 'http://globalstore.eltercera.com.ve/Images/webcont/img-246.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (247, 'http://globalstore.eltercera.com.ve/Images/webcont/img-247.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (248, 'http://globalstore.eltercera.com.ve/Images/webcont/img-248.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (250, 'http://globalstore.eltercera.com.ve/Images/webcont/img-250.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (251, 'http://globalstore.eltercera.com.ve/Images/webcont/img-251.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (252, 'http://globalstore.eltercera.com.ve/Images/webcont/img-252.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (249, 'http://globalstore.eltercera.com.ve/Images/webcont/img-249.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (253, 'http://globalstore.eltercera.com.ve/Images/webcont/img-253.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (254, 'http://globalstore.eltercera.com.ve/Images/webcont/img-254.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (255, 'http://globalstore.eltercera.com.ve/Images/webcont/img-255.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (256, 'http://globalstore.eltercera.com.ve/Images/webcont/img-256.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (257, 'http://globalstore.eltercera.com.ve/Images/webcont/img-257.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (258, 'http://globalstore.eltercera.com.ve/Images/webcont/img-258.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (259, 'http://globalstore.eltercera.com.ve/Images/webcont/img-259.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (261, 'http://globalstore.eltercera.com.ve/Images/webcont/img-261.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (262, 'http://globalstore.eltercera.com.ve/Images/webcont/img-262.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (263, 'http://globalstore.eltercera.com.ve/Images/webcont/img-263.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (264, 'http://globalstore.eltercera.com.ve/Images/webcont/img-264.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (265, 'http://globalstore.eltercera.com.ve/Images/webcont/img-265.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (266, 'http://globalstore.eltercera.com.ve/Images/webcont/img-266.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (267, 'http://globalstore.eltercera.com.ve/Images/webcont/img-267.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (269, 'http://globalstore.eltercera.com.ve/Images/webcont/img-269.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (270, 'http://globalstore.eltercera.com.ve/Images/webcont/img-270.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (271, 'http://globalstore.eltercera.com.ve/Images/webcont/img-271.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (272, 'http://globalstore.eltercera.com.ve/Images/webcont/img-272.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (273, 'http://globalstore.eltercera.com.ve/Images/webcont/img-273.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (274, 'http://globalstore.eltercera.com.ve/Images/webcont/img-274.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (275, 'http://globalstore.eltercera.com.ve/Images/webcont/img-275.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (277, 'http://globalstore.eltercera.com.ve/Images/webcont/img-277.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (278, 'http://globalstore.eltercera.com.ve/Images/webcont/img-278.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (279, 'http://globalstore.eltercera.com.ve/Images/webcont/img-279.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (280, 'http://globalstore.eltercera.com.ve/Images/webcont/img-280.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (281, 'http://globalstore.eltercera.com.ve/Images/webcont/img-281.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (282, 'http://globalstore.eltercera.com.ve/Images/webcont/img-282.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (283, 'http://globalstore.eltercera.com.ve/Images/webcont/img-283.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (285, 'http://globalstore.eltercera.com.ve/Images/webcont/img-285.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (286, 'http://globalstore.eltercera.com.ve/Images/webcont/img-286.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (287, 'http://globalstore.eltercera.com.ve/Images/webcont/img-287.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (288, 'http://globalstore.eltercera.com.ve/Images/webcont/img-288.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (289, 'http://globalstore.eltercera.com.ve/Images/webcont/img-289.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (290, 'http://globalstore.eltercera.com.ve/Images/webcont/img-290.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (291, 'http://globalstore.eltercera.com.ve/Images/webcont/img-291.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (292, 'http://globalstore.eltercera.com.ve/Images/webcont/img-292.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (293, 'http://globalstore.eltercera.com.ve/Images/webcont/img-293.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (294, 'http://globalstore.eltercera.com.ve/Images/webcont/img-294.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (295, 'http://globalstore.eltercera.com.ve/Images/webcont/img-295.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (296, 'http://globalstore.eltercera.com.ve/Images/webcont/img-296.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (297, 'http://globalstore.eltercera.com.ve/Images/webcont/img-297.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (298, 'http://globalstore.eltercera.com.ve/Images/webcont/img-298.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (299, 'http://globalstore.eltercera.com.ve/Images/webcont/img-299.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (300, 'http://globalstore.eltercera.com.ve/Images/webcont/img-300.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (301, 'http://globalstore.eltercera.com.ve/Images/webcont/img-301.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (302, 'http://globalstore.eltercera.com.ve/Images/webcont/img-302.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (303, 'http://globalstore.eltercera.com.ve/Images/webcont/img-303.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (304, 'http://globalstore.eltercera.com.ve/Images/webcont/img-304.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (305, 'http://globalstore.eltercera.com.ve/Images/webcont/img-305.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (306, 'http://globalstore.eltercera.com.ve/Images/webcont/img-306.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (307, 'http://globalstore.eltercera.com.ve/Images/webcont/img-307.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (308, 'http://globalstore.eltercera.com.ve/Images/webcont/img-308.jpg', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (367, 'http://globalstore.eltercera.com.ve/Images/webcont/img-367.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (369, 'http://globalstore.eltercera.com.ve/Images/webcont/img-369.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (370, 'http://globalstore.eltercera.com.ve/Images/webcont/img-370.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (371, 'http://globalstore.eltercera.com.ve/Images/webcont/img-371.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (372, 'http://globalstore.eltercera.com.ve/Images/webcont/img-372.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (310, 'http://globalstore.eltercera.com.ve/Images/webcont/img-310.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (311, 'http://globalstore.eltercera.com.ve/Images/webcont/img-311.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (312, 'http://globalstore.eltercera.com.ve/Images/webcont/img-312.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (313, 'http://globalstore.eltercera.com.ve/Images/webcont/img-313.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (314, 'http://globalstore.eltercera.com.ve/Images/webcont/img-314.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (315, 'http://globalstore.eltercera.com.ve/Images/webcont/img-315.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (317, 'http://globalstore.eltercera.com.ve/Images/webcont/img-317.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (318, 'http://globalstore.eltercera.com.ve/Images/webcont/img-318.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (319, 'http://globalstore.eltercera.com.ve/Images/webcont/img-319.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (320, 'http://globalstore.eltercera.com.ve/Images/webcont/img-320.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (321, 'http://globalstore.eltercera.com.ve/Images/webcont/img-321.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (322, 'http://globalstore.eltercera.com.ve/Images/webcont/img-322.png', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (324, 'http://globalstore.eltercera.com.ve/Images/webcont/img-324.png', true);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (325, 'http://globalstore.eltercera.com.ve/Images/webcont/img-325.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (326, 'http://globalstore.eltercera.com.ve/Images/webcont/img-326.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (327, 'http://globalstore.eltercera.com.ve/Images/webcont/img-327.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (328, 'http://globalstore.eltercera.com.ve/Images/webcont/img-328.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (329, 'http://globalstore.eltercera.com.ve/Images/webcont/img-329.jpg', false);
-INSERT INTO image (fk_web_cont, img_url, img_logo) VALUES (330, 'http://globalstore.eltercera.com.ve/Images/webcont/img-330.png', false);
-INSERT INT...
[truncated message content] |
|
From: Rómulo RodrÃg. <elt...@us...> - 2015-01-10 13:40:09
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 370fa3228f1158170cbca0e18a487ba3b895aa3c (commit)
via be974360cc8e3eb04d4ac6331d6868db92d6a6d9 (commit)
via 0f30a90efd36ee9144a7af129f71d146acfeb876 (commit)
from 901fa9715984e93916571b26f1819c31cf7ff6b3 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 370fa3228f1158170cbca0e18a487ba3b895aa3c
Author: Rómulo Rodriguez <rod...@gm...>
Date: Sat Jan 10 09:08:57 2015 -0430
Inserts de la base de datos.
Signed-off-by: Rómulo Rodriguez <rod...@gm...>
diff --git a/docs/Entrega III/inserts.sql b/docs/Entrega III/inserts.sql
new file mode 100644
index 0000000..73eb392
--- /dev/null
+++ b/docs/Entrega III/inserts.sql
@@ -0,0 +1,4410 @@
+--
+-- PostgreSQL database dump
+--
+
+SET statement_timeout = 0;
+SET client_encoding = 'UTF8';
+SET standard_conforming_strings = on;
+SET check_function_bodies = false;
+SET client_min_messages = warning;
+
+SET search_path = public, pg_catalog;
+
+--
+-- Data for Name: actor_director; Type: TABLE DATA; Schema: public; Owner: gsdbuser
+--
+
+INSERT INTO actor_director (ad_id, ad_name) VALUES (1, 'Dean DeBlois');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (2, 'Chris Sanders');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (3, 'Gerard Butler');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (4, 'Jonah Hill');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (5, 'Johnny Depp');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (6, 'Dave Wittenberg');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (7, 'Ridley Scott');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (8, 'Yaphet Kotto');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (9, 'Veronica Cartwright');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (10, 'Alfred Hitchcock');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (11, 'Janet Leighk');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (12, 'James Gunn');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (13, 'Chris Pratt');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (14, 'Zoe Saldana');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (15, 'Dave Bautista');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (16, 'Vin Diesel');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (17, 'Bradley Cooper');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (18, 'Lee Pace');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (19, 'Don Hahn');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (20, 'Miranda Richardson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (21, ' Juno Temple');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (22, 'Ella Purnell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (23, 'Hannah New');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (24, 'Wyatt Russell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (25, 'Peter Stormare');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (26, 'Caroline Aaron');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (27, 'Craig Roberts');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (28, 'Sean Astin');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (29, 'Orlando Bloom');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (30, 'Billy Boyd');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (31, 'Bernard Hill');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (32, 'Christopher Lee');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (33, 'Sandro Kopp');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (34, 'Elijah Wood');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (35, 'Alexandra Astin');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (36, 'Martin Freeman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (37, 'Hugo Weaving');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (38, 'Brian Blessed');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (39, 'Jay Baruchel');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (40, 'Cate Blanchett');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (41, 'Steven Quale');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (42, 'Richard Armitage');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (43, 'Sarah Wayne Callies');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (44, 'Liam Neeson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (45, 'Morgan Freeman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (46, 'Ty Burrell');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (47, 'Max Charles');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (48, 'Ariel Winter');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (49, 'Kris Kristofferson');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (50, 'Chris Renaud');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (51, 'Chris Meledandri');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (52, 'Janet Healy');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (53, 'Michael Sheen');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (54, 'Cillian Murphy');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (55, 'Jack McGee');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (56, 'Matt Reeves');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (57, 'Andy Serkis');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (58, 'Jason Clarke');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (59, 'Gary Oldman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (60, 'Dustin Hoffman');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (61, 'Matthew Broderick');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (62, 'Frank Langella');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (63, 'Stanley Tucci');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (64, 'Tracey Walter');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (65, 'Daniel Mays');
+INSERT INTO actor_director (ad_id, ad_name) VALUES (66, 'Rhys Ifans');
+
+
+--
+-- Name: actor_director_ad_id_seq; Type: SEQUENCE SET; Schema: public; Owner: gsdbuser
+--
+
+SELECT pg_catalog.setval('actor_director_ad_id_seq', 66, true);
+
+
+--
+-- Data for Name: promotion; Type: TABLE DATA; Schema: public; Owner: gsdbuser
+--
+
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (1, 'Oferta de Navidad', '2014-12-24', '2014-12-27', 20, false, 'Oferta en todos los contenidos por los festejos de navidad.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (2, 'Oferta de Año Nuevo', '2014-12-29', '2015-01-03', 15, false, 'Oferta en todos los contenidos por los festejos de Año Nuevo.', NULL);
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (3, 'Oferta de Terror', '2015-10-29', '2015-11-01', 10, false, 'Oferta en todos las peliculas mde terror.', '<CONTENT CATEGORY="9"/>');
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (4, 'DÃa del niño', '2015-07-19', '2015-07-20', 15, false, 'Oferta en juegos para niños', '<CONTENT CATEGORY="1"/>');
+INSERT INTO promotion (pro_id, pro_name, pro_init_date, pro_end_date, pro_discount, pro_state, pro_description, pro_conditions) VALUES (5, 'Buen Comprador', '2015-02-01', '2015-03-01', 5, false, 'Un mes de Oferta en todos los contenidos para los compradores con mas de 100 Compras', '<user n_purchase_min="100"/>');
+
+
+--
+-- Data for Name: content; Type: TABLE DATA; Schema: public; Owner: gsdbuser
+--
+
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (2, 'ownCloud', '2014-12-04', 'Bienvenido a la ownCloud Android App - Añadir un servidor ownCloud, y haga que su sincronización de archivos y compartir nube privada en marcha y funcionando en poco tiempo.
+
+*** Si usted está experimentando problemas de registro en después de una actualización y la Solución App ownCloud está instalada en su dispositivo, por favor, intenta desinstalar y reinstalar la aplicación Solución ***
+
+¿Necesita sincronización de archivos y compartir software privado? Entonces una buena noticia, porque el ownCloud Android App le permite conectar los dispositivos Android a un servidor privado ownCloud corriendo en su centro de datos. ownCloud es sincronización de archivos de código abierto y el software de la cuota para cada uno de los individuos que operan la libre Community Edition para grandes empresas y proveedores de servicios que operan ownCloud 2012 Enterprise Edition. ownCloud proporciona una solución de sincronización de archivos y la cuota de seguro y compatible con - en los servidores que controles.
+
+Con el ownCloud Android App se puede navegar por todos los archivos sincronizados ownCloud, crear y editar nuevos archivos, compartir estos archivos y carpetas con los compañeros de trabajo, y mantener el contenido de esas carpetas sincronizados en todos sus dispositivos. Sólo tiene que copiar un archivo en un directorio de su servidor y ownCloud hace el resto.
+
+Si el uso de un dispositivo móvil, una estación de trabajo o un cliente web, ownCloud proporciona la capacidad de poner los archivos de la derecha en las manos adecuadas en el momento adecuado en cualquier dispositivo en una solución fácil de utilizar, segura, privada y controlada. Después de todo, con ownCloud, es su nube, sus datos, a su manera.
+
+VisÃtenos en www.ownCloud.com para obtener más información acerca de ownCloud y la lÃnea de productos ownCloud 2012. Para obtener más información sobre la fuente libre y abierto del servidor ownCloud Community Edition, visite www.ownCloud.org.
+
+Nota: Nosotros seguiremos proporcionando soluciones para los errores conocidos, añadir funciones y mejorar la aplicación en el tiempo. El apoyo a esta aplicación desde ownCloud, Inc se proporciona a través de una suscripción a ownCloud 2012 Enterprise Edition. Si usted no tiene una suscripción, forum.owncloud.org proporciona un buen punto de partida para sus preguntas y cualquier problema que pueda tener.', 6.23000000000000043, '2014-12-03', 'APLICACION', 2.29999999999999982, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (5, 'Angry Birds Rio', '2014-12-05', 'JUEGO GRATUITO: ¡DESCÃRGALO YA!
+¿Qué sucederÃa si metieran a los pájaros favoritos de todo el mundo en una jaula y los enviasen a RÃo? ¡Se enfadarÃan y con razón!
+
+¡NOS VAMOS A RÃO!
+Los Angry Birds originales han sido secuestrados y se los han llevado a la mágica RÃo de Janeiro. Han conseguido escapar, pero tienen que salvar a sus amigos Blu y Jewel: los dos exóticos guacamayos protagonistas de los taquillazos de cine: Rio y Rio 2.
+
+¡MIGHTY EAGLE!
+Puedes comprar a Mighty Eagle una vez y utilizarla todas las veces que quieras. Si te quedas atascado en un nivel, esta increÃble criatura descenderá del cielo y mandará a los entrometidos monitos a freÃr espárragos. Claro que esto tiene truco: ¡solo puedes recurrir a Mighty Eagle una vez por hora! Mighty Eagle incluye además nuevos logros y objetivos.
+
+¡POTENCIADORES!
+Si mejoras las habilidades de tus pájaros, te resultará más fácil terminar los niveles con tres estrellas y podrás desbloquear contenidos adicionales. Entre los potenciadores está el Sling Scope para señalar objetivos con láser; las Power Potion, para agrandar los pájaros; Samba Burst para destruir a ritmo de samba; TNT, para reventar al enemigo y Call the Flock, para liberar un tornado de guacamayos.
+
+¡320 NIVELES DE PURA DIVERSIÃN! Y además, 72 niveles más llenos de acción a lo largo de 12 adictivos episodios.
+
+¡ESPECTACULARES ENFRENTAMIENTOS FINALES! Pon a prueba tu dominio del tirachinas.
+
+¡CALL THE FLOCK! Pide ayuda a los demoledores guacamayos.
+
+¡POWER POTION! ¡Vitaminas para tus pájaros! Con las Power Potions convierte a cualquier pájaro en un gigante devastador!
+
+¡DESBLOQUEA NIVELES ADICIONALES! Encuentra los objetos escondidos por el juego ¡y desbloquea aún más niveles!
+
+-----
+SÃguenos en Twitter:
+http://twitter.angrybirds.com
+
+Hazte fan de Angry Birds en Facebook.
+http://facebook.angrybirds.com
+
+Condiciones de uso: http://www.rovio.com/eula
+
+Para usar esta aplicación es necesario estar conectado a Internet; puede que se le cobre por el uso de datos.
+
+
+Mensaje importante para padres
+
+Este juego puede que incluya:
+- Enlaces directos a sitios web de redes sociales para mayores de 13 años.
+- Enlaces directos a Internet que, al salir del juego, permiten al jugador entrar en cualquier página Web.
+- Publicidad de productos Rovio y de socios selectos.
+- La opción de realizar compras en la aplicación. Consulte siempre al titular de la cuenta bancaria.', 0, '2014-11-19', 'APLICACION', 48, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (6, 'Angry Birds Seasons', '2014-12-05', '¡Ãnete a los Angry Birds y celebra fiestas de todo el mundo! ¡Disfruta con el sistema de juego que tanto te gusta, pero con un toque extra de emoción! En esta última actualización vas a tener que enfundarte el gorro y los guantes: ¡este invierno nos vamos a Finlandia!
+
+ÃLTIMO EPISODIO: «¡En hielo finlandés!»
+Acompaña a los pájaros al norte en esta festiva y refrescante actualización. Además, conocerás a Tony, el primo finlandés de Terrence.
+
+- ¡25 nuevos y resbaladizos niveles con temática navideña!
+- ¡Nuevo personaje! ¡Tony se une al club! ¡Juega con él!
+- ¡Imponentes paisajes! Admira las tÃpicas vistas finlandesas, desde paisajes de Helsinki a la aurora boreal.
+- Aprende divertidas curiosidades sobre Finlandia con el profesor Ibérico!
+- ¡Nuevo tema central interpretado por los rockeros finlandeses de Apocalyptica!
+
+
+Además, en «En hielo finlandés» podrás descargar y disfrutar de muchas cosas más:
+- 19 EPISODIOS TEMÃTICOS (y extras chulÃsimos).
+- ¡MÃS DE 500 NIVELES en los que reventar a los cerdos!
+- ¡EXCLUSIVOS POTENCIADORES para adquirir ventaja en los niveles más peliagudos!
+- ¡DÃAS GORRINOS! ¡Exclusivos niveles súper especiales para conmemorar eventos y festividades de todo el mundo!
+
+Con más de 2000 millones de descargas, Angry Birds es el juego para móviles más popular de la historia. ¡Ãnete a este fenómeno mundial!
+
+-----
+
+Hazte fan de Angry Birds en Facebook:
+http://facebook.angrybirds.com
+
+SÃguenos en Twitter:
+http://twitter.angrybirds.com
+
+Condiciones de uso: http://www.rovio.com/eula
+PolÃtica de privacidad: http://www.rovio.com/privacy
+
+*Notas:
+Angry Birds Seasons incluye compras opcionales dentro de la aplicación. Puede que este juego necesite una conexión a Internet, por lo que podrán aplicarse cargos por la transferencia de datos.
+
+-----
+
+Mensaje importante para padres
+
+Este juego puede incluir:
+- Enlaces directos a sitios web de redes sociales dirigidas a usuarios de más de 13 años.
+- Enlaces directos a Internet que permiten a los jugadores salir del juego y, potencialmente, visitar otros sitios web.
+- Anuncios de productos de Rovio y de socios seleccionados.
+- La opción de realizar compras integradas. Pide permiso al titular de la cuenta antes de hacer ninguna compra.', 0, '2014-12-01', 'APLICACION', 43, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (7, 'Angry Birds Star Wars HD', '2014-12-05', '¡ÃNETE A LOS ANGRY BIRDS EN SU MAYOR AVENTURA HASTA EL MOMENTO!
+
+Hace mucho tiempo en una galaxia muy, muy lejana... un grupo de pájaros rebeldes desesperados se enfrentaron a una amenaza galáctica: ¡el malvado imperio de los Cerdos imperiales!
+
+Los pájaros rebeldes, atacando desde una base oculta, han logrado su primera victoria contra los malvados Cerdos imperiales. Durante la batalla, los espÃas rebeldes consiguieron robar los planos secretos del arma definitiva del Imperio, el CERDO DE LA MUERTE, y se apresuran a entregar los planos a los Pájaros Rebeldes. ¡Ahora necesitan tu ayuda!
+
+¡Ãnete a una aventura épica con los Angry Birds en el legendario universo de la Guerra de las Galaxiasâ¢! Utiliza la fuerza, empuña el sable de luz y elimina a los Cerdos imperiales en un viaje intergaláctico desde los desiertos de Tatooine hasta las profundidades del Cerdo de la muerte, ¡donde te enfrentarás al terrorÃfico Darth Vader, Señor Oscuro de los Cerdos! ¿Podrás convertirte en un Maestro Jedi y devolver la libertad a la galaxia?
+
+¡Es hora de empuñar el sable de luz y unirte a la aventura! ¡Que los pájaros te acompañen!
+
+Sigue @angrybirds en Twitter
+
+Puedes ver los vÃdeos, leer los cómics y enviar conceptos artÃsticos de fans en angrybirds.com/starwars
+
+Klicke bei Facebook auf âGefällt mirâ und sage hallo!
+
+Nutzungsbedingungen: http://www.rovio.com/eula
+Datenschutzrichtlinien: http://www.rovio.com/privacy
+
+Esta aplicación podrÃa requerir conexión a internet y por consiguiente podrÃan aplicarse cargos de transferencia de datos.', 0, '2014-08-25', 'APLICACION', 49, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (3, 'El movimiento open : La creación de un dominio público en la era digital', '2014-12-04', 'Internet es una infraestructura extraordinaria del conocimiento, la primera de alcance global, generadora de un hecho radicalmente nuevo: la metacultura basada en el hipertexto. Su emergencia cambia las interacciones humanas y los movimientos sociales. El movimiento Open constituye el primero y el más importante de estos nuevos movimientos de la sociedad red: pugna por la accesibilidad sin restricciones a los flujos de signos y a los productos culturales, desafÃa las vÃas de apropiación comercial privada, rechaza la reducción del conocimiento a mercancÃa y reclama la construcción de un dominio público nuevo para el desarrollo de una cultura libre mediante la accesibilidad abierta. Este libro presenta las caracterÃsticas de las distintas ramas y su enfoque con la defensa de una cultura libre y una reconstrucción de la esfera pública en condiciones de comunicación móvil.', 5.71999999999999975, '2011-11-28', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (4, 'La guÃa definitiva del diseño de bases de datos', '2014-12-04', '¿Estás empezando a estudiar bases de datos y no sabes cómo hacer el diseño? ¿Tienes problemas para entender y dominar los conceptos necesarios para hacer un diseño eficiente y adecuado? ¿No acabas de comprender por qué tus diseños siempre tienen fallos? ¿Te resulta difÃcil pasar del diagrama entidad-relación al diseño lógico? ¿Buscas una guÃa que te sirva para todo lo que estás buscando? Si quieres aprender de forma rápida y sencilla todo lo que necesitas saber sobre el diseño de bases de datos, ¡ésta tu guÃa!
+¡¡La primerÃsima y más pedagógica guÃa de diseño de bases de datos al alcance de tus manos!! ¡¡OlvÃdate de las interminables guÃas que te llenan de dudas y ve al grano!!
+La autora es una psicóloga experta en el tratamiento de dificultades del aprendizaje con una amplia experiencia docente.
+ÃNDICE
+1. Diseño conceptual (Diagramas entidad-relación).
+2. Diseño lógico.
+3. Ejemplos de diseño conceptual y lógico.
+4. Fallos más frecuentes y cómo corregirlos.
+5. Ejercicios resueltos.
+6. Sentencias Transact-SQL DML.
+6. Funciones.', 7.08000000000000007, '2014-01-07', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (8, 'Steve Jobs. Lecciones de liderazgo', '2014-12-05', 'El nombre de Steve Jobs es sinónimo de innovación, liderazgo y éxito. Su personalidad arrolladora, su intuición para los negocios y su carisma hicieron de él un gurú de la tecnologÃa, que logró convertir a su empresa, Apple, en la compañÃa de innovación tecnológica más importante del mundo.
+Steve Jobs lideró desde la dirección de Apple la revolución de la industria musical y de telefonÃa. Consiguió una simbiosis poco habitual al crear productos de culto que se han convertido en productos de masas. Millones de personas de todo el mundo han seguido sus presentaciones a través de internet, y han hecho colas durante horas fuera de sus tiendas para ser los primeros en comprar el último dispositivo de Apple. Su experiencia es, y seguirá siendo dentro de cien años, un caso de estudio en las mejores escuelas de negocios.
+«Las personas que están lo suficientemente locas como para pensar que pueden cambiar el mundo son las que lo cambian.» Anuncio «Piensa diferente» de Apple (1997).', 2.99000000000000021, '2014-02-20', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (9, 'Incrementa tu IQ financiero', '2014-12-05', 'El genio de los negocios y autor del bestseller internacional Padre rico, padre pobre, habla de como desarrollar el talento para tomar las mejores decisiones financieras, invertir con astucia y aumentar la riqueza personal. En un mundo inestable, ¡tu mayor bien es tu inteligencia financiera! ', 7.99000000000000021, '2012-03-07', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (10, 'La Conspiración Umbrella : Resident Evil, Volumen 1', '2014-12-05', 'La Unidad de Rescate y Tácticas Especiales (STARS) se ha desplegado en Racoon City para investigar el caos. Se trata de un ecléctico grupo de especialistas: el rebelde Chris Redfield, la antigua ladrona de guante blanco Jill Valentine, el combativo Barry Burton y el enigmático jefe de la unidad, Albert Wesker. Pero lo que los STARS descubren cuando entran en la mansión es un terror que supera sus peores pesadillas: criaturas que desafÃan las leyes de la vida y de la muerte. ', 7.99000000000000021, '2013-09-27', 'LIBRO', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (11, 'How to Train Your Dragon', '2014-12-05', 'This Academy Award®-nominated DreamWorks Animation film rolls fire-breathing action, epic adventure and big laughs into a captivating, fun and original story. Hiccup is a young Viking who defies tradition and befriends one of his deadliest foes â a ferocious dragon he calls Toothless. Together, the unlikely heroes fight against the odds to save both their worlds in this wonderful, feel-good hit. ', 110, '2010-03-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (12, 'Rango', '2014-12-05', 'A chameleon that aspires to be a swashbuckling hero finds himself in a Western town plagued by bandits and is forced to literally play the role in order to protect it. ', 63, '2014-03-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (13, 'Resident Evil: Degeneration', '2014-12-03', 'The "Umbrella Incident" that took place in Raccoon City was ended with the eradication of the deadly virus by a missile attack ordered by the government. 2008 Capcom Co., Ltd. and Resident Evil CG Film Partners. All Rights Reserved. ', 63, '2008-12-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (15, 'Psycho 1960', '2014-12-05', 'Alfred Hitchcock''s landmark thriller of the macabre stars Janet Leigh and Anthony Perkins in a terrifying tale about a quiet motel and a mysterious killer. ', 110, '1960-03-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (18, 'Back In Black', '2014-12-05', '', 4.49000000000000021, '1980-08-25', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (19, 'Highway to Hell', '2014-12-05', '', 4.49000000000000021, '1979-08-27', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (20, 'If You Want Blood You''ve Got It', '1978-10-13', '', 4.49000000000000021, '1979-08-27', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (26, 'Cut the Rope', '2015-01-07', 'Cut the rope to feed candy to little monster Om Nom®! 400 million downloads around the world of this phenomenal puzzle game.
+
+A mysterious package has arrived, and the little monster inside has only one request⦠CANDY! Collect gold stars, discover hidden prizes and unlock exciting new levels in this additively fun, award-winning, physics-based game!
+
+Key features:
+
+ Innovative physics gameplay
+ Adorable character
+ Outstanding graphics', 0, '2014-12-26', 'APLICACION', 51.7999999999999972, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (14, 'Alien: The Director''s Cut', '2015-01-06', 'Get even more thrills and chills in Alien: The Director''s Cut, a special edition of director Ridley Scott''s science fiction/horror classic. For this digitally remastered special edition of what many have called the ''scariest movie ever made,'' Ridley Scott has incorporated new never before seen footage. The terror begins when the crew of a spaceship investigates a transmission from a desolate planet, and discovers a life form that is
+perfectly evolved to annihilate mankind. One by one, each crew member is slain until only Ripley is left, leading to an explosive conclusion that sets the stage for its stunning sequel, Aliens.', 110, '2003-10-01', 'PELICULA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (80, 'Dawn of the Planet of the Apes', '2015-01-09', 'Gary Oldman, Jason Clarke, Keri Russell and Andy Serkis star in the thrilling next chapter of Planet of the Apes. Ten years after a deadly virus destroys most of humanity, the human survivors find themselves on the brink of war with a group of genetically enhanced apes led by Caesar, a war that could determine which species will dominate Earth. ', 110, '2014-07-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (17, 'Black Ice', '2015-01-09', '', 4.49000000000000021, '2008-10-20', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (16, 'Rock or Bust', '2015-01-09', '', 4.49000000000000021, '2014-09-28', 'MUSICA', NULL, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (22, 'Amazon Kindle', '2015-01-03', 'The Kindle app puts over a million books at your fingertips. Itâs the app for every reader, whether youâre a book reader, magazine reader, or newspaper readerâand you donât need to own a Kindle to use it. Choose from over a million Kindle books from the Kindle Store or enjoy popular magazines like The Economist and Readerâs Digest with high-resolution color images.*
+⢠Read Free BooksâChoose from thousands of free ebooks such as Pride & Prejudice or The Adventures of Sherlock Holmes.
+⢠Shop for BooksâEasily shop for ebooks, including new releases and New York Times Best Sellers.
+⢠Use the Built-In Dictionary, Google, and WikipediaâThe Kindle app has a built-in dictionary that allows you to look up words instantly while youâre reading your ebooks. Simply tap and hold a word to view its definition or use the Google and Wikipedia links to get more information.
+⢠Sync Your eBooksâThe Kindle app lets you read the same book across devices and automatically syncs where you left off so you can start reading on one device and pick up where you left off on another device. The app syncs your furthest page read, bookmarks, notes, and highlights between Android, PC, Mac, iPad, iPhone, iPod touch, BlackBerry, Windows Phone 8, and any of our Kindle devices using our Whispersync technology.
+⢠Sample Books Before You BuyâRead the first chapter of a book for free before you decide to buy.
+⢠Customize Your ReadingâChoose your preferred font size, screen brightness, background color, and orientation (portrait or landscape) to read your books.
+⢠Borrow eBooks from the LibraryâCheck out ebooks from your local library and have them delivered wirelessly to your Kindle app.
+⢠Read print replica textbooks on Android tablets. Print Replica Kindle books maintain the rich formatting and layout of their related print editions and provide features to help students study smarter including ability to highlight passages, add margin notes, and search for keywords. Whispersync technology saves and synchronizes your bookmarks, notes, and highlights across your devices.
+* Selection for U.S. users only; selection and price of ebooks and e-periodicals vary by country.', 0, '2014-12-17', 'APLICACION', 10, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (24, 'Modern Combat 5: Blackout', '2015-01-04', '*IMPORTANT* Modern Combat 5 requires an Internet connection.
+
+> âIt plays as good as it looks.â â IGN
+> âAmps everything up to the next level.â â 148Apps
+> âSharp controls, impressive graphics.â â Pocket Gamer
+
+Step into the action as the latest installment in the best FPS series raises the bar for shooter games once more! Create a squad, add your friends and test your individual and team skills against other squads in dynamic multiplayer warfare!
+
+Is single player your thing? Then step into a world on the brink of anarchy and shoot your way out of one dire situation after another to expose a lunatic whoâs trying to tear the world to shreds.
+
+
+CHOOSE YOUR FAVORITE CLASS
+> 4 customizable classes that you can level up across single- and multiplayer
+> Find the play style the suits you: Assault, Heavy, Recon, or Sniper
+> Activate class-specific skills by earning and spending Skill Points
+
+HIGH-POWERED MULTIPLAYER
+> Epic team clashes in Squad vs. Squad matches
+> Talk to other players in Global and Squad Chat
+> Individual and Squad leaderboards
+> Win cool rewards in the limited-time events
+
+UNIFIED GAME PROGRESSION
+> Accumulate XP and level up by playing both single-player missions and multiplayer matches
+> Unlock higher-tier weapons by mastering lower-tier ones
+> Customize the perfect weapon using a host of attachments and jump straight into the action
+
+INTENSE SOLO CAMPAIGN
+> Fast-paced story missions with various challenges taking you from Tokyo to Venice
+> Play the new Spec-Ops missions for a real FPS adrenaline rush
+> Flawless graphics, music and voice performances perfectly adapted for a shooter game
+
+HIGHLY CUSTOMIZABLE CONTROLS
+> Intuitive, highly customizable controls so you can play the game just the way you want
+
+Modern Combat 5 supports HID game controllers. Moga Pro is also supported, in mode B (HID Mode).
+
+_____________________________________________
+
+Visit our official site at http://www.gameloft.com
+Follow us on Twitter at http://glft.co/GameloftonTwitter or like us on Facebook at http://facebook.com/Gameloft to get more info about all our upcoming titles.
+Check out our videos and game trailers on http://www.youtube.com/Gameloft
+Discover our blog at http://glft.co/Gameloft_Official_Blog for the inside scoop on everything Gameloft.', 25.1099999999999994, '2014-07-29', 'APLICACION', 776, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (25, 'Driver San Francisco', '2015-01-04', 'With crime lord Jericho now on the loose, San Francisco faces a terrible threat. Only one man can stand against him. You are Tanner, a hardened detective who, from behind the wheel of his Dodge Challenger, is involved in a relentless manhunt throughout the City by the Bay.
+Driver San Francisco is the return of the popular action driving video game series. With its timeless atmosphere, unique car handling and revitalized gameplay, this game offers a free-roaming, classic car chase experience.
+
+- Rediscover the cinematic driving sensations of Driver with its high speed pursuits in dense traffic
+- Uncover a thrilling storyline in which revenge fuels Tannerâs relentless manhunt for Jericho
+- Drive across 5 different neighborhoods and along iconic locations throughout San Francisco
+- Challenge yourself with 10 types of missions ranging from a race against the clock to Survivor mode
+- In Free Ride mode, use your GPS to locate new challenges and take on 30 unique âdareâ missions
+
+Certain apps allow you to purchase virtual items within the app and may contain third party advertisements that may redirect you to a third party site.', 18.8099999999999987, '2014-01-15', 'APLICACION', 16, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (23, 'Instagram', '2015-01-04', 'Over 300 million users love Instagram!
+Its a simple way to capture and share the worlds moments on your Android. Customize your photos and videos with one of several gorgeous and custom built filter effects. Transform everyday moments into works of art youll want to share with friends and family.
+Share your photos and videos with friends and followers in a photo feed, or send posts directly to your friends.
+Follow what your friends post with the click of a single button. Every time you open up Instagram, youll see new photos and videos from your closest friends, and creative people from around the world.
+Features.', 0, '2014-02-02', 'APLICACION', 1024, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (27, 'Git Pocket Guide', '2015-01-07', 'This pocket guide is the perfect on-the-job companion to Git, the distributed version control system. It provides a compact, readable introduction to Git for new users, as well as a reference to common commands and procedures for those of you with Git experience.
+Written for Git version 1.8.2, this handy task-oriented guide is organized around the basic version control functions you need, such as making commits, fixing mistakes, merging, and searching history.
+
+ Examine the state of your project at earlier points in time
+ Learn the basics of creating and making changes to a repository
+ Create branches so many people can work on a project simultaneously
+ Merge branches and reconcile the changes among them
+ Clone an existing repository and share changes with push/pull commands
+ Examine and change your repositoryâs commit history
+ Access remote repositories, using different network protocols
+ Get recipes for accomplishing a variety of common tasks', 11.9900000000000002, '2013-06-25', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (37, 'Arde el cielo', '2015-01-08', ' Arde el cielo es un disco de la banda mexicana de rock Maná. Fue lanzado al mercado el 29 de abril de 2008. Fue grabado en vivo en la gira mundial Amar es combatir que fue presenciada por más de dos millones de personas en América y Europa. El grupo escogió para la grabación del álbum dos de sus cuatro actuaciones en el Coliseo de Puerto Rico el 30 y 31 de marzo de 2007.
+El álbum contiene doce temas en directo y dos temas inéditos grabados en estudio. El primero de estos temas inéditos es «Si no te hubieras ido», una
+canción de Marco Antonio SolÃs ya versionada por otros artistas, pero en la que Maná ha sabido poner su peculiar sello. El segundo tema inédito del CD es «Arde el cielo» un tema compuesto y producido por Fernando Olvera y Alex González. Ambos temas tuvieron éxito en 2008.', 8.49000000000000021, '2008-04-29', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (39, 'Live From Paris', '2015-01-08', 'En vivo desde ParÃs o Live from ParÃsâen paÃses de habla inglesaâ es un álbum en vivo y vÃdeo de la cantautora colombiana Shakira, publicado inicialmente en diciembre de 2011 a través de la compañÃa discográfica Sony Music. Fue filmado en el Palais Omnisports de Paris-Bercy, ParÃs, Francia, durante la etapa 2011 de Sale el Sol World Tour, por Nick Wickham. Incluye las actuaciones del concierto y un CD con varias pistas en vivo, acompañado de varias fotografÃas tomadas durante los ensayos de la gira. Como parte de la promoción, Shakira se
+presentó en varias ceremonias de premios, incluyendo los Grammy Latinos y los 40 Principales en 2011.', 4.49000000000000021, '2011-12-02', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (28, 'SSH The Secure Shell The Definitive Guide', '2015-01-07', 'Daniel J. Barrett has been immersed in Internet technology since 1985. Currently working as a software engineer, Dan has also been a heavy metal singer, Unix system administrator, university lecturer, web designer, and humorist. He is the author of OReillys Linux Pocket Guide, and is the coauthor of Linux Security Cookbook, and the first edition of SSH, The Secure Shell: The Definitive Guide. He also writes monthly columns for Compute! and Keyboard Magazine, and articles for
+the OReilly Network.', 35.990000000000002, '2005-05-10', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (73, 'En el ojo de la tormenta', '2015-01-08', 'En el transcurso de un solo dÃa, el pueblo de Silverton se encuentra destruido por una arremetida sin precedentes de tornados. El pueblo entero está a la merced de los ciclones erráticos y mortales, y lo peor está todavÃa por llegar según los pronósticos de los cazadores de tormentas. La mayorÃa de las personas buscan resguardarse, mientras que otros corren hacia el vórtice, poniendo a prueba hasta dónde puede llegar un cazador de
+tormentas para lograr capturar ese momento único en la vida.
+Contado a través de los ojos y las lentes de cazadores de tormentas profesionales, amateurs en busca de emociones fuertes y ciudadanos valientes, âInto the Stormâ te lanza directamente al ojo de la tormenta donde experimentarás a la Madre Naturaleza en su furia más extrema.', 82, '2014-08-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (41, ' Mi reflejo', '2015-01-08', ' Mi Reflejo es el nombre del segundo álbum de estudio y a su vez el primer álbum en español de la cantante estadounidense Christina Aguilera. Fue lanzado al mercado por Sony Music Latin el 12 de septiembre de 2000. Incluye versiones en español de cinco canciones de su álbum debut Christina Aguilera, asà como seis nuevas canciones. Las canciones fueron traducidas y adaptadas al español por Rudy Pérez, quien también produjo el álbum.
+En Estados Unidos duro veinte semanas
+consecutivas en el puesto número uno de la lista Billboard Top Latin Albums, siendo todo un récord para Aguilera, convirtiéndola en la única cantante en tener este logro con casi medio año de éxito en toda la historia de Billboard, este récord no ha sido superado hasta la fecha en ninguna de las listas de dicha revista incluyendo Billboard Hot 100. ', 4.49000000000000021, '2000-09-12', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (81, 'The Tale of Despereaux', '2015-01-09', 'Once upon a time... in the far away kingdom of Dor... lived a brave and virtuous mouse with comically oversized ears who dreamt of becoming a knight. Banished from his home for having such lofty ambitions, Despereaux sets off on an amazing adventure with his good-hearted rat friend Roscuro, who leads him, at long last, on a very noble quest to rescue an endangered princess and save an entire kingdom from darkness. Based on the heartwarming children''s bestselling book and featuring the voice talents of an all-star cast, The Tale of Despereaux is a magical, modern fairytale that''s destined to win the hearts of young and old alike. 2008 Universal Studios. All Rights Reserved.', 63, '2008-12-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (31, 'Historia de los mundiales de fútbol', '2015-01-08', 'En ningún momento de los últimos 110 años la trayectoria de los Mundiales de Fútbol estuvo desconectada de la realidad socioeconómica de los paÃses, involucrados o no en sus disputas. Mismo antes de convertirse en el evento que, hoy, mueve miles de millones de personas y cifras financieras extraordinarias, el torneo de fútbol entre naciones que se realiza a cada cuatro años, estuvo marcado por innúmeros vuelcos del contexto polÃtico internacional, dudas y tragedias, crecimiento y evolución técnica, movilización social además de su utilización por los poderes constituidos.
+La piedra fundamental del Campeonato Mundial de Futbol realizado como evento independiente, fuera de los Juegos OlÃmpicos, se planteó ya en el momento de la fundación de la FIFA, en 1904, pero sólo se hizo efectiva después de la Primera Guerra Mundial, siendo que el primer paÃs sede (Uruguay) se habÃa definido en 1929, durante el Congreso de la entidad, realizado en Barcelona, aún en un ambiente de intensa inestabilidad geopolÃtica. ', 0, '2014-08-04', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (33, 'The Definitive Guide to Drupal 7', '2015-01-08', 'The Definitive Guide to Drupal 7 is the most comprehensive book for getting sites done using the powerful and extensible Drupal content management system. Written by a panel of expert authors, the book covers every aspect of Drupal, from planning a successful project all the way up to making a living from designing Drupal sites and to contributing to the Drupal community yourself. With this book you will:
+Follow practical approaches to solving many online communication needs with Drupal with real examples.
+Learn how to keep learning about Drupal: administration, development, theming, design, and architecture.
+Go beyond the code to engage with the Drupal community as a contributing member and to do Drupal sustainably as a business.
+The Definitive Guide to Drupal 7 was written by the following team of expert Drupal authors.', 39.990000000000002, '2011-07-19', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (30, 'Bajo la misma estrella', '2015-01-08', 'Hazel acaba de cumplir 16 años. Y tiene cáncer. A pesar de que un tratamiento ha conseguido reducir su tumor de forma casi milagrosa, es una enferma terminal. Los médicos no pueden decirle cuánto tiempo le queda; solo sabe que debe vivir pegada a un tanque de oxÃgeno y sometida a continuos tratamientos. Desde hace unas semanas, Hazel forma parte de un grupo de apoyo donde otros chicos como ella comparten sus experiencias. En realidad, ella acude más por obligación que por voluntad; ¿qué sentido tiene hablar con otras personas de lo que nadie puede cambiar? Pero su vida da un verdadero vuelco cuando conoce a Gus Waters... Os preguntaréis: ¿quién es Gus? ¿Y cómo puede cambiar una sola persona la historia de otra?', 7.99000000000000021, '2012-06-07', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (29, 'Linux Security Cookbook', '2015-01-08', 'Computer security is an ongoing process, a relentless contest between system administrators and intruders. A good administrator needs to stay one step ahead of any adversaries, which often involves a continuing process of education. If youre grounded in the basics of security, however, you wont necessarily want a complete treatise on the subject each time you pick up a book. Sometimes you want to get straight to the point. Thats exactly what the new Linux Security Cookbook does. Rather than provide a total security solution for Linux computers, the authors present a series of easy-to-follow recipes--short, focused pieces of code that administrators can use to improve security and perform common tasks securely.The
+Linux Security Cookbook includes real solutions to a wide range of targeted problems, such as sending encrypted email within Emacs, restricting access to network services at particular times of day, firewalling a webserver, preventing IP spoofing, setting up key-based SSH authentication, and much more.', 31.9899999999999984, '2003-06-02', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (32, 'Linux in a Nutshell: Edition 6', '2015-01-08', 'Everything you need to know about Linux is in this book. Written by Stephen Figgins, Ellen Siever, Robert Love, and Arnold Robbins -- people with years of active participation in the Linux community -- Linux in a Nutshell, Sixth Edition, thoroughly covers programming tools, system and network administration tools, the shell, editors, and LILO and GRUB boot loaders.
+This updated edition offers a tighter focus on Linux system essentials, as well as more coverage of new capabilities such as virtualization, wireless network management, and revision control with git. It also highlights the most important options for using the vast number of Linux commands. Youll find many helpful new tips and techniques in this reference, whether youre new to this operating system or have been using it for years.', 35.990000000000002, '2009-09-19', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (34, 'The Big Reveal', '2015-01-08', ' I don''t care what the weather man says,
+When the weatherman says it''s raining,
+You''ll never hear me complaining,
+I''m certain the sun will shine,
+I don''t care how the weather vane points,
+When the weather vane points to gloomy,
+It''s gotta be sunny to me, when your eyes look into mine; oh
+Jeepers Creepers! Where''d ya get those peepers? Jeepers Creepers! Where''d ya get those eyes?
+Gosh all git up! How''d they get so lit up?
+Gosh all git up! How''d they get that size?
+Golly gee! When you turn those heaters on,
+Woe is me!
+Got to get my cheaters on, Jeepers Creepers!
+Where''d ya get those peepers? On! Those weepers!
+How they hypnotize!
+Where''d ya get those eyes?
+Writer(s): Harry Warren, Johnny Mercer', 2.7200000000000002, '2014-06-01', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (35, 'Gitolite Essentials', '2015-01-08', 'The book is written to suit an easy-reading style, using typical problems in access control to illustrate the need for each Gitolite feature explained. This book is for system administrators or development managers who need to keep a lid on Git-based development workflows. Basic knowledge of Git as well as of the Unix shell is helpful.', 17.9899999999999984, '2014-04-11', 'LIBRO', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (38, 'Un dÃa normal', '2015-01-08', 'Un dÃa normal es el nombre del segundo álbum de estudio como solista del cantautor colombiano Juanes. Fue lanzado al mercado por la empresa discográfica Universal Music Latino el 21 de mayo de 2002. El álbum fue producido por Gustavo Santaolalla, Melissa Mattey, Anibal Kerpel y por el propio Juanes. El álbum ha vendido 2 millones de copias. Descripción proporcionada por Wikipedia con la licencia Creative Commons Attribution CC-BY-SA 4.0', 7.99000000000000021, '2002-01-01', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (36, 'Drama Y Luz Edición Deluxe', '2015-01-08', 'Disco completo e Mana: Drama Y Luz Edición Deluxe', 13.9900000000000002, '2011-11-15', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (40, 'Shakira Oral Fixation Tour (Live)', '2015-01-08', 'Shakira Oral Fixation Tour (Live)', 4.13999999999999968, '2014-03-07', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (74, 'The Lego Movie', '2015-01-08', 'The first-ever full-length theatrical LEGO movie follows Emmet, an ordinary, rules-following, perfectly average LEGO minifigure who is mistakenly identified as the most extraordinary person and the key to saving the world. He is drafted into a fellowship of strangers on an epic quest to stop an evil tyrant, a journey for which Emmet is hopelessly and hilariously underprepared. ', 63, '2014-02-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (44, 'Geometry Dash', '2015-01-08', '
+Jump and fly your way through danger in this rhythm-based action platformer!
+
+"Frustratingly wonderful" - Kotaku
+
+"Geometry Dash Is a Super-Hard, Super-Fun, Musical Platformer"
+- Playboard.me
+
+"Geometry Dash provides all of the challenge expected from an âimpossibleâ game while also making it more accessible to newcomers."
+- 148Apps
+
+"Geometry Dash is a fast-paced platformer that will leave you screaming in frustration, but you''ll keep coming back for more."
+- AppAdvice
+
+"Geometry Dash isn''t your typical rhythm-based game, it actually requires skill on top of good timing."
+- DroidGamers
+
+Prepare for a near impossible challenge in the world of Geometry Dash. Push your skills to the limit as you jump, fly and flip your way through dangerous passages and spiky obstacles.
+
+Simple one touch game play with lots of levels that will keep you entertained for hours!
+
+Game Features
+
+⢠Rhythm-based Action Platforming!
+⢠Lots of levels with unique soundtracks!
+⢠Build and share your own levels using the level editor!
+⢠Unlock new icons and colors to customize your character!
+⢠Fly rockets, flip gravity and much more!
+⢠Use practice mode to sharpen your skills!
+⢠Lots of achievements and rewards!
+⢠No in-app purchases!
+⢠Challenge yourself with the near impossible!
+
+Contact: in...@ro...
+', 11.1300000000000008, '2014-12-14', 'APLICACION', 47, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (42, 'Stripped', '2015-01-08', ' Stripped es el tercer álbum de estudio de la cantante estadounidense Christina Aguilera, este álbum contiene géneros pop y rhythm and blues. Fue lanzado por la compañÃa discográfica RCA Records el 26 de octubre de 2002, y fue muy exitoso en Europa y otras partes del mundo, dándole a Christina más éxitos y reconocimientos.
+Tras el éxito comercial de su álbum anterior en 1999, la cantante se quiso despojar de la fama de estrella pop adolescente que la llevó a ser conocida en todo el mundo. Por lo tanto, decidió cambiar a un
+pop más maduro y representar una imagen más sensual y atrevida. Asà empezaron las grabaciones de su segunda producción discográfica, que más tarde se convertirÃa en una de las más emblemáticas de la cantante, el álbum logró vender más de 13 millones de copias en todo el mundo.
+Para su producción, Christina trabajó principalmente con los productores Linda Perry y Scott Storch. En varias ocasiones, la cantante señaló que la creación de Stripped estaba relacionada con mostrarse «real» y «transparente». ', 4.49000000000000021, '2002-10-29', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (54, 'Stellarium Mobile Planetario', '2015-01-08', 'Stellarium es un planetario móvil con todas las funciones de su teléfono. Se muestra un mapa del cielo nocturno realista en 3D, al igual que lo que se ve a simple vista, binoculares o un telescopio.
+
+El control del sensor también le permitirá identificar lo que se ve en el cielo en tan sólo unos segundos, con sólo apuntar el teléfono en él!
+
+Esta aplicación astronomÃa galardonado por fin está disponible en Android con:
+
+* Una muy intuitiva interfaz de pantalla táctil
+* La integración de posicionamiento GPS
+* El control de la dirección de la vista utilizando los acelerómetros dispositivo
+* Un catálogo de más de 600.000 estrellas muestra como un mapa del cielo con zoom tiempo real,
+* Un catálogo de muchas nebulosas y las galaxias, con fotos de algunos de ellos
+* Asterismos e ilustraciones de las constelaciones del cielo para cultivos varios
+* VÃa Láctea realista
+* Paisaje realista y ambiente con la salida del sol, puesta de sol y la simulación de la contaminación lumÃnica
+* Representación 3D de los planetas del sistema solar más importantes y sus satélites
+* Modo nocturno (rojo)
+
+
+Stellarium móvil es creada por dos de los desarrolladores originales de Stellarium, la versión de escritorio de la astronomÃa y el famoso software planetario.', 15.6600000000000001, '2014-09-28', 'APLICACION', 25, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (61, 'Dinosaur Park 3 - Dig Jurassic', '2015-01-08', 'Dinosaur Park â Sea Monsters is a unique fossil exploration game. It is specially designed for kids who are fans of fossils, dinosaurs or sea monsters.
+
+Sea Monsters - Prehistoric Creatures of the Deep, is an amazing plunge into the ocean tens of millions of years ago, a merciless realm ruled by the most ferocious animals ever to stalk the earth.
+
+Let''s travel back in time, explore the deep sea and bring these creatures to life. This game will allow us to explore the prehistoric waters and see the real monster of the deep that existed long ago in a fun and interactive manner.
+
+In this game, users can assemble 18 kinds of sea monsters! By assembling the fossils, you will bring them to life! Come to Dinosaur Park! Let''s excavate the fossils to assemble them. SEE what they actually looked like!
+
+KEY FEATURES
+- 18 kinds of sea monsters
+- Fun sea monsters'' sounds and animations!
+- Fantastic original artwork!
+- Kid-friendly interface!', 12.1699999999999999, '2014-10-08', 'APLICACION', 32, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (75, ' Mr. Peabody and Sherman', '2015-01-08', 'Unleash the fun with this hilarious comedy for all ages from the creators of THE CROODS and HOW TO TRAIN YOUR DRAGON! Mr. Peabody (Ty Burrell) is an inventor, scientist and genius who just happens to be a dog. With his son Sherman, he will embark on the most extraordinary adventure imaginable as they race against time to repair history and save the future. ', 110, '2014-03-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (82, 'Matilda', '2015-01-09', 'Based on the book Matilda, by British children''s author Roald Dahl, this film moves the setting from the U.K. to the U.S.; otherwise it follows the original closely. Matilda Wormwood (Mara Wilson) is an extremely curious and intelligent little girl who is very different from her low-brow, mainstream parents (Danny DeVito and real-life wife Rhea Perlman), who quite cruelly ignore her. As she grows older, she begins to discover that she has telekinetic powers. Not until a teacher shows her kindness for the first time does she realize that she can use those powers to do something about her sufferings and help her friends as well. Villains from the awful Miss Trunchbull (Pam Ferris), headmistress of her miserable school Crunchem Hall, to her parents and older brother begin to feel her ire. Look for Paul Reubens (aka Pee Wee Herman) in a small part as an FBI agent investigating Matilda''s shady father. ', 63, '1996-01-01', 'PELICULA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (43, 'Monkey Business', '2015-01-08', 'Monkey Business', 8.99000000000000021, '2005-05-30', 'MUSICA', 0, NULL);
+INSERT INTO content (con_id, con_name, con_update, con_description, con_cost, con_release_date, con_type, con_size, fk_promotion) VALUES (45, 'MONOPOLY', '2015-01-08', '¡Es la hora de la "Salida"! Toma el tren en la Estación de Goya. Compra el Paseo del Prado. Ve directo a la cárcel. vende y negocia con propiedades famosas de MONOPOLY y observa cómo el juego cobra vida con animaciones y juego sencillo. ¡DesafÃa a tus amigos y personaliza las reglas del juego!
+
+FORTUNA FÃCIL DE GESTIONAR
+Toca la pantalla para gestionar tus propiedades, desde la Plaza de España y la CompañÃa de Aguas al Paseo de la Castellana. Construir hoteles o probar "Suerte" es fácil e intuitivo.
+
+ELIGE TU NIVEL Y ASPECTO
+Juega en 3 niveles de dificultad distintos y guarda la partida que estás jugando. También puedes personalizar el número de jugadores, las reglas e incluso el entorno de juego.
+
+¡Disfruta de MONOPOLY según la tradición del admirado superventas de los juegos de mesa!
+¡Sé el primero en enterarte! Recibe información sobre las mejores ofertas de EA, actualizaciones de juegos, trucos y mucho más...
+VISÃTANOS: eamobile.com/android
+SÃGUENOS: twitter.com/eamobile
+TE GUSTAMOS: facebook.com/eamobile
+MÃRANOS: youtube.com/eamobilegames
+
+¡No te pierdas otros estupendos juegos de EA como Los Sims Gratuito, Need for Speed Most Wanted y Theme Park.
+
+Término...
[truncated message content] |
|
From: Eduardo G. <my4...@us...> - 2015-01-10 13:06:49
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via 901fa9715984e93916571b26f1819c31cf7ff6b3 (commit)
from db542bcff3a7b0e50e29a407174b4de4c146a31b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit 901fa9715984e93916571b26f1819c31cf7ff6b3
Author: Eduardo <epp...@gm...>
Date: Sat Jan 10 08:36:14 2015 -0430
Consultas SQL GlobalStore html
diff --git a/docs/Entrega III/ConsultasSQLGlobalStore.txt b/docs/Entrega III/ConsultasSQLGlobalStore.txt
new file mode 100644
index 0000000..78d4d52
--- /dev/null
+++ b/docs/Entrega III/ConsultasSQLGlobalStore.txt
@@ -0,0 +1,3017 @@
+/*Consultas SQL.
+/* Etiqueta superior indica el archivo donde esta ubicado el contenido ej: app.class.php
+/* La definicion del case identifica el proceso que se esta ejecutando.
+/* Las variables externas a sql se identifican por tener $ al comienzo de sus nombre
+
+
+/*app.class.php----------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT con_id as id, con_name as name, con_update as update, con_description as des, con_cost as cost, con_release_date as reld, app_version as ver, con_size as size, fk_developer as dev, fk_license as lic
+ FROM application, content
+ WHERE con_id=".$_GET["id"]." and con_id=fk_content";
+
+
+ case "getCat":
+
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category, content_category
+ WHERE fk_content=".$_GET["id"]." and fk_category=cat_id";
+
+
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category
+ WHERE cat_id not in (
+ SELECT fk_category
+ FROM content_category
+ WHERE fk_content=".$_GET["id"]."
+ ) and cat_cont_type='".CONT_APP."' ";
+
+
+ case "getVer":
+
+ $sql="
+ SELECT ver_id as value, (os_name || ' - ' || ver_name) as name
+ FROM operating_system, version, app_ver
+ WHERE fk_application=".$_GET["id"]." and fk_version=ver_id and fk_operating_system=os_id
+ order by name";
+
+
+ $sql="
+ SELECT ver_id as value, (os_name || ' - ' || ver_name) as name
+ FROM operating_system, version
+ WHERE ver_id not in (
+ SELECT fk_version
+ FROM app_ver
+ WHERE fk_application=".$_GET["id"]."
+ ) and fk_operating_system=os_id
+ order by name";
+
+ case "addCat":
+
+ $sql="
+ INSERT INTO content_category (
+ fk_category,
+ fk_content
+ ) VALUES (
+ ".$_GET["catid"].",
+ ".$_GET["id"]."
+ )";
+
+
+ case "delCat":
+
+ $sql="
+ DELETE FROM content_category
+ WHERE fk_category=".$_GET["catid"]." and fk_content=".$_GET["id"]."
+ ";
+
+ case "addVer":
+
+ $sql="
+ insert into app_ver (
+ fk_application,
+ fk_version
+ ) values (
+ ";
+ $ids=explode(",",$_GET["idver"]);
+ while($id=current($ids)){
+ $sql.="(".$_GET["id"].",".$id.")";
+ if(next($ids)){
+ $sql.=", ";
+ }
+ }
+
+
+ case "delVer":
+
+ $sql="
+ delete from app_ver
+ where fk_application=".$_GET["id"]." and fk_version in (".$_GET["idver"].")";
+
+ case 'editRow':
+
+ $sql="
+ UPDATE content
+ SET con_name='".$_POST["conName"]."',con_update=CURRENT_DATE,con_description='".pg_escape_string($_POST["conDes"])."',con_cost=".$_POST["conCost"].",con_release_date='".$_POST["conRlsD"]."'
+ ".($_POST["conSize"]!=""?",con_size=".$_POST["conSize"]:"")."
+ WHERE con_id=".$_POST["conID"];
+
+
+ $sql1="
+ UPDATE application
+ SET app_version='".$_POST["appVer"]."',fk_developer=".$_POST["appDev"].",fk_license=".$_POST["appLic"]."
+ WHERE fk_content=".$_POST["conID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO CONTENT (
+ Con_Name,
+ Con_Update,
+ Con_Description,
+ Con_Cost,
+ Con_Release_Date,
+ Con_Type,
+ Con_Size
+ ) values (
+ '".$_POST["conName"]."',
+ CURRENT_DATE,
+ '".pg_escape_string($_POST["conDes"])."',
+ ".$_POST["conCost"].",
+ '".$_POST["conRlsD"]."',
+ '".CONT_APP."',
+ ".$_POST["conSize"]."
+ )
+ RETURNING Con_ID as id";
+
+ $sql1="
+ INSERT INTO APPLICATION (
+ App_Version,
+ FK_Content,
+ FK_Developer,
+ FK_License
+ ) values (
+ '".$_POST["appVer"]."',
+ ".$line["id"].",
+ ".$_POST["appDev"].",
+ ".$_POST["appLic"]."
+ )";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM APPLICATION
+ WHERE FK_Content=" .$_GET["id"];
+
+
+ $sql1="
+ DELETE FROM CONTENT
+ WHERE Con_id=" .$_GET["id"];
+
+
+ private static function updateCont($id){
+ $sql="
+ UPDATE CONTENT
+ SET Con_Update=CURRENT_DATE
+ WHERE con_id=".$id."
+ ";
+
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"con.con_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"con.con_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"con.con_cost",
+ "as"=>"Costo",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"dev.dev_name",
+ "as"=>"Dasarrollador",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"string_agg(cat.cat_name, ', ')",
+ "as"=>"Categorias",
+ "search"=>true,
+ "num"=>false,
+ "agg"=>"cat.cat_name")
+ );
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"content",
+ "as"=>"con"),
+ array(
+ "left_j" => true,
+ "ct"=>"application",
+ "as"=>"app",
+ "on"=>"con.con_id=app.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"developer",
+ "as"=>"dev",
+ "on"=>"app.fk_developer=dev.dev_id"),
+ array(
+ "left_j" => true,
+ "ct"=>"content_category",
+ "as"=>"cc",
+ "on"=>"con.con_id=cc.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"category",
+ "as"=>"cat",
+ "on"=>"cc.fk_category=cat.cat_id")
+ );
+ DTServer::process($columms,$tables,"ID","con.con_type='".CONT_APP."'",true,"con.con_id, con.con_name, con.con_cost, dev.dev_name");
+
+/*author.class.php--------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT aut_id as id, aut_name as name, aut_review as rev
+ FROM AUTHOR
+ WHERE aut_id=".$_GET["id"];
+
+ case 'editRow':
+ $sql="
+ UPDATE author
+ SET aut_name='".$_POST["autName"]."',aut_review='".pg_escape_string($_POST["autRev"])."'
+ WHERE aut_id=".$_POST["autID"];
+
+ case 'newRow':
+ $sql="
+ INSERT INTO author (
+ aut_name,
+ aut_review
+ ) values (
+ '".$_POST["autName"]."',
+ '".pg_escape_string($_POST["autRev"])."'
+ )
+ RETURNING aut_ID as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM author
+ WHERE aut_ID=" .$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"aut_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"aut_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"AUTHOR",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*bank.class.php------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT ban_id as id, ban_name as name
+ FROM bank
+ WHERE ban_id=".$_GET["id"];
+
+
+ case 'editRow':
+
+ $sql="
+ UPDATE bank
+ SET ban_name='".$_POST["bankName"]."'
+ WHERE ban_id=".$_POST["bankID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO bank (
+ ban_name
+ ) values (
+ '".$_POST["bankName"]."'
+ )
+ RETURNING ban_ID as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM bank
+ WHERE ban_ID=".$_GET["id"];
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"ban_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"ban_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"bank",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*boo.class.php------------------------------------------------------------------------------------------------------------------------------------------------*/
+ case 'getRow':
+ $sql="
+ SELECT con_id as id, con_name as name, con_update as update, con_description as des, con_cost as cost, con_release_date as reld, con_size as size, fk_editorial_record as edi, boo_number_page as np, boo_isbn as isbn
+ FROM book, content
+ WHERE con_id=".$_GET["id"]." and con_id=fk_content";
+
+ case "getAut":
+
+ $sql="
+ SELECT aut_id as value, aut_name as name
+ FROM author, boo_aut
+ WHERE fk_book=".$_GET["id"]." and fk_author=aut_id";
+
+ $sql="
+ SELECT aut_id as value, aut_name as name
+ FROM author
+ WHERE aut_id not in (
+ SELECT fk_author
+ FROM boo_aut
+ WHERE fk_book=".$_GET["id"]."
+ )
+
+ case "getCat":
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category, content_category
+ WHERE fk_content=".$_GET["id"]." and fk_category=cat_id";
+
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category
+ WHERE cat_id not in (
+ SELECT fk_category
+ FROM content_category
+ WHERE fk_content=".$_GET["id"]."
+ ) and cat_cont_type='".CONT_BOOK."'";
+
+ case "addCat":
+ $sql="
+ INSERT INTO content_category (
+ fk_category,
+ fk_content
+ ) VALUES (
+ ".$_GET["catid"].",
+ ".$_GET["id"]."
+ )
+
+ case "addAut":
+ $sql="
+ INSERT INTO boo_aut (
+ fk_author,
+ fk_book
+ ) VALUES (
+ ".$_GET["autid"].",
+ ".$_GET["id"]."
+ )
+ ";
+
+ case "delCat":
+ $sql="
+ DELETE FROM content_category
+ WHERE fk_category=".$_GET["catid"]." and fk_content=".$_GET["id"]."
+
+ case "delAut":
+ $sql="
+ DELETE FROM boo_aut
+ WHERE fk_book=".$_GET["id"]." and fk_author=".$_GET["autid"]."
+
+
+
+ case 'editRow':
+ $sql="
+ UPDATE content
+ SET con_name='".$_POST["conName"]."',con_update=CURRENT_DATE,con_description='".pg_escape_string($_POST["conDes"])."',con_cost=".$_POST["conCost"].",con_release_date='".$_POST["conRlsD"]."'
+ ".($_POST["conSize"]!=""?",con_size=".$_POST["conSize"]:"")."
+ WHERE con_id=".$_POST["conID"];
+
+ $sql1="
+ UPDATE book
+ SET boo_isbn='".$_POST["bookIsbn"]."',boo_number_page=".$_POST["bookNP"].", fk_editorial_record=".$_POST["bookEdi"]."
+ WHERE fk_content=".$_POST["conID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO CONTENT (
+ Con_Name,
+ Con_Update,
+ Con_Description,
+ Con_Cost,
+ Con_Release_Date,
+ Con_Type,
+ Con_Size
+ ) values (
+ '".$_POST["conName"]."',
+ CURRENT_DATE,
+ '".pg_escape_string($_POST["conDes"])."',
+ ".$_POST["conCost"].",
+ '".$_POST["conRlsD"]."',
+ '".CONT_BOOK."',
+ ".$_POST["conSize"]."
+ )
+ RETURNING Con_ID as id";
+
+ $sql1="
+ INSERT INTO book (
+ boo_isbn,
+ FK_Content,
+ boo_number_page,
+ fk_editorial_record
+ ) values (
+ '".$_POST["bookIsbn"]."',
+ ".$line["id"].",
+ ".$_POST["bookNP"].",
+ ".$_POST["bookEdi"]."
+ )
+
+ case 'delRow':
+ $sql="
+ DELETE FROM book
+ WHERE FK_Content=" .$_GET["id"];
+ $sql1="
+ DELETE FROM CONTENT
+ WHERE Con_id=" .$_GET["id"];
+
+ private static function updateCont($id){
+ $sql="
+ UPDATE CONTENT
+ SET Con_Update=CURRENT_DATE
+ WHERE con_id=".$id."
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"con.con_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"con.con_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"con.con_cost",
+ "as"=>"Costo",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"string_agg(aut.aut_name, ', ')",
+ "as"=>"Autor",
+ "search"=>true,
+ "num"=>false,
+ "agg"=>"aut.aut_name"),
+ array(
+ "ct"=>"edi.er_name",
+ "as"=>"Editorial",
+ "search"=>true,
+ "num"=>true)
+ );
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"content",
+ "as"=>"con"),
+ array(
+ "left_j" => true,
+ "ct"=>"book",
+ "as"=>"boo",
+ "on"=>"con.con_id=boo.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"editorial_record",
+ "as"=>"edi",
+ "on"=>"boo.fk_editorial_record=edi.er_id"),
+ array(
+ "left_j" => true,
+ "ct"=>"boo_aut",
+ "as"=>"ba",
+ "on"=>"ba.fk_book=boo.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"author",
+ "as"=>"aut",
+ "on"=>"ba.fk_author=aut.aut_id")
+ );
+ DTServer::process($columms,$tables,"ID","con.con_type='".CONT_BOOK."'",true,"con.con_id, con.con_name, con.con_cost, edi.er_name");
+
+/*category.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT cat_id as id, cat_name as name, cat_cont_type as tipe
+ FROM CATEGORY
+ WHERE cat_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE CATEGORY
+ SET cat_name='".$_POST["catName"]."',cat_cont_type='".$_POST["catTipe"]."'
+ WHERE cat_id=".$_POST["catID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO CATEGORY (
+ cat_name,
+ cat_cont_type
+ ) values (
+ '".$_POST["catName"]."',
+ '".$_POST["catTipe"]."'
+ )
+ RETURNING Cat_ID as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM CATEGORY
+ WHERE Cat_ID=" .$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"CAT_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"CAT_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"CAT_Cont_Type",
+ "as"=>"Tipo",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"CATEGORY",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+/*charac.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT cha_id as id, cha_name as name, cha_description as des
+ FROM characteristic
+ WHERE cha_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE characteristic
+ SET cha_name='".$_POST["chaName"]."', cha_description='".pg_escape_string($_POST["chaDes"])."'
+ WHERE cha_id=".$_POST["chaID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO characteristic (
+ cha_name,
+ cha_description
+ ) values (
+ '".$_POST["chaName"]."',
+ '".pg_escape_string($_POST["chaDes"])."'
+ )
+ RETURNING cha_ID as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM characteristic
+ WHERE cha_ID=" .$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"Cha_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"Cha_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"cha_description",
+ "as"=>"Descripción",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"characteristic",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*compra-class-php--------------------------------------------------------------------------------------------------------------------------------------------------*/
+ case 'getShop':{
+ $src="../Images/del.png";
+ $columms=array(
+ array(
+ "ct"=>"Con_Name",
+ "as"=>"Contenido",
+ "search"=>false),
+ array(
+ "ct"=>"Con_Cost",
+ "as"=>"Precio",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"Pro_Name",
+ "as"=>"Promocion",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"('<button class=\"pure-control-group pure-button pure-button-primary\" type=\"button\" onclick=\"javascript:enableItem(' || Con_iD || ')\">Quitar</button>')",
+ "as"=>"Eliminar",
+ "search"=>false)
+ );
+
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"CONTENT",
+ "as"=>"con"),
+ array(
+ "left_j"=> TRUE,
+ "ct"=>"PROMOTION",
+ "as"=>"promo",
+ "on"=> "con.FK_promotion=Promo.Pro_Id" )
+ );
+ $inshop= implode(",", Core::getShop());
+ ProtocolController::$send=false;
+
+ DTServer::process($columms,$tables,"","Con_id IN (".$inshop.")",false);
+
+
+
+ case 'getMypurchase':
+ $sql="
+ select Con_Name as name, Con_type as type
+ from Purchase,Invoice,Content
+ where Inv_Id=Fk_Invoice and FK_Content=Con_id and FK_Sys_User='".Core::$user->getNick()."'
+
+
+ case 'getItemRate':
+ $sql="
+ select Con_id
+ from Purchase,Invoice,Content
+ where Inv_Id=Fk_Invoice and FK_Content=Con_id and FK_Sys_User='".Core::$user->getNick()."'
+
+ $sql="
+ Select Con_Name as name, con_id as id
+ From Content
+ where Con_id in (".$item.")
+ except
+ select Con_Name, Con_id
+ from Content,Rate
+ where FK_Content in (".$item.") and FK_Sys_User = '".Core::$user->getNick()."' and FK_Content=Con_id
+
+
+ case 'add-rate':
+ $sql="
+ insert into Rate (rat_date, rat_value, fk_sys_user, fk_content) values ((SELECT date_trunc('SECOND', TIMESTAMP WITHOUT TIME ZONE 'now')),'".$_GET["value"]."','".Core::$user->getNick()."',".$_GET["id"].")
+
+
+ case 'is-card-active':
+ $sql="
+ select cc_id as tarjeta
+ from credit_card
+ where CC_Active=true and Fk_Sys_User='".Core::$user->getNick()."'
+
+/*ctype.class.php----------------------------------------------------------------------------------------------------------------------------------------*/
+ case 'getRow':
+ $sql="
+ SELECT ct_id as id, ct_name as name
+ FROM card_type
+ WHERE ct_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE card_type
+ SET ct_name='".$_POST["ctypeName"]."'
+ WHERE ct_id=".$_POST["ctypeID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO card_type (
+ ct_name
+ ) values (
+ '".$_POST["ctypeName"]."'
+ )
+ RETURNING ct_ID as id";
+
+
+ case 'delRow':
+ $sql="
+ DELETE FROM card_type
+ WHERE ct_ID=".$_GET["id"];
+
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"ct_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"ct_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"card_type",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*developers.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Developers::$post_vars[11]]."',
+ 'ESTADO',
+ NULL,
+ ".$contry_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Developers::$post_vars[13]]."',
+ 'CIUDAD',
+ NULL,
+ ".$est_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Developers::$post_vars[15]]."',
+ 'URBANIZACION',
+ NULL,
+ ".$cty_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Developers::$post_vars[17]]."',
+ 'URBANIZACION',
+ '".$_POST[Developers::$post_vars[18]]."',
+ ".$ub_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Developers::$post_vars[19]]."',
+ 'URBANIZACION',
+ NULL,
+ ".$av_id."
+ ) RETURNING pla_id as new_id";
+
+
+ case 'getRow':
+
+ $info="";
+ $sql="
+ SELECT dev_id as id, dev_name as name, dev_web_site as web, dev_company as corp, dev_email as email, fk_place
+ FROM DEVELOPER
+ WHERE dev_id=".$_GET["id"];
+
+ $sql="
+ SELECT *
+ FROM PLACE
+ WHERE Pla_ID=".$id."
+
+ case "newPlace":
+ $sql="
+ SELECT *
+ FROM PLACE
+ WHERE Pla_ID=".$id."
+ ";
+
+
+ case 'editRow':
+ $sql="
+ UPDATE DEVELOPER
+ SET dev_name='".$_POST["devName"]."',dev_email='".$_POST["devEmail"]."',dev_web_site='".$_POST["devWeb"]."',fk_place='".$_POST["devPlaID"]."',dev_company=".(isset($_POST["devCorp"])?"true":"false")."
+ WHERE dev_id=".$_POST["devID"];
+
+ case 'newRow':
+ $sql="
+ INSERT INTO DEVELOPER (
+ Dev_name,
+ Dev_Web_Site,
+ Dev_Company,
+ Dev_Email,
+ FK_place
+ ) values (
+ '".$_POST["devName"]."',
+ '".$_POST["devWeb"]."',
+ ".(isset($_POST["devCorp"])?"true":"false").",
+ '".$_POST["devEmail"]."',
+ ".$_POST["devPlaID"]."
+ )
+ RETURNING Dev_ID as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM DEVELOPER
+ WHERE Dev_ID=".$_GET["id"];
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"Dev_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"Dev_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"(CASE WHEN dev_company=true THEN 'Compañia' WHEN dev_company=false THEN 'Perticular' END)",
+ "as"=>"Corp",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"dev_web_site",
+ "as"=>"Web",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"dev_email",
+ "as"=>"Email",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"DEVELOPER",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*edi.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+
+ case 'getRow':
+
+ $sql="
+ SELECT er_id as id, er_name as name, (case when er_type then 'edi' else 'dis' end) as tipe
+ FROM editorial_record
+ WHERE er_id=".$_GET["id"];
+
+
+ case 'editRow':
+
+ $sql="
+ UPDATE editorial_record
+ SET er_name='".$_POST["ediName"]."',er_type=".($_POST["ediTipe"]=="edi"?"true":"false")."
+ WHERE er_id=".$_POST["ediID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO editorial_record (
+ er_name,
+ er_type
+ ) values (
+ '".$_POST["ediName"]."',
+ '".($_POST["ediTipe"]=="edi"?"true":"false")."'
+ )
+ RETURNING er_ID as id";
+ break;
+
+ case 'delRow':
+ $sql="
+ DELETE FROM editorial_record
+ WHERE er_ID=".$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"er_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"er_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"(case when er_type then 'Editorial' else 'Disquera' end)",
+ "as"=>"Tipo",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"editorial_record",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*event.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"eve_date",
+ "as"=>"Fecha",
+ "search"=>false),
+ array(
+ "ct"=>"(CASE
+ WHEN ei_level=0 THEN 'DEBUG'
+ WHEN ei_level=1 THEN 'INFO'
+ WHEN ei_level=2 THEN 'ERROR'
+ WHEN ei_level=3 THEN 'ALERTA'
+ WHEN ei_level=4 THEN 'CRITICO'
+ END)",
+ "as"=>"Nivel",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"sm_name",
+ "as"=>"Modulo",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"(ei_description || ' ' || eve_message)",
+ "as"=>"Mensaje",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"SYS_MODULE",
+ "as"=>false),
+ array(
+ "ct"=>"EVENT_INFO",
+ "as"=>false),
+ array(
+ "ct"=>"EVENT",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID","fk_sys_module=sm_id and fk_event_info=ei_id",false);
+
+/*eventinfo.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case "getRow":
+ $sql="
+ SELECT ei_id as id, ei_level as level, ei_description as des, fk_sys_module as module, ei_table_key as table_key
+ FROM event_info
+ WHERE ei_id=".$_GET["id"];
+
+ case 'editRow':
+ $sql="
+ UPDATE EVENT_INFO
+ SET ei_level='".$_POST["ei_level"]."',ei_description='".pg_escape_string($_POST["ei_des"])."',ei_table_key='".$_POST["ei_table_key"]."',fk_sys_module='".$_POST["ei_module"]."'
+ WHERE ei_id=".$_POST["ei_id"];
+
+ case 'newRow':
+ $sql="
+ INSERT INTO EVENT_INFO (
+ EI_ID,
+ EI_level,
+ EI_Description,
+ EI_Table_Key,
+ FK_Sys_Module
+ ) values (
+ ".$_POST["ei_id"].",
+ ".$_POST["ei_level"].",
+ ".($_POST["ei_des"]!=""?"'".pg_escape_string($_POST["ei_des"])."'":"NULL").",
+ ".($_POST["ei_table_key"]!=""?"'".$_POST["ei_table_key"]."'":"NULL").",
+ ".($_POST["ei_module"]!=""?$_POST["ei_module"]:"NULL")."
+ )";
+
+
+ case "delRow":
+ $sql="
+ DELETE FROM EVENT_INFO
+ WHERE EI_ID=".$_GET["id"];
+
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"ei_id",
+ "as"=>"ID",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"(CASE
+ WHEN ei_level=0 THEN 'DEBUG'
+ WHEN ei_level=1 THEN 'INFO'
+ WHEN ei_level=2 THEN 'ERROR'
+ WHEN ei_level=3 THEN 'ALERTA'
+ WHEN ei_level=4 THEN 'CRITICO'
+ END)",
+ "as"=>"Nivel",
+ "search"=>false),
+ array(
+ "ct"=>"sm_name",
+ "as"=>"Modulo",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"ei_description",
+ "as"=>"Descripcion",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"ei_table_key",
+ "as"=>"Tabla/Key",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"SYS_MODULE",
+ "as"=>false),
+ array(
+ "ct"=>"EVENT_INFO",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID","fk_sys_module=sm_id");
+
+/*invoice.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getInvoice':
+ $sql="
+ SELECT Max(Inv_ID)+1 as num, (SELECT date_trunc('SECOND', TIMESTAMP WITHOUT TIME ZONE 'now' )) as fecha
+ FROM invoice
+
+
+ case 'getInvoice-cont':
+ $columms=array(
+ array(
+ "ct"=>"Con_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"Con_Name",
+ "as"=>"Contenido",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"Con_Cost",
+ "as"=>"Precio",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"Pro_Name",
+ "as"=>"Promocion",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"Pro_Discount",
+ "as"=>"Descuento",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"con_cost-(con_cost*Pro_Discount)/100",
+ "as"=>"Total",
+ "search"=>false)
+ );
+
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"CONTENT",
+ "as"=>"con"),
+ array(
+ "left_j"=> TRUE,
+ "ct"=>"PROMOTION",
+ "as"=>"promo",
+ "on"=> "con.FK_promotion=Promo.Pro_Id" )
+ );
+ $inshop= implode(",", Core::getShop());
+ ProtocolController::$send=false;
+
+ DTServer::process($columms,$tables,"","Con_id IN (".$inshop.")",false);
+
+
+ case 'sub-total':
+
+ $sql="
+ SELECT (SUM(Con_Cost)+SUM(con_cost-(con_cost*Pro_Discount)/100) - (Select Sum(Con_cost) from Content where con_id in (".$inshop.") and FK_promotion is not null )) as subtotal
+ FROM Content
+ left outer join Promotion on FK_Promotion=Pro_ID
+ Where Con_ID in (".$inshop.")
+
+
+ case 'add-invoice':
+ $sql="
+ insert into Invoice (inv_emission_date, fk_sys_user,fk_credit_card) values ((SELECT date_trunc('SECOND', TIMESTAMP WITHOUT TIME ZONE 'now' )),'".Core::$user->getNick()."',".$_GET["num"].")
+ ";
+
+ $sql="
+ insert into Purchase (pur_cost,fk_invoice,fk_content) values (
+ (SELECT (CASE WHEN FK_PROMOTION IS NOT NULL THEN (con_cost-con_cost*(SELECT Pro_Discount FROM PROMOTION, CONTENT where Con_ID=".Core::getShop()[$i]." and FK_Promotion=Pro_id)/100) WHEN FK_PROMOTION IS NULL THEN con_cost end) as precio
+ FROM CONTENT
+ where con_Id=".Core::getShop()[$i]."), (Select MAX(Inv_ID) From Invoice),".Core::getShop()[$i].")
+
+/*Item-info.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+ case 'getItem':
+ $sql="
+ SELECT con_name AS name, img_url as image, con_type AS tipo, con_release_date as fecha, con_update as actualizacion, con_description as des, (CASE WHEN FK_PROMOTION IS NOT NULL THEN (con_cost-con_cost*(SELECT Pro_Discount FROM PROMOTION, CONTENT where Con_ID=".$_GET["num"]." and FK_Promotion=Pro_id)/100) WHEN FK_PROMOTION IS NULL THEN con_cost end) as precio, fk_promotion as promo
+ FROM content, web_cont as wc, image
+ WHERE con_id=".$_GET["num"]." and wc.fk_content=con_id and fk_web_cont=wc_id and img_logo=true";
+
+
+ case 'getCat':
+ $sql="
+ SELECT Cat_Name as cat
+ FROM category, content_category
+ WHERE fk_content=".$_GET["num"]." and fk_category=cat_id
+
+
+ case 'getOS':
+ $sql="
+ SELECT OS_Name as sistema, Ver_Name as ver
+ FROM OPERATING_SYSTEM, VERSION , APP_VER
+ WHERE FK_Application=".$_GET["num"]." and FK_Version=VER_ID and FK_Operating_System=OS_ID
+ Order by OS_Name
+
+
+ case 'getComment':
+ $sql="
+ select com_comment as comentario,com_date as time, fk_sys_user as usuario
+ from comment
+ where fk_content=".$_GET["num"];
+
+
+ case 'getCreator':
+ switch ($_GET["type"]){
+ case 'APLICACION':{
+ $sql="
+ SELECT Dev_Name as name, app_version as aux
+ FROM DEVELOPER, Application
+ Where FK_Developer=Dev_ID and FK_Content=".$_GET["num"];
+
+
+ case 'PELICULA':{
+ $sql="
+ SELECT AD_Name as name, (Mov_duration || ' minutos') as aux
+ FROM ACTOR_DIRECTOR,MOVIE,MOVIE_ROLL
+ Where FK_Content=".$_GET["num"]."and FK_Movie=fk_content and MR_ROLL='DIRECTOR' and AD_ID=FK_ACTOR_DIRECTOR";
+
+
+ case 'LIBRO':{
+ $sql="
+ SELECT Aut_Name as name, boo_number_page as aux
+ FROM AUTHOR,BOOK, BOO_AUT
+ Where FK_Content=".$_GET["num"]."and FK_book=fk_content and Aut_ID=FK_Author";
+
+
+ case 'MUSICA':{
+ $sql="
+ SELECT Aut_Name as name, alb_format as aux
+ FROM AUTHOR,ALBUM, ALB_AUT
+ Where FK_Content=".$_GET["num"]."and FK_album=fk_content and Aut_ID=FK_Author";
+
+ case 'getAudio':
+ $sql="
+ Select Lan_name as name,LAS_Type as tipo,(CASE WHEN LAS_Audio_Type IS NOT NULL THEN LAS_Audio_Type end) as calidad
+ from LANGUAGE,LAN_AUD_SUB, MOVIE
+ WHERE FK_Content=".$_GET["num"]." and FK_MOVIE=FK_Content and FK_LANGUAGE=LAN_ID
+ ORDER BY LAS_Type
+
+
+ case 'getBookinf':
+ $sql="
+ select Boo_ISBN as isbn, ER_Name as name
+ from BOOK, EDITORIAL_RECORD
+ Where FK_Content=".$_GET["num"]." and FK_Editorial_Record=ER_ID
+ ";
+
+ case 'getAlbinf':
+ $sql="
+ select ER_Name as name
+ from ALBUM, EDITORIAL_RECORD
+ Where FK_Content=".$_GET["num"]." and FK_Editorial_Record=ER_ID
+ ";
+
+
+ case 'getTrack':
+ $sql="
+ Select tra_name as name
+ from Track, Album
+ where FK_Content=".$_GET["num"]." and FK_Album=FK_Content;
+
+
+ case 'getElenco':
+ $sql="
+ SELECT AD_Name as name
+ FROM ACTOR_DIRECTOR,MOVIE,MOVIE_ROLL
+ Where FK_Content=".$_GET["num"]."and FK_Movie=fk_content and MR_ROLL='ACTOR' and AD_ID=FK_ACTOR_DIRECTOR";
+
+
+
+ case 'getRanking':
+ $sql="
+ SELECT ROUND(AVG(R.rat_value),0) as rate, COUNT(D.FK_Content) as download
+ FROM rate as R, (SELECT * FROM PURCHASE WHERE FK_INVOICE IS NOT NULL )as D
+ where R.FK_CONTENT=".$_GET["num"]." and D.FK_Content=".$_GET["num"];
+
+ case 'add-comment':
+ $sql="
+ insert into Comment (Com_date, com_Comment, fk_sys_user, fk_content) values ((SELECT date_trunc('SECOND', TIMESTAMP WITHOUT TIME ZONE 'now')),'".$_GET["text"]."','".$_GET["user"]."',".$_GET["num"].")
+ ";
+
+
+ case 'getWC':
+ $sql="
+ SELECT Img_URL as webcont
+ FROM IMAGE, WEB_CONT
+ WHERE FK_CONTENT=".$_GET["num"]." AND FK_WEB_CONT=WC_ID
+ ";
+
+
+/*lics.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+ case 'getRow':
+ $sql="
+ SELECT lic_id as id, lic_name as name
+ FROM LICENSE
+ WHERE lic_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE LICENSE
+ SET lic_name='".$_POST["licName"]."'".($file?",lic_document='".pg_escape_bytea($bytes)."',lic_extension='".$ext."'":"")."
+ WHERE lic_id=".$_POST["licID"];
+
+ case 'newRow':
+ $sql="
+ INSERT INTO LICENSE (
+ lic_name,
+ lic_document,
+ lic_extension
+ ) values (
+ '".$_POST["licName"]."',
+ '".pg_escape_bytea($bytes)."',
+ '".$ext."'
+ )
+ RETURNING lic_id as id";
+
+ case 'delRow':
+ $sql="
+ DELETE FROM LICENSE
+ WHERE Lic_ID=" .$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"lic_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"lic_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"('<a target=\"_blank\" href=\"../licfile.php?id=' || lic_id || '\" >' || 'lic_' || lic_name || '.' || lic_extension || '</a>')",
+ "as"=>"Archivo",
+ "search"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"LICENSE",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*login.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+ /**
+ * Login::run
+ * Verifica si el usuario es empleado
+ * @param $nick Nombre del usuario
+ * @return "t" si es empleado "f" si no lo es
+ */
+ private static function checkUser($nick){
+ $sql="
+ SELECT su_employee
+ FROM sys_user
+ where su_nick='".$nick."'
+ ";
+
+/*mov.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT con_id as id, con_name as name, con_update as update, con_description as des, con_cost as cost, con_release_date as reld, mov_duration as dur, con_size as size
+ FROM movie, content
+ WHERE con_id=".$_GET["id"]." and con_id=fk_content";
+
+
+ case "getCat":
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category, content_category
+ WHERE fk_content=".$_GET["id"]." and fk_category=cat_id";
+
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category
+ WHERE cat_id not in (
+ SELECT fk_category
+ FROM content_category
+ WHERE fk_content=".$_GET["id"]."
+ ) and cat_cont_type='".CONT_MOV."'";
+
+ case "getAct":
+ $sql="
+ SELECT ad_id as value, ad_name as name, mr_roll as roll
+ FROM actor_director, movie_roll
+ WHERE fk_movie=".$_GET["id"]." and fk_actor_director=ad_id
+ order by name";
+
+ $sql="
+ SELECT ad_id as value, ad_name as name
+ FROM actor_director
+ WHERE ad_id not in (
+ SELECT fk_actor_director
+ FROM movie_roll
+ WHERE fk_movie=".$_GET["id"]." and mr_roll='ACTOR'
+ )
+ order by name";
+
+ case "getlessAct":
+ $sql="
+ SELECT ad_id as value, ad_name as name
+ FROM actor_director
+ WHERE ad_id not in (
+ SELECT fk_actor_director
+ FROM movie_roll
+ WHERE fk_movie=".$_GET["id"]." and mr_roll='".$_GET["type"]."'
+ )
+ order by name";
+
+ case "getLan":
+ $sql="
+ SELECT lan_id as value, lan_name as name, las_type as type, (case when las_audio_type notnull then las_audio_type else '' end) as atype
+ FROM lan_aud_sub, language
+ WHERE fk_movie=".$_GET["id"]." and fk_language=lan_id
+ order by name";
+
+ $sql="
+ SELECT lan_id as value, lan_name as name
+ FROM language
+ WHERE lan_id not in (
+ SELECT fk_language
+ FROM lan_aud_sub
+ WHERE fk_movie=".$_GET["id"]." and las_type='AUDIO' and las_audio_type='STEREO'
+ )
+ order by name";
+
+ case "getlessLan":
+ $sql="
+ SELECT lan_id as value, lan_name as name
+ FROM language
+ WHERE lan_id not in (
+ SELECT fk_language
+ FROM lan_aud_sub
+ WHERE fk_movie=".$_GET["id"]." and las_type='".$_GET["type"]."' and (las_audio_type='".$_GET["atype"]."' or las_audio_type isnull)
+ )
+ order by name";
+
+ case "delAct":
+ $sql="
+ delete from movie_roll
+ where fk_actor_director=".$_GET["actid"]." and fk_movie=".$_GET["id"]." and mr_roll='".$_GET["roll"]."'
+
+ $sql="
+ select count(fk_actor_director) as num
+ from movie_roll
+ where fk_actor_director=".$_GET["actid"];
+
+ $sql="
+ delete from actor_Director
+ where fk_actor_director=".$_GET["actid"];
+
+ case "delLan":
+ $sql="
+ delete from lan_aud_sub
+ where las_type='".$_GET["type"]."' and fk_language=".$_GET["lanid"]." and fk_movie=".$_GET["id"].($_GET["atype"]!=""?" and las_audio_type='".$_GET["atype"]."'":"")."
+
+
+ case "addact":
+ $sql="
+ INSERT INTO actor_director (
+ ad_name
+ ) VALUES (
+ '".$_POST["actName"]."'
+ )
+ RETURNING ad_ID as id
+
+ $sql="
+ INSERT INTO movie_roll (
+ fk_actor_director,
+ fk_movie,
+ mr_roll
+ ) VALUES (
+ ".$acid.",
+ ".$_GET["id"].",
+ '".$_POST["actRoll"]."'
+ )
+
+ case "addLan":
+ $sql="
+ INSERT INTO language (
+ lan_name
+ ) VALUES (
+ '".$_POST["lanName"]."'
+ )
+ RETURNING lan_ID as id
+
+ $sql="
+ INSERT INTO lan_aud_sub (
+ las_type,
+ las_audio_type,
+ fk_movie,
+ fk_language
+ ) VALUES (
+ '".$_POST["lanType"]."',
+ '".$_POST["audioType"]."',
+ ".$_GET["id"].",
+ ".$lanid."
+ )
+
+
+ case "addCat":
+ $sql="
+ INSERT INTO content_category (
+ fk_category,
+ fk_content
+ ) VALUES (
+ ".$_GET["catid"].",
+ ".$_GET["id"]."
+ )
+
+ case "delCat":
+ $sql="
+ DELETE FROM content_category
+ WHERE fk_category=".$_GET["catid"]." and fk_content=".$_GET["id"]."
+
+
+ case 'editRow':
+ $sql="
+ UPDATE content
+ SET con_name='".$_POST["conName"]."',con_update=CURRENT_DATE,con_description='".pg_escape_string($_POST["conDes"])."',con_cost=".$_POST["conCost"].",con_release_date='".$_POST["conRlsD"]."'
+ ".($_POST["conSize"]!=""?",con_size=".$_POST["conSize"]:"")."
+ WHERE con_id=".$_POST["conID"];
+ $sql1="
+ UPDATE movie
+ SET mov_duration='".$_POST["movDur"]."
+ WHERE fk_content=".$_POST["conID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO CONTENT (
+ Con_Name,
+ Con_Update,
+ Con_Description,
+ Con_Cost,
+ Con_Release_Date,
+ Con_Type,
+ Con_Size
+ ) values (
+ '".$_POST["conName"]."',
+ CURRENT_DATE,
+ '".pg_escape_string($_POST["conDes"])."',
+ ".$_POST["conCost"].",
+ '".$_POST["conRlsD"]."',
+ '".CONT_MOV."',
+ ".$_POST["conSize"]."
+ )
+ RETURNING Con_ID as id";
+
+ $sql1="
+ INSERT INTO movie (
+ FK_Content,
+ mov_duration
+ ) values (
+ ".$line["id"].",
+ ".$_POST["movDur"]."
+ )";
+
+
+ case 'delRow':
+ $sql="
+ DELETE FROM APPLICATION
+ WHERE FK_Content=" .$_GET["id"];
+ $sql1="
+ DELETE FROM CONTENT
+ WHERE Con_id=" .$_GET["id"];
+
+ private static function updateCont($id){
+ $sql="
+ UPDATE CONTENT
+ SET Con_Update=CURRENT_DATE
+ WHERE con_id=".$id."
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"con.con_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"con.con_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"con.con_cost",
+ "as"=>"Costo",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"string_agg(cat.cat_name, ', ')",
+ "as"=>"Categorias",
+ "search"=>true,
+ "num"=>false,
+ "agg"=>"cat.cat_name")
+ );
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"content",
+ "as"=>"con"),
+ array(
+ "left_j" => true,
+ "ct"=>"application",
+ "as"=>"app",
+ "on"=>"con.con_id=app.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"content_category",
+ "as"=>"cc",
+ "on"=>"con.con_id=cc.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"category",
+ "as"=>"cat",
+ "on"=>"cc.fk_category=cat.cat_id")
+ );
+ DTServer::process($columms,$tables,"ID","con.con_type='".CONT_MOV."'",true,"con.con_id, con.con_name, con.con_cost");
+
+/*mus.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT con_id as id, con_name as name, con_update as update, con_description as des, con_cost as cost, con_release_date as reld, con_size as size, fk_editorial_record as dis, alb_format as format
+ FROM album, content
+ WHERE con_id=".$_GET["id"]." and con_id=fk_content";
+
+ case "getAut":
+ $sql="
+ SELECT aut_id as value, aut_name as name
+ FROM author, alb_aut
+ WHERE fk_album=".$_GET["id"]." and fk_author=aut_id";
+
+ $sql="
+ SELECT aut_id as value, aut_name as name
+ FROM author
+ WHERE aut_id not in (
+ SELECT fk_author
+ FROM alb_aut
+ WHERE fk_album=".$_GET["id"]."
+ )";
+
+ case "getTrack":
+ $sql="
+ SELECT fk_album as value, tra_name as name, tra_number as num
+ FROM track
+ WHERE fk_album=".$_GET["id"];
+
+ case "getCat":
+ $data=array();
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category, content_category
+ WHERE fk_content=".$_GET["id"]." and fk_category=cat_id";
+
+ $sql="
+ SELECT cat_id as value, cat_name as name
+ FROM category
+ WHERE cat_id not in (
+ SELECT fk_category
+ FROM content_category
+ WHERE fk_content=".$_GET["id"]."
+ ) and cat_cont_type='".CONT_ALB."'";
+
+
+ case "addCat":
+ $sql="
+ INSERT INTO content_category (
+ fk_category,
+ fk_content
+ ) VALUES (
+ ".$_GET["catid"].",
+ ".$_GET["id"]."
+ )
+ ";
+
+ case "addAut":
+ $sql="
+ INSERT INTO alb_aut (
+ fk_author,
+ fk_album
+ ) VALUES (
+ ".$_GET["autid"].",
+ ".$_GET["id"]."
+ )
+
+ case "newTrack":
+ $sql="
+ INSERT INTO track (
+ fk_album,
+ tra_number,
+ tra_name
+ ) VALUES (
+ ".$_GET["id"].",
+ ".$_POST["trackNum"].",
+ '".$_POST["trackName"]."'
+ )
+
+
+ case "delCat":
+ $sql="
+ DELETE FROM content_category
+ WHERE fk_category=".$_GET["catid"]." and fk_content=".$_GET["id"]."
+
+
+ case "delTrack":
+ $sql="
+ DELETE FROM track
+ WHERE tra_number=".$_GET["trackNum"]." and fk_album=".$_GET["id"]."
+
+
+ case "delAut":
+ $sql="
+ DELETE FROM alb_aut
+ WHERE fk_album=".$_GET["id"]." and fk_author=".$_GET["autid"]."
+ ";
+
+
+
+ case 'editRow':
+ $sql="
+ UPDATE content
+ SET con_name='".$_POST["conName"]."',con_update=CURRENT_DATE,con_description='".pg_escape_string($_POST["conDes"])."',con_cost=".$_POST["conCost"].",con_release_date='".$_POST["conRlsD"]."'
+ ".($_POST["conSize"]!=""?",con_size=".$_POST["conSize"]:"")."
+ WHERE con_id=".$_POST["conID"];
+
+ $sql1="
+ UPDATE album
+ SET alb_format='".$_POST["albFormat"]."',fk_editorial_record=".$_POST["albDis"]."
+ WHERE fk_content=".$_POST["conID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO CONTENT (
+ Con_Name,
+ Con_Update,
+ Con_Description,
+ Con_Cost,
+ Con_Release_Date,
+ Con_Type,
+ Con_Size
+ ) values (
+ '".$_POST["conName"]."',
+ CURRENT_DATE,
+ '".pg_escape_string($_POST["conDes"])."',
+ ".$_POST["conCost"].",
+ '".$_POST["conRlsD"]."',
+ '".CONT_ALB."',
+ ".$_POST["conSize"]."
+ )
+ RETURNING Con_ID as id";
+
+ $sql1="
+ INSERT INTO album (
+ alb_format,
+ FK_Content,
+ fk_editorial_record
+ ) values (
+ '".$_POST["albFormat"]."',
+ ".$line["id"].",
+ ".$_POST["albDis"]."
+ )";
+
+
+ case 'delRow':
+ $sql="
+ DELETE FROM album
+ WHERE FK_Content=" .$_GET["id"];
+
+ $sql1="
+ DELETE FROM CONTENT
+ WHERE Con_id=" .$_GET["id"];
+
+ private static function updateCont($id){
+ $sql="
+ UPDATE CONTENT
+ SET Con_Update=CURRENT_DATE
+ WHERE con_id=".$id."
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"con.con_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"con.con_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"con.con_cost",
+ "as"=>"Costo",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"string_agg(aut.aut_name, ', ')",
+ "as"=>"Autor",
+ "search"=>true,
+ "num"=>false,
+ "agg"=>"aut.aut_name"),
+ array(
+ "ct"=>"dis.er_name",
+ "as"=>"Disquera",
+ "search"=>true,
+ "num"=>true)
+ );
+ $tables=array(
+ array(
+ "left_j"=> false,
+ "ct"=>"content",
+ "as"=>"con"),
+ array(
+ "left_j" => true,
+ "ct"=>"album",
+ "as"=>"alb",
+ "on"=>"con.con_id=alb.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"editorial_record",
+ "as"=>"dis",
+ "on"=>"alb.fk_editorial_record=dis.er_id"),
+ array(
+ "left_j" => true,
+ "ct"=>"alb_aut",
+ "as"=>"aa",
+ "on"=>"aa.fk_album=alb.fk_content"),
+ array(
+ "left_j" => true,
+ "ct"=>"author",
+ "as"=>"aut",
+ "on"=>"aa.fk_author=aut.aut_id")
+ );
+ DTServer::process($columms,$tables,"ID","con.con_type='".CONT_ALB."'",true,"con.con_id, con.con_name, con.con_cost, dis.er_name");
+
+/*obl.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT obl_id as id, obl_Name as name, obl_salary as sal
+ FROM obligation
+ WHERE obl_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE obligation
+ SET obl_Name='".$_POST["oblName"]."', obl_salary=".$_POST["oblSal"]."
+ WHERE obl_id=".$_POST["oblID"];
+
+ $sql="
+ INSERT INTO obligation (
+ obl_Name,
+ obl_salary
+ ) values (
+ '".$_POST["oblName"]."',
+ ".$_POST["oblSal"]."
+ )
+ RETURNING obl_ID as id";
+
+
+ case 'delRow':
+ $sql="
+ DELETE FROM obligation
+ WHERE obl_ID=".$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"obl_id",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"obl_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"obl_salary",
+ "as"=>"Salario",
+ "search"=>true,
+ "num"=>true)
+ );
+ $tables=array(
+ array(
+ "ct"=>"obligation",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*os.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case "getChaList":
+ $sql="
+ SELECT cha_id as id, cha_name as name, cha_description as des
+ FROM characteristic, o_s_cha
+ WHERE fk_operating_system=".$_GET["id"]." and fk_characteristic=cha_id";
+
+
+ case "getChaListLess":
+ $sql="
+ SELECT cha_id as value, cha_name as name
+ FROM characteristic
+ WHERE cha_id not in (
+ SELECT fk_characteristic
+ FROM o_s_cha
+ WHERE fk_operating_system=".$_GET["id"]."
+
+ case "addCha":
+
+ $sql="
+ INSERT INTO o_s_cha (
+ fk_operating_system,
+ fk_characteristic
+ ) VALUES (
+ ".$_GET["id"].",
+ ".$_GET["chaid"]."
+ )
+
+ case "delCha":
+ $sql="
+ DELETE FROM o_s_cha
+ WHERE fk_operating_system=".$_GET["id"]." and fk_characteristic=".$_GET["chaid"]."
+ ";
+
+ case 'getRow':
+ $sql="
+ SELECT os_id as id, os_name as name, os_description as des, os_release_date as rlsd, fk_license as lic, fk_developer as dev
+ FROM operating_system
+ WHERE os_id=".$_GET["id"];
+
+
+ case 'editRow':
+
+ $sql="
+ UPDATE operating_system
+ SET os_name='".$_POST["osName"]."', os_description='".pg_escape_string($_POST["osDes"])."', os_release_date='".$_POST["osRlsD"]."', fk_license=".$_POST["osLic"].", fk_developer=".$_POST["osDev"]."
+ WHERE os_id=".$_POST["osID"];
+
+
+ case 'newRow':
+ $sql="
+ INSERT INTO OPERATING_SYSTEM (
+ OS_Name,
+ OS_Description,
+ OS_Release_Date,
+ FK_License,
+ FK_Developer
+ ) values (
+ '".$_POST["osName"]."',
+ '".pg_escape_string($_POST["osDes"])."',
+ '".$_POST["osRlsD"]."',
+ ".$_POST["osLic"].",
+ ".$_POST["osDev"]."
+ )
+ RETURNING os_ID as id";
+
+
+ case 'delRow':
+
+ $sql="
+ DELETE FROM OPERATING_SYSTEM
+ WHERE os_ID=" .$_GET["id"];
+
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"os_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"os_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"os_release_date",
+ "as"=>"Lanzamiento",
+ "search"=>false),
+ array(
+ "ct"=>"('<a target=\"_blank\" href=\"../licfile.php?id=' || lic_id || '\" >' || 'lic_' || lic_name || '.' || lic_extension || '</a>')",
+ "as"=>"Licencia",
+ "search"=>true,
+ "num"=>false)
+ ,
+ array(
+ "ct"=>"dev_Name",
+ "as"=>"Desarrollador",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"developer",
+ "as"=>false),
+ array(
+ "ct"=>"operating_system",
+ "as"=>false),
+ array(
+ "ct"=>"license",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID","fk_license=lic_id and fk_developer=dev_id");
+
+/*register.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Register::$post_vars[11]]."',
+ 'ESTADO',
+ NULL,
+ ".$contry_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Register::$post_vars[13]]."',
+ 'CIUDAD',
+ NULL,
+ ".$est_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Register::$post_vars[15]]."',
+ 'URBANIZACION',
+ NULL,
+ ".$cty_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Register::$post_vars[17]]."',
+ 'URBANIZACION',
+ '".$_POST[Register::$post_vars[18]]."',
+ ".$ub_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Register::$post_vars[19]]."',
+ 'URBANIZACION',
+ NULL,
+ ".$av_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO SYS_USER (
+ SU_Nick,
+ SU_Password,
+ SU_Ci,
+ SU_Name,
+ SU_LastName,
+ SU_Active,
+ SU_Born_date,
+ SU_Email,
+ SU_Phone,
+ SU_starting_date,
+ SU_Employee,
+ Su_civil_Status,
+ FK_place,
+ FK_SR
+ ) VALUES (
+ '".$_POST[Register::$post_vars[0]]."',
+ '".hash(PASSWD_ALG, $_POST[Register::$post_vars[1]])."',
+ '".$_POST[Register::$post_vars[4]]."',
+ '".$_POST[Register::$post_vars[2]]."',
+ '".$_POST[Register::$post_vars[3]]."',
+ true,
+ '".$_POST[Register::$post_vars[8]]."',
+ '".$_POST[Register::$post_vars[5]]."',
+ '".$_POST[Register::$post_vars[6]]."',
+ '".date("Y/m/d",time())."',
+ false,
+ '".$_POST[Register::$post_vars[7]]."',
+ ".$place_id.",
+ 2
+ )";
+
+
+/*sysmodules.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case 'getRow':
+ $sql="
+ SELECT sm_id as id, sm_name as name, sm_description as des
+ FROM SYS_MODULE
+ WHERE sm_id=".$_GET["id"];
+
+
+ case 'editRow':
+ $sql="
+ UPDATE SYS_MODULE
+ SET sm_name='".$_POST["moduleName"]."',sm_description='".pg_escape_string($_POST["moduleDes"])."'
+ WHERE sm_id=".$_POST["moduleID"];
+
+ case 'newRow':
+ $sql="
+ INSERT INTO SYS_MODULE (
+ sm_id,
+ sm_name,
+ sm_description
+ ) values (
+ ".$_POST["moduleID"].",
+ '".$_POST["moduleName"]."',
+ '".pg_escape_string($_POST["moduleDes"])."'
+ )";
+
+
+ case 'delRow':
+ $sql="
+ DELETE FROM SYS_MODULE
+ WHERE sm_ID=" .$_GET["id"];
+
+
+ /**
+ * Login::datatable
+ * Manejo del DataTables
+ */
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"SM_ID",
+ "as"=>"ID",
+ "search"=>false),
+ array(
+ "ct"=>"SM_Name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"SM_Description",
+ "as"=>"Descripcion",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"SYS_MODULE",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID");
+
+/*sysrolls.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ case "getRow":
+ $sql="
+ SELECT sr_id as id, sr_name as nombre, sr_description as des
+ FROM SYS_ROLL
+ WHERE sr_id=".$_GET["id"];
+
+ $sql="
+ SELECT sm_id as m_id, sm_name as m_name, ra_view as v, ra_add as a, ra_modify as m, ra_remove as e
+ FROM SYS_MODULE,ROLL_ACCESS
+ WHERE fk_sys_roll=".$_GET["id"]." and fk_sys_module=sm_id";
+
+
+ $sql="
+ SELECT sm_id as value, sm_name as name
+ FROM SYS_MODULE
+ WHERE sm_id not in (
+ SELECT sm_id as m_id
+ FROM SYS_MODULE,ROLL_ACCESS
+ WHERE fk_sys_roll=".$_GET["id"]." and fk_sys_module=sm_id
+
+
+ case "setAccess":
+ $sql="
+ UPDATE ROLL_ACCESS
+ SET ".$type."='".$_GET["set"]."'
+ WHERE fk_sys_module=".$_GET["mid"]." and fk_sys_roll=".$_GET["id"]."
+
+ case "unsetAccess":
+ $sql="
+ DELETE FROM ROLL_ACCESS
+ WHERE fk_sys_module=".$_GET["mid"]." and fk_sys_roll=".$_GET["id"]."
+ ";
+
+ case "addModule":
+ $sql="
+ INSERT INTO ROLL_ACCESS (
+ RA_View,
+ RA_Add,
+ RA_Modify,
+ RA_Remove,
+ FK_Sys_Module,
+ FK_Sys_Roll
+ ) VALUES (
+ true,
+ false,
+ false,
+ false,
+ ".$_GET["mid"].",
+ ".$_GET["id"]."
+ )
+ ";
+
+ case 'editRow':
+
+ $sql="
+ UPDATE SYS_ROLL
+ SET sr_name='".$_POST["sr_name"]."',sr_description='".pg_escape_string($_POST["sr_des"])."'
+ WHERE sr_id=".$_POST["sr_id"];
+
+ $sql="
+ INSERT INTO SYS_ROLL (
+ SR_Name,
+ SR_Description
+ ) values (
+ '".$_POST["sr_name"]."',
+ '".pg_escape_string($_POST["sr_des"])."'"."
+ )
+ RETURNING SR_ID as id";
+
+ case "delRow":
+ $sql="
+ DELETE FROM SYS_ROLL
+ WHERE SR_ID=".$_GET["id"];
+
+
+ private static function datatable(){
+ $columms=array(
+ array(
+ "ct"=>"sr_id",
+ "as"=>"ID",
+ "search"=>true,
+ "num"=>true),
+ array(
+ "ct"=>"sr_name",
+ "as"=>"Nombre",
+ "search"=>true,
+ "num"=>false),
+ array(
+ "ct"=>"sr_description",
+ "as"=>"Descripcion",
+ "search"=>true,
+ "num"=>false)
+ );
+ $tables=array(
+ array(
+ "ct"=>"SYS_ROLL",
+ "as"=>false)
+ );
+ DTServer::process($columms,$tables,"ID","",true);
+
+/*userconf.class.php-------------------------------------------------------------------------------------------------------------------------------------------*/
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Userconf::$post_vars[2]]."',
+ 'ESTADO',
+ NULL,
+ ".$contry_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ '".$_POST[Userconf::$post_vars[4]]."',
+ 'CIUDAD',
+ NULL,
+ ".$est_id."
+ ) RETURNING pla_id as new_id";
+
+ $sql="
+ INSERT INTO PLACE (
+ Pla_Name,
+ Pla_Type,
+ Pla_Postal_Code,
+ fk_place
+ ) VALUES (
+ ...
[truncated message content] |
|
From: Eduardo G. <my4...@us...> - 2015-01-10 11:18:08
|
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "Global Store".
The branch, master has been updated
via e12108e85c4812bb85cbf00a7bf5a789bd8e04c5 (commit)
via 07e07e0373bc7048974ed0e18aaa3e690be9322b (commit)
from 5cb5948809c51f3686fd6c570e1c489dae2b2593 (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e12108e85c4812bb85cbf00a7bf5a789bd8e04c5
Merge: 07e07e0 5cb5948
Author: Eduardo <epp...@gm...>
Date: Sat Jan 10 06:47:39 2015 -0430
Merge branch 'master' of ssh://git.code.sf.net/p/globalstore/code
commit 07e07e0373bc7048974ed0e18aaa3e690be9322b
Author: Eduardo <epp...@gm...>
Date: Sat Jan 10 06:46:46 2015 -0430
Item-info
diff --git a/src/www/js/Item-info.js b/src/www/js/Item-info.js
index 9b5a83f..26e0a07 100644
--- a/src/www/js/Item-info.js
+++ b/src/www/js/Item-info.js
@@ -1,5 +1,6 @@
//Contenido HTML
+var player=false;
$.urlParam = function(name){
var results = new RegExp('[\?&]' + name + '=([^&#]*)').exec(window.location.href);
@@ -37,8 +38,9 @@ function gs_p_item_info(){
<label id="c-price"></label>\
<button id="b-comprar" class="pure-control-group pure-button pure-button-primary">Comprar</button>\
</div>\
+ <div id="fantasma"><div id=fantasma-interno></div></div>\
');
-
+ $("#fantasma").hide();
$("#Main_Galey").show();
$("#content_center").empty();
$("#content_center").append('\
@@ -77,6 +79,18 @@ function gs_p_item_info(){
</div>\
');
+ $("#fantasma").click(function(){
+ if(player){
+ player.stopVideo();
+ player.clearVideo();
+ player=false;
+ }
+ $("fantasma-interno").empty();
+ $(this).fadeOut(500);
+ });
+
+
+
$("#b-comprar").click(function (event) {
event.preventDefault();
var id;
@@ -499,9 +513,41 @@ function get_info(item, tipo){
});
}
+
+
+
+function showSBig(res){
+ $("#fantasma-interno").empty();
+ $("#fantasma-interno").append('<img style="height:500px" src="'+res+'"/>');
+ $("#fantasma").fadeIn(500);
+}
+function showVideo(res){
+ $("#fantasma-interno").empty();
+ $("#fantasma-interno").append('<div id="yt-video"></div>');
+ player = new YT.Player("yt-video", {
+ height: '390',
+ width: '640',
+ videoId: res
+ /*events: {
+ 'onReady': onPlayerReady,
+ 'onStateChange': onPlayerStateChange
+ }*/
+ });
+ $("#fantasma").fadeIn(500);
+}
+
+
+
+
+
+
/*----------------------------------ACCION DOCUMENT -----------------------------------------*/
$( document ).ready(function() {
+ var tag = document.createElement('script');
+ tag.src = "https://www.youtube.com/iframe_api";
+ var firstScriptTag = document.getElementsByTagName('script')[0];
+ firstScriptTag.parentNode.insertBefore(tag, firstScriptTag);
var i=0;
check_user();
gs_p_item_info();
-----------------------------------------------------------------------
Summary of changes:
src/www/js/Item-info.js | 48 ++++++++++++++++++++++++++++++++++++++++++++++-
1 files changed, 47 insertions(+), 1 deletions(-)
hooks/post-receive
--
Global Store
|