0

I need to calculate some custom value in the checkout summary section, for that, I have written some code In the model file, but it was doing only Addition in the Order total. I need multiplication or Division in that calculation.

Here is my code.

SUgarcode/Test/Model/Total/Rate.php

public function collect(
        \Magento\Quote\Model\Quote $quote,
        \Magento\Quote\Api\Data\ShippingAssignmentInterface $shippingAssignment,
        \Magento\Quote\Model\Quote\Address\Total $total
    ) {
        parent::collect($quote, $shippingAssignment, $total);
        
        $items = $shippingAssignment->getItems();
        if (!count($items)) {
            return $this;
        }
        $enabled = $this->helperData->isModuleEnabled();
        $gstin   = $this->helperData->gst_in();
        
        if ($enabled && $gstin) 
        {
            $exist_amount = $quote->getGstrate(); 
            
            $gstrate = $this->helperData->gst_rate();
            $gst_rate = floatval($gstrate);
            $balance = $gst_rate - $exist_amount;
            
            $total->setTotalAmount('gst_rate', $balance);
            $total->setBaseTotalAmount('gst_rate', $balance);

            $total->setGstrate($balance);
            $total->setBaseGstrate($balance);  

            //$subTotal = $total['subtotal'];
            
            //$total->setGrandTotal($total->getGrandTotal() + $balance);
            $total->setBaseGrandTotal($total->getBaseGrandTotal() + $balance);
            //echo "<pre>"; print_r($total); echo '</pre>';
            return $this;
        }
    } 

Output:

Output is:

Now I want to do the calculation something like below.

<?php  if ($block->gstEnable()): ?>    
    <?php if ($helper->gst_in()): ?>
        <?php echo 'GST'. $getgstrate; echo "<br>"; ?>
        <?php            
            /* Convert Percentage Value in to Number Code */
             $gst_float = floatval($getgstrate);            
            /* Convert Percentage Value in to Number Code */

            $subTotal = $block->getSubtotal();
            $totalgst = $subTotal * $gst_float / 100;
            echo "GST".$totalgst;
            echo "<br>";
            $devidedgst= $totalgst / 2;

            echo "CGST".(round($devidedgst, 2));
            echo "<br>";
            echo "SGST".(round($devidedgst, 2));
            echo "<br>";

        ?>
    <?php endif; ?>    
<?php endif; ?>

How can I do this in Order Total? Please guide me on this.

0

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.