zoukankan      html  css  js  c++  java
  • Axapta财务过账分析(二)

    点击窗体上的OK后,就会调用salesFormLetter(其子类SalesFormLetter_invoice没有重载Run())Run()方法了.
    Run()方法做了如下几件事情:
    1.构造QueryRun(),该QueryRun对象执行的SQL如下所示:
    select * from salesParmUpdate a
    inner join salesParmTable b on a.parmid = b.parmId
    where a.parmid='当前的ParmId' and B.PARMJOBSTATUS='ParmJobStatus::Waiting'
    2.如果打印类型是current或者invocie是proforma的,则构造用表CustInvoiceJour构造一个RecordSortedList,供后面使用.
    3.从步骤1中构造的QueryRun()返回的结果中取出SalesParmTable,并有SalesParmTable找到其对应的salesTable记录.如果salesTable不为空则调用createJournal()方法.
    createJournal()做了如下几件事情:
    1.根据salesTable,文档类型以及salesParmUpdate的一些值构造salesTotal对象,最终实例化的是类型是salesTotal_ParmTrans.介绍一下salesTotal中几个类的继承关系:TradeTotals<-SalesTotal<-Salestotal_Sales<-SalesTotal_ParmTrans.后面很多的计算任务都是由父类TrandTotals完成的.
    2.调用salesTotal_ParmTrans的方法设定是否计算数量,金额等,这些项包括应收账款,杂项收费,税款等等.
    3.调用TradeTotals的tax方法计算税额.
    4.调用InsertJournal()方法,进行相关费用的计算,过账,并更新salesParmTable和salesParmLine等相关表的状态.
    到此为止,SalasFormLetter的主线逻辑已经叙述完毕.
    实际上财务过账的主要工作在createJournal()方法中的第三步和第四步完成的.
    在下一篇文章中将进入正题详细介绍Tax的计算.
  • 相关阅读:
    iSCSI又称为IPSAN
    文档类型定义DTD
    HDU 2971 Tower
    HDU 1588 Gauss Fibonacci
    URAL 1005 Stone Pile
    URAL 1003 Parity
    URAL 1002 Phone Numbers
    URAL 1007 Code Words
    HDU 3306 Another kind of Fibonacci
    FZU 1683 纪念SlingShot
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/510715.html
Copyright © 2011-2022 走看看