В списке счетов вывести ссылки на распечатку квитанции для физ. лиц или счета для юр.лиц
В списке счетов вывести ссылки на распечатку квитанции для физ. лиц или счета для юр.лиц
1) определяем какой была оплата и выводим соотв. ссылки. Обращаю внимание, что у меня были кастомные способы оплаты в $class_name, штатно их имена следует посмотреть в шаблонах данных
public function receipt_link($order_id){
$objects = umiObjectsCollection::getInstance();
$object_order = $objects->getObject($order_id);
$payment_id = $object_order->payment_id;
if(!$objects->getObject($payment_id)) return '';
$payment_type_id = $objects->getObject($payment_id)->getValue('payment_type_id');
$class_name = $objects->getObject($payment_type_id)->getValue('class_name');
if($class_name == 'receiptnew'){
$customer_id = $object_order->customer_id;
$customer_mail = $objects->getObject($customer_id)->getValue('email');
$date = $object_order->order_date;
$getcode = sha1("{$customer_id}:{$customer_mail}:{$date}");
$url = "/emarket/receipt/{$order_id}/{$getcode}/";
return "<a href="{$url}">Платежная квитанция</a>";
}elseif($class_name == 'invoicenew'){
$customer_id = $object_order->customer_id;
$customer_mail = $objects->getObject($customer_id)->getValue('email');
$date = $object_order->order_date;
$getcode = sha1("{$customer_id}:{$customer_mail}:{$date}");
return "<a href="/emarket/invoice/{$order_id}/">Счет на оплату</a>";
}else{
return "";
}
}
2)Распечатать бланк счета для физ. лиц можно стандартным методом ЮМИ /emarket/receipt/, а вот для юрлиц сделаем кастомный:
public function invoice(){
$order_id = getRequest('param0');
$objects = umiObjectsCollection::getInstance();
$order = $objects->getObject($order_id);
$orderId = $order->getId();
$uri = "uobject://{$orderId}/?transform=sys-tpls/emarket-invoice.xsl";
$result = file_get_contents($uri);
$buffer = outputBuffer::current();
$buffer->charset('utf-8');
$buffer->contentType('text/html');
$buffer->clear();
$buffer->push($result);
$buffer->end();
return true;
}
В шаблоне ссылка вызывается %emarket receipt_link(%id%)%
ДА! Я рассчитывал на tpl-шаблонизатор. В xslt методы нужно доработать.