我的系统有两个问题。记录我正在解决一些问题。该网站似乎运行良好,但我非常希望从日志中删除这些正在进行的错误。
注意:未定义变量:order in/var/www/。。。在线17
// line 17
$merchantnumber = $standard->getConfigData('merchantnumber', $order ? $order->getStoreId() : null);
警告:在/var/www/…中被零除。。。在线267
// line 267
"vat" => (float)round((string)((round($order->getBaseShippingInclTax(),2)-round($order->getBaseShippingAmount(),2))/round((string)$order->getBaseShippingAmount(),2))*100, 2)
更新
// line 258-281
$items = $order->getAllItems();
foreach ($items as $itemId => $item)
{
$invoice["lines"][] = array
(
"id" => $item->getSku(),
"description" => $item->getName(),
"quantity" => round($item->getQtyOrdered(), 0),
"price" => $item->getBasePrice()*100,
"vat" => (float)round((string)((round($item->getBasePriceInclTax(),2)-round($item->getBasePrice(),2))/round((string)$item->getBasePrice(),2))*100, 2)
);
}
$invoice["lines"][] = array
(
"id" => $order->getShippingMethod(),
"description" => $order->getShippingDescription(),
"quantity" => 1,
"price" => $order->getBaseShippingAmount()*100,
"vat" => (float)round((string)((round($order->getBaseShippingInclTax(),2)-round($order->getBaseShippingAmount(),2))/round((string)$order->getBaseShippingAmount(),2))*100, 2)
);
return json_encode($invoice);
}
我之前发布了错误的代码对不起,我在查看错误日志时感到困惑,因为相同的(Devider)错误出现在商品和订单部分
通知不是错误。您可以选择忽略它,也可以使用isset检查变量是否存在:
...er', isset($order) ? $...
应始终避免被零除,因为答案通常是未定义的(至少在数学上是未定义的)。在尝试除法之前,请检查分母是否为零。
在第一种情况下,您可以尝试将该行更改为
$merchantnumber = $standard->getConfigData('merchantnumber', (isset($order) && $order) ? $order->getStoreId() : null);
在第二种情况下,如果订单金额为美元,我无法准确地说出“vat”的值-
if (!$order->getBaseShippingAmount()) {
return;
}
添加到第267行上方的某个位置,但如果没有看到代码,就很难确定。
不幸的是,Magento代码似乎经常依赖于PHP对html" target="_blank">逻辑错误的容忍度,这被视为注意事项。
$merchantnumber = $standard->getConfigData('merchantnumber', $order ?
$order->getStoreId() : null);
如果未设置$订单,我们希望使用NULL而不是订单的存储Id:
$merchantnumber = $standard->getConfigData('merchantnumber',
isset($order) ? $order->getStoreId() : null);
在第二个文件中:
更新检查您是否指的是$order
或$Item
。如果它在循环中,它可能是后者。
"vat" => (float)round((string)((round($item->getBaseShippingInclTax(),2)-round($item->getBaseShippingAmount(),2))/round((string)$item->getBaseShippingAmount(),2))*100, 2)
增值税%从ShippingInclTax(即ShippingAmount增值税)中反算得出。仅当getBaseShippingAmount()为零时,计算才会崩溃。
为了应对这种情况,我们应该:
'vat' => (0 == round($item->getBaseShippingAmount(),2)) ? 0 :
(float)round((string)(
(round($item->getBaseShippingInclTax(),2)
-round($item->getBaseShippingAmount (),2)
)/round((string)$item->getBaseShippingAmount(),2)
)*100,2),
...我对所有这些四舍五入不太满意,但它们很可能存在,这样打印出来的账户就可以“检查”到最后一位小数,避免出现奇怪的结果,例如10.33 10.33 9.33=30.00而不是29.99。
我会写
'vat' => (0 == $item->getBaseShippingAmount()) ? 0
: round(
100.0*(
$item->getBaseShippingInclTax()/$item->getBaseShippingAmount()
-1.0
)
,2),
但即使在数学上更合理,我担心结果可能与Magento在其他地方打印的结果不匹配。
如果您在循环中使用$订单(意味着无论项目是什么,您都有相同的值),最好在循环之前计算增值税,然后在循环中使用它。
作为最核心的模块之一, Nutz的日志信息已经相当完善,看懂Nutz的日志,也是了解Nutz工作方式的核心途径之一.
THE LOGGING SYSTEM 对于任何 Linux 用户,了解日志文件的使用是非常重要的。日志文件存储关于操作系统和应用程序运行时发生的事件的信息,包括任何错误和安全警报。您的系统将根据我将在本章中介绍的一系列规则自动记录信息。 作为黑客,日志文件可以跟踪目标的活动和身份。但是它也可以是你自己在别人系统上的活动的踪迹。因此,黑客需要知道他们可以收集什么信息,以及可以收集关于他们自己的行为和
系统日志文件概述 文件 描述 /var/log/messages 大多数系统日志消息记录在此处。例外是与身份验证、电子邮件处理相关的定期运行作业的消息以及调试相关的消息。 /var/log/secure 安全和身份验证相关的消息和错误的日志文件。 /var/log/maillog 与邮件服务器相关的消息的日志文件。 /var/log/cron 与定期执行任务相关的日志文件。 /var/log/bo
本文向大家介绍mysql清除log-bin日志的方法,包括了mysql清除log-bin日志的方法的使用技巧和注意事项,需要的朋友参考一下 前一阵子工作项目上的事情忙的焦头烂额,最近要进行部门调整将要去做新的项目。又要学习很多新的知识了,还是很兴奋激动的。今天下班回来查看了一下VPS状态,发现VPS的空间只剩下了1G多!第一反应是被入侵了,但是看了一下log并没有发现什么异常的登录,加上平时基本都
清除系统缓存 初衷 本身 Linux 有比较成熟的内存管理机制,但是不免也是会抽风的,有些程序在被 kill 掉之后系统内存依然没有大的变化,这时候就需要手动清除。 清除缓存 官网说明:http://www.kernel.org/doc/Documentation/sysctl/vm.txt 先查看目前系统内存使用情况:free -m 同步缓存数据到硬盘:sync 开始清理:echo 3 > /p
sp_clear_cache() 功能: 清除缓存 参数: 无 返回: 无 <?php sp_clear_cache();//无返回值 ?>