lang->line('sales_cancel_sale'); ?>
@@ -279,8 +279,9 @@ if (isset($success))
if(count($payments) > 0)
{
?>
+ 'finish_sale_form')); ?>
+
- 'finish_sale_form')); ?>
'comment', 'id'=>'comment', 'value'=>$comment, 'rows'=>'4', 'cols'=>'23'));?>
diff --git a/docker/start_container.sh b/docker/start_container.sh
index 449edec29..0c13fd423 100644
--- a/docker/start_container.sh
+++ b/docker/start_container.sh
@@ -1,10 +1,10 @@
#!/bin/bash
-if [ ! -f /mysql-configured ]; then
+if [ ! -f /app/mysql-configured ]; then
/usr/bin/mysqld_safe &
sleep 10s
MYSQL_PASSWORD=`pwgen -c -n -1 12`
echo mysql root password: $MYSQL_PASSWORD
- echo $MYSQL_PASSWORD > /mysql-root-pw.txt
+ echo $MYSQL_PASSWORD > /app/mysql-root-pw.txt
[ -f /var/www/html/index.html ] && rm /var/www/html/index.html
mysqladmin -u root password $MYSQL_PASSWORD
cp /app/application/config/database.php.tmpl /app/application/config/database.php
@@ -12,7 +12,7 @@ if [ ! -f /mysql-configured ]; then
sed -i -e "s/\(password.*\?=.\).*\(.\)$/\1'${MYSQL_PASSWORD}'\2/g" /app/application/config/database.php
sed -i -e "s/\(database.*\?=.\).*\(.\)$/\1'ospos'\2/g" /app/application/config/database.php
mysql -e "CREATE DATABASE IF NOT EXISTS ospos; use ospos; source /app/database/tables.sql; source /app/database/constraints.sql;" -uroot -p${MYSQL_PASSWORD}
- touch /mysql-configured
+ touch /app/mysql-configured
killall mysqld
sleep 10s
fi
diff --git a/package.json b/package.json
index 91697d68c..50c850e02 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "opensourcepos",
- "version": "2.4",
+ "version": "2.4.0",
"description": "Open Source Point of Sale is a web based point of sale system written in the PHP language. It uses MySQL as the data storage back-end and has a simple user interface.",
"main": "index.php",
"scripts": {
diff --git a/test/giftcard_numbering.js b/test/giftcard_numbering.js
index 40bb2caeb..7b7390113 100644
--- a/test/giftcard_numbering.js
+++ b/test/giftcard_numbering.js
@@ -1,40 +1,22 @@
var assert = require("assert"); // node.js core module
+var ospos = require("./ospos");
describe("giftcard numbering test", function () {
-
- var server = "http://localhost/pos";
-
- var url = function url(suffix) {
- return server + suffix + "?XDEBUG_SESSION_START=ECLIPSE_DBGP&KEY=14241668456852'";
- };
+ this.timeout(25000);
it("should be able to login", function (done) {
- return this.browser.get(url("/index.php"))
- .elementByName('username').type("admin").getValue()
- .then(function(value) {
- assert.equal(value, "admin");
- })
- .elementByName('password').type("pointofsale").getValue()
- .then(function(value) {
- assert.ok(value, "pointofsale");
- })
- .elementByName('loginButton').click()
- .elementById('home_module_list').then(function(value) {
- assert.ok(value, "Login failed!!")
- })
- .then(done, done);
-
+ return ospos.login(this.browser, done);
});
- it.skip("issue #65: giftcard numbering should add properly", function() {
- return this.browser.get(url("/index.php/giftcards")).waitForElementByCss(".big_button").click()
- .waitForElementByName("value", 4000).type("100").elementById('giftcard_number').clear().type("10")
+ it("issue #65: giftcard numbering should add properly", function(done) {
+ return this.browser.get(ospos.url("/index.php/giftcards")).waitForElementByCss(".big_button").click()
+ .waitForElementByName("value", 10000).type("100").elementById('giftcard_number').clear().type("10")
.elementById("submit").click().waitForElementByXPath("//table/tbody/tr[td/text()='10']/td[4]", 2000).text().then(function (value) {
assert.ok(value, "giftcard failed to be added properly!");
}).elementByCss(".big_button").click().waitForElementByName("value", 4000).type("100").elementById("submit").click()
.waitForElementByXPath("//table/tbody/tr[td/text()='11']/td[4]").text().then(function (value) {
assert.equal(value, "11", "giftcard number not incrementing properly!!");
- });
+ }).then(done, done);
});
});
diff --git a/test/login.js b/test/login.js
deleted file mode 100644
index 35c6961ce..000000000
--- a/test/login.js
+++ /dev/null
@@ -1,3 +0,0 @@
-exports.loginFirst = function() {
-
-}
\ No newline at end of file
diff --git a/test/make_sale_receiving.js b/test/make_sale_receiving.js
new file mode 100644
index 000000000..1a3c4471b
--- /dev/null
+++ b/test/make_sale_receiving.js
@@ -0,0 +1,45 @@
+var assert = require('assert');
+var ospos = require('./ospos');
+
+describe("create item and make sale", function () {
+ this.timeout(25000);
+
+ it("should be able to add item", function (done) {
+ return this.browser.get(ospos.url("/index.php/items")).elementByCssSelector("a[title='New Item']", 5000).click()
+ .waitForElementByName("name", 10000).type("anItem").elementById("category").type("aCategory")
+ .elementById('cost_price', 2000).clear().type("10").elementById("unit_price", 2000).type("20")
+ .elementById('tax_name_1', 2000).type('VAT').elementById("tax_percent_name_1", 2000).type("21")
+ .elementById("1_quantity", 2000).type("1").elementById("reorder_level", 2000).type("0").elementById("submit", 2000).click()
+ .waitForElementByXPath("//table/tbody/tr[td/text()='anItem']/td[3]").text().then(function (value) {
+ assert.equal(value, "anItem", "item could not be created!!");
+ }).then(done, done);
+ });
+
+ it("should be able to make sale", function(done) {
+ return this.browser.get(ospos.url("/index.php/sales"))
+ .elementById("item", 3000).type("1\r\n")
+ .waitForElementByName("quantity", 5000).clear().type("2").elementByName("discount", 1000).type("10").elementByName("edit_item").click()
+ .elementById("add_payment_button", 2000).click().elementByCssSelector("tbody#payment_contents tr td:last-child", 5000).text().then(function(value) {
+ assert.equal(value, "$43.56", "price " + value + " in sale register is not correct!!");
+ }).elementById("finish_sale_button", 3000).submit().elementByCssSelector("#receipt_items tbody tr:nth-child(7) td:last-child", 5000).text().then(function(value) {
+ assert.equal(value, "$43.56", "price " + value + " on sale receipt is not correct!!");
+ }).elementByCssSelector("#receipt_items tbody tr:nth-child(9) td:last-child div.total-value", 5000).text().then(function(value) {
+ assert.equal(value, "-$43.56", "payment amount " + value + " on sale receipt is not correct!!")
+ }).then(done, done);
+ });
+
+
+ it("should be able to make receiving", function(done) {
+ return this.browser.get(ospos.url("/index.php/receivings"))
+ .elementById("item", 3000).type("1\r\n")
+ .waitForElementByName("quantity", 3000).clear().type("2").elementByName("edit_item").click()
+ .elementByCssSelector("td:nth-last-child(2)").text().then(function(value) {
+ assert.equal(value, "$20.00", "price " + value + " in receiving register is not correct!!");
+ }).elementById("finish_receiving_button").submit().elementByCssSelector("#receipt_items tbody tr:nth-last-child(2) td:nth-child(2) div.total-value").text().then(function(value) {
+ assert.equal(value, "$20.00", "price " + value + " on receiving receipt is not correct!!");
+ })
+ .then(done, done);
+ });
+
+
+});
\ No newline at end of file
diff --git a/test/ospos.js b/test/ospos.js
new file mode 100644
index 000000000..5d9d023ba
--- /dev/null
+++ b/test/ospos.js
@@ -0,0 +1,33 @@
+var assert = require('assert');
+
+var ospos = function() {
+
+ var server = "http://localhost";
+
+ return {
+
+ url : function(suffix) {
+ return server + suffix;
+ }
+ ,
+ login : function(browser, done) {
+ return browser.get(this.url("/index.php"))
+ .elementByName('username').type("admin").getValue()
+ .then(function(value) {
+ assert.equal(value, "admin");
+ })
+ .elementByName('password').type("pointofsale").getValue()
+ .then(function(value) {
+ assert.ok(value, "pointofsale");
+ })
+ .elementByName('loginButton').click()
+ .elementById('home_module_list').then(function(value) {
+ assert.ok(value, "Login failed!!")
+ })
+ .then(done, done);
+
+ }
+ }
+};
+
+module.exports = ospos();
\ No newline at end of file
diff --git a/travis-ci-apache b/travis-ci-apache
deleted file mode 100644
index 4c93d795e..000000000
--- a/travis-ci-apache
+++ /dev/null
@@ -1,21 +0,0 @@
-Alias /pos %TRAVIS_BUILD_DIR%
-
-
- DocumentRoot %TRAVIS_BUILD_DIR%
-
-
- Options FollowSymLinks MultiViews ExecCGI
- AllowOverride All
- Order deny,allow
- Allow from all
-
-
- # Wire up Apache to use Travis CI's php-fpm.
-
- AddHandler php5-fcgi .php
- Action php5-fcgi /php5-fcgi
- Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
- FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization
-
-
-