1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
5 Pman.Tab.XtupleMetric = new Roo.XComponent({
6 part : ["Xtuple","Metric"],
7 order : '900-Pman.Tab.XtupleMetric',
10 name : "unnamed module",
21 activate : function() {
25 var pid = _this.form.findField('pohead_id').getValue() * 1;
27 Roo.MessageBox.alert("Save First", "Please save the purchase order first, before adding items");
28 _this.dialog.layout.getRegion('center').showPanel(0);
33 _this.grid.footer.onClick('first');
36 deactivate : function (_self)
41 _this.grid.ds.each(function(r) {
43 poitem_id : r.data.poitem_id,
44 poitem_itemsite_id : r.data.poitem_itemsite_id,
45 poitem_unitprice : r.data.poitem_unitprice,
46 poitem_qty_ordered : r.data.poitem_qty_ordered
51 _this.form.findField('items').setValue(JSON.stringify(ar));
53 _this.dontClose = true;
54 _this.form.doAction("submit");
63 title : "Order Items",
71 //_this.dialog = Pman.Dialog.FILL_IN
72 if (_this.panel.active) {
73 this.footer.onClick('first');
76 beforeedit : function (e)
78 var r = e.record.data.poitem_qty_received * 1;
81 Roo.MessageBox.alert("Error", "This item has been receipted");
85 var status = _this.form.findField('pohead_status').getValue();
88 Roo.MessageBox.alert("Error", "This PO has been closed");
95 autoExpandColumn : 'item_descrip1',
102 beforeload : function (_self, o){
103 o.params = o.params || {};
104 var hid = _this.form.findField('pohead_id').getValue();
110 o.params.poitem_pohead_id = hid;
111 o.params._with_item = 1;
112 o.params._roo_office = _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2);
115 load : function (_self, records, options)
117 _this.grid.footer.updateSummary();
121 sortInfo : { field : 'poitem_linenumber', direction: 'ASC' },
127 url : baseURL + '/Xtuple/Roo/Poitem.php'
134 totalProperty : 'total',
153 var status = _this.form.findField('pohead_status').getValue();
156 Roo.MessageBox.alert("Error", "This PO has been closed");
160 var ct = _this.grid.ds.getCount();
162 var last = ct ? _this.grid.ds.getAt(ct-1).data.poitem_linenumber * 1 + 1 : 1;
164 var dt = _this.form.findField('pohead_orderdate').getValue();
166 var nr = _this.grid.ds.reader.newRow({
168 poitem_linenumber : last,
172 poitem_qty_ordered : 1,
176 _this.grid.stopEditing();
177 _this.grid.ds.insert(_this.grid.ds.getCount(), nr);
178 _this.grid.startEditing(_this.grid.ds.getCount()-1, 1);
181 cls : 'x-btn-text-icon',
183 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
191 var status = _this.form.findField('pohead_status').getValue();
194 Roo.MessageBox.alert("Error", "This PO has been closed");
198 var cs = _this.grid.getSelectionModel().getSelectedCell();
200 Roo.MessageBox.alert("Error", "Select a cell");
203 _this.grid.stopEditing();
204 var r = _this.grid.ds.getAt(cs[0]);
206 if(r.data.poitem_qty_received * 1 > 0){
207 Roo.MessageBox.alert("Error", "This item has been receipted");
212 _this.grid.ds.remove(r);
216 cls : 'x-btn-text-icon',
218 icon : rootURL + '/Pman/templates/images/trash.gif'
223 xtype: 'PagingToolbar',
226 emptyMsg : "No Item found",
228 updateSummary : function() {
232 url : baseURL + '/Xtuple/Roo/Poitem',
\r
235 _roo_office : _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2),
\r
237 poitem_pohead_id : _this.form.findField('pohead_id').getValue()
\r
239 success : function(d) {
241 f.displayEl.update(String.format(
\r
242 "{0} items | Total : {1} {2}",
\r
243 d.data[0].count_item,
\r
244 _this.form.findField('pohead_curr_id').el.dom.value,
\r
255 xtype: 'ColumnModel',
258 dataIndex : 'poitem_linenumber',
261 renderer : function(v) { return String.format('{0}', v); }
264 xtype: 'ColumnModel',
266 dataIndex : 'item_number',
267 header : 'Item code',
269 renderer : function(v) { return String.format('{0}', v); },
277 beforeselect : function (combo, record, index)
279 var ar = _this.grid.activeEditor.record;
282 ar.set('item_descrip1', record.data.itemsite_item_id_item_descrip1);
283 ar.set('poitem_itemsite_id', record.data.itemsite_id);
289 displayField : 'itemsite_item_id_item_number',
291 emptyText : "Select item",
292 forceSelection : true,
293 hiddenName : 'itemsite_item_id_item_number',
295 loadingText : "Searching...",
297 name : 'item_number',
299 qtip : "Select item",
300 queryParam : 'query[number]',
301 selectOnFocus : true,
302 tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b> - {itemsite_item_id_item_descrip1} </div>',
303 triggerAction : 'all',
305 valueField : 'item_number',
310 beforeload : function (_self, o){
311 o.params = o.params || {};
312 o.params.itemsite_posupply = 1;
316 sortInfo : { direction : 'ASC', field: 'item_number' },
321 url : baseURL + '/Roo/itemsite.php'
328 totalProperty : 'total',
329 fields : [{"name":"item_id","type":"int"},"item_number"]
336 xtype: 'ColumnModel',
338 dataIndex : 'item_descrip1',
339 header : 'Item description',
341 renderer : function(v) { return String.format('{0}', v); }
344 xtype: 'ColumnModel',
346 dataIndex : 'poitem_duedate',
349 renderer : function(v) { return String.format('{0}', v ? v.format('Y-m-d') : ''); }
352 xtype: 'ColumnModel',
355 dataIndex : 'poitem_qty_ordered',
358 renderer : function(v) { return String.format('{0}', v); },
363 xtype: 'NumberField',
365 allowDecimals : false,
366 decimalPrecision : 0,
368 style : 'text-align:right'
373 xtype: 'ColumnModel',
376 dataIndex : 'poitem_qty_received',
379 renderer : function(v,x,r) {
380 return String.format(
381 r.data.poitem_qty_ordered != (v-r.data.poitem_qty_returned) ? '<span style="color:red">{0}</span>': '{0}',
382 v - r.data.poitem_qty_returned);
386 xtype: 'ColumnModel',
389 dataIndex : 'poitem_qty_vouchered',
390 header : 'Vouchered',
392 renderer : function(v,x,r) {
393 return String.format(
394 r.data.poitem_qty_ordered != v ? '<span style="color:red">{0}</span>': '{0}',
399 xtype: 'ColumnModel',
402 dataIndex : 'poitem_unitprice',
403 header : 'Unit price',
405 renderer : function(v) { return String.format('{0}', (v || v == 0) ? parseFloat(v).toFixed(3) : ''); },
410 xtype: 'NumberField',
413 allowDecimals : false,
414 decimalPrecision : 0,
416 style : 'text-align:right'