Giter Club home page Giter Club logo

tsolucio / corebos Goto Github PK

View Code? Open in Web Editor NEW
149.0 42.0 142.0 169.17 MB

core Business Operating System. An OPEN SOURCE business application that helps small and medium business handle all the day to day tasks.

Home Page: https://corebos.com

PHP 59.56% HTML 0.22% Smarty 5.00% XSLT 0.06% Shell 0.03% JavaScript 26.45% CSS 8.58% Batchfile 0.01% Yacc 0.03% Dockerfile 0.01% Java 0.04% Rich Text Format 0.03%
crm erp business-development-framework bpm dmn hacktoberfest business low-code

corebos's Introduction

coreBOS

This project is currently being developed elsewhere. The development efforts have moved to private servers. This repository will only receive some security and major bug fixes.

Read more here


core Business Operating System

Stable Build License Build Status Chat with us on Gitter

coreBOS is a very flexible and powerful software application designed to easily adapt to the requirements of your business. In other words, a business software capable of managing the everyday needs of your business.

To accomplish such a gigantic task it has many mechanisms to make your work easy and productive while giving implementors and administrators the power to configure and adapt the software to the immense variety of business situations it may be applied to. In other words, it can do all the easy stuff like track your clients' information, their business opportunities, their quotes and invoices, and even add your entities to save specific information that your business needs, but it does all the hard stuff too; business process management is easy with a powerful workflow automation engine, ticket management with Kanban, extensive reporting options, including Pivot tables and an incredible set of customizations options to convert the base application into the software application your company needs, because, your company is not the same as any other.

It comes with many integrations out of the box; Decision Tables (DMN), WhatsApp, SendGrid, Google Measurement, ElasticSearch, Woocommerce, Mautic, ClickHouse, Facebook, OneSignal, Make, and a subsystem to call external APIs, among many many others.

It can also be used as a pure backend for any kind of front-end application thanks to its powerful API. Joining the many API functionalities with the native automation options make it an ideal and trustworthy place to save and manage your data.

With a business-friendly license and a fully open source philosophy where your data and your customizations are always yours, coreBOS can cover the needs of a very wide range of market segments and also serve as a base for implementors to service their clients.

coreBOS is backed by a small but consistent community and patronized by TSolucio and AT Consulting who not only base their business on this software but give it the power and stability to move into the future with confidence.

We invite you to give it a try and dedicate a few hours to reading the blog, the forum and our Gitter channel to understand the power this application has and the many things it can do.

Here are some other interesting links you can have a look at:

Thank you very much for your help and contribution.

coreBOS Team

corebos's People

Contributors

albanacelepija avatar albertxhani avatar asubaruwrxsti avatar brandon-garcia avatar denaldhushi avatar edliradushku avatar egiliad avatar evolutivo avatar fatjola avatar geofreybundala avatar george1806 avatar glorymoshi avatar joebordes avatar jonasinaj avatar jsanga1j avatar kikojover avatar klivstudiosynthesis avatar loridacito avatar luke1982 avatar maliknajjar avatar mikel1995 avatar mikelkasneci avatar mocodertz avatar ochu-elhadji avatar omarllorens avatar polanskiman avatar shibe2017 avatar shibe2018 avatar tebajanga avatar xhildashazivari avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

corebos's Issues

cbEmployee (Users)

We created an employee module many years ago. The final goal is to use this module to substitute the users settings extension.

Error when trying to import .csv into Contacts

Import starts (after properly completing steps 1 - 3) and then seems to hang indefinitely. Enabling PHP error tracking brought up:

Fatal error: Class 'PBXManagerAfterSaveHandler' not found in /var/www/corebos-master/include/events/VTEventTrigger.inc on line 140

Best regards

PS: Import didn't offer a field Contact-ID to fil in from .csv!

Missing install of

Pls. add this code to CreateTables.inc.php in function populateLinks() before installation to enable display of 'Contact Hierarchy' in 'DetailView.tpl' (Pull request w/code follows):

$contactInstance = Vtiger_Module::getInstance('Contacts');
        $contactInstance->addLink(
                'DETAILVIEWBASIC', 'LBL_ADD_NOTE', 
                'index.php?module=Documents&action=EditView&return_module=$MODULE$&return_action=DetailView&return_id=$RECORD$&parent_id=$RECORD$',
                'themes/images/bookMark.gif'
        );
        $contactInstance->addLink('DETAILVIEWBASIC', 'LBL_SHOW_CONTACT_HIERARCHY', 'index.php?module=Contactss&action=ContacttHierarchy&contactid=$RECORD$');
...```

Best regards

Graphs drill doesn't have all the parameters

After migrating to chartjs we have lost the graphs section parameters. I suppose that these values are being generated as this worked before but we must find them and add them back.

Google GMail integration

This is one of the most requested functionality and I have a good starting point donated by a user of coreBOS

Eliminate uitype 59

Migrate uitype 59 on FAQ and Ticket to uitype 10 and eliminate all references to 59

Error: Quick Create ToDo

Due Date should be greate than Start Date

Start Date: 2015-12-21
Due ate: 2015-12-31

Best regards

Convert mass edit to SSE

Mass editing can be a very long running process. Sending a request to modify a couple of fields on 1000 records can take a long time. Currently, coreBOS sends this request and waits for the process to end.

This can produce timeouts in the browser or, worse, on the webserver.

So, the idea is to modify mass edit to send a message with the work to be done. Then the task manager will do the work in background so there is no timeout issues and no blocking in the browser. The background task will report its progress as messages on the queue which will be consumed by a browser process that reads the messages and informs of the progress on screen. This will probably be implemented using server side events and service workers.

Anyone else notice open sessions?

I'm noticing a lot of extra sessions left open on server between localhost-mysql when running corebos. Anyone else noticing this? I'm testing CoreBOS and Vtiger 6.3. I have not noticed this with vtiger 6.3. Any ideas?

Sort column in filters

Add sorting setting on filters so we can define how the filter should be shown on initial load without having to click on the column

webservices/Update.php attachments issue

Ok, may be it is me, and maybe not :-)

I am trying to add an Image to a Product but I think there may be an issue with the array handling in Update.php

here's the code:

	if (!empty($element['attachments'])) {
		foreach ($element['attachments'] as $fieldname => $attachment) {
			$filepath = $root_directory.'storage/'.$attachment['name'];
			file_put_contents($filepath, base64_decode($attachment['content']));
			$_FILES[$fieldname] = array(
				'name' => $attachment['name'],
				'type' => $attachment['type'],
				'tmp_name' => $filepath,
				'error' => 0,
				'size' => $attachment['size']
			);
		}

I realised this should theoretically handle multiple attachments.

I have an array as follows (see he screenshot):

$element
=> attachments
==> content
==> name
==> size
==> type

First issue is the $filepath... $attachment['name] shows the correct filename but I actually end up with a path like this:

....corebos/storage/i

So the $filepath seems not quite right somehow.

file_put_contents then fails.

Second I would have expected it to have been something like:

.....corebos/storage/2017/August/weekx/123456_image001.jpg ??(where 123456 is the id)

attachments1

cbCompany initial steps towards multicompany

We have created a company module to substitute the settings organization.

We need to:

  • install the module
  • migrating the information that is in Settings to the default record of the new module
  • eliminate the company settings section
  • change all the code that accesses the current organization table to access the default company on the module

In the future, we will enhance this to get company information from the company selected on the records

Our sites

At our sites bookmarks with https not working.

Https sites block that open inside form.

Create a option for open bookmark at new window at this case

Reports Configuration Step 7 style error

Using Chrome.
In step 7 of creating/editing a report the standard conditions are hidden but the height of the hidden rows is respected as a big blank space. The div inside the rows are hidden but the rows aren't so, for some reason the height the div will have is reserved.

errorcfginformechrome01

errorcfginformechrome02

In Firefox this looks correct:

errorcfginformefirefox

The code is in:

Smarty/templates/ReportFilters.tpl

Error : fieldname in general.js

Hi,
using latest code (no custom code , using MajorLabel Theme) :
Uncaught ReferenceError: fieldname is not defined
doformValidation @ general.js?v=5.5.0:1127
dtlviewModuleValidation @ dtlviewajax.js:486
dtlViewAjaxSave @ dtlviewajax.js:147
onclick @ index.php?action=DetailView&module=Contacts&parenttab=Marketing&record=2&activity_mode=&viewname=0&โ€ฆ:1479

Mautic integration

Initial integration with Mautic
They already have a vtigercrm integration based on webservice, so this should be easy.
This would be a PR for the Mautic project.

Send FAQ by Email

I was wondering if there was a way to send an FAQ (probably through a template) to a client.

To give an example of a situation:

We have a bug in a program, we make an FAQ out of the ticket. Another customer calls in with the same issue. The desk support person sends them the FAQ with the workaround.

Translate picklist values for searching

Use coreBOS translation module to correctly translate picklist values on search

The way picklists are designed is to save the exact picklist value in the database field, this is very nice for searching IF we use only one language, but it makes it almost impossible to get right in a multi-language install. In order to get this right, we have created the coreBOS translation module.

Webservices Warning: Invalid argument supplied for foreach() in Campaigns.php on line 427

I was trying to run the a webservice query and kept getting an error.
I was trying to get Contacts related to a Campaign.

    $docID = '17x130433'; // Campaign
    $module = "Campaigns";
    $relModule = "Contacts";
    $queryParameters = array (
      'limit'=> '3',
      'offset'=>'0'//,
      //'orderby'=> ''
    );
        $params = array(
            "sessionName" => $this->token,
            "operation" => "getRelatedRecords",
            "id" => $docID,
            "module" => $module,
            "relatedModule" => $relModule,
            "queryParameters" => json_encode($queryParameters)
        );

Here was the error:

( ! ) Warning: Invalid argument supplied for foreach() in /home/e-smith/files/ibays/testbay/html/corebos/modules/Campaigns/Campaigns.php on line 427

1 | 0.0010 | 767544 | {main}( ) | ../webservice.php:0
2 | 0.3448 | 43563728 | OperationManager->runOperation( ) | ../webservice.php:172
3 | 0.3448 | 43564568 | call_user_func_array:{include/Webservices/OperationManager.php:138} ( ) | ../OperationManager.php:138
4 | 0.3448 | 43565328 | getRelatedRecords( ) | ../OperationManager.php:138
5 | 0.3634 | 43955608 | __getRLQuery( ) | ../GetRelatedRecords.php:75
6 | 0.5029 | 45762120 | call_user_func_array:{/home/e-smith/files/ibays/testbay/html/corebos/include/Webservices/GetRelatedRecords.php:293} ( ) | ../GetRelatedRecords.php:293
7 | 0.5029 | 45762640 | Campaigns->get_contacts( ) | ../GetRelatedRecords.php:293
8 | 0.5505 | 45849000 | Campaigns->add_status_popup( ) | ../Campaigns.php:300

Seems that the Campaigns.php expects $related_list['entries'] to be set, which it isn't if this is a WS query.

I did the following hack which works, but could probably be dealt with a lot better :-)

--- a/modules/Campaigns/Campaigns.php
+++ b/modules/Campaigns/Campaigns.php
@@ -424,17 +424,22 @@ class Campaigns extends CRMEntity {
 				$this->campaignrelstatus[$row['campaignrelstatus']] = $r;
 			}
 		}
-		foreach($related_list['entries'] as $key => &$entry)
-		{
-			$popupitemshtml = '';
-			foreach($this->campaignrelstatus as $campaingrelstatus)
-			{
-				$camprelstatus = $campaingrelstatus['campaignrelstatusi18n'];
-				$popupitemshtml .= "<a onmouseover=\"javascript: showBlock('campaignstatus_popup_$key')\" href=\"javascript:updateCampaignRelationStatus('$related_module', '".$this->id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus</a><br />";
-			}
-			$popuphtml = '<div onmouseover="javascript:clearTimeout(statusPopupTimer);" onmouseout="javascript:closeStatusPopup(\'campaignstatus_popup_'.$key.'\');" style="margin-top: -14px; width: 200px;" id="campaignstatus_popup_'.$key.'" class="calAction"><div style="background-color: #FFFFFF; padding: 8px;">'.$popupitemshtml.'</div></div>';
-
-			$entry[$status_column] = "<a href=\"javascript: showBlock('campaignstatus_popup_$key');\">[+]</a> <span id='campaignstatus_$key'>".$entry[$status_column]."</span>".$popuphtml;
+	
+		if (isset($related_list['entries'])) {
+			
+				foreach($related_list['entries'] as $key => &$entry)
+				{
+					$popupitemshtml = '';
+					foreach($this->campaignrelstatus as $campaingrelstatus)
+					{
+						$camprelstatus = $campaingrelstatus['campaignrelstatusi18n'];
+						$popupitemshtml .= "<a onmouseover=\"javascript: showBlock('campaignstatus_popup_$key')\" href=\"javascript:updateCampaignRelationStatus('$related_module', '".$this->id."', '$key', '".$campaingrelstatus['campaignrelstatusid']."', '".addslashes($camprelstatus)."');\">$camprelstatus</a><br />";
+					}
+					$popuphtml = '<div onmouseover="javascript:clearTimeout(statusPopupTimer);" onmouseout="javascript:closeStatusPopup(\'campaignstatus_popup_'.$key.'\');" style="margin-top: -14px; width: 200px;" id="campaignstatus_popup_'.$key.'" class="calAction"><div style="background-color: #FFFFFF; padding: 8px;">'.$popupitemshtml.'</div></div>';
+		
+					$entry[$status_column] = "<a href=\"javascript: showBlock('campaignstatus_popup_$key');\">[+]</a> <span id='campaignstatus_$key'>".$entry[$status_column]."</span>".$popuphtml;
+				}
+				
 		}
 		return $related_list;
 	}

I haven't tested other combinations yet but am wondering if similar issues exist elsewhere.

activity reminder issue on jqueryversion

Hi,

when using the jqueryversion. no reminder pops up on the screen

seems the issue come on general.js file
line 3107

if(typeof(Ajax) == 'undefined') {
return;
}

External report opens direct on view page

  • create a new report of type "External application"
  • type in the URL: http://corebos.org (or any other)
  • save the report
  • you get directed to the view page which is incorrect, you should be directed to the reports folder page and open the URL in another window/tab
  • if you now select another report from the folder (picklist in upper right corner) and then select the external report URL, it opens again in the same view when it should be opening in a new window/tab

MailManager: email on any module

We recently added support for emails on all modules that have an email field. We have to extend the MailManager to respect this and also work correctly with any module that has an email field.

Webservice Create fails with database error

Here's an odd one then.

I am trying to Create a Product. Very simple:

$assignedUserId = "1";// This is the 'Handler' in the Product Record - need to find the user or group, or at least fix it.
$moduleName = 'Products';
$productName = "Widget Five";
$newRecord  = array('productname'=>$productName, 'assigned_user_id'=>$assignedUserId);
// We add it
$createRec = $crmobject->addrecord($moduleName, $newRecord);

For some odd reason I cannot yet understand, the object is created in the DB, but CRMEntity->save does another retrieve after creating the record, and this then fails.

The attached image shows where we got to in debugging:

createfail

You can see the entry is created (so I am not going mad!):

dbentry

Any ideas ?

Inventory module tax support via web service

Working with inventory modules via web service does not support defining taxes for the record, it uses the taxes defined in the system at the moment of creation.

We must get the taxes to apply from the input information and use those

Report - Filter date on related module

Hi to all and thanks in advance to anyone that can help me.

I created a new custom report form the starting module "account" . Then i have inserted as related module "comments".

The report work fine but when i filter it with the date on related module the result is wrong.

  • I put the date during the creation of the report.
  • I put standard filter "comment - date creation" last 7 days
    and in this way the result is not correct

Can someone help me or someone has already solved this issue?
Thanks a lot

Mike

Mobile login page boxes need some margin

Just started playing with the Mobile front end and noting stuff as I go.

The Login page has the boxes going right to the edge.

I think a small change to the css like this might help (not sure how this affects it elsewhere so not hacking to much)

theme.css around line 44

ui-field-contain
margin: 0.5em;

Without:

mobile1

With:
mobile2

Duplicate contacts on Lead conversion

In some lead conversions, two duplicate contacts are created. I don't know the exact steps but it happens a lot with the coreBOS Tests database

We must find the steps to reproduce it and fix the problem.

WebServices/DataTransform Typos

Found a misspelling of 'notification' inherited from vTiger:

[root@home Webservices]# diff -ruN DataTransform.php.old DataTransform.php
--- DataTransform.php.old	2017-08-14 10:20:34.102900806 +0200
+++ DataTransform.php	2017-08-14 10:21:36.692882669 +0200
@@ -108,9 +108,9 @@
 				$row['contact_id'] = implode(';', $ctowsids);
 			}
 		} elseif(strtolower($meta->getEntityName()) == "calendar") {
-			if(empty($row['sendnotification']) || strtolower($row['sendnotificaiton'])=='no'
-					|| $row['sendnotificaiton'] == '0' || $row['sendnotificaiton'] == 'false'
-					|| strtolower($row['sendnotificaiton']) == 'n') {
+			if(empty($row['sendnotification']) || strtolower($row['sendnotification'])=='no'
+					|| $row['sendnotification'] == '0' || $row['sendnotification'] == 'false'
+					|| strtolower($row['sendnotification']) == 'n') {
 				unset($row['sendnotification']);
 			}
 		}

Faster Reports

Hi,

I accomplished to make SalesOrder Report faster. From "500 Error" to 10 sec of query and just with this statement in database:

ALTER TABLE vtiger_invoice_recurring_info ADD PRIMARY KEY (salesorderid);

I dont know where you create database, so I made an Issue, hope you dont mind :)

Convert Profile edit to SSE or Ajax

Profile editing has a lot of variables, too many to manage correctly so we must change the way this works either moving it to Ajax or, better SSE

Mobile webpage cannot associate Organisation

Sure this isn't a biggy but I added a Contact, then an Organisation

I went back to the Contact and tried to link an organisation.

I get the search box, can type in letters, but do not seem to be able to search for anything.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.