public function sendQuotationMail($quotation_id, $status = 0) { $uri = JURI::getInstance(); $url = $uri->root(); $redconfig = new Redconfiguration(); $producthelper = new producthelper(); $extra_field = new extra_field(); $quotationHelper = new quotationHelper(); $config = JFactory::getConfig(); $mailinfo = $this->getMailtemplate(0, "quotation_mail"); $mailbcc = array(); if (count($mailinfo) > 0) { $message = $mailinfo[0]->mail_body; $subject = $mailinfo[0]->mail_subject; if (trim($mailinfo[0]->mail_bcc) != "") { $mailbcc = explode(",", $mailinfo[0]->mail_bcc); } } else { return false; } $template_start = ""; $template_end = ""; $template_middle = ""; $cart = ''; $template_sdata = explode('{product_loop_start}', $message); $extraField = new extraField(); $fieldArray = $extraField->getSectionFieldList(17, 0, 0); if (count($template_sdata) > 0) { $template_start = $template_sdata[0]; if (count($template_sdata) > 1) { $template_edata = explode('{product_loop_end}', $template_sdata[1]); if (count($template_edata) > 1) { $template_end = $template_edata[1]; } if (count($template_edata) > 0) { $template_middle = $template_edata[0]; } } } $row = $quotationHelper->getQuotationDetail($quotation_id); if (count($row) <= 0) { return false; } $rowitem = $quotationHelper->getQuotationProduct($quotation_id); for ($i = 0; $i < count($rowitem); $i++) { $product_id = $rowitem[$i]->product_id; $product = $producthelper->getProductById($product_id); $product_name = "<div class='product_name'>" . $rowitem[$i]->product_name . "</div>"; $product_total_price = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_price * $rowitem[$i]->product_quantity) . "</div>"; $product_price = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_price) . "</div>"; $product_price_excl_vat = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_excl_price) . "</div>"; $product_quantity = '<div class="update_cart">' . $rowitem[$i]->product_quantity . '</div>'; $product_total_price_excl_vat = "<div class='product_price'>" . $producthelper->getProductFormattedPrice($rowitem[$i]->product_excl_price * $rowitem[$i]->product_quantity) . "</div>"; $cart_mdata = $template_middle; $wrapper_name = ""; if ($rowitem[$i]->product_wrapperid) { $wrapper = $producthelper->getWrapper($product_id, $rowitem[$i]->product_wrapperid); if (count($wrapper) > 0) { $wrapper_name = $wrapper[0]->wrapper_name; } $wrapper_name = JText::_('COM_REDSHOP_WRAPPER') . ": " . $wrapper_name; } $product_image_path = ''; if ($product->product_full_image) { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . $product->product_full_image)) { $product_image_path = $product->product_full_image; } else { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . PRODUCT_DEFAULT_IMAGE)) { $product_image_path = PRODUCT_DEFAULT_IMAGE; } } } else { if (is_file(REDSHOP_FRONT_IMAGES_RELPATH . "product/" . PRODUCT_DEFAULT_IMAGE)) { $product_image_path = PRODUCT_DEFAULT_IMAGE; } } if ($product_image_path) { $thumbUrl = RedShopHelperImages::getImagePath($product_image_path, '', 'thumb', 'product', CART_THUMB_WIDTH, CART_THUMB_HEIGHT, USE_IMAGE_SIZE_SWAPPING); $product_image = "<div class='product_image'><img src='" . $thumbUrl . "'></div>"; } else { $product_image = "<div class='product_image'></div>"; } $cart_mdata = str_replace("{product_name}", $product_name, $cart_mdata); $cart_mdata = str_replace("{product_s_desc}", $product->product_s_desc, $cart_mdata); $cart_mdata = str_replace("{product_thumb_image}", $product_image, $cart_mdata); $product_note = "<div class='product_note'>" . $wrapper_name . "</div>"; $cart_mdata = str_replace("{product_wrapper}", $product_note, $cart_mdata); $product_userfields = $quotationHelper->displayQuotationUserfield($rowitem[$i]->quotation_item_id, 12); $cart_mdata = str_replace("{product_userfields}", $product_userfields, $cart_mdata); $cart_mdata = str_replace("{product_number_lbl}", JText::_('COM_REDSHOP_PRODUCT_NUMBER'), $cart_mdata); $cart_mdata = str_replace("{product_number}", $product->product_number, $cart_mdata); $cart_mdata = str_replace("{product_attribute}", $producthelper->makeAttributeQuotation($rowitem[$i]->quotation_item_id, 0, $rowitem[$i]->product_id, $row->quotation_status), $cart_mdata); $cart_mdata = str_replace("{product_accessory}", $producthelper->makeAccessoryQuotation($rowitem[$i]->quotation_item_id, $row->quotation_status), $cart_mdata); // ProductFinderDatepicker Extra Field Start $cart_mdata = $producthelper->getProductFinderDatepickerValue($cart_mdata, $product_id, $fieldArray); // ProductFinderDatepicker Extra Field End if ($row->quotation_status == 1 && !SHOW_QUOTATION_PRICE) { $cart_mdata = str_replace("{product_price_excl_vat}", "", $cart_mdata); $cart_mdata = str_replace("{product_price}", " ", $cart_mdata); $cart_mdata = str_replace("{product_total_price}", " ", $cart_mdata); $cart_mdata = str_replace("{product_subtotal_excl_vat}", " ", $cart_mdata); } else { $cart_mdata = str_replace("{product_price_excl_vat}", $product_price_excl_vat, $cart_mdata); $cart_mdata = str_replace("{product_price}", $product_price, $cart_mdata); $cart_mdata = str_replace("{product_total_price}", $product_total_price, $cart_mdata); $cart_mdata = str_replace("{product_subtotal_excl_vat}", $product_total_price_excl_vat, $cart_mdata); } $cart_mdata = str_replace("{product_quantity}", $product_quantity, $cart_mdata); $cart .= $cart_mdata; } $message = $template_start . $cart . $template_end; $search[] = "{quotation_note}"; $replace[] = $row->quotation_note; $search[] = "{shopname}"; $replace[] = SHOP_NAME; $search[] = "{quotation_id}"; $replace[] = $row->quotation_id; $search[] = "{quotation_number}"; $replace[] = $row->quotation_number; $search[] = "{quotation_date}"; $replace[] = $redconfig->convertDateFormat($row->quotation_cdate); $search[] = "{quotation_status}"; $replace[] = $quotationHelper->getQuotationStatusName($row->quotation_status); $billadd = ''; if ($row->user_id != 0) { $message = $this->_carthelper->replaceBillingAddress($message, $row); } else { if ($row->quotation_email != "") { $billadd .= JText::_("COM_REDSHOP_EMAIL") . ' : ' . $row->quotation_email . '<br />'; } $message = str_replace("{billing_address_information_lbl}", JText::_('COM_REDSHOP_BILLING_ADDRESS_INFORMATION_LBL'), $message); if (strstr($message, "{quotation_custom_field_list}")) { $billadd .= $extra_field->list_all_field_display(16, $row->user_info_id, 1, $row->quotation_email); $message = str_replace("{quotation_custom_field_list}", "", $message); } else { $message = $extra_field->list_all_field_display(16, $row->user_info_id, 1, $row->quotation_email, $message); } } $search[] = "{billing_address}"; $replace[] = $billadd; $total_lbl = ''; $subtotal_lbl = ''; $vat_lbl = ''; if ($row->quotation_status != 1 || $row->quotation_status == 1 && SHOW_QUOTATION_PRICE) { $total_lbl = JText::_('COM_REDSHOP_TOTAL_LBL'); $subtotal_lbl = JText::_('COM_REDSHOP_QUOTATION_SUBTOTAL'); $vat_lbl = JText::_('COM_REDSHOP_QUOTATION_VAT'); } $message = str_replace('{total_lbl}', $total_lbl, $message); $message = str_replace('{quotation_subtotal_lbl}', $subtotal_lbl, $message); $message = str_replace('{quotation_vat_lbl}', $vat_lbl, $message); $message = $this->_carthelper->replaceLabel($message); $search[] = "{quotation_note}"; $replace[] = $row->quotation_note; if ($row->quotation_status == 1 && !SHOW_QUOTATION_PRICE) { $quotation_subtotal = " "; $quotation_total = " "; $quotation_discount = " "; $quotation_vat = " "; $quotation_subtotal_excl_vat = ""; } else { $tax = $row->quotation_tax; if (VAT_RATE_AFTER_DISCOUNT) { $Discountvat = VAT_RATE_AFTER_DISCOUNT * $row->quotation_discount / (1 + VAT_RATE_AFTER_DISCOUNT); $row->quotation_discount = $row->quotation_discount - $Discountvat; $tax = $tax - $Discountvat; } if (VAT_RATE_AFTER_DISCOUNT) { $sp_discount = $row->quotation_special_discount * ($row->quotation_subtotal + $row->quotation_tax) / 100; $Discountspvat = $sp_discount * VAT_RATE_AFTER_DISCOUNT / (1 + VAT_RATE_AFTER_DISCOUNT); $DiscountspWithotVat = $sp_discount - $Discountspvat; $row->quotation_discount = $row->quotation_discount + $DiscountspWithotVat; $tax = $tax - $Discountspvat; } $quotation_subtotal_excl_vat = $producthelper->getProductFormattedPrice($row->quotation_subtotal); $quotation_subtotal_minus_discount = $producthelper->getProductFormattedPrice($row->quotation_subtotal - $row->quotation_discount); $quotation_subtotal = $producthelper->getProductFormattedPrice($row->quotation_subtotal); $quotation_total = $producthelper->getProductFormattedPrice($row->quotation_total); $quotation_discount = $producthelper->getProductFormattedPrice($row->quotation_discount); $quotation_vat = $producthelper->getProductFormattedPrice($row->quotation_tax); } $search[] = "{quotation_subtotal}"; $replace[] = $quotation_subtotal; $search[] = "{quotation_total}"; $replace[] = $quotation_total; $search[] = "{quotation_subtotal_minus_discount}"; $replace[] = $quotation_subtotal_minus_discount; $search[] = "{quotation_subtotal_excl_vat}"; $replace[] = $quotation_subtotal_excl_vat; $search[] = "{quotation_discount}"; $replace[] = $quotation_discount; $search[] = "{quotation_vat}"; $replace[] = $quotation_vat; $quotationdetailurl = JURI::root() . 'index.php?option=com_redshop&view=quotation_detail&quoid=' . $quotation_id . '&encr=' . $row->quotation_encrkey; $search[] = "{quotation_detail_link}"; $replace[] = "<a href='" . $quotationdetailurl . "'>" . JText::_("COM_REDSHOP_QUOTATION_DETAILS") . "</a>"; $message = str_replace($search, $replace, $message); $message = $this->imginmail($message); $email = $row->quotation_email; // Set the e-mail parameters $from = $config->getValue('mailfrom'); $fromname = $config->getValue('fromname'); $body = $message; $subject = str_replace($search, $replace, $subject); // Send the e-mail if ($email != "") { $bcc = null; if (trim(ADMINISTRATOR_EMAIL) != '') { $bcc = explode(",", trim(ADMINISTRATOR_EMAIL)); } $bcc = array_merge($bcc, $mailbcc); if (!JUtility::sendMail($from, $fromname, $email, $subject, $body, 1, null, $bcc)) { $this->setError('ERROR_SENDING_QUOTATION_MAIL'); } } if ($status != 0) { $quotationHelper->updateQuotationStatus($quotation_id, $status); } return true; }
$p_url = @explode('?', $_SERVER['REQUEST_URI']); $print_tag = ''; if ($print) { $print_tag = "<a onclick='window.print();' title='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' ><img src=" . JSYSTEM_IMAGES_PATH . "printButton.png alt='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' title='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' /></a>"; } else { $print_url = $url . "index.php?tmpl=component&option=com_redshop&view=quotation_detail&quoid=" . $quoid . "&print=1"; $print_tag = "<a href='#' onclick='window.open(\"{$print_url}\",\"mywindow\",\"scrollbars=1\",\"location=1\")' title='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' ><img src=" . JSYSTEM_IMAGES_PATH . "printButton.png alt='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' title='" . JText::_('COM_REDSHOP_PRINT_LBL') . "' /></a>"; } $quotation_template = str_replace("{print}", $print_tag, $quotation_template); $search[] = "{quotation_id}"; $replace[] = $quoid; $search[] = "{quotation_number}"; $replace[] = $quotationDetail->quotation_number; $search[] = "{quotation_date}"; $replace[] = $redconfig->convertDateFormat($quotationDetail->quotation_cdate); $statustext = $quotationHelper->getQuotationStatusName($quotationDetail->quotation_status); if ($quotationDetail->quotation_status == '2') { $frm = "<form method='post'>\n\t<input type='radio' name='quotation_status' checked value='3'>" . JText::_('COM_REDSHOP_ACCEPT') . "\n\t<input type='radio' name='quotation_status' value='4'>" . JText::_('COM_REDSHOP_REJECT') . "\n\t<input type='hidden' name='quotation_id' value='{$quoid}'>\n\t<input type='hidden' name='option' value='com_redshop'>\n\t<input type='hidden' name='Itemid' value='{$Itemid}'>\n\t<input type='hidden' name='encr' value='{$encr}'>\n\t<input type='hidden' name='view' value='quotation_detail'>\n\t<input type='hidden' name='task' value='updatestatus'>\n\t<input type='submit' name='submit' value='" . JText::_("COM_REDSHOP_SUBMIT") . "' onclick='return confirm(\"" . JText::_('COM_REDSHOP_CONFIRM_SEND_QUOTATION') . "\")' />\n\t</form>"; } elseif ($quotationDetail->quotation_status == '3') { $frm = "<form method='post'>\n\t<input type='hidden' name='quotation_id' value='{$quoid}'>\n\t<input type='hidden' name='option' value='com_redshop'>\n\t<input type='hidden' name='Itemid' value='{$Itemid}'>\n\t<input type='hidden' name='encr' value='{$encr}'>\n\t<input type='hidden' name='task' value='checkout'>\n\t<input type='hidden' name='view' value='quotation_detail'>\n\t<input type='submit' name='submit' value='" . JText::_("COM_REDSHOP_CHECKOUT") . "' />\n\t</form>"; } elseif ($quotationDetail->quotation_status == '5') { $frm = " (" . JText::_('COM_REDSHOP_ORDER_ID') . "-" . $quotationDetail->order_id . " )"; } else { $frm = ''; } $search[] = "{quotation_status}"; $replace[] = $statustext . $frm; $search[] = "{quotation_note_lbl}"; $replace[] = JText::_('COM_REDSHOP_QUOTATION_NOTE'); $search[] = "{quotation_note}"; $replace[] = $quotationDetail->quotation_note;
</thead> <?php $k = 0; for ($i = 0, $n = count($this->quotation); $i < $n; $i++) { $row =& $this->quotation[$i]; $row->id = $row->quotation_id; $display = $row->user_email; if ($row->user_id) { $userarr = $producthelper->getUserInformation($row->user_id); if (count($userarr) > 0) { $display = $userarr->firstname . ' ' . $userarr->lastname; $display .= $userarr->is_company && $userarr->company_name != "" ? "<br>" . $userarr->company_name : ""; } } $link = JRoute::_('index.php?option=' . $option . '&view=quotation_detail&task=edit&cid[]=' . $row->quotation_id); $status = $quotationHelper->getQuotationStatusName($row->quotation_status); if ($row->quotation_status == 5) { // $orderlink = JRoute::_( 'index.php?option='.$option.'&view=order_detail&task=edit&cid[]='.$row->order_id ); // $status .= " <a href='".$orderlink."'>(".JText::_('COM_REDSHOP_ORDER_ID')."-".$row->order_id." )</a>"; $status .= " (" . JText::_('COM_REDSHOP_ORDER_ID') . "-" . $row->order_id . " )"; } ?> <tr class="<?php echo "row{$k}"; ?> "> <td align="center"><?php echo $this->pagination->getRowOffset($i); ?> </td> <td align="center"><?php