Make function for repeating code

Make function for repeating code

Hi,

It's me again with my questions... 😅

In my Creator app, there's code that repeats itself in several places. And repeating code necessarily means optimization.

So I'm trying to create a custom function to centralize my code in a single place and call the function in each script where I need it.

However, depending on the script where I need it, I reference different inputs. So I should be able to pass them as parameters, but that doesn't work.

Furthermore, these inputs are subform inputs, so the function must be able to target the subform, then the input.

Could you help me solve my challenge, please? Thank you!

Here's the information:


In my function, I try to get subform :
  1. void test(string subform)
  2. {
  3. // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
  4. totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_materiaux"));
  5. totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_finition"));
  6. totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_quincaillerie"));
  7. totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_list_prix_frais_supp"));
  8. totalAvantTaxes = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("Sous_total_avant_taxes"));
  9. totalTps = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tps"));
  10. totalTvq = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("total_tvq"));
  11. grandTotal = thisapp.CheckFieldsIfNull(creer_soumission.subform().get("sous_total"));
  12. // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
  13. totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - creer_soumission.subform().get("total_prix_frais_supp");
  14. // Mettre à jour les totaux globaux
  15. totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
  16. totalTps = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tps_taxe"));
  17. totalTvq = thisapp.CalculateTax(totalAvantTaxes,creer_soumission.subform().get("tvq_taxe"));
  18. // Mettre à jour les inputs
  19. creer_soumission.subform().get("total_list_prix_materiaux") = totalPrixMateriauxGlobal;
  20. creer_soumission.subform().get("total_list_prix_finition") = totalPrixFinitionGlobal;
  21. creer_soumission.subform().get("total_list_prix_quincaillerie") = totalPrixQuincaillerieGlobal;
  22. creer_soumission.subform().get("total_list_prix_frais_supp") = totalPrixFraisSuppGlobal;
  23. creer_soumission.subform().get("Sous_total_avant_taxes") = totalAvantTaxes;
  24. creer_soumission.subform().get("total_tps") = totalTps;
  25. creer_soumission.subform().get("total_tvq") = totalTvq;
  26. creer_soumission.subform().get("sous_total") = grandTotal;
  27. }
This code give an error :


The original script in all script in my app is :
  1. // Initialiser les totaux globaux avec leurs valeurs respectives, utilisation de la fonction personnalisée CheckFieldsIfNull
  2. totalPrixMateriauxGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_materiaux);
  3. totalPrixFinitionGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_fintion);
  4. totalPrixQuincaillerieGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_quincaillerie);
  5. totalPrixFraisSuppGlobal = thisapp.CheckFieldsIfNull(input.total_list_prix_frais_supp);
  6. totalAvantTaxes = thisapp.CheckFieldsIfNull(input.Sous_total_avant_taxes);
  7. totalTps = thisapp.CheckFieldsIfNull(input.total_tps);
  8. totalTvq = thisapp.CheckFieldsIfNull(input.total_tvq);
  9. grandTotal = thisapp.CheckFieldsIfNull(input.sous_total);

  10. // Soustraire le prix total de la ligne supprimée au prix total du sous-formulaire
  11. totalPrixFraisSuppGlobal = totalPrixFraisSuppGlobal - row.total_prix_frais_supp;

  12. // Mettre à jour les totaux globaux
  13. totalAvantTaxes = totalPrixFinitionGlobal + totalPrixMateriauxGlobal + totalPrixQuincaillerieGlobal + totalPrixFraisSuppGlobal;
  14. totalTps = thisapp.CalculateTax(totalAvantTaxes,input.tps_taxe);
  15. totalTvq = thisapp.CalculateTax(totalAvantTaxes,input.tvq_taxe);
  16. grandTotal = totalAvantTaxes + totalTps + totalTvq;

  17. // Mettre à jour les inputs
  18. input.total_list_prix_materiaux = totalPrixMateriauxGlobal;
  19. input.total_list_prix_fintion = totalPrixFinitionGlobal;
  20. input.total_list_prix_quincaillerie = totalPrixQuincaillerieGlobal;
  21. input.total_list_prix_frais_supp = totalPrixFraisSuppGlobal;
  22. input.Sous_total_avant_taxes = totalAvantTaxes;
  23. input.total_tps = totalTps;
  24. input.total_tvq = totalTvq;
  25. input.sous_total = grandTotal;

Thank you all :)

      Zoho Campaigns Resources


        • Desk Community Learning Series


        • Digest


        • Functions


        • Meetups


        • Kbase


        • Resources


        • Glossary


        • Desk Marketplace


        • MVP Corner


        • Word of the Day


        • Ask the Experts


          Zoho CRM Plus Resources

            Zoho Books Resources


              Zoho Subscriptions Resources

                Zoho Projects Resources


                  Zoho Sprints Resources


                    Zoho Orchestly Resources


                      Zoho Creator Resources


                        Zoho WorkDrive Resources



                          Zoho CRM Resources

                          • CRM Community Learning Series

                            CRM Community Learning Series


                          • Tips

                            Tips

                          • Functions

                            Functions

                          • Meetups

                            Meetups

                          • Kbase

                            Kbase

                          • Resources

                            Resources

                          • Digest

                            Digest

                          • CRM Marketplace

                            CRM Marketplace

                          • MVP Corner

                            MVP Corner




                            Zoho Writer Writer

                            Get Started. Write Away!

                            Writer is a powerful online word processor, designed for collaborative work.

                              Zoho CRM コンテンツ



                                ご検討中の方