1 //<script type="text/javascript">
3 // Auto generated file - created by app.Builder.js- do not edit directly (at present!)
5 Pman.Dialog.XtuplePurchaseOrder = {
10 show : function(data, cb)
18 this.dialog.show(this.data._el);
21 this.form.setValues(data);
22 this.form.fireEvent('actioncomplete', this.form, { type: 'setdata', data: data });
30 this.dialog = Roo.factory({
31 xtype: 'LayoutDialog',
36 this.layout.getRegion('center').showPanel(0);
44 title : "New Purchase Order",
48 xtype: 'ContentPanel',
51 title : "Order Details",
57 actioncomplete : function(_self,action)
59 if (action.type == 'setdata') {
60 _this.uploadBtn.disabled = false;
61 if(!_this.data.pohead_id && Pman.Login.authUser.name.length){
63 _this.form.findField('pohead_agent_username').setValue(Pman.Login.authUser.name);
64 _this.form.findField('pohead_orderdate').setValue(new Date());
67 _this.dialog.setTitle("Edit Purchase Order");
69 '_id' : _this.data.pohead_id
71 if(_this.data.office){
72 params['_roo_office'] = _this.data.office;
75 this.load({ method: 'GET', params: params});
78 if (action.type == 'load') {
79 if(_this.data.office){
80 _this.uploadBtn.disabled = true;
83 if (action.result.data.pohead_status == 'U') {
86 var cn = _this.form.findField('pohead_curr_id');
88 if (action.result.data.pohead_id * 1 < 1) {
89 cn.setDisabled(false);
93 _this.grid.footer.onClick('first');
98 if (action.type =='submit') {
101 var cid = this.findField('pohead_id').getValue()*1;
106 if (_this.callback) {
107 _this.callback.call(_this, _this.form.getValues());
113 _this.data.pohead_id = action.result.data.pohead_id;
114 this.fireEvent('actioncomplete', this, {
117 pohead_id : action.result.data.pohead_id
124 rendered : function (form)
128 actionfailed : function (_self, action)
130 _this.dialog.el.unmask();
131 if (action.failureType == 'client') {
132 Roo.MessageBox.alert("Error", "Please fill in all the required fields");
134 if (action.failureType == 'server') {
135 Roo.MessageBox.alert("Error", action.result.errorMsg);
137 _this.dialog.layout.getRegion('center').showPanel(0);
143 style : 'margin:10px;',
144 url : baseURL + '/Xtuple/Roo/Pohead.php',
149 emptyText : "Automatic",
150 fieldLabel : 'Order #',
151 name : 'pohead_number',
159 fieldLabel : 'Order Date',
161 name : 'pohead_orderdate',
167 fieldLabel : 'Estimated Arrival Date',
169 name : 'pohead_bg_arrival_est_day',
175 fieldLabel : 'Estimated Available Date',
177 name : 'pohead_bg_available_est_day',
183 fieldLabel : 'Latest Estimated Available Date',
185 name : 'pohead_bg_available_latest_day',
192 name : 'pohead_bg_va',
198 fieldLabel : 'Vendor',
199 name : 'pohead_vend_id_vend_name',
207 displayField : 'fname',
209 fieldLabel : 'Status',
210 hiddenName : 'pohead_status',
213 name : 'pohead_status',
215 tpl : '<div class="x-grid-cell-text x-btn button"><b>{fname}</b> </div>',
216 triggerAction : 'all',
218 valueField : 'ftype',
221 xtype: 'SimpleStore',
224 [ 'U', "Unreleased"],
228 fields : [ 'ftype', 'fname']
235 displayField : 'curr_name',
237 emptyText : "Select Currency",
238 fieldLabel : 'Currency',
239 forceSelection : true,
240 hiddenName : 'pohead_curr_id',
242 loadingText : "Searching...",
244 name : 'pohead_curr_id_curr_name',
246 qtip : "Select Currency",
247 queryParam : 'query[curr_name]',
248 selectOnFocus : true,
249 tpl : '<div class="x-grid-cell-text x-btn button"><b>{curr_name}</b> </div>',
250 triggerAction : 'all',
252 valueField : 'curr_id',
258 beforeload : function (_self, o){
259 o.params = o.params || {};
263 sortInfo : { direction : 'ASC', field: 'curr_id' },
268 url : baseURL + '/Roo/curr_symbol.php'
275 totalProperty : 'total',
277 {"name":"curr_id","type":"int"},
278 {"name":"curr_name","type":"string"}
287 displayField : 'location_name',
289 emptyText : "Select a location",
290 fieldLabel : 'Location',
291 forceSelection : true,
292 hiddenName : 'pohead_location_id',
294 loadingText : "Searching...",
296 name : 'pohead_location_id_location_name',
298 qtip : "Select terms",
299 queryParam : 'query[location_name]',
300 selectOnFocus : true,
301 tpl : '<div class="x-grid-cell-text x-btn button"><b>{location_name}</b> </div>',
302 triggerAction : 'all',
304 valueField : 'location_id',
310 beforeload : function (_self, o){
311 o.params = o.params || {};
313 o.params.location_netable = 1;
317 sortInfo : { direction : 'ASC', field: 'location_name' },
322 url : baseURL + '/Roo/location.php'
329 totalProperty : 'total',
330 fields : [{"name":"location_id","type":"int"},"location_name"]
338 displayField : 'terms_descrip',
340 emptyText : "Select Terms",
341 fieldLabel : 'Terms',
342 forceSelection : true,
343 hiddenName : 'pohead_terms_id',
345 loadingText : "Searching...",
347 name : 'pohead_terms_id_terms_descrip',
349 qtip : "Select Terms",
350 queryParam : 'query[terms_descrip]',
351 selectOnFocus : true,
352 tpl : '<div class="x-grid-cell-text x-btn button"><b>{terms_descrip}</b> </div>',
353 triggerAction : 'all',
355 valueField : 'terms_id',
361 beforeload : function (_self, o){
362 o.params = o.params || {};
366 sortInfo : { direction : 'ASC', field: 'terms_id' },
371 url : baseURL + '/Roo/Terms.php'
378 totalProperty : 'total',
380 {"name":"terms_id","type":"int"},
381 {"name":"terms_descrip","type":"string"}
390 displayField : 'taxzone_descrip',
392 emptyText : "Select Tax Zone",
393 fieldLabel : 'Tax Zone',
394 forceSelection : true,
395 hiddenName : 'pohead_taxzone_id',
397 loadingText : "Searching...",
399 name : 'pohead_taxzone_id_taxzone_descrip',
401 qtip : "Select Tax Zone",
402 queryParam : 'query[taxzone_descrip]',
403 selectOnFocus : true,
404 tpl : '<div class="x-grid-cell-text x-btn button"><b>{taxzone_descrip}</b> </div>',
405 triggerAction : 'all',
407 valueField : 'taxzone_id',
413 beforeload : function (_self, o){
414 o.params = o.params || {};
418 sortInfo : { direction : 'ASC', field: 'taxzone_id' },
423 url : baseURL + '/Roo/Taxzone.php'
430 totalProperty : 'total',
432 {"name":"taxzone_id","type":"int"},
433 {"name":"taxzone_descrip","type":"string"}
442 displayField : 'emp_name',
444 emptyText : "Select Purchasing Agent",
445 fieldLabel : 'Purchase Agent',
446 forceSelection : true,
447 hiddenName : 'pohead_agent_username',
449 loadingText : "Searching...",
451 name : 'pohead_agent_username',
453 qtip : "Select Purchasing Agent",
454 queryParam : 'query[emp_name]',
455 selectOnFocus : true,
456 tpl : '<div class="x-grid-cell-text x-btn button"><b>{emp_name}</b> </div>',
457 triggerAction : 'all',
459 valueField : 'emp_name',
465 beforeload : function (_self, o){
466 o.params = o.params || {};
470 sortInfo : { direction : 'ASC', field: 'emp_id' },
475 url : baseURL + '/Roo/Emp.php'
482 totalProperty : 'total',
484 {"name":"emp_id","type":"int"},
485 {"name":"emp_name","type":"string"}
493 fieldLabel : 'Comments',
495 name : 'pohead_comments',
501 name : 'pohead_vend_id'
521 activate : function() {
525 var pid = _this.form.findField('pohead_id').getValue() * 1;
527 Roo.MessageBox.alert("Save First", "Please save the purchase order first, before adding items");
528 _this.dialog.layout.getRegion('center').showPanel(0);
533 _this.grid.footer.onClick('first');
541 tableName : 'poitem',
542 title : "Order Items",
550 //_this.dialog = Pman.Dialog.FILL_IN
551 if (_this.panel.active) {
552 this.footer.onClick('first');
555 beforeedit : function (e)
557 var r = e.record.data.is_receipted * 1;
560 Roo.MessageBox.alert("Error", "This item has been receipted");
564 var status = _this.form.findField('pohead_status').getValue();
567 Roo.MessageBox.alert("Error", "This PO has been closed");
574 autoExpandColumn : 'item_descrip1',
581 beforeload : function (_self, o){
582 o.params = o.params || {};
583 var hid = _this.form.findField('pohead_id').getValue();
589 o.params.poitem_pohead_id = hid;
590 o.params._with_item = 1;
591 o.params.is_receipted = 1;
592 o.params._roo_office = _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2);
595 load : function (_self, records, options)
597 _this.grid.footer.updateSummary();
601 sortInfo : { field : 'poitem_linenumber', direction: 'ASC' },
607 url : baseURL + '/Xtuple/Roo/Poitem.php'
614 totalProperty : 'total',
633 var status = _this.form.findField('pohead_status').getValue();
636 Roo.MessageBox.alert("Error", "This PO has been closed");
640 var ct = _this.grid.ds.getCount();
642 var last = ct ? _this.grid.ds.getAt(ct-1).data.poitem_linenumber * 1 + 1 : 1;
644 var dt = _this.form.findField('pohead_orderdate').getValue();
646 var nr = _this.grid.ds.reader.newRow({
648 poitem_linenumber : last,
652 poitem_qty_ordered : 1,
656 _this.grid.stopEditing();
657 _this.grid.ds.insert(_this.grid.ds.getCount(), nr);
658 _this.grid.startEditing(_this.grid.ds.getCount()-1, 1);
661 cls : 'x-btn-text-icon',
663 icon : Roo.rootURL + 'images/default/dd/drop-add.gif'
671 var status = _this.form.findField('pohead_status').getValue();
674 Roo.MessageBox.alert("Error", "This PO has been closed");
678 var cs = _this.grid.getSelectionModel().getSelectedCell();
680 Roo.MessageBox.alert("Error", "Select a cell");
683 _this.grid.stopEditing()
684 var r = _this.grid.ds.getAt(cs[0]);
686 if(r.data.is_receipted * 1 > 0){
687 Roo.MessageBox.alert("Error", "This item has been receipted");
692 _this.grid.ds.remove(r);
696 cls : 'x-btn-text-icon',
698 icon : rootURL + '/Pman/templates/images/trash.gif'
703 xtype: 'PagingToolbar',
706 emptyMsg : "No Item found",
708 updateSummary : function() {
712 url : baseURL + '/Xtuple/Roo/Poitem',
\r
715 _roo_office : _this.data.office ? _this.data.office : baseURL.split('/').pop().substr(0,2),
\r
717 poitem_pohead_id : _this.form.findField('pohead_id').getValue()
\r
719 success : function(d) {
721 f.displayEl.update(String.format(
\r
722 "{0} items | Total : {1} {2}",
\r
723 d.data[0].count_item,
\r
724 _this.form.findField('pohead_curr_id').el.dom.value,
\r
735 xtype: 'ColumnModel',
738 dataIndex : 'poitem_linenumber',
741 renderer : function(v) { return String.format('{0}', v); }
744 xtype: 'ColumnModel',
746 dataIndex : 'item_number',
747 header : 'Item code',
749 renderer : function(v) { return String.format('{0}', v); },
757 beforeselect : function (combo, record, index)
759 var ar = _this.grid.activeEditor.record;
762 ar.set('item_descrip1', record.data.itemsite_item_id_item_descrip1);
763 ar.set('poitem_itemsite_id', record.data.itemsite_id);
769 displayField : 'itemsite_item_id_item_number',
771 emptyText : "Select item",
772 forceSelection : true,
773 hiddenName : 'itemsite_item_id_item_number',
775 loadingText : "Searching...",
777 name : 'item_number',
779 qtip : "Select item",
780 queryParam : 'query[number]',
781 selectOnFocus : true,
782 tpl : '<div class="x-grid-cell-text x-btn button"><b>{itemsite_item_id_item_number}</b> ${item_price:toFixed(2)}- {itemsite_item_id_item_descrip1} </div>',
783 triggerAction : 'all',
785 valueField : 'item_number',
790 beforeload : function (_self, o){
791 o.params = o.params || {};
795 sortInfo : { direction : 'ASC', field: 'item_number' },
800 url : baseURL + '/Roo/itemsite.php'
807 totalProperty : 'total',
808 fields : [{"name":"item_id","type":"int"},"item_number"]
815 xtype: 'ColumnModel',
817 dataIndex : 'item_descrip1',
818 header : 'Item description',
820 renderer : function(v) { return String.format('{0}', v); }
823 xtype: 'ColumnModel',
825 dataIndex : 'poitem_duedate',
828 renderer : function(v) { return String.format('{0}', v ? v.format('Y-m-d') : ''); }
831 xtype: 'ColumnModel',
834 dataIndex : 'poitem_qty_ordered',
837 renderer : function(v) { return String.format('{0}', v); },
842 xtype: 'NumberField',
844 allowDecimals : false,
845 decimalPrecision : 0,
847 style : 'text-align:right'
852 xtype: 'ColumnModel',
855 dataIndex : 'poitem_qty_received',
858 renderer : function(v,x,r) {
859 return String.format(
860 r.data.poitem_qty_ordered != (v-r.data.poitem_qty_returned) ? '<span style="color:red">{0}</span>': '{0}',
861 v - r.data.poitem_qty_returned);
865 xtype: 'ColumnModel',
868 dataIndex : 'poitem_qty_vouchered',
869 header : 'Vouchered',
871 renderer : function(v,x,r) {
872 return String.format(
873 r.data.poitem_qty_ordered != v ? '<span style="color:red">{0}</span>': '{0}',
878 xtype: 'ColumnModel',
881 dataIndex : 'poitem_unitprice',
882 header : 'Unit price',
884 renderer : function(v) { return String.format('{0}', (v || v == 0) ? parseFloat(v).toFixed(3) : ''); },
889 xtype: 'NumberField',
891 allowDecimals : false,
892 decimalPrecision : 0,
894 style : 'text-align:right'
902 xtype: 'NestedLayoutPanel',
907 xtype: 'BorderLayout',
914 activate : function() {
915 _this.itempanel = this;
918 if (_this.itemgrid) {
919 _this.itemgrid.footer.onClick('first');
927 tableName : 'poitem',
935 _this.itemgrid = this;
936 //_this.dialog = Pman.Dialog.FILL_IN
937 if (_this.itempanel.active) {
938 this.footer.onClick('first');
941 rowclick : function (_self, rowIndex, e)
944 _this.gltransgrid.footer.onClick('first');
947 autoExpandColumn : 'item_number',
957 click : function (_self, e)
961 url : baseURL + '/Roo/Metasql',
965 _group : 'gltrans_stock',
967 'pohead_number:text' : _this.form.findField('pohead_number').getValue(),
980 xtype: 'RowSelectionModel',
988 beforeload : function (_self, o)
990 o.params = o.params || {};
991 var hid = _this.form.findField('pohead_id').getValue();
997 o.params.poitem_pohead_id = hid;
999 o.params._with_item = 1;
1004 sortInfo : { field : 'poitem_id', direction: 'ASC' },
1009 url : baseURL + '/Roo/poitem.php'
1012 xtype: 'JsonReader',
1014 totalProperty : 'total',
1035 'name': 'leader_id',
1039 'name': 'leader_office_id',
1043 'name': 'leader_name',
1047 'name': 'leader_phone',
1051 'name': 'leader_fax',
1055 'name': 'leader_email',
1059 'name': 'leader_company_id',
1063 'name': 'leader_role',
1067 'name': 'leader_active',
1071 'name': 'leader_remarks',
1075 'name': 'leader_passwd',
1079 'name': 'leader_owner_id',
1083 'name': 'leader_lang',
1087 'name': 'leader_no_reset_sent',
1091 'name': 'leader_action_type',
1095 'name': 'leader_project_id',
1099 'name': 'leader_deleted_by',
1103 'name': 'leader_deleted_dt',
1107 'name': 'leader_firstname',
1111 'name': 'leader_lastname',
1115 'name': 'leader_name_facebook',
1119 'name': 'leader_url_blog',
1123 'name': 'leader_url_twitter',
1127 'name': 'leader_url_linkedin',
1131 'name': 'leader_crm_lead_percentage',
1135 'name': 'leader_crm_industry_id',
1139 'name': 'leader_crm_updated_action_id',
1143 'name': 'leader_crm_created_action_id',
1147 'name': 'leader_crm_type_id',
1154 xtype: 'PagingToolbar',
1156 displayInfo : false,
1157 displayMsg : "Displaying poitem{0} - {1} of {2}",
1158 emptyMsg : "No item found",
1163 xtype: 'ColumnModel',
1165 dataIndex : 'poitem_linenumber',
1168 renderer : function(v) { return String.format('{0}', v); }
1171 xtype: 'ColumnModel',
1173 dataIndex : 'item_number',
1176 renderer : function(v) { return String.format('{0}', v); }
1179 xtype: 'ColumnModel',
1181 dataIndex : 'poitem_qty_ordered',
1184 renderer : function(v) { return String.format('{0}', v); }
1187 xtype: 'ColumnModel',
1189 dataIndex : 'poitem_qty_received',
1190 header : 'Received',
1192 renderer : function(v,x,r)
1194 return String.format('{0}', (v- r.data.poitem_qty_returned)) ;
1199 xtype: 'ColumnModel',
1201 dataIndex : 'poitem_unitprice',
1202 header : 'Unit Price',
1204 renderer : function(v,x,r)
1207 return String.format('{0}', (v- r.data.poitem_qty_returned) ? parseFloat(v- r.data.poitem_qty_returned).toFixed(3) : '') ;
1218 activate : function() {
1219 _this.gltranspanel = this;
1220 //if (_this.gltransgrid) {
1221 // _this.gltransgrid.footer.onClick('first');
1226 fitContainer : true,
1229 tableName : 'Gltrans',
1237 _this.gltransgrid = this;
1238 //_this.dialog = Pman.Dialog.FILL_IN
1239 // if (_this.gltranspanel.active) {
1240 // this.footer.onClick('first');
1244 autoExpandColumn : 'gltrans_notes',
1247 xtype: 'RowSelectionModel',
1255 beforeload : function (_self, o)
1257 o.params = o.params || {};
1259 var s = _this.itemgrid.getSelectionModel().getSelected();
1261 Roo.MessageBox.alert('Error', 'Please select a item');
1265 o.params._poview = 1;
1266 o.params.gltrans_deleted = 0;
1267 o.params.gltrans_doctype = 'PO';
1268 o.params._linenumber = s.data.poitem_linenumber;
1269 o.params._item = s.data.item_number;
1270 o.params._ponumber = _this.form.findField('pohead_number').getValue();
1275 sortInfo : { field : 'gltrans_id', direction: 'ASC' },
1280 url : baseURL + '/Roo/gltrans.php'
1283 xtype: 'JsonReader',
1285 totalProperty : 'total',
1306 'name': 'leader_id',
1310 'name': 'leader_office_id',
1314 'name': 'leader_name',
1318 'name': 'leader_phone',
1322 'name': 'leader_fax',
1326 'name': 'leader_email',
1330 'name': 'leader_company_id',
1334 'name': 'leader_role',
1338 'name': 'leader_active',
1342 'name': 'leader_remarks',
1346 'name': 'leader_passwd',
1350 'name': 'leader_owner_id',
1354 'name': 'leader_lang',
1358 'name': 'leader_no_reset_sent',
1362 'name': 'leader_action_type',
1366 'name': 'leader_project_id',
1370 'name': 'leader_deleted_by',
1374 'name': 'leader_deleted_dt',
1378 'name': 'leader_firstname',
1382 'name': 'leader_lastname',
1386 'name': 'leader_name_facebook',
1390 'name': 'leader_url_blog',
1394 'name': 'leader_url_twitter',
1398 'name': 'leader_url_linkedin',
1402 'name': 'leader_crm_lead_percentage',
1406 'name': 'leader_crm_industry_id',
1410 'name': 'leader_crm_updated_action_id',
1414 'name': 'leader_crm_created_action_id',
1418 'name': 'leader_crm_type_id',
1425 xtype: 'PagingToolbar',
1428 displayMsg : "Displaying gltrans{0} - {1} of {2}",
1429 emptyMsg : "No gltrans found",
1446 var pohead_number = _this.form.findField('pohead_number').getValue();
1447 var pohead_id = _this.form.findField('pohead_id').getValue();
1449 var addv = function(){
1451 url : baseURL + '/Roo/pohead.php',
1454 pohead_id : pohead_id,
1458 success : function(res) {
1459 Roo.MessageBox.alert('Notice', 'DONE');
1464 Roo.MessageBox.confirm(
1466 "Are you sure to add all the variance for " + pohead_number + " ?",
1480 cls : 'x-btn-text-icon',
1481 text : "Add All Variance",
1482 icon : Roo.rootURL + 'images/default/tree/leaf.gif'
1490 var s = _this.gltransgrid.getSelectionModel().getSelected();
1493 Roo.MessageBox.alert('Error','Please select a transaction');
1497 if(s.data.gltrans_misc_id == -1){
1498 Roo.MessageBox.alert('Error','Please select a transaction not variance');
1502 var addit = function(){
1504 url : baseURL + '/Roo/Gltrans.php',
1507 gltrans_id : s.data.gltrans_id,
1511 success : function(res) {
1513 Roo.MessageBox.alert('Error','Variance already exist');
1515 _this.gltransgrid.footer.onClick('refresh');
1521 Roo.MessageBox.confirm(
1523 "Are you sure to add a variance ?",
1537 cls : 'x-btn-text-icon',
1538 text : "Add Variance",
1539 icon : Roo.rootURL + 'images/default/tree/leaf.gif'
1547 var s = _this.gltransgrid.getSelectionModel().getSelected();
1550 Roo.MessageBox.alert('Error','Please select a transaction');
1554 if(s.data.gltrans_misc_id != -1){
1555 Roo.MessageBox.alert('Error','Just allow to delete the variance');
1559 var delit = function(){
1561 url : baseURL + '/Roo/Gltrans.php',
1564 gltrans_id : s.data.gltrans_id,
1568 success : function(res) {
1569 _this.gltransgrid.footer.onClick('refresh');
1575 Roo.MessageBox.confirm(
1577 "Are you sure to delete ?",
1591 cls : 'x-btn-text-icon',
1592 text : "Delete Variance",
1593 icon : rootURL + '/Pman/templates/images/trash.gif'
1601 var pohead_number = _this.form.findField('pohead_number').getValue();
1602 var pohead_id = _this.form.findField('pohead_id').getValue();
1604 var fixit = function(){
1606 url : baseURL + '/Roo/pohead.php',
1609 pohead_id : pohead_id,
1613 success : function(res) {
1614 Roo.MessageBox.alert('Notice', 'DONE');
1619 Roo.MessageBox.confirm(
1621 "Are you sure to fix the unit cost of " + pohead_number + " ?",
1635 cls : 'x-btn-text-icon',
1636 text : "Fix Unit Cost",
1637 icon : rootURL + '/Pman/templates/images/trash.gif'
1645 var pohead_number = _this.form.findField('pohead_number').getValue();
1646 var pohead_id = _this.form.findField('pohead_id').getValue();
1648 var delv = function(){
1650 url : baseURL + '/Roo/pohead.php',
1653 pohead_id : pohead_id,
1657 success : function(res) {
1658 Roo.MessageBox.alert('Notice', 'DONE');
1663 Roo.MessageBox.confirm(
1665 "Are you sure to delete the variance on voucher of " + pohead_number + " ?",
1679 cls : 'x-btn-text-icon',
1680 text : "Delete Varinace on voucher",
1681 icon : rootURL + '/Pman/templates/images/trash.gif'
1687 xtype: 'ColumnModel',
1689 dataIndex : 'gltrans_id',
1692 renderer : function(v) { return String.format('{0}', v); }
1695 xtype: 'ColumnModel',
1697 dataIndex : 'gltrans_date',
1700 renderer : function(v) { return String.format('{0}', v ? v.format('Y-m-d') : ''); }
1703 xtype: 'ColumnModel',
1705 dataIndex : 'gltrans_docnumber',
1708 renderer : function(v) { return String.format('{0}', v); }
1711 xtype: 'ColumnModel',
1713 dataIndex : 'gltrans_amount',
1716 renderer : function(v) { return String.format('{0}', v); }
1719 xtype: 'ColumnModel',
1721 dataIndex : 'gltrans_notes',
1724 renderer : function(v) { return String.format('{0}', v); }
1731 xtype: 'LayoutRegion',
1735 xtype: 'LayoutRegion',
1743 xtype: 'NestedLayoutPanel',
1748 xtype: 'BorderLayout',
1755 activate : function() {
1756 _this.gltxpanel = this;
1757 if (_this.gltxgrid) {
1758 _this.gltxgrid.footer.onClick('first');
1763 fitContainer : true,
1766 tableName : 'invdetail',
1767 title : "invdetail",
1774 _this.gltxgrid = this;
1775 //_this.dialog = Pman.Dialog.FILL_IN
1776 if (_this.gltxpanel.active) {
1777 this.footer.onClick('first');
1780 cellclick : function (_self, rowIndex, columnIndex, e)
1782 if (columnIndex > 0) {
1785 var rec = this.ds.getAt(rowIndex);
1786 rec.set('gltrans_as_summary', rec.data.gltrans_as_summary *1 ? 0 : 1);
1787 _this.gltxdgrid.footer.onClick('first');
1790 autoExpandColumn : 'gltrans_accnt_id_accnt_descrip',
1793 xtype: 'RowSelectionModel',
1796 selectionchange : function (_self)
1798 _this.gltxdgrid.footer.onClick('first');;
1807 beforeload : function (_self, o)
1809 o.params.pohead_id = _this.form.findField('pohead_id').getValue();
1810 if (! o.params.pohead_id ) {
1814 o.params._split_sales = _this.glsalesbtn.pressed ? 1 : 0;
1818 sortInfo : { field : 'item_number', direction: 'ASC' },
1823 url : baseURL + '/Roo/gltrans.php'
1826 xtype: 'JsonReader',
1828 totalProperty : 'total',
1833 'name': 'invdetail_id',
1837 'name': 'invdetail_transtype',
1841 'name': 'invdetail_invhist_id',
1845 'name': 'invdetail_location_id',
1849 'name': 'invdetail_qty',
1853 'name': 'invdetail_comments',
1857 'name': 'invdetail_qty_before',
1861 'name': 'invdetail_qty_after',
1865 'name': 'invdetail_invcitem_id',
1869 'name': 'invdetail_expiration',
1871 'dateFormat': 'Y-m-d'
1874 'name': 'invdetail_warrpurc',
1876 'dateFormat': 'Y-m-d'
1879 'name': 'invdetail_ls_id',
1886 xtype: 'PagingToolbar',
1889 displayMsg : "Displaying invdetail{0} - {1} of {2}",
1890 emptyMsg : "No invdetail found",
1897 render : function (_self)
1899 _this.glsalesbtn = _self;
1901 click : function (_self, e)
1903 (function() { _this.gltxgrid.footer.onClick('first'); }).defer(100);
1906 enableToggle : true,
1908 text : "Split sales"
1914 xtype: 'ColumnModel',
1916 dataIndex : 'gltrans_as_summary',
1919 renderer : function(v,x,r) {
1921 var state = v*1 ? '-checked' : '';
1923 return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
1927 xtype: 'ColumnModel',
1929 dataIndex : 'gltrans_accnt_id_accnt_descrip',
1932 renderer : function(v) { return String.format('{0}', v); }
1935 xtype: 'ColumnModel',
1938 dataIndex : 'gltrans_amount_credit',
1941 renderer : function(v) { return String.format('{0}', Roo.util.Format.number(v,3)); }
1944 xtype: 'ColumnModel',
1947 dataIndex : 'gltrans_amount_debit',
1950 renderer : function(v) { return String.format('{0}', Roo.util.Format.number(v,3)); }
1953 xtype: 'ColumnModel',
1956 dataIndex : 'gltrans_amount_total',
1959 renderer : function(v) { return String.format('<b>{0}</b>', Roo.util.Format.number(v,3)); }
1962 xtype: 'ColumnModel',
1965 dataIndex : 'gltrans_amount_total_unposted',
1966 header : 'Unposted',
1968 renderer : function(v) { return String.format('<span style="color:red">{0}</span>', Roo.util.Format.number(v,3)); }
1977 activate : function() {
1978 _this.gltxdpanel = this;
1979 if (_this.gltxdgrid) {
1980 _this.gltxdgrid.footer.onClick('first');
1985 fitContainer : true,
1988 tableName : 'invdetail',
1989 title : "invdetail",
1996 _this.gltxdgrid = this;
1997 //_this.dialog = Pman.Dialog.FILL_IN
1998 if (_this.gltxdpanel.active) {
1999 this.footer.onClick('first');
2002 cellclick : function (_self, ri, ci, e)
2005 var deleteSel = function() {
2009 url : baseURL + '/Roo/gltrans',
2013 gltrans_id : rec.data.gltrans_id
2016 success : function() {
2017 rec.set('gltrans_posted', false);
2018 rec.set('gltrans_deleted', true);
2019 rec.set('gltrans_docnumber', rec.data.gltrans_docnumber);
2020 _this.gltxgrid.footer.onClick('first');
2025 var undeleteSel = function() {
2029 url : baseURL + '/Roo/gltrans',
2033 gltrans_id : rec.data.gltrans_id
2036 success : function() {
2037 rec.set('gltrans_posted', true);
2038 rec.set('gltrans_deleted', false);
2039 rec.set('gltrans_docnumber', rec.data.gltrans_docnumber);
2040 _this.gltxgrid.footer.onClick('first');
2046 var di = this.colModel.config[ci].dataIndex;
2047 if (di != 'gltrans_posted') {
2053 var rec = this.ds.getAt(ri);
2054 if (rec.data.gltrans_deleted) {
2056 Roo.MessageBox.confirm(
2058 "This should only be used by System Administrators - are you sure you know what you are doing!",
2072 if (!rec.data.gltrans_posted) {
2078 url : baseURL + '/Roo/gltrans',
2082 gltrans_id : rec.data.gltrans_id
2084 success : function (res)
2086 rec.set('gltrans_posted', true);
2087 _this.gltxgrid.footer.onClick('first');
2096 // we have a posted transaction.
2097 // only allow recalled to be deleted..
2098 if (!rec.data.gltrans_notes.match(/(Recall|Ship Order)/)) {
2107 Roo.MessageBox.confirm(
2109 "This should only be used by System Administrators - are you sure you know what you are doing!",
2122 autoExpandColumn : 'gltrans_notes',
2128 beforeload : function (_self, o)
2130 o.params.pohead_id = _this.form.findField('pohead_id').getValue();
2131 var s = _this.gltxgrid.selModel.getSelected();
2136 o.params.gltrans_accnt_id = s.data.gltrans_accnt_id;
2137 o.params.gltrans_is_ship = s.data.gltrans_is_ship;
2138 o.params.gltrans_as_summary = s.data.gltrans_as_summary;
2139 o.params._hide_void = _this.glvoidshow.pressed ? 1 : 0;
2145 sortInfo : { field : 'gltrans_docnumber', direction: 'ASC' },
2150 url : baseURL + '/Roo/gltrans.php'
2153 xtype: 'JsonReader',
2155 totalProperty : 'total',
2160 'name': 'invdetail_id',
2164 'name': 'invdetail_transtype',
2168 'name': 'invdetail_invhist_id',
2172 'name': 'invdetail_location_id',
2176 'name': 'invdetail_qty',
2180 'name': 'invdetail_comments',
2184 'name': 'invdetail_qty_before',
2188 'name': 'invdetail_qty_after',
2192 'name': 'invdetail_invcitem_id',
2196 'name': 'invdetail_expiration',
2198 'dateFormat': 'Y-m-d'
2201 'name': 'invdetail_warrpurc',
2203 'dateFormat': 'Y-m-d'
2206 'name': 'invdetail_ls_id',
2213 xtype: 'PagingToolbar',
2216 displayMsg : "Displaying invdetail{0} - {1} of {2}",
2217 emptyMsg : "No invdetail found",
2224 click : function (_self, e)
2226 new Pman.Download( {
2227 grid : _this.gltxdgrid
2238 render : function (_self)
2240 _this.glvoidshow = _self;
2242 click : function (_self, e)
2244 (function() { _this.gltxgrid.footer.onClick('first'); }).defer(100);
2247 enableToggle : true,
2255 xtype: 'ColumnModel',
2257 dataIndex : 'gltrans_id',
2261 renderer : function(v) { return String.format('{0}', v ); }
2264 xtype: 'ColumnModel',
2266 dataIndex : 'gltrans_date',
2269 renderer : function(v) { return String.format('{0}', v ? v.format('d/M/Y') : ''); }
2272 xtype: 'ColumnModel',
2274 dataIndex : 'gltrans_docnumber',
2277 renderer : function(v,x,r) {
2278 if (r.data.gltrans_deleted) {
2279 return String.format('<s>{0}</s>', v);
2281 return String.format('{0}', v);
2285 xtype: 'ColumnModel',
2287 dataIndex : 'gltrans_source',
2290 renderer : function(v) { return String.format('{0}', v); }
2293 xtype: 'ColumnModel',
2295 dataIndex : 'gltrans_notes',
2298 renderer : function(v) { return String.format('{0}', v); }
2301 xtype: 'ColumnModel',
2304 dataIndex : 'gltrans_amount',
2307 renderer : function(v) { return String.format('{0}', Roo.util.Format.number(v,3)); }
2310 xtype: 'ColumnModel',
2312 dataIndex : 'gltrans_posted',
2315 renderer : function(v,x,r) {
2317 var state = v ? '-checked' : '';
2319 return '<img class="x-grid-check-icon' + state + '" src="' + Roo.BLANK_IMAGE_URL + '"/>';
2327 xtype: 'LayoutRegion',
2331 xtype: 'LayoutRegion',
2340 xtype: 'LayoutRegion',
2342 alwaysShowTabs : true,
2343 tabPosition : 'top',
2358 var hid = _this.form.findField('pohead_id').getValue();
2361 Roo.MessageBox.alert("Error", "Please save your purchase order first");
2367 _dialog.layout.showPanel(1);
2374 var doit = function () {
2384 cls : 'x-btn-text-icon',
2385 text : "Download Purchase Order Items (Excel)",
2386 icon : rootURL + '/Pman/templates/images/save.gif'
2392 render : function (_self)
2394 _this.uploadBtn = _self;
2397 text : "Upload Purchase Order",
2406 click : function (_self, e)
2408 var hid = _this.form.findField('pohead_id').getValue();
2411 Roo.MessageBox.alert("Error", "Please save your purchase order first");
2414 Pman.Dialog.Image.show(
2417 _url : baseURL+'/Xtuple/Import/PurchaseOrder?' + Roo.urlEncode({'pohead_id' : hid})
2422 _this.grid.footer.onClick('first');
2424 Roo.MessageBox.alert("Notice", 'UPLOADED');
2429 text : "Upload Standard Excel"
2435 click : function (_self, e)
2438 var hid = _this.form.findField('pohead_id').getValue();
2441 Roo.MessageBox.alert("Error", "Please save your purchase order first");
2445 Pman.Dialog.Image.show(
2447 _url : baseURL+'/Xtuple/Import/AUPurchaseOrder?' + Roo.urlEncode({'pohead_id' :hid})
2452 _this.grid.footer.onClick('first');
2454 Roo.MessageBox.alert("Notice", 'IMPORTED');
2459 text : "Upload AU Import Excel"
2472 click : function (_self, e)
2474 _this.dialog.hide();
2483 click : function (_self, e)
2488 _this.grid.ds.each(function(r) {
2490 poitem_id : r.data.poitem_id,
2491 poitem_itemsite_id : r.data.poitem_itemsite_id,
2492 poitem_unitprice : r.data.poitem_unitprice,
2493 poitem_qty_ordered : r.data.poitem_qty_ordered
2498 _this.form.findField('items').setValue(JSON.stringify(ar));
2501 _this.form.doAction("submit");
2504 render : function (_self)
2506 _this.saveBtn = _self;