【问题标题】:Where to add journal entry line details in a line object for QuickBooks Online在 QuickBooks Online 的行对象中添加日记帐分录行详细信息的位置
【发布时间】:2014-03-28 16:54:55
【问题描述】:

我一直在努力尝试将日记条目 (JE) 发送到 QBO,但我无法完全掌握如何完全创建对象。

所以我有我的整体 JE 对象并在其中设置基本值。然后,在每个 JE 对象中都有一个 Line 对象数组,它们对应于 JE 中的每一行。然后,每一行都有一个 DetailType 需要设置为 JournalEntryLineDetail,然后您应该创建 JournalEntryLineDetail 对象,该对象包含该行的更多信息。但是,您将这个 JournalEntryLineDetail 对象放在 Line 对象的什么位置?您是否将其附加到 Line.AnyIntuitObject 对象?

我一直在阅读文档,但似乎没有明确的答案说“这就是 JournalEntryLineDetail 所在的位置”,我在任何地方都找不到答案。

我目前有类似的东西:

Dim je As New Intuit.Ipp.Data.JournalEntry()
Dim l As New Intuit.Ipp.Data.Line()
Dim jeld As New Intuit.Ipp.Data.JournalEntryLineDetail()

je.PrivateNote = "Something"
je.TxnDate = Now

l.Description = "Something Squared"
l.Amount = 100000000.00
l.DetailType = Intuit.Ipp.Data.LineDetailTypeEnum.JournalEntryLineDetail

jeld.PostingType = Intuit.Ipp.Data.PostingTypeEnum.Credit
jeld.AccountRef = 80

'Line to put jeld into the line - This is what I don't know how to do.
je.Line = {l}

注意:
这段代码并不能反映我在命名约定方面的实际编码能力,只是把它放在一起来举个例子。

编辑:
Intuit JE Doc
Intuit Line Doc

【问题讨论】:

    标签: .net intuit-partner-platform quickbooks-online


    【解决方案1】:

    创建 JournalEntry 对象并将行保存到对象时,您确实需要将 JournalEntryLineDetail 保存到 Line.AnyIntuitObject 对象。

    【讨论】:

    • 我花了很长时间才弄明白。谢谢。
    【解决方案2】:
                            JournalEntry journalEntry = new JournalEntry();
                            journalEntry.Adjustment = true;
                            journalEntry.AdjustmentSpecified = true;
                            //journalEntry.JournalEntryEx = 
    
                            journalEntry.DocNumber = "DocNu1";
                            journalEntry.TxnDate = DateTime.UtcNow.Date;
                            journalEntry.TxnDateSpecified = true;
                            journalEntry.HomeTotalAmt = 100;
                            journalEntry.HomeTotalAmtSpecified = true;
                            journalEntry.TotalAmt = 100;
                            journalEntry.TotalAmtSpecified = true;
                            List<Line> lineList = new List<Line>();
    
                            Line debitLine = new Line();
                            debitLine.Description = "nov portion of rider insurance";
                            debitLine.Amount = new Decimal(100.00);
                            debitLine.AmountSpecified = true;
                            debitLine.DetailType = LineDetailTypeEnum.JournalEntryLineDetail;
                            debitLine.DetailTypeSpecified = true;
                            JournalEntryLineDetail journalEntryLineDetail = new JournalEntryLineDetail();
                            journalEntryLineDetail.PostingType = PostingTypeEnum.Debit;
                            journalEntryLineDetail.PostingTypeSpecified = true;
                            journalEntryLineDetail.AccountRef = new ReferenceType() { name = "Accumulated Depreciation", Value = "36" };
                            debitLine.AnyIntuitObject = journalEntryLineDetail;
                            lineList.Add(debitLine);
    
                            Line creditLine = new Line();
                            creditLine.Description = "nov portion of rider insurance";
                            creditLine.Amount = new Decimal(100.00);
                            creditLine.AmountSpecified = true;
                            creditLine.DetailType = LineDetailTypeEnum.JournalEntryLineDetail;
                            creditLine.DetailTypeSpecified = true;
                            JournalEntryLineDetail journalEntryLineDetailCredit = new JournalEntryLineDetail();
                            journalEntryLineDetailCredit.PostingType = PostingTypeEnum.Credit;
                            journalEntryLineDetailCredit.PostingTypeSpecified = true;
                            journalEntryLineDetailCredit.AccountRef = new ReferenceType() { name = "Accumulated Depreciation", Value = "36" };
                            creditLine.AnyIntuitObject = journalEntryLineDetailCredit;
                            lineList.Add(creditLine);
    
                            journalEntry.Line = lineList.ToArray();
                            JournalEntry result = commonServiceQBO.Add(journalEntry) as JournalEntry;
    

    dotnet 可以参考以上内容。

    【讨论】:

      【解决方案3】:

      我没有任何方便的 .Net 代码使用 devkit 创建 JE 对象。

      您可能需要参考以下 java 代码。

          public JournalEntry getJournalEntryFields() throws FMSException {
              JournalEntry journalEntry = new JournalEntry();
      
              Line line1 = new Line();
              line1.setDetailType(LineDetailTypeEnum.JOURNAL_ENTRY_LINE_DETAIL);
              JournalEntryLineDetail journalEntryLineDetail1 = new JournalEntryLineDetail();
              journalEntryLineDetail1.setPostingType(PostingTypeEnum.DEBIT);
              //Account debitAccount = qboHelper.getCashBankAccount();
              //journalEntryLineDetail1.setAccountRef(qboHelper.getAccountRef(debitAccount));
      
      
              ReferenceType accountReferenceType = new ReferenceType();
              accountReferenceType.setValue("10");
              accountReferenceType.setName("Dues and Subscriptions");
              journalEntryLineDetail1.setAccountRef(accountReferenceType);
      
              line1.setJournalEntryLineDetail(journalEntryLineDetail1);
              line1.setAmount(new BigDecimal("100.00"));
      
              Line line2 = new Line();
              line2.setDetailType(LineDetailTypeEnum.JOURNAL_ENTRY_LINE_DETAIL);
              JournalEntryLineDetail journalEntryLineDetail2 = new JournalEntryLineDetail();
              journalEntryLineDetail2.setPostingType(PostingTypeEnum.CREDIT);
      //      /Account creditAccount = qboHelper.getCreditCardBankAccount();
              journalEntryLineDetail2.setAccountRef(accountReferenceType);
      
              line2.setJournalEntryLineDetail(journalEntryLineDetail2);
              line2.setAmount(new BigDecimal("100.00"));      
      
              List<Line> lines1 = new ArrayList<Line>();
              lines1.add(line1);
              lines1.add(line2);
              journalEntry.setLine(lines1);
      
              return journalEntry;
          }
      

      谢谢

      【讨论】:

      • 是的,我看到了一些 Java 代码,但问题是 .NET 中没有等效于 setJournalEntryLineDetail(...) 的方法。并且没有任何明确的属性可以添加 JournalEntryLineDetail。我为 JE 和 Line 添加了 .NET 文档 URL。
      • 您可以从 QBO UI 创建一个 JE,然后尝试使用 .net devkit 检索它。您可以在调试模式下查看对象以查看属性详细信息和内部属性映射。谢谢
      • 这有助于调试这个问题吗?
      • 是的,我最终运行了一个测试,只是检查了返回的对象存储行的位置。感谢您提醒我,我完全忘记/忽略了这一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-20
      • 1970-01-01
      • 1970-01-01
      • 2023-03-21
      • 1970-01-01
      相关资源
      最近更新 更多