/** * Recursive function for traversing all the sub-items of each line item * and displaying them in the table * @param EE_Line_Item $line_item * @param boolean $odd for indicating whether to style this line item as an 'odd' or 'even' */ function ee_invoice_display_line_item(EE_Line_Item $line_item, $show_line_item_description, $odd = false) { switch ($line_item->type()) { case EEM_Line_Item::type_total: foreach ($line_item->children() as $child_line_item) { ee_invoice_display_line_item($child_line_item, $show_line_item_description); } ?> <tr><td colspan="<?php echo $show_line_item_description ? 5 : 4; ?> "><hr></td></tr> <tr class="total_tr odd"> <td colspan="<?php echo $show_line_item_description ? 2 : 1; ?> "> </td> <td colspan="2" class="total" id="total_currency"><?php _e('Total', 'event_espresso'); ?> </td> <td class="total"><?php echo $line_item->total_no_code(); ?> </td> </tr> <?php break; case EEM_Line_Item::type_sub_total: foreach ($line_item->children() as $child_line_item) { //$odd = !$odd; ee_invoice_display_line_item($child_line_item, $show_line_item_description, $odd); } ?> <tr class="total_tr odd"> <td colspan="<?php echo $show_line_item_description ? 2 : 1; ?> "> </td> <td colspan="2" class="total" id="total_currency"><?php _e('Sub-Total', 'event_espresso'); ?> </td> <td class="total"><?php echo $line_item->total_no_code(); ?> </td> </tr> <?php break; case EEM_Line_Item::type_tax_sub_total: foreach ($line_item->children() as $child_line_item) { $odd = !$odd; ee_invoice_display_line_item($child_line_item, $show_line_item_description, $odd); } ?> <tr class="total_tr odd"> <td colspan="<?php echo $show_line_item_description ? 2 : 1; ?> "> </td> <td colspan="2" class="total" id="total_currency"><?php _e('Tax Total', 'event_espresso'); ?> </td> <td class="total"><?php echo $line_item->total_no_code(); ?> </td> </tr> <?php break; case EEM_Line_Item::type_line_item: $subitems = $line_item->children(); $has_subitems = count($subitems) > 1; if ($has_subitems) { ?> <tr class="item <?php echo $odd ? 'odd' : ''; ?> "> <td class="item_l"><?php echo $line_item->name(); ?> </td> <?php if ($show_line_item_description) { ?> <td class="item_l"><?php echo $line_item->desc(); ?> </td><?php } ?> <td class="item_l"><?php echo $line_item->quantity(); ?> </td> <td class="item_c"><?php echo $line_item->unit_price_no_code(); ?> </td> <td class="item_r"> <?php echo $line_item->total_no_code(); echo $line_item->is_taxable() ? '*' : ''; ?> </td> <?php //<td class="item_l"><?php $datetimes_strings = array(); foreach($datetimes as $datetime){ $datetimes_strings[]= $datetime->start_date_and_time();} echo implode(", ",$datetimes_strings); ?> </tr> <?php if ($has_subitems) { foreach ($line_item->children() as $child_line_item) { ee_invoice_display_line_item($child_line_item, $show_line_item_description, $odd); } } } else { //no subitems - just show this line item ?> <tr class="item <?php echo $odd ? 'odd' : ''; ?> "> <td class="item_l"><?php echo $line_item->name(); ?> </td> <?php if ($show_line_item_description) { ?> <td class="item_l"><?php echo $line_item->desc(); ?> </td><?php } ?> <td class="item_l"><?php echo $line_item->quantity(); ?> </td> <td class="item_c"><?php echo $line_item->unit_price_no_code(); ?> </td> <td class="item_r"> <?php echo $line_item->total_no_code(); echo $line_item->is_taxable() ? '*' : ''; ?> </td> <?php //<td class="item_l"><?php $datetimes_strings = array(); foreach($datetimes as $datetime){ $datetimes_strings[]= $datetime->start_date_and_time();} echo implode(", ",$datetimes_strings); ?> </tr> <?php } break; case EEM_Line_Item::type_sub_line_item: ?> <tr class="item subitem-row"> <td class="item_l subitem"><?php echo $line_item->name(); ?> </td> <?php if ($show_line_item_description) { ?> <td class="item_l"><?php echo $line_item->desc(); ?> </td><?php } ?> <?php if ($line_item->is_percent()) { ?> <td></td> <td class="item_c"><?php echo $line_item->percent(); ?> %</td> <?php } else { //flat discount/surcharge ?> <td></td> <td class="item_c"><?php echo $line_item->unit_price_no_code(); ?> </td> <?php } ?> <td class="item_r"><?php echo $line_item->total_no_code(); ?> </td> </tr> <?php break; case EEM_Line_Item::type_tax: ?> <tr class="item sub-item tax-total"> <td class="item_l"><?php echo $line_item->name(); ?> </td> <?php if ($show_line_item_description) { ?> <td class="item_l"><?php echo $line_item->desc(); ?> </td><?php } ?> <td colspan="2" class="item_c"><?php echo $line_item->percent(); ?> %</td> <td class="item_r"><?php echo $line_item->total_no_code(); ?> </td> </tr><?php break; } }
/** * _tax_row * * @param EE_Line_Item $line_item * @param array $options * @return mixed */ private function _tax_row(EE_Line_Item $line_item, $options = array()) { // start of row $html = EEH_HTML::tr('', 'item sub-item tax-total'); // name && desc $name_and_desc = $line_item->name(); $name_and_desc .= '<span class="smaller-text lt-grey-text" style="margin:0 0 0 2em;">' . __(' * taxable items', 'event_espresso') . '</span>'; $name_and_desc .= $options['show_desc'] ? '<br/>' . $line_item->desc() : ''; // name td $html .= EEH_HTML::td($name_and_desc, '', 'item_l sub-item'); // percent td $html .= EEH_HTML::td($line_item->percent() . '%', '', ' jst-rght', ''); // empty td (price) $html .= EEH_HTML::td(EEH_HTML::nbsp()); // total td $html .= EEH_HTML::td(EEH_Template::format_currency($line_item->total(), false, false), '', 'item_r jst-rght'); // end of row $html .= EEH_HTML::trx(); return $html; }
/** * _tax_row * * @param EE_Line_Item $line_item * @param array $options * @return mixed */ private function _tax_row(EE_Line_Item $line_item, $options = array()) { // start of row $html = EEH_HTML::tr('', 'item sub-item tax-total'); // name td $html .= EEH_HTML::td($line_item->name(), '', 'item_l sub-item'); // desc td $html .= $options['show_desc'] ? EEH_HTML::td($line_item->desc(), '', 'item_l') : ''; // percent td $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c', '', ' colspan="2"'); // total td $html .= EEH_HTML::td($line_item->total_no_code(), '', 'item_r'); // end of row $html .= EEH_HTML::trx(); return $html; }
/** * _tax_row * * @param EE_Line_Item $line_item * @return mixed */ private function _tax_row(EE_Line_Item $line_item) { $this->_tax_count++; // start of row $html = EEH_HTML::tr('', '', 'event-cart-tax-row item sub-item tax-total'); // name && desc $name_and_desc = $line_item->name(); $name_and_desc .= '<span class="tiny-text" style="margin:0 0 0 2em;">' . __(' * taxable items', 'event_espresso') . '</span>'; // name td $html .= EEH_HTML::td($name_and_desc, '', 'sub-item'); // percent td $html .= EEH_HTML::td($line_item->percent() . '%', '', 'mini-cart-tbl-qty-td jst-rght'); // empty td (price) $html .= EEH_HTML::td(EEH_HTML::nbsp()); // total td $html .= EEH_HTML::td($line_item->total_no_code(), '', 'jst-rght'); // end of row $html .= EEH_HTML::trx(); return $html; }
/** * _sub_item_row * * @param EE_Line_Item $line_item * @param array $options * @return mixed */ private function _sub_item_row(EE_Line_Item $line_item, $options = array()) { // start of row $html = EEH_HTML::tr('', 'item sub-item-row'); // name && desc $name_and_desc = $line_item->name(); $name_and_desc .= $options['show_desc'] ? '<span class="line-sub-item-desc-spn smaller-text">: ' . $line_item->desc() . '</span>' : ''; // name td $html .= EEH_HTML::td($name_and_desc, '', 'item_l sub-item'); // discount/surcharge td if ($line_item->is_percent()) { $html .= EEH_HTML::td($line_item->percent() . '%', '', 'item_c'); } else { $html .= EEH_HTML::td($line_item->unit_price_no_code(), '', 'item_c jst-rght'); } // total td $html .= EEH_HTML::td(EEH_Template::format_currency($line_item->total(), false, false), '', 'item_r jst-rght'); // end of row $html .= EEH_HTML::trx(); return $html; }
/** * Prints out a representation of the line item tree * @param EE_Line_Item $line_item * @param int $indentation * @return void */ public static function visualize(EE_Line_Item $line_item, $indentation = 0) { echo "\n<br />"; for ($i = 0; $i < $indentation; $i++) { echo " - "; } if ($line_item->is_percent()) { $breakdown = $line_item->percent() . '%'; } else { $breakdown = '$' . $line_item->unit_price() . "x" . $line_item->quantity(); } echo $line_item->name() . "( " . $line_item->ID() . " ) : " . $line_item->type() . " \$" . $line_item->total() . "(" . $breakdown . ")"; if ($line_item->is_taxable()) { echo " * taxable"; } if ($line_item->children()) { foreach ($line_item->children() as $child) { self::visualize($child, $indentation + 1); } } }
/** * _tax_row * * @param EE_Line_Item $line_item * @param array $options * @return mixed */ protected function _tax_row(EE_Line_Item $line_item, $options = array()) { // start of row $html = EEH_HTML::tr('', 'admin-primary-mbox-taxes-tr'); // name th $html .= EEH_HTML::th($line_item->name() . '(' . $line_item->get_pretty('LIN_percent') . '%)', '', 'jst-rght', '', ' colspan="3"'); // total th $html .= EEH_HTML::th(EEH_Template::format_currency($line_item->total(), false, false), '', 'jst-rght'); // end of row $html .= EEH_HTML::trx(); return $html; }
/** * _tax_row * * @param EE_Line_Item $line_item * @return mixed */ private function _tax_row(EE_Line_Item $line_item) { $this->_tax_count++; // name && desc $content = $line_item->name(); $content .= '<span class="tiny-text" style="margin:0 0 0 2em;">' . __(' * taxable items', 'event_espresso') . '</span>'; // percent td $content .= ' ' . $line_item->percent() . '%'; // total td $content .= ' ' . $line_item->total_no_code(); return EEH_HTML::li($content, '', 'event-cart-tax-list tax-list', 'text-align:right; width:100%;'); }
/** * adjust_SPCO_line_item_display * * allows promotions to adjust the line item name in EE_SPCO_Line_Item_Display_Strategy * * @access public * @param string $line_item_name * @param \EE_Line_Item $line_item * @return float */ public static function adjust_SPCO_line_item_display($line_item_name, EE_Line_Item $line_item) { // is this a promotion ? if ($line_item->OBJ_type() == 'Promotion') { $line_item_name = sprintf(__('Discount: %1$s', 'event_espresso'), $line_item->name()); } return $line_item_name; }
/** * Prints out a representation of the line item tree * @param EE_Line_Item $line_item * @param int $indentation * @return void */ public static function visualize(EE_Line_Item $line_item, $indentation = 0) { echo "\r\n"; for ($i = 0; $i < $indentation; $i++) { echo "-"; } echo $line_item->name() . ": " . $line_item->type() . " \$" . $line_item->total(); if ($line_item->is_taxable()) { echo " taxable"; } if ($line_item->children()) { foreach ($line_item->children() as $child) { self::visualize($child, $indentation + 1); } } }