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的计算.
  • 相关阅读:
    APP_DEBUG作用
    tp字段映射机制原理
    unix、windows、mac 的换行习惯
    DroidCam 一片 红色 解决办法
    A3 A8 算法,中文简明解释
    /usr/local/mysql/bin/mysql P 3307 protocol=tcp 无法连接mysql
    [转载]网络基础:精解传输层安全协议
    无线网络加密一点漫谈
    安全模式:J2EE、Web服务和身份管理最佳实践与策略
    scp和winscp
  • 原文地址:https://www.cnblogs.com/Farseer1215/p/510715.html
Copyright © 2011-2022 走看看