*/ /** * Klasa stInvoiceFrontendActions. * * @package stInvoicePlugin * @subpackage actions */ class stInvoiceBackendActions extends autoStInvoiceBackendActions { public function executeList() { return $this->redirect('@stInvoicePlugin?action=confirmList'); } public function executeSaveConfigContent() { $this->forward('stInvoiceBackend', 'configCustom'); } public function updateConfigCustomFromRequest() { $updateInvoiceDefault = $this->getRequestParameter('invoiceDefault'); $this->invoiceDefault->set('invoice_on', isset($updateInvoiceDefault['invoice_on'])); $this->invoiceDefault->set('proforma_on', isset($updateInvoiceDefault['proforma_on'])); $this->invoiceDefault->set('shop_currency', isset($updateInvoiceDefault['shop_currency'])); $this->invoiceDefault->set('vat_eu', isset($updateInvoiceDefault['vat_eu'])); $this->invoiceDefault->set('show_product_code', isset($updateInvoiceDefault['show_product_code'])); $this->invoiceDefault->set('company_description', $updateInvoiceDefault['company_description']); $this->invoiceDefault->set('invoice_description', $updateInvoiceDefault['invoice_description'], true); $this->invoiceDefault->set('town', $updateInvoiceDefault['town']); $this->invoiceDefault->set('date_label', $updateInvoiceDefault['date_label'], true); $this->invoiceDefault->set('invoice_label', $updateInvoiceDefault['invoice_label'], true); $this->invoiceDefault->set('seller_company', $updateInvoiceDefault['seller_company']); $this->invoiceDefault->set('seller_vat_number', $updateInvoiceDefault['seller_vat_number']); $this->invoiceDefault->set('seller_full_name', $updateInvoiceDefault['seller_full_name']); $this->invoiceDefault->set('seller_address', $updateInvoiceDefault['seller_address']); $this->invoiceDefault->set('seller_address_more', $updateInvoiceDefault['seller_address_more']); $this->invoiceDefault->set('seller_region', $updateInvoiceDefault['seller_region']); $this->invoiceDefault->set('seller_code', $updateInvoiceDefault['seller_code']); $this->invoiceDefault->set('seller_town', $updateInvoiceDefault['seller_town']); $this->invoiceDefault->set('seller_country', $updateInvoiceDefault['seller_country']); $this->invoiceDefault->set('seller_signature', $updateInvoiceDefault['seller_signature']); $this->invoiceDefault->set('customer_company', $updateInvoiceDefault['customer_company']); $this->invoiceDefault->set('customer_vat_number', $updateInvoiceDefault['customer_vat_number']); $this->invoiceDefault->set('customer_full_name', $updateInvoiceDefault['customer_full_name']); $this->invoiceDefault->set('customer_address', $updateInvoiceDefault['customer_address']); $this->invoiceDefault->set('customer_address_more', $updateInvoiceDefault['customer_address_more']); $this->invoiceDefault->set('customer_region', $updateInvoiceDefault['customer_region']); $this->invoiceDefault->set('customer_code', $updateInvoiceDefault['customer_code']); $this->invoiceDefault->set('customer_town', $updateInvoiceDefault['customer_town']); $this->invoiceDefault->set('customer_country', $updateInvoiceDefault['customer_country']); $this->invoiceDefault->set('customer_signature', $updateInvoiceDefault['customer_signature']); $this->invoiceDefault->set('number_proforma', $updateInvoiceDefault['number_proforma']); $this->invoiceDefault->set('number_confirm', $updateInvoiceDefault['number_confirm']); $this->invoiceDefault->set('number_proforma_format_prefix', $updateInvoiceDefault['number_proforma_format_prefix']); $this->invoiceDefault->set('number_proforma_format', $updateInvoiceDefault['number_proforma_format']); $this->invoiceDefault->set('number_proforma_format_sufix', $updateInvoiceDefault['number_proforma_format_sufix']); $this->invoiceDefault->set('number_proforma_format_separator', $updateInvoiceDefault['number_proforma_format_separator']); $this->invoiceDefault->set('number_format_prefix', $updateInvoiceDefault['number_format_prefix']); $this->invoiceDefault->set('number_format', $updateInvoiceDefault['number_format']); $this->invoiceDefault->set('number_format_sufix', $updateInvoiceDefault['number_format_sufix']); $this->invoiceDefault->set('number_format_separator', $updateInvoiceDefault['number_format_separator']); $this->invoiceDefault->set('status_proforma_on', isset($updateInvoiceDefault['status_proforma_on'])); $this->invoiceDefault->set('max_day', $updateInvoiceDefault['max_day']); } public function validateConfigCustom() { $this->checkCredentials(); $request = $this->getRequest(); if ($request->getMethod() == sfRequest::POST) { $invoice = $request->getParameter('invoiceDefault'); if ($invoice['vat_eu'] && !stTaxVies::getInstance()->checkVat($invoice['seller_vat_number'])) { $request->setError('invoiceDefault{seller_vat_number}', 'Podany numer VAT UE jest nieprawidłowy'); } } return !$request->hasErrors(); } public function handleErrorConfigCustom() { $this->invoiceDefault = stConfig::getInstance($this->getContext(), 'stInvoiceBackend'); $this->updateConfigCustomFromRequest(); return sfView::SUCCESS; } public function executeConfigCustom() { $i18n = sfI18N::getInstance(); $this->invoiceDefault = stConfig::getInstance('stInvoiceBackend'); $this->invoiceDefault->setCulture($this->getRequestParameter('culture', stLanguage::getOptLanguage())); if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->updateConfigCustomFromRequest(); $this->invoiceDefault->save(true); $this->setFlash('notice', $i18n->__('Twoje zmiany zostały zapisane')); $this->redirect('stInvoiceBackend/configCustom?culture=' . $this->getRequestParameter('culture', stLanguage::getOptLanguage())); } $this->getBreadcrumbsBuilder()->getDefaultBreadcrumbs()->add($i18n->__('Konfiguracja')); } public function executeConfirmEdit() { if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->checkCredentials(); $updateInvoice = $this->getRequestParameter('invoice'); $updateInvoiceProducts = $this->getRequestParameter('invoice_product'); $updateInvoiceUserSeller = $this->getRequestParameter('invoice_user_seller'); $updateInvoiceUserCustomer = $this->getRequestParameter('invoice_user_customer'); if ($this->hasRequestParameter("addNwProduct")) { $this->addProformaInvoiceProduct($updateInvoice['invoice_id']); } $this->updateInvoice($updateInvoice, $updateInvoiceUserCustomer, $updateInvoiceUserSeller, $updateInvoiceProducts); if ($this->hasRequestParameter("updateStatusInvoice")) { $this->updateStatusInvoiceAsPayment($updateInvoice['invoice_id']); } } parent::executeConfirmEdit(); if ($this->getConfigurationParameter('mode') != 'edit') { $this->hideAction('_save'); } } public function executeRequestEdit() { if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->checkCredentials(); $updateInvoice = $this->getRequestParameter('invoice'); $updateInvoiceProducts = $this->getRequestParameter('invoice_product'); $updateInvoiceUserSeller = $this->getRequestParameter('invoice_user_seller'); $updateInvoiceUserCustomer = $this->getRequestParameter('invoice_user_customer'); if ($this->hasRequestParameter("addNwProduct")) { $this->addProformaInvoiceProduct($updateInvoice['invoice_id']); } $this->updateInvoice($updateInvoice, $updateInvoiceUserCustomer, $updateInvoiceUserSeller, $updateInvoiceProducts); if ($this->hasRequestParameter("updateStatusInvoice")) { $this->updateStatusInvoiceAsPayment($updateInvoice['invoice_id']); } } parent::executeRequestEdit(); if ($this->getConfigurationParameter('mode') != 'edit') { $this->hideAction('_save'); } } public function executeProformaEdit() { if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->checkCredentials(); $updateInvoice = $this->getRequestParameter('invoice'); $updateInvoiceProducts = $this->getRequestParameter('invoice_product'); $updateInvoiceUserSeller = $this->getRequestParameter('invoice_user_seller'); $updateInvoiceUserCustomer = $this->getRequestParameter('invoice_user_customer'); if ($this->hasRequestParameter("addNwProduct")) { $this->addProformaInvoiceProduct($updateInvoice['invoice_id']); } $this->updateInvoice($updateInvoice, $updateInvoiceUserCustomer, $updateInvoiceUserSeller, $updateInvoiceProducts); if ($this->hasRequestParameter("updateStatusInvoice")) { $this->updateStatusInvoiceAsPayment($updateInvoice['invoice_id']); } } parent::executeProformaEdit(); if ($this->getConfigurationParameter('mode') != 'edit') { $this->hideAction('_save'); } } /*public function executeSaveEditProformaInvoice() { if ($this->getRequest()->getMethod() == sfRequest::POST) { $this->checkCredentials(); $updateInvoice = $this->getRequestParameter('invoice'); $updateInvoiceProducts = $this->getRequestParameter('invoice_product'); $updateInvoiceUserSeller = $this->getRequestParameter('invoice_user_seller'); $updateInvoiceUserCustomer = $this->getRequestParameter('invoice_user_customer'); if ($this->hasRequestParameter("addNwProduct")) { $this->addProformaInvoiceProduct($updateInvoice['invoice_id']); } $this->updateInvoice($updateInvoice, $updateInvoiceUserCustomer, $updateInvoiceUserSeller, $updateInvoiceProducts); if ($this->hasRequestParameter("updateStatusInvoice")) { $this->updateStatusInvoiceAsPayment($updateInvoice['invoice_id']); } $this->redirect("stInvoiceBackend/viewEditCustom?id=" . $updateInvoice['invoice_id'] . "&type=" . $updateInvoice['type']); } }*/ public function executeDeleteProformaInvoiceProduct() { $i18n = sfI18N::getInstance(); $this->checkCredentials(); $product_id = $this->getRequestParameter('product_id'); $invoice_id = $this->getRequestParameter('id'); $return = $this->getRequestParameter('return'); $this->delateProformaInvoiceProduct($product_id); $this->setFlash('notice', $i18n->__('Produkt został usunięty')); $this->redirect("stInvoiceBackend/" . $return . "?id=" . $invoice_id); } public function addProformaInvoiceProduct($invoice_id) { $c = new Criteria(); $c->add(TaxPeer::IS_DEFAULT, 1); $tax = TaxPeer::doSelectOne($c); $invoiceProduct = new InvoiceProduct(); $invoiceProduct->setInvoiceId($invoice_id); $invoiceProduct->setPriceNetto(0); $invoiceProduct->setPriceBrutto(0); $invoiceProduct->setVatId($tax->getId()); $invoiceProduct->setVat($tax->getVat()); $invoiceProduct->setDiscount(0); $invoiceProduct->setQuantity(1); $invoiceProduct->save(); } public function delateProformaInvoiceProduct($product_id) { $c = new Criteria(); $c->add(InvoiceProductPeer::ID, $product_id); $invoiceProducts = InvoiceProductPeer::doDelete($c); } public function executeUpdate() { $order_id = $this->getRequestParameter('id'); $invoice_id = $this->getRequestParameter('invoice_id'); $c = new Criteria(); $c->add(OrderPeer::ID, $order_id); $order = OrderPeer::doSelectOne($c); $c = new Criteria(); $c->add(InvoicePeer::ID, $invoice_id); $invoice = InvoicePeer::doSelectOne($c); stInvoice::updateInvoice($order, $invoice); if ($invoice->getIsProforma()) { $this->redirect("stInvoiceBackend/proformaEdit?id=" . $invoice->getId()); } if ($invoice->getIsConfirm()) { $this->redirect("stInvoiceBackend/confirmEdit?id=" . $invoice->getId()); } } public function updateInvoice($incomingInvoice, $incomingInvoiceUserCustomer, $incomingInvoiceUserSeller, $incomingInvoiceProducts) { $c = new Criteria(); $c->add(InvoicePeer::ID, $incomingInvoice['invoice_id']); $invoice = InvoicePeer::doSelectOne($c); $invoice->setCompanyDescription($incomingInvoice['company_description']); $invoice->setInvoiceDescription($incomingInvoice['invoice_description']); $invoice->setDateSelle($incomingInvoice['date_selle']); $invoice->setDateCreateCopy($incomingInvoice['date_create_copy']); $invoice->setSignatureSeller($incomingInvoice['seller_signature']); $invoice->setSignatureCustomer($incomingInvoice['customer_signature']); $invoice->setTown($incomingInvoice['town']); $invoice->setMaxDay($incomingInvoice['max_day']); $invoice->setPaymentType($incomingInvoice['payment_type']); $invoice->setNumber($incomingInvoice['number']); $invoice->save(); $c = new Criteria(); $c->add(InvoiceUserCustomerPeer::ID, $incomingInvoiceUserCustomer['user_customer_id']); $invoiceUserCustomer = InvoiceUserCustomerPeer::doSelectOne($c); $invoiceUserCustomer->setCountry($incomingInvoiceUserCustomer['country']); $invoiceUserCustomer->setFullName($incomingInvoiceUserCustomer['full_name']); $invoiceUserCustomer->setAddress($incomingInvoiceUserCustomer['address']); $invoiceUserCustomer->setAddressMore($incomingInvoiceUserCustomer['address_more']); $invoiceUserCustomer->setRegion($incomingInvoiceUserCustomer['region']); $invoiceUserCustomer->setCode($incomingInvoiceUserCustomer['code']); $invoiceUserCustomer->setTown($incomingInvoiceUserCustomer['town']); $invoiceUserCustomer->setPesel($incomingInvoiceUserCustomer['pesel']); $invoiceUserCustomer->setCompany($incomingInvoiceUserCustomer['company']); $invoiceUserCustomer->setVatNumber($incomingInvoiceUserCustomer['vat_number']); $invoiceUserCustomer->save(); $c = new Criteria(); $c->add(InvoiceUserSellerPeer::ID, $incomingInvoiceUserSeller['user_seller_id']); $invoiceUserSeller = InvoiceUserSellerPeer::doSelectOne($c); $invoiceUserSeller->setCountry($incomingInvoiceUserSeller['country']); $invoiceUserSeller->setFullName($incomingInvoiceUserSeller['full_name']); $invoiceUserSeller->setAddress($incomingInvoiceUserSeller['address']); $invoiceUserSeller->setAddressMore($incomingInvoiceUserSeller['address_more']); $invoiceUserSeller->setRegion($incomingInvoiceUserSeller['region']); $invoiceUserSeller->setCode($incomingInvoiceUserSeller['code']); $invoiceUserSeller->setTown($incomingInvoiceUserSeller['town']); $invoiceUserSeller->setCompany($incomingInvoiceUserSeller['company']); $invoiceUserSeller->setVatNumber($incomingInvoiceUserSeller['vat_number']); $invoiceUserSeller->save(); $optTotalPriceBrutto = 0; foreach ($incomingInvoiceProducts as $row) { $vatArray = explode(":", $row['vat']); $c = new Criteria(); $c->add(InvoiceProductPeer::ID, $row['product_id']); $product = InvoiceProductPeer::doSelectOne($c); $product->setCode($row['code']); $product->setName($row['name']); $product->setPkwiu($row['pkwiu']); $product->setQuantity($row['quantity']); $product->setMeasureUnit($row['measure_unit']); $product->setDiscount($row['discount']); $product->setPriceNetto($row['price_netto']); $product->setPriceBrutto($row['price_brutto']); $product->setVatId($vatArray[0]); $product->setVat($vatArray[1]); $product->setVatAmmount($row['vat_ammount']); $product->setTotalPriceNetto($row['total_price_netto']); $product->setOptTotalPriceBrutto($row['opt_total_price_brutto']); $product->save(); $optTotalPriceBrutto += $row['opt_total_price_brutto']; } $invoice->setOptTotalAmmountBrutto($optTotalPriceBrutto); $invoice->save(); } public function copyInvoice($id) { $c = new Criteria(); $c->add(InvoicePeer::ID, $id); $invoice = InvoicePeer::doSelectOne($c); if ($invoice->getIsDraft()) { stInvoice::updateInvoice($invoice->getOrder(), $invoice); } $c = new Criteria(); $c->add(InvoiceUserCustomerPeer::ID, $invoice->getInvoiceUserCustomerId()); $invoiceUserCustomer = InvoiceUserCustomerPeer::doSelectOne($c); $cloneInvoiceUserCustomer = $invoiceUserCustomer->copy(); $cloneInvoiceUserCustomer->save(); $c = new Criteria(); $c->add(InvoiceUserSellerPeer::ID, $invoice->getInvoiceUserSellerId()); $invoiceUserSeller = InvoiceUserSellerPeer::doSelectOne($c); $cloneInvoiceUserSeller = $invoiceUserSeller->copy(); $cloneInvoiceUserSeller->save(); $cloneInvoice = $invoice->copy(); $cloneInvoice->setInvoiceUserSellerId($cloneInvoiceUserSeller->getId()); $cloneInvoice->setInvoiceUserCustomerId($cloneInvoiceUserCustomer->getId()); $cloneInvoice->save(); $c = new Criteria(); $c->add(InvoiceStatusPeer::INVOICE_ID, $id); $invoiceStatus = InvoiceStatusPeer::doSelectOne($c); $cloneInvoiceStatus = $invoiceStatus->copy(); $cloneInvoiceStatus->setInvoiceId($cloneInvoice->getId()); $cloneInvoiceStatus->save(); foreach ($invoice->getInvoiceProductsJoinProduct() as $product) { $cloneProduct = $product->copy(); $cloneProduct->setInvoiceId($cloneInvoice->getId()); $cloneProduct->save(); } return $cloneInvoice; } public function executeMakeConfirmInvoice() { $i18n = sfI18N::getInstance(); $this->checkCredentials(); $ifirmaConfig = stConfig::getInstance(sfContext::getInstance(), 'stInvoiceBackend'); $invoice_id = $this->getRequestParameter('id'); $type = $this->getRequestParameter('type'); if ($type == "proforma") { //sprawdz czy istnieje faktura do wystawienia $c = new Criteria(); $c->add(InvoicePeer::INVOICE_PROFORMA_ID, $invoice_id); $c->add(InvoicePeer::IS_REQUEST, 1); $invoice = InvoicePeer::doSelectOne($c); if ($invoice) { $invoice->setNumber(stInvoice::createInvoiceNumber("confirm", 1)); $invoice->setDateCreateCopy(date("Y-m-d")); $invoice->setDateSelle(date("Y-m-d")); $invoice->setIsConfirm(1); $invoice->setIsRequest(0); $invoice->setIsProforma(0); $invoice->save(); stInvoice::updateInvoice($invoice->getOrder(), $invoice); $this->setFlash('notice', $i18n->__('Faktura został wystawiona', null, 'stAdminGeneratorPlugin')); $this->redirect("stInvoiceBackend/confirmEdit?id=" . $invoice->getId()); } else { $newInvoice = $this->copyInvoice($invoice_id); $number = stInvoice::createInvoiceNumber("confirm", 1); $newInvoice->setNumber($number); $newInvoice->setDateCreateCopy(date("Y-m-d")); $newInvoice->setDateSelle(date("Y-m-d")); $newInvoice->setIsConfirm(1); $newInvoice->setIsRequest(0); $newInvoice->setIsProforma(0); $newInvoice->setInvoiceProformaId($invoice_id); $newInvoice->save(); stInvoice::updateInvoice($newInvoice->getOrder(), $newInvoice); $this->setFlash('notice', $i18n->__('Faktura został wystawiona', null, 'stAdminGeneratorPlugin')); $this->redirect("stInvoiceBackend/confirmEdit?id=" . $newInvoice->getId()); } } if ($type == "request") { $c = new Criteria(); $c->add(InvoicePeer::ID, $invoice_id); $invoice = InvoicePeer::doSelectOne($c); $invoice->setNumber(stInvoice::createInvoiceNumber("confirm", 1)); $invoice->setDateCreateCopy(date("Y-m-d")); $invoice->setDateSelle(date("Y-m-d")); $invoice->setIsConfirm(1); $invoice->setIsRequest(0); $invoice->setIsProforma(0); $invoice->save(); stInvoice::updateInvoice($invoice->getOrder(), $invoice); $this->setFlash('notice', $i18n->__('Faktura został wystawiona', null, 'stAdminGeneratorPlugin')); $this->redirect("stInvoiceBackend/confirmEdit?id=" . $invoice->getId()); } // generowanie numeru // przypadek zmian w proformie } public function executeConfirmList() { parent::executeConfirmList(); $this->pager->getCriteria()->add(InvoicePeer::IS_CONFIRM, 1); $this->pager->init(); } public function executeRequestList() { parent::executeRequestList(); $this->pager->getCriteria()->add(InvoicePeer::IS_REQUEST, 1); $this->pager->init(); } public function executeProformaList() { parent::executeProformaList(); $this->pager->getCriteria()->add(InvoicePeer::IS_PROFORMA, 1); $this->pager->init(); } public function executeConfirmall() { // pobranie id zaznaczonych elementów $ids = $this->getRequestParameter('invoice[selected]', array()); foreach ($ids as $id) { $this->makeConfirmAllInvoice($id); } // powrót return $this->redirect('stInvoiceBackend/requestList'); } public function makeConfirmAllInvoice($id = null) { $c = new Criteria(); $c->add(InvoicePeer::ID, $id); $invoice = InvoicePeer::doSelectOne($c); $invoice->setNumber(stInvoice::createInvoiceNumber("confirm", 1)); $invoice->setDateCreateCopy(date("Y-m-d")); $invoice->setDateSelle(date("Y-m-d")); $invoice->setIsConfirm(1); $invoice->setIsRequest(0); $invoice->setIsProforma(0); $invoice->save(); $c = new Criteria(); $c->add(InvoiceStatusPeer::INVOICE_ID, $id); $invoiceStatus = InvoiceStatusPeer::doSelectOne($c); if ($invoiceStatus->getHandMod() != 1) { $this->updateStatusInvoiceAsPayment($id); } } public function getChangeStatus($invoice_id) { // Pobierz status faktury $c = new Criteria(); $c->add(InvoiceStatusPeer::INVOICE_ID, $invoice_id); $invoiceStatus = InvoiceStatusPeer::doSelectOne($c); // Pobierz statusy płatnosci $c = new Criteria(); $c->add(PaymentPeer::ID, $invoiceStatus->getPaymentId()); $payment = PaymentPeer::doSelectOne($c); // Pobierz typ płatnosci $c = new Criteria(); $c->add(PaymentTypePeer::ID, $payment->getPaymentTypeId()); $orderPaymentType = PaymentTypePeer::doSelectOne($c); $c = new Criteria(); $c->add(PaymentTypePeer::ID, $invoiceStatus->getOptPaymentTypeId()); $invoicePaymentType = PaymentTypePeer::doSelectOne($c); $chenges = array(); if ($payment->getStatus() != $invoiceStatus->getOptPaymentStatus()) { $chenges['invoice']['status'] = $invoiceStatus->getOptPaymentStatus(); $chenges['payment']['status'] = $payment->getStatus(); $chenges['invoice']['type']['id'] = $invoicePaymentType->getId(); $chenges['invoice']['type']['name'] = $invoicePaymentType->getOptName(); $chenges['payment']['type']['id'] = $orderPaymentType->getId(); $chenges['payment']['type']['name'] = $orderPaymentType->getOptName(); } if ($orderPaymentType->getId() != $invoicePaymentType->getId()) { $chenges['invoice']['status'] = $invoiceStatus->getOptPaymentStatus(); $chenges['payment']['status'] = $payment->getStatus(); $chenges['invoice']['type']['id'] = $invoicePaymentType->getId(); $chenges['invoice']['type']['name'] = $invoicePaymentType->getOptName(); $chenges['payment']['type']['id'] = $orderPaymentType->getId(); $chenges['payment']['type']['name'] = $orderPaymentType->getOptName(); } return $chenges; } public function checkChangeStatus($invoice_id) { // Pobierz status faktury $c = new Criteria(); $c->add(InvoiceStatusPeer::INVOICE_ID, $invoice_id); $invoiceStatus = InvoiceStatusPeer::doSelectOne($c); // Pobierz statusy płatnosci $c = new Criteria(); $c->add(PaymentPeer::ID, $invoiceStatus->getPaymentId()); $payment = PaymentPeer::doSelectOne($c); // Pobierz typ płatnosci $c = new Criteria(); $c->add(PaymentTypePeer::ID, $payment->getPaymentTypeId()); $orderPaymentType = PaymentTypePeer::doSelectOne($c); $c = new Criteria(); $c->add(PaymentTypePeer::ID, $invoiceStatus->getOptPaymentTypeId()); $invoicePaymentType = PaymentTypePeer::doSelectOne($c); $chenges = array(); if ($payment->getStatus() != $invoiceStatus->getOptPaymentStatus()) { return true; } if ($orderPaymentType->getId() != $invoicePaymentType->getId()) { return true; } return false; } public function saveInvoiceStatus($id = null, $new_status, $hand_mod = 0) { $c = new Criteria(); $c->add(InvoiceStatusPeer::INVOICE_ID, $id); $invoiceStatus = InvoiceStatusPeer::doSelectOne($c); if ($invoiceStatus) { $invoiceStatus->setOptPaymentTypeName($new_status['name']); $invoiceStatus->setOptPaymentTypeId($new_status['type_id']); $invoiceStatus->setOptPaymentStatus($new_status['is_confirm']); $invoiceStatus->setHandMod($hand_mod); $invoiceStatus->save(); return $invoiceStatus; } } public function updateStatusInvoiceAsPayment($id) { if ($this->checkChangeStatus($id)) { $statusInfo = $this->getChangeStatus($id); if ($statusInfo['payment']['status'] == "") { $statusInfo['payment']['status'] = 0; } $new_status['name'] = $statusInfo['payment']['type']['name']; $new_status['type_id'] = $statusInfo['payment']['type']['id']; $new_status['is_confirm'] = $statusInfo['payment']['status']; $this->saveInvoiceStatus($id, $new_status, 0); } } protected function checkCredentials() { stAuthUsersListener::checkModificationCredentials($this, $this->getRequest(), $this->getModuleName()); } protected function getInvoiceOrCreate($id = 'id') { $invoice = parent::getInvoiceOrCreate($id); if ($invoice->getIsDraft()) { stInvoice::updateInvoice($invoice->getOrder(), $invoice); } return $invoice; } protected function getConfirmInvoiceOrCreate($id = 'id') { $invoice = parent::getConfirmInvoiceOrCreate($id); if ($invoice->getIsDraft()) { stInvoice::updateInvoice($invoice->getOrder(), $invoice); } return $invoice; } protected function getRequestInvoiceOrCreate($id = 'id') { $invoice = parent::getRequestInvoiceOrCreate($id); if ($invoice->getIsDraft()) { stInvoice::updateInvoice($invoice->getOrder(), $invoice); } return $invoice; } }