//LIB Version 1.5 // TS 04.04.2018 Mapping LinkedBusinessPartner // 23.02.2022 Mapping defaultbank // 24.01.2024 Mapping U_UO_OUTPUT_VSARTAR // 28.11.2024 Mapping U_CompanyName2 // 29.05.2026 PFT-1845 Austausch U_EON_RECACC_PAY und U_EON_RECACC_REC var slDest = $.import("uniorg.destinations", "uodestlib"); var UserComp = slDest.uniorg_eon_bp_v1_UserComp; function convertAdrType(adrtype) { switch (adrtype) { case '1': case 'S': return 'bo_ShipTo'; case '2': case '3': case 'B': return 'bo_BillTo'; default: return 'bo_BillTo'; } } function getVendorRECACC(custpgnr) { var conn = $.db.getConnection(); var pstmt; //var query = "SELECT T0.\"U_EON_RECACC_REC\" FROM \"A19753_P01_TEST03\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; var query = "SELECT T0.\"U_EON_RECACC_PAY\" FROM \"XXREPXX\".\"@EON_PGN\" T0 WHERE T0.\"Code\" = ?"; query = query.replace(/XXREPXX/g, UserComp); pstmt = conn.prepareStatement(query); pstmt.setString(1,custpgnr); var rs = pstmt.executeQuery(); if (!rs.next()) { // outMsg = {}; // outMsg.method = "getnexval from sequence error"; // outMsg.status = "error"; // outMsg.message = e.message; //outMessages.push(outMsg); } else { return rs.getString(1); } rs.close(); pstmt.close(); conn.close(); } function buildBPObj(cSBOOBJ, vSBOOBJ) { var groupcode_default = 101; // GroupCode Lieferanten var groupnum_default = 13; // 2 Tage Netto sepa var myseries = 2; // BelegSerie manuell if (vSBOOBJ === undefined || typeof vSBOOBJ !== 'object') { vSBOOBJ = {}; } // switch (JbpObj.group) { // case 'B2C': // mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // myseries = series_b2c; // mygroupcode = groupcode_b2c; // mycmpprivate = cmpprivate_b2c; // break; // case 'B2B': // //mycardname = JbpObj.name.toString(); // mycardname = JbpObj.addresses[0].address.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // myseries = series_b2b; // mygroupcode = groupcode_b2b; // mycmpprivate = cmpprivate_b2b; // break; // case 'B2M': // //mycardname = JbpObj.name.toString(); // mycardname = JbpObj.addresses[0].address.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // myseries = series_b2m; // mygroupcode = groupcode_b2m; // mycmpprivate = cmpprivate_b2m; // break; // default: // mycardname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // mybpcontactname = JbpObj.name.toString() + ' ' + JbpObj.surname.toString(); // myseries = series_b2c; // mygroupcode = groupcode_b2c; // mycmpprivate = cmpprivate_b2c; // } var bpObj = {}; bpObj.Series = myseries; // bpObj.CompanyPrivate = mycmpprivate; // JbpObj.type.toString(); bpObj.CardCode = cSBOOBJ.CardCode + '-L'; bpObj.CardName = cSBOOBJ.CardName; bpObj.CardType = 'cSupplier'; bpObj.GroupCode = groupcode_default; bpObj.PayTermsGrpCode = groupnum_default; bpObj.Phone1 = cSBOOBJ.Phone1; bpObj.Cellular = cSBOOBJ.Cellular; bpObj.EmailAddress = cSBOOBJ.EmailAddress; bpObj.LinkedBusinessPartner = cSBOOBJ.CardCode; bpObj.FederalTaxID = cSBOOBJ.FederalTaxID; bpObj.U_EON_ID_CRM = cSBOOBJ.U_EON_ID_CRM; bpObj.U_EON_ID_CRM_INTERNAL = cSBOOBJ.U_EON_ID_CRM_INTERNAL; bpObj.U_EON_ASSU = cSBOOBJ.U_EON_ASSU; bpObj.U_EON_PGN = cSBOOBJ.U_EON_PGN; bpObj.U_UO_OUTPUT_VSARTAR = cSBOOBJ.U_UO_OUTPUT_VSARTAR; //23_02_2022 default bank bpObj.BankCountry = cSBOOBJ.BankCountry; bpObj.DefaultBankCode = cSBOOBJ.DefaultBankCode; bpObj.DefaultAccount = cSBOOBJ.DefaultAccount; if (cSBOOBJ.U_EON_PGN) { bpObj.DebitorAccount = getVendorRECACC(cSBOOBJ.U_EON_PGN); } // getVendorRECACC(customerObject.BP.U_EON_PGN); bpObj.BilltoDefault = cSBOOBJ.BilltoDefault; bpObj.ShipToDefault = cSBOOBJ.ShipToDefault; bpObj.ContactPerson = cSBOOBJ.ContactPerson; // bpObj.CollectionAuthorization = cSBOOBJ.CollectionAuthorization; // gibts nicht bei Lieferanten bpObj.BPAddresses = []; // // bpObj.BPAddresses[0].AddressName = 'test'; for (var g in vSBOOBJ.BPAddresses) { var mybpAdresses = {}; // mybpAdresses.g = g; // mybpAdresses.h = h; //var myaddressbpname = vSBOOBJ.BPAddresses[h].street.toString() + ' ' + vSBOOBJ.addresses[h].street_no.toString(); mybpAdresses.AddressName = vSBOOBJ.BPAddresses[g].AddressName; mybpAdresses.AddressType = vSBOOBJ.BPAddresses[g].AddressType; mybpAdresses.BPCode = vSBOOBJ.BPAddresses[g].BPCode; mybpAdresses.RowNum = vSBOOBJ.BPAddresses[g].RowNum; for (var h in cSBOOBJ.BPAddresses) { if (vSBOOBJ.BPAddresses[g].AddressName === cSBOOBJ.BPAddresses[h].AddressName && vSBOOBJ.BPAddresses[g].AddressType === cSBOOBJ.BPAddresses[ h].AddressType) { //mybpAdresses.AddressName = JbpObj.addresses[h].address.toString(); mybpAdresses.Street = cSBOOBJ.BPAddresses[h].Street; //mybpAdresses.Block = 'test'; mybpAdresses.ZipCode = cSBOOBJ.BPAddresses[h].ZipCode; mybpAdresses.City = cSBOOBJ.BPAddresses[h].City; //mybpAdresses.County = 'test'; mybpAdresses.Country = cSBOOBJ.BPAddresses[h].Country; //mybpAdresses.State = 'test'; //mybpAdresses.FederalTaxID = 'test'; //mybpAdresses.TaxCode = 'test'; //mybpAdresses.BuildingFloorRoom = 'test'; mybpAdresses.AddressType = cSBOOBJ.BPAddresses[h].AddressType; mybpAdresses.AddressName2 = cSBOOBJ.BPAddresses[h].AddressName2; mybpAdresses.U_CompanyName2 = cSBOOBJ.BPAddresses[h].U_CompanyName2; mybpAdresses.AddressName3 = cSBOOBJ.BPAddresses[h].AddressName3; mybpAdresses.StreetNo = cSBOOBJ.BPAddresses[h].StreetNo; // JbpObj.addresses[h].street_no.toString(); mybpAdresses.U_EON_EXT_ID = cSBOOBJ.BPAddresses[h].U_EON_EXT_ID; break; } } //mybpAdresses.BPCode = 'test'; //mybpAdresses.RowNum = 'test'; //mybpAdresses.GlobalLocationNumber = 'test'; //mybpAdresses.Nationality = 'test'; //mybpAdresses.TaxOffice = 'test'; bpObj.BPAddresses.push(mybpAdresses); } //Suche ob Objekte vorhanden.. wenn nicht, ergänzen for (var h in cSBOOBJ.BPAddresses) { var myfound = false; var myaddbpAdresses = {}; // var myaddbpname = JbpObj.addresses[h].street.toString() + ' ' + JbpObj.addresses[h].street_no.toString(); for (var g in vSBOOBJ.BPAddresses) { if (vSBOOBJ.BPAddresses[g].AddressName === cSBOOBJ.BPAddresses[h].AddressName && vSBOOBJ.BPAddresses[g].AddressType === cSBOOBJ.BPAddresses[ h].AddressType) { myfound = true; } } if (myfound === false) { myaddbpAdresses.AddressName = cSBOOBJ.BPAddresses[h].AddressName; myaddbpAdresses.Street = cSBOOBJ.BPAddresses[h].Street; myaddbpAdresses.ZipCode = cSBOOBJ.BPAddresses[h].ZipCode; myaddbpAdresses.City = cSBOOBJ.BPAddresses[h].City; //myaddbpAdresses.County = 'test'; myaddbpAdresses.Country = cSBOOBJ.BPAddresses[h].Country; //myaddbpAdresses.State = 'test'; //myaddbpAdresses.FederalTaxID = 'test'; //myaddbpAdresses.TaxCode = 'test'; //myaddbpAdresses.BuildingFloorRoom = 'test'; myaddbpAdresses.AddressType = cSBOOBJ.BPAddresses[h].AddressType; myaddbpAdresses.AddressName2 = cSBOOBJ.BPAddresses[h].AddressName2; myaddbpAdresses.U_CompanyName2 = cSBOOBJ.BPAddresses[h].U_CompanyName2; myaddbpAdresses.AddressName3 = cSBOOBJ.BPAddresses[h].AddressName3; //myaddbpAdresses.TypeOfAddress = 'test'; myaddbpAdresses.StreetNo = cSBOOBJ.BPAddresses[h].StreetNo; myaddbpAdresses.U_EON_EXT_ID = cSBOOBJ.BPAddresses[h].U_EON_EXT_ID; bpObj.BPAddresses.push(myaddbpAdresses); } } bpObj.ContactEmployees = []; for (var cpB1v in vSBOOBJ.ContactEmployees) { var mybpContactEmployees = {}; mybpContactEmployees.Name = vSBOOBJ.ContactEmployees[cpB1v].Name; mybpContactEmployees.CardCode = vSBOOBJ.ContactEmployees[cpB1v].CardCode; mybpContactEmployees.InternalCode = vSBOOBJ.ContactEmployees[cpB1v].InternalCode; for (var cpB1c in cSBOOBJ.ContactEmployees) { if (cSBOOBJ.ContactEmployees[cpB1c].Name === vSBOOBJ.ContactEmployees[cpB1v].Name) { mybpContactEmployees.FirstName = cSBOOBJ.ContactEmployees[cpB1c].FirstName; mybpContactEmployees.LastName = cSBOOBJ.ContactEmployees[cpB1c].LastName; mybpContactEmployees.Title = cSBOOBJ.ContactEmployees[cpB1c].Title; mybpContactEmployees.U_EON_SALUTATION = cSBOOBJ.ContactEmployees[cpB1c].U_EON_SALUTATION; } } bpObj.ContactEmployees.push(mybpContactEmployees); } for (var cpB1c in cSBOOBJ.ContactEmployees) { var myfoundCP = false; for (cpB1v in vSBOOBJ.ContactEmployees) { if (cSBOOBJ.ContactEmployees[cpB1c].Name === vSBOOBJ.ContactEmployees[cpB1v].Name) { myfoundCP = true; } } if (myfoundCP === false) { mybpContactEmployees = {}; mybpContactEmployees.Name = cSBOOBJ.ContactEmployees[cpB1c].Name; mybpContactEmployees.FirstName = cSBOOBJ.ContactEmployees[cpB1c].FirstName; mybpContactEmployees.LastName = cSBOOBJ.ContactEmployees[cpB1c].LastName; mybpContactEmployees.Title = cSBOOBJ.ContactEmployees[cpB1c].Title; mybpContactEmployees.U_EON_SALUTATION = cSBOOBJ.ContactEmployees[cpB1c].U_EON_SALUTATION; bpObj.ContactEmployees.push(mybpContactEmployees); } } bpObj.BPBankAccounts = []; // var myIBAN = JbpObj.bank_account.iban.toString().replace(/ /g, ''); // var myCountry = myIBAN.substring(0, 2); // var myBankCode = myIBAN.substring(4, 12); // var myAccountNo = myIBAN.substring(12, 23); // var mySignatureDate = convertToISODate(JbpObj.bank_account.signature_date); for (var bav in vSBOOBJ.BPBankAccounts) { var myBPBankAccounts = {}; myBPBankAccounts.BPCode = vSBOOBJ.BPBankAccounts[bav].BPCode; myBPBankAccounts.InternalKey = vSBOOBJ.BPBankAccounts[bav].InternalKey; myBPBankAccounts.Country = vSBOOBJ.BPBankAccounts[bav].Country; myBPBankAccounts.BankCode = vSBOOBJ.BPBankAccounts[bav].BankCode; myBPBankAccounts.AccountNo = vSBOOBJ.BPBankAccounts[bav].AccountNo; myBPBankAccounts.IBAN = vSBOOBJ.BPBankAccounts[bav].IBAN; for (var bac in cSBOOBJ.BPBankAccounts) { if (vSBOOBJ.BPBankAccounts[bav].IBAN === cSBOOBJ.BPBankAccounts[bac].IBAN) { // myfoundBank = true; // if (JbpObj.bank_account.bic.toString() !== '') { myBPBankAccounts.BICSwiftCode = cSBOOBJ.BPBankAccounts[bac].BICSwiftCode; // } myBPBankAccounts.AccountName = cSBOOBJ.BPBankAccounts[bac].AccountName; myBPBankAccounts.Street = cSBOOBJ.BPBankAccounts[bac].Street; myBPBankAccounts.ZipCode = cSBOOBJ.BPBankAccounts[bac].ZipCode; myBPBankAccounts.City = cSBOOBJ.BPBankAccounts[bac].City; // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate; // if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID; // bpObj.CollectionAuthorization = 'tYES'; } } bpObj.BPBankAccounts.push(myBPBankAccounts); } for (var bac in cSBOOBJ.BPBankAccounts) { var myfoundBank = false; for (var bav in vSBOOBJ.BPBankAccounts) { if (vSBOOBJ.BPBankAccounts[bav].IBAN === cSBOOBJ.BPBankAccounts[bac].IBAN) { myfoundBank = true; } } if (myfoundBank === false) { myBPBankAccounts = {}; myBPBankAccounts.IBAN = cSBOOBJ.BPBankAccounts[bac].IBAN; myBPBankAccounts.Country = cSBOOBJ.BPBankAccounts[bac].Country; myBPBankAccounts.BankCode = cSBOOBJ.BPBankAccounts[bac].BankCode; myBPBankAccounts.AccountNo = cSBOOBJ.BPBankAccounts[bac].AccountNo; myBPBankAccounts.BICSwiftCode = cSBOOBJ.BPBankAccounts[bac].BICSwiftCode; myBPBankAccounts.AccountName = cSBOOBJ.BPBankAccounts[bac].AccountName; myBPBankAccounts.Street = cSBOOBJ.BPBankAccounts[bac].Street; myBPBankAccounts.ZipCode = cSBOOBJ.BPBankAccounts[bac].ZipCode; myBPBankAccounts.City = cSBOOBJ.BPBankAccounts[bac].City; // myBPBankAccounts.MandateID = JbpObj.bank_account.sepa_mandate_id.toString(); myBPBankAccounts.SignatureDate = cSBOOBJ.BPBankAccounts[bac].SignatureDate; // if (JbpObj.bank_account.sepa_mandate.toString() == 'Ja') { myBPBankAccounts.MandateID = cSBOOBJ.BPBankAccounts[bac].MandateID; myBPBankAccounts.SEPASeqType = cSBOOBJ.BPBankAccounts[bac].SEPASeqType; // } bpObj.BPBankAccounts.push(myBPBankAccounts); } } return bpObj; }