Untitled

 avatar
unknown
plain_text
2 years ago
1.6 kB
4
Indexable
async function createHall(cinema_id: number, tag: string, seats: number[]) {
  let capacity: number = 0;
  seats.forEach((element: number) => {
    capacity += element;
  });
  const conn = await pool.getConnection();
  await conn.query("INSERT INTO sieckin.halls(cinema_id, tag, capacity) VALUES (?,?,?)", [cinema_id, tag, capacity])
  .then((res: any) => {
    const id: number = res.insertId;
    const tblName: string = 'hall_' + id.toString();
    conn.query("CALL createHall(?)", tblName).then(
      seats.forEach(async (element: number, index) => {
        await conn.query("INSERT INTO sieckin." + tblName + "(row, seats) VALUES (?,?)", [index + 1, element]);
      })
    );
  });
  if (conn) conn.release();
}

async function createShowing(hall_id: number, time: Date, movie_id: number) {
  const conn = await pool.getConnection();
  await conn.query("INSERT INTO sieckin.showings(hall_id, time, movie_id) VALUES (?,?,?)", [hall_id, time, movie_id])
  .then((res: any) => {
    const id: number = res.insertId;
    const tblName: string = 'showing_' + id.toString();
    conn.query("CALL createShowing(?)", tblName)
    .then(
      conn.query("SELECT * FROM sieckin.hall_" + hall_id)
      .then((res: any) => {
        res.forEach(async (row: any) => {
          const rowNumber: number = row.row;
          const seats: number = row.seats;
          let i: number;
          for (i = 1; i <= seats; i++) {
            await conn.query("INSERT INTO sieckin." + tblName + "(row, seat, isTaken) VALUES (?,?,?)", [rowNumber, i, false]);
          }
        })
      })
    );
  });
  if (conn) conn.release();
}
Editor is loading...