как сгруппировать несколько заказов в единое целое? - PullRequest
0 голосов
/ 29 мая 2020

Я использую snappy pdf для вывода списка товаров, купленных пользователем, в таблице в формате pdf. Я хочу, чтобы каждая таблица ограничивала отображение только 5 элементов, а следующие 5 элементов будут на следующей странице с новой таблицей и т. Д.

Я думал об использовании chunk () для достижения этого, но мои отношения модель вызывает некоторые проблемы. У меня есть покупка, по которой может быть много заказов. В каждом заказе может быть много позиций. Итак, если я купил:

Продавец A: Товар 1 Товар 2

Продавец B: Товар 3

Продавец C: Товар 4 Товар 5 Товар 6

Это означает, что у меня будет 3 заказа по 6 предметов. Хотя я хочу отобразить элементы 1-5 в моей первой таблице, функция chunk () выполняет цикл для каждого заказа как отдельного, поэтому товары продавца A будут в первой таблице, а товары продавца B будут во второй таблице и так далее ( с ограничением 5).

Мой код лезвия:

<div class="row ">
            <div class="col-xs-12 pl-1 pr-1">

                <div style="border: 1px solid #000; width: 100%; height: 625px;">
                    @foreach($purchase->orders as $order)
                    @foreach($order->items->chunk(5) as $page)
                    <table style="width: 100%;">
                        <tr style="text-align: center; font-weight: 600;">
                            <td style="position: relative; font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; width: 5%;">
                                <div style="position: absolute; top: 0; right: 0; margin-right: -1px; border-right: 1px solid #000000; height: 624px;"></div>
                                No.
                            </td>
                            <td style="position:relative; font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; width: 12%;">
                                <div style="position: absolute; top: 0; right: 0; margin-right: -1px; border-right: 1px solid #000000; height: 624px;"></div>
                                Product Code
                            </td>
                            <td style="position: relative; font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; width: 53%;">
                                <div style="position: absolute; top: 0; right: 0; margin-right: -1px; border-right: 1px solid #000000; height: 624px;"></div>
                                Description
                            </td>
                            <td style="position: relative; font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; width: 6%">
                                <div style="position: absolute; top: 0; right: 0; margin-right: -1px; border-right: 1px solid #000000; height: 624px;"></div>
                                Quantity
                            </td>
                            <td style="position: relative; font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; border-right: 1px solid #000000; width: 12%;">
                                <div style="position: absolute; top: 0; right: 0; margin-right: -1px; border-right: 1px solid #000000; height: 624px;"></div>
                                Unit Price (RM)
                            </td>
                            <td style="font-size: 10pt; padding: 4px; border-bottom: 1px solid #000000; width: 12%;">Amount (RM)</td>
                        </tr>

                        <?php
                        $iterationNo = 0;
                        ?>


                        {{---Iterate each page--}}
                        @foreach ($page as $item)

                        <tr style="font-size: 10pt;">  

                            <td style="padding: 16px; text-align: center; vertical-align: top;">
                                <?php
                                $iterationNo = $iterationNo + 1;

                                ?>
                                {{ $iterationNo }}
                            </td>
                            <td style="padding: 16px; vertical-align: top;">
                                {{ $item->product->parentProduct->product_code }}
                            </td>
                            <td style="padding: 6px; vertical-align: top;">
                                <table>
                                    <tr style="font-size: 10pt;">
                                        <td style="padding: 4px; vertical-align: top;">

                                            <img src="{{ asset('storage/' . $item->product->parentProduct->images[0]->path . '/' . $item->product->parentProduct->images[0]->filename) }}" alt="{{ $item->product->parentProduct->name }}" style="width: 105px; height: 90px; border-radius: 10px;">
                                        </td>
                                        <td style="padding: 14px; vertical-align: top;">
                                            <p style="margin-bottom: 10px;">
                                                {{ $item->quantity }} x {{ $item->product->parentProduct->name }}
                                            </p>
                                            <p style="margin: 0;">
                                                @if(array_key_exists('product_color_name', $item->product_information))
                                                Color: {{ $item->product_information['product_color_name'] }}
                                                @endif
                                                @if(array_key_exists('product_size', $item->product_information))
                                                Color Temperature: {{ $item->product_information['product_size'] }}
                                                @endif
                                                @if(array_key_exists('product_temperature', $item->product_information))
                                                Color Temperature: {{ $item->product_information['product_temperature'] }}
                                                @endif
                                            </p>
                                        </td>
                                    </tr>
                                </table>
                            </td>
                            <td style="padding: 16px; text-align: center; vertical-align: top;">
                                {{ $item->quantity }}
                            </td>
                            <td style="padding: 16px; text-align: center; vertical-align: top;">
                                {{ $item->product->getDecimalPrice() }}
                            </td>
                            <td style="padding: 16px; text-align: center; vertical-align: top;">
                                {{ number_format(($item->subtotal_price / 100), 2) }}
                            </td>
                        </tr>

                        @endforeach     

                    </table>
                    @endforeach
                    @endforeach
                </div>
            </div>

Как разделить элементы как единое целое вместо заказов?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...