INSERT INTO blocks VALUES ('ad_renewal_mail','Your ad on %%sitename%% has been renewed.\r\n\r\nAdvertisement details:\r\nTitle: %%TITLE%%\r\nText1: %%TEXT1%%\r\nURL: %%URL%%\r\nAdditional Impressions: %%IMPRESSIONS%%\r\n\r\nIf you have received this message in error, please reply and let us know.\r\n\r\n-%%sitename%%\r\n%%local_email%%\r\n',NULL,NULL);
INSERT INTO blocks VALUES ('paypal_finished','Thank you for your order! An administrator will soon review your ad to \r\nensure that it meets our guidelines. You will receive a notice by email \r\nwhen your ad is reviewed. If your ad is not approved, the charge to your \r\naccount will be reversed. If it is approved, it will begin running \r\nimmediately.\r\n',NULL,NULL);
INSERT INTO blocks VALUES ('paypal_canceled','We\'re sorry you decided to cancel your order.',NULL,NULL);

INSERT INTO box VALUES ('ad_pay_type_select','','my $type = $S->cgi->param(\'type\');\r\nmy $ad_id = $S->cgi->param(\'ad_id\');\r\nmy $renew = $S->cgi->param(\'renew\');\r\nmy $count = $S->cgi->param(\'count\');\r\n\r\nunless ($type && $ad_id) {\r\n  return \'Error: No payment type or ad ID.\';\r\n}\r\n\r\nreturn \"%%BOX,ad_pay_cc,$ad_id,$count%%\" if ($type eq \'cc\');\r\nreturn \"%%BOX,ad_pay_paypal,$ad_id,$count%%\" if ($type eq \'paypal\');','Implant the right payment type box','blank_box',0);
INSERT INTO box VALUES ('ad_pay_cc','','my $ad_id = $ARGS[0];\r\nmy $count = $ARGS[1];\r\nmy $content;\r\n\r\n\r\n# If we\'re ordering, do it now.\r\nif ($S->cgi->param(\'final_pay\')) {\r\n	$content .= $S->cc_place_order();\r\n}\r\n\r\n\r\nunless ($content) {\r\n	my ($num, $price);\r\n	if ($count) {\r\n		# Get total price\r\n		my ($rv, $sth) = $S->db_select({\r\n			WHAT  => \'ad_types.cpm\',\r\n			FROM  => \'ad_info, ad_types\',\r\n			WHERE => \"ad_info.ad_id = $ad_id AND ad_info.ad_tmpl = ad_types.type_template\"\r\n		});\r\n		my ($cpm) = $sth->fetchrow();\r\n		$price = ($count/1000) * $cpm;\r\n		$num = $count;\r\n	} else {	\r\n		my ($rv, $sth) = $S->db_select({\r\n			WHAT => \'purchase_size,purchase_price\',\r\n			FROM => \'ad_info\',\r\n			WHERE => \"ad_id=$ad_id\"});\r\n\r\n		($num, $price) = $sth->fetchrow();\r\n		$sth->finish();\r\n	}\r\n	\r\n	$content .= qq{\r\n<b>Your ad:</b><br>\r\n<center>%%BOX,show_ad,$ad_id%%</center>\r\n<p>};\r\n	if ($S->cgi->param(\'pay\')) {\r\n    	$content .= $S->cc_preview_order($price,$num);\r\n	}\r\n\r\n	my $p_form = $S->cc_make_person_form();\r\n	my $c_form = $S->cc_make_card_form();\r\n\r\n	$content .= qq{\r\n	<p>\r\n	Please fill in the payment form below. Required fields are in <font color=\"#ff0000\">red</font>. When you are done, click \"Preview Order\". You will <b>not</b> be billed yet, and you will be able to change what you\'ve entered before confirming the order.\r\n	<form name=\"adpay\" ACTION=\"/special/adpay\" METHOD=\"POST\">\r\n	<input type=\"hidden\" name=\"ad_id\" value=\"$ad_id\">\r\n	<input type=\"hidden\" name=\"type\" value=\"cc\">\r\n	<input type=\"hidden\" name=\"count\" value=\"$count\">\r\n	<p>\r\n	<b>Billing Information:</b>\r\n	<p>\r\n	$p_form\r\n	<p>\r\n	<b>Credit/Debit Card Information:</b>\r\n	<p>\r\n	$c_form\r\n	<p>\r\n	<input type=\"submit\" name=\"pay\" value=\"Preview Order\">\r\n	</form>};\r\n}\r\n#\'\r\nreturn $content;','','blank_box',0);
INSERT INTO box VALUES ('cc_bill_orders','','my $DEBUG = 0;\r\nmy $err;\r\n\r\nmy ($rv, $sth) = $S->db_select({\r\n    WHAT => \'ad_payments.order_id, ad_payments.cost, ad_payments.ad_id\',\r\n    FROM => \'ad_payments, ad_info\',\r\n    WHERE => \'ad_payments.ad_id = ad_info.ad_id AND \r\n              ad_info.paid = 1 AND \r\n              ad_info.judged = 1 AND\r\n              ad_info.approved = 1 AND \r\n              ad_info.active = 0 AND \r\n              ad_info.example = 0 AND \r\n              ad_info.views_left > 0 AND \r\n              ad_payments.pay_type != \\\'paypal\\\' AND\r\n              ad_payments.paid IS NULL\'\r\n});\r\n\r\nmy $orders = [];\r\nwhile (my ($order_id, $cost, $ad_id) = $sth->fetchrow()) {\r\n	$err .=  \"Order: $order_id, Cost: $cost<br>\" if $DEBUG;\r\n	push @{$orders}, {\'ad_id\'   => $ad_id,\r\n	                  \'orderID\' => $order_id,\r\n	                  \'amount\'  => $cost};\r\n}\r\n$sth->finish();\r\n\r\nif ($#{$orders} >= 0) {	\r\n    $err = $S->cc_bill_approved_ads($orders);\r\n}\r\n\r\n# Set finished ads inactive to svae the database\r\n($rv, $sth) = $S->db_update({\r\n	WHAT => \'ad_info\',\r\n	SET  => \'active = 0\',\r\n	WHERE => \'views_left <= 0 AND perpetual != 1 AND active = 1\'\r\n});\r\n$sth->finish();\r\n\r\nreturn $err;\r\n		','Post-auth CC orders','blank_box',0);
INSERT INTO box VALUES ('ad_pay_paypal','Pay using paypal','my $ad_id = $ARGS[0];\r\nmy $count = $ARGS[1];\r\nmy $content;\r\nmy $site = $S->{UI}->{VARS}->{site_url}.$S->{UI}->{VARS}->{rootdir};\r\nmy $secure_site = $S->{UI}->{VARS}->{secure_site_url}.$S->{UI}->{VARS}->{rootdir};\r\nmy $business_id = \'paypal@mysite.org\';\r\n\r\nunless ($ad_id) {\r\n	return \"No ad id passed.\";\r\n}\r\n\r\nmy ($num, $price, $item);\r\nif ($count) {\r\n	# Get total price\r\n	my ($rv, $sth) = $S->db_select({\r\n		WHAT  => \'ad_types.cpm\',\r\n		FROM  => \'ad_info, ad_types\',\r\n		WHERE => \"ad_info.ad_id = $ad_id AND ad_info.ad_tmpl = ad_types.type_template\"\r\n	});\r\n	my ($cpm) = $sth->fetchrow();\r\n	$price = ($count/1000) * $cpm;\r\n	$price = sprintf(\"%1.2f\", $price);\r\n	$num = $count;\r\n	$item = \"Ad Renewal\";\r\n} else {\r\n	my ($rv, $sth) = $S->db_select({\r\n	  WHAT => \'purchase_size,purchase_price\',\r\n	  FROM => \'ad_info\',\r\n	  WHERE => \"ad_id=$ad_id\"});\r\n	($num, $price) = $sth->fetchrow();\r\n	$sth->finish();\r\n	$item = \"Advertisement\";\r\n}\r\n\r\nmy $finished = $S->cgi->param(\'finished\');\r\nmy $canceled = $S->cgi->param(\'canceled\');\r\n\r\nif ($finished) {\r\n	my $content = $S->{UI}->{BLOCKS}->{paypal_finished};	\r\n	return $content;\r\n} elsif ($canceled) {\r\n	my $content = $S->{UI}->{BLOCKS}->{paypal_canceled};\r\n	return $content;\r\n}\r\n\r\nmy $paypal_form = qq{\r\n<form action=\"https://www.paypal.com/cgi-bin/webscr\" method=\"post\">\r\n<input type=\"hidden\" name=\"cmd\" value=\"_xclick\">\r\n<input type=\"hidden\" name=\"business\" value=\"$business_id\">\r\n<input type=\"hidden\" name=\"notify_url\" value=\"$site/special/paypal_confirm\">\r\n<input type=\"hidden\" name=\"item_name\" value=\"$item\">\r\n<input type=\"hidden\" name=\"item_number\" value=\"$ad_id\">\r\n<input type=\"hidden\" name=\"no_shipping\" value=\"1\">\r\n<input type=\"hidden\" name=\"return\" value=\"$secure_site/special/adpay?type=paypal;ad_id=$ad_id;finished=1\">\r\n<input type=\"hidden\" name=\"cancel_return\" value=\"$secure_site/special/adpay?type=paypal;ad_id=$ad_id;canceled=1\">\r\n<input type=\"hidden\" name=\"amount\" value=\"$price\">\r\n<input type=\"hidden\" name=\"custom\" value=\"$num\">\r\n<input type=\"image\" src=\"%%imagedir%%/paypal.gif\" border=\"0\" name=\"submit\" alt=\"Make payments with PayPal - it\'s fast, free and secure!\">\r\n</form>};\r\n\r\n$content = qq{\r\n<b>Your ad:</b><br>\r\n<center></center>\r\n<p>\r\nYour purchase details are below. Click the Paypal button, and you will go to a page on Paypal where you will finish the payment process.\r\n<table border=0 cellpadding=1 cellspacing=0 bgcolor=\"#000000\" align=\"center\">\r\n  <tr>\r\n    <td>\r\n	  <table width=\"100%\" cellpadding=5 cellspacing=0 border=0 bgcolor=\"#eeeeee\">\r\n	    <tr>\r\n		  <td>\r\n			<FONT FACE=\"verdana, arial, helvetica, sans-serif\" SIZE=\"2\"><b>Impressions:</b></font>\r\n		  </td>\r\n		  <td>\r\n		    <FONT FACE=\"verdana, arial, helvetica, sans-serif\" SIZE=\"2\">$num</font>\r\n		  </td>\r\n		</tr>\r\n	    <tr>\r\n		  <td>\r\n			<FONT FACE=\"verdana, arial, helvetica, sans-serif\" SIZE=\"2\"><b>Total Price:</b></font>\r\n		  </td>\r\n		  <td>\r\n		    <FONT FACE=\"verdana, arial, helvetica, sans-serif\" SIZE=\"2\">\\$$price</font>\r\n		  </td>\r\n		</tr>\r\n		<tr>\r\n		  <td colspan=2 align=\"center\">\r\n		  <FONT FACE=\"verdana, arial, helvetica, sans-serif\" SIZE=\"2\">\r\n		  Click below to purchase.<br>\r\n		  $paypal_form\r\n		  </font>\r\n		  </td>\r\n		</tr>\r\n	  </table>\r\n	</td>\r\n  </tr>\r\n</table>};\r\n\r\nreturn $content;','','blank_box',0);
INSERT INTO box VALUES ('paypal_bill_orders','Bill paypal orders','my $DEBUG = 0;\r\nmy $err;\r\n\r\nmy ($rv, $sth) = $S->db_select({\r\n	WHAT => \'ad_payments.order_id, ad_payments.cost, ad_payments.ad_id, ad_info.approved\',\r\n    FROM => \'ad_payments, ad_info\',\r\n    WHERE => \'ad_payments.ad_id = ad_info.ad_id AND \r\n              ad_info.paid = 1 AND \r\n              ad_info.judged = 1 AND\r\n              ad_info.active = 0 AND \r\n              ad_info.example = 0 AND \r\n              ad_info.views_left > 0 AND \r\n              ad_payments.pay_type = \\\'paypal\\\' AND\r\n              ad_payments.paid IS NULL\'\r\n});\r\n\r\nmy @orders;\r\nwhile (my $o = $sth->fetchrow_hashref()) {\r\n	push @orders, $o;\r\n}\r\n$sth->finish();\r\n\r\nmy @disapproved_oids;\r\nforeach my $order (@orders) {\r\n	my ($paid, $active);\r\n	if ($order->{approved} == 0) {\r\n		push @disapproved_oids, $order->{order_id};\r\n		$paid = 0;\r\n		$active = 0;\r\n	} else {\r\n		$paid = 1;\r\n		$active = 1;\r\n	}\r\n\r\n	my ($rv, $sth) = $S->db_update({\r\n		WHAT  => \'ad_payments\',\r\n		SET   => \"paid=$paid, final_date=NOW()\",\r\n		WHERE => \"ad_id=$order->{ad_id}\"});\r\n	$sth->finish();\r\n	\r\n	($rv, $sth) = $S->db_update({\r\n		WHAT  => \'ad_info\',\r\n		SET   => \"active=$active\",\r\n		WHERE => \"ad_id=$order->{ad_id}\"});\r\n	$sth->finish();\r\n\r\n	if ($active) {\r\n		($rv, $sth) = $S->db_select({\r\n				WHAT => \'ad_sid\',\r\n				FROM => \'ad_info\',\r\n				WHERE => qq{ad_id = $order->{ad_id}}});\r\n		my $sid = $sth->fetchrow();\r\n			\r\n		if ($sid) {\r\n			$S->activate_ad_story($sid);\r\n		}\r\n	}\r\n}\r\n\r\nif ($#disapproved_oids >= 0) {\r\n	my $subject = \'Paypal Order Refund Alert\';\r\n	my $message = qq{\r\nThe following paypal orders were disapproved and need a refund.\r\n};\r\n	\r\n	foreach my $oid (@disapproved_oids) {\r\n		$message .= qq{\r\nhttps://www.paypal.com/vst/id=$oid};\r\n	}\r\n	\r\n	foreach my $to (split /,/, $S->{UI}->{BLOCKS}->{admin_alert}) {\r\n		$S->mail($to, $subject, $message);\r\n	}\r\n\r\n}','','blank_box',0);
INSERT INTO box VALUES ('paypal_confirm','','my $DEBUG = 0;\r\nmy $state;\r\n\r\n\r\nmy $answer = $S->paypal_ipn_confirm();\r\n\r\nif ($answer ne \'VERIFIED\') {\r\n	$S->paypal_invalid_mail();\r\n	return;\r\n}\r\n\r\nmy $vars = $S->cgi->Vars();\r\n# Check payment status\r\nmy $stat = $vars->{\'payment_status\'};\r\nreturn unless ($stat =~ /completed/i);\r\n\r\n# Check that it\'s an ad or a renewal. Add in subscription notify later\r\nif ($vars->{item_name} eq \'Advertisement\') {\r\n\r\n	$S->paypal_activate_ad($vars);\r\n\r\n} elsif ($vars->{item_name} eq \'Ad Renew\') {\r\n\r\n	$S->paypal_do_renewal($vars);\r\n\r\n}\r\n\r\n\r\nreturn;','','blank_box',0);
INSERT INTO box VALUES ('unpaid_ad_reap','','my ($rv, $sth) = $S->db_delete({\r\n    FROM => \'ad_info\',\r\n    WHERE => \'paid is null and TO_DAYS(NOW()) - TO_DAYS(submitted_on) >= 14 and example != 1\'});\r\n$sth->finish();\r\n','Reap unpaid ads after 14 days. They are unlikely to ever be paid for then.','blank_box',0);

INSERT INTO cron VALUES ('cc_bill_orders','cc_bill_orders',300,'2002-04-20 17:21:35',0,1);
INSERT INTO cron VALUES ('paypal_bill_orders','paypal_bill_orders',300,'0000-00-00 00:00:00',0,1);
INSERT INTO cron VALUES ('unpaid_ad_reap','unpaid_ad_reap',86400,'0000-00-00 00:00:00',0,1);

INSERT INTO special VALUES ('adpay','Pay for Ad Order','','%%BOX,ad_pay_type_select%%');
INSERT INTO special VALUES ('paypal_confirm','Paypal auto-confirm','','%%BOX,paypal_confirm%%');

INSERT INTO vars VALUES ('secure_site_url','https://scoop.mysite.org/','If you have a secure URL, enter it above. Should probably be the same as \'site_url\', but with https://','text','General');
