Merge pull request 'master' (#1) from Gloomy/hesabixCore:master into master

Reviewed-on: #1
This commit is contained in:
Hesabix 2025-07-23 01:00:28 +03:30
commit aa02ea0925
480 changed files with 5513 additions and 249 deletions

View file

@ -1,3 +1,8 @@
# توقف فعالیت در گیت‌هاب به دلیل نگرانی‌های اخلاقی
ما به دلیل استفاده مایکروسافت از هوش مصنوعی در تولید سلاح‌های نظامی و آموزش مدل‌های هوش مصنوعی با داده‌های غیرنظامیان، تصمیم گرفتیم تمام فعالیت‌های خود را در پلتفرم گیت‌هاب متوقف کنیم. این تصمیم به منظور پایبندی به اصول اخلاقی و مسئولیت اجتماعی اتخاذ شده است.
برای دسترسی به سورس‌کدها و مشارکت در پروژه‌های ما، لطفاً به وب‌سایت رسمی ما به آدرس [source.hesabix.ir](https://source.hesabix.ir) مراجعه کنید.
با تشکر از حمایت و همراهی شما.
# حسابیکس - نرم‌افزار حسابداری متن‌باز
<img src="https://hesabix.ir/favicon/favicon.svg" alt="Hesabix Logo" width="100" height="100" />

View file

@ -23,6 +23,7 @@
"phpoffice/phpspreadsheet": "^2.3",
"phpstan/phpdoc-parser": "^1.33",
"ramsey/uuid": "^4.7",
"snapp-market-pro/moadian": "^1.1",
"symfony/apache-pack": "^1.0",
"symfony/asset": "7.2.*",
"symfony/console": "7.2.*",
@ -109,7 +110,7 @@
"symfony/browser-kit": "7.2.*",
"symfony/css-selector": "7.2.*",
"symfony/debug-bundle": "7.2.*",
"symfony/maker-bundle": "^1.62",
"symfony/maker-bundle": "^1.64",
"symfony/phpunit-bridge": "^7.2",
"symfony/stopwatch": "7.2.*",
"symfony/web-profiler-bundle": "7.2.*"

View file

@ -4,7 +4,7 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
"content-hash": "389f897ebd1e0befdd15876e5d6a43a7",
"content-hash": "43db0ad2bb94569ed6d44cabf503210e",
"packages": [
{
"name": "brick/math",
@ -1563,6 +1563,331 @@
],
"time": "2025-03-06T22:45:56+00:00"
},
{
"name": "guzzlehttp/guzzle",
"version": "7.9.3",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/guzzle/zipball/7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
"reference": "7b2f29fe81dc4da0ca0ea7d42107a0845946ea77",
"shasum": ""
},
"require": {
"ext-json": "*",
"guzzlehttp/promises": "^1.5.3 || ^2.0.3",
"guzzlehttp/psr7": "^2.7.0",
"php": "^7.2.5 || ^8.0",
"psr/http-client": "^1.0",
"symfony/deprecation-contracts": "^2.2 || ^3.0"
},
"provide": {
"psr/http-client-implementation": "1.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
"guzzle/client-integration-tests": "3.0.2",
"php-http/message-factory": "^1.1",
"phpunit/phpunit": "^8.5.39 || ^9.6.20",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
"ext-curl": "Required for CURL handler support",
"ext-intl": "Required for Internationalized Domain Name (IDN) support",
"psr/log": "Required for using the Log middleware"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
"forward-command": false
}
},
"autoload": {
"files": [
"src/functions_include.php"
],
"psr-4": {
"GuzzleHttp\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Jeremy Lindblom",
"email": "jeremeamia@gmail.com",
"homepage": "https://github.com/jeremeamia"
},
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle is a PHP HTTP client library",
"keywords": [
"client",
"curl",
"framework",
"http",
"http client",
"psr-18",
"psr-7",
"rest",
"web service"
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
"source": "https://github.com/guzzle/guzzle/tree/7.9.3"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/guzzle",
"type": "tidelift"
}
],
"time": "2025-03-27T13:37:11+00:00"
},
{
"name": "guzzlehttp/promises",
"version": "2.2.0",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/promises/zipball/7c69f28996b0a6920945dd20b3857e499d9ca96c",
"reference": "7c69f28996b0a6920945dd20b3857e499d9ca96c",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
"forward-command": false
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Promise\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
}
],
"description": "Guzzle promises library",
"keywords": [
"promise"
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
"source": "https://github.com/guzzle/promises/tree/2.2.0"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/promises",
"type": "tidelift"
}
],
"time": "2025-03-27T13:27:01+00:00"
},
{
"name": "guzzlehttp/psr7",
"version": "2.7.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/guzzle/psr7/zipball/c2270caaabe631b3b44c85f99e5a04bbb8060d16",
"reference": "c2270caaabe631b3b44c85f99e5a04bbb8060d16",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0",
"psr/http-factory": "^1.0",
"psr/http-message": "^1.1 || ^2.0",
"ralouphie/getallheaders": "^3.0"
},
"provide": {
"psr/http-factory-implementation": "1.0",
"psr/http-message-implementation": "1.0"
},
"require-dev": {
"bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "0.9.0",
"phpunit/phpunit": "^8.5.39 || ^9.6.20"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
},
"type": "library",
"extra": {
"bamarni-bin": {
"bin-links": true,
"forward-command": false
}
},
"autoload": {
"psr-4": {
"GuzzleHttp\\Psr7\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Graham Campbell",
"email": "hello@gjcampbell.co.uk",
"homepage": "https://github.com/GrahamCampbell"
},
{
"name": "Michael Dowling",
"email": "mtdowling@gmail.com",
"homepage": "https://github.com/mtdowling"
},
{
"name": "George Mponos",
"email": "gmponos@gmail.com",
"homepage": "https://github.com/gmponos"
},
{
"name": "Tobias Nyholm",
"email": "tobias.nyholm@gmail.com",
"homepage": "https://github.com/Nyholm"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://github.com/sagikazarmark"
},
{
"name": "Tobias Schultze",
"email": "webmaster@tubo-world.de",
"homepage": "https://github.com/Tobion"
},
{
"name": "Márk Sági-Kazár",
"email": "mark.sagikazar@gmail.com",
"homepage": "https://sagikazarmark.hu"
}
],
"description": "PSR-7 message implementation that also provides common utility methods",
"keywords": [
"http",
"message",
"psr-7",
"request",
"response",
"stream",
"uri",
"url"
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
"source": "https://github.com/guzzle/psr7/tree/2.7.1"
},
"funding": [
{
"url": "https://github.com/GrahamCampbell",
"type": "github"
},
{
"url": "https://github.com/Nyholm",
"type": "github"
},
{
"url": "https://tidelift.com/funding/github/packagist/guzzlehttp/psr7",
"type": "tidelift"
}
],
"time": "2025-03-27T12:30:47+00:00"
},
{
"name": "maennchen/zipstream-php",
"version": "3.1.2",
@ -2447,6 +2772,73 @@
},
"time": "2024-12-30T11:07:19+00:00"
},
{
"name": "paragonie/constant_time_encoding",
"version": "v3.0.0",
"source": {
"type": "git",
"url": "https://github.com/paragonie/constant_time_encoding.git",
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/paragonie/constant_time_encoding/zipball/df1e7fde177501eee2037dd159cf04f5f301a512",
"reference": "df1e7fde177501eee2037dd159cf04f5f301a512",
"shasum": ""
},
"require": {
"php": "^8"
},
"require-dev": {
"phpunit/phpunit": "^9",
"vimeo/psalm": "^4|^5"
},
"type": "library",
"autoload": {
"psr-4": {
"ParagonIE\\ConstantTime\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Paragon Initiative Enterprises",
"email": "security@paragonie.com",
"homepage": "https://paragonie.com",
"role": "Maintainer"
},
{
"name": "Steve 'Sc00bz' Thomas",
"email": "steve@tobtu.com",
"homepage": "https://www.tobtu.com",
"role": "Original Developer"
}
],
"description": "Constant-time Implementations of RFC 4648 Encoding (Base-64, Base-32, Base-16)",
"keywords": [
"base16",
"base32",
"base32_decode",
"base32_encode",
"base64",
"base64_decode",
"base64_encode",
"bin2hex",
"encoding",
"hex",
"hex2bin",
"rfc4648"
],
"support": {
"email": "info@paragonie.com",
"issues": "https://github.com/paragonie/constant_time_encoding/issues",
"source": "https://github.com/paragonie/constant_time_encoding"
},
"time": "2024-05-08T12:36:18+00:00"
},
{
"name": "paragonie/random_compat",
"version": "v9.99.100",
@ -2777,6 +3169,116 @@
},
"time": "2025-02-08T03:01:45+00:00"
},
{
"name": "phpseclib/phpseclib",
"version": "3.0.46",
"source": {
"type": "git",
"url": "https://github.com/phpseclib/phpseclib.git",
"reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/phpseclib/phpseclib/zipball/56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"reference": "56483a7de62a6c2a6635e42e93b8a9e25d4f0ec6",
"shasum": ""
},
"require": {
"paragonie/constant_time_encoding": "^1|^2|^3",
"paragonie/random_compat": "^1.4|^2.0|^9.99.99",
"php": ">=5.6.1"
},
"require-dev": {
"phpunit/phpunit": "*"
},
"suggest": {
"ext-dom": "Install the DOM extension to load XML formatted public keys.",
"ext-gmp": "Install the GMP (GNU Multiple Precision) extension in order to speed up arbitrary precision integer arithmetic operations.",
"ext-libsodium": "SSH2/SFTP can make use of some algorithms provided by the libsodium-php extension.",
"ext-mcrypt": "Install the Mcrypt extension in order to speed up a few other cryptographic operations.",
"ext-openssl": "Install the OpenSSL extension in order to speed up a wide variety of cryptographic operations."
},
"type": "library",
"autoload": {
"files": [
"phpseclib/bootstrap.php"
],
"psr-4": {
"phpseclib3\\": "phpseclib/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jim Wigginton",
"email": "terrafrost@php.net",
"role": "Lead Developer"
},
{
"name": "Patrick Monnerat",
"email": "pm@datasphere.ch",
"role": "Developer"
},
{
"name": "Andreas Fischer",
"email": "bantu@phpbb.com",
"role": "Developer"
},
{
"name": "Hans-Jürgen Petrich",
"email": "petrich@tronic-media.com",
"role": "Developer"
},
{
"name": "Graham Campbell",
"email": "graham@alt-three.com",
"role": "Developer"
}
],
"description": "PHP Secure Communications Library - Pure-PHP implementations of RSA, AES, SSH2, SFTP, X.509 etc.",
"homepage": "http://phpseclib.sourceforge.net",
"keywords": [
"BigInteger",
"aes",
"asn.1",
"asn1",
"blowfish",
"crypto",
"cryptography",
"encryption",
"rsa",
"security",
"sftp",
"signature",
"signing",
"ssh",
"twofish",
"x.509",
"x509"
],
"support": {
"issues": "https://github.com/phpseclib/phpseclib/issues",
"source": "https://github.com/phpseclib/phpseclib/tree/3.0.46"
},
"funding": [
{
"url": "https://github.com/terrafrost",
"type": "github"
},
{
"url": "https://www.patreon.com/phpseclib",
"type": "patreon"
},
{
"url": "https://tidelift.com/funding/github/packagist/phpseclib/phpseclib",
"type": "tidelift"
}
],
"time": "2025-06-26T16:29:55+00:00"
},
{
"name": "phpstan/phpdoc-parser",
"version": "1.33.0",
@ -3341,6 +3843,50 @@
},
"time": "2021-10-29T13:26:27+00:00"
},
{
"name": "ralouphie/getallheaders",
"version": "3.0.3",
"source": {
"type": "git",
"url": "https://github.com/ralouphie/getallheaders.git",
"reference": "120b605dfeb996808c31b6477290a714d356e822"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/ralouphie/getallheaders/zipball/120b605dfeb996808c31b6477290a714d356e822",
"reference": "120b605dfeb996808c31b6477290a714d356e822",
"shasum": ""
},
"require": {
"php": ">=5.6"
},
"require-dev": {
"php-coveralls/php-coveralls": "^2.1",
"phpunit/phpunit": "^5 || ^6.5"
},
"type": "library",
"autoload": {
"files": [
"src/getallheaders.php"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ralph Khattar",
"email": "ralph.khattar@gmail.com"
}
],
"description": "A polyfill for getallheaders.",
"support": {
"issues": "https://github.com/ralouphie/getallheaders/issues",
"source": "https://github.com/ralouphie/getallheaders/tree/develop"
},
"time": "2019-03-08T08:55:37+00:00"
},
{
"name": "ramsey/collection",
"version": "2.1.1",
@ -3646,6 +4192,65 @@
],
"time": "2025-02-05T13:22:35+00:00"
},
{
"name": "snapp-market-pro/moadian",
"version": "1.1.1",
"source": {
"type": "git",
"url": "https://github.com/Snapp-Market-Pro/moadian.git",
"reference": "cf178ea7a0f6830c25fc636c9d2e8f0d871b6158"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Snapp-Market-Pro/moadian/zipball/cf178ea7a0f6830c25fc636c9d2e8f0d871b6158",
"reference": "cf178ea7a0f6830c25fc636c9d2e8f0d871b6158",
"shasum": ""
},
"require": {
"ext-openssl": "*",
"guzzlehttp/guzzle": "^7.5",
"php": "^8.0",
"phpseclib/phpseclib": "~3.0",
"ramsey/uuid": "^4.7"
},
"require-dev": {
"friendsofphp/php-cs-fixer": "^3.17",
"monolog/monolog": "^3.3",
"phpunit/phpunit": "^10.0",
"symfony/var-dumper": "^6.2"
},
"type": "library",
"autoload": {
"psr-4": {
"SnappMarketPro\\Moadian\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Ali Rahimi",
"email": "arahimihajiabadi@gmail.com"
},
{
"name": "Amir Reza Mehbakhsh",
"email": "theamirrezam75@gmail.com"
},
{
"name": "Soheil Yousefi",
"email": "myparstik@gmail.com"
}
],
"description": "PHP SDK for working with tp.tax.gov.ir (سامانه مودیان مالیاتی)",
"support": {
"issues": "https://github.com/Snapp-Market-Pro/moadian/issues",
"source": "https://github.com/Snapp-Market-Pro/moadian/tree/1.1.1"
},
"abandoned": true,
"time": "2023-11-07T20:19:53+00:00"
},
{
"name": "symfony/apache-pack",
"version": "v1.0.1",
@ -11063,21 +11668,21 @@
},
{
"name": "symfony/maker-bundle",
"version": "v1.62.1",
"version": "v1.64.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/maker-bundle.git",
"reference": "468ff2708200c95ebc0d85d3174b6c6711b8a590"
"reference": "c86da84640b0586e92aee2b276ee3638ef2f425a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/468ff2708200c95ebc0d85d3174b6c6711b8a590",
"reference": "468ff2708200c95ebc0d85d3174b6c6711b8a590",
"url": "https://api.github.com/repos/symfony/maker-bundle/zipball/c86da84640b0586e92aee2b276ee3638ef2f425a",
"reference": "c86da84640b0586e92aee2b276ee3638ef2f425a",
"shasum": ""
},
"require": {
"doctrine/inflector": "^2.0",
"nikic/php-parser": "^4.18|^5.0",
"nikic/php-parser": "^5.0",
"php": ">=8.1",
"symfony/config": "^6.4|^7.0",
"symfony/console": "^6.4|^7.0",
@ -11100,6 +11705,7 @@
"symfony/http-client": "^6.4|^7.0",
"symfony/phpunit-bridge": "^6.4.1|^7.0",
"symfony/security-core": "^6.4|^7.0",
"symfony/security-http": "^6.4|^7.0",
"symfony/yaml": "^6.4|^7.0",
"twig/twig": "^3.0|^4.x-dev"
},
@ -11135,7 +11741,7 @@
],
"support": {
"issues": "https://github.com/symfony/maker-bundle/issues",
"source": "https://github.com/symfony/maker-bundle/tree/v1.62.1"
"source": "https://github.com/symfony/maker-bundle/tree/v1.64.0"
},
"funding": [
{
@ -11151,7 +11757,7 @@
"type": "tidelift"
}
],
"time": "2025-01-15T00:21:40+00:00"
"time": "2025-06-23T16:12:08+00:00"
},
{
"name": "symfony/phpunit-bridge",
@ -11370,7 +11976,7 @@
],
"aliases": [],
"minimum-stability": "stable",
"stability-flags": [],
"stability-flags": {},
"prefer-stable": true,
"prefer-lowest": false,
"platform": {
@ -11380,6 +11986,6 @@
"ext-fileinfo": "*",
"ext-iconv": "*"
},
"platform-dev": [],
"platform-dev": {},
"plugin-api-version": "2.6.0"
}

View file

View file

@ -1,8 +0,0 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

View file

@ -1,4 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="PublishConfigData" serverName="localhost" />
</project>

View file

@ -1,51 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="WEB_MODULE" version="4">
<component name="NewModuleRootManager">
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/spec" isTestSource="true" />
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" packagePrefix="App\" />
<sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="App\Tests\" />
<excludeFolder url="file://$MODULE_DIR$/var" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/maker-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nikic/php-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/property-access" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/property-info" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/password-hasher" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-csrf" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-core" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/security-http" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/event-manager" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/deprecations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/sql-formatter" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/migrations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/persistence" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-migrations-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/doctrine-bridge" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/stopwatch" />
<excludeFolder url="file://$MODULE_DIR$/vendor/laminas/laminas-code" />
<excludeFolder url="file://$MODULE_DIR$/vendor/friendsofphp/proxy-manager-lts" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfonycasts/verify-email-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/nelmio/cors-bundle" />
<excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/serializer" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpstan/phpdoc-parser" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/type-resolver" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-docblock" />
<excludeFolder url="file://$MODULE_DIR$/vendor/phpdocumentor/reflection-common" />
<excludeFolder url="file://$MODULE_DIR$/vendor/webmozart/assert" />
<excludeFolder url="file://$MODULE_DIR$/vendor/symfony/apache-pack" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
</component>
</module>

View file

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ProjectModuleManager">
<modules>
<module fileurl="file://$PROJECT_DIR$/.idea/hesabixCore.iml" filepath="$PROJECT_DIR$/.idea/hesabixCore.iml" />
</modules>
</component>
</project>

View file

@ -1,100 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="MessDetectorOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCSFixerOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PHPCodeSnifferOptionsConfiguration">
<option name="highlightLevel" value="WARNING" />
<option name="transferred" value="true" />
</component>
<component name="PhpIncludePathManager">
<include_path>
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-normalizer" />
<path value="$PROJECT_DIR$/vendor/symfony/filesystem" />
<path value="$PROJECT_DIR$/vendor/symfony/dotenv" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
<path value="$PROJECT_DIR$/vendor/symfony/deprecation-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/dependency-injection" />
<path value="$PROJECT_DIR$/vendor/symfony/http-foundation" />
<path value="$PROJECT_DIR$/vendor/symfony/config" />
<path value="$PROJECT_DIR$/vendor/composer" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-grapheme" />
<path value="$PROJECT_DIR$/vendor/symfony/yaml" />
<path value="$PROJECT_DIR$/vendor/symfony/cache" />
<path value="$PROJECT_DIR$/vendor/symfony/runtime" />
<path value="$PROJECT_DIR$/vendor/symfony/http-kernel" />
<path value="$PROJECT_DIR$/vendor/symfony/finder" />
<path value="$PROJECT_DIR$/vendor/symfony/var-exporter" />
<path value="$PROJECT_DIR$/vendor/psr/container" />
<path value="$PROJECT_DIR$/vendor/symfony/string" />
<path value="$PROJECT_DIR$/vendor/psr/cache" />
<path value="$PROJECT_DIR$/vendor/symfony/service-contracts" />
<path value="$PROJECT_DIR$/vendor/psr/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/psr/log" />
<path value="$PROJECT_DIR$/vendor/symfony/var-dumper" />
<path value="$PROJECT_DIR$/vendor/symfony/routing" />
<path value="$PROJECT_DIR$/vendor/symfony/event-dispatcher" />
<path value="$PROJECT_DIR$/vendor/symfony/error-handler" />
<path value="$PROJECT_DIR$/vendor/symfony/flex" />
<path value="$PROJECT_DIR$/vendor/symfony/cache-contracts" />
<path value="$PROJECT_DIR$/vendor/symfony/console" />
<path value="$PROJECT_DIR$/vendor/symfony/framework-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/maker-bundle" />
<path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
<path value="$PROJECT_DIR$/vendor/nikic/php-parser" />
<path value="$PROJECT_DIR$/vendor/symfony/security-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/property-access" />
<path value="$PROJECT_DIR$/vendor/symfony/property-info" />
<path value="$PROJECT_DIR$/vendor/symfony/password-hasher" />
<path value="$PROJECT_DIR$/vendor/symfony/security-csrf" />
<path value="$PROJECT_DIR$/vendor/symfony/security-core" />
<path value="$PROJECT_DIR$/vendor/symfony/security-http" />
<path value="$PROJECT_DIR$/vendor/doctrine/cache" />
<path value="$PROJECT_DIR$/vendor/doctrine/event-manager" />
<path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
<path value="$PROJECT_DIR$/vendor/doctrine/orm" />
<path value="$PROJECT_DIR$/vendor/doctrine/deprecations" />
<path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
<path value="$PROJECT_DIR$/vendor/doctrine/sql-formatter" />
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" />
<path value="$PROJECT_DIR$/vendor/doctrine/common" />
<path value="$PROJECT_DIR$/vendor/doctrine/collections" />
<path value="$PROJECT_DIR$/vendor/doctrine/migrations" />
<path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
<path value="$PROJECT_DIR$/vendor/doctrine/persistence" />
<path value="$PROJECT_DIR$/vendor/doctrine/doctrine-migrations-bundle" />
<path value="$PROJECT_DIR$/vendor/symfony/doctrine-bridge" />
<path value="$PROJECT_DIR$/vendor/symfony/stopwatch" />
<path value="$PROJECT_DIR$/vendor/laminas/laminas-code" />
<path value="$PROJECT_DIR$/vendor/friendsofphp/proxy-manager-lts" />
<path value="$PROJECT_DIR$/vendor/symfonycasts/verify-email-bundle" />
<path value="$PROJECT_DIR$/vendor/nelmio/cors-bundle" />
<path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
<path value="$PROJECT_DIR$/vendor/symfony/serializer" />
<path value="$PROJECT_DIR$/vendor/phpstan/phpdoc-parser" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/type-resolver" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-docblock" />
<path value="$PROJECT_DIR$/vendor/phpdocumentor/reflection-common" />
<path value="$PROJECT_DIR$/vendor/webmozart/assert" />
<path value="$PROJECT_DIR$/vendor/symfony/apache-pack" />
</include_path>
</component>
<component name="PhpProjectSharedConfiguration" php_language_level="8.1">
<option name="suggestChangeDefaultLanguageLevel" value="false" />
</component>
<component name="PhpStanOptionsConfiguration">
<option name="transferred" value="true" />
</component>
<component name="PhpUnit">
<phpunit_settings>
<PhpUnitSettings custom_loader_path="$PROJECT_DIR$/vendor/autoload.php" />
</phpunit_settings>
</component>
<component name="PsalmOptionsConfiguration">
<option name="transferred" value="true" />
</component>
</project>

View file

@ -1,7 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Symfony2PluginSettings">
<option name="pluginEnabled" value="true" />
<option name="lastServiceGeneratorLanguage" value="yaml" />
</component>
</project>

View file

@ -1,6 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View file

@ -264,6 +264,9 @@ class CommodityController extends AbstractController
'floatNumber' => $item->getUnit()->getFloatNumber(),
];
$temp['barcodes'] = $item->getBarcodes();
$temp['taxCode'] = $item->getTaxCode();
$temp['taxType'] = $item->getTaxType();
$temp['taxUnit'] = $item->getTaxUnit();
//calculate count
if ($item->isKhadamat()) {
$temp['count'] = 0;
@ -328,6 +331,9 @@ class CommodityController extends AbstractController
$temp['minOrderCount'] = $item->getMinOrderCount();
$temp['dayLoading'] = $item->getDayLoading();
$temp['orderPoint'] = $item->getOrderPoint();
$temp['taxCode'] = $item->getTaxCode();
$temp['taxType'] = $item->getTaxType();
$temp['taxUnit'] = $item->getTaxUnit();
//calculate count
if ($item->isKhadamat()) {
$temp['count'] = 0;
@ -419,8 +425,11 @@ class CommodityController extends AbstractController
$temp['commodityCountCheck'] = $item->isCommodityCountCheck();
$temp['minOrderCount'] = $item->getMinOrderCount();
$temp['dayLoading'] = $item->getDayLoading();
$temp['orderPoint'] = $item->getOrderPoint();
//calculate count
$temp['orderPoint'] = $item->getOrderPoint();
$temp['taxCode'] = $item->getTaxCode();
$temp['taxType'] = $item->getTaxType();
$temp['taxUnit'] = $item->getTaxUnit();
//calculate count
if ($item->isKhadamat()) {
$temp['count'] = 0;
} else {
@ -732,6 +741,18 @@ class CommodityController extends AbstractController
$data->setBarcodes($params['barcodes']);
}
if (array_key_exists('taxCode', $params)) {
$data->setTaxCode($params['taxCode']);
}
if (array_key_exists('taxType', $params)) {
$data->setTaxType($params['taxType']);
}
if (array_key_exists('taxUnit', $params)) {
$data->setTaxUnit($params['taxUnit']);
}
if (array_key_exists('minOrderCount', $params)) {
$data->setMinOrderCount($params['minOrderCount']);
}
@ -863,6 +884,18 @@ class CommodityController extends AbstractController
$data->setBarcodes($params['barcodes']);
}
if (array_key_exists('taxCode', $params)) {
$data->setTaxCode($params['taxCode']);
}
if (array_key_exists('taxType', $params)) {
$data->setTaxType($params['taxType']);
}
if (array_key_exists('taxUnit', $params)) {
$data->setTaxUnit($params['taxUnit']);
}
if (array_key_exists('minOrderCount', $params)) {
$data->setMinOrderCount($params['minOrderCount']);
}
@ -1304,6 +1337,12 @@ class CommodityController extends AbstractController
$commodity->setMinOrderCount($item[5]);
if (array_key_exists(6, $item))
$commodity->setDes($item[6]);
if (array_key_exists(9, $item))
$commodity->setTaxCode($item[9]);
if (array_key_exists(10, $item))
$commodity->setTaxType($item[10]);
if (array_key_exists(11, $item))
$commodity->setTaxUnit($item[11]);
if (array_key_exists(0, $item)) {
$commodity->setKhadamat(true);
if ($item[0] == '1') {

File diff suppressed because it is too large Load diff

View file

@ -57,6 +57,7 @@ final class RegistrySettingsController extends AbstractController
'appUrl' => $registryMGR->get('system', 'appUrl'),
'appSlogan' => $registryMGR->get('system', 'appSlogan'),
'verifyMobileViaSms' => filter_var($registryMGR->get('system', 'verifyMobileViaSms'), FILTER_VALIDATE_BOOLEAN),
'taxSystemSandboxMode' => filter_var($registryMGR->get($rootSystem, 'tax_system_sandbox_mode'), FILTER_VALIDATE_BOOLEAN),
// تنظیمات FTP
'ftpEnabled' => filter_var($registryMGR->get($rootSystem, 'ftp_enabled'), FILTER_VALIDATE_BOOLEAN),
'ftpHost' => $registryMGR->get($rootSystem, 'ftp_host') ?: '',
@ -96,6 +97,7 @@ final class RegistrySettingsController extends AbstractController
$registryMGR->update('system', 'appUrl', $data['appUrl'] ?? '');
$registryMGR->update('system', 'appSlogan', $data['appSlogan'] ?? '');
$registryMGR->update('system', 'verifyMobileViaSms', $data['verifyMobileViaSms'] ? '1' : '0');
$registryMGR->update($rootSystem, 'tax_system_sandbox_mode', $data['taxSystemSandboxMode'] ? '1' : '0');
// ذخیره تنظیمات FTP
$registryMGR->update($rootSystem, 'ftp_enabled', $data['ftpEnabled'] ? '1' : '0');
$registryMGR->update($rootSystem, 'ftp_host', $data['ftpHost'] ?? '');

View file

@ -83,6 +83,15 @@ class Commodity
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $barcodes = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $taxCode = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $taxType = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $taxUnit = null;
#[ORM\OneToMany(mappedBy: 'commodity', targetEntity: PriceListDetail::class, orphanRemoval: true)]
private Collection $priceListDetails;
@ -421,6 +430,42 @@ class Commodity
return $this;
}
public function getTaxCode(): ?string
{
return $this->taxCode;
}
public function setTaxCode(?string $taxCode): static
{
$this->taxCode = $taxCode;
return $this;
}
public function getTaxType(): ?string
{
return $this->taxType;
}
public function setTaxType(?string $taxType): static
{
$this->taxType = $taxType;
return $this;
}
public function getTaxUnit(): ?string
{
return $this->taxUnit;
}
public function setTaxUnit(?string $taxUnit): static
{
$this->taxUnit = $taxUnit;
return $this;
}
/**
* @return Collection<int, PriceListDetail>
*/

View file

@ -0,0 +1,253 @@
<?php
namespace App\Entity;
use App\Repository\PluginTaxInvoiceRepository;
use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity(repositoryClass: PluginTaxInvoiceRepository::class)]
class PluginTaxInvoice
{
#[ORM\Id]
#[ORM\GeneratedValue]
#[ORM\Column]
private ?int $id = null;
#[ORM\ManyToOne]
#[ORM\JoinColumn(nullable: false)]
private ?Business $business = null;
#[ORM\ManyToOne]
#[ORM\JoinColumn(nullable: false)]
private ?User $user = null;
#[ORM\ManyToOne]
#[ORM\JoinColumn(nullable: false)]
private ?HesabdariDoc $invoice = null;
#[ORM\Column(length:255)]
private ?string $invoiceCode = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $taxSystemInvoiceNumber = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $taxSystemReferenceNumber = null;
#[ORM\Column(length:255)]
private ?string $status = 'pending'; // pending, sent, failed, confirmed
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $responseData = null;
#[ORM\Column(type: Types::TEXT, nullable: true)]
private ?string $errorMessage = null;
#[ORM\Column]
private ?\DateTimeImmutable $createdAt = null;
#[ORM\Column(nullable: true)]
private ?\DateTimeImmutable $sentAt = null;
#[ORM\Column(nullable: true)]
private ?\DateTimeImmutable $confirmedAt = null;
#[ORM\Column(type: Types::DECIMAL, precision: 30, scale: 0)]
private ?string $amount = '0';
#[ORM\Column(length: 255, nullable: true)]
private ?string $customerName = null;
#[ORM\Column(length: 255, nullable: true)]
private ?string $customerId = null;
#[ORM\Column(length: 50, nullable: true)]
private ?string $invoiceType = 'اصلی';
public function __construct()
{
$this->createdAt = new \DateTimeImmutable();
}
public function getId(): ?int
{
return $this->id;
}
public function getBusiness(): ?Business
{
return $this->business;
}
public function setBusiness(?Business $business): static
{
$this->business = $business;
return $this;
}
public function getUser(): ?User
{
return $this->user;
}
public function setUser(?User $user): static
{
$this->user = $user;
return $this;
}
public function getInvoice(): ?HesabdariDoc
{
return $this->invoice;
}
public function setInvoice(?HesabdariDoc $invoice): static
{
$this->invoice = $invoice;
return $this;
}
public function getInvoiceCode(): ?string
{
return $this->invoiceCode;
}
public function setInvoiceCode(string $invoiceCode): static
{
$this->invoiceCode = $invoiceCode;
return $this;
}
public function getTaxSystemInvoiceNumber(): ?string
{
return $this->taxSystemInvoiceNumber;
}
public function setTaxSystemInvoiceNumber(?string $taxSystemInvoiceNumber): static
{
$this->taxSystemInvoiceNumber = $taxSystemInvoiceNumber;
return $this;
}
public function getTaxSystemReferenceNumber(): ?string
{
return $this->taxSystemReferenceNumber;
}
public function setTaxSystemReferenceNumber(?string $taxSystemReferenceNumber): static
{
$this->taxSystemReferenceNumber = $taxSystemReferenceNumber;
return $this;
}
public function getStatus(): ?string
{
return $this->status;
}
public function setStatus(string $status): static
{
$this->status = $status;
return $this;
}
public function getResponseData(): ?string
{
return $this->responseData;
}
public function setResponseData(?string $responseData): static
{
$this->responseData = $responseData;
return $this;
}
public function getErrorMessage(): ?string
{
return $this->errorMessage;
}
public function setErrorMessage(?string $errorMessage): static
{
$this->errorMessage = $errorMessage;
return $this;
}
public function getCreatedAt(): ?\DateTimeImmutable
{
return $this->createdAt;
}
public function setCreatedAt(\DateTimeImmutable $createdAt): static
{
$this->createdAt = $createdAt;
return $this;
}
public function getSentAt(): ?\DateTimeImmutable
{
return $this->sentAt;
}
public function setSentAt(?\DateTimeImmutable $sentAt): static
{
$this->sentAt = $sentAt;
return $this;
}
public function getConfirmedAt(): ?\DateTimeImmutable
{
return $this->confirmedAt;
}
public function setConfirmedAt(?\DateTimeImmutable $confirmedAt): static
{
$this->confirmedAt = $confirmedAt;
return $this;
}
public function getAmount(): ?string
{
return $this->amount;
}
public function setAmount(string $amount): static
{
$this->amount = $amount;
return $this;
}
public function getCustomerName(): ?string
{
return $this->customerName;
}
public function setCustomerName(?string $customerName): static
{
$this->customerName = $customerName;
return $this;
}
public function getCustomerId(): ?string
{
return $this->customerId;
}
public function setCustomerId(?string $customerId): static
{
$this->customerId = $customerId;
return $this;
}
public function getInvoiceType(): ?string
{
return $this->invoiceType;
}
public function setInvoiceType(?string $invoiceType): static
{
$this->invoiceType = $invoiceType;
return $this;
}
}

View file

@ -5,7 +5,7 @@ namespace App\Entity;
use Doctrine\ORM\Mapping as ORM;
#[ORM\Entity]
#[ORM\Table(name: "plugin_taxsettings_keys")]
#[ORM\Table(name: "plugin_tax_settings")]
class PluginTaxsettingsKey
{
#[ORM\Id]
@ -22,6 +22,9 @@ class PluginTaxsettingsKey
#[ORM\Column(type: "text", nullable: true)]
private $private_key;
#[ORM\Column(type: "text", nullable: true)]
private $certificate;
#[ORM\Column(type: "string", length: 64, nullable: true)]
private $tax_memory_id;
@ -42,6 +45,8 @@ class PluginTaxsettingsKey
public function setUserId($val) { $this->user_id = $val; }
public function getPrivateKey() { return $this->private_key; }
public function setPrivateKey($val) { $this->private_key = $val; }
public function getCertificate() { return $this->certificate; }
public function setCertificate($val) { $this->certificate = $val; }
public function getTaxMemoryId() { return $this->tax_memory_id; }
public function setTaxMemoryId($val) { $this->tax_memory_id = $val; }
public function getEconomicCode() { return $this->economic_code; }

View file

@ -0,0 +1,106 @@
<?php
namespace App\Repository;
use App\Entity\PluginTaxInvoice;
use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
use Doctrine\Persistence\ManagerRegistry;
/**
* @extends ServiceEntityRepository<PluginTaxInvoice>
*
* @method PluginTaxInvoice|null find($id, $lockMode = null, $lockVersion = null)
* @method PluginTaxInvoice|null findOneBy(array $criteria, array $orderBy = null)
* @method PluginTaxInvoice findAll()
* @method PluginTaxInvoice findBy(array $criteria, array $orderBy = null, $limit = null, $offset = null)
*/
class PluginTaxInvoiceRepository extends ServiceEntityRepository
{
public function __construct(ManagerRegistry $registry)
{
parent::__construct($registry, PluginTaxInvoice::class);
}
public function save(PluginTaxInvoice $entity, bool $flush = false): void
{
$this->getEntityManager()->persist($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
public function remove(PluginTaxInvoice $entity, bool $flush = false): void
{
$this->getEntityManager()->remove($entity);
if ($flush) {
$this->getEntityManager()->flush();
}
}
/**
* پیدا کردن فاکتورهای ارسال شده برای یک کسب‌و‌کار
*/
public function findByBusiness($businessId, $limit = null, $offset = null)
{
$qb = $this->createQueryBuilder('pti')
->leftJoin('pti.invoice', 'invoice')
->leftJoin('pti.user', 'user')
->where('pti.business = :businessId')
->setParameter('businessId', $businessId)
->orderBy('pti.createdAt', 'DESC');
if ($limit) {
$qb->setMaxResults($limit);
}
if ($offset) {
$qb->setFirstResult($offset);
}
return $qb->getQuery()->getResult();
}
/**
* پیدا کردن فاکتور بر اساس کد فاکتور و کسب‌و‌کار
*/
public function findByInvoiceCodeAndBusiness($invoiceCode, $businessId)
{
return $this->createQueryBuilder('pti')
->where('pti.invoiceCode = :invoiceCode')
->andWhere('pti.business = :businessId')
->setParameter('invoiceCode', $invoiceCode)
->setParameter('businessId', $businessId)
->getQuery()
->getOneOrNullResult();
}
/**
* آمار فاکتورهای ارسال شده بر اساس وضعیت
*/
public function getStatusStats($businessId)
{
$qb = $this->createQueryBuilder('pti')
->select('pti.status, COUNT(pti.id) as count')
->where('pti.business = :businessId')
->setParameter('businessId', $businessId)
->groupBy('pti.status');
return $qb->getQuery()->getResult();
}
/**
* فاکتورهای با وضعیت مشخص
*/
public function findByStatus($businessId, $status)
{
return $this->createQueryBuilder('pti')
->leftJoin('pti.invoice', 'invoice')
->where('pti.business = :businessId')
->andWhere('pti.status = :status')
->setParameter('businessId', $businessId)
->setParameter('status', $status)
->orderBy('pti.createdAt', 'DESC')
->getQuery()
->getResult();
}
}

View file

@ -233,6 +233,9 @@ class Explore
'orderPoint' => $item->getOrderPoint(),
'dayLoading' => $item->getDayLoading(),
'minOrderCount' => $item->getMinOrderCount(),
'taxCode' => $item->getTaxCode(),
'taxType' => $item->getTaxType(),
'taxUnit' => $item->getTaxUnit(),
'unitData' => [
'name' => $item->getUnit()->getName(),
'floatNumber' => $item->getUnit()->getFloatNumber(),

View file

@ -8,6 +8,15 @@
"ref": "64d8583af5ea57b7afa4aba4b159907f3a148b05"
}
},
"doctrine/deprecations": {
"version": "1.1",
"recipe": {
"repo": "github.com/symfony/recipes",
"branch": "main",
"version": "1.0",
"ref": "87424683adc81d7dc305eefec1fced883084aab9"
}
},
"doctrine/doctrine-bundle": {
"version": "2.10",
"recipe": {

0
webUI/.github/workflows/release.yml vendored Normal file → Executable file
View file

0
webUI/.gitignore vendored Normal file → Executable file
View file

0
webUI/LICENSE Normal file → Executable file
View file

0
webUI/env.d.ts vendored Normal file → Executable file
View file

0
webUI/index.html Normal file → Executable file
View file

0
webUI/package.json Normal file → Executable file
View file

0
webUI/public/.htaccess Normal file → Executable file
View file

0
webUI/public/dashmix/dashmix.app.min.js vendored Normal file → Executable file
View file

0
webUI/public/dashmix/dashmix.min.css vendored Normal file → Executable file
View file

0
webUI/public/favicon.ico Normal file → Executable file
View file

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 15 KiB

0
webUI/public/fonts/fontawesome/fa-brands-400.ttf Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-brands-400.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-regular-400.ttf Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-regular-400.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-solid-900.ttf Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-solid-900.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/fontawesome/fa-v4compatibility.ttf Normal file → Executable file
View file

View file

0
webUI/public/fonts/inter/inter-v11-latin-300.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-500.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-600.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-700.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-800.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-900.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/inter/inter-v11-latin-regular.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Black-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Black-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Black-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Black-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Bold-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Bold-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Bold-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Bold-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Light-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Light-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Light-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-Light-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-SemiBold-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-SemiBold-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-SemiBold-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/sahel/Sahel-SemiBold-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/sahel/sahel.css Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Bold-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Bold-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Bold-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Bold-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Light-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Light-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Light-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Light-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Medium-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Medium-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Medium-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Medium-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Thin-FD.eot Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Thin-FD.ttf Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Thin-FD.woff Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/Shabnam-Thin-FD.woff2 Normal file → Executable file
View file

0
webUI/public/fonts/shabnam/shabnam.css Normal file → Executable file
View file

View file

View file

Before

Width:  |  Height:  |  Size: 235 KiB

After

Width:  |  Height:  |  Size: 235 KiB

View file

View file

View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-Black.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-Bold.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-ExtraBold.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-ExtraLight.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-Light.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-Medium.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-Regular.ttf Normal file → Executable file
View file

0
webUI/public/fonts/vazir/ttf/Vazirmatn-SemiBold.ttf Normal file → Executable file
View file

Some files were not shown because too many files have changed in this diff Show more