first commit

This commit is contained in:
2025-03-12 17:06:23 +01:00
commit 2241f7131f
13185 changed files with 1692479 additions and 0 deletions

View File

@@ -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();
}
}

View File

@@ -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;
}
}

View File

@@ -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

View File

@@ -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ń'),
)));
?>

View File

@@ -0,0 +1 @@
<?php echo list_product_image(null !== $order_product->getProduct() ? $order_product->getProduct() : $order_product->getImage(), '_parent') ?>

View File

@@ -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
}
?>

View File

@@ -0,0 +1 @@
<?php echo number_format($quantity, 2, '.', ' '); ?> <?php echo __(st_product_uom($order_product->getProduct()), array(), 'stRecentlyOrderedProductsBackend'); ?>