Trying to fetch the data based on current date, if there is no data we need to pass previous date. This will occur till previous month to fetch the data
private getCoNumber(): Promise<void> {
return new Promise((resolve, reject) => {
var _this = this;
var deliveryNo;
var delivery = new MIRequest();
delivery.program = "DRS100MI";
delivery.transaction = "LstByDelivery";
delivery.outputFields = ["DLIX"];
delivery.record = { CONN: _this.SHIP };
debugger
_this.miService.executeRequest(delivery).then((response: IMIResponse) => {
if (response.items.length >= 1) {
deliveryNo = response.item.DLIX;
if (deliveryNo != undefined) {
var CustomerOrder = new MIRequest();
CustomerOrder.program = "MWS410MI";
CustomerOrder.transaction = "GetHead";
CustomerOrder.outputFields = ["CUOR", "RIDN"];
CustomerOrder.record = { DLIX: deliveryNo };
_this.miService.executeRequest(CustomerOrder).then((response: IMIResponse) => {
if (response.items.length >= 1) {
var customerOrder = new MIRequest();
customerOrder.program = "OIS100MI";
customerOrder.transaction = "GetHead";
customerOrder.outputFields = ["CUCD"];
customerOrder.record = { ORNO: response.item.RIDN };
_this.miService.executeRequest(customerOrder).then((response: IMIResponse) => {
if (response.items.length >= 1) {
console.log("Customer order Currency" + response.item.CUCD);
_this.CustomerOrderCurrency = response.item.CUCD
}
var purchaseAgreement = new MIRequest();
purchaseAgreement.program = "PPS100MI";
purchaseAgreement.transaction = "GetAgrHead";
purchaseAgreement.outputFields = ["CUCD"];
purchaseAgreement.record = { SUNO: _this.FWNO, AGNB: _this.AGNB };
_this.miService.executeRequest(purchaseAgreement).then((response: IMIResponse) => {
if (response.items.length >= 1) {
console.log("purchase agreeement currency" + response.item.CUCD);
_this.PurchaseAgreementCurrency = response.item.CUCD;
}
if (_this.PurchaseAgreementCurrency != undefined && _this.CustomerOrderCurrency != undefined) {
ScriptUtil.SetFieldValue('ExchangeRateFromTo', _this.PurchaseAgreementCurrency + " To " + _this.CustomerOrderCurrency, this.controller);
var currentdate = new Date();
var previousMonth = new Date();
var endDate = new Date(previousMonth.setMonth(previousMonth.getMonth() - 1));
debugger
for (var loopDate = currentdate; loopDate > endDate; currentdate.setDate(loopDate.getDate() - 1)) {
debugger
console.log(loopDate);
console.log(currentdate)
debugger
if (_this.aratValueExists == false) {
var datecheck = new Date(loopDate).toISOString().slice(0, 10);
datecheck = datecheck.substring(0, 4) + datecheck.substring(5, 7) + datecheck.substring(8, 10);
var loopExchangeValue = new MIRequest();
loopExchangeValue.program = "CRS055MI";
loopExchangeValue.transaction = "SelExchangeRate";
loopExchangeValue.outputFields = ["ARAT", "CUCD", "LOCD"];
loopExchangeValue.record = { CONO: '1', FCUR: 'SGD', TCUR: 'SGD', CRTP: '1', CUTD: datecheck };
_this.miService.executeRequest(loopExchangeValue).then((loopresponse: IMIResponse) => {
for (var _i = 0, _a = loopresponse.items; _i < _a.length; _i++) {
var item = _a[_i];
if (item.CUCD == _this.PurchaseAgreementCurrency && item.LOCD == _this.CustomerOrderCurrency) {
debugger
console.log(item.ARAT);
_this.aratValueExists = true;
ScriptUtil.SetFieldValue('ExchangeRateValue', currentDate + "-" + item.ARAT, this.controller);
break;
}
}
resolve(loopresponse);
}).catch((loopresponse: IMIResponse) => {
debugger
resolve(loopresponse);
this.log.Error(loopresponse.errorMessage);
});
debugger
} else if (_this.aratValueExists == true) {
break;
}
}
}
// resolve(response);
}).catch((response: IMIResponse) => {
resolve(response);
});
resolve(response);
}).catch((response: IMIResponse) => {
resolve(response);
this.log.Error(response.errorMessage);
});
}
resolve(response);
}).catch((response: IMIResponse) => {
resolve(response);
this.log.Error(response.errorMessage);
});
}
}
resolve(response);
}).catch((response: IMIResponse) => {
resolve(response);
});
});
};