Add files via upload
This commit is contained in:
		
							
								
								
									
										164
									
								
								root/assets/css/admin.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										164
									
								
								root/assets/css/admin.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,164 @@
 | 
			
		||||
.tablelist{
 | 
			
		||||
    display: grid;
 | 
			
		||||
    list-style-type: none;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .tablelist li {
 | 
			
		||||
    border-bottom: 1px solid black;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
    font-size: 20px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  .tablelist a {
 | 
			
		||||
    color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .tablelist a:hover li{
 | 
			
		||||
    color: rgb(211, 235, 255);
 | 
			
		||||
    background: rgba(31, 44, 61, 1);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .tablelist li.title{
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
.col7{
 | 
			
		||||
    grid-template-columns: repeat(7,1fr);    
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .col7 .odd{
 | 
			
		||||
     background: rgba(144, 144, 144, 0.25);;
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 1;
 | 
			
		||||
     grid-column-end: 8;
 | 
			
		||||
     grid-template-columns: repeat(7,1fr); 
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .col7 .even{
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 1;
 | 
			
		||||
     grid-column-end: 8;
 | 
			
		||||
     grid-template-columns: repeat(7,1fr);  
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .tablelist.col7 a.h4long
 | 
			
		||||
  {
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 1;
 | 
			
		||||
     grid-column-end: 7;
 | 
			
		||||
     grid-template-columns: repeat(4,auto);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .tablelist.col7 a
 | 
			
		||||
  {
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 5;
 | 
			
		||||
     grid-column-end: 8;
 | 
			
		||||
     grid-template-columns: auto;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .tablelist.col6{
 | 
			
		||||
    grid-template-columns: repeat(6,1fr);    
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /*.col6 .odd{
 | 
			
		||||
     background: green;
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 1;
 | 
			
		||||
     grid-column-end: 7;
 | 
			
		||||
     grid-template-columns: repeat(5,auto); 
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .col6 .even{
 | 
			
		||||
     background: pink;
 | 
			
		||||
     display: grid;
 | 
			
		||||
     grid-column-start: 1;
 | 
			
		||||
     grid-column-end: 7;
 | 
			
		||||
     grid-template-columns: repeat(5,auto); 
 | 
			
		||||
  }*/
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
  .col6 .odd{
 | 
			
		||||
   background: rgba(144, 144, 144, 0.25);
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 7;
 | 
			
		||||
   grid-template-columns: repeat(6,1fr);    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col6 .even{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 7;
 | 
			
		||||
   grid-template-columns: repeat(6,1fr); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist.col6 a.h2long{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 5;
 | 
			
		||||
   grid-template-columns: repeat(4,1fr);
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.tablelist.col6 a{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 5;
 | 
			
		||||
   grid-column-end: 7;
 | 
			
		||||
   grid-template-columns: repeat(2,1fr);
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.tablelist.col3{
 | 
			
		||||
   grid-template-columns: repeat(3,1fr);    
 | 
			
		||||
 }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.col2 .odd{
 | 
			
		||||
   background: rgba(144, 144, 144, 0.25);
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(3,1fr);    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col2 .even{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(3,1fr); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.tablelist.col2 a.h2long{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 3;
 | 
			
		||||
   grid-template-columns: repeat(2,1fr);
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
.tablelist.col2 {
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 3;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(1,1fr);
 | 
			
		||||
} 
 | 
			
		||||
 | 
			
		||||
.content-input {
 | 
			
		||||
   width: 15%;
 | 
			
		||||
   height: 20px;
 | 
			
		||||
   border: 1px solid #000000;
 | 
			
		||||
   margin-top: 10px;
 | 
			
		||||
   font-size: 15px;
 | 
			
		||||
   display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.efe {
 | 
			
		||||
   width: 85%;
 | 
			
		||||
   height: 20px;
 | 
			
		||||
   margin-bottom: 20px;
 | 
			
		||||
   text-align: left;
 | 
			
		||||
   font-size: 22px;
 | 
			
		||||
   display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										799
									
								
								root/assets/css/highContrast-FER_SURFACE.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										799
									
								
								root/assets/css/highContrast-FER_SURFACE.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,799 @@
 | 
			
		||||
/* Imports */
 | 
			
		||||
@import url('manager.css');
 | 
			
		||||
@import url('admin.css');
 | 
			
		||||
 | 
			
		||||
/* Basic */
 | 
			
		||||
* {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    margin: 0px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Headers */
 | 
			
		||||
  h1, h2, h3, h4 {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    text-transform: uppercase;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    font-size: 100%;
 | 
			
		||||
    vertical-align: baseline;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h2 {
 | 
			
		||||
      font-size: 95%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h3 {
 | 
			
		||||
    font-size: 85%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h4 {
 | 
			
		||||
    font-size: 75%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Buttons */
 | 
			
		||||
  button, .button.large {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin: 10px;
 | 
			
		||||
    width: 150px;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    padding: 5px 10px;
 | 
			
		||||
    background-color :#1f2c3d;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color :#dadada;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }
 | 
			
		||||
  .button.large, button.danger {
 | 
			
		||||
    width: 95%;
 | 
			
		||||
  }
 | 
			
		||||
  button:hover, .button:hover {
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    background-color:#dadada;
 | 
			
		||||
    color:#1f2c3d;
 | 
			
		||||
    border-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  button.danger{
 | 
			
		||||
    background-color:#2c0000;
 | 
			
		||||
    border: 2px solid #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  button.danger:hover{
 | 
			
		||||
    background-color:#00020f;
 | 
			
		||||
    border: 2px solid #791515;
 | 
			
		||||
    color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* Header */
 | 
			
		||||
  .header {
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 15px;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    font-size: 18px;
 | 
			
		||||
  } 
 | 
			
		||||
  .header img {
 | 
			
		||||
    width: 13px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Header Menu */
 | 
			
		||||
  .menu {
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    text-align: right;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav a{
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }  
 | 
			
		||||
  .menu nav li{
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    width: 150px;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    padding: 5px 10px;
 | 
			
		||||
    background-color :#1f2c3d;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color :#dadada;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }      
 | 
			
		||||
  .menu nav li.danger{
 | 
			
		||||
    background-color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li:hover{
 | 
			
		||||
    background-color:#dadada;
 | 
			
		||||
    color:#1f2c3d;
 | 
			
		||||
    border-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li.danger:hover{
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    background-color: #2c0000;
 | 
			
		||||
    border-color: #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li>ul{
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li:hover>ul{
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 29px;
 | 
			
		||||
    right: -1px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Sub Header */
 | 
			
		||||
  .header.sub {
 | 
			
		||||
    margin-bottom: 20px;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: row;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .header.sub .menu {
 | 
			
		||||
    margin-top: 0px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsive layout */
 | 
			
		||||
  @media (max-width: 850px) {
 | 
			
		||||
    .header.sub .menu nav li:hover>ul{
 | 
			
		||||
      display: block;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      top: 5px;
 | 
			
		||||
      left: -51px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Paragraphs */
 | 
			
		||||
  p {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
      border: 0;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  a { 
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    text-decoration: none; 
 | 
			
		||||
  }
 | 
			
		||||
  a:hover{
 | 
			
		||||
    color:rgb(138, 150, 32);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Body */
 | 
			
		||||
  body {
 | 
			
		||||
    font-family: Arial, Helvetica, sans-serif;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Table */
 | 
			
		||||
  table {
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
    border-spacing: 0;
 | 
			
		||||
    margin: 0 0 2em 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  table a{
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
    table tbody tr {
 | 
			
		||||
      color: #1f2c3d;
 | 
			
		||||
      border: solid 1px #1f2c3d;
 | 
			
		||||
      border-left: 0;
 | 
			
		||||
      border-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
      table tbody tr:nth-child(2n + 1) {
 | 
			
		||||
        background-color: rgba(255, 255, 255, 0.25);
 | 
			
		||||
      }
 | 
			
		||||
    table td {
 | 
			
		||||
      padding: 0.75em 0.75em;
 | 
			
		||||
    }
 | 
			
		||||
    table th {
 | 
			
		||||
      color: #1f2c3d;
 | 
			
		||||
      font-size: 0.9em;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      padding: 0.85em 0.85em 0.85em 0.85em;
 | 
			
		||||
    }
 | 
			
		||||
    table thead, table tfoot {
 | 
			
		||||
      border-bottom: solid 2px #dadada;
 | 
			
		||||
    }
 | 
			
		||||
    table.alt {
 | 
			
		||||
      border-collapse: separate;
 | 
			
		||||
    }
 | 
			
		||||
    table.alt tbody tr td {
 | 
			
		||||
      border: solid 1px #dadada;
 | 
			
		||||
      border-left-width: 0;
 | 
			
		||||
      border-top-width: 0;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
      table.alt tbody tr td:first-child {
 | 
			
		||||
        border-left-width: 1px;
 | 
			
		||||
      }
 | 
			
		||||
  
 | 
			
		||||
    table.alt tbody tr:first-child td {
 | 
			
		||||
      border-top-width: 1px;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    table.alt thead, table.alt tfoot {
 | 
			
		||||
      border-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Main */
 | 
			
		||||
  main {
 | 
			
		||||
    padding: 30px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 35px;
 | 
			
		||||
  }
 | 
			
		||||
  main h1, h2, h3, h4 {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  main img {
 | 
			
		||||
    width: 40%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Create three unequal columns that floats next to each other */
 | 
			
		||||
  .column {
 | 
			
		||||
    float: left;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Left and right column */
 | 
			
		||||
  .column.side {
 | 
			
		||||
    width: 33.33%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Middle column */
 | 
			
		||||
  .column.middle {
 | 
			
		||||
    width: 33.33%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .column.middle .image img, .column.side .image img{
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    display: block; 
 | 
			
		||||
    margin: 0 0 3rem 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Left column */
 | 
			
		||||
  .column.left {
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Right column */
 | 
			
		||||
  .column.right {
 | 
			
		||||
    float: right;
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Clear floats after the columns */
 | 
			
		||||
  .row:after {
 | 
			
		||||
    content: "";
 | 
			
		||||
    display: table;
 | 
			
		||||
    clear: both;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Responsive layout: makes the three columns stack on top of each other instead of next to each other */
 | 
			
		||||
  @media (max-width: 1000px) {
 | 
			
		||||
    .column.side, .column.middle, .column.left, .column.right{
 | 
			
		||||
      width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Zoom */
 | 
			
		||||
  .zoom {
 | 
			
		||||
    transition: transform .2s; 
 | 
			
		||||
  }
 | 
			
		||||
  .zoom:hover {
 | 
			
		||||
    transform: scale(1.05); 
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Code & Blockquote */
 | 
			
		||||
.code {
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.75em;
 | 
			
		||||
  padding: 1em 1.5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code h1, .code h2{
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code h3, .code h4 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code a {
 | 
			
		||||
  text-decoration: underline; 
 | 
			
		||||
}
 | 
			
		||||
.code ul, .code ol, .code li {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code img{
 | 
			
		||||
  /* width: 80px; height: 80px; */
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset{
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  border-color: #dadada;
 | 
			
		||||
  border-style: groove;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset legend {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 90%;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code label{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.details{
 | 
			
		||||
  height: 750px;
 | 
			
		||||
}
 | 
			
		||||
.code.plan {
 | 
			
		||||
  height: 1150px;
 | 
			
		||||
}
 | 
			
		||||
.code.info{
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
.code.info img{
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  height: 75px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  transition: .5s ease;
 | 
			
		||||
  backface-visibility: hidden;
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes{
 | 
			
		||||
  height: 600px;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes p{
 | 
			
		||||
  height: 5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes:hover {
 | 
			
		||||
  filter: drop-shadow(5px 5px 10px #1f2c3d);
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas {
 | 
			
		||||
  height: 200px;
 | 
			
		||||
}
 | 
			
		||||
.code.promo img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 30%;
 | 
			
		||||
  height: 10%;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase, .code.resume {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase h3 {
 | 
			
		||||
  margin-top: 2em;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #d3ebff, 0 6px 20px 0 #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase select, .code.purchase select option {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  margin: 0.1em 0.5em 1em 0.5em;
 | 
			
		||||
  font-weight: bold !important;
 | 
			
		||||
  color: #1f2c3d !important;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* BlockQuotes */
 | 
			
		||||
  .blockquote {
 | 
			
		||||
    border-left: solid 4px #dadada;
 | 
			
		||||
      margin: 0 0 2em 0;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
      padding: 0.5em 0 0.5em 2em;
 | 
			
		||||
  }
 | 
			
		||||
  .blockquote.bio {
 | 
			
		||||
    height: 250px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Sketches */
 | 
			
		||||
  .sketches {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    display: block;
 | 
			
		||||
    line-height: 1.25em;
 | 
			
		||||
    padding: 1em 1em;
 | 
			
		||||
    overflow-x: auto;
 | 
			
		||||
    background: #1f2c3d;
 | 
			
		||||
    border-radius: 3px;
 | 
			
		||||
    height: 680px;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches h1, .sketches h2, .sketches h3, .sketches h4, .sketches p {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches img {
 | 
			
		||||
    width: 550px; 
 | 
			
		||||
    height: 550px;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches .description {
 | 
			
		||||
    color: #00020f;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsive layout */
 | 
			
		||||
  @media (max-width: 1500px) {
 | 
			
		||||
    .column.side .sketches, .column.middle .sketches {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 500px;
 | 
			
		||||
    }
 | 
			
		||||
    .column.side .sketches img, .column.middle .sketches img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 75%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  @media (max-width: 1150px) {
 | 
			
		||||
    .sketches img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 75%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
/* Promotions */
 | 
			
		||||
.promotions {
 | 
			
		||||
  max-width: 1000px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.promotions a {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
  border-style: dashed;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
 | 
			
		||||
}
 | 
			
		||||
.promotions button {
 | 
			
		||||
  margin: 1em 1em 0 1em;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  height: 125px;
 | 
			
		||||
  width: 125px;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
.controls {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #play {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #stop {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 750px) {
 | 
			
		||||
  .promotions button {
 | 
			
		||||
    margin: 0 1em 0 1em;
 | 
			
		||||
  }
 | 
			
		||||
  .promotions .imagen {
 | 
			
		||||
    margin-top: 2.5em;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 40px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
  /* Text Box */
 | 
			
		||||
  .textbox {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    padding: 15px 15px 10px 15px;
 | 
			
		||||
    margin: 10px 0 10px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    border-radius: 25px 0px 25px 0px;
 | 
			
		||||
    border: 2px solid #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  .textbox h1, .textbox h2, .textbox h3 {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Galery */
 | 
			
		||||
  .galery {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .columna {
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    float: left;
 | 
			
		||||
    width: 50%;
 | 
			
		||||
    padding-right: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .fila::after {
 | 
			
		||||
    content: "";
 | 
			
		||||
    clear: both;
 | 
			
		||||
    display: table;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .image img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .image.main img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Percentage bar */
 | 
			
		||||
  .bar {
 | 
			
		||||
    height: 15px;
 | 
			
		||||
    line-height: 15px;
 | 
			
		||||
    font-size: 13px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    text-align: right;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.seventyfive {
 | 
			
		||||
    width: 75%;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.fifty {
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.twentyfive {
 | 
			
		||||
    width: 25%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Timeline Image */
 | 
			
		||||
  .timeline h2 {
 | 
			
		||||
    padding-top: 50px;
 | 
			
		||||
  }
 | 
			
		||||
  .timeline img{
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    padding-bottom: 50px;
 | 
			
		||||
    padding-left: 15px;
 | 
			
		||||
    padding-right: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Sidebars */
 | 
			
		||||
  .sidebar.left {
 | 
			
		||||
      padding: 5px;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
      float: left;
 | 
			
		||||
      width: 300px;
 | 
			
		||||
      height: 370PX;
 | 
			
		||||
    color: #00020f;
 | 
			
		||||
      background-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  .sidebar.left a {
 | 
			
		||||
      color: #00020f;
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
      text-decoration: none;
 | 
			
		||||
  } 
 | 
			
		||||
  .sidebar.left a:hover {
 | 
			
		||||
      color: #00020f;
 | 
			
		||||
      text-decoration: underline;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsibe sidebar */
 | 
			
		||||
  @media (max-width: 1000px) {
 | 
			
		||||
    .sidebar.left {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Form */
 | 
			
		||||
  form {
 | 
			
		||||
    margin: auto;
 | 
			
		||||
    width: 65%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  form h1, h2, h3, h4 {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  label {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  input, textarea {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 27px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  textarea {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 150px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  legend {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #radio, #checkbox {
 | 
			
		||||
    width: auto;
 | 
			
		||||
    height: 15px;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .verify {
 | 
			
		||||
    font-size: 11px;
 | 
			
		||||
  }
 | 
			
		||||
  .verify a {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  .verify a:hover {
 | 
			
		||||
    color: rgb(138, 150, 32);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #submit, #register {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 35px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
    filter: brightness(105%);
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  #submit:hover, #register:hover {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #reset {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 12px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  #reset:hover {
 | 
			
		||||
    border:#000000;
 | 
			
		||||
    background-color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
  .file{
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  .file input{
 | 
			
		||||
    height: 110%;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .card-holder {
 | 
			
		||||
    width: 75%;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .input-cart-number, .fieldset-cvv, .select {
 | 
			
		||||
    width: 70px;
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
form select {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 400px;
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
  line-height: 1.3;
 | 
			
		||||
  padding: 0.2em 0.2em 0.2em 0.2em;
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  max-width: 100%; 
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 10px auto;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  box-shadow: 0 1px 0 1px #1f2c3d;
 | 
			
		||||
  border-radius: .3em;
 | 
			
		||||
  -moz-appearance: none;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
  appearance: none;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
form select::-ms-expand {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
form select:hover {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
form select:focus {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
  box-shadow: 0 0 1px 3px #1f2c3d;
 | 
			
		||||
  box-shadow: 0 0 0 3px -moz-mac-focusring;
 | 
			
		||||
  color: #1f2c3d; 
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
form select option {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
  /* Preformatted Text */
 | 
			
		||||
  pre {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  fieldset pre {
 | 
			
		||||
    color: red;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* Go Up button */
 | 
			
		||||
  .go-up {
 | 
			
		||||
    display: none;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    background:#1f2c3d;
 | 
			
		||||
    font-size: 20px;
 | 
			
		||||
    color:#d3ebff;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 5px;
 | 
			
		||||
    right: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Footer */
 | 
			
		||||
  footer {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 20px;
 | 
			
		||||
    margin-top: 100px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 80px;
 | 
			
		||||
  }
 | 
			
		||||
  .footer {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
  }
 | 
			
		||||
  footer button {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin: 1px;
 | 
			
		||||
    width: 120px;
 | 
			
		||||
    height: 25px;
 | 
			
		||||
    padding: 0px 0px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }
 | 
			
		||||
  @media (max-width: 500px) {
 | 
			
		||||
    footer {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
							
								
								
									
										815
									
								
								root/assets/css/highContrast.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										815
									
								
								root/assets/css/highContrast.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,815 @@
 | 
			
		||||
/* Imports */
 | 
			
		||||
@import url('manager.css');
 | 
			
		||||
@import url('admin.css');
 | 
			
		||||
 | 
			
		||||
/* Basic */
 | 
			
		||||
* {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
    margin: 0px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Headers */
 | 
			
		||||
  h1, h2, h3, h4 {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    text-transform: uppercase;
 | 
			
		||||
    margin: 0;
 | 
			
		||||
    padding: 0;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    font-size: 100%;
 | 
			
		||||
    vertical-align: baseline;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h2 {
 | 
			
		||||
      font-size: 95%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h3 {
 | 
			
		||||
    font-size: 85%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  h4 {
 | 
			
		||||
    font-size: 75%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Buttons */
 | 
			
		||||
  button, .button.large {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin: 10px;
 | 
			
		||||
    width: 150px;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    padding: 5px 10px;
 | 
			
		||||
    background-color :#1f2c3d;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color :#dadada;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }
 | 
			
		||||
  .button.large, button.danger {
 | 
			
		||||
    width: 95%;
 | 
			
		||||
  }
 | 
			
		||||
  button:hover, .button:hover {
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    background-color:#dadada;
 | 
			
		||||
    color:#1f2c3d;
 | 
			
		||||
    border-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  button.danger{
 | 
			
		||||
    background-color:#2c0000;
 | 
			
		||||
    border: 2px solid #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  button.danger:hover{
 | 
			
		||||
    background-color:#00020f;
 | 
			
		||||
    border: 2px solid #791515;
 | 
			
		||||
    color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* Header */
 | 
			
		||||
  .header {
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 15px;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    font-size: 18px;
 | 
			
		||||
  } 
 | 
			
		||||
  .header img {
 | 
			
		||||
    width: 13px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Header Menu */
 | 
			
		||||
  .menu {
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    text-align: right;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav a{
 | 
			
		||||
    text-decoration: none;
 | 
			
		||||
    color: inherit;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }  
 | 
			
		||||
  .menu nav li{
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    width: 150px;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    padding: 5px 10px;
 | 
			
		||||
    background-color :#1f2c3d;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    color :#dadada;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }      
 | 
			
		||||
  .menu nav li.danger{
 | 
			
		||||
    background-color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li:hover{
 | 
			
		||||
    background-color:#dadada;
 | 
			
		||||
    color:#1f2c3d;
 | 
			
		||||
    border-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li.danger:hover{
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    background-color: #2c0000;
 | 
			
		||||
    border-color: #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li>ul{
 | 
			
		||||
    display: none;
 | 
			
		||||
  }
 | 
			
		||||
  .menu nav li:hover>ul{
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: absolute;
 | 
			
		||||
    top: 29px;
 | 
			
		||||
    right: -1px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Sub Header */
 | 
			
		||||
  .header.sub {
 | 
			
		||||
    margin-bottom: 20px;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
      display: flex;
 | 
			
		||||
      flex-direction: row;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    justify-content: center;
 | 
			
		||||
    font-size: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  .header.sub .menu {
 | 
			
		||||
    margin-top: 0px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsive layout */
 | 
			
		||||
  @media (max-width: 850px) {
 | 
			
		||||
    .header.sub .menu nav li:hover>ul{
 | 
			
		||||
      display: block;
 | 
			
		||||
      position: relative;
 | 
			
		||||
      top: 5px;
 | 
			
		||||
      left: -51px;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Paragraphs */
 | 
			
		||||
  p {
 | 
			
		||||
    padding: 0;
 | 
			
		||||
      border: 0;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  a { 
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    text-decoration: none; 
 | 
			
		||||
  }
 | 
			
		||||
  a:hover{
 | 
			
		||||
    color:rgb(138, 150, 32);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Body */
 | 
			
		||||
  body {
 | 
			
		||||
    font-family: Arial, Helvetica, sans-serif;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Table */
 | 
			
		||||
  table {
 | 
			
		||||
    border-collapse: collapse;
 | 
			
		||||
    border-spacing: 0;
 | 
			
		||||
    margin: 0 0 2em 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  table a{
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
    table tbody tr {
 | 
			
		||||
      color: #1f2c3d;
 | 
			
		||||
      border: solid 1px #1f2c3d;
 | 
			
		||||
      border-left: 0;
 | 
			
		||||
      border-right: 0;
 | 
			
		||||
    }
 | 
			
		||||
      table tbody tr:nth-child(2n + 1) {
 | 
			
		||||
        background-color: rgba(255, 255, 255, 0.25);
 | 
			
		||||
      }
 | 
			
		||||
    table td {
 | 
			
		||||
      padding: 0.75em 0.75em;
 | 
			
		||||
    }
 | 
			
		||||
    table th {
 | 
			
		||||
      color: #1f2c3d;
 | 
			
		||||
      font-size: 0.9em;
 | 
			
		||||
      font-weight: 600;
 | 
			
		||||
      padding: 0.85em 0.85em 0.85em 0.85em;
 | 
			
		||||
    }
 | 
			
		||||
    table thead, table tfoot {
 | 
			
		||||
      border-bottom: solid 2px #dadada;
 | 
			
		||||
    }
 | 
			
		||||
    table.alt {
 | 
			
		||||
      border-collapse: separate;
 | 
			
		||||
    }
 | 
			
		||||
    table.alt tbody tr td {
 | 
			
		||||
      border: solid 1px #dadada;
 | 
			
		||||
      border-left-width: 0;
 | 
			
		||||
      border-top-width: 0;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
      table.alt tbody tr td:first-child {
 | 
			
		||||
        border-left-width: 1px;
 | 
			
		||||
      }
 | 
			
		||||
  
 | 
			
		||||
    table.alt tbody tr:first-child td {
 | 
			
		||||
      border-top-width: 1px;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    table.alt thead, table.alt tfoot {
 | 
			
		||||
      border-top: 0;
 | 
			
		||||
    }
 | 
			
		||||
    .tablelist a {
 | 
			
		||||
      color: #dadada;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Main */
 | 
			
		||||
  main {
 | 
			
		||||
    padding: 30px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-size: 35px;
 | 
			
		||||
  }
 | 
			
		||||
  main h1, h2, h3, h4 {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  main img {
 | 
			
		||||
    width: 40%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Create three unequal columns that floats next to each other */
 | 
			
		||||
  .column {
 | 
			
		||||
    float: left;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Left and right column */
 | 
			
		||||
  .column.side {
 | 
			
		||||
    width: 33.33%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Middle column */
 | 
			
		||||
  .column.middle {
 | 
			
		||||
    width: 33.33%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .column.middle .image img, .column.side .image img{
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    border: 0;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
    display: block; 
 | 
			
		||||
    margin: 0 0 3rem 0;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Left column */
 | 
			
		||||
  .column.left {
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Right column */
 | 
			
		||||
  .column.right {
 | 
			
		||||
    float: right;
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Clear floats after the columns */
 | 
			
		||||
  .row:after {
 | 
			
		||||
    content: "";
 | 
			
		||||
    display: table;
 | 
			
		||||
    clear: both;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Responsive layout: makes the three columns stack on top of each other instead of next to each other */
 | 
			
		||||
  @media (max-width: 1000px) {
 | 
			
		||||
    .column.side, .column.middle, .column.left, .column.right{
 | 
			
		||||
      width: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Zoom */
 | 
			
		||||
  .zoom {
 | 
			
		||||
    transition: transform .2s; 
 | 
			
		||||
  }
 | 
			
		||||
  .zoom:hover {
 | 
			
		||||
    transform: scale(1.05); 
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Code & Blockquote */
 | 
			
		||||
.code {
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.75em;
 | 
			
		||||
  padding: 1em 1.5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code h1, .code h2{
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code h3, .code h4 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code a {
 | 
			
		||||
  text-decoration: underline; 
 | 
			
		||||
}
 | 
			
		||||
.code ul, .code ol, .code li {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code img{
 | 
			
		||||
  /* width: 80px; height: 80px; */
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset{
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  border-color: #dadada;
 | 
			
		||||
  border-style: groove;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset legend {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 90%;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code label{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.details{
 | 
			
		||||
  height: 750px;
 | 
			
		||||
}
 | 
			
		||||
.code.plan {
 | 
			
		||||
  height: 1150px;
 | 
			
		||||
}
 | 
			
		||||
.code.info{
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
.code.info img{
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  height: 75px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  transition: .5s ease;
 | 
			
		||||
  backface-visibility: hidden;
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes{
 | 
			
		||||
  height: 600px;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes p{
 | 
			
		||||
  height: 5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes:hover {
 | 
			
		||||
  filter: drop-shadow(5px 5px 10px #1f2c3d);
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas {
 | 
			
		||||
  height: 230px;
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas img {
 | 
			
		||||
  margin: 0.7em 0 0.2em 0;
 | 
			
		||||
  width: 15em;
 | 
			
		||||
  height: 121px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.promo img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 30%;
 | 
			
		||||
  height: 10%;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase, .code.resume {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase h3 {
 | 
			
		||||
  margin-top: 2em;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #d3ebff, 0 6px 20px 0 #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase select, .code.purchase select option {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  margin: 0.1em 0.5em 1em 0.5em;
 | 
			
		||||
  font-weight: bold !important;
 | 
			
		||||
  color: #1f2c3d !important;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
  
 | 
			
		||||
  /* BlockQuotes */
 | 
			
		||||
  .blockquote {
 | 
			
		||||
    border-left: solid 4px #dadada;
 | 
			
		||||
      margin: 0 0 2em 0;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
      padding: 0.5em 0 0.5em 2em;
 | 
			
		||||
  }
 | 
			
		||||
  .blockquote.bio {
 | 
			
		||||
    height: 250px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Sketches */
 | 
			
		||||
  .sketches {
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    display: block;
 | 
			
		||||
    line-height: 1.25em;
 | 
			
		||||
    padding: 1em 1em;
 | 
			
		||||
    overflow-x: auto;
 | 
			
		||||
    background: #1f2c3d;
 | 
			
		||||
    border-radius: 3px;
 | 
			
		||||
    height: 680px;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches h1, .sketches h2, .sketches h3, .sketches h4, .sketches p {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches img {
 | 
			
		||||
    width: 550px; 
 | 
			
		||||
    height: 550px;
 | 
			
		||||
  }
 | 
			
		||||
  .sketches .description {
 | 
			
		||||
    color: #00020f;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsive layout */
 | 
			
		||||
  @media (max-width: 1500px) {
 | 
			
		||||
    .column.side .sketches, .column.middle .sketches {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 500px;
 | 
			
		||||
    }
 | 
			
		||||
    .column.side .sketches img, .column.middle .sketches img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 75%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  @media (max-width: 1150px) {
 | 
			
		||||
    .sketches img {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 75%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
/* Promotions */
 | 
			
		||||
.promotions {
 | 
			
		||||
  max-width: 1000px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.promotions a {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
  border-style: dashed;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
 | 
			
		||||
}
 | 
			
		||||
.promotions button {
 | 
			
		||||
  margin: 4em 1em 0 1em;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  width: 40px;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: 0px;
 | 
			
		||||
}
 | 
			
		||||
.controls {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #play {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: -1px;
 | 
			
		||||
}
 | 
			
		||||
.controls #stop {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: -5px;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 750px) {
 | 
			
		||||
  .promotions button {
 | 
			
		||||
    width: 10%;
 | 
			
		||||
    margin: 0.5em 1em 0 1em;
 | 
			
		||||
  }
 | 
			
		||||
  .promotions .imagen {
 | 
			
		||||
    margin-top: 0.2em;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 45px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
  /* Text Box */
 | 
			
		||||
  .textbox {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    padding: 15px 15px 10px 15px;
 | 
			
		||||
    margin: 10px 0 10px;
 | 
			
		||||
    overflow: hidden;
 | 
			
		||||
    border-radius: 25px 0px 25px 0px;
 | 
			
		||||
    border: 2px solid #d3ebff;
 | 
			
		||||
  }
 | 
			
		||||
  .textbox h1, .textbox h2, .textbox h3 {
 | 
			
		||||
    color: #d3ebff;
 | 
			
		||||
    text-align: left;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Galery */
 | 
			
		||||
  .galery {
 | 
			
		||||
    box-sizing: border-box;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .columna {
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    float: left;
 | 
			
		||||
    width: 50%;
 | 
			
		||||
    padding-right: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .fila::after {
 | 
			
		||||
    content: "";
 | 
			
		||||
    clear: both;
 | 
			
		||||
    display: table;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .image img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  .galery .image.main img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Percentage bar */
 | 
			
		||||
  .bar {
 | 
			
		||||
    height: 15px;
 | 
			
		||||
    line-height: 15px;
 | 
			
		||||
    font-size: 13px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    text-align: right;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.seventyfive {
 | 
			
		||||
    width: 75%;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.fifty {
 | 
			
		||||
    width: 50%;
 | 
			
		||||
  }
 | 
			
		||||
  .bar.twentyfive {
 | 
			
		||||
    width: 25%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Timeline Image */
 | 
			
		||||
  .timeline h2 {
 | 
			
		||||
    padding-top: 50px;
 | 
			
		||||
  }
 | 
			
		||||
  .timeline img{
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    padding-bottom: 50px;
 | 
			
		||||
    padding-left: 15px;
 | 
			
		||||
    padding-right: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Sidebars */
 | 
			
		||||
  .sidebar.left {
 | 
			
		||||
      padding: 5px;
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
    margin-bottom: 10px;
 | 
			
		||||
      float: left;
 | 
			
		||||
      width: 300px;
 | 
			
		||||
      height: 370PX;
 | 
			
		||||
    color: #00020f;
 | 
			
		||||
      background-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  .sidebar.left a {
 | 
			
		||||
      color: #00020f;
 | 
			
		||||
      font-weight: bold;
 | 
			
		||||
      text-decoration: none;
 | 
			
		||||
  } 
 | 
			
		||||
  .sidebar.left a:hover {
 | 
			
		||||
      color: #00020f;
 | 
			
		||||
      text-decoration: underline;
 | 
			
		||||
  }
 | 
			
		||||
  /* Responsibe sidebar */
 | 
			
		||||
  @media (max-width: 1000px) {
 | 
			
		||||
    .sidebar.left {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  
 | 
			
		||||
  /* Form */
 | 
			
		||||
  form {
 | 
			
		||||
    margin: auto;
 | 
			
		||||
    width: 65%;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  form h1, h2, h3, h4 {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  label {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  input, textarea {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 27px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    padding: 10px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  textarea {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 150px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  legend {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #radio, #checkbox {
 | 
			
		||||
    width: auto;
 | 
			
		||||
    height: 15px;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  .verify {
 | 
			
		||||
    font-size: 11px;
 | 
			
		||||
  }
 | 
			
		||||
  .verify a {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
  }
 | 
			
		||||
  .verify a:hover {
 | 
			
		||||
    color: rgb(138, 150, 32);
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #submit, #register {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 35px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
    filter: brightness(105%);
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  #submit:hover, #register:hover {
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  #reset {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 30px;
 | 
			
		||||
    border: 1px solid #dadada;
 | 
			
		||||
    background-color: #00020f;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 12px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
  }
 | 
			
		||||
  #reset:hover {
 | 
			
		||||
    border:#000000;
 | 
			
		||||
    background-color: #791515;
 | 
			
		||||
  }
 | 
			
		||||
  .file{
 | 
			
		||||
    margin-top: 10px;
 | 
			
		||||
  }
 | 
			
		||||
  .file input{
 | 
			
		||||
    height: 110%;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  .card-holder {
 | 
			
		||||
    width: 75%;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  .input-cart-number, .fieldset-cvv, .select {
 | 
			
		||||
    width: 70px;
 | 
			
		||||
    max-width: 100%;
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
form select {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 400px;
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
  line-height: 1.3;
 | 
			
		||||
  padding: 0.2em 0.2em 0.2em 0.2em;
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  max-width: 100%; 
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 10px auto;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  box-shadow: 0 1px 0 1px #1f2c3d;
 | 
			
		||||
  border-radius: .3em;
 | 
			
		||||
  -moz-appearance: none;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
  appearance: none;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
form select::-ms-expand {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
form select:hover {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
form select:focus {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
  box-shadow: 0 0 1px 3px #1f2c3d;
 | 
			
		||||
  box-shadow: 0 0 0 3px -moz-mac-focusring;
 | 
			
		||||
  color: #1f2c3d; 
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
form select option {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
  
 | 
			
		||||
  /* Preformatted Text */
 | 
			
		||||
  pre {
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  fieldset pre {
 | 
			
		||||
    color: red;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  /* Go Up button */
 | 
			
		||||
  .go-up {
 | 
			
		||||
    display: none;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    background:#1f2c3d;
 | 
			
		||||
    font-size: 20px;
 | 
			
		||||
    color:#d3ebff;
 | 
			
		||||
    cursor: pointer;
 | 
			
		||||
    position: fixed;
 | 
			
		||||
    bottom: 5px;
 | 
			
		||||
    right: 20px;
 | 
			
		||||
  }
 | 
			
		||||
  
 | 
			
		||||
  /* Footer */
 | 
			
		||||
  footer {
 | 
			
		||||
    text-align: left;
 | 
			
		||||
    background-color: #1f2c3d;
 | 
			
		||||
    color: #dadada;
 | 
			
		||||
    padding: 20px;
 | 
			
		||||
    margin-top: 100px;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 80px;
 | 
			
		||||
  }
 | 
			
		||||
  .footer {
 | 
			
		||||
    text-align: right;
 | 
			
		||||
  }
 | 
			
		||||
  footer button {
 | 
			
		||||
    display: inline-block;
 | 
			
		||||
    margin: 1px;
 | 
			
		||||
    width: 120px;
 | 
			
		||||
    height: 25px;
 | 
			
		||||
    padding: 0px 0px;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    position: relative;
 | 
			
		||||
  }
 | 
			
		||||
  @media (max-width: 500px) {
 | 
			
		||||
    footer {
 | 
			
		||||
      width: 100%;
 | 
			
		||||
      height: 100%;
 | 
			
		||||
    }
 | 
			
		||||
  }
 | 
			
		||||
							
								
								
									
										794
									
								
								root/assets/css/main-FER_SURFACE.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										794
									
								
								root/assets/css/main-FER_SURFACE.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,794 @@
 | 
			
		||||
/* Imports */
 | 
			
		||||
@import url('manager.css');
 | 
			
		||||
@import url('admin.css');
 | 
			
		||||
 | 
			
		||||
/* Basic */
 | 
			
		||||
* {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Headers */
 | 
			
		||||
h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  border: 0;
 | 
			
		||||
	font-size: 100%;
 | 
			
		||||
	vertical-align: baseline;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h2 {
 | 
			
		||||
	font-size: 95%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h3 {
 | 
			
		||||
  font-size: 85%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h4 {
 | 
			
		||||
  font-size: 75%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Buttons */
 | 
			
		||||
button, .button.large{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  width: 150px;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
  background-color:#1f2c3d;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color:#d3ebff;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.button.large, button.danger {
 | 
			
		||||
  width: 95%;
 | 
			
		||||
}
 | 
			
		||||
button:hover, .button:hover {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  color:#1f2c3d;
 | 
			
		||||
  border-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
button.danger{
 | 
			
		||||
  background-color:#2c0000;
 | 
			
		||||
  border: 2px solid #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
button.danger:hover{
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  border: 2px solid #791515;
 | 
			
		||||
  color: #791515;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Header */
 | 
			
		||||
.header {
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 15px;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-size: 18px;
 | 
			
		||||
} 
 | 
			
		||||
.header img {
 | 
			
		||||
  width: 13px;
 | 
			
		||||
}
 | 
			
		||||
/* Header Menu */
 | 
			
		||||
.menu {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
.menu nav a {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 150px;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
  background-color :#1f2c3d;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color :#d3ebff;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li.danger{
 | 
			
		||||
  background-color: #791515;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li:hover{
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  color:#1f2c3d;
 | 
			
		||||
  border-color: #1f2c3d;
 | 
			
		||||
} 
 | 
			
		||||
.menu nav li.danger:hover{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  background-color: #2c0000;
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li>ul{
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li:hover>ul{
 | 
			
		||||
  display: block;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 29px;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
}
 | 
			
		||||
/* Sub Header */
 | 
			
		||||
.header.sub {
 | 
			
		||||
  margin-bottom: 20px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
	display: flex;
 | 
			
		||||
	flex-direction: row;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
.header.sub .menu {
 | 
			
		||||
  margin-top: 0px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 850px) {
 | 
			
		||||
  .header.sub .menu nav li:hover>ul{
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    top: 5px;
 | 
			
		||||
    left: -51px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Paragraphs */
 | 
			
		||||
p {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
	border: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a { 
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  text-decoration: none; 
 | 
			
		||||
}
 | 
			
		||||
a:hover{
 | 
			
		||||
  color:rgb(138, 150, 32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Body */
 | 
			
		||||
body {
 | 
			
		||||
  font-family: Arial, Helvetica, sans-serif;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  color: #000000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Table */
 | 
			
		||||
table {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
	border-spacing: 0;
 | 
			
		||||
  margin: 0 0 2em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
table a{
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
  table tbody tr {
 | 
			
		||||
    border: solid 1px #1f2c3d;
 | 
			
		||||
    border-left: 0;
 | 
			
		||||
    border-right: 0;
 | 
			
		||||
  }
 | 
			
		||||
    table tbody tr:nth-child(2n + 1) {
 | 
			
		||||
      background-color: rgba(144, 144, 144, 0.25);
 | 
			
		||||
    }
 | 
			
		||||
  table td {
 | 
			
		||||
    padding: 0.75em 0.75em;
 | 
			
		||||
  }
 | 
			
		||||
  table th {
 | 
			
		||||
    color: #1f2c3d;
 | 
			
		||||
    font-size: 0.9em;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    padding: 0.85em 0.85em 0.85em 0.85em;
 | 
			
		||||
  }
 | 
			
		||||
  table thead, table tfoot {
 | 
			
		||||
    border-bottom: solid 2px #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  table.alt {
 | 
			
		||||
    border-collapse: separate;
 | 
			
		||||
  }
 | 
			
		||||
  table.alt tbody tr td {
 | 
			
		||||
    border: solid 1px #1f2c3d;
 | 
			
		||||
    border-left-width: 0;
 | 
			
		||||
    border-top-width: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    table.alt tbody tr td:first-child {
 | 
			
		||||
      border-left-width: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  table.alt tbody tr:first-child td {
 | 
			
		||||
    border-top-width: 1px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  table.alt thead, table.alt tfoot {
 | 
			
		||||
    border-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Main */
 | 
			
		||||
main {
 | 
			
		||||
  padding: 30px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 35px;
 | 
			
		||||
}
 | 
			
		||||
main h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
}
 | 
			
		||||
main img {
 | 
			
		||||
  width: 40%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Create three unequal columns that floats next to each other */
 | 
			
		||||
.column {
 | 
			
		||||
  float: left;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Left and right column */
 | 
			
		||||
.column.side {
 | 
			
		||||
  width: 33.33%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Middle column */
 | 
			
		||||
.column.middle {
 | 
			
		||||
  width: 33.33%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.column.middle .image img, .column.side .image img{
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  border: 0;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  display: block; 
 | 
			
		||||
  margin: 0 0 3rem 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Left column */
 | 
			
		||||
.column.left {
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Right column */
 | 
			
		||||
.column.right {
 | 
			
		||||
  float: right;
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Clear floats after the columns */
 | 
			
		||||
.row:after {
 | 
			
		||||
  content: "";
 | 
			
		||||
  display: table;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Responsive layout: makes the three columns stack on top of each other instead of next to each other */
 | 
			
		||||
@media (max-width: 1000px) {
 | 
			
		||||
  .column.side, .column.middle, .column.left, .column.right{
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Zoom */
 | 
			
		||||
.zoom {
 | 
			
		||||
  transition: transform .2s; 
 | 
			
		||||
}
 | 
			
		||||
.zoom:hover {
 | 
			
		||||
  transform: scale(1.05); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Code & Blockquote */
 | 
			
		||||
.code {
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.75em;
 | 
			
		||||
  padding: 1em 1.5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code h1, .code h2{
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code h3, .code h4 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code a {
 | 
			
		||||
  text-decoration: underline; 
 | 
			
		||||
}
 | 
			
		||||
.code ul, .code ol, .code li {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code img{
 | 
			
		||||
  /* width: 80px; height: 80px; */
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset{
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  border-color: #dadada;
 | 
			
		||||
  border-style: groove;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset legend {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 90%;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code label{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.details{
 | 
			
		||||
  height: 750px;
 | 
			
		||||
}
 | 
			
		||||
.code.plan {
 | 
			
		||||
  height: 1150px;
 | 
			
		||||
}
 | 
			
		||||
.code.info {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
.code.info img {
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  height: 75px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  transition: .5s ease;
 | 
			
		||||
  backface-visibility: hidden;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes {
 | 
			
		||||
  height: 600px;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes p {
 | 
			
		||||
  height: 5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes:hover {
 | 
			
		||||
  filter: drop-shadow(5px 5px 10px #1f2c3d);
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas {
 | 
			
		||||
  height: 200px;
 | 
			
		||||
}
 | 
			
		||||
.code.promo img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 30%;
 | 
			
		||||
  height: 10%;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase, .code.resume {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase h3 {
 | 
			
		||||
  margin-top: 2em;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #d3ebff, 0 6px 20px 0 #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase select, .code.purchase select option {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  margin: 0.1em 0.5em 1em 0.5em;
 | 
			
		||||
  font-weight: bold !important;
 | 
			
		||||
  color: #1f2c3d !important;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* BlockQuotes */
 | 
			
		||||
.blockquote {
 | 
			
		||||
  border-left: solid 4px #dadada;
 | 
			
		||||
	margin: 0 0 2em 0;
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
	padding: 0.5em 0 0.5em 2em;
 | 
			
		||||
}
 | 
			
		||||
.blockquote.bio {
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Sketches */
 | 
			
		||||
.sketches {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.25em;
 | 
			
		||||
  padding: 1em 1em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  height: 680px;
 | 
			
		||||
}
 | 
			
		||||
.sketches h1, .sketches h2, .sketches h3, .sketches h4, .sketches p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.sketches img {
 | 
			
		||||
  width: 550px; 
 | 
			
		||||
  height: 550px;
 | 
			
		||||
}
 | 
			
		||||
.sketches .description {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 1500px) {
 | 
			
		||||
  .column.side .sketches, .column.middle .sketches {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 500px;
 | 
			
		||||
  }
 | 
			
		||||
  .column.side .sketches img, .column.middle .sketches img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 75%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 1150px) {
 | 
			
		||||
  .sketches img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 75%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Text Box */
 | 
			
		||||
.textbox {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  padding: 15px 15px 10px 15px;
 | 
			
		||||
  margin: 10px 0 10px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  border-radius: 25px 0px 25px 0px;
 | 
			
		||||
  border: 2px solid #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.textbox h1, .textbox h2, .textbox h3 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Galery */
 | 
			
		||||
.galery {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
.galery .columna {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  float: left;
 | 
			
		||||
  width: 50%;
 | 
			
		||||
  padding-right: 10px;
 | 
			
		||||
}
 | 
			
		||||
.galery .fila::after {
 | 
			
		||||
  content: "";
 | 
			
		||||
  clear: both;
 | 
			
		||||
  display: table;
 | 
			
		||||
}
 | 
			
		||||
.galery .image img {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
.galery .image.main img {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Promotions */
 | 
			
		||||
.promotions {
 | 
			
		||||
  max-width: 1000px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.promotions a {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
  border-style: dashed;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
 | 
			
		||||
}
 | 
			
		||||
.promotions button {
 | 
			
		||||
  margin: 1em 1em 0 1em;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  height: 125px;
 | 
			
		||||
  width: 125px;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
.controls {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #play {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #stop {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 750px) {
 | 
			
		||||
  .promotions button {
 | 
			
		||||
    margin: 0 1em 0 1em;
 | 
			
		||||
  }
 | 
			
		||||
  .promotions .imagen {
 | 
			
		||||
    margin-top: 2.5em;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 40px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Percentage bar */
 | 
			
		||||
.bar {
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  line-height: 15px;
 | 
			
		||||
  font-size: 13px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  color: #00020f;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
.bar.seventyfive {
 | 
			
		||||
  width: 75%;
 | 
			
		||||
}
 | 
			
		||||
.bar.fifty {
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
.bar.twentyfive {
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Timeline Image */
 | 
			
		||||
.timeline h2 {
 | 
			
		||||
  padding-top: 50px;
 | 
			
		||||
}
 | 
			
		||||
.timeline img{
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding-bottom: 50px;
 | 
			
		||||
  padding-left: 15px;
 | 
			
		||||
  padding-right: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Sidebars */
 | 
			
		||||
.sidebar.left {
 | 
			
		||||
	padding: 5px;
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
	float: left;
 | 
			
		||||
	width: 300px;
 | 
			
		||||
	height: 370PX;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
	background-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
.sidebar.left a {
 | 
			
		||||
	color: #d3ebff;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
} 
 | 
			
		||||
.sidebar.left a:hover {
 | 
			
		||||
	color: #d3ebff;
 | 
			
		||||
	text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
/* Responsibe sidebar */
 | 
			
		||||
@media (max-width: 1000px) {
 | 
			
		||||
  .sidebar.left {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Form */
 | 
			
		||||
form {
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  width: 65%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
form h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
label {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input, textarea {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 27px;
 | 
			
		||||
  border: 1px solid #000000;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textarea {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#radio, #checkbox {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.verify {
 | 
			
		||||
  font-size: 11px;
 | 
			
		||||
}
 | 
			
		||||
.verify a {
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
.verify a:hover {
 | 
			
		||||
  color: rgb(138, 150, 32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#submit, #register {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 35px;
 | 
			
		||||
  border: 1px solid #000000;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
  filter: brightness(105%);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
#submit:hover, #register:hover {
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#reset {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  border: 1px solid #dadada;
 | 
			
		||||
  background-color: #00020f;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
#reset:hover {
 | 
			
		||||
  border:#000000;
 | 
			
		||||
  background-color: #791515;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.file{
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
}
 | 
			
		||||
.file input{
 | 
			
		||||
  height: 110%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-holder {
 | 
			
		||||
  width: 75%;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
.input-cart-number, .fieldset-cvv, .select {
 | 
			
		||||
  width: 70px;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
form select {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 400px;
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
  line-height: 1.3;
 | 
			
		||||
  padding: 0.2em 0.2em 0.2em 0.2em;
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  max-width: 100%; 
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 10px auto;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  box-shadow: 0 1px 0 1px #1f2c3d;
 | 
			
		||||
  border-radius: .3em;
 | 
			
		||||
  -moz-appearance: none;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
  appearance: none;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
form select::-ms-expand {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
form select:hover {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
form select:focus {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
  box-shadow: 0 0 1px 3px #1f2c3d;
 | 
			
		||||
  box-shadow: 0 0 0 3px -moz-mac-focusring;
 | 
			
		||||
  color: #1f2c3d; 
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
form select option {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Preformatted Text */
 | 
			
		||||
pre {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fieldset pre {
 | 
			
		||||
  color: red;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Go Up button */
 | 
			
		||||
.go-up {
 | 
			
		||||
  display: none;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background:#1f2c3d;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  color:#d3ebff;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  bottom: 5px;
 | 
			
		||||
  right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Footer */
 | 
			
		||||
footer {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
  margin-top: 100px;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 80px;
 | 
			
		||||
}
 | 
			
		||||
.footer {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
footer button {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  width: 115px;
 | 
			
		||||
  height: 25px;
 | 
			
		||||
  padding: 0px 0px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 500px) {
 | 
			
		||||
  footer {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										807
									
								
								root/assets/css/main.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										807
									
								
								root/assets/css/main.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,807 @@
 | 
			
		||||
/* Imports */
 | 
			
		||||
@import url('manager.css');
 | 
			
		||||
@import url('admin.css');
 | 
			
		||||
 | 
			
		||||
/* Basic */
 | 
			
		||||
* {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 0px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Headers */
 | 
			
		||||
h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  padding: 0;
 | 
			
		||||
  border: 0;
 | 
			
		||||
	font-size: 100%;
 | 
			
		||||
	vertical-align: baseline;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h2 {
 | 
			
		||||
	font-size: 95%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h3 {
 | 
			
		||||
  font-size: 85%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
h4 {
 | 
			
		||||
  font-size: 75%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Buttons */
 | 
			
		||||
button, .button.large{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  width: 150px;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
  background-color:#1f2c3d;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color:#d3ebff;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.button.large, button.danger {
 | 
			
		||||
  width: 95%;
 | 
			
		||||
}
 | 
			
		||||
button:hover, .button:hover {
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  color:#1f2c3d;
 | 
			
		||||
  border-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
button.danger{
 | 
			
		||||
  background-color:#2c0000;
 | 
			
		||||
  border: 2px solid #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
button.danger:hover{
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  border: 2px solid #791515;
 | 
			
		||||
  color: #791515;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Header */
 | 
			
		||||
.header {
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 15px;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-size: 18px;
 | 
			
		||||
} 
 | 
			
		||||
.header img {
 | 
			
		||||
  width: 13px;
 | 
			
		||||
}
 | 
			
		||||
/* Header Menu */
 | 
			
		||||
.menu {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
.menu nav a {
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  color: inherit;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li{
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  width: 150px;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  padding: 5px 10px;
 | 
			
		||||
  background-color :#1f2c3d;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  color :#d3ebff;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li.danger{
 | 
			
		||||
  background-color: #791515;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li:hover{
 | 
			
		||||
  background-color:#d3ebff;
 | 
			
		||||
  color:#1f2c3d;
 | 
			
		||||
  border-color: #1f2c3d;
 | 
			
		||||
} 
 | 
			
		||||
.menu nav li.danger:hover{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  background-color: #2c0000;
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li>ul{
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
.menu nav li:hover>ul{
 | 
			
		||||
  display: block;
 | 
			
		||||
  position: absolute;
 | 
			
		||||
  top: 29px;
 | 
			
		||||
  right: -1px;
 | 
			
		||||
}
 | 
			
		||||
/* Sub Header */
 | 
			
		||||
.header.sub {
 | 
			
		||||
  margin-bottom: 20px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
	display: flex;
 | 
			
		||||
	flex-direction: row;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  justify-content: center;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
}
 | 
			
		||||
.header.sub .menu {
 | 
			
		||||
  margin-top: 0px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 850px) {
 | 
			
		||||
  .header.sub .menu nav li:hover>ul{
 | 
			
		||||
    display: block;
 | 
			
		||||
    position: relative;
 | 
			
		||||
    top: 5px;
 | 
			
		||||
    left: -51px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Paragraphs */
 | 
			
		||||
p {
 | 
			
		||||
  padding: 0;
 | 
			
		||||
	border: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
a { 
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  text-decoration: none; 
 | 
			
		||||
}
 | 
			
		||||
a:hover{
 | 
			
		||||
  color:rgb(138, 150, 32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Body */
 | 
			
		||||
body {
 | 
			
		||||
  font-family: Arial, Helvetica, sans-serif;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  color: #000000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Table */
 | 
			
		||||
table {
 | 
			
		||||
  border-collapse: collapse;
 | 
			
		||||
	border-spacing: 0;
 | 
			
		||||
  margin: 0 0 2em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
table a{
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
  table tbody tr {
 | 
			
		||||
    border: solid 1px #1f2c3d;
 | 
			
		||||
    border-left: 0;
 | 
			
		||||
    border-right: 0;
 | 
			
		||||
  }
 | 
			
		||||
    table tbody tr:nth-child(2n + 1) {
 | 
			
		||||
      background-color: rgba(144, 144, 144, 0.25);
 | 
			
		||||
    }
 | 
			
		||||
  table td {
 | 
			
		||||
    padding: 0.75em 0.75em;
 | 
			
		||||
  }
 | 
			
		||||
  table th {
 | 
			
		||||
    color: #1f2c3d;
 | 
			
		||||
    font-size: 0.9em;
 | 
			
		||||
    font-weight: 600;
 | 
			
		||||
    padding: 0.85em 0.85em 0.85em 0.85em;
 | 
			
		||||
  }
 | 
			
		||||
  table thead, table tfoot {
 | 
			
		||||
    border-bottom: solid 2px #1f2c3d;
 | 
			
		||||
  }
 | 
			
		||||
  table.alt {
 | 
			
		||||
    border-collapse: separate;
 | 
			
		||||
  }
 | 
			
		||||
  table.alt tbody tr td {
 | 
			
		||||
    border: solid 1px #1f2c3d;
 | 
			
		||||
    border-left-width: 0;
 | 
			
		||||
    border-top-width: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    table.alt tbody tr td:first-child {
 | 
			
		||||
      border-left-width: 1px;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
  table.alt tbody tr:first-child td {
 | 
			
		||||
    border-top-width: 1px;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  table.alt thead, table.alt tfoot {
 | 
			
		||||
    border-top: 0;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Main */
 | 
			
		||||
main {
 | 
			
		||||
  padding: 30px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-size: 35px;
 | 
			
		||||
}
 | 
			
		||||
main h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
}
 | 
			
		||||
main img {
 | 
			
		||||
  width: 40%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Create three unequal columns that floats next to each other */
 | 
			
		||||
.column {
 | 
			
		||||
  float: left;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Left and right column */
 | 
			
		||||
.column.side {
 | 
			
		||||
  width: 33.33%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Middle column */
 | 
			
		||||
.column.middle {
 | 
			
		||||
  width: 33.33%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.column.middle .image img, .column.side .image img{
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  border: 0;
 | 
			
		||||
  position: relative;
 | 
			
		||||
  border-radius: 4px;
 | 
			
		||||
  display: block; 
 | 
			
		||||
  margin: 0 0 3rem 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Left column */
 | 
			
		||||
.column.left {
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Right column */
 | 
			
		||||
.column.right {
 | 
			
		||||
  float: right;
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Clear floats after the columns */
 | 
			
		||||
.row:after {
 | 
			
		||||
  content: "";
 | 
			
		||||
  display: table;
 | 
			
		||||
  clear: both;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Responsive layout: makes the three columns stack on top of each other instead of next to each other */
 | 
			
		||||
@media (max-width: 1000px) {
 | 
			
		||||
  .column.side, .column.middle, .column.left, .column.right{
 | 
			
		||||
    width: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Zoom */
 | 
			
		||||
.zoom {
 | 
			
		||||
  transition: transform .2s; 
 | 
			
		||||
}
 | 
			
		||||
.zoom:hover {
 | 
			
		||||
  transform: scale(1.05); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Code & Blockquote */
 | 
			
		||||
.code {
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  margin: 10px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.75em;
 | 
			
		||||
  padding: 1em 1.5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code h1, .code h2{
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code h3, .code h4 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code a {
 | 
			
		||||
  text-decoration: underline; 
 | 
			
		||||
}
 | 
			
		||||
.code ul, .code ol, .code li {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.code img{
 | 
			
		||||
  /* width: 80px; height: 80px; */
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset{
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  border-color: #dadada;
 | 
			
		||||
  border-style: groove;
 | 
			
		||||
}
 | 
			
		||||
.code fieldset legend {
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  font-size: 90%;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code label{
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.details{
 | 
			
		||||
  height: 750px;
 | 
			
		||||
}
 | 
			
		||||
.code.plan {
 | 
			
		||||
  height: 1150px;
 | 
			
		||||
}
 | 
			
		||||
.code.info {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
.code.info img {
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  height: 75px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  transition: .5s ease;
 | 
			
		||||
  backface-visibility: hidden;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes {
 | 
			
		||||
  height: 600px;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes p {
 | 
			
		||||
  height: 5em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  overflow-y: auto;
 | 
			
		||||
}
 | 
			
		||||
.code.showtimes:hover {
 | 
			
		||||
  filter: drop-shadow(5px 5px 10px #1f2c3d);
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas {
 | 
			
		||||
  height: 230px;
 | 
			
		||||
}
 | 
			
		||||
.code.cinemas img {
 | 
			
		||||
  margin: 0.7em 0 0.2em 0;
 | 
			
		||||
  width: 15em;
 | 
			
		||||
  height: 121px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.promo img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 30%;
 | 
			
		||||
  height: 10%;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #00020f, 0 6px 20px 0 #00020f;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase, .code.resume {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase h3 {
 | 
			
		||||
  margin-top: 2em;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase img {
 | 
			
		||||
  margin: 0.1em 0 0.8em 0;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 #d3ebff, 0 6px 20px 0 #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.code.purchase select, .code.purchase select option {
 | 
			
		||||
  display: block;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  margin: 0.1em 0.5em 1em 0.5em;
 | 
			
		||||
  font-weight: bold !important;
 | 
			
		||||
  color: #1f2c3d !important;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-transform: uppercase;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* BlockQuotes */
 | 
			
		||||
.blockquote {
 | 
			
		||||
  border-left: solid 4px #dadada;
 | 
			
		||||
	margin: 0 0 2em 0;
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
	padding: 0.5em 0 0.5em 2em;
 | 
			
		||||
}
 | 
			
		||||
.blockquote.bio {
 | 
			
		||||
  height: 250px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Sketches */
 | 
			
		||||
.sketches {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  display: block;
 | 
			
		||||
  line-height: 1.25em;
 | 
			
		||||
  padding: 1em 1em;
 | 
			
		||||
  overflow-x: auto;
 | 
			
		||||
  background: #1f2c3d;
 | 
			
		||||
  border-radius: 3px;
 | 
			
		||||
  height: 680px;
 | 
			
		||||
}
 | 
			
		||||
.sketches h1, .sketches h2, .sketches h3, .sketches h4, .sketches p {
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
}
 | 
			
		||||
.sketches img {
 | 
			
		||||
  width: 550px; 
 | 
			
		||||
  height: 550px;
 | 
			
		||||
}
 | 
			
		||||
.sketches .description {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 1500px) {
 | 
			
		||||
  .column.side .sketches, .column.middle .sketches {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 500px;
 | 
			
		||||
  }
 | 
			
		||||
  .column.side .sketches img, .column.middle .sketches img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 75%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 1150px) {
 | 
			
		||||
  .sketches img {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 75%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Text Box */
 | 
			
		||||
.textbox {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  padding: 15px 15px 10px 15px;
 | 
			
		||||
  margin: 10px 0 10px;
 | 
			
		||||
  overflow: hidden;
 | 
			
		||||
  border-radius: 25px 0px 25px 0px;
 | 
			
		||||
  border: 2px solid #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
.textbox h1, .textbox h2, .textbox h3 {
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  text-align: left;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Galery */
 | 
			
		||||
.galery {
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
}
 | 
			
		||||
.galery .columna {
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  float: left;
 | 
			
		||||
  width: 50%;
 | 
			
		||||
  padding-right: 10px;
 | 
			
		||||
}
 | 
			
		||||
.galery .fila::after {
 | 
			
		||||
  content: "";
 | 
			
		||||
  clear: both;
 | 
			
		||||
  display: table;
 | 
			
		||||
}
 | 
			
		||||
.galery .image img {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
.galery .image.main img {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Promotions */
 | 
			
		||||
.promotions {
 | 
			
		||||
  max-width: 1000px;
 | 
			
		||||
  margin: 0 auto;
 | 
			
		||||
  display: flex;
 | 
			
		||||
}
 | 
			
		||||
.promotions a {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
  display: block;
 | 
			
		||||
  margin-left: auto;
 | 
			
		||||
  margin-right: auto;
 | 
			
		||||
  background-size: cover;
 | 
			
		||||
  border-radius: 10px;
 | 
			
		||||
  border-style: dashed;
 | 
			
		||||
  box-shadow: 0 4px 8px 0 rgba(0, 0, 0, 0.2), 0 6px 20px 0 rgba(255, 255, 255, 0.19);
 | 
			
		||||
}
 | 
			
		||||
.promotions button {
 | 
			
		||||
  margin: 4em 1em 0 1em;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  height: 40px;
 | 
			
		||||
  width: 40px;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: 0px;
 | 
			
		||||
}
 | 
			
		||||
.controls {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.controls #play {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: -1px;
 | 
			
		||||
}
 | 
			
		||||
.controls #stop {
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  width: 30px;
 | 
			
		||||
  border-radius: 25px;
 | 
			
		||||
  background-repeat: no-repeat;
 | 
			
		||||
  background-position: center;
 | 
			
		||||
  text-indent: -5px;
 | 
			
		||||
}
 | 
			
		||||
/* Responsive layout */
 | 
			
		||||
@media (max-width: 750px) {
 | 
			
		||||
  .promotions button {
 | 
			
		||||
    width: 10%;
 | 
			
		||||
    margin: 0.5em 1em 0 1em;
 | 
			
		||||
  }
 | 
			
		||||
  .promotions .imagen {
 | 
			
		||||
    margin-top: 0.2em;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 45px;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Percentage bar */
 | 
			
		||||
.bar {
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  line-height: 15px;
 | 
			
		||||
  font-size: 13px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  color: #00020f;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
.bar.seventyfive {
 | 
			
		||||
  width: 75%;
 | 
			
		||||
}
 | 
			
		||||
.bar.fifty {
 | 
			
		||||
  width: 50%;
 | 
			
		||||
}
 | 
			
		||||
.bar.twentyfive {
 | 
			
		||||
  width: 25%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Timeline Image */
 | 
			
		||||
.timeline h2 {
 | 
			
		||||
  padding-top: 50px;
 | 
			
		||||
}
 | 
			
		||||
.timeline img{
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  padding-bottom: 50px;
 | 
			
		||||
  padding-left: 15px;
 | 
			
		||||
  padding-right: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Sidebars */
 | 
			
		||||
.sidebar.left {
 | 
			
		||||
	padding: 5px;
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
  margin-bottom: 10px;
 | 
			
		||||
	float: left;
 | 
			
		||||
	width: 300px;
 | 
			
		||||
	height: 370PX;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
	background-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
.sidebar.left a {
 | 
			
		||||
	color: #d3ebff;
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
	text-decoration: none;
 | 
			
		||||
} 
 | 
			
		||||
.sidebar.left a:hover {
 | 
			
		||||
	color: #d3ebff;
 | 
			
		||||
	text-decoration: underline;
 | 
			
		||||
}
 | 
			
		||||
/* Responsibe sidebar */
 | 
			
		||||
@media (max-width: 1000px) {
 | 
			
		||||
  .sidebar.left {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Form */
 | 
			
		||||
form {
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  width: 65%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
form h1, h2, h3, h4 {
 | 
			
		||||
  color: #363636;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
label {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
input, textarea {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 27px;
 | 
			
		||||
  border: 1px solid #000000;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
textarea {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 150px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#radio, #checkbox {
 | 
			
		||||
  width: auto;
 | 
			
		||||
  height: 15px;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.verify {
 | 
			
		||||
  font-size: 11px;
 | 
			
		||||
}
 | 
			
		||||
.verify a {
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
.verify a:hover {
 | 
			
		||||
  color: rgb(138, 150, 32);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#submit, #register {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 35px;
 | 
			
		||||
  border: 1px solid #000000;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 15px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
  filter: brightness(105%);
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
#submit:hover, #register:hover {
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
#reset {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 30px;
 | 
			
		||||
  border: 1px solid #dadada;
 | 
			
		||||
  background-color: #00020f;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
#reset:hover {
 | 
			
		||||
  border:#000000;
 | 
			
		||||
  background-color: #791515;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.file{
 | 
			
		||||
  margin-top: 10px;
 | 
			
		||||
}
 | 
			
		||||
.file input{
 | 
			
		||||
  height: 110%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.card-holder {
 | 
			
		||||
  width: 75%;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
.input-cart-number, .fieldset-cvv, .select {
 | 
			
		||||
  width: 70px;
 | 
			
		||||
  max-width: 100%;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
form select {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  font-size: 14px;
 | 
			
		||||
  font-weight: 400px;
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
  line-height: 1.3;
 | 
			
		||||
  padding: 0.2em 0.2em 0.2em 0.2em;
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  max-width: 100%; 
 | 
			
		||||
  box-sizing: border-box;
 | 
			
		||||
  margin: 10px auto;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  box-shadow: 0 1px 0 1px #1f2c3d;
 | 
			
		||||
  border-radius: .3em;
 | 
			
		||||
  -moz-appearance: none;
 | 
			
		||||
  -webkit-appearance: none;
 | 
			
		||||
  appearance: none;
 | 
			
		||||
  background-color: #fff;
 | 
			
		||||
}
 | 
			
		||||
form select::-ms-expand {
 | 
			
		||||
  display: none;
 | 
			
		||||
}
 | 
			
		||||
form select:hover {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
form select:focus {
 | 
			
		||||
  border-color: #d3ebff;
 | 
			
		||||
  box-shadow: 0 0 1px 3px #1f2c3d;
 | 
			
		||||
  box-shadow: 0 0 0 3px -moz-mac-focusring;
 | 
			
		||||
  color: #1f2c3d; 
 | 
			
		||||
  outline: none;
 | 
			
		||||
}
 | 
			
		||||
form select option {
 | 
			
		||||
  font-weight: normal;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Preformatted Text */
 | 
			
		||||
pre {
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fieldset pre {
 | 
			
		||||
  color: red;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* Go Up button */
 | 
			
		||||
.go-up {
 | 
			
		||||
  display: none;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  background:#1f2c3d;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  color:#d3ebff;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
  position: fixed;
 | 
			
		||||
  bottom: 5px;
 | 
			
		||||
  right: 20px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* Footer */
 | 
			
		||||
footer {
 | 
			
		||||
  text-align: left;
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
  margin-top: 100px;
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 80px;
 | 
			
		||||
}
 | 
			
		||||
.footer {
 | 
			
		||||
  text-align: right;
 | 
			
		||||
}
 | 
			
		||||
footer button {
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  margin: 1px;
 | 
			
		||||
  width: 115px;
 | 
			
		||||
  height: 25px;
 | 
			
		||||
  padding: 0px 0px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  position: relative;
 | 
			
		||||
}
 | 
			
		||||
@media (max-width: 500px) {
 | 
			
		||||
  footer {
 | 
			
		||||
    width: 100%;
 | 
			
		||||
    height: 100%;
 | 
			
		||||
  }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										466
									
								
								root/assets/css/manager.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										466
									
								
								root/assets/css/manager.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,466 @@
 | 
			
		||||
h3.table_title{
 | 
			
		||||
	text-align: center;
 | 
			
		||||
	margin-bottom: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat {
 | 
			
		||||
  border: solid 10px #1f2c3d;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  background-color: rgba(215, 215, 215, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat tbody tr:nth-child(2n + 1) {
 | 
			
		||||
  background-color: rgba(204, 255, 204, 0);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat th{
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  padding: 0.30em 0.30em 0.30em 0.30em;
 | 
			
		||||
  border-bottom: solid 2px #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat th:first-child {
 | 
			
		||||
  border-right: solid 2px #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat td {
 | 
			
		||||
  padding: 0.35em 0.35em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
table.seat td:first-child {
 | 
			
		||||
  font-size: 0.9em;
 | 
			
		||||
  padding: 0.30em 0.30em 0.30em 0.30em;
 | 
			
		||||
  font-weight: 600;
 | 
			
		||||
  border-right: solid 2px #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.has_error,
 | 
			
		||||
.help_block{
 | 
			
		||||
	color: #a94442;	
 | 
			
		||||
    display: block;
 | 
			
		||||
    margin-top: 3px;
 | 
			
		||||
    margin-bottom: 3px;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.has_error input{
 | 
			
		||||
	border-color: #a94442;
 | 
			
		||||
	    box-shadow: inset 0 1px 1px rgb(0 0 0 / 8%);
 | 
			
		||||
}
 | 
			
		||||
.check_box {
 | 
			
		||||
  display:none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.check_box+label{
 | 
			
		||||
    background:url('../../img/seat_red.png') no-repeat;
 | 
			
		||||
    height: 16px;
 | 
			
		||||
    width: 16px;
 | 
			
		||||
    display:inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.check_box:checked+label{
 | 
			
		||||
	background:url('../../img/seat_green.png') no-repeat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.black.button {
 | 
			
		||||
  width: 100%;
 | 
			
		||||
  height: 35px;
 | 
			
		||||
  border: 1px solid #dadada;
 | 
			
		||||
  background-color: #00020f;
 | 
			
		||||
  color: #dadada;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  font-size: 12px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
  box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
.black.button:hover {
 | 
			
		||||
  border:#000000;
 | 
			
		||||
  background-color: #791515;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal .submit:hover
 | 
			
		||||
{
 | 
			
		||||
    background-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal .sumbit{
 | 
			
		||||
	width: 100%;
 | 
			
		||||
    height: 35px;
 | 
			
		||||
    border: 1px solid #000000;
 | 
			
		||||
    padding: 5px;
 | 
			
		||||
    margin-top: 5px;
 | 
			
		||||
    font-size: 15px;
 | 
			
		||||
    font-weight: bold;
 | 
			
		||||
    box-shadow: 2px 2px #1f2c3d;
 | 
			
		||||
    filter: brightness(105%);
 | 
			
		||||
    cursor: pointer
 | 
			
		||||
}	
 | 
			
		||||
 | 
			
		||||
.code.welcome {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.code.welcome img {
 | 
			
		||||
  width: 75px;
 | 
			
		||||
  height: 75px;
 | 
			
		||||
  margin-top: 5px;
 | 
			
		||||
  border: 1px solid #d3ebff;
 | 
			
		||||
  border-radius: 5px;
 | 
			
		||||
  padding: 5px;
 | 
			
		||||
  transition: .5s ease;
 | 
			
		||||
  backface-visibility: hidden;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*Change inputs*/
 | 
			
		||||
.two-inputs-line{
 | 
			
		||||
    display: grid;
 | 
			
		||||
    grid-template-columns: repeat(2,auto);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.two-inputs-line input,
 | 
			
		||||
.two-inputs-line label{
 | 
			
		||||
   width:90%;
 | 
			
		||||
   margin: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.one-input-line{
 | 
			
		||||
	display: grid;
 | 
			
		||||
    grid-template-columns: repeat(1,auto);
 | 
			
		||||
	margin-top: 1em;
 | 
			
		||||
}
 | 
			
		||||
.one-input-line input
 | 
			
		||||
{
 | 
			
		||||
	width:50%;
 | 
			
		||||
	margin:auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* pop up window */
 | 
			
		||||
 | 
			
		||||
.modal {
 | 
			
		||||
  display: none; /* Hidden by default */
 | 
			
		||||
  position: fixed; /* Stay in place */
 | 
			
		||||
  z-index: 1; /* Sit on top */
 | 
			
		||||
  padding-top: 100px; /* Location of the box */
 | 
			
		||||
  left: 0;
 | 
			
		||||
  top: 0;
 | 
			
		||||
  width: 100%; /* Full width */
 | 
			
		||||
  height: 100%; /* Full height */
 | 
			
		||||
  overflow: auto; /* Enable scroll if needed */
 | 
			
		||||
  background-color: rgb(0,0,0); /* Fallback color */
 | 
			
		||||
  background-color: rgba(0,0,0,0.4); /* Black w/ opacity */
 | 
			
		||||
}
 | 
			
		||||
.modal-content {
 | 
			
		||||
  background-color: #fefefe;
 | 
			
		||||
  margin: auto;
 | 
			
		||||
  padding: 20px;
 | 
			
		||||
  border: 1px solid #888;
 | 
			
		||||
  width: 40%;
 | 
			
		||||
  height: 95%;
 | 
			
		||||
  overflow: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal form{
 | 
			
		||||
	width: 90%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal .image{
 | 
			
		||||
    margin: auto;
 | 
			
		||||
    text-align: center;
 | 
			
		||||
    padding-top: 1em;
 | 
			
		||||
    padding-right: 1em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal .code img{
 | 
			
		||||
    height: 100%;
 | 
			
		||||
    width: 100%;
 | 
			
		||||
	max-height: 9em;
 | 
			
		||||
	margin: auto;
 | 
			
		||||
}
 | 
			
		||||
.modal .code.showtimes{
 | 
			
		||||
	height:100%;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.modal .code.showtimes p{
 | 
			
		||||
	height: 100%;
 | 
			
		||||
    max-height: 9em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* The Close Button */
 | 
			
		||||
.close {
 | 
			
		||||
  color: #aaaaaa;
 | 
			
		||||
  float: right;
 | 
			
		||||
  font-size: 28px;
 | 
			
		||||
  font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.close:hover,
 | 
			
		||||
.close:focus {
 | 
			
		||||
  color: #000;
 | 
			
		||||
  text-decoration: none;
 | 
			
		||||
  cursor: pointer;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.alert_success {
 | 
			
		||||
    color: #3c763d;
 | 
			
		||||
    background-color: #dff0d8;
 | 
			
		||||
    border-color: #d6e9c6;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.alert {
 | 
			
		||||
    padding: 15px;
 | 
			
		||||
    margin-bottom: 20px;
 | 
			
		||||
    border: 1px solid transparent;
 | 
			
		||||
    border-radius: 4px;
 | 
			
		||||
	text-align: center;
 | 
			
		||||
 border-radius: 1.75em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.alert_danger {
 | 
			
		||||
    color: #ab2828;
 | 
			
		||||
    background-color: #f0d8d8;
 | 
			
		||||
    border-color: #f70000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*lil film list*/
 | 
			
		||||
.film_list{
 | 
			
		||||
    height: 20em;
 | 
			
		||||
    overflow-y: scroll;
 | 
			
		||||
	margin: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.film_list button{
 | 
			
		||||
	margin:auto;
 | 
			
		||||
	
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.img_desc{
 | 
			
		||||
  display: grid;
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
  grid-template-columns: repeat(2,1fr); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*Full calendar*/
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
.fc-container{
 | 
			
		||||
	padding-left: 5%;
 | 
			
		||||
    padding-right: 5%;
 | 
			
		||||
    padding-top: 3em;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-unthemed th,
 | 
			
		||||
.fc-container .fc-unthemed td,
 | 
			
		||||
.fc-container .fc-unthemed thead,
 | 
			
		||||
.fc-container .fc-unthemed tbody,
 | 
			
		||||
.fc-container .fc-unthemed .fc-divider,
 | 
			
		||||
.fc-container .fc-unthemed .fc-row,
 | 
			
		||||
.fc-container .fc-unthemed .fc-content, /* for gutter border */
 | 
			
		||||
.fc-container .fc-unthemed .fc-popover,
 | 
			
		||||
.fc-container .fc-unthemed .fc-list-view,
 | 
			
		||||
.fc-container .fc-unthemed .fc-list-heading td {
 | 
			
		||||
	border-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-unthemed td.fc-today {
 | 
			
		||||
	background: #ffd446;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-event {
 | 
			
		||||
	position: relative; /* for resize handle and other inner positioning */
 | 
			
		||||
	display: block; /* make the <a> tag block */
 | 
			
		||||
	font-size: .85em;
 | 
			
		||||
	line-height: 1.3;
 | 
			
		||||
	border-radius: 3px;
 | 
			
		||||
	border: 1px solid #000000; /* default BORDER color */
 | 
			
		||||
	font-weight: bold; /* undo jqui's ui-widget-header bold */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-event,
 | 
			
		||||
.fc-container .fc-event-dot {
 | 
			
		||||
	background-color: #1f2c3d; /* default BACKGROUND color */
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/* overpower some of bootstrap's and jqui's styles on <a> tags */
 | 
			
		||||
.fc-container .fc-event,
 | 
			
		||||
.fc-container .fc-event:hover,
 | 
			
		||||
.fc-container .ui-widget .fc-event {
 | 
			
		||||
	color: #d3ebff; /* default TEXT color */
 | 
			
		||||
	text-decoration: none; /* if <a> has an href */
 | 
			
		||||
}
 | 
			
		||||
.fc-container .fc-state-default {
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
  background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6);
 | 
			
		||||
  background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6));
 | 
			
		||||
  background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6);
 | 
			
		||||
  background-image: -o-linear-gradient(top, #ffffff, #e6e6e6);
 | 
			
		||||
  background-image: linear-gradient(to bottom, #1f2c3d, #1f2c3d);
 | 
			
		||||
  background-repeat: repeat-x;
 | 
			
		||||
  border-color: rgb(211 235 255) rgb(211 235 255) rgb(211 235 255);
 | 
			
		||||
  padding: 5px 10px ;
 | 
			
		||||
  display: inline-block;
 | 
			
		||||
  border-radius: 0px;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
  text-shadow: 0 1px 1px rgb(255 255 255 / 75%);
 | 
			
		||||
  box-shadow: inset 0 1px 0 rgb(255 255 255 / 20%), 0 1px 2px rgb(0 0 0 / 5%);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-toolbar {
 | 
			
		||||
  text-align: center;
 | 
			
		||||
  background-color: #1f2c3d;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-toolbar h2 {
 | 
			
		||||
  margin: 0;
 | 
			
		||||
  margin-top: 0px;
 | 
			
		||||
  margin-right: 0px;
 | 
			
		||||
  margin-bottom: 0px;
 | 
			
		||||
  margin-left: 0px;
 | 
			
		||||
  color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-view-container *, .fc-view-container *:before, .fc-view-container *:after {
 | 
			
		||||
  -webkit-box-sizing: content-box;
 | 
			
		||||
  -moz-box-sizing: content-box;
 | 
			
		||||
  box-sizing: content-box;
 | 
			
		||||
  margin: auto;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*td.fc-day.fc-widget-content.fc-mon.fc-other-month.fc-past*/
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-other-month {
 | 
			
		||||
  color: #1f2c3d;
 | 
			
		||||
  background-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container #myModal .modal-content{
 | 
			
		||||
    border-radius: 1.75em;
 | 
			
		||||
    background-color: #d3ebff;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.fc-container .fc-toolbar .fc-state-active, .fc-toolbar .ui-state-active {
 | 
			
		||||
  z-index: 0;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/* 
 | 
			
		||||
lists like tables
 | 
			
		||||
 | 
			
		||||
Example col3 tablelist
 | 
			
		||||
<ul class="tablelist col3">
 | 
			
		||||
	<li class="title"> Tittle1 </li> 
 | 
			
		||||
	<li class="title"> Tittle2 </li> 
 | 
			
		||||
	<li class="title"> Tittle3 </li> 
 | 
			
		||||
	<li> cell 1,1 <li>
 | 
			
		||||
	<li> cell 1,2 <li>
 | 
			
		||||
	<li> cell 1,3 <li>
 | 
			
		||||
	<a class="h2long" href="">
 | 
			
		||||
		<li> cell 2,1 this one and the next one share the same link <li>
 | 
			
		||||
		<li> cell 2,2 <li>
 | 
			
		||||
	</a>
 | 
			
		||||
	<a href="">
 | 
			
		||||
		<li> cell 2,3 this one is a link alone </li>
 | 
			
		||||
	</a>
 | 
			
		||||
</ul>
 | 
			
		||||
 | 
			
		||||
General configuration
 | 
			
		||||
*/
 | 
			
		||||
.tablelist{
 | 
			
		||||
  display: grid;
 | 
			
		||||
  list-style-type: none;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist li {
 | 
			
		||||
  border-bottom: 1px solid black;
 | 
			
		||||
  padding: 10px;
 | 
			
		||||
  font-size: 20px;
 | 
			
		||||
  text-align: center;
 | 
			
		||||
}
 | 
			
		||||
.tablelist a {
 | 
			
		||||
  color: #000000;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist a:hover li{
 | 
			
		||||
  color: rgb(211, 235, 255);
 | 
			
		||||
  background: rgba(31, 44, 61, 1);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist li.title{
 | 
			
		||||
	font-weight: bold;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*3columns*/
 | 
			
		||||
.col3{
 | 
			
		||||
  grid-template-columns: repeat(3,1fr); 
 | 
			
		||||
  
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col3 .odd{
 | 
			
		||||
   background: rgba(144, 144, 144, 0.25);
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(3,1fr); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col3 .even{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(3,1fr); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist.col3 a.h2long
 | 
			
		||||
{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 3;
 | 
			
		||||
   grid-template-columns: repeat(2,1fr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist.col3 a
 | 
			
		||||
{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 3;
 | 
			
		||||
   grid-column-end: 4;
 | 
			
		||||
   grid-template-columns: repeat(1,1fr);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
/*5 columns*/
 | 
			
		||||
 | 
			
		||||
.col5{
 | 
			
		||||
  grid-template-columns: repeat(5,1fr);    
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col5 .odd{
 | 
			
		||||
   background: green;
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 6;
 | 
			
		||||
   grid-template-columns: repeat(5,auto); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.col5 .even{
 | 
			
		||||
   background: pink;
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 6;
 | 
			
		||||
   grid-template-columns: repeat(5,auto); 
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist.col5 a.h4long
 | 
			
		||||
{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 1;
 | 
			
		||||
   grid-column-end: 5;
 | 
			
		||||
   grid-template-columns: repeat(4,auto);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.tablelist.col5 a
 | 
			
		||||
{
 | 
			
		||||
   display: grid;
 | 
			
		||||
   grid-column-start: 5;
 | 
			
		||||
   grid-column-end: 6;
 | 
			
		||||
   grid-template-columns: auto;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										14
									
								
								root/assets/css/seat.css
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										14
									
								
								root/assets/css/seat.css
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,14 @@
 | 
			
		||||
.check_box+label{
 | 
			
		||||
    background:url('../../img/seat_green.png') no-repeat;
 | 
			
		||||
    height: 16px;
 | 
			
		||||
    width: 16px;
 | 
			
		||||
    display:inline-block;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.check_box:checked+label{
 | 
			
		||||
	background:url('../../img/seat_grey.png') no-repeat;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
.check_box:disabled+label{
 | 
			
		||||
	background:url('../../img/seat_red.png') no-repeat;
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										3
									
								
								root/assets/index.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										3
									
								
								root/assets/index.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,3 @@
 | 
			
		||||
<?php
 | 
			
		||||
    header("Location: ../");
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										24
									
								
								root/assets/js/cambiarCSS-FER_SURFACE.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										24
									
								
								root/assets/js/cambiarCSS-FER_SURFACE.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,24 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function cambiarCSS(nuevo){
 | 
			
		||||
    if(nuevo.includes("main.css")){
 | 
			
		||||
        var viejo = "{$prefix}assets/css/highContrast.css";
 | 
			
		||||
        var oldName = "Alto Contraste";
 | 
			
		||||
    } else {
 | 
			
		||||
        var viejo = "{$prefix}assets/css/main.css";
 | 
			
		||||
        var oldName = "Contrast Normal";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var url = "../assets/php/common/changeCSS.php?css=" + nuevo;
 | 
			
		||||
	$.get(url);
 | 
			
		||||
    
 | 
			
		||||
    /* La idea era que cambiase todo dinámicamente sin refrescar la página */
 | 
			
		||||
    //document.getElementById('estilo').setAttribute('href', nuevo);
 | 
			
		||||
    //document.getElementById('cssChange').innerHTML = oldName;
 | 
			
		||||
    //document.getElementById('cssChange').setAttribute('onClick', 'cambiarCSS('+viejo+')');
 | 
			
		||||
 | 
			
		||||
    location.reload();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										22
									
								
								root/assets/js/cambiarCSS.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								root/assets/js/cambiarCSS.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function cambiarCSS(nuevo){
 | 
			
		||||
    if(nuevo.includes("main.css")){
 | 
			
		||||
        var css = "main.css";
 | 
			
		||||
    } else {
 | 
			
		||||
        var css = "highContrast.css";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    var url = "../assets/php/common/changeCSS.php?css=" + css;
 | 
			
		||||
	$.get(url);
 | 
			
		||||
    
 | 
			
		||||
    /* La idea era que cambiase todo dinámicamente sin refrescar la página */
 | 
			
		||||
    document.getElementById('estilo').setAttribute('href', nuevo);
 | 
			
		||||
    //document.getElementById('cssChange').innerHTML = oldName;
 | 
			
		||||
    //document.getElementById('cssChange').setAttribute('onClick', 'cambiarCSS('+viejo+')');
 | 
			
		||||
 | 
			
		||||
    location.reload();
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										153
									
								
								root/assets/js/checkForms.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										153
									
								
								root/assets/js/checkForms.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,153 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
//Expresión regular para comprobar que la contraseña tiene al menos 1 mayúscula y 1 número:
 | 
			
		||||
const regExprPass = /^(?=\w*\d)(?=\w*[A-Z])(?=\w*[a-z])\S{4,16}$/;
 | 
			
		||||
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el usuario:
 | 
			
		||||
	$("#userValid").hide();
 | 
			
		||||
    $("#userInvalid").hide();
 | 
			
		||||
    $("#userWarning").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el email:
 | 
			
		||||
    $("#emailValid").hide();
 | 
			
		||||
    $("#emailInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el password:
 | 
			
		||||
    $("#passValid").hide();
 | 
			
		||||
    $("#passInvalid").hide();
 | 
			
		||||
    $("#passWarning").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar que las contraseñas coindicen:
 | 
			
		||||
    $("#repassValid").hide();
 | 
			
		||||
    $("#repassInvalid").hide();
 | 
			
		||||
	
 | 
			
		||||
    //Comprueba que el nombre de usuario introducido para el login, exista.
 | 
			
		||||
	$("#name").change(function(){
 | 
			
		||||
		var url = "../assets/php/common/checkUser.php?user=" + $("#name").val();
 | 
			
		||||
		$.get(url, userLoginCheck);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba que el nombre de usuario no esté registrado en la aplicación.
 | 
			
		||||
	$("#new_name").change(function(){
 | 
			
		||||
		var url = "../assets/php/common/checkUser.php?user=" + $("#new_name").val();
 | 
			
		||||
		$.get(url, userCheck);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba que el email introducido no esté registrado en la aplicación.
 | 
			
		||||
    $("#new_email").change(function(){
 | 
			
		||||
        var url = "../assets/php/common/checkEmail.php?email=" + $("#new_email").val();
 | 
			
		||||
		$.get(url, emailCheck);
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
    //Comprueba que la contraseña sea válida en base a los criterios de la aplicación.
 | 
			
		||||
    $("#new_pass").change(function(){
 | 
			
		||||
		const fieldPass = $("#new_pass");
 | 
			
		||||
        fieldPass[0].setCustomValidity("");
 | 
			
		||||
        const isPassValid = fieldPass[0].checkValidity();
 | 
			
		||||
		
 | 
			
		||||
        if(fieldPass.val().length < 4){
 | 
			
		||||
            $("#passValid").hide();
 | 
			
		||||
            $("#passInvalid").hide();
 | 
			
		||||
            $("#passWarning").show();
 | 
			
		||||
			fieldPass[0].setCustomValidity("La contraseña debe contener almenos 4 caracteres.");
 | 
			
		||||
        }
 | 
			
		||||
        else if (isPassValid && passCheck(fieldPass.val())) {
 | 
			
		||||
            $("#passValid").show();
 | 
			
		||||
            $("#passInvalid").hide();
 | 
			
		||||
            $("#passWarning").hide();
 | 
			
		||||
			fieldPass[0].setCustomValidity("");
 | 
			
		||||
		} else {
 | 
			
		||||
            $("#passValid").hide();
 | 
			
		||||
            $("#passInvalid").show();
 | 
			
		||||
            $("#passWarning").hide();
 | 
			
		||||
            fieldPass[0].setCustomValidity("La contraseña debe contener al menos 1 mayúscula y 1 número.");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba que las contraseñas sean iguales.
 | 
			
		||||
    $("#repass").change(function(){
 | 
			
		||||
		const fieldPass = $("#new_pass");
 | 
			
		||||
        const fieldRepass = $("#repass");
 | 
			
		||||
        fieldRepass[0].setCustomValidity("");
 | 
			
		||||
		
 | 
			
		||||
        if (Object.is(fieldPass.val(), fieldRepass.val())) {
 | 
			
		||||
            $("#repassValid").show();
 | 
			
		||||
            $("#repassInvalid").hide();
 | 
			
		||||
			fieldRepass[0].setCustomValidity("");
 | 
			
		||||
		} else {
 | 
			
		||||
            $("#repassValid").hide();
 | 
			
		||||
            $("#repassInvalid").show();
 | 
			
		||||
            fieldRepass[0].setCustomValidity("Las contraseñas deben coincidir.");
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Muestra si el nombre de usuario introducido para el login existe o no.
 | 
			
		||||
	function userLoginCheck(data, status) {
 | 
			
		||||
		const fieldLogin = $("#name");
 | 
			
		||||
        fieldLogin[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
		if(data === "!avaliable") {
 | 
			
		||||
			fieldLogin[0].setCustomValidity("");
 | 
			
		||||
		} else {
 | 
			
		||||
			fieldLogin[0].setCustomValidity("El nombre de usuario no está registrado.");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Muestra si el nombre de usuario introducido es válido o no.
 | 
			
		||||
	function userCheck(data, status) {
 | 
			
		||||
		const fieldUser = $("#new_name");
 | 
			
		||||
        fieldUser[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(fieldUser.val().length < 3){
 | 
			
		||||
            $("#userValid").hide();
 | 
			
		||||
            $("#userInvalid").hide();
 | 
			
		||||
            $("#userWarning").show();
 | 
			
		||||
			fieldUser[0].setCustomValidity("El nombre de usuario debe tener almenos 3 caracteres.");
 | 
			
		||||
        }
 | 
			
		||||
		else if(data === "avaliable") {
 | 
			
		||||
			$("#userValid").show();
 | 
			
		||||
            $("#userInvalid").hide();
 | 
			
		||||
            $("#userWarning").hide();
 | 
			
		||||
			fieldUser[0].setCustomValidity("");
 | 
			
		||||
		} else {
 | 
			
		||||
			$("#userValid").hide();
 | 
			
		||||
            $("#userInvalid").show();
 | 
			
		||||
            $("#userWarning").hide();
 | 
			
		||||
			fieldUser[0].setCustomValidity("El nombre de usuario ya está registrado.");
 | 
			
		||||
		}
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Muestra si el email introducido es válido o no.
 | 
			
		||||
    function emailCheck(data, status) {
 | 
			
		||||
        const fieldEmail = $("#new_email");
 | 
			
		||||
		fieldEmail[0].setCustomValidity("");
 | 
			
		||||
		const isEmailValid = fieldEmail[0].checkValidity();
 | 
			
		||||
 | 
			
		||||
        if(!isEmailValid){
 | 
			
		||||
            $("#emailValid").hide();
 | 
			
		||||
            $("#emailInvalid").show();
 | 
			
		||||
        }
 | 
			
		||||
		else if (data === "avaliable") {
 | 
			
		||||
			$("#emailValid").show();
 | 
			
		||||
            $("#emailInvalid").hide();
 | 
			
		||||
			fieldEmail[0].setCustomValidity("");
 | 
			
		||||
		} else {			
 | 
			
		||||
			$("#emailValid").hide();
 | 
			
		||||
            $("#emailInvalid").show();
 | 
			
		||||
			fieldEmail[0].setCustomValidity("El email ya está registrado."); 
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Devuelve true si la contraseña cumple los reuqisitos de seguridad, false en caso contrario.
 | 
			
		||||
    function passCheck(pass) {
 | 
			
		||||
		return regExprPass.test(pass) ? true : false;
 | 
			
		||||
	}
 | 
			
		||||
})
 | 
			
		||||
							
								
								
									
										196
									
								
								root/assets/js/checkPay.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										196
									
								
								root/assets/js/checkPay.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,196 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
 //Expresión regular para validar nombre y apellidos:
 | 
			
		||||
const regExpr = /^([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\']+[\s])+([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\'])+[\s]?([A-Za-zÁÉÍÓÚñáéíóúÑ]{0}?[A-Za-zÁÉÍÓÚñáéíóúÑ\'])?$/g;
 | 
			
		||||
 | 
			
		||||
//Expresión regular para validar un código promocional:
 | 
			
		||||
const regExprCode = /^0?[xX]?[0-9a-fA-F]*$/;
 | 
			
		||||
 | 
			
		||||
//Fecha acutal:
 | 
			
		||||
const fecha = new Date();
 | 
			
		||||
 | 
			
		||||
$(document).ready(function() {
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el titular de la tarjeta:
 | 
			
		||||
	$("#cardNameValid").hide();
 | 
			
		||||
    $("#cardNameInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el número de tarjeta:
 | 
			
		||||
    $("#carNumberValid").hide();
 | 
			
		||||
    $("#cardNumerInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el CVV:
 | 
			
		||||
    $("#cvvValid").hide();
 | 
			
		||||
    $("#cvvInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el código promocional:
 | 
			
		||||
    $("#codeValid").hide();
 | 
			
		||||
    $("#codeInvalid").hide();
 | 
			
		||||
 | 
			
		||||
    //Iconos para validar el mes y año de expiración de la tarjeta:
 | 
			
		||||
    $("#dateValid").hide();
 | 
			
		||||
    $("#dateInvalid").hide();
 | 
			
		||||
 | 
			
		||||
	
 | 
			
		||||
    //Comprueba que el titular de la tarjeta es válido.
 | 
			
		||||
	$("#card-holder").change(function(){
 | 
			
		||||
        const cardHolder = $("#card-holder");
 | 
			
		||||
        cardHolder[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
		if(cardHolder.val().length > 5 && !holderCheck(cardHolder.val())){
 | 
			
		||||
            $("#cardNameValid").show();
 | 
			
		||||
            $("#cardNameInvalid").hide();
 | 
			
		||||
            cardHolder[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#cardNameValid").hide();
 | 
			
		||||
            $("#cardNameInvalid").show();
 | 
			
		||||
            cardHolder[0].setCustomValidity("El titular de la tarjeta no es válido.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba que el NÚMERO de la tarjeta es válido.
 | 
			
		||||
    $("#card-number-0").change(function(){
 | 
			
		||||
        const cardNumber0 = $("#card-number-0");
 | 
			
		||||
        cardNumber0[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(cardNumber0.val().length === 4){
 | 
			
		||||
            $("#carNumberValid").show();
 | 
			
		||||
            $("#cardNumerInvalid").hide();
 | 
			
		||||
            cardNumber0[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#carNumberValid").hide();
 | 
			
		||||
            $("#cardNumerInvalid").show();
 | 
			
		||||
            cardNumber0[0].setCustomValidity("El número de tarjeta debe tener 16 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    $("#card-number-1").change(function(){
 | 
			
		||||
        const cardNumber1 = $("#card-number-1");
 | 
			
		||||
        cardNumber1[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(cardNumber1.val().length === 4){
 | 
			
		||||
            $("#carNumberValid").show();
 | 
			
		||||
            $("#cardNumerInvalid").hide();
 | 
			
		||||
            cardNumber1[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#carNumberValid").hide();
 | 
			
		||||
            $("#cardNumerInvalid").show();
 | 
			
		||||
            cardNumber1[0].setCustomValidity("El número de tarjeta debe tener 16 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    $("#card-number-2").change(function(){
 | 
			
		||||
        const cardNumber2 = $("#card-number-2");
 | 
			
		||||
        cardNumber2[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(cardNumber2.val().length === 4){
 | 
			
		||||
            $("#carNumberValid").show();
 | 
			
		||||
            $("#cardNumerInvalid").hide();
 | 
			
		||||
            cardNumber2[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#carNumberValid").hide();
 | 
			
		||||
            $("#cardNumerInvalid").show();
 | 
			
		||||
            cardNumber2[0].setCustomValidity("El número de tarjeta debe tener 16 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    $("#card-number-3").change(function(){
 | 
			
		||||
        const cardNumber3 = $("#card-number-3");
 | 
			
		||||
        cardNumber3[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(cardNumber3.val().length === 4){
 | 
			
		||||
            $("#carNumberValid").show();
 | 
			
		||||
            $("#cardNumerInvalid").hide();
 | 
			
		||||
            cardNumber3[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#carNumberValid").hide();
 | 
			
		||||
            $("#cardNumerInvalid").show();
 | 
			
		||||
            cardNumber3[0].setCustomValidity("El número de tarjeta debe tener 16 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //Comprueba que el CVV de la tarjeta es válido.
 | 
			
		||||
	$("#card-cvv").change(function(){
 | 
			
		||||
        const cvv = $("#card-cvv");
 | 
			
		||||
        cvv[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
		if(cvv.val().length === 3){
 | 
			
		||||
            $("#cvvValid").show();
 | 
			
		||||
            $("#cvvInvalid").hide();
 | 
			
		||||
            cvv[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#cvvValid").hide();
 | 
			
		||||
            $("#cvvInvalid").show();
 | 
			
		||||
            cvv[0].setCustomValidity("El CVV debe tener 3 dígitos.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba que el mes de expiración de la tarjeta es válido.
 | 
			
		||||
	$("#card-expiration-month").change(function(){
 | 
			
		||||
        const month = $("#card-expiration-month");
 | 
			
		||||
        month[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
		if(parseInt(month.val()) > parseInt(fecha.getMonth())){
 | 
			
		||||
            $("#dateValid").show();
 | 
			
		||||
            $("#dateInvalid").hide();
 | 
			
		||||
            month[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#dateValid").hide();
 | 
			
		||||
            $("#dateInvalid").show();
 | 
			
		||||
            month[0].setCustomValidity("El mes de expiración no es válido.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
    //Comprueba que el mes de expiración de la tarjeta es válido.
 | 
			
		||||
	$("#card-expiration-year").change(function(){
 | 
			
		||||
        const year = $("#card-expiration-year");
 | 
			
		||||
        year[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
		if(parseInt(year.val()) >= parseInt(fecha.getFullYear())){
 | 
			
		||||
            $("#dateValid").show();
 | 
			
		||||
            $("#dateInvalid").hide();
 | 
			
		||||
            year[0].setCustomValidity("");
 | 
			
		||||
        } else {
 | 
			
		||||
            $("#dateValid").hide();
 | 
			
		||||
            $("#dateInvalid").show();
 | 
			
		||||
            year[0].setCustomValidity("El año de expiración no es válido.");
 | 
			
		||||
        }
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
    //Comprueba el código promocional introducido:
 | 
			
		||||
    $("#code").change(function(){
 | 
			
		||||
        var url = "../assets/php/common/checkPromo.php?code=" + $("#code").val();
 | 
			
		||||
		$.get(url, codeCheck);
 | 
			
		||||
    });
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    //Devuelve true si el nombre y apellidos del titular son válidos, false en caso contrario.
 | 
			
		||||
    function holderCheck(name) {
 | 
			
		||||
		return regExpr.test(name) ? true : false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Devuelve true si el código promocional es válido, false en caso contrario.
 | 
			
		||||
    function holderCheck(code) {
 | 
			
		||||
		return regExprCode.test(code) ? true : false;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
    //Muestra si el código promocional introducido existe o no.
 | 
			
		||||
	function codeCheck(data, status) {
 | 
			
		||||
        const code = $("#code");
 | 
			
		||||
        code[0].setCustomValidity("");
 | 
			
		||||
 | 
			
		||||
        if(code.val().length === 8 && data === "avaliable"){
 | 
			
		||||
            $("#codeValid").show();
 | 
			
		||||
            $("#codeInvalid").hide();
 | 
			
		||||
            code[0].setCustomValidity("");
 | 
			
		||||
        } else if(code.val().length > 0 && data === "!avaliable" ){
 | 
			
		||||
            $("#codeValid").hide();
 | 
			
		||||
            $("#codeInvalid").show();
 | 
			
		||||
            code[0].setCustomValidity("El código promocional no es válido.");
 | 
			
		||||
        } else if(code.val().length === 0 ){
 | 
			
		||||
            $("#codeValid").hide();
 | 
			
		||||
            $("#codeInvalid").hide();
 | 
			
		||||
            code[0].setCustomValidity("");
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										13
									
								
								root/assets/js/deleteConfirm.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								root/assets/js/deleteConfirm.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
function confirmDelete(e) {
 | 
			
		||||
	if(confirm("¿Está seguro de que desea eliminar su cuenta de usuario?\nEsta acción no se puede deshacer.")){
 | 
			
		||||
		document.getElementById("formDeleteAccount1").submit();
 | 
			
		||||
	} else {
 | 
			
		||||
		//location.href = "./";
 | 
			
		||||
		e.preventDefault();
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										7
									
								
								root/assets/js/goBack.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								root/assets/js/goBack.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
			
		||||
$(document).ready(function(){
 | 
			
		||||
    document.getElementById('go-back').addEventListener('click', function(event){
 | 
			
		||||
    event.preventDefault();
 | 
			
		||||
    history.back();
 | 
			
		||||
    //window.history.go(-1);
 | 
			
		||||
  });
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										17
									
								
								root/assets/js/goUp.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								root/assets/js/goUp.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
			
		||||
$(document).ready(function(){
 | 
			
		||||
	
 | 
			
		||||
	$('.go-up').click(function(){
 | 
			
		||||
		$('body, html').animate({
 | 
			
		||||
			scrollTop: '0px'
 | 
			
		||||
		}, 300);
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
	$(window).scroll(function(){
 | 
			
		||||
		if( $(this).scrollTop() > 0 ){
 | 
			
		||||
			$('.go-up').slideDown(300);
 | 
			
		||||
		} else {
 | 
			
		||||
			$('.go-up').slideUp(300);
 | 
			
		||||
		}
 | 
			
		||||
	});
 | 
			
		||||
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										4
									
								
								root/assets/js/jquery-3.2.1.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								root/assets/js/jquery-3.2.1.min.js
									
									
									
									
										vendored
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because one or more lines are too long
											
										
									
								
							
							
								
								
									
										87
									
								
								root/assets/js/promotions.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								root/assets/js/promotions.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
window.onload = function () {
 | 
			
		||||
    //Promociones:
 | 
			
		||||
    var promos = document.getElementById("promotions").value;
 | 
			
		||||
    const prefix = "../img/promos/";
 | 
			
		||||
    const IMAGENES = JSON.parse(promos);
 | 
			
		||||
 | 
			
		||||
    const TIEMPO_INTERVALO_MILESIMAS_SEG = 3500;
 | 
			
		||||
    let posicionActual = 0;
 | 
			
		||||
    let $botonRetroceder = document.querySelector('#retroceder');
 | 
			
		||||
    let $botonAvanzar = document.querySelector('#avanzar');
 | 
			
		||||
    let $imagen = document.querySelector('.imagen');
 | 
			
		||||
    let $botonPlay = document.querySelector('#play');
 | 
			
		||||
    let $botonStop = document.querySelector('#stop');
 | 
			
		||||
    let intervalo;
 | 
			
		||||
 | 
			
		||||
    // Funciones
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Funcion que cambia la foto en la siguiente posicion
 | 
			
		||||
     */
 | 
			
		||||
    function pasarFoto() {
 | 
			
		||||
        if(posicionActual >= IMAGENES.length - 1) {
 | 
			
		||||
            posicionActual = 0;
 | 
			
		||||
        } else {
 | 
			
		||||
            posicionActual++;
 | 
			
		||||
        }
 | 
			
		||||
        renderizarImagen();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Funcion que cambia la foto en la anterior posicion
 | 
			
		||||
     */
 | 
			
		||||
    function retrocederFoto() {
 | 
			
		||||
        if(posicionActual <= 0) {
 | 
			
		||||
            posicionActual = IMAGENES.length - 1;
 | 
			
		||||
        } else {
 | 
			
		||||
            posicionActual--;
 | 
			
		||||
        }
 | 
			
		||||
        renderizarImagen();
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Funcion que actualiza la imagen de imagen dependiendo de posicionActual
 | 
			
		||||
     */
 | 
			
		||||
    function renderizarImagen () {
 | 
			
		||||
        $imagen.style.backgroundImage = `url(${prefix+IMAGENES[posicionActual]})`;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Activa el autoplay de la imagen
 | 
			
		||||
     */
 | 
			
		||||
    function playIntervalo() {
 | 
			
		||||
        intervalo = setInterval(pasarFoto, TIEMPO_INTERVALO_MILESIMAS_SEG);
 | 
			
		||||
        // Desactivamos los botones de control
 | 
			
		||||
        //$botonAvanzar.setAttribute('disabled', true);
 | 
			
		||||
        //$botonRetroceder.setAttribute('disabled', true);
 | 
			
		||||
        $botonPlay.setAttribute('disabled', true);
 | 
			
		||||
        $botonStop.removeAttribute('disabled');
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Para el autoplay de la imagen
 | 
			
		||||
     */
 | 
			
		||||
    function stopIntervalo() {
 | 
			
		||||
        clearInterval(intervalo);
 | 
			
		||||
        // Activamos los botones de control
 | 
			
		||||
        $botonAvanzar.removeAttribute('disabled');
 | 
			
		||||
        $botonRetroceder.removeAttribute('disabled');
 | 
			
		||||
        $botonPlay.removeAttribute('disabled');
 | 
			
		||||
        $botonStop.setAttribute('disabled', true);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    // Eventos
 | 
			
		||||
    $botonAvanzar.addEventListener('click', pasarFoto);
 | 
			
		||||
    $botonRetroceder.addEventListener('click', retrocederFoto);
 | 
			
		||||
    $botonPlay.addEventListener('click', playIntervalo);
 | 
			
		||||
    $botonStop.addEventListener('click', stopIntervalo);
 | 
			
		||||
    // Iniciar
 | 
			
		||||
    renderizarImagen();
 | 
			
		||||
    playIntervalo(); 
 | 
			
		||||
} 
 | 
			
		||||
							
								
								
									
										54
									
								
								root/assets/js/selectTicket.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								root/assets/js/selectTicket.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
/**
 | 
			
		||||
 * Práctica - Sistemas Web | Grupo D
 | 
			
		||||
 * CompluCine - FDI-cines
 | 
			
		||||
 */
 | 
			
		||||
 | 
			
		||||
// Método 1: recargar la página y enviar un GET.
 | 
			
		||||
window.onload = function(){
 | 
			
		||||
    if(!select_cinema()) select_film();
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function select_cinema(){
 | 
			
		||||
    var select = document.getElementById("select_cinema");
 | 
			
		||||
 | 
			
		||||
    if(select != undefined){
 | 
			
		||||
        select.onchange = function(){
 | 
			
		||||
            location.href += "&cinema=" + $('select[id=cinemas]').val();
 | 
			
		||||
        }
 | 
			
		||||
        return true;
 | 
			
		||||
    } else {
 | 
			
		||||
        return false;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
function select_film(){
 | 
			
		||||
    var select_ = document.getElementById("select_film");
 | 
			
		||||
    select_.onchange = function(){
 | 
			
		||||
        location.href += "&film=" + $('select[id=films]').val();
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
// Método 2: enviar una petición AJAX con POST. ==> (NO FUNCIONA, PERO LA IDEA ERA HACERLO ASÍ PARA EVITAR REFRESCAR LA PÁGINA Y LLENAR LA URL)
 | 
			
		||||
/*
 | 
			
		||||
$(document).ready(function(){
 | 
			
		||||
	$("#select_cinema").change(function(){
 | 
			
		||||
        var cinema =  $('select[id=cinemas]').val();
 | 
			
		||||
        //console.log($('select[id=cinemas]').val());
 | 
			
		||||
 | 
			
		||||
        $.ajax({
 | 
			
		||||
            url         : "index.php",
 | 
			
		||||
            type        : "post",
 | 
			
		||||
            dataType    : "html",
 | 
			
		||||
            data        : "",
 | 
			
		||||
            success: function(response){
 | 
			
		||||
                $("#cinemas > option[value="+ cinema +"]").attr("selected", true);
 | 
			
		||||
                console.log(cinema);
 | 
			
		||||
            },
 | 
			
		||||
            error: function(response){
 | 
			
		||||
                console.log(response + ' ==> Error al seleccionar el cine')
 | 
			
		||||
            }
 | 
			
		||||
        });
 | 
			
		||||
	});
 | 
			
		||||
});
 | 
			
		||||
*/
 | 
			
		||||
							
								
								
									
										140
									
								
								root/assets/js/sessionCalendar.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								root/assets/js/sessionCalendar.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,140 @@
 | 
			
		||||
$(document).ready(function(){
 | 
			
		||||
		//Get the data that is going to be used as a filter for events
 | 
			
		||||
		var selectedFeed = $('#hall_selector').find(':selected').data('feed');
 | 
			
		||||
		
 | 
			
		||||
		var modal = document.getElementById("myModal");
 | 
			
		||||
		var btn = document.getElementById("myBtn");
 | 
			
		||||
		var span = document.getElementsByClassName("close")[0];
 | 
			
		||||
 | 
			
		||||
	   var calendar = $('#calendar').fullCalendar({
 | 
			
		||||
		
 | 
			
		||||
		header:{
 | 
			
		||||
		 left:'prev,next,today',
 | 
			
		||||
		 center:'title',
 | 
			
		||||
		 right:'month,agendaWeek,agendaDay'
 | 
			
		||||
		},
 | 
			
		||||
		firstDay: 1,
 | 
			
		||||
		editable:true,
 | 
			
		||||
		fixedWeekCount: false,
 | 
			
		||||
		eventSources: [ selectedFeed ],
 | 
			
		||||
		selectable:true,
 | 
			
		||||
		selectHelper:true,
 | 
			
		||||
		timeFormat: 'H:mm',
 | 
			
		||||
		slotLabelFormat: 'H:mm',
 | 
			
		||||
		nowIndicator: true,
 | 
			
		||||
		allDaySlot: false,
 | 
			
		||||
		eventDurationEditable: false,
 | 
			
		||||
		
 | 
			
		||||
		eventOverlap: function(stillEvent, movingEvent) {
 | 
			
		||||
				return (stillEvent.start_time > movingEvent.start_time && stillEvent.end < movingEvent.start_time)
 | 
			
		||||
		},
 | 
			
		||||
		//Add event/session function when u click in any non-event date. Prepares the form to be seen as such
 | 
			
		||||
		select: function(start, end, allDay)
 | 
			
		||||
			{
 | 
			
		||||
			$(modal).fadeIn();
 | 
			
		||||
			
 | 
			
		||||
		    var x = document.getElementById("film_group");
 | 
			
		||||
			x.style.display = "none";
 | 
			
		||||
			x = document.getElementById("film_list");
 | 
			
		||||
			x.style.display = "block";
 | 
			
		||||
			
 | 
			
		||||
			document.getElementById("hall").value = document.getElementById("hall_selector").value;
 | 
			
		||||
			document.getElementById("startDate").value = $.fullCalendar.formatDate( start, "Y-MM-DD" );
 | 
			
		||||
			document.getElementById("endDate").value = $.fullCalendar.formatDate( end, "Y-MM-DD" );
 | 
			
		||||
			
 | 
			
		||||
			document.getElementById("sumbit_new").style.display = "block";
 | 
			
		||||
			document.getElementById("edit_inputs").style.display = "none";
 | 
			
		||||
			},
 | 
			
		||||
		//Edit only the date/hour start of an event/session when u click,drag and drop an event.
 | 
			
		||||
		eventDrop:function(event)
 | 
			
		||||
		{
 | 
			
		||||
		 var e = {
 | 
			
		||||
		   "newDate" : $.fullCalendar.formatDate(event.start, "Y-MM-DD HH:mm:ss"),
 | 
			
		||||
			"idhall": document.getElementById("hall").value,
 | 
			
		||||
			"startHour":event.start_time,
 | 
			
		||||
			"startDate":event.date,
 | 
			
		||||
			"price": event.seat_price,
 | 
			
		||||
			"idfilm": event.film_id,
 | 
			
		||||
			"format": event.format,
 | 
			
		||||
		 };
 | 
			
		||||
		 console.log(event);
 | 
			
		||||
		 $.ajax({
 | 
			
		||||
		  url:"eventsProcess.php?drop=true",
 | 
			
		||||
		  contentType: 'application/json; charset=utf-8',
 | 
			
		||||
		  dataType: "json",
 | 
			
		||||
		  type:"PUT",
 | 
			
		||||
		  data:JSON.stringify(e),
 | 
			
		||||
           success: function(data) {
 | 
			
		||||
                alert("El evento se ha desplazado correctamente");
 | 
			
		||||
				calendar.fullCalendar('refetchEvents');
 | 
			
		||||
            },
 | 
			
		||||
            error: function(data) {
 | 
			
		||||
                alert("Ha habido un error al desplazar el evento");
 | 
			
		||||
            },
 | 
			
		||||
		 });
 | 
			
		||||
		},
 | 
			
		||||
		//Edit event/session function when u click an event. Prepares the form to be seen as such
 | 
			
		||||
		eventClick:function(event)
 | 
			
		||||
		{	
 | 
			
		||||
		 	$(modal).fadeIn();
 | 
			
		||||
			console.log(event);
 | 
			
		||||
		    var x = document.getElementById("film_group");
 | 
			
		||||
			x.style.display = "block";
 | 
			
		||||
			
 | 
			
		||||
			x = document.getElementById("film_list");
 | 
			
		||||
			x.style.display = "none";
 | 
			
		||||
			
 | 
			
		||||
			document.getElementById("hall").value = document.getElementById("hall_selector").value;
 | 
			
		||||
			document.getElementById("startDate").value = $.fullCalendar.formatDate( event.start, "Y-MM-DD" );
 | 
			
		||||
			document.getElementById("endDate").value = $.fullCalendar.formatDate( event.end, "Y-MM-DD" );
 | 
			
		||||
			document.getElementById("price").value = event.seat_price;
 | 
			
		||||
			document.getElementById("format").value = event.format;
 | 
			
		||||
			document.getElementById("startHour").value = event.start_time;
 | 
			
		||||
			
 | 
			
		||||
			document.getElementById("original_hall").value = document.getElementById("hall_selector").value;
 | 
			
		||||
			document.getElementById("original_start_time").value = event.start_time;
 | 
			
		||||
			document.getElementById("original_date").value = $.fullCalendar.formatDate( event.start, "Y-MM-DD" );
 | 
			
		||||
			
 | 
			
		||||
			document.getElementById("film_title").innerHTML = event.title;
 | 
			
		||||
			document.getElementById("film_lan").innerHTML = event.film_lan;
 | 
			
		||||
			document.getElementById("film_dur").innerHTML = event.film_dur+" min";
 | 
			
		||||
			document.getElementById("film_img").src = "../img/films/"+event.film_img;
 | 
			
		||||
			document.getElementById("film_id").value = event.film_id;
 | 
			
		||||
			document.getElementById("sumbit_new").style.display = "none";
 | 
			
		||||
			document.getElementById("edit_inputs").style.display = "grid";	
 | 
			
		||||
			
 | 
			
		||||
		},
 | 
			
		||||
 | 
			
		||||
	   });
 | 
			
		||||
	   //Once the filter changes, do the changes needed so full calendar research the events with the new hall
 | 
			
		||||
	   $('#hall_selector').change(onSelectChangeFeed);
 | 
			
		||||
 | 
			
		||||
		function onSelectChangeFeed() { 
 | 
			
		||||
			var feed = $(this).find(':selected').data('feed');
 | 
			
		||||
			$('#calendar').fullCalendar('removeEventSource', selectedFeed);
 | 
			
		||||
			$('#calendar').fullCalendar('addEventSource', feed);  
 | 
			
		||||
			selectedFeed = feed;
 | 
			
		||||
		};
 | 
			
		||||
		
 | 
			
		||||
		//When u click on the X the form closes. If the user close it because the operation has been complete. Restart the form correctly
 | 
			
		||||
		span.onclick = function() {
 | 
			
		||||
		   formout();
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		function formout(){
 | 
			
		||||
			$(modal).fadeOut(100,function(){
 | 
			
		||||
			var success = document.getElementById("success");
 | 
			
		||||
			if(success){
 | 
			
		||||
				calendar.fullCalendar('refetchEvents');
 | 
			
		||||
				$(".alert").remove();
 | 
			
		||||
				document.getElementById("session_form").style.display = "block";
 | 
			
		||||
				document.getElementById("price").value = "";
 | 
			
		||||
				document.getElementById("format").value = "";
 | 
			
		||||
				document.getElementById("film_id").value = "";
 | 
			
		||||
				document.getElementById("startHour").value ="";
 | 
			
		||||
			}
 | 
			
		||||
				$(".form_group").removeClass("has_error");
 | 
			
		||||
				$(".help_block").remove();
 | 
			
		||||
			});
 | 
			
		||||
		}
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										207
									
								
								root/assets/js/sessionFormProcess.js
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										207
									
								
								root/assets/js/sessionFormProcess.js
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,207 @@
 | 
			
		||||
$(document).ready(function () {
 | 
			
		||||
	
 | 
			
		||||
	//New session
 | 
			
		||||
	$('#sumbit_new').click( function(e) {
 | 
			
		||||
		$(".form_group").removeClass("has_error");
 | 
			
		||||
		$(".help_block").remove();
 | 
			
		||||
		
 | 
			
		||||
		var formData = {
 | 
			
		||||
		  price: $("#price").val(),
 | 
			
		||||
		  format: $("#format").val(),
 | 
			
		||||
		  hall: $("#hall").val(),
 | 
			
		||||
		  startDate: $("#startDate").val(),
 | 
			
		||||
		  endDate: $("#endDate").val(),
 | 
			
		||||
		  startHour: $("#startHour").val(),
 | 
			
		||||
		  idFilm: $("#film_id").val(),
 | 
			
		||||
		};
 | 
			
		||||
		console.log(formData);	  
 | 
			
		||||
		$.ajax({
 | 
			
		||||
		  type: "POST",
 | 
			
		||||
		  url:"eventsProcess.php",
 | 
			
		||||
		  contentType: 'application/json; charset=utf-8',
 | 
			
		||||
		  dataType: "json",
 | 
			
		||||
		  data:JSON.stringify(formData),
 | 
			
		||||
		  encode: true,
 | 
			
		||||
		}).done(function (data) {
 | 
			
		||||
		  checkErrors(data,"session_form");
 | 
			
		||||
		})
 | 
			
		||||
		.fail(function (jqXHR, textStatus) {
 | 
			
		||||
			$("form#session_form").html(
 | 
			
		||||
			  '<div class="alert alert_danger">Could not reach server, please try again later. '+textStatus+'</div>'
 | 
			
		||||
			);
 | 
			
		||||
     });
 | 
			
		||||
	     e.preventDefault();
 | 
			
		||||
  });
 | 
			
		||||
	//Edit session
 | 
			
		||||
	$('#sumbit_edit').click( function(e) {
 | 
			
		||||
		$(".form_group").removeClass("has_error");
 | 
			
		||||
		$(".help_block").remove();
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		var formData = {
 | 
			
		||||
		  price: $("#price").val(),
 | 
			
		||||
		  format: $("#format").val(),
 | 
			
		||||
		  hall: $("#hall").val(),
 | 
			
		||||
		  startDate: $("#startDate").val(),
 | 
			
		||||
		  endDate: $("#endDate").val(),
 | 
			
		||||
		  startHour: $("#startHour").val(),
 | 
			
		||||
		  idFilm: $("#film_id").val(),
 | 
			
		||||
		  og_hall: $("#original_hall").val(),
 | 
			
		||||
		  og_date: $("#original_date").val(),
 | 
			
		||||
		  og_start: $("#original_start_time").val(),
 | 
			
		||||
		};
 | 
			
		||||
		console.log(formData);
 | 
			
		||||
		
 | 
			
		||||
		$.ajax({
 | 
			
		||||
		  type: "PUT",
 | 
			
		||||
		  url:"eventsProcess.php",
 | 
			
		||||
		  contentType: 'application/json; charset=utf-8',
 | 
			
		||||
		  dataType: "json",
 | 
			
		||||
		  data:JSON.stringify(formData),
 | 
			
		||||
		  encode: true,
 | 
			
		||||
		}).done(function (data) {
 | 
			
		||||
		  checkErrors(data,"session_form");
 | 
			
		||||
		})
 | 
			
		||||
		.fail(function (jqXHR, textStatus) {
 | 
			
		||||
			$("form#session_form").html(
 | 
			
		||||
			  '<div class="alert alert_danger">Could not reach server, please try again later. '+textStatus+'</div>'
 | 
			
		||||
			);
 | 
			
		||||
     });
 | 
			
		||||
	     e.preventDefault();
 | 
			
		||||
  });
 | 
			
		||||
	//Delete Session
 | 
			
		||||
	$('#submit_del').click( function(e) {
 | 
			
		||||
		$(".form_group").removeClass("has_error");
 | 
			
		||||
		$(".help_block").remove();
 | 
			
		||||
		
 | 
			
		||||
		if(confirm("¿Seguro que quieres eliminar esta sesión?")){
 | 
			
		||||
			var formData = {
 | 
			
		||||
			og_hall: $("#original_hall").val(),
 | 
			
		||||
			og_date: $("#original_date").val(),
 | 
			
		||||
			og_start: $("#original_start_time").val(),
 | 
			
		||||
			};
 | 
			
		||||
			console.log(formData);
 | 
			
		||||
			
 | 
			
		||||
			$.ajax({
 | 
			
		||||
			type: "DELETE",
 | 
			
		||||
			url:"eventsProcess.php",
 | 
			
		||||
			contentType: 'application/json; charset=utf-8',
 | 
			
		||||
			dataType: "json",
 | 
			
		||||
			data:JSON.stringify(formData),
 | 
			
		||||
			encode: true,
 | 
			
		||||
			}).done(function (data) {
 | 
			
		||||
			checkErrors(data,"session_form")
 | 
			
		||||
			})
 | 
			
		||||
			.fail(function (jqXHR, textStatus) {
 | 
			
		||||
				$("form#session_form").html(
 | 
			
		||||
				'<div class="alert alert_danger">Could not reach server, please try again later. '+textStatus+'</div>'
 | 
			
		||||
				);
 | 
			
		||||
		});
 | 
			
		||||
	}
 | 
			
		||||
	     e.preventDefault();
 | 
			
		||||
  });
 | 
			
		||||
 | 
			
		||||
	function checkErrors(data,formname) {
 | 
			
		||||
		if (!data.success) {
 | 
			
		||||
			if (data.errors.price) {
 | 
			
		||||
			  $("#price_group").addClass("has_error");
 | 
			
		||||
			  $("#price_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.price + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.format) {
 | 
			
		||||
			  $("#format_group").addClass("has_error");
 | 
			
		||||
			  $("#format_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.format + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.hall) {
 | 
			
		||||
			  $("#hall_group").addClass("has_error");
 | 
			
		||||
			  $("#hall_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.hall + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.startDate) {
 | 
			
		||||
			  $("#date_group").addClass("has_error");
 | 
			
		||||
			  $("#date_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.startDate + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.startDate) {
 | 
			
		||||
			  $("#date_group").addClass("has_error");
 | 
			
		||||
			  $("#date_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.endDate + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.date) {
 | 
			
		||||
			  $("#date_group").addClass("has_error");
 | 
			
		||||
			  $("#date_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.date + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.startHour) {
 | 
			
		||||
			  $("#hour_group").addClass("has_error");
 | 
			
		||||
			  $("#hour_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.startHour + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.idfilm) {
 | 
			
		||||
			  $("#film_msg_group").addClass("has_error");
 | 
			
		||||
			  $("#film_msg_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.idfilm + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
			if (data.errors.global) {
 | 
			
		||||
			  $("#global_group").addClass("has_error");
 | 
			
		||||
			  $("#global_group").append(
 | 
			
		||||
				'<div class="help_block">' + data.errors.global + "</div>"
 | 
			
		||||
			  );
 | 
			
		||||
			}
 | 
			
		||||
      } else {
 | 
			
		||||
		$("#operation_msg").addClass("has_no_error");
 | 
			
		||||
		$("#operation_msg").append(
 | 
			
		||||
			'<div class="alert alert_success" id="success">' + data.message + "</div>"
 | 
			
		||||
		 );
 | 
			
		||||
		 document.getElementById("session_form").style.display = "none";
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
			
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	//Change the view from the film list to a concrete film with some data about it
 | 
			
		||||
	$('.film_button').bind('click', function(e) {
 | 
			
		||||
            var id = $(this).attr('id'); 
 | 
			
		||||
			
 | 
			
		||||
			var x = document.getElementById("film_group");
 | 
			
		||||
			x.style.display = "block";
 | 
			
		||||
			
 | 
			
		||||
			var tittle = document.getElementById("title"+id);
 | 
			
		||||
			document.getElementById("film_title").innerHTML = tittle.innerHTML;
 | 
			
		||||
			
 | 
			
		||||
			var lan = document.getElementById("lan"+id);
 | 
			
		||||
			document.getElementById("film_lan").innerHTML = lan.value;
 | 
			
		||||
			
 | 
			
		||||
			var dur = document.getElementById("dur"+id);
 | 
			
		||||
			document.getElementById("film_dur").innerHTML = dur.innerHTML;
 | 
			
		||||
 | 
			
		||||
			var img = document.getElementById("img"+id);
 | 
			
		||||
			document.getElementById("film_img").src = "../img/films/"+img.value;
 | 
			
		||||
			
 | 
			
		||||
			var idf = document.getElementById("id"+id);
 | 
			
		||||
			document.getElementById("film_id").value = idf.value;
 | 
			
		||||
 | 
			
		||||
			x = document.getElementById("film_list")
 | 
			
		||||
			x.style.display = "none";
 | 
			
		||||
			  
 | 
			
		||||
 | 
			
		||||
     });
 | 
			
		||||
	 //Change the view from the concrete film  data to a film list with all available films
 | 
			
		||||
	 $('#return').click( function() {
 | 
			
		||||
		 	var x = document.getElementById("film_group");
 | 
			
		||||
			x.style.display = "none";
 | 
			
		||||
			
 | 
			
		||||
			x = document.getElementById("film_list");
 | 
			
		||||
			x.style.display = "block";
 | 
			
		||||
		});
 | 
			
		||||
 
 | 
			
		||||
});
 | 
			
		||||
							
								
								
									
										761
									
								
								root/assets/mysql/complucine-FER_SURFACE-2.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										761
									
								
								root/assets/mysql/complucine-FER_SURFACE-2.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,761 @@
 | 
			
		||||
-- phpMyAdmin SQL Dump
 | 
			
		||||
-- version 4.6.6deb5
 | 
			
		||||
-- https://www.phpmyadmin.net/
 | 
			
		||||
--
 | 
			
		||||
-- Servidor: localhost:3306
 | 
			
		||||
-- Tiempo de generación: 27-05-2021 a las 21:21:26
 | 
			
		||||
-- Versión del servidor: 10.0.28-MariaDB-2+b1
 | 
			
		||||
-- Versión de PHP: 7.3.27-1~deb10u1
 | 
			
		||||
 | 
			
		||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 | 
			
		||||
SET time_zone = "+00:00";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 | 
			
		||||
/*!40101 SET NAMES utf8mb4 */;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Base de datos: `complucine`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `admin` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `cinema` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `name` varchar(10) NOT NULL,
 | 
			
		||||
  `direction` varchar(120) NOT NULL,
 | 
			
		||||
  `phone` varchar(10) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `cinema` (`id`, `name`, `direction`, `phone`) VALUES
 | 
			
		||||
(1, 'Cinema 1st', 'Calle de ejemplo 111', '77777777'),
 | 
			
		||||
(3, 'Cinema 2st', 'Calle falsa 123', '123456789'),
 | 
			
		||||
(6, 'Cinema 3st', 'Calle falsa 456', '987654321'),
 | 
			
		||||
(7, 'Cinema 4st', 'Calle falsa 789', '222222222');
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `film` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(60) NOT NULL,
 | 
			
		||||
  `duration` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `language` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `img` varchar(60) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `film` (`id`, `tittle`, `duration`, `language`, `description`, `img`) VALUES
 | 
			
		||||
(1, 'iron_man', 120, 'Español', 'Un empresario millonario construye un traje blindado y lo usa para combatir el crimen y el terrorismo.', 'iron_man.jpg'),
 | 
			
		||||
(2, 'iron_man_2', 120, 'Español', 'Con el mundo ahora consciente de que él es Iron Man, el millonario inventor Tony Stark debe forjar nuevas alianzas y confrontar a un enemigo nuevo y poderoso.', 'iron_man_2.jpg'),
 | 
			
		||||
(3, 'iron_man_3', 120, 'Español', 'El descarado y brillante Tony Stark, tras ver destruido todo su universo personal, debe encontrar y enfrentarse a un enemigo cuyo poder no conoce límites. Este viaje pondrá a prueba su entereza una y otra vez, y le obligará a confiar en su ingenio.', 'iron_man_3.jpg'),
 | 
			
		||||
(4, 'capitan_america_el_primer_vengador', 120, 'Español', 'Tras tres meses de someterse a un programa de entrenamiento físico y táctico, encomiendan a Steve Rogers su primera misión como Capitán América. Armado con un escudo indestructible, emprende la guerra contra la perversa organización HYDRA.', 'capitan_america_el_primer_vengador.jpg'),
 | 
			
		||||
(5, 'capitan_america_el_soldado_de_invierno', 120, 'Español', 'Capitán América, Viuda Negra y un nuevo aliado, Falcon, se enfrentan a un enemigo inesperado mientras intentan exponer una conspiración que pone en riesgo al mundo.', 'capitan_america_el_soldado_de_invierno.jpg'),
 | 
			
		||||
(6, 'capitan_america_civil_war', 180, 'Español', 'Después de que otro incidente internacional, en el que se ven envueltos los Vengadores, produzca daños colaterales, la presión política obliga a poner en marcha un sistema para depurar responsabilidades.', 'capitan_america_civil_war.jpg'),
 | 
			
		||||
(7, 'marvel_avengers', 120, 'Español', 'El director de la Agencia SHIELD decide reclutar a un equipo para salvar al mundo de un desastre casi seguro cuando un enemigo inesperado surge como una gran amenaza para la seguridad mundial.', 'marvel_avengers.jpg'),
 | 
			
		||||
(8, 'avengers_age_of_ultron', 120, 'Español', 'Los Vengadores se reúnen de nuevo y juntan sus fuerzas con las de los recién llegados Quicksilver y Bruja Escarlata para luchar contra un robot maquiavélico llamado Ultrón, el cual Tony Stark creó con el fin de defender la paz, pero resultó defectuoso y ahora pretende exterminar a toda la humanidad.', 'avengers_age_of_ultron.jpg'),
 | 
			
		||||
(9, 'avengers_inifinity_war', 180, 'Español', 'Los superhéroes se alían para vencer al poderoso Thanos, el peor enemigo al que se han enfrentado. Si Thanos logra reunir las seis gemas del infinito: poder, tiempo, alma, realidad, mente y espacio, nadie podrá detenerlo.', 'avengers_inifinity_war.jpg'),
 | 
			
		||||
(10, 'avengers_end_game', 180, 'Español', 'Los Vengadores restantes deben encontrar una manera de recuperar a sus aliados para un enfrentamiento épico con Thanos, el malvado que diezmó el planeta y el universo.', 'avengers_end_game.jpg');
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `hall` (
 | 
			
		||||
  `number` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrows` int(3) NOT NULL,
 | 
			
		||||
  `numcolumns` int(3) NOT NULL,
 | 
			
		||||
  `total_seats` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `hall` (`number`, `idcinema`, `numrows`, `numcolumns`, `total_seats`) VALUES
 | 
			
		||||
(1, 1, 12, 8, 60),
 | 
			
		||||
(1, 3, 12, 8, 84),
 | 
			
		||||
(2, 1, 14, 8, 97),
 | 
			
		||||
(2, 3, 12, 8, 96);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `manager` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `manager` (`id`, `idcinema`) VALUES
 | 
			
		||||
(1, 1);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `promotion` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `code` varchar(15) NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1',
 | 
			
		||||
  `img` varchar(60) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `promotion` (`id`, `tittle`, `description`, `code`, `active`, `img`) VALUES
 | 
			
		||||
(1, 'Promo Palomitas', '3x2 en palomitas.', '0x00001A', 0, 'promo_palomitas.jpg'),
 | 
			
		||||
(4, 'Promo Vuelve', 'Promoción vuelve al cine.', '0x00002B', 1, 'promo_vuelve.jpg'),
 | 
			
		||||
(5, 'Promo Miercoles', 'Promoción de los miércoles.', '0x00003C', 1, 'promo_miercoles.jpg');
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `purchase` (
 | 
			
		||||
  `iduser` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idsession` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `time_purchase` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `seat` (
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1'
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `seat` (`idhall`, `idcinema`, `numrow`, `numcolum`, `active`) VALUES
 | 
			
		||||
(1, 1, 1, 1, 0),
 | 
			
		||||
(1, 1, 1, 2, 0),
 | 
			
		||||
(1, 1, 1, 3, 0),
 | 
			
		||||
(1, 1, 1, 4, -1),
 | 
			
		||||
(1, 1, 1, 5, -1),
 | 
			
		||||
(1, 1, 1, 6, 0),
 | 
			
		||||
(1, 1, 1, 7, 0),
 | 
			
		||||
(1, 1, 1, 8, 0),
 | 
			
		||||
(1, 1, 2, 1, 0),
 | 
			
		||||
(1, 1, 2, 2, 0),
 | 
			
		||||
(1, 1, 2, 3, 0),
 | 
			
		||||
(1, 1, 2, 4, -1),
 | 
			
		||||
(1, 1, 2, 5, -1),
 | 
			
		||||
(1, 1, 2, 6, 0),
 | 
			
		||||
(1, 1, 2, 7, 0),
 | 
			
		||||
(1, 1, 2, 8, 0),
 | 
			
		||||
(1, 1, 3, 1, 0),
 | 
			
		||||
(1, 1, 3, 2, 0),
 | 
			
		||||
(1, 1, 3, 3, 0),
 | 
			
		||||
(1, 1, 3, 4, -1),
 | 
			
		||||
(1, 1, 3, 5, -1),
 | 
			
		||||
(1, 1, 3, 6, 0),
 | 
			
		||||
(1, 1, 3, 7, 0),
 | 
			
		||||
(1, 1, 3, 8, 0),
 | 
			
		||||
(1, 1, 4, 1, -1),
 | 
			
		||||
(1, 1, 4, 2, -1),
 | 
			
		||||
(1, 1, 4, 3, -1),
 | 
			
		||||
(1, 1, 4, 4, -1),
 | 
			
		||||
(1, 1, 4, 5, -1),
 | 
			
		||||
(1, 1, 4, 6, -1),
 | 
			
		||||
(1, 1, 4, 7, -1),
 | 
			
		||||
(1, 1, 4, 8, -1),
 | 
			
		||||
(1, 1, 5, 1, -1),
 | 
			
		||||
(1, 1, 5, 2, -1),
 | 
			
		||||
(1, 1, 5, 3, -1),
 | 
			
		||||
(1, 1, 5, 4, -1),
 | 
			
		||||
(1, 1, 5, 5, -1),
 | 
			
		||||
(1, 1, 5, 6, -1),
 | 
			
		||||
(1, 1, 5, 7, -1),
 | 
			
		||||
(1, 1, 5, 8, -1),
 | 
			
		||||
(1, 1, 6, 1, 0),
 | 
			
		||||
(1, 1, 6, 2, 0),
 | 
			
		||||
(1, 1, 6, 3, 0),
 | 
			
		||||
(1, 1, 6, 4, -1),
 | 
			
		||||
(1, 1, 6, 5, -1),
 | 
			
		||||
(1, 1, 6, 6, 0),
 | 
			
		||||
(1, 1, 6, 7, 0),
 | 
			
		||||
(1, 1, 6, 8, 0),
 | 
			
		||||
(1, 1, 7, 1, 0),
 | 
			
		||||
(1, 1, 7, 2, 0),
 | 
			
		||||
(1, 1, 7, 3, 0),
 | 
			
		||||
(1, 1, 7, 4, -1),
 | 
			
		||||
(1, 1, 7, 5, -1),
 | 
			
		||||
(1, 1, 7, 6, 0),
 | 
			
		||||
(1, 1, 7, 7, 0),
 | 
			
		||||
(1, 1, 7, 8, 0),
 | 
			
		||||
(1, 1, 8, 1, 0),
 | 
			
		||||
(1, 1, 8, 2, 0),
 | 
			
		||||
(1, 1, 8, 3, 0),
 | 
			
		||||
(1, 1, 8, 4, -1),
 | 
			
		||||
(1, 1, 8, 5, -1),
 | 
			
		||||
(1, 1, 8, 6, 0),
 | 
			
		||||
(1, 1, 8, 7, 0),
 | 
			
		||||
(1, 1, 8, 8, 0),
 | 
			
		||||
(1, 1, 9, 1, 0),
 | 
			
		||||
(1, 1, 9, 2, 0),
 | 
			
		||||
(1, 1, 9, 3, 0),
 | 
			
		||||
(1, 1, 9, 4, -1),
 | 
			
		||||
(1, 1, 9, 5, -1),
 | 
			
		||||
(1, 1, 9, 6, 0),
 | 
			
		||||
(1, 1, 9, 7, 0),
 | 
			
		||||
(1, 1, 9, 8, 0),
 | 
			
		||||
(1, 1, 10, 1, 0),
 | 
			
		||||
(1, 1, 10, 2, 0),
 | 
			
		||||
(1, 1, 10, 3, 0),
 | 
			
		||||
(1, 1, 10, 4, -1),
 | 
			
		||||
(1, 1, 10, 5, -1),
 | 
			
		||||
(1, 1, 10, 6, 0),
 | 
			
		||||
(1, 1, 10, 7, 0),
 | 
			
		||||
(1, 1, 10, 8, 0),
 | 
			
		||||
(1, 1, 11, 1, 0),
 | 
			
		||||
(1, 1, 11, 2, 0),
 | 
			
		||||
(1, 1, 11, 3, 0),
 | 
			
		||||
(1, 1, 11, 4, -1),
 | 
			
		||||
(1, 1, 11, 5, -1),
 | 
			
		||||
(1, 1, 11, 6, 0),
 | 
			
		||||
(1, 1, 11, 7, 0),
 | 
			
		||||
(1, 1, 11, 8, 0),
 | 
			
		||||
(1, 1, 12, 1, 0),
 | 
			
		||||
(1, 1, 12, 2, 0),
 | 
			
		||||
(1, 1, 12, 3, 0),
 | 
			
		||||
(1, 1, 12, 4, -1),
 | 
			
		||||
(1, 1, 12, 5, -1),
 | 
			
		||||
(1, 1, 12, 6, 0),
 | 
			
		||||
(1, 1, 12, 7, 0),
 | 
			
		||||
(1, 1, 12, 8, 0),
 | 
			
		||||
(2, 1, 1, 1, 1),
 | 
			
		||||
(2, 1, 1, 2, 1),
 | 
			
		||||
(2, 1, 1, 3, 1),
 | 
			
		||||
(2, 1, 1, 4, 1),
 | 
			
		||||
(2, 1, 1, 5, 1),
 | 
			
		||||
(2, 1, 1, 6, 1),
 | 
			
		||||
(2, 1, 1, 7, 1),
 | 
			
		||||
(2, 1, 1, 8, 1),
 | 
			
		||||
(2, 1, 2, 1, 1),
 | 
			
		||||
(2, 1, 2, 2, 1),
 | 
			
		||||
(2, 1, 2, 3, 1),
 | 
			
		||||
(2, 1, 2, 4, 1),
 | 
			
		||||
(2, 1, 2, 5, 1),
 | 
			
		||||
(2, 1, 2, 6, 1),
 | 
			
		||||
(2, 1, 2, 7, 1),
 | 
			
		||||
(2, 1, 2, 8, 1),
 | 
			
		||||
(2, 1, 3, 1, 1),
 | 
			
		||||
(2, 1, 3, 2, -1),
 | 
			
		||||
(2, 1, 3, 3, -1),
 | 
			
		||||
(2, 1, 3, 4, -1),
 | 
			
		||||
(2, 1, 3, 5, 1),
 | 
			
		||||
(2, 1, 3, 6, 1),
 | 
			
		||||
(2, 1, 3, 7, 1),
 | 
			
		||||
(2, 1, 3, 8, 1),
 | 
			
		||||
(2, 1, 4, 1, 1),
 | 
			
		||||
(2, 1, 4, 2, -1),
 | 
			
		||||
(2, 1, 4, 3, -1),
 | 
			
		||||
(2, 1, 4, 4, -1),
 | 
			
		||||
(2, 1, 4, 5, 1),
 | 
			
		||||
(2, 1, 4, 6, 1),
 | 
			
		||||
(2, 1, 4, 7, 1),
 | 
			
		||||
(2, 1, 4, 8, 1),
 | 
			
		||||
(2, 1, 5, 1, 1),
 | 
			
		||||
(2, 1, 5, 2, -1),
 | 
			
		||||
(2, 1, 5, 3, -1),
 | 
			
		||||
(2, 1, 5, 4, -1),
 | 
			
		||||
(2, 1, 5, 5, 1),
 | 
			
		||||
(2, 1, 5, 6, 1),
 | 
			
		||||
(2, 1, 5, 7, 1),
 | 
			
		||||
(2, 1, 5, 8, 1),
 | 
			
		||||
(2, 1, 6, 1, 1),
 | 
			
		||||
(2, 1, 6, 2, 1),
 | 
			
		||||
(2, 1, 6, 3, 1),
 | 
			
		||||
(2, 1, 6, 4, 1),
 | 
			
		||||
(2, 1, 6, 5, 1),
 | 
			
		||||
(2, 1, 6, 6, 1),
 | 
			
		||||
(2, 1, 6, 7, 1),
 | 
			
		||||
(2, 1, 6, 8, 1),
 | 
			
		||||
(2, 1, 7, 1, 1),
 | 
			
		||||
(2, 1, 7, 2, 1),
 | 
			
		||||
(2, 1, 7, 3, 1),
 | 
			
		||||
(2, 1, 7, 4, 1),
 | 
			
		||||
(2, 1, 7, 5, -1),
 | 
			
		||||
(2, 1, 7, 6, -1),
 | 
			
		||||
(2, 1, 7, 7, 1),
 | 
			
		||||
(2, 1, 7, 8, 1),
 | 
			
		||||
(2, 1, 8, 1, 1),
 | 
			
		||||
(2, 1, 8, 2, 1),
 | 
			
		||||
(2, 1, 8, 3, 1),
 | 
			
		||||
(2, 1, 8, 4, 1),
 | 
			
		||||
(2, 1, 8, 5, -1),
 | 
			
		||||
(2, 1, 8, 6, -1),
 | 
			
		||||
(2, 1, 8, 7, 1),
 | 
			
		||||
(2, 1, 8, 8, 1),
 | 
			
		||||
(2, 1, 9, 1, 1),
 | 
			
		||||
(2, 1, 9, 2, 1),
 | 
			
		||||
(2, 1, 9, 3, 1),
 | 
			
		||||
(2, 1, 9, 4, 1),
 | 
			
		||||
(2, 1, 9, 5, -1),
 | 
			
		||||
(2, 1, 9, 6, -1),
 | 
			
		||||
(2, 1, 9, 7, 1),
 | 
			
		||||
(2, 1, 9, 8, 1),
 | 
			
		||||
(2, 1, 10, 1, 1),
 | 
			
		||||
(2, 1, 10, 2, 1),
 | 
			
		||||
(2, 1, 10, 3, 1),
 | 
			
		||||
(2, 1, 10, 4, 1),
 | 
			
		||||
(2, 1, 10, 5, 1),
 | 
			
		||||
(2, 1, 10, 6, 1),
 | 
			
		||||
(2, 1, 10, 7, 1),
 | 
			
		||||
(2, 1, 10, 8, 1),
 | 
			
		||||
(2, 1, 11, 1, 1),
 | 
			
		||||
(2, 1, 11, 2, 1),
 | 
			
		||||
(2, 1, 11, 3, 1),
 | 
			
		||||
(2, 1, 11, 4, 1),
 | 
			
		||||
(2, 1, 11, 5, 1),
 | 
			
		||||
(2, 1, 11, 6, 1),
 | 
			
		||||
(2, 1, 11, 7, 1),
 | 
			
		||||
(2, 1, 11, 8, 1),
 | 
			
		||||
(2, 1, 12, 1, 1),
 | 
			
		||||
(2, 1, 12, 2, 1),
 | 
			
		||||
(2, 1, 12, 3, 1),
 | 
			
		||||
(2, 1, 12, 4, 1),
 | 
			
		||||
(2, 1, 12, 5, 1),
 | 
			
		||||
(2, 1, 12, 6, 1),
 | 
			
		||||
(2, 1, 12, 7, 1),
 | 
			
		||||
(2, 1, 12, 8, 1),
 | 
			
		||||
(2, 1, 13, 1, 1),
 | 
			
		||||
(2, 1, 13, 2, 1),
 | 
			
		||||
(2, 1, 13, 3, 1),
 | 
			
		||||
(2, 1, 13, 4, 1),
 | 
			
		||||
(2, 1, 13, 5, 1),
 | 
			
		||||
(2, 1, 13, 6, 1),
 | 
			
		||||
(2, 1, 13, 7, 1),
 | 
			
		||||
(2, 1, 13, 8, 1),
 | 
			
		||||
(2, 1, 14, 1, 1),
 | 
			
		||||
(2, 1, 14, 2, 1),
 | 
			
		||||
(2, 1, 14, 3, 1),
 | 
			
		||||
(2, 1, 14, 4, 1),
 | 
			
		||||
(2, 1, 14, 5, 1),
 | 
			
		||||
(2, 1, 14, 6, 1),
 | 
			
		||||
(2, 1, 14, 7, 1),
 | 
			
		||||
(2, 1, 14, 8, 1);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `session` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idfilm` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `date` date NOT NULL,
 | 
			
		||||
  `start_time` time NOT NULL,
 | 
			
		||||
  `seat_price` float NOT NULL,
 | 
			
		||||
  `format` varchar(20) NOT NULL,
 | 
			
		||||
  `seats_full` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `session` (`id`, `idfilm`, `idhall`, `idcinema`, `date`, `start_time`, `seat_price`, `format`, `seats_full`) VALUES
 | 
			
		||||
(19, 1, 2, 1, '2021-05-14', '19:00:00', 12, '2d', 0),
 | 
			
		||||
(20, 1, 2, 1, '2021-05-15', '19:00:00', 12, '2d', 0),
 | 
			
		||||
(21, 3, 1, 1, '2021-05-24', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(22, 3, 1, 1, '2021-05-25', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(23, 3, 1, 1, '2021-05-26', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(24, 3, 1, 1, '2021-05-27', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(25, 3, 1, 1, '2021-05-28', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(26, 3, 1, 1, '2021-05-29', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(27, 3, 1, 1, '2021-05-30', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(28, 3, 1, 1, '2021-05-31', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(29, 3, 1, 1, '2021-06-01', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(30, 3, 1, 1, '2021-06-02', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(31, 3, 1, 1, '2021-06-03', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(32, 3, 1, 1, '2021-06-04', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(33, 3, 1, 1, '2021-06-05', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(34, 3, 1, 1, '2021-06-06', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(35, 3, 1, 1, '2021-06-07', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(36, 3, 1, 1, '2021-06-08', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(37, 3, 1, 1, '2021-06-09', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(38, 3, 1, 1, '2021-06-10', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(39, 3, 1, 1, '2021-06-11', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(40, 3, 1, 1, '2021-06-12', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(41, 3, 1, 1, '2021-06-13', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(42, 3, 1, 1, '2021-06-14', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(43, 3, 1, 1, '2021-06-15', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(44, 3, 1, 1, '2021-06-16', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(45, 3, 1, 1, '2021-06-17', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(46, 3, 1, 1, '2021-06-18', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(47, 3, 1, 1, '2021-06-19', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(48, 3, 1, 1, '2021-06-20', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(49, 3, 1, 1, '2021-06-21', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(50, 3, 1, 1, '2021-06-22', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(51, 3, 1, 1, '2021-06-23', '15:00:00', 5, '2D', 0),
 | 
			
		||||
(52, 2, 1, 1, '2021-05-24', '14:00:00', 5, '3D', 0),
 | 
			
		||||
(53, 4, 1, 1, '2021-05-24', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(54, 4, 1, 1, '2021-05-25', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(55, 4, 1, 1, '2021-05-26', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(56, 4, 1, 1, '2021-05-27', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(57, 4, 1, 1, '2021-05-28', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(58, 4, 1, 1, '2021-05-29', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(59, 4, 1, 1, '2021-05-30', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(60, 4, 1, 1, '2021-05-31', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(61, 4, 1, 1, '2021-06-01', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(62, 4, 1, 1, '2021-06-02', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(63, 4, 1, 1, '2021-06-03', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(64, 4, 1, 1, '2021-06-04', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(65, 4, 1, 1, '2021-06-05', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(66, 4, 1, 1, '2021-06-06', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(67, 4, 1, 1, '2021-06-07', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(68, 4, 1, 1, '2021-06-08', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(69, 4, 1, 1, '2021-06-09', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(70, 4, 1, 1, '2021-06-10', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(71, 4, 1, 1, '2021-06-11', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(72, 4, 1, 1, '2021-06-12', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(73, 4, 1, 1, '2021-06-13', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(74, 4, 1, 1, '2021-06-14', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(75, 4, 1, 1, '2021-06-15', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(76, 4, 1, 1, '2021-06-16', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(77, 4, 1, 1, '2021-06-17', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(78, 4, 1, 1, '2021-06-18', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(79, 4, 1, 1, '2021-06-19', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(80, 4, 1, 1, '2021-06-20', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(81, 4, 1, 1, '2021-06-21', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(82, 4, 1, 1, '2021-06-22', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(83, 4, 1, 1, '2021-06-23', '16:00:00', 5, 'o.v.', 0),
 | 
			
		||||
(84, 7, 2, 1, '2021-05-24', '17:00:00', 3, 'o.v. con subtitulos', 0),
 | 
			
		||||
(85, 7, 2, 1, '2021-05-25', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(86, 7, 2, 1, '2021-05-26', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(87, 7, 2, 1, '2021-05-27', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(88, 7, 2, 1, '2021-05-28', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(89, 7, 2, 1, '2021-05-29', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(90, 7, 2, 1, '2021-05-30', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(91, 7, 2, 1, '2021-05-31', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(92, 7, 2, 1, '2021-06-01', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(93, 7, 2, 1, '2021-06-02', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(94, 7, 2, 1, '2021-06-03', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(95, 7, 2, 1, '2021-06-04', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(96, 7, 2, 1, '2021-06-05', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(97, 7, 2, 1, '2021-06-06', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(98, 7, 2, 1, '2021-06-07', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(99, 7, 2, 1, '2021-06-08', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(100, 7, 2, 1, '2021-06-09', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(101, 7, 2, 1, '2021-06-10', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(102, 7, 2, 1, '2021-06-11', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(103, 7, 2, 1, '2021-06-12', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(104, 7, 2, 1, '2021-06-13', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(105, 7, 2, 1, '2021-06-14', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(106, 7, 2, 1, '2021-06-15', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(107, 7, 2, 1, '2021-06-16', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(108, 7, 2, 1, '2021-06-17', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(109, 7, 2, 1, '2021-06-18', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(110, 7, 2, 1, '2021-06-19', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(111, 7, 2, 1, '2021-06-20', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(112, 7, 2, 1, '2021-06-21', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(113, 7, 2, 1, '2021-06-22', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(114, 7, 2, 1, '2021-06-23', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(115, 7, 2, 1, '2021-06-24', '17:00:00', 3, 'v.o. con subtitulos', 0),
 | 
			
		||||
(116, 10, 2, 1, '2021-05-24', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(117, 10, 2, 1, '2021-05-25', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(118, 10, 2, 1, '2021-05-26', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(119, 10, 2, 1, '2021-05-27', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(120, 10, 2, 1, '2021-05-28', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(121, 10, 2, 1, '2021-05-29', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(122, 10, 2, 1, '2021-05-30', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(123, 10, 2, 1, '2021-05-31', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(124, 10, 2, 1, '2021-06-01', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(125, 10, 2, 1, '2021-06-02', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(126, 10, 2, 1, '2021-06-03', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(127, 10, 2, 1, '2021-06-04', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(128, 10, 2, 1, '2021-06-05', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(129, 10, 2, 1, '2021-06-06', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(130, 10, 2, 1, '2021-06-07', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(131, 10, 2, 1, '2021-06-08', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(132, 10, 2, 1, '2021-06-09', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(133, 10, 2, 1, '2021-06-10', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(134, 10, 2, 1, '2021-06-11', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(135, 10, 2, 1, '2021-06-12', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(136, 10, 2, 1, '2021-06-13', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(137, 10, 2, 1, '2021-06-14', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(138, 10, 2, 1, '2021-06-15', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(139, 10, 2, 1, '2021-06-16', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(140, 10, 2, 1, '2021-06-17', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(141, 10, 2, 1, '2021-06-18', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(142, 10, 2, 1, '2021-06-19', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(143, 10, 2, 1, '2021-06-20', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(144, 10, 2, 1, '2021-06-21', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(145, 10, 2, 1, '2021-06-22', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(146, 10, 2, 1, '2021-06-23', '18:00:00', 9, 'estandar', 0),
 | 
			
		||||
(147, 9, 1, 3, '2021-05-24', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(148, 9, 1, 3, '2021-05-25', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(149, 9, 1, 3, '2021-05-26', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(150, 9, 1, 3, '2021-05-27', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(151, 9, 1, 3, '2021-05-28', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(152, 9, 1, 3, '2021-05-29', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(153, 9, 1, 3, '2021-05-30', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(154, 9, 1, 3, '2021-05-31', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(155, 9, 1, 3, '2021-06-01', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(156, 9, 1, 3, '2021-06-02', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(157, 9, 1, 3, '2021-06-03', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(158, 9, 1, 3, '2021-06-04', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(159, 9, 1, 3, '2021-06-05', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(160, 9, 1, 3, '2021-06-06', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(161, 9, 1, 3, '2021-06-07', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(162, 9, 1, 3, '2021-06-08', '00:01:00', 7, 'estandar', 0),
 | 
			
		||||
(163, 10, 1, 3, '2021-05-24', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(164, 10, 1, 3, '2021-05-25', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(165, 10, 1, 3, '2021-05-26', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(166, 10, 1, 3, '2021-05-27', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(167, 10, 1, 3, '2021-05-28', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(168, 10, 1, 3, '2021-05-29', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(169, 10, 1, 3, '2021-05-30', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(170, 10, 1, 3, '2021-05-31', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(171, 10, 1, 3, '2021-06-01', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(172, 10, 1, 3, '2021-06-02', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(173, 10, 1, 3, '2021-06-03', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(174, 10, 1, 3, '2021-06-04', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(175, 10, 1, 3, '2021-06-05', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(176, 10, 1, 3, '2021-06-06', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(177, 10, 1, 3, '2021-06-07', '09:00:00', 14, 'estandar', 0),
 | 
			
		||||
(178, 10, 1, 3, '2021-06-08', '09:00:00', 14, 'estandar', 0);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `users` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `username` varchar(10) NOT NULL,
 | 
			
		||||
  `email` varchar(30) NOT NULL,
 | 
			
		||||
  `passwd` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
 | 
			
		||||
  `rol` varchar(7) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Usuarios';
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `users` (`id`, `username`, `email`, `passwd`, `rol`) VALUES
 | 
			
		||||
(0, 'admin', 'admin@complucine.sytes.net', 'shDBCKnEbWZFc', 'admin'),
 | 
			
		||||
(1, 'manager', 'manager@complucine.sytes.net', 'shTS9RK/eJPoQ', 'manager'),
 | 
			
		||||
(2, 'user', 'user@complucine.sytes.net', 'shO5etd.DYKWg', 'user'),
 | 
			
		||||
(7, 'fernando', 'fer@complucine.sytes.net', '$2y$10$/3yjEh4d7AOY3RyNjXIIkO5H2hg7/kiHiToJa92tCBPd7s3UPtB.G', 'user');
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Índices para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD KEY `PK_A_USER` (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `U_TITTLE_LANGUAGE` (`tittle`,`language`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD PRIMARY KEY (`number`,`idcinema`),
 | 
			
		||||
  ADD KEY `FK_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD KEY `PK_M_USER` (`id`),
 | 
			
		||||
  ADD KEY `PK_M_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD KEY `PK_P_SEAT` (`idhall`,`numrow`,`numcolum`),
 | 
			
		||||
  ADD KEY `FK_P_SESSION` (`idsession`),
 | 
			
		||||
  ADD KEY `FK_P_USER` (`iduser`),
 | 
			
		||||
  ADD KEY `FK_P_SEAT` (`idhall`,`idcinema`,`numrow`,`numcolum`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD PRIMARY KEY (`idhall`,`numrow`,`numcolum`),
 | 
			
		||||
  ADD KEY `FK_HALL` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD KEY `FK_FILM` (`idfilm`),
 | 
			
		||||
  ADD KEY `FK_HALL_` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `email` (`email`),
 | 
			
		||||
  ADD UNIQUE KEY `username_2` (`username`),
 | 
			
		||||
  ADD KEY `username` (`username`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de las tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=18;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  MODIFY `number` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=179;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=77;
 | 
			
		||||
--
 | 
			
		||||
-- Restricciones para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD CONSTRAINT `PK_A_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD CONSTRAINT `FK_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD CONSTRAINT `PK_M_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `PK_M_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SEAT` FOREIGN KEY (`idhall`,`idcinema`,`numrow`,`numcolum`) REFERENCES `seat` (`idhall`, `idcinema`, `numrow`, `numcolum`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SESSION` FOREIGN KEY (`idsession`) REFERENCES `session` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_USER` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD CONSTRAINT `FK_FILM` FOREIGN KEY (`idfilm`) REFERENCES `film` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL_` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 | 
			
		||||
							
								
								
									
										598
									
								
								root/assets/mysql/complucine-FER_SURFACE.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										598
									
								
								root/assets/mysql/complucine-FER_SURFACE.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,598 @@
 | 
			
		||||
-- phpMyAdmin SQL Dump
 | 
			
		||||
-- version 4.6.6deb5
 | 
			
		||||
-- https://www.phpmyadmin.net/
 | 
			
		||||
--
 | 
			
		||||
-- Servidor: localhost:3306
 | 
			
		||||
-- Tiempo de generación: 14-05-2021 a las 11:28:23
 | 
			
		||||
-- Versión del servidor: 10.0.28-MariaDB-2+b1
 | 
			
		||||
-- Versión de PHP: 7.3.27-1~deb10u1
 | 
			
		||||
 | 
			
		||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 | 
			
		||||
SET time_zone = "+00:00";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 | 
			
		||||
/*!40101 SET NAMES utf8mb4 */;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Base de datos: `complucine`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `admin` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `cinema` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `name` varchar(10) NOT NULL,
 | 
			
		||||
  `direction` varchar(120) NOT NULL,
 | 
			
		||||
  `phone` varchar(10) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `cinema` (`id`, `name`, `direction`, `phone`) VALUES
 | 
			
		||||
(1, 'Cinema 1st', 'Calle de ejemplo 111', '77777777'),
 | 
			
		||||
(3, 'Cinema 2st', 'Calle falsa 123', '123456789');
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `film` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(60) NOT NULL,
 | 
			
		||||
  `duration` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `language` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `img` varchar(60) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `film` (`id`, `tittle`, `duration`, `language`, `description`, `img`) VALUES
 | 
			
		||||
(1, 'iron_man', 120, 'spanish', 'Un empresario millonario construye un traje blindado y lo usa para combatir el crimen y el terrorismo.', ''),
 | 
			
		||||
(2, 'iron_man_2', 120, 'spanish', 'Con el mundo ahora consciente de que él es Iron Man, el millonario inventor Tony Stark debe forjar nuevas alianzas y confrontar a un enemigo nuevo y poderoso.', ''),
 | 
			
		||||
(3, 'iron_man_3', 120, 'spanish', 'El descarado y brillante Tony Stark, tras ver destruido todo su universo personal, debe encontrar y enfrentarse a un enemigo cuyo poder no conoce límites. Este viaje pondrá a prueba su entereza una y otra vez, y le obligará a confiar en su ingenio.', ''),
 | 
			
		||||
(4, 'capitan_america_el_primer_vengador', 120, 'spanish', 'Tras tres meses de someterse a un programa de entrenamiento físico y táctico, encomiendan a Steve Rogers su primera misión como Capitán América. Armado con un escudo indestructible, emprende la guerra contra la perversa organización HYDRA.', ''),
 | 
			
		||||
(5, 'capitan_america_el_soldado_de_invierno', 120, 'spanish', 'Capitán América, Viuda Negra y un nuevo aliado, Falcon, se enfrentan a un enemigo inesperado mientras intentan exponer una conspiración que pone en riesgo al mundo.', ''),
 | 
			
		||||
(6, 'capitan_america_civil_war', 180, 'spanish', 'Después de que otro incidente internacional, en el que se ven envueltos los Vengadores, produzca daños colaterales, la presión política obliga a poner en marcha un sistema para depurar responsabilidades.', ''),
 | 
			
		||||
(7, 'marvel_avengers', 120, 'spanish', 'El director de la Agencia SHIELD decide reclutar a un equipo para salvar al mundo de un desastre casi seguro cuando un enemigo inesperado surge como una gran amenaza para la seguridad mundial.', ''),
 | 
			
		||||
(8, 'avengers_age_of_ultron', 120, 'spanish', 'Los Vengadores se reúnen de nuevo y juntan sus fuerzas con las de los recién llegados Quicksilver y Bruja Escarlata para luchar contra un robot maquiavélico llamado Ultrón, el cual Tony Stark creó con el fin de defender la paz, pero resultó defectuoso y ahora pretende exterminar a toda la humanidad.', ''),
 | 
			
		||||
(9, 'avengers_inifinity_war', 180, 'spanish', 'Los superhéroes se alían para vencer al poderoso Thanos, el peor enemigo al que se han enfrentado. Si Thanos logra reunir las seis gemas del infinito: poder, tiempo, alma, realidad, mente y espacio, nadie podrá detenerlo.', ''),
 | 
			
		||||
(10, 'avengers_end_game', 180, 'spanish', 'Los Vengadores restantes deben encontrar una manera de recuperar a sus aliados para un enfrentamiento épico con Thanos, el malvado que diezmó el planeta y el universo.', '');
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `hall` (
 | 
			
		||||
  `number` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrows` int(3) NOT NULL,
 | 
			
		||||
  `numcolumns` int(3) NOT NULL,
 | 
			
		||||
  `total_seats` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `hall` (`number`, `idcinema`, `numrows`, `numcolumns`, `total_seats`) VALUES
 | 
			
		||||
(1, 1, 12, 8, 60),
 | 
			
		||||
(2, 1, 14, 8, 97);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `manager` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `manager` (`id`, `idcinema`) VALUES
 | 
			
		||||
(1, 1);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `promotion` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `code` varchar(15) NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1'
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `promotion` (`id`, `tittle`, `description`, `code`, `active`) VALUES
 | 
			
		||||
(1, '3x2', 'en entradas', '000001A', 0),
 | 
			
		||||
(2, 'Promocion de ejemplo', 'Esto es un ejemplo', '1234', 0);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `purchase` (
 | 
			
		||||
  `iduser` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idsession` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `time_purchase` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `seat` (
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1'
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `seat` (`idhall`, `idcinema`, `numrow`, `numcolum`, `active`) VALUES
 | 
			
		||||
(1, 1, 1, 1, 0),
 | 
			
		||||
(1, 1, 1, 2, 0),
 | 
			
		||||
(1, 1, 1, 3, 0),
 | 
			
		||||
(1, 1, 1, 4, -1),
 | 
			
		||||
(1, 1, 1, 5, -1),
 | 
			
		||||
(1, 1, 1, 6, 0),
 | 
			
		||||
(1, 1, 1, 7, 0),
 | 
			
		||||
(1, 1, 1, 8, 0),
 | 
			
		||||
(1, 1, 2, 1, 0),
 | 
			
		||||
(1, 1, 2, 2, 0),
 | 
			
		||||
(1, 1, 2, 3, 0),
 | 
			
		||||
(1, 1, 2, 4, -1),
 | 
			
		||||
(1, 1, 2, 5, -1),
 | 
			
		||||
(1, 1, 2, 6, 0),
 | 
			
		||||
(1, 1, 2, 7, 0),
 | 
			
		||||
(1, 1, 2, 8, 0),
 | 
			
		||||
(1, 1, 3, 1, 0),
 | 
			
		||||
(1, 1, 3, 2, 0),
 | 
			
		||||
(1, 1, 3, 3, 0),
 | 
			
		||||
(1, 1, 3, 4, -1),
 | 
			
		||||
(1, 1, 3, 5, -1),
 | 
			
		||||
(1, 1, 3, 6, 0),
 | 
			
		||||
(1, 1, 3, 7, 0),
 | 
			
		||||
(1, 1, 3, 8, 0),
 | 
			
		||||
(1, 1, 4, 1, -1),
 | 
			
		||||
(1, 1, 4, 2, -1),
 | 
			
		||||
(1, 1, 4, 3, -1),
 | 
			
		||||
(1, 1, 4, 4, -1),
 | 
			
		||||
(1, 1, 4, 5, -1),
 | 
			
		||||
(1, 1, 4, 6, -1),
 | 
			
		||||
(1, 1, 4, 7, -1),
 | 
			
		||||
(1, 1, 4, 8, -1),
 | 
			
		||||
(1, 1, 5, 1, -1),
 | 
			
		||||
(1, 1, 5, 2, -1),
 | 
			
		||||
(1, 1, 5, 3, -1),
 | 
			
		||||
(1, 1, 5, 4, -1),
 | 
			
		||||
(1, 1, 5, 5, -1),
 | 
			
		||||
(1, 1, 5, 6, -1),
 | 
			
		||||
(1, 1, 5, 7, -1),
 | 
			
		||||
(1, 1, 5, 8, -1),
 | 
			
		||||
(1, 1, 6, 1, 0),
 | 
			
		||||
(1, 1, 6, 2, 0),
 | 
			
		||||
(1, 1, 6, 3, 0),
 | 
			
		||||
(1, 1, 6, 4, -1),
 | 
			
		||||
(1, 1, 6, 5, -1),
 | 
			
		||||
(1, 1, 6, 6, 0),
 | 
			
		||||
(1, 1, 6, 7, 0),
 | 
			
		||||
(1, 1, 6, 8, 0),
 | 
			
		||||
(1, 1, 7, 1, 0),
 | 
			
		||||
(1, 1, 7, 2, 0),
 | 
			
		||||
(1, 1, 7, 3, 0),
 | 
			
		||||
(1, 1, 7, 4, -1),
 | 
			
		||||
(1, 1, 7, 5, -1),
 | 
			
		||||
(1, 1, 7, 6, 0),
 | 
			
		||||
(1, 1, 7, 7, 0),
 | 
			
		||||
(1, 1, 7, 8, 0),
 | 
			
		||||
(1, 1, 8, 1, 0),
 | 
			
		||||
(1, 1, 8, 2, 0),
 | 
			
		||||
(1, 1, 8, 3, 0),
 | 
			
		||||
(1, 1, 8, 4, -1),
 | 
			
		||||
(1, 1, 8, 5, -1),
 | 
			
		||||
(1, 1, 8, 6, 0),
 | 
			
		||||
(1, 1, 8, 7, 0),
 | 
			
		||||
(1, 1, 8, 8, 0),
 | 
			
		||||
(1, 1, 9, 1, 0),
 | 
			
		||||
(1, 1, 9, 2, 0),
 | 
			
		||||
(1, 1, 9, 3, 0),
 | 
			
		||||
(1, 1, 9, 4, -1),
 | 
			
		||||
(1, 1, 9, 5, -1),
 | 
			
		||||
(1, 1, 9, 6, 0),
 | 
			
		||||
(1, 1, 9, 7, 0),
 | 
			
		||||
(1, 1, 9, 8, 0),
 | 
			
		||||
(1, 1, 10, 1, 0),
 | 
			
		||||
(1, 1, 10, 2, 0),
 | 
			
		||||
(1, 1, 10, 3, 0),
 | 
			
		||||
(1, 1, 10, 4, -1),
 | 
			
		||||
(1, 1, 10, 5, -1),
 | 
			
		||||
(1, 1, 10, 6, 0),
 | 
			
		||||
(1, 1, 10, 7, 0),
 | 
			
		||||
(1, 1, 10, 8, 0),
 | 
			
		||||
(1, 1, 11, 1, 0),
 | 
			
		||||
(1, 1, 11, 2, 0),
 | 
			
		||||
(1, 1, 11, 3, 0),
 | 
			
		||||
(1, 1, 11, 4, -1),
 | 
			
		||||
(1, 1, 11, 5, -1),
 | 
			
		||||
(1, 1, 11, 6, 0),
 | 
			
		||||
(1, 1, 11, 7, 0),
 | 
			
		||||
(1, 1, 11, 8, 0),
 | 
			
		||||
(1, 1, 12, 1, 0),
 | 
			
		||||
(1, 1, 12, 2, 0),
 | 
			
		||||
(1, 1, 12, 3, 0),
 | 
			
		||||
(1, 1, 12, 4, -1),
 | 
			
		||||
(1, 1, 12, 5, -1),
 | 
			
		||||
(1, 1, 12, 6, 0),
 | 
			
		||||
(1, 1, 12, 7, 0),
 | 
			
		||||
(1, 1, 12, 8, 0),
 | 
			
		||||
(2, 1, 1, 1, 1),
 | 
			
		||||
(2, 1, 1, 2, 1),
 | 
			
		||||
(2, 1, 1, 3, 1),
 | 
			
		||||
(2, 1, 1, 4, 1),
 | 
			
		||||
(2, 1, 1, 5, 1),
 | 
			
		||||
(2, 1, 1, 6, 1),
 | 
			
		||||
(2, 1, 1, 7, 1),
 | 
			
		||||
(2, 1, 1, 8, 1),
 | 
			
		||||
(2, 1, 2, 1, 1),
 | 
			
		||||
(2, 1, 2, 2, 1),
 | 
			
		||||
(2, 1, 2, 3, 1),
 | 
			
		||||
(2, 1, 2, 4, 1),
 | 
			
		||||
(2, 1, 2, 5, 1),
 | 
			
		||||
(2, 1, 2, 6, 1),
 | 
			
		||||
(2, 1, 2, 7, 1),
 | 
			
		||||
(2, 1, 2, 8, 1),
 | 
			
		||||
(2, 1, 3, 1, 1),
 | 
			
		||||
(2, 1, 3, 2, -1),
 | 
			
		||||
(2, 1, 3, 3, -1),
 | 
			
		||||
(2, 1, 3, 4, -1),
 | 
			
		||||
(2, 1, 3, 5, 1),
 | 
			
		||||
(2, 1, 3, 6, 1),
 | 
			
		||||
(2, 1, 3, 7, 1),
 | 
			
		||||
(2, 1, 3, 8, 1),
 | 
			
		||||
(2, 1, 4, 1, 1),
 | 
			
		||||
(2, 1, 4, 2, -1),
 | 
			
		||||
(2, 1, 4, 3, -1),
 | 
			
		||||
(2, 1, 4, 4, -1),
 | 
			
		||||
(2, 1, 4, 5, 1),
 | 
			
		||||
(2, 1, 4, 6, 1),
 | 
			
		||||
(2, 1, 4, 7, 1),
 | 
			
		||||
(2, 1, 4, 8, 1),
 | 
			
		||||
(2, 1, 5, 1, 1),
 | 
			
		||||
(2, 1, 5, 2, -1),
 | 
			
		||||
(2, 1, 5, 3, -1),
 | 
			
		||||
(2, 1, 5, 4, -1),
 | 
			
		||||
(2, 1, 5, 5, 1),
 | 
			
		||||
(2, 1, 5, 6, 1),
 | 
			
		||||
(2, 1, 5, 7, 1),
 | 
			
		||||
(2, 1, 5, 8, 1),
 | 
			
		||||
(2, 1, 6, 1, 1),
 | 
			
		||||
(2, 1, 6, 2, 1),
 | 
			
		||||
(2, 1, 6, 3, 1),
 | 
			
		||||
(2, 1, 6, 4, 1),
 | 
			
		||||
(2, 1, 6, 5, 1),
 | 
			
		||||
(2, 1, 6, 6, 1),
 | 
			
		||||
(2, 1, 6, 7, 1),
 | 
			
		||||
(2, 1, 6, 8, 1),
 | 
			
		||||
(2, 1, 7, 1, 1),
 | 
			
		||||
(2, 1, 7, 2, 1),
 | 
			
		||||
(2, 1, 7, 3, 1),
 | 
			
		||||
(2, 1, 7, 4, 1),
 | 
			
		||||
(2, 1, 7, 5, -1),
 | 
			
		||||
(2, 1, 7, 6, -1),
 | 
			
		||||
(2, 1, 7, 7, 1),
 | 
			
		||||
(2, 1, 7, 8, 1),
 | 
			
		||||
(2, 1, 8, 1, 1),
 | 
			
		||||
(2, 1, 8, 2, 1),
 | 
			
		||||
(2, 1, 8, 3, 1),
 | 
			
		||||
(2, 1, 8, 4, 1),
 | 
			
		||||
(2, 1, 8, 5, -1),
 | 
			
		||||
(2, 1, 8, 6, -1),
 | 
			
		||||
(2, 1, 8, 7, 1),
 | 
			
		||||
(2, 1, 8, 8, 1),
 | 
			
		||||
(2, 1, 9, 1, 1),
 | 
			
		||||
(2, 1, 9, 2, 1),
 | 
			
		||||
(2, 1, 9, 3, 1),
 | 
			
		||||
(2, 1, 9, 4, 1),
 | 
			
		||||
(2, 1, 9, 5, -1),
 | 
			
		||||
(2, 1, 9, 6, -1),
 | 
			
		||||
(2, 1, 9, 7, 1),
 | 
			
		||||
(2, 1, 9, 8, 1),
 | 
			
		||||
(2, 1, 10, 1, 1),
 | 
			
		||||
(2, 1, 10, 2, 1),
 | 
			
		||||
(2, 1, 10, 3, 1),
 | 
			
		||||
(2, 1, 10, 4, 1),
 | 
			
		||||
(2, 1, 10, 5, 1),
 | 
			
		||||
(2, 1, 10, 6, 1),
 | 
			
		||||
(2, 1, 10, 7, 1),
 | 
			
		||||
(2, 1, 10, 8, 1),
 | 
			
		||||
(2, 1, 11, 1, 1),
 | 
			
		||||
(2, 1, 11, 2, 1),
 | 
			
		||||
(2, 1, 11, 3, 1),
 | 
			
		||||
(2, 1, 11, 4, 1),
 | 
			
		||||
(2, 1, 11, 5, 1),
 | 
			
		||||
(2, 1, 11, 6, 1),
 | 
			
		||||
(2, 1, 11, 7, 1),
 | 
			
		||||
(2, 1, 11, 8, 1),
 | 
			
		||||
(2, 1, 12, 1, 1),
 | 
			
		||||
(2, 1, 12, 2, 1),
 | 
			
		||||
(2, 1, 12, 3, 1),
 | 
			
		||||
(2, 1, 12, 4, 1),
 | 
			
		||||
(2, 1, 12, 5, 1),
 | 
			
		||||
(2, 1, 12, 6, 1),
 | 
			
		||||
(2, 1, 12, 7, 1),
 | 
			
		||||
(2, 1, 12, 8, 1),
 | 
			
		||||
(2, 1, 13, 1, 1),
 | 
			
		||||
(2, 1, 13, 2, 1),
 | 
			
		||||
(2, 1, 13, 3, 1),
 | 
			
		||||
(2, 1, 13, 4, 1),
 | 
			
		||||
(2, 1, 13, 5, 1),
 | 
			
		||||
(2, 1, 13, 6, 1),
 | 
			
		||||
(2, 1, 13, 7, 1),
 | 
			
		||||
(2, 1, 13, 8, 1),
 | 
			
		||||
(2, 1, 14, 1, 1),
 | 
			
		||||
(2, 1, 14, 2, 1),
 | 
			
		||||
(2, 1, 14, 3, 1),
 | 
			
		||||
(2, 1, 14, 4, 1),
 | 
			
		||||
(2, 1, 14, 5, 1),
 | 
			
		||||
(2, 1, 14, 6, 1),
 | 
			
		||||
(2, 1, 14, 7, 1),
 | 
			
		||||
(2, 1, 14, 8, 1);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `session` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idfilm` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `date` date NOT NULL,
 | 
			
		||||
  `start_time` time NOT NULL,
 | 
			
		||||
  `seat_price` float NOT NULL,
 | 
			
		||||
  `format` varchar(20) NOT NULL,
 | 
			
		||||
  `seats_full` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `session` (`id`, `idfilm`, `idhall`, `idcinema`, `date`, `start_time`, `seat_price`, `format`, `seats_full`) VALUES
 | 
			
		||||
(19, 1, 2, 1, '2021-05-14', '19:00:00', 12, '2d', 0),
 | 
			
		||||
(20, 1, 2, 1, '2021-05-15', '19:00:00', 12, '2d', 0);
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `users` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `username` varchar(10) NOT NULL,
 | 
			
		||||
  `email` varchar(30) NOT NULL,
 | 
			
		||||
  `passwd` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
 | 
			
		||||
  `rol` varchar(7) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Usuarios';
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Volcado de datos para la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
INSERT INTO `users` (`id`, `username`, `email`, `passwd`, `rol`) VALUES
 | 
			
		||||
(0, 'admin', 'admin@complucine.sytes.net', 'shDBCKnEbWZFc', 'admin'),
 | 
			
		||||
(1, 'manager', 'manager@complucine.sytes.net', 'shTS9RK/eJPoQ', 'manager'),
 | 
			
		||||
(2, 'user', 'user@complucine.sytes.net', 'shO5etd.DYKWg', 'user'),
 | 
			
		||||
(7, 'fernando', 'fer@complucine.sytes.net', '$2y$10$/3yjEh4d7AOY3RyNjXIIkO5H2hg7/kiHiToJa92tCBPd7s3UPtB.G', 'user'),
 | 
			
		||||
(63, 'user2', 'user2@ucm.es', '$2y$10$Alopov4Z1HPW9i9PqQ/APedPoU.N/zc3XlRfIfSkwPCQCKI.qTp5u', 'user');
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Índices para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD KEY `PK_A_USER` (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `U_TITTLE_LANGUAGE` (`tittle`,`language`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD PRIMARY KEY (`number`,`idcinema`),
 | 
			
		||||
  ADD KEY `FK_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD KEY `PK_M_USER` (`id`),
 | 
			
		||||
  ADD KEY `PK_M_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD KEY `PK_P_SEAT` (`idhall`,`numrow`,`numcolum`),
 | 
			
		||||
  ADD KEY `FK_P_SESSION` (`idsession`),
 | 
			
		||||
  ADD KEY `FK_P_USER` (`iduser`),
 | 
			
		||||
  ADD KEY `FK_P_SEAT` (`idhall`,`idcinema`,`numrow`,`numcolum`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD PRIMARY KEY (`idhall`,`numrow`,`numcolum`),
 | 
			
		||||
  ADD KEY `FK_HALL` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD KEY `FK_FILM` (`idfilm`),
 | 
			
		||||
  ADD KEY `FK_HALL_` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `email` (`email`),
 | 
			
		||||
  ADD UNIQUE KEY `username_2` (`username`),
 | 
			
		||||
  ADD KEY `username` (`username`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de las tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  MODIFY `number` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=21;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=65;
 | 
			
		||||
--
 | 
			
		||||
-- Restricciones para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD CONSTRAINT `PK_A_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD CONSTRAINT `FK_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD CONSTRAINT `PK_M_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `PK_M_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SEAT` FOREIGN KEY (`idhall`,`idcinema`,`numrow`,`numcolum`) REFERENCES `seat` (`idhall`, `idcinema`, `numrow`, `numcolum`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SESSION` FOREIGN KEY (`idsession`) REFERENCES `session` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_USER` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD CONSTRAINT `FK_FILM` FOREIGN KEY (`idfilm`) REFERENCES `film` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL_` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 | 
			
		||||
							
								
								
									
										1057
									
								
								root/assets/mysql/complucine.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1057
									
								
								root/assets/mysql/complucine.sql
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										319
									
								
								root/assets/mysql/complucineEmpty.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								root/assets/mysql/complucineEmpty.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,319 @@
 | 
			
		||||
-- phpMyAdmin SQL Dump
 | 
			
		||||
-- version 4.6.6deb5
 | 
			
		||||
-- https://www.phpmyadmin.net/
 | 
			
		||||
--
 | 
			
		||||
-- Servidor: localhost:3306
 | 
			
		||||
-- Tiempo de generación: 02-06-2021 a las 21:03:55
 | 
			
		||||
-- Versión del servidor: 10.0.28-MariaDB-2+b1
 | 
			
		||||
-- Versión de PHP: 7.3.27-1~deb10u1
 | 
			
		||||
 | 
			
		||||
SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO";
 | 
			
		||||
SET time_zone = "+00:00";
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
 | 
			
		||||
/*!40101 SET NAMES utf8mb4 */;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Base de datos: `complucine`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `admin` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `cinema` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `name` varchar(10) NOT NULL,
 | 
			
		||||
  `direction` varchar(120) NOT NULL,
 | 
			
		||||
  `phone` varchar(10) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `film` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(60) NOT NULL,
 | 
			
		||||
  `duration` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `language` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `img` varchar(60) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `hall` (
 | 
			
		||||
  `number` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrows` int(3) NOT NULL,
 | 
			
		||||
  `numcolumns` int(3) NOT NULL,
 | 
			
		||||
  `total_seats` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `manager` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `promotion` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `tittle` varchar(30) NOT NULL,
 | 
			
		||||
  `description` text NOT NULL,
 | 
			
		||||
  `code` varchar(15) NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1',
 | 
			
		||||
  `img` varchar(60) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `purchase` (
 | 
			
		||||
  `iduser` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idsession` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `time_purchase` datetime NOT NULL DEFAULT CURRENT_TIMESTAMP
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `seat` (
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `numrow` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `numcolum` int(3) UNSIGNED NOT NULL,
 | 
			
		||||
  `active` tinyint(1) NOT NULL DEFAULT '1'
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `session` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idfilm` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idhall` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `idcinema` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `date` date NOT NULL,
 | 
			
		||||
  `start_time` time NOT NULL,
 | 
			
		||||
  `seat_price` float NOT NULL,
 | 
			
		||||
  `format` varchar(20) NOT NULL,
 | 
			
		||||
  `seats_full` int(3) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
 | 
			
		||||
 | 
			
		||||
-- --------------------------------------------------------
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Estructura de tabla para la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
CREATE TABLE `users` (
 | 
			
		||||
  `id` int(15) UNSIGNED NOT NULL,
 | 
			
		||||
  `username` varchar(10) NOT NULL,
 | 
			
		||||
  `email` varchar(30) NOT NULL,
 | 
			
		||||
  `passwd` varchar(64) CHARACTER SET utf8 COLLATE utf8_bin NOT NULL,
 | 
			
		||||
  `rol` varchar(7) NOT NULL
 | 
			
		||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='Usuarios';
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Índices para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD KEY `PK_A_USER` (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `U_TITTLE_LANGUAGE` (`tittle`,`language`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD PRIMARY KEY (`number`,`idcinema`),
 | 
			
		||||
  ADD KEY `FK_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD KEY `PK_M_USER` (`id`),
 | 
			
		||||
  ADD KEY `PK_M_CINEMA` (`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  ADD PRIMARY KEY (`id`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD KEY `PK_P_SEAT` (`idhall`,`numrow`,`numcolum`),
 | 
			
		||||
  ADD KEY `FK_P_SESSION` (`idsession`),
 | 
			
		||||
  ADD KEY `FK_P_USER` (`iduser`),
 | 
			
		||||
  ADD KEY `FK_P_SEAT` (`idhall`,`idcinema`,`numrow`,`numcolum`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD PRIMARY KEY (`idhall`,`numrow`,`numcolum`,`idcinema`) USING BTREE,
 | 
			
		||||
  ADD KEY `FK_HALL` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD KEY `FK_FILM` (`idfilm`),
 | 
			
		||||
  ADD KEY `FK_HALL_` (`idhall`,`idcinema`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Indices de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  ADD PRIMARY KEY (`id`),
 | 
			
		||||
  ADD UNIQUE KEY `email` (`email`),
 | 
			
		||||
  ADD UNIQUE KEY `username_2` (`username`),
 | 
			
		||||
  ADD KEY `username` (`username`);
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de las tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `cinema`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `cinema`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `film`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `film`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=11;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  MODIFY `number` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `promotion`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `promotion`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=6;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=191;
 | 
			
		||||
--
 | 
			
		||||
-- AUTO_INCREMENT de la tabla `users`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `users`
 | 
			
		||||
  MODIFY `id` int(15) UNSIGNED NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=114;
 | 
			
		||||
--
 | 
			
		||||
-- Restricciones para tablas volcadas
 | 
			
		||||
--
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `admin`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `admin`
 | 
			
		||||
  ADD CONSTRAINT `PK_A_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `hall`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `hall`
 | 
			
		||||
  ADD CONSTRAINT `FK_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `manager`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `manager`
 | 
			
		||||
  ADD CONSTRAINT `PK_M_CINEMA` FOREIGN KEY (`idcinema`) REFERENCES `cinema` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `PK_M_USER` FOREIGN KEY (`id`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `purchase`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `purchase`
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SEAT` FOREIGN KEY (`idhall`,`idcinema`,`numrow`,`numcolum`) REFERENCES `seat` (`idhall`, `idcinema`, `numrow`, `numcolum`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_SESSION` FOREIGN KEY (`idsession`) REFERENCES `session` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_P_USER` FOREIGN KEY (`iduser`) REFERENCES `users` (`id`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `seat`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `seat`
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
--
 | 
			
		||||
-- Filtros para la tabla `session`
 | 
			
		||||
--
 | 
			
		||||
ALTER TABLE `session`
 | 
			
		||||
  ADD CONSTRAINT `FK_FILM` FOREIGN KEY (`idfilm`) REFERENCES `film` (`id`) ON DELETE CASCADE ON UPDATE CASCADE,
 | 
			
		||||
  ADD CONSTRAINT `FK_HALL_` FOREIGN KEY (`idhall`,`idcinema`) REFERENCES `hall` (`number`, `idcinema`) ON DELETE CASCADE ON UPDATE CASCADE;
 | 
			
		||||
 | 
			
		||||
/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */;
 | 
			
		||||
/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */;
 | 
			
		||||
/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */;
 | 
			
		||||
							
								
								
									
										1
									
								
								root/assets/mysql/createComplucine.sql
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								root/assets/mysql/createComplucine.sql
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
			
		||||
CREATE DATABASE IF NOT EXISTS complucine DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
 | 
			
		||||
							
								
								
									
										39
									
								
								root/assets/php/HTMLtemplate.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								root/assets/php/HTMLtemplate.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
<!--
 | 
			
		||||
    Práctica - Sistemas Web | Grupo D
 | 
			
		||||
    CompluCine - FDI-cines
 | 
			
		||||
-->
 | 
			
		||||
<!DOCTYPE HTML>
 | 
			
		||||
<html lang="es">
 | 
			
		||||
    <!-- Head -->
 | 
			
		||||
    <?php
 | 
			
		||||
        $template->print_head();
 | 
			
		||||
    ?>
 | 
			
		||||
    <body>
 | 
			
		||||
        <!-- Header -->
 | 
			
		||||
        <?php
 | 
			
		||||
            $template->print_header();
 | 
			
		||||
        ?>
 | 
			
		||||
 | 
			
		||||
        <!-- Main -->
 | 
			
		||||
        <?php
 | 
			
		||||
            if(!isset($content)) $content = "";
 | 
			
		||||
            $template->print_main($content);
 | 
			
		||||
        ?>
 | 
			
		||||
 | 
			
		||||
        <!-- Section -->
 | 
			
		||||
        <?php
 | 
			
		||||
            $template->print_section($section);
 | 
			
		||||
        ?>
 | 
			
		||||
 | 
			
		||||
        <!-- Footer -->
 | 
			
		||||
        <?php
 | 
			
		||||
            $template->print_footer();
 | 
			
		||||
        ?>
 | 
			
		||||
 | 
			
		||||
        <!-- Scripts -->
 | 
			
		||||
        <?php
 | 
			
		||||
            $template->print_scripts();
 | 
			
		||||
        ?>
 | 
			
		||||
       
 | 
			
		||||
    </body>
 | 
			
		||||
</html>
 | 
			
		||||
							
								
								
									
										138
									
								
								root/assets/php/aplication.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										138
									
								
								root/assets/php/aplication.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,138 @@
 | 
			
		||||
<?php
 | 
			
		||||
require_once('config.php');
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clase que mantiene el estado global de la aplicación.
 | 
			
		||||
 */
 | 
			
		||||
class Aplicacion {
 | 
			
		||||
	private static $instancia;
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Permite obtener una instancia de <code>Aplicacion</code>.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @return Applicacion Obtiene la única instancia de la <code>Aplicacion</code>
 | 
			
		||||
	 */
 | 
			
		||||
	public static function getSingleton() {
 | 
			
		||||
		if (  !self::$instancia instanceof self) {
 | 
			
		||||
			self::$instancia = new self;
 | 
			
		||||
		}
 | 
			
		||||
		return self::$instancia;
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * @var array Almacena los datos de configuración de la BD
 | 
			
		||||
	 */
 | 
			
		||||
	private $bdDatosConexion;
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Almacena si la Aplicacion ya ha sido inicializada.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @var boolean
 | 
			
		||||
	 */
 | 
			
		||||
	private $inicializada = false;
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * @var \mysqli Conexión de BD.
 | 
			
		||||
	 */
 | 
			
		||||
	private $conn;
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Evita que se pueda instanciar la clase directamente.
 | 
			
		||||
	 */
 | 
			
		||||
	private function __construct() {}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Evita que se pueda utilizar el operador clone.
 | 
			
		||||
	 */
 | 
			
		||||
	public function __clone() {
 | 
			
		||||
		throw new \Exception('No tiene sentido el clonado.');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Evita que se pueda utilizar serialize().
 | 
			
		||||
	 */
 | 
			
		||||
	public function __sleep() {
 | 
			
		||||
		throw new \Exception('No tiene sentido el serializar el objeto.');
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Evita que se pueda utilizar unserialize().
 | 
			
		||||
	 */
 | 
			
		||||
	public function __wakeup() {
 | 
			
		||||
		throw new \Exception('No tiene sentido el deserializar el objeto.');
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Inicializa la aplicación.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @param array $bdDatosConexion datos de configuración de la BD
 | 
			
		||||
	 */
 | 
			
		||||
	public function init($bdDatosConexion) {
 | 
			
		||||
        if ( ! $this->inicializada ) {
 | 
			
		||||
    	    $this->bdDatosConexion = $bdDatosConexion;
 | 
			
		||||
			if ( $this->is_session_started() === FALSE ) session_start();
 | 
			
		||||
    		$this->inicializada = true;
 | 
			
		||||
        }
 | 
			
		||||
	}
 | 
			
		||||
 | 
			
		||||
	/**
 | 
			
		||||
	 * Inicia la sesión, si esta no se había iniciado.
 | 
			
		||||
	 */
 | 
			
		||||
	protected function is_session_started(){
 | 
			
		||||
		if ( php_sapi_name() !== 'cli' ) {
 | 
			
		||||
			if ( version_compare(phpversion(), '5.4.0', '>=') ) {
 | 
			
		||||
				return session_status() === PHP_SESSION_ACTIVE ? TRUE : FALSE;
 | 
			
		||||
			} else {
 | 
			
		||||
				return session_id() === '' ? FALSE : TRUE;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return FALSE;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Cierre de la aplicación.
 | 
			
		||||
	 */
 | 
			
		||||
	public function shutdown() {
 | 
			
		||||
	    $this->compruebaInstanciaInicializada();
 | 
			
		||||
	    if ($this->conn !== null) {
 | 
			
		||||
	        $this->conn->close();
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Comprueba si la aplicación está inicializada. Si no lo está muestra un mensaje y termina la ejecución.
 | 
			
		||||
	 */
 | 
			
		||||
	private function compruebaInstanciaInicializada() {
 | 
			
		||||
	    if (! $this->inicializada ) {
 | 
			
		||||
	        echo "ERROR 403: app_not_configured.";
 | 
			
		||||
	        exit();
 | 
			
		||||
	    }
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
	/**
 | 
			
		||||
	 * Devuelve una conexión a la BD. Se encarga de que exista como mucho una conexión a la BD por petición.
 | 
			
		||||
	 * 
 | 
			
		||||
	 * @return \mysqli Conexión a MySQL.
 | 
			
		||||
	 */
 | 
			
		||||
	public function conexionBd() {
 | 
			
		||||
	    $this->compruebaInstanciaInicializada();
 | 
			
		||||
		if (! $this->conn ) {
 | 
			
		||||
			$bdHost = $this->bdDatosConexion['host'];
 | 
			
		||||
			$bdUser = $this->bdDatosConexion['user'];
 | 
			
		||||
			$bdPass = $this->bdDatosConexion['pass'];
 | 
			
		||||
			$bd = $this->bdDatosConexion['bd'];
 | 
			
		||||
			
 | 
			
		||||
			$this->conn = new \mysqli($bdHost, $bdUser, $bdPass, $bd);
 | 
			
		||||
			if ( $this->conn->connect_errno ) {
 | 
			
		||||
				echo "Error de conexión a la BD: (" . $this->conn->connect_errno . ") " . utf8_encode($this->conn->connect_error);
 | 
			
		||||
				exit();
 | 
			
		||||
			}
 | 
			
		||||
			if ( ! $this->conn->set_charset("utf8mb4")) {
 | 
			
		||||
				echo "Error al configurar la codificación de la BD: (" . $this->conn->errno . ") " . utf8_encode($this->conn->error);
 | 
			
		||||
				exit();
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		return $this->conn;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										9
									
								
								root/assets/php/common/changeCSS-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								root/assets/php/common/changeCSS-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
			
		||||
<?php
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
 | 
			
		||||
    switch(true){
 | 
			
		||||
        case strpos($_GET["css"], "main.css"): $_SESSION["css"] = "main.css"; break;
 | 
			
		||||
        case strpos($_GET["css"], "highContrast.css"): $_SESSION["css"] = "highContrast.css"; break;
 | 
			
		||||
        default: $_SESSION["css"] = "main.css"; break;
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										6
									
								
								root/assets/php/common/changeCSS.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								root/assets/php/common/changeCSS.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
<?php
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
 | 
			
		||||
    if($_GET["css"] === "main.css") $_SESSION["css"] = "main.css";
 | 
			
		||||
    else if($_GET["css"] === "highContrast.css") $_SESSION["css"] = "highContrast.css";
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										15
									
								
								root/assets/php/common/checkEmail.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								root/assets/php/common/checkEmail.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?php    
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
    include('../includes/user_dao.php');
 | 
			
		||||
 | 
			
		||||
    $bd = new UserDAO('complucine');
 | 
			
		||||
    if($bd){
 | 
			
		||||
        $user = $bd->selectUserEmail(strtolower($_GET["email"]));
 | 
			
		||||
        if ($user->data_seek(0)) {
 | 
			
		||||
            echo "!avaliable";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            echo "avaliable";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										15
									
								
								root/assets/php/common/checkPromo.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								root/assets/php/common/checkPromo.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?php    
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
    include('../includes/promotion_dao.php');
 | 
			
		||||
 | 
			
		||||
    $bd = new Promotion_DAO('complucine');
 | 
			
		||||
    if($bd){
 | 
			
		||||
        $promo = $bd->GetPromotionObj($_GET["code"]);
 | 
			
		||||
        if ($promo && $promo->getActive()) {
 | 
			
		||||
            echo "avaliable";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            echo "!avaliable";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										15
									
								
								root/assets/php/common/checkUser.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								root/assets/php/common/checkUser.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
			
		||||
<?php    
 | 
			
		||||
    include('../../../assets/php/config.php');
 | 
			
		||||
    include('../includes/user_dao.php');
 | 
			
		||||
 | 
			
		||||
    $bd = new UserDAO('complucine');
 | 
			
		||||
    if($bd){
 | 
			
		||||
        $user = $bd->selectUserName(strtolower($_GET["user"]));
 | 
			
		||||
        if ($user->data_seek(0)) {
 | 
			
		||||
            echo "!avaliable";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            echo "avaliable";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										32
									
								
								root/assets/php/common/cinema.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								root/assets/php/common/cinema.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Cinema{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Cinema ID.
 | 
			
		||||
        private $_name;           //Cinema name.
 | 
			
		||||
        private $_direction;         //Cinema direction.
 | 
			
		||||
        private $_phone;         //Cinema phone.
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $name, $direction, $phone){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_name = $name;
 | 
			
		||||
            $this->_direction = $direction;
 | 
			
		||||
            $this->_phone = $phone;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setName($name){	$this->_name = $name; }
 | 
			
		||||
		public function getName(){ return $this->_name; }
 | 
			
		||||
        public function setDirection($direction){ $this->_direction = $direction; }
 | 
			
		||||
		public function getDirection(){ return $this->_direction; }
 | 
			
		||||
        public function setPhone($phone){$this->_phone = $phone; }
 | 
			
		||||
		public function getPhone(){ return $this->_phone; }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										77
									
								
								root/assets/php/common/cinema_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								root/assets/php/common/cinema_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('cinema.php');
 | 
			
		||||
 | 
			
		||||
    class Cinema_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createCinema($id, $name, $direction, $phone){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `cinema`( `id`, `name`, `direction`, `phone`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $name, $direction, $phone);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the films.
 | 
			
		||||
		public function allCinemaData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$films[] = $this->loadCinema($fila["id"], $fila["name"], $fila["direction"], $fila["phone"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $films;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetCinema($name,$direction){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema WHERE cinema.name = '%s'AND cinema.direction='%s'", $name,$direction );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function cinemaData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema WHERE cinema.id = '%d'", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Deleted film by "id".
 | 
			
		||||
		public function deleteCinema($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM cinema WHERE cinema.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editCinema($id, $name, $direction, $phone){
 | 
			
		||||
			$sql = sprintf( "UPDATE cinema SET name = '%s' , direction = '%s', phone ='%s' 
 | 
			
		||||
								WHERE cinema.id = '%d';", 
 | 
			
		||||
									$name, $direction, $phone, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadCinema($id, $name, $direction, $phone){
 | 
			
		||||
			return new Cinema($id, $name, $direction, $phone);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										39
									
								
								root/assets/php/common/film.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								root/assets/php/common/film.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
<?php
 | 
			
		||||
   
 | 
			
		||||
    class Film{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Film ID.
 | 
			
		||||
        private $_tittle;           //Film tittle.
 | 
			
		||||
        private $_duration;         //Film duration.
 | 
			
		||||
        private $_language;         //Film language.
 | 
			
		||||
        private $_description;      //Film description.
 | 
			
		||||
        private $_img;
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $tittle, $duration, $language, $description, $img){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_tittle = $tittle;
 | 
			
		||||
            $this->_duration = $duration;
 | 
			
		||||
            $this->_language = $language;
 | 
			
		||||
            $this->_description = $description;
 | 
			
		||||
            $this->_img = $img;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setTittle($tittle) {$this->_tittle = $tittle; }
 | 
			
		||||
		public function getTittle(){return $this->_tittle;}
 | 
			
		||||
        public function setDuration($duration){$this->_duration = $duration; }
 | 
			
		||||
		public function getDuration() {return $this->_duration;}
 | 
			
		||||
        public function setLanguage($language) {$this->_language = $language; }
 | 
			
		||||
		public function getLanguage(){return $this->_language;}
 | 
			
		||||
        public function setDescription($description){  $this->_description = $description;}
 | 
			
		||||
		public function getDescription(){return  $this->_description;}
 | 
			
		||||
        public function setImg($img){  $this->_img = $img;}
 | 
			
		||||
		public function getImg(){return   $this->_img;}
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										100
									
								
								root/assets/php/common/film_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								root/assets/php/common/film_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('film.php');
 | 
			
		||||
 | 
			
		||||
    class Film_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createFilm($id, $tittle, $duration, $language, $description, $img){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `film`( `id`, `tittle`, `duration`, `language`,`description`, `img`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%d', '%s','%s', '%s')", 
 | 
			
		||||
									$id, $tittle, $duration, $language, $description, $img);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetFilm($tittle,$language){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film WHERE film.tittle = '%s'AND film.language='%s'", $tittle,$language );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the film's data.
 | 
			
		||||
		public function FilmData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the films.
 | 
			
		||||
		public function allFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$films[] = $this->loadFilm($fila["id"], $fila["tittle"], $fila["duration"], $fila["language"], $fila["description"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $films;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get all films tittles.
 | 
			
		||||
		public function tittleFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT DISTINCT tittle FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get all films descriptions.
 | 
			
		||||
		public function descriptionFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT description FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		public function addFilm($films) {
 | 
			
		||||
			$resul =  mysqli_query($this->mysqli, $this->createFilm($film.getId(), $film.getTittle(), $film.getDuration(), $film.getLanguage(), $film.getDescription())) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		*/
 | 
			
		||||
 | 
			
		||||
		//Deleted film by "id".
 | 
			
		||||
		public function deleteFilm($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM film WHERE film.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editFilm($id, $tittle, $duration, $language,$description,$img){
 | 
			
		||||
			$sql = sprintf( "UPDATE film SET tittle = '%s' , duration = '%d', language ='%s' , description ='%s', img ='%s'
 | 
			
		||||
								WHERE film.id = '%d';", 
 | 
			
		||||
									$tittle, $duration, $language, $description, $img, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadFilm($id, $tittle, $duration, $language,$description, $img){
 | 
			
		||||
			return new Film( $id, $tittle, $duration, $language,$description, $img);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										126
									
								
								root/assets/php/common/formUploadFiles.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										126
									
								
								root/assets/php/common/formUploadFiles.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,126 @@
 | 
			
		||||
<?php
 | 
			
		||||
require_once('../assets/php/form.php');
 | 
			
		||||
 | 
			
		||||
class FormUploadFiles extends Form {
 | 
			
		||||
    //Constants:
 | 
			
		||||
    const HTML5_EMAIL_REGEXP = '^[a-zA-Z0-9.!#$%&\'*+\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$'; 
 | 
			
		||||
 | 
			
		||||
    public function __construct() {
 | 
			
		||||
        $options = array('enctype' => 'multipart/form-data');
 | 
			
		||||
        parent::__construct('formUploadFiles', $options);
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    protected function generaCamposFormulario($datos, $errores = array()) {
 | 
			
		||||
 | 
			
		||||
        // Se generan los mensajes de error si existen.
 | 
			
		||||
        $htmlErroresGlobales = self::generaListaErroresGlobales($errores);
 | 
			
		||||
        $errorFile = self::createMensajeError($errores, 'archivo', 'span', array('class' => 'error'));
 | 
			
		||||
 | 
			
		||||
        foreach($datos as $key => $value){
 | 
			
		||||
            $dats = $key." ".$value."  ";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Se genera el HTML asociado a los campos del formulario y los mensajes de error.
 | 
			
		||||
        $html = '
 | 
			
		||||
                <div class="file">
 | 
			
		||||
                    <label for="file">Imagen:</label><input type="file" name="file" id="file" /><pre>'.$htmlErroresGlobales.'</pre>
 | 
			
		||||
                </div>
 | 
			
		||||
                <input type="submit" id="submit" value="Subir" class="primary" /><pre>'.$errorFile.'</pre>
 | 
			
		||||
                ';
 | 
			
		||||
 | 
			
		||||
        return $html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    protected function procesaFormulario($datos) {
 | 
			
		||||
        // Solo se pueden definir arrays como constantes en PHP >= 5.6
 | 
			
		||||
        global $ALLOWED_EXTENSIONS;
 | 
			
		||||
        
 | 
			
		||||
        $result = array();
 | 
			
		||||
        $ok = count($_FILES) == 1 && $_FILES['archivo']['error'] == UPLOAD_ERR_OK;
 | 
			
		||||
        
 | 
			
		||||
        if ( $ok ) {
 | 
			
		||||
            $archivo = $_FILES['archivo'];
 | 
			
		||||
            $nombre = $_FILES['archivo']['name'];
 | 
			
		||||
            /* 1.a) Valida el nombre del archivo */
 | 
			
		||||
            $ok = $this->check_file_uploaded_name($nombre) && $this->check_file_uploaded_length($nombre) ;
 | 
			
		||||
            /* 1.b) Sanitiza el nombre del archivo 
 | 
			
		||||
            $ok = sanitize_file_uploaded_name($nombre);
 | 
			
		||||
            */
 | 
			
		||||
            /* 1.c) Utilizar un id de la base de datos como nombre de archivo */
 | 
			
		||||
 | 
			
		||||
            /* 2. comprueba si la extensión está permitida*/
 | 
			
		||||
            $ok = $ok && in_array(pathinfo($nombre, PATHINFO_EXTENSION), $ALLOWED_EXTENSIONS);
 | 
			
		||||
 | 
			
		||||
            /* 3. comprueba el tipo mime del archivo correspode a una imagen image/* */
 | 
			
		||||
            $finfo = finfo_open(FILEINFO_MIME_TYPE);
 | 
			
		||||
            $mimeType = finfo_file($finfo, $_FILES['archivo']['tmp_name']);
 | 
			
		||||
            $ok = preg_match('/image\/*./', $mimeType);
 | 
			
		||||
            finfo_close($finfo);
 | 
			
		||||
 | 
			
		||||
            if ( $ok ) {
 | 
			
		||||
            $tmp_name = $_FILES['archivo']['tmp_name'];
 | 
			
		||||
 | 
			
		||||
            if ( !move_uploaded_file($tmp_name, FILMS_DIR.$nombre) ) {
 | 
			
		||||
                $result[] = 'Error al mover el archivo';
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            // 4. Si fuese necesario guardar en la base de datos la ruta relativa $nombre del archivo
 | 
			
		||||
            //return "index.php#img=".urlencode('img/'.$nombre);
 | 
			
		||||
            } else {
 | 
			
		||||
                $result["errorFile"] = 'El archivo tiene un nombre o tipo no soportado';
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            $result[] = 'Error al subir el archivo.';
 | 
			
		||||
        }
 | 
			
		||||
        return $result;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Check $_FILES[][name]
 | 
			
		||||
     *
 | 
			
		||||
     * @param (string) $filename - Uploaded file name.
 | 
			
		||||
     * @author Yousef Ismaeil Cliprz
 | 
			
		||||
     * @See http://php.net/manual/es/function.move-uploaded-file.php#111412
 | 
			
		||||
     */
 | 
			
		||||
    protected function check_file_uploaded_name ($filename) {
 | 
			
		||||
        return (bool) ((mb_ereg_match('/^[0-9A-Z-_\.]+$/i',$filename) === 1) ? true : false );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Sanitize $_FILES[][name]. Remove anything which isn't a word, whitespace, number
 | 
			
		||||
     * or any of the following caracters -_~,;[]().
 | 
			
		||||
     *
 | 
			
		||||
     * If you don't need to handle multi-byte characters you can use preg_replace
 | 
			
		||||
     * rather than mb_ereg_replace.
 | 
			
		||||
     * 
 | 
			
		||||
     * @param (string) $filename - Uploaded file name.
 | 
			
		||||
     * @author Sean Vieira
 | 
			
		||||
     * @see http://stackoverflow.com/a/2021729
 | 
			
		||||
     */
 | 
			
		||||
    protected function sanitize_file_uploaded_name($filename) {
 | 
			
		||||
        /* Remove anything which isn't a word, whitespace, number
 | 
			
		||||
        * or any of the following caracters -_~,;[]().
 | 
			
		||||
        * If you don't need to handle multi-byte characters
 | 
			
		||||
        * you can use preg_replace rather than mb_ereg_replace
 | 
			
		||||
        * Thanks @Łukasz Rysiak!
 | 
			
		||||
        */
 | 
			
		||||
        $newName = mb_ereg_replace("([^\w\s\d\-_~,;\[\]\(\).])", '', $filename);
 | 
			
		||||
        // Remove any runs of periods (thanks falstro!)
 | 
			
		||||
        $newName = mb_ereg_replace("([\.]{2,})", '', $newName);
 | 
			
		||||
 | 
			
		||||
        return $newName;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Check $_FILES[][name] length.
 | 
			
		||||
     *
 | 
			
		||||
     * @param (string) $filename - Uploaded file name.
 | 
			
		||||
     * @author Yousef Ismaeil Cliprz.
 | 
			
		||||
     * @See http://php.net/manual/es/function.move-uploaded-file.php#111412
 | 
			
		||||
     */
 | 
			
		||||
    protected function check_file_uploaded_length ($filename) {
 | 
			
		||||
        return (bool) ((mb_strlen($filename,'UTF-8') < 250) ? true : false);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										103
									
								
								root/assets/php/common/hall.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								root/assets/php/common/hall.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once($prefix.'assets/php/common/hall_dao.php');
 | 
			
		||||
	include_once('seat_dao.php');
 | 
			
		||||
	
 | 
			
		||||
    class Hall{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_number;      //Room number.
 | 
			
		||||
        private $_idcinema;    //Cinema Id
 | 
			
		||||
		private $_numRows;     //Num rows.
 | 
			
		||||
        private $_numCol;      //Num columns.
 | 
			
		||||
		private $_total_seats;
 | 
			
		||||
		private $_seats_map;
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($number, $idcinema, $numRows, $numCol, $total_seats, $seats_map){
 | 
			
		||||
            $this->_number = $number;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_numRows = $numRows;
 | 
			
		||||
			$this->_numCol = $numCol;
 | 
			
		||||
			$this->_total_seats = $total_seats;
 | 
			
		||||
			$_seats_map = array();
 | 
			
		||||
			$_seats_map = $seats_map;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
		public static function getListHalls($cinema){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd )
 | 
			
		||||
				return $bd->getAllHalls($cinema);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function create_hall($number, $cinema, $rows, $cols, $seats, $seats_map){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if(!$bd->searchHall($number, $cinema)){
 | 
			
		||||
					$bd->createHall($number, $cinema, $rows, $cols, $seats, $seats_map);
 | 
			
		||||
					Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
					return "Se ha creado la sala con exito";
 | 
			
		||||
				} else {
 | 
			
		||||
					return "Esta sala ya existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function edit_hall($number, $cinema, $rows, $cols, $seats, $seats_map, $og_number){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchHall($og_number, $cinema)){
 | 
			
		||||
					if($og_number == $number){
 | 
			
		||||
						Seat::deleteAllSeats($number, $cinema);
 | 
			
		||||
						$bd->editHall($number, $cinema, $rows, $cols, $seats, $og_number);
 | 
			
		||||
						Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
						return "Se ha editado la sala con exito";
 | 
			
		||||
					}else{
 | 
			
		||||
						if(!$bd->searchHall($number, $cinema)){
 | 
			
		||||
							Seat::deleteAllSeats($og_number, $cinema);
 | 
			
		||||
							$bd->editHall($number, $cinema, $rows, $cols, $seats, $og_number);
 | 
			
		||||
							Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
							return "Se ha editado la sala con exito";
 | 
			
		||||
						}else
 | 
			
		||||
							return "El nuevo numero de sala ya existe en otra sala";
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					return "La sala a editar no existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function delete_hall($number, $cinema, $rows, $cols, $seats, $seats_map, $og_number){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchHall($og_number, $cinema)){
 | 
			
		||||
					$bd->deleteHall($og_number, $cinema);
 | 
			
		||||
					Seat::deleteAllSeats($og_number, $cinema);
 | 
			
		||||
					return "La sala se ha eliminado correctamente";
 | 
			
		||||
				} else {
 | 
			
		||||
					return "La sala a borrar no existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setNumber($number){	$this->_number = $number; }
 | 
			
		||||
		public function getNumber(){ return $this->_number; }
 | 
			
		||||
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setNumRows($numRows){ $this->_numRows = $numRows; }
 | 
			
		||||
		public function getNumRows(){ return $this->_numRows; }
 | 
			
		||||
		
 | 
			
		||||
		public function setNumCol($numCol){ $this->_numCol = $numCol; }
 | 
			
		||||
		public function getNumCol(){ return $this->_numCol; }
 | 
			
		||||
 | 
			
		||||
		public function setTotalSeats($totalSeat){ $this->_total_seats = $totalSeat; }
 | 
			
		||||
		public function getTotalSeats(){ return $this->_total_seats; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatsmap($seats_map){ $this->_seats_map = $seats_map; }
 | 
			
		||||
		public function getSeatsmap(){ return $this->_seats_map; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										96
									
								
								root/assets/php/common/hall_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										96
									
								
								root/assets/php/common/hall_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,96 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('hall.php');
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
    class HallDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Hall.
 | 
			
		||||
		public function createHall($number, $cinema, $rows, $cols, $seats, $seats_map){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `hall`( `number`, `idcinema`, `numrows`, `numcolumns`, `total_seats`) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d')", 
 | 
			
		||||
								$number, $cinema, $rows, $cols, $seats );
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error BD createhall');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get the halls data.
 | 
			
		||||
		public function getAllHalls($cinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM hall WHERE 
 | 
			
		||||
							idcinema = '%s'", 
 | 
			
		||||
							$cinema);	
 | 
			
		||||
							
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$hall = null;
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$hall[] = $this->loadHall($fila["number"], $fila["idcinema"], $fila["numrows"], $fila["numcolumns"], $fila["total_seats"], null);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $hall;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public function searchHall($number, $cinema){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM hall WHERE 
 | 
			
		||||
							number = '%s' AND idcinema = '%s'", 
 | 
			
		||||
							$number, $cinema);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			$hall = false;
 | 
			
		||||
			
 | 
			
		||||
			if($resul){
 | 
			
		||||
				if($resul->num_rows == 1){
 | 
			
		||||
					$fila = $resul->fetch_assoc();
 | 
			
		||||
					$hall = $this->loadHall($fila["number"], $fila["idcinema"], $fila["numrows"], $fila["numcolumns"], $fila["total_seats"], null);
 | 
			
		||||
				}
 | 
			
		||||
				$resul->free();
 | 
			
		||||
			}
 | 
			
		||||
		
 | 
			
		||||
			return $hall;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Hall Data Transfer Object.
 | 
			
		||||
		public function loadHall($number, $idcinema, $numrows, $numcolumns, $total_seats, $seats_map){
 | 
			
		||||
			return new Hall($number, $idcinema, $numrows, $numcolumns, $total_seats, $seats_map);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Edit Hall.
 | 
			
		||||
		public function editHall($number, $cinema, $rows, $cols, $seats, $og_number){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "UPDATE `hall`
 | 
			
		||||
							SET `number` = '%d' ,`numrows` = '%d' , `numcolumns` = '%d' , `total_seats` = %d
 | 
			
		||||
							WHERE `hall`.`number` = '%d' AND `hall`.`idcinema` = '%d';", 
 | 
			
		||||
							$number, $rows, $cols, $seats, $og_number, $cinema );
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Delete Hall.
 | 
			
		||||
		public function deleteHall($number, $cinema){
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "DELETE FROM `hall` WHERE `hall`.`number` = '%d' AND `hall`.`idcinema` = '%d';",$number, $cinema);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										35
									
								
								root/assets/php/common/manager.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								root/assets/php/common/manager.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Manager{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Manager ID.
 | 
			
		||||
        private $_username;           //Manager username.
 | 
			
		||||
        private $_email;         //Email.
 | 
			
		||||
        private $_roll;       //Roll
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $idcinema, $username, $email, $roll){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_username = $username;
 | 
			
		||||
            $this->_email = $email;
 | 
			
		||||
            $this->_roll = $roll;
 | 
			
		||||
        }
 | 
			
		||||
	
 | 
			
		||||
		//Methods:
 | 
			
		||||
	    
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
        public function setUsername($username){$this->_username = $username; }
 | 
			
		||||
		public function getUsername(){ return 	$this->_username;}
 | 
			
		||||
        public function setEmail($email){$this->_email = $email;}
 | 
			
		||||
		public function getEmail(){return $this->_email;}
 | 
			
		||||
        public function setRoll($roll){$this->_roll = $roll;}
 | 
			
		||||
		public function getRoll(){return  $this->_roll;}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										77
									
								
								root/assets/php/common/manager_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								root/assets/php/common/manager_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('manager.php');
 | 
			
		||||
 | 
			
		||||
    class Manager_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the managers.
 | 
			
		||||
		public function allManagersData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `users` JOIN `manager` ON manager.id = users.id");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$managers[] = $this->loadManager($fila["id"], $fila["idcinema"], $fila["username"], $fila["email"], $fila["rol"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $managers;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  manager data .
 | 
			
		||||
		public function GetManager($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `manager` WHERE manager.id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  manager data .
 | 
			
		||||
		public function GetManagerCinema($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `manager` WHERE manager.id = '%d' AND manager.idcinema ='%d'", $id, $idcinema );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		 //Create a new Session.
 | 
			
		||||
		 public function createManager($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `manager`( `id`, `idcinema`)
 | 
			
		||||
								VALUES ( '%d', '%d')", 
 | 
			
		||||
									$id, $idcinema);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		//Deleted manager by "id".
 | 
			
		||||
		public function deleteManager($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM `manager` WHERE manager.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit manager.
 | 
			
		||||
		public function editManager($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "UPDATE `manager` SET manager.idcinema = '%d'
 | 
			
		||||
								WHERE manager.id = '%d';", 
 | 
			
		||||
									 $idcinema, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new Manager Data Transfer Object.
 | 
			
		||||
		public function loadManager($id, $idcinema, $username, $email, $rol){
 | 
			
		||||
			return new Manager($id, $idcinema, $username, $email, $rol);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										36
									
								
								root/assets/php/common/promotion.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								root/assets/php/common/promotion.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Promotion{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Cinema ID.
 | 
			
		||||
        private $_tittle;           //Cinema name.
 | 
			
		||||
        private $_description;         //Cinema direction.
 | 
			
		||||
        private $_code;         //Cinema phone.
 | 
			
		||||
        private $_active;
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $tittle, $description, $code, $active){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_tittle = $tittle;
 | 
			
		||||
            $this->_description = $description;
 | 
			
		||||
            $this->_code = $code;
 | 
			
		||||
            $this->_active = $active;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setTittle($tittle){	$this->_tittle = $tittle; }
 | 
			
		||||
		public function getTittle(){ return $this->_tittle; }
 | 
			
		||||
        public function setDescription($description){  $this->_description = $description;}
 | 
			
		||||
		public function getDescription(){return  $this->_description;}
 | 
			
		||||
        public function setCode($code){  $this->_code = $code;}
 | 
			
		||||
		public function getCode(){return  $this->_code;}
 | 
			
		||||
        public function setActive($active){  $this->_active = $active;}
 | 
			
		||||
		public function getActive(){return  $this->_active;}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										77
									
								
								root/assets/php/common/promotion_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								root/assets/php/common/promotion_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('promotion.php');
 | 
			
		||||
 | 
			
		||||
    class Promotion_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createPromotion($id, $tittle, $description, $code, $active){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `promotion`( `id`, `tittle`, `description`, `code`, `active`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $tittle, $description, $code, $active);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the films.
 | 
			
		||||
		public function allPromotionData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$promotions[] = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $promotions;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetPromotion($code){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.code = '%s'", $code );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function promotionData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.id = '%d'", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Deleted film by "id".
 | 
			
		||||
		public function deletePromotion($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM promotion WHERE promotion.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editPromotion($id, $tittle, $description, $code, $active){
 | 
			
		||||
			$sql = sprintf( "UPDATE promotion SET tittle = '%s' , description = '%s', code ='%s' , active ='%s'
 | 
			
		||||
								WHERE promotion.id = '%d';", 
 | 
			
		||||
									 $tittle, $description, $code, $active, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadPromotion($id, $tittle, $description, $code, $active){
 | 
			
		||||
			return new Promotion($id, $tittle, $description, $code, $active);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										11
									
								
								root/assets/php/common/reRol.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								root/assets/php/common/reRol.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
			
		||||
<?php
 | 
			
		||||
include('../config.php');
 | 
			
		||||
function reRol(){
 | 
			
		||||
    if(isset($_SESSION["lastRol"])){
 | 
			
		||||
        $_SESSION["rol"] = $_SESSION["lastRol"];
 | 
			
		||||
        unset($_SESSION["lastRol"]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
reRol();
 | 
			
		||||
header("Location: /");
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										13
									
								
								root/assets/php/common/resetRol.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								root/assets/php/common/resetRol.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
			
		||||
<?php
 | 
			
		||||
include('../config.php');
 | 
			
		||||
function reRol(){
 | 
			
		||||
    if(isset($_SESSION["lastRol"])){
 | 
			
		||||
        $_SESSION["rol"] = $_SESSION["lastRol"];
 | 
			
		||||
        unset($_SESSION["lastRol"]);
 | 
			
		||||
        unset($_SESSION["cinema"]);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
reRol();
 | 
			
		||||
$redirect = ROUTE_APP.'panel_'.$_SESSION['rol'];
 | 
			
		||||
header("Location: {$redirect}");
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										63
									
								
								root/assets/php/common/seat.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								root/assets/php/common/seat.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once($prefix.'assets/php/common/seat_dao.php');
 | 
			
		||||
 | 
			
		||||
    class Seat{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_idhall;     
 | 
			
		||||
        private $_idcinema;    
 | 
			
		||||
		private $_numRow;     
 | 
			
		||||
        private $_numCol;      
 | 
			
		||||
		private $_state;      
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($idhall, $idcinema, $numRow, $numCol, $state){
 | 
			
		||||
            $this->_number = $idhall;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_numRow = $numRow;
 | 
			
		||||
			$this->_numCol = $numCol;
 | 
			
		||||
			$this->_state = $state;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		static public function createSeats($hall, $cinema, $rows, $cols, $seats_map){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
 | 
			
		||||
			for($i = 1;$i <= $rows;$i++){
 | 
			
		||||
				for($j = 1; $j <= $cols;$j++){
 | 
			
		||||
					$bd->createSeat($hall, $cinema, $i, $j, $seats_map[$i][$j]);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		static public function getSeatsMap($number, $cinema){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
			if($bd )
 | 
			
		||||
				return $bd->getAllSeats($number, $cinema);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		static public function deleteAllSeats($number, $cinema){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
			if($bd)
 | 
			
		||||
				return $bd->deletemapSeats($number, $cinema);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setNumber($number){	$this->_number = $number; }
 | 
			
		||||
		public function getNumber(){ return $this->_number; }
 | 
			
		||||
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setNumRows($numRow){ $this->_numRow = $numRow; }
 | 
			
		||||
		public function getNumRows(){ return $this->_numRow; }
 | 
			
		||||
		
 | 
			
		||||
		public function setNumCol($numCol){ $this->_numCol = $numCol; }
 | 
			
		||||
		public function getNumCol(){ return $this->_numCol; }
 | 
			
		||||
		
 | 
			
		||||
		public function setState($state){ $this->_state = $state; }
 | 
			
		||||
		public function getState(){ return $this->_state; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										58
									
								
								root/assets/php/common/seat_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										58
									
								
								root/assets/php/common/seat_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,58 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('seat.php');
 | 
			
		||||
	
 | 
			
		||||
    class SeatDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Hall.
 | 
			
		||||
		public function createSeat($hall, $cinema, $row, $col, $state){
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `seat`( `idhall`, `idcinema`, `numrow`, `numcolum`, `active`) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d')", 
 | 
			
		||||
								$hall, $cinema, $row, $col, $state);
 | 
			
		||||
	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error BD createSeat');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public function getAllSeats($number, $cinema){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM seat WHERE 
 | 
			
		||||
							idhall = '%s' AND idcinema = '%s'", 
 | 
			
		||||
							$number, $cinema);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$seat_map = null;
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$seat_map[] = $this->loadSeat($fila["idhall"], $fila["idcinema"], $fila["numrow"], $fila["numcolum"], $fila["active"]);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $seat_map;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public function deletemapSeats($hall, $cinema){
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `seat` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s'", 
 | 
			
		||||
							$cinema, $hall);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
			
 | 
			
		||||
		public function loadSeat($idhall, $idcinema, $numRow, $numCol, $state){
 | 
			
		||||
			return new Seat($idhall, $idcinema, $numRow, $numCol, $state);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										118
									
								
								root/assets/php/common/session.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										118
									
								
								root/assets/php/common/session.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,118 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once($prefix.'assets/php/common/session_dao.php');
 | 
			
		||||
 | 
			
		||||
    class Session{
 | 
			
		||||
 | 
			
		||||
        private $_id;          
 | 
			
		||||
        private $_idfilm;
 | 
			
		||||
        private $_idhall;
 | 
			
		||||
		private $_idcinema;			
 | 
			
		||||
        private $_date;
 | 
			
		||||
        private $_startTime;
 | 
			
		||||
        private $_seatPrice;
 | 
			
		||||
        private $_format;
 | 
			
		||||
		private $_seats_full;
 | 
			
		||||
		
 | 
			
		||||
        function __construct($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_idfilm = $idfilm;
 | 
			
		||||
            $this->_idhall = $idhall;
 | 
			
		||||
			$this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_date = $date;
 | 
			
		||||
            $this->_startTime = $startTime;
 | 
			
		||||
            $this->_seatPrice = $seatPrice;
 | 
			
		||||
            $this->_format = $format;
 | 
			
		||||
			$this->_seats_full = $seats_full;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		public static function getListSessions($hall,$cinema,$date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				return $bd->getAllSessions($hall, $cinema, $date);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function create_session($cinema, $hall, $start, $date, $film, $price, $format,$repeat){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if(!$bd->searchSession($cinema, $hall, $start, $date)){
 | 
			
		||||
					$bd->createSession(null,$film, $hall, $cinema, $date, $start, $price, $format);
 | 
			
		||||
 | 
			
		||||
					if($repeat > "0") {
 | 
			
		||||
						$repeats = $repeat;
 | 
			
		||||
						$repeat = $repeat - 1;
 | 
			
		||||
						$date = date('Y-m-d', strtotime( $date . ' +1 day') );
 | 
			
		||||
						self::create_session($cinema, $hall, $start, $date, $film, $price, $format,$repeat);
 | 
			
		||||
						return "Se han creado las ".$repeat ." sesiones con exito";
 | 
			
		||||
					}
 | 
			
		||||
						
 | 
			
		||||
					else
 | 
			
		||||
						return "Se ha creado la session con exito";
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session ya existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function edit_session($cinema, $or_hall, $or_date, $or_start, $hall, $start, $date, $film, $price, $format){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $or_hall, $or_start, $or_date)){
 | 
			
		||||
					if(!$bd->searchSession($cinema,$hall,$start,$date)){
 | 
			
		||||
						$origin = array("cinema" => $cinema,"hall" => $or_hall,"start" => $or_start,"date" => $or_date);
 | 
			
		||||
						$bd->editSession($film, $hall, $cinema, $date, $start, $price, $format,$origin);
 | 
			
		||||
						return "Se ha editado la session con exito";			
 | 
			
		||||
					}else	
 | 
			
		||||
						return "Ya existe una sesion con los parametros nuevos";	
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session no existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function delete_session($cinema, $hall, $start, $date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $hall, $start, $date)){
 | 
			
		||||
					$bd->deleteSession($hall, $cinema, $date, $start);
 | 
			
		||||
					return "Se ha eliminado la session con exito";						
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session no existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Esto deberia estar en film.php? seguramente
 | 
			
		||||
		public static function getThisSessionFilm($idfilm){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				return $bd->filmTittle($idfilm);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
 | 
			
		||||
        public function setIdfilm($idfilm){ $this->_idfilm = $idfilm; }
 | 
			
		||||
		public function getIdfilm(){ return $this->_idfilm; }
 | 
			
		||||
        
 | 
			
		||||
        public function setIdhall($idhall){ $this->_idhall = $idhall; }
 | 
			
		||||
		public function getIdhall(){ return $this->_idhall; }
 | 
			
		||||
		
 | 
			
		||||
		public function setIdcinema($cinema){ $this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setDate($date){ $this->_date = $date; }
 | 
			
		||||
		public function getDate(){ return $this->_date; }
 | 
			
		||||
 | 
			
		||||
		public function setStartTime($startTime){ $this->_startTime = $startTime; }
 | 
			
		||||
		public function getStartTime(){ return $this->_startTime; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatPrice($seatPrice){ $this->_seatPrice = $seatPrice; }
 | 
			
		||||
		public function getSeatPrice(){ return $this->_seatPrice; }
 | 
			
		||||
 | 
			
		||||
		public function setFormat($format){ $this->_format = $format; }
 | 
			
		||||
		public function getFormat(){ return $this->_format; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										114
									
								
								root/assets/php/common/session_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										114
									
								
								root/assets/php/common/session_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,114 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('session.php');
 | 
			
		||||
	
 | 
			
		||||
    class SessionDAO extends DAO {
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
		//Methods:
 | 
			
		||||
		
 | 
			
		||||
		public function createSession($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);	
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `session` (`id`, `idfilm`, `idhall`, `idcinema`, `date`, `start_time`, `seat_price`, `format`, `seats_full`) 
 | 
			
		||||
				VALUES ('%d', '%d', '%d', '%d', '%s', '%s', '%d', '%s', '%d')",
 | 
			
		||||
					$id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, "0");
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the session's data.
 | 
			
		||||
		public function sessionData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `session` WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database en sessionData con la id '. $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_fetch_array($resul);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		public function filmTittle($idfilm){
 | 
			
		||||
			$sql = sprintf("SELECT * FROM film JOIN  session ON film.id = session.idfilm WHERE session.idfilm = '%d' ", $idfilm );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database en sessionData con la id '. $idfilm);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		//Returns a session
 | 
			
		||||
		public function searchSession($cinema, $hall, $startTime, $date){
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$session = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $session;
 | 
			
		||||
		}
 | 
			
		||||
		//Returns a query to get all the session's data.
 | 
			
		||||
		public function getAllSessions($hall, $cinema, $date){
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
							$cinema, $hall, $date);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
        public function editSession($idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
            $sql = sprintf( "UPDATE `session`
 | 
			
		||||
                             SET `idfilm` = '%d' , `idhall` = '%d', `idcinema` = '%d', `date` = '%s',
 | 
			
		||||
                                  `start_time` = '%s', `seat_price` = '%d', `format` = '%s'
 | 
			
		||||
                             WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
                $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin["cinema"],$origin["hall"],$origin["date"],$origin["start"]);
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        public function deleteSession($hall, $cinema, $date, $startTime){
 | 
			
		||||
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `session` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Session Data Transfer Object.
 | 
			
		||||
		public function loadSession( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
			return new Session( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										36
									
								
								root/assets/php/common/user.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										36
									
								
								root/assets/php/common/user.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,36 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class User {
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;           //User Id.
 | 
			
		||||
        private $_username;     //User name.
 | 
			
		||||
        private $_email;        //User email.
 | 
			
		||||
        private $_password;     //User password.
 | 
			
		||||
        private $_rol;          //Type of user: user | manager | admin. --> Será eliminado en la siguiente práctica para usar el modelo relacional de nuestra BD.
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $username, $email, $password, $rol){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_username = $username;
 | 
			
		||||
            $this->_email = $email;
 | 
			
		||||
            $this->_password = $password;
 | 
			
		||||
            $this->_rol = $rol;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
		public function setName($username){ $this->_username = $username; }
 | 
			
		||||
		public function getName(){ return $this->_username; }
 | 
			
		||||
        public function setEmail($email){ $this->_email = $email; }
 | 
			
		||||
		public function getEmail(){ return $this->_email; }
 | 
			
		||||
		public function setPass($passwd){	$this->_password = $passwd; }
 | 
			
		||||
		public function getPass(){ return $this->_password; }
 | 
			
		||||
        public function setRol($rol){ $this->_rol = $rol; }
 | 
			
		||||
		public function getRol(){ return $this->_rol; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										165
									
								
								root/assets/php/common/user_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										165
									
								
								root/assets/php/common/user_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,165 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('user.php');
 | 
			
		||||
 | 
			
		||||
    class UserDAO extends DAO {
 | 
			
		||||
		
 | 
			
		||||
		//Constants:
 | 
			
		||||
		private const _USER = "user";
 | 
			
		||||
		private const _MANAGER = "manager";
 | 
			
		||||
		private const _ADMIN = "admin";
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Encrypt password with SHA254.
 | 
			
		||||
		private function encryptPass($password){
 | 
			
		||||
			//$password = hash('sha256', $password);
 | 
			
		||||
			$password = password_hash($password, PASSWORD_DEFAULT);
 | 
			
		||||
 | 
			
		||||
			return $password;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns true if the password and hash match, or false otherwise.
 | 
			
		||||
		public function verifyPass($password, $passwd){
 | 
			
		||||
			return password_verify($password, $passwd);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//All users
 | 
			
		||||
		public function allUsersNotM(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `users` WHERE users.id NOT IN (SELECT id FROM `manager`)");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$users[] = $this->loadUser($fila['id'], $fila['username'], $fila['email'], $fila['passwd'], $fila['rol']);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $users;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
        //Create a new User.
 | 
			
		||||
		public function createUser($id, $username, $email, $password, $rol){
 | 
			
		||||
			$password = $this->encryptPass($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "INSERT INTO users( id, username, email, passwd, rol) 
 | 
			
		||||
								VALUES ( '%s', '%s', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $username, $email, $password, $rol );
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to check if the user name exists.
 | 
			
		||||
		public function selectUser($username, $password){
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
			$password = $this->mysqli->real_escape_string($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE username = '%s'", $username );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			$resul->data_seek(0);
 | 
			
		||||
			$user = null;
 | 
			
		||||
			while ($fila = $resul->fetch_assoc()) {
 | 
			
		||||
				if($username === $fila['username'] && $this->verifyPass($password, $fila['passwd'])){
 | 
			
		||||
					$user = $this->loadUser($fila['id'], $fila['username'], $fila['email'], $fila['passwd'], $fila['rol']);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			//mysqli_free_result($selectUser);
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $user;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the user's data.
 | 
			
		||||
		public function userData($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Search a user by name.
 | 
			
		||||
		public function selectUserName($username){
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE username = '%s'", $username );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Search a user by email.
 | 
			
		||||
		public function selectUserEmail($email){
 | 
			
		||||
			$email = $this->mysqli->real_escape_string($email);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE email = '%s'", $email );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change username by id.
 | 
			
		||||
		public function changeUserName($id, $username){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET username = '%s' WHERE id = '%d'", $username, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change userpass by id.
 | 
			
		||||
		public function changeUserPass($id, $password){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$password = $this->mysqli->real_escape_string($password);
 | 
			
		||||
			$password = $this->encryptPass($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET passwd = '%s' WHERE id = '%d'", $password, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change user email by id.
 | 
			
		||||
		public function changeUserEmail($id, $email){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$email = $this->mysqli->real_escape_string($email);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET email = '%s' WHERE id = '%d'", $email, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Delete user account by id.
 | 
			
		||||
		public function deleteUserAccount($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "DELETE FROM users WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Create a new User Data Transfer Object.
 | 
			
		||||
		public function loadUser($id, $username, $email, $password, $rol){
 | 
			
		||||
			return new User($id, $username, $email, $password, $rol);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										61
									
								
								root/assets/php/config-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										61
									
								
								root/assets/php/config-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,61 @@
 | 
			
		||||
<?php
 | 
			
		||||
    /**
 | 
			
		||||
    * Connection parameters to the DB.
 | 
			
		||||
    */
 | 
			
		||||
    define('BD_HOST', 'localhost');
 | 
			
		||||
    define('BD_NAME', 'complucine');
 | 
			
		||||
    define('BD_USER', 'sw');
 | 
			
		||||
    define('BD_PASS', '_admin_');
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    * Configuration parameters used to generate URLs and file paths in the application
 | 
			
		||||
    */
 | 
			
		||||
    define('ROUTE_APP', '/'); //Change if it´s necessary.
 | 
			
		||||
    define('RAIZ_APP', __DIR__);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * Image files directory.
 | 
			
		||||
    */
 | 
			
		||||
    define('FILMS_DIR', RAIZ_APP.'/img/films/');
 | 
			
		||||
    define('FILMS_DIR_PROTECTED', dirname(RAIZ_APP).'/img/films/tmp/');
 | 
			
		||||
    define('USER_PICS',  ROUTE_APP.'img/users/');
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Allowed extensions for image files.
 | 
			
		||||
     */
 | 
			
		||||
    $ALLOWED_EXTENSIONS = array('gif','jpg','jpe','jpeg','png');
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * Utf-8 support settings, location (language and country) and time zone.
 | 
			
		||||
    */
 | 
			
		||||
    ini_set('default_charset', 'UTF-8');
 | 
			
		||||
    setLocale(LC_ALL, 'es_ES.UTF.8');
 | 
			
		||||
    date_default_timezone_set('Europe/Madrid');
 | 
			
		||||
 | 
			
		||||
    //Start session:
 | 
			
		||||
    session_start();
 | 
			
		||||
 | 
			
		||||
    //HTML template:
 | 
			
		||||
    require_once('template.php');
 | 
			
		||||
    $template = new Template();
 | 
			
		||||
    $prefix = $template->get_prefix();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Initialize the application:
 | 
			
		||||
     */
 | 
			
		||||
    include_once($prefix.'assets/php/dao.php');
 | 
			
		||||
    require_once('aplication.php');
 | 
			
		||||
    $app = Aplicacion::getSingleton();
 | 
			
		||||
    $app->init(array('host'=>BD_HOST, 'bd'=>BD_NAME, 'user'=>BD_USER, 'pass'=>BD_PASS));
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @see http://php.net/manual/en/function.register-shutdown-function.php
 | 
			
		||||
     * @see http://php.net/manual/en/language.types.callable.php
 | 
			
		||||
     */
 | 
			
		||||
    register_shutdown_function(array($app, 'shutdown'));
 | 
			
		||||
 | 
			
		||||
    //Depuración (BORRAR):
 | 
			
		||||
    ini_set('display_errors', 1);
 | 
			
		||||
    ini_set('display_startup_errors', 1);
 | 
			
		||||
    error_reporting(E_ALL);
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										56
									
								
								root/assets/php/config.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										56
									
								
								root/assets/php/config.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,56 @@
 | 
			
		||||
<?php
 | 
			
		||||
    /**
 | 
			
		||||
    * Connection parameters to the DB.
 | 
			
		||||
    */
 | 
			
		||||
    define('BD_HOST', 'localhost');
 | 
			
		||||
    define('BD_NAME', 'complucine');
 | 
			
		||||
    define('BD_USER', 'sw');
 | 
			
		||||
    define('BD_PASS', '_admin_');
 | 
			
		||||
 | 
			
		||||
    /*
 | 
			
		||||
    * Configuration parameters used to generate URLs and file paths in the application
 | 
			
		||||
    */
 | 
			
		||||
    define('ROUTE_APP', '/'); //Change if it´s necessary.
 | 
			
		||||
    define('RAIZ_APP', __DIR__);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * Image files directory.
 | 
			
		||||
    */
 | 
			
		||||
    define('FILMS_DIR', RAIZ_APP.'/img/films/');
 | 
			
		||||
    define('FILMS_DIR_PROTECTED', dirname(RAIZ_APP).'/img/films/tmp/');
 | 
			
		||||
    define('USER_PICS',  ROUTE_APP.'img/users/');
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Allowed extensions for image files.
 | 
			
		||||
     */
 | 
			
		||||
    $ALLOWED_EXTENSIONS = array('gif','jpg','jpe','jpeg','png');
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
    * Utf-8 support settings, location (language and country) and time zone.
 | 
			
		||||
    */
 | 
			
		||||
    ini_set('default_charset', 'UTF-8');
 | 
			
		||||
    setLocale(LC_ALL, 'es_ES.UTF.8');
 | 
			
		||||
    date_default_timezone_set('Europe/Madrid');
 | 
			
		||||
 | 
			
		||||
    //Start session:
 | 
			
		||||
    session_start();
 | 
			
		||||
 | 
			
		||||
    //HTML template:
 | 
			
		||||
    require_once('template.php');
 | 
			
		||||
    $template = new Template();
 | 
			
		||||
    $prefix = $template->get_prefix();
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Initialize the application:
 | 
			
		||||
     */
 | 
			
		||||
    include_once($prefix.'assets/php/dao.php');
 | 
			
		||||
    require_once('aplication.php');
 | 
			
		||||
    $app = Aplicacion::getSingleton();
 | 
			
		||||
    $app->init(array('host'=>BD_HOST, 'bd'=>BD_NAME, 'user'=>BD_USER, 'pass'=>BD_PASS));
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @see http://php.net/manual/en/function.register-shutdown-function.php
 | 
			
		||||
     * @see http://php.net/manual/en/language.types.callable.php
 | 
			
		||||
     */
 | 
			
		||||
    register_shutdown_function(array($app, 'shutdown'));
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										23
									
								
								root/assets/php/dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								root/assets/php/dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
			
		||||
<?php
 | 
			
		||||
    class DAO {
 | 
			
		||||
        //Atributes:
 | 
			
		||||
        public $mysqli;
 | 
			
		||||
 | 
			
		||||
        //Constructor:
 | 
			
		||||
        public function __construct($bd_name){
 | 
			
		||||
            if($bd_name != BD_NAME) {
 | 
			
		||||
                echo "Está intentando acceder a una base de datos que no existe, puede que la aplicación no funcione correctamente.";
 | 
			
		||||
            }
 | 
			
		||||
            $app = Aplicacion::getSingleton();
 | 
			
		||||
            $this->mysqli = $app->conexionBd();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        //Destructor (Ya no es necesdario):
 | 
			
		||||
        /*
 | 
			
		||||
        public function __destruct(){
 | 
			
		||||
            $this->mysqli->close();
 | 
			
		||||
        }
 | 
			
		||||
        */
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										387
									
								
								root/assets/php/form.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										387
									
								
								root/assets/php/form.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,387 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
/**
 | 
			
		||||
 * Clase base para la gestión de formularios.
 | 
			
		||||
 *
 | 
			
		||||
 * Gestión de token CSRF está basada en: https://www.owasp.org/index.php/PHP_CSRF_Guard
 | 
			
		||||
 */
 | 
			
		||||
abstract class Form {
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string Sufijo para el nombre del parámetro de la sesión del usuario donde se almacena el token CSRF.
 | 
			
		||||
     */
 | 
			
		||||
    const CSRF_PARAM = 'csrf';
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string Identificador utilizado para construir el atributo "id" de la etiqueta <form> como <code>$tipoFormulario.$formId</code>.
 | 
			
		||||
     */
 | 
			
		||||
    private $formId;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string Valor del parámetro enctype del formulario.
 | 
			
		||||
     */
 | 
			
		||||
    private $enctype;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string Valor del atributo "class" de la etiqueta <form> asociada al formulario. Si este parámetro incluye la cadena "nocsrf" no se generá el token CSRF para este formulario.
 | 
			
		||||
     */
 | 
			
		||||
    private $classAtt;
 | 
			
		||||
 | 
			
		||||
     /**
 | 
			
		||||
     * @var string Parámetro de la petición utilizado para comprobar que el usuario ha enviado el formulario..
 | 
			
		||||
     */
 | 
			
		||||
    private $tipoFormulario;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * @var string URL asociada al atributo "action" de la etiqueta <form> del fomrulario y que procesará el 
 | 
			
		||||
     * envío del formulario.
 | 
			
		||||
     */
 | 
			
		||||
    private $action;
 | 
			
		||||
    private $printed;
 | 
			
		||||
 | 
			
		||||
     /**
 | 
			
		||||
     * @var bool Almacena si la interacción con el formulario va a realizarse a través de AJAX <code>true</code> o
 | 
			
		||||
     * <code>false</code> en otro caso.
 | 
			
		||||
     */
 | 
			
		||||
    private $ajax;
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Crea un nuevo formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * Posibles opciones:
 | 
			
		||||
     * <table>
 | 
			
		||||
     *   <thead>
 | 
			
		||||
     *     <tr>
 | 
			
		||||
     *       <th>Opción</th>
 | 
			
		||||
     *       <th>Valor por defecto</th>
 | 
			
		||||
     *       <th>Descripción</th>
 | 
			
		||||
     *     </tr>
 | 
			
		||||
     *   </thead>
 | 
			
		||||
     *   <tbody>
 | 
			
		||||
     *     <tr>
 | 
			
		||||
     *       <td>action</td>
 | 
			
		||||
     *       <td><code>$_SERVER['PHP_SELF']</code></td>       
 | 
			
		||||
     *       <td>URL asociada al atributo "action" de la etiqueta <form> del fomrulario y que procesará el envío del formulario.</td>
 | 
			
		||||
     *     </tr>
 | 
			
		||||
     *     <tr>
 | 
			
		||||
     *        <td>class</td>
 | 
			
		||||
     *        <td>""</td>       
 | 
			
		||||
     *        <td>Valor del atributo "class" de la etiqueta <form> asociada al formulario. Si este parámetro incluye la cadena
 | 
			
		||||
     *        "nocsrf" no se generá el token CSRF para este formulario.</td>
 | 
			
		||||
     *     </tr>
 | 
			
		||||
     *      <tr>
 | 
			
		||||
     *       <td>enctype</td>
 | 
			
		||||
     *       <td>""</td>       
 | 
			
		||||
     *       <td>Valor del parámetro enctype del formulario.</td>
 | 
			
		||||
     *     </tr>
 | 
			
		||||
     *     <tr>
 | 
			
		||||
     *       <td>ajax</td>
 | 
			
		||||
     *       <td><code>false</code></td>       
 | 
			
		||||
     *       <td>Configura si el formulario se gestionará a través de AJAX.</td>
 | 
			
		||||
     *     </tr>
 | 
			
		||||
     *   </tbody>
 | 
			
		||||
     * </table>
 | 
			
		||||
     * @param string $tipoFormulario Parámetro de la petición utilizado para comprobar que el usuario ha enviado el formulario.
 | 
			
		||||
     * @param string $formId (opcional) Identificador utilizado para construir el atributo "id" de la etiqueta <form> como <code>$tipoFormulario.$formId</code>. 
 | 
			
		||||
     *
 | 
			
		||||
     * @param array $opciones (ver más arriba).
 | 
			
		||||
     */
 | 
			
		||||
    public function __construct($tipoFormulario, $opciones = array(), $formId = 1)
 | 
			
		||||
    {
 | 
			
		||||
        $this->tipoFormulario = $tipoFormulario;
 | 
			
		||||
        $this->formId = $tipoFormulario.$formId;
 | 
			
		||||
 | 
			
		||||
        $opcionesPorDefecto = array( 'ajax' => false, 'action' => null, 'class' => null, 'enctype' => null );
 | 
			
		||||
        $opciones = array_merge($opcionesPorDefecto, $opciones);
 | 
			
		||||
 | 
			
		||||
        $this->ajax     = $opciones['ajax'];
 | 
			
		||||
        $this->action   = $opciones['action'];
 | 
			
		||||
        $this->classAtt = $opciones['class'];
 | 
			
		||||
        $this->enctype  = $opciones['enctype'];
 | 
			
		||||
        
 | 
			
		||||
        if ( !$this->action ) {
 | 
			
		||||
            // Cambiar por << $this->action = htmlentities($_SERVER['REQUEST_URI']); >> para mantener los parámetros de la URL.
 | 
			
		||||
            $this->action = htmlentities($_SERVER['PHP_SELF']);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    /**
 | 
			
		||||
     * Se encarga de orquestar todo el proceso de gestión de un formulario.
 | 
			
		||||
     * 
 | 
			
		||||
     * El proceso es el siguiente:
 | 
			
		||||
     * <ul>
 | 
			
		||||
     *   <li>O bien se quiere mostrar el formulario (petición GET)</li>
 | 
			
		||||
     *   <li>O bien hay que procesar el formulario (petición POST) y hay dos situaciones:
 | 
			
		||||
     *     <ul>
 | 
			
		||||
     *       <li>El formulario se ha procesado correctamente y se devuelve un <code>string</code> en {@see Form::procesaFormulario()}
 | 
			
		||||
     *           que será la URL a la que se rederigirá al usuario. Se redirige al usuario y se termina la ejecución del script.</li>
 | 
			
		||||
     *       <li>El formulario NO se ha procesado correctamente (errores en los datos, datos incorrectos, etc.) y se devuelve
 | 
			
		||||
     *           un <code>array</code> con entradas (campo, mensaje) con errores específicos para un campo o (entero, mensaje) si el mensaje
 | 
			
		||||
     *           es un mensaje que afecta globalmente al formulario. Se vuelve a generar el formulario pasándole el array de errores.</li> 
 | 
			
		||||
     *     </ul>
 | 
			
		||||
     *   </li>
 | 
			
		||||
     * </ul>
 | 
			
		||||
     */
 | 
			
		||||
    public function gestiona()
 | 
			
		||||
    {
 | 
			
		||||
        if ( ! $this->formularioEnviado($_POST) ) {
 | 
			
		||||
            return $this->generaFormulario();
 | 
			
		||||
        } else {
 | 
			
		||||
            // Valida el token CSRF si es necesario (hay un token en la sesión asociada al formulario)
 | 
			
		||||
            $tokenRecibido = $_POST['CSRFToken'] ?? FALSE;
 | 
			
		||||
            $errores = $this->csrfguard_ValidateToken($this->tipoFormulario, $tokenRecibido);
 | 
			
		||||
 | 
			
		||||
            // limpia los tokens CSRF que no han sido utilizados en esta petición
 | 
			
		||||
            self::limpiaCsrfTokens();
 | 
			
		||||
 | 
			
		||||
            // Sin AJAX.
 | 
			
		||||
            /**
 | 
			
		||||
             * $result = $this->procesaFormulario($_POST);
 | 
			
		||||
             * if ( is_array($result) ) {
 | 
			
		||||
             *      return $this->generaFormulario($_POST, $result);
 | 
			
		||||
             * } else {
 | 
			
		||||
             *      header('Location: '.$result);
 | 
			
		||||
             *      exit();
 | 
			
		||||
             * }
 | 
			
		||||
             */
 | 
			
		||||
            
 | 
			
		||||
            // Con AJAX.
 | 
			
		||||
            if ( $errores !== TRUE ) { 
 | 
			
		||||
                if ( ! $this->ajax ) {
 | 
			
		||||
                    return $this->generaFormulario($_POST, $errores);
 | 
			
		||||
                } else {
 | 
			
		||||
                    return $this->generaHtmlErrores($errores);
 | 
			
		||||
                }
 | 
			
		||||
            } else  {
 | 
			
		||||
                $result = $this->procesaFormulario($_POST);
 | 
			
		||||
                if ( is_array($result) ) {
 | 
			
		||||
                    // Error al procesar el formulario, volvemos a mostrarlo
 | 
			
		||||
                    if ( ! $this->ajax ) {
 | 
			
		||||
                        return $this->generaFormulario($_POST, $result);
 | 
			
		||||
                    } else {
 | 
			
		||||
                        return $this->generaHtmlErrores($result);
 | 
			
		||||
                    }
 | 
			
		||||
                } else {
 | 
			
		||||
                    if ( ! $this->ajax ) {
 | 
			
		||||
                        header('Location: '.$result);
 | 
			
		||||
                        exit();
 | 
			
		||||
                    } else {
 | 
			
		||||
                        return $result;
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Genera el HTML necesario para presentar los campos del formulario.
 | 
			
		||||
     * 
 | 
			
		||||
     * Si el formulario ya ha sido enviado y hay errores en {@see Form::procesaFormulario()} se llama a este método
 | 
			
		||||
     * nuevamente con los datos que ha introducido el usuario en <code>$datosIniciales</code> y los errores al procesar
 | 
			
		||||
     * el formulario en <code>$errores</code>
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $datosIniciales Datos iniciales para los campos del formulario (normalmente <code>$_POST</code>).
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $errores (opcional)Lista / Tabla asociativa de errores asociados al formulario.
 | 
			
		||||
     * 
 | 
			
		||||
     * @return string HTML asociado a los campos del formulario.
 | 
			
		||||
     */
 | 
			
		||||
    protected function generaCamposFormulario($datosIniciales, $errores = array())
 | 
			
		||||
    {
 | 
			
		||||
        return '';
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Procesa los datos del formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $datos Datos enviado por el usuario (normalmente <code>$_POST</code>).
 | 
			
		||||
     *
 | 
			
		||||
     * @return string|string[] Devuelve el resultado del procesamiento del formulario, normalmente una URL a la que
 | 
			
		||||
     * se desea que se redirija al usuario, o un array con los errores que ha habido durante el procesamiento del formulario.
 | 
			
		||||
     */
 | 
			
		||||
    protected function procesaFormulario($datos)
 | 
			
		||||
    {
 | 
			
		||||
        return array();
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    /**
 | 
			
		||||
     * Función que verifica si el usuario ha enviado el formulario.
 | 
			
		||||
     * 
 | 
			
		||||
     * Comprueba si existe el parámetro <code>$formId</code> en <code>$params</code>.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $params Array que contiene los datos recibidos en el envío formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @return boolean Devuelve <code>true</code> si <code>$formId</code> existe como clave en <code>$params</code>
 | 
			
		||||
     */
 | 
			
		||||
    private function formularioEnviado(&$params)
 | 
			
		||||
    {
 | 
			
		||||
        return isset($params['action']) && $params['action'] == $this->tipoFormulario;
 | 
			
		||||
    } 
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Función que genera el HTML necesario para el formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $datos (opcional) Array con los valores por defecto de los campos del formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $errores (opcional) Array con los mensajes de error de validación y/o procesamiento del formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @return string HTML asociado al formulario.
 | 
			
		||||
     */
 | 
			
		||||
    private function generaFormulario(&$datos = array(), &$errores = array())
 | 
			
		||||
    {
 | 
			
		||||
        $htmlCamposFormularios = $this->generaCamposFormulario($datos, $errores);
 | 
			
		||||
 | 
			
		||||
        $classAtt='';
 | 
			
		||||
        if ( $this->classAtt ) {
 | 
			
		||||
          $classAtt = " class=\"{$this->classAtt}\"";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        $enctypeAtt='';
 | 
			
		||||
        if ( $this->enctype ) {
 | 
			
		||||
            $enctypeAtt = " enctype=\"{$this->enctype}\"";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        // Se genera el token CSRF si el usuario no solicita explícitamente lo contrario.
 | 
			
		||||
        $tokenCSRF = '';
 | 
			
		||||
        if ( ! $this->classAtt || strpos($this->classAtt, 'nocsrf') === false ) {
 | 
			
		||||
            $tokenValue = $this->csrfguard_GenerateToken($this->tipoFormulario);
 | 
			
		||||
            $tokenCSRF = "<input type='hidden' name='CSRFToken' value='$tokenValue' />";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* <<< Permite definir cadena en múltiples líneas.
 | 
			
		||||
         * Revisa https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.heredoc
 | 
			
		||||
         */
 | 
			
		||||
        $htmlForm = "<form method='POST' action='{$this->action}' id='{$this->formId}'{$classAtt}{$enctypeAtt} >
 | 
			
		||||
                        <input type='hidden' name='action' value='{$this->tipoFormulario}' />
 | 
			
		||||
                        ".$tokenCSRF.$htmlCamposFormularios."
 | 
			
		||||
                    </form>";
 | 
			
		||||
        return $htmlForm;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Genera la lista de mensajes de errores globales (no asociada a un campo) a incluir en el formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string[] $errores (opcional) Array con los mensajes de error de validación y/o procesamiento del formulario.
 | 
			
		||||
     *
 | 
			
		||||
     * @param string $classAtt (opcional) Valor del atributo class de la lista de errores.
 | 
			
		||||
     *
 | 
			
		||||
     * @return string El HTML asociado a los mensajes de error.
 | 
			
		||||
     */
 | 
			
		||||
    protected static function generaListaErroresGlobales($errores = array(), $classAtt='')
 | 
			
		||||
    {
 | 
			
		||||
        $html='';
 | 
			
		||||
        $clavesErroresGenerales = array_filter(array_keys($errores), function ($elem) {
 | 
			
		||||
            return is_numeric($elem);
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        $numErrores = count($clavesErroresGenerales);
 | 
			
		||||
        if ($numErrores > 0) {
 | 
			
		||||
            $html = "<ul class=\"$classAtt\">";
 | 
			
		||||
            if (  $numErrores == 1 ) {
 | 
			
		||||
                $html .= "<li>$errores[0]</li>";
 | 
			
		||||
            } else {
 | 
			
		||||
                foreach($clavesErroresGenerales as $clave) {
 | 
			
		||||
                    $html .= "<li>$errores[$clave]</li>";
 | 
			
		||||
                }
 | 
			
		||||
                $html .= "</li>";
 | 
			
		||||
            }
 | 
			
		||||
            $html .= '</ul>';
 | 
			
		||||
        }
 | 
			
		||||
        return $html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Crea una etiqueta para mostrar un mensaje de error. Sólo creará el mensaje de error
 | 
			
		||||
     * si existe una clave <code>$idError</code> dentro del array <code>$errores</code>.
 | 
			
		||||
     * 
 | 
			
		||||
     * @param string[] $errores     (opcional) Array con los mensajes de error de validación y/o procesamiento del formulario.
 | 
			
		||||
     * @param string   $idError     (opcional) Clave dentro de <code>$errores</code> del error a mostrar.
 | 
			
		||||
     * @param string   $htmlElement (opcional) Etiqueta HTML a crear para mostrar el error.
 | 
			
		||||
     * @param array    $atts        (opcional) Tabla asociativa con los atributos a añadir a la etiqueta que mostrará el error.
 | 
			
		||||
     */
 | 
			
		||||
    protected static function createMensajeError($errores=array(), $idError='', $htmlElement='span', $atts = array())
 | 
			
		||||
    {
 | 
			
		||||
        $html = '';
 | 
			
		||||
        if (isset($errores[$idError])) {
 | 
			
		||||
            $att = '';
 | 
			
		||||
            foreach($atts as $key => $value) {
 | 
			
		||||
                $att .= "$key=$value";
 | 
			
		||||
            }
 | 
			
		||||
            $html = " <$htmlElement $att>{$errores[$idError]}</$htmlElement>";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $html;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
     * Método para eliminar los tokens CSRF almecenados en la petición anterior que no hayan sido utilizados en la actual.
 | 
			
		||||
     */
 | 
			
		||||
    public static function limpiaCsrfTokens()
 | 
			
		||||
    {
 | 
			
		||||
        foreach(array_keys($_SESSION) as $key) {
 | 
			
		||||
            if (strpos($key, self::CSRF_PARAM) === 0) {
 | 
			
		||||
                unset($_SESSION[$key]);
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    private function csrfguard_GenerateToken($formParameter)
 | 
			
		||||
  {
 | 
			
		||||
    if ( ! session_id() ) {
 | 
			
		||||
      throw new \Exception('La sesión del usuario no está definida.');
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    $paramSession = self::CSRF_PARAM.'_'.$formParameter;
 | 
			
		||||
    if (isset($_SESSION[$paramSession])) {
 | 
			
		||||
      $token = $_SESSION[$paramSession];
 | 
			
		||||
    } else {
 | 
			
		||||
      if ( function_exists('hash_algos') && in_array('sha512', hash_algos()) ) {
 | 
			
		||||
        $token = hash('sha512', mt_rand(0, mt_getrandmax()));
 | 
			
		||||
      } else {
 | 
			
		||||
        $token=' ';
 | 
			
		||||
        for ($i=0;$i<128;++$i) {
 | 
			
		||||
          $r=mt_rand(0,35);
 | 
			
		||||
          if ($r<26){
 | 
			
		||||
            $c=chr(ord('a')+$r);
 | 
			
		||||
          } else{ 
 | 
			
		||||
            $c=chr(ord('0')+$r-26);
 | 
			
		||||
          } 
 | 
			
		||||
          $token.=$c;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
 | 
			
		||||
      $_SESSION[$paramSession]=$token;
 | 
			
		||||
    }
 | 
			
		||||
    return $token;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  private function csrfguard_ValidateToken($formParameter, $tokenRecibido)
 | 
			
		||||
  {
 | 
			
		||||
    if ( ! session_id() ) {
 | 
			
		||||
        throw new \Exception('La sesión del usuario no está definida.');
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    $result = TRUE;
 | 
			
		||||
    
 | 
			
		||||
    $paramSession = self::CSRF_PARAM.'_'.$formParameter;
 | 
			
		||||
    if ( isset($_SESSION[$paramSession]) ) {
 | 
			
		||||
        if ( $_SESSION[$paramSession] !== $tokenRecibido ) {
 | 
			
		||||
            $result = array();
 | 
			
		||||
            $result[] = 'Has enviado el formulario dos veces';
 | 
			
		||||
        }
 | 
			
		||||
        $_SESSION[$paramSession] = ' ';
 | 
			
		||||
        unset($_SESSION[$paramSession]);
 | 
			
		||||
    } else {
 | 
			
		||||
        $result = array();
 | 
			
		||||
        $result[] = 'Formulario no válido';
 | 
			
		||||
    }
 | 
			
		||||
        return $result;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
    //Test some form input.
 | 
			
		||||
    protected function test_input($input){
 | 
			
		||||
        return htmlspecialchars(trim(strip_tags($input)));
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										32
									
								
								root/assets/php/includes/cinema.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								root/assets/php/includes/cinema.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Cinema{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Cinema ID.
 | 
			
		||||
        private $_name;           //Cinema name.
 | 
			
		||||
        private $_direction;         //Cinema direction.
 | 
			
		||||
        private $_phone;         //Cinema phone.
 | 
			
		||||
      
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $name, $direction, $phone){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_name = $name;
 | 
			
		||||
            $this->_direction = $direction;
 | 
			
		||||
            $this->_phone = $phone;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setName($name){	$this->_name = $name; }
 | 
			
		||||
		public function getName(){ return $this->_name; }
 | 
			
		||||
        public function setDirection($direction){ $this->_direction = $direction; }
 | 
			
		||||
		public function getDirection(){ return $this->_direction; }
 | 
			
		||||
        public function setPhone($phone){$this->_phone = $phone; }
 | 
			
		||||
		public function getPhone(){ return $this->_phone; }
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										132
									
								
								root/assets/php/includes/cinema_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										132
									
								
								root/assets/php/includes/cinema_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,132 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('cinema.php');
 | 
			
		||||
 | 
			
		||||
    class Cinema_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createCinema($id, $name, $direction, $phone){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `cinema`( `id`, `name`, `direction`, `phone`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $name, $direction, $phone);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the films.
 | 
			
		||||
		public function allCinemaData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$films[] = $this->loadCinema($fila["id"], $fila["name"], $fila["direction"], $fila["phone"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $films;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetCinema($name, $direction){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema WHERE cinema.name = '%s'AND cinema.direction='%s'", $name,$direction );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function cinemaData($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$resul->data_seek(0);
 | 
			
		||||
			$film = null;
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$cinema = $this->loadCinema($fila["id"], $fila["name"], $fila["direction"], $fila["phone"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $cinema;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns if exist a cinema with that id
 | 
			
		||||
		public function existCinema($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM cinema WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Deleted film by "id".
 | 
			
		||||
		public function deleteCinema($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM cinema WHERE cinema.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editCinema($id, $name, $direction, $phone){
 | 
			
		||||
			$sql = sprintf( "UPDATE cinema SET name = '%s' , direction = '%s', phone ='%s' 
 | 
			
		||||
								WHERE cinema.id = '%d';", 
 | 
			
		||||
									$name, $direction, $phone, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Get sessions associated with a cinema.
 | 
			
		||||
		public function getSessions($id){
 | 
			
		||||
			include_once('session_dao.php');
 | 
			
		||||
			$session = new SessionDAO("complucine");
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( " SELECT DISTINCT * FROM session WHERE session.id in 
 | 
			
		||||
								(SELECT session.id FROM session JOIN cinema ON session.idcinema = cinema.id WHERE cinema.id = '%d'); ", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $session->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Get films associated with a cinema.
 | 
			
		||||
		public function getFilms($id){
 | 
			
		||||
			include_once('film_dao.php');
 | 
			
		||||
			$film = new Film_DAO("complucine");
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( " SELECT DISTINCT * FROM film WHERE film.id in 
 | 
			
		||||
								(SELECT session.idfilm FROM session JOIN cinema ON session.idcinema = cinema.id WHERE cinema.id = '%d'); ", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$films = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$films[] = $film->loadFilm($fila["id"], $fila["tittle"], $fila["duration"], $fila["language"], $fila["description"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $films;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadCinema($id, $name, $direction, $phone){
 | 
			
		||||
			return new Cinema($id, $name, $direction, $phone);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										185
									
								
								root/assets/php/includes/event.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										185
									
								
								root/assets/php/includes/event.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,185 @@
 | 
			
		||||
<?php
 | 
			
		||||
 | 
			
		||||
include_once($prefix.'assets/php/includes/session.php');
 | 
			
		||||
 | 
			
		||||
//Full calendar only accepts Events objects
 | 
			
		||||
class Event implements \JsonSerializable
 | 
			
		||||
{
 | 
			
		||||
    public static function searchAllEvents($idhall, $cinema)
 | 
			
		||||
    {
 | 
			
		||||
        $result = [];
 | 
			
		||||
		$sessions = Session::getListSessions($idhall,$cinema,null);
 | 
			
		||||
		
 | 
			
		||||
		foreach($sessions as $s){
 | 
			
		||||
			$e = new Event();
 | 
			
		||||
			$diccionario = self::session2dictionary($s);
 | 
			
		||||
			$e = $e->dictionary2event($diccionario);
 | 
			
		||||
			$result[] = $e;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
        return $result;
 | 
			
		||||
    }
 | 
			
		||||
  
 | 
			
		||||
    public static function searchEventsBetween2dates(string $start, string $end = null, $idhall, $cinema)
 | 
			
		||||
    {	
 | 
			
		||||
        
 | 
			
		||||
        $result = [];
 | 
			
		||||
        $sessions = Session::getListSessionsBetween2Dates($idhall,$cinema,$start,$end);
 | 
			
		||||
        if($sessions){
 | 
			
		||||
            foreach($sessions as $s){
 | 
			
		||||
                $e = new Event();
 | 
			
		||||
                $dictionary = self::session2dictionary($s);
 | 
			
		||||
                $e = $e->dictionary2event($dictionary);
 | 
			
		||||
                $result[] = $e;
 | 
			
		||||
            }
 | 
			
		||||
         }
 | 
			
		||||
        return $result;
 | 
			
		||||
    }
 | 
			
		||||
    
 | 
			
		||||
    private $id;
 | 
			
		||||
    private $title;
 | 
			
		||||
    private $start;
 | 
			
		||||
    private $end;
 | 
			
		||||
 | 
			
		||||
	private $idfilm;
 | 
			
		||||
    private $start_time;
 | 
			
		||||
	private $seat_price;
 | 
			
		||||
    private $format;
 | 
			
		||||
    private $seats_full;
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    private function __construct()
 | 
			
		||||
    {
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getId()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->id;
 | 
			
		||||
    }
 | 
			
		||||
	
 | 
			
		||||
     public function getIdfilm()
 | 
			
		||||
    {
 | 
			
		||||
        return $this->idfilm;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Return an object that allows Event object to be serialized as json because private atributes cant be serialized
 | 
			
		||||
    public function jsonSerialize()
 | 
			
		||||
    {	
 | 
			
		||||
        $film = Session::getThisSessionFilm($this->idfilm);
 | 
			
		||||
        
 | 
			
		||||
        $undesirable = array(
 | 
			
		||||
            'á','À','Á','Â','Ã','Ä','Å',
 | 
			
		||||
            'ß','Ç',
 | 
			
		||||
            'È','É','Ê','Ë',
 | 
			
		||||
            'Ì','Í','Î','Ï','Ñ',
 | 
			
		||||
            'Ò','Ó','Ô','Õ','Ö',
 | 
			
		||||
            'Ù','Ú','Û','Ü',
 | 
			
		||||
            'ñ'
 | 
			
		||||
        );
 | 
			
		||||
        $good = array(
 | 
			
		||||
            'a','A','A','A','A','A','A',
 | 
			
		||||
            'B','C',
 | 
			
		||||
            'E','E','E','E',
 | 
			
		||||
            'I','I','I','I','N',
 | 
			
		||||
            'O','O','O','O','O',
 | 
			
		||||
            'U','U','U','U',
 | 
			
		||||
            'n'
 | 
			
		||||
        );
 | 
			
		||||
 | 
			
		||||
        $lan = str_replace($undesirable, $good, $film["language"]);
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
        $o = new \stdClass();
 | 
			
		||||
        $o->id = $this->id;
 | 
			
		||||
        $o->title = $this->title;
 | 
			
		||||
        $o->start = $this->start;
 | 
			
		||||
        $o->end = $this->end;
 | 
			
		||||
        $o->start_time = $this->start_time;
 | 
			
		||||
		$o->seat_price = $this->seat_price;
 | 
			
		||||
        $o->format = $this->format;
 | 
			
		||||
    	$o->film_dur = $film["duration"];
 | 
			
		||||
        $o->film_id = $film["idfilm"];
 | 
			
		||||
        $o->film_lan = $lan;
 | 
			
		||||
        $o->film_img = $film["img"];
 | 
			
		||||
		$o->date = $this->start;
 | 
			
		||||
 | 
			
		||||
        return $o;
 | 
			
		||||
    }
 | 
			
		||||
 
 | 
			
		||||
	public static function session2dictionary($session){
 | 
			
		||||
		$extraDurationBetweenFilms = 10;
 | 
			
		||||
		
 | 
			
		||||
		$film =	Session::getThisSessionFilm($session->getIdfilm());
 | 
			
		||||
		$dur = $film["duration"]+$extraDurationBetweenFilms;
 | 
			
		||||
		
 | 
			
		||||
		$tittle = \str_replace('_', ' ', $film["tittle"]) ;
 | 
			
		||||
		$start = $session->getDate()." ".$session->getStartTime();
 | 
			
		||||
		$end = \date('Y-m-d H:i:s', \strtotime( $start . ' +'.$dur.' minute'));
 | 
			
		||||
		
 | 
			
		||||
		$dictionary = array(
 | 
			
		||||
			"id" => $session->getId(),
 | 
			
		||||
			"title" => $tittle,
 | 
			
		||||
			"start" => $start,
 | 
			
		||||
			"end" => $end,
 | 
			
		||||
			"idfilm" => $session->getIdfilm(),
 | 
			
		||||
			"start_time" => $session->getStartTime(),
 | 
			
		||||
			"seat_price" => $session->getSeatPrice(),
 | 
			
		||||
			"format" => $session->getFormat(),
 | 
			
		||||
			"seats_full" => $session->getSeatsFull(),
 | 
			
		||||
		);
 | 
			
		||||
		
 | 
			
		||||
		return $dictionary;
 | 
			
		||||
	}
 | 
			
		||||
    
 | 
			
		||||
    protected function dictionary2event(array $dictionary)
 | 
			
		||||
    {
 | 
			
		||||
        if (array_key_exists('id', $dictionary)) {
 | 
			
		||||
            $id = $dictionary['id'];
 | 
			
		||||
            $this->id =(int)$id;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (array_key_exists('title', $dictionary)) {
 | 
			
		||||
            $title = $dictionary['title'];
 | 
			
		||||
            $this->title = $title;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        if (array_key_exists('start', $dictionary)) {
 | 
			
		||||
            $start = $dictionary['start'];
 | 
			
		||||
            //$start = DateTime::createFromFormat("y-m-d H:i:s", $start);
 | 
			
		||||
            $this->start = $start;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (array_key_exists('end', $dictionary)) {
 | 
			
		||||
            $end = $dictionary['end'] ?? null;
 | 
			
		||||
            $this->end = $end;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
        
 | 
			
		||||
		if (array_key_exists('idfilm', $dictionary)) {
 | 
			
		||||
            $idfilm = $dictionary['idfilm'] ?? null;
 | 
			
		||||
            $this->idfilm = $idfilm;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		if (array_key_exists('start_time', $dictionary)) {
 | 
			
		||||
            $start_time = $dictionary['start_time'] ?? null;
 | 
			
		||||
            $this->start_time = $start_time;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		if (array_key_exists('seat_price', $dictionary)) {
 | 
			
		||||
            $seat_price = $dictionary['seat_price'] ?? null;
 | 
			
		||||
            $this->seat_price = $seat_price;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		if (array_key_exists('format', $dictionary)) {
 | 
			
		||||
            $format = $dictionary['format'] ?? null;
 | 
			
		||||
            $this->format = $format;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		if (array_key_exists('seats_full', $dictionary)) {
 | 
			
		||||
            $seats_full = $dictionary['seats_full'] ?? null;
 | 
			
		||||
            $this->seats_full = $seats_full;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        return $this;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										39
									
								
								root/assets/php/includes/film.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								root/assets/php/includes/film.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
			
		||||
<?php
 | 
			
		||||
   
 | 
			
		||||
    class Film{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Film ID.
 | 
			
		||||
        private $_tittle;           //Film tittle.
 | 
			
		||||
        private $_duration;         //Film duration.
 | 
			
		||||
        private $_language;         //Film language.
 | 
			
		||||
        private $_description;      //Film description.
 | 
			
		||||
        private $_img;              //Film image.
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $tittle, $duration, $language, $description, $img){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_tittle = $tittle;
 | 
			
		||||
            $this->_duration = $duration;
 | 
			
		||||
            $this->_language = $language;
 | 
			
		||||
            $this->_description = $description;
 | 
			
		||||
            $this->_img = $img;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setTittle($tittle) {$this->_tittle = $tittle; }
 | 
			
		||||
		public function getTittle(){return $this->_tittle;}
 | 
			
		||||
        public function setDuration($duration){$this->_duration = $duration; }
 | 
			
		||||
		public function getDuration() {return $this->_duration;}
 | 
			
		||||
        public function setLanguage($language) {$this->_language = $language; }
 | 
			
		||||
		public function getLanguage(){return $this->_language;}
 | 
			
		||||
        public function setDescription($description){  $this->_description = $description;}
 | 
			
		||||
		public function getDescription(){return  $this->_description;}
 | 
			
		||||
        public function setImg($img){  $this->_img = $img;}
 | 
			
		||||
		public function getImg(){return   $this->_img;}
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										151
									
								
								root/assets/php/includes/film_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										151
									
								
								root/assets/php/includes/film_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,151 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('film.php');
 | 
			
		||||
 | 
			
		||||
    class Film_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createFilm($id, $tittle, $duration, $language, $description, $img){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `film`( `id`, `tittle`, `duration`, `language`,`description`, `img`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%d', '%s','%s', '%s')", 
 | 
			
		||||
									$id, $tittle, $duration, $language, $description, $img);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		//Returns a  film data .
 | 
			
		||||
		public function GetFilm($tittle,$language){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film WHERE film.tittle = '%s'AND film.language='%s'", $tittle,$language );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns the film's data by ID.
 | 
			
		||||
		public function FilmData($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$resul->data_seek(0);
 | 
			
		||||
			$film = null;
 | 
			
		||||
			while ($fila = $resul->fetch_assoc()) {
 | 
			
		||||
				if($id === $fila['id']){
 | 
			
		||||
					$film = $this->loadFilm($fila["id"], $fila["tittle"], $fila["duration"], $fila["language"], $fila["description"], $fila["img"]);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			//mysqli_free_result($selectUser);
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $film;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns if exist a Film with this id
 | 
			
		||||
		public function existFilm($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the films.
 | 
			
		||||
		public function allFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$films[] = $this->loadFilm($fila["id"], $fila["tittle"], $fila["duration"], $fila["language"], $fila["description"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $films;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get all films tittles.
 | 
			
		||||
		public function tittleFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT DISTINCT tittle FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get all films descriptions.
 | 
			
		||||
		public function descriptionFilmData(){
 | 
			
		||||
			$sql = sprintf( "SELECT description FROM film ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		/*
 | 
			
		||||
		public function addFilm($films) {
 | 
			
		||||
			$resul =  mysqli_query($this->mysqli, $this->createFilm($film.getId(), $film.getTittle(), $film.getDuration(), $film.getLanguage(), $film.getDescription())) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		*/
 | 
			
		||||
 | 
			
		||||
		//Deleted film by "id".
 | 
			
		||||
		public function deleteFilm($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM film WHERE film.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editFilm($id, $tittle, $duration, $language,$description,$img){
 | 
			
		||||
			$sql = sprintf( "UPDATE film SET tittle = '%s' , duration = '%d', language ='%s' , description ='%s', img ='%s'
 | 
			
		||||
								WHERE film.id = '%d';", 
 | 
			
		||||
									$tittle, $duration, $language, $description, $img, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Edit a film.
 | 
			
		||||
		public function editFilmNoImg($id, $tittle, $duration, $language,$description){
 | 
			
		||||
			$sql = sprintf( "UPDATE film SET tittle = '%s' , duration = '%d', language ='%s' , description ='%s'
 | 
			
		||||
								WHERE film.id = '%d';", 
 | 
			
		||||
									$tittle, $duration, $language, $description, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Get cinemas associated with a movie.
 | 
			
		||||
		public function getCinemas($id){
 | 
			
		||||
			include_once('cinema_dao.php');
 | 
			
		||||
			$cinema = new Cinema_DAO("complucine");
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( " SELECT DISTINCT * FROM cinema WHERE cinema.id in 
 | 
			
		||||
								(SELECT session.idcinema FROM session JOIN film ON session.idfilm = film.id WHERE film.id = '%d'); ", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$cinemas = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$cinemas[] = $cinema->loadCinema($fila["id"], $fila["name"], $fila["direction"], $fila["phone"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $cinemas;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadFilm($id, $tittle, $duration, $language,$description, $img){
 | 
			
		||||
			return new Film( $id, $tittle, $duration, $language,$description, $img);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										109
									
								
								root/assets/php/includes/hall.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										109
									
								
								root/assets/php/includes/hall.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,109 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('hall_dao.php');
 | 
			
		||||
	include_once('seat_dao.php');
 | 
			
		||||
	
 | 
			
		||||
    class Hall{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_number;      	//Room number.
 | 
			
		||||
        private $_idcinema;    	//Cinema Id
 | 
			
		||||
		private $_numRows;     	//Num rows.
 | 
			
		||||
        private $_numCol;      	//Num columns.
 | 
			
		||||
		private $_total_seats;	//Toal seats.	
 | 
			
		||||
		private $_seats_map;	//Seat map.
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($number, $idcinema, $numRows, $numCol, $total_seats, $seats_map){
 | 
			
		||||
            $this->_number = $number;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_numRows = $numRows;
 | 
			
		||||
			$this->_numCol = $numCol;
 | 
			
		||||
			$this->_total_seats = $total_seats;
 | 
			
		||||
			$_seats_map = array();
 | 
			
		||||
			$_seats_map = $seats_map;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
		public static function getListHalls($cinema){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd )
 | 
			
		||||
				return $bd->getAllHalls($cinema);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function create_hall($number, $cinema, $rows, $cols, $seats, $seats_map){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if(!$bd->searchHall($number, $cinema)){
 | 
			
		||||
					$bd->createHall($number, $cinema, $rows, $cols, $seats, $seats_map);
 | 
			
		||||
					Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
					return "Se ha creado la sala con exito";
 | 
			
		||||
				} else {
 | 
			
		||||
					return "Esta sala ya existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function edit_hall($number, $cinema, $rows, $cols, $seats, $seats_map, $og_number){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchHall($og_number, $cinema)){
 | 
			
		||||
					if($og_number == $number){
 | 
			
		||||
						Seat::deleteAllSeats($number, $cinema);
 | 
			
		||||
						$bd->editHall($number, $cinema, $rows, $cols, $seats, $og_number);
 | 
			
		||||
						Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
						return "Se ha editado la sala con exito";
 | 
			
		||||
					}else{
 | 
			
		||||
						if(!$bd->searchHall($number, $cinema)){
 | 
			
		||||
							Seat::deleteAllSeats($og_number, $cinema);
 | 
			
		||||
							$bd->editHall($number, $cinema, $rows, $cols, $seats, $og_number);
 | 
			
		||||
							Seat::createSeats($number, $cinema, $rows, $cols, $seats_map);
 | 
			
		||||
							return "Se ha editado la sala con exito";
 | 
			
		||||
						}else
 | 
			
		||||
							return "El nuevo numero de sala ya existe en otra sala";
 | 
			
		||||
					}
 | 
			
		||||
				} else {
 | 
			
		||||
					return "La sala a editar no existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function delete_hall($number, $cinema, $rows, $cols, $seats, $seats_map, $og_number){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchHall($og_number, $cinema)){
 | 
			
		||||
					$bd->deleteHall($og_number, $cinema);
 | 
			
		||||
					Seat::deleteAllSeats($og_number, $cinema);
 | 
			
		||||
					return "La sala se ha eliminado correctamente";
 | 
			
		||||
				} else {
 | 
			
		||||
					return "La sala a borrar no existe";
 | 
			
		||||
				}
 | 
			
		||||
			} else { return "Error al conectarse a la base de datos"; }
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function search_hall($number,$cinema){
 | 
			
		||||
			$bd = new HallDAO('complucine');
 | 
			
		||||
			if($bd )
 | 
			
		||||
				return $bd->searchHall($number,$cinema);;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setNumber($number){	$this->_number = $number; }
 | 
			
		||||
		public function getNumber(){ return $this->_number; }
 | 
			
		||||
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setNumRows($numRows){ $this->_numRows = $numRows; }
 | 
			
		||||
		public function getNumRows(){ return $this->_numRows; }
 | 
			
		||||
		
 | 
			
		||||
		public function setNumCol($numCol){ $this->_numCol = $numCol; }
 | 
			
		||||
		public function getNumCol(){ return $this->_numCol; }
 | 
			
		||||
 | 
			
		||||
		public function setTotalSeats($totalSeat){ $this->_total_seats = $totalSeat; }
 | 
			
		||||
		public function getTotalSeats(){ return $this->_total_seats; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatsmap($seats_map){ $this->_seats_map = $seats_map; }
 | 
			
		||||
		public function getSeatsmap(){ return $this->_seats_map; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										116
									
								
								root/assets/php/includes/hall_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										116
									
								
								root/assets/php/includes/hall_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,116 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('hall.php');
 | 
			
		||||
	
 | 
			
		||||
	
 | 
			
		||||
    class HallDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new hall taking the new number,cinema, rows, cols, seats and seats map saving in the database
 | 
			
		||||
		public function createHall($number, $cinema, $rows, $cols, $seats, $seats_map){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `hall`( `number`, `idcinema`, `numrows`, `numcolumns`, `total_seats`) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d')", 
 | 
			
		||||
								$number, $cinema, $rows, $cols, $seats );
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error BD createhall');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns the hall's data by ID.
 | 
			
		||||
		public function HallData($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM hall WHERE number = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$resul->data_seek(0);
 | 
			
		||||
			$hall = null;
 | 
			
		||||
			while ($fila = $resul->fetch_assoc()) {
 | 
			
		||||
				$hall = $this->loadHall($fila["number"], $fila["idcinema"], $fila["numrows"], $fila["numcolumns"], $fila["total_seats"], null);
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			//mysqli_free_result($selectUser);
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $hall;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get the halls data.
 | 
			
		||||
		public function getAllHalls($cinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM hall WHERE 
 | 
			
		||||
							idcinema = '%s'", 
 | 
			
		||||
							$cinema);	
 | 
			
		||||
							
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$hall = null;
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$hall[] = $this->loadHall($fila["number"], $fila["idcinema"], $fila["numrows"], $fila["numcolumns"], $fila["total_seats"], null);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $hall;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a  hall data taking the number and cinema
 | 
			
		||||
		public function searchHall($number, $cinema){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM hall WHERE 
 | 
			
		||||
							number = '%s' AND idcinema = '%s'", 
 | 
			
		||||
							$number, $cinema);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			$hall = false;
 | 
			
		||||
			
 | 
			
		||||
			if($resul){
 | 
			
		||||
				if($resul->num_rows == 1){
 | 
			
		||||
					$fila = $resul->fetch_assoc();
 | 
			
		||||
					$hall = $this->loadHall($fila["number"], $fila["idcinema"], $fila["numrows"], $fila["numcolumns"], $fila["total_seats"], null);
 | 
			
		||||
				}
 | 
			
		||||
				$resul->free();
 | 
			
		||||
			}
 | 
			
		||||
		
 | 
			
		||||
			return $hall;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Hall Data Transfer Object.
 | 
			
		||||
		public function loadHall($number, $idcinema, $numrows, $numcolumns, $total_seats, $seats_map){
 | 
			
		||||
			return new Hall($number, $idcinema, $numrows, $numcolumns, $total_seats, $seats_map);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Edit a hall taking the new number, rows, cols ans seats with respect to its origin parameter
 | 
			
		||||
		public function editHall($number, $cinema, $rows, $cols, $seats, $og_number){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "UPDATE `hall`
 | 
			
		||||
							SET `number` = '%d' ,`numrows` = '%d' , `numcolumns` = '%d' , `total_seats` = %d
 | 
			
		||||
							WHERE `hall`.`number` = '%d' AND `hall`.`idcinema` = '%d';", 
 | 
			
		||||
							$number, $rows, $cols, $seats, $og_number, $cinema );
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Delete a hall whit the primary key
 | 
			
		||||
		public function deleteHall($number, $cinema){
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "DELETE FROM `hall` WHERE `hall`.`number` = '%d' AND `hall`.`idcinema` = '%d';",$number, $cinema);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										35
									
								
								root/assets/php/includes/manager.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								root/assets/php/includes/manager.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Manager{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Manager ID.
 | 
			
		||||
        private $_username;           //Manager username.
 | 
			
		||||
        private $_email;         //Email.
 | 
			
		||||
        private $_roll;       //Roll
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $idcinema, $username, $email, $roll){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_username = $username;
 | 
			
		||||
            $this->_email = $email;
 | 
			
		||||
            $this->_roll = $roll;
 | 
			
		||||
        }
 | 
			
		||||
	
 | 
			
		||||
		//Methods:
 | 
			
		||||
	    
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
        public function setUsername($username){$this->_username = $username; }
 | 
			
		||||
		public function getUsername(){ return 	$this->_username;}
 | 
			
		||||
        public function setEmail($email){$this->_email = $email;}
 | 
			
		||||
		public function getEmail(){return $this->_email;}
 | 
			
		||||
        public function setRoll($roll){$this->_roll = $roll;}
 | 
			
		||||
		public function getRoll(){return  $this->_roll;}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										77
									
								
								root/assets/php/includes/manager_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								root/assets/php/includes/manager_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('manager.php');
 | 
			
		||||
 | 
			
		||||
    class Manager_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
		
 | 
			
		||||
	   	//Returns a query to get all the manager's data.
 | 
			
		||||
		public function allManagersData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `users` JOIN `manager` ON manager.id = users.id");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$managers[] = $this->loadManager($fila["id"], $fila["idcinema"], $fila["username"], $fila["email"], $fila["rol"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $managers;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  manager data taking the id
 | 
			
		||||
		public function GetManager($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `manager` WHERE manager.id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  manager data 
 | 
			
		||||
		public function GetManagerCinema($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `manager` WHERE manager.id = '%d' AND manager.idcinema ='%d'", $id, $idcinema );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		 //Create a new Manager with a new id and id cinema
 | 
			
		||||
		 public function createManager($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `manager`( `id`, `idcinema`)
 | 
			
		||||
								VALUES ( '%d', '%d')", 
 | 
			
		||||
									$id, $idcinema);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	
 | 
			
		||||
 | 
			
		||||
		//Deleted manager by "id".
 | 
			
		||||
		public function deleteManager($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM `manager` WHERE manager.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit manager by "id" and "idcinema"
 | 
			
		||||
		public function editManager($id, $idcinema){
 | 
			
		||||
			$sql = sprintf( "UPDATE `manager` SET manager.idcinema = '%d'
 | 
			
		||||
								WHERE manager.id = '%d';", 
 | 
			
		||||
									 $idcinema, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new Manager Data Transfer Object.
 | 
			
		||||
		public function loadManager($id, $idcinema, $username, $email, $rol){
 | 
			
		||||
			return new Manager($id, $idcinema, $username, $email, $rol);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										40
									
								
								root/assets/php/includes/promotion.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								root/assets/php/includes/promotion.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
			
		||||
<?php
 | 
			
		||||
    
 | 
			
		||||
    class Promotion{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;               //Promotion ID.
 | 
			
		||||
        private $_tittle;           //Promotions name.
 | 
			
		||||
        private $_description;      //Promotion description.
 | 
			
		||||
        private $_code;             //Promotion code.
 | 
			
		||||
        private $_active;           //Promotion is active?
 | 
			
		||||
        private $_img;
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $tittle, $description, $code, $active, $img){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_tittle = $tittle;
 | 
			
		||||
            $this->_description = $description;
 | 
			
		||||
            $this->_code = $code;
 | 
			
		||||
            $this->_active = $active;
 | 
			
		||||
            $this->_img= $img;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
        public function setTittle($tittle){	$this->_tittle = $tittle; }
 | 
			
		||||
		public function getTittle(){ return $this->_tittle; }
 | 
			
		||||
        public function setDescription($description){  $this->_description = $description;}
 | 
			
		||||
		public function getDescription(){return  $this->_description;}
 | 
			
		||||
        public function setCode($code){  $this->_code = $code;}
 | 
			
		||||
		public function getCode(){return  $this->_code;}
 | 
			
		||||
        public function setActive($active){  $this->_active = $active;}
 | 
			
		||||
		public function getActive(){return  $this->_active;}
 | 
			
		||||
        public function setImg($img){  $this->_img = $img;}
 | 
			
		||||
		public function getImg(){return  $this->_img;}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										102
									
								
								root/assets/php/includes/promotion_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										102
									
								
								root/assets/php/includes/promotion_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,102 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('promotion.php');
 | 
			
		||||
 | 
			
		||||
    class Promotion_DAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Session.
 | 
			
		||||
		public function createPromotion($id, $tittle, $description, $code, $active, $img){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `promotion`( `id`, `tittle`, `description`, `code`, `active`, `img`) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%s', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $tittle, $description, $code, $active, $img);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
	    //Returns a query to get All the promotion.
 | 
			
		||||
		public function allPromotionData(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion ");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$promotions[] = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $promotions;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  promotion data  by code.
 | 
			
		||||
		public function GetPromotion($code){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.code = '%s'", $code );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  promotion data  by id.
 | 
			
		||||
		public function promotionData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.id = '%d'", $id);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Deleted promotion by "id".
 | 
			
		||||
		public function deletePromotion($id){
 | 
			
		||||
			$sql = sprintf( "DELETE FROM promotion WHERE promotion.id = '%d' ;",$id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a promotion with new img.
 | 
			
		||||
		public function editPromotion($id, $tittle, $description, $code, $active, $img){
 | 
			
		||||
			$sql = sprintf( "UPDATE promotion SET tittle = '%s' , description = '%s', code ='%s' , active ='%s', img = '%s'
 | 
			
		||||
								WHERE promotion.id = '%d';", 
 | 
			
		||||
									 $tittle, $description, $code, $active, $img, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Edit a promotion without new img.
 | 
			
		||||
		public function editPromotionNoImg($id, $tittle, $description, $code, $active){
 | 
			
		||||
			$sql = sprintf( "UPDATE promotion SET tittle = '%s' , description = '%s', code ='%s' , active ='%s'
 | 
			
		||||
								WHERE promotion.id = '%d';", 
 | 
			
		||||
									 $tittle, $description, $code, $active, $id);
 | 
			
		||||
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a  promotion data as object.
 | 
			
		||||
		public function GetPromotionObj($code){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM promotion WHERE promotion.code = '%s'", $code );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$promo = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$promo = $this->loadPromotion($fila["id"], $fila["tittle"], $fila["description"], $fila["code"], $fila["active"], $fila["img"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $promo;
 | 
			
		||||
		}
 | 
			
		||||
	    
 | 
			
		||||
		//Create a new film Data Transfer Object.
 | 
			
		||||
		public function loadPromotion($id, $tittle, $description, $code, $active, $img){
 | 
			
		||||
			return new Promotion($id, $tittle, $description, $code, $active, $img);
 | 
			
		||||
		}
 | 
			
		||||
	    	
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										43
									
								
								root/assets/php/includes/purchase.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								root/assets/php/includes/purchase.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
			
		||||
<?php   
 | 
			
		||||
    class Purchase {
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_idUser;           //User Id.
 | 
			
		||||
        private $_idSession;        //Session Id.
 | 
			
		||||
        private $_idHall;           //Hall Id.
 | 
			
		||||
        private $_idCinema;         //Cinema Id.
 | 
			
		||||
        private $_numRow;           //Number of row seat.
 | 
			
		||||
        private $_numColumn;        //Number of column seat.
 | 
			
		||||
        private $_timePurchase;     //Time of purchase.
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($idUser, $idSession, $idHall, $idCinema, $row, $column, $time){
 | 
			
		||||
            $this->_idUser = $idUser;
 | 
			
		||||
            $this->_idSession = $idSession;
 | 
			
		||||
            $this->_idHall = $idHall;
 | 
			
		||||
            $this->_idCinema = $idCinema;
 | 
			
		||||
            $this->_numRow = $row;
 | 
			
		||||
            $this->_numColumn = $column;
 | 
			
		||||
            $this->_timePurchase = $time;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setUserId($idUser){	$this->_idUser = $id; }
 | 
			
		||||
		public function getUserId(){ return $this->_idUser; }
 | 
			
		||||
        public function setSessionId($idSession){	$this->_idSession = $idSession; }
 | 
			
		||||
		public function getSessionId(){ return $this->_idSession; }
 | 
			
		||||
        public function setHallId($idHall){	$this->_idHall = $idHall; }
 | 
			
		||||
		public function getHallId(){ return $this->_idHall; }
 | 
			
		||||
        public function setCinemaId($idCinema){	$this->_idCinema = $idCinema; }
 | 
			
		||||
		public function getCinemaId(){ return $this->_idCinema; }
 | 
			
		||||
        public function setRow($row){	$this->_numRow = $row; }
 | 
			
		||||
		public function getRow(){ return $this->_numRow; }
 | 
			
		||||
        public function setColumn($column){	$this->_numColumn = $column; }
 | 
			
		||||
		public function getColumn(){ return $this->_numColumn; }
 | 
			
		||||
        public function setTime($time){	$this->_timePurchase = $time; }
 | 
			
		||||
		public function getTime(){ return $this->_timePurchase; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										46
									
								
								root/assets/php/includes/purchase_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										46
									
								
								root/assets/php/includes/purchase_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,46 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('purchase.php');
 | 
			
		||||
 | 
			
		||||
    class PurchaseDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Create a new Purchase.
 | 
			
		||||
		public function createPurchase($idUser, $idSession, $idHall, $idCinema, $row, $column, $time){
 | 
			
		||||
			$sql = sprintf( "INSERT INTO purchase( iduser, idsession, idhall, idcinema, numrow, numcolum, time_purchase ) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d', '%d', '%s' )", 
 | 
			
		||||
									$idUser, $idSession, $idHall, $idCinema, $row, $column, $time );
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//All purchases of one user.
 | 
			
		||||
		public function allPurchasesData($idUser){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM purchase WHERE iduser = '%d' ", $idUser);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$purchases = null;
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$purchases[] = $this->loadPurchase($fila["iduser"], $fila["idsession"], $fila["idhall"], $fila["idcinema"], $fila["numrow"], $fila["numcolum"], $fila["time_purchase"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $purchases;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Create a new User Data Transfer Object.
 | 
			
		||||
		public function loadPurchase($idUser, $idSession, $idHall, $idCinema, $row, $column, $time){
 | 
			
		||||
			return new Purchase($idUser, $idSession, $idHall, $idCinema, $row, $column, $time);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										63
									
								
								root/assets/php/includes/seat.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								root/assets/php/includes/seat.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('seat_dao.php');
 | 
			
		||||
 | 
			
		||||
    class Seat{
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_idhall;     	//Hall id.
 | 
			
		||||
        private $_idcinema;    	//Cinema id.
 | 
			
		||||
		private $_numRow;     	//Number of row.
 | 
			
		||||
        private $_numCol;      	//Number of column.
 | 
			
		||||
		private $_state;      	//State of the seat-
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($idhall, $idcinema, $numRow, $numCol, $state){
 | 
			
		||||
            $this->_number = $idhall;
 | 
			
		||||
            $this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_numRow = $numRow;
 | 
			
		||||
			$this->_numCol = $numCol;
 | 
			
		||||
			$this->_state = $state;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		static public function createSeats($hall, $cinema, $rows, $cols, $seats_map){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
 | 
			
		||||
			for($i = 1;$i <= $rows;$i++){
 | 
			
		||||
				for($j = 1; $j <= $cols;$j++){
 | 
			
		||||
					$bd->createSeat($hall, $cinema, $i, $j, $seats_map[$i][$j]);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		static public function getSeatsMap($number, $cinema){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
			if($bd )
 | 
			
		||||
				return $bd->getAllSeats($number, $cinema);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		static public function deleteAllSeats($number, $cinema){
 | 
			
		||||
			$bd = new SeatDAO('complucine');
 | 
			
		||||
			if($bd)
 | 
			
		||||
				return $bd->deletemapSeats($number, $cinema);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setNumber($number){	$this->_number = $number; }
 | 
			
		||||
		public function getNumber(){ return $this->_number; }
 | 
			
		||||
 | 
			
		||||
        public function setIdcinema($idcinema){	$this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setNumRows($numRow){ $this->_numRow = $numRow; }
 | 
			
		||||
		public function getNumRows(){ return $this->_numRow; }
 | 
			
		||||
		
 | 
			
		||||
		public function setNumCol($numCol){ $this->_numCol = $numCol; }
 | 
			
		||||
		public function getNumCol(){ return $this->_numCol; }
 | 
			
		||||
		
 | 
			
		||||
		public function setState($state){ $this->_state = $state; }
 | 
			
		||||
		public function getState(){ return $this->_state; }
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										60
									
								
								root/assets/php/includes/seat_dao-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										60
									
								
								root/assets/php/includes/seat_dao-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,60 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('seat.php');
 | 
			
		||||
	
 | 
			
		||||
    class SeatDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Seat  taking the new hall,cinema,row,col and state saving in the database
 | 
			
		||||
		public function createSeat($hall, $cinema, $row, $col, $state){
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `seat`( `idhall`, `idcinema`, `numrow`, `numcolum`, `active`) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d')", 
 | 
			
		||||
								$hall, $cinema, $row, $col, $state);
 | 
			
		||||
	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error BD createSeat');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get all the seat's data.
 | 
			
		||||
		public function getAllSeats($number, $cinema){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM seat WHERE 
 | 
			
		||||
							idhall = '%d' AND idcinema = '%d'", 
 | 
			
		||||
							$number, $cinema);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$seat_map = null;
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$seat_map[] = $this->loadSeat($fila["idhall"], $fila["idcinema"], $fila["numrow"], $fila["numcolum"], $fila["active"]);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $seat_map;
 | 
			
		||||
		}
 | 
			
		||||
		//Delete a Seat whit the primary key
 | 
			
		||||
		public function deletemapSeats($hall, $cinema){
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `seat` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s'", 
 | 
			
		||||
							$cinema, $hall);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Seat Data Transfer Object.
 | 
			
		||||
		public function loadSeat($idhall, $idcinema, $numRow, $numCol, $state){
 | 
			
		||||
			return new Seat($idhall, $idcinema, $numRow, $numCol, $state);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										76
									
								
								root/assets/php/includes/seat_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										76
									
								
								root/assets/php/includes/seat_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,76 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('seat.php');
 | 
			
		||||
	
 | 
			
		||||
    class SeatDAO extends DAO {
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Create a new Seat  taking the new hall,cinema,row,col and state saving in the database
 | 
			
		||||
		public function createSeat($hall, $cinema, $row, $col, $state){
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `seat`( `idhall`, `idcinema`, `numrow`, `numcolum`, `active`) 
 | 
			
		||||
								VALUES ( '%d', '%d', '%d', '%d', '%d')", 
 | 
			
		||||
								$hall, $cinema, $row, $col, $state);
 | 
			
		||||
	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error BD createSeat');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get all the seat's data.
 | 
			
		||||
		public function getAllSeats($number, $cinema){
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM seat WHERE 
 | 
			
		||||
							idhall = '%d' AND idcinema = '%d'", 
 | 
			
		||||
							$number, $cinema);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$seat_map = null;
 | 
			
		||||
			while($fila=mysqli_fetch_array($resul)){
 | 
			
		||||
				$seat_map[] = $this->loadSeat($fila["idhall"], $fila["idcinema"], $fila["numrow"], $fila["numcolum"], $fila["active"]);
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $seat_map;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Delete a Seat whit the primary key
 | 
			
		||||
		public function deletemapSeats($hall, $cinema){
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `seat` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s'", 
 | 
			
		||||
							$cinema, $hall);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Change state of the seat.
 | 
			
		||||
		/*
 | 
			
		||||
		public function changeSeatState($hall, $cinema, $row, $col, $state){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($idHall);
 | 
			
		||||
			$state = $this->mysqli->real_escape_string($state);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE seat SET active = '%d' WHERE idhall = '%d' AND idcinema = '%d' AND numrow = '%d' AND numcolum = '%d'", 
 | 
			
		||||
																						$state, $hall, $cinema, $row, $col );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		*/
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Seat Data Transfer Object.
 | 
			
		||||
		public function loadSeat($idhall, $idcinema, $numRow, $numCol, $state){
 | 
			
		||||
			return new Seat($idhall, $idcinema, $numRow, $numCol, $state);
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										136
									
								
								root/assets/php/includes/session-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										136
									
								
								root/assets/php/includes/session-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,136 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('session_dao.php');
 | 
			
		||||
 | 
			
		||||
    class Session{
 | 
			
		||||
 | 
			
		||||
        private $_id;          
 | 
			
		||||
        private $_idfilm;
 | 
			
		||||
        private $_idhall;
 | 
			
		||||
		private $_idcinema;			
 | 
			
		||||
        private $_date;
 | 
			
		||||
        private $_startTime;
 | 
			
		||||
        private $_seatPrice;
 | 
			
		||||
        private $_format;
 | 
			
		||||
		private $_seats_full;
 | 
			
		||||
		
 | 
			
		||||
        function __construct($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_idfilm = $idfilm;
 | 
			
		||||
            $this->_idhall = $idhall;
 | 
			
		||||
			$this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_date = $date;
 | 
			
		||||
            $this->_startTime = $startTime;
 | 
			
		||||
            $this->_seatPrice = $seatPrice;
 | 
			
		||||
            $this->_format = $format;
 | 
			
		||||
			$this->_seats_full = $seats_full;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		public static function getListSessions($hall,$cinema,$date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				if($date)
 | 
			
		||||
					return $bd->getAllSessions($hall, $cinema, $date, null);
 | 
			
		||||
				else
 | 
			
		||||
					return $bd->getAllSessions($hall, $cinema, null, null);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		public static function getListSessionsBetween2Dates($hall,$cinema,$start,$end){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				return $bd->getAllSessions($hall, $cinema, $start, $end);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function create_session($cinema, $hall, $start, $date, $film, $price, $format,$repeat){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if(!$bd->searchSession($cinema, $hall, $start, $date)){
 | 
			
		||||
					$bd->createSession(null,$film, $hall, $cinema, $date, $start, $price, $format);
 | 
			
		||||
 | 
			
		||||
					if($repeat > "0") {
 | 
			
		||||
						$repeats = $repeat;
 | 
			
		||||
						$repeat = $repeat - 1;
 | 
			
		||||
						$date = date('Y-m-d', strtotime( $date . ' +1 day') );
 | 
			
		||||
						self::create_session($cinema, $hall, $start, $date, $film, $price, $format,$repeat);
 | 
			
		||||
						return "Se han creado las ".$repeat ." sesiones con exito";
 | 
			
		||||
					}
 | 
			
		||||
						
 | 
			
		||||
					else
 | 
			
		||||
						return "Se ha creado la session con exito";
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session ya existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function edit_session($cinema, $or_hall, $or_date, $or_start, $hall, $start, $date, $film, $price, $format){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $or_hall, $or_start, $or_date)){
 | 
			
		||||
					if(!$bd->searchSession($cinema,$hall,$start,$date)){
 | 
			
		||||
						$origin = array("cinema" => $cinema,"hall" => $or_hall,"start" => $or_start,"date" => $or_date);
 | 
			
		||||
						$bd->editSession($film, $hall, $cinema, $date, $start, $price, $format,$origin);
 | 
			
		||||
						return "Se ha editado la session con exito";			
 | 
			
		||||
					}else if($or_hall == $hall && $or_start == $start && $or_date == $date){
 | 
			
		||||
						$origin = array("cinema" => $cinema,"hall" => $or_hall,"start" => $or_start,"date" => $or_date);
 | 
			
		||||
						$bd->editSession($film, $hall, $cinema, $date, $start, $price, $format, $origin);
 | 
			
		||||
						return "Se ha editado la session con exito";
 | 
			
		||||
					}else{
 | 
			
		||||
						return "Ya existe una sesion con los parametros nuevos";	
 | 
			
		||||
					}
 | 
			
		||||
						
 | 
			
		||||
				} else 
 | 
			
		||||
					return "La session a editar no existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function delete_session($cinema, $hall, $start, $date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $hall, $start, $date)){
 | 
			
		||||
					$bd->deleteSession($hall, $cinema, $date, $start);
 | 
			
		||||
					return "Se ha eliminado la session con exito";						
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session no existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Esto deberia estar en film.php? seguramente
 | 
			
		||||
		public static function getThisSessionFilm($idfilm){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				return $bd->filmTittle($idfilm);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
 | 
			
		||||
        public function setIdfilm($idfilm){ $this->_idfilm = $idfilm; }
 | 
			
		||||
		public function getIdfilm(){ return $this->_idfilm; }
 | 
			
		||||
        
 | 
			
		||||
        public function setIdhall($idhall){ $this->_idhall = $idhall; }
 | 
			
		||||
		public function getIdhall(){ return $this->_idhall; }
 | 
			
		||||
		
 | 
			
		||||
		public function setIdcinema($cinema){ $this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setDate($date){ $this->_date = $date; }
 | 
			
		||||
		public function getDate(){ return $this->_date; }
 | 
			
		||||
 | 
			
		||||
		public function setStartTime($startTime){ $this->_startTime = $startTime; }
 | 
			
		||||
		public function getStartTime(){ return $this->_startTime; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatPrice($seatPrice){ $this->_seatPrice = $seatPrice; }
 | 
			
		||||
		public function getSeatPrice(){ return $this->_seatPrice; }
 | 
			
		||||
 | 
			
		||||
		public function setFormat($format){ $this->_format = $format; }
 | 
			
		||||
		public function getFormat(){ return $this->_format; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatsFull($bool){ $this->_seats_full = $bool; }
 | 
			
		||||
		public function getSeatsFull(){ return $this->_seats_full; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										129
									
								
								root/assets/php/includes/session.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										129
									
								
								root/assets/php/includes/session.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,129 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('session_dao.php');
 | 
			
		||||
 | 
			
		||||
    class Session{
 | 
			
		||||
 | 
			
		||||
        private $_id;          
 | 
			
		||||
        private $_idfilm;
 | 
			
		||||
        private $_idhall;
 | 
			
		||||
		private $_idcinema;			
 | 
			
		||||
        private $_date;
 | 
			
		||||
        private $_startTime;
 | 
			
		||||
        private $_seatPrice;
 | 
			
		||||
        private $_format;
 | 
			
		||||
		private $_seats_full;
 | 
			
		||||
		
 | 
			
		||||
        function __construct($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_idfilm = $idfilm;
 | 
			
		||||
            $this->_idhall = $idhall;
 | 
			
		||||
			$this->_idcinema = $idcinema;
 | 
			
		||||
            $this->_date = $date;
 | 
			
		||||
            $this->_startTime = $startTime;
 | 
			
		||||
            $this->_seatPrice = $seatPrice;
 | 
			
		||||
            $this->_format = $format;
 | 
			
		||||
			$this->_seats_full = $seats_full;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		public static function getListSessions($hall,$cinema,$date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				if($date)
 | 
			
		||||
					return $bd->getAllSessions($hall, $cinema, $date, null);
 | 
			
		||||
				else
 | 
			
		||||
					return $bd->getAllSessions($hall, $cinema, null, null);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function getListSessionsBetween2Dates($hall,$cinema,$start,$end){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				return $bd->getAllSessions($hall, $cinema, $start, $end);
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function create_session($cinema, $hall, $start, $date, $film, $price, $format){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if(!$bd->searchSessionActivesAtStartTimeAndFilmDuration($cinema, $hall, $start, $date, $film)){
 | 
			
		||||
					$bd->createSession(null,$film, $hall, $cinema, $date, $start, $price, $format);
 | 
			
		||||
					return 'Operación completada';
 | 
			
		||||
				} else 
 | 
			
		||||
					return 'La session del dia '.$date.' coincide con otra';
 | 
			
		||||
 | 
			
		||||
			} else return 'Error al conectarse a la base de datos';
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public static function edit_session($cinema, $or_hall, $or_date, $or_start, $hall, $start, $date, $film, $price, $format){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $or_hall, $or_start, $or_date)){
 | 
			
		||||
					if(!$bd->searchSession($cinema,$hall,$start,$date)){
 | 
			
		||||
						$origin = array("cinema" => $cinema,"hall" => $or_hall,"start" => $or_start,"date" => $or_date);
 | 
			
		||||
						$bd->editSession($film, $hall, $cinema, $date, $start, $price, $format, $origin);
 | 
			
		||||
						return "Se ha editado la session con exito";		
 | 
			
		||||
						
 | 
			
		||||
					}else if($or_hall == $hall && $or_start == $start && $or_date == $date){
 | 
			
		||||
						$origin = array("cinema" => $cinema,"hall" => $or_hall,"start" => $or_start,"date" => $or_date);
 | 
			
		||||
						$bd->editSession($film, $hall, $cinema, $date, $start, $price, $format, $origin);
 | 
			
		||||
						return "Se ha editado la session con exito";
 | 
			
		||||
					}else{
 | 
			
		||||
						return "Ya existe una sesion con los parametros nuevos";	
 | 
			
		||||
					}
 | 
			
		||||
				} else 
 | 
			
		||||
					return "La session a editar no existe";
 | 
			
		||||
				
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		public static function delete_session($cinema, $hall, $start, $date){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ){
 | 
			
		||||
				if($bd->searchSession($cinema, $hall, $start, $date)){
 | 
			
		||||
					$bd->deleteSession($hall, $cinema, $date, $start);
 | 
			
		||||
					return "Se ha eliminado la session con exito";						
 | 
			
		||||
				} else 
 | 
			
		||||
					return "Esta session no existe";
 | 
			
		||||
			} else return "Error al conectarse a la base de datos";	
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Esto deberia estar en film.php? seguramente
 | 
			
		||||
		public static function getThisSessionFilm($idfilm){
 | 
			
		||||
			$bd = new SessionDAO('complucine');
 | 
			
		||||
			if($bd ) {
 | 
			
		||||
				$film = $bd->filmTittle($idfilm);
 | 
			
		||||
				$film["tittle"] = str_replace('_', ' ',$film["tittle"]);
 | 
			
		||||
				return $film;
 | 
			
		||||
			}
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
 | 
			
		||||
        public function setIdfilm($idfilm){ $this->_idfilm = $idfilm; }
 | 
			
		||||
		public function getIdfilm(){ return $this->_idfilm; }
 | 
			
		||||
        
 | 
			
		||||
        public function setIdhall($idhall){ $this->_idhall = $idhall; }
 | 
			
		||||
		public function getIdhall(){ return $this->_idhall; }
 | 
			
		||||
		
 | 
			
		||||
		public function setIdcinema($cinema){ $this->_idcinema = $idcinema; }
 | 
			
		||||
		public function getIdcinema(){ return $this->_idcinema; }
 | 
			
		||||
 | 
			
		||||
		public function setDate($date){ $this->_date = $date; }
 | 
			
		||||
		public function getDate(){ return $this->_date; }
 | 
			
		||||
 | 
			
		||||
		public function setStartTime($startTime){ $this->_startTime = $startTime; }
 | 
			
		||||
		public function getStartTime(){ return $this->_startTime; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatPrice($seatPrice){ $this->_seatPrice = $seatPrice; }
 | 
			
		||||
		public function getSeatPrice(){ return $this->_seatPrice; }
 | 
			
		||||
 | 
			
		||||
		public function setFormat($format){ $this->_format = $format; }
 | 
			
		||||
		public function getFormat(){ return $this->_format; }
 | 
			
		||||
 | 
			
		||||
		public function setSeatsFull($bool){ $this->_seats_full = $bool; }
 | 
			
		||||
		public function getSeatsFull(){ return $this->_seats_full; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										154
									
								
								root/assets/php/includes/session_dao-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										154
									
								
								root/assets/php/includes/session_dao-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,154 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('session.php');
 | 
			
		||||
	
 | 
			
		||||
    class SessionDAO extends DAO {
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
		//Methods:
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Session  taking the new id,film, hall, cinema, date, start time, seat price and format saving in the database
 | 
			
		||||
		public function createSession($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);	
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `session` (`id`, `idfilm`, `idhall`, `idcinema`, `date`, `start_time`, `seat_price`, `format`, `seats_full`) 
 | 
			
		||||
				VALUES ('%d', '%d', '%d', '%d', '%s', '%s', '%d', '%s', '%d')",
 | 
			
		||||
					$id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, "0");
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the session's data.
 | 
			
		||||
		public function sessionData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `session` WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database en sessionData con la id '. $id);
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$session = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $session;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		//Look for a tittle with the id film
 | 
			
		||||
		public function filmTittle($idfilm){
 | 
			
		||||
			$sql = sprintf("SELECT * FROM film JOIN  session ON film.id = session.idfilm WHERE session.idfilm = '%d' ", $idfilm );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database en sessionData con la id '. $idfilm);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		//Look for a session with the primary key 
 | 
			
		||||
		public function searchSession($cinema, $hall, $startTime, $date){
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$session = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $session;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get all the session's data.
 | 
			
		||||
		public function getAllSessions($hall, $cinema, $date, $end){
 | 
			
		||||
			if($end){
 | 
			
		||||
  
 | 
			
		||||
				$date = $date->format("Y-m-d"); 
 | 
			
		||||
				$end = $end->format("Y-m-d");  
 | 
			
		||||
				
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date BETWEEN '%s' AND '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall, $date, $end);				
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			
 | 
			
		||||
			if($date && !$end){
 | 
			
		||||
				$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
				
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date = '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall, $date);	
 | 
			
		||||
			}else{
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall);	
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
			
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Look for a title and cinema
 | 
			
		||||
		public function getSessions_Film_Cinema($idFiml, $idCinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE session.idfilm = '%d' AND session.idcinema = '%d' ", $idFiml, $idCinema);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a session taking the new film, hall, date, start time, seat price and format with respect to its origin parameter
 | 
			
		||||
        public function editSession($idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
            $sql = sprintf( "UPDATE `session`
 | 
			
		||||
                             SET `idfilm` = '%d' , `idhall` = '%d', `idcinema` = '%d', `date` = '%s',
 | 
			
		||||
                                  `start_time` = '%s', `seat_price` = '%d', `format` = '%s'
 | 
			
		||||
                             WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
                $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin["cinema"],$origin["hall"],$origin["date"],$origin["start"]);
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Delete a session whit the primary key
 | 
			
		||||
        public function deleteSession($hall, $cinema, $date, $startTime){
 | 
			
		||||
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `session` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Session Data Transfer Object.
 | 
			
		||||
		public function loadSession( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
			return new Session( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										175
									
								
								root/assets/php/includes/session_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										175
									
								
								root/assets/php/includes/session_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,175 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('session.php');
 | 
			
		||||
	
 | 
			
		||||
    class SessionDAO extends DAO {
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Session  taking the new id,film, hall, cinema, date, start time, seat price and format saving in the database
 | 
			
		||||
		public function createSession($id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);	
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "INSERT INTO `session` (`id`, `idfilm`, `idhall`, `idcinema`, `date`, `start_time`, `seat_price`, `format`, `seats_full`) 
 | 
			
		||||
				VALUES ('%d', '%d', '%d', '%d', '%s', '%s', '%d', '%s', '%d')",
 | 
			
		||||
					$id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, "0");
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error createSession');
 | 
			
		||||
			
 | 
			
		||||
			return $sql;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the session's data.
 | 
			
		||||
		public function sessionData($id){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `session` WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error accessing to the session with id '. $id);
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$session = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $session;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		//Look for a film with the id film
 | 
			
		||||
		public function filmTittle($idfilm){
 | 
			
		||||
			$sql = sprintf("SELECT * FROM film JOIN  session ON film.id = session.idfilm WHERE session.idfilm = '%d' ", $idfilm );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error accessing to the film with id '. $idfilm);
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}	
 | 
			
		||||
		
 | 
			
		||||
		//Look for a session with the primary key 
 | 
			
		||||
		public function searchSession($cinema, $hall, $startTime, $date){
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error searching for a session');
 | 
			
		||||
			
 | 
			
		||||
			$session = mysqli_fetch_array($resul);
 | 
			
		||||
			
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $session;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		public function searchSessionActivesAtStartTimeAndFilmDuration($cinema, $hall, $startTime, $date, $idfilm){
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			$sessions = [];
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf("SELECT duration FROM film WHERE id='%s'", $idfilm );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error looking for the film duration of id '. $idfilm);
 | 
			
		||||
			
 | 
			
		||||
			$duration = ($resul->fetch_assoc())["duration"]+10;
 | 
			
		||||
			$endHour = date('H:i:s', strtotime( $startTime . ' +'.$duration.' minute'));
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
					idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time BETWEEN '%s' AND '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
					$cinema, $hall, $date, $startTime, $endHour);	
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error looking for sessions between start time and start time + film duration');
 | 
			
		||||
			
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		
 | 
			
		||||
		//Returns a query to get all the session's data.
 | 
			
		||||
		public function getAllSessions($hall, $cinema, $date, $end){
 | 
			
		||||
			if($end){
 | 
			
		||||
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date BETWEEN '%s' AND '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall, $date, $end);	
 | 
			
		||||
			}else if($date && !$end){
 | 
			
		||||
				$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
				
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND date = '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall, $date);	
 | 
			
		||||
			}else{
 | 
			
		||||
				$sql = sprintf( "SELECT * FROM session WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' ORDER BY start_time ASC;", 
 | 
			
		||||
								$cinema, $hall);	
 | 
			
		||||
			}
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error geting all sessions');
 | 
			
		||||
			
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Look for a title and cinema
 | 
			
		||||
		public function getSessions_Film_Cinema($idFiml, $idCinema){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM session WHERE session.idfilm = '%d' AND session.idcinema = '%d' ", $idFiml, $idCinema);
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error geting sessions with a idfilm and cinema');
 | 
			
		||||
 | 
			
		||||
			$sessions = null;
 | 
			
		||||
			while($fila = $resul->fetch_assoc()){
 | 
			
		||||
				$sessions[] = $this->loadSession($fila["id"], $fila["idfilm"], $fila["idhall"], $fila["idcinema"], $fila["date"], $fila["start_time"], $fila["seat_price"], $fila["format"], $fila["seats_full"]);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $sessions;
 | 
			
		||||
		}
 | 
			
		||||
		
 | 
			
		||||
		//Edit a session taking the new film, hall, date, start time, seat price and format with respect to its origin parameter
 | 
			
		||||
        public function editSession($idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin){
 | 
			
		||||
			$format = $this->mysqli->real_escape_string($format);
 | 
			
		||||
			$date = date('Y-m-d', strtotime( $date ) ); 
 | 
			
		||||
			$origin["date"] = date('Y-m-d', strtotime( $origin["date"] ) ); 
 | 
			
		||||
			$startTime = date('H:i:s', strtotime( $startTime ) );
 | 
			
		||||
			$origin["start"] = date('H:i:s', strtotime( $origin["start"] ) ); 
 | 
			
		||||
			
 | 
			
		||||
            $sql = sprintf( "UPDATE `session`
 | 
			
		||||
                             SET `idfilm` = '%d' , `idhall` = '%d', `idcinema` = '%d', `date` = '%s',
 | 
			
		||||
                                  `start_time` = '%s', `seat_price` = '%d', `format` = '%s'
 | 
			
		||||
                             WHERE 
 | 
			
		||||
								idcinema = '%s' AND idhall = '%s' AND session.date = '%s' AND start_time = '%s'", 
 | 
			
		||||
                $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $origin["cinema"],$origin["hall"],$origin["date"],$origin["start"]);
 | 
			
		||||
			
 | 
			
		||||
 | 
			
		||||
			mysqli_query($this->mysqli, $sql) or die ('Error editing a session');
 | 
			
		||||
			
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Delete a session whit the primary key
 | 
			
		||||
        public function deleteSession($hall, $cinema, $date, $startTime){
 | 
			
		||||
 | 
			
		||||
            $sql = sprintf( "DELETE FROM `session` WHERE 
 | 
			
		||||
							idcinema = '%s' AND idhall = '%s' AND date = '%s' AND start_time = '%s'", 
 | 
			
		||||
							$cinema, $hall, $date, $startTime);	
 | 
			
		||||
 | 
			
		||||
            $resul = mysqli_query($this->mysqli, $sql) or die ('Error deleting a session');
 | 
			
		||||
 | 
			
		||||
            return $resul;
 | 
			
		||||
        }
 | 
			
		||||
		
 | 
			
		||||
		//Create a new Session Data Transfer Object.
 | 
			
		||||
		public function loadSession( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full){
 | 
			
		||||
			return new Session( $id, $idfilm, $idhall, $idcinema, $date, $startTime, $seatPrice, $format, $seats_full);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										35
									
								
								root/assets/php/includes/user.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								root/assets/php/includes/user.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
			
		||||
<?php   
 | 
			
		||||
    class User {
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
        private $_id;           //User Id.
 | 
			
		||||
        private $_username;     //User name.
 | 
			
		||||
        private $_email;        //User email.
 | 
			
		||||
        private $_password;     //User password.
 | 
			
		||||
        private $_rol;          //Type of user: user | manager | admin.
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($id, $username, $email, $password, $rol){
 | 
			
		||||
            $this->_id = $id;
 | 
			
		||||
            $this->_username = $username;
 | 
			
		||||
            $this->_email = $email;
 | 
			
		||||
            $this->_password = $password;
 | 
			
		||||
            $this->_rol = $rol;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
		//Getters && Setters:
 | 
			
		||||
        public function setId($id){	$this->_id = $id; }
 | 
			
		||||
		public function getId(){ return $this->_id; }
 | 
			
		||||
		public function setName($username){ $this->_username = $username; }
 | 
			
		||||
		public function getName(){ return $this->_username; }
 | 
			
		||||
        public function setEmail($email){ $this->_email = $email; }
 | 
			
		||||
		public function getEmail(){ return $this->_email; }
 | 
			
		||||
		public function setPass($passwd){	$this->_password = $passwd; }
 | 
			
		||||
		public function getPass(){ return $this->_password; }
 | 
			
		||||
        public function setRol($rol){ $this->_rol = $rol; }
 | 
			
		||||
		public function getRol(){ return $this->_rol; }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										176
									
								
								root/assets/php/includes/user_dao.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										176
									
								
								root/assets/php/includes/user_dao.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,176 @@
 | 
			
		||||
<?php
 | 
			
		||||
	include_once('user.php');
 | 
			
		||||
 | 
			
		||||
    class UserDAO extends DAO {
 | 
			
		||||
		
 | 
			
		||||
		//Constants:
 | 
			
		||||
		private const _USER = "user";
 | 
			
		||||
		private const _MANAGER = "manager";
 | 
			
		||||
		private const _ADMIN = "admin";
 | 
			
		||||
 | 
			
		||||
        //Attributes:
 | 
			
		||||
 | 
			
		||||
		//Constructor:
 | 
			
		||||
        function __construct($bd_name){
 | 
			
		||||
			parent::__construct($bd_name);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
		//Methods:
 | 
			
		||||
 | 
			
		||||
        //Encrypt password with SHA254.
 | 
			
		||||
		private function encryptPass($password){
 | 
			
		||||
			/**
 | 
			
		||||
			 *  Por defecto, la función password_hash(), ya genera una contraseña con "SAL", 
 | 
			
		||||
			 * aunque este sería un ejemplo de cómo crear unas opciones mejores que las que vienen por defecto,
 | 
			
		||||
			 * aumentando el coste.
 | 
			
		||||
			 * Más info: https://www.php.net/manual/es/faq.passwords.php#faq.passwords.salt
 | 
			
		||||
			 * */
 | 
			
		||||
			/*
 | 
			
		||||
			$SALAD = [
 | 
			
		||||
				'cost' => 11, //Por defecto password_hash lo pone a 10.
 | 
			
		||||
				'salt' => mcrypt_create_iv(22, MCRYPT_DEV_URANDOM), //Hay que tener activado el módulo mcrypt para usar esta función.
 | 
			
		||||
			];
 | 
			
		||||
			*/
 | 
			
		||||
 | 
			
		||||
			$password = password_hash($password, PASSWORD_DEFAULT); //Actualmente en PHP PASSWORD_DEFAULT equivale a PASSWORD_BCRYPT.
 | 
			
		||||
		
 | 
			
		||||
			return $password;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns true if the password and hash match, or false otherwise.
 | 
			
		||||
		public function verifyPass($password, $passwd){
 | 
			
		||||
			return password_verify($password, $passwd);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
		//All users
 | 
			
		||||
		public function allUsersNotM(){
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM `users` WHERE users.id NOT IN (SELECT id FROM `manager`)");
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			while($fila=$resul->fetch_assoc()){
 | 
			
		||||
				$users[] = $this->loadUser($fila['id'], $fila['username'], $fila['email'], $fila['passwd'], $fila['rol']);
 | 
			
		||||
			}
 | 
			
		||||
			$resul->free();
 | 
			
		||||
			return $users;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
        //Create a new User.
 | 
			
		||||
		public function createUser($id, $username, $email, $password, $rol){
 | 
			
		||||
			$password = $this->encryptPass($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "INSERT INTO users ( id, username, email, passwd, rol) 
 | 
			
		||||
								VALUES ( '%d', '%s', '%s', '%s', '%s')", 
 | 
			
		||||
									$id, $username, $email, $password, $rol );
 | 
			
		||||
			
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to check if the user name exists.
 | 
			
		||||
		public function selectUser($username, $password){
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
			$password = $this->mysqli->real_escape_string($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE username = '%s'", $username );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			$user = null;
 | 
			
		||||
			while ($fila = $resul->fetch_assoc()) {
 | 
			
		||||
				if($username === $fila['username'] && $this->verifyPass($password, $fila['passwd'])){
 | 
			
		||||
					$user = $this->loadUser($fila['id'], $fila['username'], $fila['email'], $fila['passwd'], $fila['rol']);
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			mysqli_free_result($resul);
 | 
			
		||||
			//$resul->free();
 | 
			
		||||
 | 
			
		||||
			return $user;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Returns a query to get the user's data.
 | 
			
		||||
		public function userData($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Search a user by name.
 | 
			
		||||
		public function selectUserName($username){
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE username = '%s'", $username );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Search a user by email.
 | 
			
		||||
		public function selectUserEmail($email){
 | 
			
		||||
			$email = $this->mysqli->real_escape_string($email);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "SELECT * FROM users WHERE email = '%s'", $email );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql);
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change username by id.
 | 
			
		||||
		public function changeUserName($id, $username){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$username = $this->mysqli->real_escape_string($username);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET username = '%s' WHERE id = '%d'", $username, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change userpass by id.
 | 
			
		||||
		public function changeUserPass($id, $password){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$password = $this->mysqli->real_escape_string($password);
 | 
			
		||||
			$password = $this->encryptPass($password);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET passwd = '%s' WHERE id = '%d'", $password, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Change user email by id.
 | 
			
		||||
		public function changeUserEmail($id, $email){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
			$email = $this->mysqli->real_escape_string($email);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "UPDATE users SET email = '%s' WHERE id = '%d'", $email, $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Delete user account by id.
 | 
			
		||||
		public function deleteUserAccount($id){
 | 
			
		||||
			$id = $this->mysqli->real_escape_string($id);
 | 
			
		||||
 | 
			
		||||
			$sql = sprintf( "DELETE FROM users WHERE id = '%d'", $id );
 | 
			
		||||
			$resul = mysqli_query($this->mysqli, $sql) or die ('Error into query database');
 | 
			
		||||
 | 
			
		||||
			return $resul;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		//Create a new User Data Transfer Object.
 | 
			
		||||
		public function loadUser($id, $username, $email, $password, $rol){
 | 
			
		||||
			return new User($id, $username, $email, $password, $rol);
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										710
									
								
								root/assets/php/template-FER_SURFACE-2.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										710
									
								
								root/assets/php/template-FER_SURFACE-2.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,710 @@
 | 
			
		||||
<?php
 | 
			
		||||
    class Template {
 | 
			
		||||
 | 
			
		||||
    //Constants:
 | 
			
		||||
    //private const _NUMPAGES = 10; //Constant to page results.
 | 
			
		||||
 | 
			
		||||
    //Attributes:
 | 
			
		||||
    private $page;                  //Page Name.
 | 
			
		||||
    private $prefix;                //Page prefix.
 | 
			
		||||
 | 
			
		||||
    private $session;               //"Iniciar Sesión" (if user isn´t logged in), "Cerrar Sesión" (otherwise).
 | 
			
		||||
    private $session_route;         //"login/" (if user isn´t logged in), "logout/" (otherwise).
 | 
			
		||||
    private $panel;                 //Button to access the user's dashboard (only displayed if logged in).
 | 
			
		||||
    private $user_route;            //Route of the panel (depends on the type of user).
 | 
			
		||||
    private $sessionButtonClass;    //Type of button to login or logout.
 | 
			
		||||
 | 
			
		||||
    //Constructor:
 | 
			
		||||
    function __construct(){
 | 
			
		||||
        $this->page = $_SERVER['PHP_SELF']; //Page that instantiates the template.
 | 
			
		||||
        $this->prefix = '../';              //Default prefix.
 | 
			
		||||
 | 
			
		||||
        $this->set_page_prefix();           //Assigns the name and prefix of the page.
 | 
			
		||||
 | 
			
		||||
        $this->session = 'Iniciar Sesión';  //Default, the session has not started.
 | 
			
		||||
        $this->session_route = 'login/';    //Default, the session has not started.
 | 
			
		||||
        $this->panel = '';                  //Default, the session has not started.
 | 
			
		||||
        $this->user_route = 'panel_user/';  //Default, the type of client is user.
 | 
			
		||||
        $this->sessionButtonClass = '';     //Default, normal button.
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Methods:
 | 
			
		||||
 | 
			
		||||
    //Assigns the name and prefix of the page:
 | 
			
		||||
    private function set_page_prefix() {
 | 
			
		||||
        switch(true){
 | 
			
		||||
            case strpos($this->page, 'panel_user'): $this->page = 'Panel de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_manager'): $this->page = 'Panel de Gerente'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_admin'): $this->page = 'Panel de Administrador'; break;
 | 
			
		||||
            case strpos($this->page, 'login'): $this->page = 'Acceso'; break;
 | 
			
		||||
            case strpos($this->page, 'logout'): $this->page = 'Cerrar Sesión'; break;
 | 
			
		||||
            case strpos($this->page, 'register'): $this->page = 'Registro de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'showtimes'): $this->page = 'Cartelera'; break;
 | 
			
		||||
            case strpos($this->page, 'purchase'): $this->page = 'Comprar Entrada'; break;
 | 
			
		||||
            case strpos($this->page, 'promotions'): $this->page = 'Promociones'; break;
 | 
			
		||||
            case strpos($this->page, 'cinemas'): $this->page = 'Nuestros Cines'; break;
 | 
			
		||||
            case strpos($this->page, 'about_us'): $this->page = 'Sobre FDI-Cines'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'terms'): $this->page = 'Términos y Condiciones'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'detalles'): $this->page = 'Detalles'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'bocetos'): $this->page = 'Bocetos'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'miembros'): $this->page = 'Miembros'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'planificacion'): $this->page = 'Planificación'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'contacto'): $this->page = 'Contacto'; break;
 | 
			
		||||
            case strpos($this->page, 'assets'): $this->prefix = '../../../'; break;
 | 
			
		||||
            default: $this->page = 'FDI-Cines'; $this->prefix = './'; break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page name:
 | 
			
		||||
    function get_page(){
 | 
			
		||||
        return $this->page;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page prefix:
 | 
			
		||||
    function get_prefix(){
 | 
			
		||||
        return $this->prefix;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Head:
 | 
			
		||||
    function print_head(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        if(!isset($_SESSION["css"])) $_SESSION["css"] = "main.css";
 | 
			
		||||
 | 
			
		||||
        $extraCSS = "";
 | 
			
		||||
        if($page === "Comprar Entrada") $extraCSS = "\n<link id='estilo' rel='stylesheet' type='text/css' href='{$prefix}assets/css/seat.css'>";
 | 
			
		||||
 | 
			
		||||
        echo"<head>
 | 
			
		||||
        <title>CompluCine | {$page}</title>
 | 
			
		||||
        <meta charset='utf-8' />
 | 
			
		||||
        <link id='estilo' rel='stylesheet' type='text/css' href='{$prefix}assets/css/{$_SESSION['css']}'>{$extraCSS}
 | 
			
		||||
        <noscript><h1>Esta página requiere JavaScript para su correcto funcionamiento. 
 | 
			
		||||
            Compruebe si JavaScript está deshabilitado en su navegador.</h1></noscript>
 | 
			
		||||
        <meta name='viewport' content='width=device-width, initial-scale=1'>
 | 
			
		||||
        <link rel='icon' href='{$prefix}img/favicon.png' />
 | 
			
		||||
    </head>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Header:
 | 
			
		||||
    function print_header(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $session = $this->session;
 | 
			
		||||
        $sessionButtonClass = $this->sessionButtonClass;
 | 
			
		||||
        $session_route = $this->session_route;
 | 
			
		||||
        $user_route = $this->user_route;
 | 
			
		||||
        $panel =$this->panel;
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["rol"])){
 | 
			
		||||
            if($_SESSION["rol"] === "admin") $user_route = 'panel_admin/';
 | 
			
		||||
            else if($_SESSION["rol"] === "manager") $user_route = 'panel_manager/';
 | 
			
		||||
            $panel = "<a href='{$prefix}{$user_route}'><li>Mi Panel</li></a>";
 | 
			
		||||
            $session = 'Cerrar Sesión';
 | 
			
		||||
            $sessionButtonClass = 'danger';
 | 
			
		||||
            $session_route = 'logout/';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["lastRol"]) && ($_SESSION["lastRol"] === "admin" || $_SESSION["lastRol"] === "manager" )){
 | 
			
		||||
            $changeRol = "<a href='{$prefix}assets/php/common/resetRol.php'><li class='danger'>Volver a {$_SESSION["lastRol"]}</li></a>";
 | 
			
		||||
        } else {
 | 
			
		||||
            $changeRol = null;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        echo"<div class='header'>
 | 
			
		||||
            <a href='{$prefix}'><img src='{$prefix}img/favicon2.png' alt='favicon' /> CompluCine</a> | {$page}
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>{$changeRol}
 | 
			
		||||
                    <a href='{$prefix}{$session_route}'><li class={$sessionButtonClass}>{$session}</li></a>
 | 
			
		||||
                    {$panel}
 | 
			
		||||
                    <li>Menú
 | 
			
		||||
                        <ul>
 | 
			
		||||
                            <a href='{$prefix}'><li>Inicio</li></a>
 | 
			
		||||
                            <a href='{$prefix}showtimes/'><li>Cartelera</li></a>
 | 
			
		||||
                            <a href='{$prefix}cinemas/'><li>Nuestros Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}promotions/'><li>Promociones</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Quiénes somos</li></a>
 | 
			
		||||
                            <a href='{$prefix}contacto/'><li>Contacto</li></a>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </li>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic subHeader:
 | 
			
		||||
    function print_subheader(){
 | 
			
		||||
        //$page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        echo"<div class='header sub'>
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>
 | 
			
		||||
                    <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Main:
 | 
			
		||||
    function print_main($content = ""){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        /* SubHeader on Main */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'fdicines')){
 | 
			
		||||
            $sub_header = "<!-- Sub Header -->
 | 
			
		||||
                <div class='header sub'>
 | 
			
		||||
                    <div class='menu'>
 | 
			
		||||
                        <nav>
 | 
			
		||||
                            <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                        </nav>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>\n"; 
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* MAIN */
 | 
			
		||||
        if($prefix === "./"){ 
 | 
			
		||||
            if(isset($_SESSION["nombre"])){
 | 
			
		||||
                $tittle = "<h1>Bienvenido {$_SESSION["nombre"]}</h1>\n";
 | 
			
		||||
            } else {
 | 
			
		||||
                $tittle = "<h1>Bienvenido a CompluCine</h1>\n";
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            $tittle = "<h1>{$page}</h1>\n";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo"<main>
 | 
			
		||||
            <div class='image'><a href='{$prefix}'><img src='{$prefix}img/logo_trasparente.png' alt='logo_FDI-Cines' /></a></div>
 | 
			
		||||
            {$sub_header}
 | 
			
		||||
            {$tittle}{$content}
 | 
			
		||||
            <hr />
 | 
			
		||||
        </main>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print panel menu:
 | 
			
		||||
    function print_panelMenu($panel){
 | 
			
		||||
        if($_SESSION["login"]){
 | 
			
		||||
            $prefix = $this->prefix;
 | 
			
		||||
            $menus = array("<a href='./'><li>Panel Principal</li></a>");
 | 
			
		||||
 | 
			
		||||
            switch($panel){
 | 
			
		||||
                case "admin": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=un'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=ur'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                            <a href='./?state=ag'><li>Gerente</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=mc'><li>Cines</li></a>
 | 
			
		||||
                                                            <a href='./?state=mf'><li>Películas</li></a>
 | 
			
		||||
                                                            <a href='./?state=mp'><li>Promociones</li></a>
 | 
			
		||||
                                                            <a href='./?state=mg'><li>Gerentes</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "manager": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=view_user'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=view_ruser'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=manage_halls'><li>Salas</li></a>
 | 
			
		||||
                                                            <a href='./?state=manage_sessions'><li>Sesiones</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "user": array_push($menus, "<a href='./?option=purchases'><li>Historial Compras</li></a>");
 | 
			
		||||
                                //array_push($menus, "<a href='./?option=payment'><li>Datos Pago</li></a>");
 | 
			
		||||
                                    array_push($menus, "<a href='./?option=delete_user'><li>Eliminar Usuario</li></a>");
 | 
			
		||||
                                        break;
 | 
			
		||||
 | 
			
		||||
                default: $menus = array(); break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if($_SESSION["rol"] === $panel){
 | 
			
		||||
                echo"<div class='header sub'>
 | 
			
		||||
                <div class='menu'>
 | 
			
		||||
                    <nav>";
 | 
			
		||||
                    foreach($menus as $value){
 | 
			
		||||
                        echo $value;
 | 
			
		||||
                    }  
 | 
			
		||||
                    echo"</nav>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        ";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print specific page content:
 | 
			
		||||
    function print_section($section){
 | 
			
		||||
        /* Panel menu */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'panel')){
 | 
			
		||||
            echo "<!-- Panel Menu -->
 | 
			
		||||
            ";
 | 
			
		||||
            $this->print_panelMenu($_SESSION["rol"]);
 | 
			
		||||
            $this->print_msg();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo $section;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Films Cards:
 | 
			
		||||
    function print_fimls(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
        //List of the movies:
 | 
			
		||||
        require_once(__DIR__.'/includes/film_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $films = new Film_DAO("complucine");
 | 
			
		||||
        $films_array = $films->allFilmData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $times = array();
 | 
			
		||||
        $languages = array();
 | 
			
		||||
        $images = array();
 | 
			
		||||
        if(is_array($films_array)){
 | 
			
		||||
            foreach($films_array as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $times[$key] = $value->getDuration();
 | 
			
		||||
                $languages[$key] = $value->getLanguage();
 | 
			
		||||
                $images[$key] = $value->getImg();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Cartelera": 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?film=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Editar' name='edit_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Eliminar' name='delete_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";                
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
			case "Panel de Gerente":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                
 | 
			
		||||
								<form method='post' action='./?state=".$_SESSION["option"]."'>
 | 
			
		||||
									<input name='film' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
									<input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
									<input name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
									<input name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
									<input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
									<input name='hall' type='hidden' value='".$_POST["hall"]."'>
 | 
			
		||||
									<input name='date' type='hidden' value='".$_POST["date"]."'>
 | 
			
		||||
									<input name='start' type='hidden' value='".$_POST["start"]."'>	
 | 
			
		||||
									<input name='price' type='hidden' value='".$_POST["price"]."'>
 | 
			
		||||
									<input name='format' type='hidden' value='".$_POST["format"]."'>
 | 
			
		||||
									<input name='or_hall' type='hidden' value='".$_POST["or_hall"]."'>
 | 
			
		||||
									<input name='or_date' type='hidden' value='".$_POST["or_date"]."'>
 | 
			
		||||
									<input name='or_start' type='hidden' value='".$_POST["or_start"]."'>
 | 
			
		||||
									<input type='submit' id='submit' value='Seleccionar' name='select_film' class='primary' />
 | 
			
		||||
								</form>
 | 
			
		||||
								</div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n"; 
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
            default: 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                    $reply .='<div class="column left">
 | 
			
		||||
                         <div class="galery">
 | 
			
		||||
                            <h1>Últimos Estrenos</h1><hr />';
 | 
			
		||||
                    $count = 0;
 | 
			
		||||
                    for($i = count($tittles)-4; $i < count($tittles); $i++){
 | 
			
		||||
                        if($count%2===0){
 | 
			
		||||
                            if($count != 0) $reply .= "
 | 
			
		||||
                            </div>";
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                            <div class='fila'>";
 | 
			
		||||
                        }
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                                <div class='zoom'>
 | 
			
		||||
                                    <div class='columna'>
 | 
			
		||||
                                        <a href='".$prefix."showtimes/#".$tittles[$i]."'><div class='image'><img src='img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div></a>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>";
 | 
			
		||||
                        $count++;
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class='column right'>
 | 
			
		||||
                        <div class='galery'>";
 | 
			
		||||
                    $count = rand(0, count($tittles)-1);
 | 
			
		||||
                    $title = str_replace('_', ' ', $tittles[$count]); 
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            <h1>{$title}</h1><hr />
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."showtimes/#".$tittles[$count]."'><div class='image main'><img src='img/films/".$images[$count]."' alt='".$tittles[$count]."' /></div></a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>\n";
 | 
			
		||||
                }
 | 
			
		||||
                    break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Cinemas info:
 | 
			
		||||
    function print_cinemas(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/cinema_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $cine = new Cinema_DAO("complucine");
 | 
			
		||||
        $cinemas = $cine->allCinemaData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $names = array();
 | 
			
		||||
        $directions = array();
 | 
			
		||||
        $phones = array();
 | 
			
		||||
 | 
			
		||||
        if(!is_array($cinemas)){
 | 
			
		||||
            $reply = "<h2>No hay cines actualmente</h2>";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            foreach($cinemas as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $names[$key] = $value->getName();
 | 
			
		||||
                $directions[$key] = $value->getDirection();
 | 
			
		||||
                $phones[$key] = $value->getPhone();
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Nuestros Cines":
 | 
			
		||||
 | 
			
		||||
                for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$names[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?cinema=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code cinemas'>
 | 
			
		||||
                                    <h2>".$names[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <li>Dirección: ".$directions[$i]."</li>
 | 
			
		||||
                                    <li>Teléfono: ".$phones[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                    $reply .= "<div class='row'>
 | 
			
		||||
                            <ul class='tablelist col6'> 
 | 
			
		||||
                                <li class='title'>Id</li>
 | 
			
		||||
                                <li class='title'>Nombre</li>
 | 
			
		||||
                                <li class='title'>Dirección</li>
 | 
			
		||||
                                <li class='title'>Teléfono</li>
 | 
			
		||||
                                <li class='title'>Editar</li>
 | 
			
		||||
                                <li class='title'>Eliminar</li>
 | 
			
		||||
                            ";
 | 
			
		||||
                        $parity = "odd";
 | 
			
		||||
                        for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                            $reply .= '
 | 
			
		||||
                                    <div class="'.$parity.'">
 | 
			
		||||
                                    <a class="h2long" href="index.php?state=mc&cinema='.$ids[$i].'">
 | 
			
		||||
                                        <li>'. $ids[$i] .'</li>
 | 
			
		||||
                                        <li>'. $names[$i] .'</li>
 | 
			
		||||
                                        <li>'. $directions[$i] .'</li>
 | 
			
		||||
                                        <li>'. $phones[$i] .'</li>
 | 
			
		||||
                                    </a>
 | 
			
		||||
                                        <li>
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Editar" name="edit_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                        <li> 
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Eliminar" name="delete_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                </div>
 | 
			
		||||
                                '; 
 | 
			
		||||
                                $parity = ($parity == "odd") ? "even" : "odd";
 | 
			
		||||
                        } 
 | 
			
		||||
                    $reply .=' </div>';
 | 
			
		||||
                break;
 | 
			
		||||
            
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
         }
 | 
			
		||||
        }
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function print_promotions(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/promotion_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $promotion = new Promotion_DAO("complucine");
 | 
			
		||||
        $promotions = $promotion->allPromotionData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $codes = array();
 | 
			
		||||
        $isActive = array();
 | 
			
		||||
 | 
			
		||||
        if(is_array($promotions)){
 | 
			
		||||
            foreach($promotions as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $codes[$key] = $value->getCode();
 | 
			
		||||
                if($value->getActive()){
 | 
			
		||||
                    $isActives[$key] = "ACTIVA";
 | 
			
		||||
                } else {
 | 
			
		||||
                    $isActives[$key] = "CADUCADA";
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Promociones":
 | 
			
		||||
                for($i = 0; $i < count($promotions); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code promo'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/promos/".str_replace(' ', '_', strtolower($tittles[$i])).".jpg' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittles[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Código: ".$codes[$i]."</li>
 | 
			
		||||
                                    <li>Estado: ".$isActives[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print session MSG:
 | 
			
		||||
    function print_msg() {
 | 
			
		||||
        if(isset($_SESSION['message'])){
 | 
			
		||||
            echo "<div>".$_SESSION['message']."</div>";
 | 
			
		||||
            unset($_SESSION['message']);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Footer:
 | 
			
		||||
    function print_footer(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        
 | 
			
		||||
        if(!isset($_SESSION["css"]) || $_SESSION["css"] === "main.css"){
 | 
			
		||||
            $css = "{$prefix}assets/css/highContrast.css";
 | 
			
		||||
            $nameCSS = "Alto Contraste";
 | 
			
		||||
        } else {
 | 
			
		||||
            $css = "{$prefix}assets/css/main.css";
 | 
			
		||||
            $nameCSS = "Contraste Normal";
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        echo"<footer>
 | 
			
		||||
            <div class='footer'>
 | 
			
		||||
                <p>© Práctica Final | Sistemas Web 2021 </p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span class='go-up'>🔝</span>
 | 
			
		||||
            <a href='{$prefix}fdicines/about_us/'>Sobre FDI-Cines</a> |
 | 
			
		||||
            <a href='{$prefix}fdicines/terms_conditions/'>Términos de uso</a> |
 | 
			
		||||
            <a href='{$prefix}cinemas/'>Nuestros cines</a> |
 | 
			
		||||
            <a href='{$prefix}contacto/'>Contacto</a> |
 | 
			
		||||
            <button id='cssChange' onclick=\"cambiarCSS('$css');\">$nameCSS</button>
 | 
			
		||||
        </footer>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print JS scripts:
 | 
			
		||||
    function print_scripts(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
 | 
			
		||||
        echo"<script type='text/javascript' src='{$prefix}assets/js/jquery-3.2.1.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/cambiarCSS.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkForms.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/goUp.js'></script>
 | 
			
		||||
        ";
 | 
			
		||||
        if($page === "FDI-Cines") echo"<script type='text/javascript' src='{$prefix}assets/js/promotions.js'></script>\n";
 | 
			
		||||
        if($page === "Panel de Usuario") echo"<script type='text/javascript' src='{$prefix}assets/js/deleteConfirm.js'></script>\n";
 | 
			
		||||
        if($page === "Comprar Entrada") echo"<script type='text/javascript' src='{$prefix}assets/js/selectTicket.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkPay.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/goBack.js'></script>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										706
									
								
								root/assets/php/template-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										706
									
								
								root/assets/php/template-FER_SURFACE.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,706 @@
 | 
			
		||||
<?php
 | 
			
		||||
    class Template {
 | 
			
		||||
 | 
			
		||||
    //Constants:
 | 
			
		||||
    //private const _NUMPAGES = 10; //Constant to page results.
 | 
			
		||||
 | 
			
		||||
    //Attributes:
 | 
			
		||||
    private $page;                  //Page Name.
 | 
			
		||||
    private $prefix;                //Page prefix.
 | 
			
		||||
 | 
			
		||||
    private $session;               //"Iniciar Sesión" (if user isn´t logged in), "Cerrar Sesión" (otherwise).
 | 
			
		||||
    private $session_route;         //"login/" (if user isn´t logged in), "logout/" (otherwise).
 | 
			
		||||
    private $panel;                 //Button to access the user's dashboard (only displayed if logged in).
 | 
			
		||||
    private $user_route;            //Route of the panel (depends on the type of user).
 | 
			
		||||
    private $sessionButtonClass;    //Type of button to login or logout.
 | 
			
		||||
 | 
			
		||||
    //Constructor:
 | 
			
		||||
    function __construct(){
 | 
			
		||||
        $this->page = $_SERVER['PHP_SELF']; //Page that instantiates the template.
 | 
			
		||||
        $this->prefix = '../';              //Default prefix.
 | 
			
		||||
 | 
			
		||||
        $this->set_page_prefix();           //Assigns the name and prefix of the page.
 | 
			
		||||
 | 
			
		||||
        $this->session = 'Iniciar Sesión';  //Default, the session has not started.
 | 
			
		||||
        $this->session_route = 'login/';    //Default, the session has not started.
 | 
			
		||||
        $this->panel = '';                  //Default, the session has not started.
 | 
			
		||||
        $this->user_route = 'panel_user/';  //Default, the type of client is user.
 | 
			
		||||
        $this->sessionButtonClass = '';     //Default, normal button.
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Methods:
 | 
			
		||||
 | 
			
		||||
    //Assigns the name and prefix of the page:
 | 
			
		||||
    private function set_page_prefix() {
 | 
			
		||||
        switch(true){
 | 
			
		||||
            case strpos($this->page, 'panel_user'): $this->page = 'Panel de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_manager'): $this->page = 'Panel de Gerente'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_admin'): $this->page = 'Panel de Administrador'; break;
 | 
			
		||||
            case strpos($this->page, 'login'): $this->page = 'Acceso'; break;
 | 
			
		||||
            case strpos($this->page, 'logout'): $this->page = 'Cerrar Sesión'; break;
 | 
			
		||||
            case strpos($this->page, 'register'): $this->page = 'Registro de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'showtimes'): $this->page = 'Cartelera'; break;
 | 
			
		||||
            case strpos($this->page, 'purchase'): $this->page = 'Comprar Entrada'; break;
 | 
			
		||||
            case strpos($this->page, 'promotions'): $this->page = 'Promociones'; break;
 | 
			
		||||
            case strpos($this->page, 'cinemas'): $this->page = 'Nuestros Cines'; break;
 | 
			
		||||
            case strpos($this->page, 'about_us'): $this->page = 'Sobre FDI-Cines'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'terms'): $this->page = 'Términos y Condiciones'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'detalles'): $this->page = 'Detalles'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'bocetos'): $this->page = 'Bocetos'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'miembros'): $this->page = 'Miembros'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'planificacion'): $this->page = 'Planificación'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'contacto'): $this->page = 'Contacto'; break;
 | 
			
		||||
            case strpos($this->page, 'assets'): $this->prefix = '../../../'; break;
 | 
			
		||||
            default: $this->page = 'FDI-Cines'; $this->prefix = './'; break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page name:
 | 
			
		||||
    function get_page(){
 | 
			
		||||
        return $this->page;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page prefix:
 | 
			
		||||
    function get_prefix(){
 | 
			
		||||
        return $this->prefix;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Head:
 | 
			
		||||
    function print_head(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        echo"<head>
 | 
			
		||||
        <title>CompluCine | {$page}</title>
 | 
			
		||||
        <meta charset='utf-8' />
 | 
			
		||||
        <link id='estilo' rel='stylesheet' type='text/css' href='{$prefix}assets/css/main.css'>
 | 
			
		||||
        <noscript><h1>Esta página requiere JavaScript para su correcto funcionamiento. 
 | 
			
		||||
            Compruebe si JavaScript está deshabilitado en su navegador.</h1></noscript>
 | 
			
		||||
        <meta name='viewport' content='width=device-width, initial-scale=1'>
 | 
			
		||||
        <link rel='icon' href='{$prefix}img/favicon.png' />
 | 
			
		||||
    </head>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Header:
 | 
			
		||||
    function print_header(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $session = $this->session;
 | 
			
		||||
        $sessionButtonClass = $this->sessionButtonClass;
 | 
			
		||||
        $session_route = $this->session_route;
 | 
			
		||||
        $user_route = $this->user_route;
 | 
			
		||||
        $panel =$this->panel;
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["rol"])){
 | 
			
		||||
            if($_SESSION["rol"] === "admin") $user_route = 'panel_admin/';
 | 
			
		||||
            else if($_SESSION["rol"] === "manager") $user_route = 'panel_manager/';
 | 
			
		||||
            $panel = "<a href='{$prefix}{$user_route}'><li>Mi Panel</li></a>";
 | 
			
		||||
            $session = 'Cerrar Sesión';
 | 
			
		||||
            $sessionButtonClass = 'danger';
 | 
			
		||||
            $session_route = 'logout/';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["lastRol"]) && ($_SESSION["lastRol"] === "admin" || $_SESSION["lastRol"] === "manager" )){
 | 
			
		||||
            $changeRol = "<a href='{$prefix}assets/php/common/resetRol.php'><li class='danger'>Volver a {$_SESSION["lastRol"]}</li></a>";
 | 
			
		||||
        } else {
 | 
			
		||||
            $changeRol = null;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        echo"<div class='header'>
 | 
			
		||||
            <a href='{$prefix}'><img src='{$prefix}img/favicon2.png' alt='favicon' /> CompluCine</a> | {$page}
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>{$changeRol}
 | 
			
		||||
                    <a href='{$prefix}{$session_route}'><li class={$sessionButtonClass}>{$session}</li></a>
 | 
			
		||||
                    {$panel}
 | 
			
		||||
                    <li>Menú
 | 
			
		||||
                        <ul>
 | 
			
		||||
                            <a href='{$prefix}'><li>Inicio</li></a>
 | 
			
		||||
                            <a href='{$prefix}showtimes/'><li>Cartelera</li></a>
 | 
			
		||||
                            <a href='{$prefix}promotions/'><li>Promociones</li></a>
 | 
			
		||||
                            <a href='{$prefix}cinemas/'><li>Nuestros Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Quiénes somos</li></a>
 | 
			
		||||
                            <a href='{$prefix}contacto/'><li>Contacto</li></a>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </li>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic subHeader:
 | 
			
		||||
    function print_subheader(){
 | 
			
		||||
        //$page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        echo"<div class='header sub'>
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>
 | 
			
		||||
                    <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Main:
 | 
			
		||||
    function print_main($content = ""){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        /* SubHeader on Main */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'fdicines')){
 | 
			
		||||
            $sub_header = "<!-- Sub Header -->
 | 
			
		||||
                <div class='header sub'>
 | 
			
		||||
                    <div class='menu'>
 | 
			
		||||
                        <nav>
 | 
			
		||||
                            <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                        </nav>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>\n"; 
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* MAIN */
 | 
			
		||||
        if($prefix === "./"){ 
 | 
			
		||||
            if(isset($_SESSION["nombre"])){
 | 
			
		||||
                $tittle = "<h1>Bienvenido {$_SESSION["nombre"]}</h1>\n";
 | 
			
		||||
            } else {
 | 
			
		||||
                $tittle = "<h1>Bienvenido a CompluCine</h1>\n";
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            $tittle = "<h1>{$page}</h1>\n";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo"<main>
 | 
			
		||||
            <div class='image'><a href='{$prefix}'><img src='{$prefix}img/logo_trasparente.png' alt='logo_FDI-Cines' /></a></div>
 | 
			
		||||
            {$sub_header}
 | 
			
		||||
            {$tittle}{$content}
 | 
			
		||||
            <hr />
 | 
			
		||||
        </main>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print panel menu:
 | 
			
		||||
    function print_panelMenu($panel){
 | 
			
		||||
        if($_SESSION["login"]){
 | 
			
		||||
            $prefix = $this->prefix;
 | 
			
		||||
            $menus = array("<a href='./'><li>Panel Principal</li></a>");
 | 
			
		||||
 | 
			
		||||
            switch($panel){
 | 
			
		||||
                case "admin": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=un'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=ur'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                            <a href='./?state=ag'><li>Gerente</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=mc'><li>Cines</li></a>
 | 
			
		||||
                                                            <a href='./?state=mf'><li>Películas</li></a>
 | 
			
		||||
                                                            <a href='./?state=mp'><li>Promociones</li></a>
 | 
			
		||||
                                                            <a href='./?state=mg'><li>Gerentes</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "manager": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=view_user'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=view_ruser'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=manage_halls'><li>Salas</li></a>
 | 
			
		||||
                                                            <a href='./?state=manage_sessions'><li>Sesiones</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "user": array_push($menus, "<a href='./?option=purchases'><li>Historial Compras</li></a>");
 | 
			
		||||
                                array_push($menus, "<a href='./?option=payment'><li>Datos Pago</li></a>");
 | 
			
		||||
                                    array_push($menus, "<a href='./?option=delete_user'><li>Eliminar Usuario</li></a>");
 | 
			
		||||
                                        break;
 | 
			
		||||
 | 
			
		||||
                default: $menus = array(); break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if($_SESSION["rol"] === $panel){
 | 
			
		||||
                echo"<div class='header sub'>
 | 
			
		||||
                <div class='menu'>
 | 
			
		||||
                    <nav>";
 | 
			
		||||
                    foreach($menus as $value){
 | 
			
		||||
                        echo $value;
 | 
			
		||||
                    }  
 | 
			
		||||
                    echo"</nav>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        ";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print specific page content:
 | 
			
		||||
    function print_section($section){
 | 
			
		||||
        /* Panel menu */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'panel')){
 | 
			
		||||
            echo "<!-- Panel Menu -->
 | 
			
		||||
            ";
 | 
			
		||||
            $this->print_panelMenu($_SESSION["rol"]);
 | 
			
		||||
            $this->print_msg();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo $section;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Films Cards:
 | 
			
		||||
    function print_fimls(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
        //List of the movies:
 | 
			
		||||
        require_once(__DIR__.'/includes/film_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $films = new Film_DAO("complucine");
 | 
			
		||||
        $films_array = $films->allFilmData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $times = array();
 | 
			
		||||
        $languages = array();
 | 
			
		||||
        $images = array();
 | 
			
		||||
        if(is_array($films_array)){
 | 
			
		||||
            foreach($films_array as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $times[$key] = $value->getDuration();
 | 
			
		||||
                $languages[$key] = $value->getLanguage();
 | 
			
		||||
                $images[$key] = $value->getImg();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Cartelera": 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?film=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Editar' name='edit_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Eliminar' name='delete_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";                
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
			case "Panel de Gerente":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                
 | 
			
		||||
								<form method='post' action='./?state=".$_SESSION["option"]."'>
 | 
			
		||||
									<input name='film' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
									<input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
									<input name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
									<input name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
									<input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
									<input name='hall' type='hidden' value='".$_POST["hall"]."'>
 | 
			
		||||
									<input name='date' type='hidden' value='".$_POST["date"]."'>
 | 
			
		||||
									<input name='start' type='hidden' value='".$_POST["start"]."'>	
 | 
			
		||||
									<input name='price' type='hidden' value='".$_POST["price"]."'>
 | 
			
		||||
									<input name='format' type='hidden' value='".$_POST["format"]."'>
 | 
			
		||||
									<input name='or_hall' type='hidden' value='".$_POST["or_hall"]."'>
 | 
			
		||||
									<input name='or_date' type='hidden' value='".$_POST["or_date"]."'>
 | 
			
		||||
									<input name='or_start' type='hidden' value='".$_POST["or_start"]."'>
 | 
			
		||||
									<input type='submit' id='submit' value='Seleccionar' name='select_film' class='primary' />
 | 
			
		||||
								</form>
 | 
			
		||||
								</div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n"; 
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
            default: 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                    $reply .='<div class="column left">
 | 
			
		||||
                         <div class="galery">
 | 
			
		||||
                            <h1>Últimos Estrenos</h1><hr />';
 | 
			
		||||
                    $count = 0;
 | 
			
		||||
                    for($i = count($tittles)-4; $i < count($tittles); $i++){
 | 
			
		||||
                        if($count%2===0){
 | 
			
		||||
                            if($count != 0) $reply .= "
 | 
			
		||||
                            </div>";
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                            <div class='fila'>";
 | 
			
		||||
                        }
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                                <div class='zoom'>
 | 
			
		||||
                                    <div class='columna'>
 | 
			
		||||
                                        <a href='".$prefix."showtimes/#".$tittles[$i]."'><div class='image'><img src='img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div></a>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>";
 | 
			
		||||
                        $count++;
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class='column right'>
 | 
			
		||||
                        <div class='galery'>";
 | 
			
		||||
                    $count = rand(0, count($tittles)-1);
 | 
			
		||||
                    $title = str_replace('_', ' ', $tittles[$count]); 
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            <h1>{$title}</h1><hr />
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."showtimes/#".$tittles[$count]."'><div class='image main'><img src='img/films/".$images[$count]."' alt='".$tittles[$count]."' /></div></a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>\n";
 | 
			
		||||
                }
 | 
			
		||||
                    break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Cinemas info:
 | 
			
		||||
    function print_cinemas(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/cinema_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $cine = new Cinema_DAO("complucine");
 | 
			
		||||
        $cinemas = $cine->allCinemaData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $names = array();
 | 
			
		||||
        $directions = array();
 | 
			
		||||
        $phones = array();
 | 
			
		||||
 | 
			
		||||
        if(!is_array($cinemas)){
 | 
			
		||||
            $reply = "<h2>No hay cines actualmente</h2>";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            foreach($cinemas as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $names[$key] = $value->getName();
 | 
			
		||||
                $directions[$key] = $value->getDirection();
 | 
			
		||||
                $phones[$key] = $value->getPhone();
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Nuestros Cines":
 | 
			
		||||
 | 
			
		||||
                for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$names[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?cinema=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code cinemas'>
 | 
			
		||||
                                    <h2>".$names[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <li>Dirección: ".$directions[$i]."</li>
 | 
			
		||||
                                    <li>Teléfono: ".$phones[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                    $reply .= "<div class='row'>
 | 
			
		||||
                            <ul class='tablelist col6'> 
 | 
			
		||||
                                <li class='title'>Id</li>
 | 
			
		||||
                                <li class='title'>Nombre</li>
 | 
			
		||||
                                <li class='title'>Dirección</li>
 | 
			
		||||
                                <li class='title'>Teléfono</li>
 | 
			
		||||
                                <li class='title'>Editar</li>
 | 
			
		||||
                                <li class='title'>Eliminar</li>
 | 
			
		||||
                            ";
 | 
			
		||||
                        $parity = "odd";
 | 
			
		||||
                        for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                            $reply .= '
 | 
			
		||||
                                    <div class="'.$parity.'">
 | 
			
		||||
                                    <a class="h2long" href="index.php?state=mc&cinema='.$ids[$i].'">
 | 
			
		||||
                                        <li>'. $ids[$i] .'</li>
 | 
			
		||||
                                        <li>'. $names[$i] .'</li>
 | 
			
		||||
                                        <li>'. $directions[$i] .'</li>
 | 
			
		||||
                                        <li>'. $phones[$i] .'</li>
 | 
			
		||||
                                    </a>
 | 
			
		||||
                                        <li>
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Editar" name="edit_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                        <li> 
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Eliminar" name="delete_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                </div>
 | 
			
		||||
                                '; 
 | 
			
		||||
                                $parity = ($parity == "odd") ? "even" : "odd";
 | 
			
		||||
                        } 
 | 
			
		||||
                    $reply .=' </div>';
 | 
			
		||||
                break;
 | 
			
		||||
            
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
         }
 | 
			
		||||
        }
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function print_promotions(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/promotion_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $promotion = new Promotion_DAO("complucine");
 | 
			
		||||
        $promotions = $promotion->allPromotionData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $codes = array();
 | 
			
		||||
        $isActive = array();
 | 
			
		||||
 | 
			
		||||
        if(is_array($promotions)){
 | 
			
		||||
            foreach($promotions as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $codes[$key] = $value->getCode();
 | 
			
		||||
                if($value->getActive()){
 | 
			
		||||
                    $isActives[$key] = "ACTIVA";
 | 
			
		||||
                } else {
 | 
			
		||||
                    $isActives[$key] = "CADUCADA";
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Promociones":
 | 
			
		||||
                for($i = 0; $i < count($promotions); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code promo'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/promos/".str_replace(' ', '_', strtolower($tittles[$i])).".jpg' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittles[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Código: ".$codes[$i]."</li>
 | 
			
		||||
                                    <li>Estado: ".$isActives[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print session MSG:
 | 
			
		||||
    function print_msg() {
 | 
			
		||||
        if(isset($_SESSION['message'])){
 | 
			
		||||
            echo "<div>".$_SESSION['message']."</div>";
 | 
			
		||||
            unset($_SESSION['message']);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Footer:
 | 
			
		||||
    function print_footer(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
 | 
			
		||||
        /* TODO */
 | 
			
		||||
        if(!isset($_SESSION["css"]) || $_SESSION["css"] === "assets/css/main.css"){
 | 
			
		||||
            $css = "{$prefix}assets/css/highContrast.css";
 | 
			
		||||
            $nameCSS = "Alto Contraste";
 | 
			
		||||
        } else {
 | 
			
		||||
            $css = "{$prefix}assets/css/main.css";
 | 
			
		||||
            $nameCSS = "Contraste Normal";
 | 
			
		||||
        }
 | 
			
		||||
        /****/
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        echo"<footer>
 | 
			
		||||
            <div class='footer'>
 | 
			
		||||
                <p>© Práctica Final | Sistemas Web 2021 </p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span class='go-up'>🔝</span>
 | 
			
		||||
            <a href='{$prefix}fdicines/about_us/'>Sobre FDI-Cines</a> |
 | 
			
		||||
            <a href='{$prefix}fdicines/terms_conditions/'>Términos de uso</a> |
 | 
			
		||||
            <a href='{$prefix}cinemas/'>Nuestros cines</a> |
 | 
			
		||||
            <a href='{$prefix}contacto/'>Contacto</a> |
 | 
			
		||||
            <button id='css' onclick=\"cambiarCSS('$css');\">$nameCSS</button>
 | 
			
		||||
        </footer>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print JS scripts:
 | 
			
		||||
    function print_scripts(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
 | 
			
		||||
        echo"<script type='text/javascript' src='{$prefix}assets/js/jquery-3.2.1.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/cambiarCSS.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkForms.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/goUp.js'></script>
 | 
			
		||||
        ";
 | 
			
		||||
        if($page === "FDI-Cines") echo"<script type='text/javascript' src='{$prefix}assets/js/promotions.js'></script>\n";
 | 
			
		||||
        if($page === "Panel de Usuario") echo"<script type='text/javascript' src='{$prefix}assets/js/deleteConfirm.js'></script>\n";
 | 
			
		||||
        if($page === "Comprar Entrada") echo"<script type='text/javascript' src='{$prefix}assets/js/selectTicket.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkPay.js'></script>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
							
								
								
									
										723
									
								
								root/assets/php/template.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										723
									
								
								root/assets/php/template.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,723 @@
 | 
			
		||||
<?php
 | 
			
		||||
    class Template {
 | 
			
		||||
 | 
			
		||||
    //Constants:
 | 
			
		||||
    //private const _NUMPAGES = 10; //Constant to page results.
 | 
			
		||||
 | 
			
		||||
    //Attributes:
 | 
			
		||||
    private $page;                  //Page Name.
 | 
			
		||||
    private $prefix;                //Page prefix.
 | 
			
		||||
 | 
			
		||||
    private $session;               //"Iniciar Sesión" (if user isn´t logged in), "Cerrar Sesión" (otherwise).
 | 
			
		||||
    private $session_route;         //"login/" (if user isn´t logged in), "logout/" (otherwise).
 | 
			
		||||
    private $panel;                 //Button to access the user's dashboard (only displayed if logged in).
 | 
			
		||||
    private $user_route;            //Route of the panel (depends on the type of user).
 | 
			
		||||
    private $sessionButtonClass;    //Type of button to login or logout.
 | 
			
		||||
 | 
			
		||||
    //Constructor:
 | 
			
		||||
    function __construct(){
 | 
			
		||||
        $this->page = $_SERVER['PHP_SELF']; //Page that instantiates the template.
 | 
			
		||||
        $this->prefix = '../';              //Default prefix.
 | 
			
		||||
 | 
			
		||||
        $this->set_page_prefix();           //Assigns the name and prefix of the page.
 | 
			
		||||
 | 
			
		||||
        $this->session = 'Iniciar Sesión';  //Default, the session has not started.
 | 
			
		||||
        $this->session_route = 'login/';    //Default, the session has not started.
 | 
			
		||||
        $this->panel = '';                  //Default, the session has not started.
 | 
			
		||||
        $this->user_route = 'panel_user/';  //Default, the type of client is user.
 | 
			
		||||
        $this->sessionButtonClass = '';     //Default, normal button.
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Methods:
 | 
			
		||||
 | 
			
		||||
    //Assigns the name and prefix of the page:
 | 
			
		||||
    private function set_page_prefix() {
 | 
			
		||||
        switch(true){
 | 
			
		||||
            case strpos($this->page, 'panel_user'): $this->page = 'Panel de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_manager'): $this->page = 'Panel de Gerente'; break;
 | 
			
		||||
            case strpos($this->page, 'panel_admin'): $this->page = 'Panel de Administrador'; break;
 | 
			
		||||
            case strpos($this->page, 'login'): $this->page = 'Acceso'; break;
 | 
			
		||||
            case strpos($this->page, 'logout'): $this->page = 'Cerrar Sesión'; break;
 | 
			
		||||
            case strpos($this->page, 'register'): $this->page = 'Registro de Usuario'; break;
 | 
			
		||||
            case strpos($this->page, 'showtimes'): $this->page = 'Cartelera'; break;
 | 
			
		||||
            case strpos($this->page, 'purchase'): $this->page = 'Comprar Entrada'; break;
 | 
			
		||||
            case strpos($this->page, 'promotions'): $this->page = 'Promociones'; break;
 | 
			
		||||
            case strpos($this->page, 'cinemas'): $this->page = 'Nuestros Cines'; break;
 | 
			
		||||
            case strpos($this->page, 'about_us'): $this->page = 'Sobre FDI-Cines'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'terms'): $this->page = 'Términos y Condiciones'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'detalles'): $this->page = 'Detalles'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'bocetos'): $this->page = 'Bocetos'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'miembros'): $this->page = 'Miembros'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'planificacion'): $this->page = 'Planificación'; $this->prefix = '../../'; break;
 | 
			
		||||
            case strpos($this->page, 'contacto'): $this->page = 'Contacto'; break;
 | 
			
		||||
            case strpos($this->page, 'assets'): $this->prefix = '../../../'; break;
 | 
			
		||||
            default: $this->page = 'FDI-Cines'; $this->prefix = './'; break;
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page name:
 | 
			
		||||
    function get_page(){
 | 
			
		||||
        return $this->page;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Returns page prefix:
 | 
			
		||||
    function get_prefix(){
 | 
			
		||||
        return $this->prefix;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Head:
 | 
			
		||||
    function print_head(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        if(!isset($_SESSION["css"])) $_SESSION["css"] = "main.css";
 | 
			
		||||
 | 
			
		||||
        $extraCSS = "";
 | 
			
		||||
        if($page === "Comprar Entrada") $extraCSS = "\n<link id='estilo' rel='stylesheet' type='text/css' href='{$prefix}assets/css/seat.css'>";
 | 
			
		||||
        if($page === "Panel de Gerente") $extraCSS = "<link rel='stylesheet' href='//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.css' />";
 | 
			
		||||
 | 
			
		||||
        echo"<head>
 | 
			
		||||
        <title>CompluCine | {$page}</title>
 | 
			
		||||
        <meta charset='utf-8' />
 | 
			
		||||
        <link id='estilo' rel='stylesheet' type='text/css' href='{$prefix}assets/css/{$_SESSION['css']}'>{$extraCSS}
 | 
			
		||||
        <noscript><h1>Esta página requiere JavaScript para su correcto funcionamiento. 
 | 
			
		||||
            Compruebe si JavaScript está deshabilitado en su navegador.</h1></noscript>
 | 
			
		||||
        <meta name='viewport' content='width=device-width, initial-scale=1'>
 | 
			
		||||
        <link rel='icon' href='{$prefix}img/favicon.png' />
 | 
			
		||||
    </head>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Header:
 | 
			
		||||
    function print_header(){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $session = $this->session;
 | 
			
		||||
        $sessionButtonClass = $this->sessionButtonClass;
 | 
			
		||||
        $session_route = $this->session_route;
 | 
			
		||||
        $user_route = $this->user_route;
 | 
			
		||||
        $panel =$this->panel;
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["rol"])){
 | 
			
		||||
            if($_SESSION["rol"] === "admin") $user_route = 'panel_admin/';
 | 
			
		||||
            else if($_SESSION["rol"] === "manager") $user_route = 'panel_manager/';
 | 
			
		||||
            $panel = "<a href='{$prefix}{$user_route}'><li>Mi Panel</li></a>";
 | 
			
		||||
            $session = 'Cerrar Sesión';
 | 
			
		||||
            $sessionButtonClass = 'danger';
 | 
			
		||||
            $session_route = 'logout/';
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if(isset($_SESSION["lastRol"]) && ($_SESSION["lastRol"] === "admin" || $_SESSION["lastRol"] === "manager" )){
 | 
			
		||||
            $changeRol = "<a href='{$prefix}assets/php/common/resetRol.php'><li class='danger'>Volver a {$_SESSION["lastRol"]}</li></a>";
 | 
			
		||||
        } else {
 | 
			
		||||
            $changeRol = null;
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
        echo"<div class='header'>
 | 
			
		||||
            <a href='{$prefix}'><img src='{$prefix}img/favicon2.png' alt='favicon' /> CompluCine</a> | {$page}
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>{$changeRol}
 | 
			
		||||
                    <a href='{$prefix}{$session_route}'><li class={$sessionButtonClass}>{$session}</li></a>
 | 
			
		||||
                    {$panel}
 | 
			
		||||
                    <li>Menú
 | 
			
		||||
                        <ul>
 | 
			
		||||
                            <a href='{$prefix}'><li>Inicio</li></a>
 | 
			
		||||
                            <a href='{$prefix}showtimes/'><li>Cartelera</li></a>
 | 
			
		||||
                            <a href='{$prefix}cinemas/'><li>Nuestros Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}promotions/'><li>Promociones</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Quiénes somos</li></a>
 | 
			
		||||
                            <a href='{$prefix}contacto/'><li>Contacto</li></a>
 | 
			
		||||
                        </ul>
 | 
			
		||||
                    </li>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic subHeader:
 | 
			
		||||
    function print_subheader(){
 | 
			
		||||
        //$page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        echo"<div class='header sub'>
 | 
			
		||||
            <div class='menu'>
 | 
			
		||||
                <nav>
 | 
			
		||||
                    <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                    <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                </nav>
 | 
			
		||||
            </div>
 | 
			
		||||
        </div>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Main:
 | 
			
		||||
    function print_main($content = ""){
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
 | 
			
		||||
        /* SubHeader on Main */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'fdicines')){
 | 
			
		||||
            $sub_header = "<!-- Sub Header -->
 | 
			
		||||
                <div class='header sub'>
 | 
			
		||||
                    <div class='menu'>
 | 
			
		||||
                        <nav>
 | 
			
		||||
                            <a href='{$prefix}fdicines/about_us/'><li>Sobre FDI-Cines</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/detalles/'><li>Detalles</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/bocetos/'><li>Bocetos</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/miembros/'><li>Miembros</li></a>
 | 
			
		||||
                            <a href='{$prefix}fdicines/planificacion/'><li>Planificación</li></a>
 | 
			
		||||
                        </nav>
 | 
			
		||||
                    </div>
 | 
			
		||||
                </div>\n"; 
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        /* MAIN */
 | 
			
		||||
        if($prefix === "./"){ 
 | 
			
		||||
            if(isset($_SESSION["nombre"])){
 | 
			
		||||
                $tittle = "<h1>Bienvenido {$_SESSION["nombre"]}</h1>\n";
 | 
			
		||||
            } else {
 | 
			
		||||
                $tittle = "<h1>Bienvenido a CompluCine</h1>\n";
 | 
			
		||||
            }
 | 
			
		||||
        } else {
 | 
			
		||||
            $tittle = "<h1>{$page}</h1>\n";
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo"<main>
 | 
			
		||||
            <div class='image'><a href='{$prefix}'><img src='{$prefix}img/logo_trasparente.png' alt='logo_FDI-Cines' /></a></div>
 | 
			
		||||
            {$sub_header}
 | 
			
		||||
            {$tittle}{$content}
 | 
			
		||||
            <hr />
 | 
			
		||||
        </main>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print panel menu:
 | 
			
		||||
    function print_panelMenu($panel){
 | 
			
		||||
        if($_SESSION["login"]){
 | 
			
		||||
            $prefix = $this->prefix;
 | 
			
		||||
            $menus = array("<a href='./'><li>Panel Principal</li></a>");
 | 
			
		||||
 | 
			
		||||
            switch($panel){
 | 
			
		||||
                case "admin": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=un'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=ur'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                            <a href='./?state=ag'><li>Gerente</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=mc'><li>Cines</li></a>
 | 
			
		||||
                                                            <a href='./?state=mf'><li>Películas</li></a>
 | 
			
		||||
                                                            <a href='./?state=mp'><li>Promociones</li></a>
 | 
			
		||||
                                                            <a href='./?state=mg'><li>Gerentes</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "manager": array_push($menus, "<li>Ver como...
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=view_user'><li>Usuario</li></a>
 | 
			
		||||
                                                            <a href='./?state=view_ruser'><li>Usuario registrado</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                array_push($menus, "<li>Modificar
 | 
			
		||||
                                                        <ul>
 | 
			
		||||
                                                            <a href='./?state=manage_halls'><li>Salas</li></a>
 | 
			
		||||
                                                            <a href='./?state=manage_sessions'><li>Sesiones</li></a>
 | 
			
		||||
                                                        </ul>
 | 
			
		||||
                                                    </li>");
 | 
			
		||||
                                break;
 | 
			
		||||
 | 
			
		||||
                case "user": array_push($menus, "<a href='./?option=purchases'><li>Historial Compras</li></a>");
 | 
			
		||||
                                //array_push($menus, "<a href='./?option=payment'><li>Datos Pago</li></a>");
 | 
			
		||||
                                    array_push($menus, "<a href='./?option=delete_user'><li>Eliminar Usuario</li></a>");
 | 
			
		||||
                                        break;
 | 
			
		||||
 | 
			
		||||
                default: $menus = array(); break;
 | 
			
		||||
            }
 | 
			
		||||
 | 
			
		||||
            if($_SESSION["rol"] === $panel){
 | 
			
		||||
                echo"<div class='header sub'>
 | 
			
		||||
                <div class='menu'>
 | 
			
		||||
                    <nav>";
 | 
			
		||||
                    foreach($menus as $value){
 | 
			
		||||
                        echo $value;
 | 
			
		||||
                    }  
 | 
			
		||||
                    echo"</nav>
 | 
			
		||||
                </div>
 | 
			
		||||
            </div>
 | 
			
		||||
        ";
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print specific page content:
 | 
			
		||||
    function print_section($section){
 | 
			
		||||
        /* Panel menu */
 | 
			
		||||
        $sub_header = '';
 | 
			
		||||
        if(strpos($_SERVER['PHP_SELF'], 'panel')){
 | 
			
		||||
            echo "<!-- Panel Menu -->
 | 
			
		||||
            ";
 | 
			
		||||
            $this->print_panelMenu($_SESSION["rol"]);
 | 
			
		||||
            $this->print_msg();
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        echo $section;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Films Cards:
 | 
			
		||||
    function print_fimls(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
        //List of the movies:
 | 
			
		||||
        require_once(__DIR__.'/includes/film_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $films = new Film_DAO("complucine");
 | 
			
		||||
        $films_array = $films->allFilmData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $times = array();
 | 
			
		||||
        $languages = array();
 | 
			
		||||
        $images = array();
 | 
			
		||||
        if(is_array($films_array)){
 | 
			
		||||
            foreach($films_array as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $times[$key] = $value->getDuration();
 | 
			
		||||
                $languages[$key] = $value->getLanguage();
 | 
			
		||||
                $images[$key] = $value->getImg();
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Cartelera": 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?film=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Editar' name='edit_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                    <form method='post' action='./index.php?state=mf'>
 | 
			
		||||
                                        <input name='id' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
                                        <input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
                                        <input  name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
                                        <input  name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
                                        <input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
                                        <input type='submit' id='submit' value='Eliminar' name='delete_film' class='primary' />
 | 
			
		||||
                                    </form>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";                
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
			case "Panel de Gerente":
 | 
			
		||||
                $reply .= "<div class='column'>";
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                for($i = 0; $i < count($films_array); $i++){
 | 
			
		||||
                    $tittle = str_replace('_', ' ', $tittles[$i]);
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code showtimes'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittle."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <li>Duración: ".$times[$i]." minutos</li>
 | 
			
		||||
                                    <li>Lenguaje: ".$languages[$i]."</li>
 | 
			
		||||
                                
 | 
			
		||||
								<form method='post' action='./?state=".$_SESSION["option"]."'>
 | 
			
		||||
									<input name='film' type='hidden' value='".$ids[$i]."'>
 | 
			
		||||
									<input name='tittle' type='hidden' value='".$tittles[$i]."'>
 | 
			
		||||
									<input name='duration' type='hidden' value='".$times[$i]."'>
 | 
			
		||||
									<input name='language' type='hidden' value='".$languages[$i]."'>
 | 
			
		||||
									<input name='description' type='hidden' value='".$descriptions[$i]."'>
 | 
			
		||||
									<input name='hall' type='hidden' value='".$_POST["hall"]."'>
 | 
			
		||||
									<input name='date' type='hidden' value='".$_POST["date"]."'>
 | 
			
		||||
									<input name='start' type='hidden' value='".$_POST["start"]."'>	
 | 
			
		||||
									<input name='price' type='hidden' value='".$_POST["price"]."'>
 | 
			
		||||
									<input name='format' type='hidden' value='".$_POST["format"]."'>
 | 
			
		||||
									<input name='or_hall' type='hidden' value='".$_POST["or_hall"]."'>
 | 
			
		||||
									<input name='or_date' type='hidden' value='".$_POST["or_date"]."'>
 | 
			
		||||
									<input name='or_start' type='hidden' value='".$_POST["or_start"]."'>
 | 
			
		||||
									<input type='submit' id='submit' value='Seleccionar' name='select_film' class='primary' />
 | 
			
		||||
								</form>
 | 
			
		||||
								</div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n"; 
 | 
			
		||||
                break;
 | 
			
		||||
				
 | 
			
		||||
            default: 
 | 
			
		||||
                if(is_array($films_array)){
 | 
			
		||||
                    $reply .='<div class="column left">
 | 
			
		||||
                         <div class="galery">
 | 
			
		||||
                            <h1>Últimos Estrenos</h1><hr />';
 | 
			
		||||
                    $count = 0;
 | 
			
		||||
                    for($i = count($tittles)-4; $i < count($tittles); $i++){
 | 
			
		||||
                        if($count%2===0){
 | 
			
		||||
                            if($count != 0) $reply .= "
 | 
			
		||||
                            </div>";
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                            <div class='fila'>";
 | 
			
		||||
                        }
 | 
			
		||||
                        $reply .= "
 | 
			
		||||
                                <div class='zoom'>
 | 
			
		||||
                                    <div class='columna'>
 | 
			
		||||
                                        <a href='".$prefix."showtimes/#".$tittles[$i]."'><div class='image'><img src='img/films/".$images[$i]."' alt='".$tittles[$i]."' /></div></a>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                </div>";
 | 
			
		||||
                        $count++;
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
                    <div class='column right'>
 | 
			
		||||
                        <div class='galery'>";
 | 
			
		||||
                    $count = rand(0, count($tittles)-1);
 | 
			
		||||
                    $title = str_replace('_', ' ', $tittles[$count]); 
 | 
			
		||||
                    $reply .= "
 | 
			
		||||
                            <h1>{$title}</h1><hr />
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."showtimes/#".$tittles[$count]."'><div class='image main'><img src='img/films/".$images[$count]."' alt='".$tittles[$count]."' /></div></a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>\n";
 | 
			
		||||
                }
 | 
			
		||||
                    break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print Cinemas info:
 | 
			
		||||
    function print_cinemas(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/cinema_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $cine = new Cinema_DAO("complucine");
 | 
			
		||||
        $cinemas = $cine->allCinemaData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $names = array();
 | 
			
		||||
        $directions = array();
 | 
			
		||||
        $phones = array();
 | 
			
		||||
 | 
			
		||||
        if(!is_array($cinemas)){
 | 
			
		||||
            $reply = "<h2>No hay cines actualmente</h2>";
 | 
			
		||||
        }
 | 
			
		||||
        else{
 | 
			
		||||
            foreach($cinemas as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $names[$key] = $value->getName();
 | 
			
		||||
                $directions[$key] = $value->getDirection();
 | 
			
		||||
                $phones[$key] = $value->getPhone();
 | 
			
		||||
            }
 | 
			
		||||
        
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Nuestros Cines":
 | 
			
		||||
 | 
			
		||||
                for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$names[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <a href='".$prefix."purchase?cinema=".$ids[$i]."'>
 | 
			
		||||
                                <div class='code cinemas'>
 | 
			
		||||
                                    <h2>".$names[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <section class='column left'>
 | 
			
		||||
                                        <img src='../img/sala1.jpg' alt='".$names[$i]."' />
 | 
			
		||||
                                    </section>
 | 
			
		||||
                                    <section class='column right'>
 | 
			
		||||
                                        <section class='blockquote'>
 | 
			
		||||
                                            <li>Dirección: ".$directions[$i]."</li>
 | 
			
		||||
                                            <li>Teléfono: ".$phones[$i]."</li>
 | 
			
		||||
                                        </section>
 | 
			
		||||
                                    </section>
 | 
			
		||||
                                </div>
 | 
			
		||||
                                </a>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            case "Panel de Administrador":
 | 
			
		||||
                    $reply .= "<div class='row'>
 | 
			
		||||
                            <ul class='tablelist col6'> 
 | 
			
		||||
                                <li class='title'>Id</li>
 | 
			
		||||
                                <li class='title'>Nombre</li>
 | 
			
		||||
                                <li class='title'>Dirección</li>
 | 
			
		||||
                                <li class='title'>Teléfono</li>
 | 
			
		||||
                                <li class='title'>Editar</li>
 | 
			
		||||
                                <li class='title'>Eliminar</li>
 | 
			
		||||
                            ";
 | 
			
		||||
                        $parity = "odd";
 | 
			
		||||
                        for($i = 0; $i < count($cinemas); $i++){
 | 
			
		||||
                            $reply .= '
 | 
			
		||||
                                    <div class="'.$parity.'">
 | 
			
		||||
                                    <a class="h2long" href="index.php?state=mc&cinema='.$ids[$i].'">
 | 
			
		||||
                                        <li>'. $ids[$i] .'</li>
 | 
			
		||||
                                        <li>'. $names[$i] .'</li>
 | 
			
		||||
                                        <li>'. $directions[$i] .'</li>
 | 
			
		||||
                                        <li>'. $phones[$i] .'</li>
 | 
			
		||||
                                    </a>
 | 
			
		||||
                                        <li>
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Editar" name="edit_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                        <li> 
 | 
			
		||||
                                            <form method="post" action="index.php?state=mc">
 | 
			
		||||
                                                <input  name="id" type="hidden" value="'.$ids[$i].'">
 | 
			
		||||
                                                <input  name="name" type="hidden" value="'.$names[$i].'">
 | 
			
		||||
                                                <input  name="direction" type="hidden" value="'.$directions[$i].'">
 | 
			
		||||
                                                <input  name="phone" type="hidden" value="'.$phones[$i].'">
 | 
			
		||||
                                                <input type="submit" id="submit" value="Eliminar" name="delete_cinema" class="primary" />
 | 
			
		||||
                                            </form> 
 | 
			
		||||
                                        </li> 
 | 
			
		||||
                                </div>
 | 
			
		||||
                                '; 
 | 
			
		||||
                                $parity = ($parity == "odd") ? "even" : "odd";
 | 
			
		||||
                        } 
 | 
			
		||||
                    $reply .=' </div>';
 | 
			
		||||
                break;
 | 
			
		||||
            
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
         }
 | 
			
		||||
        }
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    function print_promotions(){
 | 
			
		||||
        $reply = "";
 | 
			
		||||
 | 
			
		||||
        //List of the cinemas:
 | 
			
		||||
        require_once(__DIR__.'/includes/promotion_dao.php');
 | 
			
		||||
 | 
			
		||||
        $prefix= $this->get_prefix();
 | 
			
		||||
 | 
			
		||||
        $promotion = new Promotion_DAO("complucine");
 | 
			
		||||
        $promotions = $promotion->allPromotionData();
 | 
			
		||||
        $ids = array();
 | 
			
		||||
        $tittles = array();
 | 
			
		||||
        $descriptions = array();
 | 
			
		||||
        $codes = array();
 | 
			
		||||
        $isActive = array();
 | 
			
		||||
 | 
			
		||||
        if(is_array($promotions)){
 | 
			
		||||
            foreach($promotions as $key => $value){
 | 
			
		||||
                $ids[$key] = $value->getId();
 | 
			
		||||
                $tittles[$key] = $value->getTittle();
 | 
			
		||||
                $descriptions[$key] = $value->getDescription();
 | 
			
		||||
                $codes[$key] = $value->getCode();
 | 
			
		||||
                if($value->getActive()){
 | 
			
		||||
                    $isActives[$key] = "ACTIVA";
 | 
			
		||||
                } else {
 | 
			
		||||
                    $isActives[$key] = "CADUCADA";
 | 
			
		||||
                }
 | 
			
		||||
            }
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        switch($this->page){
 | 
			
		||||
            case "Promociones":
 | 
			
		||||
                for($i = 0; $i < count($promotions); $i++){
 | 
			
		||||
                    if($i%2 === 0){
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                        $reply .= "<div class='column side'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    else{
 | 
			
		||||
                        if($i != 0) $reply .= "</div>
 | 
			
		||||
                    ";
 | 
			
		||||
                    $reply .= "<div class='column middle'>
 | 
			
		||||
                        ";
 | 
			
		||||
                    }
 | 
			
		||||
                    $reply .= "<section id='".$tittles[$i]."'>
 | 
			
		||||
                            <div class='zoom'>
 | 
			
		||||
                                <div class='code promo'>
 | 
			
		||||
                                    <div class='image'><img src='".$prefix."img/promos/".str_replace(' ', '_', strtolower($tittles[$i])).".jpg' alt='".$tittles[$i]."' /></div>
 | 
			
		||||
                                    <h2>".$tittles[$i]."</h2>
 | 
			
		||||
                                    <hr />
 | 
			
		||||
                                    <div class='blockquote'>
 | 
			
		||||
                                        <p>".$descriptions[$i]."</p>
 | 
			
		||||
                                    </div>
 | 
			
		||||
                                    <li>Código: ".$codes[$i]."</li>
 | 
			
		||||
                                    <li>Estado: ".$isActives[$i]."</li>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            </div>
 | 
			
		||||
                        </section>
 | 
			
		||||
                    ";
 | 
			
		||||
                }
 | 
			
		||||
                $reply .= "</div>\n";
 | 
			
		||||
                break;
 | 
			
		||||
            default:
 | 
			
		||||
                break;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        return $reply;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print session MSG:
 | 
			
		||||
    function print_msg() {
 | 
			
		||||
        if(isset($_SESSION['message'])){
 | 
			
		||||
            echo "<div>".$_SESSION['message']."</div>";
 | 
			
		||||
            unset($_SESSION['message']);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print generic Footer:
 | 
			
		||||
    function print_footer(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
        
 | 
			
		||||
        if(!isset($_SESSION["css"]) || $_SESSION["css"] === "main.css"){
 | 
			
		||||
            $css = "{$prefix}assets/css/highContrast.css";
 | 
			
		||||
            $nameCSS = "Alto Contraste";
 | 
			
		||||
        } else {
 | 
			
		||||
            $css = "{$prefix}assets/css/main.css";
 | 
			
		||||
            $nameCSS = "Contraste Normal";
 | 
			
		||||
        }
 | 
			
		||||
        
 | 
			
		||||
 | 
			
		||||
        echo"<footer>
 | 
			
		||||
            <div class='footer'>
 | 
			
		||||
                <p>© Práctica Final | Sistemas Web 2021 </p>
 | 
			
		||||
            </div>
 | 
			
		||||
            <span class='go-up'>🔝</span>
 | 
			
		||||
            <a href='{$prefix}fdicines/about_us/'>Sobre FDI-Cines</a> |
 | 
			
		||||
            <a href='{$prefix}fdicines/terms_conditions/'>Términos de uso</a> |
 | 
			
		||||
            <a href='{$prefix}cinemas/'>Nuestros cines</a> |
 | 
			
		||||
            <a href='{$prefix}contacto/'>Contacto</a> |
 | 
			
		||||
            <button id='cssChange' onclick=\"cambiarCSS('$css');\">$nameCSS</button>
 | 
			
		||||
        </footer>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    //Print JS scripts:
 | 
			
		||||
    function print_scripts(){
 | 
			
		||||
        $prefix = $this->prefix;
 | 
			
		||||
        $page = $this->page;
 | 
			
		||||
 | 
			
		||||
        echo"<script type='text/javascript' src='{$prefix}assets/js/jquery-3.2.1.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/cambiarCSS.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkForms.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/goUp.js'></script>
 | 
			
		||||
        ";
 | 
			
		||||
        if($page === "FDI-Cines") echo"<script type='text/javascript' src='{$prefix}assets/js/promotions.js'></script>\n";
 | 
			
		||||
        if($page === "Panel de Usuario") echo"<script type='text/javascript' src='{$prefix}assets/js/deleteConfirm.js'></script>\n";
 | 
			
		||||
        if($page === "Comprar Entrada") echo"<script type='text/javascript' src='{$prefix}assets/js/selectTicket.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/checkPay.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/goBack.js'></script>\n";
 | 
			
		||||
        if($page === "Panel de Gerente") echo"<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jqueryui/1.12.1/jquery-ui.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/fullcalendar/3.4.0/fullcalendar.min.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/sessionCalendar.js'></script>
 | 
			
		||||
        <script type='text/javascript' src='{$prefix}assets/js/sessionFormProcess.js'></script>\n";
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    }
 | 
			
		||||
?>
 | 
			
		||||
		Reference in New Issue
	
	Block a user