2016-11-15 3 views
0
if (latestpayment == 0) { 
      var newrecord = nlapiTransformRecord('vendorbill', 
        results[x][7], 'vendorpayment'); 
      newrecord.setFieldValue('amount', intPayment); 
      // newrecord.setFieldValue('documentstatus', 'B'); 
      // newrecord.setFieldValue('status', 'Paid In Full'); 
      // newrecord.setFieldValue('statusRef', 'paidInFull'); 
      newrecord.setFieldValue('account', stRAcctId); 
      newrecord.setFieldValue('trandate', stRPostingDate); 

      nlapiSubmitRecord(newrecord); 
      nlapiSubmitRecord(record); 
     } else { 
      var newrecord = nlapiTransformRecord('vendorbill', 
        results[x][7], 'vendorpayment'); 
      newrecord.setFieldValue('amount', intPayment); 
      newrecord.setFieldValue('debitamount', payment); 
      newrecord.setFieldValue('paidamount', payment); 
      nlapiLogExecution('DEBUG', 'payment', payment); 
      // newrecord.setFieldValue('documentstatus', 'B'); 
      // newrecord.setFieldValue('status', 'Paid In Full'); 
      // newrecord.setFieldValue('statusRef', 'paidInFull'); 
      newrecord.setFieldValue('account', stRAcctId); 
      newrecord.setFieldValue('trandate', stRPostingDate); 
      record.setFieldValue('amountpaid', payment); 
      record.setFieldValue('amountremaining', intlatestpayment); 
      nlapiLogExecution('DEBUG', 'amountremaining', intlatestpayment); 

      nlapiSubmitRecord(newrecord); 
      nlapiSubmitRecord(record); 

나는 사용자 정의 양식을 제출할 수 있으며 선택한 모든 것은 공급 업체 청구서에서 공급 업체 지불로 변환됩니다. 전액을 지불 할 때이 점에 관해서는 아무런 문제가 없습니다. 상태는 Full Paid In으로 표시됩니다.Netsuite nlapiTransformRecord

그러나 부분적으로 지불하면 아무 것도 할 수 없으며 상태를 OPEN으로 변경할 수 없습니다. 나는 벤더 청구서와 벤더 지불 기록에 대한 가치를 설정하려했지만 그 작업은하지 않았다. 이 부분적으로 지불하는 방법을 통제하고 OPEN으로 표시된 금액과 지불해야 할 금액에 대한 아이디어는 무엇입니까?

감사합니다.

+0

그래서이 내 understanding- 부분적인 지불을 만들려고 노력하고 완납 때까지 오픈 공급 업체 법안 상태를 유지하기 원하고 있습니다. 내가 틀렸다면 나를 바로 잡습니다. – Rockstar

+0

정확합니다. 나는 납품업자 청구서와 납품업자 지불 기록 [양] 관련 분야를 모두 변경하는 것을 시도했다 그러나 모두는 전혀 작동하지 않는다. –

+0

당신을 실망시키는 것을 유감스럽게 생각하지만, 일단 레코드를 변형시키고 그것에 대한 지불을 수락하면, 부분적으로 또는 전체적으로 상태는 "OPEN"으로 남겨 둘 수 없습니다. BTW! 왜 당신은 "열린"상태가 필요합니까? 특정 비즈니스 요구 사항이 있습니까? – Rockstar

답변

0
 var newrecords = nlapiCreateRecord('vendorpayment', { 
       recordmode : 'dynamic' 
      }); 
      newrecords.setFieldValue('entity', aresults[0] 
        .getValue('internalid')); 
      newrecords.setFieldValue('account', stRAcctId); 
      newrecords.setFieldValue('trandate', stRPostingDate); 

      var lineNum = newrecords.findLineItemValue('apply', 
        'internalid', results[x][7]); 
      newrecords.selectLineItem('apply', lineNum); 
      newrecords.setCurrentLineItemValue('apply', 'apply', 'T'); 
      newrecords.setCurrentLineItemValue('apply', 'amount', payment); 
      newrecords.commitLineItem('apply'); 

      nlapiSubmitRecord(newrecords, false, false); 
      nlapiSubmitRecord(record); 

하나님 께 감사 위의 코드는 작동합니다. 위의 코드를 사용하여 공급 업체 지불 레코드를 생성 할 수 있습니다. 링크 덕분에 : http://blog.prolecto.com/2013/06/02/automate-creating-checks-to-pay-bills/

그것은 내 일 저장 :