/** * Обрабатываем действия после согласия на БС */ public function afterNewReserve() { $order = $this->getSrcObject()->getOrderData(); //Генерируем документы require_once ABS_PATH . '/classes/DocGen/DocGenReserves.php'; $doc = new DocGenReserves($order); //Ставим в очередь на генерацию //договора и соглашения $doc->generateOffers(); }
break; case DocGenReserves::ACT_COMPLETED_FRL_TYPE: $file_url = getFileUrl($doc->generateActCompletedFrl()); $results[] = sprintf("generateActCompletedFrl = %s", $file_url); break; case DocGenReserves::ACT_SERVICE_EMP_TYPE: $file_url = getFileUrl($doc->generateActServiceEmp()); $results[] = sprintf("generateActServiceEmp = %s", $file_url); break; case DocGenReserves::AGENT_REPORT_TYPE: $file_url = getFileUrl($doc->generateAgentReport()); $results[] = sprintf("generateAgentReport = %s", $file_url); break; case DocGenReserves::RESERVE_OFFER_CONTRACT_TYPE: //case DocGenReserves::RESERVE_OFFER_AGREEMENT_TYPE: $file_url = (int) $doc->generateOffers(); $results[] = sprintf("generateOffers = %s", $file_url); break; case DocGenReserves::LETTER_FRL_TYPE: $file_url = getFileUrl($doc->generateInformLetterFRL()); $results[] = sprintf("generateInformLetterFRL = %s", $file_url); break; case DocGenReserves::ARBITRAGE_REPORT_TYPE: $file_url = getFileUrl($doc->generateArbitrageReport()); $results[] = sprintf("generateArbitrageReport = %s", $file_url); break; } } } catch (\Exception $e) { $message = $e->getMessage(); $results[] = sprintf("Error Message: %s", iconv('cp1251', 'utf-8', $message));
public function updateDocs($types = array(), $is_create = false, $override_data = array()) { ini_set('max_execution_time', 300); //ini_set('memory_limit', '512M'); if (empty($types)) { $is_create = true; } if (!$this->isReserveData()) { return false; } $orderModel = TServiceOrderModel::model(); $orderModel->attributes(array('is_adm' => true)); $orderData = $orderModel->getCard($this->getSrcId(), 0); if (!$orderData || !$orderModel->isReserve()) { return false; } $reserveInstance = $orderModel->getReserve(); if ($is_create) { //Если зарезервировали if ($reserveInstance->isStatusReserved()) { $base_doc_types[] = DocGenReserves::RESERVE_SPECIFICATION_TYPE; $base_doc_types[] = DocGenReserves::RESERVE_OFFER_CONTRACT_TYPE; $base_doc_types[] = DocGenReserves::RESERVE_OFFER_AGREEMENT_TYPE; } //Если резерв по безналу то нужен счет if (!$reserveInstance->isReserveByService()) { $base_doc_types[] = DocGenReserves::BANK_INVOICE_TYPE; } //Если сделка закрыта и исполнителю полагается выплата либо выплата в процессе if ($reserveInstance->isStatusPayInprogress() || $reserveInstance->isClosed() && (!$reserveInstance->isArbitrage() || $reserveInstance->isStatusPayPayed())) { $base_doc_types[] = DocGenReserves::ACT_COMPLETED_FRL_TYPE; } //Если сделка закрыта либо выплата в процессе if ($reserveInstance->isClosed() || $reserveInstance->isStatusPayInprogress()) { $base_doc_types[] = DocGenReserves::LETTER_FRL_TYPE; } //Если сделка закрыта if ($reserveInstance->isClosed()) { $base_doc_types[] = DocGenReserves::ACT_SERVICE_EMP_TYPE; $base_doc_types[] = DocGenReserves::AGENT_REPORT_TYPE; } //Если сделка закрыта по арбитражу if ($reserveInstance->isArbitrage() && $reserveInstance->isArbitrageClosed()) { $base_doc_types[] = DocGenReserves::ARBITRAGE_REPORT_TYPE; } $types = array_merge($types, $base_doc_types); } $types = array_unique($types); require_once ABS_PATH . '/classes/DocGen/DocGenReserves.php'; $this->getOrderHistory(); $doc = new DocGenReserves($orderData); $doc->deleteFiles($this->getSrcId(), $types); if (!empty($override_data)) { foreach ($override_data as $key => $value) { $doc->setOverrideField($key, $value); } } foreach ($types as $type) { switch ($type) { case DocGenReserves::BANK_INVOICE_TYPE: $reserveBank = $reserveInstance->getReservesBank(); if ($reserveBank) { $reqv = $reserveBank->getCheckByReserveId($reserveInstance->getID()); if ($reqv) { $reserveInstance->getReservesBank()->generateInvoice2($reqv); } } break; case DocGenReserves::ACT_COMPLETED_FRL_TYPE: $doc->generateActCompletedFrl(); break; case DocGenReserves::ACT_SERVICE_EMP_TYPE: $doc->generateActServiceEmp(); break; case DocGenReserves::AGENT_REPORT_TYPE: $doc->generateAgentReport(); break; case DocGenReserves::RESERVE_OFFER_CONTRACT_TYPE: //case DocGenReserves::RESERVE_OFFER_AGREEMENT_TYPE: $doc->generateOffers(); break; case DocGenReserves::RESERVE_SPECIFICATION_TYPE: $doc->generateSpecification(); break; case DocGenReserves::LETTER_FRL_TYPE: $doc->generateInformLetterFRL(); break; case DocGenReserves::ARBITRAGE_REPORT_TYPE: $doc->generateArbitrageReport(); break; } } return true; }