根据一些变量计算增值税率

时间:2015-03-30 14:24:30

标签: php

以下功能正在努力,我必须根据一些规则计算$ vatamount。

我从一个触发我的ajax请求的脚本中得到了我的所有POST内容(下面的代码是ajax URL中的代码)。

规则是 - 如果$ bookingtype值是“公司”预订或“团体”预订,那么增值税率将根据逗留时间计算。 28晚以上的住宿可享受20%的住宿,28晚住宿的住宿可享受4%的住宿。

但是,如果$ bookingtype值为“休闲”预订,则无论逗留时间长短,增值税率均为20%。

我有功能返回正确的增值税百分比。但最后一句if声明对我不起作用。我是一个php新手,我想我已经做得很好,以实现这一点。只需要一些帮助即可完成此功能。我想我已经把我的语法搞砸了lol

最后一个回波应该回显计算的增值税数量。

提前致谢。

function implement_ajax_vat() {
if(isset($_POST['arrivaldate']))
    {

        //get the start and end dates
        $startdate = ($_POST['arrivaldate']);
        $enddate = ($_POST['leavingdate']);     

        $datetime1 = new DateTime($startdate);
        $datetime2 = new DateTime($enddate);
        $interval = $datetime1->diff($datetime2);
        $numberofnights = $interval->format('%a nights');

        //calculatge the VAT amount
        $bookingtype = ($_POST['bookingtype']);
        $rentalprice = ($_POST['rentalprice']);

            //check numbr of nights
            if($numberofnights >= 29){

                $vatrate = "4";

             } elseif ($numberofnights <= 28) {

                $vatrate = "20";
            }

            //get the booking type and check if its a variable rate

            if(($bookingtype = 'Corporate') || ($bookingtype = 'Groups')){

                $vatamount = ($rentalprice / 100) * $vatrate;

            } elseif ($bookingtype = 'Leisure') {

                $vatamount = "20";

            }

            echo $vatamount;    

    die();
} 
}

1 个答案:

答案 0 :(得分:0)

您要分配值而不是比较:使用双等号==

if($bookingtype == 'Corporate' || $bookingtype == 'Groups'){
                 ^                              ^       
    $vatamount = ($rentalprice / 100) * $vatrate;

} elseif ($bookingtype == 'Leisure') {
                        ^
    $vatamount = 20;

}

这就是为什么第一个语句在分配并返回非空字符串时产生true的原因,所以你永远不会去elseif部分。