How To Create Invoice Using Zoho CRM In ASP.NET MVC

Introduction

In this article, we will learn how to create an invoice using Zoho CRM in ASP.NET MVC Web application.

Let’s begin

Please read this article first of all here.

If you have not seen How to Create Product using Zoho CRM then I recommend you to see that first. in that article, I described how to Create a Product using Zoho CRM.

C# Code Example

Open the HomeController.cs file and add the below code in it.

public void CreateInvoice()
{
    try
    {
        ZCRMModule moduleIns1 = ZCRMModule.GetInstance("products"); //module api name
        BulkAPIResponse<ZCRMRecord> response1 = moduleIns1.GetRecords();
        List<ZCRMRecord> relatedLists = response1.BulkData;
        ZCRMModule moduleInsAccounr = ZCRMModule.GetInstance("accounts"); //module api name
        BulkAPIResponse<ZCRMRecord> responseAccount = moduleInsAccounr.GetRecords();
        List<ZCRMRecord> relatedListsAccount = responseAccount.BulkData;
        List<ZCRMRecord> listRecord = new List<ZCRMRecord>();
        ZCRMRecord record;

        record = ZCRMRecord.GetInstance("invoices", null); //To get ZCRMRecord instance
        record.SetFieldValue("Subject", "Invoice4"); //This method use to set FieldApiName and value similar to all other FieldApis and Custom field 
        record.SetFieldValue(relatedListsAccount[0].CreatedBy.FullName, relatedListsAccount[0].CreatedBy.Id);
        record.SetFieldValue("Company", "your company name");
        record.SetFieldValue("Last_Name", "your last name");
        record.SetFieldValue("Customfield", "CustomFieldValue");
        record.SetFieldValue("Price_Book_Name", "Price_Book_Name");

        ZCRMPriceBookPricing pricing;

        pricing = new ZCRMPriceBookPricing
        {
            ToRange = 5,
            FromRange = 1,
            Discount = 0
        };
        record.AddPriceDetail(pricing);

        pricing = new ZCRMPriceBookPricing
        {
            ToRange = 11,
            FromRange = 6,
            Discount = 1
        };
        record.AddPriceDetail(pricing);

        pricing = new ZCRMPriceBookPricing
        {
            ToRange = 17,
            FromRange = 12,
            Discount = 2
        };
        record.AddPriceDetail(pricing);

        pricing = new ZCRMPriceBookPricing
        {
            ToRange = 23,
            FromRange = 18,
            Discount = 3
        };
        record.AddPriceDetail(pricing);

        record.SetFieldValue("Pricing_Model", "Flat");
        ZCRMTax linetax;
        linetax = ZCRMTax.GetInstance("Sales Tax");
        linetax.Percentage = 12.5;
        record.AddTax(linetax);

        ZCRMRecord product = ZCRMRecord.GetInstance("Products", relatedLists[0].EntityId); // product instance
        ZCRMInventoryLineItem lineItem = new ZCRMInventoryLineItem(product); //To get ZCRMInventoryLineItem instance
        lineItem.Description = "Product_description"; //To set line item description
        lineItem.Discount = 5; //To set line item discount
        lineItem.ListPrice = 100; //To set line item list price

        ZCRMTax taxInstance1 = ZCRMTax.GetInstance("Sales Tax"); //To get ZCRMTax instance
        taxInstance1.Percentage = 2; //To set tax percentage
        taxInstance1.Value = 50; //To set tax value
        lineItem.AddLineTax(taxInstance1); //To set line tax to line item

        taxInstance1 = ZCRMTax.GetInstance("Vat");
        taxInstance1.Percentage = 12;
        taxInstance1.Value = 50;
        lineItem.AddLineTax(taxInstance1);

        lineItem.Quantity = 100; //To set product quantity to this line item

        record.AddLineItem(lineItem); //The line item set to the record object
                                      /** End Inventory **/


        listRecord.Add(record);
        ZCRMModule moduleIns = ZCRMModule.GetInstance("invoices");
        List<string> trigger = new List<string>() { "workflow", "approval", "blueprint" };
        string larID = "3477053013";
        BulkAPIResponse<ZCRMRecord> responseIns = moduleIns.CreateRecords(listRecord); //To call the create record method

        Console.WriteLine("HTTP Status Code:" + responseIns.HttpStatusCode);  
    }
    catch (Exception ex)
    {

        throw;
    }
   
}

 

Get All Invoice Data

public void GetAllInvoicesData()
{
    ZCRMModule moduleIns = ZCRMModule.GetInstance("invoices"); //module api name
    BulkAPIResponse<ZCRMRecord> response = moduleIns.GetRecords();
    List<ZCRMRecord> relatedLists = response.BulkData;
}

 

if you have any questions or issues about this article, please let me know and more details here

 

 

Submit a Comment

Your email address will not be published.

Subscribe

Select Categories