aboutsummaryrefslogtreecommitdiffstats
path: root/perllib
diff options
context:
space:
mode:
Diffstat (limited to 'perllib')
-rw-r--r--perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE.pm248
-rw-r--r--perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATE/Exception.pm64
-rw-r--r--perllib/BarnetElements/Z_CRM_SERVICE_ORDER_CREATEResponse.pm183
-rw-r--r--perllib/BarnetInterfaces/service/ZLBB_SERVICE_ORDER.pm166
-rw-r--r--perllib/BarnetTypemaps/service.pm103
-rw-r--r--perllib/BarnetTypes/BAPIRET2.pm219
-rw-r--r--perllib/BarnetTypes/BAPI_TTET_ADDRESS_COM.pm165
-rw-r--r--perllib/BarnetTypes/CRMT_SERVICE_REQUEST_TEXT.pm102
-rw-r--r--perllib/BarnetTypes/RfcException/Message.pm111
-rw-r--r--perllib/BarnetTypes/RfcException/Message/Number.pm65
-rw-r--r--perllib/BarnetTypes/TABLE_OF_BAPIRET2.pm117
-rw-r--r--perllib/BarnetTypes/TABLE_OF_CRMT_SERVICE_REQUEST_TEXT.pm104
-rw-r--r--perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcException.pm123
-rw-r--r--perllib/BarnetTypes/Z_CRM_SERVICE_ORDER_CREATE/RfcExceptions.pm65
-rw-r--r--perllib/BarnetTypes/char1.pm65
-rw-r--r--perllib/BarnetTypes/char10.pm65
-rw-r--r--perllib/BarnetTypes/char132.pm65
-rw-r--r--perllib/BarnetTypes/char2.pm65
-rw-r--r--perllib/BarnetTypes/char20.pm65
-rw-r--r--perllib/BarnetTypes/char220.pm65
-rw-r--r--perllib/BarnetTypes/char241.pm65
-rw-r--r--perllib/BarnetTypes/char3.pm65
-rw-r--r--perllib/BarnetTypes/char30.pm65
-rw-r--r--perllib/BarnetTypes/char32.pm65
-rw-r--r--perllib/BarnetTypes/char35.pm65
-rw-r--r--perllib/BarnetTypes/char40.pm65
-rw-r--r--perllib/BarnetTypes/char5.pm65
-rw-r--r--perllib/BarnetTypes/char50.pm65
-rw-r--r--perllib/BarnetTypes/numeric3.pm65
-rw-r--r--perllib/BarnetTypes/numeric6.pm65
-rw-r--r--perllib/FixMyStreet/App/Controller/Admin.pm91
-rw-r--r--perllib/FixMyStreet/App/Controller/Photo.pm2
-rw-r--r--perllib/FixMyStreet/App/Controller/Report/New.pm19
-rwxr-xr-xperllib/FixMyStreet/App/Controller/Static.pm4
-rw-r--r--perllib/FixMyStreet/DB.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Abuse.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/AdminLog.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Alert.pm22
-rw-r--r--perllib/FixMyStreet/DB/Result/AlertSent.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/AlertType.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Comment.pm8
-rw-r--r--perllib/FixMyStreet/DB/Result/Contact.pm7
-rw-r--r--perllib/FixMyStreet/DB/Result/ContactsHistory.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Problem.pm63
-rw-r--r--perllib/FixMyStreet/DB/Result/Questionnaire.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Secret.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Session.pm6
-rw-r--r--perllib/FixMyStreet/DB/Result/Token.pm6
-rw-r--r--perllib/FixMyStreet/Geocode/Bing.pm9
-rw-r--r--perllib/FixMyStreet/Geocode/Google.pm9
-rw-r--r--perllib/FixMyStreet/TestMech.pm2
-rw-r--r--perllib/SOAP/WSDL/Serializer/XSD.pm148
-rw-r--r--perllib/Utils.pm41
53 files changed, 3271 insertions, 89 deletions
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/Admin.pm b/perllib/FixMyStreet/App/Controller/Admin.pm
index d6f613fd3..bbfa8170f 100644
--- a/perllib/FixMyStreet/App/Controller/Admin.pm
+++ b/perllib/FixMyStreet/App/Controller/Admin.pm
@@ -6,6 +6,7 @@ BEGIN { extends 'Catalyst::Controller'; }
use POSIX qw(strftime strcoll);
use Digest::MD5 qw(md5_hex);
+use mySociety::EmailUtil qw(is_valid_email);
use FixMyStreet::SendReport;
@@ -486,17 +487,33 @@ sub search_reports : Path('search_reports') {
$c->model('DB')->schema->storage->sql_maker->quote_char( '"' );
$c->model('DB')->schema->storage->sql_maker->name_sep( '.' );
+ my $query;
+ if (is_valid_email($search)) {
+ $query = [
+ 'user.email' => { ilike => $like_search },
+ ];
+ } elsif ($search =~ /^id:(\d+)$/) {
+ $query = [
+ 'me.id' => int($1),
+ ];
+ } elsif ($search =~ /^area:(\d+)$/) {
+ $query = [
+ 'me.areas' => { like => "%,$1,%" }
+ ];
+ } else {
+ $query = [
+ 'me.id' => $search_n,
+ 'user.email' => { ilike => $like_search },
+ 'me.name' => { ilike => $like_search },
+ 'me.title' => { ilike => $like_search },
+ detail => { ilike => $like_search },
+ council => { like => $like_search },
+ cobrand_data => { like => $like_search },
+ ];
+ }
my $problems = $c->cobrand->problems->search(
{
- -or => [
- 'me.id' => $search_n,
- 'user.email' => { ilike => $like_search },
- 'me.name' => { ilike => $like_search },
- 'me.title' => { ilike => $like_search },
- detail => { ilike => $like_search },
- council => { like => $like_search },
- cobrand_data => { like => $like_search },
- ]
+ -or => $query,
},
{
prefetch => 'user',
@@ -512,26 +529,44 @@ sub search_reports : Path('search_reports') {
$c->stash->{edit_council_contacts} = 1
if ( grep {$_ eq 'councilcontacts'} keys %{$c->stash->{allowed_pages}});
- my $updates = $c->model('DB::Comment')->search(
- {
- -or => [
- 'me.id' => $search_n,
- 'problem.id' => $search_n,
- 'user.email' => { ilike => $like_search },
- 'me.name' => { ilike => $like_search },
- text => { ilike => $like_search },
- 'me.cobrand_data' => { ilike => $like_search },
- %{ $site_restriction },
- ]
- },
- {
- -select => [ 'me.*', qw/problem.council problem.state/ ],
- prefetch => [qw/user problem/],
- order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created']
- }
- );
+ if (is_valid_email($search)) {
+ $query = [
+ 'user.email' => { ilike => $like_search },
+ %{ $site_restriction },
+ ];
+ } elsif ($search =~ /^id:(\d+)$/) {
+ $query = [
+ 'me.id' => int($1),
+ 'problem.id' => int($1),
+ %{ $site_restriction },
+ ];
+ } elsif ($search =~ /^area:(\d+)$/) {
+ $query = [];
+ } else {
+ $query = [
+ 'me.id' => $search_n,
+ 'problem.id' => $search_n,
+ 'user.email' => { ilike => $like_search },
+ 'me.name' => { ilike => $like_search },
+ text => { ilike => $like_search },
+ 'me.cobrand_data' => { ilike => $like_search },
+ %{ $site_restriction },
+ ];
+ }
- $c->stash->{updates} = [ $updates->all ];
+ if (@$query) {
+ my $updates = $c->model('DB::Comment')->search(
+ {
+ -or => $query,
+ },
+ {
+ -select => [ 'me.*', qw/problem.council problem.state/ ],
+ prefetch => [qw/user problem/],
+ order_by => [\"(me.state='hidden')",\"(problem.state='hidden')",'me.created']
+ }
+ );
+ $c->stash->{updates} = [ $updates->all ];
+ }
# Switch quoting back off. See above for explanation of this.
$c->model('DB')->schema->storage->sql_maker->quote_char( '' );
diff --git a/perllib/FixMyStreet/App/Controller/Photo.pm b/perllib/FixMyStreet/App/Controller/Photo.pm
index c54bad238..5d5832b08 100644
--- a/perllib/FixMyStreet/App/Controller/Photo.pm
+++ b/perllib/FixMyStreet/App/Controller/Photo.pm
@@ -114,6 +114,7 @@ sub _shrink {
$image->BlobToImage($photo);
my $err = $image->Scale(geometry => "$size>");
throw Error::Simple("resize failed: $err") if "$err";
+ $image->Strip();
my @blobs = $image->ImageToBlob();
undef $image;
return $blobs[0];
@@ -129,6 +130,7 @@ sub _crop {
throw Error::Simple("resize failed: $err") if "$err";
$err = $image->Extent( geometry => '90x60', gravity => 'Center' );
throw Error::Simple("resize failed: $err") if "$err";
+ $image->Strip();
my @blobs = $image->ImageToBlob();
undef $image;
return $blobs[0];
diff --git a/perllib/FixMyStreet/App/Controller/Report/New.pm b/perllib/FixMyStreet/App/Controller/Report/New.pm
index e7468986b..4dac4d30f 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 ) = @_;
@@ -556,9 +558,15 @@ sub setup_categories_and_councils : Private {
} elsif ($first_council->{id} != 2482 && $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');
@@ -747,8 +755,15 @@ sub process_report : Private {
$councils = join( ',', @{ $c->stash->{area_ids_to_list} } ) || -1;
$report->council( $councils );
- } elsif ( $first_council->{id} != 2482 && $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->{id} != 2482 && $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/App/Controller/Static.pm b/perllib/FixMyStreet/App/Controller/Static.pm
index 52b230c27..d4b7a1b83 100755
--- a/perllib/FixMyStreet/App/Controller/Static.pm
+++ b/perllib/FixMyStreet/App/Controller/Static.pm
@@ -29,6 +29,10 @@ sub for_councils_faq : Path('/for-councils/faq') : Args(0) {
my ( $self, $c ) = @_;
}
+sub privacy : Global : Args(0) {
+ my ( $self, $c ) = @_;
+}
+
sub faq : Global : Args(0) {
my ( $self, $c ) = @_;
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 d31bf5510..91695d7d0 100644
--- a/perllib/FixMyStreet/DB/Result/Comment.pm
+++ b/perllib/FixMyStreet/DB/Result/Comment.pm
@@ -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,10 +52,6 @@ __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 },
"external_id",
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/Problem.pm b/perllib/FixMyStreet/DB/Result/Problem.pm
index 854d3bd91..b8aea8697 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(
@@ -90,6 +90,8 @@ __PACKAGE__->add_columns(
{ data_type => "text", is_nullable => 1 },
"send_fail_timestamp",
{ data_type => "timestamp", is_nullable => 1 },
+ "send_method_used",
+ { data_type => "text", is_nullable => 1 },
);
__PACKAGE__->set_primary_key("id");
__PACKAGE__->has_many(
@@ -98,22 +100,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.07017 @ 2012-03-16 10:08:56
-# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:VODeZlWk8l/+IzBBlRNV0A
+# Created by DBIx::Class::Schema::Loader v0.07017 @ 2012-05-03 16:05:20
+# DO NOT MODIFY THIS OR ANYTHING ABOVE! md5sum:EvwI91Ot7SioQWqwnXRTBQ
# Add fake relationship to stored procedure table
__PACKAGE__->has_one(
@@ -568,7 +570,50 @@ sub body {
return $body;
}
+# returns true if the external id is the council's ref, i.e., useful to publish it
+# (by way of an example, the barnet send method returns a useful reference when
+# it succeeds, so that is the ref we should show on the problem report page).
+# Future: this is installation-dependent so maybe should be using the contact
+# data to determine if the external id is public on a council-by-council basis.
+# Note: this only makes sense when called on a problem that has been sent!
+sub can_display_external_id {
+ my $self = shift;
+ if ($self->external_id && $self->send_method_used eq 'barnet') {
+ return 1;
+ }
+ return 0;
+}
+
# TODO Some/much of this could be moved to the template
+
+# either:
+# "sent to council 3 mins later"
+# "[Council name] 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->can_display_external_id) {
+ if ($duration_clause) {
+ $external_ref_clause = sprintf(_('their ref:&nbsp;%s'), $problem->external_id);
+ } else {
+ $external_ref_clause = sprintf(_('%s ref:&nbsp;%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/Geocode/Bing.pm b/perllib/FixMyStreet/Geocode/Bing.pm
index 0a7fc38dc..3bbb9dcdc 100644
--- a/perllib/FixMyStreet/Geocode/Bing.pm
+++ b/perllib/FixMyStreet/Geocode/Bing.pm
@@ -71,7 +71,14 @@ sub string {
);
( $latitude, $longitude ) = @{ $_->{point}->{coordinates} };
- push (@$error, { address => $address, latitude => $latitude, longitude => $longitude });
+ # These co-ordinates are output as query parameters in a URL, make sure they have a "."
+ mySociety::Locale::in_gb_locale {
+ push (@$error, {
+ address => $address,
+ latitude => sprintf('%0.6f', $latitude),
+ longitude => sprintf('%0.6f', $longitude)
+ });
+ };
push (@valid_locations, $_);
}
diff --git a/perllib/FixMyStreet/Geocode/Google.pm b/perllib/FixMyStreet/Geocode/Google.pm
index 83b36dbcd..1ab347066 100644
--- a/perllib/FixMyStreet/Geocode/Google.pm
+++ b/perllib/FixMyStreet/Geocode/Google.pm
@@ -75,7 +75,14 @@ sub string {
my $address = $_->{address};
next unless $c->cobrand->geocoded_string_check( $address );
( $longitude, $latitude ) = @{ $_->{Point}->{coordinates} };
- push (@$error, { address => $address, latitude => $latitude, longitude => $longitude });
+ # These co-ordinates are output as query parameters in a URL, make sure they have a "."
+ mySociety::Locale::in_gb_locale {
+ push (@$error, {
+ address => $address,
+ latitude => sprintf('%0.6f', $latitude),
+ longitude => sprintf('%0.6f', $longitude)
+ });
+ };
push (@valid_locations, $_);
}
return { latitude => $latitude, longitude => $longitude } if scalar @valid_locations == 1;
diff --git a/perllib/FixMyStreet/TestMech.pm b/perllib/FixMyStreet/TestMech.pm
index a8cbc98f2..7daf01f56 100644
--- a/perllib/FixMyStreet/TestMech.pm
+++ b/perllib/FixMyStreet/TestMech.pm
@@ -151,7 +151,7 @@ sub delete_user {
ok( $p->delete, "delete problem " . $p->title );
}
for my $a ( $user->alerts ) {
- $a->alert_sents->delete;
+ $a->alerts_sent->delete;
ok( $a->delete, "delete alert " . $a->alert_type );
}
ok( $_->delete, "delete comment " . $_->text ) for $user->comments;
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 );