From 42dae12f62cc7d52b1f1c9ebf14f21fdc212cefb Mon Sep 17 00:00:00 2001 From: Leon Date: Sat, 16 Mar 2019 14:39:31 +0200 Subject: [PATCH] v1.3 --- CHANGELOG.md | 7 +- README.md | 6 +- db/db.sql | 126 +++++++++++++------- install.md | 4 +- www/app/entity/itemset.php | 18 +++ www/app/pages/base.php | 5 +- www/app/pages/doc/prodissue.php | 4 + www/app/pages/options.php | 3 + www/app/pages/reference/itemlist.php | 89 ++++++++++++++ www/templates/pages/doc/prodissue.html | 5 +- www/templates/pages/options.html | 4 + www/templates/pages/reference/itemlist.html | 29 ++++- www/templates/wait.html | 10 +- 13 files changed, 249 insertions(+), 61 deletions(-) create mode 100644 www/app/entity/itemset.php diff --git a/CHANGELOG.md b/CHANGELOG.md index a6a863ae6..17847a7df 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,10 +1,13 @@ CHANGELOG ========= +### v1.3.0 (2019-03-15) +* Добавлена комплектация изделийдля производства +* Добавлен документ Заказ услуг ### v1.2.0 (2019-02-25) -* Добавлена нотификация при добавлени комента к документу -* Добавлено коректное ычисление зарезервированного и оожидаемого товара +* Добавлена нотификация при добавлени коментария к документу +* Добавлено коректное вычисление зарезервированного и оожидаемого товара ### v1.1.1 (2019-02-07) * Добавлен документ Возврат поставщику diff --git a/README.md b/README.md index 47417da8f..9b9a3a256 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,9 @@ Zippy Store ======== -Система складского учета с веб интерфейсом и онлайн каталогом -Упрощенный вариант проекта ZippyERP. Предназначен для использования малым бизнесом с упрощенной формой учета, который не использует полноценный бухгалтерский учет. +Программа складского учета с веб интерфейсом. + Предназначена для использования малым бизнесом с упрощенной формой учета, который не использует полноценный бухгалтерский учет. - Программа представляет собой онлайн систему складского учета с модулем торговли. Как и ZippyERP, проект бесплатный, с открытым кодом, выполнен в виде веб сайта. + #### Основной функционал diff --git a/db/db.sql b/db/db.sql index 340de0d20..f0e44c943 100644 --- a/db/db.sql +++ b/db/db.sql @@ -15,11 +15,11 @@ DROP TABLE IF EXISTS `customers`; CREATE TABLE `customers` ( `customer_id` int(11) NOT NULL AUTO_INCREMENT, `customer_name` varchar(255) DEFAULT NULL, - `detail` text NOT NULL, + `detail` mediumtext NOT NULL, `email` varchar(64) DEFAULT NULL, `phone` varchar(64) DEFAULT NULL, PRIMARY KEY (`customer_id`) -) ENGINE=innodb AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=9 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `customers_view`; /*!50001 DROP VIEW IF EXISTS `customers_view`*/; @@ -40,10 +40,10 @@ CREATE TABLE `docrel` ( `doc2` int(11) DEFAULT NULL, KEY `doc1` (`doc1`), KEY `doc2` (`doc2`) -) ENGINE=innodb DEFAULT CHARSET=utf8 COMMENT=' '; +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='����� ����� �����������'; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `documents`; -/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `documents` ( `document_id` int(11) NOT NULL AUTO_INCREMENT, @@ -61,7 +61,7 @@ CREATE TABLE `documents` ( KEY `document_date` (`document_date`), KEY `customer_id` (`customer_id`), KEY `user_id` (`user_id`) -) ENGINE=innodb AUTO_INCREMENT=69 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=78 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `documents_view`; /*!50001 DROP VIEW IF EXISTS `documents_view`*/; @@ -90,10 +90,10 @@ DROP TABLE IF EXISTS `employees`; CREATE TABLE `employees` ( `employee_id` int(11) NOT NULL AUTO_INCREMENT, `login` varchar(64) DEFAULT NULL, - `detail` text, + `detail` mediumtext, `emp_name` varchar(64) NOT NULL, PRIMARY KEY (`employee_id`) -) ENGINE=innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `entrylist`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -111,7 +111,7 @@ CREATE TABLE `entrylist` ( PRIMARY KEY (`entry_id`), KEY `document_id` (`document_id`), KEY `stock_id` (`stock_id`) -) ENGINE=innodb AUTO_INCREMENT=79 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=84 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; /*!50003 SET @saved_cs_client = @@character_set_client */ ; /*!50003 SET @saved_cs_results = @@character_set_results */ ; @@ -147,7 +147,7 @@ DELIMITER ; /*!50003 SET @saved_sql_mode = @@sql_mode */ ; /*!50003 SET sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' */ ; DELIMITER ;; -/*!50003 CREATE*/ /*!50017 */ /*!50003 TRIGGER `entrylist_after_del_tr` AFTER DELETE ON `entrylist` +/*!50003 CREATE*/ /*!50017 */ /*!50003 TRIGGER `entrylist_after_del_tr` AFTER DELETE ON `entrylist` FOR EACH ROW BEGIN @@ -185,10 +185,10 @@ DROP TABLE IF EXISTS `equipments`; CREATE TABLE `equipments` ( `eq_id` int(11) NOT NULL AUTO_INCREMENT, `eq_name` varchar(255) DEFAULT NULL, - `detail` text, + `detail` mediumtext, `description` text, PRIMARY KEY (`eq_id`) -) ENGINE=innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `eventlist`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -204,7 +204,7 @@ CREATE TABLE `eventlist` ( PRIMARY KEY (`event_id`), KEY `user_id` (`user_id`), KEY `customer_id` (`customer_id`) -) ENGINE=innodb AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `eventlist_view`; /*!50001 DROP VIEW IF EXISTS `eventlist_view`*/; @@ -230,7 +230,7 @@ CREATE TABLE `files` ( `description` varchar(255) DEFAULT NULL, `item_type` int(11) NOT NULL, PRIMARY KEY (`file_id`) -) ENGINE=innodb DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `filesdata`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -239,7 +239,7 @@ CREATE TABLE `filesdata` ( `file_id` int(11) DEFAULT NULL, `filedata` longblob, UNIQUE KEY `file_id` (`file_id`) -) ENGINE=innodb DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `images`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -250,7 +250,7 @@ CREATE TABLE `images` ( `mime` varchar(16) DEFAULT NULL, `thumb` longblob, PRIMARY KEY (`image_id`) -) ENGINE=innodb AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `item_cat`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -259,8 +259,31 @@ CREATE TABLE `item_cat` ( `cat_id` int(11) NOT NULL AUTO_INCREMENT, `cat_name` varchar(255) NOT NULL, PRIMARY KEY (`cat_id`) -) ENGINE=innodb AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +/*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `item_set`; +/*!40101 SET @saved_cs_client = @@character_set_client */; +/*!40101 SET character_set_client = utf8 */; +CREATE TABLE `item_set` ( + `set_id` int(11) NOT NULL AUTO_INCREMENT, + `item_id` int(11) DEFAULT '0', + `pitem_id` int(11) DEFAULT '0', + `qty` int(11) DEFAULT '0', + PRIMARY KEY (`set_id`) +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; +DROP TABLE IF EXISTS `item_set_view`; +/*!50001 DROP VIEW IF EXISTS `item_set_view`*/; +SET @saved_cs_client = @@character_set_client; +SET character_set_client = utf8; +/*!50001 CREATE VIEW `item_set_view` AS SELECT + 1 AS `set_id`, + 1 AS `item_id`, + 1 AS `pitem_id`, + 1 AS `qty`, + 1 AS `itemname`, + 1 AS `item_code`*/; +SET character_set_client = @saved_cs_client; DROP TABLE IF EXISTS `items`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; @@ -268,7 +291,7 @@ CREATE TABLE `items` ( `item_id` int(11) NOT NULL AUTO_INCREMENT, `itemname` varchar(255) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, - `detail` text NOT NULL, + `detail` mediumtext NOT NULL, `item_code` varchar(64) DEFAULT NULL, `bar_code` varchar(64) DEFAULT NULL, `cat_id` int(11) NOT NULL, @@ -278,7 +301,7 @@ CREATE TABLE `items` ( KEY `item_code` (`item_code`), KEY `itemname` (`itemname`), KEY `cat_id` (`cat_id`) -) ENGINE=innodb AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=13 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `items_view`; /*!50001 DROP VIEW IF EXISTS `items_view`*/; @@ -308,7 +331,7 @@ CREATE TABLE `messages` ( `item_id` int(11) NOT NULL, `item_type` int(11) DEFAULT NULL, PRIMARY KEY (`message_id`) -) ENGINE=innodb AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `messages_view`; /*!50001 DROP VIEW IF EXISTS `messages_view`*/; @@ -336,7 +359,7 @@ CREATE TABLE `metadata` ( `disabled` tinyint(4) NOT NULL, `smartmenu` tinyint(4) NOT NULL DEFAULT '0', PRIMARY KEY (`meta_id`) -) ENGINE=innodb AUTO_INCREMENT=43 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=44 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `notifies`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -349,7 +372,7 @@ CREATE TABLE `notifies` ( `message` text NOT NULL, PRIMARY KEY (`notify_id`), KEY `user_id` (`user_id`) -) ENGINE=innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `options`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -358,7 +381,7 @@ CREATE TABLE `options` ( `optname` varchar(64) NOT NULL, `optvalue` text NOT NULL, UNIQUE KEY `optname` (`optname`) -) ENGINE=innodb DEFAULT CHARSET=utf8; +) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `parealist`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -367,7 +390,7 @@ CREATE TABLE `parealist` ( `pa_id` int(11) NOT NULL AUTO_INCREMENT, `pa_name` varchar(255) NOT NULL, PRIMARY KEY (`pa_id`) -) ENGINE=innodb AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `services`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -377,7 +400,7 @@ CREATE TABLE `services` ( `service_name` varchar(255) NOT NULL, `detail` text, PRIMARY KEY (`service_id`) -) ENGINE=innodb AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_attributes`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -390,7 +413,7 @@ CREATE TABLE `shop_attributes` ( `valueslist` varchar(255) DEFAULT NULL, `showinlist` tinyint(1) DEFAULT NULL, PRIMARY KEY (`attribute_id`) -) ENGINE=innodb AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_attributes_order`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -401,7 +424,7 @@ CREATE TABLE `shop_attributes_order` ( `pg_id` int(11) NOT NULL, `ordern` int(11) NOT NULL, PRIMARY KEY (`order_id`) -) ENGINE=innodb AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_attributes_view`; /*!50001 DROP VIEW IF EXISTS `shop_attributes_view`*/; @@ -426,7 +449,7 @@ CREATE TABLE `shop_attributevalues` ( `attributevalue` varchar(255) NOT NULL, PRIMARY KEY (`attributevalue_id`), KEY `attribute_id` (`attribute_id`) -) ENGINE=innodb AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_manufacturers`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -436,7 +459,7 @@ CREATE TABLE `shop_manufacturers` ( `manufacturername` varchar(255) NOT NULL, `url` varchar(255) NOT NULL, PRIMARY KEY (`manufacturer_id`) -) ENGINE=innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_prod_comments`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -451,7 +474,7 @@ CREATE TABLE `shop_prod_comments` ( `moderated` tinyint(1) NOT NULL DEFAULT '0', PRIMARY KEY (`comment_id`), KEY `product_id` (`product_id`) -) ENGINE=innodb AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_productgroups`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -463,7 +486,7 @@ CREATE TABLE `shop_productgroups` ( `mpath` varchar(1024) DEFAULT NULL, `image_id` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`group_id`) -) ENGINE=innodb AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_productgroups_view`; /*!50001 DROP VIEW IF EXISTS `shop_productgroups_view`*/; @@ -497,7 +520,7 @@ CREATE TABLE `shop_products` ( `comments` int(11) DEFAULT '0', PRIMARY KEY (`product_id`), KEY `group_id` (`group_id`) -) ENGINE=innodb AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `shop_products_view`; /*!50001 DROP VIEW IF EXISTS `shop_products_view`*/; @@ -532,7 +555,7 @@ CREATE TABLE `store_stock` ( `qty` int(11) DEFAULT NULL, PRIMARY KEY (`stock_id`), KEY `item_id` (`item_id`) -) ENGINE=innodb AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `store_stock_view`; /*!50001 DROP VIEW IF EXISTS `store_stock_view`*/; @@ -563,7 +586,7 @@ CREATE TABLE `stores` ( `storename` varchar(64) DEFAULT NULL, `description` varchar(255) DEFAULT NULL, PRIMARY KEY (`store_id`) -) ENGINE=innodb AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='????? ????????'; +) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHARSET=utf8 COMMENT='????? ????????'; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `users`; /*!40101 SET @saved_cs_client = @@character_set_client */; @@ -580,7 +603,7 @@ CREATE TABLE `users` ( `options` text, PRIMARY KEY (`user_id`), UNIQUE KEY `userlogin` (`userlogin`) -) ENGINE=innodb AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; +) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */; DROP TABLE IF EXISTS `users_view`; /*!50001 DROP VIEW IF EXISTS `users_view`*/; @@ -605,7 +628,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `customers_view` AS select `customers`.`customer_id` AS `customer_id`,`customers`.`customer_name` AS `customer_name`,`customers`.`detail` AS `detail`,`customers`.`email` AS `email`,`customers`.`phone` AS `phone` from `customers` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -618,7 +641,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `documents_view` AS select `d`.`document_id` AS `document_id`,`d`.`document_number` AS `document_number`,`d`.`document_date` AS `document_date`,`d`.`user_id` AS `user_id`,`d`.`content` AS `content`,`d`.`amount` AS `amount`,`d`.`meta_id` AS `meta_id`,`u`.`username` AS `username`,`c`.`customer_id` AS `customer_id`,`c`.`customer_name` AS `customer_name`,`d`.`state` AS `state`,`d`.`notes` AS `notes`,`d`.`datatag` AS `datatag`,`metadata`.`meta_name` AS `meta_name`,`metadata`.`description` AS `meta_desc` from (((`documents` `d` join `users_view` `u` on((`d`.`user_id` = `u`.`user_id`))) left join `customers` `c` on((`d`.`customer_id` = `c`.`customer_id`))) join `metadata` on((`metadata`.`meta_id` = `d`.`meta_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -631,7 +654,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `entrylist_view` AS select `entrylist`.`entry_id` AS `entry_id`,`entrylist`.`document_id` AS `document_id`,`entrylist`.`amount` AS `amount`,`entrylist`.`quantity` AS `quantity`,`entrylist`.`customer_id` AS `customer_id`,`entrylist`.`employee_id` AS `employee_id`,`entrylist`.`extcode` AS `extcode`,`entrylist`.`stock_id` AS `stock_id`,`entrylist`.`service_id` AS `service_id`,`store_stock`.`item_id` AS `item_id`,`documents`.`document_date` AS `document_date` from ((`entrylist` left join `store_stock` on((`entrylist`.`stock_id` = `store_stock`.`stock_id`))) join `documents` on((`entrylist`.`document_id` = `documents`.`document_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -644,11 +667,24 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `eventlist_view` AS select `e`.`user_id` AS `user_id`,`e`.`eventdate` AS `eventdate`,`e`.`title` AS `title`,`e`.`description` AS `description`,`e`.`notify_id` AS `notify_id`,`e`.`event_id` AS `event_id`,`e`.`customer_id` AS `customer_id`,`c`.`customer_name` AS `customer_name` from (`eventlist` `e` left join `customers` `c` on((`e`.`customer_id` = `c`.`customer_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; /*!50001 SET collation_connection = @saved_col_connection */; +/*!50001 DROP VIEW IF EXISTS `item_set_view`*/; +/*!50001 SET @saved_cs_client = @@character_set_client */; +/*!50001 SET @saved_cs_results = @@character_set_results */; +/*!50001 SET @saved_col_connection = @@collation_connection */; +/*!50001 SET character_set_client = utf8mb4 */; +/*!50001 SET character_set_results = utf8mb4 */; +/*!50001 SET collation_connection = utf8mb4_unicode_ci */; +/*!50001 CREATE */ +/*!50013 */ +/*!50001 VIEW `item_set_view` AS select `item_set`.`set_id` AS `set_id`,`item_set`.`item_id` AS `item_id`,`item_set`.`pitem_id` AS `pitem_id`,`item_set`.`qty` AS `qty`,`items`.`itemname` AS `itemname`,`items`.`item_code` AS `item_code` from (`item_set` join `items` on((`item_set`.`item_id` = `items`.`item_id`))) */; +/*!50001 SET character_set_client = @saved_cs_client */; +/*!50001 SET character_set_results = @saved_cs_results */; +/*!50001 SET collation_connection = @saved_col_connection */; /*!50001 DROP VIEW IF EXISTS `items_view`*/; /*!50001 SET @saved_cs_client = @@character_set_client */; /*!50001 SET @saved_cs_results = @@character_set_results */; @@ -657,7 +693,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `items_view` AS select `items`.`item_id` AS `item_id`,`items`.`itemname` AS `itemname`,`items`.`description` AS `description`,`items`.`detail` AS `detail`,`items`.`item_code` AS `item_code`,`items`.`bar_code` AS `bar_code`,`items`.`msr` AS `msr`,`items`.`cat_id` AS `cat_id`,`item_cat`.`cat_name` AS `cat_name`,`items`.`disabled` AS `disabled`,(select sum(`store_stock`.`qty`) from `store_stock` where (`store_stock`.`item_id` = `items`.`item_id`)) AS `qty` from (`items` left join `item_cat` on((`items`.`cat_id` = `item_cat`.`cat_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -670,7 +706,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `messages_view` AS select `messages`.`message_id` AS `message_id`,`messages`.`user_id` AS `user_id`,`messages`.`created` AS `created`,`messages`.`message` AS `message`,`messages`.`item_id` AS `item_id`,`messages`.`item_type` AS `item_type`,`users_view`.`username` AS `username` from (`messages` join `users_view` on((`messages`.`user_id` = `users_view`.`user_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -683,7 +719,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `shop_attributes_view` AS select `shop_attributes`.`attribute_id` AS `attribute_id`,`shop_attributes`.`attributename` AS `attributename`,`shop_attributes`.`group_id` AS `group_id`,`shop_attributes`.`attributetype` AS `attributetype`,`shop_attributes`.`valueslist` AS `valueslist`,`shop_attributes`.`showinlist` AS `showinlist`,`shop_attributes_order`.`ordern` AS `ordern` from (`shop_attributes` join `shop_attributes_order` on(((`shop_attributes`.`attribute_id` = `shop_attributes_order`.`attr_id`) and (`shop_attributes`.`group_id` = `shop_attributes_order`.`pg_id`)))) order by `shop_attributes_order`.`ordern` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -696,7 +732,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `shop_productgroups_view` AS select `g`.`group_id` AS `group_id`,`g`.`parent_id` AS `parent_id`,`g`.`groupname` AS `groupname`,`g`.`mpath` AS `mpath`,`g`.`image_id` AS `image_id`,(select count(`sg`.`group_id`) AS `cnt` from `shop_productgroups` `sg` where (`g`.`group_id` = `sg`.`parent_id`)) AS `gcnt`,(select count(`p`.`product_id`) AS `cnt` from `shop_products` `p` where (`g`.`group_id` = `p`.`group_id`)) AS `pcnt` from `shop_productgroups` `g` */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -709,7 +745,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `shop_products_view` AS select `p`.`product_id` AS `product_id`,`p`.`group_id` AS `group_id`,`p`.`productname` AS `productname`,`p`.`manufacturer_id` AS `manufacturer_id`,`p`.`price` AS `price`,`p`.`sold` AS `sold`,`p`.`deleted` AS `deleted`,`p`.`sef` AS `sef`,`p`.`item_id` AS `item_id`,`p`.`created` AS `created`,`p`.`detail` AS `detail`,`p`.`rating` AS `rating`,(case when (`p`.`created` > (now() - interval 1 month)) then 1 else 0 end) AS `novelty`,`p`.`comments` AS `comments`,`g`.`groupname` AS `groupname`,`m`.`manufacturername` AS `manufacturername` from ((`shop_products` `p` join `shop_productgroups` `g` on((`p`.`group_id` = `g`.`group_id`))) left join `shop_manufacturers` `m` on((`p`.`manufacturer_id` = `m`.`manufacturer_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -722,7 +758,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `store_stock_view` AS select `st`.`stock_id` AS `stock_id`,`st`.`item_id` AS `item_id`,`st`.`partion` AS `partion`,`st`.`store_id` AS `store_id`,`i`.`itemname` AS `itemname`,`i`.`item_code` AS `item_code`,`i`.`cat_id` AS `cat_id`,`i`.`msr` AS `msr`,`i`.`bar_code` AS `bar_code`,`i`.`cat_name` AS `cat_name`,`i`.`disabled` AS `disabled`,`stores`.`storename` AS `storename`,`st`.`qty` AS `qty`,(0 - (select coalesce(sum(`el`.`quantity`),0) from `entrylist_view` `el` where ((`el`.`stock_id` = `st`.`stock_id`) and (`el`.`quantity` < 0) and (`el`.`document_date` > cast(now() as date))))) AS `rqty`,(select coalesce(sum(`el`.`quantity`),0) from `entrylist_view` `el` where ((`el`.`stock_id` = `st`.`stock_id`) and (`el`.`quantity` > 0) and (`el`.`document_date` > cast(now() as date)))) AS `wqty` from ((`store_stock` `st` join `items_view` `i` on(((`i`.`item_id` = `st`.`item_id`) and (`i`.`disabled` <> 1)))) join `stores` on((`stores`.`store_id` = `st`.`store_id`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; @@ -735,7 +771,7 @@ SET character_set_client = @saved_cs_client; /*!50001 SET character_set_results = latin1 */; /*!50001 SET collation_connection = latin1_swedish_ci */; /*!50001 CREATE */ -/*!50013 */ +/*!50013 */ /*!50001 VIEW `users_view` AS select `users`.`user_id` AS `user_id`,`users`.`userlogin` AS `userlogin`,`users`.`userpass` AS `userpass`,`users`.`createdon` AS `createdon`,`users`.`email` AS `email`,`users`.`acl` AS `acl`,`users`.`options` AS `options`,`users`.`disabled` AS `disabled`,(case when isnull(`employees`.`emp_name`) then `users`.`userlogin` else `employees`.`emp_name` end) AS `username` from (`users` left join `employees` on((`users`.`userlogin` = `employees`.`login`))) */; /*!50001 SET character_set_client = @saved_cs_client */; /*!50001 SET character_set_results = @saved_cs_results */; diff --git a/install.md b/install.md index ff0825ab1..a154a5e20 100644 --- a/install.md +++ b/install.md @@ -11,6 +11,6 @@ Установить параметры соединения в файле config.ini. - Также необходимо убедится что разрешено право записи в папки uploads и logs. + Также необходимо убедиться что разрешено право записи в папки uploads и logs. - Залогинится дефолтным пользователем admin admin + Залогиниться дефолтным пользователем admin admin diff --git a/www/app/entity/itemset.php b/www/app/entity/itemset.php new file mode 100644 index 000000000..4a16dc449 --- /dev/null +++ b/www/app/entity/itemset.php @@ -0,0 +1,18 @@ +set_id = 0; + + } +} diff --git a/www/app/pages/base.php b/www/app/pages/base.php index 3a14af9e9..6e35cfad7 100644 --- a/www/app/pages/base.php +++ b/www/app/pages/base.php @@ -53,8 +53,9 @@ public function __construct($params = null) { $this->pageinfo->setVisible(false); } - - + $options = System::getOptions('common'); + + $this->_tvars["useset"] = $options['useset']==1; $this->_tvars["smart"] = Helper::generateSmartMenu(); $this->_tvars["picontent"] = $pi; diff --git a/www/app/pages/doc/prodissue.php b/www/app/pages/doc/prodissue.php index 963c83715..e6fa4c18b 100644 --- a/www/app/pages/doc/prodissue.php +++ b/www/app/pages/doc/prodissue.php @@ -46,6 +46,7 @@ public function __construct($docid = 0, $basedocid = 0) { $this->docform->add(new CheckBox('planned')); $this->docform->add(new SubmitLink('addrow'))->onClick($this, 'addrowOnClick'); + $this->docform->add(new SubmitButton('savedoc'))->onClick($this, 'savedocOnClick'); $this->docform->add(new SubmitButton('execdoc'))->onClick($this, 'savedocOnClick'); @@ -117,6 +118,7 @@ public function deleteOnClick($sender) { $this->docform->detail->Reload(); } + public function addrowOnClick($sender) { $this->editdetail->setVisible(true); $this->editdetail->editquantity->setText("1"); @@ -303,4 +305,6 @@ public function OnAutoItem($sender) { return Stock::findArrayAC($store_id,$text) ; } + + } diff --git a/www/app/pages/options.php b/www/app/pages/options.php index a109353d7..c834e5dfd 100644 --- a/www/app/pages/options.php +++ b/www/app/pages/options.php @@ -36,6 +36,7 @@ public function __construct() { + $this->common->add(new CheckBox('useset')); $this->common->add(new CheckBox('useval'))->onChange($this, "onVal"); $this->common->add(new TextInput('cdoll')); $this->common->add(new TextInput('ceuro')); @@ -70,6 +71,7 @@ public function __construct() { $this->common->price3->setText($common['price3']); $this->common->price4->setText($common['price4']); $this->common->price5->setText($common['price5']); + $this->common->useset->setChecked($common['useset']); $this->common->useval->setChecked($common['useval']); // $this->common->closeddate->setDate($common['closeddate']); @@ -138,6 +140,7 @@ public function saveCommonOnClick($sender) { $common['price3'] = $this->common->price3->getText(); $common['price4'] = $this->common->price4->getText(); $common['price5'] = $this->common->price5->getText(); + $common['useset'] = $this->common->useset->isChecked(); $common['useval'] = $this->common->useval->isChecked(); // $common['closeddate'] = $this->common->closeddate->getDate(); diff --git a/www/app/pages/reference/itemlist.php b/www/app/pages/reference/itemlist.php index 38a812229..f2c939608 100644 --- a/www/app/pages/reference/itemlist.php +++ b/www/app/pages/reference/itemlist.php @@ -3,6 +3,8 @@ namespace App\Pages\Reference; use \Zippy\Html\DataList\DataView; +use \Zippy\Html\DataList\ArrayDataSource; +use Zippy\Html\Form\AutocompleteTextInput; use \Zippy\Html\Form\DropDownChoice; use \Zippy\Html\Form\Form; use \Zippy\Html\Form\TextInput; @@ -14,6 +16,7 @@ use \Zippy\Html\Link\ClickLink; use \Zippy\Html\Panel; use \App\Entity\Item; +use \App\Entity\ItemSet; use \App\Entity\Category; use \App\System; @@ -21,6 +24,8 @@ class ItemList extends \App\Pages\Base { private $_item; + private $_pitem_id=0; + public $_itemset = array(); public function __construct($add = false) { parent::__construct(); @@ -89,6 +94,17 @@ public function __construct($add = false) { $this->itemdetail->add(new SubmitButton('save'))->onClick($this, 'OnSubmit'); $this->itemdetail->add(new Button('cancel'))->onClick($this, 'cancelOnClick'); + + $this->add(new Panel('setpanel'))->setVisible(false); + $this->setpanel->add(new DataView('setlist', new ArrayDataSource($this,'_itemset'), $this, 'itemsetlistOnRow')); + $this->setpanel->add(new Form('setform'))->onSubmit($this, 'OnAddSet'); + $this->setpanel->setform->add(new AutocompleteTextInput('editsname'))->onText($this, 'OnAutoSet'); + $this->setpanel->setform->add(new TextInput('editsqty',1)); + + $this->setpanel->add(new Label('stitle')); + $this->setpanel->add(new ClickLink('backtolist',$this,"onback")); + + if ($add == false) { $this->itemtable->itemlist->Reload(); } else { @@ -119,6 +135,7 @@ public function itemlistOnRow($row) { $row->add(new ClickLink('edit'))->onClick($this, 'editOnClick'); $row->add(new ClickLink('delete'))->onClick($this, 'deleteOnClick'); + $row->add(new ClickLink('set'))->onClick($this, 'setOnClick'); } public function deleteOnClick($sender) { @@ -207,7 +224,79 @@ public function OnSubmit($sender) { $this->itemtable->itemlist->Reload(); } + + + + //комплекты + public function onback($sender) { + $this->setpanel->setVisible(false); + $this->itemtable->setVisible(true); + + } + public function setOnClick($sender) { + $item = $sender->owner->getDataItem(); + $this->_pitem_id = $item->item_id; + $this->_itemset = ItemSet::find("pitem_id=".$item->item_id,"itemname"); + $this->setpanel->setVisible(true); + $this->itemtable->setVisible(false); + + $this->setpanel->stitle->setText($item->itemname); + + $this->_itemset = ItemSet::find("pitem_id=".$this->_pitem_id ,"itemname"); + $this->setpanel->setlist->Reload(); + + } + + public function itemsetlistOnRow($row) { + $item = $row->getDataItem(); + $row->add(new Label('sname', $item->itemname)); + $row->add(new Label('scode', $item->item_code)); + $row->add(new Label('sqty', $item->qty)); + $row->add(new ClickLink('sdel'))->onClick($this, 'ondelset'); + + } + + public function OnAutoSet($sender) { + $text = Item::qstr('%' . $sender->getText() . '%'); + $in="(". $this->_pitem_id; + foreach($this->_itemset as $is){ + $in.= ",". $is->item_id ; + } + + $in.=")"; + return Item::findArray('itemname', "item_id not in {$in} and (itemname like {$text} or item_code like {$text}) and disabled <> 1"); + } + public function OnAddSet($sender) { + $id = $sender->editsname->getKey(); + if($id==0){ + $this->setError("Не выбран товар"); + return; + } + + $qty = $sender->editsqty->getText(); + + $set = new ItemSet(); + $set->pitem_id = $this->_pitem_id; + $set->item_id = $id; + $set->qty = $qty; + + $set->save() ; + + $this->_itemset = ItemSet::find("pitem_id=".$this->_pitem_id ,"itemname"); + + $this->setpanel->setlist->Reload(); + $sender->clean(); + } + public function ondelset($sender) { + $item = $sender->owner->getDataItem(); + + ItemSet::delete($item->set_id); + + $this->_itemset = ItemSet::find("pitem_id=".$this->_pitem_id ,"itemname"); + + $this->setpanel->setlist->Reload(); + } } class ItemDataSource implements \Zippy\Interfaces\DataSource diff --git a/www/templates/pages/doc/prodissue.html b/www/templates/pages/doc/prodissue.html index abec73231..bf44b76b4 100644 --- a/www/templates/pages/doc/prodissue.html +++ b/www/templates/pages/doc/prodissue.html @@ -42,8 +42,9 @@

Списание на производство

- Добавить товар - + Добавить ТМЦ + +
diff --git a/www/templates/pages/options.html b/www/templates/pages/options.html index df4c78220..8510f47a8 100644 --- a/www/templates/pages/options.html +++ b/www/templates/pages/options.html @@ -146,6 +146,10 @@

Основные настройки

+
+ + +
diff --git a/www/templates/pages/reference/itemlist.html b/www/templates/pages/reference/itemlist.html index b739bfd35..7e531232e 100644 --- a/www/templates/pages/reference/itemlist.html +++ b/www/templates/pages/reference/itemlist.html @@ -49,8 +49,14 @@

Справочник товаров

- +
Название Код + {{#useset}} + + {{/useset}} + + + +
@@ -132,6 +138,25 @@

Редактирование товара

+
+ +
+ К справочнику +

+
+ + + + + +
+ + + +
НаименованиеКодКол.
+
+ +
diff --git a/www/templates/wait.html b/www/templates/wait.html index 5065fdeba..62fec2837 100644 --- a/www/templates/wait.html +++ b/www/templates/wait.html @@ -1,10 +1,14 @@ - + + +
-
+ + - + + \ No newline at end of file