Snippets Collections
{
  "mcpServers": {
    "github": {
      "command": "docker",
      "args": [
        "run",
        "-i",
        "--rm",
        "-e",
        "GITHUB_PERSONAL_ACCESS_TOKEN",
        "ghcr.io/github/github-mcp-server"
      ],
      "env": {
        "GITHUB_PERSONAL_ACCESS_TOKEN": "<YOUR_TOKEN>"
      }
    }
  }
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/",
      "headers": {
        "Authorization": "Bearer ${input:github_mcp_pat}"
      }
    }
  },
  "inputs": [
    {
      "type": "promptString",
      "id": "github_mcp_pat",
      "description": "GitHub Personal Access Token",
      "password": true
    }
  ]
}
{
  "servers": {
    "github": {
      "type": "http",
      "url": "https://api.githubcopilot.com/mcp/"
    }
  }
}
devpod up https://github.com/up209d/ResourcesSaverExt
void automation.Send_Ack_Letter_Mail_Merge(Int pop_id)
{
pop_details = zoho.crm.getRecordById("POP_Requests",pop_id);
info "pop_details ==>" + pop_details;
Customer_Name = pop_details.get("Customer_Name");
info "Customer_Name ==>" + Customer_Name;
Project_owner = pop_details.get("Project");
info "Project_owner ==>" + Project_owner;
Project_name = Project_owner.get("name");
info "Project_name ==>" + Project_name;
mail_merge_template = Map();
mail_merge_template.put("name","POP Request Template");
from_address = Map();
from_address.put("type","email");
from_address.put("value",zoho.loginuserid);
to1 = Map();
to1.put("type","email");
to1.put("value","mumammad.kaleem@leosops.com");
to_address = list();
to_address.add(to1);
mail_merge_entry = Map();
mail_merge_entry.put("mail_merge_template",mail_merge_template);
mail_merge_entry.put("from_address",from_address);
mail_merge_entry.put("to_address",to_address);
mail_merge_entry.put("subject","Proof of Payment" + Customer_Name + "-" + Project_name);
mail_merge_entry.put("type","attachment");
mail_merge_entry.put("attachment_name","Proof of Payment" + Customer_Name + "-" + Project_name);
mail_merge_entry.put("message","Dear Team, Please find attached the Proof of Payment submitted for your reference.The details are as follows");
send_mail_merge = list();
send_mail_merge.add(mail_merge_entry);
input_payload = Map();
input_payload.put("send_mail_merge",send_mail_merge);
SendEmail = invokeurl
[
	url :"https://www.zohoapis.com/crm/v8/POP_Requests/" + pop_id + "/actions/send_mail_merge"
	type :POST
	parameters:input_payload.toString()
	connection:"mail_merge"
];
info SendEmail;
}
// Simplified Order Matching Logic (Node.js)

const matchOrders = async () => {
const buyOrders = await Orders.find({ type: 'buy' }).sort({ price: -1 });
const sellOrders = await Orders.find({ type: 'sell' }).sort({ price: 1 });

for (let buy of buyOrders) {
for (let sell of sellOrders) {
if (buy.price >= sell.price && buy.amount > 0 && sell.amount > 0) {
const tradeAmount = Math.min(buy.amount, sell.amount);

// Update buyer and seller balances (simplified)
await executeTrade(buy.userId, sell.userId, tradeAmount, sell.price);

// Adjust order amounts
buy.amount -= tradeAmount;
sell.amount -= tradeAmount;

await buy.save();
await sell.save();

console.log(`Executed trade for ${tradeAmount} BTC at ${sell.price} USD`);
}
}
}
};

This is just a basic logic snippet of a real-time order matching engine — the heart of any crypto exchange.

A full exchange platform developed by Fourchain includes:

✅ Advanced matching engine
✅ User wallets & KYC modules
✅ Admin dashboard
✅ Liquidity integration
✅ Trading charts (Candlestick, Order Book, Depth Chart)
✅ Fiat & crypto payment gateway
✅ DEX/OTC/spot/futures support (optional modules)
✅ 24/7 support & free consultation

💰 Cost: Starting from $8450 with free deployment
🚀 Delivery Time: 15–20 working days
🔐 Security: Full encryption, 2FA, DDOS protection

📩 Want the full source code with complete modules at a low cost?
Reach out to Fourchain to get a demo, consultation, and full feature list.

Let me know if you'd like this tailored for a specific tech stack (Laravel, React, Python, etc.) or use case (spot trading, DEX, NFT exchange).
<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.3.2/jquery.min.js?ver=1.3.2'></script>
<script type='text/javascript'>
    
    $(function(){
    
        var iFrames = $('iframe');
      
    	function iResize() {
    	
    		for (var i = 0, j = iFrames.length; i < j; i++) {
    		  iFrames[i].style.height = iFrames[i].contentWindow.document.body.offsetHeight + 'px';}
    	    }
    	    
        	if ($.browser.safari || $.browser.opera) { 
        	
        	   iFrames.load(function(){
        	       setTimeout(iResize, 0);
               });
            
        	   for (var i = 0, j = iFrames.length; i < j; i++) {
        			var iSource = iFrames[i].src;
        			iFrames[i].src = '';
        			iFrames[i].src = iSource;
               }
               
        	} else {
        	   iFrames.load(function() { 
        	       this.style.height = this.contentWindow.document.body.offsetHeight + 'px';
        	   });
        	}
        
        });

</script>
.face:hover {
  animation: shake 0.82s cubic-bezier(.36,.07,.19,.97) both;
  transform: translate3d(0, 0, 0);
  backface-visibility: hidden;
  perspective: 1000px;
}

@keyframes shake {
  10%, 90% {
    transform: translate3d(-1px, 0, 0);
  }
  
  20%, 80% {
    transform: translate3d(2px, 0, 0);
  }

  30%, 50%, 70% {
    transform: translate3d(-4px, 0, 0);
  }

  40%, 60% {
    transform: translate3d(4px, 0, 0);
  }
}
response = invokeurl
[
	url :"https://www.zohoapis.com/crm/v5/POP_Requests/" + pop_id + "/Attachments?fields=id,Owner,File_Name,Created_Time,Parent_Id"
	type :GET
	connection:"newzohocrm"
];

// Get attachment list
attachments_data = response.get("data");
file_id = "";

for each data in attachments_data
{
	file_id1 = data.get("id");

	// Download attachment
	download_response = invokeurl
	[
		url :"https://www.zohoapis.com/crm/v5/POP_Requests/" + pop_id + "/Attachments/" + file_id1
		type :GET
		connection:"newzohocrm"
	];
	download_response.setParamName("file");

	// Upload to Files
	upload_response = invokeurl
	[
		url :"https://www.zohoapis.com/crm/v6/files"
		type :POST
		files:download_response
		connection:"newzohocrm"
	];

	upload_data = upload_response.get("data");
	for each rec in upload_data
	{
		file_id = rec.get("details").get("id");
		info file_id;
	}
}

// Email parameters
from_email = "crm@leosuk.com";
manager_email_id = "muhammad.usman@leosops.com";

finallist = List();
frommp = Map();
frommp.put("email", from_email);
frommp.put("user_name", "LEOS Developments LLC");

mp = Map();
mp.put("from", frommp);

// To List (FIXED)
tomaplist = List();
tomap = Map();
tomap.put("email", manager_email_id);
tomap.put("user_name", "Usman");
tomaplist.add(tomap);
mp.put("to", tomaplist); // ✅ fixed

// Email Template
TemplateID = "5971686000095227019";
templatemap = Map();
templatemap.put("id", TemplateID);
mp.put("template", templatemap);
mp.put("org_email", true);

// Attachments
attachmentlist = List();
attachmentmap = Map();
attachmentmap.put("id", file_id);
attachmentlist.add(attachmentmap);
mp.put("attachments", attachmentlist);

// Final payload
finallist.add(mp);
finalmap = Map();
finalmap.put("data", finallist);
info finalmap;

// Send Email
send_mail_resp = invokeurl
[
	url :"https://www.zohoapis.com/crm/v5/POP_Requests/" + pop_id + "/actions/send_mail"
	type :POST
	parameters: finalmap.toString()
	connection:"newzohocrm"
];

info send_mail_resp;
Addus Technologies provides an easy start into high-frequency trading.  The Triangular Arbitrage Bot creates profit opportunities.  Easily capture price differences across multiple currency pairs. Begin trading smarter now.  If you're an investor or entrepreneur looking into Triangular Arbitrage Trading Bot Development, now is the moment to get accuracy, automation, and a real-time market advantage.
<form>
  <div class="form-group">
    <label for="exampleInputEmail1">Email address</label>
    <input type="email" class="form-control" id="exampleInputEmail1" aria-describedby="emailHelp" placeholder="Enter email">
    <small id="emailHelp" class="form-text text-muted">We'll never share your email with anyone else.</small>
  </div>
  <div class="form-group">
    <label for="exampleInputPassword1">Password</label>
    <input type="password" class="form-control" id="exampleInputPassword1" placeholder="Password">
  </div>
  <div class="form-check">
    <input type="checkbox" class="form-check-input" id="exampleCheck1">
    <label class="form-check-label" for="exampleCheck1">Check me out</label>
  </div>
  <button type="submit" class="btn btn-primary">Submit</button>
</form>
If you're looking to develop your fintech mobile app for your business then we listed out the various kind of needs based app development schedule for a fintech app

The journey typically begins with a discovery and planning phase, which involves market research, defining core features, and outlining the project scope. This foundational stage usually takes 2 to 5 weeks. Following this, the UI/UX design phase, focusing on user experience and interface prototyping, can span 3 to 5 weeks.

◦ The most time-consuming part is the development phase, where coding for both frontend (user apps) and backend (server, APIs, security) occurs. For a fintech app, this often takes 3 to 6 months, especially given the need for robust security features, third-party integrations, and scalable architecture.

◦ Finally, the testing and quality assurance (QA) phase, including security audits, is critical and can last 2 to 4 weeks. The ultimate deployment and launch to app stores typically wraps up in 1 to 2 weeks.

◦ Overall, a basic fintech app might take 3 to 6 months, while more complex solutions with advanced features and integrations could easily extend to 6-12 months or even longer.

Appticz provides specialized fintech app development services, guiding entrepreneurs from initial concept to market launch, ensuring robust, secure, and innovative solutions that align perfectly with their specific business goals.
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":xero-day-white: What's on this week! :xero-day-white:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday Canberra! \n\nLet's kick off another great week with our Boost Program and Xero Day on *Thursday* to celebrate our *19th Birthday*! :celebrate:\n\n "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-10: Thursday, 10th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n:lunch: *Lunch* -Make your own Fajitias :flag-mx: from *12.00pm* "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "plain_text",
				"text": "Stay tuned to this channel for your local updates, and jump into #xeroday-25 for all the global fun throughout the week! \n\nLove,\n\nWX  :party-wx:  ",
				"emoji": true
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":xero-day-white: What's on this week! :xero-day-white:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday Canberra! \n\nLet's kick off another great week with our Boost Program and Xero Day on *Thursday* to celebrate our *19th Birthday*! :celebrate:\n\n "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-10: Thursday, 10th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n\n:lunch: *Lunch* -Make your own Fajitias :flag-mx: from *12.00pm* "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "plain_text",
				"text": "Stay tuned to this channel for your local updates, and jump into #xeroday-25 for all the global fun throughout the week! \n\nLove,\n\nWX  :party-wx:  ",
				"emoji": true
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":x-connect: Xero Boost Days! :x-connect:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday Sydney! \n\nLet's kick off another great week with our Boost Program and Xero Day on *Thursday* to celebrate our *19th Birthday*! :celebrate:\n\nCheck out this week's exciting lineup:"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-9: Wednesday, 9th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Café Partnership*: Café Partnership: Enjoy free coffee and café-style beverages from our partner, *Naked Duck* \n\n :breakfast: *Breakfast*: from *9.00am* in the All Hands Space. \n:caramel-slice: Indigeous sweet treats in Celebration of NAIDOC week."
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-10: Thursday, 10th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": ":coffee: :lunch: * Italian Xero Day Lunch* from 12.00pm \n:Partying_face:*Social Happy Hour:* Enjoy tasty bites and celebratory drinks, great tunes and a special *Guess Who - Xero Edition* quiz from *4:00PM - 5:30PM* in the All Hands"
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Stay tuned to this channel for your local updates, and jump into #xeroday-25 for all the global fun throughout the week! \n\nLove,\n\nWX  :party-wx:"
			}
		}
	]
}
{
	"blocks": [
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":xero-day-white: What's on this week! :xero-day-white:"
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "Happy Monday Melbourne! \n\nLet's kick off another great week with our Boost Program and Xero Day on *Thursday* to celebrate our *19th Birthday*! :celebrate:\n\nCheck out this week's exciting lineup: "
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-9: Wednesday, 9th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and Indigeous sweet treats.\n:clipboard: *Barista Special*: _Pumpkin Spice Latte_.\n:Lunch: In celebration of NAIDOC week, we have an light lunch inspired by Australian native ingredients . Menu is in the :thread:"
			}
		},
		{
			"type": "header",
			"text": {
				"type": "plain_text",
				"text": ":calendar-date-10: Thursday, 10th July",
				"emoji": true
			}
		},
		{
			"type": "section",
			"text": {
				"type": "mrkdwn",
				"text": "\n:coffee: *Xero Café*: Café-style beverages and Indigeous sweet treats.\n:clipboard: *Barista Special*: _Pumpkin Spice Latte_.\n:lunch: *Xero Day Breakfast* from 8.30am -10.30am.\n:Partying_face:*Social Happy Hour:* Enjoy tasty bites and celebratory drinks, great tunes and a special *Guess Who - Xero Edition* quiz from *4:00PM - 5:30PM* on Level 3."
			}
		},
		{
			"type": "divider"
		},
		{
			"type": "section",
			"text": {
				"type": "plain_text",
				"text": "Stay tuned to this channel for your local updates, and jump into #xeroday-25 for all the global fun throughout the week! \n\nLove,\n\nWX  :party-wx:  ",
				"emoji": true
			}
		}
	]
}
@article{SernArbeloa2022MalnutritionSA,
  title={Malnutrition Screening and Assessment},
  author={Carlos Ser{\'o}n-Arbeloa and Lorenzo Labarta-Monz{\'o}n and Jos{\'e} Puzo-Foncillas and Tomas Mallor-Bonet and Alberto Lafita-L{\'o}pez and N{\'e}stor Bueno-Vidales and Miguel A. Montoro-Huguet},
  journal={Nutrients},
  year={2022},
  volume={14},
  url={https://api.semanticscholar.org/CorpusID:249667125}
}
Launch("https://api.whatsapp.com/send?phone="
       & AAA 
       & "&text=" 
       & BBB
)
var userID = $Crm.user.id;
console.log("userID==>", userID);
var userName = $Crm.user.first_name; // + " " + $Crm.user.last_name;
console.log("userName==>", userName);
var module = $Page.module;
console.log("module==>", module);
var module_recordID = $Page.record_id;
console.log("module_recordID==>", module_recordID);
var owner = ZDK.Page.getField('Owner').getValue();
console.log("owner==>", owner);
var ownerID = ZDK.Apps.CRM.Users.fetchById(owner.id);
console.log("owner==>", owner);
// Construct the map to include both fields you want to update

pop_details = ZDK.Apps.CRM.POP_Requests.fetchById(module_recordID);
console.log("pop_details==>", pop_details);

var created_time = ZDK.Page.getField('Created_By').getValue();
console.log("created_time==>", created_time);

var created_date = ZDK.Page.getField('Created_Date').getValue();
console.log("created_date==>", created_date);

var currentDate = new Date();
var currentDateOnly = currentDate.toISOString().split("T")[0];
console.log("Current Date Only:", currentDateOnly); 

var createdDateObj = new Date(created_date);
var currentDateObj = new Date(currentDateOnly);

var diffMs = currentDateObj - createdDateObj;
console.log("diffMs ==>", diffMs); 

var diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
console.log("diffDays ==>", diffDays); 

var aging_fiels = currentDateOnly - created_date;
console.log("aging_fiels ==>", aging_fiels); 

var map = {
    "Last_Viewed_User_ID": userID,
    "Aging_Field" : diffDays
};

console.log("User ID: " + userID);

// Prepare data for the API call
var datalist = [];
datalist.push(map);

var param = { "data": datalist };

// API call to update the record in Zoho CRM
var response = ZDK.Apps.CRM.Connections.invoke(
    "crmconn", 
    "https://www.zohoapis.com/crm/v5/" + module + "/" + module_recordID, 
    "PUT", 
    2, 
    param, 
    {}
);

$Client.refresh();
console.log("Response: ", response);
# List all vnet used spaces
az network vnet list \
  --query "[].{Name:name, ResourceGroup:resourceGroup, Location:location, AddressSpaces:addressSpace.addressPrefixes}" \
  -o jsonc
:where(.brxe-accordion .accordion-content-wrapper) a, :where(.brxe-icon-box .content) a, :where(.brxe-list) a, :where(.brxe-post-content):not([data-source=bricks]) a, :where(.brxe-posts .dynamic p) a, :where(.brxe-shortcode) a, :where(.brxe-tabs .tab-content) a, :where(.brxe-team-members) .description a, :where(.brxe-testimonials) .testimonial-content-wrapper a, :where(.brxe-text) a, :where(a.brxe-text), :where(.brxe-text-basic) a, :where(a.brxe-text-basic), :where(.brxe-post-comments) .comment-content a, :where(.brxe-text-link)
string standalone.Test_Mail_Merge_2(String pop_id)
{
	pop_details = zoho.crm.getRecordById("POP_Requests",pop_id);
	info "pop_details ==>" + pop_details;
	Customer_Name = pop_details.get("Customer_Name");
	info "Customer_Name ==>" + Customer_Name;
	Payment_Date = pop_details.get("Payment_Date");
	info "Payment_Date ==>"+Payment_Date;
	Amount_Paid = pop_details.get("Amount_Paid");
	info "Amount_Paid ==>"+Amount_Paid;
	Unit = pop_details.get("Unit");
	info "Unit ==>"+Unit;
	EOI_owner = pop_details.get("EOI");
	info "EOI_owner ==>"+EOI_owner;
	EOI = EOI_owner.get("name");
	info "EOI ==>"+EOI;
	Payment_Mode = pop_details.get("Payment_Mode");
	info "Payment_Mode ==>"+Payment_Mode ;
	Project_owner = pop_details.get("Project");
	info "Project_owner ==>" + Project_owner;
	Project_name = Project_owner.get("name");
	info "Project_name ==>" + Project_name;
	merge_doc_details = invokeurl
	[
	url: "https://www.zohoapis.com/writer/api/v1/documents/kphns9739e715cf504f968324d0e7a0d362a7/fields"
	type: GET
	connection: "mail_merge"
	];
	info "merge_doc_details ==>"+merge_doc_details;
	merge = merge_doc_details.get("merge");
	info "merge ==>"+merge;
	for each my_merge in merge
	{
		info "my_merge ==>"+my_merge;
		}
		attachment_id = "kphns9739e715cf504f968324d0e7a0d362a7";
		emailData = Map();
		fromDetails = Map();
		fromDetails.put("email",zoho.loginuserid);
		emailData.put("from",fromDetails);
		toList = list();
		toUser = Map();
		toUser.put("email","muhammad.kaleem@leosops.com");
		toList.add(toUser);
		emailData.put("to",toList);
		emailData.put("subject","Proof of Payment - " + Customer_Name + " - " + Project_name);
		emailData.put("org_email",false);
		// Attachments
		attachmentList = list();
		attachment = Map();
		attachment.put("id",attachment_id);
		attachmentList.add(attachment);
		emailData.put("attachments",attachmentList);
		// Email Template (Optional)
		template = Map();
		template.put("id","5971686000095227019");
		emailData.put("template",template);
		// Final Payload
		emailDataList = list();
		emailDataList.add(emailData);
		emailRequest = Map();
		emailRequest.put("data",emailDataList);
		inner_data = map();
		inner_data.put("id", pop_id); 
		inner_data.put("Customer_Name", Customer_Name);
		inner_data.put("Payment_Date", Payment_Date);
		inner_data.put("Project", Project_name);
		inner_data.put("Amount_Paid", Amount_Paid);
		inner_data.put("Unit", Unit);
		inner_data.put("EOI", EOI);
		inner_data.put("Payment_Mode", Payment_Mode);
		data = map();
		data.put("data", inner_data);
		mergedata = Map();
		mergedata.put("merge_data", data);
		mergedata.put("subject","Proof of Payment - " + Customer_Name + " - " + Project_name);   
		
		////////////////////
		
		myfile_1 = zoho.writer.mergeAndDownload(attachment_id,"pdf",mergedata,"mail_merge");
		info "File ==> " +myfile_1;

// 		emailData = Map();
// 		fromDetails = Map();
// 		fromDetails.put("email",zoho.loginuserid);
// 		emailData.put("from",fromDetails);
// 		toList = list();
// 		toUser = Map();
// 		toUser.put("email","muhammad.kaleem@leosops.com");
// 		toList.add(toUser);
// 		emailData.put("to",toList);
// 		emailData.put("subject","Proof of Payment - " + Customer_Name + " - " + Project_name);
// 		emailData.put("org_email",false);
// 		// Attachments
// 		attachmentList = list();
// 		attachment = Map();
// 		attachment.put("name",file);
// 		attachment.put("id",attachment_id);
// 		attachmentList.add(attachment);
// 		emailData.put("attachments",attachmentList);
// 		// Email Template (Optional)
// 		template = Map();
// 		template.put("id","5971686000095227019");
// 		emailData.put("template",template);
// 		// Final Payload
// 		emailDataList = list();
// 		emailDataList.add(emailData);
// 		emailRequest = Map();
// 		emailRequest.put("data",emailDataList);
// 		// Send email
// 		send_mail_resp = invokeurl
// 		[
// 			url :"https://www.zohoapis.com/crm/v8/POP_Requests/" + pop_id + "/actions/send_mail"
// 			type :POST
// 			parameters:emailRequest.toString()
// 			connection:"mail_merge"
// 		];
// 		info send_mail_resp;

		
		//////////////////////////////////////////



		send_mail_merge = zoho.writer.mergeAndSend(attachment_id, "pdf", "muhammad.kaleem@leosops.com", mergedata, "mail_merge");
		info "send_mail_merge ==>"+send_mail_merge;
		
		
		records = send_mail_merge.get("records");
		record_1 = records.get(0);
		download_link = record_1.get("download_link");
		info "Download Link ==> " + download_link;

sendmail
[
	from: zoho.loginuserid
	to: "muhammad.kaleem@leosops.com"
	subject: "Test Subjectr"
	message: "Test Message"
	attachments: myfile_1 as PDF

]
info "Send Email ==>";
// 	attachments:<component> <name> as PDF
// 		pdf_file = invokeurl
// 		[
// 		url : download_link
// 		type : GET
// 		connection : "mail_merge"
// 		];
// 		info "Downloaded PDF ==> " + pdf_file;


// 		Send email
// 		send_mail_resp = invokeurl
// 		[
// 			url :"https://www.zohoapis.com/crm/v8/POP_Requests/" + pop_id + "/actions/send_mail"
// 			type :POST
// 			parameters:emailRequest.toString()
// 			connection:"mail_merge"
// 		];
// 		info send_mail_resp;

	return "";
}
linear-gradient(338deg, rgb(255, 255, 255) 59.77%, rgba(0, 0, 0, 0.3) 203.92%);
function sendEmailWithData() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("AUTOMAIL");

  // Email groups
  var email1 = "Pravin.kumar@meenakshipolymers.com"; // A to G
  var email2 = "rajender.yadav@meenakshipolymers.com"; // I to O
  var email3 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // Q to W
  var email4 = "rajender.yadav@meenakshipolymers.com,vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // Y to AE
  var email5 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com"; // AG to AM
  var email6 = "rajender.yadav@meenakshipolymers.com"; // AO to AU
  var email7 = "vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com";//AW to BC
  var email8 = "narendra.singh@meenakshipolymers.com"; // BE to BK

  // CCs
  var cc1 = cc2 = cc3 = cc4 = cc5 = cc6 = cc7 = 
    "anu.singh@meenakshipolymers.com,sandeep.sareen@meenakshipolymers.com,ppc@meenakshipolymers.com,chanchal.rani@meenakshipolymers.com";

  var cc8 = "dharmesh.kumar@meenakshipolymers.com,chanchal.rani@meenakshipolymers.com,avanish.kumar@meenakshipolymers.com,mamta.vashishtha@meenakshipolymers.com,rajender.yadav@meenakshipolymers.com,vibezmattress@meenakshipolymers.com,production@vibezzzmattress.com,ppc@meenakshipolymers.com,anu.singh@meenakshipolymers.com,sandeep.sareen@meenakshipolymers.com";

  // Column ranges
  var range1 = sheet.getRange("A1:G" + sheet.getLastRow()).getValues(); 
  var range2 = sheet.getRange("I1:O" + sheet.getLastRow()).getValues(); 
  var range3 = sheet.getRange("Q1:W" + sheet.getLastRow()).getValues(); 
  var range4 = sheet.getRange("Y1:AE" + sheet.getLastRow()).getValues(); 
  var range5 = sheet.getRange("AG1:AM" + sheet.getLastRow()).getValues(); 
  var range6 = sheet.getRange("AO1:AU" + sheet.getLastRow()).getValues(); 
  var range7 = sheet.getRange("AW1:BC" + sheet.getLastRow()).getValues(); 
  var range8 = sheet.getRange("BE1:BK" + sheet.getLastRow()).getValues();

  // Send emails only if non-empty data exists
  if (hasData(range1.slice(1))) sendTableEmail(email1, cc1, "SALES ORDER DATE N/A ==ORDER FMS MANESAR ", range1);
  if (hasData(range2.slice(1))) sendTableEmail(email2, cc2, "PRDN. ACTUAL DATE N/A ==ORDER FMS MANESAR", range2);
  if (hasData(range3.slice(1))) sendTableEmail(email3, cc3, "PRDN. ACTUAL DATE N/A ==ORDER FMS MANESAR", range3);
  if (hasData(range4.slice(1))) sendTableEmail(email4, cc4, "HANDOVER. DATE N/A ==ORDER FMS MANESAR", range4);
  if (hasData(range5.slice(1))) sendTableEmail(email5, cc5, "HANDOVER. DATE N/A ==ORDER FMS MANESAR", range5);
  if (hasData(range6.slice(1))) sendTableEmail(email6, cc6, "PRDN. PLAN DATE N/A ==ORDER FMS MANESAR", range6);
  if (hasData(range7.slice(1))) sendTableEmail(email7, cc7, "PRDN. PLAN DATE N/A ==ORDER FMS MANESAR", range7);
  if (hasData(range8.slice(1))) sendTableEmail(email8, cc8, "DISP. Plan Failure ==ORDER FMS MANESAR", range8);
}

// Check for any non-empty cell
function hasData(range) {
  return range.some(row => row.some(cell => String(cell).trim() !== ""));
}

// Format date to "6-Feb-2025"
function formatDate(date) {
  if (Object.prototype.toString.call(date) === "[object Date]" && !isNaN(date)) {
    var day = date.getDate();
    var month = date.toLocaleString('default', { month: 'short' });
    var year = date.getFullYear();
    return day + '-' + month + '-' + year;
  }
  return date;
}

// Send filtered table data via email
function sendTableEmail(email, cc, subject, rangeData) {
  var sheetLink = "https://docs.google.com/spreadsheets/d/1_VxfBsQAQ6zvFNkWdYW37-z-5oL2a4GRqGJB8h6GT5I/edit?gid=0#gid=0";
  
  var htmlBody = "<p>Please add details in your respective ORDER FMS MANESAR sheet.</p>";
  htmlBody += "<p><a href='" + sheetLink + "' target='_blank'><b>Click here to update</b></a></p>";

  htmlBody += "<table border='1' style='border-collapse: collapse;'>";

  //  Filter out empty rows except for the header
  var filteredData = rangeData.filter((row, index) => {
    if (index === 0) return true; // keep header
    return row.some(cell => String(cell).trim() !== "");
  });

  // Build table
  for (var i = 0; i < filteredData.length; i++) {
    htmlBody += "<tr>";
    for (var j = 0; j < filteredData[i].length; j++) {
      var cellValue = filteredData[i][j];
      if (Object.prototype.toString.call(cellValue) === "[object Date]" && !isNaN(cellValue)) {
        cellValue = formatDate(cellValue);
      }
      htmlBody += "<td><b>" + cellValue + "</b></td>";
    }
    htmlBody += "</tr>";
  }

  htmlBody += "</table>";

  // Send the email
  MailApp.sendEmail({
    to: email,
    cc: cc,
    subject: subject,
    htmlBody: htmlBody
  });
}
Project = ifNull(POP_Details.get("Project",{"id":""}).get("id");
html {
    box-sizing: border-box;
    max-width: 70ch;
    margin: auto;
    font-size: 1.25em;
    color: #333;
    line-height: 1.4;
}

* {
    box-sizing: inherit;
}

h1, h2, h3, h4, h5, h6 {
    font-family: sans-serif;
}

img {
    max-width: 100%;
    height: auto;
}

a:link {
    text-decoration: none;
}

a:hover {
    text-decoration: underline;
}
void automation.Send_Ack_Letter_Mail_Merge(Int pop_id)
{
pop_details = zoho.crm.getRecordById("POP_Requests",pop_id);
info "pop_details ==>" + pop_details;
Customer_Name = pop_details.get("Customer_Name");
info "Customer_Name ==>" + Customer_Name;
Project_owner = pop_details.get("Project");
info "Project_owner ==>" + Project_owner;
Project_name = Project_owner.get("name");
info "Project_name ==>" + Project_name;

emailData = map();
fromDetails = map();
fromDetails.put("email", zoho.loginuserid);
emailData.put("from", fromDetails);

// To
toList = list();
toUser = map();
toUser.put("email", "muhammad.kaleem@leosops.com");
toList.add(toUser);
emailData.put("to", toList);

emailData.put("org_email", false);
// emailData.put("scheduled_time", "2021-06-12T12:12:12+05:30");
emailData.put("subject", "Proof of Payment" + Customer_Name + "-" + Project_name);

// Attachments
attachmentList = list();
attachment = map();
attachment.put.put("id","kphns9739e715cf504f968324d0e7a0d362a7");
attachmentList.add(attachment);
emailData.put("attachments", attachmentList);

// Template
template = map();
template.put("id", "5971686000095227019");
emailData.put("template", template);

// Final API call
// Step 1: Create list and add emailData
emailDataList = list();
emailDataList.add(emailData);

// Step 2: Create final payload map
emailRequest = map();
emailRequest.put("data", emailDataList);

send_mail_resp = invokeurl
[
	url :"https://www.zohoapis.com/crm/v8/POP_Requests/" + pop_id + "/actions/send_mail"
	type :POST
	parameters:emailRequest.toString()
	connection:"mail_merge"
];
info send_mail_resp;
}
[{"inputs":[{"internalType":"address","name":"_jusdc","type":"address"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Minted","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jusdc","outputs":[{"internalType":"contract IJUSDC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
//WordCountMapper.java
import java.io.IOException;
import java.util.StringTokenizer;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Mapper;

public class WordCountMapper extends Mapper<Object, Text, Text, IntWritable> {

    private final static IntWritable one = new IntWritable(1);
    private Text word = new Text();

    public void map(Object key, Text value, Context context) throws IOException, InterruptedException {
        StringTokenizer tokenizer = new StringTokenizer(value.toString());
            while (tokenizer.hasMoreTokens()) {
            String cleanWord = tokenizer.nextToken().toLowerCase().replaceAll("[^a-zA-Z0-9]", "");
            word.set(cleanWord);
            context.write(word, one);
        }
    }
}


//WordCountReducer.java
import java.io.IOException;

import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Reducer;

public class WordCountReducer extends Reducer<Text, IntWritable, Text, IntWritable> {

    private IntWritable result = new IntWritable();

    public void reduce(Text key, Iterable<IntWritable> values, Context context)
            throws IOException, InterruptedException {
                    int sum = 0;
        for (IntWritable val : values) {
            sum += val.get();
        }
        result.set(sum);
        context.write(key, result);
    }
}


//WordCountDriver.java
import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class WordCountDriver {
    public static void main(String[] args) throws Exception {
        Configuration conf = new Configuration();
 	Job job = Job.getInstance(conf, "Word Count");

        job.setJarByClass(WordCountDriver.class);

        job.setMapperClass(WordCountMapper.class);
        job.setCombinerClass(WordCountReducer.class); // optional
        job.setReducerClass(WordCountReducer.class);
        job.setOutputKeyClass(Text.class);
        job.setOutputValueClass(IntWritable.class);

        FileInputFormat.addInputPath(job, new Path(args[0]));
        FileOutputFormat.setOutputPath(job, new Path(args[1]));

        System.exit(job.waitForCompletion(true) ? 0 : 1);
      }
}



Steps:
mkdir wordcount_classes
mkdir sample

cp WordCountMapper.java sample/
cp WordCountReducer.java sample/
cp WordCountDriver.java sample/


cd sample

javac -classpath $(hadoop classpath) -d ../wordcount_classes *.java

cd ..

jar -cvf wordcount.jar -C wordcount_classes/ .

echo "Hadoop is a framework for distributed Processing" > input.txt

hdfs dfs -mkdir /wordcountinput

hdfs dfs -put input.txt /wordcountinput

hadoop jar wordcount.jar WordCountDriver /wordcountinput/input.txt /wordcountoutput

hdfs dfs -ls /wordcountoutput

hdfs dfs -cat /wordcountoutput/p*
[{"inputs":[{"internalType":"address","name":"_jusdc","type":"address"},{"internalType":"address","name":"_treasury","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"anonymous":false,"inputs":[{"indexed":true,"internalType":"address","name":"user","type":"address"},{"indexed":false,"internalType":"uint256","name":"amount","type":"uint256"}],"name":"Minted","type":"event"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"hasMinted","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"jusdc","outputs":[{"internalType":"contract IJUSDC","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"mintAmount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"price","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"treasury","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"stateMutability":"payable","type":"receive"}]
void automation.OCR_001_Fetch_Reservation_Details(Int Ownership_change_request_id)
{
Owner_map = Map();
Ownership_change_request_details = zoho.crm.getRecordById("Ownership_Change_Requests",Ownership_change_request_id);
info "Ownership_change_request_details ==>" + Ownership_change_request_details;
Reservation_Owner = Ownership_change_request_details.get("Reservation_Name");
info "Reservation_Owner ==>" + Reservation_Owner;
if(!Reservation_Owner.isNull() || !Reservation_Owner.isEmpty())
{
	Reservation_naame = Reservation_Owner.get("name");
	info "Reservation_naame ==>" + Reservation_naame;
	Reservation_id = Reservation_Owner.get("id");
	info "Reservation_id ==>" + Reservation_id;
	Reservation_details = zoho.crm.getRecordById("Deals",Reservation_id);
	info "Reservation_details ==>" + Reservation_details;
	Contact_Owner = Reservation_details.get("Contact_Name");
	info "Contact_Owner ==>" + Contact_Owner;
	if(!Contact_Owner.isNull() || !Contact_Owner.isEmpty())
	{
		Contact_name = Contact_Owner.get("name");
		info "Contact_name ==>" + Contact_name;
		contact_id = Contact_Owner.get("id");
		info "contact_id ==>" + contact_id;
		Owner_map.put("Customer_Name",Contact_Owner);
		Customer_Details = zoho.crm.getRecordById("Contacts",contact_id);
		info "Customer_Details ==>" + Customer_Details;
		Email = Customer_Details.get("Email");
		Owner_map.put("Customer_Email",Email);
	}
	Joint_buyer_name_owner = Reservation_details.get("Joint_buyer_name");
	info "Joint_buyer_name_owner ==>" + Joint_buyer_name_owner;
	if(!Joint_buyer_name_owner.isNull() || !Joint_buyer_name_owner.isEmpty())
	{
		Joint_buyer_name = Joint_buyer_name_owner.get("name");
		info "Joint_buyer_name ==>" + Joint_buyer_name;
		Joint_buyer_id = Joint_buyer_name_owner.get("id");
		info "Joint_buyer_id ==>" + Joint_buyer_id;
		Owner_map.put("Joint_buyer_name",Joint_buyer_name_owner);
	}
	Project = Reservation_details.get("Property");
	info "Project ==>" + Project;
	if(!Project.isNull() || !Project.isEmpty())
	{
		Owner_map.put("Project",Project);
	}
	Project_ID = Reservation_details.get("Project_ID");
	info "Project_ID ==>" + Project_ID;
	if(!Project_ID.isNull() || !Project_ID.isEmpty())
	{
		Owner_map.put("Project_ID",Project_ID);
	}
	Unit = Reservation_details.get("Unit");
	info "Unit ==>" + Unit;
	if(!Unit.isNull() || !Unit.isEmpty())
	{
		unit_name = Unit.get("name");
		info "unit_name ==>" + unit_name;
		unit_id = Unit.get("id");
		info "unit_id ==>" + unit_id;
		Owner_map.put("Unit",Unit);
	}
	Unit_Price_At_Sale = Reservation_details.get("Unit_Price_At_Sale");
	info "Unit_Price_At_Sale ==>" + Unit_Price_At_Sale;
	if(!Unit_Price_At_Sale.isNull() || !Unit_Price_At_Sale.isEmpty())
	{
		Owner_map.put("Unit_Price_At_Sale",Unit_Price_At_Sale);
	}
	Paid_Admin_Fee = Reservation_details.get("Paid_Admin_Fee");
	info "Paid_Admin_Fee ==>" + Paid_Admin_Fee;
	if(!Paid_Admin_Fee.isNull() || !Paid_Admin_Fee.isEmpty())
	{
		Owner_map.put("Paid_Admin_Fee",Paid_Admin_Fee);
	}
	Admin_Fee = Reservation_details.get("Admin_Fee");
	info "Admin_Fee ==>" + Admin_Fee;
	if(!Admin_Fee.isNull() || !Admin_Fee.isEmpty())
	{
		Owner_map.put("Admin_Fee",Admin_Fee);
	}
	Joint_Buyers_Multiple = Reservation_details.get("Joint_Buyers_Multiple");
	info "Joint_Buyers_Multiple ==>" + Joint_Buyers_Multiple;
	info "Joint_Buyers_Multiple.size ==>" + Joint_Buyers_Multiple.size();
	// 	if(!Joint_Buyers_Multiple.isNull() || !Joint_Buyers_Multiple.isEmpty() && Joint_Buyers_Multiple.size() > 0)
	// 	{
	// 		Joint_Buyers_Multiple_list = Joint_Buyers_Multiple.toList(",");
	// 		for each  my_Joint_Buyers_Multiple in Joint_Buyers_Multiple
	// 		{
	// 			info "my_Joint_Buyers_Multiple ==>" + my_Joint_Buyers_Multiple;
	// 			search_resp = zoho.crm.searchRecords("Contacts","(Full_Name:equals:" + my_Joint_Buyers_Multiple + ")");
	// 			info "search_resp ==>" + search_resp;
	// 			// 			Lead_owner = search_resp.get("Lead");
	// 			// 					info "Lead_owner   "
	// 		}
	// 		// 			Owner_map.put("Joint_Buyers_Multiple", Joint_Buyers_Multiple);
	// 	}
	
	
	// need to put in owner map 
	Payment_Details1 = Reservation_details.get("Payment_Details1");
	info "Payment_Details1 ==>"+Payment_Details1;
	
	
	Payment_Details1_size = Payment_Details1.size();
	info "Payment_Details1_size ==>"+Payment_Details1_size;
	
	
	Total_Amount_Payablee = Reservation_details.get("Total_Amount_Payablee");
	info "Total_Amount_Payablee ==>"+Total_Amount_Payablee;
	if ( !Total_Amount_Payablee.isNull() || !Total_Amount_Payablee.isEmpty() ) 
    {
			Owner_map.put("Total_Amount_Payable", Total_Amount_Payablee);
    }
/////// From Here
	Paid_Installment_Amount = Reservation_details.get("Paid_Installment_Amount");
	info "Paid_Installment_Amount ==>"+Paid_Installment_Amount;
		if ( !Paid_Installment_Amount.isNull() || !Paid_Installment_Amount.isEmpty() ) 
    {
			Owner_map.put("Paid_Installment_Amount", Paid_Installment_Amount);
    }
	
	Registration_Fees = Reservation_details.get("Registration_Fees");
	info "Registration_Fees ==>"+Registration_Fees;
		if ( !Registration_Fees.isNull() || !Registration_Fees.isEmpty() ) 
    {
			Owner_map.put("DLD_Registration_Fees", Registration_Fees);
    }
	
	DLD_Waiver_Amount = Reservation_details.get("DLD_Waiver_Amount");
	info "DLD_Waiver_Amount ==>"+DLD_Waiver_Amount;
		if ( !DLD_Waiver_Amount.isNull() || !DLD_Waiver_Amount.isEmpty() ) 
    {
			Owner_map.put("DLD_Waiver_Amount", DLD_Waiver_Amount);
    }
	
	Paid_Registration_Fee = Reservation_details.get("Paid_Registration_Fee");
	info "Paid_Registration_Fee ==>"+Paid_Registration_Fee;
		if ( !Paid_Registration_Fee.isNull() || !Paid_Registration_Fee.isEmpty() ) 
    {
			Owner_map.put("Paid_DLD_Registration_Fee", Paid_Registration_Fee);
    }
	
	Total_Paid_Amount_Report = Reservation_details.get("Total_Paid_Amount_Report");
	info "Total_Paid_Amount_Report ==>"+Total_Paid_Amount_Report;
		if ( !Total_Paid_Amount_Report.isNull() || !Total_Paid_Amount_Report.isEmpty() ) 
    {
			Owner_map.put("Total_Paid_Amount_Report", Total_Paid_Amount_Report);
    }
	Total_Amount_Paid = Reservation_details.get("Total_Amount_Paid");
	info "Total_Amount_Paid ==>"+Total_Amount_Paid;
		if ( !Total_Amount_Paid.isNull() || !Total_Amount_Paid.isEmpty() ) 
    {
			Owner_map.put("Total_Amount_Paid_AED", Total_Amount_Paid);
    }
	DLD_Waiver = Reservation_details.get("DLD_Waiver");
	info "DLD_Waiver ==>"+DLD_Waiver;
		if ( !DLD_Waiver.isNull() || !DLD_Waiver.isEmpty() ) 
    {
			Owner_map.put("DLD_Waiver", DLD_Waiver);
			Choose_waiver = Reservation_details.get("Choose_waiver");
			info "Choose_waiver ==>"+Choose_waiver;
			if ( !Choose_waiver.isNull() || !Choose_waiver.isEmpty() ) 
            {
				Owner_map.put("Choose_waiver", Choose_waiver);
            }
    }
	DLD_Admin_fees_paid= Reservation_details.get("DLD_Admin_fees_paid");
	info "DLD_Admin_fees_paid ==>"+DLD_Admin_fees_paid;
		if ( !DLD_Admin_fees_paid.isNull() || !DLD_Admin_fees_paid.isEmpty() ) 
    {
			Owner_map.put("DLD_Admin_fees_paid", DLD_Admin_fees_paid);
    }
	DLD_Payment_Date = Reservation_details.get("DLD_Payment_Date");
	info "DLD_Payment_Date ==>"+DLD_Payment_Date;
		if ( !DLD_Payment_Date.isNull() || !DLD_Payment_Date.isEmpty() ) 
    {
			Owner_map.put("DLD_Payment_Date", DLD_Payment_Date.toDate());
    }
	SPA_Issued_Date = Reservation_details.get("SPA_Issued_Date");
	info "SPA_Issued_Date ==>"+SPA_Issued_Date;
		if ( !SPA_Issued_Date.isNull() || !SPA_Issued_Date.isEmpty() ) 
    {
			Owner_map.put("SPA_Issued_Date", SPA_Issued_Date.toDate());
    }
	
	
    }
	
update_ownership_change_request = zoho.crm.updateRecord("Ownership_Change_Requests",Ownership_change_request_id,Owner_map);
info "update_ownership_change_request ==>" + update_ownership_change_request;
}


A robust taxi booking app script is essential to scale and streamline your taxi business in an on-demand economy. It empowers you to automate ride requests and manage fleets efficiently to enhance customer satisfaction, which is controlled from a single platform. As more users rely on mobile solutions for transportation, building a customized taxi app is a key the key to staying ahead in the market. It is the right time to convert your idea of building a revenue-generating taxi platform to drive consistent business growth. Partner with Appticz leading app development company that specializes in providing taxi booking scripts, and hit the road to digital success.
var userID = $Crm.user.id;
console.log("userID==>", userID);
var userName = $Crm.user.first_name; // + " " + $Crm.user.last_name;
console.log("userName==>", userName);
var module = $Page.module;
console.log("module==>", module);
var module_recordID = $Page.record_id;
console.log("module_recordID==>", module_recordID);
var recordName = $Page.record._Full_Name;
console.log("recordName==>", recordName);
var owner = ZDK.Page.getField('Owner').getValue();
console.log("owner==>", owner);
var ownerID = ZDK.Apps.CRM.Users.fetchById(owner.id);
console.log("owner==>", owner);
// Construct the map to include both fields you want to update

created_time = ZDK.Page.getField('Created_By').getValue();
console.log("created_time==>", created_time);

var map = {
    "Last_Viewed_User_ID": userID
};

console.log("User ID: " + userID);

// Prepare data for the API call
var datalist = [];
datalist.push(map);

var param = { "data": datalist };

// API call to update the record in Zoho CRM
var response = ZDK.Apps.CRM.Connections.invoke(
    "crmconn", 
    "https://www.zohoapis.com/crm/v5/" + module + "/" + module_recordID, 
    "PUT", 
    2, 
    param, 
    {}
);

console.log("Response: ", response);
In the rapidly evolving digital finance landscape, cryptocurrency adoption is skyrocketing — and so is the need for seamless payment solutions. One such pioneer in this space is BitPay, a popular crypto payment gateway that enables businesses to accept Bitcoin and other cryptocurrencies effortlessly. Inspired by its success, entrepreneurs and startups are increasingly turning to the BitPay Clone Script — a ready-made solution that helps you launch your own crypto payment gateway like BitPay in no time.

What Is a BitPay Clone Script?
  
A BitPay Clone Script is a pre-built, white-label crypto payment gateway software that replicates the core functionalities of BitPay. It is fully customizable, allowing you to add features, change branding, integrate wallets, and more based on your business needs. This clone script is designed for businesses or developers aiming to save time and cost by avoiding development from scratch.

Key Features of BitPay Clone Script

1. Multi-Currency Support

Enable users to send and receive payments in multiple cryptocurrencies like Bitcoin (BTC), Ethereum (ETH), USDT, and more.

2. Secure Wallet Integration

Provide integrated crypto wallets for storing and managing digital assets securely.

3. Real-Time Exchange Rates

Offer accurate and up-to-date crypto-to-fiat exchange rates using reliable APIs.

4. Merchant Tools

Let merchants generate invoices, manage settlements, and view transaction history from a unified dashboard.

5. Two-Factor Authentication (2FA)

Ensure platform security with multi-layered authentication and encryption protocols.

6. Payment API & Plugins

Provide easy integration for eCommerce platforms via APIs and plugins (e.g., WooCommerce, Magento, Shopify).

7. Admin Dashboard

Control every aspect of the platform — user management, transactions, KYC, and settings — from a powerful admin panel.

Benefits of Using a BitPay Clone Script

Faster Time to Market: Get your crypto payment gateway up and running quickly.

Cost-Effective: Save on the time and money it would take to build a platform from scratch.

Scalable Architecture: Designed to support a growing user base and transaction volume.

Custom Branding: White-label nature lets you brand it as your own.

Regulatory Compliance: Integrated KYC/AML features help stay compliant with regulations.

Final Thoughts

The future of payments is decentralized — and your business can be at the forefront of this revolution. With a BitPay Clone Script, you don’t just launch a product — you step into a booming market with a solution people need.

Ready to start your crypto payment gateway business? Contact AppcloneX and get your BitPay Clone Script today!

Whatsapp Number -+91 9677713864
Telegram - http://t.me/appcloneX
Email - business@appclonex.com
Website - https://www.appclonex.com/

star

Fri Jul 04 2025 15:21:13 GMT+0000 (Coordinated Universal Time) https://github.com/github/github-mcp-server

@Shookthadev999

star

Fri Jul 04 2025 15:20:56 GMT+0000 (Coordinated Universal Time) https://github.com/github/github-mcp-server

@Shookthadev999

star

Fri Jul 04 2025 15:20:51 GMT+0000 (Coordinated Universal Time) https://github.com/github/github-mcp-server

@Shookthadev999

star

Fri Jul 04 2025 15:15:31 GMT+0000 (Coordinated Universal Time) https://devpod.sh/open#https://github.com/up209d/ResourcesSaverExt

@Shookthadev999

star

Fri Jul 04 2025 12:26:11 GMT+0000 (Coordinated Universal Time) https://maticz.com/dapp-development-company

@Maeve43 #dapp_development

star

Fri Jul 04 2025 10:51:16 GMT+0000 (Coordinated Universal Time) https://www.fourchain.com/services/crypto-exchange-software

@santhosh #cryptocurrency_exchange_script

star

Fri Jul 04 2025 10:33:27 GMT+0000 (Coordinated Universal Time) https://css-tricks.com/snippets/jquery/fit-iframe-to-content/

@Shookthadev999 #javascript

star

Fri Jul 04 2025 10:31:55 GMT+0000 (Coordinated Universal Time) https://css-tricks.com/snippets/css/shake-css-keyframe-animation/

@Shookthadev999 #css

star

Fri Jul 04 2025 09:06:18 GMT+0000 (Coordinated Universal Time) https://www.kryptobees.com/tap-to-earn-game-development-company

@Franklinclas

star

Fri Jul 04 2025 08:33:47 GMT+0000 (Coordinated Universal Time)

@usman13

star

Fri Jul 04 2025 07:19:21 GMT+0000 (Coordinated Universal Time) https://www.addustechnologies.com/blog/triangular-arbitrage-bot-trading-opportunities

@Seraphina

star

Fri Jul 04 2025 07:02:16 GMT+0000 (Coordinated Universal Time) https://getbootstrap.com/docs/4.0/components/forms/

@vishalkoriya125

star

Fri Jul 04 2025 06:44:58 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/binance-clone/

@aaronjeffrey

star

Fri Jul 04 2025 06:35:18 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/p2p-crypto-exchange-development-company/

@aaronjeffrey

star

Fri Jul 04 2025 06:23:11 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/cryptocurrency-exchange-development-company/

@aaronjeffrey

star

Fri Jul 04 2025 05:29:00 GMT+0000 (Coordinated Universal Time) https://maticz.com/polygon-blockchain-development

@austinparker ##polygon #polygonblockchian #polygonblockchaindevelopment

star

Fri Jul 04 2025 05:18:50 GMT+0000 (Coordinated Universal Time) https://appticz.com/fintech-app-development-company

@aditi_sharma_

star

Fri Jul 04 2025 01:48:57 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Fri Jul 04 2025 00:55:02 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Fri Jul 04 2025 00:46:18 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Fri Jul 04 2025 00:24:27 GMT+0000 (Coordinated Universal Time)

@FOHWellington

star

Thu Jul 03 2025 21:45:57 GMT+0000 (Coordinated Universal Time) https://www.semanticscholar.org/paper/Malnutrition-Screening-and-Assessment-Serón-Arbeloa-Labarta-Monzón/69a1fb31e9e974a926fd9d26e70b74e5e84cdd1f?utm_source

@ALBARAA7755

star

Thu Jul 03 2025 14:29:27 GMT+0000 (Coordinated Universal Time)

@ismaelnovo

star

Thu Jul 03 2025 14:24:17 GMT+0000 (Coordinated Universal Time)

@Peaky ##pagination ##zoho ##zohocrm ##zoho_crm ##deluge

star

Thu Jul 03 2025 13:40:11 GMT+0000 (Coordinated Universal Time)

@bmillot #azure #az #cli

star

Thu Jul 03 2025 10:11:30 GMT+0000 (Coordinated Universal Time)

@omnixima #css

star

Thu Jul 03 2025 09:04:04 GMT+0000 (Coordinated Universal Time)

@Peaky ##pagination ##zoho ##zohocrm ##zoho_crm ##deluge

star

Thu Jul 03 2025 07:59:01 GMT+0000 (Coordinated Universal Time) https://bit.cloud/create-workspace

@Harsh #css

star

Thu Jul 03 2025 07:28:19 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/p2p-crypto-exchange-development-company/

@aaronjeffrey

star

Thu Jul 03 2025 07:23:21 GMT+0000 (Coordinated Universal Time)

@ash1i

star

Thu Jul 03 2025 06:54:29 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/cryptocurrency-exchange-development-company/

@aaronjeffrey

star

Thu Jul 03 2025 06:27:01 GMT+0000 (Coordinated Universal Time)

@Peaky ##pagination ##zoho ##zohocrm ##zoho_crm ##deluge

star

Wed Jul 02 2025 20:26:10 GMT+0000 (Coordinated Universal Time) https://www.howtogeek.com/get-a-clean-attractive-site-with-lines-of-css/?utm_source

@darkoeller

star

Wed Jul 02 2025 11:23:57 GMT+0000 (Coordinated Universal Time)

@Peaky ##pagination ##zoho ##crm ##zohocrm ##zoho_crm ##deluge

star

Wed Jul 02 2025 10:36:11 GMT+0000 (Coordinated Universal Time) https://www.firebeetechnoservices.com/uniswap-clone-script

@aanaethan #uniswap #uniswapclonescript

star

Wed Jul 02 2025 10:05:15 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/cryptocurrency-exchange-development-company/

@aaronjeffrey

star

Wed Jul 02 2025 09:40:57 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/binance-clone/

@aaronjeffrey

star

Wed Jul 02 2025 08:58:46 GMT+0000 (Coordinated Universal Time) https://jusdc.io

@mathewmerlin72

star

Wed Jul 02 2025 06:13:01 GMT+0000 (Coordinated Universal Time)

@signup #java

star

Wed Jul 02 2025 05:30:13 GMT+0000 (Coordinated Universal Time) https://jusdc.io/mint

@mathewmerlin72 #vaultmint

star

Tue Jul 01 2025 12:11:19 GMT+0000 (Coordinated Universal Time) https://appticz.com/taxi-booking-script

@davidscott

star

Tue Jul 01 2025 11:34:05 GMT+0000 (Coordinated Universal Time) https://github.com/shookthacr3ator777/sandpack

@Shookthadev999

star

Tue Jul 01 2025 08:51:45 GMT+0000 (Coordinated Universal Time) https://rishikeshyogkendra.com/200-hour-yoga-teacher-training-india.php

@rishikeshyogk6 ##bestyttcinrishikesh ##yogainrishikesh ##200hoursyttcinrishikesh ##yogaschoolinrishikesh

star

Tue Jul 01 2025 07:37:07 GMT+0000 (Coordinated Universal Time)

@Peaky ##pagination ##zoho ##crm ##zohocrm ##zoho_crm ##deluge

star

Tue Jul 01 2025 07:05:12 GMT+0000 (Coordinated Universal Time) https://www.appclonex.com/bitpay-clone-script

@riyageorge0895 #bitpay

star

Tue Jul 01 2025 06:56:29 GMT+0000 (Coordinated Universal Time) https://www.trioangle.com/copy-trading-clone-script/

@aaronjeffrey

Save snippets that work with our extensions

Available in the Chrome Web Store Get Firefox Add-on Get VS Code extension