/** * Генерирует акт исполнитель-физ. лицо (Подряд) в PDF после выбора валюты выплаты. * * @param array $error вернет массив с ошибками. * @return CFile загруженный документ. */ function generateFrlActPdrd(&$error, $init_date = 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; if (!($payout = $this->getPayouts($this->sbr->frl_id))) { return false; } if (!($act = $this->getActSums($this->sbr->frl_id))) { return false; } $payout = $payout[$this->sbr->frl_id]; if (!$payout) { return false; } $cnum = $this->sbr->getContractNum(); //$this->sbr->getFrlReqvs(); $this->sbr->getUserReqvHistoryData($this->id, 'frl', true); // Силой возьмем данные if (!$this->sbr->checkUserReqvs($this->sbr->frl_reqvs)) { $error['frl'] = 'Для формирования Акта об оказании услуги исполнителю<br/> необходимо заполнить реквизиты на странице "Финансы"'; } $acc = new account(); $acc->GetInfo($this->sbr->frl_id); $ffio = sbr_meta::getFioFromReqvs($this->sbr->frl_reqvs); $rq = $this->sbr->frl_reqvs[$this->sbr->frl_reqvs['form_type']]; $act_ssum = num2strEx($act['act_sum']); $act_ndfl = num2strEx($act['act_lndfl']); $act_np = num2strEx($act['act_lnp']); $frl_sum = $this->getPayoutSum(sbr::FRL, exrates::BANK); $payout_sum = num2strEx($frl_sum); $payout_nds_sum = num2strEx(18 * $frl_sum / 118); $from_date_act = date('«d» ' . $GLOBALS['MONTHA'][date('n', strtotime($this->getFirstTime()))] . ' Y г.', strtotime($this->getFirstTime())); $to_date_act = $init_date ? date('«d» ' . $GLOBALS['MONTHA'][date('n', strtotime($init_date))] . ' Y г.', strtotime($init_date)) : date('«d» ' . $GLOBALS['MONTHA'][date('n')] . ' Y г.'); // изменен по тикету #0017135 if ($this->sbr->frl_reqvs['form_type'] == sbr::FT_PHYS) { if ($this->sbr->frl_reqvs['rez_type'] == sbr::RT_RU) { $pssinn = ", страховое свидетельство обязательного пенсионного страхования № {$rq['pss']}"; if ($rq['inn']) { $pssinn .= ", ИНН {$rq['inn']}"; } } $rq['birthday'] = date('d.m.Y', strtotime($rq['birthday'])); $rq['idcard_from'] = date('d.m.Y', strtotime($rq['idcard_from'])); $frl_details = "{$ffio}, {$rq['birthday']} года рождения, зарегистрированный по адресу: {$rq['address_reg']}" . ", {$rq['idcard_name']}: № {$rq['idcard']}, выдан {$rq['idcard_from']} {$rq['idcard_by']}{$pssinn}"; if ($act['act_lndfl'] != 0) { $ndfl_tax_id = $this->sbr->frl_reqvs['rez_type'] == sbr::RT_RU ? $this->sbr->getTaxByCode('TAX_NDFL') : $this->sbr->getTaxByCode('TAX_NDFL_NR'); $ntax_per = (int) ($this->sbr->scheme['taxes'][sbr::FRL][$ndfl_tax_id]['percent'] * 100); $ntax_s = ", удержанный НДФЛ {$ntax_per}% – {$act_ndfl}"; $reward2 = " К перечислению {$payout_sum}{$ntax_s}."; } } else { $frl_details = $ffio; $nds_s = ', в том числе НДС 18%'; if ($this->sbr->frl_reqvs['rez_type'] == sbr::RT_RU) { $ntax_s = ", в том числе НДС 18% – {$payout_nds_sum}"; $reward2 = " К перечислению {$payout_sum}{$ntax_s}."; } else { if ($act['act_lnds'] != 0) { $act_lnds = num2strEx($act['act_lnds']); $reward2 = "\r\nК перечислению налоговым агентом в бюджет РФ – НДС 18 процентов – {$act_lnds}.\r\n\r\nК перечислению Подрядчику {$payout_sum}{$ntax_s}."; } } } if ($payout['credit_sys'] != exrates::FM) { $reqvs_str = "\r\n" . sbr_meta::getPayoutReqvsStr($this->sbr->frl_reqvs, $payout['credit_sys']); $payout_method = ', способ оплаты – ' . $GLOBALS['EXRATE_CODES'][$payout['credit_sys']][4]; } else { $reqvs_str = ' –'; } $reward_sum = num2strEx($frl_sum + $act['act_lndfl'] + $act['act_lnds']); $reward = "{$from_date_act} по {$to_date_act} составляет сумму {$reward_sum}{$nds_s}{$payout_method}.{$reward2}"; $side_b = sbr_meta::getReqvsStr($this->sbr->frl_reqvs, $bossname); $pr['$adr_act'] = "129223, Москва, а/я 33"; if ($this->sbr->frl_reqvs['rez_type'] == sbr::RT_RU) { $pr['$adr_act'] .= ";\r\n"; $pr['$adr_act'] .= "190031, Санкт-Петербург, Сенная пл., д.13 / 52, а/я 427;\r\n"; $pr['$adr_act'] .= "420032, Казань, а/я 624;\r\n"; $pr['$adr_act'] .= "454014, Челябинск-14, а/я 2710.\r\n"; } else { $pr['$adr_act'] .= ".\r\n"; } $replace = array('$sbr_num' => $this->sbr->getContractNum(), '$ssnum' => $this->getOuterNum4Docs(), '$from_date_act' => $from_date_act, '$to_date_act' => $to_date_act, '$maker_info' => $frl_details, '$from_date_make' => $from_date_act, '$job_name' => "«{$this->name}»", '$reward_text' => $reward, '$bank_details' => $reqvs_str, '$make_date' => $init_date ? $init_date : date('d.m.Y'), '$side_b' => $side_b, '$bossname' => $bossname, '$adr_act' => $pr['$adr_act']); $pdf = sbr::xml2pdf($_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/WorkAct.xml', $replace); if (!($file = $this->sbr->_saveDocFile($pdf->Output(NULL, 'S')))) { $error['fatal'] = "Ошибка при формировании Акта об оказании услуги"; } return $file; }