/** * Генерируем отчет арбитража если * - когда Арбитраж выносит решение о 100% выплате Исполнителю * - когда Стороны приходят к соглашению о 100% выплате Исполнителю * * @param type $error Ошибка * @param type $rep_num * @return null|boolean */ public function generateArbReportFrl(&$error, &$rep_num) { require_once dirname(__FILE__) . '/num_to_word.php'; if (!$this->getArbitrage(false, false)) { return NULL; } if (!($act = $this->getActSums($this->sbr->frl_id))) { return false; } $eper = (1 - $this->arbitrage['frl_percent']) * 100; $fper = 100 - $eper; $result = html_entity_decode($this->arbitrage['result'], ENT_QUOTES, 'cp1251'); $init = html_entity_decode($this->arbitrage['init'], ENT_QUOTES, 'cp1251'); $reason = html_entity_decode($this->arbitrage['reason'], ENT_QUOTES, 'cp1251'); $is_frl_arb = strpos($reason, 'Согласно п. 8.5.') !== false; $is_emp_arb = strpos($reason, 'Согласно п. 8.3.') !== false; $is_vaan_arb = strpos($init, 'ООО Ваан обратилось в Арбитраж') !== false; if (strpos($init, 'Исполнитель обратился в Арбитраж') !== false) { $user_arb = 'Исполнитель'; } elseif (strpos($init, 'Заказчик обратился в Арбитраж') !== false) { $user_arb = 'Заказчик'; } elseif ($is_vaan_arb) { $user_arb = 'ООО "Ваан"'; } if ($fper == 100) { if (strpos($result, 'Соглашение сторон 100% Возврат Исполнителю') !== false || strpos($result, 'Соглашение сторон 100% Выплата Исполнителю') !== false) { $template = $_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/arb_frl_soglashenie.xml'; } elseif (strpos($result, 'Решение арбитража 100% Выплата Исполнителю') !== false) { $template = $_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/arb_frl_reshenie.xml'; } elseif (strpos($result, 'Решение арбитража') !== false) { // ПО ИДЕЕ НЕ МОЖЕТ БЫТЬ ТК ПРИ РЕШЕНИИ 100% исполнителю нужно выбирать пункт 7 $template = $_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/arb_act_reshenie.xml'; } else { return null; } } else { if ($fper >= 0) { if (strpos($result, 'Соглашение сторон') !== false) { $template = $_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/arb_act_soglashenie.xml'; } elseif (strpos($result, 'Решение арбитража') !== false) { $template = $_SERVER['DOCUMENT_ROOT'] . '/norisk2/xml/arb_act_reshenie.xml'; } else { return null; } } else { return null; } } $error = NULL; $sbr_num = $this->sbr->getContractStageNum(null, null, $this->num + 1); $this->sbr->getFrlReqvs(); $this->sbr->getEmpReqvs(); $this->sbr->setCheckEmpReqvs($this->id); $rep_num = $this->sbr->regArbReportNum(); $efio = sbr_meta::getFioFromReqvs($this->sbr->emp_reqvs); $ffio = sbr_meta::getFioFromReqvs($this->sbr->frl_reqvs); if (!$efio) { $error['emp'] = 'Для формирования Акта об оказании услуги заказчику<br/> необходимо заполнить реквизиты на странице "Финансы"'; } if ($error) { return false; } $dvals = array('P' => pskb::$exrates_map[$this->sbr->data['ps_frl']]); foreach ($this->sbr->scheme['taxes'][sbr::FRL] as $tax) { $tax_frl += sbr_meta::calcAnyTax($tax['tax_id'], $tax['scheme_id'], $this->cost, $dvals); } $sum_emp = $this->getPayoutSum(sbr::EMP); $sum_frl = $this->getPayoutSum(sbr::FRL); $work_cost = $this->cost - $tax_frl; $work_time = intval($this->int_work_time) . ending(intval($this->int_work_time), ' день', ' дня', ' дней'); $work_type = count($this->sbr->stages) == 1 ? 'Стоимости Работы' : 'Промежуточной стоимости Работы'; $replace = array('$sbr_num' => $sbr_num, '$date_sbr' => date("d.m.Y", strtotime($this->getFirstTime())), '$efio' => $efio, '$ffio' => $ffio, '$sum_frl' => num2strEx($sum_frl, 'рублей Российской Федерации'), '$sum_emp' => num2strEx($sum_emp, 'рублей Российской Федерации'), '$tz_descr' => $this->descr, '$work_time' => $work_time, '$work_type' => $work_type, '$work_cost' => num2strEx($work_cost, 'рублей Российской Федерации'), '$is_arb_emp' => $is_emp_arb, '$is_arb_frl' => $is_frl_arb, '$is_arb_vaan' => $is_vaan_arb, '$is_not_arb_vaan' => !$is_vaan_arb, '$user_arb' => $user_arb); $pdf = sbr::xml2pdf($template, $replace); if (!($file = $this->sbr->_saveDocFile($pdf->Output(NULL, 'S')))) { $error['fatal'] = "Ошибка при формировании Акта об оказании услуги"; } return $file; }