Bill Lyon

My feedback

  1. 202 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    20 comments  ·  Zoho Invoice » Projects  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    An error occurred while saving the comment
    Bill Lyon commented  · 

    PROGRESS INVOICING - work-around

    Kyle, I tried for several years to implement Progress Invoicing. I finally gave up and canceled my subscription. Very soon after I canceled, ZOHO contacted me and asked what they could do to get me back, and I told them...again...Progressive Invoicing. Within 2 days they sent me this work-around for Progressive Invoicing. I didn't quite figure out how to follow the instructions and I think there may be some typos in the script. i.e. see "Estimte ID is Null" on last line.

    ========== BEGIN =========
    Setup for Progress Invoicing:
    As promised, our developers have come up with a work-around to achieve progressive invoicing in Zoho Invoice. Before I guide you with the instructions, let me explain how this works.
    The invoicing is based on an estimate you create. For e.g: Assume you create an Estimate for $100. You can convert that estimate to an invoice. When you are on the invoice creation page, you need to change the Rate of how much you wish to be invoiced. Say you change the rate to $50. You will have to create a pair of custom fields for both the estimate and invoice module. These fields will display the Total Due and the Balance to be paid accordingly. The custom function executes every time you convert that estimate to an invoice. So you can create multiple invoices from the same estimate with the progressive rates that you want to collect every time until the whole payment is collected.
    Progress Invoicing setup instructions:
    Progress Invoicing custom function:

    Paste the custom function attached to this email in the space available. Replace the XXXXX in the 12th line with the authtoken that you generate from this link<https://accounts.zoho.com/apiauthtoken/create?SCOPE=ZohoInvoice%2Finvoiceapi>. Save the custom function.
    2019-01-22 authtoken: 9b3ef4a273520987ce38aa44dbafb9b4

    = https://invoice.zoho.com/portal/billlyonenterprises Client Portal
    =
    = user defined field “AMT DUE NOW” is stored in: tmp_entity_cfvalue1
    =
    =
    =
    PROGRESS INVOICING custom function: (script)
    invoiceID = invoice.get("invoice_id");
    orgID = organization.get("organization_id");
    estimateID = invoice.get("estimate_id").toLong();
    if(estimateID.toString() != "")
    {
    estimate = zoho.invoice.getRecordById("Estimates",orgID,estimateID);
    estimateMap = estimate.get("estimate");
    if(estimateMap != null && !estimateMap.isEmpty())
    {
    invoicedAmount = 0.00;
    balanceAmount = 0.00;
    invoices = getUrl("https://invoice.zoho.com/api/v3/invoices?authtoken=XXXXX&estimate_id=&quot; + estimateID + "&organization_id=" + orgID).toMap();
    invoiceList = invoices.get("invoices").toList();
    for each inv in invoiceList
    {
    inv = inv.toMap();
    invoicedAmount = invoicedAmount + inv.get("total").toDecimal();
    }
    estimatetotal = estimateMap.get("total").toDecimal();
    balanceAmount = estimatetotal - invoicedAmount;
    customfields = List();
    customfield1 = Map();
    customfield1.put("label","Total Invoiced");
    customfield1.put("value",invoicedAmount);
    customfield2 = Map();
    customfield2.put("label","Balance Due");
    customfield2.put("value",balanceAmount);
    customfields.add(customfield1);
    customfields.add(customfield2);
    json = Map();
    json.put("custom_fields",customfields);
    result = zoho.invoice.update("Estimates",orgID,estimateID,json);
    info result.toMap().get("message");
    customfields = List();
    customfield1 = Map();
    customfield1.put("label","Total Due");
    customfield1.put("value",estimatetotal);
    customfield2 = Map();
    customfield2.put("label","Balance Pending");
    customfield2.put("value",balanceAmount);
    customfields.add(customfield1);
    customfields.add(customfield2);
    json = Map();
    json.put("custom_fields",customfields);
    result = zoho.invoice.update("invoices",orgID,invoiceID,json);
    }
    else
    {
    info "estimate ID is invalid";
    }
    }
    else
    {
    info "Estimte ID is Null";
    }
    =========== END ===========

    An error occurred while saving the comment
    Bill Lyon commented  · 

    Brian, I've sent my last ZOHO invoice. I have been waiting for them to add Progress Billing for three years, to no avail. Using ZOHO I have to keep separate notes on each client's balance.

    I'm going back to PayPal's free service...they are NOT going to listen!

    An error occurred while saving the comment
    Bill Lyon commented  · 

    This is a MUST for ZOHO Invoice. IT is a mess invoicing WITHOUT this feature.

    Bill Lyon supported this idea  · 
  2. 380 votes
    Vote

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    You have left! (?) (thinking…)
    15 comments  ·  Zoho Books  ·  Flag idea as inappropriate…  ·  Admin →

    How important is this to you?

    We're glad you're here

    Please sign in to leave feedback

    Signed in as (Sign out)
    An error occurred while saving the comment
    Bill Lyon commented  · 

    Agreed. Much of what displays on the Dashboard now it not what I need to see.

    Bill Lyon supported this idea  · 

Feedback and Knowledge Base