Оперативное планирование

Автор работы: Пользователь скрыл имя, 28 Марта 2012 в 10:55, курсовая работа

Краткое описание

Pull and Bear (Пул энд Бир) - испанский бренд мужской и женской молодежной одежды. Принадлежит концерну Inditex, который владеет такими брендами как Massimo Dutti, Zara, Oysho, Uterqüe, Stradivarius, Bershka.



Бренд относительно молодой, был представлен компанией Inditex в 1991 году и позиционировал себя как неформальная мужская одежда для молодежи. Марка сразу взялась за продвижения на рынке и 1992 году был открыт магазин за пределами Испании в Португалии. А в 1995 году были открыты представительства в Греции и Мальте. Компания и далее продолжала свою экспансию, и в 1997 году было открыто представительство в Израиле.

Содержание работы

1) ИСТОРИЯ ОРГАНИЗАЦИИ………………………………………………………….....................….3



2) Анализ аппаратно-программных средств, используемых на предприятии…………………………………………………………..……………….5



3) Описание ВНЕДРЯЕМОй информационной системы



3.1) Основные функциональные возможности системы ………….………………….....6

3.2) Назначение и цели создания веб-приложения ……………………….……………..7

3.3) Общие требования к информационной системе ……………………………...…...8

3.4) Программная реализация

3.4.1) Инструментальные средства разработки………………………....……….……10

3.4.2) Реализация базы данных ……………………………………………………..….14

3.4.3) Реализация клиентского приложения ………………………………….………27



4) ЗАКЛЮЧЕНИЕ…………………………………......…………………………….……….45



5) СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ……………………………….….....46



ПРИЛОЖЕНИЕ 1. ХРОНОЛОГИЯ ПРОХОЖДЕНИЯ ПРАКТИКИ …………………...47



ПРИЛОЖЕНИЕ 2. ХАРАКТЕРИСТИКА ПО ПРОХОЖДЕНИЮ ПРАКТИКИ

Содержимое работы - 1 файл

содержание.doc

— 2.27 Мб (Скачать файл)

 

Листинг 1.12 Триггер UPDChecks.

CREATE TRIGGER UPDChecks ON dbo.Sales

FOR UPDATE

AS

UPDATE Checks

SET Checks.[Sum] = Checks.[Sum]-(SELECT Price FROM deleted)  +(SELECT Price FROM inserted)

WHERE (ID = (SELECT Check_ID

FROM inserted) ) AND  (ID = (SELECT Check_ID

FROM deleted) );

 

4.4) Для увеличения количества товара при удалении продажи

 

Листинг 1.13 Триггер DELSale.

CREATE TRIGGER DELSale ON dbo.Sales

FOR DELETE

AS

UPDATE Products

SET Products.[Count] = Products.[Count]+(SELECT [Count] FROM deleted)

WHERE (Article = (SELECT Article

FROM deleted) );

 

4.5) Для уменьшения количества товара при добавлении продажи

 

Листинг 1.14 Триггер INSSale.

CREATE TRIGGER INSSale ON dbo.Sales

FOR INSERT

AS

UPDATE Products

SET Products.[Count] = Products.[Count] -(SELECT [Count] FROM inserted)

WHERE (Article = (SELECT Article

FROM inserted) );

 

4.6) Для изменения количества товара при изменении продажи

 

Листинг 1.15 Триггер UPDSale.

CREATE TRIGGER UPDSale ON dbo.Sales

FOR UPDATE

AS

UPDATE Products

SET Products.[Count] = Products.[Count]+(SELECT [Count] FROM deleted) -(SELECT [Count] FROM inserted)

WHERE (Article = (SELECT Article

FROM inserted) ) AND  (Article = (SELECT Article

FROM deleted) );

 

 

 

3.4.3 Реализация клиентского приложения

Разработанное веб-приложение представляет собой набор php- страниц, навигация по которым осуществляется при помощи гиперссылок. Каждая страница наделена определёнными функциями, необходимыми пользователям, т.е. сотрудникам магазина.

1)     index.php

              На главной странице выводятся приветствие, логотип фирмы, а также форма авторизации. Чтобы авторизоваться, пользователю необходимо ввести свои регистрационные данные в форму и нажать кнопку “Sign in”. После чего происходит обработка php-скрипта “login.php”.

             

Рисунок 9 — Страница index.php

 

Листинг 2.1 Скрипт “login.php”

<?php

ob_start();?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Untitled Document</title>

</head>

<body>

<?php

if (isset($_POST['login']))

{

   $login = $_POST['login'];

  $password = $_POST['password'];

   if (!preg_match("/^\w{3,}$/", $login)) {

      die('Incorrect login!');

   }

  include 'connect.php';

   if (!$link || !mssql_select_db('TheStore', $link))

{

      die("Can't reaching the DataBase");

   }else{

                $stmt1 = mssql_query("SELECT ID FROM Employees WHERE ((Login='$login')AND (Password='$password'))",$link);

                $row_count = mssql_num_rows( $stmt1 );

      if ($row_count < 1) {

         mssql_close($link);

         die('There is no such login or password is incorrect!');

      }

      // Стартуем сессию и записываем логин в суперглобальный массив $_SESSION

      session_start();

        $row = mssql_fetch_array($stmt1, MSSQL_NUM);

     $_SESSION['id'] = $row[0];

     $_SESSION['user'] = $login;

     $_SESSION['password'] = $password;

     mssql_close($link);

     header ("location: index1.php");

}}?>

</body>

</html>

Информация для подключения берется из файла “connect.php”.

Листинг 2.2 Скрипт “connect.php”

<?php

$serverName = "FLAME";

   $uid = "sa";

   $pwd = "123";

   $link = mssql_connect( $serverName, $uid,$pwd);

?>

В переменные $serverName, $uid,$pwd , вносится адрес сервера, логин и пароль для доступа к серверу БД.

После успешного выполнения скрипта login.php, в суперглобальном массиве $_SESSION создается 2 элемента: id и user, которые используются при проверке авторизации пользователя.

При попадании на любую страницу происходит проверка авторизации пользователя и вывод определенного приветствия на основе данной проверки.

              Листинг 2.3 Проверка авторизации

<?php

ob_start();

session_start();

if (isset($_SESSION['user'])) {

   $auth = "<p align='center'> Welcome ".$_SESSION['user']."!</p>\n";

   $auth .= "<div align='center'> <form method='post' action='logout.php'> <input type='submit' value='Exit'></form></div>";

}else {

   $auth = <<< AUTH

   <p align="center">Authorization</p>

<form method="post" action="login.php">

   <table>

   <tr class="left">

      <td width="62">Login:</td>

      <td width="147"><input name="login" type="text"></td>

   </tr>

   <tr>

      <td>Password:</td>

      <td><input name="password" type="password"></td>

   </tr>

   <tr>

      <td colspan="2">   <div align="center">

        <input type="submit" value="Sign in">

      </div></td>

   </tr>

   </table>

</form>

AUTH;

}

?>

 


             

Рисунок 10 — Страница index1.php

 

 

2)     Check.php

На данной странице размещаются формы для проведения и удаления (только для менеджеров) продажи. При нажатии на нужные кнопки выполняются соответствующие скрипты, проводящие необходимые операции с БД – создание продажи, удаление продажи, создание чека.

Рисунок 11 — Страница Check.php

 

Для создания продажи используется скрипт “NewSales.php”

              Листинг 2.4 Скрипт “NewSales.php”

              <?php

ob_start();?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Untitled Document</title>

</head>

<body>

<?php

if ((isset($_POST['check_ID'])) AND (isset($_POST['article'])) AND (isset($_POST['count'])))

{

   $check_ID = $_POST['check_ID'];

   $article = $_POST['article'];

   $count= $_POST['count'];

   include 'connect.php';

   if (!$link || !mssql_select_db('TheStore', $link))

{

      die("Can't reaching the DataBase");

   }

else{

    $query1 = mssql_query("INSERT INTO Sales(Check_ID, Article, Count )VALUES('$check_ID','$article','$count')",$link);

      if ( !$query1)

              {

                   die("Mistake1!");

              }

     $query2= mssql_query("SELECT Price FROM Products Where (Article='".$_POST['article']."')",$link);

      if ( !$query2)

              {

                   die("Mistake2!");

              }

$row = mssql_fetch_array($query2, MSSQL_NUM);

$price =$row[0]*$count;

$query3 = mssql_query("UPDATE Sales Set Sales.Price='$price' Where ((Article='".$_POST['article']."')AND (Check_ID='".$_POST['check_ID']."'))",$link);

      if ( !$query3)

              {

                   die("Mistake3!");

              }

  mssql_close($link);

}

header ("location: Check.php");

}?>

</body>

</html>

 

Для создания чека используется скрипт “NewCheck.php”

              Листинг 2.5 Скрипт “NewCheck.php”

              <?php

ob_start();?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Untitled Document</title>

</head>

<?php

  include 'connect.php';

   mssql_select_db('TheStore', $link);

   $query= mssql_query("SELECT DISTINCT MAX(ID) FROM Checks",$link);

   if(!mssql_num_rows($query))

   {

    echo 'No records found';

   }

   else

   {

      while($row = mssql_fetch_array($query, MSSQL_NUM))

      {

 

         $next_check="$row[0]";

     }

  }

?>

<body>

<?php

session_start();

  include 'connect.php';

   if (!$link || !mssql_select_db('TheStore', $link))

{

      die("Can't reaching the DataBase");

   }

else{

date_default_timezone_set('Europe/Moscow');

 

$datetime = date('m.d.Y G:i:s ');

$query1 = mssql_query("UPDATE Checks Set Checks.Date='$datetime' Where (ID='$next_check')",$link);

      if ( !$query1)

              {

                   die("Mistake1!");

              }

$emp_id=$_SESSION['id'];

$query2 = mssql_query("UPDATE Checks Set Checks.Employee_ID ='$emp_id' Where (ID='$next_check')",$link);

      if ( !$query2)

              {

                   die("Mistake2!");

              }

$new_check=$next_check+1;

  $query3 = mssql_query("INSERT INTO Checks(ID)VALUES('0'+'$new_check')",$link);

      if ( !$query1)

              {

                   die("Mistake3!");

              }

  mssql_close($link);

}

header ("location: Check.php");

?>

</body>

</html>

Для удаления продажи используется скрипт “DelSale.php”

              Листинг 2.6 Скрипт “DelSale.php”

              <?php

ob_start();?>

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">

<title>Untitled Document</title>

</head>

<body>

<?php

session_start();

$delcheck_ID = $_POST['del_ID'];

$delarticle = $_POST['del_art'];

  include 'connect.php';

   if (!$link || !mssql_select_db('TheStore', $link))

{

      die("Can't reaching the DataBase");

   }

else{

$query1 = mssql_query("DELETE  FROM Sales Where ((Check_ID='$delcheck_ID')AND(Article='$delarticle') )",$link);

      if ( !$query1)

              {

                   die("Mistake1!");

              }

  mssql_close($link);

}

header ("location: Check.php");

?>

</body>

</html>

3)     Stock.php

На данной странице выводится информация о всех товарах с выделенным текущим количеством и изображениями.

Листинг 2.7 Вывод информации о товарах

<?php

   mssql_select_db('TheStore', $link);

   $query= mssql_query("SELECT * FROM Products",$link);

   if(!mssql_num_rows($query))

   {

    echo 'No records found';

   }

   else

   {

      echo "<table width='440' border='1'>";

      echo "<tr>";

echo "<td width='60' align='center'><B>Article</B></td>\n";

echo "<td width='80' align='center'><B>Name</B></td>\n";

echo "<td width='20' align='center'><B>Size</B></td>\n";

echo "<td width='50' align='center'><B>Price</B></td>\n";

echo "<td width='10' align='center'><B>Area</B></td>\n";

echo "<td width='100' align='center'><B>Structure</B></td>\n";

echo "<td width='80' align='center'><B>Country</B></td>\n";

echo "<td width='40' align='center'><B>Quantity</B></td>\n";

echo "</tr>";

      while($row = mssql_fetch_array($query, MSSQL_NUM))

      {

          echo "<tr>";

         echo "<td width='60'>".$row[0]."</td>\n";

         echo "<td width='80'>".$row[1]."</td>\n";

         echo "<td width='20'>".$row[2]."</td>\n";

         echo "<td width='50'>".$row[3]."</td>\n";

         echo "<td width='10'>".$row[4]."</td>\n";

         echo "<td width='100'>".$row[5]."</td>\n";

         echo "<td width='80'>".$row[6]."</td>\n";

Информация о работе Оперативное планирование