Merged in feature/PMCORE-3834 (pull request #8566)

Merging feature/PMCORE-3834 to develop
This commit is contained in:
Julio Cesar Laura Avendaño
2022-09-13 15:13:25 +00:00
1231 changed files with 6402 additions and 200710 deletions

View File

@@ -3,10 +3,10 @@ jobs:
build:
working_directory: ~/processmaker
docker:
- image: devopsstacks/pm:n275-phpunit
- image: devopsstacks/pm:n285-phpunit
- image: circleci/mysql:8.0.13-ram
command: |
mysqld --default-authentication-plugin='mysql_native_password' --optimizer-switch='derived_merge=off' --sql-mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
mysqld --default-authentication-plugin='mysql_native_password' --optimizer-switch='derived_merge=off' --sql-mode='NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION' --collation-server='utf8mb4_unicode_ci' --character-set-server='utf8mb4'
environment:
MYSQL_HOST: 127.0.0.1
MYSQL_ROOT_PASSWORD: 'password'
@@ -27,7 +27,7 @@ jobs:
- run:
name: Run Test Units
command: |
mkdir coverage
mkdir -p coverage
vendor/phpunit/phpunit/phpunit --stop-on-error --testdox-html coverage/result.html --coverage-html coverage --verbose tests/unit/
- store_artifacts:
path: coverage

1
.gitignore vendored
View File

@@ -1,6 +1,5 @@
nbproject/*
workflow/engine/config/paths_installed.php
gulliver/thirdparty/html2ps_pdf/cache
workflow/engine/content/languages/translations.environments
*~
workflow/engine/js/labels/

View File

@@ -2,6 +2,7 @@
namespace App\Console\Commands;
use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Queue\Console\RestartCommand as BaseRestartCommand;
class RestartCommand extends BaseRestartCommand
@@ -17,4 +18,15 @@ class RestartCommand extends BaseRestartCommand
* This contains the necessary code to add parameters.
*/
use AddParametersTrait;
/**
* Create a new queue restart command.
*
* @param Cache $cache
* @return void
*/
public function __construct(Cache $cache)
{
parent::__construct($cache);
}
}

View File

@@ -4,20 +4,23 @@ namespace App\Console\Commands;
use Bootstrap;
use Illuminate\Support\Carbon;
use Illuminate\Console\Scheduling\Schedule;
use Illuminate\Console\Scheduling\ScheduleRunCommand as BaseCommand;
use Illuminate\Contracts\Events\Dispatcher;
use Illuminate\Contracts\Debug\ExceptionHandler;
use Maveriks\WebApplication;
use ProcessMaker\Model\TaskScheduler;
class ScheduleRunCommand extends BaseCommand
{
use AddParametersTrait;
/**
* Create a new command instance.
*
* @param \Illuminate\Console\Scheduling\Schedule $schedule
*
* @return void
*/
public function __construct(\Illuminate\Console\Scheduling\Schedule $schedule)
public function __construct()
{
$this->startedAt = Carbon::now();
$this->signature = "schedule:run";
@@ -27,24 +30,27 @@ class ScheduleRunCommand extends BaseCommand
{--processmakerPath=./ : ProcessMaker path.}
";
$this->description .= ' (ProcessMaker has extended this command)';
parent::__construct($schedule);
parent::__construct();
}
/**
* Execute the console command.
*
*
* @param Schedule $schedule
* @param Dispatcher $dispatcher
* @param ExceptionHandler $handler
* @return void
*/
public function handle()
public function handle(Schedule $schedule, Dispatcher $dispatcher, ExceptionHandler $handler)
{
$that = $this;
$workspace = $this->option('workspace');
$user = $this->option('user');
$user = $this->option('user');
if (!empty($workspace)) {
$webApplication = new WebApplication();
$webApplication->setRootDir($this->option('processmakerPath'));
$webApplication->loadEnvironment($workspace, false);
}
TaskScheduler::all()->each(function ($p) use ($that, $user) {
TaskScheduler::all()->each(function ($p) use ($schedule, $user) {
$win = strtoupper(substr(PHP_OS, 0, 3)) === 'WIN';
if ($p->enable == 1) {
$starting = isset($p->startingTime) ? $p->startingTime : "0:00";
@@ -52,7 +58,7 @@ class ScheduleRunCommand extends BaseCommand
$timezone = isset($p->timezone) && $p->timezone != "" ? $p->timezone : date_default_timezone_get();
$body = $p->body;
if (!$win) {
$body = str_replace(" -c"," " . $user . " -c", $p->body);
$body = str_replace(" -c", " " . $user . " -c", $p->body);
}
//for init date and finish date parameters
@@ -71,7 +77,7 @@ class ScheduleRunCommand extends BaseCommand
$body = str_replace("report_by_process", "report_by_process +init-date'{$oneMonthAgo}' +finish-date'{$currentDate}'", $body);
}
$schedule = $that->schedule->exec($body)->cron($p->expression)->between($starting, $ending)->timezone($timezone)->when(function () use ($p) {
$schedule->exec($body)->cron($p->expression)->between($starting, $ending)->timezone($timezone)->when(function () use ($p) {
$now = Carbon::now();
$result = false;
$datework = Carbon::createFromFormat('Y-m-d H:i:s', $p->last_update);
@@ -116,6 +122,6 @@ class ScheduleRunCommand extends BaseCommand
}
}
});
parent::handle();
parent::handle($schedule, $dispatcher, $handler);
}
}
}

View File

@@ -2,6 +2,7 @@
namespace App\Console\Commands;
use Illuminate\Contracts\Cache\Repository as Cache;
use Illuminate\Support\Facades\File;
use Illuminate\Queue\Console\WorkCommand as BaseWorkCommand;
use Illuminate\Queue\Events\JobProcessing;
@@ -9,7 +10,6 @@ use Illuminate\Queue\Worker;
class WorkCommand extends BaseWorkCommand
{
use AddParametersTrait;
/**
@@ -19,7 +19,7 @@ class WorkCommand extends BaseWorkCommand
*
* @return void
*/
public function __construct(Worker $worker)
public function __construct(Worker $worker, Cache $cache)
{
$this->signature .= '
{--workspace=workflow : ProcessMaker Indicates the workspace to be processed.}
@@ -28,7 +28,7 @@ class WorkCommand extends BaseWorkCommand
$this->description .= ' (ProcessMaker has extended this command)';
parent::__construct($worker);
parent::__construct($worker, $cache);
}
/**
@@ -62,14 +62,14 @@ class WorkCommand extends BaseWorkCommand
require_once $file;
}
//load the classes of the plugins when is required dynamically.
$closure = function($className) {
$closure = function ($className) {
if (class_exists($className)) {
return;
}
if (!defined('PATH_PLUGINS')) {
return;
}
$searchFiles = function($path) use(&$searchFiles, $className) {
$searchFiles = function ($path) use (&$searchFiles, $className) {
$directories = File::directories($path);
foreach ($directories as $directory) {
$omittedDirectories = [

70
app/Factories/Factory.php Normal file
View File

@@ -0,0 +1,70 @@
<?php
namespace App\Factories;
use Illuminate\Database\Eloquent\Factories\Factory as ParentFactory;
use Illuminate\Support\Str;
abstract class Factory extends ParentFactory
{
/**
* Custom namespace for models.
* @var string
*/
public static $customNameSpaceForModels = 'ProcessMaker\\Model\\';
/**
* Custom directory for models.
* @var string
*/
public static $customDirectoryForModels = 'workflow/engine/src/ProcessMaker/Model/';
/**
* Get the factory name for the given model name.
*
* @param string $modelName
* @return string
*/
public static function resolveFactoryName(string $modelName)
{
$resolver = static::$factoryNameResolver ?: function (string $modelName) {
$appNamespace = static::appNamespace();
$modelName = Str::startsWith($modelName, $appNamespace.'Models\\')
? Str::after($modelName, $appNamespace.'Models\\')
: (Str::startsWith($modelName, static::$customNameSpaceForModels)
? Str::after($modelName, static::$customNameSpaceForModels)
: Str::after($modelName, $appNamespace));
return static::$namespace.$modelName.'Factory';
};
return $resolver($modelName);
}
/**
* Get the name of the model that is generated by the factory.
*
* @return string
*/
public function modelName()
{
$resolver = static::$modelNameResolver ?: function (self $factory) {
$namespacedFactoryBasename = Str::replaceLast(
'Factory', '', Str::replaceFirst(static::$namespace, '', get_class($factory))
);
$factoryBasename = Str::replaceLast('Factory', '', class_basename($factory));
$appNamespace = static::appNamespace();
return class_exists($appNamespace.'Models\\'.$namespacedFactoryBasename)
? $appNamespace.'Models\\'.$namespacedFactoryBasename
: (class_exists(static::$customNameSpaceForModels.$namespacedFactoryBasename)
? static::$customNameSpaceForModels.$namespacedFactoryBasename
: $appNamespace.$factoryBasename);
};
return $this->model ?: $resolver($this);
}
}

View File

@@ -0,0 +1,28 @@
<?php
namespace App\Factories;
use Illuminate\Database\Eloquent\Factories\HasFactory as ParentHasFactory;
trait HasFactory
{
use ParentHasFactory
{
ParentHasFactory::factory as private parentFactory;
}
/**
* Get a new factory instance for the model.
*
* @param mixed $parameters
* @return \App\Factories\Factory
*/
public static function factory(...$parameters)
{
$factory = static::newFactory() ?: Factory::factoryForModel(get_called_class());
return $factory
->count(is_numeric($parameters[0] ?? null) ? $parameters[0] : null)
->state(is_array($parameters[0] ?? null) ? $parameters[0] : ($parameters[1] ?? []));
}
}

View File

@@ -2,8 +2,9 @@
namespace App\Providers;
use App\Helpers\Workspace;
use App\Console\Commands\WorkCommand;
use App\Log\LogManager;
use Illuminate\Queue\Worker;
use Illuminate\Support\Facades\App;
use Illuminate\Support\ServiceProvider;
@@ -17,8 +18,11 @@ class AppServiceProvider extends ServiceProvider
*/
public function register()
{
App::bind('workspace', function() {
return new Workspace();
$this->app->bind(WorkCommand::class, function ($app) {
$isDownForMaintenance = function () {
return $this->app->isDownForMaintenance();
};
return new WorkCommand(App::make(Worker::class, ['isDownForMaintenance' => $isDownForMaintenance]), $app['cache.store']);
});
$this->app->singleton('log', function ($app) {

View File

@@ -31,8 +31,8 @@
"minimum-stability": "dev",
"prefer-stable": true,
"require": {
"php": ">=7.1",
"laravel/framework": "5.7.*",
"php": ">=7.4",
"laravel/framework": "8.83.*",
"luracast/restler": "3.0",
"bshaffer/oauth2-server-php": "v1.0",
"colosa/pmui": "release/3.7.5-dev",
@@ -41,8 +41,8 @@
"colosa/taskscheduler": "release/1.0.3-dev",
"google/apiclient": "1.1.6",
"dapphp/securimage": "^3.6",
"psr/log": "1.0.0",
"monolog/monolog": "1.19.0",
"psr/log": "1.0.1",
"monolog/monolog": "^2.1",
"geshi/geshi": "dev-master",
"libchart/libchart": "1.4.0",
"phpmailer/phpmailer": "^6.4",
@@ -52,25 +52,23 @@
"ralouphie/getallheaders": "^2.0",
"smarty/smarty": "2.6.31",
"pdepend/pdepend": "@stable",
"chumper/zipper": "^1.0",
"php-imap/php-imap": "^3.0",
"nikic/php-parser": "3.1.5",
"laravel/tinker": "^1.0",
"nikic/php-parser": "4.14",
"laravel/tinker": "^2.0",
"league/oauth2-client": "^2.4",
"league/oauth2-google": "^3.0",
"tecnickcom/tcpdf": "6.3.*",
"fzaninotto/faker": "^1.7",
"tecnickcom/tcpdf": "6.4.*",
"fzaninotto/faker": "dev-master",
"predis/predis": "1.1.1",
"phpmyadmin/sql-parser": "^5.3",
"aws/aws-sdk-php": "~3.0",
"cretueusebiu/laravel-javascript": "^0.2.1",
"stevenmaguire/oauth2-microsoft": "^2.2",
"phpseclib/mcrypt_compat": "^2.0",
"microsoft/microsoft-graph": "^1.7"
},
"require-dev": {
"guzzlehttp/guzzle": "^6.3",
"phpunit/phpunit": "~5.7",
"phpunit/phpunit": "9.5",
"filp/whoops": "~2.0",
"behat/behat": "^3.3",
"behat/mink-selenium2-driver": "^1.3",
@@ -83,6 +81,7 @@
},
"psr-4": {
"App\\": "app/",
"Database\\Factories\\": "database/factories/",
"Maveriks\\": "framework/src/Maveriks/",
"Tests\\": "tests/"
},
@@ -95,7 +94,6 @@
"workflow/engine/includes/",
"thirdparty/jsmin/jsmin.php",
"thirdparty/pear",
"thirdparty/html2ps_pdf",
"thirdparty/phing",
"thirdparty/pake",
"rbac/engine/classes/"

View File

@@ -27,12 +27,10 @@ return [
Illuminate\Bus\BusServiceProvider::class,
Illuminate\Redis\RedisServiceProvider::class,
App\Providers\AppServiceProvider::class,
App\Providers\ViewServiceProvider::class,
Eusebiu\JavaScript\JavaScriptServiceProvider::class
App\Providers\ViewServiceProvider::class
],
'aliases' => [
'Crypt' => Illuminate\Support\Facades\Crypt::class,
'ScriptVariables' => Eusebiu\JavaScript\Facades\ScriptVariables::class,
'View' => Illuminate\Support\Facades\View::class
],
];

View File

@@ -1,6 +1,7 @@
checksum.txt
features/backend/projects/database_connections/main_tests_database_connections_sqlserver.feature
features/backend/projects/project_export_import/main_tests_project_export_import.feature
gulliver/bin/tasks/pakeTest.php
gulliver/core/Session/PmSessionHandler.php
gulliver/js/codemirror/addon/hint/pig-hint.js
gulliver/js/codemirror/addon/hint/python-hint.js
@@ -37,6 +38,7 @@ rbac/engine/xmlform
rbac/public_html/skins/JSForms.js
virtualhost.conf.example
workflow/engine/classes/class.jrml.php
workflow/engine/classes/class.webdav.php
workflow/engine/classes/entities/AppSolrQueue.php
workflow/engine/classes/entities/Base.php
workflow/engine/classes/entities/FacetGroup.php
@@ -130,4 +132,53 @@ workflow/engine/xmlform/users/users_List.xml
workflow/engine/xmlform/users/users_Options.xml
workflow/public_html/skins/JSForms.js
workflow/public_html/skins/ajax.js
thirdparty/geshi
thirdparty/html2ps_pdf
thirdparty/libchart
thirdparty/lime
thirdparty/pear/Benchmark
thirdparty/pear/Console
thirdparty/pear/HTTP
thirdparty/pear/Net
thirdparty/pear/Numbers
thirdparty/pear/OLE
thirdparty/pear/SOAP
thirdparty/pear/Spreadsheet
thirdparty/pear/XML
thirdparty/pear/DB/dbase.php
thirdparty/pear/DB/fbsql.php
thirdparty/pear/DB/ibase.php
thirdparty/pear/DB/ifx.php
thirdparty/pear/DB/msql.php
thirdparty/pear/DB/mssql.php
thirdparty/pear/DB/mysql.php
thirdparty/pear/DB/sqlite.php
thirdparty/pear/DB/storage.php
thirdparty/pear/DB/sybase.php
thirdparty/pear/Log/sqlite.php
thirdparty/pear/catalog
thirdparty/pear/CODING_STANDARDS
thirdparty/pear/class.soap_fault.php
thirdparty/pear/class.soap_parser.php
thirdparty/pear/class.soap_server.php
thirdparty/pear/class.soap_transport_http.php
thirdparty/pear/class.soap_val.php
thirdparty/pear/class.wsdl.php
thirdparty/pear/class.wsdlcache.php
thirdparty/pear/class.xmlschema.php
thirdparty/pear/CMD.php
thirdparty/pear/install-pear.php
thirdparty/pear/install-pear.txt
thirdparty/pear/nusoap.colosa.php
thirdparty/pear/nusoap.php
thirdparty/pear/nusoapmime.php
thirdparty/pear/package-Archive_Tar.xml
thirdparty/pear/package-Console_Getopt.xml
thirdparty/pear/package.dtd
thirdparty/pear/package-PEAR.xml
thirdparty/pear/README
thirdparty/pear/template.spec
thirdparty/pear/UDDI.php
thirdparty/propel-generator/classes/propel/engine/builder/sql/sqlite/SqliteDataSQLBuilder.php
thirdparty/propel-generator/classes/propel/engine/platform/SqlitePlatform.php
thirdparty/tcpdf

View File

@@ -1,35 +1,50 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AbeConfiguration::class, function (Faker $faker) {
$process = factory(\ProcessMaker\Model\Process::class)->create();
$dynaform = factory(\ProcessMaker\Model\Dynaform::class)->create([
'PRO_UID' => $process->PRO_UID
]);
$task = factory(\ProcessMaker\Model\Task::class)->create([
'PRO_UID' => $process->PRO_UID
]);
$emailServer = factory(\ProcessMaker\Model\EmailServerModel::class)->create();
return [
'ABE_UID' => G::generateUniqueID(),
'PRO_UID' => $process->PRO_UID,
'TAS_UID' => $task->TAS_UID,
'ABE_TYPE' => $faker->randomElement(['', 'LINK']),
'ABE_TEMPLATE' => 'actionByEmail.html',
'ABE_DYN_TYPE' => 'NORMAL',
'DYN_UID' => $dynaform->DYN_UID,
'ABE_EMAIL_FIELD' => 'admin@processmaker.com',
'ABE_ACTION_FIELD' => '',
'ABE_CASE_NOTE_IN_RESPONSE' => $faker->randomElement(['0', '1']),
'ABE_FORCE_LOGIN' => $faker->randomElement(['0', '1']),
'ABE_CREATE_DATE' => $faker->dateTime(),
'ABE_UPDATE_DATE' => $faker->dateTime(),
'ABE_SUBJECT_FIELD' => '',
'ABE_MAILSERVER_OR_MAILCURRENT' => 0,
'ABE_CUSTOM_GRID' => serialize([]),
'ABE_EMAIL_SERVER_UID' => $emailServer->MESS_UID,
'ABE_ACTION_BODY_FIELD' => '',
'ABE_EMAIL_SERVER_RECEIVER_UID' => ''
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AbeConfigurationFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$process = \ProcessMaker\Model\Process::factory()->create();
$dynaform = \ProcessMaker\Model\Dynaform::factory()->create([
'PRO_UID' => $process->PRO_UID
]);
$task = \ProcessMaker\Model\Task::factory()->create([
'PRO_UID' => $process->PRO_UID
]);
$emailServer = \ProcessMaker\Model\EmailServerModel::factory()->create();
return [
'ABE_UID' => G::generateUniqueID(),
'PRO_UID' => $process->PRO_UID,
'TAS_UID' => $task->TAS_UID,
'ABE_TYPE' => $this->faker->randomElement(['', 'LINK']),
'ABE_TEMPLATE' => 'actionByEmail.html',
'ABE_DYN_TYPE' => 'NORMAL',
'DYN_UID' => $dynaform->DYN_UID,
'ABE_EMAIL_FIELD' => 'admin@processmaker.com',
'ABE_ACTION_FIELD' => '',
'ABE_CASE_NOTE_IN_RESPONSE' => $this->faker->randomElement(['0', '1']),
'ABE_FORCE_LOGIN' => $this->faker->randomElement(['0', '1']),
'ABE_CREATE_DATE' => $this->faker->dateTime(),
'ABE_UPDATE_DATE' => $this->faker->dateTime(),
'ABE_SUBJECT_FIELD' => '',
'ABE_MAILSERVER_OR_MAILCURRENT' => 0,
'ABE_CUSTOM_GRID' => serialize([]),
'ABE_EMAIL_SERVER_UID' => $emailServer->MESS_UID,
'ABE_ACTION_BODY_FIELD' => '',
'ABE_EMAIL_SERVER_RECEIVER_UID' => ''
];
}
}

View File

@@ -1,25 +1,40 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AbeRequest::class, function (Faker $faker) {
$process = factory(\ProcessMaker\Model\Process::class)->create();
$abeConfiguration = factory(\ProcessMaker\Model\AbeConfiguration::class)->create([
'PRO_UID' => $process->PRO_UID
]);
$application = factory(\ProcessMaker\Model\Application::class)->create([
'PRO_UID' => $process->PRO_UID
]);
return [
'ABE_REQ_UID' => G::generateUniqueID(),
'ABE_UID' => $abeConfiguration->ABE_UID,
'APP_UID' => $application->APP_UID,
'DEL_INDEX' => 0,
'ABE_REQ_SENT_TO' => $faker->email,
'ABE_REQ_SUBJECT' => '',
'ABE_REQ_BODY' => '',
'ABE_REQ_DATE' => $faker->date(),
'ABE_REQ_STATUS' => '',
'ABE_REQ_ANSWERED' => $faker->numberBetween(1, 9)
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AbeRequestFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$process = \ProcessMaker\Model\Process::factory()->create();
$abeConfiguration = \ProcessMaker\Model\AbeConfiguration::factory()->create([
'PRO_UID' => $process->PRO_UID
]);
$application = \ProcessMaker\Model\Application::factory()->create([
'PRO_UID' => $process->PRO_UID
]);
return [
'ABE_REQ_UID' => G::generateUniqueID(),
'ABE_UID' => $abeConfiguration->ABE_UID,
'APP_UID' => $application->APP_UID,
'DEL_INDEX' => 0,
'ABE_REQ_SENT_TO' => $this->faker->email,
'ABE_REQ_SUBJECT' => '',
'ABE_REQ_BODY' => '',
'ABE_REQ_DATE' => $this->faker->date(),
'ABE_REQ_STATUS' => '',
'ABE_REQ_ANSWERED' => $this->faker->numberBetween(1, 9)
];
}
}

View File

@@ -1,29 +1,44 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AdditionalTables::class, function(Faker $faker) {
$name = $faker->regexify("/[a-zA-Z]{6}/");
return [
'ADD_TAB_UID' => G::generateUniqueID(),
'ADD_TAB_NAME' => 'PMT_' . strtoupper($name),
'ADD_TAB_CLASS_NAME' => 'Pmt' . $name,
'ADD_TAB_DESCRIPTION' => $faker->text,
'ADD_TAB_SDW_LOG_INSERT' => 0,
'ADD_TAB_SDW_LOG_UPDATE' => 0,
'ADD_TAB_SDW_LOG_DELETE' => 0,
'ADD_TAB_SDW_LOG_SELECT' => 0,
'ADD_TAB_SDW_MAX_LENGTH' => 0,
'ADD_TAB_SDW_AUTO_DELETE' => 0,
'ADD_TAB_PLG_UID' => '',
'DBS_UID' => 'workflow',
'PRO_UID' => function() {
return factory(\ProcessMaker\Model\Process::class)->create()->PRO_UID;
},
'ADD_TAB_TYPE' => '',
'ADD_TAB_GRID' => '',
'ADD_TAB_TAG' => '',
'ADD_TAB_OFFLINE' => 0,
'ADD_TAB_UPDATE_DATE' => $faker->dateTime()
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AdditionalTablesFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$name = $this->faker->regexify("/[a-zA-Z]{6}/");
return [
'ADD_TAB_UID' => G::generateUniqueID(),
'ADD_TAB_NAME' => 'PMT_' . strtoupper($name),
'ADD_TAB_CLASS_NAME' => 'Pmt' . $name,
'ADD_TAB_DESCRIPTION' => $this->faker->text,
'ADD_TAB_SDW_LOG_INSERT' => 0,
'ADD_TAB_SDW_LOG_UPDATE' => 0,
'ADD_TAB_SDW_LOG_DELETE' => 0,
'ADD_TAB_SDW_LOG_SELECT' => 0,
'ADD_TAB_SDW_MAX_LENGTH' => 0,
'ADD_TAB_SDW_AUTO_DELETE' => 0,
'ADD_TAB_PLG_UID' => '',
'DBS_UID' => 'workflow',
'PRO_UID' => function () {
return \ProcessMaker\Model\Process::factory()->create()->PRO_UID;
},
'ADD_TAB_TYPE' => '',
'ADD_TAB_GRID' => '',
'ADD_TAB_TAG' => '',
'ADD_TAB_OFFLINE' => 0,
'ADD_TAB_UPDATE_DATE' => $this->faker->dateTime()
];
}
}

View File

@@ -1,18 +1,30 @@
<?php
/**
* Model factory for a APP_ASSIGN_SELF_SERVICE_VALUE
*/
use Faker\Generator as Faker;
$factory->define(\ProcessMaker\Model\AppAssignSelfServiceValue::class, function(Faker $faker) {
return [
'ID' => $faker->unique()->numberBetween(5000),
'APP_UID' => G::generateUniqueID(),
'DEL_INDEX' => 2,
'PRO_UID' => G::generateUniqueID(),
'TAS_UID' => G::generateUniqueID(),
'TAS_ID' => $faker->unique()->numberBetween(1, 2000),
'GRP_UID' => G::generateUniqueID(),
];
});
namespace Database\Factories;
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AppAssignSelfServiceValueFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'ID' => $this->faker->unique()->numberBetween(5000),
'APP_UID' => G::generateUniqueID(),
'DEL_INDEX' => 2,
'PRO_UID' => G::generateUniqueID(),
'TAS_UID' => G::generateUniqueID(),
'TAS_ID' => $this->faker->unique()->numberBetween(1, 2000),
'GRP_UID' => G::generateUniqueID(),
];
}
}

View File

@@ -1,15 +1,27 @@
<?php
/**
* Model factory for a APP_ASSIGN_SELF_SERVICE_VALUE_GROUP
*/
use Faker\Generator as Faker;
$factory->define(\ProcessMaker\Model\AppAssignSelfServiceValueGroup::class, function(Faker $faker) {
return [
'ID' => $faker->unique()->numberBetween(5000),
'GRP_UID' => G::generateUniqueID(),
'ASSIGNEE_ID' => $faker->unique()->numberBetween(1, 2000),
'ASSIGNEE_TYPE' => $faker->unique()->numberBetween(1, 2000),
];
});
namespace Database\Factories;
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AppAssignSelfServiceValueGroupFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'ID' => $this->faker->unique()->numberBetween(5000),
'GRP_UID' => G::generateUniqueID(),
'ASSIGNEE_ID' => $this->faker->unique()->numberBetween(1, 2000),
'ASSIGNEE_TYPE' => $this->faker->unique()->numberBetween(1, 2000),
];
}
}

View File

@@ -1,62 +1,84 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AppDelay::class, function (Faker $faker) {
$actions = ['CANCEL', 'PAUSE', 'REASSIGN'];
return [
'APP_DELAY_UID' => G::generateUniqueID(),
'PRO_UID' => G::generateUniqueID(),
'APP_UID' => G::generateUniqueID(),
'APP_NUMBER' => $faker->unique()->numberBetween(1000),
'APP_THREAD_INDEX' => $faker->unique()->numberBetween(100),
'APP_DEL_INDEX' => $faker->unique()->numberBetween(100),
'APP_TYPE' => $faker->randomElement($actions),
'APP_STATUS' => 'TO_DO',
'APP_NEXT_TASK' => 0,
'APP_DELEGATION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_DATE' => $faker->dateTime(),
'APP_DISABLE_ACTION_USER' => G::generateUniqueID(),
'APP_DISABLE_ACTION_DATE' => $faker->dateTime(),
'APP_AUTOMATIC_DISABLED_DATE' => '',
'APP_DELEGATION_USER_ID' => $faker->unique()->numberBetween(1000),
'PRO_ID' => $faker->unique()->numberBetween(1000),
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
// Create a delegation with the foreign keys
$factory->state(\ProcessMaker\Model\AppDelay::class, 'paused_foreign_keys', function (Faker $faker) {
// Create values in the foreign key relations
$delegation1 = factory(\ProcessMaker\Model\Delegation::class)->states('closed')->create();
$delegation2 = factory(\ProcessMaker\Model\Delegation::class)->states('foreign_keys')->create([
'PRO_UID' => $delegation1->PRO_UID,
'PRO_ID' => $delegation1->PRO_ID,
'TAS_UID' => $delegation1->TAS_UID,
'TAS_ID' => $delegation1->TAS_ID,
'APP_NUMBER' => $delegation1->APP_NUMBER,
'APP_UID' => $delegation1->APP_UID,
'DEL_THREAD_STATUS' => 'OPEN',
'USR_UID' => $delegation1->USR_UID,
'USR_ID' => $delegation1->USR_ID,
'DEL_PREVIOUS' => $delegation1->DEL_INDEX,
'DEL_INDEX' => $faker->unique()->numberBetween(2000),
]);
class AppDelayFactory extends Factory
{
// Return with default values
return [
'APP_DELAY_UID' => G::generateUniqueID(),
'PRO_UID' => $delegation2->PRO_UID,
'PRO_ID' => $delegation2->PRO_ID,
'APP_UID' => $delegation2->APP_UID,
'APP_NUMBER' => $delegation2->APP_NUMBER,
'APP_DEL_INDEX' => $delegation2->DEL_INDEX,
'APP_TYPE' => 'PAUSE',
'APP_STATUS' => 'TO_DO',
'APP_DELEGATION_USER' => $delegation2->USR_UID,
'APP_DELEGATION_USER_ID' => $delegation2->USR_ID,
'APP_ENABLE_ACTION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_DATE' => $faker->dateTime(),
'APP_DISABLE_ACTION_USER' => 0,
];
});
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$actions = ['CANCEL', 'PAUSE', 'REASSIGN'];
return [
'APP_DELAY_UID' => G::generateUniqueID(),
'PRO_UID' => G::generateUniqueID(),
'APP_UID' => G::generateUniqueID(),
'APP_NUMBER' => $this->faker->unique()->numberBetween(1000),
'APP_THREAD_INDEX' => $this->faker->unique()->numberBetween(100),
'APP_DEL_INDEX' => $this->faker->unique()->numberBetween(100),
'APP_TYPE' => $this->faker->randomElement($actions),
'APP_STATUS' => 'TO_DO',
'APP_NEXT_TASK' => 0,
'APP_DELEGATION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_DATE' => $this->faker->dateTime(),
'APP_DISABLE_ACTION_USER' => G::generateUniqueID(),
'APP_DISABLE_ACTION_DATE' => $this->faker->dateTime(),
'APP_AUTOMATIC_DISABLED_DATE' => '',
'APP_DELEGATION_USER_ID' => $this->faker->unique()->numberBetween(1000),
'PRO_ID' => $this->faker->unique()->numberBetween(1000),
];
}
/**
* Create a delegation with the foreign keys
* @return type
*/
public function paused_foreign_keys()
{
$state = function (array $attributes) {
// Create values in the foreign key relations
$delegation1 = \ProcessMaker\Model\Delegation::factory()->closed()->create();
$delegation2 = \ProcessMaker\Model\Delegation::factory()->foreign_keys()->create([
'PRO_UID' => $delegation1->PRO_UID,
'PRO_ID' => $delegation1->PRO_ID,
'TAS_UID' => $delegation1->TAS_UID,
'TAS_ID' => $delegation1->TAS_ID,
'APP_NUMBER' => $delegation1->APP_NUMBER,
'APP_UID' => $delegation1->APP_UID,
'DEL_THREAD_STATUS' => 'OPEN',
'USR_UID' => $delegation1->USR_UID,
'USR_ID' => $delegation1->USR_ID,
'DEL_PREVIOUS' => $delegation1->DEL_INDEX,
'DEL_INDEX' => $this->faker->unique()->numberBetween(2000),
]);
// Return with default values
return [
'APP_DELAY_UID' => G::generateUniqueID(),
'PRO_UID' => $delegation2->PRO_UID,
'PRO_ID' => $delegation2->PRO_ID,
'APP_UID' => $delegation2->APP_UID,
'APP_NUMBER' => $delegation2->APP_NUMBER,
'APP_DEL_INDEX' => $delegation2->DEL_INDEX,
'APP_TYPE' => 'PAUSE',
'APP_STATUS' => 'TO_DO',
'APP_DELEGATION_USER' => $delegation2->USR_UID,
'APP_DELEGATION_USER_ID' => $delegation2->USR_ID,
'APP_ENABLE_ACTION_USER' => G::generateUniqueID(),
'APP_ENABLE_ACTION_DATE' => $this->faker->dateTime(),
'APP_DISABLE_ACTION_USER' => 0,
];
};
return $this->state($state);
}
}

View File

@@ -1,37 +1,52 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AppMessage::class, function(Faker $faker) {
return [
'APP_MSG_UID' => G::generateUniqueID(),
'MSG_UID' => '',
'APP_UID' => function() {
return factory(\ProcessMaker\Model\Application::class)->create()->APP_UID;
},
'DEL_INDEX' => 1,
'APP_MSG_TYPE' => 'ROUTING',
'APP_MSG_TYPE_ID' => 0,
'APP_MSG_SUBJECT' => $faker->title,
'APP_MSG_FROM' => $faker->email,
'APP_MSG_TO' => $faker->email,
'APP_MSG_BODY' => $faker->text,
'APP_MSG_DATE' => $faker->dateTime(),
'APP_MSG_CC' => '',
'APP_MSG_BCC' => '',
'APP_MSG_TEMPLATE' => '',
'APP_MSG_STATUS' => 'pending',
'APP_MSG_STATUS_ID' => 1,
'APP_MSG_ATTACH' => '',
'APP_MSG_SEND_DATE' => $faker->dateTime(),
'APP_MSG_SHOW_MESSAGE' => 1,
'APP_MSG_ERROR' => '',
'PRO_ID' => function() {
return factory(\ProcessMaker\Model\Process::class)->create()->PRO_ID;
},
'TAS_ID' => function() {
return factory(\ProcessMaker\Model\Task::class)->create()->TAS_ID;
},
'APP_NUMBER' => 1
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AppMessageFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'APP_MSG_UID' => G::generateUniqueID(),
'MSG_UID' => '',
'APP_UID' => function () {
return \ProcessMaker\Model\Application::factory()->create()->APP_UID;
},
'DEL_INDEX' => 1,
'APP_MSG_TYPE' => 'ROUTING',
'APP_MSG_TYPE_ID' => 0,
'APP_MSG_SUBJECT' => $this->faker->title,
'APP_MSG_FROM' => $this->faker->email,
'APP_MSG_TO' => $this->faker->email,
'APP_MSG_BODY' => $this->faker->text,
'APP_MSG_DATE' => $this->faker->dateTime(),
'APP_MSG_CC' => '',
'APP_MSG_BCC' => '',
'APP_MSG_TEMPLATE' => '',
'APP_MSG_STATUS' => 'pending',
'APP_MSG_STATUS_ID' => 1,
'APP_MSG_ATTACH' => '',
'APP_MSG_SEND_DATE' => $this->faker->dateTime(),
'APP_MSG_SHOW_MESSAGE' => 1,
'APP_MSG_ERROR' => '',
'PRO_ID' => function () {
return \ProcessMaker\Model\Process::factory()->create()->PRO_ID;
},
'TAS_ID' => function () {
return \ProcessMaker\Model\Task::factory()->create()->TAS_ID;
},
'APP_NUMBER' => 1
];
}
}

View File

@@ -1,42 +1,63 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AppNotes::class, function (Faker $faker) {
return [
'APP_UID' => G::generateUniqueID(),
'APP_NUMBER' => $faker->unique()->numberBetween(5000),
'USR_UID' => G::generateUniqueID(),
'NOTE_DATE' => $faker->dateTime(),
'NOTE_CONTENT' => $faker->sentence(3),
'NOTE_TYPE' => 'USER',
'NOTE_AVAILABILITY' => 'PUBLIC',
'NOTE_ORIGIN_OBJ' => '',
'NOTE_AFFECTED_OBJ1' => '',
'NOTE_AFFECTED_OBJ2' => '',
'NOTE_RECIPIENTS' => '',
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
// Create a case notes with the foreign keys
$factory->state(\ProcessMaker\Model\AppNotes::class, 'foreign_keys', function (Faker $faker) {
// Create values in the foreign key relations
$application = factory(\ProcessMaker\Model\Application::class)->create();
$user = factory(\ProcessMaker\Model\User::class)->create();
class AppNotesFactory extends Factory
{
// Return with default values
return [
'APP_UID' => $application->APP_UID,
'APP_NUMBER' => $application->APP_NUMBER,
'USR_UID' => $user->USR_UID,
'NOTE_DATE' => $faker->dateTime(),
'NOTE_CONTENT' => $faker->sentence(3),
'NOTE_TYPE' => 'USER',
'NOTE_AVAILABILITY' => 'PUBLIC',
'NOTE_ORIGIN_OBJ' => '',
'NOTE_AFFECTED_OBJ1' => '',
'NOTE_AFFECTED_OBJ2' => '',
'NOTE_RECIPIENTS' => '',
];
});
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'APP_UID' => G::generateUniqueID(),
'APP_NUMBER' => $this->faker->unique()->numberBetween(5000),
'USR_UID' => G::generateUniqueID(),
'NOTE_DATE' => $this->faker->dateTime(),
'NOTE_CONTENT' => $this->faker->sentence(3),
'NOTE_TYPE' => 'USER',
'NOTE_AVAILABILITY' => 'PUBLIC',
'NOTE_ORIGIN_OBJ' => '',
'NOTE_AFFECTED_OBJ1' => '',
'NOTE_AFFECTED_OBJ2' => '',
'NOTE_RECIPIENTS' => '',
];
}
/**
* Create a case notes with the foreign keys
* @return type
*/
public function foreign_keys()
{
$state = function (array $attributes) {
// Create values in the foreign key relations
$application = \ProcessMaker\Model\Application::factory()->create();
$user = \ProcessMaker\Model\User::factory()->create();
// Return with default values
return [
'APP_UID' => $application->APP_UID,
'APP_NUMBER' => $application->APP_NUMBER,
'USR_UID' => $user->USR_UID,
'NOTE_DATE' => $this->faker->dateTime(),
'NOTE_CONTENT' => $this->faker->sentence(3),
'NOTE_TYPE' => 'USER',
'NOTE_AVAILABILITY' => 'PUBLIC',
'NOTE_ORIGIN_OBJ' => '',
'NOTE_AFFECTED_OBJ1' => '',
'NOTE_AFFECTED_OBJ2' => '',
'NOTE_RECIPIENTS' => '',
];
};
return $this->state($state);
}
}

View File

@@ -1,16 +1,28 @@
<?php
/**
* Model factory for a APP_THREAD
*/
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AppThread::class, function (Faker $faker) {
return [
'APP_UID' => G::generateUniqueID(),
'APP_THREAD_INDEX' => $faker->unique()->numberBetween(1, 2000),
'APP_THREAD_PARENT' => $faker->unique()->numberBetween(1, 2000),
'APP_THREAD_STATUS' => $faker->randomElement(['OPEN', 'CLOSED']),
'DEL_INDEX' => $faker->unique()->numberBetween(1, 2000)
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AppThreadFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'APP_UID' => G::generateUniqueID(),
'APP_THREAD_INDEX' => $this->faker->unique()->numberBetween(1, 2000),
'APP_THREAD_PARENT' => $this->faker->unique()->numberBetween(1, 2000),
'APP_THREAD_STATUS' => $this->faker->randomElement(['OPEN', 'CLOSED']),
'DEL_INDEX' => $this->faker->unique()->numberBetween(1, 2000)
];
}
}

View File

@@ -1,12 +1,27 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\AppTimeoutAction::class, function (Faker $faker) {
$index = $faker->unique()->numberBetween(20);
return [
'APP_UID' => G::generateUniqueID(),
'DEL_INDEX' => $index,
'EXECUTION_DATE' => $faker->dateTime()
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class AppTimeoutActionFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$index = $this->faker->unique()->numberBetween(20);
return [
'APP_UID' => G::generateUniqueID(),
'DEL_INDEX' => $index,
'EXECUTION_DATE' => $this->faker->dateTime()
];
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,14 +1,28 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\BpmnDiagram::class, function(Faker $faker) {
return [
'DIA_UID' => $faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => function() {
return factory(\ProcessMaker\Model\BpmnProject::class)->create()->PRJ_UID;
},
'DIA_NAME' => $faker->name,
'DIA_IS_CLOSABLE' => 0,
];
});
use App\Factories\Factory;
use Illuminate\Support\Str;
class BpmnDiagramFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'DIA_UID' => $this->faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => function () {
return \ProcessMaker\Model\BpmnProject::factory()->create()->PRJ_UID;
},
'DIA_NAME' => $this->faker->name,
'DIA_IS_CLOSABLE' => 0,
];
}
}

View File

@@ -1,32 +1,46 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\BpmnEvent::class, function(Faker $faker) {
$bpmnProcess = factory(\ProcessMaker\Model\BpmnProcess::class)->create();
return [
'EVN_UID' => $faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => $bpmnProcess->PRJ_UID,
'PRO_UID' => $bpmnProcess->PRO_UID,
'EVN_NAME' => $faker->name,
'EVN_TYPE' => 'START',
'EVN_MARKER' => 'EMPTY',
'EVN_IS_INTERRUPTING' => 1,
'EVN_ATTACHED_TO' => '',
'EVN_CANCEL_ACTIVITY' => 0,
'EVN_ACTIVITY_REF' => null,
'EVN_WAIT_FOR_COMPLETION' => 0,
'EVN_ERROR_NAME' => null,
'EVN_ERROR_CODE' => null,
'EVN_ESCALATION_NAME' => null,
'EVN_ESCALATION_CODE' => null,
'EVN_CONDITION' => null,
'EVN_MESSAGE' => '',
'EVN_OPERATION_NAME' => null,
'EVN_OPERATION_IMPLEMENTATION_REF' => null,
'EVN_TIME_DATE' => null,
'EVN_TIME_CYCLE' => null,
'EVN_TIME_DURATION' => null,
'EVN_BEHAVIOR' => 'THROW',
];
});
use App\Factories\Factory;
use Illuminate\Support\Str;
class BpmnEventFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
$bpmnProcess = \ProcessMaker\Model\BpmnProcess::factory()->create();
return [
'EVN_UID' => $this->faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => $bpmnProcess->PRJ_UID,
'PRO_UID' => $bpmnProcess->PRO_UID,
'EVN_NAME' => $this->faker->name,
'EVN_TYPE' => 'START',
'EVN_MARKER' => 'EMPTY',
'EVN_IS_INTERRUPTING' => 1,
'EVN_ATTACHED_TO' => '',
'EVN_CANCEL_ACTIVITY' => 0,
'EVN_ACTIVITY_REF' => null,
'EVN_WAIT_FOR_COMPLETION' => 0,
'EVN_ERROR_NAME' => null,
'EVN_ERROR_CODE' => null,
'EVN_ESCALATION_NAME' => null,
'EVN_ESCALATION_CODE' => null,
'EVN_CONDITION' => null,
'EVN_MESSAGE' => '',
'EVN_OPERATION_NAME' => null,
'EVN_OPERATION_IMPLEMENTATION_REF' => null,
'EVN_TIME_DATE' => null,
'EVN_TIME_CYCLE' => null,
'EVN_TIME_DURATION' => null,
'EVN_BEHAVIOR' => 'THROW',
];
}
}

View File

@@ -1,21 +1,34 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\BpmnProcess::class, function(Faker $faker) {
return [
'PRO_UID' => $faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => function() {
return factory(\ProcessMaker\Model\BpmnProject::class)->create()->PRJ_UID;
},
'DIA_UID' => function() {
return factory(\ProcessMaker\Model\BpmnDiagram::class)->create()->DIA_UID;
},
'PRO_NAME' => $faker->title,
'PRO_TYPE' => 'NONE',
'PRO_IS_EXECUTABLE' => 0,
'PRO_IS_CLOSED' => 0,
'PRO_IS_SUBPROCESS' => 0,
];
});
use App\Factories\Factory;
use Illuminate\Support\Str;
class BpmnProcessFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'PRO_UID' => $this->faker->regexify("/[a-zA-Z]{32}/"),
'PRJ_UID' => function () {
return \ProcessMaker\Model\BpmnProject::factory()->create()->PRJ_UID;
},
'DIA_UID' => function () {
return \ProcessMaker\Model\BpmnDiagram::factory()->create()->DIA_UID;
},
'PRO_NAME' => $this->faker->title,
'PRO_TYPE' => 'NONE',
'PRO_IS_EXECUTABLE' => 0,
'PRO_IS_CLOSED' => 0,
'PRO_IS_SUBPROCESS' => 0,
];
}
}

View File

@@ -1,25 +1,40 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\BpmnProject::class, function (Faker $faker) {
// Create user
$user = factory(\ProcessMaker\Model\User::class)->create();
// Create process
$process = factory(\ProcessMaker\Model\Process::class)->create();
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
return [
'PRJ_UID' => G::generateUniqueID(),
'PRJ_NAME' => $faker->sentence(5),
'PRJ_DESCRIPTION' => $faker->text,
'PRJ_EXPRESION_LANGUAGE' => '',
'PRJ_TYPE_LANGUAGE' => '',
'PRJ_EXPORTER' => '',
'PRJ_EXPORTER_VERSION' => '',
'PRJ_CREATE_DATE' => $faker->dateTime(),
'PRJ_UPDATE_DATE' => $faker->dateTime(),
'PRJ_AUTHOR' => $user->USR_UID,
'PRJ_AUTHOR_VERSION' => '',
'PRJ_ORIGINAL_SOURCE' => '',
];
});
class BpmnProjectFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
// Create user
$user = \ProcessMaker\Model\User::factory()->create();
// Create process
$process = \ProcessMaker\Model\Process::factory()->create();
return [
'PRJ_UID' => G::generateUniqueID(),
'PRJ_NAME' => $this->faker->sentence(5),
'PRJ_DESCRIPTION' => $this->faker->text,
'PRJ_EXPRESION_LANGUAGE' => '',
'PRJ_TYPE_LANGUAGE' => '',
'PRJ_EXPORTER' => '',
'PRJ_EXPORTER_VERSION' => '',
'PRJ_CREATE_DATE' => $this->faker->dateTime(),
'PRJ_UPDATE_DATE' => $this->faker->dateTime(),
'PRJ_AUTHOR' => $user->USR_UID,
'PRJ_AUTHOR_VERSION' => '',
'PRJ_ORIGINAL_SOURCE' => '',
];
}
}

View File

@@ -1,26 +1,40 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\CaseList::class, function (Faker $faker) {
return [
'CAL_ID' => $faker->unique()->numberBetween(1, 5000),
'CAL_TYPE' => 'inbox',
'CAL_NAME' => $faker->title,
'CAL_DESCRIPTION' => $faker->text,
'ADD_TAB_UID' => function () {
$table = factory(\ProcessMaker\Model\AdditionalTables::class)->create();
return $table->ADD_TAB_UID;
},
'CAL_COLUMNS' => '[]',
'USR_ID' => function () {
$user = factory(\ProcessMaker\Model\User::class)->create();
return $user->USR_ID;
},
'CAL_ICON_LIST' => 'deafult.png',
'CAL_ICON_COLOR' => 'red',
'CAL_ICON_COLOR_SCREEN' => 'blue',
'CAL_CREATE_DATE' => $faker->dateTime(),
'CAL_UPDATE_DATE' => $faker->dateTime()
];
});
use App\Factories\Factory;
use Illuminate\Support\Str;
class CaseListFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'CAL_ID' => $this->faker->unique()->numberBetween(1, 5000),
'CAL_TYPE' => 'inbox',
'CAL_NAME' => $this->faker->title,
'CAL_DESCRIPTION' => $this->faker->text,
'ADD_TAB_UID' => function () {
$table = \ProcessMaker\Model\AdditionalTables::factory()->create();
return $table->ADD_TAB_UID;
},
'CAL_COLUMNS' => '[]',
'USR_ID' => function () {
$user = \ProcessMaker\Model\User::factory()->create();
return $user->USR_ID;
},
'CAL_ICON_LIST' => 'deafult.png',
'CAL_ICON_COLOR' => 'red',
'CAL_ICON_COLOR_SCREEN' => 'blue',
'CAL_CREATE_DATE' => $this->faker->dateTime(),
'CAL_UPDATE_DATE' => $this->faker->dateTime()
];
}
}

View File

@@ -1,37 +1,57 @@
<?php
/**
* Model factory for a configuration
*/
use Faker\Generator as Faker;
namespace Database\Factories;
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
use ProcessMaker\Model\Configuration;
use ProcessMaker\Model\User;
$factory->define(Configuration::class, function(Faker $faker) {
return [
'CFG_UID' => $faker->randomElement(['AUDIT_LOG', 'EE']),
'OBJ_UID' => '',
'CFG_VALUE' => '',
'PRO_UID' => G::generateUniqueID(),
'USR_UID' => G::generateUniqueID(),
'APP_UID' => G::generateUniqueID(),
];
});
class ConfigurationFactory extends Factory
{
$factory->state(Configuration::class, 'userPreferencesEmpty', function (Faker $faker) {
// Grab a user if random
$users = User::all();
if (!empty($users)) {
$user = factory(User::class)->create();
} else {
$user = $users->random();
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'CFG_UID' => $this->faker->randomElement(['AUDIT_LOG', 'EE']),
'OBJ_UID' => '',
'CFG_VALUE' => '',
'PRO_UID' => G::generateUniqueID(),
'USR_UID' => G::generateUniqueID(),
'APP_UID' => G::generateUniqueID(),
];
}
return [
'CFG_UID' => 'USER_PREFERENCES',
'OBJ_UID' => '',
'CFG_VALUE' => '',
'PRO_UID' => '',
'USR_UID' => $user->USR_UID,
'APP_UID' => '',
];
});
/**
*
* @return type
*/
public function userPreferencesEmpty()
{
$state = function (array $attributes) {
// Grab a user if random
$users = User::all();
if (!empty($users)) {
$user = User::factory()->create();
} else {
$user = $users->random();
}
return [
'CFG_UID' => 'USER_PREFERENCES',
'OBJ_UID' => '',
'CFG_VALUE' => '',
'PRO_UID' => '',
'USR_UID' => $user->USR_UID,
'APP_UID' => '',
];
};
return $this->state($state);
}
}

View File

@@ -1,24 +1,46 @@
<?php
use Faker\Generator as Faker;
namespace Database\Factories;
$factory->define(\ProcessMaker\Model\Consolidated::class, function (Faker $faker) {
return [
'TAS_UID' => G::generateUniqueID(),
'DYN_UID' => G::generateUniqueID(),
'REP_TAB_UID' => G::generateUniqueID(),
'CON_STATUS' => 'ACTIVE',
];
});
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
// Create a consolidated task with the foreign keys
$factory->state(\ProcessMaker\Model\Consolidated::class, 'foreign_keys', function (Faker $faker) {
$task = factory(\ProcessMaker\Model\Task::class)->create();
$dynaform = factory(\ProcessMaker\Model\Dynaform::class)->create();
return [
'TAS_UID' => $task->TAS_UID,
'DYN_UID' => $dynaform->DYN_UID,
'REP_TAB_UID' => G::generateUniqueID(),
'CON_STATUS' => 'ACTIVE',
];
});
class ConsolidatedFactory extends Factory
{
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
'TAS_UID' => G::generateUniqueID(),
'DYN_UID' => G::generateUniqueID(),
'REP_TAB_UID' => G::generateUniqueID(),
'CON_STATUS' => 'ACTIVE',
];
}
/**
* Create a consolidated task with the foreign keys
* @return type
*/
public function foreign_keys()
{
$state = function (array $attributes) {
$task = \ProcessMaker\Model\Task::factory()->create();
$dynaform = \ProcessMaker\Model\Dynaform::factory()->create();
return [
'TAS_UID' => $task->TAS_UID,
'DYN_UID' => $dynaform->DYN_UID,
'REP_TAB_UID' => G::generateUniqueID(),
'CON_STATUS' => 'ACTIVE',
];
};
return $this->state($state);
}
}

View File

@@ -1,31 +1,43 @@
<?php
/**
* Model factory for a process
*/
use Faker\Generator as Faker;
$factory->define(\ProcessMaker\Model\DbSource::class, function(Faker $faker) {
namespace Database\Factories;
use App\Factories\Factory;
use G;
use Illuminate\Support\Str;
class DbSourceFactory extends Factory
{
/**
* @todo Determine if we need more base columns populated
* Define the model's default state.
*
* @return array
*/
$dbName = $faker->word;
return [
'DBS_UID' => G::generateUniqueID(),
'PRO_UID' => function() {
return factory(\ProcessMaker\Model\Process::class)->create()->PRO_UID;
},
'DBS_TYPE' => 'mysql',
'DBS_SERVER' => $faker->localIpv4,
'DBS_DATABASE_NAME' => $faker->word,
'DBS_USERNAME' => $faker->userName,
public function definition()
{
/**
* @todo WHY figure out there's a magic value to the encryption here
* @todo Determine if we need more base columns populated
*/
'DBS_PASSWORD' => \G::encrypt( $faker->password, $dbName, false, false) . "_2NnV3ujj3w",
'DBS_PORT' => $faker->numberBetween(1000, 9000),
'DBS_ENCODE' => 'utf8', // @todo Perhaps grab this from our definitions in DbConnections
'DBS_CONNECTION_TYPE' => 'NORMAL', // @todo Determine what this value means
'DBS_TNS' => null // @todo Determine what this value means
];
});
$dbName = $this->faker->word;
return [
'DBS_UID' => G::generateUniqueID(),
'PRO_UID' => function () {
return \ProcessMaker\Model\Process::factory()->create()->PRO_UID;
},
'DBS_TYPE' => 'mysql',
'DBS_SERVER' => $this->faker->localIpv4,
'DBS_DATABASE_NAME' => $this->faker->word,
'DBS_USERNAME' => $this->faker->userName,
/**
* @todo WHY figure out there's a magic value to the encryption here
*/
'DBS_PASSWORD' => \G::encrypt($this->faker->password, $dbName, false, false) . "_2NnV3ujj3w",
'DBS_PORT' => $this->faker->numberBetween(1000, 9000),
'DBS_ENCODE' => 'utf8', // @todo Perhaps grab this from our definitions in DbConnections
'DBS_CONNECTION_TYPE' => 'NORMAL', // @todo Determine what this value means
'DBS_TNS' => null // @todo Determine what this value means
];
}
}

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