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 168.73 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 Issues

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.

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

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

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

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']);
 			}
 		}

Google GMail integration

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

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

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

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

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.

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;
}

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

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.

Eliminate uitype 59

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

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

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

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!

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.

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.

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

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 ?

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 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.

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.

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

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

Error: Quick Create ToDo

Due Date should be greate than Start Date

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

Best regards

cbEmployee (Users)

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

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?

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.