В списке счетов вывести ссылки на распечатку квитанции для физ. лиц или счета для юр.лиц

В списке счетов вывести ссылки на распечатку квитанции для физ. лиц или счета для юр.лиц

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 методы нужно доработать.



=================
2011-12-24