Spamworldpro Mini Shell
Spamworldpro


Server : Apache
System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64
User : corals ( 1002)
PHP Version : 7.4.33
Disable Function : exec,passthru,shell_exec,system
Directory :  /home/corals/cartforge.co/app/code/StripeIntegration/Tax/Model/StripeTax/Request/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //home/corals/cartforge.co/app/code/StripeIntegration/Tax/Model/StripeTax/Request/LineItem.php
<?php

namespace StripeIntegration\Tax\Model\StripeTax\Request;

use StripeIntegration\Tax\Helper\GiftOptions;
use StripeIntegration\Tax\Helper\Tax;

class LineItem
{
    public const AMOUNT_KEY = 'amount';
    public const PRODUCT_KEY = 'product';
    public const QUANTITY_KEY = 'quantity';
    public const REFERENCE_KEY = 'reference';
    public const TAX_BEHAVIOR_KEY = 'tax_behavior';
    public const TAX_CODE_KEY = 'tax_code';

    private $amount;
    private $product;
    private $quantity;
    private $reference;
    private $taxBehavior;
    private $taxCode;

    private $lineItemsHelper;
    private $taxHelper;
    private $giftOptionsHelper;

    public function __construct(
        \StripeIntegration\Tax\Helper\LineItems $lineItemsHelper,
        Tax $taxHelper,
        GiftOptions $giftOptionsHelper
    )
    {
        $this->lineItemsHelper = $lineItemsHelper;
        $this->taxHelper = $taxHelper;
        $this->giftOptionsHelper = $giftOptionsHelper;
    }

    public function formData($item, $currency, $parentQty = 1)
    {
        $this->setTaxCode($this->lineItemsHelper->getTaxCode($item));
        $this->setAmount($this->lineItemsHelper->getAmount($item, $currency));
        $this->setReference($this->lineItemsHelper->getReference($item));
        $this->setQuantity((int)$item->getQty() * $parentQty);
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function formItemGiftOptionsData($item, $currency)
    {
        $this->setGiftOptionsCommonFields();
        $this->setQuantity((int)$item->getQty());
        $this->setAmount($this->giftOptionsHelper->getItemGiftOptionsAmount($item, $currency) * $this->getQuantity());
        $this->setReference($this->giftOptionsHelper->getItemGiftOptionsReference($item));

        return $this;
    }

    public function formSalesObjectGiftOptionsData($object, $currency)
    {
        $this->setGiftOptionsCommonFields();
        $this->setAmount($this->giftOptionsHelper->getSalseObjectGiftOptionsAmount($object, $currency));
        $this->setReference($this->giftOptionsHelper->getSalesObjectGiftOptionsReference($object));

        return $this;
    }

    public function formSalesObjectPrintedCardData($object, $currency)
    {
        $this->setGiftOptionsCommonFields();
        $this->setAmount($this->giftOptionsHelper->getSalesObjectPrintedCardAmount($object, $currency));
        $this->setReference($this->giftOptionsHelper->getsalesObjectPrintedCardReference($object));

        return $this;
    }

    private function setGiftOptionsCommonFields()
    {
        $this->setTaxCode($this->giftOptionsHelper->getGiftOptionsTaxCode());
        $this->setQuantity(1);
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function formDataForInvoiceTax($item, $order)
    {
        $this->setTaxCode($this->lineItemsHelper->getTaxCodeForInvoiceTax($item));
        $this->setAmount($this->lineItemsHelper->getAmount($item, $order->getOrderCurrencyCode()));
        $this->setReference($this->lineItemsHelper->getReferenceForInvoiceTax($item, $order));
        $this->setQuantity((int)$item->getQty());
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function formItemGwDataForInvoiceTax($item, $order)
    {
        $this->setGiftOptionsCommonFields();
        $this->setQuantity((int)$item->getQty());
        $this->setAmount($this->giftOptionsHelper->getItemGiftOptionsAmount($item->getOrderItem(), $order->getOrderCurrencyCode()) * $this->getQuantity());
        $this->setReference($this->giftOptionsHelper->getItemGwReferenceForInvoiceTax($item, $order));

        return $this;
    }

    public function formAdditionalFeeItemData($item, $currency, $additionalFeeData, $parentQty = 1)
    {
        $this->setQuantity((int)$item->getQty() * $parentQty);
        $this->setTaxCode($this->lineItemsHelper->getTaxCodeByTaxClassId($additionalFeeData['tax_class_id']));
        $this->setAmount($this->lineItemsHelper->getStripeFormattedAmount($additionalFeeData['amount'], $currency));
        $this->setReference($this->lineItemsHelper->getItemAdditionalFeeReference($item, $additionalFeeData['code']));
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function formAdditionalFeeSalesEntityData($entity, $currency, $additionalFeeData)
    {
        $this->setQuantity(1);
        $this->setTaxCode($this->lineItemsHelper->getTaxCodeByTaxClassId($additionalFeeData['tax_class_id']));
        $this->setAmount($this->lineItemsHelper->getStripeFormattedAmount($additionalFeeData['amount'], $currency));
        $this->setReference($this->lineItemsHelper->getSalesEntityAdditionalFeeReference($entity, $additionalFeeData['code']));
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function formAdditionalFeeInvoiceItemData($item, $order, $additionalFeeData)
    {
        $this->setTaxCode($this->lineItemsHelper->getTaxCodeByTaxClassId($additionalFeeData['tax_class_id']));
        $this->setAmount($this->lineItemsHelper->getStripeFormattedAmount($additionalFeeData['amount'], $order->getOrderCurrencyCode()));
        $this->setReference($this->lineItemsHelper->getReferenceForInvoiceAdditionalFee($item, $order, $additionalFeeData['code']));
        $this->setQuantity((int)$item->getQty());
        $this->setTaxBehavior($this->taxHelper->getProductAndPromotionTaxBehavior());

        return $this;
    }

    public function toArray()
    {
        $lineItems = [];
        $lineItems[self::AMOUNT_KEY] = $this->getAmount();
        if ($this->getTaxCode()) {
            $lineItems[self::TAX_CODE_KEY] = $this->getTaxCode();
        }
        $lineItems[self::TAX_BEHAVIOR_KEY] = $this->getTaxBehavior();
        $lineItems[self::QUANTITY_KEY] = $this->getQuantity();
        $lineItems[self::REFERENCE_KEY] = $this->getReference();

        return $lineItems;
    }

    public function getAmount()
    {
        return $this->amount;
    }

    public function setAmount($amount)
    {
        $this->amount = $amount;

        return $this;
    }

    public function getProduct()
    {
        return $this->product;
    }

    public function setProduct($product)
    {
        $this->product = $product;

        return $this;
    }

    public function getQuantity()
    {
        return $this->quantity;
    }

    public function setQuantity($quantity)
    {
        $this->quantity = $quantity;

        return $this;
    }

    public function getReference()
    {
        return $this->reference;
    }

    public function setReference($reference)
    {
        $this->reference = $reference;

        return $this;
    }

    public function getTaxBehavior()
    {
        return $this->taxBehavior;
    }

    public function setTaxBehavior($taxBehavior)
    {
        $this->taxBehavior = $taxBehavior;

        return $this;
    }

    public function getTaxCode()
    {
        return $this->taxCode;
    }

    public function setTaxCode($taxCode)
    {
        $this->taxCode = $taxCode;

        return $this;
    }
}

Spamworldpro Mini