站长百科 | 数字化技能提升教程 数字化时代生存宝典
首页
数字化百科
电子书
建站程序
开发
服务器
办公软件
开发教程
服务器教程
软件使用教程
运营教程
热门电子书
WordPress教程
宝塔面板教程
CSS教程
Shopify教程
导航
程序频道
推广频道
网赚频道
人物频道
网站程序
网页制作
云计算
服务器
CMS
论坛
网店
虚拟主机
cPanel
网址导航
WIKI使用导航
WIKI首页
最新资讯
网站程序
站长人物
页面分类
使用帮助
编辑测试
创建条目
网站地图
站长百科导航
站长百科
主机侦探
IDCtalk云说
跨境电商导航
WordPress啦
站长专题
网站推广
网站程序
网站赚钱
虚拟主机
cPanel
网址导航专题
云计算
微博营销
虚拟主机管理系统
开放平台
WIKI程序与应用
美国十大主机
编辑“
Drupal:计算折旧和评价
”
人物百科
|
营销百科
|
网赚百科
|
站长工具
|
网站程序
|
域名主机
|
互联网公司
|
分类索引
跳转至:
导航
、
搜索
警告:
您没有登录。如果您做出任意编辑,您的IP地址将会公开可见。如果您
登录
或
创建
一个账户,您的编辑将归属于您的用户名,且将享受其他好处。
反垃圾检查。
不要
加入这个!
这里有不少被用来计算''直线折旧(straight-line depreciation)''和给定节点当前估算价格的代码片段。 用户输入CCK字段(user input CCK fields)为2个日期(需要日期模块(date module))和2个价格: 1. purchase_date (iso日期格式) 2. expire_date (iso日期格式) 3. purchase_value (小数格式) 4. expire_value (小数格式) - 当物品达到使用寿命时这是它的 'scrap value(残余价格)' 。 第一个函数计算折旧的年比率(annual rate of depreciation): <pre> <?php if (!$node->nid) node_save($node); $start_date = date_make_date($node->field_purchase_date[0]['value']); $start = $start_date->db->parts; $end_date = date_make_date($node->field_expire_date[0]['value']); $end = $end_date->db->parts; $start_decimal = $start['year'] + ($start['mon'] / 12); // 此给出年折旧 $end_decimal = $end['year'] + ($end['mon'] / 12); // $start_decimal = ($start['year'] * 12) + $start['mon']; // 此给出月折旧 // $end_decimal = ($end['year'] * 12) + $end['mon']; $useful_life = $end_decimal - $start_decimal; $start_value = ($node->field_purchase_value[0]['value']); $end_value = ($node->field_expire_value[0]['value']); $useful_value = ($start_value - $end_value); $node_field[0]['value'] = ($useful_value / $useful_life); ?> </pre> 结果应以浮点类型被保存在数据库中,数据长度为10,2 而且允许 NULL价格。它仅当可编辑节点字段(node-editable field)改变时才会更新(节点就被重新提交了)。 第二个函数是第一个函数的衍生(但不依赖第一个函数)。它根据相同的线状折旧计算(linear depreciation calculation)来计算当前数价格(current value)。 <pre> <?php if (!$node->nid) node_save($node); // 读取日期并设置为小数格式 $today = time(); // 读取当前时间,我们可以代之使用$node->updated... 见后文的注解 $start_date = date_make_date($node->field_purchase_date[0]['value']); $start = $start_date->db->parts; $end_date = date_make_date($node->field_expire_date[0]['value']); $end = $end_date->db->parts; $today_decimal = ($today / 31556952) + 1970.083; // 将unix时间转换为小数形式(很粗略,但是用作估算还是不错的 ;) $start_decimal = $start['year'] + ($start['mon'] / 12); // 将iso格式转换为小数形式 $end_decimal = $end['year'] + ($end['mon'] / 12); $useful_life = $end_decimal - $start_decimal; $used_life = $today_decimal - $start_decimal; // 读取购买价格和残余价格并计算出折旧价格 $start_value = ($node->field_purchase_value[0]['value']); $end_value = ($node->field_expire_value[0]['value']); $useful_value = ($start_value - $end_value); // 计算经估算的当前价格并四舍五入 $est_value = round(($useful_value / $useful_life) * $used_life); // 确定估算价格永不能低于残余价格. if ($today_decimal > $end_decimal) { $node_field[0]['value'] = ($end_value . ' (expired)'); } else { $node_field[0]['value'] = ($est_value . ' (estimated)'); } ?> </pre> 如果这被保存在了数据库中,它仅当节点从节点编辑表中提交时才会更新(即根据当前日期重新进行计算)--仅当节点(重新)提交时。我正探寻让当前价格可以在Views中被重新计算。 [[category:drupal:cck]]
摘要:
请注意,您对站长百科的所有贡献都可能被其他贡献者编辑,修改或删除。如果您不希望您的文字被任意修改和再散布,请不要提交。
您同时也要向我们保证您所提交的内容是您自己所作,或得自一个不受版权保护或相似自由的来源(参阅
Wordpress-mediawiki:版权
的细节)。
未经许可,请勿提交受版权保护的作品!
取消
编辑帮助
(在新窗口中打开)