calculate the total amount in the field

Collapse
X
 
  • Time
  • Show
Clear All
new posts

  • alter
    replied
    Hi, as espcrm correctly responded, one way to do this is via Formula - easier way for non programming users.

    Another way is to write a custom code using afterSave() entity, which would automatically sum all values from ROZPOTYs and updated ID CISLO UNIE - after saving your ROZPOTYs record.

    You can see here example code for recalculating Opportunity 'Amount' field everytime I add new or remove OpportunityProduct (custom entity) to the Opportunity:

    Info: The method recalculateOpportunityPrice() is being called from afterSave() method on OpportunityProduct


    PHP Code:
    /**
    * @param Entity $opportunity Opportunity that its Amount should be recalculated.
    * @returns void Since it only recalculates Amount on Opportunity, nothing is returned.
    */
    private function recalculateOpportunityPrice(Entity $opportunity): void
    {
    $entityManager = $this->entityManager;
    
    $opportunityProducts = $entityManager
    ->getRepository($this->entityType)
    ->getRelation($opportunity, 'opportunityProducts')
    ->find();
    
    $totalAmount = 0.00;
    
    foreach ($opportunityProducts as $opportunityProduct)
    {
    $price = $opportunityProduct->get('totalPrice');
    
    $totalAmount += $price;
    }
    
    $opportunity->set('amount', $totalAmount);
    
    $entityManager->saveEntity($opportunity);
    
    } 
    
    Last edited by alter; 09-21-2021, 02:09 PM.

    Leave a comment:


  • esforim
    replied
    You can probably use this formula: https://docs.espocrm.com/administrat...titysumrelated

    I haven't use it so can't give you advice on how-to.

    Edit: Thinking about this I decide to give it a try, took a few minutes to learn how to do it, anyway here how I did it.

    Main entity: Contact
    (Custom) Many-to-Many Entity: Assets

    In Contact I create a field call, "totalAssets"
    In Assets I create a field call, "assetValue"

    The formula I end up using is:

    // Calculate Total Assets
    totalAsset = entity\sumRelated('assets', 'assetValue');

    ---

    So it working all nice and good in that it calculate correctly based on my test, the issue here it doesn't refresh the data until I make edit to the Contact... so I think you would need to auto refresh some data using Workflow or you have to use beforesaveHook instead of formula (which is aftersave). Hook is a topic I'm too ignorant in though.

    So I guess it not too hard to use the formula above, change assets to the Entity you want, and 'totalAsset' 'assetValue' to the field you want. In your case I think

    Assets = ROZpoty
    totalAsset = IDcisloUNIE
    assetValue = celkova...
    Last edited by esforim; 09-20-2021, 06:50 AM.

    Leave a comment:


  • shalmaxb
    replied
    Hi, where do the values in the bottom come from?

    Leave a comment:


  • sumservis
    replied

    Leave a comment:


  • sumservis
    started a topic calculate the total amount in the field

    calculate the total amount in the field



    Hello, I would like to calculate the total amount in the field on the occasion (see attached screen), how can I do this?

Working...