281 lines
8.4 KiB
PHP
281 lines
8.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* SOTESHOP/stInvoicePlugin
|
|
*
|
|
* Ten plik należy do aplikacji stInvoicePlugin opartej na licencji (Professional License SOTE).
|
|
* Nie zmieniaj tego pliku, jeśli chcesz korzystać z automatycznych aktualizacji oprogramowania.
|
|
* Jeśli chcesz wprowadzać swoje modyfikacje do programu, zapoznaj się z dokumentacją, jak zmieniać
|
|
* oprogramowanie bez zmiany kodu bazowego http://www.sote.pl/modifications
|
|
*
|
|
* @package stInvoicePlugin
|
|
* @subpackage actions
|
|
* @copyright SOTE (www.sote.pl)
|
|
* @license http://www.sote.pl/license/sote (Professional License SOTE)
|
|
* @version $Id: components.class.php 2285 2009-07-23 12:50:05Z bartek $
|
|
* @author Bartosz Alejski <bartosz.alejski@sote.pl>
|
|
*/
|
|
|
|
/**
|
|
* Komponent stInvoiceFrontendComponents
|
|
*
|
|
* @package stInvoicePlugin
|
|
* @subpackage actions
|
|
*/
|
|
class stInvoiceBackendComponents extends autoStInvoiceBackendComponents
|
|
{
|
|
|
|
public function executeConfigContent()
|
|
{
|
|
$this->config = stConfig::getInstance('stInvoiceBackend');
|
|
$this->config->setCulture($this->getRequestParameter('culture', stLanguage::getOptLanguage()));
|
|
|
|
$c = new Criteria();
|
|
|
|
$c->add(PaymentTypePeer::ACTIVE, 1);
|
|
|
|
$payments = PaymentTypePeer::doSelect($c);
|
|
|
|
foreach ($payments as $payment)
|
|
{
|
|
$pay[$payment->getId()] = $payment->getOptName();
|
|
}
|
|
|
|
$this->pay = $pay;
|
|
}
|
|
|
|
public function executeViewContent()
|
|
{
|
|
$invoice_id = $this->getRequestParameter('id');
|
|
$invoice_type = $this->getRequestParameter('type');
|
|
$i18n = $this->getContext()->getI18N();
|
|
|
|
$user = sfContext::getInstance()->getUser();
|
|
$this->culture = $user->getCulture();
|
|
|
|
$this->config = stConfig::getInstance('stInvoiceBackend');
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoicePeer::ID, $invoice_id);
|
|
$invoice = InvoicePeer::doSelectOne($c);
|
|
|
|
if ($invoice->getIsDraft())
|
|
{
|
|
stInvoice::updateInvoice($invoice->getOrder(), $invoice);
|
|
}
|
|
|
|
$invoiceProducts = $invoice->getInvoiceProductsJoinProduct();
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceUserCustomerPeer::ID, $invoice->getInvoiceUserCustomerId());
|
|
$InvoiceUserCustomer = InvoiceUserCustomerPeer::doSelectOne($c);
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceUserSellerPeer::ID, $invoice->getInvoiceUserSellerId());
|
|
$InvoiceUserSeller = InvoiceUserSellerPeer::doSelectOne($c);
|
|
|
|
$c = new Criteria();
|
|
$c->addDescendingOrderByColumn(TaxPeer::IS_DEFAULT);
|
|
$tax = TaxPeer::doSelect($c);
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceCurrencyPeer::ID, $invoice->getInvoiceCurrencyId());
|
|
$invoiceCurrency = InvoiceCurrencyPeer::doSelectOne($c);
|
|
|
|
|
|
if ($invoiceCurrency)
|
|
{
|
|
$shortcut = $invoiceCurrency->getShortcut();
|
|
}
|
|
else
|
|
{
|
|
|
|
$shortcut = "PLN";
|
|
}
|
|
|
|
|
|
/**
|
|
* @var Tax[]
|
|
*/
|
|
$taxes = TaxPeer::doSelect($c);
|
|
|
|
$deliveryCountry = $invoice->getOrder()->getOrderUserDataDelivery()->getCountry();
|
|
|
|
$euConsumerTaxRates = array();
|
|
$normalTaxRates = array();
|
|
|
|
foreach ($taxes as $tax) {
|
|
$tax->setDeliveryCountry($deliveryCountry);
|
|
|
|
$euConsumerTaxRates[$tax->getId() . ":" . $tax->getVat()] = $tax->getVat() . '% ('.$tax->getVatName().')';
|
|
$normalTaxRates[$tax->getId() . ":" . $tax->getDefaultTaxRate()] = $tax->getDefaultTaxRate() . '% ('.$tax->getVatName().')';
|
|
}
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceStatusPeer::INVOICE_ID, $invoice->getId());
|
|
$status = InvoiceStatusPeer::doSelectOne($c);
|
|
|
|
if ($invoice->getIsConfirm() != 1)
|
|
{
|
|
|
|
if ($status->getHandMod() != 1)
|
|
{
|
|
$payment = $invoice->getOrder()->getOrderPayment();
|
|
|
|
$status->setInvoiceId($invoice->getId());
|
|
$status->setPaymentId($payment->getId());
|
|
$status->setOptPaymentTypeName($payment->getPaymentType()->getName());
|
|
$status->setOptPaymentStatus($payment->getStatus());
|
|
|
|
$status->setOptPaymentTypeId($payment->getPaymentTypeId());
|
|
}
|
|
}
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceStatusPeer::INVOICE_ID, $invoice->getId());
|
|
$status = InvoiceStatusPeer::doSelectOne($c);
|
|
|
|
|
|
$this->status = $status;
|
|
|
|
$this->paid_amount = $status->getPaidAmount() > 0 && !$status->getOptPaymentStatus() ? $status->getPaidAmount() : $invoice->getTotalAmount();
|
|
|
|
if ($this->paid_amount > $invoice->getTotalAmount())
|
|
{
|
|
$this->paid_amount = $invoice->getTotalAmount();
|
|
}
|
|
|
|
$this->unpaid_amount = $invoice->getTotalAmount() - $this->paid_amount;
|
|
|
|
$this->invoiceProducts = $invoiceProducts;
|
|
|
|
$this->shortcut = $shortcut;
|
|
|
|
$this->invoice = $invoice;
|
|
|
|
$this->InvoiceUserCustomer = $InvoiceUserCustomer;
|
|
|
|
$this->InvoiceUserSeller = $InvoiceUserSeller;
|
|
|
|
$this->invoiceType = $invoice_type;
|
|
|
|
$this->euConsumerTaxRates = $euConsumerTaxRates;
|
|
|
|
$this->normalTaxRates = $normalTaxRates;
|
|
|
|
if ($this->invoice->hasDiscount() && (string)$this->invoice->getTotalAmount() != (string)$this->invoice->getOrder()->getTotalAmountWithDelivery(true, true))
|
|
{
|
|
$this->setFlash('warning', $i18n->__('W zamówieniu wykorzystano rabat od kwoty zamówienia proszę sprawdzić poprawność wygenerowanych cen na fakturze'));
|
|
}
|
|
}
|
|
|
|
public function executeViewEditContent()
|
|
{
|
|
$invoice_id = $this->getRequestParameter('id');
|
|
$type = $this->getRequestParameter('type');
|
|
|
|
$this->config = stConfig::getInstance('stInvoiceBackend');
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoicePeer::ID, $invoice_id);
|
|
$invoice = InvoicePeer::doSelectOne($c);
|
|
|
|
|
|
$invoiceProducts = $invoice->getInvoiceProductsJoinProduct();
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceUserCustomerPeer::ID, $invoice->getInvoiceUserCustomerId());
|
|
$invoiceUserCustomer = InvoiceUserCustomerPeer::doSelectOne($c);
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceUserSellerPeer::ID, $invoice->getInvoiceUserSellerId());
|
|
$invoiceUserSeller = InvoiceUserSellerPeer::doSelectOne($c);
|
|
|
|
$c = new Criteria();
|
|
|
|
/**
|
|
* @var Tax[]
|
|
*/
|
|
$taxes = TaxPeer::doSelect($c);
|
|
|
|
$deliveryCountry = $invoice->getOrder()->getOrderUserDataDelivery()->getCountry();
|
|
|
|
$euConsumerTaxRates = array();
|
|
$normalTaxRates = array();
|
|
|
|
foreach ($taxes as $tax)
|
|
{
|
|
$tax->setDeliveryCountry($deliveryCountry);
|
|
|
|
$euConsumerTaxRates[$tax->getId() . ":" . $tax->getVat()] = $tax->getVat() . '% ('.$tax->getVatName().')';
|
|
$normalTaxRates[$tax->getId() . ":" . $tax->getDefaultTaxRate()] = $tax->getDefaultTaxRate() . '% ('.$tax->getVatName().')';
|
|
}
|
|
|
|
$c = new Criteria();
|
|
$c->add(PaymentTypePeer::ACTIVE, 1);
|
|
$payments = PaymentTypePeer::doSelect($c);
|
|
|
|
|
|
foreach ($payments as $payment)
|
|
{
|
|
$pay[$payment->getId()] = $payment->getOptName();
|
|
}
|
|
|
|
$this->pay = $pay;
|
|
|
|
$c = new Criteria();
|
|
$c->add(InvoiceStatusPeer::INVOICE_ID, $invoice->getId());
|
|
$status = InvoiceStatusPeer::doSelectOne($c);
|
|
|
|
$this->status = $status;
|
|
|
|
$this->paid_amount = $status->getPaidAmount() > 0 && $status->getOptPaymentStatus() ? $status->getPaidAmount() : $invoice->getTotalAmount();
|
|
|
|
$this->unpaid_amount = $invoice->getTotalAmount() - $this->paid_amount;
|
|
|
|
$this->euConsumerTaxRates = $euConsumerTaxRates;
|
|
$this->normalTaxRates = $normalTaxRates;
|
|
|
|
$this->invoiceProducts = $invoiceProducts;
|
|
|
|
$this->invoice = $invoice;
|
|
|
|
$this->invoiceUserCustomer = $invoiceUserCustomer;
|
|
|
|
$this->invoiceUserSeller = $invoiceUserSeller;
|
|
|
|
$this->type = $type;
|
|
}
|
|
|
|
public function executeFullName()
|
|
{
|
|
$this->fullName = $this->invoice->getInvoiceUserCustomer()->getFullName();
|
|
}
|
|
|
|
public function executeVatNumber()
|
|
{
|
|
$this->vatNumber = $this->invoice->getInvoiceUserCustomer()->getVatNumber();
|
|
}
|
|
|
|
public function executeCompany()
|
|
{
|
|
$this->comapny = $this->invoice->getInvoiceUserCustomer()->getCompany();
|
|
}
|
|
|
|
public function executeProformaNumber()
|
|
{
|
|
$c = new Criteria();
|
|
$c->add(InvoicePeer::ID, $this->invoice->getInvoiceProformaId());
|
|
$invoiceProforma = InvoicePeer::doSelectOne($c);
|
|
|
|
if ($invoiceProforma)
|
|
{
|
|
$this->value = $invoiceProforma->getNumber();
|
|
}
|
|
else
|
|
{
|
|
$this->value = "-";
|
|
}
|
|
}
|
|
|
|
} |