/** * Формирование актов и счет-фактур по данным из pskb_invoice_raw * Загрузка документов в сделку. * * @param type $data массив с данными - строка результата запроса из sbr_adm::processInvoiceData * @param type $error * * @return bool */ public static function addInvoice($data, &$error = '') { $row = $data; if (!$row) { $error = 'Не найден аккредитив'; return false; } if (!trim($row['addr'])) { $error = 'Не указан юрадрес'; // return false; } $sbr = sbr_meta::getInstanceLocal($row['emp_id']); $sbr->initFromId($row['sbr_id'], false, false, false); require_once $_SERVER['DOCUMENT_ROOT'] . '/classes/odt2pdf.php'; require_once dirname(__FILE__) . '/num_to_word.php'; /* * Акт на сумму комиссии ВААН */ $replace = array('USER_NAME' => $row['name'], 'ACT_SUM' => number_format($row['sum'], 2, ',', ''), 'NDS_SUM' => number_format($row['sum'] - $row['sum'] / 1.18, 2, ',', ''), 'NO_NDS_SUM' => number_format($row['sum'] / 1.18, 2, ',', ''), 'ACT_NUM' => intval($row['actnum']), 'DOC_NUM' => $sbr->getContractNum(), 'SUM_STR' => num2strEx(floatval($row['sum'])), 'ACT_DATE' => date('d.m.Y', strtotime($row['actdate']))); $tpl = 'pskb_close_act.ods'; $pdf = new odt2pdf($tpl); $pdf->convert($replace); if (!($file = $sbr->_saveDocFile($pdf->Output(null, 'S')))) { $error = 'Ошибка при формировании Акта'; return false; } $docs[] = array('file_id' => $file->id, 'status' => sbr::DOCS_STATUS_PUBL, 'access_role' => $row['is_emp'] ? sbr::DOCS_ACCESS_EMP : sbr::DOCS_ACCESS_FRL, 'owner_role' => 0, 'type' => sbr::DOCS_TYPE_PSKB_ACT); /* * Счет-фактура */ $replace = array('USER_NAME' => $row['name'], 'USER_ADDR' => $row['addr'], 'USER_INN' => $row['inn'] . ($row['kpp'] ? '/' . $row['kpp'] : ''), 'INV_SUM' => number_format($row['sum'], 2, ',', ''), 'NDS_SUM' => number_format($row['sum'] - $row['sum'] / 1.18, 2, ',', ''), 'NO_NDS_SUM' => number_format($row['sum'] / 1.18, 2, ',', ''), 'INV_NUM' => intval($row['invnum']), 'DOC_NUM' => $sbr->getContractNum(), 'INV_DATE' => date('d.m.Y', strtotime($row['invdate']))); $tpl = 'pskb_close_invoice.ods'; $pdf = new odt2pdf($tpl); $pdf->convert($replace); if (!($file = $sbr->_saveDocFile($pdf->Output(null, 'S')))) { $error = 'Ошибка при формировании счета-фактуры'; return false; } $docs[] = array('file_id' => $file->id, 'status' => sbr::DOCS_STATUS_PUBL, 'access_role' => $row['is_emp'] ? sbr::DOCS_ACCESS_EMP : sbr::DOCS_ACCESS_FRL, 'owner_role' => 0, 'type' => sbr::DOCS_TYPE_FACTURA); foreach ($docs as $doc) { $ok = $sbr->addDocR($doc); } return true; }
</table:table-cell> <table:table-cell office:value-type="string"> <text:p>An online map</text:p> </table:table-cell> <table:table-cell office:value-type="string"> <text:p> <text:a xlink:type="simple" xlink:href="http://maps.google.com/" >http://maps.google.com</text:a> </text:p> </table:table-cell> </table:table-row> </table:table> '; */ $descr_tz = ' 111 <text:h text:outline-level="1"> A Table (Heading 1)</text:h> <text:p>222</text:p> <text:a xlink:type="simple" xlink:href="http://www.flickr.com/services/api/">http://www.flickr.com/services/api/</text:a> '; $act_new = array('$sbr_num' => "СБР-109-Б/О-1", '$date_act' => "12.09.2012", '$date_sbr' => "12.09.2012", '$efio' => "Резидент Республики Беларусь", '$ffio' => "Александр Сергеевич Буров", '$sum_frl' => num2strEx($sum_frl, 'рублей Российской Федерации'), '$sum_emp' => num2strEx($sum_emp, 'рублей Российской Федерации'), '$tz_descr' => $descr_tz, '$work_time' => '3 дня на этап', '$work_type' => 'Промежуточной стоимости Работы', '$work_cost' => num2strEx($work_cost, 'рублей Российской Федерации'), '$is_arb_emp' => false, '$is_arb_frl' => false, '$user_arb' => 'Заказчик', '$result_arb' => 'Результат арбитража вынес потому что не работал такой то человек'); $t = new odt2pdf('arb_frl_soglashenie.odt'); $t->convert($act_new); $content = $t->Output(NULL, 'S'); $file = new CFile(); //$file->table = 'file_sbr'; $file->path = 'uploader/'; $file->name = basename($file->secure_tmpname($file->path, '.pdf')); $file->size = strlen($content); $file->putContent($file->path . $file->name, $content); //echo strlen($t->output);
/** * Генерация заявления о выплате через систему Яндекс.Деньги * * @param array $error вернет массив с ошибками. * @param type $act_num № акта сдачи-приемки работ/услуг * @return CFile загруженный документ. */ public function generateFrlYMAppl(&$error, $act_num = false) { require_once dirname(__FILE__) . '/fpdf/fpdf.php'; define('FPDF_FONTPATH', dirname(__FILE__) . '/fpdf/font/'); require_once dirname(__FILE__) . '/num_to_word.php'; $error = NULL; $rq = $this->sbr->getFrlReqvs(true); if (!$this->sbr->checkUserReqvs($this->sbr->frl_reqvs)) { $error['frl'] = 'Для формирования заявления о выплате через систему "Яндекс.Деньги"<br/> необходимо заполнить реквизиты на странице "Финансы"'; } if ($rq[1]['el_yd'] == '') { $error['frl'] = 'Для формирования заявления о выплате через систему "Яндекс.Деньги"<br/> необходимо заполнить заполнить номер кошелька Яндекс.Деньги'; } $params = array(); $params['$date_statement'] = $this->redate_act ? date("d {$GLOBALS['MONTHA'][date('n')]} Y", strtotime($this->redate_act)) : date("d {$GLOBALS['MONTHA'][date('n')]} Y"); $params['$fio'] = $this->getFioFromReqvs($rq); $rq = $rq[1]; foreach ($rq as $k => $v) { $params["\$" . $k] = $v; } if ($this->sbr->scheme_type == sbr::SCHEME_AGNT || $this->sbr->scheme_type == sbr::SCHEME_LC) { $params['$doc_offer'] = 'п.6.2. Оферты на заключение договора об использовании'; } else { if ($this->sbr->scheme_type == sbr::SCHEME_PDRD || $this->sbr->scheme_type == sbr::SCHEME_PDRD2) { $params['$doc_offer'] = 'п.9.2. Оферты на заключение соглашения о выполнении работы и/или оказании услуги с использованием'; } } $sbr_num = $this->sbr->getContractNum(); $ssnum = $this->getOuterNum4Docs(); $reserved_tm = strtotime($this->sbr->reserved_time); $payout_sum = $this->getPayoutSum(sbr::FRL, exrates::BANK); $params['$sbr_summ'] = sbr_meta::view_cost($payout_sum, NULL, false, ',', ' '); $params['$sbr_summ_str'] = num2strEx($payout_sum); $params['$act_doc'] = ""; if ($act_num) { $params['$act_doc'] = "(акт сдачи-приемки работ/услуг № {$act_num} от " . date("d {$GLOBALS['MONTHA'][date('n')]} Y") . ")"; } else { $params['$act_doc'] = "(акт сдачи-приемки работ/услуг от " . date("d {$GLOBALS['MONTHA'][date('n')]} Y") . " по договору Подряда № {$sbr_num}{$ssnum} от " . date('d ' . $GLOBALS['MONTHA'][date('n', $reserved_tm)] . ' Y г.', $reserved_tm) . ")"; } $params['$sbr_id'] = $this->sbr->id; $params['$sbr_num'] = $sbr_num; $params['$sbr_date'] = date('d ' . $GLOBALS['MONTHA'][date('n', $reserved_tm)] . ' Y г.', $reserved_tm); $params['$ssnum'] = $ssnum; $params['$idcard_by'] = $rq['idcard_from'] . ' ' . $rq['idcard_by']; $tpl_name = 'yd_appl_fiz.xml'; $pdf = sbr::xml2pdf($_SERVER['DOCUMENT_ROOT'] . "/norisk2/xml/{$tpl_name}", $params); if (!($file = $this->sbr->_saveDocFile($pdf->Output(NULL, 'S')))) { $error['fatal'] = "Ошибка при формировании заявления о выплате через систему \"Яндекс.Деньги\""; } return $file; }