保护固定资产的安全完整,实现资产的保值增值
by 步缀
linux-nvdimm
企业固定资产管理 11月11-12日上海 11月18-19日深圳
课程背景:
固定资产是企业重要的生产力要素之一,是企业赖以生存的物质基础,是企业产生效益的源泉,固定资产的结构、状况、管理水平等直接影响着企业的竞争力,关系到企业的运营与发展。企业科学管理和正确核算固定资产,有利于促进企业正确评估固定资产的整体状况,提高资产使用效率,降低生产成本,保护固定资产的安全完整,实现资产的保值增值,增强企业的综合竞争实力。特别是财政部近两年内接连发布的新会计审计准则体系和内部控制规范体系,使企业面临着固定资产管理乃至成本管理方面前所未有的巨大挑战。如何接受和应对新的监管规范,如何面对激烈的成本竞争,相信您从本次课程中能够得到很大的启示和收获。
培训收益:
(1)企业科学管理和正确核算固定资产;
(2)有利于促进企业正确评估固定资产的整体状况;
(3)提高资产使用效率,降低生产成本;
(4)保护固定资产的安全完整,实现资产的保值增值;
(5)使学员提升合理配置与处置闲置固定资产的技能。
培训内容:
第一讲 企业固定资产概述
一、固定资产的分类
二、固定资产的确认与计量
第二讲 如何构建固定资产管理体系
一、各级固定资产管理组织的职责与分工
二、固定资产管理岗位的设置与职责
三、固定资产管理制度的制订
四、固定资产管理内部控制与监督流程的设计
五、有效管理各机构固定资产管理人员的手段
六、提升固定资产三全管理意识和积级性的举措
案例
第三讲 固定资产投资决策
一、固定资产投资项目决策的现金概念与项目计算期
二、固定资产现金流量及其计算
(一)初始现金流量
(二)营业现金流量
(三)终结点现金流量
(四)经营现金净流量计算
案例
三、固定资产投资决策方法的应用
(一)投资回收期法的应用
(二)投资回收率法的应用
(三)净现值法的应用
(四)现值指数法的应用
(五)内含报酬率法的应用
(六)各种方法的综合应用
案例
第四讲 固定资产增加的管理
一、外购固定资产的管理
(一)编制采购计划
(二)请购
(三)选择供应商
(四)确定采购价格
(五)订立采购合同
(六)供应过程
(七)验收
二、固定资产投资的管理
(一)固定资产投资项目立项
(二)固定资产投资项目设计
(三)固定资产投资环境可行性决策
(四)固定资产投资经济可行性决策
(五)固定资产投资可行性研究报告
(六)固定资产投资施工管理
(七)固定资产投资核算
(八)固定资产交付验收
(九)固定资产投资后评估
三、投资者投入固定资产的管理
四、经营性租入固定资产的管理
五、融资租入固定资产的管理
六、非货币性资产交换换入固定资产的管理
七、债务重组取得固定资产的管理
八、接受捐赠固定资产的管理
九、盘盈固定资产的管理
案例
第五讲 固定资产减少的管理
一、出售固定资产的管理
二、经营性出租固定资产的管理
三、对外投资固定资产的管理
四、非货币性资产交换换出固定资产的管理
五、债务重组减少固定资产的管理
六、报废或毁损固定资产的管理
七、对外捐赠固定资产管理
八、盘亏固定资产的处理
第六讲 固定资产折旧的管理
一、影响固定资产折旧的主要因素
二、计提折旧的固定资产范围
三、计提固定资产折旧的方法
案例
第七讲 固定资产修理与更新管理
一、固定资产修理的管理
二、固定资产更新的管理
案例
第八讲 固定资产清查的管理
一、建立固定资产清查制度
二、成立固定资产清查组织
三、分配固定资产分配任务
四、清理闲置固定资产
五、清理利用率不达标的固定资产
六、清查后分别提出闲置与利用率不达标的固定资产的处理方案
案例
第九讲 固定资产后续支出与期末计价的管理
一、固定资产费用化后续支出
二、固定资产资本化后续支出
三、固定资产期末计价
第十讲 固定资产风险控制
一、固定资产取得环节的主要风险与主要管控措施
二、固定资产更新改造环节的主要风险与主要管控措施
三、固定资产处置环节的主要风险与主要管控措施
四、固定资产清查环节的主要风险与主要管控措施
案例
第十一讲 企业固定资产的最佳配置
一、固定资产最佳配置原则
二、固定资产最佳配置方法
第十二讲 国有企业固定资产管理存在的问题与对策
一、国有企业固定资产管理存在的问题
二、应对国有企业固定资产管理问题的举措
第十三讲 设备控制要点
一、设备采购的控制要点
二、设备自制的控制要点
三、设备安装、验收的控制要点
四、设备付款的控制要点
五、设备技术改造的控制要点
六、设备后期处理控制要点
第十四讲 案例分析
案例一 某企业固定资产管理实操
案例二 某企业固定资产投资决策实操
案例三 用友财务软件固定资产管理
第十五讲 互动与答疑
时长:2天
讲师介绍:屠建清
世界华人专家, 高级会计师,中华全国管理创新研究会副会长,中国讲师网品牌讲师、金牌讲师。2013年被评为中国优秀培训师;2014年被评为中国讲师500强、财务管理领域十强;2015年被评为中国放心讲师、中国诚信品牌讲师、“明德杯”中国好讲师、中国最具实战性品牌讲师、“师王争霸赛”中国最具创新性讲师、163诚信讲师全国50强 ; 2016年被评为中国培训最具号召力讲师、中国培训百强名师。
现任北京中建政研信息咨询中心专家委员会委员,北京解税宝科技有限公司首席税务专家库成员,北大、浙大、上财大、浙师大等特聘讲师、教授,汇师经纪、中教国培等签约讲师,北京培训行业联谊会常务理事等。从事培训授课30多年,拥有会计、财务、税务、内控、审计、预算、资本、风险 、非财等20个系列300多门课程,涉及制造业、建筑业、电信业、房地产业、金融业、行政事业、超市、学校、医院、宾馆、财政税务、农村等。
曾任制造业国有企业、三资企业、民营企业副总、筹备上市和新三板挂牌企业财务总监兼总经理助理等高管18年、财务中层20年,银行客户经理等中层5年和银行顾问3年,兼任某会计师、税务师事务所副所长,企业(制造业、建筑业、金融业、房地产业)高级顾问18年,特约审计12年,曾任上市公司内部控制主审和参与多家企业(单位)专项审计。
获社会科学成果(财税类)3项、著作证书(企业管理类)12份
在省级以上刊物发表论文120多篇,其中:获国际优秀论文10篇、箸作证书20多份、
全国优秀论文一等奖10多篇。编写财务会计、财务管理、内部控制等内部教材5部。
授课风格: 知识性、务实性、趣味性三者有机结合
课程特色: 内容包满,操作性、融会性、新颖性强
时间地点: 11月11-12日上海 11月18-19日深圳
学员对象:财务部、设备部、资产管理人员等相关人员。
费 用:4000元 (包括培训、培训教材、午餐、以及上下午茶点等)
联系电话: 0755-61288035 021-31261580
QQ:6.9.8.3.4.3.6 手机:18890700600 (微信同号)
(在线报名请回复,课程名称+公司名称+参会人全名+联系方式 至QQ信箱)
7:44:58
3 years, 5 months
业务员为什么有激情,没有业绩?
by 贝冯
linux-nvdimm
为什么业务员经常申请政策,但就是没有业绩?
为什么报销费用越来越高,但业绩总是不理想?
两天时间为您解决所有问题
5:11:49
3 years, 5 months
[ndctl patch] btt_check_bitmap: initialize rc
by Jeff Moyer
It may be possible that rc is never set before returning from
the function. nfree would have to be zero, and the bitmap
would have to be full. Fix it.
Signed-off-by: Jeff Moyer <jmoyer(a)redhat.com>
diff --git a/ndctl/check.c b/ndctl/check.c
index 915bb9d..dafd6a8 100644
--- a/ndctl/check.c
+++ b/ndctl/check.c
@@ -508,7 +508,7 @@ static int btt_check_bitmap(struct arena_info *a)
{
unsigned long *bm;
u32 i, btt_mapping;
- int rc;
+ int rc = BTT_BITMAP_ERROR;
bm = bitmap_alloc(a->internal_nlba);
if (bm == NULL)
@@ -521,7 +521,6 @@ static int btt_check_bitmap(struct arena_info *a)
info(a->bttc,
"arena %d: internal block %#x is referenced by two map entries\n",
a->num, btt_mapping);
- rc = BTT_BITMAP_ERROR;
goto out;
}
bitmap_set(bm, btt_mapping, 1);
3 years, 5 months
[ndctl patch] dax_io: fix unknown parameter handling
by Jeff Moyer
The for loop will not loop more than once due to the return statement.
What's more, the following code, which prints out the usage, also won't
run. Let's change this to look more like other commands. Print out
invalid options and then print out the usage. usage_with_options will
exit, so no need for a return there.
Signed-off-by: Jeff Moyer <jmoyer(a)redhat.com>
diff --git a/daxctl/io.c b/daxctl/io.c
index 27e7463..2f8cb4a 100644
--- a/daxctl/io.c
+++ b/daxctl/io.c
@@ -526,15 +526,11 @@ int cmd_io(int argc, const char **argv, void *daxctl_ctx)
struct ndctl_ctx *ndctl_ctx;
argc = parse_options(argc, argv, options, u, 0);
- for (i = 0; i < argc; i++) {
+ for (i = 0; i < argc; i++)
fail("Unknown parameter \"%s\"\n", argv[i]);
- return -EINVAL;
- }
- if (argc) {
+ if (argc)
usage_with_options(u, options);
- return 0;
- }
if (!io.dev[0].parm_path && !io.dev[1].parm_path) {
usage_with_options(u, options);
3 years, 5 months
[ndctl patch] btt_check_arenas: fix use of uninitialized variable
by Jeff Moyer
Coverity complains that rc, passed to btt_xlat_status, may be
used uninitialized. In that case, we may also dereference a
NULL pointer. Fix it by only calling btt_xlat_status with a
valid arena.
Signed-off-by: Jeff Moyer <jmoyer(a)redhat.com>
diff --git a/ndctl/check.c b/ndctl/check.c
index 915bb9d..93f95c6 100644
--- a/ndctl/check.c
+++ b/ndctl/check.c
@@ -582,9 +582,10 @@ static int btt_check_arenas(struct btt_chk *bttc)
break;
}
- btt_xlat_status(a, rc);
- if (rc)
+ if (a && rc != BTT_OK) {
+ btt_xlat_status(a, rc);
return -ENXIO;
+ }
return 0;
}
3 years, 5 months
[ndctl PATCH] test: correctly adjust rc for skip/fail
by Vishal Verma
The exit code for daxdev-errors and multi-dax wasn't being set correctly
to distinguish a skipped test from a failure. Fix it by setting rc to 77
prior to probing for nfit_test, and to 1 after it.
Signed-off-by: Vishal Verma <vishal.l.verma(a)intel.com>
---
test/daxdev-errors.sh | 3 ++-
test/multi-dax.sh | 3 ++-
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/test/daxdev-errors.sh b/test/daxdev-errors.sh
index e9d9d57..d15bd82 100755
--- a/test/daxdev-errors.sh
+++ b/test/daxdev-errors.sh
@@ -37,7 +37,6 @@ check_min_kver "4.12" || { echo "kernel $KVER lacks dax dev error handling"; exi
set -e
trap 'err $LINENO' ERR
-rc=1
# setup (reset nfit_test dimms)
modprobe nfit_test
@@ -45,6 +44,8 @@ $NDCTL disable-region $BUS all
$NDCTL zero-labels $BUS all
$NDCTL enable-region $BUS all
+rc=1
+
query=". | sort_by(.available_size) | reverse | .[0].dev"
region=$($NDCTL list $BUS -t pmem -Ri | jq -r "$query")
diff --git a/test/multi-dax.sh b/test/multi-dax.sh
index 751f16f..d70ce69 100755
--- a/test/multi-dax.sh
+++ b/test/multi-dax.sh
@@ -20,7 +20,6 @@ json2var="s/[{}\",]//g; s/:/=/g"
rc=77
err() {
- rc=1
echo "test/multi-dax: failed at line $1"
exit $rc
}
@@ -45,6 +44,8 @@ $NDCTL disable-region $BUS all
$NDCTL zero-labels $BUS all
$NDCTL enable-region $BUS all
+rc=1
+
query=". | sort_by(.available_size) | reverse | .[0].dev"
region=$($NDCTL list $BUS -t pmem -Ri | jq -r "$query")
--
2.9.5
3 years, 5 months
[PATCH] libnvdimm: remove used code in nd_pmem_forget_poison_check()
by Dave Jiang
Dan Carpenter reported:
The patch 006358b35c73: "libnvdimm: add support for clear poison list
and badblocks for device dax" from Apr 7, 2017, leads to the
following static checker warning:
drivers/nvdimm/bus.c:852 nd_pmem_forget_poison_check()
warn: we tested 'nd_dax' before and it was 'false'
Remove unused code.
Reported-by: Dan Carpenter <dan.carpenter(a)oracle.com>
Signed-off-by: Dave Jiang <dave.jiang(a)intel.com>
---
drivers/nvdimm/bus.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/drivers/nvdimm/bus.c b/drivers/nvdimm/bus.c
index baf2839..c042174 100644
--- a/drivers/nvdimm/bus.c
+++ b/drivers/nvdimm/bus.c
@@ -849,13 +849,11 @@ static int nd_pmem_forget_poison_check(struct device *dev, void *data)
start = clear_err->address;
end = clear_err->address + clear_err->cleared - 1;
- if (nd_btt || nd_pfn || nd_dax) {
+ if (nd_btt || nd_pfn) {
if (nd_btt)
ndns = nd_btt->ndns;
else if (nd_pfn)
ndns = nd_pfn->ndns;
- else if (nd_dax)
- ndns = nd_dax->nd_pfn.ndns;
if (!ndns)
return 0;
3 years, 5 months
[PATCH v3 00/13] dax: fix dma vs truncate and remove 'page-less' support
by Dan Williams
Changes since v2 [1]:
* Add 'dax: handle truncate of dma-busy pages' which builds on the
removal of page-less dax to fix a latent bug handling dma vs truncate.
* Disable get_user_pages_fast() for dax
* Disable RDMA memory registrations against filesystem-DAX mappings for
non-ODP (On Demand Paging / Shared Virtual Memory) hardware.
* Fix a compile error when building with HMM enabled
---
tl;dr: A brute force approach to ensure that truncate waits for any
in-flight DMA before freeing filesystem-DAX blocks to the filesystem's
block allocator.
While reviewing the MAP_DIRECT proposal Christoph noted:
get_user_pages on DAX doesn't give the same guarantees as on
pagecache or anonymous memory, and that is the problem we need to
fix. In fact I'm pretty sure if we try hard enough (and we might
have to try very hard) we can see the same problem with plain direct
I/O and without any RDMA involved, e.g. do a larger direct I/O write
to memory that is mmap()ed from a DAX file, then truncate the DAX
file and reallocate the blocks, and we might corrupt that new file.
We'll probably need a special setup where there is little other
chance but to reallocate those used blocks.
So what we need to do first is to fix get_user_pages vs unmapping
DAX mmap()ed blocks, be that from a hole punch, truncate, COW
operation, etc.
I was able to trigger the failure with "[PATCH v3 08/13]
tools/testing/nvdimm: add 'bio_delay' mechanism" to keep block i/o pages
busy so a punch-hole operation can truncate the blocks before the DMA
finishes.
The solution presented is not pretty. It creates a stream of leases, one
for each get_user_pages() invocation, and polls page reference counts
until DMA stops. We're missing a reliable way to not only trap the
DMA-idle event, but also block new references being taken on pages while
truncate is allowed to progress. "[PATCH v3 12/13] dax: handle truncate of
dma-busy pages" presents other options considered, and notes that this
solution can only be viewed as a stop-gap.
Given the need to poll page-reference counts this approach builds on the
removal of 'page-less DAX' support. From the last submission Andrew
asked for clarification on the move to now require pages for DAX.
Quoting "[PATCH v3 02/13] dax: require 'struct page' for filesystem
dax":
Note that when the initial dax support was being merged a few years
back there was concern that struct page was unsuitable for use with
next generation persistent memory devices. The theoretical concern
was that struct page access, being such a hotly used data structure
in the kernel, would lead to media wear out. While that was a
reasonable conservative starting position it has not held true in
practice. We have long since committed to using
devm_memremap_pages() to support higher order kernel functionality
that needs get_user_pages() and pfn_to_page().
---
Dan Williams (13):
dax: quiet bdev_dax_supported()
dax: require 'struct page' for filesystem dax
dax: stop using VM_MIXEDMAP for dax
dax: stop using VM_HUGEPAGE for dax
dax: stop requiring a live device for dax_flush()
dax: store pfns in the radix
dax: warn if dma collides with truncate
tools/testing/nvdimm: add 'bio_delay' mechanism
IB/core: disable memory registration of fileystem-dax vmas
mm: disable get_user_pages_fast() for dax
fs: use smp_load_acquire in break_{layout,lease}
dax: handle truncate of dma-busy pages
xfs: wire up FL_ALLOCATED support
arch/powerpc/sysdev/axonram.c | 1
drivers/dax/device.c | 1
drivers/dax/super.c | 18 +-
drivers/infiniband/core/umem.c | 49 ++++-
drivers/s390/block/dcssblk.c | 1
fs/Kconfig | 1
fs/dax.c | 296 ++++++++++++++++++++++++++++-----
fs/ext2/file.c | 1
fs/ext4/file.c | 1
fs/locks.c | 17 ++
fs/xfs/xfs_aops.c | 24 +++
fs/xfs/xfs_file.c | 66 +++++++
fs/xfs/xfs_inode.h | 1
fs/xfs/xfs_ioctl.c | 7 -
include/linux/dax.h | 23 +++
include/linux/fs.h | 32 +++-
include/linux/vma.h | 33 ++++
mm/gup.c | 75 ++++----
mm/huge_memory.c | 8 -
mm/ksm.c | 3
mm/madvise.c | 2
mm/memory.c | 20 ++
mm/migrate.c | 3
mm/mlock.c | 5 -
mm/mmap.c | 8 -
tools/testing/nvdimm/Kbuild | 1
tools/testing/nvdimm/test/iomap.c | 62 +++++++
tools/testing/nvdimm/test/nfit.c | 34 ++++
tools/testing/nvdimm/test/nfit_test.h | 1
29 files changed, 651 insertions(+), 143 deletions(-)
create mode 100644 include/linux/vma.h
3 years, 5 months
[ndctl PATCH v3 0/6] add an inject-error command to ndctl
by Vishal Verma
v3:
patch 2:
- Don't export ndctl_namespace_get_injection_bounds (Dan).
v2:
patch 1:
- use poll() instead of a sleep loop when waiting for a scrub. (Dan)
patch 2 (new):
- move the acpi nfit specific routines into generic wrappers exported
by the library. (Dan)
patch 3:
- rename 'clear' to 'uninject' use 'block' instead of 'sector' (Dan)
- cleanup the manpage to remove ACPI/NFIT references.
patch 4:
- Add the actual inject-error unit test instead of just test
boilerplate
These patches add a new command to ndctl for error injection. They are
implemented such that the interface provided to a user is consistent
with the kernel - i.e. all media errors are expected/displayed in terms
of 512 byte sectors. The underlying ACPI DSMs need and provide byte
relative offsets/lengths, but these are converted to 512B sectors for
consistency.
These also update unit tests to use the new error injection commands,
and add two new unit tests - first, to test the error injection commands
themselves, and second, to test BTT error clearing.
Vishal Verma (6):
libndctl: add APIs to get scrub count and to wait for a scrub
libndctl: add error injection related interfaces
ndctl: add an inject-error command
ndctl/test: add a new unit test for inject-error
ndctl/test: update existing unit tests to use inject-error
ndctl/test: add a new unit test for BTT error clearing
Documentation/ndctl/Makefile.am | 1 +
Documentation/ndctl/ndctl-inject-error.txt | 108 ++++++++
Documentation/ndctl/ndctl.txt | 1 +
builtin.h | 1 +
contrib/ndctl | 5 +-
ndctl/Makefile.am | 3 +-
ndctl/inject-error.c | 373 +++++++++++++++++++++++++++
ndctl/lib/Makefile.am | 1 +
ndctl/lib/inject.c | 391 +++++++++++++++++++++++++++++
ndctl/lib/libndctl.c | 147 +++++++----
ndctl/lib/libndctl.sym | 10 +
ndctl/lib/nfit.c | 89 +++++++
ndctl/lib/private.h | 54 ++++
ndctl/libndctl-nfit.h | 10 +
ndctl/libndctl.h.in | 22 ++
ndctl/ndctl.c | 1 +
test/Makefile.am | 4 +-
test/btt-errors.sh | 149 +++++++++++
test/clear.sh | 5 +-
test/dax-errors.sh | 5 +-
test/daxdev-errors.sh | 17 +-
test/inject-error.sh | 120 +++++++++
util/json.c | 26 ++
util/json.h | 3 +
util/list.h | 50 ++++
util/size.h | 1 +
26 files changed, 1547 insertions(+), 50 deletions(-)
create mode 100644 Documentation/ndctl/ndctl-inject-error.txt
create mode 100644 ndctl/inject-error.c
create mode 100644 ndctl/lib/inject.c
create mode 100755 test/btt-errors.sh
create mode 100755 test/inject-error.sh
create mode 100644 util/list.h
--
2.9.5
3 years, 5 months