diff options
author | Dave Whiteland <dave@mysociety.org> | 2012-05-02 19:39:19 +0100 |
---|---|---|
committer | Dave Whiteland <dave@mysociety.org> | 2012-05-02 19:39:19 +0100 |
commit | 794f32474a78d3eefcc68ef57370bba74b5625aa (patch) | |
tree | e469eb8007b561ea7efbb77c09ed4c9df45b60a2 | |
parent | a7e64618f5a14a4fa73db0450b5ec2b6c33ec5a5 (diff) | |
parent | 16061e060354affb25701a8c6111ee30df2ac19c (diff) |
Merge branch 'barnet-integration'
57 files changed, 3507 insertions, 98 deletions
diff --git a/bin/send-reports b/bin/send-reports index 22bd12732..a0c084c1c 100755 --- a/bin/send-reports +++ b/bin/send-reports @@ -22,6 +22,7 @@ use CronFns; use FixMyStreet::App; use EastHantsWSDL; +use BarnetInterfaces::service::ZLBB_SERVICE_ORDER; use Utils; use mySociety::Config; use mySociety::EmailUtil; @@ -30,6 +31,22 @@ use mySociety::Web qw(ent); use Open311; +# maximum number of webservice attempts to send before not trying any more (XXX may be better in config?) +use constant SEND_FAIL_RETRIES_CUTOFF => 3; + +# specific council numbers +use constant COUNCIL_ID_BARNET => 2489; +use constant COUNCIL_ID_EAST_HANTS => 2330; + +use constant MAX_LINE_LENGTH => 132; + +# send_method config values found in by-area config data, for selecting to appropriate method +use constant SEND_METHOD_EMAIL => 'email'; +use constant SEND_METHOD_OPEN311 => 'open311'; +use constant SEND_METHOD_BARNET => 'barnet'; +use constant SEND_METHOD_EAST_HANTS => 'easthants'; +use constant SEND_METHOD_LONDON => 'london'; + # Set up site, language etc. my ($verbose, $nomail) = CronFns::options(); my $base_url = mySociety::Config::get('BASE_URL'); @@ -40,6 +57,9 @@ my $unsent = FixMyStreet::App->model("DB::Problem")->search( { whensent => undef, council => { '!=', undef }, } ); + +my %sending_skipped_by_method = (); + my (%notgot, %note); while (my $row = $unsent->next) { @@ -56,8 +76,10 @@ while (my $row = $unsent->next) { next; } - my $send_email = 0; - my $send_web = 0; + # Due to multiple councils, it's possible to want to send both by email *and* another method + # NB: might need to revist this if multiple councils have custom send methods + my $send_email = 0; + my $send_method = 0; # Template variables for the email my $email_base_url = $cobrand->base_url_for_emails($row->cobrand_data); @@ -118,6 +140,7 @@ while (my $row = $unsent->next) { push @to, [ $council_email, $name ]; @recips = ($council_email); + $send_method = 0; $send_email = 1; $template = Utils::read_file("$FindBin::Bin/../templates/email/emptyhomes/" . $row->lang . "/submit.txt"); @@ -133,15 +156,37 @@ while (my $row = $unsent->next) { foreach my $council (@councils) { my $name = $areas_info->{$council}->{name}; push @dear, $name; - if ($council == 2330) { # E. Hants have a web service - $send_web = 'easthants'; + + # look in the DB to determine if there is a special handler for this council (e.g., open311, or custom) + my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council} )->first; + $send_method = $council_config->send_method if $council_config; + if ($council == COUNCIL_ID_EAST_HANTS) { # E. Hants have a web service + $send_method = SEND_METHOD_EAST_HANTS; # TODO: delete? should be in the db $h{category} = 'Customer Services' if $h{category} eq 'Other'; - } elsif ($areas_info->{$council}->{type} eq 'LBO') { # London - $send_web = 'london'; - } elsif ( my $endpoint = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => $council, endpoint => { '!=', '' } } )->first ) { - push @open311_councils, $endpoint; - $send_web = 'open311'; - } else { + } + + # if council lookup provided no explicit send_method, maybe there's some other criterion for setting it: + if (! $send_method) { + if ($areas_info->{$council}->{type} eq 'LBO') { # London + $send_method = SEND_METHOD_LONDON; + } + } + $send_email = 1 unless $send_method; # default to email if nothing explicit was provided + + # currently: open311 or Barnet without an endpoint is useless, so check the endpoint is set + if ($send_method eq SEND_METHOD_OPEN311 or $send_method eq SEND_METHOD_BARNET) { + if ($council_config->endpoint) { + if ($send_method eq SEND_METHOD_OPEN311) { + push @open311_councils, $council_config; + } + } else { + print "Warning: no endpoint specified in config data for council=$council (will try email instead)\n"; + $send_method = 0; + $send_email = 1; + } + } + + if ($send_email) { my $contact = FixMyStreet::App->model("DB::Contact")->find( { deleted => 0, area_id => $council, @@ -160,7 +205,6 @@ while (my $row = $unsent->next) { } push @to, [ $council_email, $name ]; $recips{$council_email} = 1; - $send_email = 1; } } @recips = keys %recips; @@ -199,15 +243,19 @@ while (my $row = $unsent->next) { } - unless ($send_email || $send_web) { + unless ($send_method) { die 'Report not going anywhere for ID ' . $row->id . '!'; } if (mySociety::Config::get('STAGING_SITE')) { # on a staging server send emails to ourselves rather than the councils - @recips = ( mySociety::Config::get('CONTACT_EMAIL') ); - $send_web = 0; - $send_email = 1; + # ...webservice calls will only go through if explictly allowed here: + my @testing_councils = (COUNCIL_ID_BARNET); + unless (grep {$row->council eq $_} @testing_councils) { + @recips = ( mySociety::Config::get('CONTACT_EMAIL') ); + $send_method = 0; + $send_email = 1; + } } elsif ($site eq 'emptyhomes') { my $council = $row->council; my $country = $areas_info->{$council}->{country}; @@ -243,17 +291,28 @@ while (my $row = $unsent->next) { ); } - if ($send_web eq 'easthants') { + if ($send_method eq SEND_METHOD_EAST_HANTS) { $h{message} = construct_easthants_message(%h); if (!$nomail) { $result *= post_easthants_message(%h); } - } elsif ($send_web eq 'london') { + } elsif ($send_method eq SEND_METHOD_BARNET) { + $h{message} = construct_barnet_message(%h); + if (!$nomail) { + if (my $cutoff_msg = does_exceed_cutoff_limit($row, "barnet")) { + print "$cutoff_msg\n" if $verbose; + } else { + my ($barnet_result, $err_msg) = post_barnet_message( $row, %h ); + update_send_fail_data($row, $err_msg) if $barnet_result; + $result *= $barnet_result; + } + } + } elsif ($send_method eq SEND_METHOD_LONDON) { $h{message} = construct_london_message(%h); if (!$nomail) { $result *= post_london_report( $row, %h ); } - } elsif ($send_web eq 'open311') { + } elsif ($send_method eq SEND_METHOD_OPEN311) { foreach my $conf ( @open311_councils ) { print 'posting to end point for ' . $conf->area_id . "\n" if $verbose; @@ -316,6 +375,17 @@ if ($verbose) { } } +# not conditional on verbose because these can be considered failures (more relevant than one-off error messages?) +if (keys %sending_skipped_by_method) { + my $c = 0; + print "\nProblem reports that send-reports did not attempt to send because retries >= " . SEND_FAIL_RETRIES_CUTOFF . ":\n"; + foreach my $send_method (sort keys %sending_skipped_by_method) { + printf " %-24s %4d\n", "$send_method:", $sending_skipped_by_method{$send_method}; + $c+=$sending_skipped_by_method{$send_method}; + } + printf " %-24s %4d\n", "Total:", $c; +} + sub _get_district_for_contact { my ( $lat, $lon ) = @_; my $district = @@ -358,6 +428,8 @@ sub construct_easthants_message { $message .= <<EOF; Subject: $h{title} +Category: $h{category} + Details: $h{detail} $h{fuzzy}, or to provide an update on the problem, please visit the following link: @@ -390,6 +462,115 @@ sub post_easthants_message { return $return; } +# currently just blind copy of construct_easthants_message +sub construct_barnet_message { + my %h = @_; + my $message = <<EOF; +Subject: $h{title} + +Details: $h{detail} + +$h{fuzzy}, or to provide an update on the problem, please visit the following link: + +$h{url} + +$h{closest_address} +EOF +} + +sub post_barnet_message { + my ( $problem, %h ) = @_; + my $return = 1; + my $err_msg = ""; + + my $default_kbid = 14; # This is the default, "Street Scene" + my $kbid = sprintf( "%050d", Utils::barnet_categories()->{$h{category}} || $default_kbid); + + my $geo_code = "$h{easting} $h{northing}"; + + my $interface = BarnetInterfaces::service::ZLBB_SERVICE_ORDER->new(); + + my ($nearest_postcode, $nearest_street); + for ($h{closest_address}) { + $nearest_postcode = sprintf("%-10s", $1) if /Nearest postcode [^:]+: ((\w{1,4}\s?\w+|\w+))/; + # use partial postcode or comma as delimiter, strip leading number (possible letter 221B) off too + # "99 Foo Street, London N11 1XX" becomes Foo Street + # "99 Foo Street N11 1XX" becomes Foo Street + $nearest_street = sprintf("%-30s", $1) if /Nearest road [^:]+: (?:\d+\w? )?(.*?)(\b[A-Z]+\d|,|$)/m; + } + my $postcode = $h{postcode} || $nearest_postcode; # use given postcode if available + + # note: endpoint can be of form 'https://username:password@:url' + my $council_config = FixMyStreet::App->model("DB::Open311conf")->search( { area_id => COUNCIL_ID_BARNET} )->first; + if ($council_config and $council_config->endpoint) { + $interface->set_proxy($council_config->endpoint); + # Barnet web service doesn't like namespaces in the elements so use a prefix + $interface->set_prefix('urn'); + } else { + die "Barnet webservice FAIL: looks like you're missing some config data: no endpoint (URL) found for area_id=" . COUNCIL_ID_BARNET; + } + + eval { + my $result = $interface->Z_CRM_SERVICE_ORDER_CREATE( { + ET_RETURN => { # ignored by server + item => { + TYPE => "", ID => "", NUMBER => "", MESSAGE => "", LOG_NO => "", LOG_MSG_NO => "", + MESSAGE_V1 => "", MESSAGE_V2 => "", MESSAGE_V3 => "", MESSAGE_V4 => "", PARAMETER => "", + ROW => "", FIELD => "", SYSTEM => "", + }, + }, + IT_PROBLEM_DESC => { # MyTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => [ # MyTypes::CRMT_SERVICE_REQUEST_TEXT + map { { TEXT_LINE => $_ } } split_text_with_entities(ent(encode_utf8($h{message})), 132) # char132 + ], + }, + IV_CUST_EMAIL => truncate_string_with_entities(ent(encode_utf8($h{email})), 241), # char241 + IV_CUST_NAME => truncate_string_with_entities(ent(encode_utf8($h{name})), 50), # char50 + IV_KBID => $kbid, # char50 + IV_PROBLEM_ID => $h{id}, # char35 + IV_PROBLEM_LOC => { # MyTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => 'GB', # char2 + REGION => "", # char3 + COUNTY => "", # char30 + CITY => "", # char30 + POSTALCODE => $postcode, # char10 + STREET => $nearest_street, # char30 + STREETNUMBER => "", # char5 + GEOCODE => $geo_code, # char32 + }, + IV_PROBLEM_SUB => truncate_string_with_entities(ent(encode_utf8($h{title})), 40), # char40 + }, + ); + if ($result) { + # currently not using this: get_EV_ORDER_GUID (maybe that's the customer number in the CRM) + if (my $barnet_id = $result->get_EV_ORDER_NO()) { + $problem->external_id( $barnet_id ); + $problem->external_body( 'Barnet Borough Council' ); # better to use $problem->body()? + $return = 0; + } else { + $err_msg = "Failed (problem id $h{id}): service returned no external id"; + } + } else { + my %fault = ( + 'code' => $result->get_faultcode(), + 'actor' => $result->get_faultactor(), + 'string' => $result->get_faultstring(), + # 'detail' => $result->get_detail(), # possibly only contains debug info + ); + $fault{$_}=~s/^\s*|\s*$//g foreach keys %fault; + $fault{actor}&&=" (actor: $fault{actor})"; + $err_msg = "Failed (problem id $h{id}): Fault $fault{code}$fault{actor}\n$fault{string}"; + } + + }; + print "$err_msg\n" if $err_msg; + if ($@) { + my $e = shift; + print "Caught an error: $@\n"; + } + return ($return, $err_msg); +} + # London sub construct_london_message { @@ -489,3 +670,80 @@ sub london_lookup { return $str; } +# for barnet webservice: max-length fields require truncate and split + +# truncate_string_with_entities +# args: text to truncate +# max number of chars +# returns: string truncated +# Note: must not partially truncate an entity (e.g., &) +sub truncate_string_with_entities { + my ($str, $max_len) = @_; + my $retVal = ""; + foreach my $chunk (split /(\&(?:\#\d+|\w+);)/, $str) { + if ($chunk=~/^\&(\#\d+|\w+);$/){ + my $next = $retVal.$chunk; + last if length $next > $max_len; + $retVal=$next + } else { + $retVal.=$chunk; + if (length $retVal > $max_len) { + $retVal = substr($retVal, 0, $max_len); + last + } + } + } + return $retVal +} + +# split_text_with_entities into lines +# args: text to be broken into lines +# max length (option: uses constant MAX_LINE_LENGTH) +# returns: array of lines +# Must not to split an entity (e.g., &) +# Not worrying about hyphenating here, since a word is only ever split if +# it's longer than the whole line, which is uncommon in genuine problem reports +sub split_text_with_entities { + my ($text, $max_line_length) = @_; + $max_line_length ||= MAX_LINE_LENGTH; + my @lines; + foreach my $line (split "\n", $text) { + while (length $line > $max_line_length) { + if (! ($line =~ s/^(.{1,$max_line_length})\s// # break on a space + or $line =~ s/^(.{1,$max_line_length})(\&(\#\d+|\w+);)/$2/ # break before an entity + or $line =~ s/(.{$max_line_length})//)) { # break the word ruthlessly + $line =~ s/(.*)//; # otherwise gobble whole line (which is now shorter than max length) + } + push @lines, $1; + } + push @lines, $line; + } + return @lines; +} + +# tests send_fail_count agains cutoff limit +# args: problem (row from problem db) +# returns false if there is no cutoff, otherwise error message +sub does_exceed_cutoff_limit { + my ($problem, $council_name) = @_; + my $err_msg = ""; + if ($problem->send_fail_count >= SEND_FAIL_RETRIES_CUTOFF) { + $sending_skipped_by_method{$council_name || '?'}++; + $council_name &&= " to $council_name"; + $err_msg = "skipped: problem id=" . $problem->id . " send$council_name has failed " + . $problem->send_fail_count . " times, cutoff is " . SEND_FAIL_RETRIES_CUTOFF; + } + return $err_msg; +} + +# update_send_fail_data records the failure (of a webservice send) +# args: problem (row from problem db) +# returns: no return value (updates record) +sub update_send_fail_data { + my ($problem, $err_msg) = @_; + $problem->update( { + send_fail_count => $problem->send_fail_count + 1, + send_fail_timestamp => \'ms_current_timestamp()', + send_fail_reason => $err_msg + } ); +}
\ No newline at end of file diff --git a/conf/crontab.ugly b/conf/crontab.ugly index 2d4467aab..4052275ee 100644 --- a/conf/crontab.ugly +++ b/conf/crontab.ugly @@ -7,7 +7,11 @@ # $Id: crontab.ugly,v 1.23 2010-01-07 10:32:24 louise Exp $ PATH=/usr/local/bin:/usr/bin:/bin +!!(* if ($vhost eq 'integration-staging.fixmystreet.com') { *)!! +MAILTO=dave@mysociety.org +!!(* } else { *)!! MAILTO=cron-!!(*= $site *)!!@mysociety.org +!!(* } *)!! # On only one server !!(* if ($vhost eq 'reportemptyhomes.com') { *)!! @@ -18,7 +22,7 @@ MAILTO=cron-!!(*= $site *)!!@mysociety.org #2 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-alerts.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-alerts" || echo "stalled?" 0,30 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-questionnaires.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-questionnaires" || echo "stalled?" -!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'matthew.fixmystreet.com')) { *)!! +!!(* } elsif (($vhost eq 'www.fixmystreet.com') || ($vhost eq 'matthew.fixmystreet.com') || ($vhost eq 'integration-staging.fixmystreet.com')) { *)!! 5,10,15,20,25,30,35,40,45,50,55 * * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?" 0 0-8,10,11,13,14,16,17,19-23 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports" || echo "stalled?" 0 9,12,15,18 * * * !!(*= $user *)!! run-with-lockfile -n /data/vhost/!!(*= $vhost *)!!/send-reports.lock "/data/vhost/!!(*= $vhost *)!!/fixmystreet/bin/cron-wrapper send-reports --verbose" || echo "stalled?" diff --git a/conf/general.yml-example b/conf/general.yml-example index 06af11a55..ec77e6ba8 100644 --- a/conf/general.yml-example +++ b/conf/general.yml-example @@ -61,3 +61,5 @@ RSS_LIMIT: '20' # Should problem reports link to the council summary pages? AREA_LINKS_FROM_PROBLEMS: '0' + + diff --git a/db/schema.sql b/db/schema.sql index 395d1c07b..5824b2d6d 100644 --- a/db/schema.sql +++ b/db/schema.sql @@ -189,7 +189,12 @@ create table problem ( send_questionnaire boolean not null default 't', extra text, -- extra fields required for open311 flagged boolean not null default 'f', - geocode bytea + geocode bytea, + + -- logging sending failures (used by webservices) + send_fail_count integer not null default 0, + send_fail_reason text, + send_fail_timestamp timestamp ); create index problem_state_latitude_longitude_idx on problem(state, latitude, longitude); create index problem_user_id_idx on problem ( user_id ); @@ -419,5 +424,6 @@ create table open311conf ( area_id integer not null unique, endpoint text not null, jurisdiction text, - api_key text + api_key text, + send_method text ); diff --git a/db/schema_0013-add_send_method_column_to_open311conf.sql b/db/schema_0013-add_send_method_column_to_open311conf.sql new file mode 100644 index 000000000..516fdd698 --- /dev/null +++ b/db/schema_0013-add_send_method_column_to_open311conf.sql @@ -0,0 +1,7 @@ + +begin; + +ALTER table open311conf + ADD column send_method TEXT; + +commit; diff --git a/db/schema_0014-add_send_fail_columns_to_problem.sql b/db/schema_0014-add_send_fail_columns_to_problem.sql new file mode 100644 index 000000000..369c4118d --- /dev/null +++ b/db/schema_0014-add_send_fail_columns_to_problem.sql @@ -0,0 +1,10 @@ +begin; + +ALTER table problem + ADD column send_fail_count integer not null default 0; +ALTER table problem + ADD column send_fail_reason text; +ALTER table problem + ADD column send_fail_timestamp timestamp; + +commit; diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm new file mode 100644 index 000000000..2c398ab1b --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm @@ -0,0 +1,248 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATE; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATE'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); + +use base qw( + SOAP::WSDL::XSD::Typelib::Element + SOAP::WSDL::XSD::Typelib::ComplexType +); + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ET_RETURN_of :ATTR(:get<ET_RETURN>); +my %IT_PROBLEM_DESC_of :ATTR(:get<IT_PROBLEM_DESC>); +my %IV_CUST_EMAIL_of :ATTR(:get<IV_CUST_EMAIL>); +my %IV_CUST_NAME_of :ATTR(:get<IV_CUST_NAME>); +my %IV_KBID_of :ATTR(:get<IV_KBID>); +my %IV_PROBLEM_ID_of :ATTR(:get<IV_PROBLEM_ID>); +my %IV_PROBLEM_LOC_of :ATTR(:get<IV_PROBLEM_LOC>); +my %IV_PROBLEM_SUB_of :ATTR(:get<IV_PROBLEM_SUB>); + +__PACKAGE__->_factory( + [ qw( ET_RETURN + IT_PROBLEM_DESC + IV_CUST_EMAIL + IV_CUST_NAME + IV_KBID + IV_PROBLEM_ID + IV_PROBLEM_LOC + IV_PROBLEM_SUB + + ) ], + { + 'ET_RETURN' => \%ET_RETURN_of, + 'IT_PROBLEM_DESC' => \%IT_PROBLEM_DESC_of, + 'IV_CUST_EMAIL' => \%IV_CUST_EMAIL_of, + 'IV_CUST_NAME' => \%IV_CUST_NAME_of, + 'IV_KBID' => \%IV_KBID_of, + 'IV_PROBLEM_ID' => \%IV_PROBLEM_ID_of, + 'IV_PROBLEM_LOC' => \%IV_PROBLEM_LOC_of, + 'IV_PROBLEM_SUB' => \%IV_PROBLEM_SUB_of, + }, + { + 'ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'IV_CUST_EMAIL' => 'BarnetTypes::char241', + 'IV_CUST_NAME' => 'BarnetTypes::char50', + 'IV_KBID' => 'BarnetTypes::char50', + 'IV_PROBLEM_ID' => 'BarnetTypes::char35', + 'IV_PROBLEM_LOC' => 'BarnetTypes::BAPI_TTET_ADDRESS_COM', + 'IV_PROBLEM_SUB' => 'BarnetTypes::char40', + }, + { + + 'ET_RETURN' => 'ET_RETURN', + 'IT_PROBLEM_DESC' => 'IT_PROBLEM_DESC', + 'IV_CUST_EMAIL' => 'IV_CUST_EMAIL', + 'IV_CUST_NAME' => 'IV_CUST_NAME', + 'IV_KBID' => 'IV_KBID', + 'IV_PROBLEM_ID' => 'IV_PROBLEM_ID', + 'IV_PROBLEM_LOC' => 'IV_PROBLEM_LOC', + 'IV_PROBLEM_SUB' => 'IV_PROBLEM_SUB', + } +); + +} # end BLOCK + + + + + + +} # end of BLOCK + + + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATE + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATE from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ET_RETURN + + $element->set_ET_RETURN($data); + $element->get_ET_RETURN(); + + + + +=item * IT_PROBLEM_DESC + + $element->set_IT_PROBLEM_DESC($data); + $element->get_IT_PROBLEM_DESC(); + + + + +=item * IV_CUST_EMAIL + + $element->set_IV_CUST_EMAIL($data); + $element->get_IV_CUST_EMAIL(); + + + + +=item * IV_CUST_NAME + + $element->set_IV_CUST_NAME($data); + $element->get_IV_CUST_NAME(); + + + + +=item * IV_KBID + + $element->set_IV_KBID($data); + $element->get_IV_KBID(); + + + + +=item * IV_PROBLEM_ID + + $element->set_IV_PROBLEM_ID($data); + $element->get_IV_PROBLEM_ID(); + + + + +=item * IV_PROBLEM_LOC + + $element->set_IV_PROBLEM_LOC($data); + $element->get_IV_PROBLEM_LOC(); + + + + +=item * IV_PROBLEM_SUB + + $element->set_IV_PROBLEM_SUB($data); + $element->get_IV_PROBLEM_SUB(); + + + + + +=back + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATE->new($data); + +Constructor. The following data structure may be passed to new(): + + { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + IV_CUST_EMAIL => $some_value, # char241 + IV_CUST_NAME => $some_value, # char50 + IV_KBID => $some_value, # char50 + IV_PROBLEM_ID => $some_value, # char35 + IV_PROBLEM_LOC => { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + IV_PROBLEM_SUB => $some_value, # char40 + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm new file mode 100644 index 000000000..ae95d3234 --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm @@ -0,0 +1,64 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATE.Exception'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); +use base qw( + SOAP::WSDL::XSD::Typelib::Element + BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException +); + +} + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATE.Exception from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception->new($data); + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + Name => $some_value, # Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions + Text => $some_value, # string + Message => { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm new file mode 100644 index 000000000..5755d0b49 --- /dev/null +++ b/perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm @@ -0,0 +1,183 @@ + +package BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse; +use strict; +use warnings; + +{ # BLOCK to scope variables + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' } + +__PACKAGE__->__set_name('Z_CRM_SERVICE_ORDER_CREATEResponse'); +__PACKAGE__->__set_nillable(); +__PACKAGE__->__set_minOccurs(); +__PACKAGE__->__set_maxOccurs(); +__PACKAGE__->__set_ref(); + +use base qw( + SOAP::WSDL::XSD::Typelib::Element + SOAP::WSDL::XSD::Typelib::ComplexType +); + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ET_RETURN_of :ATTR(:get<ET_RETURN>); +my %EV_ORDER_GUID_of :ATTR(:get<EV_ORDER_GUID>); +my %EV_ORDER_NO_of :ATTR(:get<EV_ORDER_NO>); +my %IT_PROBLEM_DESC_of :ATTR(:get<IT_PROBLEM_DESC>); + +__PACKAGE__->_factory( + [ qw( ET_RETURN + EV_ORDER_GUID + EV_ORDER_NO + IT_PROBLEM_DESC + + ) ], + { + 'ET_RETURN' => \%ET_RETURN_of, + 'EV_ORDER_GUID' => \%EV_ORDER_GUID_of, + 'EV_ORDER_NO' => \%EV_ORDER_NO_of, + 'IT_PROBLEM_DESC' => \%IT_PROBLEM_DESC_of, + }, + { + 'ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'EV_ORDER_GUID' => 'BarnetTypes::char32', + 'EV_ORDER_NO' => 'BarnetTypes::char10', + 'IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + }, + { + + 'ET_RETURN' => 'ET_RETURN', + 'EV_ORDER_GUID' => 'EV_ORDER_GUID', + 'EV_ORDER_NO' => 'EV_ORDER_NO', + 'IT_PROBLEM_DESC' => 'IT_PROBLEM_DESC', + } +); + +} # end BLOCK + + + + + + +} # end of BLOCK + + + +1; + + +=pod + +=head1 NAME + +BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined element +Z_CRM_SERVICE_ORDER_CREATEResponse from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + + +=head1 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ET_RETURN + + $element->set_ET_RETURN($data); + $element->get_ET_RETURN(); + + + + +=item * EV_ORDER_GUID + + $element->set_EV_ORDER_GUID($data); + $element->get_EV_ORDER_GUID(); + + + + +=item * EV_ORDER_NO + + $element->set_EV_ORDER_NO($data); + $element->get_EV_ORDER_NO(); + + + + +=item * IT_PROBLEM_DESC + + $element->set_IT_PROBLEM_DESC($data); + $element->get_IT_PROBLEM_DESC(); + + + + + +=back + + +=head1 METHODS + +=head2 new + + my $element = BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse->new($data); + +Constructor. The following data structure may be passed to new(): + + { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + EV_ORDER_GUID => $some_value, # char32 + EV_ORDER_NO => $some_value, # char10 + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + }, + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm b/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm new file mode 100644 index 000000000..94e0cd4db --- /dev/null +++ b/perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm @@ -0,0 +1,166 @@ +package BarnetInterfaces::service::ZLBB_SERVICE_ORDER; +use strict; +use warnings; +use Class::Std::Fast::Storable; +use Scalar::Util qw(blessed); +use base qw(SOAP::WSDL::Client::Base); + +# only load if it hasn't been loaded before +require BarnetTypemaps::service + if not BarnetTypemaps::service->can('get_class'); + +sub START { + $_[0]->set_proxy('http://lbbcrmdev.barnet.gov.uk:8000/sap/bc/srt/rfc/sap/zlbb_service_order/200/zlbb_service_order/zlbb_service_order') if not $_[2]->{proxy}; + $_[0]->set_class_resolver('BarnetTypemaps::service') + if not $_[2]->{class_resolver}; + + $_[0]->set_prefix($_[2]->{use_prefix}) if exists $_[2]->{use_prefix}; +} + +sub Z_CRM_SERVICE_ORDER_CREATE { + my ($self, $body, $header) = @_; + die "Z_CRM_SERVICE_ORDER_CREATE must be called as object method (\$self is <$self>)" if not blessed($self); + return $self->SUPER::call({ + operation => 'Z_CRM_SERVICE_ORDER_CREATE', + soap_action => '', + style => 'document', + body => { + + + 'use' => 'literal', + namespace => 'http://schemas.xmlsoap.org/wsdl/soap/', + encodingStyle => '', + parts => [qw( BarnetElements::Z_CRM_SERVICE_ORDER_CREATE )], + }, + header => { + + }, + headerfault => { + + } + }, $body, $header); +} + + + + +1; + + + +__END__ + +=pod + +=head1 NAME + +BarnetInterfaces::service::ZLBB_SERVICE_ORDER - SOAP Interface for the service Web Service + +=head1 SYNOPSIS + + use BarnetInterfaces::service::ZLBB_SERVICE_ORDER; + my $interface = BarnetInterfaces::service::ZLBB_SERVICE_ORDER->new(); + + my $response; + $response = $interface->Z_CRM_SERVICE_ORDER_CREATE(); + + + +=head1 DESCRIPTION + +SOAP Interface for the service web service +located at http://lbbcrmdev.barnet.gov.uk:8000/sap/bc/srt/rfc/sap/zlbb_service_order/200/zlbb_service_order/zlbb_service_order. + +=head1 SERVICE service + + + +=head2 Port ZLBB_SERVICE_ORDER + + + +=head1 METHODS + +=head2 General methods + +=head3 new + +Constructor. + +All arguments are forwarded to L<SOAP::WSDL::Client|SOAP::WSDL::Client>. + +=head2 SOAP Service methods + +Method synopsis is displayed with hash refs as parameters. + +The commented class names in the method's parameters denote that objects +of the corresponding class can be passed instead of the marked hash ref. + +You may pass any combination of objects, hash and list refs to these +methods, as long as you meet the structure. + +List items (i.e. multiple occurences) are not displayed in the synopsis. +You may generally pass a list ref of hash refs (or objects) instead of a hash +ref - this may result in invalid XML if used improperly, though. Note that +SOAP::WSDL always expects list references at maximum depth position. + +XML attributes are not displayed in this synopsis and cannot be set using +hash refs. See the respective class' documentation for additional information. + + + +=head3 Z_CRM_SERVICE_ORDER_CREATE + + + +Returns a L<BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse|BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse> object. + + $response = $interface->Z_CRM_SERVICE_ORDER_CREATE( { + ET_RETURN => { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + IT_PROBLEM_DESC => { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + IV_CUST_EMAIL => $some_value, # char241 + IV_CUST_NAME => $some_value, # char50 + IV_KBID => $some_value, # char50 + IV_PROBLEM_ID => $some_value, # char35 + IV_PROBLEM_LOC => { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + IV_PROBLEM_SUB => $some_value, # char40 + },, + ); + + + +=head1 AUTHOR + +Generated by SOAP::WSDL on Fri Apr 8 10:23:03 2011 + +=cut diff --git a/perllib/BarnetTypemaps/service.pm b/perllib/BarnetTypemaps/service.pm new file mode 100644 index 000000000..dd9f98162 --- /dev/null +++ b/perllib/BarnetTypemaps/service.pm @@ -0,0 +1,103 @@ + +package BarnetTypemaps::service; +use strict; +use warnings; + +our $typemap_1 = { + 'Z_CRM_SERVICE_ORDER_CREATEResponse/EV_ORDER_NO' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/GEOCODE' => 'BarnetTypes::char32', + 'Fault/faultcode' => 'SOAP::WSDL::XSD::Typelib::Builtin::anyURI', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/COUNTRY2' => 'BarnetTypes::char2', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/NUMBER' => 'BarnetTypes::numeric3', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC/item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V1' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/POSTALCODE' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/LOG_NO' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V2' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V3' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_SUB' => 'BarnetTypes::char40', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC/item/TEXT_LINE' => 'BarnetTypes::char132', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/LOG_NO' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC/item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + 'Fault/faultstring' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/PARAMETER' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item' => 'BarnetTypes::BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_CUST_NAME' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V2' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'Fault/detail' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message/ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/NUMBER' => 'BarnetTypes::numeric3', + 'Z_CRM_SERVICE_ORDER_CREATEResponse' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATEResponse', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Text' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V1' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/PARAMETER' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE' => 'BarnetTypes::char220', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/TYPE' => 'BarnetTypes::char1', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE' => 'BarnetTypes::char220', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC' => 'BarnetTypes::BAPI_TTET_ADDRESS_COM', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/TYPE' => 'BarnetTypes::char1', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_CUST_EMAIL' => 'BarnetTypes::char241', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/FIELD' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Name' => 'BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/IT_PROBLEM_DESC/item/TEXT_LINE' => 'BarnetTypes::char132', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/ID' => 'BarnetTypes::char20', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/EV_ORDER_GUID' => 'BarnetTypes::char32', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/SYSTEM' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN' => 'BarnetTypes::TABLE_OF_BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_ID' => 'BarnetTypes::char35', + 'Z_CRM_SERVICE_ORDER_CREATE' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATE', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/REGION' => 'BarnetTypes::char3', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/MESSAGE_V4' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/FIELD' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/SYSTEM' => 'BarnetTypes::char10', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/COUNTY' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item/LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message' => 'BarnetTypes::RfcException::Message', + 'Z_CRM_SERVICE_ORDER_CREATE/IT_PROBLEM_DESC' => 'BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT', + 'Z_CRM_SERVICE_ORDER_CREATE/ET_RETURN/item' => 'BarnetTypes::BAPIRET2', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/CITY' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V4' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception' => 'BarnetElements::Z_CRM_SERVICE_ORDER_CREATE::Exception', + 'Fault' => 'SOAP::WSDL::SOAP::Typelib::Fault11', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/STREETNUMBER' => 'BarnetTypes::char5', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/ID' => 'BarnetTypes::char20', + 'Fault/faultactor' => 'SOAP::WSDL::XSD::Typelib::Builtin::token', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_PROBLEM_LOC/STREET' => 'BarnetTypes::char30', + 'Z_CRM_SERVICE_ORDER_CREATE.Exception/Message/Number' => 'BarnetTypes::RfcException::Message::Number', + 'Z_CRM_SERVICE_ORDER_CREATE/IV_KBID' => 'BarnetTypes::char50', + 'Z_CRM_SERVICE_ORDER_CREATEResponse/ET_RETURN/item/MESSAGE_V3' => 'BarnetTypes::char50' + }; +; + +sub get_class { + my $name = join '/', @{ $_[1] }; + return $typemap_1->{ $name }; +} + +sub get_typemap { + return $typemap_1; +} + +1; + +__END__ + +__END__ + +=pod + +=head1 NAME + +BarnetTypemaps::service - typemap for service + +=head1 DESCRIPTION + +Typemap created by SOAP::WSDL for map-based SOAP message parsers. + +=cut + diff --git a/perllib/BarnetTypes/BAPIRET2.pm b/perllib/BarnetTypes/BAPIRET2.pm new file mode 100644 index 000000000..2ca20894c --- /dev/null +++ b/perllib/BarnetTypes/BAPIRET2.pm @@ -0,0 +1,219 @@ +package BarnetTypes::BAPIRET2; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %TYPE_of :ATTR(:get<TYPE>); +my %ID_of :ATTR(:get<ID>); +my %NUMBER_of :ATTR(:get<NUMBER>); +my %MESSAGE_of :ATTR(:get<MESSAGE>); +my %LOG_NO_of :ATTR(:get<LOG_NO>); +my %LOG_MSG_NO_of :ATTR(:get<LOG_MSG_NO>); +my %MESSAGE_V1_of :ATTR(:get<MESSAGE_V1>); +my %MESSAGE_V2_of :ATTR(:get<MESSAGE_V2>); +my %MESSAGE_V3_of :ATTR(:get<MESSAGE_V3>); +my %MESSAGE_V4_of :ATTR(:get<MESSAGE_V4>); +my %PARAMETER_of :ATTR(:get<PARAMETER>); +my %ROW_of :ATTR(:get<ROW>); +my %FIELD_of :ATTR(:get<FIELD>); +my %SYSTEM_of :ATTR(:get<SYSTEM>); + +__PACKAGE__->_factory( + [ qw( TYPE + ID + NUMBER + MESSAGE + LOG_NO + LOG_MSG_NO + MESSAGE_V1 + MESSAGE_V2 + MESSAGE_V3 + MESSAGE_V4 + PARAMETER + ROW + FIELD + SYSTEM + + ) ], + { + 'TYPE' => \%TYPE_of, + 'ID' => \%ID_of, + 'NUMBER' => \%NUMBER_of, + 'MESSAGE' => \%MESSAGE_of, + 'LOG_NO' => \%LOG_NO_of, + 'LOG_MSG_NO' => \%LOG_MSG_NO_of, + 'MESSAGE_V1' => \%MESSAGE_V1_of, + 'MESSAGE_V2' => \%MESSAGE_V2_of, + 'MESSAGE_V3' => \%MESSAGE_V3_of, + 'MESSAGE_V4' => \%MESSAGE_V4_of, + 'PARAMETER' => \%PARAMETER_of, + 'ROW' => \%ROW_of, + 'FIELD' => \%FIELD_of, + 'SYSTEM' => \%SYSTEM_of, + }, + { + 'TYPE' => 'BarnetTypes::char1', + 'ID' => 'BarnetTypes::char20', + 'NUMBER' => 'BarnetTypes::numeric3', + 'MESSAGE' => 'BarnetTypes::char220', + 'LOG_NO' => 'BarnetTypes::char20', + 'LOG_MSG_NO' => 'BarnetTypes::numeric6', + 'MESSAGE_V1' => 'BarnetTypes::char50', + 'MESSAGE_V2' => 'BarnetTypes::char50', + 'MESSAGE_V3' => 'BarnetTypes::char50', + 'MESSAGE_V4' => 'BarnetTypes::char50', + 'PARAMETER' => 'BarnetTypes::char32', + 'ROW' => 'SOAP::WSDL::XSD::Typelib::Builtin::int', + 'FIELD' => 'BarnetTypes::char30', + 'SYSTEM' => 'BarnetTypes::char10', + }, + { + + 'TYPE' => 'TYPE', + 'ID' => 'ID', + 'NUMBER' => 'NUMBER', + 'MESSAGE' => 'MESSAGE', + 'LOG_NO' => 'LOG_NO', + 'LOG_MSG_NO' => 'LOG_MSG_NO', + 'MESSAGE_V1' => 'MESSAGE_V1', + 'MESSAGE_V2' => 'MESSAGE_V2', + 'MESSAGE_V3' => 'MESSAGE_V3', + 'MESSAGE_V4' => 'MESSAGE_V4', + 'PARAMETER' => 'PARAMETER', + 'ROW' => 'ROW', + 'FIELD' => 'FIELD', + 'SYSTEM' => 'SYSTEM', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::BAPIRET2 + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +BAPIRET2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * TYPE + + +=item * ID + + +=item * NUMBER + + +=item * MESSAGE + + +=item * LOG_NO + + +=item * LOG_MSG_NO + + +=item * MESSAGE_V1 + + +=item * MESSAGE_V2 + + +=item * MESSAGE_V3 + + +=item * MESSAGE_V4 + + +=item * PARAMETER + + +=item * ROW + + +=item * FIELD + + +=item * SYSTEM + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm b/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm new file mode 100644 index 000000000..b4a8b00ca --- /dev/null +++ b/perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm @@ -0,0 +1,165 @@ +package BarnetTypes::BAPI_TTET_ADDRESS_COM; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %COUNTRY2_of :ATTR(:get<COUNTRY2>); +my %REGION_of :ATTR(:get<REGION>); +my %COUNTY_of :ATTR(:get<COUNTY>); +my %CITY_of :ATTR(:get<CITY>); +my %POSTALCODE_of :ATTR(:get<POSTALCODE>); +my %STREET_of :ATTR(:get<STREET>); +my %STREETNUMBER_of :ATTR(:get<STREETNUMBER>); +my %GEOCODE_of :ATTR(:get<GEOCODE>); + +__PACKAGE__->_factory( + [ qw( COUNTRY2 + REGION + COUNTY + CITY + POSTALCODE + STREET + STREETNUMBER + GEOCODE + + ) ], + { + 'COUNTRY2' => \%COUNTRY2_of, + 'REGION' => \%REGION_of, + 'COUNTY' => \%COUNTY_of, + 'CITY' => \%CITY_of, + 'POSTALCODE' => \%POSTALCODE_of, + 'STREET' => \%STREET_of, + 'STREETNUMBER' => \%STREETNUMBER_of, + 'GEOCODE' => \%GEOCODE_of, + }, + { + 'COUNTRY2' => 'BarnetTypes::char2', + 'REGION' => 'BarnetTypes::char3', + 'COUNTY' => 'BarnetTypes::char30', + 'CITY' => 'BarnetTypes::char30', + 'POSTALCODE' => 'BarnetTypes::char10', + 'STREET' => 'BarnetTypes::char30', + 'STREETNUMBER' => 'BarnetTypes::char5', + 'GEOCODE' => 'BarnetTypes::char32', + }, + { + + 'COUNTRY2' => 'COUNTRY2', + 'REGION' => 'REGION', + 'COUNTY' => 'COUNTY', + 'CITY' => 'CITY', + 'POSTALCODE' => 'POSTALCODE', + 'STREET' => 'STREET', + 'STREETNUMBER' => 'STREETNUMBER', + 'GEOCODE' => 'GEOCODE', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::BAPI_TTET_ADDRESS_COM + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +BAPI_TTET_ADDRESS_COM from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * COUNTRY2 + + +=item * REGION + + +=item * COUNTY + + +=item * CITY + + +=item * POSTALCODE + + +=item * STREET + + +=item * STREETNUMBER + + +=item * GEOCODE + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::BAPI_TTET_ADDRESS_COM + COUNTRY2 => $some_value, # char2 + REGION => $some_value, # char3 + COUNTY => $some_value, # char30 + CITY => $some_value, # char30 + POSTALCODE => $some_value, # char10 + STREET => $some_value, # char30 + STREETNUMBER => $some_value, # char5 + GEOCODE => $some_value, # char32 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm b/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm new file mode 100644 index 000000000..39e2ad1ce --- /dev/null +++ b/perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm @@ -0,0 +1,102 @@ +package BarnetTypes::CRMT_SERVICE_REQUEST_TEXT; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %TEXT_LINE_of :ATTR(:get<TEXT_LINE>); + +__PACKAGE__->_factory( + [ qw( TEXT_LINE + + ) ], + { + 'TEXT_LINE' => \%TEXT_LINE_of, + }, + { + 'TEXT_LINE' => 'BarnetTypes::char132', + }, + { + + 'TEXT_LINE' => 'TEXT_LINE', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +CRMT_SERVICE_REQUEST_TEXT from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * TEXT_LINE + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/RfcException/Message.pm b/perllib/BarnetTypes/RfcException/Message.pm new file mode 100644 index 000000000..71b94bf7c --- /dev/null +++ b/perllib/BarnetTypes/RfcException/Message.pm @@ -0,0 +1,111 @@ +package BarnetTypes::RfcException::Message; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %ID_of :ATTR(:get<ID>); +my %Number_of :ATTR(:get<Number>); + +__PACKAGE__->_factory( + [ qw( ID + Number + + ) ], + { + 'ID' => \%ID_of, + 'Number' => \%Number_of, + }, + { + 'ID' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Number' => 'BarnetTypes::RfcException::Message::Number', + }, + { + + 'ID' => 'ID', + 'Number' => 'Number', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::RfcException::Message + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +RfcException.Message from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * ID + + +=item * Number + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/RfcException/Message/Number.pm b/perllib/BarnetTypes/RfcException/Message/Number.pm new file mode 100644 index 000000000..9353df454 --- /dev/null +++ b/perllib/BarnetTypes/RfcException/Message/Number.pm @@ -0,0 +1,65 @@ +package BarnetTypes::RfcException::Message::Number; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +RfcException.Message.Number from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm b/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm new file mode 100644 index 000000000..c248bc907 --- /dev/null +++ b/perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm @@ -0,0 +1,117 @@ +package BarnetTypes::TABLE_OF_BAPIRET2; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %item_of :ATTR(:get<item>); + +__PACKAGE__->_factory( + [ qw( item + + ) ], + { + 'item' => \%item_of, + }, + { + 'item' => 'BarnetTypes::BAPIRET2', + }, + { + + 'item' => 'item', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::TABLE_OF_BAPIRET2 + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +TABLE_OF_BAPIRET2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * item + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::TABLE_OF_BAPIRET2 + item => { # BarnetTypes::BAPIRET2 + TYPE => $some_value, # char1 + ID => $some_value, # char20 + NUMBER => $some_value, # numeric3 + MESSAGE => $some_value, # char220 + LOG_NO => $some_value, # char20 + LOG_MSG_NO => $some_value, # numeric6 + MESSAGE_V1 => $some_value, # char50 + MESSAGE_V2 => $some_value, # char50 + MESSAGE_V3 => $some_value, # char50 + MESSAGE_V4 => $some_value, # char50 + PARAMETER => $some_value, # char32 + ROW => $some_value, # int + FIELD => $some_value, # char30 + SYSTEM => $some_value, # char10 + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm b/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm new file mode 100644 index 000000000..62eb7b774 --- /dev/null +++ b/perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm @@ -0,0 +1,104 @@ +package BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %item_of :ATTR(:get<item>); + +__PACKAGE__->_factory( + [ qw( item + + ) ], + { + 'item' => \%item_of, + }, + { + 'item' => 'BarnetTypes::CRMT_SERVICE_REQUEST_TEXT', + }, + { + + 'item' => 'item', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +TABLE_OF_CRMT_SERVICE_REQUEST_TEXT from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * item + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::TABLE_OF_CRMT_SERVICE_REQUEST_TEXT + item => { # BarnetTypes::CRMT_SERVICE_REQUEST_TEXT + TEXT_LINE => $some_value, # char132 + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm new file mode 100644 index 000000000..8d04adf53 --- /dev/null +++ b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm @@ -0,0 +1,123 @@ +package BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException; +use strict; +use warnings; + + +__PACKAGE__->_set_element_form_qualified(0); + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions' }; + +our $XML_ATTRIBUTE_CLASS; +undef $XML_ATTRIBUTE_CLASS; + +sub __get_attr_class { + return $XML_ATTRIBUTE_CLASS; +} + +use Class::Std::Fast::Storable constructor => 'none'; +use base qw(SOAP::WSDL::XSD::Typelib::ComplexType); + +Class::Std::initialize(); + +{ # BLOCK to scope variables + +my %Name_of :ATTR(:get<Name>); +my %Text_of :ATTR(:get<Text>); +my %Message_of :ATTR(:get<Message>); + +__PACKAGE__->_factory( + [ qw( Name + Text + Message + + ) ], + { + 'Name' => \%Name_of, + 'Text' => \%Text_of, + 'Message' => \%Message_of, + }, + { + 'Name' => 'BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions', + 'Text' => 'SOAP::WSDL::XSD::Typelib::Builtin::string', + 'Message' => 'BarnetTypes::RfcException::Message', + }, + { + + 'Name' => 'Name', + 'Text' => 'Text', + 'Message' => 'Message', + } +); + +} # end BLOCK + + + + + + + +1; + + +=pod + +=head1 NAME + +BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined complexType +Z_CRM_SERVICE_ORDER_CREATE.RfcException from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + + +=head2 PROPERTIES + +The following properties may be accessed using get_PROPERTY / set_PROPERTY +methods: + +=over + +=item * Name + + +=item * Text + + +=item * Message + + + + +=back + + +=head1 METHODS + +=head2 new + +Constructor. The following data structure may be passed to new(): + + { # BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcException + Name => $some_value, # Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions + Text => $some_value, # string + Message => { # BarnetTypes::RfcException::Message + ID => $some_value, # string + Number => $some_value, # RfcException.Message.Number + }, + }, + + + + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm new file mode 100644 index 000000000..ffc2237bc --- /dev/null +++ b/perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm @@ -0,0 +1,65 @@ +package BarnetTypes::Z_CRM_SERVICE_ORDER_CREATE::RfcExceptions; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +Z_CRM_SERVICE_ORDER_CREATE.RfcExceptions from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char1.pm b/perllib/BarnetTypes/char1.pm new file mode 100644 index 000000000..d0bab8e5e --- /dev/null +++ b/perllib/BarnetTypes/char1.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char1; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char1 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char10.pm b/perllib/BarnetTypes/char10.pm new file mode 100644 index 000000000..6ff454e4b --- /dev/null +++ b/perllib/BarnetTypes/char10.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char10; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char10 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char132.pm b/perllib/BarnetTypes/char132.pm new file mode 100644 index 000000000..46a41077b --- /dev/null +++ b/perllib/BarnetTypes/char132.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char132; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char132 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char2.pm b/perllib/BarnetTypes/char2.pm new file mode 100644 index 000000000..35c476fbe --- /dev/null +++ b/perllib/BarnetTypes/char2.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char2; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char2 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char20.pm b/perllib/BarnetTypes/char20.pm new file mode 100644 index 000000000..1c2df092a --- /dev/null +++ b/perllib/BarnetTypes/char20.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char20; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char20 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char220.pm b/perllib/BarnetTypes/char220.pm new file mode 100644 index 000000000..7ccde81f8 --- /dev/null +++ b/perllib/BarnetTypes/char220.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char220; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char220 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char241.pm b/perllib/BarnetTypes/char241.pm new file mode 100644 index 000000000..e6567554f --- /dev/null +++ b/perllib/BarnetTypes/char241.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char241; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char241 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char3.pm b/perllib/BarnetTypes/char3.pm new file mode 100644 index 000000000..f9d001cda --- /dev/null +++ b/perllib/BarnetTypes/char3.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char3; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char3 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char30.pm b/perllib/BarnetTypes/char30.pm new file mode 100644 index 000000000..91d98eb30 --- /dev/null +++ b/perllib/BarnetTypes/char30.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char30; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char30 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char32.pm b/perllib/BarnetTypes/char32.pm new file mode 100644 index 000000000..c5efdaabd --- /dev/null +++ b/perllib/BarnetTypes/char32.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char32; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char32 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char35.pm b/perllib/BarnetTypes/char35.pm new file mode 100644 index 000000000..40aef3d7a --- /dev/null +++ b/perllib/BarnetTypes/char35.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char35; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char35 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char40.pm b/perllib/BarnetTypes/char40.pm new file mode 100644 index 000000000..4402875c1 --- /dev/null +++ b/perllib/BarnetTypes/char40.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char40; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char40 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char5.pm b/perllib/BarnetTypes/char5.pm new file mode 100644 index 000000000..fed108437 --- /dev/null +++ b/perllib/BarnetTypes/char5.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char5; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char5 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/char50.pm b/perllib/BarnetTypes/char50.pm new file mode 100644 index 000000000..34e5720d1 --- /dev/null +++ b/perllib/BarnetTypes/char50.pm @@ -0,0 +1,65 @@ +package BarnetTypes::char50; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +char50 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/numeric3.pm b/perllib/BarnetTypes/numeric3.pm new file mode 100644 index 000000000..c473d2866 --- /dev/null +++ b/perllib/BarnetTypes/numeric3.pm @@ -0,0 +1,65 @@ +package BarnetTypes::numeric3; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +numeric3 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/BarnetTypes/numeric6.pm b/perllib/BarnetTypes/numeric6.pm new file mode 100644 index 000000000..b5438c1aa --- /dev/null +++ b/perllib/BarnetTypes/numeric6.pm @@ -0,0 +1,65 @@ +package BarnetTypes::numeric6; +use strict; +use warnings; + +sub get_xmlns { 'urn:sap-com:document:sap:rfc:functions'}; + +# derivation by restriction +use base qw( + SOAP::WSDL::XSD::Typelib::Builtin::string); + + + +1; + +__END__ + +=pod + +=head1 NAME + + + +=head1 DESCRIPTION + +Perl data type class for the XML Schema defined simpleType +numeric6 from the namespace urn:sap-com:document:sap:rfc:functions. + + + + + +This clase is derived from + SOAP::WSDL::XSD::Typelib::Builtin::string +. SOAP::WSDL's schema implementation does not validate data, so you can use it exactly +like it's base type. + +# Description of restrictions not implemented yet. + + +=head1 METHODS + +=head2 new + +Constructor. + +=head2 get_value / set_value + +Getter and setter for the simpleType's value. + +=head1 OVERLOADING + +Depending on the simple type's base type, the following operations are overloaded + + Stringification + Numerification + Boolification + +Check L<SOAP::WSDL::XSD::Typelib::Builtin> for more information. + +=head1 AUTHOR + +Generated by SOAP::WSDL + +=cut + diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm index af4cdd5aa..6d22a0556 100644 --- a/perllib/FixMyStreet/App/Controller/Report/New.pm +++ b/perllib/FixMyStreet/App/Controller/Report/New.pm @@ -78,6 +78,8 @@ partial =cut +use constant COUNCIL_ID_BARNET => 2489; + sub report_new : Path : Args(0) { my ( $self, $c ) = @_; @@ -545,9 +547,15 @@ sub setup_categories_and_councils : Private { } elsif ($first_council->{type} eq 'LBO') { $area_ids_to_list{ $first_council->{id} } = 1; + my @local_categories; + if ($first_council->{id} == COUNCIL_ID_BARNET) { + @local_categories = sort(keys %{ Utils::barnet_categories() }); # removed 'Other' option + } else { + @local_categories = sort keys %{ Utils::london_categories() } + } @category_options = ( _('-- Pick a category --'), - sort keys %{ Utils::london_categories() } + @local_categories ); $category_label = _('Category:'); @@ -733,8 +741,15 @@ sub process_report : Private { $councils = join( ',', @{ $c->stash->{area_ids_to_list} } ) || -1; $report->council( $councils ); - } elsif ( $first_council->{type} eq 'LBO') { + } elsif ( $first_council->{id} == COUNCIL_ID_BARNET ) { + unless ( exists Utils::barnet_categories()->{ $report->category } or $report->category eq 'Other') { + $c->stash->{field_errors}->{category} = _('Please choose a category'); + } + $report->council( $first_council->{id} ); + + } elsif ( $first_council->{type} eq 'LBO') { + unless ( Utils::london_categories()->{ $report->category } ) { $c->stash->{field_errors}->{category} = _('Please choose a category'); } diff --git a/perllib/FixMyStreet/DB.pm b/perllib/FixMyStreet/DB.pm index 18c8cc2ca..a1767abe9 100644 --- a/perllib/FixMyStreet/DB.pm +++ b/perllib/FixMyStreet/DB.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB; # Created by DBIx::Class::Schema::Loader @@ -10,8 +11,9 @@ use base 'DBIx::Class::Schema'; __PACKAGE__->load_namespaces; -# Created by DBIx::Class::Schema::Loader v0.07009 @ 2011-03-01 15:43:43 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tJZ+CpaAfZVPrctDXTZTuQ + +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:CjFpUvon7KggFM7OF7VK/w # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/Abuse.pm b/perllib/FixMyStreet/DB/Result/Abuse.pm index b1cf9c1ed..e8e554afa 100644 --- a/perllib/FixMyStreet/DB/Result/Abuse.pm +++ b/perllib/FixMyStreet/DB/Result/Abuse.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Abuse; # Created by DBIx::Class::Schema::Loader @@ -7,15 +8,14 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("abuse"); __PACKAGE__->add_columns("email", { data_type => "text", is_nullable => 0 }); __PACKAGE__->set_primary_key("email"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:IuTLiJSDZGLF/WX8q3iKIQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:PnQhGMx+ktK++3gWOMJBpQ # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/AdminLog.pm b/perllib/FixMyStreet/DB/Result/AdminLog.pm index da97950a0..ede786871 100644 --- a/perllib/FixMyStreet/DB/Result/AdminLog.pm +++ b/perllib/FixMyStreet/DB/Result/AdminLog.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AdminLog; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("admin_log"); __PACKAGE__->add_columns( @@ -36,8 +36,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:7427CuN3/6IL2GxiQDoWUA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+NlSH8U+beRjBZl8CpqK9A # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Alert.pm b/perllib/FixMyStreet/DB/Result/Alert.pm index eddd98f37..ca9ad45c2 100644 --- a/perllib/FixMyStreet/DB/Result/Alert.pm +++ b/perllib/FixMyStreet/DB/Result/Alert.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Alert; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert"); __PACKAGE__->add_columns( @@ -24,6 +24,8 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 1 }, "parameter2", { data_type => "text", is_nullable => 1 }, + "user_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, "confirmed", { data_type => "integer", default_value => 0, is_nullable => 0 }, "lang", @@ -40,8 +42,6 @@ __PACKAGE__->add_columns( }, "whendisabled", { data_type => "timestamp", is_nullable => 1 }, - "user_id", - { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->belongs_to( @@ -50,22 +50,22 @@ __PACKAGE__->belongs_to( { ref => "alert_type" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); +__PACKAGE__->has_many( + "alerts_sent", + "FixMyStreet::DB::Result::AlertSent", + { "foreign.alert_id" => "self.id" }, + { cascade_copy => 0, cascade_delete => 0 }, +); __PACKAGE__->belongs_to( "user", "FixMyStreet::DB::Result::User", { id => "user_id" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); -__PACKAGE__->has_many( - "alert_sents", - "FixMyStreet::DB::Result::AlertSent", - { "foreign.alert_id" => "self.id" }, - { cascade_copy => 0, cascade_delete => 0 }, -); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:d2TrE9UIZdXu3eXYJH0Zmw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:vump36YxUO4FQi5Do6DwvA # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/AlertSent.pm b/perllib/FixMyStreet/DB/Result/AlertSent.pm index a901c2fde..a537c95cd 100644 --- a/perllib/FixMyStreet/DB/Result/AlertSent.pm +++ b/perllib/FixMyStreet/DB/Result/AlertSent.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AlertSent; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert_sent"); __PACKAGE__->add_columns( @@ -30,8 +30,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:fTiWIoriQUvHpWc9PpFLvA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:oN+36hDWJuc0hqkCW9BHOw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/AlertType.pm b/perllib/FixMyStreet/DB/Result/AlertType.pm index d23a2983d..3aa9677e0 100644 --- a/perllib/FixMyStreet/DB/Result/AlertType.pm +++ b/perllib/FixMyStreet/DB/Result/AlertType.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::AlertType; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("alert_type"); __PACKAGE__->add_columns( @@ -47,8 +47,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+PKqo7IZ4MlM9ur4V2P9tA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:KDBYzNEAM5lPvZjb9cv22g # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Comment.pm b/perllib/FixMyStreet/DB/Result/Comment.pm index 195fe4019..5b45c63a8 100644 --- a/perllib/FixMyStreet/DB/Result/Comment.pm +++ b/perllib/FixMyStreet/DB/Result/Comment.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Comment; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("comment"); __PACKAGE__->add_columns( @@ -20,6 +20,10 @@ __PACKAGE__->add_columns( }, "problem_id", { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "user_id", + { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, + "anonymous", + { data_type => "boolean", is_nullable => 0 }, "name", { data_type => "text", is_nullable => 1 }, "website", @@ -48,30 +52,26 @@ __PACKAGE__->add_columns( { data_type => "boolean", is_nullable => 0 }, "mark_open", { data_type => "boolean", default_value => \"false", is_nullable => 0 }, - "user_id", - { data_type => "integer", is_foreign_key => 1, is_nullable => 0 }, - "anonymous", - { data_type => "boolean", is_nullable => 0 }, "problem_state", { data_type => "text", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->belongs_to( - "user", - "FixMyStreet::DB::Result::User", - { id => "user_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); -__PACKAGE__->belongs_to( "problem", "FixMyStreet::DB::Result::Problem", { id => "problem_id" }, { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, ); +__PACKAGE__->belongs_to( + "user", + "FixMyStreet::DB::Result::User", + { id => "user_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-27 10:07:32 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ilLn3dlagg5COdpZDmzrVQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:E+96vo/AB0zz1jAEPj/OKw use DateTime::TimeZone; use Image::Size; diff --git a/perllib/FixMyStreet/DB/Result/Contact.pm b/perllib/FixMyStreet/DB/Result/Contact.pm index 941e4e1bb..c32b75d0c 100644 --- a/perllib/FixMyStreet/DB/Result/Contact.pm +++ b/perllib/FixMyStreet/DB/Result/Contact.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Contact; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("contacts"); __PACKAGE__->add_columns( @@ -40,8 +40,9 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("contacts_area_id_category_idx", ["area_id", "category"]); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-08-01 10:07:59 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:4y6yRz4rMN66pBpkzfJJhg + +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:hyvU0bMWSFxEPAJT7wqM/Q __PACKAGE__->filter_column( extra => { diff --git a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm index 811a06b44..deb00fb95 100644 --- a/perllib/FixMyStreet/DB/Result/ContactsHistory.pm +++ b/perllib/FixMyStreet/DB/Result/ContactsHistory.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::ContactsHistory; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("contacts_history"); __PACKAGE__->add_columns( @@ -40,8 +40,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("contacts_history_id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9APvBwAOebG5g4MGxJuVKQ +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:dN2ueIDoP3d/+Mg1UDqsMw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Open311conf.pm b/perllib/FixMyStreet/DB/Result/Open311conf.pm index 0a5784560..742a12ebd 100644 --- a/perllib/FixMyStreet/DB/Result/Open311conf.pm +++ b/perllib/FixMyStreet/DB/Result/Open311conf.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Open311conf; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("open311conf"); __PACKAGE__->add_columns( @@ -26,13 +26,15 @@ __PACKAGE__->add_columns( { data_type => "text", is_nullable => 1 }, "api_key", { data_type => "text", is_nullable => 1 }, + "send_method", + { data_type => "text", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->add_unique_constraint("open311conf_area_id_key", ["area_id"]); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-07-29 18:09:25 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ryqCpvwjNtQrZm4I3s0hxg +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:ClYnPB2gsKapnfHuco5d/w # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm index ce7488703..4b738b66c 100644 --- a/perllib/FixMyStreet/DB/Result/Problem.pm +++ b/perllib/FixMyStreet/DB/Result/Problem.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Problem; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("problem"); __PACKAGE__->add_columns( @@ -84,6 +84,12 @@ __PACKAGE__->add_columns( { data_type => "boolean", default_value => \"false", is_nullable => 0 }, "geocode", { data_type => "bytea", is_nullable => 1 }, + "send_fail_count", + { data_type => "integer", is_nullable => 1 }, + "send_fail_reason", + { data_type => "text", is_nullable => 1 }, + "send_fail_timestamp", + { data_type => "timestamp", is_nullable => 1 }, ); __PACKAGE__->set_primary_key("id"); __PACKAGE__->has_many( @@ -92,22 +98,22 @@ __PACKAGE__->has_many( { "foreign.problem_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); -__PACKAGE__->belongs_to( - "user", - "FixMyStreet::DB::Result::User", - { id => "user_id" }, - { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, -); __PACKAGE__->has_many( "questionnaires", "FixMyStreet::DB::Result::Questionnaire", { "foreign.problem_id" => "self.id" }, { cascade_copy => 0, cascade_delete => 0 }, ); +__PACKAGE__->belongs_to( + "user", + "FixMyStreet::DB::Result::User", + { id => "user_id" }, + { is_deferrable => 1, on_delete => "CASCADE", on_update => "CASCADE" }, +); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-09-19 14:38:43 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:nq8Ufn/SEoDGSrrGlHIxag +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-16 10:08:56 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:VODeZlWk8l/+IzBBlRNV0A # Add fake relationship to stored procedure table __PACKAGE__->has_one( @@ -563,6 +569,35 @@ sub body { } # TODO Some/much of this could be moved to the template + +# either: +# "sent to council 3 mins later" +# "council ref: XYZ" +# or +# "sent to council 3 mins later, their ref: XYZ" +# +# Note: some silliness with pronouns and the adjacent comma mean this is +# being presented as a single string rather than two +sub processed_summary_string { + my ( $problem, $c ) = @_; + my ($duration_clause, $external_ref_clause); + if ($problem->whensent) { + $duration_clause = $problem->duration_string($c) + } + if ($problem->external_id) { + if ($duration_clause) { + $external_ref_clause = sprintf(_('their ref: %s'), $problem->external_id); + } else { + $external_ref_clause = sprintf(_('%s ref: %s'), $problem->external_body, $problem->external_id); + } + } + if ($duration_clause and $external_ref_clause) { + return "$duration_clause, $external_ref_clause" + } else { + return $duration_clause || $external_ref_clause + } +} + sub duration_string { my ( $problem, $c ) = @_; my $body = $problem->body( $c ); diff --git a/perllib/FixMyStreet/DB/Result/Questionnaire.pm b/perllib/FixMyStreet/DB/Result/Questionnaire.pm index cc4ec300b..b6791603a 100644 --- a/perllib/FixMyStreet/DB/Result/Questionnaire.pm +++ b/perllib/FixMyStreet/DB/Result/Questionnaire.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Questionnaire; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("questionnaire"); __PACKAGE__->add_columns( @@ -40,8 +40,8 @@ __PACKAGE__->belongs_to( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:QNFqqCg6J4SFlg4zwm7TWw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:NGlSRjoBpDoIvK3EueqN6Q use DateTime::TimeZone; diff --git a/perllib/FixMyStreet/DB/Result/Secret.pm b/perllib/FixMyStreet/DB/Result/Secret.pm index 8a1fa671d..449dfec0e 100644 --- a/perllib/FixMyStreet/DB/Result/Secret.pm +++ b/perllib/FixMyStreet/DB/Result/Secret.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Secret; # Created by DBIx::Class::Schema::Loader @@ -7,14 +8,13 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("secret"); __PACKAGE__->add_columns("secret", { data_type => "text", is_nullable => 0 }); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MfqW1K0aFtwpa/1c/UwHjg +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9XiWSKJ1PD3LSYjrSA3drw # You can replace this text with custom code or comments, and it will be preserved on regeneration diff --git a/perllib/FixMyStreet/DB/Result/Session.pm b/perllib/FixMyStreet/DB/Result/Session.pm index 9d5d509dc..4713c99eb 100644 --- a/perllib/FixMyStreet/DB/Result/Session.pm +++ b/perllib/FixMyStreet/DB/Result/Session.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Session; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("sessions"); __PACKAGE__->add_columns( @@ -21,8 +21,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("id"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:TagSQOXnDttkwfJ7oDH8Yw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:MVmCn4gLQWXTDIIaDHiVmA # You can replace this text with custom code or comments, and it will be preserved on regeneration 1; diff --git a/perllib/FixMyStreet/DB/Result/Token.pm b/perllib/FixMyStreet/DB/Result/Token.pm index 3a900858d..b223ada3a 100644 --- a/perllib/FixMyStreet/DB/Result/Token.pm +++ b/perllib/FixMyStreet/DB/Result/Token.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::Token; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("token"); __PACKAGE__->add_columns( @@ -27,8 +27,8 @@ __PACKAGE__->add_columns( __PACKAGE__->set_primary_key("scope", "token"); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-23 15:49:48 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:frl+na3HrIzGw9D1t891nA +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:+LLZ8P5GXqPetuGyrra2vw # Trying not to use this # use mySociety::DBHandle qw(dbh); diff --git a/perllib/FixMyStreet/DB/Result/User.pm b/perllib/FixMyStreet/DB/Result/User.pm index 56d726a8d..e13d88b88 100644 --- a/perllib/FixMyStreet/DB/Result/User.pm +++ b/perllib/FixMyStreet/DB/Result/User.pm @@ -1,3 +1,4 @@ +use utf8; package FixMyStreet::DB::Result::User; # Created by DBIx::Class::Schema::Loader @@ -7,7 +8,6 @@ use strict; use warnings; use base 'DBIx::Class::Core'; - __PACKAGE__->load_components("FilterColumn", "InflateColumn::DateTime", "EncodedColumn"); __PACKAGE__->table("users"); __PACKAGE__->add_columns( @@ -53,8 +53,8 @@ __PACKAGE__->has_many( ); -# Created by DBIx::Class::Schema::Loader v0.07010 @ 2011-06-27 10:25:21 -# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:9IHuqRTcHZCqJeBAaiQxzw +# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-03-08 17:19:55 +# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:tM1LUGrqDeQnF4BDgnYXGQ __PACKAGE__->add_columns( "password" => { diff --git a/perllib/SOAP/WSDL/Serializer/XSD.pm b/perllib/SOAP/WSDL/Serializer/XSD.pm new file mode 100644 index 000000000..f233f74e7 --- /dev/null +++ b/perllib/SOAP/WSDL/Serializer/XSD.pm @@ -0,0 +1,148 @@ +#!/usr/bin/perl -w +package SOAP::WSDL::Serializer::XSD; +use strict; +use warnings; +use Class::Std::Fast::Storable; +use Scalar::Util qw(blessed); + +use version; our $VERSION = qv('2.00.10'); + +use SOAP::WSDL::Factory::Serializer; + +my $SOAP_NS = 'http://schemas.xmlsoap.org/soap/envelope/'; +my $XML_INSTANCE_NS = 'http://www.w3.org/2001/XMLSchema-instance'; + +sub serialize { + my ($self, $args_of_ref) = @_; + + my $opt = $args_of_ref->{ options }; + + if (not $opt->{ namespace }->{ $SOAP_NS }) + { + $opt->{ namespace }->{ $SOAP_NS } = 'SOAP-ENV'; + } + + if (not $opt->{ namespace }->{ $XML_INSTANCE_NS }) + { + $opt->{ namespace }->{ $XML_INSTANCE_NS } = 'xsi'; + } + + my $soap_prefix = $opt->{ namespace }->{ $SOAP_NS }; + + # envelope start with namespaces + my $xml = "<$soap_prefix\:Envelope "; + + while (my ($uri, $prefix) = each %{ $opt->{ namespace } }) + { + $xml .= "xmlns:$prefix=\"$uri\" "; + } + # + # add namespace for user-supplied prefix if needed + $xml .= "xmlns:$opt->{prefix}=\"" . $args_of_ref->{ body }->get_xmlns() . "\" " + if $opt->{prefix}; + + # TODO insert encoding + $xml.='>'; + $xml .= $self->serialize_header($args_of_ref->{ method }, $args_of_ref->{ header }, $opt); + $xml .= $self->serialize_body($args_of_ref->{ method }, $args_of_ref->{ body }, $opt); + $xml .= '</' . $soap_prefix .':Envelope>'; + return $xml; +} + +sub serialize_header { + my ($self, $method, $data, $opt) = @_; + + # header is optional. Leave out if there's no header data + return q{} if not $data; + return join ( q{}, + "<$opt->{ namespace }->{ $SOAP_NS }\:Header>", + blessed $data ? $data->serialize_qualified : (), + "</$opt->{ namespace }->{ $SOAP_NS }\:Header>", + ); +} + +sub serialize_body { + my ($self, $method, $data, $opt) = @_; + + # TODO This one wipes out the old class' XML name globally + # Fix in some more appropriate place... + # $data->__set_name("$opt->{prefix}:" . $data->__get_name() ) if $opt->{prefix}; + # fix: -------v from https://rt.cpan.org/Public/Bug/Display.html?id=38035 + if ( $opt->{prefix} ) { + my $body_name = $data->__get_name(); + $body_name =~ s/.+://; + $data->__set_name($opt->{prefix} . ":" . $body_name ); + } + # fix end ----^ + + # Body is NOT optional. Serialize to empty body + # if we have no data. + return join ( q{}, + "<$opt->{ namespace }->{ $SOAP_NS }\:Body>", + defined $data + ? ref $data eq 'ARRAY' + ? join q{}, map { blessed $_ ? $_->serialize_qualified() : () } @{ $data } + : blessed $data + ? $opt->{prefix} + ? $data->serialize() + : $data->serialize_qualified() + : () + : (), + "</$opt->{ namespace }->{ $SOAP_NS }\:Body>", + ); +} + +__END__ + +=pod + +=head1 NAME + +SOAP:WSDL::Serializer::XSD - Serializer for SOAP::WSDL::XSD::Typelib:: objects + +=head1 DESCRIPTION + +This is the default serializer for SOAP::WSDL::Client and Interface classes +generated by SOAP::WSDL + +It may be used as a template for creating custom serializers. + +See L<SOAP::WSDL::Factory::Serializer|SOAP::WSDL::Factory::Serializer> for +details on that. + +=head1 METHODS + +=head2 serialize + +Creates a SOAP envelope based on the body and header arguments passed. + +Sets SOAP namespaces. + +=head2 serialize_body + +Serializes a message body to XML + +=head2 serialize_header + +Serializes a message header to XML + +=head1 LICENSE AND COPYRIGHT + +Copyright (c) 2007 Martin Kutter. All rights reserved. + +This file is part of SOAP-WSDL. You may distribute/modify it under +the same terms as perl itself + +=head1 AUTHOR + +Martin Kutter E<lt>martin.kutter fen-net.deE<gt> + +=head1 REPOSITORY INFORMATION + + $Rev: 851 $ + $LastChangedBy: kutterma $ + $Id: XSD.pm 851 2009-05-15 22:45:18Z kutterma $ + $HeadURL: https://soap-wsdl.svn.sourceforge.net/svnroot/soap-wsdl/SOAP-WSDL/trunk/lib/SOAP/WSDL/Serializer/XSD.pm $ + +=cut + diff --git a/perllib/Utils.pm b/perllib/Utils.pm index 4e64836c6..6a47fd17d 100644 --- a/perllib/Utils.pm +++ b/perllib/Utils.pm @@ -140,6 +140,47 @@ sub london_categories { }; } +sub barnet_categories { + # The values here are KBIDs from Barnet's system: see bin/send-reports for formatting + if (mySociety::Config::get('STAGING_SITE')) { # note staging site must use different KBIDs + return { + 'Blocked drain' => 255, # Gullies-Blocked + 'Dead animal' => 286, # Animals-Dead-Removal + 'Dog fouling' => 288, # Dog Fouling-Clear + 'Fly tipping' => 347, # Fly tipping-Clear + 'Graffiti' => 292, # Graffiti-Removal + 'Litter, accumulated' => 349, # Accumulated Litter + 'Litter, overflowing bins' => 205, # Litter Bins-Overflowing + 'Pavements' => 195, # Pavements-Damaged/Cracked + 'Pothole' => 204, # Pothole + 'Roads Signs' => 432, # Roads Signs - Maintenance + 'Street Lighting' => 251, # Street Lighting + 'Traffic Lights' => 103, # Traffic Lights + } + } else { + return { + 'Abandoned Vehicle' => 468, + 'Accumulated Litter' => 349, + 'Dog Bin' => 203, + 'Dog Fouling' => 288, + 'Drain or Gully' => 256, + 'Fly Posting' => 465, + 'Fly Tipping' => 449, + 'Graffiti' => 292, + 'Gritting' => 200, + 'Highways' => 186, + 'Litter Bin Overflowing' => 205, + 'Manhole Cover' => 417, + 'Overhanging Foliage' => 421, + 'Pavement Damaged/Cracked' => 195, + 'Pothole' => 204, + 'Road Sign' => 80, + 'Roadworks' => 246, + 'Street Lighting' => 251, + }; + } +} + =head2 trim_text my $text = trim_text( $text_to_trim ); diff --git a/templates/web/default/report/_main.html b/templates/web/default/report/_main.html index 8cc1efec2..552be17e6 100644 --- a/templates/web/default/report/_main.html +++ b/templates/web/default/report/_main.html @@ -2,9 +2,12 @@ <p><em>[% problem.meta_line(c) | html %] [% IF problem.council %] - [% IF problem.whensent %] - <small class="council_sent_info"><br>[% problem.duration_string(c) %]</small> + [% IF problem.whensent || problem.external_id %] + <small class="council_sent_info"><br> + [% problem.processed_summary_string(c) %] + </small> [% END %] + [% ELSE %] <br><small>[% loc('Not reported to council') %]</small> [% END %] diff --git a/templates/web/fixmystreet/report/new/councils_text_all.html b/templates/web/fixmystreet/report/new/councils_text_all.html index fb10ec4fd..fe2d5be12 100644 --- a/templates/web/fixmystreet/report/new/councils_text_all.html +++ b/templates/web/fixmystreet/report/new/councils_text_all.html @@ -1,5 +1,5 @@ <p> -[% IF all_councils.${area_ids_to_list.0}.type == 'LBO' %] +[% IF area_ids_to_list.0 != 2489 && all_councils.${area_ids_to_list.0}.type == 'LBO' %] [% tprintf( loc('All the information you provide here will be sent to <strong>%s</strong> or a relevant local body such as <strong>TfL</strong>, via the London Report-It system.'), @@ -16,4 +16,4 @@ [% END %] [% loc('The subject and details of the problem will be public, plus your name if you give us permission.') %] -</p>
\ No newline at end of file +</p> |