Skip to content

Instantly share code, notes, and snippets.

@ddamko
Created July 27, 2015 22:07
Show Gist options
  • Save ddamko/3119e54beaf191b5dff0 to your computer and use it in GitHub Desktop.
Save ddamko/3119e54beaf191b5dff0 to your computer and use it in GitHub Desktop.
#--------------------------------------------------------------------------------------------------
#
# File: app_endco_dental.pl
# Version: 1.00
# Date: 20120721
#
# COPYRIGHT 2012 e-Tech Solutions, Inc.
#
# Any unauthorized reproduction or use of this script in part or whole is a violation of copyright
# laws and is strictly prohibited.
#
#--------------------------------------------------------------------------------------------------
package enrollbest::3_0_0::app_endco_dental;
use strict;
use warnings;
return 1;
#--------------------------------------------------------------------------------------------------
#
# usage: &control_handler($spirit, $dbh, $r, $software, $control)
# arguments: $spirit, $dbh, $r, $software, $control
# returns: 1
# function:
#
sub control_handler
{
my ($spirit, $dbh, $r, $software, $control) = @_;
$spirit->{'debug'} .= '&lt;<strong>control_handler</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n";
$spirit->{'debug'} .= '<strong>action</strong>: '.$spirit->{'fromform'}{'action'}.'<br />'."\n";
my $return_value = 1;
my $key_product = $spirit->{'fromform'}{'key_product'} || 0;
my $product_id = $spirit->{'fromform'}{'product_id'} || ''; # 'comp_dual_choice';
$spirit->{'debug'} .= 'key_product: '.$key_product.'<br />'."\n";
# unless ($key_product) {
# &endg::util::init_product($spirit, $dbh, $software, $control, $product_id);
# ($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='comp_dual_choice' and key_site=".$spirit->{'internal'}{'key_site'}.";");
# }
if ($spirit->{'fromform'}{'action'} eq 'cancel'){
$spirit->{'screen'} = 'apps';
$spirit->{'debug'} .= 'return screen set to: '.$spirit->{'screen'}.'<br />'."\n";
$spirit->{'fromform'} = {};
}
elsif ($spirit->{'fromform'}{'action'} eq 'update')
{
if ((&qualify_data($spirit, $dbh, $r, $software, $control)) && ($key_product))
{
my $product_fields = {
'status' => '1',
'product_id' => '1',
'index' => '1',
'available' => '1',
};
my $exclued_fields = $spirit->{'control_fields'};
foreach my $key (keys %{$spirit->{'fromform'}})
{
next if (defined($exclued_fields->{$key}));
next if ($key eq 'key_product');
if (defined($product_fields->{$key})) {
if ($key eq 'index') {
my $index = $spirit->{'fromform'}{'index'};
my $max_index;
my $sql = 'select index from products where '.
' key_product='.$dbh->{$software}->quote($key_product).
' and key_site='.$spirit->{'internal'}{'key_site'}.';';
my ($original_index) = $dbh->{$software}->selectrow_array($sql);
if ($index eq 'move_to_end'){
$sql = 'select max (index) from products where '.
' key_site='.$spirit->{'internal'}{'key_site'}.';';
($max_index) = $dbh->{$software}->selectrow_array($sql);
$spirit->{'debug'} .= 'max_index: '.$max_index.'<br />'."\n";
# move existing indexes down one that were above our original_index
$sql = 'update products set index=(index - 1) where index >'.$original_index.
' and key_product <> '.$key_product.
' and key_site='.$spirit->{'internal'}{'key_site'}.
';';
$spirit->{'debug'} .= 'make a space at he end for new max index sql: '.$sql.'<br />'."\n";
$dbh->{$software}->do($sql);
# Fill the hole. Update our product with the new index
$sql = 'update products set index='.$max_index.' where key_product='.$key_product.
' and key_site='.$spirit->{'internal'}{'key_site'}.';';
$spirit->{'debug'} .= 'update product index sql: '.$sql.'<br />'."\n";
$dbh->{$software}->do($sql);
}
else {
# move existing indexes up one to make a hole
$sql = 'update products set index=(index + 1) where index >='.$index.
# ' and key_product <> '.$key_product.
' and key_site='.$spirit->{'internal'}{'key_site'}.';';
$spirit->{'debug'} .= 'make a hole index sql: '.$sql.'<br />'."\n";
$dbh->{$software}->do($sql);
# Fill the hole. Update our product with the new index
$sql = 'update products set index='.$index.' where key_product='.$key_product.
' and key_site='.$spirit->{'internal'}{'key_site'}.';';
$spirit->{'debug'} .= 'update product index sql: '.$sql.'<br />'."\n";
$dbh->{$software}->do($sql);
# move existing indexes down one that were above our original_index
$sql = 'update products set index=(index - 1) where index >'.$original_index.
' and key_product <> '.$key_product.
' and key_site='.$spirit->{'internal'}{'key_site'}.
';';
$spirit->{'debug'} .= 'clear empty space index sql: '.$sql.'<br />'."\n";
$dbh->{$software}->do($sql);
}
}
else {
my $value = $spirit->{'fromform'}{$key};
my $record = {
$key => $value,
};
my $table = 'products';
unless (&endg::util::save_record($spirit, $dbh, $software, $table, $record, $key_product)){
$spirit->{'message'}{'error'}{$software.'::'.$control} .= '<li>Ouch, we had a problem updating the product '.$key.'</li>'."\n";
}
}
}
else {
my $attribute_name = $key;
my $attribute_value = $spirit->{'fromform'}{$key};
my $attribute_type = 'sob';
$attribute_type = 'app' if ($spirit->{'fromform'}{'misc1'} eq 'application');
$attribute_type = 'restriction' if ($spirit->{'fromform'}{'misc1'} eq 'restrictions');
$attribute_type = 'admin' if ($attribute_name eq 'note');
my $record = { 'key_product' => $key_product,
'attribute_name' => $attribute_name,
'attribute_value' => $attribute_value,
'attribute_type' => $attribute_type,
};
my $table = 'product_attributes';
if (&endg::util::save_record($spirit, $dbh, $software, $table, $record))
{
# $spirit->{'products'}{$product_id}{'sob'}{'title'}
$spirit->{'products'}{$product_id}{$attribute_type} = $attribute_value;
}
else {
$spirit->{'message'}{'error'}{$software.'::'.$control} .= '<li>Ouch, we had a problem updating: "'.$attribute_name.'".</li>'."\n";
}
}
}
$spirit->{'message'}{'confirmation'}{$software.'::'.$control} .= '<li>Got it - app settings have been updated.</li>'."\n";
# $spirit->{'screen'} = 'app_comp_dual_choice';
# $spirit->{'fromform'} = {};
}
}
else
{
$spirit->{'debug'} .= 'Unknown action <br />'."\n";
}
$spirit->{'debug'} .= '</div>&lt;/<strong>control_handler</strong>><br />'."\n";
return $return_value;
}
#
#--------------------------------------------------------------------------------------------------
#
# usage: &qualify_data($spirit, $dbh)
# arguments: $spirit, $dbh
# returns: 1 | 0
# function: insure all passed parameters meet minimum needs
#
sub qualify_data
{
my ($spirit, $dbh, $r, $software, $control) = @_;
$spirit->{'debug'} .= '&lt;<strong>qualify_data</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n";
my $return_value = 1;
if ($spirit->{'fromform'}{'action'} eq 'update')
{
if ($spirit->{'fromform'}{'misc1'} eq 'application')
{
if ($spirit->{'fromform'}{'premium_1dhmo'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO employee can not be blank.</li>'."\n";
}
if ($spirit->{'fromform'}{'premium_2dhmo'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO plus 1 can not be blank.</li>'."\n";
}
if ($spirit->{'fromform'}{'premium_3dhmo'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>DHMO family can not be blank.</li>'."\n";
}
if ($spirit->{'fromform'}{'premium_1indemnity'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY employee can not be blank.</li>'."\n";
}
if ($spirit->{'fromform'}{'premium_2indemnity'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY plus 1 can not be blank.</li>'."\n";
}
if ($spirit->{'fromform'}{'premium_3indemnity'} eq '') {
$return_value = 0;
$spirit->{'message'}{'invalid_entry'}{$software.'::'.$control} .= '<li>INDEMNITY family can not be blank.</li>'."\n";
}
}
}
$spirit->{'debug'} .= '</div>&lt;/<strong>qualify_data</strong>><br />'."\n";
return $return_value;
}
#
#--------------------------------------------------------------------------------------------------
#
# usage: &control_display($spirit, $dbh, $r, $software, $control, $args)
# arguments: $spirit, $dbh
# returns: html
# function: create html for control
#
sub control_display
{
my($spirit, $dbh, $r, $software, $control, $args) = @_;
$spirit->{'debug'} .= '&lt;<strong>control_display</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n";
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n";
if ($args)
{
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n";
foreach my $arg (keys %{$args})
{
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n";
}
$spirit->{'debug'} .= '</div>'."\n";
}
my $field_count = 0;
my $sql;
my $sth;
my $display;
my $key_product;
my $product_id = $args->{'product_id'} || '';
($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='".$product_id."' and key_site=".$spirit->{'internal'}{'key_site'}.';');
unless ($key_product) {
&enrollbest::3_0_0::util::init_product($spirit, $dbh, $software, $product_id);
($key_product) = $dbh->{$software}->selectrow_array("SELECT key_product FROM products WHERE product_id='".$product_id."' and key_site=".$spirit->{'internal'}{'key_site'}.';');
}
$spirit->{'internal'}{'js'}{'include'}{'<script type="text/javascript" language="JavaScript1.1" src="/enroll/3_0_0/js/admin_app_edit.js"></script>'} = 1;
&enrollbest::3_0_0::util::load_product_attributes($spirit, $dbh, $software, $key_product);
$spirit->{'internal'}{'help'}{$control}{'title'} ||= $spirit->{'products'}{$product_id}{'product_name'}.' settings';
$spirit->{'internal'}{'help'}{$control}{'purpose'} ||= 'These screens configure the rates and display of the '.$spirit->{'products'}{$product_id}{'product_name'}.' application.<br />'."\n";
$spirit->{'internal'}{'help'}{$control}{'button'} .= '<strong>update</strong> - update settings.<br />'."\n";
$display .='<div id="control_'.$control.'" class="control">'."\n";
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'" name="'.$control.'">'."\n";
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n";
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n";
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n";
$display .=' <input type="hidden" name="action" value="" />'."\n";
$display .=' <input type="hidden" name="misc1" value="sob" />'."\n";
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n";
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n";
if ($key_product) {
$display .=' <h3>product settings</h3>'."\n";
$display .=' <br style="clear:both;" />'."\n";
my @display_elements = (' active ', ' inactive ');
my @value_elements = ('active', 'inactive');
if ($spirit->{'internal'}{'administrator'}{'security_level'} < 10) {
push @display_elements, 'disabled';
push @value_elements, 'disabled';
$display .= '<div class="fact_box"><div class="admin-icon"></div>'."\n";
$display .= ' As a super administrator,<br>'."\n";
$display .= ' you may disable this application, which will make it unavailable to this account by selecting: "disable".'."\n";
$display .= '</div>'."\n";
}
my $name = 'status';
my $display_name = 'status';
if ($spirit->{'products'}{$product_id}{'key_product'}) {
$spirit->{'products'}{$product_id}{'status'} ||= 'disabled';
$field_count ++;
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - Enable/disable product.<br />'."\n";
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'product'}{'property'}{'status'}, \@value_elements, \@display_elements);
$display .=' <div class="hint indent">add or remove a product from your statment of benefits list. Setting a product to "inactive" does not delete any enrollments.</div>'."\n";
}
else {
$display .= $display_name;
}
$display .=' <br style="clear:both;" />'."\n";
# pre-tax
$name = 'pre-tax';
$display_name = 'pre-tax';
@display_elements = (' yes ', ' no ');
@value_elements = ('yes', 'no');
if ($spirit->{'products'}{$product_id}{'key_product'}) {
$spirit->{'products'}{$product_id}{'sob'}{'pre-tax'} ||= 'no';
$field_count ++;
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - set product pre-tax eligability. Note: This option is not used on all statement of benefit configurations.<br />'."\n";
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'products'}{$product_id}{'sob'}{'pre-tax'}, \@value_elements, \@display_elements);
$display .=' <div class="hint indent">set product pre-tax eligability. Note: This option is not used on all statement of benefit configurations.</div>'."\n";
}
else {
$display .= $display_name;
}
# $display .=' <br style="clear:both;" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=qq^ <h3>statment of benefits</h3>^."\n";
my $product_count = scalar keys %{ $spirit->{'products'} };
if ($product_count > 0) {
my @display_elements;
my @value_elements;
my %product_order;
foreach my $product_id (keys %{$spirit->{'products'}}) {
$product_order{$spirit->{'products'}{$product_id}{'index'}} = $spirit->{'products'}{$product_id}{'product_id'};
}
foreach my $product_index (sort { $a <=> $b } keys %product_order) {
if ($spirit->{'products'}{ $product_order{$product_index} }{'status'} ne 'disabled') {
my $display_name = $spirit->{'products'}{$product_order{$product_index}}{'sob'}{'summary'} || $product_order{$product_index};
push @display_elements, $display_name;
push @value_elements, $product_index;
}
}
push @display_elements, 'move to end';
push @value_elements, 'move_to_end';
my $name = 'index';
my $display_name = 'show product before';
if ($spirit->{'products'}{$product_id}{'key_product'}) {
$spirit->{'products'}{$product_id}{'index'} ||= $product_count;
$field_count ++;
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>'.$display_name.'</strong> - Move product up or down the list of available products shown on the SOB.<br />'."\n";
$display .= &endg::util::display_dropdown($spirit, $control, $field_count, $name, $display_name, $spirit->{'product'}{'property'}{'index'}, \@value_elements, \@display_elements);
$display .=' <div class="hint indent">set the order in which products are listed on the statement of benefits.</div>'."\n";
}
# $display .=' <br style="clear:both;" />'."\n";
}
$display .=' <div class="spacer"></div>'."\n";
# $display .=' <br style="clear:both;" />'."\n";
# title
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'title'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>title</strong> - Product title to be shown on the statement of benefits.<br />'."\n";
$display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">title:</label>^."\n";
$display .=' <input type="text" name="title" id="title" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'title'}).'" />'."\n";
$display .=' <div class="hint indent">product title shown on the statement of benefits.</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# summary
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'summary'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>summary</strong> - Product summary to be shown on the statement of benefits product summary and emails.<br />'."\n";
$display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">summary:</label>^."\n";
$display .=' <input type="text" name="summary" id="summary" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'summary'}).'" />'."\n";
$display .=' <div class="hint indent">product summary shown on the statement of benefits summary and emails.</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# brief_description
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'brief_description'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide a brief product description to be shown on the statement of benefits.<br />'."\n";
$display .=qq^ <label for="brief_description" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">brief description:</label>^."\n";
$display .=' <textarea name="brief_description" id="brief_description" rows="5" cols="75">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'brief_description'}).'</textarea>'."\n";
$display .=' <div class="hint indent">product description shown on the statement of benefits.</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# learn_more_link
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'learn_more_link'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>learn more links</strong> - Create a learn more link.<br />'."\n";
$display .=qq^ <label for="learn_more_link" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">learn more link:</label>^."\n";
$display .=' <input type="text" name="learn_more_link" id="learn_more_link" size="75" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'learn_more_link'}).'" />'."\n";
$display .=' <div class="hint indent">exp: "../enroll/forms/product_description.pdf"</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# alt_link # this is shown instead of learn_more_link
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'alt_link'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide an alternate link or HTML to be shown on the statement of benefits.<br />'."\n";
$display .=qq^ <label for="alt_link" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">alternate link:</label>^."\n";
$display .=' <textarea name="alt_link" id="brief_description" rows="5" cols="75">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'alt_link'}).'</textarea>'."\n";
$display .=' <div class="hint indent">Alternate link/html shown on the statement of benefits.</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# img image
$field_count ++;
$spirit->{'products'}{$product_id}{'sob'}{'image'} ||= '';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>brief description</strong> - Provide a brief product description to be shown on the statement of benefits.<br />'."\n";
$display .=qq^ <label for="image" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">image:</label>^."\n";
$display .=' <input type="text" name="image" id="image" size="75" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'image'}).'" />'."\n";
$display .=' <div class="hint indent">exp: "&lt;img src="/demo/graphics/logo_product.png" align="right" border="0" alt="product logo" />"</div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# my $app = 'lcoa_legal_club';
# √ (title) my $full_name = 'Legal Services';
# √ (description) my $description = 'Legal club is a nationwide discount legal referral service providing free and discounted legal care for you, your spouse, and your children.';
# my $learn_more_link = '../enroll/forms/highlights.pdf';
# my $alt_link = '';
# my $img = ' <img src="/demo/graphics/logo_legalclub.png" align="right" border="0" alt="Legal Club" />';
$display .=' <div class="spacer"></div>'."\n";
$display .=' <h3>admin notes</h3>'."\n";
$display .=' <div class="spacer">&nbsp;</div>'."\n";
# note
$field_count ++;
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>note</strong> - Set an internal note.<br />'."\n";
$display .=qq^ <label for="note" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">note:</label>^."\n";
$display .=' <textarea name="note" id="note" rows="5" cols="60">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'admin'}{'note'}).'</textarea>'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <div class="button_bar">'."\n";
$display .=' <a href="'."javascript:update_form('".$control."','cancel');".'" class="button">cancel</a>'."\n";
$display .=' <a href="'."javascript:update_form('".$control."','update');".'" class="button primary">update</a>'."\n";
$display .=' </div>'."\n";
}
else {
$display .=' <div style="margin:50px;">'."\n";
$display .=' Ouch! We had a problem loading the product. :('."\n";
$display .=' </div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
}
$display .=' </form>'."\n";
$display .='</div>'."\n";
&display_application($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args);
&display_restrictions($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args);
$spirit->{'tags'}{'control'}{$software.'::'.$control}{'output'} = $display;
$spirit->{'debug'} .= '</div>&lt;/<strong>control_display</strong>><br />'."\n";
return 1;
}
#
#--------------------------------------------------------------------------------------------------
#
# usage: &display_application($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args)
# arguments: $spirit, $dbh
# returns: html
# function: create html for control
#
sub display_application
{
my($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) = @_;
$spirit->{'debug'} .= '&lt;<strong>display_application</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n";
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n";
if ($args)
{
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n";
foreach my $arg (keys %{$args})
{
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n";
}
$spirit->{'debug'} .= '</div>'."\n";
}
my $field_count = 0;
my $sql;
my $sth;
my $display;
$display .='<div id="control_'.$control.'_application" class="control">'."\n";
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'_application" name="'.$control.'_application">'."\n";
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n";
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n";
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n";
$display .=' <input type="hidden" name="action" value="" />'."\n";
$display .=' <input type="hidden" name="misc1" value="application" />'."\n";
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n";
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n";
if ($key_product) {
$display .=' <div class="spacer"></div>'."\n";
$display .=' <h3>premium levels - DHMO</h3>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_1dhmo
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_1dhmo'} ||= '12.30';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO employee</strong> - Typically $3.50.<br />'."\n";
$display .=qq^ <label for="premium_1dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">employee:</label>^."\n";
$display .=' <input type="text" name="premium_1dhmo" id="premium_1dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_1dhmo'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_2dhmo
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_2dhmo'} ||= '20.82';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO plus 1</strong> - Typically $4.36.<br />'."\n";
$display .=qq^ <label for="premium_2dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plus 1:</label>^."\n";
$display .=' <input type="text" name="premium_2dhmo" id="premium_2dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_2dhmo'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_3dhmo
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_3dhmo'} ||= '28.84';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>DHMO family</strong> - Typically $6.58.<br />'."\n";
$display .=qq^ <label for="premium_3dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">family:</label>^."\n";
$display .=' <input type="text" name="premium_3dhmo" id="premium_3dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_3dhmo'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# plan_code_dhmo
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'plan_code_dhmo'} ||= 'SEL15X';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>plan code</strong> - default SEL15X.<br />'."\n";
$display .=qq^ <label for="plan_code_dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plan code:</label>^."\n";
$display .=' <input type="text" name="plan_code_dhmo" id="plan_code_dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'plan_code_dhmo'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# group_code_dhmo
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'group_code_dhmo'} ||= 'CP6071';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>group code</strong> - default CP6071.<br />'."\n";
$display .=qq^ <label for="group_code_dhmo" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">group code:</label>^."\n";
$display .=' <input type="text" name="group_code_dhmo" id="group_code_dhmo" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'group_code_dhmo'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <h3>premium levels - INDEMNITY</h3>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_1indemnity
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_1indemnity'} ||= '32.32';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY employee</strong> - Typically $3.50.<br />'."\n";
$display .=qq^ <label for="premium_1indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">employee:</label>^."\n";
$display .=' <input type="text" name="premium_1indemnity" id="premium_1indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_1indemnity'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_2indemnity
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_2indemnity'} ||= '62.18';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY plus 1</strong> - Typically $4.36.<br />'."\n";
$display .=qq^ <label for="premium_2indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plus 1:</label>^."\n";
$display .=' <input type="text" name="premium_2indemnity" id="premium_2indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_2indemnity'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# premium_3indemnity
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'premium_3indemnity'} ||= '98.16';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>INDEMNITY family</strong> - Typically $6.58.<br />'."\n";
$display .=qq^ <label for="premium_3indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">family:</label>^."\n";
$display .=' <input type="text" name="premium_3indemnity" id="premium_3indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'premium_3indemnity'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# plan_code_indemnity
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'plan_code_indemnity'} ||= 'CXBA06';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>plan code</strong> - default CXBA06.<br />'."\n";
$display .=qq^ <label for="plan_code_indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">plan code:</label>^."\n";
$display .=' <input type="text" name="plan_code_indemnity" id="plan_code_indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'plan_code_indemnity'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
# group_code_indemnity
$field_count ++;
$spirit->{'products'}{$product_id}{'app'}{'group_code_indemnity'} ||= 'CD6071';
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>group code</strong> - default CD6071.<br />'."\n";
$display .=qq^ <label for="group_code_indemnity" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">group code:</label>^."\n";
$display .=' <input type="text" name="group_code_indemnity" id="group_code_indemnity" class="form_box" size="10" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'app'}{'group_code_indemnity'}).'" />'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <h3>admin notes</h3>'."\n";
$display .=' <div class="spacer"></div>'."\n";
# note
$field_count ++;
$spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>note</strong> - Set an internal note.<br />'."\n";
$display .=qq^ <label for="note" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">note:</label>^."\n";
$display .=' <textarea name="note" id="note" rows="5" cols="60">'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'admin'}{'note'}).'</textarea>'."\n";
$display .=' <div class="spacer"></div>'."\n";
$display .=' <div class="button_bar">'."\n";
$display .=' <a href="'."javascript:update_form('".$control."_application','cancel');".'" class="button">cancel</a>'."\n";
$display .=' <a href="'."javascript:update_form('".$control."_application','update');".'" class="button primary">update</a>'."\n";
$display .=' </div>'."\n";
}
else {
$display .=' <div style="margin:50px;">'."\n";
$display .=' Ouch! We had a problem loading the product. :('."\n";
$display .=' </div>'."\n";
}
$display .=' </form>'."\n";
$display .='</div>'."\n";
$spirit->{'value'}{'control'}{'app_'.$product_id}{'application'} = $display;
$spirit->{'debug'} .= '</div>&lt;/<strong>display_application</strong>><br />'."\n";
return 1;
}
#
#--------------------------------------------------------------------------------------------------
#
# usage: &display_restrictions($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args)
# arguments: $spirit, $dbh
# returns: html
# function: create html for control
#
sub display_restrictions
{
my($spirit, $dbh, $r, $software, $control, $key_product, $product_id, $args) = @_;
$spirit->{'debug'} .= '&lt;<strong>display_restrictions</strong>> - called by:'.join(',', caller).'<div style="padding-left:25px;">'."\n";
$spirit->{'debug'} .= 'control: '.$control.'<br />'."\n";
if ($args)
{
$spirit->{'debug'} .= 'args:<div style="padding-left:25px;">'."\n";
foreach my $arg (keys %{$args})
{
$spirit->{'debug'} .= $arg.': '.$args->{$arg}.'<br />'."\n";
}
$spirit->{'debug'} .= '</div>'."\n";
}
my $field_count = 0;
my $sql;
my $sth;
my $display;
$display .='<div id="control_'.$control.'_application" class="control">'."\n";
$display .=' <form method="post" action="'.$spirit->{'internal'}{'url_app'}.'" id="'.$control.'_restrictions" name="'.$control.'_restrictions">'."\n";
$display .=' <input type="hidden" name="session_id" value="'.$spirit->{'session'}{'session_id'}.'" />'."\n";
$display .=' <input type="hidden" name="screen" value="'.$spirit->{'screen'}.'" />'."\n";
$display .=' <input type="hidden" name="control" value="'.$control.'" />'."\n";
$display .=' <input type="hidden" name="action" value="" />'."\n";
$display .=' <input type="hidden" name="misc1" value="restrictions" />'."\n";
$display .=' <input type="hidden" name="key_product" value="'.$key_product.'" />'."\n";
$display .=' <input type="hidden" name="product_id" value="'.$product_id.'" />'."\n";
if ($key_product) {
$display .=qq^ <h3>application restrictions</h3>^."\n";
$display .=' <div class="fact_box vm50">This application does not have any configurable restrictions.</div>'."\n";
# title
# $field_count ++;
# $spirit->{'products'}{$product_id}{'sob'}{'title'} ||= '';
# $spirit->{'internal'}{'help'}{$control}{'field'}{$field_count} ||= '<strong>title</strong> - Product title to be shown on the statement of benefits.<br />'."\n";
# $display .=qq^ <label for="title" onClick="toggle_field('qr_control_$control\_field_$field_count','qr_control_$control');" style="cursor:hand; cursor:pointer">title:</label>^."\n";
# $display .=' <input type="text" name="title" id="title" class="form_box" size="40" value="'.&endg::util::make_safe_form_string($spirit, $spirit->{'products'}{$product_id}{'sob'}{'title'}).'" />'."\n";
# $display .=' <div class="hint indent">product title shown on the statement of benefits.</div>'."\n";
# $display .=' <br style="clear:both;" />'."\n";
$display .=' <div class="button_bar">'."\n";
$display .=' <a href="'."javascript:update_form('".$control."_restrictions','cancel');".'" class="button">cancel</a>'."\n";
# $display .=' <a href="'."javascript:update_form('".$control."_restrictions','update');".'" class="button primary">update</a>'."\n";
$display .=' </div>'."\n";
}
else {
$display .=' <div style="margin:50px;">'."\n";
$display .=' Ouch! We had a problem loading the product. :('."\n";
$display .=' </div>'."\n";
}
$display .=' </form>'."\n";
$display .='</div>'."\n";
$spirit->{'value'}{'control'}{'app_'.$product_id}{'restrictions'} = $display;
$spirit->{'debug'} .= '</div>&lt;/<strong>display_application</strong>><br />'."\n";
return 1;
}
#
#--------------------------------------------------------------------------------------------------
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment