first commit
This commit is contained in:
@@ -0,0 +1,105 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
class stRecentlyOrderedProductsBackendActions extends autoStRecentlyOrderedProductsBackendActions
|
||||
{
|
||||
|
||||
|
||||
protected function addFiltersCriteria($c)
|
||||
{
|
||||
|
||||
if (isset($this->filters['product_id']) && $this->filters['product_id'])
|
||||
{
|
||||
if (is_numeric($this->filters['product_id']))
|
||||
{
|
||||
$id = $this->filters['product_id'];
|
||||
}
|
||||
else
|
||||
{
|
||||
$tokens = stJQueryToolsHelper::parseTokensFromRequest($this->filters['product_id']);
|
||||
|
||||
$id = $tokens ? $tokens[0]['id'] : null;
|
||||
}
|
||||
|
||||
if ( null !== $id)
|
||||
{
|
||||
$c->add(OrderProductPeer::PRODUCT_ID, $id);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
parent::addFiltersCriteria($c);
|
||||
}
|
||||
|
||||
protected function addSortCriteria($c)
|
||||
{
|
||||
$c->addDescendingOrderByColumn(OrderProductPeer::CREATED_AT);
|
||||
parent::addSortCriteria($c);
|
||||
}
|
||||
|
||||
|
||||
protected function processFilters()
|
||||
{
|
||||
|
||||
$filters = $this->getRequestParameter('filters', []);
|
||||
|
||||
$range = $this->getRequestParameter('range');
|
||||
|
||||
|
||||
if ($range){
|
||||
|
||||
if ($range == "today"){
|
||||
|
||||
$date['from'] = date("Y-m-d")." 00:00";
|
||||
$date['to'] = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "yesterday"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime("-1 days"))." 00:00";
|
||||
$date['to'] = date("Y-m-d",strtotime("-1 days"))." 23:59";
|
||||
|
||||
}elseif($range == "7"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime("-7 days"))." 00:00";
|
||||
$date['to'] = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "14"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime("-14 days"))." 00:00";
|
||||
$date['to'] = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "30"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime("-30 days"))." 00:00";
|
||||
$date['to'] = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "this_month"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime('first day of this month', time()))." 00:00";
|
||||
$date['to'] = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "prev_month"){
|
||||
|
||||
$date['from'] = date("Y-m-d",strtotime('first day of last month', time()))." 00:00";
|
||||
$date['to'] = date("Y-m-d",strtotime('last day of last month', time()))." 00:00";
|
||||
|
||||
}
|
||||
|
||||
$dateFormat = new sfDateFormat($this->getUser()->getCulture());
|
||||
|
||||
$date['from'] = $dateFormat->format($date['from'], 'd') . ' ' . (new DateTime($date['from']))->format('H:i');
|
||||
$date['to'] = $dateFormat->format($date['to'], 'd') . ' ' . (new DateTime($date['to']))->format('H:i');
|
||||
|
||||
$filters['created_at']['from'] = $date['from'];
|
||||
$filters['created_at']['to'] = $date['to'];
|
||||
|
||||
$this->getRequest()->setParameter('filters', $filters);
|
||||
|
||||
}
|
||||
|
||||
parent::processFilters();
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,245 @@
|
||||
<?php
|
||||
|
||||
|
||||
|
||||
class stRecentlyOrderedProductsBackendComponents extends autoStRecentlyOrderedProductsBackendComponents
|
||||
{
|
||||
public function executeOrders()
|
||||
{
|
||||
$i18n = $this->getContext()->getI18N();
|
||||
|
||||
$product_id = $this->order_product->getProductId();
|
||||
|
||||
$range = $this->getRequestParameter('range');
|
||||
|
||||
$filters = $this->getRequestParameter('filters');
|
||||
|
||||
$filters_clear = $this->getRequestParameter('filters_clear');
|
||||
|
||||
$from = "";
|
||||
$to = "";
|
||||
|
||||
|
||||
if (isset($filters['created_at']['from']) && $filters['created_at']['from'] || isset($filters['created_at']['to']) && $filters['created_at']['to'])
|
||||
{
|
||||
|
||||
if (!$filters['created_at']['from'])
|
||||
{
|
||||
$from = date('Y-m-d H:i:s');
|
||||
}
|
||||
else
|
||||
{
|
||||
$from = date('Y-m-d H:i:s', strtotime($filters['created_at']['from']));
|
||||
}
|
||||
|
||||
|
||||
if (!$filters['created_at']['to'])
|
||||
{
|
||||
$to = date('Y-m-d H:i:s');
|
||||
}
|
||||
else
|
||||
{
|
||||
$to = date('Y-m-d H:i:s', strtotime($filters['created_at']['to']));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($range){
|
||||
|
||||
if ($range == "today"){
|
||||
|
||||
$from = date("Y-m-d")." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "yesterday"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-1 days"))." 00:00";
|
||||
$to = date("Y-m-d",strtotime("-1 days"))." 23:59";
|
||||
|
||||
}elseif($range == "7"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-7 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "14"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-14 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "30"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-30 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "this_month"){
|
||||
|
||||
$from = date("Y-m-d",strtotime('first day of this month', time()))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "prev_month"){
|
||||
|
||||
$from = date("Y-m-d",strtotime('first day of last month', time()))." 00:00";
|
||||
$to = date("Y-m-d",strtotime('last day of last month', time()))." 00:00";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(OrderProductPeer::PRODUCT_ID , $product_id);
|
||||
|
||||
$criterion = $c->getNewCriterion(OrderProductPeer::CREATED_AT , $from, Criteria::GREATER_EQUAL );
|
||||
$criterion->addAnd($c->getNewCriterion(OrderProductPeer::CREATED_AT , $to, Criteria::LESS_EQUAL ));
|
||||
|
||||
if (!$from && !$to){
|
||||
$filters_clear = 1;
|
||||
}
|
||||
|
||||
if ($filters_clear != 1)
|
||||
{
|
||||
$c->add($criterion);
|
||||
}
|
||||
|
||||
$c->addDescendingOrderByColumn(OrderProductPeer::CREATED_AT);
|
||||
$order_products = OrderProductPeer::doSelect($c);
|
||||
|
||||
if ($order_products){
|
||||
|
||||
$index = 0;
|
||||
foreach ($order_products as $order_product){
|
||||
|
||||
$orders[$index]['created_at'] = $order_product->getCreatedAt();
|
||||
$orders[$index]['order_id'] = $order_product->getOrderId();
|
||||
$orders[$index]['quantity'] = $order_product->getQuantity();
|
||||
$orders[$index]['order_status'] = $order_product->getOrder()->getOrderStatus()->getName();
|
||||
$orders[$index]['order_number'] = $order_product->getOrder()->getNumber();
|
||||
$orders[$index]['obj_order'] = $order_product->getOrder();
|
||||
|
||||
$index++;
|
||||
}
|
||||
|
||||
$this->orders = $orders;
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
public function executeQuantity()
|
||||
{
|
||||
$i18n = $this->getContext()->getI18N();
|
||||
|
||||
$product_id = $this->order_product->getProductId();
|
||||
|
||||
$range = $this->getRequestParameter('range');
|
||||
|
||||
$filters = $this->getRequestParameter('filters');
|
||||
|
||||
$filters_clear = $this->getRequestParameter('filters_clear');
|
||||
|
||||
$from = "";
|
||||
$to = "";
|
||||
|
||||
|
||||
|
||||
if (isset($filters['created_at']['from']) && $filters['created_at']['from'] || isset($filters['created_at']['to']) && $filters['created_at']['to'])
|
||||
{
|
||||
|
||||
if (!$filters['created_at']['from'])
|
||||
{
|
||||
$from = date('Y-m-d H:i:s');
|
||||
}
|
||||
else
|
||||
{
|
||||
$from = date('Y-m-d H:i:s', strtotime($filters['created_at']['from']));
|
||||
}
|
||||
|
||||
|
||||
if (!$filters['created_at']['to'])
|
||||
{
|
||||
$to = date('Y-m-d H:i:s');
|
||||
}
|
||||
else
|
||||
{
|
||||
$to = date('Y-m-d H:i:s', strtotime($filters['created_at']['to']));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
if ($range){
|
||||
|
||||
if ($range == "today"){
|
||||
|
||||
$from = date("Y-m-d")." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "yesterday"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-1 days"))." 00:00";
|
||||
$to = date("Y-m-d",strtotime("-1 days"))." 23:59";
|
||||
|
||||
}elseif($range == "7"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-7 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "14"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-14 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "30"){
|
||||
|
||||
$from = date("Y-m-d",strtotime("-30 days"))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "this_month"){
|
||||
|
||||
$from = date("Y-m-d",strtotime('first day of this month', time()))." 00:00";
|
||||
$to = date("Y-m-d")." 23:59";
|
||||
|
||||
}elseif($range == "prev_month"){
|
||||
|
||||
$from = date("Y-m-d",strtotime('first day of last month', time()))." 00:00";
|
||||
$to = date("Y-m-d",strtotime('last day of last month', time()))." 00:00";
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
$c = new Criteria();
|
||||
$c->add(OrderProductPeer::PRODUCT_ID , $product_id);
|
||||
|
||||
$criterion = $c->getNewCriterion(OrderProductPeer::CREATED_AT , $from, Criteria::GREATER_EQUAL );
|
||||
$criterion->addAnd($c->getNewCriterion(OrderProductPeer::CREATED_AT , $to, Criteria::LESS_EQUAL ));
|
||||
|
||||
if (!$from && !$to){
|
||||
$filters_clear = 1;
|
||||
}
|
||||
|
||||
if ($filters_clear != 1)
|
||||
{
|
||||
$c->add($criterion);
|
||||
}
|
||||
|
||||
$c->addDescendingOrderByColumn(OrderProductPeer::CREATED_AT);
|
||||
$order_products = OrderProductPeer::doSelect($c);
|
||||
|
||||
$quantity = 0;
|
||||
|
||||
if ($order_products){
|
||||
foreach ($order_products as $order_product){
|
||||
|
||||
$quantity += $order_product->getQuantity();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
$this->quantity = $quantity;
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,41 @@
|
||||
generator:
|
||||
class: stAdminGenerator
|
||||
param:
|
||||
model_class: OrderProduct
|
||||
theme: simple
|
||||
title: "Sprzedane produkty"
|
||||
route: "@stRecentlyOrderedProductsBackend"
|
||||
icon: "stOrder"
|
||||
|
||||
documentation:
|
||||
pl: "https://www.sote.pl/docs/zamowienia"
|
||||
en: "https://www.soteshop.com/docs/orders"
|
||||
|
||||
list:
|
||||
use_stylesheet: [backend/stProductList.css]
|
||||
use_helper: [stProductImage]
|
||||
menu:
|
||||
display: [list]
|
||||
fields:
|
||||
list: {name: "Sprzedane produkty", action: "@stRecentlyOrderedProductsBackend?action=list"}
|
||||
|
||||
display: [created_at, _image, =name, ~orders, ~quantity]
|
||||
|
||||
|
||||
fields:
|
||||
created_at: {name: Sprzedany, filter_only: true}
|
||||
image: {name: "", filterable: false, width: 1%, align: center}
|
||||
name: {name: "Produkt", params: link_to="@stProduct?action=edit&id=%%product_id%%"}
|
||||
orders: {name: "Zamówienie", sortable: false}
|
||||
quantity: {name: "Ilość", filterable: false, sortable: false}
|
||||
|
||||
object_actions:
|
||||
select_actions: []
|
||||
actions: []
|
||||
|
||||
filters:
|
||||
name: {partial: filter_order_product}
|
||||
|
||||
|
||||
peer_method: doSelectRecentlyOrdered
|
||||
peer_count_method: doCountRecentlyOrdered
|
||||
@@ -0,0 +1,52 @@
|
||||
<?php
|
||||
sfLoader::loadHelpers('stProduct', 'stProduct');
|
||||
|
||||
$id = null;
|
||||
$token = null;
|
||||
|
||||
if (isset($filters['product_id']) && $filters['product_id'])
|
||||
{
|
||||
if (is_numeric($filters['product_id']))
|
||||
{
|
||||
$token = array("id" => $filters['product_id']);
|
||||
}
|
||||
else
|
||||
{
|
||||
$tokens = stJQueryToolsHelper::parseTokensFromRequest($filters['product_id']);
|
||||
|
||||
$token = $tokens ? $tokens[0] : null;
|
||||
}
|
||||
}
|
||||
|
||||
if ($token && !isset($token['new']))
|
||||
{
|
||||
$c = new Criteria();
|
||||
$c->add(ProductPeer::ID, $token['id']);
|
||||
|
||||
$defaults = ProductPeer::doSelectTokens($c);
|
||||
}
|
||||
elseif ($token)
|
||||
{
|
||||
$defaults = array($token);
|
||||
}
|
||||
else
|
||||
{
|
||||
$defaults = array();
|
||||
}
|
||||
|
||||
$results_formatter = _token_input_product_results_formatter();
|
||||
|
||||
$token_formatter = _token_input_product_token_formatter();
|
||||
|
||||
echo st_tokenizer_input_tag('filters[product_id]', st_url_for('@stProduct?action=ajaxProductsToken'), $defaults, array('tokenizer' => array(
|
||||
'preventDuplicates' => true,
|
||||
'resultsFormatter' => $results_formatter,
|
||||
'tokenFormatter' => $token_formatter,
|
||||
'hintText' => __('Wpisz kod/nazwę szukanego produktu', null, 'stProduct'),
|
||||
'additionalDataFields' => array('code'),
|
||||
'tokenLimit' => 1,
|
||||
'sortable' => false,
|
||||
'createNew' => false,
|
||||
'addNewText' => __('Szukaj w historii zamówień'),
|
||||
)));
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
<?php echo list_product_image(null !== $order_product->getProduct() ? $order_product->getProduct() : $order_product->getImage(), '_parent') ?>
|
||||
@@ -0,0 +1,25 @@
|
||||
<?php use_helper('I18N', 'Text', 'stAdminGenerator', 'ObjectAdmin', 'stDate', 'stProductImage', 'stCurrency') ?>
|
||||
<?php use_helper('stOrder'); ?>
|
||||
|
||||
<?php
|
||||
foreach ($orders as $order){
|
||||
?>
|
||||
|
||||
<a href="<?php echo st_url_for('stOrder/edit?id=' . $order['order_id']) ?>" target="_parent" >
|
||||
|
||||
<?php echo st_format_date($order['created_at'], 'dd-MM-yyyy') ?>
|
||||
|
||||
<?php echo $order['order_number'] ?>
|
||||
|
||||
|
||||
(<?php echo $order['quantity']; ?>)
|
||||
|
||||
<?php echo $order['order_status']; ?>
|
||||
|
||||
</a>
|
||||
|
||||
<br/>
|
||||
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
@@ -0,0 +1 @@
|
||||
<?php echo number_format($quantity, 2, '.', ' '); ?> <?php echo __(st_product_uom($order_product->getProduct()), array(), 'stRecentlyOrderedProductsBackend'); ?>
|
||||
Reference in New Issue
Block a user