summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--config/pikul_codes.tag36
1 files changed, 36 insertions, 0 deletions
diff --git a/config/pikul_codes.tag b/config/pikul_codes.tag
new file mode 100644
index 0000000..f8c99cb
--- /dev/null
+++ b/config/pikul_codes.tag
@@ -0,0 +1,36 @@
+UserTag pikul-codes Order company district city province weight
+UserTag pikul-codes Routine <<EOR
+sub {
+ my ($company, $district, $city, $province, $weight) = @_;
+ my (@provisions, $origin, $table);
+ if ($company == $::Variable->{PIKUL_ANTERAJA}) {
+ @provisions = (
+ $Global::Variable->{ANTERAJA_ACCESS_KEY_ID},
+ $Global::Variable->{ANTERAJA_SECRET_ACCESS_KEY},
+ $Global::Variable->{ANTERAJA_BASE_PATH}
+ );
+ $origin = $::Variable->{ANTERAJA_ORIGIN};
+ $table = 'anteraja';
+ }
+ use Pikul;
+ Pikul::init($company, \@provisions);
+ my @codes = @{Pikul::codes(
+ $origin,
+ $Tag->query({
+ sql => "SELECT code FROM $table WHERE district='$district' AND \
+ city='$city' AND province='$province'",
+ wantarray => 1
+ })->[0]->[0] || '',
+ $weight)};
+ Pikul::cleanup();
+ my $elements = '<select name="mv_shipmode" id="ship_widget" class="form-control" onchange="this.form.submit()">';
+ my $mv_shipmode = $Tag->value('mv_shipmode');
+ for my $i (0 .. $#codes) {
+ $elements .= qq!
+ <option name="mv_shipmode" value="$table! . qq!_$codes[$i]"! . ($mv_shipmode ? ($mv_shipmode eq $table . "_$codes[$i]" ? ' selected' : '') : $i ? '' : ' selected') . qq!>$table&nbsp;$codes[$i]</option>!;
+ }
+ $elements .= q'
+ </select>';
+ return $elements;
+}
+EOR