kanvas / guild
Kanvas Guild is a Customer relationship management package.
Installs: 1 124
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:project
Requires
- php: >= 7.4
- ext-phalcon: >=4
- baka/baka: 0.7.x-dev
- kanvas/content: ^0.1
Requires (Dev)
- codeception/codeception: ^4.1
- codeception/module-asserts: ^1.2
- codeception/module-filesystem: ^1.0
- codeception/module-phalcon: ^1.0
- codeception/module-phalcon4: ^1.0
- codeception/module-rest: ^1.2
- codeception/verify: *
- fzaninotto/faker: ^1.9
- mark-gerarts/auto-mapper-plus: 2.0.0-alpha1
- odan/phinx-migrations-generator: ^5
- phalcon/ide-stubs: ^4.0
- phalcon/incubator: 4.0.x-dev
- phalcon/incubator-acl: ^1.0.0-alpha.1
- phalcon/incubator-test: ^1.0.0-alpha.1
- phpstan/phpstan: ^0.12
- phpunit/phpunit: ^9.1
- robmorgan/phinx: ^0.12
- squizlabs/php_codesniffer: 3.2
- vlucas/phpdotenv: ^4.1
This package is auto-updated.
Last update: 2024-11-06 20:50:39 UTC
README
Guild
Guild is a Customer relationship management package that allows the user to manage his leads and deals, similar to a guild that manages its members and their assignments, as well as the reports and plans related to them.
Providing methods to manage and get leads and CRM related functions.
Methods
Leads
Create a new lead
/** * Create a new Lead * * @param UserInterface $user * @param string $title * @param ModelsStages $pipelineStage * @param LeadsRotationsAgents $agent * @param Organizations $organization * @param Types $leadType * @param Status $leadStatus * @param Source $leadSource * @param boolean $isDuplicate * @param string $description * @return ModelsLeads */ $leads = Leads::create( $user, $title, $modelPipelineStage, $leadRotationsAgent, $organization, $leadType, $leadStatus, $leadSource, $isDuplicate, $descriptions );
Create a new Lead Attempt
$data = [ 'request' => 'Request Data', 'ip' => '123.456.789', 'header' => 'Request Header', 'source' => 'Source', 'public_key' => 'Key', 'processed' => 0, ] /** * Create a new lead attempt * * @param UserInterface $user * @param array $data * @param Leads|null $lead * @return ModelAttempts */ Leads::attempt($user, $data, $lead);
Update
// find a lead by id $lead = Leads::getById(4, $user); $lead->Title = 'new Title'; $lead->saveOrFail();
Get Leads
//Get all the leads $page = 1; $limit = 10; $leads = Leads::getAll($user, $page, $limit); //Get Leads by id $leads = Leads::getById(4); //Get leads by status $leads = Leads::getByStatus(LeadStatus::LOSE, $user, $page, $limit); $leads = Leads::getByStatus(LeadStatus::WIN, $user, $page, $limit);
Organizations
Create
//Create a new organization by an array of data $organization = Organization::create($data, $user);
Update
$organization = Organization::getById(3, $user); Organization::update($organization, $data);
OR
$organization = Organization::getById(3)->update($data);
Get
//Get Organization by its id $organization = Organization::getById(3, $user); //Get All organization $page = 1; $limit = 10; $organization = Organization::getAll($user, $page, $limit);
Add Peoples to organization
//Get the people and the organization $people = Peoples::getById(3); $organization = Organization::getById(3, $user); // Add a new people to an organization Organization::addPeople($organization, $people);
Or
$organization = Organization::getById(3); $organization->addPeople($people);
Get Peoples from an Organization
$organization = Organization::getById(3); $organization->getPeoples();
Peoples
Create
$data = [ 'name' => 'Romeo', 'email' => 'Romeo@mail.com' ]; $people = People::create($data, $user)
Update
$people = People::getById(1, $user); $people->name = 'New juan'; $people->saveOrFail();
Or
$people = People::getById(1, $user)->update($data);
Create Contact
// @people People user data for the new contact // @contactType Contacts::createNewContact($people, $contactType, $value);
Update Contact
Deals
Create
$lead = Lead::getById(1, $user); $newDeal = Deal::create($user, $lead)
Get by Lead
$lead = Lead::getById(1, $user); $deal = $lead->getDeal();
Get
$deal = Deal::getById(2, $user);
$page = 1; $limit = 10; $deal = Deal::getAll($user, $page, $limit);
Update
Deal::update(Deal::getById(2), $data);
Pipelines
Create
$pipelines = Pipelines::create($name, $entity, $user);
Get
$page = 1; $limit = 10; $pipelines = Pipelines::getAll($user, $page, $limit);
Or
$pipeline = Pipelines::getById($name);
Update
$pipeline = Pipelines::getById(1); Pipelines::update($pipeline, $name);
Create Stage
// $pipeline Pipeline Object // $name string // $hasRotting boolean // $rottingDays int Pipelines::createStage($pipeline, $name, $hasRotting, $rottingDays);
Get Stage
$pipelineStage = Pipelines::getStageById(1);
Or
$pipelineStage = Pipelines::getStagesByPipeline($pipeline);
Update Stage
$pipelineStage = Pipelines::getStageById(1); Pipelines::updateStage($pipelineStage, $data)
Rotations
Create
$pipelines = Rotations::create($name, $user);
Update
$rotation = Rotations::getById(1); Rotations::update($rotation, $name);
Get
$rotation = Rotations::getById(1, $user); $rotation = Rotation::getByName($name, $user);
Agents
Add
Agents::create($rotation, $user, $receiver, $percent, $hits);
Get Agents
Agents::getAllAgents($rotation, $page, $limit); Agents::getAgentsFromRotation($rotation, $page, $limit); Agents::getAgentById(2, $user);
Update Agent
$agent = Rotation::getAgentById(2, $user); Rotations::update($agent, $data);
Get current agent rotation
Rotation::getAgent($rotation);
Activities
Create
$activity = Activities::create( $user, "Title", $startDate, $endDate, $lead, $activityType, $isComplete, $appId );
Create Activity Type
$type = Activities::createType($user, $name, $description);
Update
$activityEdited = Activities::update($activity, $data);
Get
// Get activity by id Activities::getById(1, $user); // Get all activities Activities::getAll($user, $page, $limit); // Get leads activities $lead = Leads::getById(1); $lead->getActivities();