Skip to content

Commit 5828e71

Browse files
committed
Sell Unit By Name & Sku Search
1 parent ee4a6d2 commit 5828e71

File tree

9 files changed

+629
-18
lines changed

9 files changed

+629
-18
lines changed

Uris.js

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,8 @@ module.exports = Uris = {
99
LOGIN_URI: '/login',
1010
SELL_INVENTORY_TRACK: {
1111
CREATE: '/sell-inventory-track/create',
12-
UPDATE: '/sell-inventory-track/update'
12+
UPDATE: '/sell-inventory-track/edit/:productId',
13+
BASE: '/sell-inventory-track/index',
1314
},
1415
USER: {
1516
CREATE: '/user/create',

main.js

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,8 @@ var LoginPage = require('./pages/Login');
4141
var DashboardPage = require('./DashboardPage');
4242

4343
var TrackPage = require('./sell/SellTrackingSettings');
44+
var TrackEdit = require('./sell/TrackingEdit');
45+
var ListTrack = require('./sell/ListTrack');
4446

4547
var Uris = require('./Uris');
4648

@@ -89,6 +91,8 @@ document.addEventListener("EVENT_BUS_CONNECTED", function () {
8991
</Route>
9092

9193
<Route path={Uris.SELL_INVENTORY_TRACK.CREATE} component={TrackPage}/>
94+
<Route path={Uris.SELL_INVENTORY_TRACK.UPDATE} component={TrackEdit}/>
95+
<Route path={Uris.SELL_INVENTORY_TRACK.BASE} component={ListTrack}/>
9296

9397
</Route>
9498
</Router>, document.getElementById('app'));

sell/Events.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,9 @@ var Events = {
22
SELL_CREATED: 'SELL_CREATED',
33
SELL_UPDATED: 'SELL_UPDATED',
44
SELL_DELETED: 'SELL_DELETED',
5+
6+
TRACK_CREATED: 'TRACK_CREATED',
7+
TRACK_UPDATED: 'TRACK_UPDATED'
58
};
69

710
module.exports = Events;

sell/ListTrack.js

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
"use strict";
2+
3+
import React from 'react';
4+
var ProductDependencyList = require('./ProductDependencyList');
5+
6+
class ListTrack extends React.Component {
7+
constructor(props) {
8+
super(props);
9+
this.state = {
10+
tracks: [],
11+
tracksByProductId: {},
12+
products: [],
13+
productsById: {},
14+
};
15+
}
16+
17+
render() {
18+
var $this = this;
19+
20+
return (
21+
22+
<div className="row">
23+
<div className="col-md-12">
24+
25+
<ProductDependencyList
26+
tracksByProductId={$this.state.tracksByProductId}
27+
productsById={$this.state.productsById}
28+
products={$this.state.products}
29+
/>
30+
31+
</div>
32+
</div>
33+
);
34+
}
35+
}
36+
37+
module.exports = ListTrack;

sell/ProductDependencyList.js

Lines changed: 71 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,71 @@
1+
"use strict";
2+
var Stream = require('streamjs');
3+
4+
import React from 'react';
5+
6+
class ProductDependencyList extends React.Component {
7+
constructor(props) {
8+
super(props);
9+
}
10+
11+
render() {
12+
var $this = this;
13+
var tracksByProductId = $this.props.tracksByProductId;
14+
var productsById = $this.props.productsById;
15+
var products = $this.props.products;
16+
return (
17+
18+
<table class="table table-condensed">
19+
<thead>
20+
<tr>
21+
<th>
22+
Product
23+
</th>
24+
<th>
25+
Dependencies
26+
</th>
27+
</tr>
28+
</thead>
29+
<tbody>
30+
{
31+
Stream(products)
32+
.map(p => {
33+
return {
34+
tracks: tracksByProductId[p.id] || [],
35+
product: productsById[p.id] || {}
36+
};
37+
})
38+
.filter(e => !!e.tracks.length)
39+
.map(e => {
40+
const {tracks, product} = e;
41+
return (
42+
<tr>
43+
<td>{product.name}</td>
44+
<td>
45+
{
46+
tracks.map((tk, idx) => {
47+
return (
48+
tk.name
49+
);
50+
})
51+
}
52+
</td>
53+
</tr>
54+
);
55+
})
56+
.toArray()
57+
}
58+
</tbody>
59+
</table>
60+
61+
);
62+
}
63+
}
64+
65+
ProductDependencyList.defaultProps = {
66+
tracksByProductId: {},
67+
productsById: {},
68+
products: []
69+
};
70+
71+
module.exports = ProductDependencyList;

sell/SellTrackingSettings.js

Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ var Promise = require('bluebird');
99

1010
var trkSv = require('./TrackService');
1111

12-
var SellApp;
13-
module.exports = SellApp = React.createClass({
12+
var SellTrackingSettings;
13+
module.exports = SellTrackingSettings = React.createClass({
1414
getDefaultProps: function () {
1515
return {};
1616
},
@@ -185,6 +185,7 @@ module.exports = SellApp = React.createClass({
185185
<th>Quantity</th>
186186
<th>Selling Unit</th>
187187
<th>Stock Unit</th>
188+
<th>Action</th>
188189
</tr>
189190
</thead>
190191

@@ -227,6 +228,11 @@ module.exports = SellApp = React.createClass({
227228
$this.buyingUnit(prod)
228229
}
229230
</td>
231+
<td>
232+
{
233+
$this.action(prod)
234+
}
235+
</td>
230236
</tr>
231237
);
232238

@@ -359,6 +365,26 @@ module.exports = SellApp = React.createClass({
359365
return $this.buyUnit(prod).name;
360366
},
361367

368+
action: function (prod) {
369+
var $this = this;
370+
371+
var remove = (pd) => {
372+
var tracks = $this.state.tracks || [];
373+
tracks = tracks.filter(tk => tk !== pd);
374+
$this.setState({tracks: tracks});
375+
};
376+
377+
return (
378+
<div>
379+
<span className="btn btn-danger" onClick={e => remove(prod)}>
380+
381+
<span className="glyphicon glyphicon-remove"></span>
382+
383+
</span>
384+
</div>
385+
);
386+
},
387+
362388
rawProducts: function (prod) {
363389
var $this = this;
364390

sell/ServerEvents.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ var ServerEvents = {
44
CREATE_SELL: 'CREATE_SELL',
55
UPDATE_SELL: 'UPDATE_SELL',
66
DELETE_SELL: 'DELETE_SELL',
7+
8+
FIND_ALL_TRACKS: 'FIND_ALL_TRACKS',
9+
FIND_TRACK: 'FIND_TRACK',
710
CREATE_TRACK: 'CREATE_TRACK',
811
UPDATE_TRACK: 'UPDATE_TRACK'
912
};

sell/TrackService.js

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ class TrackService {
1010

1111
findAll(params) {
1212
return new Promise(function (resolve, reject) {
13-
eb().send(ServerEvents.FIND_ALL_USERS, params, null, function (err, msg) {
13+
eb().send(ServerEvents.FIND_ALL_TRACKS, params, null, function (err, msg) {
1414
if (!!err || !!msg.failureCode || !!(msg.body || {}).responseCode) {
1515
reject(err || msg);
1616

17-
console.log("Error " + Events.USER_CREATED, err || msg);
17+
console.log("Error " + ServerEvents.FIND_ALL_TRACKS, err || msg);
1818
return;
1919
}
2020

@@ -25,11 +25,11 @@ class TrackService {
2525

2626
find(id) {
2727
return new Promise(function (resolve, reject) {
28-
eb().send(ServerEvents.FIND_USER, id, null, function (err, msg) {
28+
eb().send(ServerEvents.FIND_TRACK, id, null, function (err, msg) {
2929
if (!!err || !!msg.failureCode || !!(msg.body || {}).responseCode) {
3030
reject(err || msg);
3131

32-
console.log("Error " + Events.USER_CREATED, err || msg);
32+
console.log("Error " + ServerEvents.FIND_TRACK, err || msg);
3333
return;
3434
}
3535

@@ -38,14 +38,14 @@ class TrackService {
3838
});
3939
}
4040

41-
create(track) {
41+
create(tracks) {
4242
return new Promise(function (resolve, reject) {
4343

44-
track.forEach(tk => tk.productId = tk.id);
44+
tracks.forEach(tk => tk.productId = tk.id);
4545

46-
console.log("SEND." + ServerEvents.CREATE_TRACK, JSON.stringify(track));
46+
console.log("SEND." + ServerEvents.CREATE_TRACK, JSON.stringify(tracks));
4747

48-
eb().send(ServerEvents.CREATE_TRACK, track, null, function (err, msg) {
48+
eb().send(ServerEvents.CREATE_TRACK, tracks, null, function (err, msg) {
4949
if (!!err || !!msg.failureCode || !!(msg.body || {}).responseCode) {
5050
reject(err || msg);
5151

@@ -55,22 +55,22 @@ class TrackService {
5555

5656
resolve(msg.body);
5757

58-
ee.emit(Events.CREATE_TRACK, msg.body);
58+
ee.emit(Events.TRACK_CREATED, msg.body);
5959

60-
console.log(Events.CREATE_TRACK, track);
60+
console.log(Events.TRACK_CREATED, tracks);
6161
});
6262
});
6363
}
6464

65-
update(track) {
65+
update(productId, tracks) {
6666

67-
track = track.forEach(tk => tk.productId = tk.id);
67+
tracks = tracks.forEach(tk => tk.productId = tk.id);
6868

6969
return new Promise(function (resolve, reject) {
7070

71-
console.log("SEND." + ServerEvents.UPDATE_TRACK, JSON.stringify(track));
71+
console.log("SEND." + ServerEvents.UPDATE_TRACK, JSON.stringify({productId, tracks}));
7272

73-
eb().send(ServerEvents.UPDATE_TRACK, track, null, function (err, msg) {
73+
eb().send(ServerEvents.UPDATE_TRACK, {productId, tracks}, null, function (err, msg) {
7474
if (!!err || !!msg.failureCode || !!(msg.body || {}).responseCode) {
7575
reject(err || msg);
7676

@@ -80,11 +80,12 @@ class TrackService {
8080

8181
resolve(msg.body);
8282

83-
ee.emit(Events.SELL_UPDATED, msg.body);
83+
ee.emit(Events.TRACK_UPDATED, msg.body);
8484
});
8585
});
8686
}
8787

88+
8889
}
8990

9091
module.exports = new TrackService();

0 commit comments

Comments
 (0)