DynamicsURL/api/services/SalesOrderChargesServiceGroup/SalesOrderChargesService/SalesOrderCharges { "SalesOrderCharges": [ { "SalesHeaderCharges": [ { "DataAreaId": "100", "SalesId": "1000000499", "ChargeLineNum": "13.00", "ChargeCode": "XYZ", "Amount": "25.50" }, { "DataAreaId": "100", "SalesId": "1000000499", "ChargeLineNum": "14.00", "ChargeCode": "ABC", "Amount": "35.50" } ], "SalesLineCharges": [ { "DataAreaId": "100", "SalesId": "1000000499", "LineNum": "1.00", "ChargeLineNum": "14.00", "ChargeCode": "XYZ", "Amount": "25.50" }, { "DataAreaId": "100", "SalesId": "1000000499", "ChargeLineNum": "12.00", "LineNum": "2.00", "ChargeCode": "ABC", "Amount": "15.50" } ] } ] }
/// <summary> /// This class is the data contract class for the <c>SalesLineChargesContract</c> service. /// </summary> [DataContract] class SalesHeaderChargesContract { SalesId salesId; DataAreaId dataAreaId; MarkupCode chargeCode; MarkupFixedAmount amount; LineNum chargesLineNum; [DataMember("SalesId")] public SalesId parmSalesId(salesId _salesId = salesId) { salesId = _salesId; return salesId; } [DataMember("DataAreaId")] public DataAreaId parmDataAreaId(DataAreaId _dataAreaId = dataAreaId) { dataAreaId = _dataAreaId; return dataAreaId; } [DataMember("ChargesLineNum")] public LineNum parmChargesLineNum(LineNum _chargesLineNum = chargesLineNum) { chargesLineNum = _chargesLineNum; return chargesLineNum; } [DataMember("ChargeCode")] public MarkupCode parmChargeCode(MarkupCode _chargeCode = chargeCode) { chargeCode = _chargeCode; return chargeCode; } [DataMember("Amount")] public MarkupFixedAmount parmAmount(MarkupFixedAmount _amount = amount) { amount = _amount; return amount; } }
/// <summary> /// Service class to sales line charges. /// </summary> [SysEntryPointAttribute(true)] class SalesHeaderChargesService { str ret = 'success'; boolean errors; /// <summary> /// Method to create sales line charges. /// </summary> /// <param name = "_contract">SalesLineChargesContract</param> /// <returns>Message to users</returns> public str createChargesheader(SalesHeaderChargesContract line) { try { CompanyInfo companyInfo = CompanyInfo::findDataArea(line.parmDataAreaId()); if(companyInfo) { changecompany(companyInfo.DataArea) { SalesTable salesTable = SalesTable::find(line.parmSalesId(),true); if (SalesTable.recid) { MarkupTrans markUpTrans; MarkupTable markupTable; markupTable = markupTable::find(MarkupModuleType::Cust,line.parmChargeCode()); if (markupTable.recid) { markUpTrans.initFromSalesTable(SalesTable);//Line number 2181 [this.TransTableId = salesLine.TableId;] in this initFromSalesLine() method is returning 1426 for TransTableId markUpTrans.TransTableId = tableNum(SalesTable);//tableNum(SalesLine) returns the expected 3071 for TransTableId; markUpTrans.initFromMarkupTable(markupTable); markUpTrans.initvalue(); markUpTrans.Linenum = line.parmChargesLineNum(); markUpTrans.Value = line.parmAmount(); markUpTrans.insert(); ttsbegin; SalesTable.update(); ttscommit; ret = strFmt("@:ChargeCodeSuccess",line.parmChargeCode(),line.parmSalesId()); } else { throw Error(strFmt("@:ChargeCodeValidation",line.parmChargeCode())); } } else { throw Error(strFmt("@:SalesLineValidation",line.parmSalesId())); } } } else { throw Error(strFmt("@HFG:HFGDataAreaIdInvalid",line.parmDataAreaId())); } } catch { errors = true; } catch(Exception::Error) { errors = true; } if(errors) { throw Error(SalesHeaderChargesService::getError()); } else { return ret; } return ret; } /// <summary> /// Convert infolog from container to string. /// </summary> /// <param name = "_logText">InfologData</param> /// <returns>Error message</returns> private static str getError() { SysInfologEnumerator enumerator; SysInfologMessageStruct msgStruct; Exception exception; str error; enumerator = SysInfologEnumerator::newData(infolog.cut()); while (enumerator.moveNext()) { msgStruct = new SysInfologMessageStruct(enumerator.currentMessage()); exception = enumerator.currentException(); error = strfmt("%1 - %2", error, msgStruct.message()); } return error; } }
/// <summary> /// This class is the data contract class for the <c>SalesLineChargesContract</c> service. /// </summary> [DataContract] class SalesLineChargesContract { SalesId salesId; DataAreaId dataAreaId; LineNum lineNum; MarkupCode chargeCode; MarkupFixedAmount amount; LineNum chargesLineNum; NameAlias readyToInvoice; [DataMember("SalesId")] public SalesId parmSalesId(salesId _salesId = salesId) { salesId = _salesId; return salesId; } [DataMember("ReadyToInvoice")] public NameAlias parmReadyToInvoice(NameAlias _readyToInvoice = readyToInvoice) { readyToInvoice = _readyToInvoice; return readyToInvoice; } [DataMember("DataAreaId")] public DataAreaId parmDataAreaId(DataAreaId _dataAreaId = dataAreaId) { dataAreaId = _dataAreaId; return dataAreaId; } [DataMember("ChargesLineNum")] public LineNum parmChargesLineNum(LineNum _chargesLineNum = chargesLineNum) { chargesLineNum = _chargesLineNum; return chargesLineNum; } [DataMember("LineNum")] public LineNum parmLineNum(LineNum _lineNum = lineNum) { lineNum = _lineNum; return lineNum; } [DataMember("ChargeCode")] public MarkupCode parmChargeCode(MarkupCode _chargeCode = chargeCode) { chargeCode = _chargeCode; return chargeCode; } [DataMember("Amount")] public MarkupFixedAmount parmAmount(MarkupFixedAmount _amount = amount) { amount = _amount; return amount; } }
[DataContractAttribute('SalesOrderChargesContract')] internal final class SalesOrderChargesContract { List SalesHeaderChargesList,SalesLineChargesList; [DataMemberAttribute("SalesHeaderCharges"), AifCollectionTypeAttribute("_SalesHeaderCharges",Types::Class, classStr( SalesHeaderChargesContract)), AifCollectionTypeAttribute("return",Types::Class, classStr( SalesHeaderChargesContract))] public List parmSalesHeaderChargesList(List _SalesHeaderCharges = SalesHeaderChargesList) { SalesHeaderChargesList = _SalesHeaderCharges; return SalesHeaderChargesList; } [DataMemberAttribute("SalesLineCharges"), AifCollectionTypeAttribute("_SalesLineCharges",Types::Class, classStr( SalesLineChargesContract)), AifCollectionTypeAttribute("return",Types::Class, classStr( SalesLineChargesContract))] public List parmSalesLineChargesList(List _SalesLineCharges = SalesLineChargesList) { SalesLineChargesList = _SalesLineCharges; return SalesLineChargesList; } }
[SysEntryPointAttribute(true)] class SalesOrderChargesService { [AifCollectionTypeAttribute('SalesOrderCharges', Types::Class, classStr(SalesOrderChargesContract))] public str processCharges(List SalesOrderCharges) { ListEnumerator orderEnumerator = SalesOrderCharges.getEnumerator(); SalesLineChargesService lineChargesService = new SalesLineChargesService(); SalesHeaderChargesService headerChargesService = new SalesHeaderChargesService(); SalesLineChargesContract lineChargesContract; SalesHeaderChargesContract headerChargesContract; while(orderEnumerator.moveNext()) { SalesOrderChargesContract SalesOrderChargesContract = orderEnumerator.current(); list lineContract = SalesOrderChargesContract.parmSalesLineChargesList(); list headerContract = SalesOrderChargesContract.parmSalesHeaderChargesList(); if (lineContract) { ListEnumerator lineContractEnumerator = lineContract.getEnumerator(); if (lineContractEnumerator) { while(lineContractEnumerator.moveNext()) { lineChargesContract = lineContractEnumerator.current(); lineChargesService.createChargesLines(lineChargesContract); } } } if (headerContract) { ListEnumerator headerContractEnumerator = headerContract.getEnumerator(); if (headerContractEnumerator) { while(headerContractEnumerator.moveNext()) { headerChargesContract = headerContractEnumerator.current(); headerChargesService.createChargesheader(headerChargesContract); } } } } return "Sales order charges created succesfully."; } }
No comments:
Post a Comment