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,42 @@
<?php
/**
* SOTESHOP/stDepositoryPlugin
*
* Ten plik należy do aplikacji stDepositoryPlugin 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 stDepositoryPlugin
* @subpackage configs
* @copyright SOTE (www.sote.pl)
* @license http://www.sote.pl/license/sote (Professional License SOTE)
* @version $Id: config.php 617 2009-04-09 13:02:31Z michal $
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
*/
/**
* Konfiguracja modułu stDepositoryPlugin
*
* @package stDepositoryPlugin
* @author Krzysztof Bebło <krzysztof.beblo@sote.pl>
*/
$dispatcher->connect('Order.preSave', array('stDepositoryPluginListener', 'preSaveOrder'));
if (SF_APP == 'frontend')
{
stPluginHelper::addEnableModule('stDepositoryFrontend');
$dispatcher->connect('stOrderActions.validateSave', array('stDepositoryPluginListener', 'validateOrderSave'));
}
if (SF_APP == 'backend')
{
stPluginHelper::addEnableModule('stDepositoryBackend');
stPluginHelper::addRouting('stDepositoryPlugin', '/depository/:action/*', 'stDepositoryBackend', 'list');
$dispatcher->connect('stAdminGenerator.generateStProduct', array('stDepositoryPluginListener', 'generate'));
$dispatcher->connect('autoStProductActions.addDepositoryFiltersCriteria', array('stDepositoryPluginListener', 'addDepositoryFiltersCriteria'));
$dispatcher->connect('Product.setListStock', array('stDepositoryPluginListener', 'productSetListStock'));
}
?>

View File

@@ -0,0 +1,30 @@
list:
menu:
display: [depository_list]
fields:
depository_list: {name: Magazyn, action: "@stDepositoryPlugin?action=list", i18n: stDepositoryBackend}
config:
display:
"Dostępność/Magazyn": [depository_enabled, get_depository, depository_basket]
fields:
depository_enabled: {name: Włącz obsługę stanów magazynowych, type: checkbox, checked: true, help: Włącza automatyczne zarządzanie stanami magazynowymi, i18n: stDepositoryBackend }
get_depository:
name: Zdejmuj produkty z magazynu
type: select
display: [option1, option2]
i18n: stDepositoryBackend
options:
option1: {name: Po złożeniu zamówienia, value: order, i18n: stDepositoryBackend}
option2: {name: Po zmianie statusu zamowienia na zrealizowane, value: order_status, i18n: stDepositoryBackend}
selected: option1
depository_basket: {name: Sprawdzanie stanu magazynowego w koszyku, checked: false, type: checkbox, i18n: stDepositoryBackend}
export:
fields:
product_depository: {name: Magazyn, class: stPropelProduct, type: string, i18n: stDepositoryBackend}
import:
fields:
product_depository: {class: stPropelProduct, type: string}

View File

@@ -0,0 +1,67 @@
webapi:
AddDepository:
description: 'Funkcja umożliwia dodanie nowego stanu magazynowego dla produktu. Przed dodaniem stanu magazynowego należy upwenić się czy produkt o podanym id istnieje, w przeciwnym wypadku zostatnie zwrócony błąd WEBAPI_VALIDATE_ERROR.'
methodType: Add
inType: object
outType: object
inFields:
ProductId: {type: int, required: true, test_table: Product, where_field: id, description: 'Id produktu w sklepie, dla którego ma zostac dodany stan magazynowy. Produkt o podanym id musi istnieć'}
Stock: {type: int, required: true, description: 'Liczba produktów w magazynie podana jako liczba całkowita.'}
outFields:
Id: {type: int, description: 'Id wpisu dodanego do magazynu'}
GetDepository:
description: 'Funckja umożliwia pobranie stanów magazynowych dla produktów w sklepie.'
methodType: Get
inType: object
outType: object
inFields:
Id: {type: int, required: true, description: 'id rekordu w bazie danych, jest to wartość !DepositoryId w danych produktu.'}
outFields:
Id: {type: int, description: 'Id pobranego rekordu.'}
ProductId: {type: int, description: 'Id produktu dla którego określony jest stan magazynowy.'}
Stock: {type: int, description: 'Liczba produktów w magazynie podana jako liczba całkowita.'}
ProductName: {type: string, methods: [getProduct, getName], description: 'Nazwa produktu dla danego stanu magazynowego.'}
UpdateDepository:
description: 'Aktualizuje wartość stanu magazynowego dla danego produktu w sklepie.'
methodType: Update
inType: object
outType: object
inFields:
Id: {type: int, required: true, description: 'Id rekordu w bazie danych, jest to wartość !DepositoryId w danych produktu.'}
ProductId: {type: int, test_table: Product, where_field: id, description: 'Id produktu dla którego określony jest stan magazynowy.'}
Stock: {type: int, description: 'Liczba produktów w magazynie podana jako liczba całkowita.'}
outFields:
_Update: {type: boolean, description: 'W przypadku powodzenia wartość ta przyjmuje true'}
DeleteDepository:
description: 'Usuwa wpis o określonym id z magaznu, w przypadku gdy zostanie podany nieprawidłowy id funkcja zwraca błąd WEBAPI_INCORRECT_ID.'
methodType: Delete
inType: object
outType: object
inFields:
Id: {type: int, required: true, description: 'Id rekordu w bazie danych, jest to wartość !DepositoryId w danych produktu.'}
outFields:
_Delete: {type: boolean, description: 'W przypadku powodzenia wartość ta przyjmuje true.'}
GetDepositoryList:
description: 'Zwraca listę wszystkich stanów magazynowych. Listę można skrócić wykorzystująć parametry _offset i _limit.'
methodType: List
inType: object
outType: array
inFields:
_offset: {type: int, required: true, description: 'Określa przesunięce wyników o określony ofset.'}
_limit: {type: int, required: true, description: 'Określa liczbę wyników w zapytaniu.'}
outFields:
Id: {type: int, description: 'Id rekordu w bazie danych, jest to wartość !DepositoryId w danych produktu.'}
ProductId: {type: int, description: 'Id produktu dla którego określony jest stan magazynowy.'}
Stock: {type: int, description: 'Liczba produktów w magazynie podana jako liczba całkowita.'}
ProductName: {type: string, methods: [getProduct, getName], description: 'Nazwa produktu dla danego stanu magazynowego.'}
CountDepository:
description: 'Zwraca całkowitą liczbę rekordów w tabeli magazyn.'
methodType: Count
outType: object
outFields:
_Count: {type: int, description: 'Zawiera całkowitą liczbę rekordów w bazie magazyn.'}

View File

@@ -0,0 +1,6 @@
propel:
st_order:
_attributes: {phpName: Order}
change_stock_on:
type: VARCHAR
size: 45

View File

@@ -0,0 +1,8 @@
propel:
st_product:
_attributes: {phpName: Product}
stock:
type: DECIMAL
size: 8
scale: 2
default: 1