Created
November 21, 2016 21:59
-
-
Save devniel/483e04891bb3c0760655d8da6a62b410 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
jQuery.sap.declare("com.pecsa.dev.services.Shipments"); | |
jQuery.sap.require("com.pecsa.dev.services.Products"); | |
jQuery.sap.require("com.pecsa.dev.models.Shipment"); | |
jQuery.sap.require("com.pecsa.dev.models.Product"); | |
var toMap = function(array, key1, key2) { | |
var map = {}; | |
for (var i in array) { | |
map[array[i][key1] + "-" + array[i][key2]] = array[i]; | |
} | |
return map; | |
} | |
com.pecsa.dev.services.Shipments = { | |
/** | |
* Return all the shipments | |
* assigned to the transport with | |
* number I_TKNUM | |
*/ | |
read: function(I_TKNUM, callback) { | |
I_TKNUM = I_TKNUM || ""; | |
I_ZLICENCIA = window.DRIVER.ZLICENCIA || ""; | |
I_ZNROLIC = window.DRIVER.ZNROLIC || ""; | |
async.waterfall([ | |
function get_products_by_transport(cb) { | |
console.log("get_products_by_transport"); | |
com.pecsa.dev.services.Products.listByTransport(I_TKNUM, function(err, products) { | |
if (err) return cb(err); | |
console.log("get_products_by_transport", products); | |
cb(null, products); | |
}); | |
}, | |
function get_shipments_by_transport(products, cb) { | |
console.log("get_shipments_by_transport"); | |
console.log("products : ", products); | |
var products = toMap(products, "Matnr", "Kunnr"); | |
console.log("products map : ", products); | |
OData.request({ | |
requestUri: ROOT_ODATA_URL + "/ZGW_SMP_SHIPMENTNUM_SRV/HeaderSet?$filter=ITknum eq '" + I_TKNUM + "' and IZlicencia eq '" + I_ZLICENCIA + "' and IZnrolic eq '" + I_ZNROLIC + "' and IMndt eq '" + window.CLIENT + "'&$expand=NavItem,NavMessage", | |
method: "GET", | |
headers: com.pecsa.dev.app.getHeaders() | |
}, function(data, response) { | |
console.log("Shipments.read", data, response); | |
if (data.results[0].NavMessage.results.length > 0 && data.results[0].NavMessage.results[0].Type == "E") { | |
return callback({ | |
message: data.results[0].NavMessage.results[0].Message | |
}); | |
} | |
var results = data.results[0].NavItem.results; | |
// Group by Vbevl | |
var shipments = {}; | |
for (var i in results) { | |
// Discard materials with Prema == 0 | |
if (results[i].Prema != 0) { | |
var pkey = results[i].Matnr + "-" + results[i].Kunnr; | |
var prod = new com.pecsa.dev.models.Product({ | |
Lfimg: results[i].Lfimg, | |
Matnr: results[i].Matnr, | |
Meins: results[i].Meins, | |
Menge: results[i].Menge, | |
Mwsbp: results[i].Mwsbp, | |
Netwr: results[i].Netwr, | |
Prema: results[i].Prema, | |
Maktx: products[pkey] ? products[pkey].Maktx : null, | |
Tragr: products[pkey] ? products[pkey].Tragr : null, | |
//Ormng : products[pkey] ? products[pkey].Ormng : null | |
Ormng: results[i].Lfimg, | |
Vrkme: results[i].Vrkme | |
}); | |
console.log("PRODUCTO : ", prod); | |
if (shipments[results[i].Vbevl]) { | |
shipments[results[i].Vbevl].Products.push(prod); | |
} else { | |
shipments[results[i].Vbevl] = new com.pecsa.dev.models.Shipment(results[i]); | |
shipments[results[i].Vbevl].Products = []; | |
shipments[results[i].Vbevl].Products.push(prod); | |
} | |
} | |
} | |
var shipmentsArray = []; | |
for (var i in shipments) { | |
shipmentsArray.push(shipments[i]); | |
} | |
return cb(null, shipmentsArray); | |
}, function(error) { | |
return cb(error); | |
}); | |
} | |
], function(err, shipments) { | |
if (err) return callback(err); | |
callback(null, shipments); | |
}); | |
}, | |
getPaymentMethods: function(I_VBELN, callback) { | |
I_VBELN = I_VBELN || ""; | |
async.waterfall([ | |
function get_payments_by_order(cb) { | |
console.log("get_payments_by_order"); | |
OData.request({ | |
requestUri: ROOT_ODATA_URL + "/ZGW_SMP_CHANGE_PMP_SRV/InputSet?$filter=IBelnr eq '' and IIdsel eq '' and IGjahr eq '' and IVbeln eq '" + I_VBELN + "' and IMndt eq '" + window.CLIENT + "'&$expand=NavDetail,NavMessage", | |
method: "GET", | |
headers: com.pecsa.dev.app.getHeaders() | |
}, function(data, response) { | |
console.log("Shipments.getPaymentMethods", data, response); | |
}, function(error) { | |
return cb(error); | |
}); | |
} | |
], function(err, shipments) { | |
if (err) return callback(err); | |
callback(null, shipments); | |
}); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment