src/Invoice/Completor.php
protected function completeLineTotals()
    {
        $linesAmount = 0.0;
        $linesAmountInc = 0.0;
        $linesVatAmount = 0.0;
        $this->lineTotalsStates = array(
            'incomplete' => array(),
            'equal' => array(),
            'differ' => array(),
        );

        $invoiceLines = $this->invoice[Tag::Customer][Tag::Invoice][Tag::Line];
        foreach ($invoiceLines as $line) {
            if (isset($line[Meta::LineAmount])) {
                $linesAmount += $line[Meta::LineAmount];
            } elseif (isset($line[Tag::UnitPrice])) {
                $linesAmount += $line[Tag::Quantity] * $line[Tag::UnitPrice];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesAmount] = Meta::LinesAmount;
            }

            if (isset($line[Meta::LineAmountInc])) {
                $linesAmountInc += $line[Meta::LineAmountInc];
            } elseif (isset($line[Meta::UnitPriceInc])) {
                $linesAmountInc += $line[Tag::Quantity] * $line[Meta::UnitPriceInc];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesAmountInc] = Meta::LinesAmountInc;
            }

            if (isset($line[Meta::LineVatAmount])) {
                $linesVatAmount += $line[Meta::LineVatAmount];
            } elseif (isset($line[Meta::VatAmount])) {
                $linesVatAmount += $line[Tag::Quantity] * $line[Meta::VatAmount];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesVatAmount] = Meta::LinesVatAmount;
            }
        }

        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesAmount ] = $linesAmount;
        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesAmountInc] = $linesAmountInc;
        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesVatAmount] = $linesVatAmount;
        if (!empty($this->lineTotalsStates['incomplete'])) {
            sort($this->lineTotalsStates['incomplete']);
            $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesIncomplete] = implode(',', $this->lineTotalsStates['incomplete']);
        }
    }
protected function completeLineTotals()
    {
        $linesAmount = 0.0;
        $linesAmountInc = 0.0;
        $linesVatAmount = 0.0;
        $this->lineTotalsStates = array(
            'incomplete' => array(),
            'equal' => array(),
            'differ' => array(),
        );

        $invoiceLines = $this->invoice[Tag::Customer][Tag::Invoice][Tag::Line];
        foreach ($invoiceLines as $line) {
            if (isset($line[Meta::LineAmount])) {
                $linesAmount += $line[Meta::LineAmount];
            } elseif (isset($line[Tag::UnitPrice])) {
                $linesAmount += $line[Tag::Quantity] * $line[Tag::UnitPrice];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesAmount] = Meta::LinesAmount;
            }

            if (isset($line[Meta::LineAmountInc])) {
                $linesAmountInc += $line[Meta::LineAmountInc];
            } elseif (isset($line[Meta::UnitPriceInc])) {
                $linesAmountInc += $line[Tag::Quantity] * $line[Meta::UnitPriceInc];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesAmountInc] = Meta::LinesAmountInc;
            }

            if (isset($line[Meta::LineVatAmount])) {
                $linesVatAmount += $line[Meta::LineVatAmount];
            } elseif (isset($line[Meta::VatAmount])) {
                $linesVatAmount += $line[Tag::Quantity] * $line[Meta::VatAmount];
            } else {
                $this->lineTotalsStates['incomplete'][Meta::LinesVatAmount] = Meta::LinesVatAmount;
            }
        }

        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesAmount ] = $linesAmount;
        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesAmountInc] = $linesAmountInc;
        $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesVatAmount] = $linesVatAmount;
        if (!empty($this->lineTotalsStates['incomplete'])) {
            sort($this->lineTotalsStates['incomplete']);
            $this->invoice[Tag::Customer][Tag::Invoice][Meta::LinesIncomplete] = implode(',', $this->lineTotalsStates['incomplete']);
        }
    }
protected function completeLineTotals ( ) { $ linesAmount = 0.0 ; $ linesAmountInc = 0.0 ; $ linesVatAmount = 0.0 ; $ this -> lineTotalsStates = array ( 'incomplete' => array ( ) , 'equal' => array ( ) , 'differ' => array ( ) , ) ; $ invoiceLines = $ this -> invoice [ Tag :: Customer ] [ Tag :: Invoice ] [ Tag :: Line ] ; foreach ( $ invoiceLines as $ line ) { if ( isset ( $ line [ Meta :: LineAmount ] ) ) { $ linesAmount += $ line [ Meta :: LineAmount ] ; } elseif ( isset ( $ line [ Tag :: UnitPrice ] ) ) { $ linesAmount += $ line [ Tag :: Quantity ] * $ line [ Tag :: UnitPrice ] ; } else { $ this -> lineTotalsStates [ 'incomplete' ] [ Meta :: LinesAmount ] = Meta :: LinesAmount ; } if ( isset ( $ line [ Meta :: LineAmountInc ] ) ) { $ linesAmountInc += $ line [ Meta :: LineAmountInc ] ; } elseif ( isset ( $ line [ Meta :: UnitPriceInc ] ) ) { $ linesAmountInc += $ line [ Tag :: Quantity ] * $ line [ Meta :: UnitPriceInc ] ; } else { $ this -> lineTotalsStates [ 'incomplete' ] [ Meta :: LinesAmountInc ] = Meta :: LinesAmountInc ; } if ( isset ( $ line [ Meta :: LineVatAmount ] ) ) { $ linesVatAmount += $ line [ Meta :: LineVatAmount ] ; } elseif ( isset ( $ line [ Meta :: VatAmount ] ) ) { $ linesVatAmount += $ line [ Tag :: Quantity ] * $ line [ Meta :: VatAmount ] ; } else { $ this -> lineTotalsStates [ 'incomplete' ] [ Meta :: LinesVatAmount ] = Meta :: LinesVatAmount ; } } $ this -> invoice [ Tag :: Customer ] [ Tag :: Invoice ] [ Meta :: LinesAmount ] = $ linesAmount ; $ this -> invoice [ Tag :: Customer ] [ Tag :: Invoice ] [ Meta :: LinesAmountInc ] = $ linesAmountInc ; $ this -> invoice [ Tag :: Customer ] [ Tag :: Invoice ] [ Meta :: LinesVatAmount ] = $ linesVatAmount ; if ( ! empty ( $ this -> lineTotalsStates [ 'incomplete' ] ) ) { sort ( $ this -> lineTotalsStates [ 'incomplete' ] ) ; $ this -> invoice [ Tag :: Customer ] [ Tag :: Invoice ] [ Meta :: LinesIncomplete ] = implode ( ',' , $ this -> lineTotalsStates [ 'incomplete' ] ) ; } }
Calculates the total amount and vat amount for the invoice lines and adds
these to the fields meta-lines-amount and meta-lines-vatamount.
Calculates the total amount and vat amount for the invoice lines and adds these to the fields meta - lines - amount and meta - lines - vatamount .