static public CashAccountReceivableDetail getInctance()
        {
            if (m_instance == null)
            {
                m_instance = new CashAccountReceivableDetail();
            }

            return(m_instance);
        }
Exemplo n.º 2
0
        private void insertToCashAccountReceivableDatail(InitAccountReceivableTable record)
        {
            // 把期初的客户欠款余额信息更新到应收账款明细表中。作为使用在现金管理里面查询企业跟该客户往来账的依据
            CashAccountReceivableDetailTable data = new CashAccountReceivableDetailTable();

            data.billTypeName         = "期初数据";
            data.customerOrSupplierID = record.customerOrSupplierID;
            data.turnover             = record.balance;
            data.balance = record.balance;

            CashAccountReceivableDetail.getInctance().insert(data);
        }
Exemplo n.º 3
0
        private void updateAccountReceivableData(string billNumber)
        {
            SaleOutOrderTable accountReceivableData = getSaleInfoFromBillNumber(billNumber);

            if (accountReceivableData.saleType == "赊购")
            {
                InitAccountReceivableTable record = new InitAccountReceivableTable();

                // 应收款金额
                double turnover = Convert.ToDouble(accountReceivableData.sumMoney.ToString());

                string message = "单据 [" + accountReceivableData.billNumber + "] 销售类型为赊购,";
                message += "系统会自动产生一笔应收账款信息记录到客户 [" + accountReceivableData.customerName + "] 账户下,";
                message += "请确实应收账款金额,然后点击【确定】按钮(如需调整金额,请点击调整【金额调整】按钮,再点击【确定】)";

                FormAdjustAmount faa = new FormAdjustAmount("应收账款金额确认", message, accountReceivableData.totalMoney);
                faa.ShowDialog();
                turnover = faa.getAmount();

                if (!m_isRedBill)
                {
                    if (!InitAccountReceivable.getInctance().checkcustomerOrSupplierIDIsExist(accountReceivableData.customerId))
                    {
                        /* 说明
                         * 系统应收应收账款的汇总表和详细的收款还款记录是分开存放,并且默认情况下会相互更新
                         * 比如正常的逻辑(用于应收应收胀库初始化模块):
                         *      当在应收账款汇总表插入一条记录的时候,程序会自动插入一条期初数据到应收账款详细表
                         *      当有一笔交易更新了应收账款表时,程序会自动查询应收账款统计表,更新对应客户的欠款余额
                         * 此处的逻辑如下:
                         *      当发生销售出库赊购业务时候,自动产生一条应收账款信息
                         *      这里需要首先查询下系统中是否存在跟该客户的应收账款
                         *          如果不存在,需要同时更新应收账款汇总表和应收账款详细表,并且不需要两个表之间相同更新余额
                         *          如果存在,只需要更新应收账款详细表,应收账款详细表会自动更新应收账款汇总表中的余额
                         */

                        // 把数据插入到应收账款汇总表
                        InitAccountReceivableTable accountReceivableCount = new InitAccountReceivableTable();
                        accountReceivableCount.customerOrSupplierID = accountReceivableData.customerId;                // 客户ID
                        accountReceivableCount.tradingDate          = accountReceivableData.paymentDate;               // 交易日期
                        accountReceivableCount.balance = turnover;
                        InitAccountReceivable.getInctance().insert(accountReceivableCount, false, false);

                        // 把数据插入到应收账款明细表
                        CashAccountReceivableDetailTable cashAccountReceivableDetailrecord = new CashAccountReceivableDetailTable();
                        cashAccountReceivableDetailrecord.customerOrSupplierID = accountReceivableData.customerId;  // 客户ID
                        cashAccountReceivableDetailrecord.billTypeName         = "销售出库";                            // 账单类型
                        cashAccountReceivableDetailrecord.billNumber           = billNumber;                        // 单据号
                        cashAccountReceivableDetailrecord.tradingDate          = accountReceivableData.paymentDate; // 交易日期
                        cashAccountReceivableDetailrecord.turnover             = turnover;                          // 应收款金额
                        cashAccountReceivableDetailrecord.staffID = accountReceivableData.businessPeopleId;         // 业务员ID
                        CashAccountReceivableDetail.getInctance().insert(cashAccountReceivableDetailrecord, false);
                    }
                    else
                    {
                        // 把数据插入到应收账款明细表
                        CashAccountReceivableDetailTable cashAccountReceivableDetailrecord = new CashAccountReceivableDetailTable();
                        cashAccountReceivableDetailrecord.customerOrSupplierID = accountReceivableData.customerId;  // 客户ID
                        cashAccountReceivableDetailrecord.billTypeName         = "销售出库";                            // 账单类型
                        cashAccountReceivableDetailrecord.billNumber           = billNumber;                        // 单据号
                        cashAccountReceivableDetailrecord.tradingDate          = accountReceivableData.paymentDate; // 交易日期
                        cashAccountReceivableDetailrecord.turnover             = turnover;                          // 应收款金额
                        cashAccountReceivableDetailrecord.staffID = accountReceivableData.businessPeopleId;         // 业务员ID
                        CashAccountReceivableDetail.getInctance().insert(cashAccountReceivableDetailrecord, true);
                    }
                }
                else
                {
                    // 把数据插入到应收账款明细表
                    CashAccountReceivableDetailTable cashAccountReceivableDetailrecord = new CashAccountReceivableDetailTable();
                    cashAccountReceivableDetailrecord.customerOrSupplierID = accountReceivableData.customerId;  // 客户ID
                    cashAccountReceivableDetailrecord.billTypeName         = "销售退货";                            // 账单类型
                    cashAccountReceivableDetailrecord.billNumber           = billNumber;                        // 单据号
                    cashAccountReceivableDetailrecord.tradingDate          = accountReceivableData.paymentDate; // 交易日期
                    cashAccountReceivableDetailrecord.turnover             = turnover;                          // 应收款金额
                    cashAccountReceivableDetailrecord.staffID = accountReceivableData.businessPeopleId;         // 业务员ID
                    CashAccountReceivableDetail.getInctance().insert(cashAccountReceivableDetailrecord, true);
                }
            }
        }