Send emails on customer deposit creation.


define(['N/record', 'N/search', 'N/runtime', 'N/email'],

    (record, search, runtime, email) => {

        function sendEmailtoCSR(soRecord,customerId){
                try {
                        let soSearch = search.lookupFields({
                                type: search.Type.SALES_ORDER,
                                id: soRecord,
                                columns: ['otherrefnum', 'tranid']
                        });
                    let poHash = soSearch.otherrefnum
                    let soHash = soSearch.tranid

                    let csrIdIs = search.lookupFields({
                                type: search.Type.CUSTOMER,
                                id: customerId,
                                columns: ['custentity_jj_csr','entityid']
                        })
                    let csrId=csrIdIs.custentity_jj_csr
                    let customerName=csrIdIs.entityid
                    let recipientId = ['ar@corpdesign.com'];
                        if (csrId.length>0) {
                                var csrInternalId = csrId[0].value

                                var csrEmail = search.lookupFields({
                                        type: search.Type.EMPLOYEE,
                                        id: csrInternalId,
                                        columns: ['email']
                                }).email

                                recipientId.push(csrEmail)
                        }
                        //send email
                    let userObj = runtime.getCurrentUser();
                    let senderId = userObj.id
                    let emailSubject = 'Deposit or Payment received from ' + customerName
                        var emailBody;
                        if (poHash) {
                                emailBody = "Please note that a deposit or payment from " + customerName + " was applied to " + poHash + "/" + soHash + ". Please manage the pickup or shipping immediately. "
                        } else {
                                emailBody = "Please note that a deposit or payment from " + customerName + " was applied to " + soHash + ". Please manage the pickup or shipping immediately. "
                        }

                        email.send({
                                author: senderId,
                                recipients: recipientId,
                                subject: emailSubject,
                                body: emailBody,
                                relatedRecords: {
                                        transactionId: parseInt(soRecord),
                                        entityId:2528
                                }
                        });
                }catch (e) {
                       log.debug("error @sendEmailtoCSR",e)
                        return []
                }
        }

        const afterSubmit = (scriptContext) => {
            try {
                if ( scriptContext.type == "create"){
                var customerDeposit = scriptContext.newRecord
                var customerId = customerDeposit.getValue({
                    fieldId: 'customer'
                });
                var soRecord = customerDeposit.getValue({
                    fieldId: 'salesorder'
                });
                //Check if the customer deposit is attached to sales order
                if (soRecord ) {
                    sendEmailtoCSR(soRecord,customerId)
                    }
                 }
            } catch (e) {
                log.debug("error@afterSubmit", e)
            }
        }

        return {afterSubmit}

    });

Leave a comment

Your email address will not be published. Required fields are marked *